Manuel PHP

par:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
2011-04-22
Édité par: Philip Olson
par:
Pierrick Charron Traducteur
Jean-Sébastien Goupil Traducteur
David Manusset Relecteur
Julien Pauli Traducteur
Mickaël Perraud Relecteur
Guillaume Plessis Traducteur
Yannick Torrès Traducteur
par:
Mehdi Achour
Vincent Briet
Damien Seguy

Copyright

Copyright @ 1997 - 2011 par le PHP Documentation Group. Ce document ne peut être redistribué qu'aux termes et aux conditions mentionnés dans la licence Open Publication License, version 1.0 ou plus récente. Une copie de la licence Creative Commons Attribution 3.0 est distribuée avec ce manuel ; la dernière version est disponible à » http://creativecommons.org/licenses/by/3.0/.

Dans le cas où vous seriez intéressés par la distribution partielle ou totale de ce document (modifié ou non) et que vous ayez des questions, merci de contacter les propriétaires du Copyright à » doc-license@lists.php.net. Notez que cette adresse courriel est directement redirigée vers une liste de diffusion publique et archivée.



Manuel PHP


Préface

PHP est un acronyme récursif, qui signifie "PHP: Hypertext Preprocessor" : c'est un langage de script HTML, exécuté côté serveur. Sa syntaxe est empruntée aux langages C, Java et Perl, et est facile à apprendre. Le but de ce langage est de permettre aux développeurs web d'écrire des pages dynamiques rapidement, mais vous pouvez faire beaucoup plus avec PHP.

Ce manuel est essentiellement une référence des fonctions, mais il contient aussi des informations de référence sur le langage, des explications sur les fonctionnalités principales de PHP et diverses informations supplémentaires.

Vous pouvez télécharger ce manuel sous divers formats, sur » http://www.php.net/download-docs.php. Plus d'informations sur ce manuel sont disponibles dans l'appendice À propos du manuel. Si vous voulez découvrir l'histoire de PHP.

Auteurs et Contributeurs

Nous mettons en avant les personnes les plus actives dans la préface du manuel mais il y a bien plus de contributeurs qui nous aident actuellement dans notre travail ou qui ont fournis une aide précieuse au projet dans le passé. Il y a beaucoup d'inconnus qui nous ont aidés à travers leurs notes concernant les pages du manuel qui sont continuellement incluses dans le manuel, travail dont nous sommes très reconnaissants. La liste fournie ci-dessous est classée par ordre alphabétique.

Auteurs et Éditeurs

Les contributeurs suivants ont eu un impact énorme en ajoutant du contenu dans le manuel : Bill Abt, Jouni Ahto, Alexander Aulbach, Daniel Beckham, Stig Bakken, Nilgün Belma Bugüner, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Peter Cowburn, Daniel Egeberg, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Rafael Martinez, Rick McGuire, Kalle Sommer Nielsen, Yasuo Ohgaki, Richard Quadling, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Yannick Torres, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar et Andrei Zmievski.

Les contributeurs suivants ont énormément aidé dans l'édition du manuel : Stig Bakken, Gabor Hojtsy, Hartmut Holzgraefe et Egon Schmid.

Mainteneurs des notes utilisateurs

Les mainteneurs actuellement les plus actifs sont : Daniel Brown, Nuno Lopes, Felipe Pena, Thiago Pojda et Maciek Sokolewicz.

Ces personnes ont également déployé énormément d'efforts dans le maintien des notes utilisateurs : Mehdi Achour, Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Etienne Kneuss, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Hannes Magnusson, Maxim Maletsky, Bobby Matthis, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles et Jeroen van Wolffelaar.




Au moment de commencer



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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<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.

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. Vous pouvez vous plonger dans le code, et en quelques instants, écrire des scripts simples.

Bien que le développement de PHP soit orienté vers la programmation pour les sites web, vous pouvez en faire bien d'autres usages. Lisez donc la section Que peut faire PHP ? ou bien le tutoriel d'introduction si vous êtes uniquement intéressé dans la programmation web.



Que peut faire PHP ?

Tout. PHP est principalement conçu pour servir de langage de script coté serveur, ce qui fait qu'il est capable de réaliser tout ce qu'un script CGI quelconque 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 trois domaines différents où PHP peut s'illustrer.

  • Langage de script coté serveur. C'est l'utilisation la plus traditionnelle, et aussi le principal objet de PHP. Vous aurez besoin de trois composants 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 votre propre machine si vous êtes juste expérimenté dans la programmation en PHP. Voyez la section d'installation pour plus d'informations.
  • Langage de programmation en ligne de commande. Vous pouvez écrire des scripts PHP et l'exécuter en ligne de commande, sans l'aide du serveur web et d'un navigateur. Il vous 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.
  • Ecrire des applications clientes graphiques. PHP n'est probablement pas le meilleur langage pour écrire des applications clientes graphiques, mais si vous connaissez bien PHP et que vous souhaitez exploiter des fonctionnalités avancées dans vos applications clientes, vous pouvez utiliser PHP-GTK pour écrire de tels programmes. Vous avez aussi la possibilité d'écrire des applications très portables avec ce langage. PHP-GTK est une extension de PHP, qui n'est pas fournie dans la distribution de base. Si vous êtes intéressé par PHP-GTK, visitez » son site web.

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, Mac OS X, 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 vous avez le choix de votre système d'exploitation et de votre serveur web. De plus, vous avez aussi le choix d'utiliser la programmation procédurale ou objet (OOP), ou encore un mélange des deux.

Avec PHP, vous n'êtes pas limité à la production de code HTML. Les capacités de PHP lui permettent de générer aussi bien des images, des fichiers PDF, des animations Flash (avec l'aide des bibliothèques libswf et Ming) à la volée. Vous pouvez aussi générer facilement du texte, du code XML ou XHTML. PHP génère tous ces fichiers et les sauve dans le système de fichiers, ou bien les envoie directement au navigateur web.

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. Vous pouvez 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 rationnelles compatibles Perl (PCRE), ainsi que de nombres extensions et 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.

Comme vous le voyez, 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.




Une introduction à PHP

Sommaire

Dans cette section, nous voulons illustrer les principes de base de PHP dans une courte introduction. Ce chapitre traite uniquement de création de pages web dynamiques avec PHP, laissant de coté temporairement les autres possibilités de PHP. Voyez la section Ce que peut faire PHP pour plus d'informations.

Les pages web qui exploitent PHP sont traitées comme des pages HTML standards, et vous pouvez les créer, éditer et effacer tout comme vous le faites normalement avec des pages HTML classiques.


Le nécessaire

Dans ce tutoriel, nous présumons que vous avez un serveur web avec le support PHP activé, et que les fichiers terminés par l'extension .php sont traités par PHP. Sur la plupart des serveurs, c'est la configuration par défaut, mais n'hésitez pas à interroger votre administrateur système en cas de doute. Si votre serveur web supporte PHP, vous n'avez rien à faire. Simplement, créez un dossier, puis créez un fichier texte, avec l'extension .php : le serveur va automatiquement l'exécuter avec PHP. Il n'y a pas de compilation, ou d'installation compliquée. Gardez en tête que les fichiers sont comparables à des fichiers HTML, dans lesquels vous allez utiliser des balises magiques, qui feront beaucoup de choses pour vous. Beaucoup d'hébergeurs web proposent PHP mais si ce n'est pas le cas, lisez la section des » liens PHP pour trouver un hébergeur web le proposant.

Supposons que vous souhaitiez économiser du temps en ligne et travailler localement. Dans ce cas, vous devez installer un serveur web comme » Apache, et bien sur » PHP. Vous souhaiterez aussi installer une base de données comme » MySQL.

Vous pouvez soit installer ces logiciels individuellement ou bien d'une manière simplifiée. Notre manuel contient les instructions d'installation de PHP (en supposant que vous avez déjà un serveur web d'installé). Dans le cas où vous rencontriez des problèmes dans l'installation de PHP, nous vous suggérons de poser vos questions sur notre » liste de diffusions réservée à cet usage. Si vous choisissez une version simplifiée, vous pouvez utiliser des » des installeurs qui prennent en charge l'ensemble de l'installation en quelques clics. Il est facile de configurer un serveur web avec le support de PHP sur n'importe quel système d'exploitation, y compris MacOs, Linux et Windows. Sous Linux, vous pouvez aussi trouver des commandes comme » rpmfind et » PBone très pratiques pour rechercher les paquets pré-compilés. Vous pouvez aussi visiter » apt-get, pour des paquets Debian.



Votre première page PHP

Créez un fichier appelé bonjour.php dans votre dossier web racine (DOCUMENT_ROOT) avec le contenu suivant :

Exemple #1 Notre premier script PHP : bonjour.php

<html>
 <head>
  <title>Test PHP</title>
 </head>
 <body>
 <?php echo '<p>Bonjour le monde</p>'?>
 </body>
</html>

Utilisez votre navigateur pour accéder au fichier via votre serveur web, en ajoutant le nom de fichier /bonjour.php. Si vous développez localement, votre URL ressemblera à http://localhost/bonjour.php ou encore http://127.0.0.1/bonjour.php mais cela dépend de la configuration de votre serveur web. Si celui-ci est configuré correctement, le fichier sera analysé par PHP et le résultat suivant affiché :

<html>
 <head>
  <title>Test PHP</title>
 </head>
 <body>
 <p>Bonjour le monde</p>
 </body>
</html>

Ce programme est extrêmement simple et vous n'avez pas besoin de PHP pour créer une page web comme ceci. Elle ne fait qu'afficher Bonjour le monde, grâce à la fonction echo() de PHP. Notez que ce fichier n'a pas besoin d'être exécutable ou autre, dans aucun cas. Le serveur sait que ce fichier a besoin d'être interprété par PHP car vous utilisez l'extension ".php", et le serveur est configuré pour les passer à PHP. Voyez cela comme une page HTML normale qui contient une série de balises spéciales qui vont vous permettre de réaliser beaucoup de choses intéressantes.

Si vous avez essayé cet exemple et qu'il n'a rien affiché de spécial, ou même qu'une boîte de dialogue a surgi pour vous proposer de le télécharger, ou encore vous avez vu le code tel que nous l'avons écrit dans le fichier, alors votre serveur web ne supporte probablement pas PHP ou est mal configuré. Demandez à votre administrateur de l'activer pour vous, en utilisant le chapitre Installation. Si vous développez localement, lisez également le chapitre d'installation afin de vous assurer que tout est configuré correctement. Assurez-vous que vous tentez d'accéder au fichier via http et que le serveur web vous fournit la sortie. Si vous appelez votre fichier depuis votre gestionnaire de fichiers, il ne sera pas analysé par PHP. Si le problème persiste malgré cela, n'hésitez pas à utiliser une » des options de support de PHP.

Le point important de cet exemple était de montrer le format des balises spéciales PHP. Nous avons utilisé ici <?php pour indiquer le début de la balise PHP. Puis, nous avons introduit les commandes PHP et refermé les balises PHP avec ?>. Vous pouvez passer du mode PHP au mode HTML et vice-versa, de cette manière, et à votre guise. Pour plus d'informations, lisez la section du manuel sur la syntaxe basique de PHP.

Note: Une note sur les retours à la ligne

Les retours à la ligne ont une signification minime en HTML, cependant, c'est toujours une bonne idée de rendre votre HTML aussi joli et proche que possible en y ajoutant des retours à la ligne. Un retour à la ligne suivant immédiatement une balise de fermeture PHP (?>) sera supprimé par PHP. Ceci peut être vraiment très utile lorsque vous insérez plusieurs blocs PHP ou fichiers inclus contenant du PHP qui n'est pas supposé afficher quoi que ce soit. En même temps, ce peut être confus. Vous pouvez ajouter un espace après la balise fermante PHP (?>) pour forcer l'espace et un retour à la ligne à afficher, ou vous pouvez ajouter explicitement un retour à la ligne dans le dernier echo/print de votre bloc PHP.

Note: Une note sur les éditeurs de texte

Il existe de nombreux éditeurs de texte et environnements de développement (IDE) que vous pouvez utiliser pour créer, éditer et gérer vos applications PHP. Une liste partielle de ces outils est entretenue à l'adresse » PHP Editor's List. Si vous voulez recommander un éditeur particulier, rendez donc une visite à cette page, et demandez au webmestre d'ajouter votre éditeur. Avoir au minimum un éditeur de texte avec la coloration syntaxique est vivement recommandé.

Note: Une note sur les traitements de texte

Les traitements de texte tels que StarOffice Writer, Microsoft Word et Abiword sont de très mauvais choix pour éditer des scripts PHP. Si vous voulez utiliser l'un d'entre eux, malgré tout, pour tester vos scripts, vous devez vous assurer que vous sauvez les fichiers au format texte seul (plain text) : sinon, PHP ne sera pas capable de lire et d'exécuter ces scripts.

Note: Une note sur le Notepad de Windows

Si vous écrivez vos scripts PHP avec Windows Notepad, vous devez vous assurer que vos fichiers sont sauvés avec l'extension .php (Notepad ajoute automatiquement une extension .txt à vos fichiers, à moins que vous ne preniez l'une des mesures suivantes). Lorsque vous sauvez un fichier, et que vous êtes invité à lui donner un nom, placez le nom du fichier entre doubles guillemets (i.e. "hello.php"). Vous pouvez également cliquer dans le menu 'Documents texte' du dialogue de sauvegarde, et choisir l'option 'Tous les fichiers'. Vous pourrez alors saisir le nom de votre fichier sans les doubles guillemets.

Maintenant vous avez créé un script PHP qui fonctionne, c'est le moment de créer le meilleur script PHP ! Faites un appel à la fonction phpinfo() et vous verrez beaucoup d'informations intéressantes sur votre système et sa configuration comme les variables pré-définies disponibles, les modules PHP chargés ainsi que la configuration. Prenez du temps pour revoir ces informations importantes.

Exemple #2 Récupération des informations du système depuis PHP

<?php phpinfo(); ?>



Trucs pratiques

Réalisons maintenant quelque chose de plus puissant. Nous allons vérifier le type de navigateur que le visiteur de notre site utilise. Pour cela, nous allons accéder aux informations que le navigateur du visiteur nous envoie, lors de sa requête HTTP. Cette information est stockée dans une variable. Les variables sont faciles à repérer, car elles commencent toutes par un signe dollar. La variable qui nous intéresse ici est $_SERVER['HTTP_USER_AGENT'].

Note:

$_SERVER est une variable spéciale de PHP, qui contient toutes les informations relatives au serveur web. C'est une variable réservée de PHP, et une superglobale. Reportez-vous aux pages du manuel traitant des Auto-globales (aussi connues sous le nom de super-globales). Ces variables spéciales ont été introduites en » PHP 4.1.0. Auparavant, il fallait utiliser les variables $HTTP_*_VARS, comme $HTTP_SERVER_VARS. Bien qu'obsolètes, ces variables existent toujours. (Voir aussi la note sur l'ancien code.)

Pour afficher cette variable, nous pouvons simplement faire :

Exemple #1 Afficher le contenu d'une variable (élément de tableau)

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

Un résultat possible du script pourra alors être :


Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Il y a de nombreux types de variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affiché un élément de Tableau (Array). Les tableaux peuvent être très utiles.

$_SERVER est juste une variable qui est automatiquement disponible dans votre script. Une liste de toutes les variables qui sont rendues disponibles est fournie dans la section Variables réservées ou vous pouvez aussi en obtenir une liste complète en lisant l'affichage de la fonction phpinfo() utilisée dans l'exemple de la section précédente.

Vous pouvez ajouter plusieurs commandes PHP dans une balise PHP, et créer de petits blocs de code qui réalisent des opérations plus complexes qu'un simple affichage. Par exemple, si nous voulons vérifier que le navigateur est bien de la famille des Internet Explorer, nous pouvons faire cela :

Exemple #2 Exemple utilisant les structures de contrôle et les fonctions

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo 
'Vous utilisez Internet Explorer<br />';
}
?>

Le résultat de ce script, si vous utilisez Internet Explorer, sera :

Vous utilisez Internet Explorer<br />

Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une structure if. Si vous êtes familier avec les syntaxes de base du langage C, cela ne vous surprendra pas. Si vous ne connaissez pas assez le langage C ou un autre langage dont la syntaxe est similaire à celle ci-dessus, il vaudrait mieux que vous lisiez une introduction à PHP, et assimiliez les premiers chapitres, ou bien lisez le chapitre consacré à la référence du langage.

Le second concept que nous avons introduit est la fonction strpos(). strpos() est une fonction intégrée à PHP, qui recherche la présence d'une chaîne dans une autre. Dans notre cas, nous avons recherché la chaîne "MSIE" dans la chaîne $_SERVER['HTTP_USER_AGENT']. Si cette chaîne est trouvée, la fonction retourne sa position dans la chaîne et, sinon, FALSE. Si elle ne retourne pas FALSE, la structure if reçoit TRUE et le code entre accolades {} est exécuté. Sinon, le code n'est pas exécuté. N'hésitez pas à expérimenter d'autres exemples, à l'aide de if, else, et d'autres fonctions comme strtoupper() et strlen(). Chaque page de la documentation contient aussi des exemples. Si vous n'êtes pas sûr de l'utilisation de ces fonctions, vous devez lire la page du manuel "comment lire une définition de fonction" ainsi que la section sur les fonctions PHP.

Nous pouvons maintenant progresser et vous montrer comment utiliser le mode PHP, au milieu du code HTML :

Exemple #3 Passer du mode PHP au mode HTML et vice-versa

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() n'a pas retourné FALSE</h3>
<p>Vous utilisez Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() a retourné FALSE</h3>
<p>Vous n'utilisez pas Internet Explorer</p>
<?php
}
?>

Un exemple de résultat obtenu dans ce script est :

<h3>strpos() n'a pas retourné FALSE</h3>
<p>Vous utilisez Internet Explorer</p>

Au lieu d'utiliser une commande echo(), pour afficher du texte, vous pouvez utiliser du code HTML pur. Le point important à noter ici et que la logique de programmation est conservée. Seul un des deux blocs HTML sera affiché, suivant le résultat de la fonction strpos(). En d'autres termes, cela dépend si la chaîne MSIE a été trouvée ou non.



Utiliser un formulaire

L'un des points forts de PHP est sa capacité à gérer les formulaires. Le concept de base qui est important à comprendre est que tous les champs d'un formulaire seront automatiquement disponibles dans le script PHP d'action. Lisez le chapitre du manuel concernant les variables depuis des sources externes à PHP pour plus d'informations et d'exemples sur la façon d'utiliser les formulaires. Voici un exemple de formulaire HTML :

Exemple #1 Un simple formulaire HTML

<form action="action.php" method="post">
 <p>Votre nom : <input type="text" name="nom" /></p>
 <p>Votre âge : <input type="text" name="age" /></p>
 <p><input type="submit" value="OK"></p>
</form>

Il n'y rien de particulier dans ce formulaire. Il est en HTML pur, sans aucune configuration particulière. Lorsque le visiteur remplit le formulaire, et clique sur le bouton OK, le fichier action.php est appelé. Dans ce fichier, vous pouvez écrire le script suivant :

Exemple #2 Afficher des données issues d'un formulaire

Bonjour, <?php echo htmlspecialchars($_POST['nom']); ?>.
Tu as <?php echo (int)$_POST['age']; ?> ans.

Voici le résultat que vous pourriez obtenir, selon les valeurs que vous avez saisies :

Bonjour Jean.
Tu as 29 ans.

Mise à part les parties htmlspecialchars() et (int), ce script ne fait que des choses évidentes. htmlspecialchars() s'assure que tous les caractères spéciaux HTML sont proprement encodés afin d'éviter des injections de balises HTML et de Javascript dans vos pages. Pour l'âge, vu que nous savons que c'est un entier, vous pouvez le convertir en un entier. Vous pouvez également demander à PHP de le faire automatiquement à votre place en utilisant l'extension filter. Les variables $_POST['nom'] et $_POST['age'] sont automatiquement créées par PHP. Un peu plus tôt dans ce tutoriel, nous avons utilisé la variable $_SERVER, une superglobale. Maintenant, nous avons introduit une autre superglobale $_POST qui contient toutes les données envoyées par la méthode POST. Notez que dans notre formulaire, nous avons choisi la méthode POST. Si vous avions utilisé la méthode GET alors notre formulaire aurait placé ces informations dans la variable $_GET, une autre superglobale. Vous pouvez aussi utiliser la variable $_REQUEST, si vous ne souhaitez pas vous embarrasser de la méthode utilisée. Elle contient un mélange des données de GET, POST, COOKIE et FILE. Voyez aussi la fonction import_request_variables().

Vous pouvez également utiliser des champs XForms dans PHP, même si vous vous sentez bien avec l'utilisation des formulaires HTML. Bien que le travail avec XForms ne soit pas fait pour les débutants, vous pourriez être intéressé par cette technologie. Nous avons également une courte introduction sur le traitement des données reçues par XForms dans notre section sur les fonctionnalités.



Utiliser des codes anciens avec les nouvelles versions de PHP

Maintenant que PHP est devenu un langage de script populaire, il existe de nombreuses ressources qui vous proposent des portions de code que vous pouvez réutiliser dans vos codes. Pour la plupart, les développeurs de PHP ont tâché d'assurer la compatibilité ascendante, ce qui fait que de nombreux scripts écrits pour les anciennes versions sont aussi valables pour les nouvelles versions de PHP, idéalement sans modification. En pratique, certaines modifications doivent être apportées.

Les deux modifications récentes les plus importantes qui affectent les anciens codes sont :

  • Les anciennes variables $HTTP_*_VARS (qui devaient être indiquées comme globales pour être utilisées dans une fonction ou une méthode) sont obsolètes. Les nouveaux tableaux superglobaux ont été introduits en » PHP 4.1.0. Ce sont les variables suivantes : $_GET, $_POST, $_FILES, $_COOKIE, $_SERVER, $_ENV, $_REQUEST et $_SESSION. Les vieux tableaux $HTTP_*_VARS, tels que $HTTP_POST_VARS existent également. Depuis PHP 5.0.0, les tableaux prédéfinis PHP peuvent être désactivés avec l'option de configuration register_long_arrays.
  • Les variables externes ne sont plus enregistrées dans l'environnement par défaut. En d'autres termes, depuis PHP » 4.2.0, la directive PHP register_globals vaut off par défaut dans le php.ini. La méthode recommandée pour accéder à ces valeurs est via les tableaux superglobaux mentionnés ci-dessus. Les anciens scripts, livres et tutoriels continuent de considérer que cette directive devrait être à on. Lorsque cette directive est à on, vous pouvez utiliser la variable $id, si l'URL http://www.example.com/foo.php?id=42 a été appelée. Quelle que soit la valeur de la directive, $_GET['id'] est toujours disponible.
Pour plus de détails sur ces modifications, reportez-vous à la section sur les variables pré-définies.



Et après ?

Avec ce que vous savez, vous êtes maintenant capable de comprendre l'essentiel de la documentation PHP, et les différents scripts d'exemples disponibles dans les archives. Vous pouvez aussi trouver d'autres exemples dans la section liens ("links", en anglais) du site » http://www.php.net/links.php.

Différentes présentations des capacités de PHP sont disponibles sur le site des conférences PHP : » http://talks.php.net/.





Installation et configuration


Considérations générales sur l'installation

Avant d'installer PHP, vous devez savoir ce que vous voulez faire avec PHP. Il y a trois cas d'utilisation que vous a décrit la section Que peut faire PHP ? :

  • Sites Web et applications Web (script côté serveur)
  • Scripts en ligne de commande
  • Applications à interface graphique (GUI)

Pour la première tâche, qui est de loin la plus répandue, vous avez besoin de trois choses : PHP lui-même, un serveur Web et un navigateur. Vous avez probablement un navigateur, et en fonction de votre système d'exploitation, vous pouvez aussi disposer d'un serveur Web (i.e. Apache sous Linux ou IIS sous Windows). Vous pouvez aussi louer un espace à une société. De cette façon, vous n'aurez pas à mettre en place PHP, mais uniquement à écrire vos scripts, les charger sur le serveur et voir le résultat sur votre navigateur.

Si vous installez PHP et le serveur par vous-même, vous avez deux choix. Soit sous la forme d'un module du serveur Web (via une interface directe appelée SAPI). Les serveurs qui supportent cette solution comptent notamment Apache, Microsoft Internet Information Server, Netscape et iPlanet. D'autres serveurs ont aussi le support ISAPI, l'interface de module Microsoft (OmniHTTPd par exemple). Si PHP ne supporte pas l'interface de module de votre serveur Web, vous pouvez toujours l'utiliser comme processeur CGI ou FastCGI. Cela signifie que vous devez configurer votre serveur pour qu'il utilise l'exécutable CGI de PHP, pour qu'il traite les fichiers PHP sur le serveur.

Si vous souhaitez aussi utiliser PHP en ligne de commande (écrire des scripts de génération d'image hors ligne, par exemple, ou bien traiter des textes en fonctions d'informations que vous leur fourniriez), vous aurez besoin d'un exécutable PHP. Pour plus de détails, lisez la section écrire des applications PHP en ligne de commande. Dans ce cas, vous n'aurez pas besoin de serveur Web, ni de navigateur.

Avec PHP, vous pouvez aussi écrire des interfaces graphiques clientes, en utilisant l'extension PHP-GTK. C'est une approche complètement différente de l'écriture des pages web, car vous ne générerez pas de fichiers HTML, mais vous aurez à gérer des fenêtres et des objets. Pour plus de détails sur PHP-GTK, voyez le » site officiel. PHP-GTK n'est pas inclus dans la distribution officielle de PHP.

À partir de maintenant, cette section décrit l'installation de PHP avec un serveur Web sous Unix et Windows, sous forme de module ou d'exécutables CGI.

Les codes source et les exécutables compilés pour certains OS (y compris Windows), sont disponibles à » http://www.php.net/downloads.php. Nous recommandons l'utilisation du » miroir le plus proche pour télécharger les distributions.



Installation sur les systèmes UNIX

Sommaire

Cette section va vous guider lors du processus d'installation et de configuration de PHP sous Unix. Commencez par étudier les sections spécifiques à votre plate-forme ou à votre serveur Web avant de passer à l'installation.

Comme ce que nous avons écrit dans le manuel dans la section Considérations générales sur l'installation, nous traiterons de l'installation de PHP sur des serveurs Web dans cette section, bien que nous couvrirons également la configuration de PHP pour l'utilisation en ligne de commande.

Il y a plusieurs manières d'installer PHP sur des plates-formes Unix : soit avec un processus de compilation/configuration, soit avec des paquets précompilés. Cette documentation est particulièrement focalisée sur le processus de compilation/configuration. Beaucoup de systèmes basés sur Unix ont plusieurs sortes de paquets d'installation pour leur système. Ils permettent de vous assister dans une configuration standard, mais si vous avez besoin d'avoir des fonctionnalités différentes (comme un serveur sécurisé ou un driver différent de bases de données), vous aurez besoin de construire PHP et/ou votre serveur Web. Si vous n'êtes pas familiarisé avec la construction et la compilation de vos propres logiciels, il sera plus simple de vérifier si quelque part, personne n'a déjà construit une version de paquet de PHP avec les fonctionnalités dont vous avez besoin.

Pré-requis :

  • Connaissance de base d'UNIX (savoir faire un "make" et compiler en C, si besoin).
  • Un compilateur ANSI C (pour les codes sources)
  • Un serveur web
  • Toute bibliothèque nécessaire pour une extension spécifique (comme GD, PDF, etc.)

Lors de la compilation depuis SVN directement, ou après une modification des sources personnalisée, vous pourriez avoir aussi besoin de :

  • autoconf: 2.13
  • automake: 1.4+
  • libtool: 1.4.x+ (sauf 1.4.2)
  • re2c: Version 0.13.4 ou plus récent
  • flex: Version 2.5.4 (pour PHP <= 5.2)
  • bison: Version 1.28 (recommandée), 1.35, ou 1.75

La configuration initiale de PHP et le processus de configuration sont contrôlés par l'utilisation du fichier configure et de ces options en lignes de commande. Vous pouvez récupérer une liste de toutes les options disponibles accompagnées d'une courte description en exécutant la commande ./configure --help. Notre manuel documente les différentes options séparément. Vous pouvez trouver les options internes en annexe, bien que les différentes options spécifiques à chaque extension sont décrites sur les pages de référence.

Lorsque PHP est configuré, vous êtes prêt à construire le module et/ou l'exécutable. La commande make devrait s'occuper de cela. Si elle échoue et que vous ne savez pas pourquoi, lisez la section Problèmes.


Apache 1.3.x sur les systèmes Unix

Cette section contient des notes spécifiques pour l'installation de PHP avec Apache sur les systèmes Unix. Des notes spécifiques pour Apache 2 sont aussi disponibles sur une page séparée.

Vous pouvez sélectionner des options à ajouter au fichier configure à la ligne 10 depuis la liste complète des options de configuration. Les numéros de versions ont été omis ici afin de s'assurer que les instructions ne soient pas incorrectes. Vous devrez donc remplacer les 'xxx' par les versions correctes de vos fichiers.

Exemple #1 Instructions d'installation de PHP (en module Apache)

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

10. Maintenant, configurez votre PHP. C'est le moment où vous configurez PHP
    avec diverses options, comme les extensions qui seront activées. Lancez
    ./configure --help pour une liste des options disponibles. Dans notre exemple,
    nous ferons un ./configure assez simple avec uniquement le support Apache et MySQL.
    Votre chemin vers apxs peut être différent de notre exemple.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    Si vous décidez de changer vos options de configuration après l'installation,
    vous aurez juste besoin de répéter les trois dernières étapes. Vous aurez aussi besoin
    de redémarrer apache pour que le nouveau module soit chargé. Une recompilation de
    Apache n'est pas nécessaire.

    Notez que, à moins de l'avoir explicitement désactivé, 'make install' installera aussi PEAR,
    et des outils PHP tels que phpize, installera le CLI PHP, etc.

13. Configurez votre fichier php.ini :

      cp php.ini-development /usr/local/lib/php.ini

    Vous pouvez éditer votre fichier .ini pour régler certaines options PHP. Si vous souhaitez
    votre php.ini à un autre endroit, utilisez --with-config-file-path=/votre/chemin lors de
    l'étape 10.

    Si vous utilisez plutôt php.ini-production, assurez-vous de lire l'ensemble des changements
    qui y sont contenus, car ils modifient le fonctionnement de PHP.

14. Éditez votre httpd.conf afin de charger le module PHP. Le chemin dans la partie droite de la
    directive LoadModule doit pointer vers l'endroit où se trouve le module PHP sur votre système.
    Le make install lancé plus haut l'y aura certainement déjà déposé pour vous, 
    mais assurez vous en.

      LoadModule php5_module libexec/libphp5.so

15. Et dans la section AddModule de httpd.conf, quelque part en dessous de
    ClearModuleList, ajoutez ceci :

      AddModule mod_php5.c

16. Dites à Apache de faire analyser certaines extensions par PHP. Par exemple,
    faites analyser l'extension .php par PHP. Vous pouvez ajouter n'importe quelle(s)
    extension(s) à analyser juste en l'(les)ajoutant à la suite, séparée(s) par un espace.
    Nous ajouterons .phtml dans notre exemple.

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

    Il est assez fréquent de configurer l'extension .phps comme code source PHP colorisé,
    ce qui peut être fait ainsi :

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

17. Utilisez votre méthode habituelle pour démarrer le serveur Apache.
    (vous devez l'éteindre et le redémarrer, pas seulement lui envoyer
    un signal HUP ou USR1.)

Alternativement, pour installer PHP en tant qu'objet statique :

Exemple #2 Instructions d'installation (installation en tant que module statique d'Apache) de PHP

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-5.x.y.tar.gz | tar xf -
6.  cd php-5.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
    (La ligne ci-dessus est correcte ! Oui, nous savons que libphp5.a n'existe pas à
    ce moment. On ne le suppose pas non plus. Il sera créé.)

12. make
    (vous devriez avoir maintenant un binaire httpd que vous pouvez copier dans votre
    dossier de binaire Apache ; si c'est votre première installation, vous devez exécuter la
    commande "make install")

13. cd ../php-5.x.y
14. cp php.ini-development /usr/local/lib/php.ini

15. Vous pouvez éditer le fichier /usr/local/lib/php.ini pour définir les options de PHP.
    Éditez votre fichier httpd.conf ou srm.conf et ajoutez :
    AddType application/x-httpd-php .php

Suivant votre installation d'Apache et votre variante d'Unix, il existe de nombreuses façons d'arrêter et redémarrer Apache. Voici une liste des commandes typiques, pour différentes installations. Remplacez /path/to/ par le chemin d'accès à vos applications sur votre système.

Exemple #3 Exemples de commandes pour le redémarrage d'apache

1. Nombreuses variantes Linux SysV :
/etc/rc.d/init.d/httpd restart

2. Avec les scripts apachectl :
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl et httpsdctl (utilisant OpenSSL), similaires à apachectl :
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. En utilisant mod_ssl, ou un autre serveur SSL, vous pouvez vouloir l'arrêter
et le démarrer manuellement :
/path/to/apachectl stop
/path/to/apachectl startssl

L'emplacement des exécutables apachectl et http(s)dctl peut varier. Si votre système est pourvu des commandes locate, whereis ou which, elles peuvent vous aider à retrouver vos programmes.

Différents exemples de compilation PHP pour Apache suivent :

./configure --with-apxs --with-pgsql

Cette commande va créer une bibliothèque partagée libphp5.so qui sera chargée par Apache avec une ligne LoadModule dans le fichier httpd.conf. Le support PostgreSQL est aussi inclus dans cette bibliothèque.

./configure --with-apxs --with-pgsql=shared

Cette commande va créer une bibliothèque partagée libphp5.so pour Apache, mais va aussi créer la bibliothèque partagée pgsql.so qui sera chargée dans PHP avec une directive du fichier php.ini ou en la chargeant explicitement dans le script avec la fonction dl().

./configure --with-apache=/path/to/apache_source --with-pgsql

Cette commande va créer une autre bibliothèque partagée libmodphp5.a, un fichier mod_php5.c et quelques fichiers associés dans le dossier src/modules/php4 du dossier source Apache. Puis, vous devez compiler Apache avec --activate-module=src/modules/php5/libphp5.a et le système de compilation d'Apache va créer un fichier libphp5.a et le lier statiquement avec httpd. Le support PostgreSQL est alors inclus directement dans l'exécutable httpd, ce qui fait que le résultat final est un fichier unique httpd, qui inclut Apache et PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Comme précédemment, mais au lieu d'inclure le support PostgreSQL directement dans l'exécutable httpd final, vous allez obtenir une bibliothèque partagée pgsql.so que vous pouvez charger dans PHP soit grâce au fichier de configuration php.ini ou dynamiquement avec dl().

Lorsque vous faites votre choix entre les différents modes de compilation de PHP, vous devez prendre en compte leurs avantages et inconvénients respectifs. Les objets partagés permettent de compiler PHP et Apache de manière séparée, et vous n'aurez pas à compiler l'ensemble pour faire évoluer PHP. La compilation statique permet de charger et d'exécuter plus rapidement PHP. Pour plus d'informations, voyez la page web sur le » support des DSO.

Note:

Le httpd.conf par défaut d'Apache est fourni avec une section qui ressemble à ceci :

User nobody
Group "#-1"
À moins que vous ne changiez cette valeur par "Group nogroup" ou quelque chose comme ça ("Group daemon" est aussi classique), PHP ne sera pas capable d'ouvrir des fichiers.

Note:

Assurez-vous que vous spécifiez la version installée de apxs avec l'option --with-apxs=/path/to/apxs . Vous NE devez PAS utiliser la version d'apxs qui est dans les sources d'Apache, mais celle qui est réellement installée sur votre système.



Apache 2.x sur les systèmes Unix

Cette section contient les notes et conseils d'installation de PHP avec le serveur Apache 2.x sur les systèmes Unix.

Avertissement

Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2. Utilisez le mode prefork MPM, qui est le MPM par défaut pour Apache 2.0 et 2.2. Pour savoir pourquoi, lisez l'entrée de la FAQ correspondante à l'utilisation d'Apache 2 dans un environnement threadé MPM.

La » Documentation Apache est la meilleure source d'informations sur le serveur Apache 2.x. La plupart des informations sur les options d'installation d'Apache peut y être trouvée.

La version la plus récente du serveur HTTP Apache peut être obtenue depuis la » page de téléchargement d'Apache, et une version adaptée de PHP depuis les liens ci-dessus. Ce guide couvre uniquement les bases de fonctionnement d'Apache 2.x avec PHP. Pour plus d'informations, lisez la » documentation Apache. Les numéros de version sont omis ici, pour s'assurer que les instructions ne soient pas incorrectes. Dans les exemples ci-dessous, 'NN' devra être remplacé par la version spécifique d'Apache à utiliser.

Il y a actuellement 2 versions d'Apache 2.x - 2.0 et 2.2. Il y a plusieurs raisons de choisir l'une plutôt que l'autre ; néanmoins, la version 2.2 est actuellement la dernière versions disponible et c'est aussi celle que nous vous recommandons. Cependant, les instructions contenues dans ce guide devraient fonctionner pour la version 2.2 comme pour la version 2.0.

  1. Téléchargez le serveur HTTP Apache depuis le site ci-dessus et décompressez-le :

    gzip -d httpd-2_x_NN.tar.gz
    tar -xf httpd-2_x_NN.tar
    
  2. De la même façon, téléchargez et décompressez les sources de PHP :

    gunzip php-NN.tar.gz
    tar -xf php-NN.tar
    
  3. Compilez et installez Apache. Consultez la documentation sur l'installation d'Apache pour plus de détails quant à la compilation de ce logiciel.

    cd httpd-2_x_NN
    ./configure --enable-so
    make
    make install
    
  4. Maintenant que vous avez Apache 2.x.NN de disponible sous /usr/local/apache2, configurez-le avec le support pour le chargement de modules, ainsi que le MPM prefork standard. Pour tester votre installation, utilisez la procédure normale pour démarrer le serveur Apache, i.e. :

    /usr/local/apache2/bin/apachectl start
    
    et arrêtez-le pour continuer dans la configuration de PHP :
    /usr/local/apache2/bin/apachectl stop
    

  5. Maintenant, configurez et compilez PHP. Ce sera à ce moment là où vous pourrez personnaliser PHP avec les diverses options disponibles, comme la liste des extensions à activer. Dans notre exemple, nous effectuerons une configuration simple, avec Apache 2 et le support MySQL.

    Si vous voulez construire Apache depuis les sources, tel que décrit ci-dessus, l'exemple suivant devrait être correct concernant les chemins vers les apxs, mais si vous avez installez Apache d'une autre façon, vous devrez prendre en compte vos spécificités et ajustez les chemins apxs en conséquent. Notez que suivants les distributions, vous pourriez être amené à renommer apxs en apxs2.

    cd ../php-NN
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
    make
    make install
    

    Si vous décidez de modifier les options de configuration après l'installation, vous devrez exécuter de nouveau les étapes "configure", "make" et "make install". Vous n'aurez alors qu'à redémarrer Apache pour que le nouveau module prenne effet. Une re-compilation d'Apache n'est pas nécessaire.

    Notez que, sauf indications contraires, l'étape "make install" installera également PEAR, mais aussi divers outils PHP comme phpsize, PHP CLI et bien plus encore.

  6. Setup your php.ini

    cp php.ini-development /usr/local/lib/php.ini
    

    Vous devez éditer le fichier .ini pour définir les options PHP. Si vous préférez bouger ce fichier dans un autre répertoire, utilisez l'option --with-config-file-path=/some/path à l'étape 5.

    Si vous choisissez le fichier php.ini-production, assurez-vous de lire la liste des modifications correspondante car il peut affecter considérablement la façon dont PHP fonctionnera.

  7. Éditez le fichier httpd.conf pour charger le module PHP. Le chemin spécifié à droite de la chaîne LoadModule, doit correspondre au chemin système du module PHP. L'étape "make install" ci-dessus devrait avoir réalisé cette opération à votre place, mais une simple vérification permettra de s'en assurer.

    LoadModule php5_module modules/libphp5.so
  8. Dîtes à Apache d'analyser certaines extensions comme étant des scripts PHP. Par exemple, laissez Apache passer à PHP les fichiers dont l'extension est .php. Au lieu d'utiliser seulement la directive AddType d'Apache, nous souhaitons éviter tout risque potentiellement dangereux, lors d'un téléchargement de de la création de fichier comme exploit.php.jpg, d'exécution PHP. En utilisant cette exemple, vous pouvez avoir n'importe quelle extension d'analyser par PHP. Nous avons ajouté .php pour l'exemple.

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

    Ou, si vous voulez autoriser les fichiers .php, .php2, .php3, .php4, .php5, .php6, et .phtml à être analysés par PHP, mais rien d'autre, nous utiliserons ceci :

    <FilesMatch "\.ph(p[2-6]?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>

    Et pour autoriser les fichiers .phps à être gérer par le filtre du code source de PHP, et ains, être affichés comme code source avec la coloration syntaxique, utilisez ceci :

    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>

    mod_rewrite peut être utilisé pour permettre à n'importe quel fichier .php d'être affiché comme code source avec coloration syntaxique, sans pour autant avoir besoin de le renommer ou de le copier avec une extension .phps. :

    RewriteEngine On
    RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

    Le filtre de code source PHP ne devrait pas être actif sur des systèmes de production, car il peut exposer du code confidentielle ou des informations sensibles contenues dans le code source.

  9. Utilisez la procédure normale pour démarrer le serveur Apache, i.e. :

    /usr/local/apache2/bin/apachectl start
    

    Ou

    service httpd restart
    

Si vous avez suivi les étapes précédentes, vous avez maintenant un serveur web Apache2 fonctionnel avec le support PHP comme module SAPI. Bien sûr, il y a une multitude d'autres options de configuration de disponibles avec Apache et PHP. Pour plus d'informations, entrez la commande ./configure --help dans l'arbre source correspondant.

Apache devrait être compilé en mode multi-threadé, en sélectionnant le MPM worker, plutôt que le standard MPM prefork. Ceci est fait en ajoutant l'option suivante à l'argument de la commande "./configure", à l'étape 3 ci-dessus :


--with-mpm=worker

Cela ne devrait pas être entreprise sans être conscients des conséquences, et ayant au moins une juste compréhension de ce que cela implique. La documentation Apache concernant » MPM-Modules vous apportera d'importantes informations qui vous permettra de prendre votre décision.

Note:

La FAQ Apache MultiViews traite de l'utilisation MultiViews avec PHP.

Note:

Pour compilez une version multi-threadée d'Apache, le système cible doit supporter les threads. Dans ce cas, PHP doit également être construit avec l'expérimental Zend Thread Safety (ZTS). Sous cette configuration, toutes les extensions ne seront pas disponibles. Nous vous recommandons de compiler Apache avec le prefork MPM-Module.



Lighttpd 1.4 sur les systèmes Unix

Cette section contient des informations spécifiques sur l'installation de PHP avec Lighttpd 1.4 sur les systèmes Unix.

Reportez-vous à » Lighttpd pour une installation correcte de Lighttpd avant de continuer.

Fastcgi est le SAPI préféré pour connecter PHP et Lighttpd. Fastcgi active automatiquement php-cgi depuis PHP 5.3.0, mais pour les versions antérieures, vous devez configurer PHP avec l'option de compilation --enable-fastcgi. Pour vous assurez de l'activation de fastcgi, le résultat de la commande php -v doit contenir PHP 5.2.5 (cgi-fcgi). Avant PHP 5.2.3, fastcgi était activé dans le binaire PHP (php-cgi n'existait pas).

Appel de PHP par Lighttpd

Pour configurer Lighttpd afin qu'il se connecte à PHP et appel le processus fastcgi, vous devez éditez le fichier lighttpd.conf. Une connexion par sockets est la solution préférée pour les systèmes locaux.

Exemple #1 Portion du fichier lighttpd.conf

server.modules += ( "mod_fastcgi" )

fastcgi.server = ( ".php" =>
  ((
    "socket" => "/tmp/php.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
    "bin-environment" => (
      "PHP_FCGI_CHILDREN" => "16",
      "PHP_FCGI_MAX_REQUESTS" => "10000"
    ),
    "min-procs" => 1,
    "max-procs" => 1,
    "idle-timeout" => 20
  ))
)

La directive bin-path permet à lighttpd d'appeler le processus fastcgi dynamiquement. PHP appellera les fils suivant la variable d'environnement PHP_FCGI_CHILDREN. La directive "bin-environment" définit l'environnement pour les processus appelés. PHP terminera un processus fils lorsque le nombre de requêtes spécifié par PHP_FCGI_MAX_REQUESTS a été atteint. Les directives "min-procs" et "max-procs" peuvent généralement être ignorées avec PHP. PHP gère ces propres fils et caches opcode comme APC qui partage uniquement les fils gérés par PHP. Si "min-procs" est définit à quelque chose de supérieur à 1, le nombre total de réponses PHP sera multiplié par PHP_FCGI_CHILDREN (2 min-procs * 16 fils, donne 32 réponses).

Appel avec spawn-fcgi

Lighttpd fournit un programme appelé spawn-fcgi afin de rendre plus facile les appels des processus fastcgi.

Appel de php-cgi

Il est possible d'appeler des processus sans spawn-fcgi, avec un minimum de configuration. La variable d'environnement PHP_FCGI_CHILDREN contrôle le nombre de fils que PHP appelle pour gérer les demandes. La variable d'environnement PHP_FCGI_MAX_REQUESTS détermine la durée de vie, en nombre de requêtes, de chaque fils. Voici un script bash simple qui permet d'aider les appels aux répondeurs PHP.

Exemple #2 Appel des répondeurs FastCGI

#!/bin/sh

# Localisation du binaire php-cgi
PHP=/usr/local/bin/php-cgi

# Localisation  du fichier PID
PHP_PID=/tmp/php.pid

# Liaison à une adresse
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Liaison à un socket du domaine
FCGI_BIND_ADDRESS=/tmp/php.sock

PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000

env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
       PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
       $PHP -b $FCGI_BIND_ADDRESS &

echo $! > "$PHP_PID"

Connexion à des instances FCGI distantes

Les instances Fastcgi peuvent être appelées sur plusieurs machines distantes afin de répartir les applications.

Exemple #3 Connexion à des instances distantes de php-fastcgi

fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)


Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris

Cette section contient les notes et détails spécifiques à l'installation de PHP sur les serveurs Web Sun Java System Web Server, Sun ONE Web Server, iPlanet et Netscape server sur les systèmes Sun Solaris.

Depuis PHP 4.3.3, vous pouvez utiliser les scripts PHP avec le module NSAPI pour gérer des listes de dossiers et des pages d'erreurs personnalisées. Des fonctions supplémentaires sont disponibles pour assurer la compatibilité avec Apache. Pour du support sur les serverus courants, voyez la note sur les sous-requêtes.

Vous pouvez trouver plus d'informations sur la configuration de PHP avec Netscape Enterprise Server : » http://benoit.noss.free.fr/php/install-php4.html

Pour construire PHP avec les serveurs Web Sun JSWS/Sun ONE WS/iPlanet/Netscape, entrez le répertoire valide d'installation pour l'option --with-nsapi=[DIR]. Le répertoire par défaut est habituellement /opt/netscape/suitespot/. Lisez également le fichier /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Installez les packages suivants depuis le serveur » http://www.sunfreeware.com/ ou un miroir ad hoc :

    • autoconf-2.13
    • automake-1.4
    • bison-1_25-sol26-sparc-local
    • flex-2_5_4a-sol26-sparc-local
    • gcc-2_95_2-sol26-sparc-local
    • gzip-1.2.4-sol26-sparc-local
    • m4-1_4-sol26-sparc-local
    • make-3_76_1-sol26-sparc-local
    • mysql-3.23.24-beta (si vous voulez le support MySQL)
    • perl-5_005_03-sol26-sparc-local
    • tar-1.13 (GNU tar)

  2. Assurez-vous que le path inclut bien les dossiers nécessaires : PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin et rendez-le accessible à votre système avec export PATH.
  3. gunzip php-x.x.x.tar.gz (si vous avez une distribution .gz, ou bien allez en 4).
  4. tar xvf php-x.x.x.tar
  5. Passez dans votre dossier d'extraction PHP : cd ../php-x.x.x
  6. Pour les étapes suivantes, assurez-vous que /opt/netscape/suitespot/ correspond bien à votre installation du serveur netscape. Sinon, indiquez le chemin correct :

    ./configure --with-mysql=/usr/local/mysql \
    --with-nsapi=/opt/netscape/suitespot/ \
    --enable-libgcc

  7. Faites un make puis un make install.

Après avoir fait l'installation de base et lu les fichiers readme.txt, vous pouvez avoir besoin de faire des configurations supplémentaires.

Instructions de configuration pour Sun/iPlanet/Netscape

Tout d'abord, vous aurez besoin d'ajouter des chemins dans la variable LD_LIBRARY_PATH pour que Netscape trouve son bonheur. Il est préférable de le faire dans le script de démarrage du serveur Netscape. Les utilisateurs Windows peuvent ignorer cette étape. Le script de démarrage est souvent situé dans : /path/to/server/https-servername/start. Vous aurez peut être à éditer le fichier de configuration situé dans /path/to/server/https-servername/config/.

  1. Ajoutez les lignes suivantes dans mime.types en tant qu'administrateur :

    type=magnus-internal/x-httpd-php exts=php
    

  2. Éditez le fichier magnus.conf (pour les serveurs >= 6) ou le fichier obj.conf (pour les serveurs < 6) et ajoutez-y les lignes suivantes. shlib peut varier en fonction de votre OS. Pour Unix, c'est quelque chose comme /opt/netscape/suitespot/bin/libphp4.so. Il est conseillé de placer les lignes suivantes après les lignes de mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
    Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    
    (PHP >= 4.3.3) Le paramètre php_ini est optionnel mais, avec lui, vous pouvez placer votre php.ini dans le dossier de configuration de votre serveur web.

  3. Configurez l'objet par défaut dans le fichier obj.conf (pour les classes de serveur virtuel [version 6.0+] dans leur fichier vserver.obj.conf) :

    <Object name="default">
    .
    .
    .
    .#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    .
    .
    </Object>
    
    (PHP >= 4.3.3) Comme paramètres additionnels, vous pouvez ajouter quelques valeurs spéciales dans le php.ini. Par exemple, vous pouvez définir un spécifique docroot="/path/to/docroot" où le contexte php4_execute est appelé. Pour les init-keys booléens, utilisez les valeurs 0/1, et non pas "On","Off",... (cela ne fonctionnera pas correctement), e.g. zlib.output_compression=1 au lieu de zlib.output_compression="On"

  4. Cela est nécessaire uniquement si vous voulez configurer un répertoire pour accueillir des scripts PHP tout comme un répertoire cgi-bin :

    <Object name="x-httpd-php">
    ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
    Service fn=php4_execute [inikey=value inikey=value ...]
    </Object>
    
    Après cela, vous pouvez configurer un répertoire dans le serveur d'administration et y assigner le style x-httpd-php. Tous les fichiers dans ce répertoire seront exécutés comme étant du PHP. C'est pratique pour cacher l'usage de PHP en renommant les fichiers en .html.

  5. Configuration de l'identification : les identifications PHP ne peuvent être utilisées avec aucune autre identification. TOUTES LES IDENTIFICATIONS SONT PASSEES À VOS SCRIPTS PHP. Pour configurer l'identification PHP pour tout le serveur web, ajoutez la ligne suivante à votre objet par défaut :

    <Object name="default">
    AuthTrans fn=php4_auth_trans
    .
    .
    .
    </Object>
    

  6. Pour utiliser l'identification PHP dans un seul répertoire, ajoutez ce qui suit :

    <Object ppath="d:\path\to\authenticated\dir\*">
    AuthTrans fn=php4_auth_trans
    </Object>
    

Note:

La taille de la pile que PHP utilise dépend de la configuration du serveur Web. Si vous rencontrez des crashs avec les grands scripts PHP, il est recommandé d'augmenter la taille de la pile avec la console d'administration : dans la section "MAGNUS EDITOR".

Environnement CGI et modifications recommandées du php.ini

Il est important de garder en tête que iPlanet/SunONE/Netscape est un serveur Web multi-threadé. Comme toutes les requêtes se situent dans le même contexte (c'est le contexte sur serveur Web), et que ce contexte est unique, si vous voulez accéder à des variables comme PATH_INFO, HTTP_HOST etc., il n'est pas recommandé d'y accéder à l'ancienne manière de PHP, avec la fonction getenv() ou une autre méthode (register globals, $_ENV). De cette manière, vous n'aurez que des valeurs d'environnement du serveur, et non pas des valeurs correctes pour le CGI.

Note:

Pourquoi est-ce que les variables CGI sont invalides ?

C'est lié au fait que le processus du serveur Web est lancé par l'administrateur du serveur, qui utilise le script de lancement au démarrage. En fait, il aurait fallu que vous lanciez vous-même le processus. C'est pour cela que l'environnement du serveur Web contient des variables d'environnement CGI. Vous pouvez vérifier cela en lançant le serveur Web depuis un autre endroit que l'administrateur du serveur : utilisez la ligne de commande Unix en tant que root : vous verrez alors qu'il n'y a pas de variables d'environnement.

Changez simplement vos scripts pour lire les variables CGI, en utilisant le tableau superglobal $_SERVER. Si vous avez d'autres scripts qui utilisent encore $HTTP_HOST et compagnie, il est recommandé d'activer l'option register_globals dans le php.ini et de changer l'ordre des variables. IMPORTANT : supprimez le "E" dans cette option, car vous n'en avez pas besoin pour cet environnement.

variables_order = "GPCS"
register_globals = On

Utilisation particulière pour les pages d'erreurs ou les listages spécifiques de dossier (PHP >= 4.3.3)

Vous pouvez utiliser PHP pour générer des pages d'erreurs de type "404 Not Found" ou apparentée. Ajoutez la ligne suivante dans le fichier obj.conf pour chaque page d'erreur que vous souhaitez remplacer :

Error fn="php4_execute" code=XXX script="/chemin/vers/script.php" [inikey=value inikey=value...]
XXX est le code d'erreur HTTP. Effacez toute autre directive Error qui pourrait interférer avec la vôtre. Si vous voulez utiliser une page pour toutes les erreurs qui existent, laissez le paramètre code vide. Votre script peut obtenir le code de statut HTTP dans la variable $_SERVER['ERROR_TYPE'].

Une autre possibilité est de générer une liste de dossiers personnalisée. Créez simplement un script PHP qui affiche le contenu du dossier, et remplacez la ligne Service par défaut par type="magnus-internal/directory" dans obj.conf avec ceci :

Service fn="php4_execute" type="magnus-internal/directory" script="/chemin/vers/script.php" [inikey=value inikey=value...]
Pour ces deux points, l'URI originale et l'URI traduite sont dans les variables $_SERVER['PATH_INFO'] et $_SERVER['PATH_TRANSLATED'].

Note au sujet de nsapi_virtual() et des requêtes (PHP >= 4.3.3)

Le module NSAPI supporte désormais la fonction nsapi_virtual() (alias : virtual()), pour réaliser des sous requêtes au serveur Web, et inclure le résultat dans une page. Le problème est que cette fonction utilise une fonctionnalité non documentée de la bibliothèque NSAPI. Sous Unix, ce n'est pas un problème, car le module va automatiquement rechercher les fonctions nécessaires, et les utiliser si elles sont disponibles. Sinon, nsapi_virtual() sera désactivée.

Note:

Soyez prévenu : le support de nsapi_virtual() est EXPERIMENTAL !



CGI et configuration en ligne de commande

Par default, PHP est construit comme programmes à la fois CLI et CGI, pouvant être utilisé comme processeur CGI. Si vous utilisez un serveur qui supporte le module PHP, vous devriez en général utiliser cette solution pour des raisons de performances. Cependant, la version CGI permet aux utilisateurs de lancer des pages PHP sous différent id utilisateurs (Unix).

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

Tests

Si vous avez compilé PHP comme programme CGI, vous pouvez tester votre produit en tapant : make test. C'est toujours une bonne chose de tester le résultat d'une compilation. Cela vous permet de repérer des problèmes entre PHP et votre plate-forme, plutôt que d'attendre qu'ils surviennent.

Utiliser les variables prédéfinies

Certaines variables d'environnement fournies par les serveurs Web ne sont pas disponibles dans les » spécifications CGI/1.1 actuelles. Seules les variables suivantes sont définies, et les autres doivent être considérées comme spécifiques aux serveurs Web : AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL et SERVER_SOFTWARE.



Installation sous HP-UX

Cette section contient les notes et conseils d'installation de PHP sur les distributions HP-UX.

Il y a deux façons d'installer PHP sur les systèmes HP-UX. Soit en le compilant, soit en installant des binaires précompilés.

Les paquets pré-compilés officiels sont disponibles ici : » http://software.hp.com/

En attendant que cette section du manuel soit réécrite, la documentation concernant la compilation de PHP (ainsi que les extensions associées) sur les systèmes HP-UX a été effacée. Pour le moment, veuillez-vous référer à cette ressource externe : » Mise en place d'Apache et de PHP sous HP-UX 11.11



Installation sur les systèmes OpenBSD

Cette section contient les notes spécifiques à l'installation de PHP sous » OpenBSD 3.6.

Utilisation des paquets binaires

Cette méthode est la méthode recommandée pour installer PHP sur OpenBSD. C'est aussi la méthode la plus simple. Le paquet core a été séparé des modules et chacun d'entre eux peut être installé et supprimé indépendamment des autres. Les fichiers dont vous avez besoin sont sur le CD OpenBSD ou sur le site FTP.

Le paquet principal que vous devez installer est php4-core-4.3.8.tgz, qui contient le moteur de base, plus gettext et iconv). Puis, jetez un oeil aux paquets de module, comme php4-mysql-4.3.8.tgz ou php4-imap-4.3.8.tgz. Vous devez utiliser la commande phpxs pour activer et désactiver ces modules dans votre php.ini.

Exemple #1 Exemple d'installation de PHP sous OpenBSD avec Ports

# pkg_add php4-core-4.3.8.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  (add in mysql)
# pkg_add php4-mysql-4.3.8.tgz
# /usr/local/sbin/phpxs -a mysql
  (add in imap)
# pkg_add php4-imap-4.3.8.tgz
# /usr/local/sbin/phpxs -a imap
  (remove mysql as a test)
# pkg_delete php4-mysql-4.3.8
# /usr/local/sbin/phpxs -r mysql
  (install the PEAR libraries)
# pkg_add php4-pear-4.3.8.tgz

Lisez la page de manuel Unix » packages(7) pour plus de détails sur les packages binaires d'OpenBSD.

Utilisation des ports

Vous pouvez aussi compiler PHP en utilisant » l'arbre des ports. Cette méthode est recommandée aux utilisateurs expérimentés de OpenBSD. Le port PHP4 est scindé en deux sous-dossiers : core et extensions. Le dossier extensions génère les sous paquets de tous les modules PHP. Si vous souhaitez ne pas créer ces modules, vous pouvez utiliser la commande en ligne no_* FLAVOR. Par exemple, pour ne pas compiler le module imap, utilisez FLAVOR avec la valeur no_imap.

Problèmes courants

  • L'installation par défaut d'Apache fonctionne dans un » contexte chroot(2), qui va limiter l'accès des scripts PHP au dossier /var/www. Vous devez donc créer un dossier /var/www/tmp pour que les sessions PHP soient stockées, ou bien utiliser une autre solution de sauvegarde. De plus, les sockets de bases de données doivent être placés dans ce dossier, ou bien utiliser l'interface localhost. Si vous utilisez des fonctions de réseau avec des fichiers comme /etc, par exemple /etc/resolv.conf, et /etc/services, vous devrez les rendre accessibles aussi dans /var/www/etc. Le paquet OpenBSD PEAR installe automatiquement les bons dossiers, ce qui fait que rien n'est nécessaire. Plus d'informations sur OpenBSD Apache sont disponibles sur » OpenBSD FAQ.
  • Le paquet OpenBSD 3.6 pour l'extension » gd requiert XFree86. Si vous n'avez pas besoin des fonctionnalités de polices qui demandent X11, installez le paquet php4-gd-4.3.8-no_x11.tgz.

Versions plus anciennes

Les anciennes versions de OpenBSD utilisaient le système des FLAVORS pour compiler statiquement PHP. Comme il est trop difficile de générer des packages binaires avec cette méthode, elle est considérée comme obsolète. Vous pouvez toujours utiliser les anciennes versions stables, mais sachez qu'elles ne sont plus supportées par l'équipe d'OpenBSD. Si vous avez des commentaires sur le sujet, le responsable actuel est Anil Madhavapeddy (avsm_arobase_openbsd_point_org).



Installation sous Solaris

Cette section contient les notes et conseils d'installation de PHP sur les distributions Solaris.

Logiciels nécessaires

L'installation Solaris oublie généralement les compilateurs C, et leurs utilitaires. Lisez cette FAQ pour savoir pourquoi est-ce que les versions GNU de certains de ces outils sont nécessaires. Voici la liste des outils nécessaires :

  • gcc (recommandé, mais d'autres compilateurs C peuvent fonctionner)
  • make
  • flex
  • bison
  • m4
  • autoconf
  • automake
  • perl
  • gzip
  • tar
  • GNU sed
De plus, vous devrez aussi installer (et peut être aussi compiler) toutes les bibliothèques nécessaires aux extensions comme MySQL, Oracle, etc.

Utilisation des paquets

Vous pouvez simplifier l'installation Solaris en utilisant pkgadd pour installer la plupart des composants.



Notes d'installation sous Debian GNU/Linux

Cette section contient des notes et des astuces spécifiques à l'installation de PHP sous » Debian GNU/Linux.

Avertissement

Les compilations non officielles de sources tierces ne sont pas supportées ici. Tout bogue devrait être reporté à l'équipe Debian sauf s'il peut être reproduit en utilisant les dernières compilations de notre » section téléchargements .

Bien que les instructions pour compiler PHP sous Unix s'appliquent aussi à Debian, cette page de manuel contient des informations spécifiques pour les autres manières d'installer PHP, telles que l'utilisation de apt-get ou aptitude. Cette page de manuel utilise indifféremment l'une ou l'autre.

Utilisation de APT

Tout d'abord, veuillez noter que d'autres paquets peuvent être souhaitables, comme libapache2-mod-php5 pour l'intégration avec Apache 2, et php-pear pour PEAR.

Ensuite, avant d'installer un paquet, il est sage de s'assurer que la liste des paquets est à jour. D'habitude, on le fait en utilisant la commande apt-get update.

Exemple #1 Exemple d'installation sous Debian avec Apache 2

# apt-get install php5-common libapache2-mod-php5 php5-cli

APT installera et activera automatiquement le module PHP 5 pour Apache 2, ainsi que toutes ses dépendances. Apache devra être relancé pour que les changements soient effectifs. Par exemple :

Exemple #2 Stopper et démarrer Apache une fois PHP installé

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

Un meilleur contrôle de la configuration

Dans l'exemple précédent, PHP a été installé avec juste les composants principaux. Il y a fort à parier que des modules supplémentaires soient nécessaires, tels que MySQL, cURL, GD, etc. Ils peuvent aussi être installés via la commande apt-get.

Exemple #3 Méthodes pour lister les paquets PHP 5 supplémentaires

# apt-cache search php5
# aptitude search php5
# aptitude search php5 |grep -i mysql

Ces exemples montreront de nombreux paquets, donc beaucoup spécifiques à PHP, comme php5-cgi, php5-cli et php5-dev. Déterminez ceux qui sont nécessaires et installez les comme n'importe quel autre en utilisant apt-get ou aptitude. Et vu que Debian effectue une vérification des dépendances, on vous avertira de ces dernières, comme pour installer MySQL et cURL :

Exemple #4 Installer PHP avec MySQL et cURL

# apt-get install php5-mysql php5-curl

APT ajoutera automatiquement les bonnes lignes aux fichiers connexes à php.ini, comme /etc/php5/apache2/php.ini, /etc/php5/conf.d/pdo.ini, etc. et selon l'extension, il ajoutera des entrées semblables à extension=foo.so. De plus, redémarrer le serveur web (Apache, par exemple) est nécessaire pour que ces changements soient effectifs.

Problèmes courants

  • Si les scripts PHP ne sont pas interprétés par le serveur web, il est probable que PHP n'ait pas été ajouté aux fichier de configuration du serveur web, c'est-à-dire, sous Debian, /etc/apache2/apache2.conf ou équivalent. Consultez le manuel Debian pour davantage de détails.
  • Si une extension a apparemment été installée mais que ses fonctions ne sont pas définies, assurez vous que les lignes adéquates ont été insérées dans les fichiers .ini et/ou que le serveur web a été redémarré après l'installation.
  • Il y a deux commandes de base pour installer des paquets sous Debian (et d'autres variantes de Linux) : apt-get et aptitude. Expliquer les différences subtiles entre les deux sort du cadre de ce manuel.



Installation sur un système Mac OS X

Sommaire

Cette section contient les notes et conseils pour installer PHP sur un système Mac OS X. PHP est inclus avec les Macs, et pour compiler, la procédure est identique à l'installation sous Unix.


Utilisation des paquets

Il existe quelques versions pré-packagées et pré-compilées de PHP pour Mac OS X. Cela peut être utile pour mettre en place une configuration standard, mais si vous avez besoin d'accéder à des fonctionnalités spécifiques (comme un serveur sécurisé, ou un pilote de bases de données exotiques), vous aurez à compiler PHP et/ou votre serveur Web vous-même. Si vous n'êtes pas familier avec la compilation et la mise en place d'applications, il est bon de vérifier si personne d'autre n'a pas déjà réalisé un paquet contenant les fonctionnalités que vous désirez.

Les ressources suivantes offrent la possibilité d'installer des paquets et des binaires précompilés pour PHP sous Mac OS :



Utilisation de PHP embarqué

PHP est fourni en standard avec Macs depuis OS X version 10.0.0. Activer PHP avec le serveur Web par défaut nécessite de décommenter quelques lignes dans le fichier de configuration d'Apache httpd.conf tandis que le mode CGI et/ou CLI sont activés par défaut (accès simple via le terminal).

L'activation de PHP en suivant ces instructions permet de configurer rapidement un environnement local de développement. Il est vivement recommandé de toujours mettre à jour PHP à sa version la plus récente. Comme la plupart des programmes, les nouvelles versions sont créées pour corriger les bogues et ajouter des fonctionnalités et c'est le cas de PHP. Reportez-vous à la documentation de l'installation de MAC OS X pour plus de détails. Les instructions suivantes sont destinées au débutant, en fournissant juste assez de détails pour mettre en place une configuration par défaut pour travailler. Tous les utilisateurs sont vivement encouragés à compiler et installer une version récente du paquet.

Le type d'installation standard utilise mod_php, et active le mod_php embarqué sur Mac OS X pour le serveur Web Apache (le serveur Web par défaut qui est accessible via les préférences systèmes), en quelques étapes :

  1. Trouvez et ouvrez le fichier de configuration d'Apache. Par défaut, ce sera : /private/etc/apache2/httpd.conf Utilisez le programme Finder ou Spotlight pour trouver ce fichier peut s'avérer difficile, sachant que, par défaut, il appartient à l'utilisateur root.

    Note: Une façon de l'ouvrir est d'utiliser un éditeur de texte Unix dans un terminal, par exemple, nano, et sachant que le fichier est la propriété de l'utilisateur root, vous devrez utiliser la commande sudo pour l'ouvrir (en tant que root) ; aussi, vous devrez entrer la commande suivante dans votre Terminal (votre mot de passe vous sera demandé) : sudo nano /private/etc/apache2/httpd.conf Quelques commandes nano : ^w (recherche), ^o (sauvegarde), et ^x (sortie) où ^ représente la touche Ctrl.

    Note: Les versions de Mac OS X antérieures à 10.5 fournissent d'anciennes versions de PHP et d'Apache. Aussi, le fichier de configuration d'Apache sur les machines originales peut être /etc/httpd/httpd.conf.

  2. Avec un éditeur de texte, décommentez les lignes (en effaçant le caractère #) qui ressemblent aux lignes suivantes (ces 2 lignes ne se trouvent pas au même endroit) :

    # LoadModule php5_module libexec/httpd/libphp5.so
    
    # AddModule mod_php5.c
    
    Notez le chemin. Dans le futur, lorsque vous compilerez PHP, les fichiers ci-dessus doivent être remplacés ou commentés.

  3. Assurez-vous que les extensions désirées soient analysées par PHP (exemples : .php .html et .inc)

    Sachant que ce comportement a déjà été activé dans votre fichier httpd.conf (depuis Mac Panther), une fois PHP activé, les fichiers .php seront automatiquement analysés par PHP.

    <IfModule mod_php5.c>
        # If php is turned on, we respect .php and .phps files.
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        # Since most users will want index.php to work we
        # also automatically enable index.php
        <IfModule mod_dir.c>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    

    Note:

    Avant OS X 10.5 (Leopard), PHP 4 était livré par défaut plutôt que PHP 5. Ainsi, les instructions ci-dessus diffèreront juste en changeant 5 en 4. 5's to 4's.

  4. Assurez-vous que DirectoryIndex charge le fichier index par défaut. Ceci est également définit dans le fichier httpd.conf. Normalement, les fichiers index.php et index.html sont utilisés. Par défaut, index.php est activé car il est également dans la vérification de PHP ci-dessus. Ajustez-le suivant votre besoin.
  5. Définissez le chemin vers le fichier php.ini ou utilisez le chemin par défaut. Le chemin par défaut sur Mac OS X is /usr/local/php/php.ini et un appel à la fonction phpinfo() révèlera cette information. Si aucun fichier php.ini n'est utilisé, PHP utilisera toutes les valeurs par défaut. Reportez-vous à la FAQ sur "trouver le fichier php.ini".
  6. Trouvez et définissez le DocumentRoot C'est le dossier principal pour tous les fichiers Web. Les fichiers dans ce dossier seront servis par le serveur Web, et donc, les fichiers PHP seront analysés par PHP avant de les envoyer au navigateur. Le chemin par défaut est /Library/WebServer/Documents mais peut être défini à n'importe quelle valeur dans le fichier httpd.conf. De plus, le dossier DocumentRoot pour les différentes utilisateurs est /Users/yourusername/Sites
  7. Créez un fichier phpinfo().

    La fonction phpinfo() affiche les informations sur PHP. Créez un fichier dans le DocumentRoot avec le code PHP suivant :

    <?php phpinfo(); ?>

  8. Redémarrez Apache et chargez le fichier PHP que nous venons de créer. Pour redémarrez, exécutez la commande sudo apachectl graceful dans un terminal ou arrêter/démarrer l'option "Personal Web Server" dans les préférences systèmes OS X. Par défaut, le chargement de fichiers locaux dans le navigateur s'effectue via des URL comme ceci : http://localhost/info.php ou, si vous utilisez le DocumentRoot d'un dossier utilisateur, l'URL ressemblera à : http://localhost/~yourusername/info.php

CLI (ou CGI dans les anciennes versions) est nommé php et réside normalement dans /usr/bin/php. Ouvrez un terminal, lisez la section sur la ligne de commande du manuel PHP, et exécutez la commande php -v pour vérifier la version PHP de ce binaire. Un appel à la fonction phpinfo() pourra également vous révéler cette information.



Compiler PHP sur Mac OS X

Référez-vous au guide d'installation sous Unix pour compiler PHP sur Mac OS X.




Installation sur les système Windows

Sommaire

Cette section est applicable à Windows 98/Me et Windows NT/2000/XP/2003. PHP devrait fonctionner sur les plates-formes 16 bits comme Windows 3.1 et parfois, on décrira les plates-formes supportées sous le nom de Win32. Windows 95 n'est plus supporté à partir de la version 4.3.0 de PHP.

Note:

Windows 98/Me/NT4 n'est plus supporté depuis PHP 5.3.0.

Note:

Windows 95 n'est plus supporté depuis PHP 4.3.0.

Il y a deux méthodes principales pour installer PHP sous Windows : soit manuellement, soit avec l'installeur.

Si vous avez Microsoft Visual Studio, vous pouvez aussi compiler PHP à partir des sources.

Une fois que PHP est installé sur votre Windows, vous pouvez aussi ajouter diverses extensions.

Avertissement

Il y a beaucoup d'installeurs "tout en un" sur Internet, mais aucun n'est approuvé par Php.net, car nous pensons que l'utilisation d'un des paquets officiels pour Windows depuis » http://www.php.net/downloads.php reste le meilleur choix et vous assurera d'avoir un système sécurisé et optimisé.


L'installeur Windows (PHP version 5.1.0 et inférieures)

L'installeur Windows de PHP disponible depuis les pages de » http://www.php.net/downloads.php, installe la version CGI de PHP, et configure les serveurs web IIS, PWS, et Xitami. L'installeur n'inclut aucune extension externe supplémentaire de PHP (php_*.dll), vous les trouverez uniquement dans le paquet zippé Windows et dans les téléchargements PECL.

Note:

Notez bien que bien que l'installeur soit une méthode simple pour installer PHP, il est limité dans plusieurs aspects : par exemple, la configuration automatique des extensions n'est pas prise en compte. Utiliser l'installateur n'est pas la méthode préférée pour installer PHP.

Tout d'abord, installez votre serveur HTTP favori sur votre système et assurez-vous qu'il fonctionne.

Exécutez l'installeur et suivez les instructions fournies par l'assistant. Deux types d'installation sont fournis : standard, qui utilise toutes les configurations par défaut les plus pratiques, et avancée, qui pose un maximum de questions pour paramétrer le plus finement.

L'assistant d'installation rassemble suffisamment d'informations pour configurer php.ini ainsi que certains serveurs web pour utiliser PHP. Un des serveurs web pour lequel l'installeur PHP n'effectue pas de configuration automatique est Apache, vous devez donc le configurer manuellement.

Une fois l'installation terminée, l'installeur vous informera que vous devez redémarrer. Suivez ce conseil, ou commencez à utiliser PHP immédiatement.

Avertissement

Gardez bien à l'esprit que cette installation de PHP n'est pas sécurisée. Si vous voulez avoir une installation sécurisée de PHP, vous devriez commencer par lire la documentation, et choisir toutes vos options avec soin. Cet installeur automatique vous permet de réaliser l'installation en un tour de main, mais n'est pas destiné à l'utilisation sur des serveurs de production.



Installeur Windows (PHP 5.2 et suivant)

L'installeur PHP pour Windows pour les versions suivantes de PHP est construit en utilisant la technologie MSI via le kit d'outils Wix (» http://wix.sourceforge.net/). Il installe et configure PHP ainsi que toutes les extensions internes et PECL, mais aussi, configure les serveurs web les plus populaires comme IIS, Apache, et Xitami.

Tout d'abord, installez votre serveur HTTP (web) sur votre système et assurez-vous qu'il fonctionne correctement. Puis, utilisez l'un des types d'installation de PHP suivants.

Installation normale

Exécutez l'installeur MSI et suivez les instructions fournies par l'assistant d'installation. Il vous sera demandé de sélectionner le serveur Web que vous voulez configurer en premier, ainsi que tous les détails de configuration nécessaires.

Ensuite, il vous sera demandé de sélectionner quelles fonctionnalités et extensions vous voulez installer et activer. En sélectionnant "Will be installed on local hard drive" dans le menu pour chaque élément, vous pouvez contrôler l'installation ou non de la fonctionnalité. En sélectionnant "Entire feature will be installed on local hard drive", vous pourrez installer toutes les sous-fonctionnalités de la fonctionnalité principale (par exemple, en sélectionnant la fonctionnalité "PDO", vous installerez également tous les drivers PDO).

Avertissement

Il n'est pas recommandé d'installer toutes les extensions par défaut, sachant que la plupart nécessite des dépendances externes à PHP afin de fonctionner correctement. Préférez l'utilisation du mode de réparation qui est accessible via le panneau de contrôle "Ajout/Suppression de programmes" pour activer ou désactiver les extensions ou fonctionnalités, après l'installation.

L'installeur configurera donc PHP pour l'utiliser sous Windows, le fichier php.ini ainsi que certains serveurs Web. L'installeur configure actuellement IIS, Apache, Xitami et Sambar ; si vous utilisez un serveur web différent de ceux-ci, vous devrez le configurer manuellement.

Installation silencieuse

L'installeur supporte également un mode silencieux, qui est utile pour les administrateurs systèmes pour déployer PHP facilement. Pour utiliser le mode silencieux, entrez la commande suivante :

msiexec.exe /i php-VERSION-win32-install.msi /q

Vous pouvez contrôler le dossier d'installation en le passant comme paramètre à l'installeur. Par exemple, pour installer PHP dans le dossier e:\php :

msiexec.exe /i php-VERSION-win32-install.msi /q INSTALLDIR=e:\php
Vous pouvez également utiliser la même syntaxe pour spécifier le dossier de configuration d'Apache (APACHEDIR), le dossier du serveur Sambar (SAMBARDIR), et le dossier du serveur Xitami (XITAMIDIR).

Vous pouvez également spécifier quelles fonctionnalités devront être installées. Par exemple, pour installer l'extension mysqli et l'exécutable CGI :

msiexec.exe /i php-VERSION-win32-install.msi /q ADDLOCAL=cgi,ext_php_mysqli

Voici la liste courante des fonctionnalités à installer :

MainExecutable - exécutable php.exe
ScriptExecutable - exécutable php-win.exe ( N'est plus disponible depuis PHP 5.2.10/5.3.0; il est maintenant inclut par défaut )
ext_php_* - les diverses extensions ( par exemple : ext_php_mysql for MySQL )
apache13 - module Apache 1.3
apache20 - module Apache 2.0
apache22 - module Apache 2.2
apacheCGI - exécutable Apache CGI
iis4ISAPI - module IIS ISAPI
iis4CGI - exécutable IIS CGI
iis4FastCGI - exécutable IIS CGI
NSAPI - module serveur Sun/iPlanet/Netscape
netserve - exécutable NetServe Web Server CGI
Xitami - exécutable Xitami CGI
Sambar - module Sambar Server ISAPI
CGI - exécutable php-cgi.exe
PEAR - installeur PEAR
Manual - manuel PHP au format CHM

Pour plus d'informations sur l'installation via les installeurs MSI depuis la ligne de commande, visitez » http://msdn.microsoft.com/en-us/library/aa367988.aspx

Mise à jour de PHP avec l'installeur

Pour effectuer une mise à jour, exécutez l'installeur soit en mode graphique, soit en ligne de commande. L'installeur lira vos options d'installation, effacera votre ancienne installation et réinstallera PHP avec les mêmes options que précédemment. Il est recommandé d'utiliser cette méthode pour mettre à jour votre installation de PHP plutôt que d'aller remplacer manuellement les fichiers dans le dossier d'installation.



Étapes pour une installation manuelle

Cette section contient les instructions pour installer manuellement et configurer PHP sous Microsoft Windows. Si vous recherchez la façon dont doit être utilisé l'installeur PHP pour installer et configurer PHP et un serveur Web sous Windows, référez-vous à l'installeur Windows (PHP 5.2 et suivants).

Sélection et téléchargement de PHP

Téléchargez l'archive PHP depuis » PHP pour Windows: Binaires et sources. Il y a plusieurs versions de l'archive zip - choisissez la version correspondante au serveur web que vous utilisez :

  • Si PHP est utilisé avec IIS, alors choisissez PHP 5.3 VC9 Non Thread Safe ou PHP 5.2 VC6 Non Thread Safe;

  • Si PHP est utilisé avec IIS7 ou supérieure et PHP 5.3+, alors les binaires VC9 de PHP doivent être utilisés.

  • Si PHP est utilisé avec Apache 1 ou Apache 2, alors choisissez PHP 5.3 VC6 ou PHP 5.2 VC6.

Note:

Les versions VC9 sont compilées avec le compilateur Visual Studio 2008 et sont optimisées en terme de performance et de stabilité. Les versions VC9 nécessitent d'avoir » Microsoft 2008 C++ Runtime (x86) ou » Microsoft 2008 C++ Runtime (x64) d'installé.

La structure et le contenu du paquet PHP

Décompressez le contenu de l'archive zip dans le dossier de votre choix, par exemple C:\PHP\. La structure des dossiers et des fichiers extraits depuis l'archive zip ressemble à ceci :

Exemple #1 Structure d'un paquet PHP 5


c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- php5.lib en version non thread safe
   |
   +--ext                          -- bibliothèques DLLs pour PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- vide 
   |
   +--pear                         -- copie initiale de PEAR
   |
   |
   |-go-pear.bat                   -- script d'installation de PEAR
   |
   |-...
   |
   |-php-cgi.exe                   -- exécutable CGI
   |
   |-php-win.exe                   -- exécution de scripts sans avoir un prompt de commande ouvert
   |
   |-php.exe                       -- exécutable de ligne de commande (CLI)
   |
   |-...
   |
   |-php.ini-development           -- configuration par défaut du php.ini
   |
   |-php.ini-production            -- configuration recommandée du php.ini
   |
   |-php5apache2_2.dll             -- n'existe pas dans la version non thread safe
   |
   |-php5apache2_2_filter.dll      -- n'existe pas dans la version non thread safe
   |
   |-...
   |
   |-php5ts.dll                    -- bibliothèque DLL coeur de PHP ( php5.dll en version non thread safe)
   | 
   |-...

Voici la liste des modules et des exécutables inclus dans l'archive zip de PHP :

  • go-pear.bat - le script de configuration de PEAR. Référez-vous à l'» installation de PEAR pour plus de détails.

  • php-cgi.exe - exécutable CGI qui peut être utilisé lors de l'exécution de PHP sous IIS via CGI ou FastCGI.

  • php-win.exe - l'exécutable PHP pour l'exécution de scripts PHP sans fenêtre de ligne de commande (par exemple, des applications PHP qui utilisent un GUI Windows).

  • php.exe - l'exécutable PHP pour l'exécution de scripts PHP dans une interface de ligne de commande (CLI).

  • php5apache2_2.dll - module Apache 2.2.X.

  • php5apache2_2_filter.dll - filtre Apache 2.2.X.

Modification du fichier php.ini

Après l'extraction du contenu du paquet PHP, copiez le fichier php.ini-production dans le fichier php.ini du même dossier. Si nécessaire, il est également possible de placer le fichier php.ini dans le dossier de votre choix mais cela nécessite d'autres étapes de configuration décrites dans la configuration de PHP.

Le fichier php.ini indique à PHP la façon doit il doit se configurer, mais aussi la façon dont il doit travailler avec l'environnement sur lequel il s'exécute. Voici quelques concfigurations du fichier php.ini qui aide PHP à fonctionner d'une meilleure façon sous Windows. Quelques-unes sont optionnelles. Il y a bien d'autres directives utiles pour votre environnement - référez-vous à la liste des directives du php.ini pour plus d'informations.

Directives nécessaires :

  • extension_dir = <chemin vers le dossier des extensions> - extension_dir doit pointer vers le dossier contenant les fichiers des extensions PHP. Le chemin peut être absolu (e.g. "C:\PHP\ext") ou relatif (e.g. ".\ext"). Les extensions listées ci-dessous dans le fichier php.ini doivent se trouver dans le dossier extension_dir.

  • extension = xxxxx.dll - Pour chaque extension que vous voulez activer, vous avez besoin d'une directive "extension=" qui indique à PHP quelles extensions du dossier extension_dir doivent être chargées au démarrage.

  • log_errors = On - PHP a une fonctionnalité permettant d'historiser les erreurs, pouvant être utilisée pour envoyer les erreurs dans un fichier, ou vers un service (i.e. syslog) et fonctionne en conjonction de la directive error_log ci-dessous. Lors de l'exécution sous IIS, log_errors devrait être activée, avec une valeur valide de error_log.

  • error_log = <chemin vers le fichier d'historisation des erreurs> - error_log doit spécifier le chemin absolu ou relatif vers un fichier où les erreurs PHP doivent être écrites. Le fichier doit être accessible en écriture par le serveur web. L'endroit commun de ce fichier est le dossier TEMP, par exemple, "C:\inetpub\temp\php-errors.log".

  • cgi.force_redirect = 0 - Cette directive est nécessaire pour le fonctionnement sous IIS. Elle est relative à la sécurité et est nécessaire par bons nombres de serveurs web. Cependant, son activation sous IIS fera échouer le moteur PHP sous Windows.

  • cgi.fix_pathinfo = 1 - Cette directive permet à PHP d'accéder aux informations concernant le chemin réel suivi par la spécification CGI. Cette directive est nécessaire lors de l'implémentation de FastCGI sous IIS.

  • fastcgi.impersonate = 1 - FastCGI sous IIS supporte la possibilité de rendre impersonnels les éléments relatifs à la sécurité lors d'un appel client. Ceci permet à IIS de définir le contexte de sécurité sur lequel la demande est effectuée.

  • fastcgi.logging = 0 - L'historisation FastCGI doit être désactivé sous IIS. S'il est activé, alors tous les messages de toutes les classes seront traités par FastCGI comme des conditions d'erreur, ce qui fera qu'IIS générera des exceptions HTTP 500.

Directives optionnelles

  • max_execution_time = ## - Cette directive demande à PHP un maximum de temps afin d'exécuter un script donné. Par défaut, c'est 30 secondes. Augmentez la valeur de cette direction si l'application PHP prend plus de temps à s'exécuter.

  • memory_limit = ###M - La mémoire maximale disponible pour le processus PHP, en méga-octets. Par défaut, c'est 128, ce qui est parfait pour la plupart des applications PHP. Pour des applications plus complexes, il peut être nécessaire d'augmenter cette valeur.

  • display_errors = Off - Cette directive indique à PHP si les messages d'erreur doivent être inclus dans le flux retourné au serveur web. Si défini à "On", alors PHP les enverra, suivants les classes d'erreur que vous avez définies avec la directive error_reporting, au serveur web comme partie du flux d'erreur. Pour des raisons de sécurité, il est recommandé de définir à "Off" cette directive sur les serveurs de production afin de ne pas révéler les informations concernant la sécurité, qui sont inclues dans les messages d'erreur.

  • open_basedir = <chemins vers les dossiers, séparés par un point virgule>, e.g. openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Cette directive spécifie le chemin vers le dossier où PHP est autorisé à effectuer des opérations sur le système de fichiers. Toute opération en dehors de ces chemins retournera une erreur. Cette directive est spécialement utile pour cantonner l'installation de PHP dans des environnements partagés afin d'éviter que les scripts PHP accèdent à tout fichier se trouvant en dehors du dossier racine du site web.

  • upload_max_filesize = ###M et post_max_size = ###M - La taille maximale autorisée, respectivement, d'un fichier téléchargé et des données de type POST. Les valeurs de ces directives devraient être augmentées si les applications PHP doivent effectuer de gros téléchargements, comme des images ou des fichiers vidéos.

PHP est maintenant configuré pour votre système. La prochaine étape est de choisir un serveur web et de la configurer pour y faire fonctionner PHP. Choisissez un serveur web depuis la table de contenus.

En plus de faire fonctionner PHP via un serveur web, PHP peut être exécuté depuis le ligne de commande, à la façon des scripts .BAT. Reportez-vous au chapitre sur la ligne de commande PHP sous Microsoft Windows pour plus d'informations.



ActiveScript

Cette section contient des notes spécifiques à l'installation d'ActiveScript.

ActiveScript est une SAPI uniquement disponible sous Windows qui vous permet d'utiliser des scripts PHP dans l'importe quel hôte respectant ActiveScript comme Windows Scripts Host, ASP/ASP.NET, Windows Script Components ou encore Microsoft Scriptlet control.

Depuis PHP 5.0.1, ActiveScript a été déplacé dans le dépôt » PECL. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Après avoir installé PHP, vous devez télécharger la bibliothèque ActiveScript (php5activescript.dll) et la placer dans le dossier principal de PHP (e.g. C:\php).

Après avoir récupéré tous les fichiers nécessaires, vous devez enregistrer cette bibliothèque DLL sur votre système. Pour réaliser cela, ouvrez un prompt de commande Windows (qui se trouve dans le menu démarrer). Allez dans votre répertoire PHP en tapant quelque chose comme cd C:\php. Pour enregistrer cette bibliothèque DLL, tapez juste : regsvr32 php5activescript.dll.

Pour tester si ActiveScript fonctionne, créez un nouveau fichier, nommé test.wsf (l'extension est vraiment très importante) et tapez :

<job xml:id="test">

 <script language="PHPScript">
  $WScript->Echo("Bonjour le monde !");
 </script>

</job>
Sauvegardez et double-cliquez sur le fichier. Si vous recevez une petite fenêtre disant "Bonjour le monde !", c'est que cela fonctionne.

Note:

En PHP 4, le moteur était appelé 'ActivePHP', donc, si vous utilisez PHP 4, vous devez remplacer 'PHPScript' par 'ActivePHP' dans l'exemple ci-dessus.

Note:

ActiveScript n'utilise pas le fichier php.ini par défaut. À la place, il regardera uniquement dans le répertoire où se trouve le .exe qui l'a chargé. Vous devez créer un fichier php-activescript.ini et le placer dans ce dossier si vous voulez charger des extensions, etc.



Microsoft IIS

Cette section contient les instructions spécifiques d'installation de PHP sous Microsoft Internet Information Services (IIS).



Microsoft IIS 5.1 et IIS 6.0

Cette section contient les instructions pour une installation manuelle sous IIS (Internet Information Services) 5.1 et IIS 6.0 de PHP sous Microsoft Windows XP et Windows Server 2003. Pour des instructions sur la configuration sous IIS 7.0 et supérieur sous Windows Vista, Windows Server 2008, Windows 7 et Windows Server 2008 R2, reportez-vous à la section Microsoft IIS 7.0 et suivant.

Configuration sous IIS pour traiter les requêtes PHP

Téléchargez et installez PHP suivant les instructions décrites dans les étapes d'installation manuelle.

Note:

La version PHP non thread-safe est recommandé lors de l'utilisation d'IIS. Ces versions sont disponibles sur la page » PHP pour Windows : Binaires et sources.

Configurez les options CGI- et FastCGI du fichier php.ini comme ceci :

Exemple #1 Options de configuration de CGI et FastCGI du fichier php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Téléchargez et installez l'extension » Microsoft FastCGI pour IIS 5.1 et 6.0. L'extension est disponible pour les plate-formes 32-bit et 64-bit - sélectionnez le bon paquet pour votre plate-forme..

Configurez l'extension FastCGI pour gérer les requêtes spécifiques PHP en exécutant la commande ci-dessous. Remplacez la valeur du paramètre "-path" avec le chemin absolu vers le fichier php-cgi.exe.

Exemple #2 Configuration de l'extension FastCGI pour gérer les requêtes PHP

cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"C:\PHP\php-cgi.exe"

Cette commande va créer un mapping des scripts IIS pour les extensions de fichiers *.php, ce qui aura pour effet la gestion de toutes les URLs se terminant par .php par l'extension FastCGI. De plus, la commande configurera l'extension FastCGI lui demandant d'utiliser l'exécutable php-cgi.exe pour traiter les requêtes PHP.

Note:

A ce point, les étapes d'installation et de configuration nécessaires sont terminées. Les instructions qui suivent dans cette section sont optionnelles mais vivement recommandées afin d'atteindre des fonctionnalités et des performances optimales de PHP sous IIS.

Usurpation d'identité et accès au système de fichiers

Il est recommandé d'activer l'usurpation d'identité pour FastCGI en PHP lors de l'utilisation avec IIS. Ce mode est contrôlé par la directive fastcgi.impersonate du fichier php.ini. Lorsque ce mode est activé, PHP effectuera toutes les opérations du système de fichiers avec le compte utilisateur qui a été choisi pour l'authentification IIS. Ceci assure que, même si le même processus PHP est partagé avec différents sites web IIS, les scripts PHP de ces sites web ne pourront pas accéder aux autres fichiers tant que différents comptes utilisateurs sont utilisées pour l'authentification IIS de chaque site web.

Par exemple, IIS 5.1 et IIS 6.0, dans leurs configurations par défaut, ont d'activé l'authentification anonyme avec le compte interne IUSR_<MACHINE_NAME> utilisé comme identité par défaut. Ceci signifie que, afin de permettre à IIS d'exécuter des scripts PHP, il est nécessaire de donner les droits de lecture au compte IUSR_<MACHINE_NAME> pour ces scripts. Si les applications PHP doivent effectuer des opérations en écriture sur certains fichiers ou écrire des fichiers dans des dossiers, le compte IUSR_<MACHINE_NAME> doit avoir les permissions en écriture sur ces différents éléments.

Pour déterminer quel est le compte utilisateur utilisé par l'authentification anonyme IIS, suivez ces étapes :

  1. Dans le menu de démarrage de Windows, choisissez : "Run:", tapez "inetmgr" et cliquez sur "Ok";

  2. Dépliez la liste des sites Web sous le nœud "Web Sites" de l'arbre, faîtes un clic droit sur un site web utilisé et sélectionnez "Properties";

  3. Cliquez sur l'onglet "Directory Security";

  4. Prenez note du champ "User name:" dans le dialogue "Authentication Methods"

Authentification anonyme pour 5.1 et IIS 6.0

Pour modifier la configuration des permissions sur des fichiers ou des dossiers, utilisez l'explorateur Windows ou la commande icacls.

Exemple #3 Configuration des permissions d'accès

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Définition du fichier index.php comme document par défaut sous IIS

Les documents par défaut IIS sont utilisés pour les requêtes HTTP qui ne spécifie pas de nom de document. Avec les applications PHP, index.php agit généralement comme document par défaut. Pour ajouter index.php à la liste des documents par défaut IIS, suivez ces étapes :

  1. Dans le menu de démarrage Windows, choisissez "Run:", tapez "inetmgr" et cliquez sur "Ok";

  2. faîtes un clic droit sur le nœud "Web Sites" de l'arbre et sélectionnez "Properties";

  3. Cliquez sur l'onglet "Documents";

  4. Cliquez sur le bouton "Add..." et entrez "index.php" comme "Default content page:".

Configuration de la page index.php comme document par défaut sous IIS

Configuration du recyclage FastCGI et PHP

Configurez l'extension IIS FastCGI pour le recyclage des processus PHP en utilisant la commande ci-dessous. La directive instanceMaxRequests de FastCGI contrôle le nombre de requêtes a traité par un seul processus php-cgi.exe avant l'extinction de l'extension FastCGI. La variable d'environnement PHP PHP_FCGI_MAX_REQUESTS contrôle le nombre de requêtes qu'un seul processus php-cgi.exe peut gérer avant de ce recycler lui-même. Assurez-vous que la valeur spécifiée pour la directive InstanceMaxRequests FastCGI est inférieure ou égale à la valeur spécifiée pour la directive PHP_FCGI_MAX_REQUESTS.

Exemple #4 Configuration du recyclage FastCGI et PHP

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-InstanceMaxRequests:10000

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

Configuration du délai d'expiration FastCGI

Augmentez le délai d'expiration pour l'extension FastCGI s'il y a des applications dont les scripts PHP mettent beaucoup de temps à s'exécuter. Les 2 configurations qui contrôlent les délais d'expiration sont ActivityTimeout et RequestTimeout. Referez-vous à la » configuration de l'extension FastCGI pour IIS 6.0 pour plus d'informations sur ces configurations.

Exemple #5 Configuration du délai d'expiration FastCGI

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-ActivityTimeout:90

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-RequestTimeout:90

Modification du dossier contenant le fichier php.ini

PHP recherche le fichier php.ini dans différents endroits et il est possible de modifier ces endroits de recherche du fichier php.ini en utilisant la variable d'environnement PHPRC. Pour demander à PHP de charger le fichier de configuration depuis un dossier personnalisé, exécutez la commande ci-dessous. Le chemin absolu du dossier contenant le fichier php.ini doit être spécifié sous la variable d'environnement PHPRC.

Exemple #6 Modification du dossier contenant le fichier php.ini

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHPRC:"C:\Some\Directory\"



Microsoft IIS 7.0 et suivants

Cette section contient les instructions pour une configuration manuelle d'IIS (Internet Information Services) 7.0 et suivants pour fonctionner avec PHP sous Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 et Windows Server 2008 R2. Pour des instructions de configuration d'IIS 5.1 et IIS 6.0 sous Windows XP et Windows Server 2003, reportez-vous à la documentation sur Microsoft IIS 5.1 et IIS 6.0.

Activation du support FastCGI sous IIS

Le module FastCGI est désactivé par défaut sous IIS. Les étapes pour l'activer diffèrent suivant la version de Windows utilisée.

Pour activer le support FastCGI sous Windows Vista SP1 et Windows 7 :

  1. Dans le menu de démarrage Windows, choisissez "Run:", tapez "optionalfeatures.exe" et cliquez sur "Ok";

  2. Dans la fenêtre "Windows Features", dépliez l'arbre "Internet Information Services", "World Wide Web Services", "Application Development Features", puis, activez la boite à cocher "CGI";

  3. Cliquez sur OK et attendez que l'installation se termine.

Activation du support FastCGI pour IIS7 sous Windows Vista SP1 et Windows 7

Pour activer le support FastCGI sous Windows Server 2008 et Windows Server 2008 R2 :

  1. Dans le menu de démarrage Windows, choisissez "Run:", tapez "CompMgmtLauncher" et cliquez sur "Ok";

  2. Si le rôle "Web Server (IIS)" n'est pas présent dans le nœud "Roles" , ajoutez-le en cliquant sur "Add Roles";

  3. Si le rôle "Web Server (IIS)" est présent, cliquez sur "Add Role Services", puis, activez la boite à cocher "CGI" sous le groupe "Application Development";

  4. Cliquez sur "Next", puis "Install", et attendez la fin de l'installation.

Activation du support FastCGI sous Windows Server 2008 et Windows Server 2008 R2

Configuration d'IIS pour traiter les requêtes PHP

Téléchargez et installez PHP suivant les instructions décrites dans les étapes d'installation manuelle.

Note:

La version PHP non thread-safe est recommandée lors de l'utilisation d'IIS. Les versions non thread-safe sont disponibles sur la page » PHP pour Windows : Binaires et sources.

Configurez les options CGI et FastCGI dans le fichier php.ini comme ceci :

Exemple #1 Options CGI et FastCGI dans le fichier php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Configurez le gestionnaire de mapping IIS pour PHP en utilisant soit l'interface de gestion utilisateurs IIS ou l'outil en ligne de commande.

Utilisation de l'interface de gestion utilisateurs IIS pour créer un gestionnaire de mapping pour PHP

Suivez ces étapes pour créer un gestionnaire de mapping IIS pour PHP dans l'interface de gestion utilisateurs IIS :

  1. Dans le menu démarrer de Windows, choisissez "Run:", tapez "inetmgr" et cliquez sur "Ok";

  2. Dans l'interface de gestion utilisateurs IIS, sélectionnez le nœud correspondant au serveur dans l'arbre "Connections";

  3. Dans la page "Features View", ouvrez la fonctionnalité "Handler Mappings";

    Création d'un gestionnaire de mapping IIS pour PHP : Localisation du gestionnaire de mappings

  4. Dans le panneau "Actions", cliquez sur "Add Module Mapping...";

  5. Dans la fenêtre "Add Module Mapping", entrez ceci :

    • Request path: *.php
    • Module: FastCgiModule
    • Executable: C:\[Path to PHP installation]\php-cgi.exe
    • Name: PHP_via_FastCGI

  6. Cliquez sur le bouton "Request Restrictions", puis, configurez le mappin pour appeler le gestionnaire uniquement si la requête est mappée à un fichier ou un dossier;

  7. Cliquez sur OK sur tous les dialogues pour sauvegarder la configuration.

Création d'un gestionnaire de mapping pour PHP : Ajout d'un gestionnaire de mapping

Utilisation de l'outil en ligne de commande pour créer un gestionnaire de mapping pour PHP

Utilisez la commande suivante pour créer une file de processus IIS FastCGI qui utilisera l'exécutable php-cgi.exe pour traiter les requêtes PHP. Remplacez la valeur du paramètre fullPath avec le chemin absolu vers le fichier php-cgi.exe.

Exemple #2 Création d'une file de processus IIS FastCGI

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
/+[fullPath='c:\PHP\php-cgi.exe']

Configurez IIS pour gérer les requêtes PHP spécifiques en exécutant la commande suivante. Remplacez la valeur du paramètre scriptProcessor avec le chemin absolu vers le fichier php-cgi.exe.

Exemple #3 Création d'un gestionnaire de mapping pour les requêtes PHP

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
/+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']

Cette commande crée un gestionnaire de mapping IIS pour les fichiers dont l'extension est *.php, ce qui fera que toutes les URLs qui se terminent par .php seront gérées par le module FastCGI.

Note:

À ce moment, les étapes d'installation et de configuration nécessaires sont terminées. Les instructions qui suivent sont optionnelles mais vivement recommandées afin d'avoir un maximum de fonctionnalités mais aussi de bonnes performances pour PHP sous IIS.

Usurpation d'identité et l'accès au système de fichiers

Il est recommandé d'activer l'usurpation d'identité FastCGI en PHP lors de l'utilisation avec IIS. Ce mode est contrôlé par la directive fastcgi.impersonate du fichier php.ini. Lorsque l'usurpation d'identité est active, PHP effectuera toutes les opérations sur le systèmes de fichiers en se faisant passer pour le compte utilisateur qui a été déterminé par l'authentification IIS. Ceci assure que même si le même processus PHP est partagé sur plusieurs sites Web IIS, les scripts PHP de ces sites Web ne pourront pas accéder aux autres fichiers sachant qu'un compte utilisateur différent est utilisé pour l'authentification IIS de chacun de ces sites.

Par exemple, IIS 7, dans sa configuration par défaut, a d'activer l'authentification anonyme avec le compte utilisateur interne IUSR, utilisé comme identité par défaut. Ceci signifie que, pour qu'IIS puisse exécuter des scripts PHP, il est nécessaire d'avoir une permission en lecture pour le compte utilisateur IUSR sur ces scripts. Si les applications PHP doivent effectuer des opérations en écriture sur certains fichiers ou écrire des fichiers dans des dossiers, alors le compte IUSR doit avoir les bonnes permissions en écriture.

Pour déterminer le compte utilisateur utilisé comme identité anonyme sous IIS 7, utilisez la commande suivante. Remplacez "Default Web Site" avec le nom du site web IIS que vous utilisez. Dans l'élément de configuration XML, regardez l'attribut userName.

Exemple #4 Déterminer le compte utilisé comme identité anonyme sous IIS

%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
/section:anonymousAuthentication

<system.webServer>
  <security>
    <authentication>
      <anonymousAuthentication enabled="true" userName="IUSR" />
    </authentication>
   </security>
</system.webServer>

Note:

Si l'attribut userName n'est pas présent dans l'élément anonymousAuthentication, ou s'il est vide, alors cela signifie que l'identité de l'application est bien l'identité anonyme pour ce site web.

Pour modifier la configuration sur les permissions de ces fichiers ou ces dossiers, utilisez l'interface de l'explorateur Windows ou la ligne commande icacls.

Exemple #5 Configuration des permissions d'accès aux fichiers

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Définir index.php comme document par défaut sous IIS

Les documents par défaut IIS sont utilisés pour les requêtes HTTP qui ne spécifient pas un nom de document. Avec les applications PHP, index.php agit généralement comme document par défaut. Pour ajouter index.php à la liste des documents par défaut d'IIS, utilisez la commande suivante :

Exemple #6 Définir index.php comme document par défaut sous IIS

%windir%\system32\inetsrv\appcmd.exe set config ^
-section:system.webServer/defaultDocument /+"files.[value='index.php']" ^
/commit:apphost

Configuration du recyclage FastCGI et PHP

Configurez l'extension IIS FastCGI pour le recyclage des processus PHP en utilisant la commande ci-dessous. La directive instanceMaxRequests de FastCGI contrôle le nombre de requêtes a traité par un seul processus php-cgi.exe avant l'extinction d'IIS. La variable d'environnement PHP PHP_FCGI_MAX_REQUESTS contrôle le nombre de requêtes qu'un seul processus php-cgi.exe peut gérer avant de ce recycler lui-même. Assurez-vous que la valeur spécifiée pour la directive InstanceMaxRequests FastCGI est inférieure ou égale à la valeur spécifiée pour la directive PHP_FCGI_MAX_REQUESTS.

Exemple #7 Configuration du recyclage FastCGI et PHP

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='c:\php\php-cgi.exe'].instanceMaxRequests:10000

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/+"[fullPath='C:\{php_folder}\php-cgi.exe'].environmentVariables.^
[name='PHP_FCGI_MAX_REQUESTS',value='10000']"

Configuration du délai d'expiration FastCGI

Augmentez le délai d'expiration pour l'extension FastCGI s'il y a des applications dont les scripts PHP mettent beaucoup de temps à s'exécuter. Les 2 configurations qui contrôlent les délais d'expiration sont activityTimeout et requestTimeout. Utilisez les commandes ci-dessous pour modifier la configuration du délai d'expiration. Assurez-vous de remplacer la valeur du paramètre fullPath par le chemin absolu vers le fichier php-cgi.exe.

Exemple #8 Configuration du délai d'expiration FastCGI

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].activityTimeout:"90"  /commit:apphost

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].requestTimeout:"90"  /commit:apphost

Modification du dossier contenant le fichier php.ini

PHP recherche le fichier php.ini dans différents endroits et il est possible de modifier ces endroits de recherche du fichier php.ini par défaut en utilisant la variable d'environnement PHPRC. Pour demander à PHP de charger le fichier de configuration depuis un dossier personnalisé, exécutez la commande ci-dessous. Le chemin absolu du dossier contenant le fichier php.ini doit être spécifié sous la variable d'environnement PHPRC.

Exemple #9 Modification du dossier contenant le fichier php.ini

appcmd.exe set config  -section:system.webServer/fastCgi ^
/+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^
[name='PHPRC',value='C:\Some\Directory\']" /commit:apphost



Installer PHP sous Microsoft Windows avec Apache 1.3.x

Cette section contient des notes et conseils spécifiques pour l'installation de PHP avec Apache 1.3.x sur les systèmes Microsoft Windows. Il y a aussi des instructions et des notes spécifiques pour Apache 2 sur une page séparée.

Note:

Lisez les étapes d'installation du manuel d'abord !

Il y a deux méthodes pour faire fonctionner PHP avec Apache 1.3.x sous Windows. La première est d'utiliser l'exécutable CGI (php.exe pour PHP 4 et php-cgi.exe pour PHP 5), l'autre est d'utiliser les modules Apache DLL. Dans les deux cas, vous devez arrêter le serveur Apache, éditer votre fichier httpd.conf pour dire à Apache de prendre PHP en compte et redémarrer Apache.

Maintenant que le module SAPI a été rendu plus stable sous Windows, nous recommandons son usage plutôt que celui de l'exécutable CGI, car il est plus transparent et sécurisé.

Bien qu'il puisse y avoir quelques différences de configuration de PHP sous Apache, le processus reste simple et à la portée du néophyte. Reportez-vous aux documentations Apache pour plus de détails sur ces directives.

Après avoir modifié le fichier de configuration, pensez à redémarrer le serveur web, par exemple avec NET STOP APACHE suivi de NET START APACHE, si vous utilisez Apache comme service Windows, ou bien utilisez vos alias classiques.

Note: Souvenez-vous que lorsque vous ajoutez des valeurs représentants un chemin dans la configuration d'Apache sous Windows, tous les antislash, comme c:\repertoire\fichier.ext, devraient être convertis en slashes, comme c:/repertoire/fichier.ext. Un slash final peut également être nécessaire pour les dossiers.

Installation de PHP en tant que module Apache

Vous devez ajouter les lignes suivantes à votre fichier de configuration Apache httpd.conf :

Exemple #1 PHP comme module Apache 1.3.x

Cet exemple suppose que PHP est installé dans le dossier c:\php. Ajustez le chemin si ce n'est pas le cas.

Pour PHP 4 :

# À ajouter à la fin de la section LoadModule
# N'oubliez pas de copier ce fichier depuis le dossier sapi !
LoadModule php4_module "C:/php/php4apache.dll"

# À ajouter à la fin de la section AddModule
AddModule mod_php4.c

Pour PHP 5 :

# À ajouter à la fin de la section LoadModule
LoadModule php5_module "C:/php/php5apache.dll"

# À ajouter à la fin de la section AddModule
AddModule mod_php5.c

Pour les deux :

# Ajoutez cette ligne dans les parenthèses conditionnelles <IfModule mod_mime.c>
AddType application/x-httpd-php .php

# Pour les fichiers de syntaxe colorisée .phps, ajoutez également
AddType application/x-httpd-php-source .phps

Installation comme binaire CGI

Si vous avez dézippé le paquet PHP dans le répertoire c:\php\ comme décrit dans la section sur les étapes d'installation du manuel, vous devez insérer ces lignes à votre fichier de configuration Apache pour activer le binaire CGI :

Exemple #2 PHP et Apache 1.3.x en tant que CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php

# Pour PHP 4
Action application/x-httpd-php "/php/php.exe"

# Pour PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

# spécifez le répertoire où se trouve php.ini
SetEnv PHPRC C:/php
Notez que la seconde ligne dans l'exemple ci-dessus peut être touvée dans l'actuelle version de votre httpd.conf, mais elle est commentée. Souvenez-vous également de faire correspondre le chemin c:/php/ à votre chemin actuel vers PHP.

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

Si vous voulez présenter la source de vos fichiers PHP avec la coloration syntaxique, il n'existe pas d'option équivalente de celle de la version module de PHP. Si vous choisissez de configurer Apache pour utiliser PHP en mode CGI, vous aurez besoin d'utiliser la fonction highlight_file(). Pour réaliser cela simplement, créez un script PHP dans un fichier et ajoutez ce code : <?php highlight_file('original_php_script.php'); ?>.



Installation des serveurs Apache 2.x sur les systèmes Microsoft Windows

Cette section contient les notes et conseils d'installation de PHP avec le serveur Apache 2.x sur les systèmes Microsoft Windows. Nous avons également des notes et des instructions pour Apache 1.3.x sur une page séparée.

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Note: Support Apache 2.2

Les utilisateurs d'Apache 2.2 doivent conserver à l'esprit que la bibliothèque DLL d'Apache 2.2 sont nommées php5apache2_2.dll plutôt que php5apache2.dll et n'est disponible que pour PHP 5.2.0 et suivant. Voir aussi » http://snaps.php.net/

Il est vivement recommandé de consulter la » documentation Apache pour avoir une meilleure connaissance du serveur web Apache 2.x. Lisez également les » notes spécifiques à Windows pour Apache 2.x avant de lire cette documentation.

Apache 2.x est prévu pour fonctionner sur les versions de Windows désignées comme serveurs, comme Windows NT 4.0, Windows 2000, Windows XP, ou Windows 7. Bien qu'Apache 2.x fonctionne parfaitement bien sous Windows 9x, le support de ces plateformes est incomplet et quelques fonctionnalités peuvent ne pas fonctionner correctement ; et il n'est pas prévu d'améliorer cela.

Téléchargez la version la plus récente de » Apache 2.x et une version de PHP. Suivez les instructions d'installation manuelle puis revenez ici pour réaliser l'intégration de PHP et Apache.

Il y a trois méthodes pour que PHP fonctionne avec Apache 2.x sous Windows. Vous pouvez exécuter PHP comme gestionnaire, comme CGI ou comme FastCGI.

Note: Souvenez-vous que lorsque vous ajoutez des valeurs représentants un chemin dans la configuration d'Apache sous Windows, tous les antislash, comme c:\repertoire\fichier.ext, devraient être convertis en slashes, comme c:/repertoire/fichier.ext. Un slash final peut également être nécessaire pour les dossiers.

Installation d'Apache comme gestionnaire

Vous devez insérer les lignes suivantes dans le fichier de configuration httpd.conf d'Apache pour charger le module PHP pour Apache 2.x :

Exemple #1 PHP et Apache 2.x comme gestionnaire

# 
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"

Note: Rappelez-vous de placer votre chemin actuel de PHP dans le chemin C:/php/ des exemples ci-dessous. Assurez-vous d'utiliser soit php5apache2.dll, soit php5apache2_2.dll dans la directive LoadModule et de vérifiez que le fichier correspondant est en réalité situé dans le chemin utilisé dans cette directive.

La configuration suivante activera le gestionnaire PHP pour tous les fichiers qui ont l'extension .php, même si d'autres extensions sont utilisées pour ces fichiers. Par exemple, un fichier nommé example.php.txt sera exécuté par le gestionnaire PHP. Pour vous assurez que seuls les fichiers se terminant par .php sont exécutés, utilisez plutôt la configuration suivante :

<FilesMatch \.php$>
      SetHandler application/x-httpd-php
 </FilesMatch>

Exécution de PHP en tant que CGI

Vous devriez consulter la » documentation Apache CGI où vous trouverez toutes les informations nécessaires à l'exécution d'Apache CGI.

Pour exécuter PHP en tant que CGI, vous devez placer tous vos fichiers php-cgi dans un dossier désigné comme dossier CGI en utilisant la directive ScriptAlias.

Vous devez ensuite insérer une ligne #! dans vos fichiers PHP, pointant vers le binaire PHP :

Exemple #2 PHP et Apache 2.x en tant que CGI

#!C:/php/php.exe
<?php
  phpinfo();
?>

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

Exécuter PHP en tant que FastCGI

L'exécution de PHP en tant que FastCGI a un beaucoup d'avantages contrairement à son exécution en tant que CGI. Sa mise en place de cette manière est assez simple :

Récupérez mod_fcgid depuis » http://httpd.apache.org/mod_fcgid/. Les bibliothèques Win32 sont disponibles au téléchargement depuis ce site. Installez le module suivant les instructions fournies.

Configurez votre serveur web comme ci-dessous, en vous assurant d'ajuster tous les chemins pour refléter votre configuration système particulière :

Exemple #3 Configuration d'Apache pour exécuter PHP en tant que FastCGI

LoadModule fcgid_module modules/mod_fcgid.so  

# Où se trouve le fichier php.ini ?
FcgidInitialEnv PHPRC        "c:/php" 

AddHandler fcgid-script .php  
FcgidWrapper "c:/php/php-cgi.exe" .php  
Les fichiers avec l'extension .php seront maintenant exécutés par le gestionnaire PHP FastCGI.



Serveurs Sun, iPlanet et Netscape servers sur Microsoft Windows

Cette section contient les notes et détails spécifiques à l'installation de PHP sur des serveurs Sun Java System Web Server, Sun ONE web Server, Netscape et iPlanet, sous Windows.

Depuis PHP 4.3.3, vous pouvez utiliser les scripts PHP avec le module NSAPI pour gérer des listes de dossiers et des pages d'erreurs personnalisées. Des fonctions supplémentaires sont disponibles pour assurer la compatibilité avec Apache. Pour du support sur les serveurs courants, voyez la note sur les sous-requêtes.

Configuration en CGI sur les serveurs Sun, iPlanet et Netscape

Pour installer PHP en CGI, suivez ce qui suit :

  • Copiez le fichier php4ts.dll dans votre dossier principal (le dossier où vous avez installé Windows)
  • Faites un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes :

    assoc .php=PHPScript
    ftype PHPScript=c:\php\php.exe %1 %*

  • Dans le serveur Netscape Enterprise Administration Server, créez un dossier shellcgi et supprimez-le aussitôt (cette opération crée 5 lignes importantes dans le fichier obj.conf et permet au serveur de gérer les scripts CGI).
  • Dans le serveur Netscape Enterprise Administration Server, créez un nouveau type MIME : Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php.
  • Recommencez pour chaque instance de serveur web qui devra exécuter PHP.

Plus de détails sur la configuration de PHP comme CGI sont disponibles à » http://benoit.noss.free.fr/php/install-php.html

Configuration NSAPI sur les serveurs Sun, iPlanet et Netscape

Pour installer PHP avec l'interface NSAPI, faites ceci :

  • Copiez le fichier php4ts.dll dans votre dossier systemroot (le dossier où vous avez installé windows)
  • Faites un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes :

    assoc .php=PHPScript
    ftype PHPScript=c:\php\php.exe %1 %*

  • Dans le serveur Netscape Enterprise Administration Server, créez un nouveau type MIME : Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php.
  • Éditez le fichier magnus.conf (pour les serveurs >= 6) ou obj.conf (pour les serveurs < 6) et ajoutez ce qui suit : Vous devez placer ces lignes après mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
    Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    
    (PHP >= 4.3.3) Le paramètre php_ini est optionnel, mais si vous le définissez, vous pourrez placer votre fichier php.ini dans le dossier de configuration de votre serveur web.

  • Configurez l'objet par défaut dans le fichier obj.conf (pour les classes de serveur virtuel [Sun Web Server 6.0+], dans le fichier vserver.obj.conf) : dans la section <Object name="default">, placez cette ligne nécessairement avant toutes les lignes 'ObjectType' et après toutes les lignes 'ObjectType' :

    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    
    (PHP >= 4.3.3) Comme paramètres supplémentaires, vous pouvez ajouter quelques valeurs spéciales du php.ini, par exemple, vous pouvez définir un docroot="/path/to/docroot" spécifique au contexte où php4_execute est appelé, non pas "On","Off",... (cela ne fonctionnerait pas correctement), e.g. zlib.output_compression=1 à la place de zlib.output_compression="On"

  • Cela n'est nécessaire que si vous voulez configurer un dossier qui ne contiendra que vos scripts PHP (tout comme un dossier cgi-bin) :

    <Object name="x-httpd-php">
    ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
    Service fn=php4_execute [inikey=value inikey=value ...]
    </Object>
    
    Après cela, vous pouvez configurer un dossier dans l'administration du serveur et lui assigner le style x-httpd-php. Tous les fichiers s'y trouvant seront exécutés comme étant des scripts PHP. Cela peut être pratique pour cacher l'usage de PHP en renommant les fichiers en .html.

  • Redémarrez votre serveur web pour que les modifications prennent effet.
  • Faites cela pour chaque instance du serveur web où vous voulez exécuter PHP.

Note:

Plus de détails sur la configuration de PHP comme filtre NSAPI peuvent être trouvés ici : » http://benoit.noss.free.fr/php/install-php4.html

Note:

La taille de la pile que PHP utilise dépend de la configuration du serveur web. Si vous rencontrez des crashs avec les grands scripts PHP, il est recommandé d'augmenter la taille de la pile avec la console d'administration : dans la section "MAGNUS EDITOR".

Environnement CGI et modifications recommandées du php.ini

Il est important de garder en tête que iPlanet/SunONE/Netscape est un serveur web multi-threadé. Comme toutes les requêtes se situent dans le même contexte (c'est le contexte sur serveur web), et que ce contexte est unique. SI vous voulez accéder a des variables comme PATH_INFO, HTTP_HOST etc. il n'est pas recommandé d'y accéder à l'ancienne manière de PHP, avec la fonction getenv() ou une autre méthode (register globals, $_ENV). De cette manière, vous n'aurez que des valeurs d'environnement du serveur, et non pas des valeurs correctes pour le CGI.

Note:

Pourquoi est-ce que les variables CGI sont invalides ?

C'est lié au fait que le processus du serveur web est lancé par l'administrateur du serveur, qui utilise le script de lancement au démarrage. En fait, il aurait fallu que vous lanciez vous-même le processus. C'est pour cela que l'environnement du serveur web contient des variables d'environnement CGI. Vous pouvez vérifier cela en lançant le serveur web depuis un autre endroit que l'administrateur du serveur : utilisez la ligne de commande Unix en tant que root : vous verrez alors qu'il n'y a pas de variables d'environnement.

Changez simplement vos scripts pour lire les variables CGI, en utilisant le tableau superglobal $_SERVER. Si vous avez d'autres scripts qui utilisent encore $HTTP_HOST et compagnie, il est recommandé d'activer l'option register_globals dans le php.ini et de changer l'ordre des variables. IMPORTANT : supprimez le "E" dans cette option, car vous n'en avez pas besoin pour cet environnement.

variables_order = "GPCS"
register_globals = On

Utilisation particulière pour les pages d'erreurs ou les listages spécifiques de dossiers (PHP >= 4.3.3)

Vous pouvez utiliser PHP pour générer des pages d'erreurs de type "404 Not Found" ou apparentée. Ajoutez la ligne suivante dans le fichier obj.conf pour chaque page d'erreur que vous souhaitez remplacer :

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
XXX est le code d'erreur HTTP. Effacez toute autre directive Error qui pourrait interférer avec la vôtre. Si vous voulez utiliser une page pour toutes les erreurs qui existent, laissez le paramètre code vide. Votre script peut obtenir le code de statut HTTP dans la variable $_SERVER['ERROR_TYPE'].

Une autre possibilité est de générer une liste de dossiers personnalisée. Créez simplement un script PHP qui affiche le contenu du dossier, et remplacez la ligne Service par défaut par type="magnus-internal/directory" dans obj.conf avec ceci :

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
Pour ces deux points, l'URI originale et l'URI traduite sont dans les variables $_SERVER['PATH_INFO'] et $_SERVER['PATH_TRANSLATED'].

Note au sujet de nsapi_virtual() et des requêtes (PHP >= 4.3.3)

Le module NSAPI supporte désormais la fonction nsapi_virtual() (alias : virtual()), pour réaliser des sous requêtes au serveur web, et inclure le résultat dans une page. Le problème est que cette fonction utilise une fonctionnalité non documentée de la bibliothèque NSAPI.

Sous Unix, ce n'est pas un problème, car le module va automatiquement rechercher les fonctions nécessaires, et les utiliser si elles sont disponibles. Sinon, nsapi_virtual() sera désactivée.

Sous Windows, des limitations dans la gestion des DLL impose l'utilisation de la plus récente bibliothèque ns-httpdXX.dll. Cela a été testé pour les serveurs jusqu'à la version 6.0. Si une nouvelle version de SunONE server est utilisée, la détection échoue, et nsapi_virtual() est désactivée.

Dans ce cas, essayez ceci : ajoutez le paramètre suivant à php4_init dans magnus.conf/obj.conf :

Init fn=php4_init ... server_lib="ns-httpdXX.dll"
XX est le numéro correct de la version de la DLL. Pour la connaître, regardez dans le server-root pour connaître le nom correct de la DLL. La DLL la plus grande en taille est la bonne.

Vous pouvez vérifier le statut en utilisant la fonction phpinfo().

Note:

Soyez prévenu : le support de nsapi_virtual() est expérimental.



Installation pour les serveurs OmniHTTPd

Cette section contient les notes et conseils pour installer PHP sur un serveur » OmniHTTPd sous Windows.

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

Vous devez réaliser les étapes suivantes pour configurer PHP sur votre serveur OmniHTTPd. C'est une configuration en exécutable CGI. SAPI est supporté par OmniHTTPd, mais des tests ont prouvé que ce n'est pas une solution stable.

Note: Important pour les utilisateurs CGI

Lisez la FAQ sur cgi.force_redirect pour plus de détails. Cette directive doit prendre la valeur de 0.

  1. Installation du serveur OmniHTTPd.

  2. Faites un clic droit sur l'icône bleue d'OmniHTTPd sur le système, et sélectionnez Properties

  3. Cliquez sur Web Server Global Settings

  4. Dans l'onglet 'External', entrez : virtual = .php | actual = c:\php\php.exe (utilisez php-cgi.exe si vous installez PHP 5), et utilisez le bouton "Add" (ajout).

  5. Dans l'onglet Mime, entrez : virtual = wwwserver/stdcgi | actual = .php, et utilisez le bouton "Add" (ajout).

  6. Cliquez sur OK

Répétez les étapes de 2 à 6 pour chaque extension que vous voulez associer à PHP.

Note:

Certains paquets OmniHTTPd sont fournis avec le support de PHP. Vous pouvez le choisir au moment de l'installation, et décocher le composant PHP. Nous recommandons d'utiliser les dernières versions de PHP. Certains serveurs OmniHTTPd sont livrés avec des versions bêta de PHP, et il vaut donc mieux éviter de les installer, et choisir une autre version, stable. Si le serveur est déjà sur votre machine, utilisez le bouton "Replace" (remplacer) dans les étapes 4 et 5 pour configurer un nouveau PHP.



Sambar Server on Microsoft Windows

Cette section contient les notes et conseils d'installation de PHP sur les serveurs » Sambar, sur Windows.

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Cette liste décrit comment configurer le module ISAPI avec le serveur Sambar sous Windows.

  • Trouvez le fichier appelé mappings.ini (dans le dossier de configuration), dans le dossier d'installation de Sambar.

  • Ouvrez mappings.ini et ajoutez la ligne suivante, sous la section [ISAPI] :

    Exemple #1 Configuration ISAPI de Sambar

    #pour PHP 4
    *.php = c:\php\php4isapi.dll
    
    #pour PHP 5
    *.php = c:\php\php5isapi.dll
    
    (Cette ligne suppose que PHP a été installé dans le dossier c:\php).

  • Maintenant, redémarrez le serveur Sambar pour que les modifications prennent effet.

Note:

Si vous voulez utiliser PHP pour communiquer avec les ressources se trouvant sur un autre ordinateur de votre réseau, vous devez modifier le compte utilisé par le service Sambar Server. Le compte par défaut utilisé par le service Sambar Server est LocalSystem, qui n'a pas accès aux ressources distantes. Le compte peut être modifié en utilisant les options des services, se trouvant dans le centre de contrôle de Windows.



Installation Xitami sur Microsoft Windows

Cette section contient les conseils d'installation spécifiques à » Xitami sur Microsoft Windows.

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Cette liste décrit comment installer PHP comme CGI exécutable avec Xitami sous Windows.

Note: Important pour les utilisateurs de CGI

Lisez la FAQ sur cgi.force_redirect pour d'importants détails. Cette directive doit être configurée à 0. Si vous voulez utiliser $_SERVER['PHP_SELF'], vous devez activer la directive cgi.fix_pathinfo.

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

  • Assurez-vous que le serveur web fonctionne, et allez dans la console d'administration du serveur (généralement http://127.0.0.1/admin), puis cliquez sur "Configuration".

  • Naviguez dans les Filters, et ajoutez l'extension que vous souhaitez (souvent .php) dans le champ File extensions.

  • Dans la commande Filter, ajoutez le nom et le chemin de votre exécutable PHP i.e C:\php\php.exe pour PHP 4 ou C:\php\php-cgi.exe pour PHP 5.

  • Cliquez sur le bouton Save.

  • Redémarrez le serveur pour prendre en compte les modifications.



Compilation des sources

Ce chapitre va vous apprendre à compiler PHP depuis les sources sous Windows, en utilisant les utilitaires Microsoft. Pour compiler PHP avec Cygwin, référez-vous à Installation sur les systèmes UNIX.

Reportez-vous à la documentation fournie par le wiki : » http://wiki.php.net/internals/windows/stepbystepbuild.



Installation des extensions sous Windows

Après avoir installé PHP et un serveur web sous Windows, vous devriez probablement vouloir installer quelques extensions pour avoir des fonctionnalités supplémentaires. Vous pouvez choisir quelles extensions seront chargées lors du démarrage de PHP en modifiant votre php.ini. Vous pouvez également en charger dynamiquement dans vos scripts à l'aide de la fonction dl().

Les bibliothèques DLLs pour les extensions PHP sont préfixées par php_.

Beaucoup d'extensions sont incluses dans la version pour Windows de PHP. Cela signifie que les bibliothèques DLL additionnelles et la directive extension ne sont pas utilisées pour charger ces extensions. La table des extensions PHP pour Windows liste les extensions qui requièrent des bibliothèques DLL additionnelles PHP. Voici une liste d'extensions internes :

En PHP 4 (mise à jour : PHP 4.3.11) : BCMath, Caledar, COM, Ctype, FTP, MySQL, ODBC, Overload, PCRE, Session, Tokenizer, WDDX, XML et Zlib

En PHP 5 (mise à jour : PHP 5.0.4), les changements suivants existent. En interne : DOM, LibXML, Iconv, SimpleXML, SPL et SQLite Les suivants ne sont plus intégrés : MySQL and Overload.

Le dossier par défaut dans lequel PHP cherche des extensions est c:\php4\extensions en PHP 4 et c:\php5 en PHP 5. Pour changer ce comportement pour refléter votre installation de PHP, éditez votre fichier php.ini :

  • Vous devriez pouvoir changer le paramètre extension_dir pour pointer vers le dossier contenant vos extensions ou l'endroit où vous avez placé vos fichiers php_*.dll. Par exemple :

    extension_dir = c:\php\extensions

  • Pour activer ces extensions dans votre php.ini, vous devez décommenter les lignes extension=php_*.dll dans votre php.ini. Cela se fait en effaçant le point virgule (";") du début de la ligne que vous voulez activer.

    Exemple #1 Activer l'extension Bzip2 pour PHP-Windows

    // changez la ligne suivante :
    ;extension=php_bz2.dll
    
    // En :
    extension=php_bz2.dll

  • Quelques extensions ont besoin de bibliothèques DLLs supplémentaire pour fonctionner. La plupart d'entre elles peuvent être trouvées dans le paquet de votre distribution de PHP, dans le dossier c:\php\dlls\ en PHP 4 ou dans le dossier principal en PHP 5 mais quelques autres, comme Oracle (php_oci8.dll), requierent des DLLs qui ne sont pas fournies avec votre distribution de PHP. Si vous installez PHP 4, copiez les bibliothèques DLLs depuis le dossier C:\php\dlls vers le dossier principal C:\php. N'oubliez pas d'inclure le dossier C:\php dans la variable d'environnement PATH (ce processus est expliqué dans une entrée de la FAQ).

  • Quelques-unes de ces bibliothèques ne sont pas incluses dans la distribution de PHP. Lisez la documentation de chaque extension pour plus de détails. Lisez également la section du manuel nommée Installation d'extensions PECL pour plus de détails sur PECL. Un nombre toujours plus important d'extensions PHP se trouve dans PECL, et ces extensions nécessitent un téléchargement séparé.

Note: Si vous utilisez PHP en tant que module d'un serveur web, pensez à redémarrer votre serveur web pour charger les modifications apportées au fichier php.ini.

La table suivante décrit quelques extensions disponibles requérant des bibliothèques DLLs supplémentaires.

Extensions PHP
Extension Description Notes
php_bz2.dll bzip2 : fonctions de compression Non
php_calendar.dll Calendar : fonctions de conversion Intégrées à PHP depuis la version 4.0.3
php_crack.dll Fonctions Crack None
php_ctype.dll Famille de fonctions ctype Intégrées à PHP depuis la version 4.3.0
php_curl.dll Fonctions de bibliothèque client CURL Requiert : libeay32.dll, ssleay32.dll (intégré)
php_dba.dll DBA: DataBase (dbm-style) Fonctions d'abstraction Non
php_dbase.dll Fonctions dBase Non
php_dbx.dll Fonctions dbx  
php_domxml.dll Fonctions DOM XML PHP <= 4.2.0 requiert : libxml2.dll (intégré) PHP >= 4.3.0 requiert : iconv.dll (intégré)
php_dotnet.dll Fonctions .NET PHP <= 4.1.1
php_exif.dll Fonctions EXIF php_mbstring.dll. Attention, php_exif.dll doit être chargé après php_mbstring.dll dans le php.ini.
php_fbsql.dll Fonctions FrontBase PHP <= 4.2.0
php_fdf.dll FDF : fonctions Forms Data Format. Requiert : fdftk.dll (intégré)
php_filepro.dll Fonctions filePro Accès en lecture seule
php_ftp.dll Fonctions FTP Intégrées à PHP depuis la version 4.0.3
php_gd.dll GD : bibliothèque de fonctions image Supprimer en PHP 4.3.2. Notez que les fonctions sur les couleurs vraies ne sont pas disponibles en GD1 ; utilisez plutôt php_gd2.dll.
php_gd2.dll GD : Bibliothèque de fonctions image GD2
php_gettext.dll Fonctions Gettext PHP <= 4.2.0 requiert gnu_gettext.dll (intégré), PHP >= 4.2.3 requiert libintl-1.dll, iconv.dll (intégré).
php_hyperwave.dll Fonctions HyperWave Non
php_iconv.dll ICONV : conversion de jeux de caractères Requiert : iconv-1.3.dll (intégré), PHP >=4.2.1 iconv.dll
php_ifx.dll Fonctions Informix Requiert : bibliothèque Informix
php_iisfunc.dll Fonctions d'administration IIS Non
php_imap.dll IMAP : fonctions POP3 et NNTP Non
php_ingres.dll Fonctions Ingres Requiert : bibliothèque Ingres
php_interbase.dll Fonctions InterBase Requiert : gds32.dll (intégré)
php_java.dll Fonctions Java PHP <= 4.0.6 requit : jvm.dll (intégré)
php_ldap.dll Fonctions LDAP PHP <= 4.2.0 requiert libsasl.dll (intégré), PHP >= 4.3.0 requiert libeay32.dll, ssleay32.dll (intégré)
php_mbstring.dll Fonctions Chaînes multioctets Non
php_mcrypt.dll Fonctions Mcrypt Encryption Requiert : libmcrypt.dll
php_mhash.dll Fonctions Mhash PHP >= 4.3.0 requiert : libmhash.dll (intégré)
php_mime_magic.dll Fonctions Mimetype Requiert : magic.mime (intégré)
php_ming.dll Fonctions Ming pour Flash Non
php_msql.dll Fonctions mSQL Requiert : msql.dll (intégré)
php_mssql.dll Fonctions MSSQL Requiert : ntwdblib.dll (intégré)
php_mysql.dll Fonctions MySQL PHP >= 5.0.0, requires libmysql.dll (intégré)
php_mysqli.dll Fonctions MySQLi PHP >= 5.0.0, requires libmysql.dll (libmysqli.dll en PHP <=5.0.2) (intégré)
php_oci8.dll Fonctions Oracle 8 Requiert : bibliothèque cliente Oracle 8.1+
php_openssl.dll Fonctions OpenSSL Requiert : libeay32.dll (intégré)
php_overload.dll Fonctions Object overloading Intégrée à PHP depuis la version 4.3.0
php_pdf.dll Fonctions PDF Non
php_pgsql.dll Fonctions PostgreSQL Non
php_printer.dll Fonctions Printer Non
php_shmop.dll Fonctions de partage de mémoire Non
php_snmp.dll Fonctions SNMP NT seulement !
php_soap.dll Fonctions SOAP PHP >= 5.0.0
php_sockets.dll Fonctions Socket Non
php_sybase_ct.dll Fonctions Sybase Requiert : bibliothèque cliente Sybase
php_tidy.dll Fonctions Tidy PHP >= 5.0.0
php_tokenizer.dll Fonctions Tokenizer Intégrées à PHP depuis la version 4.3.0
php_w32api.dll Fonctions W32api Non
php_xmlrpc.dll Fonctions XML-RPC PHP >= 4.2.1 requiert : iconv.dll (intégré)
php_xslt.dll Fonctions XSLT PHP <= 4.2.0 requiert sablot.dll, expat.dll (intégré). PHP >= 4.2.1 requiert sablot.dll, expat.dll et iconv.dll (intégré).
php_yaz.dll Fonctions YAZ Requiert : yaz.dll (intégré)
php_zip.dll Fonctions Zip File Accès en lecture seule
php_zlib.dll Fonctions de compression ZLib Intégrées à PHP depuis la version 4.3.0



Ligne de commande PHP sous Microsoft Windows

Cette section contient les notes et les astuces spécifiques à l'installation de PHP depuis la ligne de commande sous Windows.

Note:

Vous devriez lire les étapes du manuel d'installation d'abord !

Faire fonctionner PHP depuis la ligne de commande peut être effectué sans aucune modification à Windows.

C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

Mais il existe quelques étapes à suivre pour rendre ceci plus simple. La plupart de ces étapes ont déjà dû être faite, mais elles sont répétées ici pour fournir une séquence étape par étape complète.

  • Ajouter la localisation de l'exécutable PHP (php.exe, php-win.exe ou php-cli.exe suivant la version de PHP ainsi que les préférences d'affichage) à la variable d'environnement PATH. Vous trouverez plus d'informations concernant l'ajout du dossier PHP à la variable PATH dans l'entrée correspondante de la FAQ.

  • Ajouter l'extension .PHP à la variable d'environnement PATHEXT. Ceci peut être fait lors de la modification de la variable d'environnement PATH. Suivez les mêmes étapes que celles décrites dans la FAQ mais utilisez la variable PATHEXT au lieu de la variable d'environnement PATH.

    Note:

    La position à laquelle vous placez le .PHP déterminera le script ou le programme à exécuter lorsqu'un nom de fichier de cette forme sera trouvé. Par exemple, le fait de placer .PHP avant .BAT fera que votre script sera exécuté à la place du fichier batch, s'il y a un fichier batch avec le même nom.

  • Associer l'extension .PHP avec un type de fichier. Ceci peut être fait en exécutant la commande suivante :

    assoc .php=phpfile
    

  • Associer le type de fichier phpfile avec l'exécutable PHP approprié. Ceci peut être fait en exécutant la commande suivante :

    ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2
    

Ces étapes permettent aux scripts PHP d'être exécutés depuis n'importe quel répertoire, sans pour autant spécifier l'exécutable PHP ou l'extension .PHP, et tous les paramètres seront passés au script pour traitement.

L'exemple ci-dessous montre les modifications pouvant être faites manuellement au registre Windows.

Exemple #1 Modification du registre

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\PHP5\\php-win.exe0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"

Avec ces modifications, la même commande peut maintenant être écrite comme ceci :

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
ou, si le chemin "C:\PHP Scripts" est présent dans la variable d'environnement PATH :
script -arg1 -arg2 -arg3

Note:

Il y a un petit problème si vous tentez d'utiliser cette technique et qu'en même temps, vous utilisez votre script PHP comme filtre d'une commande, comme ceci :

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
ou
dir | script -arg1 -arg2 -arg3
Vous pourriez trouver que le script s'interrompt et que rien ne s'affiche. Afin de rendre ceci opérationnel, vous devez effectuer une nouvelle modification au registre Windows.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Plus d'informations concernant ce problème peuvent être trouvées dans » l'article de la base de connaissance Microsoft : 321788.




FastCGI Process Manager (FPM)

Sommaire

FPM (FastCGI Process Manager) est une implémentation alternative à PHP FastCGI avec quelques fonctionnalités additionnelles particulièrement utiles pour les environnements à haute charge.

Ces fonctionnalités incluent:

  • Gestion avancée des processus avec stop/start doux (graceful);

  • Possibilité de démarrer des processus avec differents uid/gid/chroot/environment, écoutant sur différents ports et utilisant differents php.ini (remplace le safe_mode);

  • Journalisation stdout et stderr;

  • Redémarrage d'urgence en cas de destruction accidentelle du cache opcode;

  • Support de l'upload acccéléré;

  • "slowlog" - journalisation des scripts (pas juste leurs noms, mais leur backtrace PHP également, utilisant ptrace ou équivalent pour lire le processus distant) qui s'éxecutent de manière anormalement lente;

  • fastcgi_finish_request() - fonction spéciale pour terminer la requête et vider toutes les données tout en continuant d'exécuter une tâche consommatrice (conversion vidéo par exemple);

  • Naissance de processus fils dynamic/static;

  • Informations sur la SAPI (similaire à mod_status d'Apache);

  • Fichier de configuration basé sur php.ini


Installation

Pre-requis

FPM utilise libevent pour gérer les connections et les signaux. La version minimale de libevent à utiliser est libevent-1.4.11.

Compiler depuis les sources

Pour activer FPM dans votre construction de PHP vous devez ajouter la ligne --enable-fpm à votre ligne de configure.

Il existe de multiples options de configure pour FPM (toutes optionnelles):

  • --with-fpm-user - l'utilisateur FPM (defaut - nobody).

  • --with-fpm-group - le groupe FPM (defaut - nobody).



Configuration

FPM utilise la syntaxe php.ini pour son fichier de configuration - php-fpm.conf.

Liste des directives globales de php-fpm.conf

pid string

Cheemin vers le fichier PID. Par défaut: none.

error_log string

Chemin vers le fichier de journal. Par défaut: #INSTALL_PREFIX#/log/php-fpm.log.

log_level string

Niveau de journalisation d'erreur. Valeurs possibles: alert, error, warning, notice, debug. Par défaut: notice.

emergency_restart_threshold int

Si ce nombre de processus fils terminent avec un SIGSEGV ou SIGBUS dans l'intervalle de temps précisé dans emergency_restart_interval, alors FPM redémarrera. Une valeur de 0 signifie 'Off'. Valeur par défaut: 0 (Off).

emergency_restart_interval mixed

Interval de temps utilisé par emergency_restart_interval pour determine lorsqu'un redémarrage doux doit être lancé. Ceci peut être utile pour contourner des corruptions accidentelles dans la méémoire partagée d'un acccelérateur. Unités disponibles: s(econdes), m(inutes), h(eures), ou d(ays). Unité par défaut: secondes. Valeur par défaut: 0 (Off).

process_control_timeout mixed

Temps limite qu'attendront les processus fils pour réagir aux signals du père. Unités disponibles: s(econdes), m(inutes), h(eures), ou d(ays) Unité par défaut: secondes. Valeur par défaut: 0.

daemonize boolean

Envoie FPM en arrière plan. Mettez 'no' pour garder FPM au premier plan lors du débogage. Valeur par défaut: yes.

Liste des directives de pool

Avec FPM vous pouvez executer plusieurs pools de processus avec des paramètres différents. Voici les paramètres qui peuvent être ajustés par pool.

listen string

L'adresse pour accepter des requêtes FastCGI. Syntaxes valides: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Cette option est obligatoire pour chaque pool.

listen.backlog int

Affecte listen(2) backlog. Une valeur de '-1' signifie illimité. Valeur par défaut: -1.

listen.allowed_clients string

Liste d'adresses ipv4 des clients FastCGI autorisés à se connecter. C'est équivalent à la variable d'environnement FCGI_WEB_SERVER_ADDRS dans le système FastCGI original de PHP (5.2.2+). N'a de sens qu'avec une socket tcp en écoute. Chaque adresse doit être séparée par une virgule. Si cette valeur n'est pas précisée, les connections seront accceptées depuis toute adresse ip. Valeur par défaut: any.

listen.owner string

Affecte les permissions pour la socket unix si utilisée. Sous Linux, les permissions read/write doivent être affectées pour autoriser des connections depuis un serveur web. Beaucoup de systèmes dérivés BSD autorisent les connections quelles que soient les permissions. Valeurs par défaut: user et group sont ceux de l'utilisateur courant, le mode est 0666.

listen.group string

Voyez listen.owner.

listen.mode string

Voyez listen.owner.

user string

Utilisateur Unix des processus FPM. Cette option est obligatoire.

group string

Groupe Unix des processus FPM. Si non précisé, le groupe de l'utilisateur est utilisé.

pm string

Choisi comment le gestionnaire de processus va contrôler le nombre de processus fils. Valeurs possibles: static, dynamic. Option obligatoire.

static - nombre de processus fils fixés (pm.max_children).

dynamic - nombre de processus fils dynamiques basé sur le directives suivantes: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_children int

Nombre de processus fils à créer lorsque pm est réglé sur static. Nombre maximum de processus fils à créer lorsque pm est réglé sur dynamic. Options obligatoire.

Cette option affecte la limite du nombre de requêtes simultanées qui seront servies. Equivalent à ApacheMaxClients avec mpm_prefork et à PHP_FCGI_CHILDREN dans l'implémentation originale de FastCGI de PHP.

pm.start_servers in

Nombre de processus fils à créer au démarrage. Utilisé seulement si pm est réglé sur dynamic. Valeur par défaut: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

pm.min_spare_servers int

Nombre minimum de processus au repos (idle) voulus. Utilisé seulement si pm est réglé sur dynamic. Obligatoire dans ce cas.

pm.max_spare_servers int

Nombre maximum de processus au repos (idle) voulus. Utilisé seulement si pm est réglé sur dynamic. Obligatoire dans ce cas.

pm.max_requests int

Nombre de requête que chaque processus fils devrait exécuter avant de renaitre. Ceci peut être utile pour contourner des fuites mémoires dans des librairies tierces. Pour un traitement sans fin des requêtes, précisez '0'. Equivalent à PHP_FCGI_MAX_REQUESTS. Par défaut: 0.

pm.status_path string

L'URI vers la page de statut de FPM. Si cette valeur n'est pas précisée, aucune page de statut ne sera utilisée, ce qui est le cas par défaut.

ping.path string

L'URI de ping pour appeler la page de monitoring de FPM. Si aucune valeur n'est précisée, aucune page de ping ne sera disponible. Ceci pourrait être utilisé pour tester depuis l'extérieur si FPM est toujours disponible et prêt à répondre. Notez que la valeur doit commencer par un slash (/).

ping.response string

Cette directive est utile pour personnaliser la réponse à une requête de ping. La réponse est formattée comme text/plain avec un code de réponse de 200. Valeur par défaut: pong.

request_terminate_timeout mixed

Le timeout pour servir une requête après lequel le processus concerné sera tué. Cette option devrait être utilisée lorsque l'option 'max_execution_time' ne stoppe pas l'exécution du script pour une raison quelconque. Une valeur de '0' signifie 'Off'. Unités disponibles: s(econdes)(défaut), m(inutes), h(eures), ou d(ays). Par défaut: 0.

request_slowlog_timeout mixed

Le timeout pour servir une requête dans laquelle la backtrace PHP sera vidée dans le fichier 'slowlog'. Une valeur de '0' signifie 'Off'. Unités disponibles: s(econdes)(défaut), m(inutes), h(eures), ou d(ays). Par défaut: 0.

slowlog string

Le journal pour les requêtes lentes, par défaut: #INSTALL_PREFIX#/log/php-fpm.log.slow.

rlimit_files int

Affecte la rlimit pour les descripteurs de fichiers ouverts. Valeur par défaut: valeur du système.

rlimit_core int

Affecte la taille maximale de rlimit. Valeurs possibles: 'unlimited' ou un entier plus grand ou égal à 0. Valeur par défaut: valeur définie par le système.

chroot string

Chroot vers ce dossier au démarrage. Cette valeur doit être un chemin absolu. Si cette valeur n'est pas définie, chroot n'est pas utilisé.

chdir string

Chdir vers ce dossier au démarrage. Cette valeur doit être un chemin absolu. Valeur par défaut: dossier courant ou / si chroot.

catch_workers_output boolean

Redirige stdout et stderr vers le journal d'erreur principal. Si non précisé, stdout et stderr seront redirigés vers /dev/null selon les specifications FastCGI. Valeur par défaut: no.

Il est possible de passer des variables d'environnement additionnelles et mettre à jour les paramètres de PHP d'un pool. Pour ce faire, vous devez ajouter les options suivantes à php-fpm.conf

Exemple #1 Passer des variables d'environnement et des paramètres PHP à un pool

env[HOSTNAME] = $HOSTNAME
       env[PATH] = /usr/local/bin:/usr/bin:/bin
       env[TMP] = /tmp
       env[TMPDIR] = /tmp
       env[TEMP] = /tmp

       php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
       php_flag[display_errors] = off
       php_admin_value[error_log] = /var/log/fpm-php.www.log
       php_admin_flag[log_errors] = on
       php_admin_value[memory_limit] = 32M
Les paramètres PHP passés avec php_value ou php_flag écraseront leur valeur précédente. Notez que définir disable_functions ou disable_classes n'écrasera pas les valeurs concernées précédemment définies dans php.ini, mais rajouteront les valeurs à la suite des anciennes.

Les paramètres définis avec php_admin_value et php_admin_flag ne peuvent être surchargés via ini_set().




Installation d'extensions PECL

Sommaire


Introduction aux installations PECL

» PECL est un dépôt d'extensions PHP qui sont disponibles via le système de paquet » PEAR. Cette section du manuel vous guide dans l'obtention et l'installation d'extensions PECL.

Ces instructions supposent que /your/phpsrcdir/ est le chemin jusqu'aux sources de la distribution PHP, et extname est le nom de votre extension PECL : adaptez les commandes qui suivent à votre situation. Ces instructions supposent aussi que vous êtes familier avec l'utilisation des » commandes pear. Les informations dans le manuel PEAR pour la commande pear sont également applicables à la commande pecl.

Pour être utilisée, une extension partagée doit être compilée, installée et chargée. Les méthodes décrites ci-dessous vous fournissent diverses instructions sur la façon de compiler et d'installer des extensions mais ne les chargent pas automatiquement. Les extensions peuvent être chargées en ajoutant une directive d'extension au fichier php.ini ou à l'aide de la fonction dl().

Lorsque vous compilez des modules PHP, il est important d'avoir les outils dans leurs versions appropriées, tels que autoconf, automake, libtool, etc. Voyez les » Instructions pour le SVN anonyme, afin de connaître les utilitaires nécessaires, et leurs versions.



Télécharger des extensions PECL

Il existe plusieurs méthodes pour télécharger des extensions PECL :

    La commande pecl install extname télécharge le code des extensions automatiquement, ce qui évite de réaliser un téléchargement particulier.

  • » http://pecl.php.net/ Le site Web de PECL contient diverses informations sur les différentes extensions offertes par l'équipe de développement de PHP. Vous pourrez consulter les modifications entre les versions, les notes de versions, ce qui est requis pour faire fonctionner l'extension ainsi que d'autres détails similaires.
  • pecl download extname Les extensions PECL listées sur le site web de PECL sont disponibles et peuvent être téléchargées et installées en utilisant la » commande pecl. La version spécifique de l'extension peut également être spécifiée.
  • SVN La plupart des fichiers PECL sont conservés dans le serveur SVN. Une interface Web est disponible à » http://svn.php.net/viewvc/pecl/. Pour télécharger directement depuis SVN, suivez la séquence d'instructions ci-dessous :


    $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname

  • Téléchargements pour Windows Pour le moment, le projet PHP ne compile pas les binaires Windows pour les extensions PECL. Cepdendant, pour compiler PHP sous Windows, reportez-vous au chapitre intitulé Compiler PHP sous Windows.


Installer une extension PHP sous Windows

Sur Windows, vous avez deux moyens de charger une extension PHP : soit vous la compilez dans PHP, soit vous chargez une DLL. Charger une extension précompilée est la méthode la plus pratique et la plus recommandée.

Pour charger une extension, vous devez disposer de son fichier ".dll" sur votre système. Toutes les extensions sont automatiquement et périodiquement compilée par le groupe PHP (voyez la section de téléchargements).

Pour compiler une extension dans PHP, reportez-vous à la documentation sur la compilation des sources.

Pour compiler une extension autonome, (c'est-à-dire un fichier DLL), reportez-vous documentation sur la compilation des sources. Si le fichier DLL est absent de votre distribution PHP et de PECL, il vous faudra la compiler avant de pouvoir l'utiliser.

Où trouver une extension ?

Les extensions PHP sont généralement appelées "php_*.dll" (où les astérisques représentent le nom de l'extension) et elles sont rangées dans le dossier "PHP\ext" ("PHP\extensions" en PHP4).

PHP est livré avec les extensions qui sont les plus utiles à la majorité des utilisateurs. Elles sont appelées des extensions coeur, ou "core".

Cependant, si vous avez besoins de fonctionnalités qui ne sont pas fournies par une extension coeur, vous pourriez quand même les trouver dans PECL. Le PHP Extension Community Library (PECL, aussi dit Bibliothèque d'Extensions Communautaires de PHP) est un dépôt de code pour les extensions PHP, qui fournit un annuaire de toutes les extensions connues, et un service d'hébergement pour télécharger et développer ces extensions.

Si vous avez développé une extension pour votre propre usage, vous pourriez avoir envie de l'héberger sur PECL, pour que tous ceux qui ont eu le même problème que vous, puissent avoir accès à la même solution. Cela vous donne de bonnes chances d'avoir des retours de la communauté, et, peut-être, des remerciements, des rapports de bugs, et même des correctifs. Avant que vous n'envoyez votre extension sur les serveurs PECL, il est recommandé de lire http://pecl.php.net/package-new.php.

Quelles extensions télécharger ?

Souvent, vous trouverez plusieurs versions de chaque DLL :

  • Différents numéros de versions (au moins, les deux premiers chiffres doivent être les mêmes)
  • Différentes configurations de sécurité de threads
  • Différentes architectures de processeurs (x86, x64...)
  • Différentes configurations de débogage
  • etc.

Il est recommandé de choisir les extensions pour qu'elles soient adaptées à la machine serveur sur laquelle vous utilisez PHP. Le script suivant va vous afficher toutes vos configurations PHP :

Exemple #1 Appel de la fonction phpinfo()

<?php
phpinfo
();
?>

Ou bien, en ligne de commande :

drive:\\path\to\php\executable\php.exe -i

Charger une extension

Le moyen le plus courant pour charger une extension PHP est de l'inclure dans votre fichier de configuration php.ini. Notez que de nombreuses extensions sont déjà présentes dans le fichier php.ini et que vous avez simplement à supprimer le point-virgule pour les activer.

;extension=php_extname.dll
extension=php_extname.dll

Cependant, certains serveurs Web sont déroutants, car ils n'utilisent pas le fichier php.ini rangé avec votre exécutable PHP. Pour en savoir plus sur votre véritable php.ini, recherchez son dossier dans le fichier phpinfo():

Configuration File (php.ini) Path   C:\WINDOWS
Loaded Configuration File   C:\Program Files\PHP\5.2\php.ini

Après activation d'une extension, sauvegardez le fichier php.ini, et relancez le serveur Web, puis vérifiez à nouveau le fichier phpinfo(). La nouvelle extension devrait y avoir sa section.

Résolution de problèmes

Si l'extension n'apparaît pas dans le fichier phpinfo(), vous devriez jeter un oeil dans les logs pour savoir d'où vient le problème.

Si vous utilisez PHP en ligne de commande (CLI), l'erreur de chargement de l'extension devrait être lisible directement sur l'écran.

Si vous utilisez PHP sur un serveur Web, la position et le format des logs varient grandement d'un serveur à l'autre. Lisez la documentation de votre serveur Web pour savoir où ils sont : PHP ne peut pas vous aider pour cela.

Les problèmes les plus courants sont la localisation du fichier DLL, la valeur de la directive "extension_dir" dans le php.ini et les incohérences de compilations.

Si le problème est une incohérence de compilation, vous avez probablement téléchargé une mauvaise DLL. Essayez d'en charger une nouvelle, avec les bonnes configurations pour votre serveur. phpinfo() vous sera alors très utile.



Compilation d'extensions PECL partagées avec la commande pecl

PECL facilite la création d'extension PHP partagées. En utilisant la » commande pecl, faites ceci :


$ pecl install extname

Ceci va télécharger le fichier source de l'extension extname, le compiler et installer le fichier extname.so dans votre dossier extension_dir. extname.so doit ensuite être chargé via php.ini.

Par défaut, la commande pecl n'installera pas les paquets marqués comme étant alpha ou beta. Si aucun paquet stable est disponible, vous devrez installer un paquet beta en utilisant la commande suivante :


$ pecl install extname-beta

Vous pouvez également installer une version spécifique en utilisant la commande :


$ pecl install extname-0.1

Note:

Après avoir activée cette extension dans le php.ini, relancez le serveur Web afin de la prendre en compte.



Compilation des extensions partagées avec phpize

Parfois, l'utilisation de l'installeur pecl n'est pas une bonne option. Ceci parce que vous être derrière un pare-feu ou parce que l'extension que vous voulez installer n'est pas disponible en tant que paquet PECL comme une extension uniquement disponible via SVN. Si vous devez compiler une telle extension, vous pouvez utiliser l'utilitaire de compilation afin d'exécuter la compilation manuellement.

La commande phpize est utilisée pour préparer l'environnement de compilation pour une extension PHP. Dans l'exemple suivant, les sources de l'extension sont dans un dossier appelé extname :

$ cd extname
$ phpize
$ ./configure
$ make
# make install

Une installation réussie aura créé un fichier extname.so et l'aura placé dans le dossier des extensions de PHP. Vous devez ajouter la ligne extension=extname.so dans votre php.ini avant de pouvoir utiliser l'extension.

Si le système ne possède pas la commande phpize et que vous utilisez des paquets précompilés (comme des RPM), assurez-vous d'installer également la version de développement appropriée des paquets PHP car elle inclut également la commande phpize ainsi que les en-têtes appropriés pour construire PHP et ses extensions.

Exécutez la commande phpize --help pour afficher des informations d'utilisation supplémentaires.



Compilation des extensions PECL statiquement dans PHP

Il peut arriver que vous ayez à compiler votre extension PECL statiquement dans votre binaire PHP. Pour ce faire, vous devez placer les sources de l'extension dans le dossier php-src/ext/ et exécuter à nouveau le script de configuration de PHP.

$ cd /your/phpsrcdir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname
$ rm package.xml

Cela générera le dossier suivant :


/your/phpsrcdir/ext/extname

À partir de la, forcez PHP à reconstruire le script de configuration, puis, suivez le processus classique de compilation de PHP :


$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Note: Pour exécuter le script 'buildconf', vous devez posséder autoconf 2.13 et automake 1.4+ (les versions plus récentes de autoconf peuvent fonctionner, mais ne sont pas supportées).

L'utilisation de --enable-extname ou --with-extname dépend de l'extension. Généralement, une extension qui ne dépend pas d'une bibliothèque externe utilise --enable. Pour être certain, utilisez la commande suivante après avoir utilisé buildconf :


$ ./configure --help | grep extname




Des problèmes ?

Sommaire


Lisez la FAQ

Certains problèmes sont récurrents : les plus communs sont listés dans la FAQ PHP, disponible dans ce manuel.



Autres problèmes

Si vous êtes complètement bloqué, quelqu'un sur la liste de diffusion PHP pourra probablement vous aider. Essayez de consulter les archives, au cas où quelqu'un aurait déjà rencontré votre problème. Les archives sont toujours accessibles à : » http://www.php.net/support.php. Pour souscrire à la liste de diffusion, envoyez un mail vide à » php-install-subscribe@lists.php.net. L'adresse de la liste de diffusion est » php-install@lists.php.net.

Si vous voulez obtenir de l'aide sur la liste de diffusion PHP, essayez d'être concis et clair, et pensez à donner tous les détails sur votre environnement (OS, version de PHP, serveur Web, CGI ou module, safe mode, etc.), et n'hésitez pas à envoyer suffisamment de code pour que nous puissions reproduire et tester l'erreur.



Rapports de Bogue

Si vous pensez avoir trouvé un bogue dans PHP, n'oubliez pas de le signaler. L'équipe de développement PHP ne le connaît peut être pas et, si vous ne le signalez pas, vos chances de voir le bogue corrigé sont nulles. Vous pouvez rapporter des bogues grâce au système de suivi, accessible à » http://bugs.php.net/. S'il vous plait, n'envoyez pas de rapports de bogue sur les listes de diffusion ou par courier personnel. Le système de suivi est de plus prévu pour permettre la proposition de nouvelles fonctionnalités.

Lisez le guide » Comment rapporter un bogue (Les bogues : ce qu'il faut faire, et ce qu'il ne faut pas faire) avant d'envoyer n'importe quel rapport !




Configuration

Sommaire


Le fichier de configuration

Le fichier de configuration (php.ini) est lu par PHP au démarrage. Si vous avez compilé PHP en module, le fichier n'est lu qu'une seule fois, au lancement du serveur web. Pour les versions CGI et CLI le fichier est lu à chaque invocation.

Le php.ini est cherché dans ces endroits (et dans cet ordre) :

  • L'endroit spécifique du module SAPI (la directive PHPIniDir d'Apache 2, l'option de la ligne de commande -cen CGI et en CLI, le paramètre php_ini en NSAPI, la variable d'environnement PHP_INI_PATH en THTTPD)

  • La variable d'environnement PHPRC. Avant PHP 5.2.0, cette variable était récupérée après la clé de registre mentionnée ci-dessous.

  • Depuis PHP 5.2.0, l'endroit où se trouve le fichier php.ini peut être définis pour différentes versions de PHP. Les clés de registre suivantes sont cherchées dans cet ordre : [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], où x, y et z signifie les versions majeures, mineures et normales. S'il y a une valeur pour IniFilePath dans ces clés, la première trouvée sera utilisée comme endroit où se trouve le fichier php.ini (uniquement sous Windows).

  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP], valeur de IniFilePath (uniquement sous Windows).

  • Le dossier courant de travail (sauf pour CLI)

  • Le dossier du serveur web (pour les modules SAPI), ou le dossier contenant PHP (autrement sous Windows)

  • Le dossier Windows (C:\windows ou C:\winnt) (pour Windows), ou l'option de compilation --with-config-file-path lors de la compilation

Si le fichier php-SAPI.ini existe (où SAPI utilise SAPI, donc le nom du fichier est e.g. php-cli.ini ou php-apache.ini), il sera utilisé à la place du php.ini. Le nom SAPI peut être déterminé en utilisant la fonction php_sapi_name().

Note:

Le serveur web Apache change ce dossier en dossier root au démarrage, ce qui fait que PHP essaye de lire php.ini depuis le système de fichier racine s'il existe.

Les directives php.ini sont directement documentées, par extensions, sur les pages respectives du manuel de ces extensions. La liste des directives internes est disponible en annexe. Il est probable que toutes les directives PHP ne sont pas documentées dans le manuel. Pour une liste complète des directives disponibles dans votre version de PHP, merci de lire les commentaires de votre propre fichier php.ini. Vous pouvez également trouver la » dernière version du php.ini sur SVN.

Exemple #1 Extrait du php.ini

; tout texte sur une ligne, situé après un point-virgule ";" est ignoré
[php] ; les marqueurs de section (texte entre crochets) sont aussi ignorés
; Les valeurs booléennes peuvent être spécifiées comme ceci :
;    true, on, yes
; ou false, off, no, none
register_globals = off
track_errors = yes

; vous pouvez placer les chaînes de caractères entre guillemets
include_path = ".:/usr/local/lib/php"

; Les antislash sont traités comme n'importe quel caractère
include_path = ".;c:\php\lib"

Depuis PHP 5.1.0, il est possible de se référer à des variables .ini depuis des fichiers .ini. Par exemple : open_basedir = ${open_basedir} ":/new/dir".



.user.ini files

Depuis PHP 5.3.0, PHP inclut le support des fichiers INI au style .htaccess sur une base par dossier. Ces fichiers sont analysés uniquement par le SAPI CGI/FastCGI. Cette fonctionnalité rend obsolète l'extension PECL htscanner. Si vous utilisez Apache, l'utilisation des fichiers .htaccess produit le même effet.

En plus du fichier php.ini principal, PHP analyse les fichiers INI contenu dans chaque dossier, en commençant par le dossier depuis lequel le fichier PHP courant est appelé, et parcours les dossiers jusqu'au dossier racine courant (tel que défini par la variable $_SERVER['DOCUMENT_ROOT']). Dans le cas où le fichier PHP est hors de la racine web, seul sont dossier est scanné.

Seuls les configurations INI avec les modes PHP_INI_PERDIR et PHP_INI_USER seront reconnues dans les fichiers INI .user.ini-style.

Deux nouvelles directives INI, user_ini.filename et user_ini.cache_ttl contrôlent l'utilisation des fichiers INI définis par l'utilisateur.

user_ini.filename définit le nom du fichier cherché par PHP dans chaque dossier ; si cette directive est définie à une chaîne vide, PHP n'analysera rien du tout. Par défaut, vaut .user.ini.

user_ini.cache_ttl contrôle la durée entre 2 re-lectures des fichiers INI définis par l'utilisateur. Par défaut, vaut 300 secondes (5 minutes).



Où une directive de configuration peut être modifiée

Ces modes déterminent quand et où une directive PHP peut ou ne peut pas être modifiée, et chaque directive du manuel est dirigée par un de ces modes. Par exemple, certaines directives peuvent être modifiées dans un script PHP avec la fonction ini_set(), alors que d'autres ont besoin d'être modifiées dans les fichiers php.ini ou httpd.conf.

Par exemple, la directive output_buffering a le mode PHP_INI_PERDIR alors elle ne peut pas être modifiée avec la fonction ini_set(). D'un autre coté, la directive display_errors a le mode PHP_INI_ALL, et peut être modifiée n'importe où, y compris avec la fonction ini_set().

Définition des modes PHP_INI_*
Mode Valeur Signification
PHP_INI_USER 1 La directive peut être modifiée dans un script utilisateur, avec la fonction ini_set(), ou via la base de registre Windows
PHP_INI_PERDIR 6 La directive peut être modifiée dans les fichiers php.ini, .htaccess ou httpd.conf
PHP_INI_SYSTEM 4 La directive peut être modifiée dans les fichiers php.ini ou httpd.conf
PHP_INI_ALL 7 La directive peut être modifiée n'importe où



Comment modifier la configuration

Exécuter PHP comme module Apache

Lorsque vous utilisez le module Apache, vous pouvez aussi changer les paramètres de configuration en utilisant les directives dans les fichiers de configuration d'Apache (httpd.conf) et dans les fichiers .htaccess. Vous aurez besoin des privilèges "AllowOverride Options" ou "AllowOverride All".

Il y a de nombreuses directives Apache qui vous permettent de modifier la configuration de PHP à partir des fichiers de configuration Apache. Pour une liste des directives qui sont PHP_INI_ALL, PHP_INI_PERDIR ou PHP_INI_SYSTEM reportez-vous à l'annexe Liste des directives du php.ini.

php_value nom valeur

Modifie la valeur de la directive spécifiée. Cette instruction n'est utilisable qu'avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR. Pour annuler une valeur qui aurait été modifiée au préalable, utilisez la valeur none.

Note: N'utilisez pas php_value pour configurer des valeurs booléennes. php_flag (voir plus bas) doit être utilisée.

php_flag nom on|off

Cette instruction est utilisée pour activer ou désactiver une option. Cette instruction n'est utilisable qu'avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR.

php_admin_value nom valeur

Cette instruction affecte une valeur à la variable spécifiée. Cette instruction NE peut PAS être utilisée dans un fichier .htaccess. Toute directive de PHP configurée avec le type php_admin_value ne peut pas être modifiée en utilisant le fichier .htaccess ou la fonction ini_set(). Pour annuler une valeur qui aurait été modifiée au préalable, utilisez la valeur none.

php_admin_flag name on|off

Cette directive est utilisée pour activer ou désactiver une option. Cette instruction NE peut PAS être utilisée dans un fichier .htaccess. Toute directive de PHP configurée avec le type php_admin_flag ne peut pas être modifiée en utilisant le fichier .htaccess ou par la fonction ini_set().

Exemple #1 Exemple de configuration Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

Attention

Les constantes PHP n'existent pas en dehors de PHP. Par exemple, dans le fichier httpd.conf, vous ne pouvez pas utiliser des constantes PHP telles que E_ALL ou E_NOTICE pour spécifier le niveau de rapport d'erreur, car ces constantes n'ont pas de signification pour Apache, et seront remplacées par 0. Utilisez les valeurs numériques à la place. Les constantes peuvent être utilisées dans le php.ini

Modifier la configuration de PHP dans la base de registre Windows

Lorsque vous utilisez PHP sur Windows, la configuration peut être modifiée dossier par dossier en utilisant la base de registres de Windows. Les valeurs de configuration sont stockées avec la clé de registre HKLM\SOFTWARE\PHP\Per Directory Values, dans les sous-clés correspondantes aux noms de dossier. Par exemple, la valeur d'une option dans le dossier c:\inetpub\wwwroot sera stockée dans la clé HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. La valeur de cette option sera utilisée pour tous les scripts qui fonctionnent dans ce dossier ou ses sous-dossiers. Les valeurs sous la clé doivent avoir le nom d'une direction de configuration PHP, et la valeur correspondante. Les constantes PHP ne sont pas utilisables : il faut mettre la valeur entière. Cependant, seules les valeurs des configurations dans PHP_INI_USER peuvent être fixées de cette manière, celles dans PHP_INI_PERDIR ne peuvent l'être.

Autres interfaces de configuration de PHP

Suivant la façon dont vous exécutez PHP, vous pouvez changer certaines valeurs durant l'exécution de vos scripts en utilisant ini_set(). Voir la documentation de la fonction ini_set() pour plus d'informations.

Si vous êtes intéressé par une liste complète des options configurées sur votre système avec leurs valeurs courantes, vous pouvez exécuter la fonction phpinfo() et consulter la page résultante. Vous pouvez aussi accéder individuellement aux directives de configuration pendant l'exécution de vos scripts en utilisant soit la fonction ini_get(), soit la fonction get_cfg_var().





Référence du langage


La syntaxe de base

Sommaire


Passer du HTML au PHP

Lorsque PHP traite un fichier, il cherche les balises d'ouverture et de fermeture, qui délimitent le code qu'il doit interpréter. De cette manière, cela permet à PHP d'être intégré dans toutes sortes de documents, car tout ce qui se trouve en dehors des balises ouvrantes / fermantes de PHP est ignoré. La plupart du temps, vous verrez du code PHP dans des documents HTML, comme dans l'exemple ci-dessous.

Exemple #1 Code PHP dans un document HTML

<p>Ceci sera ignoré.</p>
<?php echo 'Alors que ceci sera analysé par PHP.'?>
<p>Ceci sera également ignoré.</p>

Vous pouvez également utiliser des structures plus avancées :

Exemple #2 Protections avancées

<?php
if ($expression) {
    
?>
    <strong>Ceci est vrai.</strong>
    <?php
} else {
    
?>
    <strong>Ceci est faux.</strong>
    <?php
}
?>
Ceci fonctionne comme prévu parce que lorsque PHP rencontre la balise fermante ?>, il commence simplement à afficher ce qu'il rencontre (mise à part s'il est immédiatement suivi d'une nouvelle ligne : voir l'instruction de séparation) jusqu'à ce qu'il rencontre une autre balise ouvrante. L'exemple ci-dessus est simple, bien sûr, mais pour afficher de gros blocs de texte, la mise à l'écart de ce type de bloc de l'analyseur de PHP est plus efficace que d'envoyer la totalité du texte en utilisant les fonctions echo() ou print().

Il y a quatre paires différentes de balises ouvrantes / fermantes qui peuvent être utilisées dans PHP. Deux de ces balises, <?php ?> et <script language="php"> </script>, sont toujours disponibles. Les deux autres sont les balises courtes et les balises du style ASP, et peuvent être activées ou désactivées depuis le fichier de configuration php.ini. Cependant, malgré le fait que des personnes trouvent les balises courtes et les balises du style ASP pratiques, elles sont moins portables et donc, généralement, non recommandées.

Note:

Notez également que si vous intégrez PHP dans des documents XML ou XHTML, vous devez utiliser les balises <?php ?> pour rester conforme aux standards.

Exemple #3 Balises d'ouvertures et de fermetures PHP

1.  <?php echo 'Si vous voulez réaliser des documents XHTML ou XML, faites comme ceci'?>

2.  <script language="php">
        
echo 'quelques éditeurs (comme FrontPage)
                 n\'aiment pas ce genre d\'instructions'
;
    
</script>

3.  <? echo 'ceci est le plus simple, une instruction SGML'?>
    <?= expression ?> Ceci est la version courte pour "<? echo expression ?>"

4.  <% echo 'Vous pouvez optionnellement utiliser les balises ASP-style'; %>
    <%= $variable; # Ceci est la version courte pour "<% echo . . ." %>

Bien que les balises vues dans les exemples un et deux sont toutes les deux disponibles, l'exemple un est le plus communément utilisé et le plus recommandé des deux.

Les balises courtes (troisième exemple) ne sont disponibles que s'elles ont été activées via la directive short_open_tag du fichier de configuration php.ini, ou si PHP a été configuré avec l'option --enable-short-tags .

Les balises du style ASP (quatrième exemple) sont uniquement disponibles lorsqu'elles sont activées via la directive asp_tags du fichier de configuration php.ini.

Note:

L'utilisation des balises courtes doit être bannie lors de développements d'applications ou de bibliothèques qui sont destinées à être redistribuées, ou déployées sur des serveurs qui ne sont pas sous votre contrôle, car les balises courtes peuvent ne pas être supportées sur le serveur cible. Pour réaliser du code portable, qui peut être redistribué, n'utilisez jamais les balises courtes.

Note:

En PHP 5.2 et antérieures, l'analyseur n'autorisait pas un tag ouvrant <?php comme seul élément d'une page. Ceci est permis à compter de la version 5.3 de PHP.



Séparation des instructions

Comme en C ou en Perl, PHP requiert que les instructions soient terminées par un point-virgule à la fin de chaque instruction. La balise fermante d'un bloc de code PHP implique automatiquement un point-virgule ; vous n'avez donc pas besoin d'utiliser un point-virgule pour terminer la dernière ligne d'un bloc PHP. La balise fermante d'un bloc inclura immédiatement un caractère de nouvelle ligne si un est présent.

Exemple #1 Séparation des instructions

<?php
    
echo 'Ceci est un test';
?>

<?php echo 'Ceci est un test' ?>

<?php echo 'Oubli de la balise fermante';

Note:

La balise fermante d'un bloc PHP à la fin d'un fichier est optionnelle, et parfois, il est utile de l'omettre lors de l'utilisation de la fonction include() ou de la fonction require(), car les espaces non désirés n'apparaîtront pas à la fin des fichiers, et ainsi, vous pourrez toujours ajouter des en-têtes à la réponse plus tard. C'est utile également si vous voulez utiliser l'affichage du buffer et que vous ne voulez pas voir d'espaces blancs ajoutés à la fin des parties générées par les fichiers inclus.



Commentaires

PHP supporte les commentaires de type C, C++ et Shell Unix (aussi appelé style Perl). Par exemple :

Exemple #1 Exemple de commentaire

<?php
    
echo 'Ceci est un test'// Ceci est un commentaire sur une seule ligne, style c++
    /* Ceci est un commentaire sur
       plusieurs lignes */
    
echo 'Ceci est un autre test';
    echo 
'Et un test final'# Ceci est un commentaire style shell sur une seule ligne
?>

Les commentaires sur une seule ligne ne commentent que jusqu'à la fin de la ligne du bloc PHP courant. Ceci signifie que le code HTML après // ... ?> ou après # ... ?> SERA affiché : ?> terminera le mode PHP et retournera en mode HTML, et // ou # n'influencera pas cela. Si la directive de configuration asp_tags est activée, ce comportement sera identique avec // %> et # %>. Cependant, la balise </script> ne terminera pas le mode PHP dans un commentaire d'une seule ligne.

Exemple #2 Les commentaires vont jusqu'à la fin de la ligne

<h1>Ceci est un exemple <?php # echo 'simple';?>.</h1>
<p>La ligne ci-dessus affichera 'Ceci est un exemple'.</p>

Les commentaires style 'C' commentent jusqu'à ce que le premier */ soit rencontré. Vous devriez faire attention aux commentaires style 'C' nichés dans de gros blocs lorsque vous les commentez.

Exemple #3 Les commentaires de type C

<?php
 
/*
    echo 'Ceci est un test'; /* Ce commentaire posera un problème */
 
*/
?>




Les types

Sommaire


Introduction

PHP supporte 8 types basiques.

4 types scalaires :

2 types composés :

Et finalement, 2 types spéciaux :

Ce manuel introduit également quelques pseudo-types pour des raisons de lisibilité :

Et la pseudo-variable $....

Ce manuel peut toutefois contenir des références au type "double". Considérez ce type comme étant un type "float". Les deux noms n'existent que pour des raisons historiques.

Le type d'une variable n'est pas toujours défini par le programmeur ; il peut être défini par PHP au moment de l'exécution, suivant le contexte dans lequel la variable est utilisée.

Note: Pour vérifier le type et la valeur d'une expression, utilisez la fonction var_dump().

Pour afficher une représentation humainement lisible d'un type aux fins de déboguage, utilisez la fonction gettype(). Pour vérifier un certain type, n'utilisez pas la fonction gettype(), mais plutôt les fonctions is_type. Voici quelques exemples :

<?php
$a_bool 
TRUE;   // un booléen
$a_str  "foo";  // une chaîne de caractères
$a_str2 'foo';  // une chaîne de caractères
$an_int 12;     // un entier

echo gettype($a_bool); // affiche :  boolean
echo gettype($a_str);  // affiche :  string

// Si c'est un entier, incrément de 4
if (is_int($an_int)) {
    
$an_int += 4;
}

// Si $a_bool est une chaîne de caractères, on l'affiche
if (is_string($a_bool)) {
    echo 
"String: $a_bool";
}
?>

Pour forcer la conversion d'une variable en un certain type, vous pouvez transtyper (cast) la variable ou utiliser la fonction settype().

Notez qu'une variable peut être évaluée avec différentes valeurs dans certaines situations, suivant son type à un moment donné. Pour plus d'informations, lisez la section sur le transtypage. La table de comparaison des types peut également être très utile, montrant différents exemples.



Booléen

C'est le type le plus simple. Un booléen représente une valeur de vérité. Il peut valoir TRUE ou FALSE.

Note: Le type boolean a été introduit en PHP 4.

Syntaxe

Pour spécifier un booléen littéral, utilisez le mot-clé TRUE ou FALSE. Les deux sont insensibles à la casse.

<?php
$foo 
True// assigne la valeur TRUE à $foo
?>

Typiquement, voici quelques opérateurs qui retournent un booléen, passé ensuite à une structure de contrôle.

<?php
// == est un opérateur qui teste
// l'égalité et retourne un booléen
if ($action == "show_version") {
    echo 
"La version est 1.23";
}

// ceci n'est pas nécessaire...
if ($show_separators == TRUE) {
    echo 
"<hr>\n";
}

// ...à la place, vous pouvez utiliser :
if ($show_separators) {
    echo 
"<hr>\n";
}
?>

Conversion en booléen

Pour convertir explicitement une valeur en booléen, utilisez (bool) ou (boolean). Cependant, dans la plupart des cas, le transtypage n'est pas nécessaire, sachant qu'une valeur sera automatiquement convertie si un opérateur, une fonction ou une structure de contrôle demandent un argument de type booléen.

Voir aussi le transtypage.

Lors d'une conversion en booléen, les valeurs suivantes sont considérées comme FALSE :

Toutes les autres valeurs sont considérées comme TRUE (y compris toutes les ressources).

Avertissement

-1 est considéré comme TRUE, comme tous les nombres différents de zéro (négatifs ou positifs) !

<?php
var_dump
((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>


Les entiers

Un entier est un nombre appartenant à la classe ℤ = {..., -2, -1, 0, 1, 2, ...}.

Voir aussi :

Syntaxe

Les entiers peuvent être spécifiés en notation décimale (base 10), hexadécimale (base 16), ou octale (base 8), optionnellement précédée d'un signe (- ou +).

Pour utiliser la notation octale, précédez le nombre d'un 0 (zéro). Pour utiliser la notation hexadécimale, précédez le nombre d'un 0x.

Exemple #1 Les entiers littéraux

<?php
$a 
1234// un nombre décimal
$a = -123// un nombre négatif
$a 0123// un nombre octal (équivalent à 83 décimales)
$a 0x1A// un nombre héxadecimal (équivalent à 26 décimales)
?>

Formellement, la structure d'un entier littéral est :

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal

La taille d'un entier est dépendant de la plate-forme, cependant, une valeur maximale d'environ 2 milliards est habituelle (cela correspond à 32 bits signés). Les plateformes 64-bit ont habituellement une valeur maximale d'environ 9E18. PHP ne supporte pas les entiers non-signés. La taille d'un entier peut être déterminée en utilisant la constante PHP_INT_SIZE, et la valeur maximale, en utilisant la constante PHP_INT_MAX depuis PHP 5.0.5.

Avertissement

Si un nombre invalide est fourni dans un entier octal (i.e. 8 ou 9), le reste du nombre est ignoré.

Exemple #2 Bizarrerie avec les valeurs octales

<?php
var_dump
(01090); // 010 octal = 8 décimales
?>

Débordement d'entier

Si PHP rencontre un nombre supérieur au maximal d'un entier, il sera interprété comme un nombre décimal. De la même façon, une opération qui résulte en un nombre supérieur au nombre maximal d'un entier, retournera un nombre décimal.

Exemple #3 Dépassement d'entier sur un système 32-bit

<?php
$large_number 
2147483647;
var_dump($large_number);                     // int(2147483647)

$large_number 2147483648;
var_dump($large_number);                     // float(2147483648)

$million 1000000;
$large_number =  50000 $million;
var_dump($large_number);                     // float(50000000000)
?>

Exemple #4 Dépassement d'entier sur un système 64-bit

<?php
$large_number 
9223372036854775807;
var_dump($large_number);                     // int(9223372036854775807)

$large_number 9223372036854775808;
var_dump($large_number);                     // float(9.2233720368548E+18)

$million 1000000;
$large_number =  50000000000000 $million;
var_dump($large_number);                     // float(5.0E+19)
?>

Il n'y a pas d'opérateur de division entière en PHP. 1/2 contient en fait, float(0.5). La valeur peut être convertie en un entier en l'arrondissant, en utilisant la fonction round().

<?php
var_dump
(25/7);         // float(3.5714285714286) 
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4) 
?>

Conversion en entier

Pour convertir explicitement une valeur en un entier, utilisez soit le mot-clé (int), soit (integer). Cependant, dans la plupart des cas, ce mot-clé n'est pas nécessaire vu qu'une valeur sera automatiquement convertie si un opérateur, une fonction ou une structure de contrôle demande un entier en guise d'argument. Une valeur peut également être convertie en un entier en utilisant la fonction intval().

Voir aussi : le transtypage.

Depuis un booléen

FALSE correspond à 0 (zéro), et TRUE correspond à 1 (un).

Depuis un nombre à virgule flottante

Lorsque l'on convertit un nombre décimal en un entier, le nombre sera arrondi vers zéro.

Si le nombre à virgule flottante est au delà des limites des entiers (habituellement, +/- 2.15e+9 = 2^31 sur les plate-formes 32-bit et +/- 9.22e+18 = 2^63 sur les plate-formes 64-bit), le résultat sera indéfini, sachant que le nombre à virgule flottante n'a pas une précision suffisante pour donner un résultat entier exact. Aucune alerte n'est émise lorsque ce comportement survient !

Avertissement

Ne convertissez jamais une fraction inconnue en un entier, ceci peut engendrer un résultat inattendu.

<?php
echo (int) ( (0.1+0.7) * 10 ); // Affiche 7 !
?>

Voir aussi la section sur les alertes concernant la précision des nombres à virgule flottante.

Depuis des chaînes de caractères

Voir la section sur la conversion des chaînes en nombres

Depuis d'autres types

Attention

Le comportement de la conversion en un entier est indéfini depuis les autres types. Ne rapporter aucun comportement observé, sachant qu'ils peuvent changer sans avertissement.



Nombres décimaux

Les nombres décimaux, (aussi connus comme nombres à virgule flottante, "floats", "doubles", ou "real numbers") peuvent être spécifiés en utilisant les syntaxes suivantes :

<?php
$a 
1.234;
$b 1.2e3;
$c 7E-10;
?>

Formellement :

LNUM          [0-9]+
DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})

La taille d'un nombre décimal est dépendant de la plate-forme, cependant, un nombre maximal de ~1.8e308 avec une précision sur 14 chiffres est une valeur commune (format 64 bits IEEE).

Avertissement

Précision des nombres décimaux

Les nombres décimaux ont une précision limitée. Même s'ils dépendent du système, PHP utilise le format de précision des décimaux IEEE 754, qui donnera une erreur maximale relative de l'ordre de 1.11e-16 (dûe aux arrondis). Les opérations arithmétiques non-élémentaires peuvent donner des erreurs plus importantes et bien sûr les erreurs doivent être prises en compte lorsque plusieurs opérations sont liées.

Aussi, les nombres rationnels exactement représentables sous forme de nombre à virgule flottante en base 10, comme 0.1 ou 0.7, n'ont pas e de représentation exacte comme nombres à virgule flottante en base 2, utilisée en interne, et ce qu'elle que soit la taille de la mantisse. De ce fait, ils ne peuvent être convertis sans une petite perte de précision. Ceci peut mener à des résultats confus: par exemple, floor((0.1+0.7)*10) retournera normalement 7 au lieu de 8 attendu, car la représentation interne sera quelque chose comme 7.9999999999999991118....

Ainsi, ne faites jamais confiance aux derniers chiffres d'un nombre décimal, mais aussi, ne comparez jamais l'égalité de 2 nombres décimaux. Si vous avez besoin d'une haute précision, les fonctions mathématiques de précision et les fonctions gmp sont disponibles.

Conversion en un nombre décimal

Pour plus d'informations sur la conversion de chaînes en nombres décimaux , voir la section sur la conversion de chaînes en nombres décimaux. Pour les valeurs d'autres types, la conversion est effectuée en convertissant tout d'abord la valeur en un entier, puis, en nombre décimal. Voir la section sur la conversion en entier pour plus d'informations. Une notice est émise si un objet est converti en nombre décimal.



Les chaînes de caractères

Une chaîne de caractères est une série de caractères et un caractère est la même chose qu'un octet. Ainsi, il y a exactement 256 caractères différents. Ceci impliquait également que PHP n'avait pas de support natif pour l'Unicode. Voir les fonctions utf8_encode() et utf8_decode() pour des fonctionnalités Unicode simples.

Note: Ce n'est pas un problème pour une chaîne de caractères de devenir très grande. PHP n'impose pas de taille à une chaîne de caractères ; la seule limite est la mémoire disponible sur le système sous lequel PHP s'exécute.

Syntaxe

Une chaîne de caractères littérale peut être spécifiée de 4 façons différentes :

Entourée de simples guillemets

La façon la plus simple de spécifier une chaîne de caractères est de l'entourer de guillemets simples (le caractère ').

Pour spécifier un guillemet simple littéral, vous devrez l'échapper d'un antislash (\). Pour spécifier un antislash littéral échappez-le deux fois (\\). Notez que si vous tentez d'échapper n'importe quel autre caractère, l'antislash s'affichera, ce qui signifie que les séquences auquelles vous êtes éventuellement habitués (\r, \n) s'afficheront telles quelles.

Note: Contrairement aux syntaxes double guillemets et heredoc, les variables et les séquences échappées des caractères spéciaux ne seront pas traitées lorsqu'elles seront dans une chaîne de caractères entourée de simples guillemets.

<?php
echo 'ceci est une chaîne simple';

echo 
'Vous pouvez également ajouter des nouvelles lignes
dans vos chaînes
de cette façon'
;

// Affiche : Arnold dit : "I'll be back"
echo 'Arnold dit : "I\'ll be back"';

// Affiche : Voulez-vous supprimer C:\*.*?
echo 'Voulez-vous supprimer C:\\*.*?';

// Affiche : Voulez-vous supprimer C:\*.*?
echo 'Voulez-vous supprimer C:\*.*?';

// Affiche : Ceci n'affichera pas \n de nouvelle ligne
echo 'Ceci n\'affichera pas \n de nouvelle ligne';

// Affiche : Les variables ne seront pas $traitees $ici
echo 'Les variables ne seront pas $traitees $ici';
?>

Entourée de guillemets doubles

Si la chaîne de caractères est entourée de guillemets doubles ("), PHP interprétera plus de séquences échappées pour les caractères spéciaux :

Caractères échappés
Séquence Signification
\n Fin de ligne (LF ou 0x0A (10) en ASCII)
\r Retour à la ligne (CR ou 0x0D (13) en ASCII)
\t Tabulation horizontale (HT or 0x09 (9) en ASCII)
\v Tabulation verticale (VT or 0x0B (11) en ASCII) (depuis PHP 5.2.5)
\f Saut de page (FF ou 0x0C (12) en ASCII) (depuis PHP 5.2.5)
\\ Antislash
\$ Signe dollar
\" Guillemet double
\[0-7]{1,3} La séquence de caractères correspondant à une expression régulière est un caractère, en notation octal
\x[0-9A-Fa-f]{1,2} La séquence de caractères correspondant à une expression régulière est un caractère, en notation hexadécimale

De la même façon que pour les chaînes entourées de simples guillemets, l'échappement de tout autre caractère affichera l'antislash. Avant PHP 5.1.1, l'antislash de \{$var} n'était pas affiché.

La fonctionnalité la plus intéressante des chaînes entourées de guillemets doubles est que les noms de variables sont traités. Voir la documentation sur l'analyse des chaînes de caractères pour plus de détails.

Syntaxe Heredoc

Une 3ème façon de délimiter une chaîne de caractères est la syntaxe Heredoc : <<<. Après cet opérateur, un identifiant est fourni, puis, une nouvelle ligne. La chaîne elle-même suit, puis, le même identifiant pour fermer la notation.

L'identifiant doit commencer la première colonne de la ligne. De plus, l'identifiant doit suivre les mêmes règles que n'importe quel libellé PHP : il ne doit contenir que des caractères alphanumériques et des soulignés, et doit commencer par un caractère non numérique ou un souligné ("underscore").

Avertissement

Il est très important de noter que la ligne contenant l'identifiant ne doit contenir aucun autre caractère, mis à part, éventuellement, un point-virgule (;). Cela signifie que l'identifiant ne doit pas être indenté, et il ne doit y avoir aucun espace ou tabulation avant ou après le point-virgule. Il est également important de garder à l'esprit que le premier caractère avant l'identifiant de fermeture doit être une nouvelle ligne sur les systèmes Unix, incluant Mac OSX (caractère \n). Le délimiteur de fermeture (pouvant être suivi d'un point-virgule) doit aussi être suivi d'une nouvelle ligne.

Si cette règle n'est pas respectée et que l'identifiant de fermeture n'est pas "propre", il ne sera pas considéré comme identifiant de fermeture, et PHP continuera à en chercher un. Si un identifiant de fermeture "propre" n'est pas trouvé avant la fin du fichier courant, une erreur d'analyse sera émise à la dernière ligne.

Heredoc ne peut être utilisé pour initialiser les proriétés d'une classe. Depuis PHP 5.3, cette limitation ne s'applique qu'aux Heredoc qui contiennent des variables.

Exemple #1 Exemple invalide

<?php
class foo {
    public 
$bar = <<<EOT
bar
    EOT;
}
?>

Heredoc se comporte exactement comme une chaîne entourée de doubles guillemets, sans avoir de double guillemet. Cela signifie que les guillemets dans une syntaxe Heredoc n'ont pas besoin d'être échappés, mais les codes d'échappement listés ci-dessus peuvent toujours être utilisés. Les variables seront traitées mais les mêmes attentions doivent être prises lorsque vous utilisez des variables complexes dans une syntaxe Heredoc.

Exemple #2 Exemple de chaînes Heredoc

<?php
$str 
= <<<EOD
Exemple de chaîne
sur plusieurs lignes
en utilisant la syntaxe Heredoc.
EOD;

/* Exemple plus complexe, avec des variables. */
class foo
{
    var 
$foo;
    var 
$bar;

    function 
foo()
    {
        
$this->foo 'Foo';
        
$this->bar = array('Bar1''Bar2''Bar3');
    }
}

$foo = new foo();
$name 'MyName';

echo <<<EOT
Mon nom est "$name". J'affiche quelques $foo->foo.
Maintenant, j'affiche quelques 
{$foo->bar[1]}.
Et ceci devrait afficher un 'A': \x41
EOT;
?>

L'exemple ci-dessus va afficher :

Mon nom est "MyName". J'affiche quelques Foo.
Maintenant, j'affiche quelques Bar2.
Et ceci devrait afficher un 'A' majuscule : A

Il est aussi possible d'utiliser la syntaxe Heredoc pour passer des arguments à une fonction :

Exemple #3 Exemple d'utilisation de Heredoc pour passer des arguments

<?php
var_dump
(array(<<<EOD
foobar!
EOD
));

Depuis PHP 5.3.0, il est possible d'initialiser les variables statiques et les propriétés ou constantes de classes avec la syntaxe Heredoc :

Exemple #4 Utilisation de Heredoc pour initialiser des valeurs statiques

<?php
// Variables statiques
function foo()
{
    static 
$bar = <<<LABEL
Nothing in here...
LABEL;
}

// Constantes et propriétés de classe
class foo
{
    const 
BAR = <<<FOOBAR
Constant example
FOOBAR;

    public 
$baz = <<<FOOBAR
Property example
FOOBAR;
}
?>

PHP 5.3.0 introduit aussi la possibilité pour Heredoc d'utiliser les guillemets doubles dans les déclarations :

Exemple #5 Utilisation des guillemets doubles avec Heredoc

<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
>

Note:

Le support Heredoc a été ajouté en PHP 4.

Nowdoc

Nowdoc est aux chaînes entourées de guillemets simples ce qu'Heredoc est aux chaînes entourées de guillemets doubles. Nowdoc est spécifié de manière similaire à Heredoc, mais aucune analyse n'est effectuée dans une syntaxe Nowdoc. La construction est idéale pour embarquer du code PHP ou d'autres larges blocs de texte, sans avoir besoin d'échapper quoi que ce soit. Cette syntaxe partage les mêmes fonctionnalités que le constructeur SGML <![CDATA[ ]]>, en ce qu'elle déclare un bloc de texte qui ne doit pas être analysé.

Nowdoc est identifié avec la même séquence <<< utilisée par Heredoc, mais l'identifiant qui suit est entouré de guillemets simples, e.g. <<<'EOT'. Toutes les règles concernant les identifiants Heredoc sont également appliquées aux identifiants Nowdoc, et tout spécialement, celles concernant l'apparence de l'identifiant.

Exemple #6 Exemple de chaînes Nowdoc

<?php
$str 
= <<<'EOD'
Exemple de chaîne
sur plusieurs lignes
en utilisant la syntaxe Nowdoc.
EOD;

/* Exemple complexe, avec des variables. */
class foo
{
    public 
$foo;
    public 
$bar;

    function 
foo()
    {
        
$this->foo 'Foo';
        
$this->bar = array('Bar1''Bar2''Bar3');
    }
}

$foo = new foo();
$name 'MyName';

echo <<<'EOT'
Mom nom est "$name". J'affiche quelques $foo->foo.
Maintenant, j'affiche quelques {$foo->bar[1]}.
Ceci ne devrait pas afficher un 'A': \x41
EOT;
?>

L'exemple ci-dessus va afficher :

Mom nom est "$name". J'affiche quelques $foo->foo.
Maintenant, j'affiche quelques {$foo->bar[1]}.
Ceci ne devrait pas afficher un 'A': \x41

Note:

Tout comme Heredoc, NowDoc peut être utilisé dans n'importe quel contexte de données statiques. L'exemple typique est l'initialisation de proriétés ou de constantes de classe :

Exemple #7 Exemple avec des données statiques

<?php
class foo {
    public 
$bar = <<<'EOT'
bar
EOT;
}
?>

Note:

Le support Nowdoc a été ajouté en PHP 5.3.0.

Analyse des variables

Lorsqu'une chaîne de caractères est spécifiée entre guillemets doubles ou en Heredoc, les variables sont analysées.

Il y a 2 types de syntaxe : une simple et une complexe. La syntaxe simple est la plus commune et la plus pratique. Elle fournit une façon d'embarquer une variable, un tableau ou un objet dans une chaîne avec un minimum d'effort.

La syntaxe complexe se reconnaît en l'utilisation d'accolades autour de l'expression.

Syntaxe simple

Si un signe dollar ($) est rencontré, l'analyse prendra autant de caractères que possible pour former un nom de variable valide. Si vous entourez un nom de variable par des accolades explicitement, alors le nom de la variable n'aura aucune ambiguïté.

<?php
$juice 
"pomme";

echo 
"Il a bu du jus de $juice.".PHP_EOL;
echo 
"Il a bu du jus constitué de $juices."// Invalide. "s" est un caractère valide de nom de variable, mais la variable est $juice.
?>

L'exemple ci-dessus va afficher :

Il a bu du jus de pomme.
Il a bu du jus de.

De la même façon, l'index d'un tableau ou la propriété d'un objet peut être analysé. Avec les indices d'un tableau, les crochets (]) forment la fin de l'index. Les mêmes règles sont appliquées aux propriétés d'objet comme pour les simples variables.

Exemple #8 Exemple de la syntaxe simple

<?php
$juices 
= array("pomme""poire""koolaid1" => "raisin");

echo 
"Il a bu du jus de $juices[0].".PHP_EOL;
echo 
"Il a bu du jus de $juices[1].".PHP_EOL;
echo 
"Il a bu du jus à base de $juice[0]s.".PHP_EOL// Ne fonctionne pas
echo "Il a bu du jus de $juices[koolaid1].".PHP_EOL;

class 
people {
    public 
$john "John Smith";
    public 
$jane "Jane Smith";
    public 
$robert "Robert Paulsen";
    
    public 
$smith "Smith";
}

$people = new people();

echo 
"$people->john a bu du jus de $juices[0].".PHP_EOL;
echo 
"$people->john a dit bonjour à $people->jane.".PHP_EOL;
echo 
"$people->john's wife greeted $people->robert.".PHP_EOL;
echo 
"$people->robert a dit bonjour aux $people->smiths."// Ne fonctionne pas
?>

L'exemple ci-dessus va afficher :

Il a bu du jus de pomme.
Il a bu du jus de poire.
Il a bu du jus à base de s.
Il a bu du jus de raisin.
John Smith a bu du jus de pomme.
John Smith a dit bonjour à Jane Smith.
John Smith's wife greeted Robert Paulsen.
Robert Paulsen a dit bonjour aux .

Pour tout ce qui est plus complexe, vous devriez utiliser la syntaxe complexe.

Syntaxe complexe

Cette syntaxe est appelée complexe, non pas par qu'elle est complexe, mais parce qu'elle permet l'utilisation d'expressions complexes.

Toute variable scalaire, tableau ou attribut d'objet représenté en temps que chaîne de caractères peut être utilisée avec cette syntaxe. Écrivez simplement l'expression de la même façon qu'elle devrait l'être à l'extérieur de la chaîne et ensuite, entourez-là des caractères { et }. Sachant que le caractère { ne peut pas être échappé, cette syntaxe ne sera reconnue que lorsque le caractère $ suit immédiatement le caractère {. Utilisez {\$ pour afficher littéralement {$. Quelques exemples pour être clair :

<?php
// Montre toutes les erreurs
error_reporting(E_ALL);

$great 'fantastic';

// Ne fonctionne pas, affiche : This is { fantastic}
echo "This is { $great}";

// Fonctionne, affiche : This is fantastic
echo "This is {$great}";
echo 
"This is ${great}";

// Fonctionne
echo "This square is {$square->width}00 centimeters broad."

// Fonctionne, les clés entourées de quotes ne fonctionnent qu'avec la syntaxe à accolades
echo "This works: {$arr['key']}";

// Fonctionne
echo "This works: {$arr[4][3]}";

// Ceci est faux pour la même raison pour laquelle $foo[bar] est faux à l'extérieur d'une chaîne.
// En d'autres termes, ceci fonctionnera, mais uniquement parceque PHP cherchera d'abord
// une constante nommée foo ; une erreur de niveau E_NOTICE (constante indéfinie) sera émise.
echo "This is wrong: {$arr[foo][3]}"

// Fonctionne. Lors de l'utilisation de tableaux multidimensionnels, utilisez toujours
// les accolades autour du tableau lorsqu'il se trouve dans la chaîne
echo "This works: {$arr['foo'][3]}";

// Fonctionne.
echo "This works: " $arr['foo'][3];

echo 
"This works too: {$obj->values[3]->name}";

echo 
"This is the value of the var named $name{${$name}}";

echo 
"This is the value of the var named by the return value of getName(): {${getName()}}";

echo 
"This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";

// Ne fonctionne pas, affiche: This is the return value of getName(): {getName()}
echo "This is the return value of getName(): {getName()}";
?>

Il est également possible d'accéder aux propriétés de classes en utilisant les variables contenues dans des chaînes, en utilisant cette syntaxe.

<?php
class foo {
    var 
$bar 'I am bar.';
}

$foo = new foo();
$bar 'bar';
$baz = array('foo''bar''baz''quux');
echo 
"{$foo->$bar}\n";
echo 
"{$foo->$baz[1]}\n";
?>

L'exemple ci-dessus va afficher :


I am bar.
I am bar.

Note:

Les appels aux fonctions, méthodes, variables statiques de classes, ainsi qu'aux constantes de classes à l'intérieur de {$} fonctionnent, cependant la valeur accédée sera interprétée comme le nom d'une variable dans le contexte duquel la chaîne est définie. L'utilisation de simples accolades ({}) ne fonctionnera pas pour accéder à la valeur retournée par les fonctions, méthodes ou les valeurs des constantes et des variables statiques de classes.

<?php
// Affichage de toutes les erreurs.
error_reporting(E_ALL);

class 
beers {
    const 
softdrink 'rootbeer';
    public static 
$ale 'ipa';
}

$rootbeer 'A & W';
$ipa 'Alexander Keith\'s';

// Ceci fonctionne ; Affiche : I'd like an A & W
echo "I'd like an {${beers::softdrink}}\n";

// Ceci fonctionne également ; Affiche : I'd like an Alexander Keith's
echo "I'd like an {${beers::$ale}}\n";
?>

Accès et modification d'une chaîne, par caractère

On peut accéder et modifier les caractères d'une chaîne de caractères en spécifiant sa position (à partir de 0) en utilisant la même syntaxe que pour les tableaux, comme pour la variable $str[42]. Il convient de voir une chaîne de caractères comme un tableau dans ce cas. Les fonctions substr() et substr_replace() peuvent être utilisées quand vous voulez extraire ou remplacer plus d'un caractère.

Note: On peut également accéder à une chaîne en utilisant des accolades, comme ceci : $str{42}.

Avertissement

Écrire à une position hors de l'intervalle de l'existant fait que la chaîne est complétée par des espaces jusqu'à cette position. Les positions sont toujours converties en valeur entière. Les positions invalides produisent une alerte E_NOTICE. Les positions négatives produisent une alerte E_NOTICE mais retournent une chaîne vide en lecture. Seul le premier caractère d'une chaîne assignée est utilisé. Assigner une chaîne vide assigne le caractère NUL.

Exemple #9 Quelques exemples de chaînes

<?php
// Récupération du premier caractère d'une chaîne
$str 'This is a test.';
$first $str[0];

// Récupération du troisième caractère d'une chaîne
$third $str[2];

// Récupération du dernier caractère d'une chaîne
$str 'This is still a test.';
$last $str[strlen($str)-1]; 

// Modification du dernier caractère d'une chaîne
$str 'Look at the sea';
$str[strlen($str)-1] = 'e';

?>

Note:

L'accès aux autres types de variables (c'est à dire pas les tableaux ni les objets implémentant les bonnes interfaces) en utilisant [] ou {} retournera silencieusement NULL.

Fonctions et opérateurs utiles

Une chaîne de caractères peut être concaténée en utilisant l'opérateur '.' (point). Notez que l'opérateur '+' (addition) ne fonctionnera pas. Reportez-vous aux opérateurs de chaîne pour plus d'informations.

Il y a beaucoup de fonctions utiles pour la manipulation de chaîne de caractères.

Reportez-vous à la section sur les fonctions des chaînes de caractères pour plus de précisions et à la section sur les expressions rationnelles ou sur les expressions rationnelles compatibles Perl pour des recherches et des remplacements avancés.

Il y a également des fonctions pour les URL, et des fonctions pour chiffrer/déchiffrer les chaînes de caractères (mcrypt et mhash).

Et pour finir, reportez-vous aux fonctions "type de caractères".

Conversion en chaîne de caractères

Une valeur peut être convertie en une chaîne de caractères, en utilisant le mot-clé (string) ou la fonction strval(). La conversion d'une chaîne de caractères est automatiquement effectuée dans le contexte d'une expression où une chaîne de caractères est nécessaire. Ceci survient lors de l'utilisation des fonctions echo() ou print() ou lorsqu'une variable est comparée à une chaîne. Les sections sur les types et sur le transtypage expliquent ce qui suit de manière plus détaillée. Reportez-vous également à la fonction settype().

La valeur booléenne TRUE est convertie en la chaîne "1". La valeur booléenne FALSE est convertie en "" (une chaîne vide). Ceci permet les conversions vers et depuis une chaîne et un booléen.

Un entier ou un nombre décimal est converti en une chaîne de caractères représentant le nombre de façon textuel (incluant la partie exponentielle pour les nombres à virgule flottante). Les nombres à virgule flottante peuvent être convertis en utilisant la notation exponentielle (4.1E+6).

Note:

Le point décimal est défini dans la locale du script (catégorie LC_NUMERIC). Reportez-vous à la fonction setlocale().

Les tableaux sont toujours convertis en la chaîne "Array" ; ainsi, echo() et print() ne peuvent être utilisés pour afficher le contenu d'un tableau. Pour afficher un seul élément, utilisez une syntaxe comme echo $arr['foo']. Voir ci-dessous pour des astuces permettant d'afficher le contenu complet.

Les objets en PHP <5.2 sont convertis en la chaîne "Object id#1"1 un est un chiffre pouvant varier. Pour afficher les valeurs des propriétés de l'objet (à des fins de déboguage, par exemple), lisez le paragraphe ci-dessous. Pour récupérer le nom de la classe de l'objet, utilisez la fonction get_class(). Notez qu'à partir de PHP 5, la méthode __toString est utilisée lorsqu'elle peut s'appliquer.

Les ressources sont toujours converties en la chaîne "Resource id #1", où 1 est le nombre unique assigné à la ressource par PHP au moment de l'exécution. Ne vous fiez pas à cette structure, il est possible qu'elle change. Pour récupérer le type de la ressource, utilisez la fonction get_resource_type().

NULL est toujours converti en une chaîne vide.

Au vu de tout cela, la conversion d'un tableau, d'un objet ou d'une ressource en une chaîne de caractères ne fournit aucune information utile sur la valeur contenue dans ce type. Reportez-vous aux fonctions print_r() et var_dump() pour plus d'informations sur le contenu de ces types.

La plupart des valeurs en PHP peuvent également être converties en chaîne de caractères afin de les stocker. Cette méthode est appelée "linéarisation", et est effectuée par la fonction serialize(). Si le moteur PHP a été compilé avec le support WDDX, les valeurs PHP peuvent également être linéarisées en XML.

Conversion de chaînes en nombres

Lorsqu'une chaîne de caractères est évaluée dans un contexte numérique, la valeur et le type résultants sont déterminés comme suit.

Si la chaîne de caractères ne contient aucun '.', 'e', ou 'E' et que la valeur numérique est dans l'intervalle de représentation des entiers (et notamment plus petite que PHP_INT_MAX), alors la chaîne de caractères sera transformée en entier. Dans les autres cas, elle sera interprétée comme un nombre décimal.

La valeur est fournie par la portion initiale de la chaîne de caractères. Si la chaîne de caractères commence par un caractère numérique valide, ce sera la valeur utilisée. Sinon, la valeur sera de 0 (zéro). Une valeur numérique valide est un signe optionnel, suivi par un ou plusieurs nombres (contenant, optionnellement, un point décimal), suivi par, éventuellement, un exponentiel. L'exponentiel est un 'e' ou 'E' suivi par un ou plusieurs nombres.

<?php
$foo 
"10.5";                // $foo est un nombre à virgule flottante (11.5)
$foo "-1.3e3";              // $foo est un nombre à virgule flottante (-1299)
$foo "bob-1.3e3";           // $foo est un entier (1)
$foo "bob3";                // $foo est un entier (1)
$foo "10 Small Pigs";       // $foo est un entier (11)
$foo "10.2 Little Piggies"// $foo est un nombre à virgule flottante (14.2)
$foo "10.0 pigs " 1;          // $foo est un nombre à virgule flottante (11)
$foo "10.0 pigs " 1.0;        // $foo est un nombre à virgule flottante (11)
?>

Pour plus d'informations sur ces conversions, reportez-vous au manuel Unix de la fonction strtod(3).

Pour tester un exemple de cette section, copiez/collez l'exemple et insérez la ligne suivante pour voir ce qu'il se passe :

<?php
echo "Le type de \$foo==$foo; est " gettype ($foo) . "<br />\n";
?>

Ne vous attendez pas à récupérer le code d'un caractère en le convertissant en entier, comme cela est possible en C. Utilisez la fonction ord() et la fonction chr() pour convertir les caractères en codes ASCII.



Les tableaux

Un tableau en PHP est en fait une carte ordonnée. Une carte est un type qui associe des valeurs en clés. Ce type est optimisé pour différentes utilisations ; il peut être considéré comme un tableau, une liste, une table de hashage, un dictionnaire, une collection, une pile, une file d'attente et probablement plus. On peut avoir, comme valeur d'un tableau, d'autres tableaux, multidimensionnels ou non.

La structure de ces données dépasse l'objet de ce manuel, mais vous trouverez au moins un exemple pour chacun des cas évoqués. Pour plus d'informations, reportez-vous aux différentes explications sur le sujet que l'on trouve sur le web.

Syntaxe

Syntaxe d'un tableau

Un tableau peut être créé avec la structure de langage array(). Il prend un nombre illimité de paramètres, chacun séparé par une virgule, sous la forme d'une paire clé => valeur.

array(  clé =>  valeur
     , ...
     )
// clé ne peut être qu'un entier ou une chaîne de caractères
// valeur peut être de n'importe quel type
<?php
$arr 
= array("foo" => "bar"12 => true);

echo 
$arr["foo"]; // bar
echo $arr[12];    // 1
?>

Une clé peut être soit un entier, soit une chaîne de caractères. Si une clé est une représentation standard d'un entier, elle sera interprétée comme telle (i.e. "8" sera interprété comme 8, alors que "08" sera interprétée comme "08"). Les nombres à virgule flottante, en tant que clé, seront tronqués en entier. Les tableaux indexés ou associatifs, en PHP, sont du même type ; ils peuvent ainsi contenir des indices sous la forme d'entier et de chaîne de caractères.

Une valeur peut être de n'importe quel type PHP.

Note:

Tenter d'accéder à un tableau qui n'a pas été définit conduit à la même chose que de tenter d'accéder à une variable non définie : une alerte de niveau E_NOTICE sera émise, et le résultat sera la valeur NULL.

<?php
$arr 
= array("somearray" => array(=> 513 => 9"a" => 42));

echo 
$arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

Si une clé n'est pas spécifiée pour une valeur, l'indice entier maximal sera pris et la nouvelle clé sera cette valeur, plus 1. Si une clé contient déjà une valeur associée, cette valeur sera écrasée.

<?php
// Ce tableau est identique à ...
array(=> 433256"b" => 12);

// ...ce tableau
array(=> 43=> 32=> 56"b" => 12);
?>
Avertissement

Avant PHP 4.3.0, le fait d'ajouter à un tableau une valeur, dont la précédent clé est négative, reproduisait le comportement ci-dessus. Depuis PHP 4.3.0, la nouvelle clé sera 0.

Utiliser TRUE comme clé sera évalué à l'entier 1. Utiliser FALSE comme clé sera évalué à l'entier 0. Utiliser NULL comme clé sera évalué à une chaîne de caractères vide. Utiliser une chaîne de caractères vide comme clé créera une clé (ou l'écrasera) vide et sa valeur ne sera pas la même si on utilise des parenthèses vides.

Les tableaux et les objets ne peuvent être utilisés comme clés. Si vous tentez de le faire, une message de type Alerte sera émis : Illegal offset type.

Création/modification avec des crochets

Un tableau existant peut être modifié en y assignant explicitement des valeurs.

L'assignation d'une valeur dans un tableau est effectué en spécifiant la clé, entre crochets. La clé peut également ne pas être renseignée, sous la forme : [].

$arr[clé] = valeur;
$arr[] = valeur;
// clé peut être un entier ou une chaîne de caractères
// valeur peut être n'importe quel type

Si $arr n'existe pas lors de l'assignation, il sera créé ; c'est ainsi une façon détournée de créer un tableau. Pour modifier une valeur en particulier, il convient d'assigner une valeur en spécifiant sa clé. Pour effacer une paire clé/valeur, il convient d'appeler la fonction unset() sur la clé désirée.

<?php
$arr 
= array(=> 112 => 2);

$arr[] = 56;    // Identique à $arr[13] = 56;
                // à cet endroit du script

$arr["x"] = 42// Ceci ajoute un nouvel élément au
                // tableau avec la clé "x"

unset($arr[5]); // Ceci efface l'élément du tableau

unset($arr);    // Ceci efface complètement le tableau
?>

Note:

Comme dit plus haut, si aucune clé n'est spécifiée, l'indice maximal existant est repris, et la nouvelle clé sera ce nombre, plus 1. Si aucun indice entier n'existe, la clé sera 0 (zéro).

Notez que la clé entière maximale pour cette opération n'a pas besoin d'exister dans le tableau au moment de la manipulation. Elle doit seulement avoir existé dans le tableau à un moment ou un autre depuis la dernière fois où le tableau a été ré-indexé. Voici un exemple qui illustre ce principe :

<?php
// Création d'un tableau simple.
$array = array(12345);
print_r($array);

// Maintennant, on efface tous les éléments, mais on concerne le tableau :
foreach ($array as $i => $value) {
    unset(
$array[$i]);
}
print_r($array);

// Ajout d'un élément (notez que la nouvelle clé est 5, et non 0).
$array[] = 6;
print_r($array);

// Ré-indexation :
$array array_values($array);
$array[] = 7;
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Fonctions utiles

Il y a beaucoup de fonctions utiles pour travailler avec les tableaux. Nous vous invitons à lire la section de ce manuel sur les fonctions en rapport avec les tableaux.

Note:

La fonction unset() permet d'effacer les clés d'un tableau. Soyez attentif sur le fait que le tableau ne sera pas ré-indexé. Si vous voulez réaliser un effacement complet et une ré-indexation de votre tableau, vous devez utiliser la fonction array_values().

<?php
$a 
= array(=> 'one'=> 'two'=> 'three');
unset(
$a[2]);
/* produira un tableau comme ceci
   $a = array(1 => 'one', 3 => 'three');
   et NON un tableau comme ceci
   $a = array(1 => 'one', 2 =>'three');
*/

$b array_values($a);
// Maintenant, $b vaut array(0 => 'one', 1 =>'three')
?>

La structure de contrôle foreach existe tout spécialement pour les tableaux. Elle fournit une manière pratique de parcourir un tableau.

Ce qu'il est possible de faire ou non avec un tableau

Pourquoi $foo[bar] est incorrect ?

Utiliser toujours des guillemets autour d'un index littéral. Par exemple, $foo['bar'] est correct, alors que $foo[bar] ne l'est pas. Mais pourquoi ? il est courant de rencontrer ce genre de syntaxe dans d'ancien script :

<?php
$foo
[bar] = 'enemy';
echo 
$foo[bar];
// etc
?>

C'est incorrect, mais ça fonctionne. La raison est que ce code a une constante indéfinie (bar) plutôt qu'une chaîne ('bar' - noter les guillemets). PHP peut définir plus loin une constante portant le même nom. Cela fonctionne car PHP convertit automatiquement une chaîne nue (une chaîne sans guillemets qui ne correspond à aucun symbole connu) en une chaîne qui la contient. Actuellement, s'il n'y a aucune constante nommée bar, alors PHP substituera 'bar' dans la chaîne et l'utilisera.

Note: Ceci ne signifie pas qu'il faut toujours mettre la clé entre guillemets. N'utilisez pas de guillemets avec les clés qui sont des constantes ou des variables, car cela empêcherait PHP de les interpréter.

<?php
error_reporting
(E_ALL);
ini_set('display_errors'true);
ini_set('html_errors'false);
// Tableau simple :
$array = array(12);
$count count($array);
for (
$i 0$i $count$i++) {
    echo 
"\nVérification de $i : \n";
    echo 
"Mauvais : " $array['$i'] . "\n";
    echo 
"Bon : " $array[$i] . "\n";
    echo 
"Mauvais : {$array['$i']}\n";
    echo 
"Bon : {$array[$i]}\n";
}
?>

L'exemple ci-dessus va afficher :

Vérification de 0 :
Notice: Undefined index:  $i in /path/to/script.html on line 9
Mauvais :
Bon : 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Mauvais :
Bon : 1

Vérification de 1 :
Notice: Undefined index:  $i in /path/to/script.html on line 9
Mauvais :
Bon : 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Mauvais :
Bon : 2

Plus d'exemples pour expliquer ce comportement :

<?php
// Affichons toutes les erreurs
error_reporting(E_ALL);

$arr = array('fruit' => 'apple''veggie' => 'carrot');

// Correct
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// Incorrect.  Ceci fonctionne mais PHP émettera une erreur de type E_NOTICE car
// on utilise la constante nommée fruit qui est indéfinie
// 
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

// Ceci définit une constante pour expliquer ce qu'il ne va pas. La valeur 'veggie'
// est assignée à la constante nommée fruit.
define('fruit''veggie');

// Noter la différence maintenant
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// Ce qui squit est correct, car c'est dans une chaîne. Les constantes ne sont pas recherchées
// dans les chaînes, et donc, aucune alerte E_NOTICE ne sera émise
print "Hello $arr[fruit]";      // Hello apple

// Avec une exception : les parenthèses autour d'un tableau dans une chaîne permettent
// aux constantes d'être interprétées
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// Ceci ne fonctionnera pas, et en résultera une erreur d'analyse, comme ceci :
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Ceci arrive lors de l'utilisation d'une supergloables dans les chaînes
print "Hello $arr['fruit']";
print 
"Hello $_GET['foo']";

// La concaténation est une autre solution
print "Hello " $arr['fruit']; // Hello apple
?>

Lorsque error_reporting est défini afin de montrer les erreurs de type E_NOTICE (en le définissant à E_ALL, par exemple), une telle pratique devient immédiatement visible. Par défaut, error_reporting n'est pas défini pour afficher toutes les alertes.

Comme vu dans la section "syntaxe", ce qui se trouve entre crochets ('[' et ']') doit être une expression. Ceci signifie que le code ci-dessous fonctionne :

<?php
echo $arr[somefunc($bar)];
?>

C'est un exemple d'utilisation d'une fonction retournant une valeur qui sera la clé du tableau. PHP comprend également les constantes :

<?php
$error_descriptions
[E_ERROR]   = "A fatal error has occured";
$error_descriptions[E_WARNING] = "PHP issued a warning";
$error_descriptions[E_NOTICE]  = "This is just an informal notice";
?>

Noter que E_ERROR est également un identifiant valide, tout comme bar dans le premier exemple. Mais le dernier exemple est finalement le même que celui-ci :

<?php
$error_descriptions
[1] = "A fatal error has occured";
$error_descriptions[2] = "PHP issued a warning";
$error_descriptions[8] = "This is just an informal notice";
?>

car E_ERROR vaut 1, etc.

Alors, pourquoi est-ce une mauvaise pratique ?

Dans le futur, les développeurs PHP peuvent vouloir ajouter une autre constante ou un autre mot clé, ou bien une constante dans une autre partie du code qui peut interférer. Par exemple, il est toujours incorrect d'utiliser le mot empty et default, sachant que ce sont des mots réservés.

Note: Pour être plus clair, dans une chaîne entourée de guillemets doubles, il est valide de ne pas entourer les indexes d'un tableau avec des guillemets, et donc, "$foo[bar]" est valide. Voir les exemples ci-dessous pour plus détails mais aussi la section sur l'analyse des variables dans les chaînes.

Conversion en un tableau

Pour tous les types : entier, nombre décimal, chaîne de caractères, booléen et ressource, le fait de convertir une valeur en un tableau résulte en un tableau contenant un seul élément dont l'indexe vaut zéro et la valeur, une valeur scalaire convertie. En d'autres termes, (array)$scalarValue est exactement la même chose que array($scalarValue).

Si un objet est converti en un tableau, le résultat sera un tableau dont les éléments sont les propriétés de l'objet. Les clés sont les noms des membres, avec une légère exception : les variables ayant un nom sous forme d'entier sont inaccessible; les variables privées auront le nom de la classe ajouté au nom de la variable ; les variables protégées auront un '*' ajouté au nom de la variable. Ce comportement peut amener à des résultats inattendus :

<?php

class {
    private 
$A// Ceci devient '\0A\0A'
}

class 
extends {
    private 
$A// Ceci devient '\0B\0A'
    
public $AA// Ceci devient 'AA'
}

var_dump((array) new B());
?>

Ici, on pourrait penser qu'il y a 2 clés nommées 'AA', alors qu'une est actuellement nommée '\0A\0A'.

La conversion de NULL en un tableau résultat en un tableau vide.

Comparaison

Il est possible de comparer plusieurs tableaux avec la fonction array_diff() ainsi qu'avec les opérateurs de tableaux.

Exemples

Le type tableau en PHP est vraiment versatile. Voici quelques exemples :

<?php
// This
$a = array( 'color' => 'red',
            
'taste' => 'sweet',
            
'shape' => 'round',
            
'name'  => 'apple',
             
4        // la clé sera 0
          
);

// est strictement équivalent à
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // la clé sera 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// Après exécution du code ci-dessus, $a sera le tableau
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round', 
// 'name' => 'apple', 0 => 4), et $b sera le tableau
// array(0 => 'a', 1 => 'b', 2 => 'c'), ou simplement array('a', 'b', 'c').
?>

Exemple #1 Utilisation de array()

<?php
// Tableau comme carte de propriétés
$map = array( 'version'    => 4,
              
'OS'         => 'Linux',
              
'lang'       => 'english',
              
'short_tags' => true
            
);

// clés numériques strictes
$array = array( 7,
                
8,
                
0,
                
156,
                -
10
              
);
// est identique à array(0 => 7, 1 => 8, ...)

$switching = array(         10// clé = 0
                    
5    =>  6,
                    
3    =>  7
                    
'a'  =>  4,
                            
11// clé = 6 (l'indice entier maximal est 5)
                    
'8'  =>  2// clé = 8 (intier !)
                    
'02' => 77// clé = '02'
                    
0    => 12  // la valeur 10 sera écrasée par la valeur 12
                  
);

// empty array
$empty = array();
?>

Exemple #2 Collection

<?php
$colors 
= array('rouge''bleu''verte''jaune');

foreach (
$colors as $color) {
    echo 
"Aimez-vous la couleur $color ?\n";
}

?>

L'exemple ci-dessus va afficher :

Aimez-vous la couleur rouge ?
Aimez-vous la couleur bleu ?
Aimez-vous la couleur verte ?
Aimez-vous la couleur jaune ?

La modification directe de valeurs d'un tableau est possible depuis PHP 5 en le passant par référence. Avant cette version, nous devions utiliser l'astuce suivante :

Exemple #3 Modification d'un élément dans la boucle

<?php
// PHP 5
foreach ($colors as &$color) {
    
$color strtoupper($color);
}
unset(
$color); /* On s'assure que les écritures suivantes
sur $color ne modifie pas le dernier élément du tableau */

// Astuce pour les anciennes versions
foreach ($colors as $key => $color) {
    
$colors[$key] = strtoupper($color);
}

print_r($colors);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => ROUGE
    [1] => BLEU
    [2] => VERTE
    [3] => JAUNE
)

Cet exemple crée un tableau, dont l'indexation commence à 1.

Exemple #4 Indexation commençant à 1

<?php
$firstquarter  
= array(=> 'Janvier''Février''Mars');
print_r($firstquarter);
?>

L'exemple ci-dessus va afficher :

Array 
(
    [1] => 'Janvier'
    [2] => 'Février'
    [3] => 'Mars'
)

Exemple #5 Remplissage d'un tableau

<?php
// Remplit un tableau avec tous les éléments d'un dossier
$handle opendir('.');
while (
false !== ($file readdir($handle))) {
    
$files[] = $file;
}
closedir($handle); 
?>

Les tableaux sont ordonnés. L'ordre peut être modifié en utilisant plusieurs fonctions. Voir la section sur les fonctions sur les tableaux pour plus d'informations. La fonction count() peut être utilisée pour compter le nombre d'éléments d'un tableau.

Exemple #6 Trie d'un tableau

<?php
sort
($files);
print_r($files);
?>

Sachant que la valeur d'une tableau peut être n'importe quoi, elle peut aussi être un autre tableau. Ceci permet la création de tableaux récursifs et de tableaux multidimensionnels.

Exemple #7 Tableaux récursifs et multidimensionnels

<?php
$fruits 
= array ( "fruits"  => array ( "a" => "orange",
                                       
"b" => "banana",
                                       
"c" => "apple"
                                     
),
                  
"numbers" => array ( 1,
                                       
2,
                                       
3,
                                       
4,
                                       
5,
                                       
6
                                     
),
                  
"holes"   => array (      "first",
                                       
=> "second",
                                            
"third"
                                     
)
                );

// Quelques exemples pour retrouver les valeurs dans le tableau ci-dessus 
echo $fruits["holes"][5];    // affiche "second"
echo $fruits["fruits"]["a"]; // affiche "orange"
unset($fruits["holes"][0]);  // efface "first"

// Création d'un tableau multidimensionnel
$juices["apple"]["green"] = "good"
?>

L'assignation d'un tableau induit toujours la copie des valeurs. Utilisez l'opérateur de référence pour copier un tableau par référence.

<?php
$arr1 
= array(23);
$arr2 $arr1;
$arr2[] = 4// $arr2 est modifié,
             // $arr1 vaut toujours array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4// maintenant, $arr1 et $arr3 sont identiques
?>


Les objets

Initialisation des objets

Pour créer un nouvel objet, utilisez le mot clé new afin d'instancier une classe :

<?php
class foo
{
    function 
do_foo()
    {
        echo 
"Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

Pour une discussion complète, voir le chapitre sur les classes et les objets.

Conversion en un objet

Si un objet est converti en un objet, il ne sera pas modifié. Si une valeur de n'importe quel type est convertie en un objet, une nouvelle instance de la classe interne stdClass sera créée. Si la valeur est NULL, la nouvelle instance sera vide. La conversion d'un objet en tableau fera que les propriétés seront les clés, et les valeurs correspondantes aux propriétés, les valeurs de ces clés. Pour n'importe quel autre type, un membre appelé scalar contiendra la valeur.

<?php
$obj 
= (object) 'ciao';
echo 
$obj->scalar;  // Affiche : 'ciao'
?>


Les ressources

Une ressource est une variable spéciale, contenant une référence vers une ressource externe. Les ressources sont créées et utilisées par des fonctions spéciales. Voir l'appendice pour une liste de toutes ces fonctions ainsi que les types de ressource correspondants.

Note: Le type resource a été introduit en PHP 4

Voir aussi la fonction get_resource_type().

Conversion en ressource

Sachant qu'une ressource représente un fichier ouvert, une connexion à une base de données, une image, etc..., la conversion en une ressource n'a pas de sens.

Libération des ressources

Sachant qu'une ressource qui n'a plus aucune référence est détectée automatiquement et est libérée par le collecteur, il est rarement nécessaire de libérer la mémoire manuellement.

Note: Les connexions persistantes aux bases de données sont des exceptions à cette règle. Elles ne sont pas détruites par le collecteur. Voir la section sur les connexions persistantes pour plus d'informations.



NULL

La valeur spéciale NULL représente une variable sans valeur. NULL est la seule valeur possible du type NULL.

Note: Le type null a été introduit en PHP 4.

Une variable est considérée comme null si :

  • elle s'est vue assigner la constante NULL.

  • elle n'a pas encore reçu de valeur.

  • elle a été effacée avec la fonction unset().

Syntaxe

Il y a une seule valeur de type null, et c'est le mot-clé insensible à la casse NULL.

<?php
$var 
NULL;
?>

Voir aussi les fonctions is_null() et unset().

Transtyper vers NULL

Transtyper une variable vers null supprimera la variable et effacera sa valeur.



Variables et pseudo-types utilisés dans cette documentation

mixed

mixed indique qu'un paramètre peut accepter plusieurs (mais pas nécessairement tous) types.

gettype() par exemple, accepte tous les types PHP, alors que str_replace() accepte les chaînes et les tableaux.

number

number indique qu'un paramètre peut être soit un nombre entier, soit un nombre décimal (nombre décimal).

callback

Quelques fonctions comme call_user_func() ou usort() acceptent des fonctions de rappel définies par l'utilisateur comme paramètre. Les fonctions de rappel peuvent ne pas être de simples fonctions, mais aussi des méthodes d'objets, incluant des méthodes statiques.

Une fonction PHP est passée par son nom, comme une chaîne. N'importe quelle fonction interne ou définie par l'utilisateur peut être passée, exceptés les constructeurs de langage comme : array(), echo(), empty(), eval(), exit(), isset(), list(), print() ou unset().

Une méthode d'un objet instancié est passée comme étant un tableau, contenant un objet à l'index 0 et le nom de la méthode à l'index 1.

Les méthodes statiques de classe peuvent également être passées sans instanciation de l'objet, en passant le nom de la classe au lieu de l'objet à l'index 0.

Mise à part des fonctions définies par l'utilisateur, create_function() peut également être utilisée pour créer des fonctions de rappel anonymes. Depuis PHP 5.3.0, il est aussi possible de passer une fonction anonyme comme paramètre de rappel.

Exemple #1 Exemples de fonctions de rappel

<?php 

// Un exemple de fonction de rappel
function ma_fonction_callback() {
    echo 
'Bonjour le monde !';
}

// Un exemple de méthode de rappel
class MaClasse {
    static function 
maMethodeCallback() {
        echo 
'Bonjour le monde !';
    }
}

// Type 1 : Rappel simple
call_user_func('ma_fonction_callback'); 

// Type 2 : Appel d'une méthode de classe statique
call_user_func(array('MaClasse''maMethodeCallback')); 

// Type 3 : Appel d'une méthode d'objet
$obj = new MaClasse();
call_user_func(array($obj'maMethodeCallback'));

// Type 4 : Appel d'une méthode de classe statique (Depuis PHP 5.2.3)
call_user_func('MaClasse::maMethodeCallback');

// Type 5 : Appel d'une méthode de classe statique relative (Depuis PHP 5.3.0)
class {
    public static function 
who() {
        echo 
"A\n";
    }
}

class 
extends {
    public static function 
who() {
        echo 
"B\n";
    }
}

call_user_func(array('B''parent::who')); // A
?>

Exemple #2 Exemple de fonction anonyme comme fonction de rappel

<?php
// La fonction anonyme
$double = function($a) {
    return 
$a 2;
};

// Un intervalle de nombres
$numbers range(15);

// Utilise la fonction anoyme comme fonction de rappel
// pour doubler la taille de chaque élément
$new_numbers array_map($double$numbers);

print 
implode(' '$new_numbers);
?>

L'exemple ci-dessus va afficher :

2 4 6 8 10

Note: En PHP4, il est nécessaire d'utiliser une référence pour créer une fonction de rappel qui pointe vers l'objet courant, et non sur une copie. Pour plus de détails, reportez-vous à l'explication sur les références.

Note:

Notez que les fonctions de rappel enregistrées avec des fonctions comme call_user_func() et call_user_func_array() ne seront pas appelées si une exception n'est pas interceptée alors qu'elle a été lancée dans une précédente fonction de rappel.

void

void comme type retourné signifie que la valeur retournée est inutile. void dans une liste de paramètre signifie que la fonction n'accepte aucun paramètre.

...

$... dans le prototype d'une fonction signifie "et bien plus...". Ce nom de variable est utilisé lorsqu'une fonction peut prendre un nombre indéfini d'arguments.



Manipulation des types

PHP n'impose pas de définir explicitement le type d'une variable lors de sa déclaration ; le type d'une variable est déterminé par son contexte d'utilisation. Si une valeur de type string est assignée à la variable $var, $var devient de type string. Si une valeur de type integer est ensuite assignée à cette variable $var, alors, son type devient integer.

Un exemple de conversion de type automatique avec PHP est l'ajout de l'opérateur '+'. Si une des opérandes est de type float, alors toutes les opérandes seront évaluées comme de types float, et le résultat sera de type float. Sinon, les opérandes seront interprétées comme integers, et le résultat sera également de type integer. Noter que cela ne modifie pas le type des opérandes ; la seule modification est la façon dont les opérandes sont évaluées et le type de l'expression elle-même.

<?php
$foo 
"0";                     // $foo est une chaîne de caractères (ASCII 48)
$foo += 2;                      // $foo est maintenant un entier (2)
$foo $foo 1.3;              // $foo est maintenant un nombre à virgule flottante (3.3)
$foo "10 Little Piggies"// $foo est un entier (15)
$foo "10 Small Pigs";     // $foo est un entier (15)
?>

Si les 2 derniers exemples vous semblent compliqués, reportez-vous à la section sur les conversions de chaînes en nombres.

Pour forcer une variable à être évaluée en un certain type, reportez-vous à la section sur le transtypage. Pour changer le type d'une variable, reportez-vous à la fonction settype().

Pour tester les exemples de cette section, utilisez la fonction var_dump().

Note:

Le comportement d'une conversion automatique en tableau est actuellement non-défini.

De plus, vu que PHP supporte l'indexation des chaînes de caractères via des positions en utilisant la même syntaxe que pour les tableaux, l'exemple suivant est correct pour tous les versions de PHP :

<?php
$a    
'car'// $a est une chaîne de caractères
$a[0] = 'b';   // $a est toujours une chaîne de caractères
echo $a;       // bar
?>

Reportez-vous à la section sur l'accès aux chaînes par ces caractères pour plus d'informations.

Modification de types

La modification de types en PHP fonctionne de la même façon qu'en C : le nom du type désiré est écrit entre parenthèses avant la variable à traiter.

<?php
$foo 
10;               // $foo est un entier
$bar = (boolean) $foo;   // $bar est un booléen
?>

Les préfixes autorisés sont :

  • (int), (integer) : modification en integer
  • (bool), (boolean) : modification en boolean
  • (float), (double), (real) : modification en float
  • (string) : modification en string
  • (array) : modification en array
  • (object) : modification en object
  • (unset) : modification en NULL (PHP 5)

La modification en binaire et le préfixe b ont été ajoutés en PHP 5.2.1

Notez que les tabulations et les espaces sont autorisés dans les parenthèses. Les exemples suivants sont fonctionnellement équivalents :

<?php
$foo 
= (int) $bar;
$foo = ( int ) $bar;
?>

Modification d'une chaîne littérale et de variables en chaînes binaires :

<?php
$binary 
= (binary) $string;
$binary b"binary string";
?>

Note:

Au lieu de modifier une variable en chaîne, il est également possible d'entourer la variable de doubles guillemets.

<?php
$foo 
10;            // $foo est un entier
$str "$foo";        // $str est une chaîne
$fst = (string) $foo// $fst est également une chaîne

// Ceci affichera "ils sont identiques"
if ($fst === $str) {
    echo 
"ils sont identiques";
}
?>

Le comportement d'une modification de type n'est pas toujours identique suivant les types. Pour plus d'informations, reportez-vous à ces sections :




Les variables

Sommaire


Essentiel

En PHP, les variables sont représentées par un signe dollar "$" suivi du nom de la variable. Le nom est sensible à la casse.

Les noms de variables suivent les mêmes règles de nommage que les autres entités PHP. Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés. Exprimé sous la forme d'une expression régulière, cela donne : '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Note: Dans nos propos, une lettre peut être a-z, A-Z, et les octets de 127 à 255 (0x7f-0xff).

Note: $this est une variable spéciale, qui ne peut pas être assignée.

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.

Pour obtenir des informations sur une variable, voyez les fonctions dédiées aux variables.

Exemple #1 Validité des noms de variables

<?php
$var 
'Jean';
$Var 'Paul';
echo 
"$var$Var";         // affiche "Jean, Paul"

$4site 'pas encore';     // invalide : commence par un nombre
$_4site 'pas encore';    // valide : commence par un souligné
$täyte 'mansikka';    // valide : 'ä' est ASCII (étendu) 228.
?>

Les variables sont toujours assignées par valeur. C'est-à-dire, lorsque vous assignez une expression à une variable, la valeur de l'expression est recopiée dans la variable. Cela signifie, par exemple, qu'après avoir assigné la valeur d'une variable à une autre, modifier l'une des variables n'aura pas d'effet sur l'autre. Pour plus de détails sur ce genre d'assignation, reportez-vous aux expressions.

PHP permet aussi d'assigner les valeurs aux variables par référence. Cela signifie que la nouvelle variable ne fait que référencer (en d'autres termes, "devient un alias de", ou encore "pointe sur") la variable originale. Les modifications de la nouvelle variable affecteront l'ancienne et vice versa.

Pour assigner par référence, ajoutez simplement un & (ET commercial) au début de la variable qui est assignée (la variable source). Dans l'exemple suivant, Mon nom est Pierre s'affichera deux fois :

Exemple #2 Assignation de référence

<?php
$foo 
'Pierre';              // Assigne la valeur 'Pierre' à $foo
$bar = &$foo;                 // Référence $foo avec $bar.
$bar "Mon nom est $bar";  // Modifie $bar...
echo $foo;                    // $foo est aussi modifiée
echo $bar;
?>

Une chose importante à noter est que seules les variables nommées peuvent être assignées par référence.

Exemple #3 Assignation de référence et variables anonymes

<?php
$foo 
25;
$bar = &$foo;      // assignation valide
$bar = &(24 7);  // assignation invalide : référence une expression sans nom
function test() {
   return 
25;
}
$bar = &test();    // assignation invalide.
?>

Il n'est pas nécessaire d'initialiser les variables en PHP, cependant, cela reste une excellente pratique. Les variables non initialisées ont une valeur par défaut selon leur type - FALSE pour les booléens, zéro pour les entiers et les réels, chaîne vide pour les chaînes de caractères (comme utilisée avec echo()) ou un tableau vide pour les tableaux.

Exemple #4 Valeurs par défaut des variables non initialisées

<?php
// Une variable non initialisée et non référencée (pas de contexte d'utilisation); retourne NULL
var_dump($unset_var);

// L'utilisation d'un booléen; retourne 'false' (Voir l'opérateur ternaire pour comprendre cette syntaxe)
echo($unset_bool "true\n" "false\n");

// Utilisation d'une chaîne de caractères; retourne 'string(3) "abc"'
$unset_str .= 'abc';
var_dump($unset_str);

// Utilisation d'un entier; retourne 'int(25)'
$unset_int += 25// 0 + 25 => 25
var_dump($unset_int);

// Utilisation d'un entier/double; retourne 'float(1.25)'
$unset_float += 1.25;
var_dump($unset_float);

// Utilisation d'un tableau : retourne array(1) {  [3]=>  string(3) "def" }
$unset_arr[3] = "def"// array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Utilisation d'un objet; crée un nouvel objet stdClass (voir http://www.php.net/manual/fr/reserved.classes.php)
// Retourne : object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo 'bar';
var_dump($unset_obj);
?>

Utiliser la valeur par défaut d'une variable non initialisée est problématique lorsque vous incluez un fichier dans un autre qui utilise le même nom de variable. C'est également un risque niveau sécurité lorsque register_globals est activé. Une erreur de niveau E_NOTICE sera émise lorsque vous travaillerez avec des variables non initialisées, cependant, aucune erreur ne sera lancée lorsque vous tenterez d'insérer un élément dans un tableau non initialisé. La structure de langage isset() peut être utilisée pour détecter si une variable a déjà été initialisée.



Variables pré-définies

PHP fourni un grand nombre de variables pré-définies. Cependant, beaucoup de ces variables ne peuvent pas être présentées ici, car elles dépendent du serveur sur lequel elles tournent, de la version et de la configuration du serveur ou encore d'autres facteurs. Certaines de ces variables ne seront pas accessibles lorsque PHP fonctionne en ligne de commande. Pour une liste de ces variables, lisez la section sur les variables réservées prédéfinies.

Avertissement

Depuis la version PHP 4.2.0, la valeur par défaut de la directive PHP register_globals est off. Ceci est une évolution majeure de PHP. Avoir la directive register_globals à off affecte les variables pré-définies du contexte global. Par exemple, pour lire DOCUMENT_ROOT vous devez utiliser $_SERVER['DOCUMENT_ROOT'] au lieu de $DOCUMENT_ROOT ou bien, il faut lire $_GET['id'] dans l'URL http://www.example.com/test.php?id=3 au lieu de $id ou encore $_ENV['HOME'] au lieu de $HOME.

Pour des informations liées à cette évolution, lisez la documentation de la directive register_globals , le chapitre sur la sécurité, à propos de l'Utilisation des variables superglobales, ainsi que les annonces de PHP » 4.1.0 et » 4.2.0.

L'utilisation des variables pré-définies de PHP, comme les tableaux superglobaux, est recommandée.

Depuis la version 4.1.0, PHP fournit un jeu de tableaux pré-définis, contenant les variables du serveur (si possible), les variables d'environnement et celle d'entrées. Ces nouveaux tableaux sont un peu particuliers, car ils sont automatiquement globaux : ils sont automatiquement disponibles dans tous les environnements d'exécution. Pour cette raison, ils sont dits 'superglobaux' (il n'y a pas de mécanisme PHP pour créer de telles variables. Les superglobales sont listées ci-dessous. Cependant, pour connaître le détails de leur contenu et une présentation approfondie sur les variables pré-définies PHP et leur nature, reportez-vous à la section variables pré-définies. De plus, vous noterez que les anciennes variables pré-définies ($HTTP_*_VARS) existent toujours. Depuis PHP 5.0.0, les tableaux prédéfinis PHP peuvent être désactivés avec l'option de configuration register_long_arrays.

Note: Variables variables

Les superglobales ne peuvent pas être utilisées comme variables dynamiques dans les fonctions ou les méthodes des classes.

Note:

Même si les superglobales et HTTP_*_VARS peuvent exister en même temps, elles ne sont pas identiques, donc, le changement d'une ne changera pas l'autre.

Si certaines variables de variables_order ne sont pas définies, leur tableau pré-défini PHP correspondant est laissé vide.



Portée des variables

La portée d'une variable dépend du contexte dans lequel la variable est définie. Pour la majorité des variables, la portée concerne la totalité d'un script PHP. Mais, lorsque vous définissez une fonction, la portée d'une variable définie dans cette fonction est locale à la fonction. Par exemple :

Exemple #1 Les variables sont locales à la fonction

<?php
$a 
1;
include 
'b.inc';
?>

Ici, la variable $a sera accessible dans le script inclus b.inc. Cependant, dans les fonctions définies par l'utilisateur, une nouvelle définition de cette variable sera donnée, limitée à la fonction. Toute variable utilisée dans une fonction est, par définition, locale. Par exemple :

<?php
$a 
1/* portée globale */

function test()

    echo 
$a/* portée locale */
}

test();
?>

Le script n'affichera rien à l'écran car l'instruction echo() utilise la variable locale $a, et celle-ci n'a pas été assignée préalablement dans la fonction. Vous pouvez noter que ce concept diffère un petit peu du langage C dans lequel une variable globale est automatiquement accessible dans les fonctions, à moins d'être redéfinie localement dans la fonction. Cela peut poser des problèmes si vous redéfinissez des variables globales localement. En PHP, une variable globale doit être déclarée à l'intérieur de chaque fonction afin de pouvoir être utilisée dans cette fonction.

Le mot clé global

Commençons par un exemple avec global :

Exemple #2 Exemple avec global

<?php
$a 
1;
$b 2;
function 
somme() {
    global 
$a$b;
    
$b $a $b;
}
somme();
echo 
$b;

Le script ci-dessus va afficher la valeur 3. En déclarant globales les variables $a et $b locales de la fonction somme(), toutes les références à ces variables concerneront les variables globales. Il n'y a aucune limite au nombre de variables globales qui peuvent être manipulées par une fonction.

Une deuxième méthode pour accéder aux variables globales est d'utiliser le tableau associatif pré-défini $GLOBALS. Le précédent exemple peut être réécrit de la manière suivante :

Exemple #3 Les variables globales et $GLOBALS

<?php
$a 
1;
$b 2;
function 
somme() {
    
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
somme();
echo 
$b;
?>

Le tableau $GLOBALS est un tableau associatif avec le nom des variables globales comme clé et les valeurs des éléments du tableau comme valeur des variables. Notez que $GLOBALS existe dans tous les contextes, car $GLOBALS est un superglobal. Voici un exemple des super globaux :

Exemple #4 Les variables super globales

<?php
function test_global() {

    
// La plupart des variables pré-définies ne sont pas des "superglobales" et
    // requièrent le mot-clé 'global' pour être disponibles dans une fonction.
    
global $HTTP_POST_VARS;

    echo 
$HTTP_POST_VARS['name'];

    
// Les superglobales sont accessibles dans tous les contextes
    // et ne requièrent pas 'global'.  Les superglobales sont disponibles
    // depuis PHP 4.1.0 et HTTP_POST_VARS est de plus en plus
    // obsolète.
    
echo $_POST['name'];
}
?>

Note:

L'utilisation du mot clé global à l'extérieur d'une fonction n'est pas une erreur. Il peut être utilisé si le fichier est inclus depuis l'intérieur d'une fonction.

Utilisation des variables static

Une autre caractéristique importante de la portée des variables est la notion de variable static. Une variable statique a une portée locale uniquement, mais elle ne perd pas sa valeur lorsque le script appelle la fonction. Prenons l'exemple suivant :

Exemple #5 Les variables statiques

<?php
function test()
{
    
$a 0;
    echo 
$a;
    
$a++;
}
?>

Cette fonction est un peu inutile car à chaque fois qu'elle est appelée, elle initialise $a à 0 et affiche "0". L'incrémentation de la variable ($a++) ne sert pas à grand chose, car dès que la fonction est terminée, la variable $a disparaît. Pour faire une fonction de comptage utile, c'est-à-dire qui ne perdra pas la trace du compteur, la variable $a est déclarée comme une variable statique :

Exemple #6 Les variables statiques (2)

<?php
function test()
{
    static 
$a 0;
    echo 
$a;
    
$a++;
}
?>

Maintenant, la variable $a est initialisée uniquement lors du première appel à la fonction et, à chaque fois que la fonction test() est appelée, elle affichera une valeur de $a incrémentée de 1.

Les variables statiques sont essentielles lorsque vous faites des appels récursifs à une fonction. Une fonction récursive est une fonction qui s'appelle elle-même. Il faut faire attention lorsque vous écrivez une fonction récursive car il est facile de faire une boucle infinie. Vous devez vérifier que vous avez bien une condition qui permet de terminer votre récursivité. La fonction suivante compte récursivement jusqu'à 10, en utilisant la variable $count pour savoir quand il faut s'arrêter :

Exemple #7 Les variables statiques et la récursivité

<?php
function test()
{
    static 
$count 0;

    
$count++;
    echo 
$count;
    if (
$count 10) {
        
test();
    }
    
$count--;
}
?>

Note:

Les variables statiques doivent être déclarées comme dans l'exemple ci-dessus. Tenter d'assigner des valeurs à ces variables qui sont le résultat d'expressions causera une erreur d'analyse.

Exemple #8 Déclaration de variables statiques

<?php
function foo(){
    static 
$int 0;          // correct
    
static $int 1+2;        // faux  (car c'est une expression)
    
static $int sqrt(121);  // faux  (car c'est aussi une expression)

    
$int++;
    echo 
$int;
}
?>

Note:

Les déclarations statiques sont résolues au moment de la compilation.

Note:

L'utilisation du mot clé global à l'extérieur d'une fonction n'est pas une erreur. Il peut être utilisé si le fichier est inclus depuis l'intérieur d'une fonction.

Les références avec les variables global et static

Le Zend Engine 1, sur qui repose PHP 4, implémente les options static et global pour les variables, en terme de référence. Par exemple, une vraie variable globale est importée dans un contexte de fonction avec global. Cette commande crée en fait une référence sur la variable globale. Cela peut vous mener à des comportements inattendus, par exemple :

<?php
function test_global_ref() {
    global 
$obj;
    
$obj = &new stdclass;
}

function 
test_global_noref() {
    global 
$obj;
    
$obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

L'exemple ci-dessus va afficher :


NULL
object(stdClass)(0) {
}

Un comportement similaire s'applique à la commande static. Les références ne sont pas stockées dynamiquement :

<?php
function &get_instance_ref() {
    static 
$obj;

    echo 
'Objet statique : ';
    
var_dump($obj);
    if (!isset(
$obj)) {
        
// Assigne une référence à une variable statique
        
$obj = &new stdclass;
    }
    
$obj->property++;
    return 
$obj;
}

function &
get_instance_noref() {
    static 
$obj;

    echo 
'Objet statique : ';
    
var_dump($obj);
    if (!isset(
$obj)) {
        
// Assigne une objet à une variable statique
        
$obj = new stdclass;
    }
    
$obj->property++;
    return 
$obj;
}

$obj1 get_instance_ref();
$still_obj1 get_instance_ref();
echo 
"\n";
$obj2 get_instance_noref();
$still_obj2 get_instance_noref();
?>

L'exemple ci-dessus va afficher :


Objet statique : NULL
Objet statique : NULL

Objet statique : NULL
Objet statique : object(stdClass)(1) {
["property"]=>
int(1)
}

Ces exemples illustrent les problèmes rencontrés lors de l'assignation de référence à des variables statiques, qui sont oubliées lorsque vous appelez &get_instance_ref() une seconde fois.



Les variables dynamiques

Il est pratique d'avoir parfois des noms de variables qui sont variables. C'est-à-dire un nom de variable qui est affecté et utilisé dynamiquement. Une variable classique est affectée avec l'instruction suivante :

<?php
$a 
'bonjour';
?>

Une variable dynamique prend la valeur d'une variable et l'utilise comme nom d'une autre variable. Dans l'exemple ci-dessous, bonjour peut être utilisé comme le nom d'une variable en utilisant le "$$" précédent la variable. C'est-à-dire :

<?php
$$a 'monde';
?>

À ce niveau, deux variables ont été définies et stockées dans l'arbre des symboles PHP : $a avec comme valeur "bonjour" et $bonjour avec comme valeur "monde". Alors, l'instruction :

<?php
echo "$a ${$a}";
?>

produira le même affichage que :

<?php
echo "$a $bonjour";
?>

c'est-à-dire : bonjour monde.

Afin de pouvoir utiliser les variables dynamiques avec les tableaux, vous avez à résoudre un problème ambigu. Si vous écrivez $$a[1], l'analyseur a besoin de savoir si vous parler de la variable qui a pour nom $a[1] ou bien si vous voulez l'index [1] de la variable $$a. La syntaxe pour résoudre cette ambiguïté est la suivante : ${$a[1]} pour le premier cas et ${$a}[1] pour le deuxième.

On peut également accéder aux propriétés d'une classe en utilisant les noms des variables. Le nom de la variable sera résolu en utilisant le scope depuis lequel l'appel s'effectue. Par exemple, si vous avez une expression de la forme $foo->$bar, alors le scope local sera examiné pour $bar et sa valeur sera utilisée comme nom pour la propriété de $foo. Ce comportement reste valide si $bar est un tableau.

Exemple #1 Exemple de fonction variable

<?php
class foo {
    var 
$bar 'I am bar.';
}

$foo = new foo();
$bar 'bar';
$baz = array('foo''bar''baz''quux');
echo 
$foo->$bar "\n";
echo 
$foo->$baz[1] . "\n";
?>

L'exemple ci-dessus va afficher :


I am bar.
I am bar.

Avertissement

Notez que les variables dynamiques ne peuvent pas être utilisées avec les tableaux Superglobaux dans une fonction ou une classe. La variable $this est aussi une variable spéciale qui ne peut être référencée dynamiquement.



Variables externes à PHP

Formulaires HTML (GET et POST)

Lorsqu'un formulaire est envoyé à un script PHP, toutes les variables du formulaire seront automatiquement disponibles dans le script. Par exemple, considérons le formulaire suivant :

Exemple #1 Exemple avec un formulaire simple

<form action="foo.php" method="post">
    Nom  :  <input type="text" name="username" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Envoie!" />
</form>

Suivant votre configuration particulière et vos préférences, vous avez plusieurs méthodes pour accéder aux variables du formulaires. Voici quelques exemples :

Exemple #2 Accéder simplement à des variables de formulaires POST

<?php
// Disponibles depuis PHP 4.1.0

   
echo $_POST['username'];
   echo 
$_REQUEST['username'];

   
import_request_variables('p''p_');
   echo 
$p_username;

// Depuis PHP 5.0.0, ce type de variable peut être désactivé
// avec la directive de configuration register_long_arrays.

   
echo $HTTP_POST_VARS['username'];

// Disponibles si la directive register_globals = on.  Depuis
// PHP 4.2.0 la valeur par défaut de cette directive est register_globals = off.
// Utiliser ou présumer cette méthode est découragé.

   
echo $username;
?>

Utiliser un formulaire de type GET est similaire, hormis le fait que vous deviez utiliser les variables pré-définies de GET à la place. GET s'applique aussi à la QUERY_STRING (les informations disponibles après le '?' dans une URL). De ce fait, par exemple, http://www.example.com/test.php?id=3 contient les données de GET, qui sont accessibles via $_GET['id']. Voyez aussi $_REQUEST et import_request_variables().

Note:

Les tableaux superglobaux, comme $_POST et $_GET sont disponibles depuis PHP 4.1.0.

Note:

Les points et les espaces dans les noms de variables sont convertis en underscores. Par exemple, <input name="a.b" /> deviendra $_REQUEST["a_b"].

Comme nous l'avons déjà dis, avant PHP 4.2.0, la valeur par défaut de register_globals était on. La communauté PHP n'encourage personne à utiliser cette directive et privilégie la valeur off et un code accordé.

Note:

La directive de configuration magic_quotes_gpc affecte les valeurs de GET, POST et cookies. Si elle est activée, une valeur comme celle de (C'est "PHP!") sera magiquement transformée en (C\'est \"PHP!\"). La protection des caractères est nécessaire pour l'insertion dans les bases de données. Voyez aussi les fonctions addslashes(), stripslashes() et magic_quotes_sybase.

PHP comprend aussi les tableaux dans le contexte des formulaires. (voir aussi la FAQ). Vous pouvez, par exemple, grouper des variables ensemble ou bien utiliser cette fonctionnalité pour lire des valeurs multiples d'un menu déroulant. Par exemple, voici un formulaire qui se poste lui-même des données, et les affiche :

Exemple #3 Variables de formulaires complexes

<?php
if ($_POST) {
    echo 
'<pre>';
    echo 
htmlspecialchars(print_r($_POSTtrue));
    echo 
'</pre>';
}
?>
<form action="" method="post">
    Name:  <input type="text" name="personal[name]" /><br />
    Email: <input type="text" name="personal[email]" /><br />
    Beer: <br />
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
    </select><br />
    <input type="submit" value="Validez moi !" />
</form>

Nom de variables IMAGE de type SUBMIT

Lors de la soumission d'un formulaire, il est possible d'utiliser une image au lieu d'un bouton standard, comme ceci :

<input type="image" src="image.gif" name="sub" />

Lorsque l'utilisateur clique sur cette image, le formulaire associé est envoyé au serveur, avec deux données supplémentaires, sub_x et sub_y. Elles contiennent les coordonnées du clic de l'utilisateur dans l'image. Vous noterez que ces variables sont envoyées par le navigateur avec un point dans leur nom, mais PHP convertit ces points en soulignés.

Cookies HTTP

PHP supporte les cookies HTTP de manière totalement transparente, comme défini dans les » spécifications de Netscape. Les cookies sont un mécanisme permettant de stocker des données sur la machine cliente à des fins d'identification de l'utilisateur. Vous pouvez établir un cookie grâce à la fonction setcookie(). Les cookies font partie intégrante des en-têtes HTTP et donc la fonction setcookie() doit être appelée avant que le moindre affichage ne soit envoyé au navigateur. C'est la même restriction que pour la fonction header(). Les données contenus dans les cookies sont alors disponibles dans les tableaux de cookies appropriés, comme $_COOKIE, $HTTP_COOKIE_VARS mais aussi $_REQUEST. Lisez la page de la documentation sur la fonction setcookie() pour plus de détails ainsi que des exemples.

Si vous souhaitez assigner plusieurs valeurs à un seul cookie, il devait l'assigner sous forme de tableau. Par exemple :

<?php
setcookie
("MyCookie[foo]"'Test 1'time()+3600);
setcookie("MyCookie[bar]"'Test 2'time()+3600);
?>

Cela va créer deux cookies distincts bien que MyCookie est maintenant un simple tableau dans votre script. Si vous voulez définir seulement un cookie avec plusieurs valeurs, utilisez la fonction serialize() ou explode() sur la première valeur.

Il est à noter qu'un cookie remplace le cookie précédent par un cookie de même nom tant que le chemin ou le domaine sont identiques. Donc, pour une application de panier, vous devez implémenter un compteur et l'incrémenter au fur et à mesure. C'est-à-dire :

Exemple #4 Exemple avec setcookie()

<?php
if (isset($_COOKIE['compte'])) {
    
$compte $_COOKIE['compte'] + 1;
} else {
    
$compte 1;
}
setcookie('Panier'$comptetime()+3600);
setcookie("Panier[$compte]"$itemtime()+3600);
?>

Cas des points dans les noms de variables

Typiquement, PHP ne modifie pas les noms des variables lorsqu'elles sont passées à un script. Cependant, il faut noter que les points (.) ne sont pas autorisés dans les noms de variables PHP. Pour cette raison, jetez un oeil sur :

<?php
  $varname
.ext;  /* nom de variable invalide */
?>
Dans ce cas, l'analyseur croit voir la variable nommée $varname, suivie par l'opérateur de concaténation, et suivie encore par la chaîne sans guillemets (une chaîne sans guillemets et qui n'a pas de signification particulière). Visiblement, ce n'est pas ce qu'on attendait...

Pour cette raison, il est important de noter que PHP remplacera automatiquement les points des noms de variables entrantes par des soulignés.

Détermination du type des variables

Parce que PHP détermine le type des variables et les convertit (généralement) comme il faut, ce n'est pas toujours le type de variable que vous souhaitez. PHP inclut des fonctions permettant de déterminer le type d'une variable : gettype(), is_array(), is_float(), is_int(), is_object() et is_string(). Lisez également le chapitre sur les types.




Les constantes

Sommaire

Une constante est un identifiant (un nom) qui représente une valeur simple. Comme son nom le suggère, cette valeur ne peut jamais être modifiée durant l'exécution du script (sauf les constantes magiques). Par défaut, le nom d'une constante est sensible à la casse. Par convention, les constantes sont toujours en majuscules.

Les noms de constantes suivent les mêmes règles que n'importe quel nom en PHP. Un nom de constante valide commence par une lettre ou un souligné, suivi d'un nombre quelconque de lettres, chiffres ou soulignés. Sous forme d'expression régulière, cela peut s'exprimer comme ceci : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.

Exemple #5 Noms valides et invalides pour les constantes

<?php
// Noms valides
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR""something more");

// Noms invalides
define("2FOO",    "something");

// Ce nom est valide, mais évitez-le:
// PHP peut un jour fournir une constante magique nommée
// ainsi, ce qui va corrompre vos scripts.
define("__FOO__""something");

?>

Note: Dans cette documentation, une lettre peut être un des caractères suivants : de a à z, de A à Z et tous les caractères ASCII de 127 à 255 (0x7f-0xff).

Tout comme les superglobals, les constantes sont accessibles de manière globale. Vous pouvez les définir n'importe où, et y accéder depuis n'importe quelle fonction. Pour plus d'informations sur le contexte, lisez la section du manuel sur la portée des variables.


Syntaxe

Vous pouvez définir une constante en utilisant la fonction define() ou en utilisant le mot-clé const en dehors d'une définition de classe à partir de PHP 5.3.0. Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.

Seuls les types de données scalaires peuvent être placés dans une constante : c'est à dire les types booléen, entier, double et chaîne de caractères (soit bool, entier, double et string.) Il est possible de définir des constantes en tant que resource, mais cet usage est déconseillé, car il peut mener à des résultats inattendus.

Vous pouvez accéder à la valeur d'une constante en spécifiant simplement son nom. Contrairement aux variables, vous ne devez PAS préfixer le nom de la constante avec $. Vous pouvez aussi utiliser la fonction constant(), pour lire dynamiquement la valeur d'une constante, dont vous obtenez le nom dynamiquement (retour de fonction, par exemple). Utilisez la fonction get_defined_constants() pour connaître la liste de toutes les constantes définies.

Note: Les constantes et les variables globales utilisent deux espaces de noms différents. Ce qui implique que TRUE et $TRUE sont généralement différents (en tous cas, ils peuvent avoir des valeurs différentes).

Si vous utilisez une constante non définie, PHP considère que vous souhaitez uniquement le nom de la constante elle-même, comme si vous l'appeliez comme étant une chaîne de caractères (CONSTANT vs "CONSTANT"). Une alerte de type E_NOTICE sera émise lorsque ce cas se produit. Lisez également l'entrée du manuel qui explique pourquoi $foo[bar] est faux (tant que vous ne définissez pas bar comme étant une constante). Si vous voulez simplement vérifier qu'une constante est définie, utilisez la fonction defined().

Il y a des différences entre les constantes et les variables :

  • Les constantes ne commencent pas par le signe ($).
  • Les constantes ne peuvent être définies qu'en utilisant la fonction define(), pas par simple assignement.
  • Les constantes sont définies et accessibles à tout endroit du code, globalement.
  • Les constantes ne peuvent pas être redéfinies ou indéfinies une fois qu'elles ont été définies.
  • Les constantes ne peuvent contenir que des scalaires.

Exemple #1 Définir une constante

<?php
  define
("CONSTANTE""Bonjour le monde.");
  echo 
CONSTANTE// affiche "Bonjour le monde."
  
echo Constante// affiche "Constante" et une notice.
?>

Exemple #2 Définir des constantes en utilisant le mot-clé const

<?php
// Fonctionne depuis PHP 5.3.0.
const CONSTANT 'Hello World';

echo 
CONSTANT;
?>

Note:

Contrairement aux constantes définies en utilisant l'instruction define(), les constantes définies en utilisant le mot-clé const doivent être déclarées au plus haut niveau du contexte, car elles seront définies au moment de la compilation. Cela signifie qu'elles ne peuvent être déclarées à l'intérieur de fonctions, boucles ou instructions if.

Voir aussi les constantes de classe.



Constantes magiques

PHP fournit un grand nombre de constantes magiques. Certaines constantes sont définies par différentes extensions, et ne seront présentes que si ces extensions sont compilées avec PHP, ou bien si l'extension a été chargée dynamiquement.

Il y a sept constantes magiques qui changent suivant l'emplacement où elles sont utilisées. Par exemple, la valeur de __LINE__ dépend de la ligne où vous l'utilisez dans votre script. Ces constantes spéciales sont insensibles à la casse.

Quelques constantes PHP magiques
Nom Description
__LINE__ La ligne courante dans le fichier.
__FILE__ Le chemin complet et le nom du fichier courant. Si utilisé pour une inclusion, le nom du fichier inclus est retourné. __FILE__ contient toujours le chemin absolu pour les liens symboliques.
__DIR__ Le dossier du fichier. Si utilisé dans une inclusion, le dossier du fichier inclus sera retourné. C'est l'équivalent de dirname(__FILE__). Ce nom de dossier ne contiendra pas de slash final, sauf si c'est le dossier racine. (Ajouté en PHP 5.3.0.)
__FUNCTION__ Le nom de la fonction. Cette constante retourne le nom de la fonction comme il a été déclaré (sensible à la casse).
__CLASS__ Le nom de la classe courante. Cette constante retourne le nom de la classe comme il a été déclaré (sensible à la casse).
__METHOD__ Le nom de la méthode courante. Le nom de la méthode est retourné comme il a été déclaré (sensible à la casse).
__NAMESPACE__ Le nom de l'espace de noms courant (sensible à la casse). Cette constante est définie au moment de la compilation (Ajouté en PHP 5.3.0).

Voir aussi get_class(), get_object_vars(), file_exists() et function_exists().




Les expressions

Les expressions sont la partie la plus importante de PHP. En PHP, presque tout ce que vous écrivez est une expression. La manière la plus simple de définir une expression est : "tout ce qui a une valeur".

Les formes les plus simples d'expressions sont les constantes et les variables. Lorsque vous écrivez "$a = 5", vous assignez la valeur '5' à la variable $a. Bien évidemment, '5' vaut 5 ou, en d'autres termes, '5' est une expression avec pour valeur 5 (dans ce cas, '5' est un entier constant).

Après cette assignation, vous pouvez considérer que $a a pour valeur 5 et donc, écrire $b = $a, revient à écrire $b = 5. En d'autres termes, $a est une expression avec une valeur de 5. Si tout fonctionne correctement, c'est exactement ce qui arrive.

Un exemple plus complexe concerne les fonctions. Par exemple, considérons la fonction suivante :

<?php
function foo ()
{
    return 
5;
}
?>

En supposant que vous êtes familiers avec le concept de fonction, (si ce n'est pas le cas, jetez un oeil au chapitre concernant les fonctions), vous serez d'accord que $c = foo() est équivalent à $c = 5, et vous aurez tout à fait raison. Les fonctions sont des expressions qui ont la valeur de leur "valeur de retour". Si foo() renvoie 5, la valeur de l'expression 'foo()' est 5. Habituellement, les fonctions ne font pas que renvoyer une valeur constante mais réalisent des traitements.

Bien sûr, les valeurs en PHP n'ont pas à être des valeurs numériques, comme c'est souvent le cas. PHP supporte quatre types de variables scalaires : les valeurs entières (entier), les nombres à virgule flottante (float), les chaînes de caractères (chaîne de caractères) et les booléens (boolean). (une variable scalaire est une variable que vous ne pouvez pas scinder en morceaux, au contraire des tableaux par exemple). PHP supporte aussi deux types composés : les tableaux et les objets. Chacun de ces types de variables peut être affecté ou renvoyé par une fonction.

PHP va plus loin dans la gestion des expressions, comme le font d'autres langages. PHP est un langage orienté expression, dans le sens où presque tout est une expression. Considérons l'exemple dont nous avons déjà parlé, '$a = 5'. Il est facile de voir qu'il y a deux valeurs qui entrent en jeu ici, la valeur numérique constante '5' et la valeur de la variable $a qui est mise à jour à la valeur 5. Mais, la vérité est qu'il y a une autre valeur qui entre en jeu ici et c'est la valeur de l'assignation elle-même. L'assignation elle-même est assignée à une valeur, dans ce cas-là 5. En pratique, cela signifie que '$a = 5' est une expression qui a pour valeur 5. Donc, écrire '$b = ($a = 5)' revient à écrire '$a = 5; $b = 5;' (un point virgule marque la fin d'une instruction). Comme les assignations sont analysées de droite à gauche, vous pouvez aussi bien écrire '$b = $a = 5'.

Un autre bon exemple du langage orienté expression est la pre-incrémentation et la post-incrémentation, (ainsi que la décrémentation). Les utilisateurs de PHP et ceux de nombreux autres langages sont habitués à la notation "variable++" et "variable--". Ce sont les opérateurs d'incrémentation et de décrémentation. PHP ajoute les possibilités d'incrémentation et de décrémentation comme c'est le cas dans le langage C. En PHP, comme en C, il y a deux types d'opérateurs d'incrémentation (pre-incrémentation et post-incrémentation). Les deux types d'opérateur d'incrémentation jouent le même rôle (c'est-à-dire qu'ils incrémentent la variable). La différence vient de la valeur de l'opérateur d'incrémentation. L'opérateur de pre-incrémentation, qui s'écrit '++$variable', évalue la valeur incrémentée (PHP incrémente la variable avant de lire la valeur de cette variable, d'où le nom de pre-incrémentation). L'opérateur de post-incrémentation, qui s'écrit '$variable++', évalue la valeur de la variable avant de l'incrémenter (PHP incrémente la variable après avoir lu sa valeur, d'où le nom de post-incrémentation).

Un type d'expression très commun est l'expression de comparaison. Ces expressions sont évaluées à 0 ou 1, autrement dit FALSE ou TRUE, respectivement. PHP supporte les opérateurs de comparaison > (plus grand que), => (plus grand ou égal), == (égal à), < (plus petit que), <= (plus petit ou égal). Ces expressions sont utilisées de manière courante dans les instructions conditionnelles, comme l'instruction if.

Pour le dernier exemple d'expression, nous allons parler des combinaisons d'opérateurs/assignation. Vous savez que si vous voulez incrémenter la variable $a d'une unité, vous devez simplement écrire '$a++' ou '++$a'. Mais si vous voulez ajouter la valeur '3' à votre variable ? Vous pouvez écrire plusieurs fois '$a++', mais ce n'est pas la meilleure des méthodes. Un pratique plus courante est d'écrire '$a = $a + 3'. L'expression '$a + 3' correspond à la valeur $a plus 3, et est de nouveau assignée à la variable $a. Donc, le résultat est l'incrémentation de 3 unités de la variable $a. En PHP, comme dans de nombreux autres langages comme le C, vous pouvez écrire cela de manière plus concise, manière qui avec le temps se révélera plus claire et plus rapide à comprendre. Ajouter 3 à la valeur de la variable $a peut s'écrire '$a += 3'. Cela signifie précisément : "on prend la valeur de la variable $a, on ajoute la valeur 3 et on assigne cette valeur à la variable $a". Et pour être plus concis et plus clair, cette expression est plus rapide. La valeur de l'expression '$a += 3', comme l'assignation d'une valeur quelconque, est la valeur assignée. Il est à noter que ce n'est pas 3 mais la combinaison de la valeur de la variable $a plus la valeur 3. (c'est la valeur qui est assignée à la variable $a). N'importe quel opérateur binaire peut utiliser ce type d'assignation, par exemple '$a -= 5' (soustraction de 5 de la valeur de la variable $a), '$b *= 7' (multiplication de la valeur de la variable $b par 7).

Il y a une autre expression qui peut paraître complexe si vous ne l'avez pas vue dans d'autres langages, l'opérateur conditionnel ternaire :

<?php
$first 
$second $third
?>

Si la valeur de la première sous-expression est vraie (TRUE) (différente de 0), alors la deuxième sous-expression est évaluée et constitue le résultat de l'expression conditionnelle. Sinon, c'est la troisième sous-expression qui est évaluée et qui constitue le résultat de l'expression.

Les exemples suivants devraient vous permettre de mieux comprendre la pre-incrémentation, la post-incrémentation et le concept des expressions en général :

<?php
function double($i)
{
    return 
$i*2;
}

$b $a 5;        /* Assigne la valeur 5 aux variables $a et $b  */
$c $a++;          /* Post-incrémentation de la variable $a et assignation de
                       la valeur à la variable $c */
$e $d = ++$b;     /* Pre-incrémentation, et assignation de la valeur aux
                       variables $d et $e  */
/* à ce niveau, les variables $d et $e sont égales à 6 */
$f double($d++);  /* assignation du double de la valeur de $d à la variable $f ($f vaut 12),
                       puis incrémentation de la valeur de $d  */
$g double(++$e);  /* assigne deux fois la valeur de $e après
                       incrémentation, 2*7 = 14 to $g */
$h $g += 10;      /* Tout d'abord, $g est incrémentée de 10, et donc $g vaut 24.
                       Ensuite, la valeur de $g, (24) est assignée à la variable $h,
                       qui vaut donc elle aussi 24. */
?>

Au début de ce chapitre, nous avons dit que nous allions décrire les différents types d'instructions, et donc, comme promis, nous allons voir que les expressions peuvent être des instructions. Mais attention, toutes les expressions ne sont pas des instructions. Dans ce cas-là, une instruction est de la forme 'expr ;', c'est-à-dire, une expression suivie par un point-virgule. L'expression '$b = $a = 5;', '$a = 5' est valide, mais ce n'est pas une instruction en elle-même. '$b = $a = 5;' est une instruction valide.

La dernière chose qui mérite d'être mentionnée est la véritable valeur des expressions. Lorsque vous faites des tests sur une variable, dans une boucle conditionnelle par exemple, cela ne vous intéresse pas de savoir quelle est la valeur exacte de l'expression. Mais vous voulez seulement savoir si le résultat signifie TRUE ou FALSE Les constantes TRUE et FALSE (insensible à la casse) sont les deux valeurs possibles pour un booléen. Lorsque nécessaire, une expression est automatiquement convertie en booléen. Lisez la section sur le transtypage pour plus de détails.

PHP propose une implémentation complète et détaillée des expressions. PHP documente toutes ses expressions dans le manuel que vous êtes en train de lire. Les exemples qui vont suivre devraient vous donner une bonne idée de ce qu'est une expression et comment construire vos propres expressions. Dans tout ce qui va suivre, nous écrirons expr pour indiquer toute expression PHP valide.



Les opérateurs

Sommaire

Un opérateur est quelque chose que vous alimentez avec une ou plusieurs valeurs (ou expression, dans le jargon de programmation) et qui retourne une autre valeur (donc que la construction elle-même devient une expression). Donc, vous pouvez voir les fonctions ou constructions qui retournent une valeur (comme print()) comme des opérateurs et celles qui retournent rien du tout (comme echo()).

Il y a trois types d'opérateurs. Le premier, l'opérateur unaire, qui opère sur une seule valeur, par exemple ! (l'opérateur de négation) ou ++ (l'opérateur d'incrémentation). Le second groupe, les opérateurs binaires ; ce groupe contient la plupart des opérateurs supportés par PHP qui sont listés ci-dessous dans la section "La précédence des opérateurs".

Le troisième groupe est le groupe des opérateurs de terminaison : ?:. Ils doivent être utilisés pour choisir entre deux expressions dépendantes d'une troisième, plutôt que sélectionner deux phrases ou chemins d'exécution. Les expressions ternaires environnantes avec des parenthèses sont une très bonne idée.


La précédence des opérateurs

La priorité des opérateurs spécifie l'ordre dans lequel les valeurs doivent être analysées. Par exemple, dans l'expression 1 + 5 * 3, le résultat est 16 et non 18, car la multiplication ("*") a une priorité supérieure par rapport à l'addition ("+"). Des parenthèses peuvent être utilisées pour forcer la priorité, si nécessaire. Par exemple : (1 + 5) * 3 donnera 18. Si la priorité d'opérateur est égale, l'associativité de gauche à droite est utilisée.

Le tableau suivant dresse une liste de la priorité des différents opérateurs dans un ordre décroissant de priorité. Les opérateurs sur une même ligne ont une priorité équivalente et, dans ce cas, leur association décide de l'ordre de leur évaluation.

Précédence des opérateurs
Associativité Opérateurs Information additionnelle
non-associative clone new clone et new
gauche [ array()
non-associatif ++ -- incrémentation/décrémentation
droite ~ - (int) (float) (string) (array) (object) (bool) @ types
non-associatif instanceof types
droite ! logique
gauche * / % arithmétique
gauche + - . arithmétique et chaîne de caractères
gauche << >> bitwise
non-associatif < <= > >= <> comparaison
non-associatif == != === !== comparaison
gauche & bitwise et références
gauche ^ bitwise
gauche | bitwise
gauche && logique
gauche || logique
gauche ? : ternaire
droite = += -= *= /= .= %= &= |= ^= <<= >>= => assignation
gauche and logique
gauche xor logique
gauche or logique
gauche , plusieurs utilisations

L'associativité de gauche signifie que l'expression est évaluée de gauche à droite, l'associativité de droite, l'inverse.

Exemple #1 Associativité

<?php
$a 
5// (3 * 3) % 5 = 4
$a true true 2// (true ? 0 : true) ? 1 : 2 = 2

$a 1;
$b 2;
$a $b += 3// $a = ($b += 3) -> $a = 5, $b = 5

// Le fait de mélanger ++ et + produit un comportement indéfini
$a 1;
echo ++
$a $a++; // peut afficher 4 ou 5
?>
Utilisez les parenthèses pour augmenter la lisibilité du code.

Note:

Bien que = soit prioritaire sur la plupart des opérateurs, PHP va tout de même exécuter des expressions comme : if (!$a = foo()). Dans cette situation, le résultat de foo() sera placé dans la variable $a.



Les opérateurs arithmétiques

Vous rappelez-vous des opérations élémentaires apprises à l'école ? Les opérateurs arithmétiques fonctionnent comme elles.

Opérations élémentaires
Exemple Nom Résultat
-$a Négation Opposé de $a.
$a + $b Addition Somme de $a et $b.
$a - $b Soustraction Différence de $a et $b.
$a * $b Multiplication Produit de $a et $b.
$a / $b Division Quotient de $a et $b.
$a % $b Modulo Reste de $a divisé par $b.

L'opérateur de division ("/") retourne une valeur à virgule flottante sauf si les 2 opérandes sont des entiers (ou une chaîne de caractères qui a été convertie en entiers) et cette valeur est toujours divisible, auquel cas une valeur entière sera retournée.

Les opérandes du modulo sont converties en entiers (en supprimant la partie décimale) avant exécution.

Le résultat de l'opération modulo % a le même signe que le premier opérande, ansi le résultat de $a % $b aura le signe de $a. Par exemple:

<?php

echo (3)."\n";           // affiche 2
echo (% -3)."\n";          // affiche 2
echo (-3)."\n";          // affiche -2
echo (-% -3)."\n";         // affiche -2

?>

Voir aussi le manuel sur les fonctions mathématiques.



Les opérateurs d'assignation

L'opérateur d'assignation le plus simple est le signe "=". Le premier réflexe est de penser que ce signe veut dire "égal à". Ce n'est pas le cas. Il signifie que l'opérande de gauche se voit affecter la valeur de l'expression qui est à droite du signe égal.

La valeur d'une expression d'assignation est la valeur assignée. Par exemple, la valeur de l'expression '$a = 3' est la valeur 3. Cela permet d'utiliser des astuces telles que :

<?php
$a 
= ($b 4) + 5;
// $a est maintenant égal à 9, et $b vaut 4.
?>

Pour les arrays, assigner une valeur à une clé donnée est effectué au moyen de l'opérateur "=>". La précédence de cet opérateur est la même que celle des opérateurs d'assignation.

En plus du simple opérateur d'assignation, il existe des "opérateurs combinés" pour tous les opérateurs arithmétiques, l'union de tableaux et pour les opérateurs sur les chaînes de caractères. Cela permet d'utiliser la valeur d'une variable dans une expression et d'affecter le résultat de cette expression à cette variable. Par exemple :

<?php
$a 
3;
$a += 5// affecte la valeur 8 à la variable $a correspond à l'instruction '$a = $a + 5';
$b "Bonjour ";
$b .= " tout le monde!";  // affecte la valeur "Bonjour tout le monde!" à
                                    //  la variable $b
                                    //  identique à $b = $b." tout le monde!";

?>

On peut noter que l'assignation copie le contenu de la variable originale dans la nouvelle variable (assignation par valeur), ce qui fait que les changements de valeur d'une variable ne modifieront pas la valeur de l'autre. Cela peut se révéler important lors de la copie d'un grand tableau durant une boucle.

Une exception au comportement d'assignation par valeur en PHP est le type object, ceux-ci sont assignés par référence dans PHP 5. La copie d'objet doit être explicitement demandée grâce au mot-clé clone.

Assignation par référence

L'assignation par référence est aussi supportée, au moyen de la syntaxe "$var = &$othervar;". L'assignation par référence signifie que les deux variables pointent vers le même conteneur de donnée, rien n'est copié nul part.

Exemple #1 Assignation par référence

<?php
$a 
3;
$b = &$a// $b est une référence à $a

print "$a\n"// affiche 3
print "$b\n"// affiche 3

$a 4// change $a

print "$a\n"// affiche 4
print "$b\n"// affiche 4 aussi, car $b est une référence à $a, qui a été
              // changée
?>

Depuis PHP 5, l'opérateur new retourne une référence automatiquement, donc assigner le résultat de new par référence retournera une erreur E_DEPRECATED depuis PHP 5.3, et une erreur de niveau E_STRICT avant PHP 5.3.

Par exemple, ce code génère un message d'erreur:

<?php
class {}

/* La ligne suivante génère une erreur dont le message est:
 * Deprecated: Assigning the return value of new by reference is deprecated in...
 */
$o = &new C;
?>

Plus d'informations sur le références et leurs utilisations possibles peuvent être trouvées dans la section du manuel Les références expliquées.



Opérateurs sur les bits

Les opérateurs sur les bits vous permettent de manipuler les bits dans un entier.

Les opérateurs sur les bits
Exemple Nom Résultat
$a & $b And (Et) Les bits positionnés à 1 dans $a ET dans $b sont positionnés à 1.
$a | $b Or (Ou) Les bits positionnés à 1 dans $a OU $b sont positionnés à 1.
$a ^ $b Xor (ou exclusif) Les bits positionnés à 1 dans $a OU dans $b mais pas dans les deux sont positionnés à 1.
~ $a Not (Non) Les bits qui sont positionnés à 1 dans $a sont positionnés à 0, et vice-versa.
$a << $b Décalage à gauche Décale les bits de $a, $b fois sur la gauche (chaque décalage équivaut à une multiplication par 2).
$a >> $b Décalage à droite Décalage les bits de $a, $b fois par la droite (chaque décalage équivaut à une division par 2).

Le décalage de bits en PHP est arithmétique. Les bits qui sont décalés hors de l'entier sont perdus. Les décalages à gauche font apparaître des zéros à droite, tandis que le bit de signe est décalé à gauche, ce qui signifie que le signe de l'entier n'est pas préservé. Les décalages à droite décalent aussi le bit de signe sur la droite, ce qui signifie que le signe est préservé.

Utilisez des parenthèses pour vous assurer que la précédence voulue est bien appliquée. Par exemple, $a & $b == true applique d'abord l'égalité, et ensuite le ET logique, alors que ($a & $b) == true applique d'abord le ET logique, puis l'égalité.

Prenez garde aux transtypages. Si les deux paramètres, de chaque coté de l'opérateur, sont des chaînes, l'opérateur de bit va opérer sur les valeurs ASCII des chaînes.

      Le rapport d'erreur de PHP utilise des champs de bits,
      qui sont une illustration de l'extinction des bits.
      Pour afficher les erreurs, sauf les notices, les
      instructions du php.ini sont : 
      E_ALL & ~E_NOTICE
     

      Cela se comprend en comparant avec E_ALL :
      00000000000000000111011111111111
      Puis en éteignant la valeur de E_NOTICE...
      00000000000000000000000000001000
      ... et en l'inversant via ~:
      11111111111111111111111111110111
      Finalement, on utilise le ET logique (&) pour lire les bits activés
      dans les deux valeurs : 
      00000000000000000111011111110111
     

      Un autre moyen d'arriver à ce résultat est d'utiliser 
      le OU exclusif (^), qui cherche
      les bits qui ne sont activés que dans l'une ou l'autre des
      valeurs, exclusivement : 
      E_ALL ^ E_NOTICE
     

      error_reporting peut aussi être utilisé pour 
      illustrer l'activation de bits. Pour afficher
      uniquement les erreurs et les erreurs recouvrables,
      on utilise :
      E_ERROR | E_RECOVERABLE_ERROR
     

      Cette approche combine E_ERROR
      00000000000000000000000000000001
      et E_RECOVERABLE_ERROR
      00000000000000000001000000000000
      Avec l'opérateur OR (|) pour s'assurer que
      les bits sont activés dans l'une ou l'autre valeur : 
      00000000000000000001000000000001
     

Exemple #1 Opérations sur les bits et les entiers

<?php
/*
 * Ignorez cette partie,
 * c'est juste du formatage pour clarifier les résultats
 */

$format '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
        
' %3$s (%4$2d = %4$04b)' "\n";

echo <<<EOH
 ---------     ---------  -- ---------
 resultat       valeur        test
 ---------     ---------  -- ---------
EOH;


/*
 * Voici les exemples
 */

$values = array(01248);
$test 4;

echo 
"\n Bitwise AND \n";
foreach (
$values as $value) {
    
$result $value $test;
    
printf($format$result$value'&'$test);
}

echo 
"\n Bitwise Inclusive OR \n";
foreach (
$values as $value) {
    
$result $value $test;
    
printf($format$result$value'|'$test);
}

echo 
"\n Bitwise Exclusive OR (XOR) \n";
foreach (
$values as $value) {
    
$result $value $test;
    
printf($format$result$value'^'$test);
}
?>

L'exemple ci-dessus va afficher :

---------     ---------  -- ---------
 resultat       valeur        test
 ---------     ---------  -- ---------
 Bitwise AND 
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)

 Bitwise Inclusive OR 
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)

 Bitwise Exclusive OR (XOR) 
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)

Exemple #2 Opération sur les bits et les chaînes

<?php
echo 12 9// Affiche '5'

echo "12" "9"// Affiche le caractère d'effacement (ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" "hello"// Affiche les valeurs ASCII #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4

echo "3"// Affiche 1
              // 2 ^ ((int)"3") == 1

echo "2" 3// Affiche 1
              // ((int)"2") ^ 3 == 1
?>

Exemple #3 Décalage de bits sur les entiers

<?php
/*
 * Voici quelques exemples
 */

echo "\n--- Décalages à droite sur des entiers positifs ---\n";

$val 4;
$places 1;
$res $val >> $places;
p($res$val'>>'$places'copie du bit de signe maintenant à gauche');

$val 4;
$places 2;
$res $val >> $places;
p($res$val'>>'$places);

$val 4;
$places 3;
$res $val >> $places;
p($res$val'>>'$places'des bits sont sortis par la droite');

$val 4;
$places 4;
$res $val >> $places;
p($res$val'>>'$places'même résultat que ci-dessus : pas de décalage au dela de 0');


echo 
"\n--- Décalages à droite sur des entiers négatifs ---\n";

$val = -4;
$places 1;
$res $val >> $places;
p($res$val'>>'$places'copie du bit de signe maintenant à gauche');

$val = -4;
$places 2;
$res $val >> $places;
p($res$val'>>'$places'des bits sont sortis par la droite');

$val = -4;
$places 3;
$res $val >> $places;
p($res$val'>>'$places'même résultat que ci-dessus : pas de décalage au dela de -1');


echo 
"\n--- Décalages à gauche sur des entiers positifs ---\n";

$val 4;
$places 1;
$res $val << $places;
p($res$val'<<'$places'complément de zéros à droite');

$val 4;
$places = (PHP_INT_SIZE 8) - 4;
$res $val << $places;
p($res$val'<<'$places);

$val 4;
$places = (PHP_INT_SIZE 8) - 3;
$res $val << $places;
p($res$val'<<'$places'le bit de signe est sorti');

$val 4;
$places = (PHP_INT_SIZE 8) - 2;
$res $val << $places;
p($res$val'<<'$places'des bits sont sortis à gauche');


echo 
"\n--- Décalages à gauche sur des entiers négatifs ---\n";

$val = -4;
$places 1;
$res $val << $places;
p($res$val'<<'$places'complément de zéros à droite');

$val = -4;
$places = (PHP_INT_SIZE 8) - 3;
$res $val << $places;
p($res$val'<<'$places);

$val = -4;
$places = (PHP_INT_SIZE 8) - 2;
$res $val << $places;
p($res$val'<<'$places'des bits sont sortis à gauche, y compris le bit de signe');


/*
 * Ignorez cette section
 * Elle contient du code pour le formatage de cet exemple
 */

function p($res$val$op$places$note '') {
    
$format '%0' . (PHP_INT_SIZE 8) . "b\n";

    
printf("Expression : %d = %d %s %d\n"$res$val$op$places);

    echo 
" Décimal :\n";
    
printf("  val=%d\n"$val);
    
printf("  res=%d\n"$res);

    echo 
" Binaire :\n";
    
printf('  val=' $format$val);
    
printf('  res=' $format$res);

    if (
$note) {
        echo 
" Note : $note\n";
    }

    echo 
"\n";
}
?>

Résultat de l'exemple ci-dessus sur une machine 32 bits :


--- Décalages à droite sur des entiers positifs ---
Expression : 2 = 4 >> 1
 Décimal :
  val=4
  res=2
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000010
 Note : copie du bit de signe maintenant à gauche

Expression : 1 = 4 >> 2
 Décimal :
  val=4
  res=1
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000001

Expression : 0 = 4 >> 3
 Décimal :
  val=4
  res=0
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 Note : des bits sont sortis par la droite

Expression : 0 = 4 >> 4
 Décimal :
  val=4
  res=0
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 Note : même résultat que ci-dessus : pas de décalage au dela de 0


--- Décalages à droite sur des entiers négatifs ---
Expression : -2 = -4 >> 1
 Décimal :
  val=-4
  res=-2
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111110
 Note : copie du bit de signe à gauche

Expression : -1 = -4 >> 2
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 Note : des bits sont sortis par la droite

Expression : -1 = -4 >> 3
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 Note : même résultat que ci-dessus : pas de décalage au dela de -1


--- Décalages à gauche sur des entiers positifs ---
Expression : 8 = 4 << 1
 Décimal :
  val=4
  res=8
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000001000
 Note : complément de zéros à droite

Expression : 1073741824 = 4 << 28
 Décimal :
  val=4
  res=1073741824
 Binaire :
  val=00000000000000000000000000000100
  res=01000000000000000000000000000000

Expression : -2147483648 = 4 << 29
 Décimal :
  val=4
  res=-2147483648
 Binaire :
  val=00000000000000000000000000000100
  res=10000000000000000000000000000000
 Note : le bit de signe est sorti

Expression : 0 = 4 << 30
 Décimal :
  val=4
  res=0
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 Note : des bits sont sortis à gauche


--- Décalages à gauche sur des entiers négatifs ---
Expression : -8 = -4 << 1
 Décimal :
  val=-4
  res=-8
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111000
 Note : complément de zéros à droite

Expression : -2147483648 = -4 << 29
 Décimal :
  val=-4
  res=-2147483648
 Binaire :
  val=11111111111111111111111111111100
  res=10000000000000000000000000000000

Expression : 0 = -4 << 30
 Décimal :
  val=-4
  res=0
 Binaire :
  val=11111111111111111111111111111100
  res=00000000000000000000000000000000
 Note : des bits sont sortis à gauche, y compris le bit de signe

Résultat de l'exemple ci-dessus sur une machine 64 bits :


--- Décalages à droite sur des entiers positifs ---
Expression : 2 = 4 >> 1
 Décimal :
  val=4
  res=2
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000010
 Note : copie du bit de signe maintenant à gauche

Expression : 1 = 4 >> 2
 Décimal :
  val=4
  res=1
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000001

Expression : 0 = 4 >> 3
 Décimal :
  val=4
  res=0
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : des bits sont sortis par la droite

Expression : 0 = 4 >> 4
 Décimal :
  val=4
  res=0
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : même résultat que ci-dessus : pas de décalage au dela de 0


--- Décalages à droite sur des entiers négatifs ---
Expression : -2 = -4 >> 1
 Décimal :
  val=-4
  res=-2
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111110
 Note : copie du bit de signe maintenant à gauche

Expression : -1 = -4 >> 2
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 Note : des bits sont sortis par la droite

Expression : -1 = -4 >> 3
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 Note : même résultat que ci-dessus : pas de décalage au dela de -1


--- Décalage à gauche sur les entiers négatifs ---
Expression : 8 = 4 << 1
 Décimal :
  val=4
  res=8
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000001000
 Note : complément de zéros à droite

Expression : 4611686018427387904 = 4 << 60
 Décimal :
  val=4
  res=4611686018427387904
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0100000000000000000000000000000000000000000000000000000000000000

Expression : -9223372036854775808 = 4 << 61
 Décimal :
  val=4
  res=-9223372036854775808
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=1000000000000000000000000000000000000000000000000000000000000000
 Note : le bit de signe est sorti

Expression : 0 = 4 << 62
 Décimal :
  val=4
  res=0
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : des bits sont sortis à gauche


--- Décalage à gauche sur les entiers négatifs ---
Expression : -8 = -4 << 1
 Décimal :
  val=-4
  res=-8
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111000
 Note : complément de zéros à droite

Expression : -9223372036854775808 = -4 << 61
 Décimal :
  val=-4
  res=-9223372036854775808
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1000000000000000000000000000000000000000000000000000000000000000

Expression : 0 = -4 << 62
 Décimal :
  val=-4
  res=0
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : des bits sont sortis à gauche, y compris le bit de signe

Avertissement

N'effectuez pas de décalage à droite de plus de 32 bits sur les systèmes 32 bits. N'effectuez pas de décalage à gauche dans le cas où le résultat est un nombre plus long que 32 bits. Utilisez les fonctions de l'extension gmp pour les manipulations sur les bits, lorsque les entiers dépassent PHP_INT_MAX.

Voyez aussi pack(), unpack(), gmp_and(), gmp_or(), gmp_xor(), gmp_testbit(), gmp_clrbit()



Opérateurs de comparaison

Les opérateurs de comparaison, comme leur nom l'indique, vous permettent de comparer deux valeurs. Vous devriez également être intéressés par les tables de comparaisons de types, car ils montrent des exemples de beaucoup de types de comparaisons.

Opérateurs de comparaison
Exemple Nom Résultat
$a == $b Egal TRUE si $a est égal à $b après le transtypage.
$a === $b Identique TRUE si $a est égal à $b et qu'ils sont de même type.
$a != $b Différent TRUE si $a est différent de $b après le transtypage.
$a <> $b Différent TRUE si $a est différent de $b après le transtypage.
$a !== $b Différent TRUE si $a est différent de $b ou bien qu'ils ne sont pas du même type.
$a < $b Plus petit que TRUE si $a est strictement plus petit que $b.
$a > $b Plus grand TRUE si $a est strictement plus grand que $b.
$a <= $b Inférieur ou égal TRUE si $a est plus petit ou égal à $b.
$a >= $b Supérieur ou égal TRUE si $a est plus grand ou égal à $b.

Si vous comparez un nombre avec une chaîne ou bien que la comparaison implique des chaînes numériques, alors chaque chaîne sera convertie en un nombre et la comparaison sera effectuée numériquement. Ces règles s'appliquent également à l'instruction switch. La comparaison de type n'a pas de place lorsque la comparaison est === ou !== vu que ceci engendre aussi bien une comparaison de type que de valeur.

<?php
var_dump
(== "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

switch ("a") {
case 
0:
    echo 
"0";
    break;
case 
"a"// jamais évalué parce que "a" est déjà trouvé avec 0
    
echo "a";
    break;
}
?>

Pour les différents types, la comparaison est faite en suivant la table suivante (dans l'ordre).

Comparaison avec plusieurs types
Type de l'opérande 1 Type de l'opérande 2 Résultat
null ou chaîne de caractères string Convertit NULL en "", comparaison numérique ou lexicale
booléen ou null N'importe quoi Convertit en booléen, FALSE < TRUE
objet objet Les classes internes peuvent définir leur propre méthode de comparaison; différentes classes ne sont pas comparables; entre objets de même classe, PHP a son propre comportement
chaîne de caractères, ressource ou nombre chaîne de caractères, ressource ou nombre Transforme les chaînes de caractères et les ressources en nombres
tableaux tableaux Le tableau avec le moins de membres est plus petit, si la clé de l'opérande 1 n'est pas trouvée dans l'opérande 2, alors les tableaux ne sont pas comparables, sinon la comparaison se fait valeur par valeur (voir l'exemple suivant)
tableau N'importe quoi Le tableau est toujours plus grand
objet N'importe quoi L'objet est toujours plus grand

Exemple #1 Transcription des comparaisons standards des tableaux

<?php
// Les tableaux sont comparés comme ceci avec les opérateurs standards de comparaison
function standard_array_compare($op1$op2)
{
   if (
count($op1) < count($op2)) {
      return -
1// $op1 < $op2
   
} elseif (count($op1) > count($op2)) {
      return 
1// $op1 > $op2
   
}
   foreach (
$op1 as $key => $val) {
      if (!
array_key_exists($key$op2)) {
         return 
null// incomparable
      
} elseif ($val $op2[$key]) {
         return -
1;
      } elseif (
$val $op2[$key]) {
         return 
1;
      }
   }
   return 
0// $op1 == $op2
}
?>

Voir aussi strcasecmp(), strcmp() les opérateurs de tableaux, et le chapitre sur les types.

Avertissement

Comparaison de nombre à virgule flottante

A cause de la façon dont les nombres à virgule flottante sont représentés en interne, vous ne devriez pas tester l'égalité entre deux nombres de type float.

Voyez la documentation de float pour plus d'informations.

L'opérateur ternaire

Un autre opérateur conditionnel est l'opérateur ternaire (":?").

Exemple #2 Assignation d'une valeur par défaut

<?php
// Exemple d'utilisation pour l'opérateur ternaire
$action = (empty($_POST['action'])) ? 'default' $_POST['action'];

// La ligne ci-dessus est identique à la condition suivante :
if (empty($_POST['action'])) {
   
$action 'default';
} else {
   
$action $_POST['action'];
}

?>
L'expression (expr1) ? (expr2) : (expr3) est évaluée à expr2 si expr1 est évaluée à TRUE, et expr3 si expr1 est évaluée à FALSE.

Depuis PHP 5.3, il est possible d'omettre la partie centrale de l'opérateur ternaire. L'expression expr1 ?: expr3 retourne expr1 si expr1 vaut TRUE, et expr3 sinon.

Note: Notez que l'opérateur ternaire est une instruction, et il n'est pas évalué en tant que variable, mais en tant que résultat de l'instruction. Il est important de savoir si vous voulez retourner une variable par référence. L'instruction return $var == 42 ? $a : $b; dans une fonction retournée par référence ne fonctionnera donc pas et une alerte est émise.

Note:

Il est recommandé de ne pas "empiler" les expressions ternaires. Le comportement de PHP lors de l'utilisation de plus d'un opérateur ternaire dans une seule instruction n'est pas évident :

Exemple #3 Comportement de PHP

<?php
// A première vue, ce qui suit devrait retourner 'true'
echo (true?'true':false?'t':'f');

// cependant, l'expression ci-dessus retournera 't'
// car l'expression ternaire est évaluée de gauche à droite

// l'expression suivante est une version plus évidente du même code
echo ((true 'true' false) ? 't' 'f');

// ici, vous pouvez voir que la première expression est évaluée à 'true',
// ce qui fait qu'elle est évaluée à (bool)true, ce qui retourne la branche
// 'vraie' de la seconde expression ternaire.
?>



Opérateur de contrôle d'erreur

PHP supporte un opérateur de contrôle d'erreur : c'est @. Lorsque cet opérateur est ajouté en préfixe d'une expression PHP, les messages d'erreur qui peuvent être générés par cette expression seront ignorés.

Si l'option track_errors est activée, les messages d'erreurs générés par une expression seront sauvés dans la variable globale $php_errormsg. Cette variable sera écrasée à chaque erreur. Il faut alors la surveiller souvent pour pouvoir l'utiliser.

<?php
/* Erreur intentionnelle (le fichier n'existe pas): */
$mon_fichier = @file ('non_persistent_file') or
    die (
"Impossible d'ouvrir le fichier : L'erreur est : '$php_errormsg'");

// Cela fonctionne avec n'importe quelle expression, pas seulement les fonctions
  
$value = @$cache[$key];
// la ligne ci-dessus n'affichera pas d'alerte si la clé $key du tableau n'existe pas

?>

Note: L'opérateur @ ne fonctionne qu'avec les expressions. La règle générale de fonctionnement est la suivante : si vous pouvez prendre la valeur de quelque chose, vous pouvez le préfixer avec @. Par exemple, vous pouvez ajouter @ aux variables, fonctions, à include(), aux constantes, etc. Vous ne pourrez pas le faire avec des éléments de langage tels que les classes, if et foreach, etc.

Voir aussi error_reporting() et la section sur la gestion d'erreurs.

Avertissement

En fait, l'opérateur "@" va aussi désactiver les rapports d'erreurs critiques, qui stoppent l'exécution du script. Entre autres, si vous utilisez "@" pour supprimer les erreurs de certaines fonctions, et que cette fonction n'existe pas, ou qu'elle a été mal orthographiée, vous n'aurez aucune indication.



Opérateur d'exécution

PHP supporte un opérateur d'exécution : guillemets obliques ("``"). Notez bien qu'il ne s'agit pas de guillemets simples. PHP essaie d'exécuter le contenu de ces guillemets obliques comme une commande shell. Le résultat sera retourné (i.e. : il ne sera pas simplement envoyé à la sortie standard, il peut être assigné à une variable). Utilisez les guillemets obliques revient à utiliser la fonction shell_exec().

Exemple #1 Opérateur d'exécution

<?php
$output 
= `ls -al`;
echo 
"<pre>$output</pre>";
?>

Note:

Cet opérateur est désactivé lorsque le safe mode est activé ou bien que la fonction shell_exec() est désactivée.

Voir aussi le manuel à la section sur les fonctions d'exécution système, popen(), proc_open() et l'utilisation de PHP en ligne de commande.



Opérateurs d'incrémentation et décrémentation

PHP supporte les opérateurs de pre- et post-incrémentation et décrémentation, comme en langage C.

Note: Les opérateurs d'incrémentation/décrémentation n'affectent pas les valeurs booléennes. La décrémentation des valeurs NULL n'a également aucun effet, mais leur incrémentation donnera comme résultat 1.

Opérateurs d'incrémentation et décrémentation
Exemple Nom Résultat
++$a Pre-incrémente Incrémente $a de 1, puis retourne $a.
$a++ Post-incrémente Retourne $a, puis incrémente $a de 1.
--$a Pré-décrémente Décrémente $a de 1, puis retourne $a.
$a-- Post-décrémente Retourne $a, puis décrémente $a de 1.

Voici un exemple simple :

<?php
echo '<h3>Post-incrémentation</h3>';
$a 5;
echo 
"Devrait valoir  5: " $a++ . "<br />\n";
echo 
"Devrait valoir  6: " $a "<br />\n";
echo 
'<h3>Pre-incrémentation</h3>';
$a 5;
echo 
"Devrait valoir  6: " . ++$a "<br />\n";
echo 
"Devrait valoir  6: " $a "<br />\n";
echo 
'<h3>Post-décrémentation</h3>';
$a 5;
echo 
"Devrait valoir  5: " $a-- . "<br />\n";
echo 
"Devrait valoir  4: " $a "<br />\n";
echo 
'<h3>Pre-décrémentation</h3>';
$a 5;
echo 
"Devrait valoir  4: " . --$a "<br />\n";
echo 
"Devrait valoir  4: " $a "<br />\n";
?>

PHP suit les conventions de Perl pour la gestion des opérateurs arithmétiques, et non pas celle du C. Par exemple, en Perl 'Z'+1 retourne 'AA', alors qu'en C, 'Z'+1 retourne '[' (ord('Z') == 90, donc ord('[') == 91). Notez que les variables de caractères peuvent être incrémentées, mais pas décrémentées et même seuls les caractères ASCII (a-z et A-Z) sont supportés.

Exemple #1 Opérations arithmétiques sur un caractère

<?php
$i 
'W';
for(
$n=0$n<6$n++) {
  echo ++
$i "\n";
}
?>

L'exemple ci-dessus va afficher :

X
Y
Z
AA
AB
AC

L'incrémentation ou la décrémentation d'un booléen n'a aucun effet.



Les opérateurs logiques

Les opérateurs logiques
Exemple Nom Résultat
$a and $b And (Et) TRUE si $a ET $b valent TRUE.
$a or $b Or (Ou) TRUE si $a OU $b valent TRUE.
$a xor $b XOR TRUE si $a OU $b est TRUE, mais pas les deux en même temps.
! $a Not (Non) TRUE si $a n'est pas TRUE.
$a && $b And (Et) TRUE si $a ET $b sont TRUE.
$a || $b Or (Ou) TRUE si $a OU $b est TRUE.

La raison pour laquelle il existe deux types de "ET" et de "OU" est qu'ils ont des priorités différentes. Voir le paragraphe précédence d'opérateurs.

Exemple #1 Illustration des opérateurs logiques

<?php

// --------------------
// foo() ne sera jamais appelée car ces opérateurs s'annulent

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// "||" a un précédence supérieure à "or"

// Le résultat de l'expression (false || true) est assigné à $e
// Agit comme : ($e = (false || true))
$e false || true;

// La constante false est assignée à $f, puis, true est ignoré
// Agit comme : (($f = false) or true)
$f false or true;

var_dump($e$f);

// --------------------
// "&&" a un précédence supérieure à "and"

// Le résultat de l'expression (true && false) est assigné à $g
// Agit comme : ($g = (true && false))
$g true && false;

// La constante true est assignée à $h, puis, false est ignoré
// Agit comme : (($h = true) and false)
$h true and false;

var_dump($g$h);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)
bool(false)
bool(true)


Opérateurs de chaînes

Il y a deux opérateurs de chaînes de caractères string. Le premier est l'opérateur de concaténation ('.'), qui retourne la concaténation de ses deux arguments. Le second est l'opérateur d'assignation concaténant (.=). Reportez-vous à opérateurs d'assignation pour plus de détails.

Exemple #1 Opérateur de concaténation

<?php
$a 
"Bonjour ";
$b $a "Monde !"// $b contient "Bonjour Monde !"

$a "Bonjour ";
$a $a "Monde !"// $a contient "Bonjour Monde !"
?>

Voir aussi les sections du manuel sur les types de chaînes de caractères et les chaînes de caractères.



Opérateurs de tableaux

Opérateurs de tableaux
Exemple Nom Résultat
$a + $b Union Union de $a et $b.
$a == $b Egalité TRUE si $a et $b contiennent les mêmes paires clés/valeurs.
$a === $b Identique TRUE si $a et $b contiennent les mêmes paires clés/valeurs dans le même ordre et du même type.
$a != $b Inégalité TRUE si $a n'est pas égal à $b.
$a <> $b Inégalité TRUE si $a n'est pas égal à $b.
$a !== $b Non-identique TRUE si $a n'est pas identique à $b.

L'opérateur + ajoute les éléments du tableau de droite au tableau de gauche, sans pour autant écraser les clés communes.

<?php
$a 
= array("a" => "pomme""b" => "banane");
$b = array("a" =>"poire""b" => "fraise""c" => "cerise");

$c $a $b// Union de $a et $b
echo "Union de \$a et \$b : \n";
var_dump($c);

$c $b $a// Union de $b et $a
echo "Union de \$b et \$a : \n";
var_dump($c);
?>
À l'exécution, le script affichera :
Union de $a et $b :
array(3) {
  ["a"]=>
  string(5) "pomme"
  ["b"]=>
  string(6) "banane"
  ["c"]=>
  string(6) "cerise"
}
Union de $b et $a :
array(3) {
  ["a"]=>
  string(5) "poire"
  ["b"]=>
  string(6) "fraise"
  ["c"]=>
  string(6) "cerise"
}

Les éléments d'un tableau sont égaux en terme de comparaison s'ils ont la même clé et la même valeur.

Exemple #1 Comparer des tableaux

<?php
$a 
= array("pomme""banane");
$b = array(=> "banane""0" => "pomme");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Voyez aussi le manuel aux sections Tableaux et fonctions de tableaux.



Opérateurs de types

instanceof est utilisé pour déterminer si une variable PHP est un objet instancié d'une certaine classe :

Exemple #1 Utilisation de instanceof avec des classes

<?php
class MaClasse
{
}
class 
PasMaClasse
{
}
$a = new MaClasse;

var_dump($a instanceof MaClasse);
var_dump($a instanceof PasMaClasse);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

instanceof peut également être utilisé pour déterminer si une variable est un objet instancié d'une classe qui hérite d'une classe parente :

Exemple #2 Utilisation de instanceof avec des classes héritées

<?php
class ParentClass
{
}
class 
MyClass extends ParentClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)

Pour vérifier si un objet n'est pas une instance d'une classe, l'opérateur logique not peut être utilisé.

Exemple #3 Utilisation de instanceof pour vérifier que l'objet n'est pas une instance de la classe

<?php
class MyClass
{
}
$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

L'exemple ci-dessus va afficher :

bool(true)

Et finalement, instanceof peut être utilisé pour déterminer si une variable est un objet instancié d'une classe qui implémente une interface :

Exemple #4 Utilisation de instanceof pour une interface

<?php
interface MyInterface
{
}
class 
MyClass implements MyInterface
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)

Bien que instanceof soit habituellement utilisé avec un nom de classe littéral, il peut également être utilisé avec un autre objet ou une chaîne représentant une variable :

Exemple #5 Utilisation de instanceof avec d'autres variables

<?php
interface MyInterface
{
}
class 
MyClass implements MyInterface
{
}
$a = new MyClass;
$b = new MyClass;
$c 'MyClass';
$d 'NotMyClass';
var_dump($a instanceof $b); // $b est un objet de la classe MyClass
var_dump($a instanceof $c); // $c est une chaîne 'MyClass'
var_dump($a instanceof $d); // $d est une chaîne 'NotMyClass'
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)

Il y a quelques pièges à éviter. Avant PHP version 5.1.0, instanceof appellera __autoload() si le nom de la classe n'existe pas. De plus, si la classe n'a pas été chargée, une erreur fatale sera émise. Ceci peut fonctionner en utilisant une référence de classe dynamique, ou une chaîne représentant une variable contenant le nom de la classe :

Exemple #6 Pas de recherche sur le nom de la classe et une erreur fatale avec instanceof en PHP 5.0

<?php
$d 
'NotMyClass';
var_dump($a instanceof $d); // no fatal error here
?>

L'exemple ci-dessus va afficher :

bool(false)

L'opérateur instanceof a été introduit en PHP 5. Avant cette version, is_a() était utilisée mais is_a() est depuis devenue obsolète, en faveur de instanceof. Notez que depuis PHP 5.3.0, is_a() n'est de nouveau plus obsolète.

Voir aussi get_class() et is_a().




Les structures de contrôle

Sommaire


Introduction

Tous les scripts PHP sont une suite d'instructions. Une instruction peut être une assignation, un appel de fonction, une instruction conditionnelle ou bien une instruction qui ne fait rien (une instruction vide). Une instruction se termine habituellement par un point virgule (";"). De plus, plusieurs instructions peuvent être regroupées en bloc, délimité par des accolades ("{}"). Un bloc est considéré comme une instruction. Les différents types d'instructions sont décrits dans ce chapitre.



if

L'instruction if est une des plus importantes instructions de tous les langages, PHP inclus. Elle permet l'exécution conditionnelle d'une partie de code. Les fonctionnalités de l'instruction if sont les mêmes en PHP qu'en C :

if (expression)
  commandes

Comme nous l'avons vu dans le paragraphe consacré aux expressions, expression est convertie en sa valeur booléenne. Si l'expression vaut TRUE, PHP exécutera l'instruction et si elle vaut FALSE, l'instruction sera ignorée. Plus de détails sur les valeurs qui valent FALSE sont disponibles dans la section Conversion en booléen.

L'exemple suivant affiche la phrase a est plus grand que b si $a est plus grand que $b :

<?php
if ($a $b)
  echo 
"a est plus grand que b";
?>

Souvent, vous voulez que plusieurs instructions soient exécutées après un branchement conditionnel. Bien évidemment, il n'est pas obligatoire de répéter l'instruction conditionnelle if autant de fois que vous avez d'instructions à exécuter. À la place, vous pouvez rassembler toutes les instructions dans un bloc. L'exemple suivant affiche a est plus grand que b, si $a est plus grand que $b, puis assigne la valeur de $a à la variable $b :

<?php
if ($a $b) {
  echo 
"a est plus grand que b";
  
$b $a;
}
?>

Vous pouvez imbriquer indéfiniment des instructions if dans d'autres instructions if, ce qui permet une grande flexibilité dans l'exécution d'une partie de code suivant un grand nombre de conditions.



else

Souvent, vous voulez exécuter une instruction si une condition est remplie, et une autre instruction si cette condition n'est pas remplie. C'est à cela que sert else. else fonctionne après un if et exécute les instructions correspondantes au cas où l'expression du if est FALSE. Dans l'exemple suivant, ce bout de code affiche a est plus grand que b si la variable $a est plus grande que la variable $b, et a est plus petit que b sinon :

<?php
if ($a $b) {
  echo 
"a est plus grand que b";
} else {
  echo 
"a est plus petit que b";
}
?>
Les instructions après le else ne sont exécutées que si l'expression du if est FALSE, et si elle n'est pas suivie par l'expression elseif - uniquement si elles sont évaluées à FALSE (voir elseif).



elseif/else if

elseif, comme son nom l'indique, est une combinaison de if et de else. Comme l'expression else, il permet d'exécuter une instruction après un if dans le cas où le "premier" if est évalué comme FALSE. Mais, à la différence de l'expression else, il n'exécutera l'instruction que si l'expression conditionnelle elseif est évaluée comme TRUE. L'exemple suivant affichera a est plus grand que b, a est égal à b ou a est plus petit que b :

<?php
if ($a $b) {
    echo 
"a est plus grand que b";
} elseif (
$a == $b) {
    echo 
"a est égal à b";
} else {
    echo 
"a est plus petit que b";
}
?>

Vous pouvez avoir plusieurs elseif qui se suivent les uns après les autres, après un if initial. Le premier elseif qui sera évalué à TRUE sera exécuté. En PHP, vous pouvez aussi écrire "else if" en deux mots et son comportement sera identique à la version en un seul mot. La sémantique des deux expressions est légèrement différente, mais au bout du compte, le résultat sera exactement le même.

L'expression elseif est exécutée seulement si le if précédent et tout autre elseif précédent sont évalués comme FALSE, et que votre elseif est évalué à TRUE.

Note: A noter que elseif et else if sont traités de la même façon seulement quand des accolades sont utilisées, comme dans l'exemple ci-dessus. Quand vous utilisez ":" pour définir votre condition if/elseif, vous ne devez pas séparer else if en deux mots, sans quoi PHP soulèvera une erreur d'interprétation.

<?php

/* Mauvaise méthode : */
if($a $b):
    echo 
$a." est plus grand que ".$b;
else if(
$a == $b): // ne compilera pas
    
echo "La ligne ci-dessus provoque une erreur d'interprétation";
endif;


/* Bonne méthode : */
if($a $b):
    echo 
$a." est plus grand que ".$b;
elseif(
$a == $b): // Les deux mots sont collés
    
echo $a." égal ".$b;
else:
    echo 
$a." est plus grand ou égal à ".$b;
endif;

?>



Syntaxe alternative

PHP propose une autre manière de rassembler des instructions à l'intérieur d'un bloc, pour les fonctions de contrôle if, while, for, foreach et switch. Dans chaque cas, le principe est de remplacer l'accolade d'ouverture par deux points (:) et l'accolade de fermeture par, respectivement, endif;, endwhile;, endfor;, endforeach;, ou endswitch;.

<?php if ($a == 5): ?>
A égal 5
<?php endif; ?>

Dans l'exemple ci-dessus, le bloc HTML "A égal 5" est inclus à l'intérieur d'un if en utilisant cette nouvelle syntaxe. Ce code HTML ne sera affiché que si la variable $a est égale à 5.

Cette autre syntaxe fonctionne aussi avec le else et elseif. L'exemple suivant montre une structure avec un if, un elseif et un else utilisant cette autre syntaxe :

<?php
if ($a == 5):
    echo 
"a égal 5";
    echo 
"...";
elseif (
$a == 6):
    echo 
"a égal 6";
    echo 
"!!!";
else:
    echo 
"a ne vaut ni 5 ni 6";
endif;
?>

Note:

Vous ne pouvez pas utiliser différentes syntaxes dans le même bloc de contrôle.

Voir aussi while, for, et if pour d'autres exemples.



while

La boucle while est le moyen le plus simple d'implémenter une boucle en PHP. Cette boucle se comporte de la même manière qu'en C. L'exemple le plus simple d'une boucle while est le suivant :

while (expression)
    commandes

La signification d'une boucle while est très simple. PHP exécute l'instruction tant que l'expression de la boucle while est évaluée comme TRUE. La valeur de l'expression est vérifiée à chaque début de boucle, et, si la valeur change durant l'exécution de l'instruction, l'exécution ne s'arrêtera qu'à la fin de l'itération (chaque fois que PHP exécute l'instruction, on appelle cela une itération). De temps en temps, si l'expression du while est FALSE avant la première itération, l'instruction ne sera jamais exécutée.

Comme avec le if, vous pouvez regrouper plusieurs instructions dans la même boucle while en les regroupant à l'intérieur de parenthèses ou en utilisant la syntaxe suivante :

while (expression):
    commandes
    ...
endwhile;

Les exemples suivants sont identiques et affichent tous les nombres de 1 jusqu'à 10 :

<?php
/* exemple 1 */

$i 1;
while (
$i <= 10) {
    echo 
$i++;  /* La valeur affiche est $i avant l'incrémentation
                   (post-incrémentation)  */
}

/* exemple 2 */

$i 1;
while (
$i <= 10):
    echo 
$i;
    
$i++;
endwhile;
?>



do-while

Les boucles do-while ressemblent beaucoup aux boucles while, mais l'expression est testée à la fin de chaque itération plutôt qu'au début. La principale différence par rapport à la boucle while est que la première itération de la boucle do-while est toujours exécutée (l'expression n'est testée qu'à la fin de l'itération), ce qui n'est pas le cas lorsque vous utilisez une boucle while (la condition est vérifiée dès le début de chaque itération, et si elle s'avère FALSE dès le début, la boucle sera immédiatement arrêtée).

Il n'y a qu'une syntaxe possible pour les boucles do-while :

<?php
$i 
0;
do {
    echo 
$i;
} while (
$i 0);
?>

La boucle ci-dessus ne va être exécutée qu'une seule fois, car lorsque l'expression est évaluée, elle vaut FALSE (car la variable $i n'est pas plus grande que 0) et l'exécution de la boucle s'arrête.

Les utilisateurs familiers du C sont habitués à une utilisation différente des boucles do-while , qui permet de stopper l'exécution de la boucle au milieu des instructions, en encapsulant dans un do-while(0) la fonction break. Le code suivant montre une utilisation possible :

<?php
do {
    if (
$i 5) {
        echo 
"i n'est pas suffisamment grand";
        break;
    }
    
$i *= $factor;
    if (
$i $minimum_limit) {
        break;
    }
   echo 
"i est bon";

    
/* ...traitement de i... */

} while (0);
?>

Ne vous inquiétez pas si vous ne comprenez pas tout correctement. Vous pouvez écrire des scripts très très puissants sans utiliser cette fonctionnalité. Depuis PHP 5.3.0, il est possible d'utiliser l'opérateur goto à l'intérieur de cette fonctionnalité.



for

Les boucles for sont les boucles les plus complexes en PHP. Elles fonctionnent comme les boucles for du langage C. La syntaxe des boucles for est la suivante :

for (expr1; expr2; expr3)
    commandes

La première expression (expr1) est évaluée (exécutée), quoi qu'il arrive au début de la boucle.

Au début de chaque itération, l'expression expr2 est évaluée. Si l'évaluation vaut TRUE, la boucle continue et l'instruction est exécutée. Si l'évaluation vaut FALSE, l'exécution de la boucle s'arrête.

À la fin de chaque itération, l'expression expr3 est évaluée (exécutée).

Les expressions peuvent éventuellement être laissées vides ou peuvent contenir plusieurs expressions séparées par des virgules. Dans expr2, toutes les expressions séparées par une virgule sont évaluées mais le résultat est obtenu depuis la dernière partie. Si l'expression expr2 est laissée vide, cela signifie que c'est une boucle infinie (PHP considère implicitement qu'elle vaut TRUE, comme en C). Cela n'est pas vraiment très utile, à moins que vous souhaitiez terminer votre boucle par l'instruction conditionnelle break.

Considérons les exemples suivants. Tous affichent les chiffres de 1 jusqu'à 10 :

<?php
/* exemple 1 */

for ($i 1$i <= 10$i++) {
    echo 
$i;
}

/* exemple 2 */

for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}

/* exemple 3 */

$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}

/* exemple 4 */

for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>

Bien évidemment, le premier exemple est le plus simple de tous (ou peut être le quatrième), mais vous pouvez aussi penser qu'utiliser une expression vide dans une boucle for peut être utile parfois.

PHP supporte aussi la syntaxe alternative suivante pour les boucles for :

for (expr1; expr2; expr3):
    commandes
    ...
endfor;

Beaucoup de personnes ont l'habitude d'itérer grâce à des tableaux, comme dans l'exemple ci dessous.

<?php
/*
 * Ceci est un tableau avec des données que nous voulons modifier
 * au long de la boucle
*/
$people = Array(
        Array(
'name' => 'Kalle''salt' => 856412),
        Array(
'name' => 'Pierre''salt' => 215863)
        );

for(
$i 0$i sizeof($people); ++$i)
{
    
$people[$i]['salt'] = rand(000000999999);
}
?>

Le problème se situe dans le deuxième argument de l'expression for. Ce code peut être lent parce qu'il doit calculer la taille du tableau à chaque itération. Etant donné que la taille ne change jamais, il peut facilement être optimisé en utilisant une variable intermédiaire pour stocker la taille et en l'utilisant dans la boucle à la place de sizeof. L'exemple ci-dessous illustre ce cas :

<?php
$people 
= Array(
        Array(
'name' => 'Kalle''salt' => 856412),
        Array(
'name' => 'Pierre''salt' => 215863)
        );

for(
$i 0$size sizeof($people); $i $size; ++$i)
{
    
$people[$i]['salt'] = rand(000000999999);
}
?>



foreach

La commande foreach, comme en Perl ou dans d'autres langages, est un moyen simple de passer en revue un tableau. foreach fonctionne uniquement sur les tableaux et les objets, elle retournera une erreur si vous tentez de l'utiliser sur une variable d'un autre type ou non initialisée. Il y a deux syntaxes possibles : la seconde est une extension mineure mais pratique de la première.

foreach (array_expression as $value)
    commandes
foreach (array_expression as $key => $value)
    commandes

La première forme passe en revue le tableau array_expression. À chaque itération, la valeur de l'élément courant est assignée à $value et le pointeur interne de tableau est avancé d'un élément (ce qui fait qu'à la prochaine itération, on accédera à l'élément suivant).

La deuxième forme fait exactement la même chose, mais c'est la clé de l'élément courant qui est assigné à la variable $key.

Il est possible d' itérer également sur des objets.

Note:

Lorsque foreach démarre, le pointeur interne du tableau est automatiquement ramené au premier élément du tableau. Cela signifie que vous n'aurez pas à faire appel à reset() avant foreach.

Note:

A moins que le tableau soit une référence, foreach opère sur une copie des valeurs du tableau spécifié et non sur les valeurs elles-mêmes. foreach affecte le pointeur interne du tableau. Ne l'utilisez pas sans le remettre à zéro avant.

Vous pouvez modifier facilement les éléments d'un tableau en précédent $value d'un &. Ceci assignera une référence au lieu de copier la valeur.

<?php
$arr 
= array(1234);
foreach (
$arr as &$value) {
    
$value $value 2;
}
// $arr vaut maintenant array(2, 4, 6, 8)
unset($value); // Détruit la référence sur le dernier élément
?>
Ceci n'est possible que si le tableau itéré peut être référencé (i.e. est une variable), ce qui signifie que le code suivant ne fonctionne pas :
<?php
foreach (array(1234) as &$value) {
    
$value $value 2;
}

?>

Avertissement

La référence de $value et le dernier élément du tableau sont conservés après l'exécution de la boucle foreach. Il est recommandé de les détruire en utilisant la fonction unset().

Note:

foreach n'accepte pas l'opérateur de suppression des erreurs @.

Vous pouvez remarquer que les exemples suivants fonctionnent de manière identique :

<?php
$arr 
= array("un""deux""trois");
reset($arr);
while (list(, 
$value) = each($arr)) {
    echo 
"Valeur : $value<br />\n";
}

foreach (
$arr as $value) {
    echo 
"Valeur : $value<br />\n";
}
?>
Les exemples suivants sont aussi fonctionnellement identiques :
<?php
$arr 
= array("un""deux""trois");
reset($arr);
while (list(
$key$value) = each($arr)) {
    echo 
"Clé : $key; Valeur : $value<br />\n";
}

foreach (
$arr as $key => $value) {
    echo 
"Clé : $key; Valeur : $value<br />\n";
}
?>

Voici quelques exemples de plus :

<?php
/* exemple foreach 1 : la valeur seulement */

$a = array(12317);

foreach (
$a as $v) {
    echo 
"Valeur courante de \$a: $v.\n";
}

/* exemple foreach 2 : la valeur et sa clé d'index */

$a = array(12317);

$i 0/* uniquement pour l'illustration */

foreach ($a as $v) {
    echo 
"\$a[$i] => $v.\n";
    
$i++;
}

/* exemple foreach 3 : la clé et la valeur */

$a = array(
    
"un" => 1,
    
"deux" => 2,
    
"trois" => 3,
    
"dix-sept" => 17
);

foreach (
$a as $k => $v) {
    echo 
"\$a[$k] => $v.\n";
}

/* exemple foreach 4 : tableaux multidimensionnels */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach (
$a as $v1) {
    foreach (
$v1 as $v2) {
        echo 
"$v2\n";
    }
}

/* exemple foreach 5 : tableaux dynamiques */

foreach (array(12345) as $v) {
    echo 
"$v\n";
}
?>



break

L'instruction break permet de sortir d'une structure for, foreach, while, do-while ou switch.

break accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées doivent être interrompues.

<?php
$arr 
= array('un''deux''trois''quatre''stop''cinq');
while (list(, 
$val) = each($arr)) {
    if (
$val == 'stop') {
        break;    
/* Vous pourriez aussi utiliser 'break 1;' ici. */
    
}
    echo 
"$val<br />\n";
}

/* Utilisation de l'argument optionnel. */

$i 0;
while (++
$i) {
    switch (
$i) {
    case 
5:
        echo 
"At 5<br />\n";
        break 
1;  /* Termine uniquement le switch. */
    
case 10:
        echo 
"At 10; quitting<br />\n";
        break 
2;  /* Termine le switch et la boucle while. */
    
default:
        break;
    }
}
?>



continue

L'instruction continue est utilisée dans une boucle afin d'éluder les instructions de l'itération courante et de continuer l'exécution à la condition de l'évaluation et donc, de commencer la prochaine itération.

Note: Notez qu'en PHP, la structure switch est considérée comme une boucle par continue.

continue accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées ont été ignorées.

Note:

continue 0; et continue 1; sont identiques à continue;.

<?php
while (list($key$value) = each($arr)) {
    if (!(
$key 2)) { // évite les membres impairs
        
continue;
    }
    
do_something_odd($value);
}

$i 0;
while (
$i++ < 5) {
    echo 
"Dehors<br />\n";
    while (
1) {
        echo 
"Milieu<br />\n";
        while (
1) {
            echo 
"Intérieur<br />\n";
            continue 
3;
        }
        echo 
"Ceci n'est jamais atteint.<br />\n";
    }
    echo 
"Ceci non plus.<br />\n";
}
?>

Oublier le point virgule après continue peut porter à confusion. Voici un exemple de ce que vous ne devez pas faire :

<?php
for ($i 0$i 5; ++$i) {
    if (
$i == 2)
        continue
    print 
"$i\n";
}
?>

On peut s'attendre à ce que le résultat soit :

0
1
3
4

mais ce script affichera :

2

car la valeur de retour de l'appel à print() est int(1), et cela se comportera alors comme si on avait fournit l'argument optionnel mentionné plus haut.



switch

L'instruction switch équivaut à une série d'instructions if. En de nombreuses occasions, vous aurez besoin de comparer la même variable (ou expression) avec un grand nombre de valeurs différentes, et d'exécuter différentes parties de code suivant la valeur à laquelle elle est égale. C'est exactement à cela que sert l'instruction switch.

Note: Notez que contrairement à d'autres langages, la structure continue s'applique aux structures switch et se comporte de la même manière que break. Si vous avez un switch dans une boucle, et que vous souhaitez continuer jusqu'à la prochaine itération de la boucle extérieure, vous devez utiliser continue 2.

Note:

Notez que switch/case provoque une perte de comparaison.

Les deux exemples suivants sont deux manières différentes d'écrire la même chose, l'une en utilisant une séries de if, et l'autre en utilisant l'instruction switch :

Exemple #1 Instruction switch

<?php
if ($i == 0) {
    echo 
"i égal 0";
} elseif (
$i == 1) {
    echo 
"i égal 1";
} elseif (
$i == 2) {
    echo 
"i égal 2";
}

switch (
$i) {
    case 
0:
        echo 
"i égal 0";
        break;
    case 
1:
        echo 
"i égal 1";
        break;
    case 
2:
        echo 
"i égal 2";
        break;
}
?>

Exemple #2 Instruction switch utilisant une chaîne de caractères

<?php
switch ($i) {
    case 
"apple":
        echo 
"i est une tarte";
        break;
    case 
"bar":
        echo 
"i est une barre";
        break;
    case 
"cake":
        echo 
"i est un gateau";
        break;
}
?>

Il est important de comprendre que l'instruction switch exécute chacune des clauses dans l'ordre. L'instruction switch est exécutée ligne par ligne. Au début, aucun code n'est exécuté. Seulement lorsqu'un case est vérifié, PHP exécute alors les instructions correspondantes. PHP continue d'exécuter les instructions jusqu'à la fin du bloc d'instructions du switch, ou bien dès qu'il trouve l'instruction break. Si vous ne pouvez pas utiliser l'instruction break à la fin de l'instruction case, PHP continuera à exécuter toutes les instructions qui suivent. Par exemple :

<?php
switch ($i) {
    case 
0:
        echo 
"i égal 0";
    case 
1:
        echo 
"i égal 1";
    case 
2:
        echo 
"i égal 2";
}
?>

Dans cet exemple, si $i est égal à 0, PHP va exécuter quand même toutes les instructions qui suivent! Si $i est égal à 1, PHP exécutera les deux dernières instructions. Et seulement si $i est égal à 2, vous obtiendrez le résultat escompté, c'est-à-dire, l'affichage de "i égal 2". Donc, l'important est de ne pas oublier l'instruction break (même s'il est possible que vous l'omettiez dans certaines circonstances).

Dans une commande switch, une condition n'est évaluée qu'une fois, et le résultat est comparé à chaque case. Dans une structure elseif, les conditions sont évaluées à chaque comparaison. Si votre condition est plus compliquée qu'une simple comparaison, ou bien fait partie d'une boucle, switch sera plus rapide.

La liste de commandes d'un case peut être vide, auquel cas PHP utilisera la liste de commandes du cas suivant.

<?php
switch ($i) {
case 
0:
case 
1:
case 
2:
    echo 
"i est plus petit que 3 mais n'est pas négatif";
    break;
case 
3:
    echo 
"i égal 3";
}
?>

Un cas spécial est default. Ce cas est utilisé lorsque tous les autres cas ont échoué. Par exemple :

<?php
switch ($i) {
    case 
0:
        echo 
"i égal 0";
        break;
    case 
1:
        echo 
"i égal 1";
        break;
    case 
2:
        echo 
"i égal 2";
        break;
    default:
       echo 
"i n'est ni égal à 2, ni à 1, ni à 0.";
}
?>

Une autre chose à mentionner est que la valeur du case peut être toute expression de type scalaire, c'est-à-dire nombre entier, nombre à virgule flottante et chaîne de caractères. Les tableaux sont sans intérêt dans ce contexte-là.

La syntaxe alternative pour cette structure de contrôle est la suivante : (pour plus d'informations, voir syntaxes alternatives).

<?php
switch ($i):
    case 
0:
        echo 
"i égal 0";
        break;
    case 
1:
        echo 
"i égal 1";
        break;
    case 
2:
        echo 
"i égal 2";
        break;
    default:
        echo 
"i n'est ni égal à 2, ni à 1, ni à 0";
endswitch;
?>

Il est possible d'utiliser un point-virgule plutôt que deux points après un case, comme ceci :

<?php
switch($beer)
{
    case 
'leffe';
    case 
'grimbergen';
    case 
'guinness';
        echo 
'Bon choix';
    break;
    default;
        echo 
'Merci de faire un choix...';
    break;
}
?>



declare

L'élément de langage declare sert à ajouter des directives d'exécutions dans un bloc de code. La syntaxe de declare est similaire à la syntaxe des autres fonctions de contrôle :

declare (directive)
    commandes

L'expression directive permet de contrôler l'intervention du bloc declare. Actuellement, seulement deux directives sont reconnues : la directive ticks (voir plus bas pour plus de détails sur les ticks) et la directive d'encodage encoding (Voir plus bas pour plus de détails sur la directive encoding).

Note: La directive encoding a été ajoutée en PHP 5.3.0.

L'expression commandes du bloc de declare sera exécutée. Comment elle sera exécutée, et quels effets cela aura, dépend de la directive utilisée dans le bloc directive.

La structure declare peut aussi être utilisée dans le contexte global. Elle affecte alors tout le code qui la suit (même si le fichier avec declare a été inclus après, ça n'affecte pas le fichier parent).

<?php
// Ces déclarations sont identiques.

// Vous pouvez utiliser ceci
declare(ticks=1) {
    
// script entier ici
}

// ou ceci
declare(ticks=1);
// script entier ici
?>

Ticks

Un tick est un événement qui intervient toutes les N commandes bas niveau tickables, exécutées par l'analyseur dans le bloc de declare. La valeur de N est spécifiée par la syntaxe ticks=N dans le bloc de directive declare.

Toutes les commandes ne sont pas tickables. Typiquement, les expressions de condition et les expressions d'arguments ne sont pas tickables.

Un événement qui intervient à chaque tick est spécifié avec la fonction register_tick_function(). Reportez-vous à l'exemple ci-dessous pour plus de détails. Notez que plus d'un événement peut intervenir par tick.

Exemple #1 Exemple d'utilisation des ticks

<?php

declare(ticks=1);

// A function called on each tick event
function tick_handler()
{
    echo 
"tick_handler() called\n";
}

register_tick_function('tick_handler');

$a 1;

if (
$a 0) {
    
$a += 2;
    print(
$a);
}

?>

Exemple #2 Exemple d'utilisation des ticks

<?php

function tick_handler()
{
  echo 
"tick_handler() called\n";
}

$a 1;
tick_handler();

if (
$a 0) {
    
$a += 2;
    
tick_handler();
    print(
$a);
    
tick_handler();
}
tick_handler();

?>

Voir aussi register_tick_function() et unregister_tick_function().

L'encodage

L'encodage d'un script peut être spécifié par script en utilisant la directive encoding.

Exemple #3 Déclaration d'un encodage pour un script

<?php
declare(encoding='ISO-8859-1');
// le code
?>

Attention

Combinée avec les espaces de nommage, la seule syntaxe valable pour declare est declare(encoding='...');... est la valeur de l'encodage. declare(encoding='...') {} soulèvera une erreur d'interprétation dans le cas des espaces de nommage.

La valeur d'encodage est ignorée en PHP 5.3 à moins que PHP soit compilé avec --enable-zend-multibyte.

Notez que PHP ne vous renseignera sur l'activation ou non de --enable-zend-multibyte qu'au moyen de phpinfo().



return

Si appelée depuis une fonction, la commande return() termine immédiatement la fonction, et retourne l'argument qui lui est passé. return() interrompt aussi l'exécution de commande eval() ou de scripts.

Si appelée depuis l'environnement global, l'exécution du script est interrompue. Si le script courant était include() ou require(), alors le contrôle est rendu au script appelant, et la valeur retournée sera utilisée comme résultat de la fonction include(). Si return() est appelée depuis le script principal, alors l'exécution du script s'arrête. Si le script courant est auto_prepend_file ou auto_append_file dans le fichier php.ini, alors l'exécution du script s'arrête.

Pour plus d'informations, voyez retourner des valeurs.

Note: Notez que puisque return() est une structure de langage, et non une fonction, les parenthèses entourant les arguments ne sont pas nécessaires. Il est classique de les oublier et vous devriez le faire car PHP travaillera moins dans ce cas.

Note: Si aucun paramètre n'est fourni, alors les parenthèses peuvent être omises et NULL sera retourné. L'appel à la fonction return() avec des parenthèses mais sans argument résultera en une alerte d'analyse.

Note: Vous ne devriez jamais utiliser les parenthèses autour de la variable retournée lorsque vous la retournez pas référence, car cela ne fonctionnera pas. Vous ne pouvez retourner que les variables par référence, et non le résultat du traitement. Si vous utilisez return ($a);, alors vous ne retournez pas une variable mais le résultat de l'expression ($a) (qui est, bien sûr, la valeur de $a).



require()

require() est identique à include() mise à part le fait que lorsqu'une erreur survient, il produit également une erreur fatale de type E_COMPILE_ERROR. En d'autres termes, il stoppera le script alors que include() n'émettra qu'une alerte de type E_WARNING, ce qui permet au script de continuer.

Voir la documentation de include() pour en connaître son fonctionnement.



include()

L'instruction de langage include() inclut et exécute le fichier spécifié en argument.

Cette documentation s'applique aussi à l'instruction de langage require().

Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun n'est fourni, l'include_path sera vérifié. Si le fichier n'est pas trouvé dans l' include_path, include() vérifiera dans le dossier du script appelant et dans le dossier de travail courant avant d'échouer. L'instruction include() enverra une erreur de type warning si elle ne peut trouver le fichier; ce comportement est différent de require(), qui enverra une erreur de type fatal.

Si un chemin est défini, absolu ou relatif (commençant par une lettre de lecteur suivie de \ pour Windows, ou / pour Unix/Linux), l'include_path sera ignoré. Par exemple, si un nom de fichier commence par ../, PHP cherchera dans le dossier parent pour y trouver le fichier spécifié.

Pour plus d'informations sur la façon dont PHP gère les fichiers inclus ainsi que le chemin d'inclusion, repportez-vous à la documentation relative à l'include_path.

Lorsqu'un fichier est inclus, le code le composant hérite de la portée des variables de la ligne où l'inclusion apparaît. Toutes les variables disponibles à cette ligne dans le fichier appelant seront disponibles dans le fichier appelé, à partir de ce point. Cependant, toutes les fonctions et classes définies dans le fichier inclus ont une portée globale.

Exemple #1 Exemple avec include()

vars.php
<?php

$color 
'verte';
$fruit 'pomme';

?>

test.php
<?php

echo "Une $couleur $fruit"// Une

include 'vars.php';

echo 
"Une $couleur $fruit"// Une verte pomme

?>

Si l'inclusion intervient à l'intérieur d'une fonction, le code inclus sera alors considéré comme faisant partie de la fonction. Cela modifie donc le contexte de variables accessibles. Une exception à cette règle : les constantes magiques sont analysées par l'analyseur avant que l'inclusion n'intervienne.

Exemple #2 Inclusion de fichiers dans une fonction

<?php

function foo()
{
    global 
$couleur;

    include 
'vars.php';

    echo 
"Une $couleur $fruit";
}

/* vars.php est dans le contexte de foo()     *
 * donc $fruit n'est pas disponible hors de   *
 * cette fonction. $couleur l'est, car c'est  *
 * une variable globale                       */

foo();                      // Une verte pomme
echo "Une $couleur $fruit"// Une verte

?>

Il est important de noter que lorsqu'un fichier est include() ou require(), les erreurs d'analyse apparaîtront en HTML tout au début du fichier, et l'analyse du fichier parent ne sera pas interrompue. Pour cette raison, le code qui est dans le fichier doit être placé entre les balises habituelles de PHP.

Si les Gestionnaires d'URL sont activés dans PHP (ce qui est le cas par défaut), vous pouvez localiser le fichier avec une URL (via HTTP ou bien avec un gestionnaire adapté : voir Liste des protocoles et des gestionnaires supportés pour une liste des protocoles), au lieu d'un simple chemin local. Si le serveur distant interprète le fichier comme du code PHP, des variables peuvent être transmises au serveur distant via l'URL et la méthode GET. Ce n'est pas, à strictement parler, la même chose que d'hériter du contexte de variable. Le fichier inclus est en fait un script exécuté à distance, et son résultat est inclus dans le code courant.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Exemple #3 Utiliser include() via HTTP

<?php

/* Cet exemple suppose que www.example.com est configuré pour traiter
 * les fichiers .php et non pas les fichiers .txt. De plus,
 * 'Work' signifie ici que les variables
 * $foo et $bar sont disponibles dans le fichier inclus
 */

// Ne fonctionne pas : file.txt n'a pas été traité par www.example.com comme du PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Ne fonctionne pas : le script cherche un fichier nommé
// 'file.php?foo=1&bar=2' sur le système local
include 'file.php?foo=1&bar=2';

// Réussi
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo 1;
$bar 2;
include 
'file.txt';  // Ok.
include 'file.php';  // Ok.

?>

Avertissement

Alerte de sécurité

Un fichier distant peut être traité sur le serveur distant (dépendamment de l'extension du fichier et si le serveur distant exécute PHP ou non) mais il doit toujours produire un script PHP valide parce qu'il sera traité sur le serveur local. Si le fichier du serveur distant doit être traité sur place et affiché seulement, readfile() est une fonction beaucoup plus appropriée. Autrement, vous devriez bien faire attention à sécuriser le script distant afin qu'il produise un code valide et désiré.

Voir aussi travailler avec les fichiers distants, fopen() et file() pour des informations relatives.

Gestion du retour : il est possible d'exécuter une commande return() dans un fichier inclus pour en terminer le traitement et retourner au fichier appelant. De plus, il est possible de retourner des valeurs des fichiers inclus. Vous pouvez prendre et traiter la valeur retournée par la fonction, comme toute autre fonction. Ce n'est cependant pas possible lors de l'inclusion de fichier distant à moins que le fichier distant ait des balises valides de début et de fin de script PHP (comme avec les fichiers locaux). Vous pouvez déclarer les variables nécessaires dans ces tags et elles seront introduites à l'endroit où le fichier a été inclus.

Comme include() est une structure de langage particulière, les parenthèses ne sont pas nécessaires autour de l'argument. Faites attention lorsque vous comparez la valeur retournée.

Exemple #4 Comparaison de la valeur de retour d'une inclusion

<?php
// Ne fonctionne pas, évalué comme include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 
'OK';
}

// Fonctionne
if ((include 'vars.php') == 'OK') {
    echo 
'OK';
}
?>

Exemple #5 include() et return()

return.php
<?php

$var 
'PHP';

return 
$var;

?>

noreturn.php
<?php

$var 
'PHP';

?>

testreturns.php
<?php

$foo 
= include 'return.php';

echo 
$foo// affiche 'PHP'

$bar = include 'noreturn.php';

echo 
$bar// affiche 1

?>

$bar a la valeur de 1 car l'inclusion était réussie. Notez la différence entre les deux exemples ci-dessus. Le premier utilise la commande return() dans le fichier inclus, alors que le second ne le fait pas. Si le fichier ne peut être inclus, FALSE est retourné et une erreur de niveau E_WARNING est envoyée.

S'il y a des fonctions définies dans le fichier inclus, elles peuvent être utilisées dans le fichier principal si elles sont avant le return() ou après. Si le fichier est inclus deux fois, PHP enverra une erreur fatale car les fonctions seront déjà déclarées. Il est recommandé d'utiliser include_once() au lieu de vérifier si le fichier a déjà été inclus et donc de retourner conditionnellement l'inclusion du fichier.

Une autre façon d'inclure un fichier PHP dans une variable est de capturer la sortie en utilisant les fonctions de contrôle de sortie avec include(). Par exemple :

Exemple #6 Utilisation de la sortie du buffer pour inclure un fichier PHP dans une chaîne

<?php
$string 
get_include_contents('somefile.php');

function 
get_include_contents($filename) {
    if (
is_file($filename)) {
        
ob_start();
        include 
$filename;
        
$contents ob_get_contents();
        
ob_end_clean();
        return 
$contents;
    }
    return 
false;
}

?>

Pour automatiquement inclure des fichiers dans vos scripts, voyez également les options de configuration auto_prepend_file et auto_append_file du php.ini.

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Voir aussi require(), require_once(), include_once(), get_included_files(), readfile(), virtual(), et include_path.



require_once()

L'instruction require_once() est identique à require() mise à part que PHP vérifie si le fichier a déjà été inclus et si c'est le cas, ne l'inclut pas une deuxième fois.

Voir la documention de include_once() pour plus d'informations concernant le comportement de _once, et ce qui le différencie des instructions sans _once.



include_once()

La commande include_once() inclut et évalue le fichier spécifié durant l'exécution du script. Le comportement est similaire à include(), mais la différence est que si le code a déjà été inclus, il ne le sera pas une seconde fois.

La fonction include_once() est utilisée de préférence lorsque le fichier va être inclus ou évalué plusieurs fois dans un script, ou bien lorsque vous voulez être sûr qu'il ne sera inclus qu'une seule fois, pour éviter des redéfinitions de fonctions ou de classes.

Voyez la fonction include() pour plus de détails sur le fonctionnement de cette fonction.

Note:

En PHP 4, require_once() et include_once() sont insensibles à la casse sous les systèmes comme Windows.

Exemple #1 include_once() est insensible à la casse en PHP 4

<?php
include_once "a.php"// ceci inclut le fichier a.php
include_once "A.php"// ceci inclut encore le fichier a.php! (uniquement en PHP 4)
?>

Ce comportement a changé en PHP 5 : le chemin est normalisé d'abord, donc, le fichier C:\PROGRA~1\A.php est reconnu comme étant identique au fichier C:\Program Files\a.php et le fichier ne sera inclus qu'une seule fois.



goto

L'opérateur goto peut être utilisé pour continuer l'exécution du script à un autre point du programme. La cible est spécifiée par un label, suivi de deux-point, et l'instruction goto est ensuite suivie de ce label. goto n'est pas totalement sans limitations. L'étiquette cible doit être dans le même contexte et fichier, ce qui signifie qu'il n'est pas possible de changer de méthode ou de fonction, ni de se rendre dans une autre fonction. Vous pouvez sortir d'une fonction, et l'utilisation courante est alors de se servir de goto comme un break.

Exemple #1 Exemple avec goto

<?php
goto a;
echo 
'Foo';
 
a:
echo 
'Bar';
?>

L'exemple ci-dessus va afficher :

Bar

Exemple #2 Exemple de boucle avec goto

<?php
for($i=0,$j=50$i<100$i++) {
  while(
$j--) {
    if(
$j==17) goto end
  }  
}
echo 
"i = $i";
end:
echo 
'j hit 17';
?>

L'exemple ci-dessus va afficher :

j hit 17

Exemple #3 Ce goto ne fonctionne pas

<?php
goto loop;
for(
$i=0,$j=50$i<100$i++) {
  while(
$j--) {
    
loop:
  }
}
echo 
"$i = $i";
?>

L'exemple ci-dessus va afficher :

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

Note:

L'opérateur goto est disponible depuis PHP 5.3.

Quelle est la chose la plus bizarre lors de l'utilisation de goto ?
Image gracieuseté de » xkcd




Les fonctions

Sommaire


Les fonctions définies par l'utilisateur

Une fonction peut être définie en utilisant la syntaxe suivante :

Exemple #1 Pseudo code pour illustrer l'usage d'une fonction

<?php
function foo($arg_1$arg_2/* ..., */ $arg_n)
{
    echo 
"Exemple de fonction.\n";
    return 
$retval;
}
?>

Tout code PHP, correct syntaxiquement, peut apparaître dans une fonction et dans des définitions de classe.

Les noms de fonctions suivent les mêmes règles que les autres labels en PHP. Un nom de fonction valide commence par une lettre ou un souligné, suivi par un nombre quelconque de lettres, de nombres ou de soulignés. Ces règles peuvent être représentées par l'expression rationnelle suivante : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.

Les fonctions n'ont pas besoin d'être définies avant d'être utilisées, SAUF lorsqu'une fonction est définie conditionnellement, comme montré dans les deux exemples suivants.

Lorsqu'une fonction est définie de manière conditionnelle, comme dans les exemples ci-dessous, leur définition doit précéder leur utilisation.

Exemple #2 Fonctions conditionnelles

<?php

$makefoo 
true;

/* Impossible d'appeler foo() ici,
   car cette fonction n'existe pas.
   Mais nous pouvons utiliser bar() */

bar();

if (
$makefoo) {
  function 
foo()
  {
    echo 
"Je n'existe pas tant que le programme n'est pas passé ici.\n";
  }
}

/* Maitenant, nous pouvons appeler foo()
   car $makefoo est maintenant vrai */

if ($makefoofoo();

function 
bar()
{
  echo 
"J'existe dès de début du programme.\n";
}

?>

Exemple #3 Fonctions dans une autre fonction

<?php
function foo() 
{
  function 
bar() 
  {
    echo 
"Je n'existe pas tant que foo() n'est pas appelé.\n";
  }
}

/* Impossible d'appeler bar() ici
   car il n'existe pas. */

foo();

/* Maintenant, nous pouvons appeler bar(),
   car l'utilisation de foo() l'a rendue
   accessible. */

bar();

?>

Toutes les fonctions et classes en PHP ont une portée globale - elles peuvent être appelées à l'extérieur d'une fonction si elles ont été définies à l'intérieur et vice-versa.

PHP ne supporte pas le surchargement de fonction, ni la destruction ou la redéfinition de fonctions déjà déclarées.

Note: Les noms de fonctions sont insensibles à la casse, et il est généralement admis que les fonctions doivent être appelées avec le nom utilisé dans leur déclaration, y compris la casse.

Les listes variables d'arguments de fonction et les valeurs par défaut d'arguments sont supportés : voir les fonctions de références que sont func_num_args(), func_get_arg(), et func_get_args() pour plus d'informations.

Il est possible d'appeler des fonctions récursives en PHP. Cependant, les appels de méthodes/fonctions récursives avec 100-200 degrés de récursivité peuvent remplir la pile et ainsi, terminer le script courant.

Exemple #4 Fonctions récursives

<?php
function recursion($a)
{
    if (
$a 20) {
        echo 
"$a\n";
        
recursion($a 1);
    }
}

recursion(3);
?>



Les arguments de fonction

Des informations peuvent être passées à une fonction en utilisant une liste d'arguments, dont chaque expression est séparée par une virgule.

PHP supporte le passage d'arguments par valeur (comportement par défaut), le passage par référence, et des valeurs d'arguments par défaut. Une liste variable d'arguments est également supportée, voir la documentation sur les fonctions func_num_args(), func_get_arg(), et func_get_args() pour plus d'informations.

Exemple #1 Nombre variable d'argument sous forme de tableau

<?php
function takes_array($input)
{
    echo 
"$input[0] + $input[1] = "$input[0]+$input[1];
}

takes_array(array(2,3));
?>

Passage d'arguments par référence

Par défaut, les arguments sont passés à la fonction par valeur (Ainsi changer la valeur d'un argument dans la fonction ne change pas sa valeur à l'extérieur de la fonction). Si vous voulez que vos fonctions puissent changer la valeur des arguments, vous devez passer ces arguments par référence.

Si vous voulez qu'un argument soit toujours passé par référence, vous pouvez ajouter un '&' devant l'argument dans la déclaration de la fonction :

Exemple #2 Passage d'arguments par référence

<?php
function add_some_extra(&$string)
{
    
$string .= ', et un peu plus.';
}
$str 'Ceci est une chaîne';
add_some_extra($str);
echo 
$str;  
?>

Valeur par défaut des arguments

Vous pouvez définir comme en C++ des valeurs par défaut pour les arguments de type scalaire :

Exemple #3 Valeur par défaut des arguments de fonctions

<?php
function servir_cafe ($type "cappuccino")
{
    return 
"Servir un $type.\n";
}
echo 
servir_cafe();
echo 
servir_cafe(null);
echo 
servir_cafe("espresso");
?>

L'exemple ci-dessus va afficher :

Servir un cappuccino.
Servir un.
Servir un espresso.

PHP vous autorise à utiliser des tableau ainsi que le type spécial NULL comme valeur par défaut, par exemple :

Exemple #4 Utilisation de type non scalaire comme valeur par défaut

<?php
function servir_cafe($types = array("cappuccino"), $coffeeMaker NULL)
{
    
$device is_null($coffeeMaker) ? "les mains" $coffeeMaker;
    return 
"Préparation d'une tasse de ".join(", "$types)." avec $device.\n";
}
echo 
servir_cafe();
echo 
servir_cafe(array("cappuccino""lavazza"), "une cafetière");
?>

La valeur par défaut d'un argument doit obligatoirement être une constante, et ne peut être ni une variable, ni un membre de classe, ni un appel de fonction.

Il est à noter que si vous utilisez des arguments avec valeur par défaut avec d'autres sans valeur par défaut, les premiers doivent être placés à la suite de tous les paramètres sans valeur par défaut. Sinon, cela ne fonctionnera pas. Considérons le code suivant :

Exemple #5 Les arguments à valeur par défaut doivent être en premiers : erreur

<?php
function faireunyaourt ($type "acidophilus"$flavour)
{
    return 
"Préparer un bol de $type $flavour.\n";
}
 
echo 
faireunyaourt("framboise");   // ne fonctionne pas comme voulu
?>

L'exemple ci-dessus va afficher :

Warning: Missing argument 2 in call to makeyogurt() in 
/usr/local/etc/httpd/htdocs/phptest/functest.html on line 41
Préparer un bol de framboise .

Maintenant comparons l'exemple précédent avec l'exemple suivant :

Exemple #6 Les arguments à valeur par défaut doivent être en premiers : valide

<?php
function faireunyaourt ($flavour$type "acidophilus")
{
    return 
"Préparer un bol de $type $flavour.\n";
}
 
echo 
faireunyaourt ("framboise");   // fonctionne comme voulu
?>

L'exemple ci-dessus va afficher :

Préparer un bol de acidophilus framboise.

Note: Les valeurs par défaut peuvent être passées par référence.

Nombre d'arguments variable

PHP supporte les fonctions à nombre d'arguments variable. C'est très simple à utiliser, avec les fonctions func_num_args(), func_get_arg() et func_get_args().

Aucune syntaxe particulière n'est nécessaire, et la liste d'argument doit toujours être fournie explicitement avec la définition de la fonction, et se comportera normalement.



Les valeurs de retour

Les valeurs sont renvoyées en utilisant une instruction de retour optionnelle. Tous les types de variables peuvent être renvoyés, tableaux et objets compris. Cela fait que la fonction finit son exécution immédiatement et passe le contrôle à la ligne appelante. Voir return() pour plus d'informations.

Note:

Si return() est omis, la valeur NULL sera retournée.

Exemple #1 Utilisation de return()

<?php
function carre ($num)
{
    return 
$num $num;
}
echo 
carre (4);
?>

Une fonction ne peut pas renvoyer plusieurs valeurs en même temps, mais vous pouvez obtenir le même résultat en renvoyant un tableau.

Exemple #2 Retourner un tableau d'une fonction

<?php
function petit_nombre()
{
    return array (
012);
}
list (
$zero$un$deux) = petit_nombre();
var_dump($zero$un$deux);
?>

Pour retourner une référence d'une fonction, utilisez l'opérateur & aussi bien dans la déclaration de la fonction que dans l'assignation de la valeur de retour.

Exemple #3 Retourner une référence d'une fonction

<?php
function &retourne_reference()
{
    return 
$uneref;
}

$newref =& retourne_reference();
?>

Pour plus d'informations sur les références, référez-vous à l'explication sur les références.



Fonctions variables

PHP supporte le concept de fonctions variables. Cela signifie que si le nom d'une variable est suivi de parenthèses, PHP recherchera une fonction de même nom, et essaiera de l'exécuter. Cela peut servir, entre autres, pour faire des fonctions de rappel, des tables de fonctions...

Les fonctions variables ne peuvent pas fonctionner avec les éléments de langage comme les echo(), print(), unset(), isset(), empty(), include(), require() etc. Vous devez utiliser votre propre gestion de fonctions pour utiliser un de ces éléments de langages comme fonctions variables.

Exemple #1 Exemple de fonction variable

<?php
function foo() {
    echo 
"dans foo()<br />\n";
}

function 
bar($arg '')
{
    echo 
"Dans bar(); l'argument était '$arg'.<br />\n";
}

// Ceci est une fonction détournée de echo
function echoit($string)
{
    echo 
$string;
}

$func 'foo';
$func();        // Appel foo()

$func 'bar';
$func('test');  // Appel bar()

$func 'echoit';
$func('test');  // Appel echoit()
?>

Vous pouvez aussi appeler une méthode d'un objet en utilisant le système des fonctions variables.

Exemple #2 Exemple de méthode variable

<?php
class Foo
{
    function 
Variable()
    {
        
$name 'Bar';
        
$this->$name(); // Appelle la méthode Bar()
    
}
    
    function 
Bar()
    {
        echo 
"C'est Bar";
    }
}

$foo = new Foo();
$funcname "Variable";
$foo->$funcname();  // Appelle $foo->Variable()

?>

Lors de l'appel à des méthodes statiques, l'appel fonction est meilleur que l'opérateur de propriété statique :

Exemple #3 Exemple de méthode variable avec des propriétés statiques

<?php
class Foo
{
    static 
$variable 'static property';
    static function 
Variable()
    {
        echo 
'Method Variable called';
    }
}

echo 
Foo::$variable// Ceci affiche 'static property'. Il est nécessaire d'avoir une $variable dans le contexte.
$variable "Variable";
Foo::$variable();  // Ceci appelle $foo->Variable(), lisant ainsi la $variable depuis le contexte.

?>

Voir aussi call_user_func(), les variables variables et function_exists().



Fonctions internes

PHP dispose de nombreuses fonctions et structures standards. Il y a aussi des fonctions qui requièrent des extensions spécifiques de PHP, sans lesquelles vous obtiendrez l'erreur fatale undefined function. Par exemple, pour utiliser les fonctions d'images, telles que imagecreatetruecolor(), vous aurez besoin du support de GD dans PHP. Ou bien, pour utiliser mysql_connect(), vous aurez besoin de l'extension MySQL. Il y a des fonctions de base qui sont incluses dans toutes les versions de PHP, telles que les fonctions de chaînes de caractères et les fonctions de variables. Utilisez phpinfo() ou get_loaded_extensions() pour savoir quelles sont les extensions qui sont compilées avec votre PHP. Notez aussi que de nombreuses extensions sont activées par défaut, et que le manuel PHP est compartimenté par extension. Voyez les chapitres de configuration, installation ainsi que les détails particuliers à chaque extension, pour savoir comment les mettre en place.

Lire et comprendre le prototype d'une fonction est décrit dans l'annexe Comment lire la définition d'une fonction (prototype). Il est important de comprendre ce qu'une fonction retourne, ou si une fonction travaille directement sur la valeur des paramètres fournis. Par exemple, str_replace() va retourner une chaîne modifiée, tandis que usort() travaille directement sur la variable passée en paramètre. Chaque page du manuel a des informations spécifiques sur chaque fonction, comme le nombre de paramètres, les évolutions de spécifications, les valeurs retournées en cas de succès ou d'échec, et la disponibilité en fonction des versions. Bien connaître ces différences, parfois subtiles, est crucial pour bien programmer en PHP.

Note: Si les paramètres donnés à une fonction ne sont pas corrects, comme le fait de passer un tableau alors qu'une chaîne de caractères est attendue, la valeur retournée de la fonction est indéfinie. Dans ce cas, la fonction retournera la plupart du temps une valeur NULL mais ce n'est juste qu'une convention et ne peut être considéré comme une certitude.

Voir aussi function_exists(), l'index des fonctions, get_extension_funcs() et dl().



Fonctions anonymes

Les fonctions anonymes, aussi appelées fermetures ou closures permettent la création de fonctions sans préciser leur nom. Elles sont particulièrement utiles comme fonctions de rappel, mais leur utilisation n'est pas limitée à ce seul usage.

Exemple #1 Exemples avec des fonctions anonymes

<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return 
strtoupper($match[1]);
}, 
'bonjour-le-monde');
?>

Les fonctions anonymes peuvent aussi être utilisées comme valeurs de variables. PHP va automatiquement convertir ces expressions en objets Closure. Assigner une fermeture à une variable est la même chose qu'un assignement classique, y compris pour le point-virgule final.

Exemple #2 Assignation de fonction anonyme à une variable

<?php
$greet 
= function($name)
{
    
printf("Bonjour %s\r\n"$name);
};

$greet('World');
$greet('PHP');
?>

Les fonctions anonymes peuvent hériter des variables du contexte de leur parent. Ces variables doivent alors être déclarées dans la signature de la fonction. L'héritage du contexte parent n'est pas la même chose que les variables de l'environnement global. Les variables globales existent dans le contexte global, qui est le même, quelle que que soit la fonction qui s'exécute. Le contexte parent d'une fonction anonyme est la fonction dans laquelle la fonction a été déclarée (pas nécessairement celle qui appelle). Voyez l'exemple ci-dessous :

Exemple #3 Fonctions anonymes et contexte

<?php
// Un panier d'achat simple, qui contient une liste de produits
// choisis et la quantité désirée de chaque produit. Il inclut
// une méthode qui calcule le prix total des éléments dans le panier
// en utilisant une fonction de rappel anonyme.
class Panier
{
    const 
PRICE_BEURRE  1.00;
    const 
PRICE_LAIT    3.00;
    const 
PRICE_OEUF    6.95;

    protected 
$products = array();
    
    public function 
add($product$quantity)
    {
        
$this->products[$product] = $quantity;
    }
    
    public function 
getQuantity($product)
    {
        return isset(
$this->products[$product]) ? $this->products[$product] :
               
FALSE;
    }
    
    public function 
getTotal($tax)
    {
        
$total 0.00;
        
        
$callback =
            function (
$quantity$product) use ($tax, &$total)
            {
                
$pricePerItem constant(__CLASS__ "::PRICE_" .
                    
strtoupper($product));
                
$total += ($pricePerItem $quantity) * ($tax 1.0);
            };
        
        
array_walk($this->products$callback);
        return 
round($total2);
    }
}

$mon_panier = new Panier;

// Ajout d'élément au panier
$mon_panier->add('beurre'1);
$mon_panier->add('lait'3);
$mon_panier->add('oeuf'6);

// Affichage du prix avec 5.5% de TVA
print $mon_panier->getTotal(0.055) . "\n";
?>

Les fonctions anonymes sont actuellement implémentées en utilisant la classe Closure. C'est un détail d'implémentation, et il est recommandé de ne pas s'appuyer dessus.

Note: Les fonctions anonymes sont disponibles depuis PHP 5.3.0.

Note: Il est possible d'utiliser les fonctions func_num_args(), func_get_arg() et func_get_args() dans une fonction anonyme.




Les classes et les objets

Sommaire


Introduction

Depuis PHP 5, le modèle objet a été réécrit pour permettre de meilleures performances et offrir plus de fonctionnalités. Cette réécriture a été une des modifications majeures par rapport à PHP 4. PHP 5 a donc un modèle objet complet.

Parmis les fonctionnalités offertes par PHP 5, on peut citer la visibilité dans les classes, les classes abstract et les classes final mais aussi les méthodes magiques, les interfaces, le clônage et le typage (typehinting).

PHP gère les objets de la même façon, qu'ils soient des références ou des gestionnaires, ce qui signifie que chaque variable contient une référence vers l'objet plutôt qu'une copie de l'objet complet. Repportez-vous à la documentation Objets et Références pour plus de détails.

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.



Syntaxe de base

classes

Une définition de classe basique commence par le mot-clé class, suivi par le nom de la classe. Suit une paire d'accolades contenant la définition des propriétés et des méthodes.

Le nom de la classe peut être quelconque à condition que ce ne soit pas un mot réservé en PHP. Un nom de classe valide commence par une lettre ou un underscore, suivi de nombres ou de lettres ou d'underscores. Si on devait l'exprimer sous forme d'expression régulière, il s'agirait de [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

Une classe peut contenir ses propres constantes, variables (appelées "propriétés" ou "attributs"), et fonctions (appelées "méthodes").

Exemple #1 Définition typique d'une classe

<?php
class SimpleClass
{
    
// déclaration des propriétés
    
public $var 'a default value';

    
// déclaration des méthodes
    
public function displayVar() {
        echo 
$this->var;
    }
}
?>

Une pseudo-variable $this est disponible lorsqu'une méthode est appelée depuis un contexte objet. $this est une référence à l'objet appelé (habituellement, l'objet auquel la méthode appartient, mais ce peut être un autre objet si la méthode est appelée de manière statique depuis le contexte d'un autre objet).

Exemple #2 Quelques exemples de la pseudo-variable $this

<?php
class A
{
  function 
toto()
  {
    if (isset(
$this)) {
      echo 
'$this est définie (';
      echo 
get_class($this);
      echo 
")\n";
    } else {
      echo 
"\$this n'est pas définie.\n";
    }
  }
}

class 
B
{
  function 
titi()
  {
    
// Note: la ligne suivante émet une erreur si E_STRICT est activé.
    
A::toto();
  }
}

$a = new A();
$a->toto();

// Note: la ligne suivante émet une erreur si E_STRICT est activé.
A::toto();
$b = new B();
$b->titi();

// Note: la ligne suivante émet une erreur si E_STRICT est activé.
B::titi();
?>

L'exemple ci-dessus va afficher :

$this est définie (A)
$this n'est pas définie.
$this est définie (B)
$this n'est pas définie.

Le mot-clé new

Pour créer une instance d'une classe, le mot-clé new doit être utilisé. Un objet sera alors crée à moins qu'il ait un constructeur défini qui lance une exception en cas d'erreur. Les classes doivent être définies avant l'instanciation (dans certains cas, c'est impératif).

Si une chaine contenant un nom de classe est utilisée avec new, une nouvelle instance de cette classe sera créee. Si elle est dans un espace de noms, son nom pleinement qualifié doit être utilisé.

Exemple #3 Création d'une instance

<?php
$instance 
= new SimpleClass();

// Ceci peut également être réalisé avec une variable :
$className 'Foo';
$instance = new $className(); // Foo()
?>

Dans le contexte de la classe, il est possible de créer un nouvel objet avec new self et new parent.

Lors de l'assignation d'une instance déjà créée d'une classe à une variable, la nouvelle variable accédera à la même instance de l'objet assigné. Ce comportement est le même que lors du passage d'une instance à une fonction. Une copie d'un objet déjà créé peut être effectuée par clonage.

Exemple #4 Assignation d'un objet

<?php

$instance 
= new SimpleClass();

$assigned   =  $instance;
$reference  =& $instance;

$instance->var '$assigned aura cette valeur';

$instance null// $instance et $reference deviennent null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

L'exemple ci-dessus va afficher :

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned aura cette valeur"
}

PHP 5.3.0 a introduit de nouvelles manières de créer des objets:

Exemple #5 Créer de nouveaux objets

<?php
class Test
{
    static public function 
getNew()
    {
        return new static;
    }
}

class 
Child extends Test
{}

$obj1 = new Test();
$obj2 = new $obj1;
var_dump($obj1 !== $obj2);

$obj3 Test::getNew();
var_dump($obj3 instanceof Test);

$obj4 Child::getNew();
var_dump($obj4 instanceof Child);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)

Le mot-clé extends

Une classe peut hériter des méthodes et des membres d'une autre classe en utilisant le mot-clé extends dans la déclaration. Il n'est pas possible d'étendre de multiples classes : une classe peut uniquement hériter d'une seule classe de base.

Les méthodes et membres hérités peuvent être surchargés en les redéclarant avec le même nom que dans la classe parente. Cependant, si la classe parente a défini la méthode comme final, alors celle-ci ne sera pas surchargeable. Il est possible d'accéder à une méthode ou un membre parent avec l'opérateur parent::

Lors de la surcharge de méthodes, la signature devrait rester la même sinon PHP génèrera une erreur de niveau E_STRICT. Ceci ne s'applique pas au constructeur, qui accepte la surcharge avec des paramètres différents.

Exemple #6 Héritage d'une classe simple

<?php
class ExtendClass extends SimpleClass
{
  
// Redéfinition de la méthode parent
  
function displayVar()
  {
    echo 
"Classe étendue\n";
    
parent::displayVar();
  }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

L'exemple ci-dessus va afficher :

Classe étendue
une valeur par défaut


Propriétés

Les variables au sein d'une classe sont appellées "propriétés". On peut également les retrouver sous la dénomination "attributs", "membres" ou "champs", mais nous conservervons l'appellation "propriété" pour cette documentation. Elles sont définies en utilisant un des mot-clé public, protected ou private, suivi d'une déclaration classique de variable. Cette déclaration peut être une initialisation, alors elle doit être initialisée à une valeur constante, c'est à dire que cette valeur doit pouvoir être évaluée durant la compilation et ne pas dépendre de l'exécution du code pour pouvoir être évaluée.

Voir Visibilité pour plus d'informations sur la signification public, protected et private.

Note:

Afin de maintenir la rétrocompatibilité avec PHP 4, PHP 5 continue d'accepter l'usage du mot-clé var pour la déclaration de propriété en remplacement de (ou avec) public, protected et private. Cependant, var n'est plus requis par le modèle objet de PHP 5. Des versions PHP 5.0 à 5.1.3, l'usage de var était considéré comme obsolète et déclenchait un avertissement de niveau E_STRICT, mais depuis PHP 5.1.3 l'usage n'est plus obsolète et ne déclenche plus d'avertissement.

Si vous déclarez une propriété en utilisant var au lieu de public, protected ou private, alors PHP 5 traitera la propriété comme public.

Au sein des méthodes de classes, les propriétés, constantes et méthodes peuvent être appellées en utilisant la forme $this->property (où property est le nom de la propriété), à moins que l'appel se fasse sur une propriété statique dans une méthode de classe statique, auquel cas l'accès se fait en utilisant la forme self::$property. Voir Statique pour plus d'informations.

La pseudo-variable $this est disponible au sein de n'importe quelle méthode lorsque cette méthode est appellée depuis un objet. $this est une référence à l'objet appellant (en général l'objet auquel la méthode appartient, ou un autre objet si la méthode est appellée de façon statique depuis un autre objet).

Exemple #1 Déclarations de propriétés

<?php
class SimpleClass
{
   
// Déclarations invalides de propriété:
   
public $var1 'hello ' 'world';
   public 
$var2 1+2;
   public 
$var3 self::myStaticMethod();
   public 
$var4 $myVar;

   
// Déclarations valides de propriétés;
   
public $var5 myConstant;
   public 
$var6 = array(truefalse);

   
// Autorisé depuis PHP 5.3.0
   
public $var7 = <<<EOD
hello world
EOD;
}
?>

Note:

Il existe des fonctions qui permettent de gérer des classes et des objets. Voir Fonctions Classes/Objets.

Comme la syntaxe heredoc, la syntaxe nowdoc peut être utilisée dans n'importe quel contexte statique, y compris la déclaration de propriété.

Exemple #2 Exemple d'utilisation de la syntaxe nowdoc pour initialiser une propriété

<?php
class foo {
   
// Depuis PHP 5.3.0
   
public $bar = <<<'EOT'
bar
EOT;
}
?>

Note:

Le support de la syntaxe nowdoc à été ajouté à PHP 5.3.0.



Constantes de classe

Il est possible de définir des valeurs constantes à l'intérieur d'une classe, qui ne seront pas modifiables. Les constantes diffèrent des variables normales du fait qu'on n'utilise pas le symbole $ pour les déclarer ou les utiliser.

La valeur doit être une expression constante, pas (par exemple) une variable, une propriété, le résultat d'une opération mathématique ou un appel de fonction.

Il est aussi possible pour les interfaces d'avoir des constantes. Regardez la documentation des interfaces pour quelques exemples.

Depuis PHP 5.3.0, il est possible de référencer une classe en utilisant une variable. La valeur de la variable ne peut être un mot-clé (e.g. self, parent et static).

Exemple #1 Définition et utilisation d'une constante de classe

<?php
class MyClass
{
  const 
constant 'valeur constante';

  function 
showConstant() {
    echo  
self::constant "\n";
  }
}

echo 
MyClass::constant "\n";

$classname "MyClass";
echo 
$classname::constant "\n"// Depuis PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo 
$class::constant."\n"// Depuis PHP 5.3.0
?>

Exemple #2 Exemple de données statiques

<?php
class foo {
    
// Depuis PHP 5.3.0
    
const bar = <<<'EOT'
bar
EOT;
}
?>

Tout comme heredocs, nowdocs peut être utilisée dans n'importe quel contexte de données statiques.

Note:

Le support de Nowdoc a été ajouté en PHP 5.3.0.



Auto-chargement de classes

De nombreux développeurs qui créent des applications orientées objet, créent un fichier source par définition de classe. L'inconvénient majeur de cette méthode est d'avoir à écrire une longue liste d'inclusions de fichier de classes au début de chaque script : une inclusion par classe.

En PHP 5, ce n'est plus nécessaire. Vous pouvez définir la fonction __autoload() qui va automatiquement être appelée si une classe n'est pas encore définie au moment de son utilisation. Grâce à elle, vous avez une dernière chance pour inclure une définition de classe, avant que PHP ne lance une erreur.

Note:

Avant PHP 5.3.0, les exceptions lancées depuis la fonction __autoload ne pouvaient pas être interceptées par un bloc catch et provoquaient une erreur fatale. Depuis PHP 5.3.0+, elles peuvent être interceptées danscatch, à une précision près : Si vous lancez une exception personnalisée, alors la classe de cette exception doit être disponible. La fonction __autoload doit pouvoir être utilisée récursivement pour charger automatiquement la classe de l'exception personnalisée.

Note:

L'auto-chargement n'est pas disponible si vous utilisez PHP en mode interactif CLI.

Note:

Si le nom de la classe est utilisé, e.g. dans la fonction call_user_func(), alors il peut contenir des caractères dangereux comme ../. Il est recommandé de ne pas utiliser d'entrées utilisateur dans de telle fonction, ou, au moins, vérifier l'entrée dans la fonction __autoload().

Exemple #1 Exemple avec __autoload()

Cet exemple tente de charger les classes MaClasse1 et MaClasse2, dans les fichiers MaClasse1.php et MaClasse2.php respectivement.

<?php
function __autoload($class_name) {
    include 
$class_name '.php';
}

$obj  = new MaClasse1();
$obj2 = new MaClasse2();
?>

Exemple #2 Autre exemple d'auto-chargement

Cet exemple tente de charger l'interface ITest.

<?php

function __autoload($name) {
    
var_dump($name);
}

class 
Foo implements ITest {
}

/*
string(5) "ITest"

Fatal error: Interface 'ITest' not found in ...
*/
?>

Exemple #3 Auto-chargement avec gestion des exceptions en PHP 5.3.0+

Cet exemple lance une exception et montre comment la traiter avec les blocs try/catch.

<?php
function __autoload($name) {
    echo 
"Tentative de chargement de $name.\n";
    throw new 
Exception("Impossible de charger $name.");
}

try {
    
$obj = new NonLoadableClass();
} catch (
Exception $e) {
    echo 
$e->getMessage(), "\n";
}
?>

L'exemple ci-dessus va afficher :

Tentative de chargement de NonLoadableClass.
Impossible de charger NonLoadableClass.

Exemple #4 Auto-chargement avec gestion des exceptions en PHP 5.3.0+. Pas d'exception personnalisée

Cet exemple lance une exception pour une classe non-chargeable, en utilisant une exception personnalisée.

<?php
function __autoload($name) {
    echo 
"Tentative de chargement de $name.\n";
    throw new 
MissingException("Impossible de charger $name.");
}

try {
    
$obj = new NonLoadableClass();
} catch (
Exception $e) {
    echo 
$e->getMessage(), "\n";
}
?>

L'exemple ci-dessus va afficher :

Tentative de chargement de NonLoadableClass.
Tentative de chargement de MissingException.

Fatal error: Class 'MissingException' not found in testMissingException.php on line 4



Constructeurs et destructeurs

Constructeurs

void __construct ([ mixed $args [, $... ]] )

PHP permet aux développeurs de déclarer des constructeurs pour les classes. Les classes qui possèdent une méthode constructeur appellent cette méthode à chaque création d'une nouvelle instance de l'objet, ce qui est intéressant pour toutes les initialisations dont l'objet a besoin avant d'être utilisé.

Note: Les constructeurs parents ne sont pas appelés implicitement si la classe enfant définie un constructeur. Si vous voulez utiliser un constructeur parent, il sera nécessaire de faire appel à parent::__construct().

Exemple #1 Exemple d'utilisation des nouveaux constructeurs unifiés

<?php
class BaseClass {
    function 
__construct() {
        print 
"In BaseClass constructor\n";
    }
}

class 
SubClass extends BaseClass {
    function 
__construct() {
        
parent::__construct();
        print 
"In SubClass constructor\n";
    }
}

$obj = new BaseClass();
$obj = new SubClass();
?>

Pour des raisons de compatibilité ascendante, si PHP ne peut pas trouver une fonction __construct() pour une classe donnée, il cherchera une fonction constructeur représentée, comme dans l'ancien style (PHP < 5), par le nom de la classe. Effectivement, cela signifie que le seul cas où il pourrait y avoir un problème de compatibilité est celui où votre classe contiendrait une méthode nommée __construct() et que vous en ayez un autre usage.

A la différence des autres méthodes, PHP ne génèrera pas d'erreur de niveau E_STRICT lorsque __construct() est surchargé avec des paramètres différents du constructeur parent.

Depuis PHP 5.3.3, les méthodes ayant le même nom que la classe dans laquelle elle se trouve ne sont plus traitées comme des constructeur, si la classe considérée se situe dans un espace de noms. Ceci n'affecte pas les classes sans espace de noms.

Exemple #2 Constructeurs dans les classes dans des espaces de noms

<?php
namespace Foo;
class 
Bar {
    public function 
Bar() {
        
// Traitée comme un constructeur dans PHP 5.3.0-5.3.2
        // Traitée comme une méthode normale depuis PHP 5.3.3
    
}
}
?>

Destructeurs

void __destruct ( void )

PHP 5 introduit un concept de destructeur similaire aux autres langages orientés objet, comme le C++. La méthode destructeur est appelée aussitôt que toutes les références à un objet particulier sont effacées ou lorsque l'objet est explicitement détruit ou dans n'importe quel ordre de la séquence d'arrêt.

Exemple #3 Exemple avec un Destructeur

<?php
class MyDestructableClass {
    function 
__construct() {
        print 
"In constructor\n";
        
$this->name "MyDestructableClass";
    }

    function 
__destruct() {
        print 
"Destruction de " $this->name "\n";
    }
}

$obj = new MyDestructableClass();
?>

Tout comme le constructeur, le destructeur parent n'est pas appelé implicitement par le moteur. Pour exécuter le destructeur parent, vous devez appeler explicitement la fonction parent::__destruct dans le corps du destructeur.

Le destructeur sera appelé même si l'exécution du script est stoppé en utilisant la fonction exit(). Appeler la fonction exit() dans un destructeur permettra de ne pas exécuter les autres routines d'arrêt.

Note:

Les destructeurs appelées durant l'arrêt du script ont déjà envoyés les en-têtes HTTP. Le dossier de travail dans la phase du script d'arrêt peut être différent avec d'autres APIs (e.g. Apache).

Note:

Tenter de lancer une exception depuis un destructeur (appelé à la fin du script) émet une erreur fatale.



Visibilité

La visibilité d'une propriété ou d'une méthode peut être définie en préfixant la déclaration avec un mot-clé : public, protected ou private. Les éléments déclarés publics peuvent être utilisés par n'importe quelle partie du programme. L'accès aux éléments protégés est limité aux classes et parents hérités (et à la classe qui a défini l'élément). L'accès aux éléments privés est uniquement réservé à la classe qui les a définis.

Visibilité des propriétés

Les propriétés des classes doivent être définies comme publiques, protégées ou privées. Si la propriété est déclarée avec le mot var sans visibilité explicite, celle-ci sera alors définie publique.

Exemple #1 Déclaration des propriétés

<?php
/**
 * Définition de MyClass
 */
class MyClass
{
    public 
$public 'Public';
    protected 
$protected 'Protected';
    private 
$private 'Private';

    function 
printHello()
    {
        echo 
$this->public;
        echo 
$this->protected;
        echo 
$this->private;
    }
}

$obj = new MyClass();
echo 
$obj->public// Fonctionne
echo $obj->protected// Erreur fatale
echo $obj->private// Erreur fatale
$obj->printHello(); // Affiche Public, Protected et Private


/**
 * Définition de MyClass2
 */
class MyClass2 extends MyClass
{
    
// On peut redéclarer les éléments publics ou protégés, mais pas ceux privés
    
protected $protected 'Protected2';

    function 
printHello()
    {
      echo 
$this->public;
      echo 
$this->protected;
      echo 
$this->private;
   }
}

$obj2 = new MyClass2();
echo 
$obj2->public// Fonctionne
echo $obj2->private// Indéfini
echo $obj2->protected// Erreur fatale
$obj2->printHello(); // Affiche Public, Protected2 et Indéfini

?>

Note: La méthode de déclaration de variable en PHP 4 avec le mot-clé var est toujours supportée pour des raisons de compatibilité (en tant que synonyme du mot-clé public). Avant PHP 5.1.3, son utilisation génère une erreur de niveau E_STRICT.

Visibilité des méthodes

Les méthodes des classes peuvent être définies en tant que publiques, privées ou protégées. Les méthodes sans déclaration seront automatiquement définies comme étant publiques.

Exemple #2 Déclaration d'une méthode

<?php
/**
 * Définition de MyClass
 */
class MyClass
{
    
// Déclare un contructeur public
    
public function __construct() { }

    
// Déclaration d'une méthode publique
    
public function MyPublic() { }

    
// Déclaration d'une méthode protégée
    
protected function MyProtected() { }

    
// Déclaration d'une méthode privée
    
private function MyPrivate() { }

    
// Celle-ci sera publique
    
function Foo()
    {
        
$this->MyPublic();
        
$this->MyProtected();
        
$this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // Fonctionne
$myclass->MyProtected(); // Erreur fatale
$myclass->MyPrivate(); // Erreur fatale
$myclass->Foo(); // Public, Protected et Private fonctionnent


/**
 * Définition de MyClass2
 */
class MyClass2 extends MyClass
{
    
// Celle-ci sera publique
    
function Foo2()
    {
        
$this->MyPublic();
        
$this->MyProtected();
        
$this->MyPrivate(); // Erreur fatale
    
}
}

$myclass2 = new MyClass2;
$myclass2->MyPublic(); // Fonctionne
$myclass2->Foo2(); // Public et Protected fonctionnent, non pas Private

class Bar
{
    public function 
test() {
        
$this->testPrivate();
        
$this->testPublic();
    }

    public function 
testPublic() {
        echo 
"Bar::testPublic\n";
    }

    private function 
testPrivate() {
        echo 
"Bar::testPrivate\n";
    }
}

class 
Foo extends Bar
{
    public function 
testPublic() {
        echo 
"Foo::testPublic\n";
    }

    private function 
testPrivate() {
        echo 
"Foo::testPrivate\n";
    }
}

$myFoo = new foo();
$myFoo->test(); // Bar::testPrivate
                // Foo::testPublic
?>

Visibilité depuis d'autres objets

Les objets de même type ont un accès aux membres privés et protégés même s'ils ne sont pas dans la même instance. Ceci est dû au fait que les détails spécifiques de l'implémentation sont déjà connus en interne par ces objets.

Exemple #3 Accès aux membres privés d'un type d'objet identique

<?php
class Test
{
    private 
$foo;

    public function 
__construct($foo)
    {
        
$this->foo $foo;
    }

    private function 
bar()
    {
        echo 
'Accès à la méthode privée.';
    }

    public function 
baz(Test $other)
    {
        
// Nous pouvons modifier la propriété privée :
        
$other->foo 'Bonjour';
        
var_dump($other->foo);

        
// Nous pouvons également appeler la méthode privée :
        
$other->bar();
    }
}

$test = new Test('test');

$test->baz(new Test('other'));
?>

L'exemple ci-dessus va afficher :

string(5) "Bonjour"
Accès à la méthode privée.


Héritage

L'héritage fait partie des principes de la programmation orientée objet, et PHP l'implémente dans son modèle objet. L'héritage affecte les relations entre les classes et les objets.

Par exemple, lorsque vous étendez une classe, la classe fille hérite de toutes les méthodes publiques et protégées de la classe parente. Tant qu'une classe n'écrase pas ces méthodes, elles conservent leurs fonctionnalités d'origine.

L'héritage est donc très utile pour définir et abstraire certaines fonctionnalités communes à plusieurs classes, plusieurs objets, tout en permettant l'ajout de fonctionnalités propres dans les classes enfants sans réimplémenter en leur sein les fonctionnalités communes.

Note:

A moins que l'autoload ne soit utilisé, les classes doivent être connues avant d'être utilisées. Les classes mères doivent être définies avant l'écriture d'un héritage. Cette règle générale s'applique dans le cas d'héritage ou d'implémentation d'interfaces.

Exemple #1 Exemple d'héritage

<?php

class foo
{
    public function 
printItem($string)
    {
        echo 
'Foo: ' $string PHP_EOL;
    }
    
    public function 
printPHP()
    {
        echo 
'PHP est super' PHP_EOL;
    }
}

class 
bar extends foo
{
    public function 
printItem($string)
    {
        echo 
'Bar: ' $string PHP_EOL;
    }
}

$foo = new foo();
$bar = new bar();
$foo->printItem('baz'); // Affiche: 'Foo: baz'
$foo->printPHP();       // Affiche: 'PHP est super' 
$bar->printItem('baz'); // Affiche: 'Bar: baz'
$bar->printPHP();       // Affiche: 'PHP est super'

?>


L'opérateur de résolution de portée (::)

L'opérateur de résolution de portée (aussi appelé Paamayim Nekudotayim) ou, en termes plus simples, le symbole "double deux-points" (::), fournit un moyen d'accéder aux membres statics ou constants.

Lorsque vous référencez ces éléments en dehors de la définition de la classe, utilisez le nom de la classe.

Depuis PHP 5.3.0, il est possible de référencer une classe en utilisant une variable. La valeur de la variable ne peut être un mot-clé (e.g. self, parent et static).

Paamayim Nekudotayim peut sembler un choix étrange pour un double deux-points. Cependant, au moment de l'écriture du Zend Engine 0.5 (fourni avec PHP 3), c'est le nom choisi par le groupe Zend. En fait, cela signifie un double deux-points... en hébreu !

Exemple #1 :: en dehors de la définition de la classe

<?php
class MyClass {
    const 
CONST_VALUE 'Une valeur constante';
}

$classname 'MyClass';
echo 
$classname::CONST_VALUE// Depuis PHP 5.3.0

echo MyClass::CONST_VALUE;
?>

Deux mots-clé spéciaux, self et parent, sont utilisés pour accéder aux proriétés ou aux méthodes depuis la définition de la classe.

Exemple #2 :: depuis la définition de la classe

<?php
class OtherClass extends MyClass
{
    public static 
$my_static 'variable statique';

    public static function 
doubleColon() {
        echo 
parent::CONST_VALUE "\n";
        echo 
self::$my_static "\n";
    }
}

$classname 'OtherClass';
echo 
$classname::doubleColon(); // Depuis PHP 5.3.0

OtherClass::doubleColon();
?>

Lorsqu'une classe étendue redéfinit une méthode de la classe parente, PHP n'appellera pas la méthode d'origine. Il appartient à la méthode dérivée d'appeler la méthode d'origine en cas de besoin. Cela est également valable pour les définitions des constructeurs et destructeurs, les surcharges et les méthodes magiques.

Exemple #3 Appel d'une méthode parente

<?php
class MyClass
{
    protected function 
myFunc() {
        echo 
"MyClass::myFunc()\n";
  }
}

class 
OtherClass extends MyClass
{
    
// Dépassement de la définition parent
    
public function myFunc() {

      
// Mais appel de la fonction parent
      
parent::myFunc();
      echo 
"OtherClass::myFunc()\n";
  }
}

$class = new OtherClass();
$class->myFunc();
?>


Statique

Le fait de déclarer des proriétés ou des méthodes comme statics vous permet d'y accéder sans avoir besoin d'instancier la classe. On ne peut accéder à une propriété déclarée comme statique avec l'objet instancié d'une classe (bien qu'une méthode statique le puisse).

Si aucune déclaration de visibilité n'est spécifiée, alors la propriété ou la méthode sera automatiquement spécifiée comme public.

Comme les méthodes statiques peuvent être appelées sans objet, la pseudo-variable $this n'est pas disponible dans la méthode déclarée en tant que statique.

On ne peut pas accéder à des propriétés statiques à travers l'objet en utilisant l'opérateur ->.

L'appel non-static à des méthodes statiques génère une alerte de degré E_STRICT.

Comme n'importe quelle autre variable PHP statique, les propriétés statiques ne peuvent être initialisées qu'en utilisant un litéral ou une constante; les expressions ne sont pas permises. Ainsi, vous pouvez initialiser une propriété statique avec un entier ou un tableau, mais ni avec une autre variable, ni avec une valeur de retour, ni avec un objet.

Depuis PHP 5.3.0, il est possible de référencer la classe en utilisant une variable. La valeur de la variable ne peut être un mot-clé (e.g. self, parent et static).

Exemple #1 Exemple avec une propriété statique

<?php
class Foo
{
    public static 
$my_static 'foo';

    public function 
staticValue() {
        return 
self::$my_static;
    }
}

class 
Bar extends Foo
{

    public function 
fooStatic() {
        return 
parent::$my_static;
    }
}


print 
Foo::$my_static "\n";

$foo = new Foo();
print 
$foo->staticValue() . "\n";
print 
$foo->my_static "\n";      // propriété my_static non définie

print $foo::$my_static "\n";
$classname 'Foo';
print 
$classname::$my_static "\n"// Depuis PHP 5.3.0

print Bar::$my_static "\n";
$bar = new Bar();
print 
$bar->fooStatic() . "\n";
?>

Exemple #2 Exemple avec une méthode statique

<?php
class Foo
{
    public static function 
aStaticMethod() {
        
// ...
    
}
}

Foo::aStaticMethod();
$classname 'Foo';
$classname::aStaticMethod(); // Depuis PHP 5.3.0
?>


Abstraction de classes

PHP propose les classes et les méthodes abstraites. Il n'est pas autorisé de créer une instance d'une classe définie comme abstraite. Toutes les classes contenant au moins une méthode abstraite doivent également être abstraites. Pour définir une méthode abstraite, il faut simplement déclarer la signature de la méthode et ne fournir aucune implémentation.

Lors de l'héritage d'une classe abstraite, toutes les méthodes marquées comme abstraites dans la déclaration de la classe parente doivent être définies par l'enfant ; de plus, ces méthodes doivent être définies avec la même visibilité, ou une visibilité moins restreinte. Par exemple, si la méthode abstraite est définie comme protégée, l'implémentation de la fonction doit être définie comme protégée ou publique, mais non privée.

Exemple #1 Exemple de classe abstraite

<?php
abstract class AbstractClass 
{
    
// Force la classe étendue à définir cette méthode
    
abstract protected function getValue();
    abstract protected function 
prefixValue($prefix);

    
// méthode commune
    
public function printOut() {
        print 
$this->getValue() . "\n";
   }
}

class 
ConcreteClass1 extends AbstractClass 
{
     protected function 
getValue() {
       return 
"ConcreteClass1";
     }

     public function 
prefixValue($prefix) {
       return 
"{$prefix}ConcreteClass1";
    }
}

class 
ConcreteClass2 extends AbstractClass 
{
     public function 
getValue() {
       return 
"ConcreteClass2";
     }

     public function 
prefixValue($prefix) {
       return 
"{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo 
$class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo 
$class2->prefixValue('FOO_') ."\n";
?>

L'exemple ci-dessus va afficher :

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

L'ancien code qui n'a pas de classes définies par l'utilisateur ou de fonctions nommées 'abstract' peut continuer de fonctionner dans modification.



Interfaces

Les interfaces objet permettent de créer du code qui spécifie quelles méthodes une classe doit implémenter.

Les interfaces sont définies en utilisant le mot-clé interface, de la même façon qu'une classe standard mais sans aucun contenu de méthode.

Toutes les méthodes déclarées dans une interface doivent être publiques.

implements

Pour implémenter une interface, l'opérateur implements est utilisé. Toutes les méthodes de l'interface doivent être implémentées dans une classe ; si ce n'est pas le cas, une erreur fatale sera émise. Les classes peuvent implémenter plus d'une interface en séparant chaque interface par une virgule.

Note:

Une classe ne peut implémenter deux interfaces qui partagent des noms de fonctions, puisque cela causerait une ambiguïté.

Note:

Les interfaces peuvent être étendues comme des classes en utilisant l'opérateur extends.

Note:

La classe implémentant l'interface doit utiliser la même signature de méthode que celle définie dans l'interface. Si vous ne le faîtes pas, une erreur fatale sera émise.

Les constantes

Les interfaces peuvent contenir des constantes. Les constantes d'interfaces fonctionnent exactement comme les constantes de classe à l'exception qu'elles ne peuvent pas être écrasées par des classes ou des interfaces qui en héritent.

Exemples

Exemple #1 Exemple d'interface

<?php

// Declaration de l'interface 'iTemplate'
interface iTemplate
{
    public function 
setVariable($name$var);
    public function 
getHtml($template);
}

// Implémentation de l'interface
// Ceci va fonctionner
class Template implements iTemplate
{
    private 
$vars = array();

    public function 
setVariable($name$var)
    {
        
$this->vars[$name] = $var;
    }

    public function 
getHtml($template)
    {
        foreach(
$this->vars as $name => $value) {
            
$template str_replace('{' $name '}'$value$template);
        }

        return 
$template;
    }
}

// Ceci ne fonctionnera pas
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private 
$vars = array();

    public function 
setVariable($name$var)
    {
        
$this->vars[$name] = $var;
    }
}
?>

Exemple #2 Les interfaces extensibles

<?php
interface a
{
    public function 
foo();
}

interface 
extends a
{
    public function 
baz(Baz $baz);
}

// Ceci fonctionnera
class implements b
{
    public function 
foo()
    {
    }

    public function 
baz(Baz $baz)
    {
    }
}

// Ceci ne fonctionnera pas et soulèvera une erreur fatale
class implements b
{
    public function 
foo()
    {
    }

    public function 
baz(Foo $foo)
    {
    }
}
?>

Exemple #3 L'héritage de plusieurs interfaces

<?php
interface a
{
    public function 
foo();
}

interface 
b
{
    public function 
bar();
}

interface 
extends ab
{
    public function 
baz();
}

class 
implements c
{
    public function 
foo()
    {
    }

    public function 
bar()
    {
    }

    public function 
baz()
    {
    }
}
?>

Exemple #4 Les interfaces avec des constantes

<?php
interface a
{
    const 
'Constante de l\'interface';
}

// Affiche: Constante de l'interface
echo a::b;


// Ceci ne fonctionnera pas de toutes façons vu qu'il n'est pas autorisé
// d'écraser des constantes.
class implements a
{
    const 
'Constante de classe';
}
?>

Une interface, avec le typage, fournit une bonne façon de vous assurer qu'un objet particulier contient des méthodes particulières. Repportez-vous à l'opérateur instanceof et au typage.



Surcharge magique

La surcharge magique en PHP permet de créer dynamiquement des propriétés et des méthodes. Ces entités dynamiques sont traitées via mes méthodes magiques établies dans une classe pour divers types d'actions.

Les méthodes magiques de surcharge sont appelées lors de l'interaction avec les propriétés et les méthodes qui n'ont pas été déclarées ou ne sont pas visibles dans le contexte courant. Le reste de cette section utilise les termes de "propriétés inaccessibles" et de "méthodes inaccessibles" pour se référer à cette combinaison de déclaration et de visibilité.

Toutes les méthodes magiques de surcharge doivent être définies comme public.

Note:

Aucun des arguments de ces méthodes magiques ne peut être passé par référence.

Note:

L'interprétation PHP de la "surcharge" est différente de la plupart des langages orientés objet. La surcharge, habituellement, fournit la possibilité d'avoir plusieurs méthodes portant le même nom mais avec une quantité et des types différents d'arguments.

Historique

Version Description
5.3.0 Ajout de __callStatic(). Ajout d'un avertissement pour forcer la visibilité public et la déclaration non static.
5.1.0 Ajout de __isset() et de __unset().

Surcharge des propriétés

void __set ( string $name , mixed $value )
mixed __get ( string $name )
bool __isset ( string $name )
void __unset ( string $name )

__set() est sollicitée lors de l'écriture de données vers des propriétés inaccessibles.

__get() est sollicitée pour lire des données depuis des propriétés inaccessibles.

__isset() est sollicitée lorsque isset() ou la fonction empty() sont appelées avec des propriétés inaccessibles.

__unset()() est sollicitée lorsque unset() est appelée avec des propriétés inaccessibles.

L'argument $name est le nom du propriété qui interagit. L'argument $value de la méthode __set() spécifie la valeur de la propriété $name qui doit être définie.

La surcharge des propriétés ne fonctionne que dans les contextes objets. Ces méthodes magiques ne seront pas lancées dans un contexte statique. Par conséquent, ces méthodes ne devraient pas être déclarées comme statiques. Depuis PHP 5.3.0, une alerte est levée si une des méthodes magiques est déclarée statique.

Note:

La valeur retournée par __set() est ignorée en raison de la façon dont le processus PHP assigne les opérateurs. De la même façon, __get() n'est jamais appelée lors d'un enchaînement d'assignements, comme ceci :

 $a = $obj->b = 8; 

Note:

Il n'est pas possible d'utiliser les attributs surchargés dans d'autres structures de langages que isset(). Ceci signifie que si empty() est appelée avec un attribut surchargé, la méthode de surcharge n'est pas invoquée.

Pour contourner cette limitation, l'attribut surchargé doit être copié dans une variable locale du contexte courant puis passée à empty().

Exemple #1 Exemple de surcharge de propriétés avec les méthodes __get(), __set(), __isset() et __unset()

<?php
class PropertyTest {
    
/**  Variable pour les données surchargées.  */
    
private $data = array();

    
/**  La surcharge n'est pas utilisée sur les propriétés déclarées.  */
    
public $declared 1;

    
/**  La surcharge n'est lancée que lorsque l'on accède à la classe depuis l'extérieur.  */
    
private $hidden 2;

    public function 
__set($name$value) {
        echo 
"Définition de '$name' à la valeur '$value'\n";
        
$this->data[$name] = $value;
    }

    public function 
__get($name) {
        echo 
"Récupération de '$name'\n";
        if (
array_key_exists($name$this->data)) {
            return 
$this->data[$name];
        }

        
$trace debug_backtrace();
        
trigger_error(
            
'Propriété non-définie via __get(): ' $name .
            
' dans ' $trace[0]['file'] .
            
' à la ligne ' $trace[0]['line'],
            
E_USER_NOTICE);
        return 
null;
    }

    
/**  Depuis PHP 5.1.0  */
    
public function __isset($name) {
        echo 
"Est-ce que '$name' est défini ?\n";
        return isset(
$this->data[$name]);
    }

    
/**  Depuis PHP 5.1.0  */
    
public function __unset($name) {
        echo 
"Effacement de '$name'\n";
        unset(
$this->data[$name]);
    }

    
/**  Ce n'est pas une méthode magique, nécessaire ici que pour l'exemple.  */
    
public function getHidden() {
        return 
$this->hidden;
    }
}


echo 
"<pre>\n";

$obj = new PropertyTest;

$obj->1;
echo 
$obj->"\n\n";

var_dump(isset($obj->a));
unset(
$obj->a);
var_dump(isset($obj->a));
echo 
"\n";

echo 
$obj->declared "\n\n";

echo 
"Manipulons maintenant la propriété privée nommée 'hidden':\n";
echo 
"'hidden' est visible depuis la classe, donc __get() n'est pas utilisée...\n";
echo 
$obj->getHidden() . "\n";
echo 
"'hidden' n'est pas visible en dehors de la classe, donc __get() est utlisée...\n";
echo 
$obj->hidden "\n";
?>

L'exemple ci-dessus va afficher :

Définition de 'a' à '1'
Récupération de 'a'
1

Est-ce que 'a' est défini ?
bool(true)
Effacement de 'a'
Est-ce que 'a' est défini ?
bool(false)

1

Manipulons maintenant la propriété privée nommée 'hidden':
'hidden' est visible depuis la classe, donc __get() n'est pas utilisée...
2
'hidden' n'est pas visible en dehors de la classe, donc __get() est utlisée...
Récupération de 'hidden'


Notice:  Propriété non-définie via __get(): hidden dans <file> à la ligne 64 dans <file> à la ligne 28

Surcharge de méthodes

mixed __call ( string $name , array $arguments )
mixed __callStatic ( string $name , array $arguments )

__call() est lancée lorsque l'on invoque des méthodes inaccessibles dans le contexte de l'objet.

__callStatic() est lancée lorsque l'on invoque des méthodes inaccessibles dans un contexte statique.

L'argument $name est le nom de la méthode appelée. L'argument $arguments est un tableau contenant les paramètres passés à la méthode $name.

Exemple #2 Surcharge de méthodes avec __call() et __callStatic()

<?php
class MethodTest {
    public function 
__call($name$arguments) {
        
// Note : la valeur de $name est sensible à la casse.
        
echo "Appel de la méthode '$name' "
             
implode(', '$arguments). "\n";
    }

    
/**  Depuis PHP 5.3.0  */
    
public static function __callStatic($name$arguments) {
        
// Note : la valeur de $name est sensible à la casse.
        
echo "Appel de la méthode statique '$name' "
             
implode(', '$arguments). "\n";
    }
}

$obj = new MethodTest;
$obj->runTest('dans un contexte objet');

MethodTest::runTest('dans un contexte static');  // Depuis PHP 5.3.0
?>

L'exemple ci-dessus va afficher :

Appel de la méthode 'runTest' dans un contexte objet
Appel de la méthode statique 'runTest' dans un contexte static


Parcours d'objets

PHP fournit une façon de définir les objets de manière à ce qu'on puisse parcourir une liste de membres avec une structure foreach. Par défaut, toutes les propriétés visibles seront utilisées pour le parcours.

Exemple #1 Parcours d'objet simple

<?php
class MyClass 
{
  public 
$var1 'valeur 1';
  public 
$var2 'valeur 2';
  public 
$var3 'valeur 3';

  protected 
$protected 'variable protégée';
  private   
$private   'variable privée';

  function 
iterateVisible() {
     echo 
"MyClass::iterateVisible:\n";
     foreach(
$this as $key => $value) {
         print 
"$key => $value\n";
     }
  }
}

$class = new MyClass();

foreach(
$class as $key => $value) {
    print 
"$key => $value\n";
}
echo 
"\n";


$class->iterateVisible();

L'exemple ci-dessus va afficher :

var1 => valeur 1
var2 => valeur 2
var3 => valeur 3

MyClass::iterateVisible:
var1 => valeur 1
var2 => valeur 2
var3 => valeur 3
protected => variable protégée
private => variable privée

Comme nous le montre l'affichage, l'itération foreach affiche toutes les variables visibles disponibles. Pour aller plus loin, vous pouvez implémenter l'interface interne de PHP nommée Iterator. Ceci permet de déterminer comment l'objet doit être parcouru.

Exemple #2 Itération d'un objet implémentant un itérateur

<?php
class MyIterator implements Iterator
{
    private 
$var = array();

    public function 
__construct($array)
    {
        if (
is_array($array)) {
            
$this->var $array;
        }
    }

    public function 
rewind()
    {
        echo 
"rembobinage\n";
        
reset($this->var);
    }

    public function 
current()
    {
        
$var current($this->var);
        echo 
"actuel : $var\n";
        return 
$var;
    }

    public function 
key()
    {
        
$var key($this->var);
        echo 
"clé : $var\n";
        return 
$var;
    }

    public function 
next()
    {
        
$var next($this->var);
        echo 
"suivant : $var\n";
        return 
$var;
    }

    public function 
valid()
    {
        
$key key($this->var);
        
$var = ($key !== NULL && $key !== FALSE);
        echo 
"valide : $var\n";
        return 
$var;
    }

}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach (
$it as $a => $b) {
    print 
"$a$b\n";
}
?>

L'exemple ci-dessus va afficher :

rembobinage
valide : 1
actuel : 1
clé : 0
0: 1
suivant : 2
valide : 1
actuel : 2
clé : 1
1: 2
suivant : 3
valide : 1
actuel : 3
clé : 2
2: 3
suivant :
valide :

Vous pouvez également définir votre classe de façon à ce qu'elle n'ait pas besoin de définir toutes les fonctions Iterator en implémentant simplement l'interface PHP IteratorAggregate.

Exemple #3 Itération d'un objet implémentant IteratorAggregate

<?php
class MyCollection implements IteratorAggregate 
{
  private 
$items = array();
  private 
$count 0;

  
// Définition requise de l'interface IteratorAggregate
  
public function getIterator() {
    return new 
MyIterator($this->items);
  }

  public function 
add($value) {
    
$this->items[$this->count++] = $value;
  }
}

$coll = new MyCollection();
$coll->add('valeur 1');
$coll->add('valeur 2');
$coll->add('valeur 3');

foreach (
$coll as $key => $val) {
    echo 
"clé/valeur : [$key -> $val]\n\n";
}
?>

L'exemple ci-dessus va afficher :

rembobinage
actuel : valeur 1
valide : 1
actuel : valeur 1
clé : 0
clé/valeur : [0 -> valeur 1]

suivant : valeur 2
actuel : valeur 2
valide : 1
actuel : valeur 2
clé : 1
clé/valeur : [1 -> valeur 2]

suivant : valeur 3
actuel : valeur 3
valide : 1
actuel : valeur 3
clé : 2
clé/valeur : [2 -> valeur 3]

suivant :
actuel :
valide :

Note:

Pour plus d'exemples sur le parcours d'objets, lisez la section sur l'extension SPL.



Patterns

Les patterns sont un moyen de décrire les meilleures pratiques et les bonnes conceptions. Ils proposent une solution flexible aux problèmes habituels de programmation.

Usine

Le pattern d'usine (factory) permet l'instanciation d'objets durant l'exécution. Il est appelé "pattern d'usine" puisqu'il est responsable de la "fabrication" d'un objet. Une méthode d'usine reçoit le nom de la classe pour l'instancier en tant qu'argument.

Exemple #1 Méthode de paramètre d'usine

<?php
class Exemple
{
    
// La méthode d'usine
    
public static function factory($type)
    {
        if (include_once 
'Drivers/' $type '.php') {
            
$classname 'Driver_' $type;
            return new 
$classname;
        } else {
            throw new 
Exception('Driver non trouvé');
        }
    }
}
?>

Définir cette méthode dans une classe permet de charger un pilote à la volée. Si la classe Example était une classe d'abstraction de base de données, le chargement des pilotes MySQL et SQLite pourrait être effectué comme ceci :

<?php
// Chargement du driver MySQL
$mysql Exemple::factory('MySQL');

// Chargement du driver SQLite
$sqlite Example::factory('SQLite');
?>

Singleton

Le pattern singleton est utilisé dans les situations où l'on a besoin qu'il y ait une unique instance d'une certaine classe. L'exemple le plus commun est une connexion à une base de données. L'implémentation de ce pattern permet au développeur de rendre cette unique instance facilement accessible par beaucoup d'autres objets.

Exemple #2 Pattern Singleton

<?php
class Example
{
    
// instance de la classe
    
private static $instance;

    
// Un constructeur privé ; empêche la création directe d'objet
    
private function __construct() 
    {
        echo 
'Je suis construit';
    }

    
// La méthode singleton
    
public static function singleton() 
    {
        if (!isset(
self::$instance)) {
            
self::$instance = new self;
        }

        return 
self::$instance;
    }

    
// Exemple d'une méthode
    
public function bark()
    {
        echo 
'Woof!';
    }

    
// Prévient les utilisateurs sur le clônage de l'instance
    
public function __clone()
    {
        
trigger_error('Le clônage n\'est pas autorisé.'E_USER_ERROR);
    }
}

?>

Ceci autorise une unique instance de la classe Example.

<?php
// Ceci échoue car le constructeur est privé
$test = new Example;

// Ceci récupère toujours une seule instance de la classe
$test Example::singleton();
$test->bark();

// Ceci provoque une erreur E_USER_ERROR.
$test_clone = clone $test;

?>


Méthodes magiques

Les méthodes __construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state et __clone sont magiques en PHP. Vous ne pouvez pas utiliser ces noms de méthode dans vos classes, sauf si vous voulez implémenter le comportement associé à ces méthodes magiques.

Attention

PHP réserve tous les noms de fonctions commençant par un double souligné __ pour les méthodes magiques. Il est recommandé de ne pas utiliser de noms de fonctions commençant par __ sauf si vous voulez des fonctionnalités magiques documentées.

__sleep et __wakeup

La fonction serialize() vérifie si votre classe a une méthode avec le nom magique __sleep. Si c'est le cas, cette méthode sera exécutée avant toute linéarisation. Elle peut nettoyer l'objet et elle est supposée retourner un tableau avec les noms de toutes les variables de l'objet qui doivent être linéarisées. Si la méthode ne retourne rien, alors NULL est linéarisé et une alerte de type E_NOTICE est émise.

Note:

Il n'est pas possible pour __sleep de retourner les noms des propriétés privées des classes parentes. Le faire résulte en une erreur de niveau E_NOTICE. À la place, vous devriez utiliser l'interface Serializable.

Le but avoué de __sleep est de valider des données en attente ou d'effectuer les opérations de nettoyage. De plus, cette fonction est utile si vous avez de très gros objets qui n'ont pas besoin d'être sauvegardés en totalité.

Réciproquement, la fonction unserialize() vérifie la présence d'une méthode dont le nom est le nom magique __wakeup. Si elle est présente, cette fonction peut reconstruire toute ressource que l'objet possède.

Le but avoué de __wakeup est de rétablir toute connexion de base de données qui aurait été perdue durant la linéarisation et d'effectuer des tâches de réinitialisation.

Exemple #1 Utilisation de sleep() et wakeup()

<?php
class Connection
{
    protected 
$link;
    private 
$server$username$password$db;

    public function 
__construct($server$username$password$db)
    {
        
$this->server $server;
        
$this->username $username;
        
$this->password $password;
        
$this->db $db;
        
$this->connect();
    }

    private function 
connect()
    {
        
$this->link mysql_connect($this->server$this->username$this->password);
        
mysql_select_db($this->db$this->link);
    }

    public function 
__sleep()
    {
        return array(
'server''username''password''db');
    }

    public function 
__wakeup()
    {
        
$this->connect();
    }
}
?>

__toString

La méthode __toString détermine comment l'objet doit réagir lorsqu'il est traité comme une chaîne de caractères. Par exemple, ce que echo $obj; affichera. Cette méthode doit retourner une chaine sinon une erreur E_RECOVERABLE_ERROR sera levée.

Exemple #2 Exemple simple

<?php
// Déclaration d'une classe simple
class ClasseTest
{
    public 
$foo;

    public function 
__construct($foo)
    {
        
$this->foo $foo;
    }

    public function 
__toString()
    {
        return 
$this->foo;
    }
}

$class = new ClasseTest('Bonjour');
echo 
$class;
?>

L'exemple ci-dessus va afficher :

Bonjour

Il est important de noter qu'avant PHP 5.2.0, la méthode __toString n'était appelée que si elle était directement combinée avec echo() ou print(). Depuis PHP 5.2.0, elle est appelée dans tous les contextes de chaîne de caractères (e.g. dans printf() avec le modificateur %s) mais pas dans les autres types de contextes (e.g. avec le modificateur %d). Depuis PHP 5.2.0, convertir un objet sans la méthode __toString en chaîne de caractères émettra une E_RECOVERABLE_ERROR.

__invoke

La méthode __invoke est appelée lorsque le script tente d'appeler un objet comme une fonction.

Note:

Cette fonctionnalité est disponible depuis PHP 5.3.0.

Exemple #3 Exemple avec __invoke

<?php
class CallableClass
{
    public function 
__invoke($x)
    {
        
var_dump($x);
    }
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>

L'exemple ci-dessus va afficher :

int(5)
bool(true)

__set_state

Cette méthode statique est appelée pour les classes exportées par la fonction var_export() depuis PHP 5.1.0.

Le seul paramètre de cette méthode est un tableau contenant les propriétés exportées sous la forme array('propriété' => valeur, ...).

Exemple #4 Utilisation de __set_state (depuis PHP 5.1.0)

<?php

class A
{
    public 
$var1;
    public 
$var2;

    public static function 
__set_state($an_array// Depuis PHP 5.1.0
    
{
        
$obj = new A;
        
$obj->var1 $an_array['var1'];
        
$obj->var2 $an_array['var2'];
        return 
$obj;
    }
}

$a = new A;
$a->var1 5;
$a->var2 'foo';

eval(
'$b = ' var_export($atrue) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);

?>

L'exemple ci-dessus va afficher :

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}


Mot-clé "final"

PHP dispose du mot-clé "final", qui empêche les classes filles de surcharger une méthode, lorsque la définition de cette dernière est préfixée par le mot-clé "final". Si la classe elle-même est définie comme finale, elle ne pourra plus être étendue.

Exemple #1 Exemple de méthode finale

<?php
class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() appelé\n";
   }
   
   final public function 
moreTesting() {
       echo 
"BaseClass::moreTesting() appelé\n";
   }
}

class 
ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() appelé\n";
   }
}
// Résultat : Fatal error: Cannot override final method BaseClass::moreTesting()
?>

Exemple #2 Exemple de classe finale

<?php
final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() appelé\n";
   }

   
// Ici, peut importe si vous spécifiez la fonction en finale ou pas
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() appelé\n";
   }
}

class 
ChildClass extends BaseClass {
}
// Résultat : Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>

Note: Les propriétés ne peuvent être déclarées finales, seules les méthodes ou les classes peuvent l'être.



Clônage d'objets

Le fait de créer une copie d'un objet possédant exactement les mêmes propriétés n'est pas toujours le comportement que l'on souhaite. Un bon exemple pour illustrer le besoin d'un constructeur de copie : si vous avez un objet qui représente une fenêtre GTK et que l'objet contient la ressource représentant cette fenêtre GTK, lorsque vous créez une copie vous pouvez vouloir créer une nouvelle fenêtre avec les mêmes propriétés mais que le nouvel objet contienne une ressource représentant la nouvelle fenêtre.

Une copie d'objet est créée en utilisant le mot-clé clone (qui fait appel à la méthode __clone() de l'objet, si elle a été définie). La méthode __clone() d'un objet ne peut être appelée directement.

<?php

$copie_d_objet = clone $objet;

?>

Lorsqu'un objet est cloné, PHP effectue une copie superficielle de toutes les propriétés de l'objet. Toutes les propriétés qui sont des références à d'autres variables demeureront des références.

Une fois le clonage effectué, si une méthode __clone() est définie, la méthode __clone() du nouvel objet sera appelée pour permettre à chaque propriété qui doit l'être d'être modifiée.

Exemple #1 Exemple de duplication d'objets

<?php
class SubObject 
{
  static 
$instances 0;
  public 
$instance;

  public function 
__construct() {
    
$this->instance = ++self::$instances;
  }

  public function 
__clone() {
    
$this->instance = ++self::$instances;
  }
}

class 
MyCloneable 
{
  public 
$objet1;
  public 
$objet2;

  function 
__clone() 
  {    
    
// Force la copie de this->object, sinon
    // il pointera vers le même objet.
    
$this->object1 = clone $this->object1;
  }
}

$obj = new MyCloneable();

$obj->object1 = new SubObject();
$obj->object2 = new SubObject();

$obj2 = clone $obj;


print(
"Objet original :\n");
print_r($obj);

print(
"Objet cloné :\n");
print_r($obj2);

?>

L'exemple ci-dessus va afficher :

Object original :
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 1
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)
Object cloné :
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 3
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)


Comparaison d'objets

En PHP, la comparaison d'objets est proche du comportement des langages orientés objet (bien que PHP n'en soit pas un).

Lors de l'utilisation de l'opérateur de comparaison ==, les objets sont comparés de manière simple, à savoir : deux objets sont égaux s'ils ont les mêmes attributs et valeurs, et qu'ils sont des instances de la même classe.

D'un autre coté, lors de l'utilisation de l'opérateur d'identité (===), les objets sont identiques uniquement s'ils font référence à la même instance de la même classe.

Un exemple va illustrer ces règles.

Exemple #1 Exemple de comparaison d'objets en PHP

<?php
function bool2str($bool)
{
    if (
$bool === false) {
            return 
'FALSE';
    } else {
            return 
'TRUE';
    }
}

function 
compareObjects(&$o1, &$o2)
{
    echo 
'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 
'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 
'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 
'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class 
Flag
{
    public 
$flag;

    function 
Flag($flag true) {
            
$this->flag $flag;
    }
}

class 
OtherFlag
{
    public 
$flag;

    function 
OtherFlag($flag true) {
            
$this->flag $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q $o;
$r = new OtherFlag();

echo 
"Deux instances de la même classe\n";
compareObjects($o$p);

echo 
"\nDeux références sur le même objet\n";
compareObjects($o$q);

echo 
"\nInstances de classes différentes\n";
compareObjects($o$r);
?>

L'exemple ci-dessus va afficher :

Deux instances de la même classe
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Deux références sur le même objet
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Instances de classes différentes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Note:

Les extensions peuvent définir leurs propres règles pour leurs comparaisons d'objet.



Typage objet

PHP 5 introduit le typage objet implicite (littéralement, Type Hinting). Les fonctions peuvent maintenant imposer aux paramètres d'être des objets (en spécifiant le nom de la classe dans le prototype de la fonction) ou des tableaux (depuis PHP 5.1). Cependant, si NULL est utilisé en tant que valeur par défaut du paramètre, il sera autorisé comme argument pour tous les futurs appels.

Exemple #1 Exemples de typage d'objets

<?php
// Un exemple de classe
class MaClasse
{
    
/**
     * Fonction de test
     *
     * Le premier paramètre doit être un objet de type AutreClasse
     */
    
public function test(AutreClasse $autreclasse) {
        echo 
$autreclasse->var;
    }


    
/**
    * Une autre fonction de test
    *
    * Le premier paramètre doit être un tableau
    */
    
public function test_array(array $input_array) {
        
print_r($input_array);
    }
}

// Un autre exemple de classe
class AutreClasse {
    public 
$var 'Bonjour le monde!';
}
?>

Si le paramètre ne satisfait pas les conditions imposées, une erreur fatale (qui peut être attrapée) est émise.

<?php
// Une instance de chaque classe
$maclasse = new MaClasse;
$autreclasse = new AutreClasse;

// Erreur fatale : Argument 1 doit être un objet de la classe AutreClasse
$maclasse->test('salut');

// Erreur fatale : Argument 1 doit être une instance de AutreClasse
$foo = new stdClass;
$maclasse->test($foo);

// Erreur fatale : Argument 1 ne doit pas être null
$maclasse->test(null);

// Fonctionne : Affiche 'Bonjour le monde!'
$maclasse->test($autreclasse);

// Erreur fatale : Argument 1 doit être un tableau
$myclass->test_array('a string');

// Fonctionne : Affiche le tableau
$myclass->test_array(array('a''b''c'));
?>

Le typage fonctionne aussi avec les fonctions :

<?php
// Un exemple de classe
class MaClasse {
    public 
$var 'Bonjour le monde!';
}

/**
 * Fonction de test
 *
 * Le premier paramètre doit être un objet de type MaClasse
 */
function MaFonction(MaClasse $foo) {
    echo 
$foo->var;
}

// Fonctionne
$maclasse = new MaClasse;
MaFonction($maclasse);
?>

Le typage objet autorise les valeurs NULL :

<?php

/* On accepte la valeur NULL */
function test(stdClass $obj NULL) {

}

test(NULL);
test(new stdClass);

?>

Le typage de paramètre ne fonctionne qu'avec les variables de type object et array. Le typage avec les types traditionnels, tels que int et string, n'est pas supporté.



Late Static Bindings (Résolution statique à la volée)

Depuis PHP 5.3.0, PHP implémente une fonctionnalité appelée late static binding, en français la résolution statique à la volée, qui est utilisée pour choisir la classe appelée dans le cadre de l'héritage de méthodes statiques.

Plus précisément, les résolutions statiques à la volée fonctionnent en enregistrant le nom de le classe dans le dernier "appel non transmis". Dans le cas des appels de méthodes statiques, il s'agit de la classe explicitement nommée à gauche de l'opérateur ::; dans le cas de méthodes non statiques, il s'agit de la classe de l'objet. Un "appel transmis" est déclenché par self::, parent::, static::, ou, tout en haut de la hierarchie des classes, forward_static_call(). La fonction get_called_class() peut être utilisée pour récupérer une chaine contenant le nom de la classe appelée et static:: introduit son espace.

Cette fonctionnalité a été baptisée "late static bindings", d'un point de vue interne. "Late binding", littéralement compilation tardive, vient du fait que les éléments static:: ne seront pas résolus en utilisant la classe où la méthode a été définie, mais celle qui est active durant l'exécution. L'adjectif statique a été ajouté car ce problème s'applique aux méthodes statiques, mais pas seulement.

Limitations de self::

Les références à la classe courante, avec self:: ou __CLASS__ sont résolues en utilisant la classe à qui appartiennent les fonctions, où elles ont été définies :

Exemple #1 Utilisation de self::

<?php
class {
    public static function 
qui() {
        echo 
__CLASS__;
    }
    public static function 
test() {
        
self::qui();
    }
}

class 
extends {
    public static function 
qui() {
         echo 
__CLASS__;
    }
}

B::test();
?>

L'exemple ci-dessus va afficher :

A

Utilisation de la résolution statique à la volée

La résolution statique à la volée essaie de dépasser cette limitation en introduisant un mot clé qui fait référence à la classe qui est appelée durant l'exécution. Simplement, ce mot-clé vous permet de faire référence à B depuis test(), dans l'exemple précédent. Il a été décidé de ne pas introduire de nouveau mot clé, mais plutôt d'utiliser le mot static qui était déjà réservé.

Exemple #2 Utilisation simple de static::

<?php
class {
    public static function 
qui() {
        echo 
__CLASS__;
    }
    public static function 
test() {
        static::
qui(); // Ici, résolution à la volée
    
}
}

class 
extends {
    public static function 
qui() {
         echo 
__CLASS__;
    }
}

B::test();
?>

L'exemple ci-dessus va afficher :

B

Note:

Dans les contextes non statiques, la classe appelée sera celle de l'objet. Comme $this-> essayera d'appeler des méthodes privées depuis le même contexte, utiliser static:: pourrait donner des résultats différents. Notez aussi que static:: ne peut faire référence qu'à des attributs/méthodes statiques.

Exemple #3 Utilisation de static:: dans un contexte non statique

<?php
class {
    private function 
foo() {
        echo 
"success!\n";
    }
    public function 
test() {
        
$this->foo();
        static::
foo();
    }
}

class 
extends {
   
/* foo() sera copiée dans B, par conséquent son contexte sera toujours A
    * et l'appel se fera sans problème */
}

class 
extends {
    private function 
foo() {
        
/* La méthode originale est remplacée; le contexte est celui de C */
    
}
}

$b = new B();
$b->test();
$c = new C();
$c->test();   //échoue
?>

L'exemple ci-dessus va afficher :

success!
success!
success!


Fatal error:  Call to private method C::foo() from context 'A' in /tmp/test.php on line 9

Note:

La résolution des statiques à la volée va s'arrêter à un appel statique complètement résolu. D'un autre coté, les appels statiques en utilisant un mot-clé comme parent:: ou self:: va transmettre l'information appelante.

Exemple #4 Appel avec ou sans transmission

<?php
class {
    public static function 
foo() {
        static::
qui();
    }

    public static function 
qui() {
        echo 
__CLASS__."\n";
    }
}

class 
extends {
    public static function 
test() {
        
A::foo();
        
parent::foo();
        
self::foo();
    }

    public static function 
qui() {
        echo 
__CLASS__."\n";
    }
}
class 
extends {
    public static function 
qui() {
        echo 
__CLASS__."\n";
    }
}

C::test();
?>

L'exemple ci-dessus va afficher :

A
C
C



Objets et références

Un des piliers de la POO de PHP 5 est le fait que les "objets sont passés par référence par défaut". Ce n'est pas complètement vrai. Cette section rectifie cette généralisation avec quelques exemples.

Une référence PHP est un alias, qui permet à deux variables différentes de représenter la même valeur. Depuis PHP 5, une variable contenant un objet ne contient plus l'objet lui-même. Il contient un identifiant d'objet, ce qui permet aux accesseurs d'objets de trouver cet objet. Lorsque l'objet est utilisé comme argument, retourné par une fonction ou assigné à une autre variable, les différentes variables ne sont pas des alias : elles contiennent le même identifiant, qui pointe sur la même valeur.

Exemple #1 Références et Objets

<?php
class {
    public 
$foo 1;
}  

$a = new A;
$b $a;     // $a et $b sont des copies du même identifiant
             // ($a) = ($b) = <id>
$b->foo 2;
echo 
$a->foo."\n";


$c = new A;
$d = &$c;    // $c et $d sont des références
             // ($c,$d) = <id>

$d->foo 2;
echo 
$c->foo."\n";


$e = new A;

function 
foo($obj) {
    
// ($obj) = ($e) = <id>
    
$obj->foo 2;
}

foo($e);
echo 
$e->foo."\n";

?>

L'exemple ci-dessus va afficher :

2
2
2


Sérialisation d'objets

Sérialiser des objets - des objets en session

serialize() retourne une chaîne de caractères contenant une représentation linéaire de n'importe valeur qui peut être stockée en PHP. unserialize() utilise cette chaîne de caractère pour recréer l'original de la variable à partir de sa représentation linéaire. Utiliser serialize() pour sauvegarder un objet conservera toutes ses variables. Ses méthodes ne seront pas conservées, seulement le nom de la classe.

Afin de pouvoir désérialiser (unserialize()) un objet, la classe de l'objet doit être définie pour permettre sa reconstruction. En d'autres termes, si vous avez un objet de la classe A et le sérialisez, la représentation linéaire obtenue dépendra de la classe A et contiendra toutes ses variables. Si vous voulez désérialiser la représentation linéaire dans un endroit où la classe A n'est pas définie (dans un autre fichier par exemple), alors vous devrez redéclarer la classe A avant de procéder à la désérialisation de la représentation linéaire. Cela peut-être fait, par exemple, en incluant le fichier de définition de la classe ou en utilisant la fonction spl_autoload_register().

<?php
// class_a.inc.php:
  
  
class {
      public 
$one 1;
    
      public function 
show_one() {
          echo 
$this->one;
      }
  }
  
// page1.php:

  
include("class_a.inc.php");
  
  
$a = new A;
  
$s serialize($a);
  
// enregistre $s quelque part ou page2.php peut le retrouver
  
file_put_contents('store'$s);

// page2.php:
  
  // nous avons besoin de la définition de la classe
  // pour qu'unserialize() fonctionne
  
include("class_a.inc.php");

  
$s file_get_contents('store');
  
$a unserialize($s);

  
// appel de show_one() sur l'objet $a, affiche 1
  
$a->show_one();
?>

Si une application utilise le système de sessions et enregistre des objets, ces objets sont sérialisés automatiquement à la fin de chaque page PHP, et sont désérialisés automatiquement à chaque page suivante. Cela signifie qu'une fois mis en session, chaque objet peut apparaître dans n'importe quelle page de l'application ou la session est démarrée. Notez cependant que, concernant la fonction session_register() : Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

Si une application sérialise des objets, il est fortement recommandé, pour son usage futur, que l'application inclut les définitions de classe des objets sérialisés à chaque page. Ne pas faire ainsi aboutirait à un objet désérialisé sans sa définition de classe. PHP donnerait alors à cet objet une classe de type __PHP_Incomplete_Class_Name, qui n'a pas de méthode et produirait un objet inutile.

Dans l'exemple ci-dessus, si $a est enregistré dans la session en exécutant session_register("a"), vous devriez inclure le fichier class_a.inc.php dans toutes vos pages, et non seulement dans page1.php et page2.php



Modifications en POO (Programmation orientée objets)

Les changements du modèle objets de PHP5 sont recensés ici. Plus d'informations et quelques notes peuvent être trouvées dans la documentation sur la POO en PHP5.

Version Description
5.3.3 Changement: Les méthodes ayant le même nom que la classe dans un namespace ne sont plus considérées comme constructeur. Ce changement n'affecte pas les classes sans namespace.
5.3.0 Changement: Les interfaces définissant des méthodes ayant un prototype avec des arguments obligatoires peuvent être implémentées dans les classes avec un argument facultatif sans erreur.
5.3.0 Changement: Il est maintenant possible de référencer une classe en utilisant une variable (ex: echo $classname::constant;). La valeur de la variable ne peut être un mot-clé (ex: self, parent ou static).
5.3.0 Changement: Une erreur de niveau E_WARNING est levée si les méthodes magiques de surcharge sont déclarées static. La visibilité publique est aussi requise.
5.3.0 Changement: Avant 5.3.0, les exceptions lancées dans la fonction __autoload ne pouvaient être traitées dans un bloc catch et résultaient en une erreur fatale. Maintenant les exceptions levées dans la fonction __autoload peuvent être attrapées dans un bloc catch et traitées. Si une exception personnalisée est levée, alors sa classe doit être disponible. La fonction __autoload peut par contre être utilisée recursivement pour autocharger la classe d'exception personnalisée.
5.3.0 Ajout de la méthode magique __callStatic.
5.3.0 Ajout: heredoc et nowdoc sont supportées pour définir les constantes de classes et les attributs. Note: Les valeurs heredoc ne doivent pas contenir de variables.
5.3.0 Ajout du Late Static Bindings (résolution statique tardive).
5.3.0 Ajout de la méthode magique __invoke.
5.2.0 Changement: La méthode magique __toString n'était appelée que lors des appels à echo() ou print(). Maintenant, elle l'est dans n'importe quel contexte de chaine (ex: dans printf() avec %s) mais pas dans les autres contextes (ex: avec le modificateur %d). Depuis PHP 5.2.0, convertir un objet en chaine sans méthode __toString émet une erreur E_RECOVERABLE_ERROR.
5.1.3 Changement: Dans les versions antérieures de PHP, l'utilisation de var était considérée comme obsolète et envoyait une erreur E_STRICT. Ce n'est plus le cas.
5.1.0 Changement: La méthode magique statique __set_state est maintenant appelée pour les classes exportées via var_export().
5.1.0 Ajout des méthodes magiques __isset et __unset.




Les espaces de noms

Sommaire


Introduction aux espaces de noms

Que sont les espaces de noms ? Dans leur définition la plus large, ils représentent un moyen d'encapsuler des éléments. Cela peut être conçu comme un concept abstrait, à différents endroits. Par exemple, dans un système de fichiers, les dossiers représentent un groupe de fichiers associés, et sert d'espace de noms pour les fichiers qu'il contient. Un exemple concret est que le fichier foo.txt peut exister dans les deux dossiers /home/greg et /home/other, mais que les deux copies de foo.txt ne peuvent pas co-exister dans le même dossier. De plus, pour accéder au fichier foo.txt depuis l'extérieur du dossier /home/greg, il faut préciser le nom du dossier en utilisant un séparateur de dossier, tel que /home/greg/foo.txt. Le même principe applique les espaces de noms au monde de la programmation.

Dans le monde PHP, les espaces de noms sont conçus pour résoudre deux problèmes que les auteurs de bibliothèques et applications rencontrent lors de la réutilisation d'éléments tels que des classes ou des bibliothèques de fonctions :

  1. Collisions de noms entre le code que vous créez, les classes, fonctions ou constantes internes de PHP, ou celle de bibliothèques tierces.
  2. La capacité de faire des alias ou de raccourcir des Noms_Extremement_Long pour aider à la résolution du premier problème, et améliorer la lisibilité du code.

Les espaces de noms PHP fournissent un moyen pour regrouper des classes, fonctions ou constantes. Voici un exemple de syntaxe des espaces de noms PHP :

Exemple #1 Exemple de syntaxe des espaces de noms

<?php
namespace mon\nom// Voyez la section "Définition des espaces de noms"

class MaClasse {}
function 
mafonction() {}
const 
MACONSTANTE 1;

$a = new MaClasse;
$c = new \mon\nom\MaClasse// Voyez la section "Espace global"

$a strlen('bonjour'); // Voyez "Utilisation des espaces de noms : retour
       // à l'espace global

$d = namespace\MACONSTANTE// Voyez "L'opérateur namespace et la constante __NAMESPACE__

$d __NAMESPACE__ '\MACONSTANTE';
echo 
constant($d); // Voyez "Espaces de noms et fonctionnalités dynamiques"
?>

Les espaces de noms sont disponibles en PHP depuis PHP 5.3.0.



Définition des espaces de noms

Bien que du code PHP valide puisse être contenu dans un espace de noms, seuls trois types de code peuvent être affectés par les espaces de noms : les classes, les fonctions et les constantes.

Les espaces de noms sont déclarés avec le mot-clé namespace. Un fichier contenant un espace de noms doit déclarer l'espace au début du fichier, avant tout autre code, avec une seule exception : le mot clé declare.

Exemple #1 Déclaration d'un espace de noms

<?php
namespace MonProjet;

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }

?>
Le seul élément autorisé avant la déclaration d'espace de noms est la commande declare, pour définir l'encodage du fichier source. De plus, aucun code non-PHP ne peut précéder la déclaration d'espace de noms, y compris des espaces :

Exemple #2 Erreur de déclaration d'un espace de noms

<html>
<?php
namespace MonProjet// erreur fatale : l'espace de noms doit être le premier élément du script
?>

De plus, contrairement à d'autres structures PHP, le même espace de noms peut être défini dans plusieurs fichiers, ce qui permet de scinder le contenu d'un espace de noms sur plusieurs fichiers.



Déclaration d'un sous espace de noms

Comme pour les fichiers et les dossiers, les espaces de noms sont aussi capables de spécifier une hiérarchie d'espaces de noms. Ainsi, un nom d'espace de noms peut être défini avec ses sous-niveaux :

Exemple #1 Déclaration d'un espace de noms avec hiérarchie

<?php
namespace MonProjet\Sous\Niveau;

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }

?>
Dans l'exemple ci-dessus, la constante MonProjet\Sous\Niveau\CONNEXION_OK, la classe MonProjet\Sous\Niveau\Connexion et la fonction MonProjet\Sous\Niveau\connecte sont créées.



Définition de plusieurs espaces de noms dans le même fichier

Plusieurs espaces de noms peuvent aussi être déclarés dans le même fichier. Il y a deux syntaxes autorisées.

Exemple #1 Déclaration de plusieurs espaces de noms, syntaxe à combinaison simple

<?php
namespace MonProjet;

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }

namespace 
AutreProjet;

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
?>

Cette syntaxe n'est pas recommandée pour combiner des espaces de noms dans un seul fichier. Au lieu de cela, il est recommandé d'utiliser la syntaxe à accolades.

Exemple #2 Déclaration de plusieurs espaces de noms, syntaxe à accolades

<?php
namespace MonProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}

namespace 
AutreProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}
?>

Il est fortement recommandé, en tant que pratique de codage, de ne pas mélanger plusieurs espaces de noms dans le même fichier. L'utilisation recommandée est de combiner plusieurs scripts PHP dans le même fichier.

Pour combiner plusieurs codes sans espaces de noms dans du code avec espace de noms, seule la syntaxe à accolades est supportée. Le code global doit être encadré par un espace de noms sans nom, tel que celui-ci :

Exemple #3 Déclaration de plusieurs espaces de noms avec un espace sans nom

<?php
namespace MonProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}

namespace { 
// code global
session_start();
$a MonProjet\connecte();
echo 
MonProjet\Connexion::start();
}
?>

Aucun code PHP ne peut exister hors des accolades de l'espace de noms, sauf pour ouvrir une nouvelle instruction declare.

Exemple #4 Déclaration de plusieurs espaces de noms avec un espace sans nom (2)

<?php
declare(encoding='UTF-8');
namespace 
MonProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}

namespace { 
// code global
session_start();
$a MonProjet\connecte();
echo 
MonProjet\Connexion::start();
}
?>



Utilisation des espaces de noms : introduction

Avant de discuter de l'utilisation des espaces de noms, il est important de comprendre comment PHP devine quel espace de noms votre code utilise. Une analogie simple peut être faite entre les espaces de noms de PHP et un système de fichiers. Il y a trois moyens d'accéder à un fichier dans un système de fichiers :

  1. Un nom relatif de fichier, tel que foo.txt. Cela est résolu en dossiercourant/foo.txt où dossiercourant est le dossier de travail. Si le dossier courant est /home/foo, ce nom se résout en /home/foo/foo.txt.
  2. Un chemin relatif, tel que sous-dossier/foo.txt. Cela se résout en dossiercourant/sous-dossier/foo.txt.
  3. Un chemin absolu, tel que /main/foo.txt. Cela se résout en /main/foo.txt.
Le même principe peut être appliqué aux espaces de noms de PHP. Par exemple, on peut faire référence à une classe de trois manières :
  1. Un nom sans qualificatif, ou une classe sans préfixe, telle que $a = new foo(); ou foo::methodestatique();. Si l'espace de noms courant est espacedenomscourant, ceci se résout en espacedenomscourant\foo. Si l'espace de noms est global, soit encore l'espace de noms sans nom, cela devient foo. Une mise en garde : les noms sans qualificatif pour les fonctions et les constantes vont être pris dans l'espace de noms global, si la fonction n'est pas définie dans l'espace de noms courant. Voyez Utilisation des espaces de noms : retour à l'espace de noms global pour les fonctions et les constantes pour plus de détails.
  2. Un nom qualifié, ou une classe préfixée telle que $a = new sousespacedenoms\foo(); ou sousespacedenoms\foo::methodestatique();. Si l'espace de noms courant est espacedenomscourant, cela devient espacedenomscourant\sousespacedenoms\foo. Si le code est global, c'est à dire l'espace de noms sans nom, cela devient sousespacedenoms\foo.
  3. Un nom absolu, ou un nom préfixé avec un opérateur global tel que $a = new \espacedenomscourant\foo(); ou \espacedenomscourant\foo::methodestatique();. Cela fait toujours référence au nom littéral spécifié dans le code : espacedenomscourant\foo.

Voici un exemple des trois syntaxes, dans du code réel :

file1.php

<?php
namespace Foo\Bar\sousespacedenoms;

const 
FOO 1;
function 
foo() {}
class 
foo
{
    static function 
methodestatique() {}
}
?>

file2.php

<?php
namespace Foo\Bar;
include 
'file1.php';

const 
FOO 2;
function 
foo() {}
class 
foo
{
    static function 
methodestatique() {}
}

/* nom non qualifié */
foo(); // Devient Foo\Bar\foo
foo::methodestatique(); // Devient Foo\Bar\foo, méthode methodestatique
echo FOO// Devient la constante Foo\Bar\FOO

/* nom qualifié */
sousespacedenoms\foo(); // Devient la fonction Foo\Bar\sousespacedenoms\foo
sousespacedenoms\foo::methodestatique(); // devient la classe Foo\Bar\sousespacedenoms\foo,
                                  // méthode methodestatique
echo sousespacedenoms\FOO// Devient la constante Foo\Bar\sousespacedenoms\FOO
                                  
/* nom absolu */
\Foo\Bar\foo(); // Devient la fonction Foo\Bar\foo
\Foo\Bar\foo::methodestatique(); // Devient la classe Foo\Bar\foo, méthode methodestatique
echo \Foo\Bar\FOO// Devient la constante Foo\Bar\FOO
?>

Notez que pour accéder à n'importe quelle classe, fonction ou constante globale, un nom absolu peut être utilisé, tel que \strlen() ou \Exception ou \INI_ALL.

Exemple #1 Accès aux classes, fonctions et constantes globales depuis un espace de noms

<?php
namespace Foo;

function 
strlen() {}
const 
INI_ALL 3;
class 
Exception {}

$a = \strlen('hi'); // appel la fonction globale strlen
$b = \INI_ALL// accès à une constante INI_ALL
$c = new \Exception('error'); // instantie la classe globale Exception
?>



Espaces de noms et langage dynamique

L'implémentation des espaces de noms de PHP est influencée par sa nature dynamique de langage de programmation. Par conséquent, pour convertir du code tel que le code de l'exemple suivant, en un espace de noms :

Exemple #1 Accès dynamique aux éléments

example1.php:

<?php
class classname
{
    function 
__construct()
    {
        echo 
__METHOD__,"\n";
    }
}
function 
funcname()
{
    echo 
__FUNCTION__,"\n";
}
const 
constname "global";

$a 'classname';
$obj = new $a// affiche classname::__construct
$b 'funcname';
$b(); // affiche funcname
echo constant('constname'), "\n"// affiche global
?>
Il faut utiliser un nom absolu (le nom de la classe, avec son préfixe d'espace de noms). Notez qu'il n'y a pas de différence entre un nom absolu et un nom qualifié dans un nom de classe, de fonction ou de constante dynamique, ce qui fait que l'anti-slash initial n'est pas nécessaire.

Exemple #2 Accès dynamique à des espaces de noms

<?php
namespace nomdelespacedenoms;
class 
classname
{
    function 
__construct()
    {
        echo 
__METHOD__,"\n";
    }
}
function 
funcname()
{
    echo 
__FUNCTION__,"\n";
}
const 
constname "namespaced";

include 
'example1.php';

$a 'classname';
$obj = new $a// affiche classname::__construct
$b 'funcname';
$b(); // affiche funcname
echo constant('constname'), "\n"// affiche global

/* Note que si vous utilisez des guillemets doubles, "\\nomdelespacedenoms\\classname" doit être utilisé */
$a '\nomdelespacedenoms\classname';
$obj = new $a// affiche nomdelespacedenoms\classname::__construct
$a 'nomdelespacedenoms\classname';
$obj = new $a// affiche aussi nomdelespacedenoms\classname::__construct
$b 'nomdelespacedenoms\funcname';
$b(); // affiche nomdelespacedenoms\funcname
$b '\nomdelespacedenoms\funcname';
$b(); // affiche aussi nomdelespacedenoms\funcname
echo constant('\nomdelespacedenoms\constname'), "\n"// affiche namespaced
echo constant('nomdelespacedenoms\constname'), "\n"// affiche aussi namespaced
?>

Il est recommandé de lire la note au sujet de la protection des espaces de noms dans les chaînes.



La commande namespace et la constante __NAMESPACE__

PHP supporte deux moyens pour accéder de manière abstraite aux éléments dans l'espace de nom courant, à savoir la constante magique __NAMESPACE__ et la commande namespace.

La valeur de __NAMESPACE__ est une chaîne qui contient le nom de l'espace de noms courant. Dans l'espace global, sans nom, elle contient une chaîne vide.

Exemple #1 Exemple avec __NAMESPACE__, dans un code avec espace de noms

<?php
namespace MonProjet;

echo 
'"'__NAMESPACE__'"'// affiche "MonProjet"
?>

Exemple #2 Exemple avec __NAMESPACE__, dans un code avec espace de noms global

<?php

echo '"'__NAMESPACE__'"'// affiche ""
?>
La constante __NAMESPACE__ est utile pour construire dynamiquement des noms, tels que :

Exemple #3 Utilisation de __NAMESPACE__ pour une construction dynamique de noms

<?php
namespace MonProjet;

function 
get($classname)
{
    
$a __NAMESPACE__ '\\' $classname;
    return new 
$a;
}
?>

La commande namespace peut aussi être utilisée pour demander explicitement un élément de l'espace de noms courant, ou d'un sous-espace. C'est l'équivalent pour les espaces de noms de l'opérateur self des classes.

Exemple #4 l'opérateur namespace, dans un espace de noms

<?php
namespace MonProjet;

use 
blah\blah as mine// Voyez "Utilisation des espaces de noms : importation et alias"

blah\mine(); // appelle la fonction MonProjet\blah\mine()
namespace\blah\mine(); // appelle la fonction MonProjet\blah\mine()

namespace\func(); // appelle la fonction MonProjet\func()
namespace\sub\func(); // appelle la fonction MonProjet\sub\func()
namespace\cname::method(); // appelle la méthode statique "method" de la classe MonProjet\cname
$a = new namespace\sub\cname(); // instantie un objet de la classe MonProjet\sub\cname
$b = namespace\CONSTANT// assigne la valeur de la constante MonProjet\CONSTANT à $b
?>

Exemple #5 l'opérateur namespace, dans l'espace de noms global

<?php

namespace\func(); // appelle la fonction func()
namespace\sub\func(); // appelle la fonction sub\func()
namespace\cname::method(); // appelle la méthode statique "method" de la classe cname
$a = new namespace\sub\cname(); // instantie un objet de la classe sub\cname
$b = namespace\CONSTANT// assigne la valeur de la constante CONSTANT à $b
?>



Utilisation des espaces de noms : importation et alias

La capacité de faire référence à un nom absolu avec un alias ou en important un espace de noms est stratégique. C'est un avantage similaire aux liens symboliques dans un système de fichiers.

Les espaces de noms PHP supportent trois types d'alias ou d'importation : l'alias de nom de classe, l'alias de nom d'interface, et l'alias d'espace de noms. Notez que l'importation de constantes ou fonctions n'est pas supportée.

En PHP, l'alias est créé avec l'opérateur use. Voici un exemple qui présente les trois types d'importation :

Exemple #1 importation et alias avec l'opérateur use

<?php
namespace foo;
use 
My\Full\Classname as Another;

// Ceci est la même chose que use My\Full\NSname as NSname
use My\Full\NSname;

// importation d'une classe globale
use ArrayObject;

$obj = new namespace\Another// instantie un objet de la classe foo\Another
$obj = new Another// instantie un objet de la classe My\Full\Classname
NSname\subns\func(); // appelle la fonction My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // instantie un objet de la classe ArrayObject
// Sans l'instruction "use ArrayObject" nous aurions instantié un objet de la classe foo\ArrayObject
?>
Notez que pour les noms avec chemin (les noms absolus contenant des séparateurs d'espaces, tels que Foo\Bar, par comparaison avec les noms globaux, tels que FooBar, qui n'en contiennent pas), l'anti-slash initial n'est pas nécessaire et n'est pas recommandé, car les noms importés doivent être absolus et ne sont pas résolus relativement à l'espace de noms courant.

De plus, PHP supporte des raccourcis pratiques, tels que les commandes use multiples.

Exemple #2 importation et alias multiples avec l'opérateur use

<?php
use My\Full\Classname as AnotherMy\Full\NSname;

$obj = new Another// instantie un objet de la classe My\Full\Classname
NSname\subns\func(); // appelle la fonction My\Full\NSname\subns\func
?>

L'importation est réalisée à la compilation, ce qui fait que cela n'affecte pas les classes, fonctions et constantes dynamiques.

Exemple #3 Importation et noms d'espaces dynamiques

<?php
use My\Full\Classname as AnotherMy\Full\NSname;

$obj = new Another// instantie un objet de la classe My\Full\Classname
$a 'Another';
$obj = new $a;      // instantie un objet de la classe Another
?>

De plus, l'importation n'affecte que les noms sans qualification. Les noms absolus restent absolus, et inchangés par un import.

Exemple #4 Importation et noms d'espaces absolus

<?php
use My\Full\Classname as AnotherMy\Full\NSname;

$obj = new Another// instantie un objet de la classe My\Full\Classname
$obj = new \Another// instantie un objet de la classe Another
$obj = new Another\untruc// instantie un objet de la classe My\Full\Classname\untruc
$obj = new \Another\untruc// instantie un objet de la classe Another\untruc
?>

Règles de contextes pour l'importation

Le mot-clé use doit être déclaré dans le contexte le plus externe d'un fichier (le contexte global) ou alors dans les déclarations d'espace de noms. Ceci car l'importation est effectuée à la compilation et non durant l'éxecution, donc on ne peut empiler les contextes. L'exemple qui suit montre des utilisation incorrectes du mot-clé use:

Exemple #5 Règles d'importation incorrectes

<?php
namespace Languages;

class 
Greenlandic
{
    use 
Languages\Danish;
    ...
}
?>

Note:

Les règles d'importation sont basées sur les fichiers, ce qui signifie que les fichiers inclus n'hériteront PAS des règles d'importation du fichier parent.



Espace de noms global

Sans aucune définition d'espace de noms, toutes les classes et les fonctions sont placées dans l'espace de noms global : comme en PHP avant que les espaces de noms aient été introduits. En préfixant un nom avec un anti-slash \, on peut demander l'utilisation de l'espace de noms global, même dans un contexte d'espace de noms spécifique.

Exemple #1 Spécification d'espace de noms global

<?php
namespace A\B\C;

/* Cette fonction est A\B\C\fopen */
function fopen() { 
     
/* ... */
     
$f = \fopen(...); // appel à fopen global
     
return $f;

?>



Utilisation des espaces de noms : retour à l'espace global

Dans un espace de noms, lorsque PHP rencontre un nom sans qualification, que ce soit une classe, une fonction ou une constante, il le résout avec différentes priorités. Les noms de classes sont toujours résolus avec l'espace de noms courant. Pour accéder à des classes internes ou à des classes qui ne sont pas dans un espace de noms, il faut les représenter avec leur nom absolu, tel que :

Exemple #1 Accès aux classes globales depuis un espace de noms

<?php
namespace A\B\C;
class 
Exception extends \Exception {}

$a = new Exception('hi'); // $a est un objet de la classe A\B\C\Exception
$b = new \Exception('hi'); // $b est un objet de la classe Exception

$c = new ArrayObject// erreur fatale, classe A\B\C\ArrayObject non trouvée
?>

Pour les fonctions et constantes, PHP va aller les chercher dans l'espace global s'il ne peut les trouver dans l'espace de noms courant.

Exemple #2 Accès aux fonctions et constantes globales dans un espace de noms

<?php
namespace A\B\C;

const 
E_ERROR 45;
function 
strlen($str)
{
    return \
strlen($str) - 1;
}

echo 
E_ERROR"\n"// affiche "45"
echo INI_ALL"\n"// affiche "7" : accès dans l'espace de noms global INI_ALL

echo strlen('hi'), "\n"// affiche "1"
if (is_array('hi')) { // affiche "n'est pas un tableau"
    
echo "est un tableau\n";
} else {
    echo 
"n'est pas un tableau\n";
}
?>



Règles de résolutions de noms

Dans le cadre des règles de résolution, il y a plusieurs définitions importantes :

Définitions pour les espaces de noms
nom non qualifié

Ceci est un identifiant ne contenant pas un séparateur d'espace de noms. Par exemple : Foo

nom qualifié

Ceci est un identifiant contenant un séparateur d'espace de noms. Par exemple : Foo\Bar

Nom absolu

Ceci est un identifiant qui commence par un séparateur d'espace de noms. Par exemple : \Foo\Bar. namespace\Foo est aussi un nom absolu.

Les noms sont résolus en suivant les règles suivantes :

  1. Les appels à des espaces de noms absolus pour des fonctions, classes ou constantes sont résolus à la compilation. Par exemple, new \A\B utilise la classe A\B.
  2. Tous les noms qui ne sont pas absolus sont traduits durant la compilation à l'aide des règles d'importation. Par exemple, si le nom A\B\C est importé sous l'alias C, un appel à C\D\e() est traduit en un appel à A\B\C\D\e().
  3. Dans un nom de domaine, tous les noms qualifiés qui ne sont pas traduits à l'aide des règles d'importation sont préfixés avec l'espace de noms courant. Par exemple, si un appel à C\D\e() est effectué dans l'espace de noms A\B, il est traduit en A\B\C\D\e().
  4. Les classes non qualifiées sont traduites durant la compilation en fonction des règles d'importations (le nom complet remplace les noms courts). Par exemple, si l'espace de noms A\B\C est importé sous le nom C, new C() est remplacé par new A\B\C().
  5. Dans un espace de noms, tel que A\B, les appels à des fonctions sans qualification sont résolus à la compilation. Voici comment un appel à foo() est résolu :
    1. Il recherche une fonction dans l'espace de noms courant : A\B\foo().
    2. Il essaie de trouver et appeler la fonction globale foo().
  6. Dans un espace de noms, e.g. A\B, un appel à une classe qualifiée ou non qualifiée (pas absolue) est résolu à l'exécution. Voici comment un appel à new C() ou à new D\E() est résolu. Pour new C() :
    1. Il recherche une classe dans l'espace de noms courant : A\B\C.
    2. Il appelle l'autoload pour A\B\C.
    Pour new D\E():
    1. Il recherche une classe dans l'espace de noms courant : A\B\D\E.
    2. Il appelle l'autoload pour A\B\D\E.
    Pour référencer une classe globale dans l'espace de noms global, son nom absolu new \C() doit être utilisé.

Exemple #1 Exemples de résolutions d'espaces de noms

<?php
namespace A;
use 
B\DC\as F;

// appels de fonctions

foo();      // tente d'appeler la fonction "foo" dans l'espace de noms "A"
            // puis appelle la fonction globale "foo"

\foo();     // appelle la fonction "foo" définie dans l'espace de noms global

my\foo();   // appelle la fonction "foo" définie dans l'espace de noms "A\my"

F();        // tente d'appeler la fonction "F" définie dans l'espace "A"
            // puis tente d'appeler la fonction globale "F"

// référence de classes references

new B();    // crée un objet de la classe "B" définie dans l'espace de noms  "A"
            // si non trouvé, il essaie l'autoload sur la classe "A\B"

new D();    // crée un objet de la classe "D" définie dans l'espace de noms  "B"
            // si non trouvé, il essaie l'autoload sur la classe "B\D"

new F();    // crée un objet de la classe "E" définie dans l'espace de noms  "C"
            // si non trouvé, il essaie l'autoload sur la classe "C\E"

new \B();   // crée un objet de la classe "B" définie dans l'espace de noms global
            // si non trouvé, il essaie l'autoload sur la classe "B"

new \D();   // crée un objet de la classe "D" définie dans l'espace de noms global
            // si non trouvé, il essaie l'autoload sur la classe "D"

new \F();   // crée un objet de la classe "F" définie dans l'espace de noms global
            // si non trouvé, il essaie l'autoload sur la classe "F"

// méthodes statiques et fonctions d'espace de noms d'un autre espace

B\foo();    // appelle la fonction "foo" de l'espace de noms "A\B"

B::foo();   // appelle la méthode "foo" de la classe "B" définie dans l'espace de noms  "A"
            // si la classe "A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\B"

D::foo();   // appelle la méthode "foo" de la classe "D" définie dans l'espace de noms  "B"
            // si la classe "B\D" n'est pas trouvée, il essaie l'autoload sur la classe "B\D"

\B\foo();   // appelle la fonction "foo" de l'espace de noms "B"

\B::foo();  // appelle la méthode "foo" de la classe "B" située dans l'espace de noms global
            // si la classe "B" n'est pas trouvée, il essaie l'autoload sur la classe "B"

// méthodes statiques et fonctions d'espace de noms de l'espace courant

A\B::foo();   // appelle la méthode "foo" de la classe "B" de l'espace de noms "A\A"
              // si la classe "A\A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\A\B"

\A\B::foo();  // appelle la méthode "foo" de la classe "B" de l'espace de noms "A"
              // si la classe "A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\B"
?>


Foire aux questions : ce que vous devez savoir des espaces de noms

Cette FAQ est décomposée en deux sections : les questions courantes, et les points particuliers de l'implémentation, qui peuvent être utiles à la compréhension globale.

D'abord, les questions courantes.

  1. Si je n'utilise pas d'espaces de noms, est-ce que je dois m'en soucier ?
  2. Comment utiliser une classe globale ou interne depuis un espace de noms ?
  3. Comment utiliser les classes d'espaces de noms, les fonctions ou les constantes dans leur propre espace ?
  4. Comment est-ce qu'un nom comme \mon\nom ou \nom est résolu ?
  5. Comment est-ce qu'un nom tel que mon\nom est résolu ?
  6. Comment un nom de classe sans qualification, tel que nom, est résolu ?
  7. Comment une fonction sans qualification ou une constante de nom nom est résolue ?

Voici les points particuliers de l'implémentation, qui peuvent être utiles à la compréhension globale.

  1. Les noms importés ne doivent pas entrer en conflit avec les classes définies dans le même fichier
  2. Les espaces de noms imbriqués sont interdits
  3. Ni les fonctions, ni les constantes ne peuvent être importées avec la commande use
  4. Les noms d'espaces de noms dynamiques doivent protéger l'anti-slash
  5. Des constantes indéfinies référencées avec un anti-slash produisent une erreur fatale
  6. Impossible de remplacer des constantes spéciales comme NULL, TRUE, FALSE, ZEND_THREAD_SAFE ou ZEND_DEBUG_BUILD

Si je n'utilise pas d'espaces de noms, est-ce que je dois m'en soucier ?

Non, les espaces de noms n'affectent pas le code existant, d'une manière ou d'une autre, ni le code qui sera produit et qui n'utilise pas les espaces de noms. Vous pouvez écrire ceci si vous voulez :

Exemple #1 Accès à une classe globale de l'extérieur d'un espace de noms

<?php
$a 
= new \stdClass;
?>

C'est une fonctionnalité équivalente à :

Exemple #2 Accéder à des classes globales hors d'un espace de noms

<?php
$a 
= new stdClass;
?>

Comment utiliser une classe globale ou interne depuis un espace de noms ?

Exemple #3 Accès aux classes internes depuis un espace de noms

<?php
namespace foo;
$a = new \stdClass;

function 
test(\ArrayObject $typehintexample null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// extension d'une classe interne ou globale
class MyException extends \Exception {}
?>

Comment utiliser les classes d'espaces de noms, les fonctions ou les constantes dans leur propre espace ?

Exemple #4 Accès aux classes, fonctions et constantes internes dans un espace de noms

<?php
namespace foo;

class 
MaClasse {}

// utilisation d'une classe dans l'espace de noms courant, sous forme de type d'argument
function test(MaClasse $typehintexample null) {}

// une autre manière d'utiliser une classe dans l'espace de noms courant
function test(\foo\MaClasse $typehintexample null) {}

// extension d'une classe dans l'espace de noms courant
class Extended extends MaClasse {}

// accès à une fonction globale
$a = \globalfunc();

// accès à une constante globale
$b = \INI_ALL;
?>

Comment est-ce qu'un nom comme \mon\nom ou \nom est résolu ?

Les noms qui commencent par \ sont toujours résolus en ce à quoi ils ressemblent, ce qui fait que \mon\nom est en fait mon\nom, et \Exception est Exception.

Exemple #5 Noms d'espaces absolus

<?php
namespace foo;
$a = new \mon\nom(); // instantie la classe "mon\nom"
echo \strlen('hi'); // appelle la fonction "strlen"
$a = \INI_ALL// $a reçoit la valeur de la constante "INI_ALL"
?>

Comment est-ce qu'un nom tel que mon\nom est résolu ?

Les noms qui contiennent un anti-slash mais ne commencent par par un anti-slash, comme mon\nom peuvent être résolus de deux manières différentes.

S'il y a eu une commande d'importation qui fait un alias de mon, alors l'alias importé est appliqué à la place de mon, et l'espace de noms devient mon\nom.

Sinon, l'espace de noms courant est ajouté avant le chemin de la classe mon\nom.

Exemple #6 Noms qualifiés

<?php
namespace foo;
use 
blah\blah as foo;

$a = new mon\nom(); // instantie la classe "foo\mon\nom"
foo\bar::name(); // appelle la méthode statique "name" dans la classe "blah\blah\bar"
mon\bar(); // appelle la fonction "foo\mon\bar"
$a mon\BAR// affecte à $a la valeur de la constante "foo\mon\BAR"
?>

Comment un nom de classe sans qualification, tel que nom, est résolu ?

Les noms de classes qui ne contiennent pas d'anti-slash comme nom peuvent être résolus de deux manières différentes.

S'il y a une instruction d'importation qui définit un alias pour nom, alors l'alias est appliqué.

Sinon, l'espace de noms courant est utilisé et préfixé à nom.

Exemple #7 Classes sans qualification

<?php
namespace foo;
use 
blah\blah as foo;

$a = new nom(); // instantie la classe "foo\nom"
foo::nom(); // appelle la méthode statique "nom" dans la classe "blah\blah"
?>

Comment une fonction sans qualification ou une constante de nom nom est résolue ?

Les fonctions et constantes qui n'ont pas d'anti-slash dans leur nom comme nom sont résolues de deux manières différentes :

D'abord, l'espace de noms courant est préfixé à nom.

Ensuite, si la constante ou la fonction nom n'existe pas dans l'espace de nom courant, la version globale de la constante ou la fonction nom est utilisée.

Exemple #8 Fonctions et constantes sans espace de noms

<?php
namespace foo;
use 
blah\blah as foo;

const 
FOO 1;

function 
mon() {}
function 
foo() {}
function 
sort(&$a)
{
    
sort($a);
    
$a array_flip($a);
    return 
$a;
}

mon(); // appelle "foo\mon"
$a strlen('hi'); // appelle la fonction globale "strlen" car "foo\strlen" n'existe pas
$arr = array(1,3,2);
$b sort($arr); // appelle la fonction "foo\sort"
$c foo(); // appelle la fonction "foo\foo" : l'importation n'est pas appliquée

$a FOO// assigne à $a la valeur de la constante "foo\FOO" : l'importation n'est pas appliquée
$b INI_ALL// assigne à $b la valeur de la constante "INI_ALL"
?>

Les noms importés ne doivent pas entrer en conflit avec les classes définies dans le même fichier

La combinaison de scripts suivante est valide :

file1.php

<?php
namespace mes\trucs;
class 
MaClasse {}
?>

another.php

<?php
namespace another;
class 
untruc {}
?>

file2.php

<?php
namespace mes\trucs;
include 
'file1.php';
include 
'another.php';

use 
another\untruc as MaClasse;
$a = new MaClasse// instantie la classe "untruc" de l'espace de noms another
?>

Il n'y a pas de conflit de noms, même si la classe MaClasse existe dans l'espace de noms mes\trucs, car la définition de MaClasse est dans un fichier séparé. Cependant, l'exemple suivant produit une erreur fatale à cause d'un conflit de noms, car MaClasse est définie dans le même fichier que l'instruction use.

<?php
namespace mes\trucs;
use 
another\untruc as MaClasse;
class 
MaClasse {} // erreur fatale: MaClasse est en conflit avec la commande d'importation
$a = new MaClasse;
?>

Les espaces de noms imbriqués sont interdits

PHP ne permet pas d'imbriquer des espaces de noms.

<?php
namespace mes\trucs {
    namespace 
nested {
        class 
foo {}
    }
}
?>
Cependant, il est facile de simuler des espaces de noms imbriqués, comme ceci :
<?php
namespace mes\trucs\nested {
    class 
foo {}
}
?>

Ni les fonctions, ni les constantes ne peuvent être importées avec la commande use

Les seuls éléments qui sont affectés par la commande use sont les espaces de noms et les classes. Afin de réduire le nom d'une constante ou d'une fonction, il faut l'importer dans un espace de noms.

<?php
namespace mine;
use 
ultra\long\ns\nom;

$a nom\CONSTANT;
nom\func();
?>

Les noms d'espaces de noms dynamiques doivent protéger l'anti-slash

Il est très important de réaliser que, comme les anti-slash sont utilisés comme caractères de protection dans les chaînes, il faut toujours les doubler pour pouvoir les utiliser dans une chaîne. Sinon, il y a un risque d'utilisation inattendue :

Exemple #9 Dangers de l'utilisation des espaces de noms dans une chaîne

<?php
$a 
= new "dangereux\nom"// \n est une nouvelle ligne dans une chaîne!
$obj = new $a;

$a = new 'pas\vraiment\dangereux'// aucun problème ici
$obj = new $a;
?>
Dans une chaîne à double guillemets, la séquence de protection est beaucoup plus sécuritaire à utiliser, mais il est quand même recommandé de toujours protéger les anti-slashs dans une chaîne qui contient un espace de noms.

Des constantes indéfinies référencées avec un anti-slash produisent une erreur fatale

Toute constante indéfinie qui est sans qualificatif telle que FOO va produite une alerte : PHP supposait que FOO était la valeur de la constante. Toute constante, qualifiée partiellement ou totalement, qui contient un anti-slash, produite une erreur fatale si indéfinie.

Exemple #10 Constantes indéfinies

<?php
namespace bar;
$a FOO// produit une alerte : constante indéfinie "FOO", qui prend la valeur de "FOO";
$a = \FOO// erreur fatale, constante d'espace de noms indéfinie FOO
$a Bar\FOO// erreur fatale, constante d'espace de noms indéfinie bar\Bar\FOO
$a = \Bar\FOO// erreur fatale, constante d'espace de noms indéfinie Bar\FOO
?>

Impossible de remplacer des constantes spéciales comme NULL, TRUE, FALSE, ZEND_THREAD_SAFE ou ZEND_DEBUG_BUILD

Toute tentative dans un espace de noms de remplacer les constantes natives ou spéciales, engendre une erreur fatale.

Exemple #11 Constantes qui ne peuvent être redéfinies

<?php
namespace bar;
const 
NULL 0// erreur fatale;
const true 'stupid'// encore une erreur fatale;
// etc.
?>




Les exceptions

Sommaire

PHP a une gestion des exceptions similaire à ce qu'offrent les autres langages de programmation. Une exception peut être lancée ("throw") et attrapée ("catch") dans PHP. Le code devra être entouré d'un bloc try pour faciliter la saisie d'une exception potentielle. Chaque try doit avoir au moins un bloc catch correspondant. Plusieurs blocs catch peuvent être utilisés pour attraper différentes classes d'exceptions. L'exécution normale (lorsqu'aucune exception n'est lancée dans le bloc try ou lorsqu'un catch correspondant à l'exception lancée n'est pas présent) continue après le dernier bloc catch défini dans la séquence. Les exceptions peuvent être lancées (ou relancées) dans un bloc catch.

Lorsqu'une exception est lancée, le code suivant le traitement ne sera pas exécuté et PHP tentera de trouver le premier bloc catch correspondant. Si une exception n'est pas attrapée, une erreur fatale issue de PHP sera envoyée avec un message spécifiant que l'exception n'a pu être attrapée à moins qu'un gestionnaire d'exceptions ne soit défini avec la fonction set_exception_handler().

L'objet lancé doit être une instance de la classe Exception ou une sous-classe de la classe Exception. Tenter de lancer un objet qui ne correspond pas à cela résultera en une erreur fatale émise par PHP.

Note:

Les fonctions internes de PHP utilisent principalement l' Error reporting, seules les extensions orientées objet utilisent les exceptions. Quoiqu'il en soit, des erreurs peuvent facilement être traduites en exceptions avec ErrorException.

Astuce

La bibliothèque standard PHP (SPL) fournit un bon nombre d'exceptions en dur.

Exemple #12 Lancer une exception

<?php
function inverse($x) {
    if (!
$x) {
        throw new 
Exception('Division par zéro.');
    }
    else return 
1/$x;
}

try {
    echo 
inverse(5) . "\n";
    echo 
inverse(0) . "\n";
} catch (
Exception $e) {
    echo 
'Exception reçue : ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Bonjour le monde !';
?>

L'exemple ci-dessus va afficher :

0.2
Exception reçue : Division par zéro.
Hello World

Exemple #13 Héritage d'une exception

<?php

class MyException extends Exception { }

class 
Test {
    public function 
testing() {
        try {
            try {
                throw new 
MyException('foo!');
            } catch (
MyException $e) {
                
/* on la relance */
                
throw $e;
            }
        } catch (
Exception $e) {
            
var_dump($e->getMessage());
        }
    }
}

$foo = new Test;
$foo->testing();

?>

L'exemple ci-dessus va afficher :

string(4) "foo!"

Exceptions étendues

Une classe d'exception écrite par l'utilisateur peut être définie en étendant la classe Exception interne. Les membres et les propriétés suivants montrent ce qui est accessible dans la classe enfant qui est dérivée de la classe Exception interne.

Exemple #1 La classe Exception interne

<?php
class Exception
{
  protected 
$message 'exception inconnu'// message de l'exception
  
private   $string;                        // __toString cache
  
protected $code 0;                      // code de l'exception défini par l'utilisateur
  
protected $file;                          // nom du fichier source de l'exception
  
protected $line;                          // ligne de la source de l'exception
  
private   $trace;                         // backtrace
  
private   $previous;                      // exception précédente (depuis PHP 5.3)

  
public function __construct($message null$code 0Exception $previous null);

  final private function 
__clone();         // Inhibe le clonage des exceptions.

  
final public function getMessage();              // message de l'exception
  
final public function getCode();                 // code de l'exception
  
final public function getFile();                 // nom du fichier source
  
final public function getLine();                 // ligne du fichier source
  
final public function getTrace();                // un tableau de backtrace()
  
final public function getPrevious();             // exception précédente (depuis PHP 5.3)
  
final public function getTraceAsString();        // chaîne formattée de trace

  /* Remplacable */
  
public function __toString();                    // chaîne formatée pour l'affichage
}
?>

Si une classe étend la classe Exception interne et redéfinit le constructeur, il est vivement recommandé qu'elle appelle aussi parent::__construct() pour s'assurer que toutes les données disponibles ont été proprement assignées. La méthode __toString() peut être réécrite pour fournir un affichage personnalisé lorsque l'objet est présenté comme une chaîne.

Note:

Les exceptions ne peuvent pas être clônées. Si vous tentez de clôner une exception, une erreur fatale (E_ERROR) sera émise.

Exemple #2 Étendre la classe Exception (PHP 5.3.0+)

<?php
/**
* Définition d'une classe d'exception personnalisée
*/
class MyException extends Exception
{
  
// Redéfinissez l'exception ainsi le message n'est pas facultatif
  
public function __construct($message$code 0Exception $previous null) {

    
// traitement personnalisé que vous voulez réaliser ...

    // assurez-vous que tout a été assigné proprement
    
parent::__construct($message$code$previous);
  }

  
// chaîne personnalisée représentant l'objet
  
public function __toString() {
    return 
__CLASS__ ": [{$this->code}]: {$this->message}\n";
  }

  public function 
customFunction() {
    echo 
"Une fonction personnalisée pour ce type d'exception\n";
  }
}

/**
* Création d'une classe pour tester l'exception
*/
class TestException
{
  public 
$var;

  const 
THROW_NONE    0;
  const 
THROW_CUSTOM  1;
  const 
THROW_DEFAULT 2;

  function 
__construct($avalue self::THROW_NONE) {

    switch (
$avalue) {
      case 
self::THROW_CUSTOM:
        
// lance une exception personnalisée
        
throw new MyException('1 est un paramètre invalide'5);
        break;

      case 
self::THROW_DEFAULT:
        
// lance l'exception par défaut.
        
throw new Exception('2 n\'est pas autorisé en tant que paramètre'6);

        break;

      default:
        
// Aucune exception, l'objet sera créé.
        
$this->var $avalue;
        break;
    }
  }
}

// Exemple 1
try {
  
$o = new TestException(TestException::THROW_CUSTOM);
} catch (
MyException $e) {            // Devrait être attrapée
  
echo "Capture mon exception\n"$e;
  
$e->customFunction();
} catch (
Exception $e) {              // Sauté
  
echo "Capture l'exception par défaut\n"$e;
}

// Continue l'exécution
var_dump($o); // Null
echo "\n\n";


//Exemple 2
try {
  
$o = new TestException(TestException::THROW_DEFAULT);
} catch (
MyException $e) {            // Ne correspond pas à ce type
  
echo "Capture mon exception\n"$e;
  
$e->customFunction();
} catch (
Exception $e) {              // Devrait être attrapée
  
echo "Capture l'exception par défaut\n"$e;
}

// Continue l'exécution
var_dump($o); // Null
echo "\n\n";


// Exemple 3
try {
  
$o = new TestException(TestException::THROW_CUSTOM);
} catch (
Exception $e) {              // Devrait être attrapée
  
echo "Capture l'exception par défaut\n"$e;
}

// Continue l'exécution
var_dump($o); // Null
echo "\n\n";


// Exemple 4
try {
  
$o = new TestException();
} catch (
Exception $e) {              // sauté, aucune exception
  
echo "Capture l'exception par défaut\n"$e;
}

// Continue l'exécution
var_dump($o); // TestException
echo "\n\n";
?>

Note:

Dans PHP, avant PHP 5.3.0 les exceptions ne pouvaient être nichées. Le code suivant montre un exemple d'extension de la classe d'Exception avant PHP 5.3.0.

<?php
/**
 * Définition d'une classe d'exception personnalisée
 */
class MyException extends Exception
{
    
// Redéfinition du constructeur pour rendre le message obligatoire
    
public function __construct($message$code 0) {
        
// du code ici
    
        // Appel du parent
        
parent::__construct($message$code);
    }

    
// Représentation de l'objet sous forme de chaine personnalisée
    
public function __toString() {
        return 
__CLASS__ ": [{$this->code}]: {$this->message}\n";
    }

    public function 
customFunction() {
        echo 
"Une méthode personnalisée pour cette exception\n";
    }
}
?>




Les références

Sommaire


Qu'est ce qu'une référence ?

En PHP, les références sont destinées à appeler le contenu d'une variable avec un autre nom. Ce n'est pas comme en C ; vous ne pouvez pas effectuer des opérations arithmétiques comme sur des pointeurs, ce ne sont pas des adresses mémoires. Voyez Ce que les références ne sont pas pour plus d'informations. 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. On peut faire l'analogie avec les fichiers sous Unix, et leur nom de fichier : les noms des variables sont les entrées dans un répertoire, tandis que le contenu de la variable est le contenu même du fichier. Faire des références en PHP revient alors à faire des liens sous Unix.



Que font les références ?

Il y a 3 utilisations principales des références: assignation par référence, passage par référence, et retourner par référence. Cette section introduit ces opérations, avec des liens vers plus de précision.

Assignation par référence

Dans ce premier cas, les références PHP vous permettent de faire en sorte que 2 variables référencent le même contenu. Ainsi :

<?php
$a 
=& $b;
?>
cela signifie que $a et $b pointent sur le même contenu.

Note:

$a et $b sont complètement égales ici : ce n'est pas $a qui pointe sur $b, ou vice-versa. C'est bien $a et $b qui pointent sur le même contenu.

Note:

Si vous assignez, passez ou retournez une variable indéfinie par référence, elle sera créée automatiquement.

Exemple #1 Utilisation des références avec des variables indéfinies

<?php
function foo(&$var) { }

foo($a); // $a est "créée" et assignée à NULL

$b = array();
foo($b['b']);
var_dump(array_key_exists('b'$b)); // bool(true)

$c = new StdClass;
foo($c->d);
var_dump(property_exists($c'd')); // bool(true)
?>

La même syntaxe peut être utilisée avec les fonctions qui retournent des références, et avec l'opérateur new (depuis PHP 4.0.4 et avant PHP 5.0.0) :

<?php
$foo 
=& find_var($bar);
?>
Depuis PHP 5, new retourne une référence automatiquement, donc, l'utilisation de =& dans ce contexte est obsolète et produit un message de niveau E_DEPRECATED à partir de PHP 5.3, et un message E_STRICT dans les versions antérieures. (Techniquement, la difference est qu'en PHP 5, les objets comme les ressources sont des pointeurs vers la donnée réelle. La notion de "référence" ici est donc un peu différente (alias). Pour plus d'informations, voyez Les objects et les références.)

Avertissement

Si vous assignez une référence à une variable déclarée global dans une fonction, la référence ne sera visible qu'au sein de la fonction. Vous pouvez éviter cela en utilisant le tableau $GLOBALS.

Exemple #2 Référencer des variables globales depuis fonction

<?php
$var1 
"Variable Exemple";
$var2 "";

function 
global_references($use_globals)
{
    global 
$var1$var2;
    if (!
$use_globals) {
        
$var2 =& $var1// visible uniquement dans la fonction
    
} else {
        
$GLOBALS["var2"] =& $var1// visible également dans un contexte global
    
}
}

global_references(false);
echo 
"var2 est défini à '$var2'\n"// var2 est défini à ''
global_references(true);
echo 
"var2 est défini à '$var2'\n"// var2 est défini à 'Variable Exemple'
?>
Voyez global $var; comme un raccourci pour $var =& $GLOBALS['var'];. De ce fait assignant d'autres références à $var changeant uniquement la référence locale de la variable.

Note:

Si vous assignez des valeurs par références dans une structure foreach, les références seront également modifiées.

Exemple #3 Références et structure foreach

<?php
$ref 
0;
$row =& $ref;
foreach (array(
123) as $row) {
    
// faites quelque chose
}
echo 
$ref// 3 - le dernier élément du tableau itéré
?>

Même si ce n'est pas strictement une assignation par référence, les expressions créees avec la structure de langage array() peuvent aussi se comporter comme tel en préfixant par & l'élément du tableau. Exemple:

<?php
$a 
1;
$b = array(23);
$arr = array(&$a, &$b[0], &$b[1]);
$arr[0]++; $arr[1]++; $arr[2]++;
/* $a == 2, $b == array(3, 4); */
?>

Notez par contre que les références à l'intérieur des tableaux peuvent s'avérer dangereuses. Utiliser une assignation normale (pas par référence) avec une référence à droite de l'opérateur ne transforme pas la partie gauche de l'expression en référence, mais les références dans les tableaux sont préservées. Ceci s'applique aussi aux appels de fonctions avec un tableau passé par valeur. Exemple:

<?php
/* Assignation de variables scalaires */
$a 1;
$b =& $a;
$c $b;
$c 7//$c n'est pas une référence; pas de changement à $a ou $b

/* Assignation de variables de type tableau */
$arr = array(1);
$a =& $arr[0]; //$a et $arr[0] sont des références vers la même valeur
$arr2 $arr//PAS une assignation par référence!
$arr2[0]++;
/* $a == 2, $arr == array(2) */
/* Les contenus de $arr sont changés même si ce n'était pas une référence! */
?>
In other words, the reference behavior of arrays is defined in an element-by-element basis; the reference behavior of individual elements is dissociated from the reference status of the array container.

Passage par référence

Le deuxième intérêt des références est de pouvoir passer des variables par référence. On réalise ceci en faisant pointer des variables locales vers le contenu des variables de fonction. Exemple :

<?php
function foo(&$var) {
  
$var++;
}
$a=5;
foo($a);
?>
$a vaut 6. Cela provient du fait que dans la fonction foo, la variable $var pointe sur le même contenu que $a. Voir aussi les explications détaillées dans passage par référence.

Retourner par référence

Le troisième intérêt des références est de retourner des valeurs par référence.



Ce que les références ne sont pas

Comme précisé ci-dessus, les références ne sont pas des pointeurs. Cela signifie que le script suivant ne fera pas ce à quoi on peut s'attendre :

<?php
function foo(&$var) {
  
$var =& $GLOBALS["baz"];
}
foo($bar);
?>

Il va se passer que $var dans foo sera lié à $bar, mais il sera aussi relié à $GLOBALS["baz"]. Il n'y a pas moyen de lier $bar à quelque chose d'autre en utilisant le mécanisme de référence, car $bar n'est pas accessible dans la fonction foo (certes, il est représenté par $var et $var possède la même valeur, mais n'est pas relié par la table des symboles). Vous pouvez utiliser les références arrières pour référencer les variables sélectionnées par la fonction.



Passage par référence

Vous pouvez passer des variables par référence, de manière à ce que la fonction modifie ces variables. La syntaxe est la suivante :

<?php
function foo(&$var) {
  
$var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>

Note: Il n'y a pas de signe de référence dans l'appel de la fonction, uniquement sur sa définition. La définition de la fonction est suffisante pour passer correctement des arguments par référence. Dans les versions récentes de PHP, vous devriez recevoir une alerte disant que "Call-time pass-by-reference" est obsolète lorsque vous utilisez un & dans foo(&$a);.

Les objets suivants peuvent être passés par référence :

  • Une variable, i.e. foo($a)
  • Un nouvel objet, i.e. foo(new foobar())
  • Une référence, retournée par une fonction :

    <?php
    function foo(&$var)
    {
        
    $var++;
    }
    function &
    bar()
    {
     
    $a 5;
     return 
    $a;
    }
    foo(bar());
    ?>
    Voir aussi des détails dans retourner des références.

Toutes les autres expressions ne doivent pas être passées par référence, car le résultat sera indéfini. Par exemple, les passages par référence suivants sont invalides :

<?php
function foo(&$var)
{
    
$var++;
}
function 
bar() // Notez l'absence de &
{
   
$a 5;
   return 
$a;
}
foo(bar());    // Produit une erreur fatale depuis PHP 5.0.5

foo($a 5);    // Expression, pas une variable
foo(5);         // Produit une erreur fatale
?>
Ces fonctionnalités sont valables à partir de PHP 4.0.4.



Retourner des références

Retourner des références est toujours utile lorsque vous voulez utiliser une fonction pour savoir à quoi est liée une variable. N'utilisez pas le retour par référence pour améliorer les performances, le moteur est suffisamment robuste pour optimiser cela en interne. Retournez uniquement des références lorsque vous avez techniquement une bonne raison de le faire ! Pour retourner des références, utilisez cette syntaxe :

<?php
class foo {
    public 
$value 42;

    public function &
getValue() {
        return 
$this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue est une référence de $obj->value, qui vaut 42.
$obj->value 2;
echo 
$myValue;                // affiche la nouvelle valeur de $obj->value, i.e. 2.
?>
Dans cet exemple, on affecte une valeur à la propriété de l'objet retourné par la fonction getValue, et non à sa copie, comme ce serait le cas si on n'avait pas utilisé la syntaxe de référence.

Note: Contrairement au passage de paramètre, vous devez utiliser & aux deux endroits, à la fois pour indiquer que vous retournez par référence (pas une copie habituelle), et pour indiquer que vous assignez aussi par référence (pas la copie habituelle) pour la variable $myValue.

Note: Si vous tentez de retourner une référence depuis une fonction avec la syntaxe :return ($this->value);, cela ne fonctionnera pas comme vous l'attendez et retournera le résultat de l'expression, mais pas de la variable, par référence. Vous ne pouvez retourner des variables par référence que depuis une fonction - rien d'autre. Depuis PHP 4.4.0 et PHP 5.1.0, une alerte E_NOTICE est envoyée si le code tente de retourner une expression dynamique ou un résultat de l'opérateur new.



Détruire une référence

Lorsque vous détruisez une référence, vous ne faites que casser le lien entre le nom de la variable et son contenu. Cela ne signifie pas que le contenu est détruit. Par exemple :

<?php
$a 
1;
$b =& $a;
unset(
$a);
?>
Cet exemple ne détruira pas $b, mais juste $a.

Encore une fois, on peut comparer cette action avec la fonction unlink d'Unix.



Repérer une référence

De nombreuses syntaxes de PHP sont implémentées via le mécanisme de référence, et tout ce qui a été vu concernant les liaisons entre variables s'applique à ces syntaxes. Par exemple, le passage et le retour d'arguments par référence. Quelques autres exemples de syntaxes :

Références globales

Lorsque vous déclarez une variable global $var, vous créez en fait une référence sur une variable globale. Ce qui signifie que

<?php
$var 
=& $GLOBALS["var"];
?>

Et que, si vous détruisez la variable $var, la variable globale ne sera pas détruite.

$this

Dans une méthode d'objet, $this est toujours une référence sur l'objet courant.




Variables prédéfinies

PHP fournit un très grand nombre de variables prédéfinies accessibles à tous vos scripts. Ces variables représentent à peu près tout, allant des variables externes aux variables d'environnement intégrées à PHP, en passant par les derniers messages d'erreur ou les en-têtes récupérés.

Voir la FAQ intitulée "Comment la directive register_globals affecte-t-elle mes scripts ?"


Les Superglobales

Les SuperglobalesLes Superglobales sont des variables internes qui sont toujours disponibles, quel que soit le contexte

Description

Plusieurs variables prédéfinies en PHP sont "superglobales", ce qui signifie qu'elles sont disponibles quel que soit le contexte du script. Il est inutile de faire global $variable; avant d'y accéder dans les fonctions ou les méthodes.

Les variables superglobales sont :

Historique

Version Description
4.1.0 Les superglobales sont introduites en PHP.

Notes

Note: Disponibilité des variables

Par défaut, toutes les superglobales sont disponibles, et seules les directives de configuration peuvent les rendre indisponibles. Pour plus d'informations, reportez-vous à la documentation sur l'ordre des variables.

Note: Gérer la directive register_globals

Si la directive obsolète register_globals est définie à on, alors les variables simples seront également disponibles dans le contexte global du script. Par exemple, $_POST['foo'] existera également sous la forme $foo.

Pour plus d'informations, voir la FAQ intitulée "Comment la directive register_globals affecte-t-elle mes scripts ?"

Note: Variable variables

Les superglobales ne peuvent pas être utilisées comme variables variables dans une fonction ou une méthode d'une classe.



$GLOBALS

$GLOBALSRéférence toutes les variables disponibles dans un contexte global

Description

Un tableau associatif contenant les références sur toutes les variables globales actuellement définies dans le contexte d'exécution global du script. Les noms des variables sont les index du tableau.

Exemples

Exemple #1 Exemple avec $GLOBALS

<?php
function test() {
    
$foo "variable locale";

    echo 
'$foo dans le contexte global : ' $GLOBALS["foo"] . "\n";
    echo 
'$foo dans le contexte courant : ' $foo "\n";
}

$foo "Exemple de contenu";
test();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$foo dans le contexte global : Exemple de contenu
$foo dans le contexte courant : variable locale

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Note: Disponibilité des variables

Contrairement à toutes les autres superglobales, $GLOBALS a toujours été disponible en PHP.



$_SERVER

$HTTP_SERVER_VARS [Obsolète]

$_SERVER -- $HTTP_SERVER_VARS [Obsolète]Variables de serveur et d'exécution

Description

$_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. Les entrées de ce tableau sont créées par le serveur web. Il n'y a aucune garantie que tous les serveurs les rempliront tous ; certains en oublieront quelques-unes et en rajouteront de nouvelles non mentionnées ici. Cependant, un grand nombre de ces variables fait partie des » spécifications CGI/1.1, et vous pouvez donc vous attendre à les retrouver.

$HTTP_SERVER_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_SERVER_VARS et $_SERVER sont des variables différentes et que PHP les traite en tant que telles.)

Indices

Vous pouvez éventuellement trouver les éléments suivants dans la variable $_SERVER. Notez que certains, n'auront pas de sens si vous utilisez PHP en ligne de commande.

'PHP_SELF'
Le nom du fichier du script en cours d'exécution, par rapport à la racine web. Par exemple, $_SERVER['PHP_SELF'] dans le script situé à l'adresse http://www.monsite.com/test.php/foo.bar sera /test.php/foo.bar. La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclus) courant. Si PHP fonctionne en ligne de commande, cette variable contient le nom du script depuis PHP 4.3.0. Dans les versions antérieures, cette variable n'était pas disponible.
'argv'
Tableau des arguments passés au script. Lorsque le script est appelé en ligne de commande, cela donne accès aux arguments, comme en langage C. Lorsque le script est appelé avec la méthode GET, ce tableau contiendra la chaîne de requête.
'argc'
Contient le nombre de paramètres de la ligne de commande passés au script (si le script fonctionne en ligne de commande).
'GATEWAY_INTERFACE'
Numéro de révision de l'interface CGI du serveur : i.e. 'CGI/1.1'.
'SERVER_ADDR'
L'adresse IP du serveur sous lequel le script courant est en train d'être exécuté.
'SERVER_NAME'
Le nom du serveur hôte qui exécute le script suivant. Si le script est exécuté sur un hôte virtuel, ce sera la valeur définie pour cet hôte virtuel.
'SERVER_SOFTWARE'
Chaîne d'identification du serveur, qui est donnée dans les en-têtes lors de la réponse aux requêtes.
'SERVER_PROTOCOL'
Nom et révision du protocole de communication : i.e. 'HTTP/1.0';
'REQUEST_METHOD'
Méthode de requête utilisée pour accéder à la page; i.e. 'GET', 'HEAD', 'POST', 'PUT'.

Note:

Le script PHP se termine après avoir envoyé les en-têtes (après avoir produit n'importe quelle sortie sans avoir affiché le buffer) si la méthode de la requête était HEAD.

'REQUEST_TIME'
Le temps Unix du début de la requête. Disponible depuis PHP 5.1.0.
'QUERY_STRING'
La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page.
'DOCUMENT_ROOT'
La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.
'HTTP_ACCEPT'
Contenu de l'en-tête Accept: de la requête courante, s'il y en a une.
'HTTP_ACCEPT_CHARSET'
Contenu de l'en-tête Accept-Charset: de la requête courante, si elle existe. Par exemple : 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Contenu de l'en-tête Accept-Encoding: de la requête courante, si elle existe. Par exemple : 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Contenu de l'en-tête Accept-Language: de la requête courante, si elle existe. Par exemple : 'fr'.
'HTTP_CONNECTION'
Contenu de l'en-tête Connection: de la requête courante, si elle existe. Par exemple : 'Keep-Alive'.
'HTTP_HOST'
Contenu de l'en-tête Host: de la requête courante, si elle existe.
'HTTP_REFERER'
L'adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateurs permettent même de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalité. En bref, ce n'est pas une valeur de confiance.
'HTTP_USER_AGENT'
Contenu de l'en-tête User_Agent: de la requête courante, si elle existe. C'est une chaîne qui décrit le client HTML utilisé pour voir la page courante. Par exemple : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre autres choses, vous pouvez utiliser cette valeur avec get_browser() pour optimiser votre page en fonction des capacités du client.
'HTTPS'
Définissez à une valeur non-vide si le script nécessite d'utiliser le protocole HTTPS.

Note: Noter que lors de l'utilisation de ISAPI avec IIS, la valeur sera off si la demande n'a pas été faite via le protocole HTTPS.

'REMOTE_ADDR'
L'adresse IP du client qui demande la page courante.
'REMOTE_HOST'
Le nom de l'hôte qui lit le script courant. La résolution DNS inverse est basée sur la valeur de REMOTE_ADDR.

Note: Votre serveur web doit être configuré pour créer cette variable. Par exemple, pour Apache, vous devez ajouter la directive HostnameLookups On dans le fichier httpd.conf, pour que cette variable existe. Voyez aussi gethostbyaddr().

'REMOTE_PORT'
Le port utilisé par la machine cliente pour communiquer avec le serveur web.
'SCRIPT_FILENAME'

Le chemin absolu vers le fichier contenant le script en cours d'exécution.

Note:

Si un script est exécuté avec le CLI, avec un chemin relatif, comme file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] contiendra le chemin relatif spécifié par l'utilisateur.

'SERVER_ADMIN'
La valeur donnée à la directive SERVER_ADMIN (pour Apache), dans le fichier de configuration. Si le script est exécuté par un hôte virtuel, ce sera la valeur définie par l'hôte virtuel.
'SERVER_PORT'
Le port de la machine serveur utilisé pour les communications. Par défaut, c'est "80". En utilisant SSL, par exemple, il sera remplacé par le numéro de port HTTP sécurisé.
'SERVER_SIGNATURE'
Chaîne contenant le numéro de version du serveur et le nom d'hôte virtuel, qui sont ajoutés aux pages générées par le serveur, si cette option est activée.
'PATH_TRANSLATED'
Chemin dans le système de fichiers (pas le document-root) jusqu'au script courant, une fois que le serveur a fait une traduction chemin virtuel -> réel.

Note: Depuis PHP 4.3.2, la variable PATH_TRANSLATED n'est plus seulement définie implicitement sous Apache 2 SAPI contrairement à la situation sous Apache 1 où elle est définie avec la même valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'est pas fournie par Apache. Ce changement a été effectué pour être conforme aux spécifications CGI qui fait que la variable PATH_TRANSLATED doit exister seulement si la variable PATH_INFO est définie. Les utilisateurs d'Apache 2 devraient utiliser AcceptPathInfo = On dans leur httpd.conf pour définir PATH_INFO.

'SCRIPT_NAME'
Contient le nom du script courant. Cela sert lorsque les pages doivent s'appeler elles-mêmes. La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclut) courant.
'REQUEST_URI'
L'URI qui a été fourni pour accéder à cette page. Par exemple : '/index.html'.
'PHP_AUTH_DIGEST'
Lorsque vous utilisez l'authentification HTTP Digest, cette variable est définie dans l'en-tête "Authorization" envoyé par le client (que vous devez donc utiliser pour réaliser la validation appropriée).
'PHP_AUTH_USER'
Lorsque vous utilisez l'authentification HTTP, cette variable est définie à l'utilisateur fourni par l'utilisateur.
'PHP_AUTH_PW'
Lorsque vous utilisez l'authentification HTTP, cette variable est définie au mot de passe fourni par l'utilisateur.
'AUTH_TYPE'
Lorsque vous utilisez l'authentification HTTP, cette variable est définie au type d'identification.
'PATH_INFO'
Contient les informations sur le nom du chemin fourni par le client concernant le nom du fichier exécutant le script courant, sans la chaîne relative à la requête si elle existe. Actuellement, si le script courant est exécuté via l'URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, alors la variable $_SERVER['PATH_INFO'] contiendra /some/stuff.
'ORIG_PATH_INFO'
Version orignale de 'PATH_INFO' avant d'être analysée par PHP.

Historique

Version Description
4.1.0 Introduction de $_SERVER, rendant obsolète $HTTP_SERVER_VARS.

Exemples

Exemple #1 Exemple avec $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

www.example.com

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.



$_GET

$HTTP_GET_VARS [Obsolète]

$_GET -- $HTTP_GET_VARS [Obsolète]Variables HTTP GET

Description

Un tableau associatif des valeurs passées au script courant via les paramètres d'URL.

$HTTP_GET_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_GET_VARS et $_GET sont des variables différentes et que PHP les traite comme telles.)

Historique

Version Description
4.1.0 Introduction de $_GET, rendant obsolète $HTTP_GET_VARS.

Exemples

Exemple #1 Exemple avec $_GET

<?php
echo 'Bonjour ' htmlspecialchars($_GET["name"]) . '!';
?>

En assumant que l'utilisateur a entré http://example.com/?name=Yannick

L'exemple ci-dessus va afficher quelque chose de similaire à :

Bonjour Yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Note:

Les variables GET sont passées via urldecode().



$_POST

$HTTP_POST_VARS [Obsolète]

$_POST -- $HTTP_POST_VARS [Obsolète]Variables HTTP POST

Description

Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode POST.

$HTTP_POST_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_POST_VARS et $_POST sont des variables différentes et que PHP les traite comme telles.)

Historique

Version Description
4.1.0 Introduction de $_POST, rendant obsolète $HTTP_POST_VARS.

Exemples

Exemple #1 Exemple avec $_POST

<?php
echo 'Bonjour ' htmlspecialchars($_POST["name"]) . '!';
?>

En assumant que l'utilisateur a POSTé name=Yannick

L'exemple ci-dessus va afficher quelque chose de similaire à :

Bonjour Yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.



$_FILES

$HTTP_POST_FILES [Obsolète]

$_FILES -- $HTTP_POST_FILES [Obsolète]Variable de téléchargement de fichier via HTTP

Description

Un tableau associatif des valeurs téléchargées au script courant via le protocole HTTP et la méthode POST.

$HTTP_POST_FILES contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_POST_FILES et $_FILES sont des variables différentes et que PHP les traite comme telles)

Historique

Version Description
4.1.0 Introduction de $_FILES, rendant obsolète $HTTP_POST_FILES.

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi



$_REQUEST

$_REQUESTVariables de requête HTTP

Description

Un tableau associatif qui contient par défaut le contenu des variables $_GET, $_POST et $_COOKIE.

Historique

Version Description
5.3.0 Introduction de request_order. Cette directive affecte le contenu de la variable $_REQUEST.
4.3.0 Les informations de $_FILES ont été supprimées de la variable $_REQUEST.
4.1.0 Introduction de $_REQUEST.

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Note:

En ligne de commande, cette variable n'inclut pas les variables argv et argc : elles sont stockées dans le tableau $_SERVER.

Note:

Les variables contenues dans $_REQUEST sont fournies au script via les mécanismes d'entrée GET, POST, et COOKIE et donc, peuvent être modifiées par l'utilisateur final ; aussi, vous ne pouvez faire confiance à leur contenu. La présence ainsi que l'ordre de ces variables dans ce tableau sont définis suivant la directive de configuration variables_order.

Voir aussi



$_SESSION

$HTTP_SESSION_VARS [obsolète]

$_SESSION -- $HTTP_SESSION_VARS [obsolète]Variables de session

Description

Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant. Elle est automatiquement globale dans tous les contextes d'exécution. Voyez l'extension Sessions pour plus de détails sur comment est utilisée cette variable.

$HTTP_SESSION_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_SESSION_VARS et $_SESSION sont des variables différentes et que PHP les traite comme telles)

Historique

Version Description
4.1.0 Introduction de $_SESSION, rendant obsolète $HTTP_SESSION_VARS.

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi



$_ENV

$HTTP_ENV_VARS [Obsolète]

$_ENV -- $HTTP_ENV_VARS [Obsolète]Variables d'environnement

Description

Un tableau associatif de variable passé au script courant, via la méthode d'environnement.

Cette variable est importée dans l'espace de nom global de PHP, depuis l'environnement dans lequel l'exécutable PHP fonctionne. De nombreuses valeurs sont fournies par le shell qui exécute PHP, et différents systèmes pouvant disposer de différents shell, même un début de liste serait ici impossible. Reportez-vous à la documentation de votre shell pour connaître une liste de variables pré-définies.

Les autres variables d'environnement incluent les variables CGI, placées ici, indépendemment du fait que PHP fonctionne en tant que CGI ou bien que module du serveur.

$HTTP_ENV_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_ENV_VARS et $_ENV sont des variables différentes et que PHP les traite comme telles.)

Historique

Version Description
4.1.0 Introduction de $_ENV, rendant obsolète $HTTP_ENV_VARS.

Exemples

Exemple #1 Exemple avec $_ENV

<?php
echo 'Mon nom d\'utilisateur est ' .$_ENV["USER"] . '!';
?>

En assumant que "yannick" exécute ce script

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon nom d'utilisateur est yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi



$_COOKIE

$HTTP_COOKIE_VARS [Obsolète]

$_COOKIE -- $HTTP_COOKIE_VARS [Obsolète]Cookies HTTP

Description

Un tableau associatif de variables, passé au script courant, via des cookies HTTP.

$HTTP_COOKIE_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_COOKIE_VARS et $_COOKIE sont des variables différentes et que PHP les traite comme telles.)

Historique

Version Description
4.1.0 Introduction de $_COOKIE, rendant obsolète $HTTP_COOKIE_VARS.

Exemples

Exemple #1 Exemple avec $_COOKIE

<?php
echo 'Bonjour ' htmlspecialchars($_COOKIE["name"]) . '!';
?>

En supposant que le cookie "name" a été définit précédemment

L'exemple ci-dessus va afficher quelque chose de similaire à :

Bonjour Yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.



$php_errormsg

$php_errormsgLe dernier message d'erreur

Description

$php_errormsg est une variable qui contient le texte de la dernière erreur générée par PHP. Cette variable sera uniquement accessible dans le même contexte d'exécution que celui de la ligne qui a généré l'erreur, et uniquement si la directive de configuration track_errors est activée (elle est désactivée par défaut).

Note: Cette variable n'est disponible que lorsque track_errors a été activé dans le fichier php.ini.

Avertissement

Si un gestionnaire d'erreurs définit par l'utilisateur est actif (set_error_handler()), $php_errormsg ne sera définit que si le gestionnaire d'erreur retourne FALSE.

Exemples

Exemple #1 Exemple avec $php_errormsg

<?php
@strpos();
echo 
$php_errormsg;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Wrong parameter count for strpos()



$HTTP_RAW_POST_DATA

$HTTP_RAW_POST_DATADonnées POST brutes

Description

$HTTP_RAW_POST_DATA contient les données POST brutes. Voir always_populate_raw_post_data.



$http_response_header

$http_response_headerEn-têtes de réponse HTTP

Description

Le tableau $http_response_header est similaire à la fonction get_headers(). Lors de l'utilisation du gestionnaire HTTP, $http_response_header sera remplit avec les en-têtes de réponses HTTP. $http_response_header sera crée avec une portée locale.

Exemples

Exemple #1 Exemple avec $http_response_header

<?php
function get_contents() {
  
file_get_contents("http://example.com");
  
var_dump($http_response_header);
}
get_contents();
var_dump($http_response_header);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; charset=UTF-8"
}
NULL



$argc

$argcLe nombre d'arguments passé au script

Description

Contient le nombre d'arguments passé au script courant lorsqu'il est exécuté depuis la ligne de commande.

Note: Le nom du fichier contenant le script est toujours passé en tant qu'argument au script, toutefois, la valeur minimale de $argc est 1.

Note: Cette variable n'est disponible pas lorsque register_argc_argv est désactivé.

Exemples

Exemple #1 Exemple avec $argc

<?php
var_dump
($argc);
?>

Lorsque l'on exécute l'exemple avec la commande : php script.php arg1 arg2 arg3

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(4)



$argv

$argvTableau d'arguments passé au script

Description

Contient un tableau de tous les arguments passés au script lorsqu'il est passé depuis la ligne de commande.

Note: Le premier argument est toujours le nom du fichier contenant le script, toutefois, $argv[0] correspond au nom du script.

Note: Cette variable n'est disponible que lorsque register_argc_argv est activé.

Exemples

Exemple #1 Exemple avec $argv

<?php
var_dump
($argv);
?>

Lorsque l'on exécute l'exemple avec la commande : php script.php arg1 arg2 arg3

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}


Sommaire

  • Les Superglobales — Les Superglobales sont des variables internes qui sont toujours disponibles, quel que soit le contexte
  • $GLOBALS — Référence toutes les variables disponibles dans un contexte global
  • $_SERVER — Variables de serveur et d'exécution
  • $_GET — Variables HTTP GET
  • $_POST — Variables HTTP POST
  • $_FILES — Variable de téléchargement de fichier via HTTP
  • $_REQUEST — Variables de requête HTTP
  • $_SESSION — Variables de session
  • $_ENV — Variables d'environnement
  • $_COOKIE — Cookies HTTP
  • $php_errormsg — Le dernier message d'erreur
  • $HTTP_RAW_POST_DATA — Données POST brutes
  • $http_response_header — En-têtes de réponse HTTP
  • $argc — Le nombre d'arguments passé au script
  • $argv — Tableau d'arguments passé au script


Exceptions prédéfinies

Sommaire

Voir aussi les exceptions SPL.


Exception

Introduction

Exception est la classe de base pour toutes les exceptions.

Synopsis de la classe

Exception {
/* Propriétés */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )
final public string getMessage ( void )
final public Exception getPrevious ( void )
final public mixed getCode ( void )
final public string getFile ( void )
final public int getLine ( void )
final public array getTrace ( void )
final public string getTraceAsString ( void )
public string __toString ( void )
final private void __clone ( void )
}

Propriétés

message

Le message de l'exception

code

Le code de l'exception

file

Le nom du fichier dans lequel l'exception a été lancée

line

La ligne où l'exception a été lancée


Exception::__construct

(PHP 5 >= 5.1.0)

Exception::__constructConstruit l'exception

Description

public Exception::__construct() ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )

Construit l'exception.

Liste de paramètres

message

Le message de l'exception à lancer.

code

Le code de l'exception.

previous

L'exception précédente, utilisée pour le chaînage d'exception.

Historique

Version Description
5.3.0 Le paramètre previous a été ajouté.

Notes

Note:

Le message n'est PAS binary safe.



Exception::getMessage

(PHP 5 >= 5.1.0)

Exception::getMessageRécupère le message de l'exception

Description

final public string Exception::getMessage ( void )

Retourne le message de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message de l'exception, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec Exception::getMessage()

<?php
try {
    throw new 
Exception("Un message d'erreur");
} catch(
Exception $e) {
    echo 
$e->getMessage();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Un message d'erreur



Exception::getPrevious

(PHP 5 >= 5.3.0)

Exception::getPreviousRetourne l'exception précédente

Description

final public Exception Exception::getPrevious ( void )

Retourne l'exception précédente (le troisième paramètre de la méthode Exception::__construct()).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la précédente Exception si disponible, NULL sinon.

Exemples

Exemple #1 Exemple avec Exception::getPrevious()

Une boucle, on affiche et on capture les exceptions.

<?php
class MyCustomException extends Exception {}

function 
doStuff() {
    try {
        throw new 
InvalidArgumentException("Vous avez fais une erreur !"112);
    } catch(
Exception $e) {
        throw new 
MyCustomException("Un problème est survenu"911$e);
    }
}


try {
    
doStuff();
} catch(
Exception $e) {
    do {
        
printf("%s:%d %s (%d) [%s]\n"$e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
    } while(
$e $e->getPrevious());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/bjori/ex.php:8 Un problème est survenu (911) [MyCustomException]
/home/bjori/ex.php:6 Vous avez fais une erreur ! (112) [InvalidArgumentException]



Exception::getCode

(PHP 5 >= 5.1.0)

Exception::getCodeRécupère le code de l'exception

Description

final public mixed Exception::getCode ( void )

Retourne le code de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de l'exception, sous la forme d'un entier dans la classe Exception mais aussi sous la forme d'un autre type de données dans les classes héritant de Exception (par exemple, sous la forme d'une chaîne de caractères dans la classe PDOException).

Exemples

Exemple #1 Exemple avec Exception::getCode()

<?php
try {
    throw new 
Exception("Un message d'erreur"30);
} catch(
Exception $e) {
    echo 
"Le code de l'exception est : " $e->getCode();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le code de l'exception est : 30



Exception::getFile

(PHP 5 >= 5.1.0)

Exception::getFileRécupère le fichier dans lequel l'exception est survenue

Description

final public string Exception::getFile ( void )

Récupère le nom du fichier dans lequel l'exception a été créée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier dans lequel l'exception a été créée.

Exemples

Exemple #1 Exemple avec Exception::getFile()

<?php
try {
    throw new 
Exception;
} catch(
Exception $e) {
    echo 
$e->getFile();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/bjori/tmp/ex.php



Exception::getLine

(PHP 5 >= 5.1.0)

Exception::getLineRécupère la ligne dans laquelle l'exception est survenue

Description

final public int Exception::getLine ( void )

Récupère le numéro de la ligne où l'exception a été créée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de la ligne où l'exception a été créée.

Exemples

Exemple #1 Exemple avec Exception::getLine()

<?php
try {
    throw new 
Exception("Un message d'erreur");
} catch(
Exception $e) {
    echo 
"L'exception a été créée depuis la ligne : " $e->getLine();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

L'exception a été créée depuis la ligne : 3



Exception::getTrace

(PHP 5 >= 5.1.0)

Exception::getTraceRécupère la trace de la pile

Description

final public array Exception::getTrace ( void )

Retourne la trace de la pile de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace de la pile de l'exception sous la forme d'un tableau.

Exemples

Exemple #1 Exemple avec Exception::getTrace()

<?php
function test() {
 throw new 
Exception;
}

try {
 
test();
} catch(
Exception $e) {
 
var_dump($e->getTrace());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}



Exception::getTraceAsString

(PHP 5 >= 5.1.0)

Exception::getTraceAsStringRécupère la trace de la pile en tant que chaîne

Description

final public string Exception::getTraceAsString ( void )

Retourne la trace de la pile de l'exception, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace de la pile de l'exception, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec Exception::getTraceAsString()

<?php
function test() {
    throw new 
Exception;
}

try {
    
test();
} catch(
Exception $e) {
    echo 
$e->getTraceAsString();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}



Exception::__toString

(PHP 5 >= 5.1.0)

Exception::__toStringReprésente l'exception sous la forme d'une chaîne

Description

public string Exception::__toString ( void )

Retourne une représentation de l'exception sous forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation de l'exception, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec Exception::__toString()

<?php
try {
    throw new 
Exception("Message d'erreur");
} catch(
Exception $e) {
    echo 
$e;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

exception 'Exception' with message 'Message d'erreur' in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}



Exception::__clone

(PHP 5 >= 5.1.0)

Exception::__cloneClone l'exception

Description

final private void Exception::__clone ( void )

Tenter de cloner l'exception, qui résulte en une erreur fatale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Les exceptions ne sont pas clonables.


Sommaire



ErrorException

Introduction

Une exception pour les erreurs.

Synopsis de la classe

ErrorException extends Exception {
/* Propriétés */
protected int $severity ;
/* Méthodes */
public __construct ([ string $message [, int $code [, int $severity [, string $filename [, int $lineno ]]]]] )
final public int getSeverity ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

severity

La sévérité de l'exception

Exemples

Exemple #1 Utilisation de set_error_handler() pour changer tous les messages d'erreurs en ErrorException

<?php
function exception_error_handler($errno$errstr$errfile$errline ) {
 throw new 
ErrorException($errstr0$errno$errfile$errline);
}
set_error_handler("exception_error_handler");

/* Lance l'exception */
strpos();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fatal error: Uncaught exception 'ErrorException' with message 'Wrong parameter count for strpos()' in /home/bjori/tmp/ex.php:8
Stack trace:
#0 [internal function]: exception_error_handler(2, 'Wrong parameter...', '/home/bjori/php...', 8, Array)
#1 /home/bjori/php/cleandocs/test.php(8): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 8


ErrorException::__construct

(PHP 5 >= 5.1.0)

ErrorException::__constructConstruit l'exception

Description

public ErrorException::__construct() ([ string $message [, int $code [, int $severity [, string $filename [, int $lineno ]]]]] )

Construit l'exception.

Liste de paramètres

message

Le message de l'exception à lancer.

code

Le code de l'exception.

severity

Le degré de sévérité de l'exception.

filename

Le fichier depuis lequel l'exception est lancée.

lineno

Le numéro de ligne depuis laquelle l'exception est lancée.



ErrorException::getSeverity

(PHP 5 >= 5.1.0)

ErrorException::getSeverityRécupère la sévérité de l'exception

Description

final public int ErrorException::getSeverity ( void )

Retourne la sévérité de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le degré de sévérité de l'exception.

Exemples

Exemple #1 Exemple avec ErrorException::ErrorException()

<?php
try {
    throw new 
ErrorException("Exception message"075);
} catch(
ErrorException $e) {
    echo 
"La sévérité de l'exception est : " $e->getSeverity();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La sévérité de l'exception est : 75


Sommaire




Interfaces prédéfinies

Sommaire

Voir aussi les interfaces SPL.


L'interface Traversable

Introduction

Interface permettant de détecter si une classe peut être parcourue en utilisant foreach.

L'interface de base est abstraite et ne peut être implémentée seule. Elle doit être implémentée par soit IteratorAggregate, soit Iterator.

Note:

Les classes internes qui implémentent cette interface peuvent être utilisées dans une constructeur foreach et n'ont pas besoin d'implémenter IteratorAggregate ou Iterator.

Note:

Ceci est une interface du moteur interne qui ne peut être implémentée dans des scripts PHP. Vous devez utiliser à la place IteratorAggregate ou Iterator.

Sommaire de l'Interface

Traversable {
}

Cette interface n'a pas de méthode ; son seul but est d'être l'interface de base pour toutes les classes permettant de parcourir des objets.



L'interface Iterator

Introduction

Interface pour les itérateurs ou les objets externes qui peuvent être itérés eux-mêmes en interne.

Sommaire de l'Interface

Iterator extends Traversable {
/* Méthodes */
abstract public mixed current ( void )
abstract public scalar key ( void )
abstract public void next ( void )
abstract public void rewind ( void )
abstract public boolean valid ( void )
}

Exemple #2 Exemple simple

Cet exemple montre l'ordre d'appel des méthodes lors d'un appel à l'instruction foreach sur un itérateur.

<?php
class myIterator implements Iterator {
    private 
$position 0;
    private 
$array = array(
        
"premierelement",
        
"secondelement",
        
"dernierelement",
    );  

    public function 
__construct() {
        
$this->position 0;
    }

    function 
rewind() {
        
var_dump(__METHOD__);
        
$this->position 0;
    }

    function 
current() {
        
var_dump(__METHOD__);
        return 
$this->array[$this->position];
    }

    function 
key() {
        
var_dump(__METHOD__);
        return 
$this->position;
    }

    function 
next() {
        
var_dump(__METHOD__);
        ++
$this->position;
    }

    function 
valid() {
        
var_dump(__METHOD__);
        return isset(
$this->array[$this->position]);
    }
}

$it = new myIterator;

foreach(
$it as $key => $value) {
    
var_dump($key$value);
    echo 
"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "premierelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "dernierelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"

Iterator::current

(PHP 5 >= 5.0.0)

Iterator::currentRetourne l'élément courant

Description

abstract public mixed Iterator::current ( void )

Retourne l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Peut retourner tout type.



Iterator::key

(PHP 5 >= 5.0.0)

Iterator::keyRetourne la clé de l'élément courant

Description

abstract public scalar Iterator::key ( void )

Retourne la clé de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un scalaire en cas de succès, ou NULL si une erreur survient.

Erreurs / Exceptions

Émet une alerte de type E_NOTICE si une erreur survient.



Iterator::next

(PHP 5 >= 5.0.0)

Iterator::nextSe déplace sur l'élément suivant

Description

abstract public void Iterator::next ( void )

Se déplace de la position courant à l'élément suivant.

Note:

Cette méthode est appelée après chaque boucle foreach.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les valeurs retournées seront ignorées.



Iterator::rewind

(PHP 5 >= 5.0.0)

Iterator::rewindReplace l'itérateur sur le premier élément

Description

abstract public void Iterator::rewind ( void )

Replace l'itérateur sur le premier élément.

Note:

C'est la première méthode appelée lors du départ d'une boucle foreach. Elle ne sera pas exécutée après la boucle foreach.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Toutes les valeurs retournées sont ignorées.



Iterator::valid

(PHP 5 >= 5.0.0)

Iterator::validVérifie si la position courante est valide

Description

abstract public boolean Iterator::valid ( void )

Cette méthode est appelée après Iterator::rewind() et Iterator::next() pour vérifier si la position courante est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée sera transtypée en booléen, puis, évaluée. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



L'interface IteratorAggregate

Introduction

Interface pour créer un itérateur externe.

Sommaire de l'Interface

IteratorAggregate extends Traversable {
/* Méthodes */
abstract public Traversable getIterator ( void )
}

Exemple #1 Exemple simple

<?php
class myData implements IteratorAggregate {
    public 
$property1 "Propriété publique numéro un";
    public 
$property2 "Propriété publique numéro deux";
    public 
$property3 "Propriété publique numéro trois";

    public function 
__construct() {
        
$this->property4 "dernière propriété";
    }

    public function 
getIterator() {
        return new 
ArrayIterator($this);
    }
}

$obj = new myData;

foreach(
$obj as $key => $value) {
    
var_dump($key$value);
    echo 
"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(9) "property1"
string(19) "Propriété publique numéro un"

string(9) "property2"
string(19) "Propriété publique numéro deux"

string(9) "property3"
string(21) "Propriété publique numéro trois"

string(9) "property4"
string(13) "dernière propriété"


IteratorAggregate::getIterator

(PHP 5 >= 5.0.0)

IteratorAggregate::getIteratorRetourne un itérateur externe

Description

abstract public Traversable IteratorAggregate::getIterator ( void )

Retourne un itérateur externe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance d'un objet qui implémente un Iterator ou l'interface Traversable.

Erreurs / Exceptions

Émet une Exception en cas d'échec.


Sommaire



L'interface ArrayAccess

Introduction

Interface permettant d'accéder aux objets de la même façon que pour les tableaux.

Sommaire de l'Interface

ArrayAccess {
/* Méthodes */
abstract public boolean offsetExists ( mixed $offset )
abstract public mixed offsetGet ( mixed $offset )
abstract public void offsetSet ( mixed $offset , mixed $value )
abstract public void offsetUnset ( mixed $offset )
}

Exemple #1 Exemple simple

<?php
class obj implements arrayaccess {
    private 
$container = array();
    public function 
__construct() {
        
$this->container = array(
            
"un"    => 1,
            
"deux"  => 2,
            
"trois" => 3,
        );
    }
    public function 
offsetSet($offset$value) {
        if (
is_null($offset)) {
            
$this->container[] = $value;
        } else {
            
$this->container[$offset] = $value;
        }
    }
    public function 
offsetExists($offset) {
        return isset(
$this->container[$offset]);
    }
    public function 
offsetUnset($offset) {
        unset(
$this->container[$offset]);
    }
    public function 
offsetGet($offset) {
        return isset(
$this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new obj;

var_dump(isset($obj["deux"]));
var_dump($obj["deux"]);
unset(
$obj["deux"]);
var_dump(isset($obj["deux"]));
$obj["deux"] = "Une valeur";
var_dump($obj["deux"]);
$obj[] = 'Ajout 1';
$obj[] = 'Ajout 2';
$obj[] = 'Ajout 3';
print_r($obj);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
int(2)
bool(false)
string(10) "Une valeur"
obj Object
(
    [container:obj:private] => Array
        (
            [un] => 1
            [trois] => 3
            [deux] => Une valeur
            [0] => Ajout 1
            [1] => Ajout 2
            [2] => Ajout 3
        )

)

ArrayAccess::offsetExists

(PHP 5 >= 5.0.0)

ArrayAccess::offsetExistsIndique si une position existe dans un tableau

Description

abstract public boolean ArrayAccess::offsetExists ( mixed $offset )

Indique si une position existe.

Cette méthode est exécutée lorsque la fonction isset() ou empty() est appliquée à un objet qui implémente l'interface ArrayAccess.

Note:

Lors de l'utilisation de empty(), ArrayAccess::offsetGet() est appelé et vérifie si la valeur est vide, uniquement si ArrayAccess::offsetExists() retourne TRUE.

Liste de paramètres

offset

Une position à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Note:

La valeur retournée sera transtypée en booléen si une valeur non booléenne est retournée.

Exemples

Exemple #1 Exemple avec ArrayAccess::offsetExists()

<?php
class obj implements arrayaccess {
    public function 
offsetSet($offset$value) {
        
var_dump(__METHOD__);
    }
    public function 
offsetExists($var) {
        
var_dump(__METHOD__);
        if (
$var == "foobar") {
            return 
true;
        }
        return 
false;
    }
    public function 
offsetUnset($var) {
        
var_dump(__METHOD__);
    }
    public function 
offsetGet($var) {
        
var_dump(__METHOD__);
        return 
"value";
    }
}

$obj = new obj;

echo 
"Exécute obj::offsetExists()\n";
var_dump(isset($obj["foobar"]));

echo 
"\nExécute obj::offsetExists() et obj::offsetGet()\n";
var_dump(empty($obj["foobar"]));

echo 
"\nExécute obj::offsetExists(), *et non pas* obj:offsetGet() car il n'y a rien à lire\n";
var_dump(empty($obj["foobaz"]));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exécute obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)

Exécute obj::offsetExists() et obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)

Exécute obj::offsetExists(), *et non pas* obj:offsetGet() car il n'y a rien à lire
string(17) "obj::offsetExists"
bool(true)



ArrayAccess::offsetGet

(PHP 5 >= 5.0.0)

ArrayAccess::offsetGetPosition à lire

Description

abstract public mixed ArrayAccess::offsetGet ( mixed $offset )

Retourne la valeur à la position donnée.

Cette méthode est exécutée lorsque l'on vérifie si une position est empty().

Liste de paramètres

offset

La position à lire.

Notes

Note:

Depuis PHP 5.3.4, la vérification du prototype a été supprimée et il devient possible de retourner par référence. Ceci permet les modifications indirectes des dimensions de l'objet ArrayAccess.

Une modification directe remplace complètement la valeur dans la dimension du tableau comme dans $obj[6] = 7. Une modification indirecte, par contre, ne change qu'une partie de la dimension ou intervient lors de l'assignation par référence vers une autres variable, comme dans $obj[6][7] = 7 ou encore $var =& $obj[6] suivi de l'incrémentation avec ++ et la décrémentation avec --.

Les modifications directes appellent ArrayAccess::offsetSet() alors que les modifications indirectes appellent ArrayAccess::offsetGet(). Dans ce cas, l'implémentation de ArrayAccess::offsetGet() doit retourner une référence sinon un message E_NOTICE sera levé.

Valeurs de retour

Peut retourner n'importe quel type de valeur.

Voir aussi



ArrayAccess::offsetSet

(PHP 5 >= 5.0.0)

ArrayAccess::offsetSetPosition à assigner

Description

abstract public void ArrayAccess::offsetSet ( mixed $offset , mixed $value )

Assigne une valeur à une position donnée.

Liste de paramètres

offset

La position à laquelle assigner une valeur.

value

La valeur à assigner.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Le paramètre offset sera définit à NULL si une autre valeur n'est pas disponible, comme dans l'exemple suivant :

<?php
$arrayaccess
[] = "première valeur";
$arrayaccess[] = "seconde valeur";
print_r($arrayaccess);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => première valeur
    [1] => seconde valeur
)

Note:

Cette fonction n'est pas appelée dans les assignations par référence et lors de changements de dimensions indirects (indirects dans le sens d'un changement d'une sous-dimension ou lors de l'assignation par référence à une autre variable). A la place, ArrayAccess::offsetGet() est appelée. Cette opération ne fonctionnera que si cette méthode retourne une référence, ceci n'étant possible que depuis PHP 5.3.4.



ArrayAccess::offsetUnset

(PHP 5 >= 5.0.0)

ArrayAccess::offsetUnsetPosition à supprimer

Description

abstract public void ArrayAccess::offsetUnset ( mixed $offset )

Supprime une position.

Note:

Cette méthode ne sera pas appelée lors du transtypage en (unset).

Liste de paramètres

offset

La position à supprimer.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



L'interface Serializable

Introduction

Interface permettant de personnaliser la linéarisation.

Les classes implémentant cette interface ne supportent plus __sleep() et __wakeup(). La méthode de linéarisation est appelée chaque fois qu'une instance doit être linéarisée. Elle n'appelle pas la méthode __destruct() et n'a aucun effet sur le contenu de cette méthode. Lorsque les données sont linéarisées, la classe est connue et la méthode unserialize() appropriée est appelée comme constructeur au lieu d'appeler __construct(). Si vous devez appeler le constructeur standard, vous pouvez le faire dans la méthode.

Sommaire de l'Interface

Serializable {
/* Méthodes */
abstract public string serialize ( void )
abstract public mixed unserialize ( string $serialized )
}

Exemple #1 Exemple simple

<?php
class obj implements Serializable {
    private 
$data;
    public function 
__construct() {
        
$this->data "Mes données privées";
    }
    public function 
serialize() {
        return 
serialize($this->data);
    }
    public function 
unserialize($data) {
        
$this->data unserialize($data);
    }
    public function 
getData() {
        return 
$this->data;
    }
}

$obj = new obj;
$ser serialize($obj);

$newobj unserialize($ser);

var_dump($newobj->getData());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(15) "Mes données privées"

Serializable::serialize

(PHP 5 >= 5.1.0)

Serializable::serializeReprésentation linéaire de l'objet

Description

abstract public string Serializable::serialize ( void )

Retourne la représentation en chaîne de caractères de l'objet.

Note:

Cette méthode se comporte comme un destructeur de l'objet. La méthode __destruct() ne sera pas appelée après cette méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation de l'objet en chaîne de caractères, ou bien NULL

Erreurs / Exceptions

Émet une Exception si un autre type que chaîne de caractères ou NULL est retourné.

Voir aussi



Serializable::unserialize

(PHP 5 >= 5.1.0)

Serializable::unserializeConstruit un objet

Description

abstract public mixed Serializable::unserialize ( string $serialized )

Called during unserialization of the object.

Note:

Cette méthode se comporte comme un constructeur d'objet. La méthode __construct() ne sera pas appelée après cette méthode.

Liste de paramètres

serialized

La représentation en chaîne de l'objet.

Valeurs de retour

Retourne la valeur originale délinéarisée.

Voir aussi


Sommaire




Options et paramètres de contexte

PHP offre divers options et paramètres de contexte, qui peuvent être utilisés avec tous les systèmes de fichiers et gestionnaires de flux. Le contexte est créé avec la fonction stream_context_create(). Les options sont définies avec la fonction stream_context_set_option() et les paramètres, avec la fonction stream_context_set_params().


Options de contexte des sockets

Options de contexte des socketsListe des options de contexte des sockets

Description

Les options de contexte des sockets sont disponibles pour tous les gestionnaires fonctionnant via les sockets, comme tcp, http et ftp.

Options

bindto

Utilisé pour spécifier l'adresse IP (soit IPv4 ou IPv6), et/ou le numéro du port que PHP utilisera pour accéder au réseau. La syntaxe est ip:port. Le fait de définir l'IP ou le port à 0 permettra au système de choisir lui-même le port et/ou l'IP.

Note:

Vu que FTP crée 2 sockets de connexion lors d'une opération normale, le numéro du port ne peut être spécifié en utilisant cette option.

backlog

Utilisé pour limiter le nombre de connections actives dans la liste d'attente du socket.

Note:

Ceci n'est applicable qu'à la fonction stream_socket_server().

Historique

Version Description
5.1.0 Ajout du paramètre bindto.
5.3.3 Ajout du paramètre backlog.

Exemples

Exemple #1 Exemple d'utilisation du paramètre bindto

<?php
// Connexion à Internet en utilisant l'IP '192.168.0.100'
$opts = array(
    
'socket' => array(
        
'bindto' => '192.168.0.100:0',
    ),
);


// Connexion à Internet en utilisant l'IP '192.168.0.100' et le port '7000'
$opts = array(
    
'socket' => array(
        
'bindto' => '192.168.0.100:7000',
    ),
);


// Connexion à Internet en utilisant le port '7000'
$opts = array(
    
'socket' => array(
        
'bindto' => '0:7000',
    ),
);


// Création du contexte...
$context stream_context_create($opts);

// ...et l'utilise pour récupérer les données
echo file_get_contents('http://www.example.com'false$context);

?>



Options de contexte HTTP

Options de contexte HTTPListe des options de contexte HTTP

Description

Options de contexte pour les protocoles http:// et https://.

Options

method chaîne de caractères

GET, POST, ou n'importe quelle autre méthode HTTP supportée par le serveur disant.

Par défaut, vaut GET.

header chaîne de caractères

En-têtes supplémentaires à envoyer lors de la requête. Les valeurs de cette option écraseront les autres valeurs (comme User-agent:, Host:, et Authentication:).

user_agent chaîne de caractères

Valeur à envoyer avec l'en-tête User-Agent:. Cette valeur ne doit être utilisée que si l'agent utilisateur n'est pas spécifié dans l'option de contexte header ci-dessus.

Par défaut, la valeur de l'option de configuration user_agent du fichier php.ini sera utilisée.

content chaîne de caractères

Les données supplémentaires à envoyer après les en-têtes. Typiquement utilisées lors des requêtes POST ou PUT.

proxy chaîne de caractères

URI de l'adresse du proxy. (e.g. tcp://proxy.example.com:5100).

request_fulluri booléen

Lorsque défini à TRUE, l'URI entière sera utilisée lors de la construction de la requête. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). Bien que ce format de demande ne soit pas standard, certains serveurs de proxy le demandent.

Par défaut, vaut FALSE.

follow_location integer

Suit les redirections Location: ...

Par défaut, vaut TRUE.

max_redirects integer

Le nombre maximal de redirections à suivre. La valeur 1 ou inférieure signifie qu'aucune redirection ne sera suivie.

Par défaut, vaut 20.

protocol_version nombre décimal

Version du protocole HTTP.

Par défaut, vaut 1.0.

Note:

Dans les versions antérieures à 5.3.0, PHP n'implémente pas le décodage du transfert. Aussi, si la valeur est définie à 1.1, il est de votre responsabilité d'être conforme à 1.1.

timeout nombre décimal

Délai maximal d'attente pour la lecture, sous la forme d'un nombre décimal (e.g. 10.5).

Par défaut, la valeur de l'option de configuration default_socket_timeout du fichier php.ini sera utilisée.

ignore_errors booléen

Récupère le contenu même lors de la réception d'un code d'échec.

Par défaut, vaut FALSE

Historique

Version Description
5.3.4 Ajout du paramètre follow_location.
5.3.0 Le paramètre protocol_version supporte les transferts chunked lorsqu'on lui assigne la valeur 1.1.
5.2.10 Ajout du paramètre ignore_errors.
5.2.10 Le paramètre header peut désormais être un tableau indexé numériquement.
5.2.1 Ajout du paramètre timeout.
5.1.0 Ajout de la possibilité d'utiliser des proxy HTTPS.
5.1.0 Ajout du paramètre max_redirects.
5.1.0 Ajout du paramètre protocol_version.

Exemples

Exemple #1 Récupération d'une page et envoi de données POST

<?php

$postdata 
http_build_query(
    array(
        
'var1' => 'du contenu',
        
'var2' => 'doh'
    
)
);

$opts = array('http' =>
    array(
        
'method'  => 'POST',
        
'header'  => 'Content-type: application/x-www-form-urlencoded',
        
'content' => $postdata
    
)
);

$context  stream_context_create($opts);

$result file_get_contents('http://example.com/submit.php'false$context);

?>

Exemple #2 Ignore les redirections mais récupère les en-têtes et le contenu

<?php

$url 
"http://www.example.org/header.php";

$opts = array(
       
'http' => array('method' => 'GET',
                                       
'max_redirects' => '0',
                                       
'ignore_errors' => '1')
       );

$context stream_context_create($opts);
$stream fopen($url'r'false$context);

// informations sur les en-têtes et métadonnées du flux
var_dump(stream_get_meta_data($stream));

// données actuelles de $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Notes

Note: Options de contexte du flux sous-jacent
Des options de contexte supplémentaires peuvent être supportées par le transport sous-jacent. Pour les flux http://, référez-vous aux options de contexte du transport tcp://. Pour les flux https://, référez-vous aux options de contexte du transport ssl://.

Note: Ligne de statut HTTP
Lorsque ce gestionnaire de flux suit une redirection, wrapper_data, retourné par la fonction stream_get_meta_data() ne doit pas contenir obligatoirement la ligne de statut HTTP qui s'applique à des données de contenu à l'index 0.

array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permantenly',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
La première requête retourne une 301 (redirection permanente), ainsi, le gestionnaire de flux suit automatiquement la redirection pour récupérer une réponse 200 (index = 4).



Options de contexte FTP

Options de contexte FTPListe des options de contexte FTP

Description

Options de contexte pour les protocoles ftp:// et ftps://.

Options

overwrite booléen

Permet l'écrasement des fichiers existants sur le serveur distant. Ne s'applique qu'en mode écriture.

Par défaut, FALSE.

resume_pos entier

Position dans le fichier à partir de laquelle on commence le transfert. Ne s'applique qu'en mode écriture.

Par défaut, vaut 0 (Début du fichier).

proxy chaîne de caractères

URI de l'adresse du proxy FTP. Ne s'applique qu'aux opérations de lecture de fichiers. Par exemple : tcp://squid.example.com:8000.

Historique

Version Description
5.1.0 Ajout du paramètre proxy.
5.0.0 Ajout des paramètres overwrite et resume_pos.

Notes

Note: Options de contexte du flux sous-jacent
Des options de contexte supplémentaires peuvent être supportées par le transport sous-jacent. Pour les flux ftp://, référez-vous aux options de contexte du transport tcp://. Pour les flux ftps://, référez-vous aux options de contexte du transport ssl://.



Options de contexte SSL

Options de contexte SSLListe des options de contexte SSL

Description

Options de contexte pour les protocoles ssl:// et tls://.

Options

verify_peer booléen

Nécessite une vérification du certificat SSL utilisé.

Par défaut, vaut FALSE.

allow_self_signed booléen

Permet les certificats autosignés.

Par défaut, vaut FALSE

cafile string

Endroit où se trouve le fichier de l'autorité du certificat sur le système de fichiers local et qui devra être utilisé avec l'option de contexte verify_peer pour identifier le pair distant.

capath string

Si cafile n'est pas spécifié ou si le certificat n'a pas été trouvé, une recherche dans le dossier pointé par capath sera effectuée afin d'y trouver un certificat valide. capath doit être un dossier de certificat valide.

local_cert string

Chemin vers le certificat local, sur le système de fichiers. Ce doit être un fichier encodé PEM qui contient votre certificat et votre clé privée. Il peut, optionnellement, contenir la chaîne de certification de l'émetteur.

passphrase string

La phrase passe avec laquelle votre fichier local_cert a été encodé.

CN_match string

Nom commun attendu. PHP effectuera un nombre limité de recherches sur les jokers. Si le nom commun ne correspond pas à celui-là, la connexion échouera.

verify_depth integer

Échoue si la chaîne de certification est trop profonde.

Par défaut, aucune vérification.

ciphers string

Définit la liste des chiffrements. Le format de la chaîne est décrite sur la page » ciphers(1).

Par défaut, vaut DEFAULT.

capture_peer_cert boolean

Si définit à TRUE, un option de contexte peer_certificate sera créée, contenant le certificat de l'émetteur.

capture_peer_cert_chain boolean

Si définit à TRUE, une option de contexte peer_certificate_chain sera créée, contenant la chaîne de certification.

SNI_enabled boolean

Si vaut TRUE, l'indication sur le nom du serveur sera activée. Le fait d'activer SNI permet d'utiliser plusieurs certificats sur la même adresse IP.

SNI_server_name string

Si définie, alors cette valeur sera utilisée comme nom dans l'indication sur le nom du serveur. Si cette valeur n'est pas définie, alors le nom du serveur sera déduit par rapport au nom de l'hôte utilisé lors de l'ouverture du flux.

Historique

Version Description
5.3.2 Ajout de SNI_enabled et de SNI_server_name.
5.0.0 Ajout des paramètres capture_peer_cert, capture_peer_chain et ciphers.

Notes

Note: Vu que ssl:// est un protocole sous-jacent pour les gestionnaires https:// et ftps://, toutes les options de contexte appliquées à ssl:// seront également appliquées à https:// et ftps://.

Note: Afin que SNI (Server Name Indication) soit disponible, PHP doit être compilé avec OpenSSL 0.9.8j ou supérieur. Utilisez la constante OPENSSL_TLSEXT_SERVER_NAME pour déterminer si SNI est supporté ou non.



Options de contexte CURL

Options de contexte CURLListe des options de contexte CURL

Description

Les options de contexte CURL sont disponibles lorsque l'extension CURL a été compilée en utilisant l'option de configuration --with-curlwrappers .

Options

method chaîne de caractères

GET, POST, ou n'importe quelle méthode HTTP supportée par le serveur distant.

Par défaut, vaut GET.

header chaîne de caractères

En-têtes additionnels à envoyer lors de la requête. Les valeurs de cette option écraseront les autres valeurs (comme User-agent:, Host:, et Authentication:).

user_agent chaîne de caractères

Valeur à envoyer avec l'en-tête User-Agent:.

Par défaut, la valeur de la directive user_agent du fichier php.ini sera utilisée.

content chaîne de caractères

Les données additionnelles à envoyer après les en-têtes. Cette option n'est pas utilisée pour les requêtes GET ou HEAD.

proxy chaîne de caractères

URI spécifiant l'adresse du proxy. (e.g. tcp://proxy.exemple.com:5100).

max_redirects integer

Le nombre maximal de redirections à suivre. La valeur 1 ou inférieure signifie qu'il ne faut suivre aucune redirection.

Par défaut, vaut 20.

curl_verify_ssl_host booléen

Vérifie l'hôte.

Par défaut, vaut FALSE

Note:

Cette option est disponible pour les protocoles http et ftp.

curl_verify_ssl_peer booléen

Demande une vérification du certificat SSL utilisé.

Par défaut, vaut FALSE

Note:

Cette option est disponible pour les protocoles http et ftp.

Exemples

Exemple #1 Récupère une page et envoie des données avec la méthode POST

<?php

$postdata 
http_build_query(
    array(
        
'var1' => 'du contenu',
        
'var2' => 'doh'
    
)
);

$opts = array('http' =>
    array(
        
'method'  => 'POST',
        
'header'  => 'Content-type: application/x-www-form-urlencoded',
        
'content' => $postdata
    
)
);

$context  stream_context_create($opts);

$result file_get_contents('http://example.com/submit.php'false$context);

?>



Les options du contexte Phar

Les options du contexte PharListe des options du contexte Phar

Description

Les options de contexte pour le gestionnaire phar://.

Options

compress int

Une des constantes de compression Phar.

metadata mixed

Les méta-données Phar. Voir Phar::setMetadata().

Voir aussi



Paramètres de contexte

Paramètres de contexteListe des paramètres de contexte

Description

Ces paramètres peuvent être définis sur un contexte, en utilisant la fonction stream_context_set_params().

Liste de paramètres

notification callback

Une fonction de rappel (callback), à appeler lorsqu'un événement survient sur le flux.

Voir la fonction stream_notification_callback() pour plus de détails.


Sommaire



Liste des protocoles et des gestionnaires supportés

PHP dispose de nombreux protocoles natifs, pour différents styles d'URL, à utiliser avec des fonctions de fichiers telles que fopen(), copy(), file_exists() et filesize(). En plus de ces protocoles, vous pouvez écrire vos propres protocoles et les enregistrer avec la fonction stream_wrapper_register().

Note: La syntaxe de l'URL utilisée pour décrire un gestionnaire est exclusivement de la forme scheme://.... Les syntaxes de la forme scheme:/ et scheme: ne sont pas supportées.


file://

file://Système de fichiers

Description

Filesystem est le gestionnaire par défaut de PHP et il représente les fichiers locaux. Lorsqu'un chemin relatif est spécifié (un chemin qui ne commence pas par /, \, \\, ou une lettre de lecteur Windows), le chemin sera calculé relativement à la position courante. Dans de nombreux cas, c'est le dossier de résidence du script, à moins qu'il n'ait été modifié. En utilisant la version CLI, le chemin sera calculé par rapport au dossier d'appel du script.

Avec certaines fonctions comme fopen() et file_get_contents(), include_path peut être analysé pour y trouver les fichiers, si un chemin relatif est fourni.

Options

  • /chemin/vers/fichier.ext
  • chemin/relatif/vers/fichier.ext
  • fichierDansCwd.ext
  • C:/chemin/vers/fichierWindows.ext
  • C:\chemin\vers\fichierWindows.ext
  • \\smbserver\partage\chemin\vers\fichierWindows.ext
  • file:///chemin/vers/fichier.ext

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par allow_url_fopen Non
Autorise la lecture Oui
Autorise l'écriture Yes
Autorise l'ajout Oui
Autorise la lecture et l'écriture simultanément Oui
Support de la fonction stat() Oui
Support de la fonction unlink() Oui
Support de la fonction rename() Oui
Support de la fonction mkdir() Oui
Support de la fonction rmdir() Oui

Historique

Version Description
5.0.0 Ajout de file://.



http://

https://

http:// -- https://Accès aux URLs HTTP(s)

Description

Permet des accès en lecture uniquement, pour des fichiers accessibles sur le réseau avec la méthode GET de HTTP 1.0. Un en-tête Host: est envoyé avec la requête, pour gérer les hôtes virtuels, basés sur des noms. Si vous avez configuré une version de navigateur avec l'option user_agent dans votre fichier php.ini, ou via le contexte de flux, il sera aussi utilisé dans votre requête.

Le flux donne l'accès au corps (body) de la ressource. Les entêtes sont stockés dans la variable $http_response_header.

Si il vous est important de savoir l'URL de la ressource depuis laquelle votre document provient (après l'exécution de toutes les redirections), vous devrez analyser toutes les en-têtes retournés par le flux.

La directive from sera utilisée pour l'en-tête From: si elle a été définie, et non écrasée par le Options et paramètres de contexte.

Options

  • http://example.com
  • http://example.com/fichier.php?var1=val1&var2=val2
  • http://user:password@example.com
  • https://example.com
  • https://example.com/fichier.php?var1=val1&var2=val2
  • https://user:password@example.com

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par allow_url_fopen Oui
Autorise la lecture Oui
Autorise l'écriture Non
Autorise l'ajout No
Autorise la lecture et l'écriture simultanément N/A
Support de la fonction stat() Non
Support de la fonction unlink() Non
Support de la fonction rename() Non
Support de la fonction mkdir() Non
Support de la fonction rmdir() Non

Historique

Version Description
4.3.7 Détecte les serveurs IIS bogués pour éviter les erreurs "SSL: Fatal Protocol Error".
4.3.0 Ajout de https://.
4.0.5 Ajout du support des redirections.

Exemples

Exemple #1 Détecte la dernière URL après des redirections

<?php
$url 
'http://www.example.com/redirecting_page.php';

$fp fopen($url'r');

$meta_data stream_get_meta_data($fp);
foreach(
$meta_data['wrapper_data'] as $response) {

    
/* Où sommes-nous redirigés ? */
    
if (substr(strtolower($response), 010) == 'location: ') {

        
/* mise à jour de $url avec le chemin après redirection */
        
$url substr($response18);
    }

}

?>

Exemple #2 Envoi d'en-têtes personnalisés avec la requête HTTP

Les en-têtes personnalisés peuvent être envoyés avec une requête HTTP en tirant avantage d'un effet de bord dans la gestion de la configuration INI de user_agent. Définissez user_agent en n'importe quelle chaîne valide (comme la chaîne par défaut, PHP/version) suivi d'un caractère de retour chariot et d'un caractère de nouvelle ligne, suivis des entêtes additionnels. Cette méthode fonctionne en PHP 4 ainsi que toutes les versions suivantes.

<?php
ini_set
('user_agent'"PHP\r\nX-MyCustomHeader: Foo");

$fp fopen('http://www.example.com/index.php''r');
?>

La requête suivante sera émise :

GET /index.php HTTP/1.0
Host: www.example.com
User-Agent: PHP
X-MyCustomHeader: Foo

Notes

Note: HTTPS n'est supporté que si l'extension openssl est active.

Les connexions HTTP sont en lecture seul ; l'écriture de données ou la copie de fichier vers une ressource HTTP n'est pas supportée.

L'envoi de requêtes POST et PUT, peut être effectué, par exemple, avec l'aide des contextes HTTP.

Voir aussi



ftp://

ftps://

ftp:// -- ftps://Accès aux URLs FTP(s)

Description

Permet l'accès aux fichiers existants, et la création de fichiers via FTP. Si le serveur ne supporte pas les connexions en mode passif, la connexion échouera.

Vous pouvez ouvrir des fichiers en lecture ou en écriture, mais pas les deux en même temps. Si le fichier distant existe déjà sur le serveur ftp et que vous tentez de l'ouvrir en écriture alors que vous n'avez pas spécifié l'option overwrite dans le contexte, la connexion échouera. Si vous devez réécrire des fichiers existants en utilisant ftp, spécifiez l'option overwrite dans le contexte et ouvrez le fichier en écriture. Alternativement, vous pouvez utiliser l'extension FTP.

Si vous avez définie la directive from dans le fichier php.ini, alors cette valeur sera émise en tant que mot de passe pour les FTP anonymes.

Options

  • ftp://example.com/pub/fichier.txt
  • ftp://user:password@example.com/pub/fichier.txt
  • ftps://example.com/pub/fichier.txt
  • ftps://user:password@example.com/pub/fichier.txt

Options

Résumé du gestionnaire
Attribut PHP 4 PHP 5
Restreint par allow_url_fopen Oui Oui
Autorise la lecture Oui Oui
Autorise l'écriture Oui (nouveau fichier uniquement) Oui (nouveau fichier/fichier existant avec le paramètre overwrite)
Autorise l'ajout Non Oui
Autorise la lecture et l'écriture simultanément Non Non
Support de la fonction stat() Non Depuis PHP 5.0.0 : filesize(), filetype(), file_exists(), is_file(), et is_dir() uniquement. Depuis PHP 5.1.0 : filemtime().
Support de la fonction unlink() Non Oui
Support de la fonction rename() Non Oui
Support de la fonction mkdir() Non Oui
Support de la fonction rmdir() Non Oui

Historique

Version Description
4.3.0 Ajout de ftps://.

Notes

Note:

FTPS n'est supporté que lorsque l'extension openssl est active.

Si le serveur ne supporte pas SSL, alors la connexion passera automatiquement en connexion ftp non chiffrée.

Note: L'ajout
Depuis PHP 5.0.0, les fichiers peuvent être ajoutés avec le gestionnaire d'URL ftp://. Dans les précédentes versions, si vous tentez d'ajouter un fichier avec ce gestionnaire, une erreur sera émise.



php://

php://Accès aux divers flux I/O

Description

php://stdin, php://stdout et php://stderr donnent un accès direct aux flux correspondants d'entrée ou de sortie du processus PHP. Le flux représente un descripteur dupliqué du fichier, donc, si vous ouvrez php://stdin et que vous le fermez plus tard, vous fermez uniquement le descripteur, le flux référencé par STDIN ne sera pas affecté. Notez que le comportement de PHP à ce sujet est relativement instable dans les versions antérieures à 5.2.1. Il est recommandé d'utiliser simplement les constantes STDIN, STDOUT et STDERR au lieu d'ouvrir manuellement les flux en utilisant ces gestionnaires.

php://output vous permet d'écrire dans le buffer de sortie, de la même manière que print() et echo().

php://input permet de lire les données brutes de la requête. Pour les requêtes POST, cette méthode est préférable à $HTTP_RAW_POST_DATA car elle ne dépend pas d'une directive de php.ini. De plus, cette solution est moins consomatrice en mémoire que l'activation de $HTTP_RAW_POST_DATA via la directive always_populate_raw_post_data. php://input n'est pas disponible avec enctype="multipart/form-data".

Note: Un flux ouvert au moyen de php://input ne peut être lu qu'une seule fois, le flux ne supporte pas les opérations de déplacement. En revanche, en fonction de la SAPI considérée, il peut être possible de réouvrir un deuxième flux sur php://input et recommencer la lecture. Ceci n'est possible que si le corps de la requête a été sauvegardé. C'est le cas typiquement pour les requêtes de type POST mais pas pour celles d'autres types comme PUT ou PROPFIND.

php://stdin et php://input sont en lecture seule, tandis que php://stdout, php://stderr et php://output sont en écriture seule.

php://fd permet des accès directs au descripteur de fichier fourni. Par exemple, php://fd/3 permet d'accéder au descripteur 3 du fichier.

php://filter est une sorte de méta-gestionnaire, qui permet l'utilisation de filtre avec les données d'entrée au moment du démarrage du script. C'est pratique avec des fonctions compactes comme readfile(), file() et file_get_contents() où il n'y a pas d'opportunité d'appliquer un filtre aux données lues.

Le gestionnaire de php://filter prend les 'paramètres' suivants dans le 'chemin'.

Options

  • php://stdin
  • php://stdout
  • php://stderr
  • php://output
  • php://input
  • php://filter (disponible depuis PHP 5.0.0)
  • php://memory (disponible depuis PHP 5.1.0)
  • php://temp (disponible depuis PHP 5.1.0)
  • php://fd (disponible depuis PHP 5.3.6)

Options

Résumé des gestionnaires (pour php://filter, voyez le résumé du filtre)
Attribut Supporté
Restreint par allow_url_fopen Non
Restreint par allow_url_include php://input, php://stdin, php://memory et php://temp uniquement.
Autorise la lecture php://stdin, php://input, php://fd, php://memory et php://temp uniquement.
Autorise l'écriture php://stdout, php://stderr, php://output, php://fd, php://memory et php://temp uniquement.
Autorise l'ajout php://stdout, php://stderr, php://output, php://fd, php://memory et php://temp uniquement. (Équivalent à l'écriture)
Autorise la lecture et l'écriture simultanément php://fd, php://memory et php://temp uniquement.
Support de la fonction stat() php://memory et php://temp uniquement.
Support de la fonction unlink() Non
Support de la fonction rename() Non
Support de la fonction mkdir() Non
Support de la fonction rmdir() Non
Support de la fonction stream_select() php://stdin, php://stdout, php://stderr, php://fd et php://temp uniquement.

Exemples

Exemple #1 /ressource=<flux à filtrer> (obligatoire)

Ce paramètre doit être situé à la fin de votre chaîne php://filter et doit pointer sur le flux à filtrer.

<?php
/* Ceci est équivalent à :
   readfile("http://www.example.com");
   tant qu'aucun filtre n'est spécifié */

readfile("php://filter/resource=http://www.example.com");
?>

Exemple #2 /read=<liste de filtres de la chaîne de lecture> (optionnel)

Ce paramètre prend un ou plusieurs noms de filtre, séparé par le caractère pipe |.

<?php
/* Ceci affichera le contenu de
   www.example.com entièrement en majuscule */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* Ceci fera la même chose que ci-dessus
   mais en plus, encodera le contenu en ROT13 */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

Exemple #3 /write=<liste de filtres de la chaîne d'écriture> (optionnel)

Ce paramètre prendre un ou plusieurs noms de filtre, séparé par le caractère pipe |.

<?php
/* Ceci filtrera la chaîne "Hello World"
   via le filtre rot13, puis, l'écrit dans le
   fichier example.txt du dossier courant */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>

/<liste de filtres des deux chaînes> (optionnel) Tous les filtres qui ne sont pas préfixés avec read= ou write= seront appliqués aux deux chaînes de filtres, en lecture et en écriture.

Le gestionnaire php://memory stocke les données en mémoire. php://temp fonctionne de la même façon, mais utilise des fichiers temporaires pour stocker les données lorsqu'une certaine limite mémoire est atteinte (par défaut, 2 Mo).

Le gestionnaire php://temp prend les paramètres suivants, qui sont les parties du chemin :

Exemple #4 /maxmemory:<nombre d'octets> (optionnel)

Ce paramètre permet de changer la valeur de la limite mémoire (lorsque les données sont déplacées vers un fichier temporaire).

<?php
$fiveMBs 
1024 1024;
$fp fopen("php://temp/maxmemory:$fiveMBs"'r+');

fputs($fp"hello\n");

// Lit ce que nous venons d'écrire
rewind($fp);
echo 
stream_get_contents($fp);
?>


zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip://Flux compressés

Description

zlib: PHP 4.0.4 - PHP 4.2.3 (systèmes avec fopencookie uniquement)

compress.zlib:// et compress.bzip2:// PHP 4.3.0 et suivant

zlib: fonctionne comme gzopen(), hormis le fait que le flux peut être utilisé directement avec fread() et les autres fonctions de système de fichier. Cette notation est obsolète depuis PHP 4.3.0, étant données les ambiguïtés dues aux noms de fichiers contenant des deux points ':'. Utilisez plutôt compress.zlib://.

compress.zlib:// et compress.bzip2:// sont respectivement équivalents à gzopen() et bzopen(), et ils opèrent même sur les systèmes qui ne supportent pas fopencookie.

L'extension ZIP enregistre le gestionnaire zip:.

Options

  • zlib:
  • compress.zlib://
  • compress.bzip2://

Options

Résumé des gestionnaires
Attribut Supporté
Limité par allow_url_fopen Non
Autorise la lecture Oui
Autorise l'écriture Oui
Autorise l'ajout Oui
Autorise la lecture et l'écriture simultanément Non
Support de la fonction stat() Non, utilisez le gestionnaire file:// pour avoir des informations sur les fichiers compressés.
Support de la fonction unlink() Non, utilisez le gestionnaire file:// pour avoir des informations sur les fichiers compressés.
Support de la fonction rename() Non
Support de la fonction mkdir() Non
Support de la fonction rmdir() Non



data://

data://Données (RFC 2397)

Description

Le gestionnaire de flux data: (» RFC 2397) est disponible depuis PHP 5.2.0.

Options

  • data://text/plain;base64,

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par allow_url_fopen Non
Restreint par allow_url_include Oui
Autorise la lecture Oui
Autorise l'écriture Non
Autorise l'ajout Non
Autorise la lecture et l'écriture simultanément Non
Support de la fonction stat() Non
Support de la fonction unlink() Non
Support de la fonction rename() Non
Support de la fonction mkdir() Non
Support de la fonction rmdir() Non

Exemples

Exemple #1 Affichage du contenu de data://

<?php
// Affiche "I love PHP"
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');
?>

Exemple #2 Récupération du type de média

<?php
$fp   
fopen('data://text/plain;base64,''r');
$meta stream_get_meta_data($fp);

// Affiche "text/plain"
echo $meta['mediatype'];
?>


glob://

glob://Trouve des noms de fichiers correspondant à un masque donné

Description

Le gestionnaire de flux glob: est disponible depuis PHP 5.3.0.

Options

  • glob://

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par allow_url_fopen No
Restreint par allow_url_include Non
Autorise la lecture Non
Autorise l'écriture Non
Autorise l'ajout Non
Autorise la lecture et l'écriture simultanément Non
Support de la fonction stat() Non
Support de la fonction unlink() Non
Support de la fonction rename() Non
Support de la fonction mkdir() Non
Support de la fonction rmdir() Non

Exemples

Exemple #1 Utilisation simple

<?php
// Boucle sur tous les fichiers *.php du dossier ext/spl/examples/ et
// affiche le nom du fichier ainsi que sa taille
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach(
$it as $f) {
    
printf("%s: %.1FK\n"$f->getFilename(), $f->getSize()/1024);
}
?>
tree.php: 1.0K
findregex.php: 0.6K
findfile.php: 0.7K
dba_dump.php: 0.9K
nocvsdir.php: 1.1K
phar_from_dir.php: 1.0K
ini_groups.php: 0.9K
directorytree.php: 0.9K
dba_array.php: 1.1K
class_tree.php: 1.8K


phar://

phar://Archive PHP

Description

Le gestionnaire de flux phar:// est disponible depuis PHP 5.3.0. Voyez gestionnaire de flux Phar pour une description détaillée.

Options

  • phar://

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par allow_url_fopen Non
Restreint par allow_url_include Non
Autorise la lecture Oui
Autorise l'écriture Oui
Autorise l'ajout Non
Autorise la lecture et l'écriture simultanément Oui
Support de la fonction stat() Oui
Support de la fonction unlink() Oui
Support de la fonction rename() Oui
Support de la fonction mkdir() Oui
Support de la fonction rmdir() Oui



ssh2://

ssh2://Shell sécurisé 2

Description

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 et suivants (PECL)

Note: Ce gestionnaire n'est pas activé par défaut
Pour utiliser le gestionnaire ssh2.*://, vous devez installer l'extension » SSH2 disponible dans » PECL.

En plus d'accepter les traditionnelles identifications via l'URI, le gestionnaire ssh2 réutilisera les connexions ouvertes en passant la ressource de connexion dans la partie hôte de l'URL.

Options

  • ssh2.shell://user:pass@example.com:22/xterm
  • ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd
  • ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14
  • ssh2.sftp://user:pass@example.com:22/path/to/filename

Options

Résumé du gestionnaire
Attribut ssh2.shell ssh2.exec ssh2.tunnel ssh2.sftp ssh2.scp
Restreint par allow_url_fopen Oui Oui Oui Oui Oui
Autorise la lecture Oui Oui Oui Oui Oui
Autorise l'écriture Oui Oui Oui Oui Non
Autorise l'ajout Non Non Non Oui (lorsque supporté par le serveur) Non
Autorise la lecture et l'écriture simultanément Oui Oui Oui Oui Non
Support de la fonction stat() Non Non Non Oui Non
Support de la fonction unlink() Non Non Non Oui Non
Support de la fonction rename() Non Non Non Oui Non
Support de la fonction mkdir() Non Non Non Oui Non
Support de la fonction rmdir() Non Non Non Oui Non

Options de contexte
Nom Utilisation Défaut
session ressource ssh2 pré-connectée pour être réutilisée  
sftp ressource sftp pré-allouée pour être réutilisée  
methods méthodes échange de clés, hostkey, cipher, compression et MAC à utiliser  
callbacks    
username Nom de l'utilisateur pour la connexion  
password Mot de passe à utiliser lors d'une identification via mot de passe  
pubkey_file Nom du fichier contenant la clé publique à utiliser lors de l'identification  
privkey_file Nom du fichier contenant la clé privée à utiliser lors de l'identification  
env Tableau associatif de variables d'environnements à définir  
term Type d'émulation de terminal à demander lors de l'allocation d'un pty  
term_width Largeur du terminal à demander lors de l'allocation d'un pty  
term_height Hauteur du terminal à demander lors de l'allocation d'un pty  
term_units Unités à utiliser avec term_width et term_height SSH2_TERM_UNIT_CHARS

Exemples

Exemple #1 Ouverture d'un flux depuis une connexion active

<?php
$session 
ssh2_connect('example.com'22);
ssh2_auth_pubkey_file($session'username''/home/username/.ssh/id_rsa.pub',
                                            
'/home/username/.ssh/id_rsa''secret');
$stream fopen("ssh2.tunnel://$session/remote.example.com:1234"'r');
?>


rar://

rar://RAR

Description

Ce gestionnaire prend un chemin encodé URL vers l'archive RAR (relatif ou absolu), puis, optionnellement, un astérisque (*), puis, optionnellement, un signe dièse (#), puis, optionnellement, un nom d'entrée encodé URL, tel que stocké dans l'archive. Le fait de spécifier un nom d'entrée nécessite la présence du signe dièse ; la présence d'un slash final est optionnel.

Ce gestionnaire peut ouvrir à la fois des fichiers ou des dossiers. Lors de l'ouverture de dossiers, l'astérisque force les noms des dossiers à être retournés non encodés. S'il n'est pas spécifié, ils seront retournés sous la forme encodée URL - ceci permet au gestionnaire d'être utilisé correctement avec les fonctionnalités internes comme RecursiveDirectoryIterator en présence de noms de fichiers qui semblent être encodés URL.

Si le signe dièse et le nom de l'entrée ne sont pas inclus, la racine de l'archive sera affiché. Cet affichage est différent des dossiers réguliers dans le sens où le flux résultant ne contiendra pas d'informations comme la date et heure de modification, vu que la racine du dossier n'est pas stocké comme une entrée individuelle dans l'archive. L'utilisation de ce gestionnaire avec RecursiveDirectoryIterator nécessite la présence du signe dièse dans l'URL lors de l'accès à la racine afin de construire correctement les URLs des fils.

Note: Ce gestionnaire n'est pas activé par défaut
Afin d'utiliser le gestionnaire rar://, vous devez installer l'extension » rar disponible depuis » PECL.

rar:// est disponible depuis PECL rar 3.0.0

Options

  • rar://<url encoded archive name>[*][#[<url encoded entry name>]]

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par allow_url_fopen Non
Restreint par allow_url_include Non
Autorise la lecture Oui
Autorise l'écriture Non
Autorise l'ajout Non
Autorise la lecture et l'écriture silmutanément Non
Support de la fonction stat() Oui
Support de la fonction unlink() Non
Support de la fonction rename() Non
Support de la fonction mkdir() Non
Support de la fonction rmdir() Non

Options de contexte
Nom Utilisation Défaut
open_password Le mot de passe utilisé pour crupyer les en-têtes de l'archive, s'il y en a. WinRAR cryptera tous les fichiers avec le même mot de passe. Si celui-ci est fourni, file_password sera ignoré.  
file_password Le mot de passe utilisé pour crypté un fichier, s'il y en a. Si l'en-tête est aussi crypté, cette option sera ignoré et le mot de passe de l'option open_password sera privilégié. La raison pour laquelle il y a 2 options est le fait de pouvoir couvrir la possibilité de supporter les archives avec différents mots de passe pour les en-têtes et les fichiers. Notez que si l'en-tête de l'archive n'est pas crypté, l'option open_password sera ignoré et cette option doit être utilisé.  
volume_callback Une fonction de rappel pour déterminer le chemin des volumes manquants. Reportez-vous à la méthode RarArchive::open() pour plus d'informations.  

Exemples

Exemple #1 Parcours d'une archive RAR

<?php

class MyRecDirIt extends RecursiveDirectoryIterator {
    function 
current() {
        return 
rawurldecode($this->getSubPathName()) .
            (
is_dir(parent::current())?" [DIR]":"");
    }
}

$f "rar://" rawurlencode(dirname(__FILE__)) .
    
DIRECTORY_SEPARATOR 'dirs_and_extra_headers.rar#';

$it = new RecursiveTreeIterator(new MyRecDirIt($f));

foreach (
$it as $s) {
    echo 
$s"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

|-allow_everyone_ni [DIR]
|-file1.txt
|-file2_אּ.txt
|-with_streams.txt
\-אּ [DIR]
  |-אּ\%2Fempty%2E [DIR]
  | \-אּ\%2Fempty%2E\file7.txt
  |-אּ\empty [DIR]
  |-אּ\file3.txt
  |-אּ\file4_אּ.txt
  \-אּ\אּ_2 [DIR]
    |-אּ\אּ_2\file5.txt
    \-אּ\אּ_2\file6_אּ.txt

Exemple #2 Ouverture d'un fichier crypté (en-tête crypté)

<?php
$stream 
fopen("rar://" .
    
rawurlencode(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
    
'encrypted_headers.rar' '#encfile1.txt'"r"false,
    
stream_context_create(
        array(
            
'rar' =>
                array(
                    
'open_password' => 'samplepassword'
                
)
            )
        )
    );
var_dump(stream_get_contents($stream));
/* Les date de création et du dernier accès sont fournies par WinRAR,
 * mais la plupart des autres logiciels ne la fournisse pas */
var_dump(fstat($stream));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(26) "Encrypted file 1 contents."
Array
(
    [0] => 0
    [1] => 0
    [2] => 33206
    [3] => 1
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 26
    [8] => 0
    [9] => 1259550052
    [10] => 0
    [11] => -1
    [12] => -1
    [dev] => 0
    [ino] => 0
    [mode] => 33206
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 26
    [atime] => 0
    [mtime] => 1259550052
    [ctime] => 0
    [blksize] => -1
    [blocks] => -1
)


ogg://

ogg://Flux Audio

Description

Les fichiers ouverts pour lecture avec le gestionnaire ogg:// sont traités comme de l'audio compressée en utilisant le codec OGG/Vorbis. De la même façon, les fichiers ouverts pour écriture ou pour ajout avec le gestionnaire ogg:// sont écrits comme étant des données audio compressées. La fonction stream_get_meta_data(), lorsqu'elle est utilisée sur un fichier OGG/Vorbis ouvert pour lecture retournera de nombreux détails concernant ce flux, incluant l'en-tête vendor, tous les commentaires comments, le nombre de canaux channels, le taux d'échantillonnage rate ainsi que le taux d'encodage décrit par : bitrate_lower, bitrate_upper, bitrate_nominal et bitrate_window.

ogg:// PHP 4.3.0 et suivant (PECL)

Note: Ce gestionnaire n'est pas activé par défaut
Pour utiliser le gestionnaire ogg://, vous devez installer l'extension » OGG/Vorbis disponible sur » PECL.

Options

  • ogg://soundfile.ogg
  • ogg:///path/to/soundfile.ogg
  • ogg://http://www.example.com/path/to/soundstream.ogg

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par allow_url_fopen Non
Permet la lecture Oui
Permet l'écriture Oui
Permet l'ajout Oui
Permet la lecture et l'écriture simultanément Non
Supporte la fonction stat() Non
Supporte la fonction unlink() Non
Supporte la fonction rename() Non
Supporte la fonction mkdir() Non
Supporte la fonction rmdir() Non

Options de contexte
Nom Utilisation Défaut Mode
pcm_mode L'encodage PCM à appliquer pendant la lecture, parmi un de ceux-là : OGGVORBIS_PCM_U8, OGGVORBIS_PCM_S8, OGGVORBIS_PCM_U16_BE, OGGVORBIS_PCM_S16_BE, OGGVORBIS_PCM_U16_LE et OGGVORBIS_PCM_S16_LE. (8 vs 16 bit, signé ou non, gros ou petit endian) OGGVORBIS_PCM_S16_LE Lecture
rate Taux d'échantillonnage des données entrantes, exprimé en Hz 44100 Écriture/Traitement
bitrate Lorsque donné sous forme d'entier, la vitesse du débit pour encoder (de 16000 à 131072). Lorsque donné sous forme de nombre décimal, la variation de la qualité du débit à utiliser (de -1.0 à 1.0). 128000 Écriture/Ajout
channels Le numéro du canal audio à encoder, typiquement 1 (Mono) ou 2 (Stéréo). Intervalle pouvant aller jusqu'à 16. 2 Écriture/Ajout
comments Un tableau de valeurs sous forme de chaînes de caractères à encoder dans la piste d'en-tête.   Écriture/Ajout

Exemples



expect://

expect://Gestionnaire de flux

Description

Les flux ouverts avec le gestionnaire expect:// permettent d'accéder à stdio, stdout et stderr via PTY.

Note: Ce gestionnaire n'est pas activé par défaut
Pour pouvoir utiliser le gestionnaire expect://, vous devez installer l'extension » Expect disponible depuis » PECL.

expect:// PHP 4.3.0 et supérieur (PECL)

Options

  • expect://command

Options

Résumé du gestionnaire
Attribut Supporté
Restreint par la fonction allow_url_fopen Non
Autorise la lecture Oui
Autorise l'écriture Oui
Autorise l'ajout Oui
Autorise la lecture et l'écriture simultanément Non
Support de la fonction stat() Non
Support de la fonction unlink() Non
Support de la fonction rename() Non
Support de la fonction mkdir() Non
Support de la fonction rmdir() Non

Exemples


Sommaire




Sécurité


Introduction

PHP est un langage puissant et l'interpréteur, qu'il soit inclus dans le serveur web ou bien compilé en version CGI, est capable d'accéder aux fichiers, d'exécuter des commandes et d'ouvrir des connexions réseaux. Toutes ces propriétés rendent fragile la sécurité d'un serveur web. Le langage PHP a été pensé afin d'être un langage beaucoup plus sécurisé pour écrire des CGI que le Perl ou le langage C. De plus, une sélection rigoureuse des options de compilation et d'exécution vous permettra d'obtenir un équilibre parfait entre liberté et sécurité.

Étant donné qu'il y a de nombreux moyens d'utiliser le langage PHP, il y a de nombreuses directives de configuration afin d'en contrôler le comportement. Un grand nombre d'options permettent d'utiliser PHP dans de nombreuses situations, mais cela signifie aussi qu'il y a certaines combinaisons d'options de compilation et d'exécution qui fragilisent la sécurité du serveur. Ce chapitre explique comment les différentes options de configuration peuvent être combinées, tout en conservant une sécurité maximum.

La flexibilité de configuration de PHP est épaulée par la flexibilité du code. PHP peut être compilé pour constituer une application serveur complète, avec toutes les fonctionnalités d'un shell, ou il peut encore être utilisé comme simple SSI (server side include) avec peu de risque, dans un environnement à sécurité renforcée. La création de cet environnement et sa sécurité est largement à la charge du développeur PHP.

Ce chapitre commence par expliquer les différentes options de configuration et les situations dans lesquelles elles peuvent être utilisées en toute sécurité. Puis, viennent les considérations de niveaux de sécurité, et les conseils généraux.



Considérations générales

Un système complètement sûr est une impossibilité virtuelle. L'approche souvent utilisée par les professionnels de la sécurité est d'équilibrer les risques et l'ergonomie. Si chaque variable fournie par l'utilisateur demandait deux formes de validation biométrique (un scan de la rétine et une empreinte digitale), on obtiendrait un système avec un niveau de sécurité d'un bon niveau. Il faudrait aussi une bonne heure pour remplir un formulaire simple, ce qui encouragerait les utilisateurs à trouver un moyen de contourner cette sécurité.

La meilleure sécurité est suffisamment discrète pour assurer un maximum de sécurité sans ajouter de contraintes insurmontables pour l'utilisateur ou de systèmes complexes de programmation. Souvent, les attaques sur un script sont des exploitations des systèmes de sécurité trop complexes, qui s'érodent au cour du temps.

Un principe qu'il est bon de retenir : Un système est aussi sur que son maillon le plus faible. Si toutes les transactions sont bien notées dans une base, avec confirmation mais que l'utilisateur est identifié uniquement par un cookie, la robustesse de votre système est sévèrement réduite.

Lorsque vous testez votre site, gardez en tête que vous ne pourrez jamais tester toutes les situations, même pour les pages les plus simples. Les valeurs que vous attendez seront toujours complètement différentes des valeurs entrées par un employé négligent, un hacker qui a toute la nuit devant lui ou encore le chat de la maison qui marche sur le clavier. C'est pourquoi il est préférable de regarder le code d'un point de vue logique, pour repérer les points d'entrée des données inattendues, puis de voir comment elles pourront être modifiées, amplifiées ou réduites.

L'Internet est rempli d'individus qui tentent de se faire une renommée en piratant vos programmes, en bloquant votre site, en envoyant des contenus inappropriés, qui rendent vos journées si "spéciales". Peu importe que vous ayez un grand portail ou un petit web, vous pouvez être la cible pour tout quidam avec une connexion. Vous êtes une cible potentielle dès que vous êtes connecté vous-même. Certains programmes de piratage ne font pas dans la demi-mesure, et testent systématiquement des millions d'IP, à la recherche de victimes : ne soyez pas la prochaine.



Binaires CGI

Sommaire


Faiblesses connues

Utiliser PHP comme un CGI exécutable vient la majorité du temps du fait que l'on ne veut pas l'utiliser comme un module du serveur web, (comme Apache), ou bien que l'on souhaite l'utiliser en combinaison d'un CGI complémentaire, afin de créer un environnement de script sécurisé (en utilisant des techniques de chroot ou setuid). Une telle décision signifie habituellement que vous installez votre exécutable dans le répertoire cgi-bin de votre serveur web. » CERT CA-96.11 recommande effectivement de ne placer aucun interpréteur à l'intérieur du répertoire cgi-bin. Même si le programme PHP peut être utilisé comme interpréteur indépendant, PHP a été pensé afin de rendre impossible les attaques que ce type d'installation induit.

  • Accès au système de fichier : http://ma.machine/cgi-bin/php?/etc/passwd Lorsque la requête est passée dans une url, après le point d'interrogation (?), elle est envoyée à l'interpréteur comme une ligne de commande par l'interface CGI. Habituellement, l'interpréteur ouvre le fichier spécifié et l'exécute. Lorsqu'il est invoqué comme exécutable CGI, PHP refuse d'interpréter les arguments de la ligne de commande.
  • Accès d'un document web sur le serveur : http://my.host/cgi-bin/php/secret/doc.html Le "path information" dans l'url, situé juste après le nom de l'exécutable PHP, /secret/doc.html est utilisé par convention pour spécifier le nom du fichier qui doit être ouvert et interprété par le programe CGI. Habituellement, des directives de configuration du serveur web (pour le serveur Apache : Action) sont utilisées pour rediriger les requêtes afin d'obtenir un document http://my.host/secret/script.php par l'interpréteur PHP. Dans une telle configuration, le serveur web vérifie d'abord s'il a accès au répertoire /secret, et après cette vérification redirige la requête vers http://my.host/cgi-bin/php/secret/script.php. Malheureusement, si la requête est faite directement sous cette forme, aucune vérification d'accès n'est faite par le serveur web pour le fichier /secret/script.php, mais uniquement pour le fichier /cgi-bin/php. De cette manière, n'importe quel utilisateur qui peut accéder au fichier /cgi-bin/php peut aussi accéder aux documents protégés sur le serveur web. Avec PHP, les options d'exécution cgi.force_redirect, doc_root et user_dir peuvent être utilisées pour prévenir ce genre d'attaques, si des restrictions d'accès sont appliquées sur les documents du serveur. Voir ci-dessous pour des explications plus complètes sur les différentes combinaisons.


Cas 1 : Tous les fichiers sont publics

Si votre serveur n'a aucun document dont l'accès est restreint par un mot de passe ou un système de vérification de l'adresse IP, vous n'avez aucun besoin de ce type de configuration. Si votre serveur web ne permet pas les redirections, ou si votre serveur web n'a aucun besoin de communiquer avec le binaire PHP de manière sécurisée, vous pouvez utiliser l'option de compilation --disable-force-cgi-redirect. Vous devez quand même vérifier qu'aucun script ne fait appel au PHP, de manière directe, http://my.host/cgi-bin/php/dir/script.php ou bien de manière indirecte, par redirection, http://my.host/dir/script.php.

Les redirections peuvent être configurées dans les fichiers de configuration d'Apache en utilisant les directives "AddHandler" et "Action" (voir ci-dessous).



Cas 2 : Utilisation de la directive de compilation cgi.force_redirect

La directive de configuration cgi.force_redirect évite qu'un appel direct à un script PHP avec une URL comme http://my.host/cgi-bin/php/secretdir/script.php soit possible. Dans ce cas-là, PHP analysera le fichier uniquement s'il y a eu redirection. En PHP antérieur à la version 4.2.0, vous deviez utiliser l'option de compilation --enable-force-cgi-redirect pour faire la même chose.

Habituellement, le serveur web Apache réalise une redirection grâce aux directives suivantes :

Action php-script /cgi-bin/php
AddHandler php-script .php

Cette option a uniquement été testée avec Apache et compte sur Apache pour affecter la variable d'environnement non-standard REDIRECT_STATUS pour les requêtes redirigées. Dans le cas où votre serveur web ne supporte pas le renseignement de PHP, pour savoir si la requête a été redirigée ou non, vous ne pouvez pas utiliser cette option de compilation. Vous devez alors utiliser une des autres méthodes d'exploitation de la version binaire CGI de PHP, comme exposé ci-dessous.



Cas 3 : Utilisation du "doc_root" ou du "user_dir"

Ajouter un contenu interactif dans votre serveur web, comme des scripts ou des exécutables, est souvent considéré comme une pratique non-sécurisée. Si, par erreur, le script n'est pas exécuté mais affiché comme une page HTML classique, il peut en résulter un vol de propriété intellectuelle ou des problèmes de sécurité à propos des mots de passe notamment. Donc, la majorité des administrateurs préfèrent mettre en place un répertoire spécial pour les scripts qui soit uniquement accessible par le biais du binaire CGI de PHP, et donc, tous les fichiers de ce répertoire seront interprétés et non affichés tels quels.

Aussi, si vous ne pouvez pas utiliser la méthode présentée ci-dessus, il est nécessaire de mettre en place un répertoire "doc_root" différent de votre répertoire "document root" de votre serveur web.

Vous pouvez utiliser la directive doc_root dans le fichier de configuration, ou vous pouvez affecter la variable d'environnement PHP_DOCUMENT_ROOT. Si cette variable d'environnement est affectée, le binaire CGI de PHP construira toujours le nom de fichier à ouvrir avec doc_root et le "path information" de la requête, et donc vous serez sûr qu'aucun script n'est exécuté en dehors du répertoire prédéfini (à l'exception du répertoire désigné par la directive user_dir Voir ci-dessous).

Une autre option possible ici est la directive user_dir. Lorsque la directive n'est pas activée, seuls les fichiers contenus dans le répertoire doc_root peuvent être ouverts. Ouvrir un fichier possédant l'url http://my.host/~user/doc.php ne correspond pas à l'ouverture d'un fichier sous le répertoire racine de l'utilisateur mais à l'ouverture du fichier ~user/doc.php sous le répertoire "doc_root" (oui, un répertoire commence par un tilde [~]).

Si la directive "user_dir" est activée à la valeur public_php par exemple, une requête du type http://my.host/~user/doc.php ouvrira un fichier appelé doc.php sous le répertoire appelé public_php sous le répertoire racine de l'utilisateur. Si le répertoire racine des utilisateurs est /home/user, le fichier exécuté sera /home/user/public_php/doc.php.

user_dir et doc_root sont deux directives totalement indépendantes et donc vous pouvez contrôler l'accès au répertoire "document root" séparément des répertoires "user directory".



Cas 4 : L'exécutable PHP à l'extérieur de l'arborescence du serveur

Une solution extrêmement sécurisée consiste à mettre l'exécutable PHP à l'extérieur de l'arborescence du serveur web. Dans le répertoire /usr/local/bin, par exemple. Le problème de cette méthode est que vous aurez à rajouter la ligne suivante :

Exemple #1 Ligne d'invocation de PHP

#!/usr/local/bin/php
dans tous les fichiers contenant des balises PHP. Vous devrez aussi rendre le binaire PHP exécutable. Dans ce cas-là, traitez le fichier exactement comme si vous aviez un autre script écrit en Perl ou en sh ou en un autre langage de script qui utilise #! comme mécanisme pour lancer l'interpréteur lui-même.

Pour que l'exécutable PHP prenne en compte les variables d'environnement PATH_INFO et PATH_TRANSLATED correctement avec cette configuration, vous devez utiliser l'option de compilation --enable-discard-path.




Installé en tant que module Apache

Lorsque PHP est compilé en tant que module Apache, ce module hérite des permissions accordées à l'utilisateur faisant tourner Apache (par défaut, l'utilisateur "nobody"). Cela à plusieurs impacts sur la sécurité et les autorisations. Par exemple, si vous utilisez PHP pour accéder à une base de données, à moins que la base n'ait un système de droits d'accès interne, vous devrez rendre la base accessible à l'utilisateur "nobody". Cela signifie qu'un script mal intentionné peut accéder à la base, la modifier sans identification. Il est aussi possible qu'un robot accède à la page d'administration, et détruise toutes les pages. Vous devez aussi protéger vos bases de données avec les autorisations Apache, ou définir votre propre modèle d'accès avec LDAP, .htaccess, etc. et inclure ce code dans tous vos scripts : PHP.

Souvent, lorsqu'on a établi les droits de l'utilisateur PHP (ici, l'utilisateur Apache) pour minimiser les risques, on s'aperçoit que PHP ne peut plus écrire de virus dans les fichiers des utilisateurs. Ou encore, modifier une base de données privée. Il est aussi incapable de modifier des fichiers qu'il devrait pouvoir modifier, ou effectuer certaines transactions.

Une erreur fréquente de sécurité est de donner à l'utilisateur Apache les droits de superadministrateur ou d'améliorer les possibilités d'Apache d'une autre façon.

Donner de telles permissions à l'utilisateur Apache est extrêmement dangereux, et peut compromettre tout le système, telle que l'utilisation des sudo ou du chroot. Pour les novices de la sécurité, une telle utilisation est à exclure d'office.

Il existe des solutions plus simples. En utilisant open_basedir vous pouvez contrôler et restreindre l'accès à certains dossiers qui pourront être utilisés par PHP. Vous pouvez aussi créer des aires de restrictionsApache, pour restreindre les activités anonymes liées aux internautes.



Sécurité des fichiers

Sommaire

PHP est soumis aux règles de sécurité intrinsèques de la plupart des systèmes serveurs : il respecte notamment les droits des fichiers et des dossiers. Une attention particulière doit être portée aux fichiers ou dossiers qui sont accessibles à tout le monde, afin de s'assurer qu'ils ne divulguent pas d'informations critiques.

Puisque PHP a été fait pour permettre aux utilisateurs d'accéder aux fichiers, il est possible de créer un script PHP qui vous permet de lire des fichiers tels que /etc/password, de modifier les connexions ethernet, lancer des impressions de documents, etc. Cela implique notamment que vous devez vous assurer que les fichiers manipulés par les scripts sont bien ceux qu'il faut.

Considérez le script suivant, où l'utilisateur indique qu'il souhaite effacer un fichier dans son dossier racine. Nous supposons que PHP est utilisé comme interface web pour gérer les fichiers, et que l'utilisateur Apache est autorisé à effacer les fichiers dans le dossier racine des utilisateurs.

Exemple #2 Une erreur de vérification de variable conduit à un gros problème

<?php
// Efface un fichier dans un dossier racine
$username $_POST['user_submitted_name'];
$userfile $_POST['user_submitted_filename'];
$homedir  "/home/$username";

unlink("$homedir/$userfile");

echo 
"Ce fichier a été effacé !";
?>
Étant donné que le nom de l'utilisateur et le nom du fichier sont fournis, des intrus peuvent envoyer un nom d'utilisateur et un nom de fichier autres que les leurs, et effacer des documents dans les comptes des autres utilisateurs. Dans ce cas, vous souhaiterez utiliser une autre forme d'identification. Considérez ce qui pourrait se passer si les utilisateurs passent ../etc/ et passwd comme arguments! Le code serait exécuté tel que :

Exemple #3 Une attaque du système de fichiers!

<?php
// efface un fichier n'importe où sur le disque dur,
// où l'utilisateur PHP a accès. Si PHP a un accès root :
$username $_POST['user_submitted_name']; // "../etc"
$userfile $_POST['user_submitted_filename']; // "passwd"
$homedir  "/home/$username"// "/home/../etc"

unlink("$homedir/$userfile"); // "/home/../etc/passwd"

echo "Ce fichier a été effacé !";
?>
Il y a deux mesures primordiales à prendre pour éviter ces manoeuvres :
  • Limiter les permissions de l'utilisateur web PHP.
  • Vérifier toutes les variables liées aux chemins et aux fichiers qui sont fournis.
Voici un script renforcé :

Exemple #4 Une vérification renforcée

<?php
// Efface un fichier sur le disque où l'utilisateur a le droit d'aller
$username $_SERVER['REMOTE_USER']; // utilisation d'un méchanisme d'identification
$userfile basename($_POST['user_submitted_filename']);
$homedir  "/home/$username";

$filepath "$homedir/$userfile";

if (
file_exists($filepath) && unlink($filepath)) {
   
$logstring "$filepath effacé\n";
} else {
   
$logstring "Échec lors de l'effacement de $filepath\n";
}
$fp fopen("/home/logging/filedelete.log""a");
fwrite($fp$logstring);
fclose($fp);

echo 
htmlentities($logstringENT_QUOTES);
?>
Cependant, même cette technique n'est pas sans faille. Si votre système d'identification permet aux utilisateurs de créer leur propre login, et qu'un utilisateur choisi le login ../etc/, le système est de nouveau exposé. Pour cette raison, vous pouvez essayez d'écrire un script renforcé :

Exemple #5 Vérification renforcée de noms de fichiers

<?php
$username     
$_SERVER['REMOTE_USER']; // utilisation d'un méchanisme d'identification
$userfile     $_POST['user_submitted_filename'];
$homedir      "/home/$username";

$filepath     "$homedir/$userfile";

if (!
ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD'$userfile)) {
   die(
"Mauvais utilisateur/nom de fichier");
}

//etc...
?>

Suivant votre système d'exploitation, vous devrez protéger un grand nombre de fichiers, notamment les entrées de périphériques, (/dev/ ou COM1), les fichiers de configuration (fichiers /etc/ et .ini), les lieux de stockage d'informations (/home/, My Documents), etc. Pour cette raison, il est généralement plus sûr d'établir une politique qui interdit TOUT sauf ce que vous autorisez.


Issue lors de l'utilisation des octets nuls

Comme PHP utilise des fonctions C pour les opérations sous-jacentes, notamment au niveau du système de fichier, il peut gérer les octets nuls d'une façon inattendue. Sachant que les octets nuls dénotent la fin d'une chaîne de caractères en C, certaines fonctions vont donc considérer ces chaînes jusqu'à la première occurrence d'un octet nul. L'exemple suivant présente un code vulnérable qui montre ce problème :

Exemple #1 Script vulnérable aux octets nuls

<?php
$file 
$_GET['file']; // "../../etc/passwd\0"
if (file_exists('/home/wwwrun/'.$file.'.php')) {
   
// file_exists retournera true sachant que le fichier /home/wwwrun/../../etc/passwd existe
   
include '/home/wwwrun/'.$file.'.php';
   
// le fichier /etc/passwd sera inclu
}
?>

Ainsi, toute chaîne utilisée dans des opérations sur le système de fichiers doit toujours être validée proprement. Voici une meilleure solution de l'exemple précédent :

Exemple #2 Validation correcte de l'entrée

<?php
$file 
$_GET['file'];

// Whitelisting possible values
switch ($file) {
   case 
'main':
   case 
'foo':
   case 
'bar':
   include 
'/home/wwwrun/include/'.$file.'.php';
   break;
   default:
   include 
'/home/wwwrun/include/main.php';
}
?>



Sécurité des bases de données

Sommaire

De nos jours, les bases de données sont des composants incontournables des serveurs web et des applications en ligne, qui fournissent du contenu dynamique. Des données secrètes ou critiques peuvent être stockées dans les bases de données : il est donc important de les protéger efficacement.

Pour lire ou stocker des informations, vous devez vous connecter au serveur de bases de données, envoyer une requête valide, lire le résultat et refermer la connexion. De nos jours, le langage le plus courant pour ce type de communication est le langage SQL (Structured Query Language). Voyez comment un pirate peut s'introduire dans une requête SQL.

Comme vous pouvez le réaliser, PHP ne peut pas protéger vos bases de données pour vous. La section suivante vous introduira aux notions de base pour protéger vos bases de données, lors de la programmation de vos scripts PHP.

Gardez bien cette règle simple en tête : la défense se fait par couches. Plus vous ajouterez de tests pour protéger votre base, plus faible sera la probabilité de réussite d'un pirate. Ajoutez à cela un bon schéma de base de données, et vous aurez une application réussie.


Schéma de base de données

La première étape est de créer une base de données, à moins que vous ne souhaitiez utiliser une base de données déjà créée. Lorsque la base de données est créée, un utilisateur propriétaire en est responsable. Généralement, seul le propriétaire et le super utilisateur peuvent intervenir avec les tables de cette base, et il faut que ce dernier donne des droits à tous les intervenants qui auront à travailler sur cette base.

Les applications ne doivent jamais se connecter au serveur de bases de données sous le nom du propriétaire ou de l'administrateur, car ces utilisateurs ont des droits très importants, et pourront exécuter n'importe quelle requête, comme la modification de tables, l'effacement de lignes ou même encore, la destruction de la base.

Vous pouvez créer différents utilisateurs de bases de données pour chaque aspect de votre application, avec des droits limités aux seules actions planifiées. Il faut alors éviter que le même utilisateur dispose des droits de plusieurs cas d'utilisation. Cela permet que si des intrus obtiennent l'accès à la base avec l'un de ces jeux de droits, ils ne puissent pas affecter toute l'application.

Il est recommandé de ne pas implémenter toute la logique fonctionnelle dans l'application web (c'est-à-dire dans vos scripts), mais d'en reporter une partie dans la base en utilisant les déclencheurs, vues et règles. Si le système évolue, les nouvelles versions vous feront réécrire toute la logique et donc tous vos scripts. De plus, l'utilisation de déclencheurs permet de gérer de manière transparente des données, et fournit des indications pour déboguer votre application.



Connexions au serveur de base de données

Il est recommandé d'établir des connexions au serveur avec le protocole SSL, pour chiffrer les échanges clients/serveur, afin d'améliorer la sécurité. Vous pouvez aussi utiliser un client SSH pour chiffrer la connexion entre les clients et le serveur de bases de données. Si l'une de ces deux protections est mise en place, il sera difficile de surveiller votre trafic et de comprendre les informations échangées.



Modèle de stockage avec chiffrement

Les protocoles SSL/SSH protègent les données qui circulent entre le serveur et le client, mais SSL/SSH ne protège pas les données une fois dans la base. SSL est un protocole en ligne.

Une fois que le pirate a obtenu l'accès direct à votre base de données (en contournant le serveur web), les données sensibles, stockées dans votre base sont accessibles directement, à moins que les données de la base ne soient protégées par la base. Chiffrer les données est une bonne solution pour réduire cette menace, mais très peu de bases de données offrent ce type de chiffrement.

Le moyen le plus simple pour contourner ce problème est de créer votre propre logiciel de chiffrement, et de l'utiliser dans vos scripts PHP. PHP peut vous aider dans cette tâche grâce aux nombreuses extensions dont il dispose, comme Mcrypt et Mhash, qui connaissent un large éventail de méthodes de chiffrement. Le script PHP va chiffrer les données qui seront stockées, et les déchiffrer lorsqu'elles seront relues. Voyez la suite pour des exemples d'utilisation de ce chiffrement.

Dans le cas de données vraiment sensibles, si la représentation originale n'est pas nécessaire (pour affichage, ou comparaison), utiliser un hash est une bonne solution. L'exemple classique est le stockage de mots de passe dans les bases de données, après les avoir passés au MD5. Voyez les fonctions crypt() et md5().

Exemple #1 Utiliser un mot de passe et MD5

<?php
// Stockage du mot de passe hashé
$query  sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
             
pg_escape_string($username), md5($password));
$result pg_query($connection$query);

// interroger le serveur pour comparer le mot de passe soumis
$query sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
             
pg_escape_string($username), md5($password));
$result pg_query($connection$query);

if (
pg_num_rows($result) > 0) {
    echo 
"Bienvenue, $username!";
} else {
    echo 
"Identification échouée pour $username.";
}
?>


Injection SQL

De nombreux développeurs web ne sont pas conscients des possibilités de manipulation des requêtes SQL, et supposent que les requêtes SQL sont des commandes sûres. Cela signifie qu'une requête SQL est capable de contourner les contrôles et vérifications, comme les identifications, et parfois, les requêtes SQL ont accès aux commandes d'administration.

L'injection SQL directe est une technique où un pirate modifie une requête SQL existante pour afficher des données cachées, ou pour écraser des valeurs importantes, ou encore exécuter des commandes dangereuses pour la base. Cela se fait lorsque l'application prend les données envoyées par l'internaute, et l'utilise directement pour construire une requête SQL. Les exemples ci-dessous sont basés sur une histoire vraie, malheureusement.

Avec le manque de vérification des données de l'internaute et la connexion au serveur avec des droits de super utilisateur, le pirate peut créer des utilisateurs, et créer un autre super utilisateur.

Exemple #1 Séparation des résultats en pages, et créer des administrateurs (PostgreSQL et MySQL)

<?php
$offset 
$argv[0]; // Attention, aucune validation!
$query  "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
// avec PostgreSQL
$result pg_query($conn$query);
// avec MySQL
$result mysql_query($query);
?>
Un utilisateur normal clique sur les boutons 'suivant' et 'précédent', qui sont alors placés dans la variable $offset, encodée dans l'URL. Le script s'attend à ce que la variable $offset soit alors un nombre décimal. Cependant, il est possible de modifier l'URL en ajoutant une nouvelle valeur, au format URL, comme ceci :

Exemple #2 Exemple d'injection SQL

<?php
// cas de PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

// cas de MySQL
0;
UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
FLUSH PRIVILEGES;
?>
Si cela arrive, le script va créer un nouveau super utilisateur. Notez que la valeur 0; sert à terminer la requête originale et la terminer correctement.

Note:

C'est une technique répandue que de forcer l'analyseur SQL à ignorer le reste de la requête, en utilisant les symboles -- pour mettre en commentaires.

Un moyen disponible pour accéder aux mots de passe est de contourner la recherche de page. Ce que le pirate doit faire, c'est simplement voir si une variable du formulaire est utilisée dans la requête, et si elle est mal gérée. Ces variables peuvent avoir été configurées dans une page précédente pour être utilisées dans les clauses WHERE, ORDER BY, LIMIT et OFFSET des requêtes SELECT. Si votre base de données supporte les commandes UNION, le pirate peut essayer d'ajouter une requête entière pour lister les mots de passe dans n'importe quelle table. Utiliser la technique des mots de passe chiffrés est fortement recommandé.

Exemple #3 Liste d'articles ... et ajout de mot de passe

<?php
$query  
"SELECT id, name, inserted, size FROM products
                  WHERE size = '
$size'
                  ORDER BY 
$order LIMIT $limit$offset;";
$result odbc_exec($conn$query);
?>
La partie statique de la requête, combinée avec une autre requête SELECT, va révéler les mots de passe :

Exemple #4 Révélation des mots de passe

<?php
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--
?>
Si cette requête, exploitant les ' et -- est affectée à une variable utilisée dans $query, une injection SQL va se produire.

Les commandes UPDATE sont aussi sujettes à des attaques de votre base de données. Ces requêtes peuvent aussi introduire toute une nouvelle requête dans votre commande initiale. Mais en plus, le pirate peut jouer sur la commande SET. Dans ce cas, il doit connaître un peu votre base de données. Cela peut se deviner en examinant les noms de variables dans les formulaires, ou simplement, en testant les cas les plus classiques. Il n'y a pas beaucoup de conventions de noms pour stocker des noms d'utilisateurs et des mots de passe.

Exemple #5 Modifier un mot de passe ... et gain de droits!

<?php
$query
"UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Mais un internaute fourbe peut envoyer une valeur telle que ' or uid like '%admin%'; -- dans $uid pour modifier le mot de passe utilisateur, ou simplement, utiliser la variable $pwd avec la valeur "hehehe', admin='yes', trusted=100 " (avec l'espace final) pour obtenir des droits supplémentaires. La requête devient alors :

Exemple #6 Une requête et son injection

<?php
// $uid == ' or uid like'%admin%'; --
$query "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$query "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"
?>

C'est un exemple terrible d'acquisition de droits d'administrateur sur un serveur de base de données.

Exemple #7 Attaque d'un serveur de bases de données (MSSQL Server)

<?php
$query  
"SELECT * FROM products WHERE id LIKE '%$prod%'";
$result mssql_query($query);
?>
Si le pirate injecte la valeur a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- dans la variable $prod, alors la requête $query devient :

Exemple #8 Attaque d'un serveur de base de données (MSSQL Server) - 2

<?php
$query  
"SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--"
;
$result mssql_query($query);
?>
MSSQL Server exécute les requêtes SQL en lot, y compris la commande d'ajout d'un nouvel utilisateur à la base de données locale. Si cette application fonctionnait en tant que sa et que le service MSSQLSERVER disposait de niveau de droits suffisant, le pirate dispose désormais d'un compte avec accès au serveur.

Note:

Certains des exemples ci-dessus sont spécifiques à certains serveurs de bases de données. Cela n'empêche pas des attaques similaires d'être possibles sur d'autres produits. Votre base de données sera alors vulnérable d'une autre manière.

Techniques de contournement

Vous pouvez prétendre que le pirate doit d'abord obtenir des informations sur le schéma de la base de données, dans la plupart des cas d'injections. C'est vrai, mais vous ne saurez jamais comment ni quand ces informations auront filtré, et si cela arrive, votre base de données sera en grand danger. Si vous utilisez une base de données Open Source, ou une base qui est du domaine public, ou encore un schéma qui appartient à un système de gestion de contenu ou d'un forum, le pirate peut facilement se procurer une copie du code que vous utilisez. Cela peut être un risque potentiel si la base a été mal conçue.

Ces attaques sont généralement basées sur l'exploitation de code qui n'est pas écrit de manière sécuritaire. N'ayez aucune confiance dans les données qui proviennent de l'utilisateur, même si cela provient d'un menu déroulant, d'un champ caché ou d'un cookie. Le premier exemple montre comment une requête peut causer un désastre.

  • Ne nous connectez jamais sur une base de données en tant que super utilisateur ou propriétaire de la base. Utilisez toujours un utilisateur adapté, avec des droits très limités.
  • Vérifiez que les données ont bien le type attendu. PHP dispose d'un éventail de fonction de validation large, depuis les plus simples, de la section Variables et la section Caractères (e.g. is_numeric(), ctype_digit() respectivement) aux fonctions avancées de Expression rationnelle Perl.
  • Si l'application attend une entrée numérique, vérifiez vos données avec la fonction is_numeric(), ou bien modifiez automatiquement le type avec la fonction settype(), ou encore avec sprintf().

    Exemple #9 Une navigation de fiches plus sécuritaire

    <?php
    settype
    ($offset'integer');
    $query "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // notez que %d dans la chaîne de format : %s serait inutile
    $query sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                     
    $offset);
    ?>

  • Mettez entre guillemets toutes les valeurs non numériques qui sont passées à la base de données avec la fonction spécifique à la base de données d'échappement de caractères (e.g. mysql_real_escape_string(), sqlite_escape_string(), etc.). Si un mécanisme d'échappement spécifique à une base de données n'existe pas, les fonctions addslashes() et str_replace() peuvent être très utiles (en fonction du type de la base de données). Lisez le premier exemple. Comme le montre l'exemple, ajouter des guillemets à la partie statique de la requête n'est pas suffisant, rendant cette requête facile à pirater.
  • N'affichez jamais d'informations spécifiques à la base, et notamment des informations concernant le schéma. Voyez aussi la section Rapport d'erreur et le chapitre Gestion des erreurs.
  • Vous pouvez avoir des procédures stockées et des curseurs prédéfinis qui font que les utilisateurs n'ont pas un accès direct aux tables ou vues, mais cette solution a d'autres impacts.

À côté de ces conseils, il est recommandé d'enregistrer vos requêtes, soit dans vos scripts, soit dans la base elle-même, si elle le supporte. Évidemment, cet enregistrement ne sera pas capable d'empêcher une attaque, mais vous permettra de retrouver la requête qui a fauté. L'historique n'est pas très utile par lui-même, mais au niveau des informations qu'il contient. Plus vous avez de détails, mieux c'est.




Rapport d'erreurs

En termes de sécurité, il y a deux conséquences au rapport d'erreur. D'un coté, cela améliore la sécurité, mais d'un autre, cela la réduit aussi.

Une tactique d'attaque standard consiste à faire faire des erreurs au système, et lire les variables d'environnement et de contexte qui sont retournées. Cela permet au pirate de lire de nombreuses informations sur le serveur, et de détecter des faiblesses du serveur. Par exemple, si un intrus a glané des informations sur votre page, avec une première utilisation de votre site, il peut essayer de remplacer les variables par ses propres valeurs :

Exemple #10 Attaque de site avec une page HTML personnalisée

<form method="post" action="http://www.site.cible.com/?username=badfoo&password=badfoo">
 <input type="hidden" name="username" value="badfoo">
 <input type="hidden" name="password" value="badfoo">
</form>

Les erreurs PHP qui sont normalement retournées peuvent être très pratiques pour un développeur qui essaie de déboguer un script, car elles donnent de précieux renseignements tels que quelle fonction a échoué, quel fichier n'a pas été trouvé, quel script PHP a un bug, et quelle ligne est en faute. Toutes ces informations sont exploitables. Il est commun aux développeurs PHP d'utiliser les fonctions show_source(), highlight_string(), ou highlight_file() comme outils de déboguage, mais sur un site en production, cela expose des variables cachées, des syntaxes non vérifiées ou d'autres informations critiques. Il est particulièrement dangereux d'exécuter du code de sources connues, avec les gestionnaires de débogage. Si l'intrus peut comprendre votre technique habituelle d'utilisation, il peut tenter une attaque frontale sur une page, en envoyant des chaînes de débogage :

Exemple #11 Exploiter des variables classiques de débogage

<form method="post" action="http://www.site.cible.com/?errors=Y&showerrors=1"&debug=1">
 <input type="hidden" name="errors" value="Y">
 <input type="hidden" name="showerrors" value="1">
 <input type="hidden" name="debug" value="1">
</form>

Indépendamment de la gestion des erreurs, la possibilité de tester la gestion des erreurs d'un système conduit à un trou de sécurité, et la diffusion de plus d'informations sur votre système.

Si un pirate affiche une page html, et essaye de la tester (pour rechercher des faiblesses du système), il peut déterminer sur quel système PHP a été compilé.

Une erreur de fonction indique si un système supporte une base de données spécifique, ou bien indique comment la page a été générée. Cela peut orienter l'intrus vers les ports de cette base de données ou bien vers une attaque liée à cette application. En envoyant des données erronées, par exemple, un pirate peut déterminer l'ordre d'identification dans un script, à partir des lignes d'erreurs, et essayer de les exploiter ailleurs, dans le script.

Une erreur de fichier, ou une erreur générale PHP peut indiquer quelles sont les permissions du serveur web, ainsi que la structure et l'organisation des fichiers. Les gestionnaires d'erreurs utilisateurs peuvent aussi aggraver ce problème, en permettant l'exploitation facile d'informations préalablement cachées.

Il y a trois solutions majeures à ces problèmes : la première est de scruter toutes les fonctions, et d'essayer de traiter toutes les erreurs. La deuxième est de désactiver le rapport d'erreur, dès que le script est en production. La troisième est d'utiliser les fonctions de gestion des erreurs. Suivant votre politique de sécurité, vous pouvez utiliser un panachage savant des trois méthodes.

Une méthode pour gagner du temps est d'utiliser la fonction error_reporting(), pour vous aider à sécuriser le code, et détecter les utilisations dangereuses de variables. Vous testez votre code en béta test avec la valeur E_ALL, et vous pouvez rapidement repérer les variables qui ne sont pas protégées. Une fois que le code est prêt à être déployé, vous devez soit désactiver complètement le rapport d'erreur en affectant 0 à la fonction error_reporting(), soit en désactivant l'affichage des erreurs en utilisant l'option de configuration display_errors du php.ini. Si vous choisissez la dernière solution, vous devez également définir le chemin de votre fichier de log en utilisant la directive de configuration error_log, et en activant la directive log_errors.

Exemple #12 Détecter des variables non protégées avec E_ALL

<?php
if ($username) {
  
// Non initialisée, ou vérifée avant utilisation
  
$good_login 1;
}
if (
$good_login == 1) {
  
// Si le test ci-dessus échoue, les valeurs n'ont pas été testées
  
fpassthru ("/données/très/très/sensibles/index.html");
}
?>



Utilisation des variables super-globales

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

L'une des évolutions les plus controversées de PHP a été le changement de valeur par défaut de la directive PHP register_globals, qui est passée de On à Off en PHP » 4.2.0. Beaucoup d'applications dépendaient de cette directive, et de nombreux programmeurs ne savaient même pas qu'elle existait, et supposait que c'était le fonctionnement normal de PHP. Cette page explique comment on peut écrire du code peu sécuritaire en utilisant cette directive. Gardez bien en tête que cette directive, par elle-même, n'est pas un trou de sécurité, mais qu'elle facilite leur création.

Lorsqu'elle est activée, register_globals va injecter vos scripts avec toutes sortes de variables, comme les variables issues des formulaires HTML. Ceci, couplé au fait que PHP ne requiert pas d'initialisation de variable signifie que la programmation de script peu sûr est possible. Ce fut une décision difficile de la communauté PHP, mais finalement, il a été décidé de désactiver par défaut cette variable. Lorsqu'elle est active, le programmeur ne sait pas exactement d'où provient le contenu de la variable, et ne peut que faire des suppositions. Les variables internes définies dans le script sont mélangées avec les données envoyées par les utilisateurs, et en désactivant register_globals, on empêche cela. Voyons avec un exemple le fonctionnement de register_globals :

Exemple #13 Exemple de mauvaise utilisation de register_globals

<?php
// $authorized = true uniquement si l'utilisateur est identifié
if (authenticated_user()) {
    
$authorized true;
}

// Comme nous n'avons pas initialisé $authorized avec false, cette dernière
// peut être définie via register_globals, comme avec l'URL GET auth.php?authorized=1
// Tout le monde peut facilement être reconnu comme identifié!
if ($authorized) {
    include 
"/donnees/critiques/data.php";
}
?>

Lorsque register_globals est activé, la logique ci-dessus peut être prise en défaut. Lorsque register_globals est désactivée $authorized ne peut plus être assignée via la requête, et le script est maintenant sûr, même s'il reste recommandé de toujours initialiser ses variables. Par exemple, dans notre programme ci-dessus, nous pourrions ajouter $authorized = false. En faisant cela, le script peut fonctionner avec register_globals on ou off, car les utilisateurs seront par défaut non-identifiés.

Un autre exemple implique les sessions. Lorsque register_globals est activé, on peut aussi utiliser $username dans notre exemple, mais, encore une fois, vous devez garder en tête que $username peut aussi provenir d'autres biais, tels que GET (via l'URL).

Exemple #14 Exemple d'abus de sessions avec register_globals on ou off

<?php
// Nous ne savons pas d'où provient $username mais nous savons que
// $_SESSION contient les données de session
if (isset($_SESSION['username'])) {

    echo 
"Bonjour <strong>{$_SESSION['username']}</strong>";

} else {

    echo 
"Bonjour <strong>visiteur</strong><br />";
    echo 
"Voulez-vous vous identifier?";

}
?>

Il est même possible de prendre des mesures préventives, pour être alerté lorsqu'une tentative d'usurpation est faite. Si vous savez à l'avance de quelle variable le nom d'utilisateur doit provenir, vous pouvez vérifier si les données que vous manipulez sont d'une origine contrôlée. Même si cela ne garantit pas que les données ne puissent être falsifiées, cela complique la tache du faussaire. Si vous ne vous préoccupez pas de l'origine des données, vous pouvez utiliser la variable $_REQUEST qui contient un mélange de données GET, POST et COOKIE. Voyez aussi la section du manuel concernant les variables de sources externes à PHP.

Exemple #15 Détection simple de fausses variables

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    
// MAGIC_COOKIE provient d'un cookie.
    // Assurez-vous de valider les données du cookie!

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   
mail("admin@example.com""Tentative possible d'attaque"$_SERVER['REMOTE_ADDR']);
   echo 
"Alerte sécurité, l'admin a été prévenu.";
   exit;

} else {

   
// MAGIC_COOKIE ne provient pas de REQUEST

}
?>

Bien sur, désactiver l'option register_globals ne signifie pas que votre code est sécuritaire. Pour chaque donnée reçu, vous devez appliquer un maximum de validations. Vérifiez toujours les données de votre visiteur, et initialisez vos variables! Pour vérifier les variables non-initialisées, voyez la fonction error_reporting(), qui peut afficher les erreurs de niveau E_NOTICE.

Pour des informations sur l'émulation de register_globals On ou Off, voyez la FAQ.

Note: Superglobales : disponibilité

Depuis PHP 4.1.0, les tableaux superglobaux tels que $_GET, $_POST et $_SERVER, etc. sont disponibles. Pour plus d'informations, lisez la section superglobals



Données transmises par les internautes

Les plus grandes faiblesses de nombreux programmes PHP ne viennent pas du langage lui-même, mais de son utilisation en omettant les caractéristiques de sécurité. Pour cette raison, vous devez toujours prendre le temps de prendre en compte les implications d'une fonction, et de cerner toutes les applications d'une utilisation exotiques des paramètres.

Exemple #16 Utilisation dangereuse de variables

<?php
// efface un fichier à la racine d'un utilisateur... ou peut être
// de quelqu'un d'autre?
unlink($evil_var);
// Note l'accès de ce fichier ... ou pas?
fputs($fp$evil_var);
// Exécute une commande triviale... ou ajoute une entrée dans /etc/password ?
system($evil_var);
exec($evil_var);
?>

Il est vivement recommandé d'examiner minutieusement votre code pour vous assurer qu'il n'y a pas de variables envoyées par le client web, et qui ne sont pas suffisamment vérifiées avant utilisation.

  • Est-ce que ce script n'affectera que les fichiers prévus?
  • Est-il possible que des valeurs incohérentes soient exploitées ici?
  • Est-ce que ce script peut être utilisé dans un but différent?
  • Est-ce que ce script peut être utilisé malicieusement, en conjonction avec d'autres?
  • Est-ce que toutes les actions seront notées?

En répondant de manière adéquate à ces questions lors de l'écriture de vos scripts (plutôt qu'après), vous éviterez une réécriture inopportune pour raison de sécurité. En commençant vos projets avec ces recommandations en tête, vous ne garantirez pas la sécurité de votre système, mais vous contribuerez à l'améliorer.

Vous pouvez aussi envisager de supprimer l'acquisition automatique des variables d'environnement, les guillemets magiques (magic_quotes), ou encore toute option qui pourrait vous conduire à vous tromper sur la validité, la source ou la valeur d'une variable. En travaillant avec avec PHP en error_reporting(E_ALL), vous pouvez être averti que certaines variables sont utilisées avant d'être exploitées, ou vérifiées (et donc, vous pourrez traiter des valeurs exotiques à la source).



Guillemets magiques

Sommaire

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Les guillemets magiques (littéralement, les Magic Quotes) est un processus qui protège automagiquement les données introduites dans un script PHP. Il est recommandé de développer les applications sans l'aide des guillemets magiques, et de protéger manuellement les données.


Qu'est-ce que les guillemets magiques?

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Lorsque cette directive est active, les guillemets simples ', les guillemets doubles ", les antislashs \ et les caractères nul NULL sont protégés automatiquement avec un antislash. C'est le même résultat que celui de la fonction addslashes().

Il y a trois directives de guillemets magiques différentes :

  • magic_quotes_gpc Affecte les données issues des requêtes HTTP (GET, POST, et COOKIE). Ne peut pas être configurée durant l'exécution, et vaut par défaut on en PHP. Voir aussi get_magic_quotes_gpc().
  • magic_quotes_runtime Si activée, la plupart des fonctions qui retournent des données externes, y compris issues d'une base de données ou d'un fichier texte, verront les données protégées par des antislashs. Cette directive peut être modifiée durant l'exécution, et vaut par défaut off en PHP. Voir aussi set_magic_quotes_runtime() et get_magic_quotes_runtime().
  • magic_quotes_sybase Si cette configuration est active, les guillemets simples sont protégés avec un autre guillemets simples, et non pas un antislash. Lorsqu'elle est active, cette directive remplace entièrement magic_quotes_gpc. Si vous activez ces deux directives, alors seuls les guillemets simples seront protégés, avec ''. Les guillemets doubles, les antislashs et les caractères nul seront laissés intacts. Voir aussi ini_get() pour lire la valeur de la directive.


Pourquoi utiliser les guillemets magiques?

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

  • Il n'y a aucune raison d'utiliser les guillemets magiques, car ils ne sont plus supportés en PHP. Cependant, ils ont existés, et ont aidé quelques débutants, en le permettant de produire, sans le savoir et involontairement, du code plus sécuritaire. Lorsque vous tombez sur des scripts qui s'appuient sur ce type de comportements, il est recommandé de modifier ce code et de désactiver les guillemets magiques. Pour quelles raisons cette fonctionnalité est apparue? Simplement pour se protéger des injections SQL. Aujourd'hui, les développeurs sont plus conscients des problèmes de sécurité, et adoptent les mécanismes de protections de leur base de données, ou les commandes préparées, au lieu de passer par les guillemets magiques.


Pourquoi ne pas utiliser les guillemets magiques?

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

  • Portabilité Cette directive peut être activée ou désactivée suivant les serveurs et cela affecte grandement la portabilité. Utilisez get_magic_quotes_gpc() pour vérifier s'ils sont actifs ou pas, et adaptez votre application.
  • Performances Comme ce n'est pas toutes les données qui sont finalement placées dans une base, il y a un coût en vitesse pour protéger toutes ces données. Le simple appel des fonctions de protections en fonction des besoins est plus efficace (addslashes()). Même si php.ini-development active ces options par défaut, php.ini-recommended les désactive. Cette recommandation est surtout faite pour des raisons de vitesse.
  • Peu pratique Comme toutes les données n'ont pas forcément besoin de protection, il est souvent désagréable de voir des données protégées là où ça ne sert à rien. Par exemple, lorsque vous envoyez par mail un formulaire, et que vous voyez des antislashs parsemer le message. Pour corriger cela, il faut faire un usage fréquent de stripslashes().


Désactiver les guillemets magiques

La directive magic_quotes_gpc ne peut être désactivée qu'au niveau du système, et non pas à l'exécution. En d'autres termes, utiliser ini_set() n'est pas possible.

Exemple #1 Désactiver les guillemets magiques du coté du serveur

Voici un exemple qui donne la valeur de Off à ces directives dans le fichier php.ini. Pour plus de détails, voyez la section Comment changer la configuration.

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Si vous n'avez pas accès au serveur, utilisez le fichier .htaccess. Par exemple :

php_flag magic_quotes_gpc Off

Afin d'écrire du code portable sur tous les environnement, et où vous ne pourrez pas forcément modifier la configuration du serveur, voici un exemple de désactivation de magic_quotes_gpc à l'exécution. Cette méthode est inefficace, et il est recommandé d'utiliser les autres solutions si possible.

Exemple #2 Désactivation des guillemets magiques à l'exécution

<?php
if (get_magic_quotes_gpc()) {
    
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list(
$key$val) = each($process)) {
        foreach (
$val as $k => $v) {
            unset(
$process[$key][$k]);
            if (
is_array($v)) {
                
$process[$key][stripslashes($k)] = $v;
                
$process[] = &$process[$key][stripslashes($k)];
            } else {
                
$process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset(
$process);
}
?>




Masquer PHP

En général, la sécurité par l'obscurité est une des formes de sécurité les plus faibles. Mais dans certains cas, chaque action, aussi faible soit elle, concernant la sécurité, est souhaitable.

Quelques astuces permettent de masquer PHP, et cela entrave les pirates qui recherchent des faiblesses dans votre système. En l'option expose_php à off dans votre fichier php.ini, vous pouvez réduire la quantité d'informations disponible.

Une autre astuce est de configurer le serveur web, comme Apache, pour qu'il utilise plusieurs types de fichiers différents avec PHP, soit localement avec le fichier .htaccess, soit dans le fichier de configuration lui-même. Vous pouvez utiliser des informations déroutantes comme ceci :

Exemple #3 Masquer PHP avec un autre langage

# Faire que le code PHP ressemble à un autre langage
AddType application/x-httpd-php .asp .py .pl
Ou masquez le complètement :

Exemple #4 Masquer PHP avec des types inconnus

# Faire que le code PHP ressemble à un autre langage qui n'existe pas
AddType application/x-httpd-php .bop .foo .133t
Ou encore, cachez-le sous forme de HTML. Cela a un léger impact négatif sur les performances générales, car tous les fichiers HTML seront aussi analysés et traités par le moteur PHP :

Exemple #5 Utiliser le type HTML pour les extensions PHP

# Faire que le code PHP ressemble à du html
AddType application/x-httpd-php .htm .html
Pour que cela fonctionne efficacement, pensez à renommer tous vos fichiers PHP avec les extensions ci-dessus. Même si c'est une forme de sécurité du non-dit, c'est une mesure de prévention mineure, avec peu d'inconvénients.



Être à jour

PHP, comme de nombreux systèmes de grande taille, est constamment testé et amélioré. Chaque nouvelle version rassemble des modifications majeures et mineures, aussi bien pour renforcer la sécurité, que pour réparer les problèmes de conceptions de configuration, et d'autres points qui peuvent affecter la sécurité globale et la stabilité de votre système.

Comme les autres langages de scripts systèmes, la meilleure approche est de mettre à jour souvent PHP, et de rester à l'écoute des dernières versions et des modifications qu'elles apportent.




Caractéristiques


Identification HTTP avec PHP

Il est possible d'utiliser la fonction header() pour demander une identification ("Authentication Required") au client, générant ainsi l'apparition d'une fenêtre de demande d'utilisateur et de mot de passe. Une fois que les champs ont été remplis, l'URL sera de nouveau appelée, avec les variables prédéfinies PHP_AUTH_USER, PHP_AUTH_PW et AUTH_TYPE contenant respectivement le nom d'utilisateur, le mot de passe et le type d'identification. Ces variables prédéfinies sont trouvées dans les tableaux $_SERVER et $HTTP_SERVER_VARS. Les méthodes d'identification simple ("Basic") et de type "Digest" (depuis PHP 5.1.0) sont supportées. Reportez-vous à la fonction header() pour plus d'informations.

Note: Note de version PHP

Les Superglobales, comme $_SERVER, deviennent disponibles en PHP depuis la version » 4.1.0.

Voici un exemple de script qui force l'identification du client pour accéder à une page :

Exemple #6 Exemple d'identification HTTP simple

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    
header('WWW-Authenticate: Basic realm="My Realm"');
    
header('HTTP/1.0 401 Unauthorized');
    echo 
'Texte utilisé si le visiteur utilise le bouton d\'annulation';
    exit;
} else {
    echo 
"<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo 
"<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>

Exemple #7 Exemple d'identification HTTP Digest

Cet exemple montre comment appliquer l'utilisation d'un script d'identification HTTP de type "Digest". Pour plus d'informations, lisez la documentation » RFC 2617.

<?php
$realm 
'Restricted area';

//utilisateur => mot de passe
$users = array('admin' => 'mypass''guest' => 'guest');


if (empty(
$_SERVER['PHP_AUTH_DIGEST'])) {
    
header('HTTP/1.1 401 Unauthorized');
    
header('WWW-Authenticate: Digest realm="'.$realm.
           
'",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');

    die(
'Texte utilisé si le visiteur utilise le bouton d\'annulation');
}

// analyse la variable PHP_AUTH_DIGEST
if (!($data http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
    !isset(
$users[$data['username']]))
    die(
'Mauvaise Pièce d\'identité!');


// Génération de réponse valide
$A1 md5($data['username'] . ':' $realm ':' $users[$data['username']]);
$A2 md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
$valid_response md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);

if (
$data['response'] != $valid_response)
    die(
'Mauvaise Pièce d\'identitée!');

// ok, utilisateur & mot de passe valide
echo 'Vous êtes identifié en tant que : ' $data['username'];


// fonction pour analyser l'en-tête http auth
function http_digest_parse($txt)
{
    
// protection contre les données manquantes
    
$needed_parts = array('nonce'=>1'nc'=>1'cnonce'=>1'qop'=>1'username'=>1'uri'=>1'response'=>1);
    
$data = array();
    
$keys implode('|'array_keys($needed_parts));
 
    
preg_match_all('@(' $keys ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@'$txt$matchesPREG_SET_ORDER);

    foreach (
$matches as $m) {
        
$data[$m[1]] = $m[3] ? $m[3] : $m[4];
        unset(
$needed_parts[$m[1]]);
    }

    return 
$needed_parts false $data;
}
?>

Note: Note de compatibilité

Soyez bien prudent lorsque vous utilisez des en-têtes HTTP avec PHP. Afin de garantir un maximum de compatibilité entre les navigateurs, le mot clé "Basic" doit être écrit avec un B majuscule, et le texte de présentation doit être placé entre guillemets simples, et exactement un espace doit précéder le code 401 dans l'en-tête HTTP/1.0 401. Les paramètres d'authentification doivent être séparés par des virgules comme montré dans l'exemple ci-dessus.

Au lieu d'afficher simplement les variables globales PHP_AUTH_USER et PHP_AUTH_PW, vous préférerez sûrement vérifier la validité du nom d'utilisateur et du mot de passe. Par exemple, en envoyant ces informations à une base de données, ou en recherchant dans un fichier dbm.

Méfiez-vous des navigateurs bogués, tels qu'Internet Explorer. Ils semblent très susceptibles en ce qui concerne l'ordre des en-têtes. Envoyer l'en-tête d'identification (WWW-Authenticate) avant le code de HTTP/1.0 401 semble lui convenir jusqu'à présent.

Depuis PHP 4.3.0, pour éviter que quelqu'un écrive un script qui révèle les mots de passe d'une page, à laquelle on a accédé par une identification traditionnelle, les variables globales PHP_AUTH ne seront pas assignées si l'identification externe a été activée pour cette page et que le safe mode est activé. Dans ce cas, la variable REMOTE_USER peut être utilisée pour identifier l'utilisateur à l'extérieur. De même que $_SERVER['REMOTE_USER'].

Note: Note de configuration

PHP utilise la présence de la directive AuthType pour déterminer si une identification externe est activée. Évitez donc cette directive de contexte si vous voulez utiliser l'identification de PHP (sinon, les deux identifications se contrediront, et échoueront).

Notez cependant que les manipulations ci-dessus n'empêchent pas quiconque possède une page non identifiée de voler les mots de passe des pages protégées, sur le même serveur.

Netscape et Internet Explorer effaceront le cache d'identification client s'ils reçoivent une réponse 401. Cela permet de déconnecter un utilisateur, pour le forcer à saisir à nouveau son nom de compte et son mot de passe. Certains programmeurs l'utilisent pour donner un délai d'expiration ou, alors, fournissent un bouton de déconnexion.

Exemple #8 Identification HTTP avec nom d'utilisateur/mot de passe forcé

<?php
function authenticate() {
    
header('WWW-Authenticate: Basic realm="Test Authentication System"');
    
header('HTTP/1.0 401 Unauthorized');
    echo 
"Vous devez entrer un identifiant et un mot de passe valides pour accéder
    à cette ressource.\n"
;
    exit;
}

if ( !isset(
$_SERVER['PHP_AUTH_USER']) ||
     (
$_POST['SeenBefore'] == && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
    
authenticate();
} else {
    echo 
"<p>Bienvenue : " htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "<br />";
    echo 
"Ancien : " htmlspecialchars($_REQUEST['OldAuth']);
    echo 
"<form action='' method='post'>\n";
    echo 
"<input type='hidden' name='SeenBefore' value='1' />\n";
    echo 
"<input type='hidden' name='OldAuth' value=\"" htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "\" />\n";
    echo 
"<input type='submit' value='Re Authenticate' />\n";
    echo 
"</form></p>\n";
}
?>

Ce comportement n'est pas nécessaire par le standard d'identification HTTP Basic. Les tests avec Lynx ont montré qu'il n'affectait pas les informations de session lors de la réception d'un message de type 401. Ce qui fait que presser la touche "retour" à un client Lynx précédemment identifié donnera l'accès direct à la ressource. Cependant, l'utilisateur peut utiliser la touche '_' pour détruire les anciennes identifications.

Noter également que depuis PHP 4.3.3, l'authentification HTTP ne fonctionnera pas lors de l'utilisation de Microsoft IIS avec la version CGI de PHP en raison d'une limitation d'IIS. Pour retrouver un fonctionnement normal en PHP 4.3.3+, vous devez éditer votre configuration "Directory Security". Cliquez sur "Edit" et activez uniquement "Anonymous Access", tous les autres champs doivent être laissés non actifs.

Une autre limitation : si vous utilisez le module IIS (ISAPI) et PHP 4, vous ne pourrez pas utiliser les variables PHP_AUTH_* mais à la place, la variable HTTP_AUTHORIZATION est disponible. Par exemple, considérez le code suivant : list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

Note: Note pour les utilisateurs de IIS :
Pour que l'identification HTTP fonctionne avec IIS, la directive PHP cgi.rfc2616_headers doit être définie à 0 (la valeur par défaut).

Note:

Si le safe mode est activé, le uid de ce script est ajouté à la partie realm des en-têtes WWW-Authenticate.



Cookies

PHP supporte les cookies HTTP de manière transparente. Les cookies sont un mécanisme d'enregistrement d'informations sur le client, et de lecture de ces informations. Ce système permet d'identifier et de suivre les visiteurs. Vous pouvez envoyer un cookie avec la fonction setcookie() ou setrawcookie(). Les cookies font partie des en-têtes HTTP, ce qui impose que setcookie() soit appelée avant tout affichage de texte. Ce sont les mêmes limitations que pour header(). Vous pouvez utiliser les fonctions de bufferisation de sortie pour retarder l'affichage de votre script tant que vous n'avez pas décidé d'envoyer un cookie ou des en-têtes.

Tous les cookies qui sont envoyés au client seront automatiquement inclus dans un tableau auto-global $_COOKIE si variables_order contient "C". Si vous souhaitez affecter plusieurs valeurs à un seul cookie, ajoutez [] au nom du cookie.

Selon la configuration de register_globals, des variables PHP peuvent être créées à partir des cookies. Cependant, il n'est pas recommandé de se fier à elles, puisque cette fonctionnalité est souvent désactivée pour des raisons de sécurité. $HTTP_COOKIE_VARS est aussi prédéfinie dans les versions de PHP plus anciennes, lorsque la directive track_vars est activée.

Pour plus de détails, y compris des notes sur les bogues des navigateurs, voir les fonctions setcookie() et setrawcookie().



Sessions

Le support des sessions de PHP est un mécanisme pour conserver des données entre différents accès. Cela vous permet de personnaliser les applications, et d'augmenter l'attrait de votre site. Toutes les informations sur les sessions sont disponibles dans la section sessions.



Utiliser les XForms

» XForms est une variation des formulaires web traditionnels, qui permet leur utilisation sur diverses plates-formes et navigateurs, et même sur des médias moins traditionnels comme les documents PDF.

La première différence des XForms est leur présentation au client. » XForms for HTML Authors contient une description détaillée de la création des XForms, complémentaire de notre tutoriel : nous allons nous consacrer à un exemple simple.

Exemple #9 Un simple formulaire XForms de recherche

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Le formulaire ci-dessus affiche une boîte de texte (appelée q), et un bouton de soumission. Lorsque ce bouton est utilisé, le formulaire est envoyé à la page d'action.

C'est là que la différence se fait sentir, du point de vue de l'application web. Dans un formulaire HTML, les données sont envoyées au format application/x-www-form-urlencoded. Pour un XForm, c'est en fait un format XML qui est utilisé.

Si vous avez décidé d'utiliser des XForms, vous attendez peut être des données au format XML, et dans ce cas, regardez dans la variable $HTTP_RAW_POST_DATA, où vous trouverez le document XML généré par le navigateur, que vous pourrez passer à votre moteur XSLT favori.

Si vous n'êtes pas intéressé par ce format, et que vous voulez simplement exploiter vos données avec la variable $_POST, vous pouvez demander au navigateur de les envoyer au format application/x-www-form-urlencoded, en modifiant l'attribut de méthode method et en lui donnant la valeur de urlencoded-post.

Exemple #10 Utiliser des XForms pour remplir $_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="urlencoded-post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Note: Au moment de la rédaction de cet article, de nombreux navigateurs ne supportent pas les XForms. Vérifiez la version de votre navigateur si les exemples de ce tutoriel ne fonctionnent pas.



Gestion des chargements de fichiers

Sommaire


Chargements de fichiers par méthode POST

Cette fonctionnalité permet aux personnes de télécharger à la fois du texte et des fichiers binaires. Avec les fonctions d'identification et de manipulation de fichiers de PHP, vous avez le contrôle total pour définir qui a le droit de télécharger mais aussi ce qui sera fait du fichier une fois qu'il sera téléchargé.

PHP est capable de recevoir des fichiers émis par un navigateur conforme à la norme RFC-1867.

Note: Notes de configuration

Voir aussi les directives file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size et max_input_time dans php.ini

PHP supporte aussi le chargement par la méthode PUT comme dans le navigateur Netscape Composer et Amaya du W3C. Reportez-vous au chapitre sur le support de la méthode PUT.

Exemple #1 Formulaire de chargement de fichier

Un formulaire de téléchargement de fichiers peut être construit en créant un formulaire spécifique comme ceci :

<!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit -->
<form enctype="multipart/form-data" action="_URL_" method="post">
  <!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
  <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
  Envoyez ce fichier : <input name="userfile" type="file" />
  <input type="submit" value="Envoyer le fichier" />
</form>

_URL_ dans l'exemple précédent doit être remplacé et pointé vers un fichier PHP.

Le champ caché MAX_FILE_SIZE (mesuré en octets) doit précéder le champ input de type file et sa valeur représente la taille maximale acceptée du fichier par PHP. Cet élément de formulaire doit toujours être utilisé car il permet d'informer l'utilisateur que le transfert désiré est trop lourd avant d'atteindre la fin du téléchargement. Gardez à l'esprit que ce paramètre peut être "trompé" du côté du navigateur facilement, aussi ne faîtes pas confiance à ce dernier, ne s'agissant finalement que d'une fonctionnalité de convenance côté client. Le paramètre PHP (côté serveur) à propos de la taille maximale d'un fichier téléchargé, ne peut, lui, être trompé.

Note:

Assurez-vous que votre formulaire de téléchargement de fichier contienne enctype="multipart/form-data", sinon, le fichier se sera pas téléchargé.

La variable globale $_FILES existe depuis PHP 4.1.0 (utilisez $HTTP_POST_FILES à la place si vous utilisez une version plus ancienne). Ces tableaux devraient contenir toutes les informations du fichier téléchargé.

Le contenu du tableau $_FILES est détaillé dans notre exemple ci-dessous. Notez que l'on suppose que le nom de la variable du fichier téléchargé est userfile, tel que défini dans le formulaire ci-dessus, mais peut être n'importe quel nom.

$_FILES['userfile']['name']

Le nom original du fichier, tel que sur la machine du client web.

$_FILES['userfile']['type']

Le type MIME du fichier, si le navigateur a fourni cette information. Par exemple, cela pourra être "image/gif". Ce type mime n'est cependant pas vérifié du côté de PHP et, donc, ne prend pas sa valeur pour se synchroniser.

$_FILES['userfile']['size']

La taille, en octets, du fichier téléchargé.

$_FILES['userfile']['tmp_name']

Le nom temporaire du fichier qui sera chargé sur la machine serveur.

$_FILES['userfile']['error']

Le code d'erreur associé au téléchargement de fichier.

Le fichier téléchargé sera stocké temporairement dans le dossier temporaire du système, à moins qu'un autre dossier soit fourni avec la directive upload_tmp_dir du php.ini. Le dossier par défaut du serveur peut être changé dans l'environnement via la variable TMPDIR. Modifier la valeur de cette variable avec la fonction putenv() dans un script PHP sera sans effet. Cette variable d'environnement peut aussi être utilisée pour s'assurer que d'autres opérations fonctionnent aussi sur les fichiers téléchargés.

Exemple #2 Validation de téléchargement de fichiers

Voyez aussi les fonctions is_uploaded_file() et move_uploaded_file() pour plus d'informations. L'exemple suivant va télécharger un fichier venant d'un formulaire.

<?php
// Dans les versions de PHP antiéreures à 4.1.0, la variable $HTTP_POST_FILES
// doit être utilisée à la place de la variable $_FILES.

$uploaddir '/var/www/uploads/';
$uploadfile $uploaddir basename($_FILES['userfile']['name']);

echo 
'<pre>';
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo 
"Le fichier est valide, et a été téléchargé
           avec succès. Voici plus d'informations :\n"
;
} else {
    echo 
"Attaque potentielle par téléchargement de fichiers.
          Voici plus d'informations :\n"
;
}

echo 
'Voici quelques informations de débogage :';
print_r($_FILES);

echo 
'</pre>';

?>

Le script PHP qui reçoit le fichier chargé doit pouvoir gérer le fichier de manière appropriée. Vous pouvez utiliser la variable $_FILES['userfile']['size'] pour recaler tous les fichiers qui sont trop gros ou trop petits. Vous pouvez utiliser la variable $_FILES['userfile']['type'] pour écarter les fichiers qui n'ont pas le bon type, mais l'utiliser uniquement pour une série de vérifications, car cette valeur est complètement sous le contrôle du client et n'est pas vérifiée du côté de PHP. Depuis PHP 4.2.0, vous pouvez utiliser l'information dans $_FILES['userfile']['error'] et adapter votre politique en fonction des codes d'erreur. Quelle que soit votre politique, vous devriez soit effacer le fichier du dossier temporaire, soit le déplacer.

Si aucun fichier n'est sélectionné dans le formulaire, PHP retournera 0 dans $_FILES['userfile']['size'] et rien du tout dans $_FILES['userfile']['tmp_name'].

Le fichier sera automatiquement effacé du dossier temporaire à la fin du script, s'il n'a pas été déplacé ou renommé.

Exemple #3 Envoi d'un tableau de fichiers

PHP supporte les tableaux en HTML ainsi qu'avec les fichiers.

<form action="" method="post" enctype="multipart/form-data">
<p>Images:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if (
$error == UPLOAD_ERR_OK) {
        
$tmp_name $_FILES["pictures"]["tmp_name"][$key];
        
$name $_FILES["pictures"]["name"][$key];
        
move_uploaded_file($tmp_name"data/$name");
    }
}
?>

La barre de progression de téléchargement peut être implémentée par apc.rfc1867.



Explication sur les messages d'erreurs de chargement de fichiers

Depuis PHP 4.2.0, PHP retourne un code d'erreur approprié dans le tableau de fichiers. Ce code d'erreur est accessible à l'index ['error'] du tableau, qui est créé durant le téléchargement par PHP. En d'autres termes, le message d'erreur est accessible dans la variable $_FILES['userfile']['error'].

UPLOAD_ERR_OK

Valeur : 0. Aucune erreur, le téléchargement est correct.

UPLOAD_ERR_INI_SIZE

Valeur : 1. Le fichier téléchargé excède la taille de upload_max_filesize, configurée dans le php.ini.

UPLOAD_ERR_FORM_SIZE

Valeur : 2. Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.

UPLOAD_ERR_PARTIAL

Valeur : 3. Le fichier n'a été que partiellement téléchargé.

UPLOAD_ERR_NO_FILE

Valeur : 4. Aucun fichier n'a été téléchargé.

UPLOAD_ERR_NO_TMP_DIR

Valeur : 6. Un dossier temporaire est manquant. Introduit en PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE

Valeur : 7. Échec de l'écriture du fichier sur le disque. Introduit en PHP 5.1.0.

UPLOAD_ERR_EXTENSION

Valeur : 8. Une extension PHP a arrété l'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L'examen du phpinfo() peut aider. Introduit en PHP 5.2.0.

Note:

Ces valeurs deviennent des constantes PHP en version 4.3.0.



Erreurs classiques

La variable MAX_FILE_SIZE ne peut pas spécifier une taille de fichier plus grande que la taille qui a été fixée par upload_max_filesize, dans le php.ini. La valeur par défaut est 2 megaoctets.

Si une limite de mémoire est activée, une plus grande valeur de memory_limit peut être nécessaire. Assurez-vous d'avoir défini une valeur pour memory_limit assez grande.

Si la valeur de max_execution_time est trop petite, le temps d'exécution du script peut excéder cette valeur. Assurez-vous d'avoir défini une valeur pour max_execution_time assez grande.

Note: max_execution_time affecte uniquement le temps d'exécution du script. Le temps passé sur l'activité qui apparaît en dehors de l'exécution du script comme les appels systèmes avec la fonction system(), la fonction sleep(), les requêtes sur les bases de données, le temps mis pour effectuer le téléchargement du fichier, etc. n'est pas inclus lors du calcul du temps maximal de l'exécution du script.

Avertissement

max_input_time définit le temps maximal, en secondes, au script pour recevoir les données ; cela inclut le téléchargement du fichier. Pour les fichiers multiples, ou les gros fichiers, ou encore pour les utilisateurs sur des connexions lentes, la valeur par défaut de 60 secondes peut être dépassée.

Si post_max_size est définit de façon trop faible, les gros fichiers ne pourront pas être téléchargés. Assurez-vous de définir post_max_size avec une taille suffisante.

Depuis PHP 5.2.12, la configuration de max_file_uploads contrôle le nombre maximum de fichiers qui peuvent être envoyés en une requête. Si le nombre de fichiers envoyés dépasse cette limite, alors $_FILES arrêtera la réception. Par exemple, si max_file_uploads vaut 10, alors $_FILES ne contiendra jamais plus de 10 entités.

Ne pas valider les fichiers que vous manipulez peut donner l'accès aux utilisateurs à des fichiers sensibles dans d'autres dossiers !

Attention : il semble que CERN httpd supprime tout ce qui est après le premier caractère dans l'entête MIME. Tant que c'est le cas, CERN httpd ne pourra pas effectuer de chargements de fichiers.

Du fait de la grande diversité des systèmes, nous ne pouvons garantir que les fichiers avec des noms exotiques (par exemple, ceux contenant des espaces) seront traités correctement.

Le développeur ne doit pas mixer les champs input normaux et les champs de téléchargement dans une même variable (en utilisant un nom d'input comme foo[]).



Télécharger plusieurs fichiers simultanément

Le téléchargement de plusieurs fichiers est possible en utilisant des noms différents dans l'attribut name de la balise input.

Il est aussi possible de télécharger plusieurs fichiers simultanément et d'obtenir les informations sous forme de tableau. Pour cela, vous devez utiliser la syntaxe de tableau dans les noms de balises HTML, comme vous l'avez fait avec les sélections multiples et les boîtes à cocher.

Exemple #1 Télécharger plusieurs fichiers simultanément

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Envoyez plusieurs fichiers : <br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Envoyer les fichiers" />
</form>

Lorsque le formulaire ci-dessus a été envoyé, les tableaux $_FILES['userfile'], $_FILES['userfile']['name'], et $_FILES['userfile']['size'] seront initialisés (tout comme $HTTP_POST_FILES pour les versions PHP antérieures à 4.1.0). Lorsque register_globals est activé, les variables globales concernant les fichiers téléchargés sont aussi initialisées. Chacune d'entre elles contiendra un tableau numériquement indexé, avec les valeurs décrivant les fichiers téléchargés.

Par exemple, supposons que les fichiers /home/test/review.html et /home/test/xwp.out ont été téléchargés. Dans ce cas, $_FILES['userfile']['name'][0] contient review.html et $_FILES['userfile']['name'][1] contient xwp.out. Similairement, $_FILES['userfile']['size'][0] va contenir la taille du fichier review.html, etc.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] et $_FILES['userfile']['type'][0] sont aussi créées.

Avertissement

Depuis PHP 5.2.12, le paramètre max_file_uploads limite le nombre de fichiers qui peuvent être envoyés en une requête. Vous devrez vérifier que votre formulaire ne tente pas d'envoyer plus de fichier dans la requête que ne le tolère cette limite.



Chargement par méthode PUT

PHP supporte la méthode HTTP PUT utilisée par les navigateurs pour y stocker des fichiers sur un serveur. Les requêtes de type PUT sont beaucoup plus simples que les chargements de fichiers en utilisant le type POST, et elles ressemblent à :

Exemple #1 Méthode PUT pour les chargements de fichiers

PUT /path/filename.html HTTP/1.1

Normalement, cela signifie que le serveur distant va sauver les données qui suivent dans le fichier : /path/filename.html de son disque. Ce n'est évidemment pas très sécurisé de laisser Apache ou PHP écraser n'importe quel fichier de l'arborescence. Pour éviter ceci, il faut d'abord dire au serveur que vous voulez qu'un script PHP donné gère la requête. Avec Apache, il y a une directive pour cela : Script. Elle peut être placée n'importe où dans le fichier de configuration d'Apache. En général, les webmestres la placent dans le bloc <Directory>, ou peut-être dans le bloc <VirtualHost>. La ligne suivante fera très bien l'affaire :

Exemple #2 Directive Apache pour le chargement par méthode PUT

Script PUT /put.php

Elle indique à Apache qu'il doit envoyer les requêtes de chargement par méthode PUT au script put.php. Bien entendu, cela présuppose que vous avez activé PHP pour qu'il prenne en charge les fichiers de type .php, et que PHP est actif. La ressource de destination pour toutes les requêtes PUT de ce script doit être le script lui-même, et non le nom du fichier que le fichier téléchargé doit avoir.

Avec PHP, vous voudriez faire quelque chose comme ce qui suit dans votre put.php. Ceci va copier le contenu du fichier téléchargé dans le fichier myputfile.ext sur le serveur. Vous devez probablement vouloir effectuer quelques vérifications et/ou identifier l'utilisateur avant d'effectuer cette copie de fichier.

Exemple #3 Sauvegarde de fichiers HTTP PUT

<?php
/* Les données PUT arrivent du flux */
$putdata fopen("php://input""r");

/* Ouvre un fichier pour écriture */
$fp fopen("myputfile.ext""w");

/* Lecture des données, 1 Ko à la fois
and write to the file */
while ($data fread($putdata1024))
fwrite($fp$data);

/* Fermeture du flux */
fclose($fp);
fclose($putdata);
?>




Utilisation des fichiers à distance

Aussi longtemps que le support des gestionnaires d'URL ("URL fopen wrapper") est activé dans le php.ini, avec l'option allow_url_fopen , vous pouvez utiliser des URL (HTTP et FTP) avec la majorité des fonctions qui utilisent un nom de fichier comme paramètre. Cela inclut notamment include(), include_once(), require() et require_once() (depuis PHP 5.2.0, allow_url_include doit être actif pour les utiliser). Reportez-vous à Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les protocoles supportés par PHP.

Note:

En PHP 4.0.3 et antérieures, afin d'utiliser les gestionnaires URL, vous devez configurer PHP en utilisant l'option de configuration --enable-url-fopen-wrapper .

Note:

Les versions Windows de PHP antérieures à PHP 4.3 ne supportent pas l'accès aux fichiers distantes avec les fonctions suivantes : include(), include_once(), require(), require_once(), et les fonctions imagecreatefromXXX de l'extension Fonctions GD et images.

Par exemple, vous pouvez suivre l'exemple suivant pour ouvrir un fichier sur un serveur web distant, analyser les résultats pour extraire les informations dont vous avez besoin, et ensuite l'utiliser dans une requête de base de données, ou simplement éditer les informations dans le style de votre site.

Exemple #4 Connaître le titre d'une page distante

<?php
$file 
fopen ("http://www.example.com/""r");
if (!
$file) {
  echo 
"<p>Impossible de lire la page.\n";
  exit;
}
while (!
feof ($file)) {
    
$line fgets ($file1024);
    
/* Cela ne fonctionne que si les balises Title sont correctement utilisées */
    
if (preg_match ("@\<title\>(.*)\</title\>@i"$line$out)) {
        
$title $out[1];
        break;
    }
}
fclose($file);
?>

Vous pouvez aussi écrire des fichiers sur un serveur FTP aussi longtemps que vous êtes connecté avec un utilisateur ayant les bons droits d'accès, alors que le fichier n'existait pas encore.

Pour vous connecter avec un utilisateur autre qu'anonyme, vous devez spécifier un nom d'utilisateur (et certainement le mot de passe) dans l'URL, comme ftp://user:password@ftp.example.com/path/to/file. (Vous pouvez utiliser le même type de syntaxe pour accéder aux fichiers via HTTP lorsqu'ils nécessitent une identification simple).

Exemple #5 Stocker des données sur un serveur distant

<?php
$file 
fopen ("ftp://ftp.example.com/incoming/outputfile""w");
if (!
$file) {
  echo 
"<p>Impossible d'ouvrir le fichier distant pour écriture.\n";
  exit;
}
/* Ecriture des données. */
fputs ($file$_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Note:

Remarque : vous pouvez avoir l'idée, à partir de l'exemple ci-dessus, d'utiliser la même technique pour écrire sur un log distant, mais comme mentionné ci-dessus vous ne pouvez qu'écrire sur un nouveau fichier en utilisant les fonctions fopen() avec une URL. Pour faire des log distribués, nous vous conseillons de regarder la partie syslog().



Gestion des connexions

Le statut des connexions est conservé en interne par PHP. Il y a trois états possibles :

  • 0 - NORMAL (normal)
  • 1 - ABORTED (annulé)
  • 2 - TIMEOUT (périmé)

Lorsqu'un script PHP est en cours d'exécution, son état est NORMAL. Si le client distant se déconnecte, le statut devient ABORTED. En général, une telle déconnexion provient d'un arrêt temporaire. Si la durée maximale d'exécution de PHP est dépassée, (voir set_time_limit()), le script prend le statut TIMEOUT.

Vous pouvez en outre décider si vous voulez que la déconnexion d'un client provoque l'arrêt de votre script. Il est parfois pratique que vos scripts continuent à s'exécuter jusqu'à la fin, même si le client n'est plus là pour recevoir les informations. Cependant, par défaut, le script s'arrêtera dès que le client se déconnecte. Ce comportement peut être modifié avec la directive ignore_user_abort dans le fichier php.ini ou bien avec la directive Apache php_value ignore_user_abort du fichier Apache httpd.conf ou avec la fonction ignore_user_abort(). Si vous ne demandez pas à PHP d'ignorer la déconnexion, et que l'utilisateur se déconnecte, le script sera terminé. La seule exception est si vous avez enregistré une fonction de fermeture, avec register_shutdown_function(). Avec une telle fonction, lorsque l'utilisateur interrompt sa requête, à la prochaine exécution du script, PHP va s'apercevoir que le dernier script n'a pas été terminé, et il va déclencher la fonction de fermeture. Cette fonction sera aussi appelée à la fin du script, si celui-ci se termine normalement. Pour pouvoir avoir un comportement différent suivant l'état du script lors de sa finalisation, vous pouvez exécutez des commandes spécifiques à la déconnexion grâce à la commande connection_aborted(). Cette fonction retournera TRUE si la connexion a été annulée.

Votre script peut aussi être automatiquement interrompu après une certaine durée. Par défaut, le délai est de 30 secondes. Cette valeur peut être changée en utilisant la directive PHP max_execution_time dans le fichier php.ini ou avec la directive php_value max_execution_time, dans le fichier Apache httpd.conf ou encore avec la fonction set_time_limit(). Lorsque le délai expire, le script est terminé, et comme pour la déconnexion du client, une fonction de terminaison sera appelée. Dans cette fonction, vous pouvez savoir si c'est le délai d'expiration qui a causé la fin du script, en appelant la fonction connection_status(). Cette fonction retournera 2 si le délai d'expiration a été dépassé.

Une chose à noter est que les deux cas ABORTED et TIMEOUT peuvent être appelés en même temps. Ceci est possible si vous demandez à PHP d'ignorer les déconnexions des utilisateurs. PHP va quand même noter le fait que l'utilisateur s'est déconnecté, mais le script va continuer. Puis, lorsqu'il atteint la limite de temps, le script va expirer. À ce moment-là, la fonction connection_status() retournera 3.



Connexions persistantes aux bases de données

Les connexions persistantes aux bases de données SQL sont des connexions qui ne se referment pas à la fin du script. Lorsqu'une connexion persistante est demandée, PHP s'assure qu'il n'y a pas une autre connexion identique (qui serait ouverte précédemment, avec le même nom d'hôte, d'utilisateur et le même mot de passe), et si une telle connexion existe, elle est utilisée ; sinon, elle est créée. Une connexion identique est une connexion qui a ouvert le même hôte, avec le même nom et le même mot de passe (s'ils sont nécessaires).

Ceux qui ne sont pas rompus aux techniques des serveurs web et leur distribution de la charge de travail se font parfois une fausse idée de ces connexions persistantes. En particulier, les connexions persistantes ne permettent pas l'ouverture de plusieurs sessions avec le même lien ; elles ne permettent pas la réalisation de transactions efficaces et ne font pas le café. En fait, pour être extrêmement clair sur le sujet, les connexions persistantes ne vous donnent aucune fonctionnalité de plus que les connexions non persistantes.

Alors pourquoi les connexions persistantes ?

Cela s'explique par la manière avec laquelle les serveurs web fonctionnent. Il y a trois manières d'utiliser PHP pour générer des pages.

La première est d'utiliser PHP comme un CGI (Common Interface Gateway). Lorsque PHP fonctionne de cette manière, une instance de l'interpréteur PHP est créée puis détruite pour chaque page demandée. Étant donné que cet interpréteur est détruit après chaque requête, toutes les ressources acquises (comme une connexion à une base SQL), sont purement et simplement détruites.

La deuxième méthode, de loin la plus prisée, est d'exécuter PHP sous la forme d'un module sur un serveur multi-processus, ce qui revient à dire : Apache. Un tel serveur a typiquement un processus parent qui coordonne un ensemble de processus fils, qui servent les fichiers. Lorsque les requêtes parviennent depuis un client, elles sont transmises à un fils disponible. Cela signifie que si un client fait une deuxième requête, il peut être servi par un processus client différent du premier. Les connexions persistantes vous permettent alors de ne vous connecter à une base SQL que la première fois. Lors des connexions ultérieures, les processus fils pourront réutiliser la connexion ouverte précédemment.

La dernière méthode est d'utiliser PHP sous la forme d'un module de serveur multithread. Actuellement, PHP supporte ISAPI, WSAPI, et NSAPI (sous Windows), qui permettent tous d'utiliser PHP comme un module sur un serveur multithread tel que Netscape FastTrack (iPlanet), Microsoft Internet Information Server (IIS), et O'Reilly's WebSite Pro. Le comportement est essentiellement le même que pour les serveurs multi-processus décrits précédemment.

Si les connexions persistantes n'ont aucune fonctionnalité de plus, à quoi servent-elles ?

La réponse est extrêmement simple : efficacité. Les connexions persistantes sont un bon moyen d'accélérer les accès à une base SQL si le traitement de connexion à la base est long. Ce temps dépend de nombreux facteurs : le type de base de données, cette base est-elle sur le même serveur ou pas, quelle est la charge du serveur de base de données, etc. Si le temps de connexion est long, les connexions persistantes seront bien utiles, car une fois ouverte par un processus fils, la connexion est réutilisable sans avoir à se reconnecter. Si vous avez 20 processus fils, il suffit d'avoir 20 connexions persistantes ouvertes, une par fils.

Notez que les connexions persistantes ont quelques inconvénients si vous hébergez une base de données dont le nombre maximal de connexion risque d'être atteint par les connexions persistantes. Si votre base de données accepte jusqu'à 16 connexions simultanées et que 17 processus essaient de se connecter, le dernier restera sur la touche. S'il y a des erreurs dans les scripts qui ne permettent pas de fermer la connexion (par exemple, une boucle infinie), votre serveur sera rapidement engorgé. Vérifiez la documentation de votre base de données pour savoir comment elle traite les connexions inactives ou abandonnées.

Avertissement

Il y a quelques autres limitations à bien garder en tête lorsque vous utilisez les connexions persistantes. L'une est que lorsque vous posez un verrou avec une connexion persistante, si le script ne peut libérer le verrou pour une raison quelconque, alors les autres scripts qui réutiliseront la connexion seront bloqués indéfiniment, et vous imposeront le redémarrage du serveur ou de la base de données. Une autre limitation est, lors de l'utilisation des transactions, un bloc de transaction non fermé sera prolongé au script suivant, s'il n'est pas fermé par le script initiateur. Dans les deux cas, vous pouvez utiliser la fonction register_shutdown_function() pour enregistrer une fonction simple de nettoyage, pour déverrouiller les tables, et annuler les transactions en cours. Mieux encore, évitez le problème entièrement en n'utilisant pas les connexions persistantes dans les scripts qui ont besoin de verrous ou de transactions. Vous pourrez toujours les utiliser ailleurs.

Résumons-nous : les connexions persistantes ont été définies pour avoir les mêmes fonctionnalités que les connexions non persistantes. Les deux types de connexions sont parfaitement interchangeables, et n'affecteront pas le comportement de votre script : uniquement son efficacité.

Voir aussi fbsql_pconnect(), ibase_pconnect(), ifx_pconnect(), ingres_pconnect(), msql_pconnect(), mssql_pconnect(), mysql_pconnect(), ociplogon(), odbc_pconnect(), oci_pconnect(), pfsockopen(), pg_pconnect() et sybase_pconnect().



Safe mode

Sommaire

Le "Safe Mode" est le mode de sécurité de PHP : une solution au problème de partage de PHP sur un serveur. Ce système pêche au niveau de l'architecture car il n'est pas correct de tenter de résoudre ce problème au niveau de PHP, mais les solutions alternatives basées sur le serveur web et l'OS ne sont pas réalistes. De nombreux intervenants, notamment les fournisseurs d'hébergement, utilisent le "Safe Mode".

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.


Sécurité et "Safe Mode"

Options de configuration
Nom Par défaut Modifiable Historique
safe_mode "0" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_gid "0" PHP_INI_SYSTEM Disponible depuis PHP 4.1.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_include_dir NULL PHP_INI_SYSTEM Disponible depuis PHP 4.1.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_exec_dir "" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_allowed_env_vars "PHP_" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_protected_env_vars "LD_LIBRARY_PATH" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

safe_mode booléen

Active ou non le mode de sécurité de PHP. Si PHP est compilé avec --enable-safe-mode, la valeur par défaut sera On, sinon Off.

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

safe_mode_gid booléen

Par défaut, le safe mode fait une comparaison des propriétaires, avant d'ouvrir un fichier. Si vous voulez alléger un peu ce niveau de sécurité, vous pouvez réaliser une comparaison de groupe, et activer cette directive. Si cette directive vaut FALSE (sa valeur par défaut), c'est une comparaison sur les UID, et, si elle vaut TRUE c'est une comparaison sur les GID.

safe_mode_include_dir chaîne de caractères

Les vérifications basées sur le UID ou GID sont ignorées lorsque les fichiers inclus sont placés dans le dossier indiqué par cette directive, ainsi que ses sous-dossiers. Les dossiers peuvent être aussi dans l'include_path ou bien il faut inclure le chemin complet.

Depuis PHP 4.2.0, cette directive utilise le point virgule de la même façon que le fait include_path, pour permettre de configurer plusieurs dossiers. La restriction spécifiée est en fait un préfixe, plus qu'un nom de dossier. Cela signifie que "safe_mode_include_dir = /dir/incl" autorise aussi bien "/dir/include" que "/dir/incls", s'ils existent. Lorsque vous souhaitez restreindre l'accès à un dossier spécifique, il faut terminer cette directive avec un slash. Par exemple "safe_mode_include_dir = /dir/incl/". Si la valeur de cette directive est vide, aucun fichier avec le UID/GID différent ne peut être inclus dans PHP 4.2.3 et dans les versions PHP 4.3.3 et plus récentes. Dans les versions antérieures, tous les fichiers pouvaient être inclus.
safe_mode_exec_dir chaîne de caractères

Si PHP est utilisé en safe mode, les fonctions comme system() et toutes celles qui permettent l'exécution en ligne de commande refuseront d'exécuter des programmes qui ne sont pas dans ce dossier. Vous devez utiliser / en tant que séparateur de dossier sous tous les environnements, y compris Windows.

safe_mode_allowed_env_vars chaîne de caractères

Modifier certaines variables d'environnement est un trou de sécurité potentiel. Cette directive contient une liste de noms de variables d'environnement séparées par des virgules, ou de préfixes. En Safe mode, l'utilisateur ne pourra modifier que les variables d'environnement dont le nom commence par l'un des préfixes fourni ici. Par défaut, les utilisateurs ne peuvent modifier que les variables d'environnement qui commencent par PHP_ (e.g. PHP_FOO=BAR).

Note:

Si cette directive est vide, PHP autorisera la modification de TOUTES les variables d'environnement.

safe_mode_protected_env_vars chaîne de caractères

Cette directive contient une liste de variables d'environnement que le programmeur ne pourra pas modifier en utilisant la fonction putenv(). Ces variables seront protégées, même si la directive safe_mode_allowed_env_vars autorise leur modification.

Voir aussi open_basedir, disable_functions, disable_classes, register_globals, display_errors, et log_errors.

Lorsque Safe Mode est actif, PHP vérifie que le propriétaire du script courant est le même que le propriétaire des fichiers ou dossiers qui seront manipulés par ce script. Par exemple, dans la situation suivante :

-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
exécuter le script script.php :
<?php
 readfile
('/etc/passwd');
?>
générera cette erreur, si le Safe Mode est activé :
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Cependant, il arrive que la vérification faite avec le nom du propriétaire (UID) du fichier soit trop restrictive, et qu'une vérification sur le nom du groupe (GID) soit suffisante. C'est une autre fonctionnalité supportée par la directive safe_mode_gid. En lui donnant la valeur de On, les vérifications seront faites sur le GID, alors qu'en lui laissant sa valeur par défaut de Off, les vérifications seront faites sur le UID.

Si au lieu d'utiliser le Safe Mode, vous utilisez la directive open_basedir, alors les manipulations seront limitées aux fichiers situés dans les dossiers spécifiés. Par exemple (Apache httpd.conf) :

<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
Si vous exécutez le script script.php ci-dessus avec la configuration d'open_basedir, le résultat sera l'affichage suivant :
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Vous pouvez également désactiver les fonctions particulières. Notez que la directive disable_functions ne peut être utilisée en dehors du fichier php.ini, ce qui signifie que vous ne pouvez pas désactiver des fonctions par virtualhost ou par dossiers, dans votre fichier httpd.conf. Si nous ajoutons ceci à notre fichier php.ini :

disable_functions = readfile,system
toute utilisation des fonctions readfile() et system() générera l'affichage suivant :
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Avertissement

Ces restrictions de PHP sont bien sûr invalides en exécution binaire.



Fonctions désactivées par le Safe Mode

Voici une liste non-exhaustive des fonctions désactivées par le Safe Mode.

Fonctions désactivées par le Safe Mode
Fonction Limitations
dbmopen() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
dbase_open() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
filepro() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
filepro_rowcount() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
filepro_retrieve() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
Fonctions ifx_* restrictions sql_safe_mode, (!= Safe Mode)
Fonctions ingres_* restrictions sql_safe_mode, (!= Safe Mode)
Fonctions mysql_* restrictions sql_safe_mode, (!= Safe Mode)
pg_lo_import() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
posix_mkfifo() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
putenv() Obéit aux directives safe_mode_protected_env_vars et safe_mode_allowed_env_vars. Voir aussi la documentation de putenv()
move_uploaded_file() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chdir() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
dl() Cette fonction est désactivée par le safe-mode
opérateur guillemets obliques Cette fonction est désactivée par le safe-mode
shell_exec() (équivalent fonctionnel des guillemets obliques) Cette fonction est désactivée par le safe-mode
exec() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
system() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
passthru() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
popen() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
fopen() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
mkdir() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
rmdir() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
rename() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
unlink() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
copy() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (sur source et target)
chgrp() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chown() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chmod() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. De plus, vous ne pouvez pas modifier les SUID, SGID et le bit sticky
touch() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
symlink() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (note : seule l'hôte cible est vérifié)
link() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (note : seul le fichier de destination est vérifié.)
apache_request_headers() En Safe Mode, les en-têtes commençant par authorization (sensible à la casse) ne seront pas retournés.
header() Avec le safe mode, le uid du script est ajouté à la partie realm de l'en-tête WWW-Authenticate si vous utilisez cet en-tête pour l'identification.
variables PHP_AUTH Avec le safe mode, les variables PHP_AUTH_USER, PHP_AUTH_PW et PHP_AUTH_TYPE ne sont pas disponibles dans la variable $_SERVER. Indépendamment, vous pouvez utiliser la variable REMOTE_USER pour connaître l'utilisateur. (note : affectée uniquement depuis PHP 4.3.0)
highlight_file(), show_source() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (note : affectée uniquement depuis PHP 4.2.1)
parse_ini_file() Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (note : affectée uniquement depuis PHP 4.2.1)
set_time_limit() N'a aucun effet lorsque PHP fonctionne avec le safe mode.
max_execution_time N'a aucun effet lorsque PHP fonctionne avec le safe mode.
mail() Si le Safe Mode est actif, le 5ème paramètre est désactivé (note : uniquement affecté depuis PHP 4.2.3)
session_start() Le propriétaire d'un script doit être le même que celui que celui du répertoire session.save_path si le répertoire par défaut session.save_handler est utilisé.
Toutes les fonctions sur les flux et sur le système de fichiers. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (Voir l'option safe_mode_include_dir du php.ini.




Utiliser PHP en ligne de commande

Sommaire


Introduction

PHP supporte le CLI SAPI dont le but premier est le développement d'applications shell avec PHP. Les différences entre le CLI SAPI et les autres SAPI sont expliqués dans ce chapitre. Il est important de mentionner que CLI et CGI sont des SAPI différents malgré le fait qu'ils puissent partager la majeure partie de leurs comportements.

Le CLI SAPI est activé par défaut en utilisant l'option --enable-cli , mais vous pouvez le désactiver en utilisant l'option --disable-cli lors de l'exécution de la commande ./configure.

Le nom, l'emplacement et l'existence des binaires CLI/CGI vont dépendre de la façon dont PHP est installé sur votre système. Par défaut, en exécutant make, les deux binaires CGI et CLI sont compilés et nommés respectivement sapi/cgi/php et sapi/cli/php dans votre répertoire source PHP. Vous remarquerez que les deux se nomment php. Ce qui se passe ensuite pendant le make install dépend de votre ligne de configuration. Si un module SAPI, apxs par exemple, a été choisi pendant la configuration, ou que l'option --disable-cgi a été activée, le CLI est copié dans {PREFIX}/bin/php pendant le make install sinon, le CGI sera placé ici. Si, par exemple, --with-apxs figure dans votre ligne de configuration, le CLI est copié dans {PREFIX}/bin/php pendant le make install. Si vous voulez forcer l'installation du binaire CGI, lancez make install-cli après le make install. Sinon, vous pouvez aussi spécifier --disable-cgi dans votre ligne de configuration.

Note:

Du fait que les deux options --enable-cli et --enable-cgi sont activées par défaut, avoir simplement --enable-cli dans votre ligne de configuration n'implique pas nécessairement que le CLI soit renommé en {PREFIX}/bin/php pendant le make install.

Depuis PHP 5, le binaire CLI est distribué dans le dossier principal sous le nom de php.exe sous Windows. La version CGI est distribuée sous le nom de php-cgi.exe. De plus, un fichier php-win.exe est distribué si PHP est configuré en utilisant l'option de configuration --enable-cli-win32 . Ce fichier fait la même chose que la version CLI, sauf qu'il n'affiche rien et qu'il ne fournit pas de console.

Note: Quel SAPI est installé ?

À partir d'un terminal, lancer php -v vous dira si php est en version CGI ou CLI. Vous pouvez aussi consulter la fonction php_sapi_name() et la constante PHP_SAPI.

Note:

Une page man de manuel Unix est disponible en tapant man php dans votre interpréteur de commande.



Différence avec les autres SAPIs

Les différences les plus notables entre le CLI SAPI et les SAPI sont :

  • Contrairement au CGI SAPI, aucun en-tête HTTP n'est écrit dans le résultat.

    Bien que le CGI SAPI fournisse un moyen de supprimer les en-têtes HTTP, il n'y a pas moyen d'activer les en-têtes HTTP dans le CLI SAPI.

    CLI est lancé en mode silencieux par défaut, bien que les options -q et --no-header soient gardées pour rester compatible avec les anciennes versions CGI.

    Il ne change pas le répertoire courant en celui du script. (les options -C et --no-chdir sont gardées par souci de compatibilité)

    Messages d'erreurs en texte brut (pas de formatage HTML).

  • Il y a plusieurs directives du php.ini qui sont ignorées par le CLI SAPI, car elles n'ont pas de sens en environnement shell :

    Directives php.ini ignorées
    Directive Valeur par défaut pour CLI SAPI Commentaire
    html_errors FALSE Il peut être bien difficile de lire les messages d'erreur sur un terminal lorsqu'ils sont noyés dans des balises HTML sans grand intérêt. Par conséquent, cette directive est forcée à FALSE.
    implicit_flush TRUE Il est souhaitable que tout affichage en provenance de print(), echo() et consorts, soit immédiatement affiché dans le terminal, et non pas placé dans un buffer quelconque. Vous pouvez toujours utiliser la bufferisation de sortie si vous voulez retarder un affichage, ou bien en manipuler le contenu une dernière fois.
    max_execution_time 0 (sans limite) Étant données les possibilités infinies de PHP en environnement shell, le temps d'exécution maximal d'un script PHP a été rendu illimité. Alors que les scripts destinés au web doivent s'accomplir en une fraction de seconde, il arrive que les scripts shell requièrent bien plus de temps.
    register_argc_argv TRUE

    En donnant la valeur de TRUE à cette directive, vous aurez toujours accès à la variable argc (représentant le nombre d'arguments passés à l'application) et argv (le tableau contenant les arguments passés) dans le CLI SAPI.

    Les variables PHP $argc et $argv sont définies et remplies avec les valeurs appropriées, en utilisant CLI SAPI. vous pouvez toujours accéder à $_SERVER et $HTTP_SERVER_VARS. Par exemple : $_SERVER['argv']

    output_buffering FALSE

    Même si cette configuration INI est codée en dur à FALSE, les fonctions relatives à l'affichage du buffer sont disponibles.

    max_input_time FALSE

    Le PHP CLI ne supporte pas GET, POST et le téléchargement de fichiers.

    Note:

    Ces directives ne peuvent pas être initialisées avec d'autres valeurs dans le fichier php.ini ou par une autre méthode. C'est une limitation, car ces valeurs par défaut s'appliquent une fois que tous les autres fichiers de configuration ont été analysés. Cependant, ces valeurs peuvent être modifiées durant l'exécution (ce qui n'est pas logique pour certaines directives, comme register_argc_argv).

    Note:

    Il est recommandé de définit ignore_user_abort pour les scripts en ligne de commande. Voir la fonction ignore_user_abort() pour plus d'informations.

  • Pour faciliter le travail en environnement shell, plusieurs constantes sont définies pour les flux I/O.

  • Le CLI SAPI ne transforme pas le dossier courant en dossier d'exécution du script !

    Exemple #1 Exemple montrant la différence avec le SAPI CGI :

    <?php
    // Un test simple : affiche le dossier d'exécution */
    echo getcwd(), "\n";
    ?>

    Lorsque vous utilisez la version CGI, l'affichage sera :

    $ pwd
    /tmp
    
    $ php -q autre_dossier/test.php
    /tmp/autre_dossier
    

    Cela montre clairement que PHP modifie le dossier courant, et utilise le dossier du script exécuté.

    En utilisant le CLI SAPI, on obtient :

    $ pwd
    /tmp
    
    $ php -f autre_dossier/test.php
    /tmp
    

    Cela donne beaucoup plus de souplesse lorsque vous rédigez des scripts shell avec PHP.

    Note:

    Le CGI SAPI se comporte de la même façon que le CLI SAPI, en lui passant l'option -C , lorsque vous l'invoquez en ligne de commande.



Options de ligne de commande

La liste des options de ligne de commande fournies par PHP est disponible à n'importe quel moment en exécutant PHP avec l'option -h :

Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
       php [options] -- [args...]
       php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --ri <name>      Show configuration for extension <name>.

Options de ligne de commande
Option Option longue Description
-a --interactive

Lance PHP de façon interactive. Pour plus d'information, reportez-vous à la documentation concernant le shell intéractif.

-b --bindpath

Lie le chemin pour les externes, en mode serveur FASTCGI (CGI uniquement).

-C --no-chdir

Ne pas aller dans le dossier du script (CGI uniquement).

-q --no-header

Mode silencieux. Supprime la sortie des en-têtes HTTP (CGI uniquement).

-T --timing

Mesure le temps d'exécution du script, répété count fois (CGI uniquement).

-c --php-ini

Cette option permet de spécifier le nom du dossier dans lequel se trouve le fichier php.ini, ou encore de spécifier un fichier de configuration (INI) directement (qui ne s'appelle pas obligatoirement php.ini) :

$ php -c /custom/directory/ mon_script.php

$ php -c /custom/directory/custom-file.ini mon_script.php

Si vous ne spécifiez pas cette option, le fichier est recherché dans les endroits par défaut.

-n --no-php-ini

Ignore complètement php.ini.

-d --define

Cette option permet de modifier n'importe quelle directive de configuration du fichier php.ini. La syntaxe est :

 -d configuration_directive[=value]

# L'omission de la valeur conduit à donner la valeur de "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Passer une valeur vide conduit à donner la valeur de ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# La directive de configuration sera n'importe quelle valeur passée après le caractère '='
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-e --profile-info

Génère des informations étendues pour le profilage et le débogage.

-f --file

Analyse et exécute le fichier donné après l'option -f . Cette option est facultative, et peut être omise. Le seul nom du fichier est suffisant.

Note:

Pour passer des arguments à votre script, le premier argument doit être --, sinon, PHP les interprètera comme des options PHP.

-h et -? --help et --usage Avec cette option, vous pouvez obtenir des informations sur la liste courante des options de la ligne de commande, ainsi que leur description.
-i --info Cette option appelle la fonction phpinfo(), et affiche le résultat. Si PHP ne fonctionne pas correctement, il est recommandé d'utiliser la commande php -i et de voir s'il n'y a pas d'erreurs affichées avant ou après la table d'information. N'oubliez pas que le résultat de cette option, si vous utilisez le mode CGI, est au format HTML, et donc de taille conséquente.
-l --syntax-check

Cette option permet de faire une vérification syntaxique sur le code PHP fourni. En cas de réussite, le message No syntax errors detected in <filename> (Littéralement, aucune erreur de syntaxe n'a été détectée dans le fichier) est affiché sur la sortie standard, et le script shell retourne 0. En cas d'erreur, le message Errors parsing <filename> (Littéralement, erreur d'analyse dans le fichier filename) est affiché, en plus des messages d'erreurs détectés par l'analyseur lui-même. Le script Shell retourne le code -1.

Cette option ne détecte pas les erreurs fatales (par exemple les fonctions non définies). Utilisez -f si vous voulez tester aussi ces erreurs.

Note:

Cette option ne fonctionne pas avec l'option -r .

-m --modules

Exemple #1 Affichage des modules internes (et chargés) de PHP et Zend

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Cette option permet l'exécution de PHP directement dans la ligne de commande. Les balises de PHP (<?php et ?>) ne sont pas nécessaires, et causeront une erreur d'analyse si elles sont présentes.

Note:

Une attention toute particulière doit être portée lors de l'utilisation de cette option de PHP, pour qu'il n'y ait pas de collision avec les substitutions de variables en ligne de commande, réalisées par le shell.

Exemple #2 Erreur de syntaxe lors de l'utilisation de doubles guillemets

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

Le problème ici est que le shell (sh/bash) effectue une substitution de variables, même avec les guillemets doubles ". puisque la variable $foo n'est probablement pas définie dans le shell, elle est remplacée par rien, ce qui fait que le code passé à PHP pour l'exécution est :

$ php -r " = get_defined_constants();"

La solution de ce problème est d'utiliser les guillemets simples '. Les variables de ces chaînes ne seront pas substituées par leurs valeurs par le shell.

Exemple #3 Utilisation de guillemets simples pour éviter une substitution par le shell

$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

Si vous utilisez un shell différent de sh/bash, vous pouvez rencontrer d'autres problèmes. N'hésitez pas à ouvrir un rapport de bogues à » http://bugs.php.net/. Il est toujours très facile d'avoir des problèmes lorsque vous essayez d'inclure des variables shell dans le code, ou d'utiliser les antislash pour la protection. Vous aurez été prévenu.

Note:

-r est disponible avec le CLI SAPI et pas avec le CGI SAPI.

Note:

Cette option est utilisée pour des choses vraiment de base. Ainsi, quelques directives de configuration (par exemple auto_prepend_file et auto_append_file) sont ignorées dans ce mode.

-B --process-begin

Code PHP à exécuter avant le traitement de stdin.

-R --process-code

Code PHP à exécuter pour chaque ligne en entrée.

Il y a deux variables spéciales de disponibles dans ce mode : $argn et $argi. $argn doit contenir la ligne PHP traitée à ce moment donné, tandis que $argi doit contenir le numéro de la ligne.

-F --process-file

Fichier PHP à exécuter pour chaque ligne en entrée.

-E --process-end

Code PHP à exécuter après avoir effectué l'entrée.

Exemple #4 Exemple d'utilisation des options -B , -R et -E pour compter le nombre de lignes d'un projet.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
Total Lines: 37328

-s --syntax-highlight et --syntax-highlighting

Affiche le code avec la colorisation syntaxique.

Cette option utilise le mécanisme interne pour analyser le fichier, et produire une version colorisée du code source, au format HTML. Notez que cette option ne fait que générer un bloc HTML, avec les balises HTML <code> [...] </code>, sans en-têtes HTML.

Note:

Cette option ne fonctionne pas avec l'option -r .

-v --version

Exemple #5 Utilisation de l'option -v pour récupérer le nom du SAPI ainsi que la version de PHP et de Zend

$ php -v
PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

-w --strip

Affiche la source sans les commentaires ni les espaces.

Note:

Cette option ne fonctionne pas avec l'option -r .

-z --zend-extension

Charge une extension Zend. Si et seulement si un fichier est fourni, PHP essaie de charger cette extension dans le dossier courant par défaut des bibliothèque sur votre système (généralement spécifié avec /etc/ld.so.conf sous Linux). Passer un nom de fichier avec le chemin complet fera que PHP utilisera ce fichier, sans recherche dans les dossiers classiques. Un chemin de dossier relatif indiquera à PHP qu'il doit chercher les extensions uniquement dans ce dossier.

  --ini

Affiche les noms des fichiers de configuration et des dossiers analysés. Disponible depuis PHP 5.2.3.

Exemple #6 Exemple avec --ini

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

--rf --rfunction

Affiche des informations sur la fonction donnée ou la méthode d'une classe (i.e. nombre et nom des paramètres). Disponible depuis PHP 5.1.2.

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #7 Exemple avec --rf

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}

--rc --rclass

Affiche des informations sur la classe donnée (liste des constantes, propriétés et méthodes). Disponible depuis PHP 5.1.2.

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #8 Exemple avec --rc

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}

--re --rextension

Affiche les informations sur l'extension donnée (liste les options du php.ini, les fonctions définies, les constantes et les classes). Disponible depuis PHP 5.1.2.

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #9 Exemple avec --re

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}

--ri --rextinfo

Affiche les informations de configuration pour l'extension donnée (les mêmes informations retournées par la fonction phpinfo()). Disponible depuis PHP 5.2.2. Les informations de configurations internes sont disponibles en utilisant le nom d'extension "main" ou "core".

Exemple #10 Exemple avec --ri

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2009.20
Timezone Database => internal
Default timezone => Europe/Oslo

Directive => Local Value => Master Value
date.timezone => Europe/Oslo => Europe/Oslo
date.default_latitude => 59.930972 => 59.930972
date.default_longitude => 10.776699 => 10.776699
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Note:

Les options -rBRFEH, --ini et --r[fcei] ne sont disponibles qu'en mode CLI.



Exécution de fichiers PHP

Le CLI SAPI dispose de trois moyens pour lire le code du script PHP que vous voulez exécuter :

  1. Indiquer à PHP d'exécuter un fichier donné :

    php mon_script.php
    
    php -f mon_script.php
    

    Les deux méthodes (en utilisant -f ou pas) exécutent le script contenu dans le fichier mon_script.php. Vous pouvez choisir n'importe quel fichier, et ces fichiers ne sont pas tenus d'utiliser l'extension .php. N'importe quelle extension peut faire l'affaire.

    Note:

    Si vous devez passer des arguments à votre script, vous devez passer -- comme premier argument lorsque vous utilisez -f .

  2. Donner du code PHP à exécuter directement en ligne de commande.

    php -r 'print_r(get_defined_constants());'
    

    Une attention particulière doit alors être apportée aux variables d'environnement, qui seront remplacées, et aux guillemets, qui ont des significations spéciales en ligne de commande.

    Note:

    Lisez l'exemple attentivement, il n'y a ni balise d'ouverture, ni balise de fermeture ! L'option -r rend caduque l'utilisation de celles-ci, et les ajouter conduirait alors à une erreur d'analyse syntaxique.

  3. Alimenter l'entrée standard en code PHP (stdin).

    Cela donne la possibilité de créer dynamiquement du code PHP, puis de le fournir à PHP, et enfin, de le traiter à nouveau en shell. Voici un exemple fictif :

    $ some_application | some_filter | php | sort -u > final_output.txt
    
Il n'est pas possible de combiner ces trois modes d'exécution.

Comme toute application shell, l'exécutable PHP accepte des arguments, et votre script PHP peut aussi les recevoir. Le nombre d'arguments n'est pas limité par PHP (le shell a une limite en terme de nombre de caractères qui peuvent être passés. Généralement, vous n'atteindrez pas cette limite). Les arguments passés au script seront transmis via la variable tableau $argv. Le premier index (zéro) contient toujours le nom du script appelé depuis la ligne de commande. Notez que, si le code est exécuté en ligne en utilisant l'option de ligne commande -r , la valeur de $argv[0] sera simplement un tiret (-). Cela est aussi vrai si le code est exécuté via un pipe depuis STDIN.

Tant que les arguments que vous passez à votre script ne commencent pas par le caractère -, il n'y a rien de spécial à surveiller. Si vous passez des arguments à votre script qui commencent par -, cela posera des problèmes car PHP va penser qu'il doit les interpréter. Pour éviter cela, utilisez le séparateur --. Après cet argument, tous les arguments suivants seront passés à votre script sans être modifiés ou analysés par PHP.

# Cela ne va pas exécuter le code, mais afficher l'aide de PHP
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Cela va passer l'argument '-h' à votre script, et éviter que PHP ne le traite
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Cependant, il y a une autre méthode pour utiliser PHP en script shell. Vous pouvez aussi utiliser la ligne #!/usr/bin/php en tout début de votre script, suivie de code PHP compris entre balise ouvrantes/fermantes. Après avoir mis les droits d'exécution sur votre script (chmod +x test), il peut être exécuté comme un script shell ou perl habituel :

Exemple #1 Exécute un script PHP en tant que script shell

#!/usr/bin/php
<?php
var_dump
($argv);
?>

En supposant que ce fichier s'appelle test, dans le dossier courant, nous pouvons alors faire ceci :

$ chmod +x test
$ ./test -h -- foo
array(4) {
   [0]=>
   string(6) "./test"
   [1]=>
   string(2) "-h"
   [2]=>
   string(2) "--"
   [3]=>
   string(3) "foo"
}

Comme vous pouvez le voir, dans ce cas, vous n'avez pas besoin de faire attention lors du passage de paramètres qui commencent par - à votre script.

L'exécutable PHP peut être utilisé pour exécuter des scripts indépendants du serveur web. Si vous êtes sur un système Unix, il est recommandé d'ajouter la ligne spéciale en début de script, de le rendre exécutable de manière à ce que le système sache quel programme doit exécuter le script. Sous Windows, vous pouvez associer l'exécutable php.exe avec le double-clic sur les fichiers d'extension .php, ou bien vous pouvez faire un fichier batch pour exécuter le script grâce à PHP. La première ligne utilisée dans le monde Unix ne perturbera pas l'exécution sous Windows, ce qui rend les scripts facilement portables. Un exemple complet est disponible ci-dessous :

Exemple #2 Script prévu pour être exécuté en ligne de commande (script.php)

#!/usr/bin/php
<?php

if ($argc != || in_array($argv[1], array('--help''-help''-h''-?'))) {
?>

C'est une ligne de commande à une option.

  Utilisation :
  <?php echo $argv[0]; ?> <option>

  <option> peut être un mot que vous souhaitez afficher.
  Avec les options --help, -help, -h,
  et -?, vous obtiendrez cette aide.

<?php
} else {
    echo 
$argv[1];
}
?>

Dans le script ci-dessus, nous utilisons la première ligne pour indiquer que le fichier doit être exécuté par PHP. Nous travaillons avec une version CLI, donc aucun en-tête HTTP n'est affiché. Il y a deux variables que vous pouvez utiliser avec les applications de ligne de commande : $argc et $argv. La première est le nombre d'arguments plus un (le nom du script qui est exécuté). La seconde est un tableau contenant les arguments, commençant avec le nom du script en élément 0 ($argv[0]).

Dans notre exemple, nous avons vérifié qu'il y a plus ou moins d'un argument. De plus, si cet argument est --help , -help , -h ou -? , nous affichons un message d'aide, ainsi que le nom du script. Si nous recevons un autre argument, celui-ci est affiché dans le terminal.

Pour exécuter le script ci-dessus sous Unix, vous devez le rendre exécutable, puis l'appeler avec une commande comme : script.php echothis ou script.php -h. Sous Windows, vous pouvez faire un fichier batch pour cela :

Exemple #3 Fichier batch pour exécuter un script PHP en ligne de commande (script.bat)

@echo OFF
"C:\php\php.exe" script.php %*

Si vous avez nommé le programme ci-dessus script.php, et que vous avez votre exécutable CLI php.exe situé à C:\php\php.exe, ce fichier batch l'exécutera avec les options que vous lui passez : script.bat echothis ou script.bat -h.

Voir aussi l'extension Readline, qui dispose de nombreuses fonctions pour améliorer la convivialité de vos applications en ligne de commande.

Si vous êtes sous Windows, PHP peut être configuré pour fonctionner sans avoir besoin de fournir les extensions C:\php\php.exe ou .php, tel que décrit dans la ligne de commande PHP sous Microsoft Windows.



Flux d'entrée/sortie

Le CLI SAPI définit quelques constantes pour les flux I/O pour rendre la programmation en ligne de commande plus facile.

Constantes spécifiques CLI
Constante Description
STDIN

Un flux déjà ouvert vers stdin. Ceci évite de l'ouvrir explicitement avec

<?php
$stdin 
fopen('php://stdin''r');
?>
Si vous voulez lire une seule ligne depuis stdin, vous pouvez utiliser
<?php
$line 
trim(fgets(STDIN)); // lit une ligne depuis STDIN
fscanf(STDIN"%d\n"$number); // lit des nombres depuis STDIN
?>

STDOUT

Un flux déjà ouvert vers stdout. Ceci évite de l'ouvrir explicitement avec

<?php
$stdout 
fopen('php://stdout''w');
?>

STDERR

Un flux déjà ouvert vers stderr. Ceci évite de l'ouvrir explicitement avec

<?php
$stderr 
fopen('php://stderr''w');
?>

Ainsi, vous n'avez pas besoin d'ouvrir un flux spécifique pour, par exemple, stderr mais vous pouvez simplement utiliser la constante correspondante à ce flux :

php -r 'fwrite(STDERR, "stderr\n");'
Vous n'avez pas à clore explicitement ces flux, sachant qu'ils le seront automatiquement par PHP à la fin de votre script.

Note:

Ces constantes ne sont pas disponibles dans le cas d'une lecture d'un script PHP depuis stdin.



Shell Interactif

Depuis PHP 5.1.0, le CLI SAPI fournit un shell intéractif lors de l'utilisation de l'option -a si PHP a été compilé avec l'option --with-readline .

En utilisant le shell interactif, vous avez la possibilité de taper du code PHP et qu'il soit exécuté directement.

Exemple #1 Exécution de code en utilisant le shell interactif

$ php -a
Interactive shell

php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_dump(addtwo(2));
int(4)
php >

Le shell interactif fournit également une auto-complétion des fonctions, des constantes, des noms de classes, des variables, des appels aux méthodes statiques, et des constantes de classes en utilisant la touche de tabulation.

Exemple #2 Auto-complétion en utilisant la touche de tabulation

Le fait de presser deux fois la touche de tabulation lorsqu'il y a plusieurs complétions possibles affichera une liste de ces complétions :

php > strp[TAB][TAB]
strpbrk   strpos    strptime  
php > strp

Lorsqu'il n'y a qu'une seul complétion possible, presser la touche de tabulation une seule fois complétera le reste sur la même ligne :

php > strpt[TAB]ime(

Il est également possible de compléter des éléments définis précédemment dans la session de shell interactif :

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

Le shell interactif stocke votre historique et peut y accéder en utilisant les touches haut et bas. L'historique est sauvegardé dans le fichier ~/.php_history.

Note:

Les fichiers inclus via auto_prepend_file et auto_append_file sont analysés dans ce mode, mais avec quelques restrictions - i.e. les fonctions doivent avoir été définies avant l'appel.

Note:

L'autoloading n'est pas disponible si vous utilisez PHP en mode CLI interactif.




Ramasse-miettes (Garbage Collection)

Sommaire

Cette section explique les mérites du nouveau mécanisme ramasse-miettes (aussi appelé GC) fourni avec PHP 5.3.


Bases sur le comptage des références

Une variable PHP est stockée en interne dans un conteneur appelé "zval". Un conteneur zval contient, outre le type de la variable et sa valeur, deux unités d'information additionnelles. La première se nomme "is_ref" et une valeur booléenne qui indique si une variable fait partie d'une référence ou non. Grâce à cette information, le moteur de PHP sait différencier les variables normales des références. Comme PHP autorise le programmeur à utiliser des références, au moyen de l'opérateur &, un conteneur zval possède aussi un mécanisme de comptage des références afin d'optimiser l'utilisation de la mémoire. Cette seconde information, appelée "refcount", contient le nombre de variables (aussi appelées symboles) qui pointent vers ce conteneur zval. Tous les symboles sont stockés dans une table de symboles et il y a une table par espace de visibilité (scope). Il y a un espace global pour le script principal (celui appelé par exemple via le navigateur) et un espace par fonction ou méthode.

Un conteneur zval est crée lorsqu'une nouvelle variable est créee avec une valeur constante, par exemple:

Exemple #1 Création d'un nouveau conteneur zval

<?php
$a 
"new string";
?>

Dans ce cas, le nouveau symbole a est crée dans le scope global, et un nouveau conteneur est crée avec comme type string et comme valeur new string. Le bit "is_ref" est mis par défaut à FALSE car aucune référence n'a été créee par le programmeur. Le bit "refcount" iest mis à 1 car il n'y a qu'un seul symbole qui utilise ce conteneur. Notez que si "refcount" vaut 1, "is_ref" vaut toujours FALSE. Si vous avez installé » Xdebug, vous pouvez afficher cette information en appelant xdebug_debug_zval().

Exemple #2 Affichage des informations zval

<?php
xdebug_debug_zval
('a');
?>

L'exemple ci-dessus va afficher :

a: (refcount=1, is_ref=0)='new string'

Assigner cette variable à un autre symbole va incrémenter le refcount.

Exemple #3 Incrémentation du refcount d'une zval

<?php
$a 
"new string";
$b $a;
xdebug_debug_zval'a' );
?>

L'exemple ci-dessus va afficher :

a: (refcount=2, is_ref=0)='new string'

Le refcount vaut 2 ici, car le même conteneur est lié à a et b à la fois. PHP est suffisament intelligent pour ne pas dupliquer le conteneur lorsque ce n'est pas nécessaire. Les conteneurs sont détruits lorsque leur "refcount" atteint zéro. Le "refcount" est décrémenté de une unité lorsque n'importe quel symbole lié à un conteneur est détruit du scope (e.g. lorsque la fonction se termine) ou lorsque unset() est appelée sur un symbole. L'exemple qui suit le démontre:

Exemple #4 Decrémentation du refcount d'une zval

<?php
$a 
"new string";
$c $b $a;
xdebug_debug_zval'a' );
unset( 
$b$c );
xdebug_debug_zval'a' );
?>

L'exemple ci-dessus va afficher :

a: (refcount=3, is_ref=0)='new string'
a: (refcount=1, is_ref=0)='new string'

Si maintenant nous appelons unset($a);, le conteneur zval, incluant le type et la valeur, va être détruit de la mémoire.

Types composés

Les choses se compliquent dans le cas des types composés comme array et object. A la différence des valeurs scalaires, les array et object stockent leurs propriétés dans une table de symboles qui leur est propre. Ceci signifie que l'exemple qui suit crée trois conteneurs zval:

Exemple #5 Creation d'une zval array

<?php
$a 
= array( 'meaning' => 'life''number' => 42 );
xdebug_debug_zval'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=1, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42
)

Ou graphiquement

Zvals d'un tableau simple

Les trois conteneurs zval sont: a, meaning, et number. Les mêmes règles s'appliquent pour l'incrémentation et la décrémentation des "refcounts". Ci-après, nous ajoutons un élément au tableau et nous affectons son contenu à une valeur déja existante dans le tableau:

Exemple #6 Ajout d'un élément déja existant au tableau

<?php
$a 
= array( 'meaning' => 'life''number' => 42 );
$a['life'] = $a['meaning'];
xdebug_debug_zval'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=2, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42,
   'life' => (refcount=2, is_ref=0)='life'
)

Ou graphiquement

Zvals pour un tableau simple avec une référence

La sortie Xdebug que nous voyons indique que les anciens et nouveaux éléments du tableau pointent maintenant vers un conteneur zval dont le "refcount" vaut 2. Même si la sortie XDebug montre 2 conteneurs zval avec comme valeur 'life', ils sont les mêmes. La fonction xdebug_debug_zval() ne montre pas cela, mais vous pourriez le voir en affichant le pointeur de mémoire.

Supprimer un élément du tableau est assimilable à la suppression d'un symbole depuis un espace. Ce faisant, le "refcount" du conteneur vers lequel l'élément du tableau pointe est décrémenté. Une fois encore, s'il atteind zéro, le conteneur zval est supprimé de la mémoire. Voici un exemple qui le démontre:

Exemple #7 Suppression d'un élément de tableau

<?php
$a 
= array( 'meaning' => 'life''number' => 42 );
$a['life'] = $a['meaning'];
unset( 
$a['meaning'], $a['number'] );
xdebug_debug_zval'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=1, is_ref=0)=array (
   'life' => (refcount=1, is_ref=0)='life'
)

Maintenant, les choses deviennent intéressantes si nous ajoutons le tableau comme élément de lui-même. Nous faisons ça dans l'exemple qui suit avec un opérateur de référence, sinon PHP va crée une copie:

Exemple #8 Ajout du tableau comme référence à lui-même en tant qu'élement

<?php
$a 
= array( 'one' );
$a[] =& $a;
xdebug_debug_zval'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=2, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=2, is_ref=1)=...
)

Ou graphiquement

Zvals dans un tableau avec référence circulaire

Vous pouvez voir que la variable tableau (a) tout comme le second élément (1) pointent désormais vers un conteneur dont le "refcount" vaut 2. Les "..." sur l'affichage indiquent une récursion et représentent donc le tableau lui-même.

Comme avant, supprimer une variable supprime son symbole et le refcount est décrémenté. Donc si nous supprimons la variable $a après son effectation, le refcount du conteneur sur lequel pointe $a et l'élément "1" sera décrémenté de une unité, de "2" vers "1". Ceci est représenté par:

Exemple #9 Suppression de $a

(refcount=1, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=1, is_ref=1)=...
)

Ou graphiquement

Zvals après suppression du tableau contenant une référence circulaire, fuite mémoire

Problèmes de nettoyage

Bien qu'il n'y ait plus aucun symbole dans l'espace de variables courant qui pointe vers cette structure, elle ne peut être nettoyée car l'élément du tableau "1" pointe toujours vers ce même tableau. Comme il n'y a plus de symbole externe pointant vers cette structure, l'utilisateur ne peut plus la nettoyer manuellement, il y a donc fuite mémoire. Heureusement, PHP va détruire cette structure à la fin de la requête, mais avant cette étape, la mémoire n'est pas libérée. Cette situation se produit souvent lorsque qu'un enfant pointe vers son parent. Notamment avec les objets qui sont utilisés par référence implicitement.

Ceci ne devrait pas être un problème si ça arrive une ou deux fois, mais s'il y a des centaines ou des milliers de situations similaires dans un même programme, alors cela peut devenir un problème important. Ceci en particulier pour les scripts démons dans lesquels la requête ne termine jamais, ou encore dans une grosse suite de tests unitaires. Ce dernier cas a été rencontré en lançant les tests du composant Template de la bibliothèque eZ Components. Dans certains cas, la suite de tests nécessitait 2Go de mémoire, ce que le serveur ne pouvait alors fournir.



Cycles de nettoyage

Traditionnellement, les mécanismes de comptage des références comme utilisés dans PHP auparavant ne pouvaient détecter les fuites mémoires dûes à des références circulaires. Depuis PHP 5.3.0, un algorithme synchrone issue de l'analyse » Concurrent Cycle Collection in Reference Counted Systems est utilisé pour répondre à ce problème particulier.

Une explication complète du fonctionnement de l'algorithme serait hors de portée pour cette section, mais nous allons ici détailler les principes de base. D'abord, nous allons établir quelques règles. Si un refcount est incrémenté, le conteneur est toujours utilisé, donc pas nettoyé. Si le refcount est décrémenté et atteint zéro, le conteneur zval peut être supprimé et la mémoire libérée. Ceci signifie que les cycles de nettoyages ne peuvent intervenir que lorsque le refcount est décrémenté vers une valeur différente de zéro. Ensuite, dans un cycle de nettoyage, il est possible de détecter les déchets en vérifiant s'il est possible ou non de décrémenter leur refcount de une unité en vérifiant quelles zvals ont un refcount à zéro.

Algorithme de collecte des déchets

Pour éviter d'appeler la routine de nettoyage à chaque décrémentation de refcount possible, l'algorithme place toutes les zval racines dans un "tampon de racines" (en les marquant). Il s'assure aussi que chaque racine n'apparait qu'une seule fois dans le tampon. Le mécanisme de nettoyage intervient alors lorsque le tampon est plein. Voyez l'étape A sur la figure ci-dessus.

A l'étape B, l'algorithme lance une recherche sur toutes les racines possibles afin de décrémenter de une unité les refcounts de toutes les zvals qu'il trouve, en faisant bien attention de ne pas décrémenter 2 fois le refcount de la même zval (en les marquant comme "grises"). Dans l'étape C, l'algorithme relance une recherche sur toutes les racines possibles et scrute la valeur de refcount de chaque zval. S'il trouve un refcount à zéro, la zval est marquée comme "blanche" (bleu sur la figure). S'il trouve autre chose que zéro, il annule sa décrémentation en refaisant une recherche à partir de ce noeud, et les marque comme "noires" à nouveau. Dans la dernière étape, D, l'algorithme parcours tout le tampon des racines et les supprime, tout en scrutant chaque zval, toute zval marquée comme "blanche" à l'étape précédente est alors supprimée de la mémoire.

Maintenant que vous savez globalement comment fonctionne l'algorithme, nous allons voir comment il a été intégré dans PHP. Par défaut, le ramasse-miettes de PHP est activé. Il existe cependant une options de php.ini pour changer cela : zend.enable_gc .

Lorsque le ramasse-miettes est activé, l'algorithme de recherche des cycles tel que décrit au dessus est exécuté à chaque fois que le tampon est plein. Le tampon de racines a une taille fixée à 10.000 racines (ce paramètre est changeable grâce à GC_ROOT_BUFFER_MAX_ENTRIES dans Zend/zend_gc.c dans le code source de PHP, une recompilation est donc nécessaire). Si le ramasse- miettes est désactivé, la recherche des cycles l'est aussi. Cependant, les racines probables seront toujours enregistrées dans le tampon, ceci ne dépend pas de l'activation du ramasse-miettes.

Si le tampon est plein alors que le mécanisme est désactivé, alors plus aucune racine ne pourra y être insérée. Ces racines ne seront donc pas analysées par l'algorithme au besoin, et si elles représentaient des références circulaires, il y aura fuite mémoire.

La raison pour laquelle les racines possibles sont tout de même enregistrées dans le tampon même si le mécanisme est désactivé est qu'il aurait été trop couteux de vérifier l'activation éventuelle du mécanisme à chaque tentative d'ajout d'une racine dans le tampon. Le mécanisme de ramasse-miettes et d'analyse peut être lui, couteux en temps.

En plus de pouvoir changer la valeur du paramètre de configuration zend.enable_gc , vous pouvez aussi activer ou désactiver le mécanisme de ramasse-miettes en appelant les fonctions gc_enable() ou gc_disable() respectivement. Ceci aura le même effet que de modifier le paramètre de configuration. Vous avez de plus la possibilité de forcer le passe du ramasse-miettes à un moment donné dans votre script, même si le tampon n'est pas encore complètement plein. Utilisez pour cela la fonction gc_collect_cycles(), cette fonction retournera le nombre de cycles alors collectés.

Vous pouvez prendre le contrôle en désactivant le ramasse-miettes ou en le forçant à passer à un moment donné car certaines parties de votre application peuvent être gourmandes en temps de traitement auquel cas vous pouvez désactiver le ramasse-miettes. Vous risquez à ce moment là des fuites mémoires. Vous pourriez vouloir déclencher manuellement le processus grâce à gc_collect_cycles() juste avant l'appel à gc_disable() pour libérer de la mémoire. Ceci laissera un tampon vidé et il y aura plus d'espace pour des racines probables (surtout lorsque le mécanisme est désactivé).



Considerations sur les performances

Nous avons déja vu dans les sections précédentes que la collecte des racines probables avait un impact très léger sur les performances, mais c'est lorsqu'on compare PHP5.2 à PHP5.3. Même si l'enregistrement des racines probables est plus lent que de pas les enregistrer du tout, comme dans PHP5.2, d'autres changements durant l'éxécution de PHP5.3 font de cette opération une opération quasi indolore au niveau des performances.

Il y a deux axes pour étudier les performances avec GC. D'abord l'empreinte mémoire et ensuite le temps d'éxécution pour nettoyer la mémoire. Nous allons étudier ces deux axes.

Empreinte mémoire réduite

D'abord, la raison principale de l'implémentation du mécanisme de collecte des déchets est la réduction de la mémoire consommée en nettoyant les références circulaires aussitôt que possible. Dans PHP, ceci arrive lorsque le tampon de racines est plein, ou lorsque la fonction gc_collect_cycles() est appelée. Sur le graphe ci-après, nous affichons l'utilisation mémoire d'un script dans PHP5.2 et PHP5.3, en excluant la mémoire obligatoire que PHP consomme pour lui-même au démarrage.

Exemple #1 Exemple d'utilisation mémoire

<?php
class Foo
{
    public 
$var '3.141592654';
}

$baseMemory memory_get_usage();

for ( 
$i 0$i <= 100000$i++ )
{
    
$a = new Foo;
    
$a->self $a;
    if ( 
$i 500 === )
    {
        echo 
sprintf'%8d: '$i ), memory_get_usage() - $baseMemory"\n";
    }
}
?>
Comparaison de la consommation mémoire entre PHP 5.2 et PHP 5.3

L'exemple est étuidé pour, nous allons créer un objet possédant un attribut le référençant lui-même. Lorsque la variable $a dans le script est réassignée à la prochaine itération, une fuite mémoire apparaitra. Dans ce cas, les deux conteneurs zval fuient (la zval de l'objet et celle de l'attribut), mais seulement une racine possible est trouvée : la variable qui a été supprimée. Lorsque le tampon de racines est plein après 10.000 itérations (un total de 10.000 racines possibles), le mécanisme de collection des déchets entre en jeu et libère la mémoire associée à ces racines probables. Cela se voit très clairement sur les graphes d'utilisation mémoire de PHP5.3. Après chaques 10.000 itérations, le mécanisme se déclenche et libère la mémoire associée aux variables références circulaires. Le diagramme montre que l'utilisation maximale de mémoire de PHP5.3 est d'environ 9Mo là où PHP5.2 n'arrête pas d'en consommer.

Ralentissement durant l'exécution

Le second point concernant les performances du mécanisme de collecte des déchets (GC) est le temps pris par le mécanisme pour libérer la mémoire "gaspillée". Pour voir cet impact, nous allons modifier le script précédent afin d'avoir un nombre d'itérations beaucoup plus élevé. Le script ressemble à:

Exemple #2 Impact de GC sur les performances

<?php
class Foo
{
    public 
$var '3.141592654';
}

for ( 
$i 0$i <= 1000000$i++ )
{
    
$a = new Foo;
    
$a->self $a;
}

echo 
memory_get_peak_usage(), "\n";
?>

Nous allons lancer ce script 2 fois, une fois avec zend.enable_gc à on, et une fois à off:

Exemple #3 Lancement du script ci-dessus

time php -dzend.enable_gc=0 -dmemory_limit=-1 -n example2.php
# and
time php -dzend.enable_gc=1 -dmemory_limit=-1 -n example2.php

Sur ma machine, la première commande semble durer tout le temps 10,7 secondes, alors que la seconde commande prend environ 11,4 secondes. Un ralentissement de 7% environ. Cependant, la quantité totale de mémoire utilisée par le script est réduite de 98% passant de 931Mo à 10Mo. Ce benchmark n'est pas très scientifique ou même représentatif d'applications réelles, mais il démontre concrètement en quoi le mécanisme de collecte des déchets peut être utile concernant la consommation mémoire. Le bon point est que le ralentissement est toujours de 7%, dans le cas particulier de ce script, alors que la mémoire restaurée sera de plus en plus importante au fur et à mesure que des références circulaires apparaitront durant l'éxécution.

Statistiques internes du GC de PHP

Il est possible d'obtenir quelques informations concernant le mécanisme de collecte des déchets interne à PHP. Mais pour cela, il faut recompiler PHP avec le support du benchmarking et de la collection de données. Vous devrez passer la variable d'environnement CFLAGS avec -DGC_BENCH=1 avant de lancer ./configure. L'exemple suivant démontre cela:

Exemple #4 Recompiler PHP pour le support du benchmark du GC

export CFLAGS=-DGC_BENCH=1
./config.nice
make clean
make

Lorsque vous ré-éxécutez le code du script ci-dessus avec un PHP fraichement reconstruit, vous devriez voir le résultat suivant après l'éxecution:

Exemple #5 Statistiques GC

GC Statistics
-------------
Runs:               110
Collected:          2072204
Root buffer length: 0
Root buffer peak:   10000

      Possible            Remove from  Marked
        Root    Buffered     buffer     grey
      --------  --------  -----------  ------
ZVAL   7175487   1491291    1241690   3611871
ZOBJ  28506264   1527980     677581   1025731

Les statistiques les plus descriptives sont affichées dans le premier bloc. Vous voyez que le mécanisme de collecte des dechets a été déclenché 110 fois, et au total ce sont plus de 2 millions d'allocations mémoires qui ont été libérées durant ces 110 passages. Dès lors que le mécanisme est intervenu une seule fois, le pic du buffer racine est toujours de 10000.

Conclusion

De manière générale, la collection des dechets en PHP ne causera un ralentissement que lorsque le cycle tournera, ainsi dans les scripts normaux il ne devrait pas y avoir de ressenti de ce ralentissement.

Cependant, lorsque le cycle de collection de déchets sera enclenché dans des scripts normaux, la réduction de l'empreinte mémoire permettra alors d'éxécuter plus de scripts en parallèle.

Les avantages se sentent plus dans le cas de scripts démons ou devant tourner longtemps. Aussi, concernant les applications » PHP-GTK qui souvent tournent plus longtemps que des scripts pour le Web, le nouveau mécanisme devrait réduire significativement les fuites mémoires sur le long terme.





Référence des fonctions


Affecte le comportement de PHP


Cache PHP alternatif


Introduction

Le "Alternative PHP Cache" (APC) est un cache d'opcode libre et ouvert pour PHP. Son objectif est de fournir un framework libre, ouvert et robuste pour la mise en cache et l'optimisation de code intermédiaire PHP.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/apc.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note: Sous Windows, APC a besoin d'un chemin temporaire pour exister devant être accessible en écriture par le serveur Web. Il vérifie la valeur des variables d'environnement TMP, TEMP et USERPROFILE dans cet ordre, et tente finalement le dossier WINDOWS si aucune de ces variables n'est définie.

Note: Pour des détails techniques sur l'implémentation de ce framework, lisez le » fichier TECHNOTES fourni par les développeurs .



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Bien que la configuration par défaut d'APC soit suffisante pour la plupart des installations, les utilisateurs avancés devraient affiner certains paramètres.

Il y a deux décisions importantes que vous devez prendre. D'abord, la quantité de mémoire partagée que vous voulez allouer à APC et ensuite, si vous voulez qu'APC vérifie si un fichier a été modifié à chaque requête. Les deux directives de configuration concernées sont apc.shm_size et apc.stat. Lisez avec attention la section suivante sur ces deux directives de configuration.

Une fois que vous avez un serveur qui fonctionne, vous devez copier le script apc.php fourni avec l'extension dans un endroit accessible par le serveur web, puis, appelez-le depuis votre navigateur. Il vous fournit tous les détails de votre cache. Si GD est actif sur votre configuration PHP, il y aura aussi de jolis graphiques. La première chose à vérifier est s'il y a actuellement des fichiers en cache. En supposant que cela fonctionne, vous devez donc faire attention au nombre Cache full count sur la gauche. Il indique le temps depuis lequel le cache a été créé et qui doit effacer les entrées non utilisées depuis apc.ttl secondes. Vous devriez configurer votre cache pour minimiser ce nombre. Si vous remplissez constamment votre cache, la génération du cache résultant va prendre beaucoup de ressources. Vous devriez soit allouer plus de mémoire pour APC, soit utiliser apc.filters pour mettre en cache moins de scripts.

Lorsque APC est compilé avec le support mmap (Memory Mapping), il n'utilisera qu'un seul segment mémoire alors que APC compilé avec le support SHM (SysV Shared Memory) utilisera plusieurs segments mémoires. MMAP n'a pas de limite maxi comme SHM dans /proc/sys/kernel/shmmax. En général MMAP est recommandé car il accèdera à la mémoire de manière plus rapide lorsque le serveur web est redémarré et il réduit aussi les allocations mémoire au démarrage.

Options de configuration APC
Nom Défaut Modifiable Historique
apc.enabled "1" PHP_INI_SYSTEM PHP_INI_SYSTEM avec APC 2. PHP_INI_ALL avec APC <= 3.0.12p2
apc.shm_segments "1" PHP_INI_SYSTEM  
apc.shm_size "32M" PHP_INI_SYSTEM  
apc.optimization "0" PHP_INI_ALL PHP_INI_SYSTEM avec APC 2. Supprimé depuis APC 3.0.13.
apc.num_files_hint "1000" PHP_INI_SYSTEM  
apc.user_entries_hint "4096" PHP_INI_SYSTEM Disponible depuis APC 3.0.0.
apc.ttl "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.0.
apc.user_ttl "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.0.
apc.gc_ttl "3600" PHP_INI_SYSTEM  
apc.cache_by_default "1" PHP_INI_ALL PHP_INI_SYSTEM avec APC <= 3.0.12p2. Disponible depuis APC 3.0.0.
apc.filters NULL PHP_INI_SYSTEM  
apc.mmap_file_mask NULL PHP_INI_SYSTEM  
apc.slam_defense "1" PHP_INI_SYSTEM Disponible depuis APC 3.0.0. Avant la version 3.1.4 d'APC, la valeur par défaut était "0" (désactivé).
apc.file_update_protection "2" PHP_INI_SYSTEM Disponible depuis APC 3.0.6.
apc.enable_cli "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.7.
apc.max_file_size "1M" PHP_INI_SYSTEM Disponible depuis APC 3.0.7.
apc.use_request_time "1" PHP_INI_ALL Disponible depuis APC 3.1.3.
apc.stat "1" PHP_INI_SYSTEM Disponible depuis APC 3.0.10.
apc.write_lock "1" PHP_INI_SYSTEM Disponible depuis APC 3.0.11.
apc.report_autofilter "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.11.
apc.include_once_override "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.12.
apc.rfc1867 "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.13.
apc.rfc1867_prefix "upload_" PHP_INI_SYSTEM  
apc.rfc1867_name "APC_UPLOAD_PROGRESS" PHP_INI_SYSTEM  
apc.rfc1867_freq "0" PHP_INI_SYSTEM  
apc.rfc1867_ttl "3600" PHP_INI_SYSTEM Disponible depuis APC 3.1.1.
apc.localcache "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.14.
apc.localcache.size "512" PHP_INI_SYSTEM Disponible depuis APC 3.0.14.
apc.coredump_unmap "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.16.
apc.stat_ctime "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.13.
apc.preload_path NULL PHP_INI_SYSTEM Disponible depuis APC 3.1.1.
apc.file_md5 "0" PHP_INI_SYSTEM Disponible depuis APC 3.1.1.
apc.canonicalize "1" PHP_INI_SYSTEM Disponible depuis APC 3.1.1.
apc.lazy_functions 0 PHP_INI_SYSTEM Disponible depuis APC 3.1.3.
apc.lazy_classes 0 PHP_INI_SYSTEM Disponible depuis APC 3.1.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

apc.enabled booléen

apc.enabled peut être défini à 0 pour désactiver APC. Ceci est utile lorsque APC est compilé statiquement dans PHP, et qu'il n'y a donc aucun autre moyen de le désactiver (lorsque compilé en tant que DSO, la ligne extension dans le php.ini peut juste être commentée).

apc.shm_segments entier

Le nombre de segments mémoire à allouer pour le cache compilé. Si APC fonctionne en dehors de la mémoire partagée, mais que vous avez déjà défini apc.shm_size aussi élevé que votre système le permet, vous pouvez tenter de relever cette valeur.

apc.shm_size entier

La taille de chaque segment de mémoire partagé en MB. Par défaut, quelques systèmes (incluant la plupart des BSD) ont une limite basse de la taille d'un segment mémoire partagé.

apc.optimization entier

Le degré d'optimisation. Zéro désactive l'optimiseur, et de hautes valeurs utilisent des optimisations agressives. Attendez-vous à des améliorations très modestes de vitesse. Ceci est expérimental.

apc.num_files_hint entier

Un "conseil" au sujet du nombre de fichiers sources distincts qui seront inclus ou demandés sur votre serveur web. Placez à zéro ou omettez-le si vous n'êtes pas sûr ; cet arrangement est principalement utile pour les sites qui ont des milliers de fichiers sources.

apc.user_entries_hint entier

Tout comme apc.num_files_hint, un "conseil" à propos du nombre de variables de cache utilisateur distinctes à stocker. Définissez le à 0 ou ne le définissez pas si vous n'êtes pas sûr.

apc.ttl entier

Le nombre de secondes qu'une entrée de cache est autorisée à stagner dans un slot dans le cas où ce slot d'entrée de cache est nécessaire pour une autre entrée. Laisser à zéro signifie que votre cache pourrait potentiellement remplir d'autres entrées tant que d'autres entrées ne seront pas mises en cache.

apc.user_ttl entier

Le nombre de secondes qu'une entrée utilisateur du cache est autorisée à résider dans un slot dans le cas où ce slot d'entrée de cache est demandé par une autre entrée. Laisser cette option à zéro signifie que votre cache peut potentiellement être rempli avec des entrées obsolètes lorsqu'il n'y a eu jamais d'entrées mises en cache. Dans le cas où le cache est à court d'espace, ce dernier sera totalement vidé si ttl vaut 0. Sinon, et si le ttl est supérieur à 0, APC va tenter de supprimer les entrées qui ont dépassé leur date d'expiration.

apc.gc_ttl entier

Le nombre de secondes qu'une entrée de cache est autorisée à rester sans utilisation, au cas où cet espace pourrait être nécessaires à une autre entrée. La valeur de zéro fait que votre cache pourrait se remplir avec des entrées oisives, et que les nouvelles entrées ne soient pas mises en cache. Dans le cas où le cache est à court de mémoire, le cache sera totalement vidé si ttl vaut 0. Sinon, et si ttl est supérieur à 0, APC va tenter de supprimer les entrées qui ont dépassé leur date d'expiration.

apc.cache_by_default booléen

Actif par défaut, mais peut être désactivé et utilisé en conjonction avec un apc.filters positif donc ces fichiers seront uniquement mis en cache s'ils correspondent à un filtre positif.

apc.filters chaîne de caractères

Une liste séparée par des virgules d'expressions rationnelles POSIX. Si un seul masque correspond à un nom de fichier source, le fichier ne sera pas mis en cache. Notez que le nom du fichier utilisé pour le masque est celui passé aux instructions include() require(), et non un chemin absolu. Si le premier caractère de l'expression est un + alors l'expression sera additive dans le sens que chaque fichier correspondant à l'expression sera mis en cache, et si le premier caractère est un - alors tout ce qui correspond ne sera pas mis en cache. Le cas du - est celui par défaut, donc, il peut être omis.

apc.mmap_file_mask chaîne de caractères

Si compilé avec le support MMAP en utilisant --enable-mmap, ce sera le style mktemp de masque de fichier à passer au module MMAP pour déterminer si votre région de mémoire MMAP va être mise dans un fichier ou en mémoire partagée. Dans le cas de la mise en cache dans un fichier MMAP, définissez ce paramètre comme /tmp/apc.XXXXXX (exactement 6 X). Pour utiliser le style POSIX shm_open/mmap, placez un .shm quelque part dans votre masque, e.g. /apc.shm.XXXXXX. Vous pouvez également définir ce paramètre à /dev/zero pour utiliser votre interface kernel /dev/zero pour la mémoire anonyme MMAP. Le laisser indéfini forcera un MMAP anonyme.

apc.slam_defense entier

Sur les serveurs très surchargés lorsque vous démarrez le serveur ou modifiez des fichiers, vous pouvez créer une course de plusieurs processus pour mettre en cache le même fichier en même temps. Cette option définit le pourcentage de processus qui évitera de tenter de mettre en cache un fichier non mis en cache. Ou pensez à lui comme probabilité d'un processus simple pour éviter la mise en cache. Par exemple, définir apc.slam_defense à 75 signifie qu'il y a 75 % de chances que le processus ne mettra pas en cache un fichier qui ne s'y trouvera pas déjà. Définir à 0 pour désactiver cette fonctionnalité.

Obsolète avec apc.write_lock.

apc.file_update_protection entier

Lorsque vous modifiez un fichier sur un serveur web, vous devriez le faire d'une façon atomique. Écrivez-le dans un fichier temporaire et renommez-le (mv) vers sa position permanente lorsqu'il est prêt. La plupart des éditeurs de texte, cp, tar et les autres programmes de ce genre ne font pas cela. Cela signifie qu'il y a une chance pour que le fichier soit accédé (et donc, mis en cache) alors qu'il est encore en cours d'écriture. Ce paramètre apc.file_update_protection fait intervenir un délai pour la mise en cache des nouveaux fichiers. Par défaut, il vaut 2 secondes, ce qui signifie que si le timestamp de modification (mtime) d'un fichier montre qu'il vaut moins de 2 secondes, ce fichier ne sera pas mis en cache. La personne malheureuse qui a accédé à ce fichier à moitié écrit verra une ébauche, mais au moins celui-ci ne persistera pas en cache. Si vous êtes certain de mettre toujours et automatiquement à jour vos fichiers en utilisant quelque chose comme rsync qui fait cela correctement, vous pouvez désactiver cette protection en le définissant à 0. Si vous avez une application très intensive sur le disque, qui force les procédures de mise à jour à prendre plus de 2 secondes, vous pourriez vouloir augmenter la valeur de cette directive.

apc.enable_cli entier

Pour tester et déboguer. Définir ceci active APC pour la version CLI de PHP. Normalement, vous ne devriez pas vouloir créer, peupler et démonter le cache APC à chaque requête CLI, mais pour divers scénarios de test, elle est maniable afin de pouvoir activer facilement APC pour la version CLI d'APC.

apc.max_file_size entier

Permet d'éviter la mise en cache des fichiers dont la taille est supérieure à cette valeur. Par défaut, 1Mo.

apc.stat entier

Faites très attention si vous modifiez cette valeur. Par défaut, APC vérifie le script à chaque demande pour voir s'il a été modifié ou non. S'il a été modifié, il sera compilé à nouveau et la nouvelle version sera mise en cache. En désactivant cette option, aucune vérification n'aura lieu. Cela signifie que si vous voulez activer les modifications, vous devez redémarrer le serveur web. Sur un serveur de production où vous modifiez rarement le code, le fait de désactiver cette option permet de gagner en performances de manière significative.

Pour les fichiers inclus/requis, cette option est également appliquée, mais notez que si vous utilisez des chemins relatifs (n'importe quel chemin qui ne commence pas par un / sous Unix), APC doit identifier de manière unique le fichier à vérifier. Si vous utilisez des chemins absolus pour vos inclusions, APC peut éviter ces vérifications et utiliser ce chemin absolu en tant qu'identifiant unique du fichier.

apc.write_lock booléen

Sur les serveurs très chargés, lorsque vous démarrez le serveur, ou lorsque beaucoup de fichiers sont modifiés, vous pouvez en finir avec les processus qui tentent de compiler et mettre en cache le même fichier. Lorsque apc.write_lock est activé, uniquement un seul processus à la fois tentera de compiler un script de mise en cache tandis que les autres processus exécuteront les fichiers non mis en cache au lieu d'attendre que le verrou se libère.

apc.report_autofilter booléen

Logs tous les scripts qui sont automatiquement exclus de la mise en cache à cause de problèmes de liaison.

apc.include_once_override booléen

Optimise les appels aux fonctions include_once() et require_once() et évite ainsi de surcharger le système appelant.

apc.rfc1867 booléen

Le gestionnaire de progression de téléchargement de fichier RFC1867 n'est disponible que si vous avez compilé APC avec PHP 5.2.0 ou supérieur. Lors le support est actif, les fichiers téléchargés qui incluent un champ appelé APC_UPLOAD_PROGRESS avant le champ "file" d'un formulaire de téléchargement fera qu'APC créera automatiquement une entrée de cache utilisateur nommée upload_keykey est la valeur de l'entrée de formulaire APC_UPLOAD_PROGRESS.

Notez que les champs cachés spécifié par APC_UPLOAD_PROGRESS doivent être placés avant le champ de type file, sinon le suivi de l'upload ne fonctionnera pas correctement.

Notez que la surveillance du téléchargement de fichier n'est pas compatible avec les threads pour le moment, ainsi, les nouveaux téléchargements survenant tandis qu'un précédent est toujours en cours désactivera la surveillance précédente.

Exemple #1 Exemple avec apc.rfc1867

<?php
print_r
(apc_fetch("upload_$_POST[APC_UPLOAD_PROGRESS]"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [total] => 1142543
    [current] => 1142543
    [rate] => 1828068.8
    [filename] => test
    [name] => file
    [temp_filename] => /tmp/php8F
    [cancel_upload] => 0
    [done] => 1
)

apc.rfc1867_prefix chaîne de caractères

Préfixe de la clé à utiliser pour l'entrée de cache utilisateur généré par la fonctionnalité de progression de téléchargement RFC1867.

apc.rfc1867_name chaîne de caractères

Spécifie le nom du champ masqué du formulaire qui active la progression du téléchargement et spécifie le suffixe de la clé du cache utilisation.

apc.rfc1867_freq chaîne de caractères

La fréquence à laquelle la mise à jour doit être effectuée pour l'entrée du cache utilisateur pour la progression du téléchargement. Peut prendre la forme d'un pourcentage de la taille totale du fichier ou une taille, en octets, optionnellement suffixée par "k", "m", ou "g" pour kilo-octets, méga-octets ou giga-octets (insensible à la casse). Si vous définissez cette option à 0, la mise à jour intervient aussi souvent que possible, ce qui peut rendre le téléchargement plus lent.

apc.rfc1867_ttl bool

TTL pour les entrées rfc1867.

apc.localcache booléen

Ceci active un processus d'interface locale libre de cache, ce qui réduit les controverses de verrous lorsque le cache est sur le point d'être écrit.

apc.localcache.size entier

La taille du processus d'interface locale libre de cache, doit être définit à une valeur suffisamment élevée, soit approximativement la moitié de la valeur de apc.num_files_hint.

apc.coredump_unmap booléen

Active la gestion APC des signaux, comme SIGSEGV, qui écrit les fichiers internes lorsqu'il est émis. Lorsque ces signaux sont reçus, APC tentera de détacher les segments de la mémoire partagée afin de les exclure du fichier interne. Cette configuration devrait rendre plus stable le système lorsque des signaux fatals sont reçus et qu'un gros segment APC de mémoire partagée est configuré.

Avertissement

Cette fonctionnalité est potentiellement dangereuse. Le détachement d'un segment de mémoire partagée dans un gestionnaire de signaux fatals peut produire à un comportement indéterminé si une erreur fatale survient.

Note:

Bien que quelques noyaux puissent ignorer divers types de mémoire partagée lors de la génération du fichier interne, ces implémentations peuvent également ignorer d'importants segments de mémoire partagée tel que le scoreboard d'Apache.

apc.stat_ctime entier

Une vérification avec ctime prévient les problèmes causés par des programmes comme svn ou rsync en s'assurant que les inodes n'ont pas été modifiés depuis le dernier appel à stat. APC, normalement, n'utilise que mtime pour cela.

apc.canonicalize bool

Si activé les chemins relatifs sont cononisés en mode no-stat.

apc.preload_path string

apc.use_request_time bool

Utilise le temps de début derequête SAPI pour le TTL.

apc.file_md5 bool

Enregistre un hashage md5 pour les fichiers.

apc.lazy_functions integer

Active le chargement à la demande pour les fonctions.

apc.lazy_classes integer

Active le chargement à la demande pour les classes.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.

APC_BIN_VERIFY_CRC32 (integer)
APC_BIN_VERIFY_MD5 (integer)
APC_ITER_ALL (integer)
APC_ITER_ATIME (integer)
APC_ITER_CTIME (integer)
APC_ITER_DEVICE (integer)
APC_ITER_DTIME (integer)
APC_ITER_FILENAME (integer)
APC_ITER_INODE (integer)
APC_ITER_KEY (integer)
APC_ITER_MD5 (integer)
APC_ITER_MEM_SIZE (integer)
APC_ITER_MTIME (integer)
APC_ITER_NONE (integer)
APC_ITER_NUM_HITS (integer)
APC_ITER_REFCOUNT (integer)
APC_ITER_TTL (integer)
APC_ITER_TYPE (integer)
APC_ITER_VALUE (integer)
APC_LIST_ACTIVE (integer)
APC_LIST_DELETED (integer)



Fonctions APC


apc_add

(PECL apc >= 3.0.13)

apc_addMet en cache une variable dans le magasin de données

Description

bool apc_add ( string $key [, mixed $var [, int $ttl = 0 ]] )
array apc_add ( array $values [, mixed $unused [, int $ttl = 0 ]] )

Met en cache une variable dans le magasin de données, uniquement si elle ne s'y trouve pas déjà.

Note: Contrairement aux autres mécanismes en PHP, les variables stockées en utilisant la fonction apc_add() seront persistantes entre les requêtes (jusqu'à ce que la valeur soit effacée du cache).

Liste de paramètres

key

Stocke la variable en utilisant son nom. La clé key est unique dans le cache, donc utilisez la fonction apc_add() pour stocker une donnée avec une clé qui existe déjà n'efface pas la donnée existante, mais retournera FALSE. (C'est la seule différence entre la fonction apc_add() et la fonction apc_store().)

var

La variable à stocker

ttl

Durée de vie ; stocke la variable var dans le cache pendant ttl secondes. Après ce délai, la variable stockée sera effacée du cache (à la requête suivante). Si le paramètre ttl n'est pas fourni (ou s'il vaut 0), la valeur persistera tant qu'elle ne sera pas effacée manuellement du cache, ou si elle n'existe plus dans le cache (effacement, redémarrage, etc.).

values

Les noms comme clés, les variables comme valeurs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La seconde syntaxe retourne un tableau avec les clés en erreur.

Exemples

Exemple #1 Exemple avec apc_add()

<?php
$bar 
'BAR';
apc_add('foo'$bar);
var_dump(apc_fetch('foo'));
echo 
"\n";
$bar 'NEVER GETS SET';
apc_add('foo'$bar);
var_dump(apc_fetch('foo'));
echo 
"\n";
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"
string(3) "BAR"

Voir aussi

  • apc_store() - Met en cache une variable dans le magasin
  • apc_fetch() - Récupère une variable stockée dans le cache
  • apc_delete() - Efface une variable stockée dans le cache



apc_bin_dump

(PECL apc >= 3.1.4)

apc_bin_dumpRécupère une sortie binaire des fichiers fournis et des variables utilisateur

Description

string apc_bin_dump ([ array $files [, array $user_vars ]] )

Retourne une sortie binaire des fichiers fournis et des variables utilisateur depuis le cache APC. Passer NULL pour les fichiers ou les variables utilisateur signifie une sortie pour chaque entrée alors que array() permettra de n'avoir aucune sortie.

Liste de paramètres

files

Les fichiers. Passer NULL indique un retour pour chaque entrée alors que passer array() ne génèrera aucune sortie.

user_vars

Les variables utilisateur. Passer NULL indique un retour pour chaque entrée alors que passer array() ne génèrera aucune sortie.

Valeurs de retour

Retourne une sortie binaire de chaque fichiers et chaque variables utilisateur depuis le cache APC. FALSE est retourné si APC n'est pas activé et NULL si une erreur est survenue.

Voir aussi

  • apc_bin_dumpfile() - Envoi une sortie binaire des fichiers fournis et des variables utilisateur vers un fichier spécifique
  • apc_bin_load() - Charge une sortie binaire dans le cache fichiers ou utilisateur d'APC


apc_bin_dumpfile

(PECL apc >= 3.1.4)

apc_bin_dumpfileEnvoi une sortie binaire des fichiers fournis et des variables utilisateur vers un fichier spécifique

Description

int apc_bin_dumpfile ( array $files , array $user_vars , string $filename [, int $flags = 0 [, resource $context ]] )

Envoi une sortie binaire des fichiers fournis et des variables utilisateur depuis le cache APC vers un fichier fourni.

Liste de paramètres

files

Les noms de fichier à sortir.

user_vars

Les variables utilisateur à sortir.

filename

Le fichier vers lequel envoyer les sorties.

flags

Drapeaux passés au flux filename. Voyez la documentation de file_put_contents() pour plus de détails.

context

Le contexte de flux à passer pour filename. Voyez la documentation de file_put_contents() pour plus de détails.

Valeurs de retour

Le nombre d'octets écrits dans le fichier, sinon FALSE si APC n'est pas activé, si filename est invalide ou ne peut être ouvert, si la sortie générée est incomplète (ex: le disque est plein) ou enfin si une erreur quelconque est survenue.

Voir aussi

  • apc_bin_dump() - Récupère une sortie binaire des fichiers fournis et des variables utilisateur
  • apc_bin_load() - Charge une sortie binaire dans le cache fichiers ou utilisateur d'APC


apc_bin_load

(PECL apc >= 3.1.4)

apc_bin_loadCharge une sortie binaire dans le cache fichiers ou utilisateur d'APC

Description

bool apc_bin_load ( string $data [, int $flags = 0 ] )

Charge la sortie binaire fournie dans le cache fichiers ou utilisateur d'APC

Liste de paramètres

data

La sortie binaire à charger, provenant de apc_bin_dump().

flags

Soit APC_BIN_VERIFY_CRC32, soit APC_BIN_VERIFY_MD5, ou encore les deux combinés.

Valeurs de retour

Retourne TRUE si la sortie binaire data a été chargée avec succès, sinon FALSE est retourné. FALSE est retourné si APC n'est pas activé ou si data n'est pas une sortie APC valide (ex: taille incorrecte).

Exemples

Exemple #1 Exemple apc_bin_load()

<?php
$data 
apc_bin_dump(NULLNULL);
apc_bin_load($dataAPC_BIN_VERIFY_MD5 APC_BIN_VERIFY_CRC32);
?>

Voir aussi

  • apc_bin_dump() - Récupère une sortie binaire des fichiers fournis et des variables utilisateur
  • apc_bin_loadfile() - Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC


apc_bin_loadfile

(PECL apc >= 3.1.4)

apc_bin_loadfileCharge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC

Description

bool apc_bin_loadfile ( string $filename [, resource $context [, int $flags ]] )

Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC

Liste de paramètres

filename

Le nom du fichier contenant la sortie binaire, typiquement depuis apc_bin_dumpfile().

context

Le contexte des fichiers.

flags

Soit APC_BIN_VERIFY_CRC32, soit APC_BIN_VERIFY_MD5, ou encore les deux combinés.

Valeurs de retour

Retourne TRUE en cas de succès, ou alors FALSE Les raisons d'un retour FALSE incluent la non activation de APC, filename invalide ou non ouvrable, le fichier de sortie est incomplet ou encore si data n'est pas une sortie APC valide (ex: taille incorrecte).

Voir aussi

  • apc_bin_dumpfile() - Envoi une sortie binaire des fichiers fournis et des variables utilisateur vers un fichier spécifique
  • apc_bin_load() - Charge une sortie binaire dans le cache fichiers ou utilisateur d'APC


apc_cache_info

(PECL apc >= 2.0.0)

apc_cache_info Récupère les informations du cache dans l'entrepôt APC

Description

array apc_cache_info ([ string $cache_type [, bool $limited = false ]] )

Récupère les informations du cache et les métadonnées depuis le magasin APC.

Valeurs de retour

Un tableau de données mis en cache (et les métadonnées) ou FALSE si une erreur survient.

Note: apc_cache_info() émet une alerte s'il n'est pas capable de récupérer les données APC mises en cache. Ceci arrive typiquement lorsque APC n'est pas activé.

Liste de paramètres

cache_type

Si cache_type vaut "user", les informations sur le cache utilisateur seront retournées.

Si cache_type vaut "filehits", les informations sur les fichiers ayant été servis depuis le cache pour la requête courante seront retournées. Cette fonctionnalité doit être activé lors de la compilation, en utilisant l'option --enable-filehits .

Si cache_type est non spécifié ou invalide, l'information à propos du cache système (fichiers mis en cache) est retournée.

limited

Si limited vaut TRUE, la valeur retournée exclue les entrées de la liste individuelle du cache. Ceci est utile lorsque l'on tente d'optimiser les appels pour la collecte de statistiques.

Historique

Version Description
3.0.11 Le paramètre limited a été introduit.
3.0.16 L'option "filehits" du paramètre cache_type a été introduite.

Exemples

Exemple #1 Exemple avec apc_cache_info()

<?php
print_r
(apc_cache_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /chemin/vers/apc_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...itération pour chaque fichier mis en cache)
)

Voir aussi



apc_cas

(PECL apc >= 3.1.1)

apc_casMet à jour une ancienne valeur par une nouvelle

Description

bool apc_cas ( string $key , int $old , int $new )

apc_cas() met à jour une valeur entière existante (si le paramètre old correspond à la valeur actuellement stockée), avec la valeur du paramètre new.

Liste de paramètres

key

La clé de la valeur à mettre à jour.

old

L'ancienne valeur (la valeur actuellement stockée).

new

La nouvelle valeur à utiliser.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple apc_cas()

<?php
apc_store
('foobar'2);
echo 
'$foobar = 2'PHP_EOL;
echo 
'$foobar == 1 ? 2 : 1 = ', (apc_cas('foobar'12) ? 'ok' 'fail'), PHP_EOL;
echo 
'$foobar == 2 ? 1 : 2 = ', (apc_cas('foobar'21) ? 'ok' 'fail'), PHP_EOL;

echo 
'$foobar = 'apc_fetch('foobar'), PHP_EOL;

echo 
'$f__bar == 1 ? 2 : 1 = ', (apc_cas('f__bar'12) ? 'ok' 'fail'), PHP_EOL;

apc_store('perfection''xyz');
echo 
'$perfection == 2 ? 1 : 2 = ', (apc_cas('perfection'21) ? 'ok' 'epic fail'), PHP_EOL;

echo 
'$foobar = 'apc_fetch('foobar'), PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$foobar = 2
$foobar == 1 ? 2 : 1 = fail
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = fail
$perfection == 2 ? 1 : 2 = epic fail
$foobar = 1

Voir aussi

  • apc_dec() - Décrémente un nombre stocké
  • apc_store() - Met en cache une variable dans le magasin


apc_clear_cache

(PECL apc >= 2.0.0)

apc_clear_cache Efface le cache APC

Description

bool apc_clear_cache ([ string $cache_type ] )

Efface le cache utilisateur/système.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Liste de paramètres

cache_type

Si cache_type vaut "user", le cache utilisateur sera nettoyé ; sinon, le cache système (les fichiers mis en cache) sera nettoyé.

Voir aussi



apc_compile_file

(PECL apc >= 3.0.13)

apc_compile_fileStocke un fichier dans le cache, en évitant tous les filtres

Description

mixed apc_compile_file ( string $filename [, bool $atomic = true ] )

Stocke un fichier dans le cache, en évitant tous les filtres.

Liste de paramètres

filename

Chemin complet ou relatif vers un fichier PHP qui sera compilé et stocké dans le cache.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • apc_bin_dumpfile() - Envoi une sortie binaire des fichiers fournis et des variables utilisateur vers un fichier spécifique
  • apc_bin_loadfile() - Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC


apc_dec

(PECL apc >= 3.1.1)

apc_decDécrémente un nombre stocké

Description

int apc_dec ( string $key [, int $step = 1 [, bool &$success ]] )

Décrémente un nombre stocké

Liste de paramètres

key

La clé de la valeur à décrémenter.

step

Le pas, ou la valeur à décrémenter.

success

Booléen optionnel pass/fail (par référence).

Valeurs de retour

Retourne la valeur courante de key en cas de succès, ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple apc_dec()

<?php
echo "Faisons les choses bien"PHP_EOL;

apc_store('anumber'42);

echo 
apc_fetch('anumber'), PHP_EOL;

echo 
apc_dec('anumber'), PHP_EOL;
echo 
apc_dec('anumber'10), PHP_EOL;
echo 
apc_dec('anumber'10$success), PHP_EOL;

var_dump($success);

echo 
"Maintenant, un échec"PHP_EOLPHP_EOL;

apc_store('astring''foo');

$ret apc_dec('astring'1$fail);

var_dump($ret);
var_dump($fail);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Faisons les choses bien
42
41
31
21
bool(true)

Maintenant, un échec
bool(false)
bool(false)

Voir aussi



apc_define_constants

(PECL apc >= 3.0.0)

apc_define_constants Définit un jeu de constantes pour la récupération et la définition en masse

Description

bool apc_define_constants ( string $key , array $constants [, bool $case_sensitive = true ] )

define() est notoirement lent. Vu que le principal bénéfice d'APC est d'augmenter les performances des applications/scripts, ce mécanisme est fourni pour améliorer le processus de la définition de constantes en masse. Cependant, cette fonction n'effectue aucune opération anticipée.

Pour une solution plus performante, essayez l'extension PECL » hidef.

Note: Pour effacer plusieurs constantes stockées (sans effacer tout le cache), un tableau vide peut être passé en tant que paramètre constants, ce qui effacera les valeurs stockées.

Liste de paramètres

key

La clé key correspondant au nom du jeu de constantes stockées. Ce paramètre key est utilisé pour récupérer les constantes stockées avec la fonction apc_load_constants().

constants

Un tableau associatif de paires constant_name => value. Le constant_name doit suivre les règles de nommage normales des constantes. value doit être évaluée comme une valeur scalaire.

case_sensitive

Le comportement par défaut pour les constantes est d'être déclarées en tenant compte de la casse ; i.e. CONSTANT et Constant représentent des valeurs différentes. Si ce paramètre est évalué à FALSE, les constantes seront déclarées en tant que symboles insensibles à la casse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_define_constants()

<?php
$constants 
= array(
    
'UN'   => 1,
    
'DEUX'   => 2,
    
'TROIS' => 3,
);
apc_define_constants('numbers'$constants);
echo 
UNDEUXTROIS;
?>

L'exemple ci-dessus va afficher :

123

Voir aussi



apc_delete_file

(PECL apc >= 3.1.1)

apc_delete_fileEfface un fichier depuis le cache opcode

Description

mixed apc_delete_file ( mixed $keys )

Efface les fichiers indiqués depuis le cache opcode

Liste de paramètres

keys

Les fichiers à effacer. Accepte une string, array de strings, ou un objet APCIterator.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Ou si keys est un array, alors un tableau vide est retourné en cas de succès, ou un tableau contenant les fichiers en échec sinon.

Exemples

Exemple #1 Exemple apc_delete_file()

<?php
$filename 
'file.php';

if (
apc_compile_file($filename)) {

    if (
apc_delete_file($filename)) {
        echo 
"Fichier $filename supprimé avec succès depuis le cache APC."PHP_EOL;
    }
}

if (
apc_compile_file($filename)) {

    if (
$good apc_delete_file(array($filename'donotexist.php'))) {
        
var_dump($good);
    }
}

$bad apc_delete_file('donotexist.php');
var_dump($bad);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fichier $filename supprimé avec succès depuis le cache APC
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 13.
array(1) {
  [0]=>
  string(14) "donotexist.php"
}
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 18.
bool(false)

Voir aussi



apc_delete

(PECL apc >= 3.0.0)

apc_delete Efface une variable stockée dans le cache

Description

mixed apc_delete ( string $key )

Efface une variable stockée dans le cache.

Liste de paramètres

key

La clé key utilisée pour stocker la valeur (avec apc_store()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_delete()

<?php
$bar 
'BAR';
apc_store('foo'$bar);
apc_delete('foo');
// c'est évidemment inutile sous cette forme
?>

Voir aussi

  • apc_store() - Met en cache une variable dans le magasin
  • apc_fetch() - Récupère une variable stockée dans le cache



apc_exists

(PECL apc >= 3.1.4)

apc_existsVérifie si une clé APC existe

Description

mixed apc_exists ( mixed $keys )

Vérifie si une ou plusieurs clés APC existent.

Liste de paramètres

keys

Une string, ou un array de chaines qui contient les clés.

Valeurs de retour

Retourne TRUE si la clé existe, sinon FALSE Ou si un array était passé à keys, alors un tableau est retourné, il contient toutes les clés existantes, ou un tableau vide si aucune clé n'existait.

Exemples

Exemple #1 Exemple apc_exists()

<?php
$fruit  
'apple';
$veggie 'carrot';

apc_store('foo'$fruit);
apc_store('bar'$veggie);

if (
apc_exists('foo')) {
    echo 
"Foo existe: ";
    echo 
apc_fetch('foo');
} else {
    echo 
"Foo n'existe pas";
}

echo 
PHP_EOL;
if (
apc_exists('baz')) {
    echo 
"Baz existe.";
} else {
    echo 
"Baz n'existe pas";
}

echo 
PHP_EOL;

$ret apc_exists(array('foo''donotexist''bar'));
var_dump($ret);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Foo existe: apple
Baz n'existe pas
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Voir aussi

  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC
  • apc_fetch() - Récupère une variable stockée dans le cache


apc_fetch

(PECL apc >= 3.0.0)

apc_fetch Récupère une variable stockée dans le cache

Description

mixed apc_fetch ( mixed $key [, bool &$success ] )

Récupère une variable stockée dans le cache.

Liste de paramètres

key

La clé key utilisée pour stocker la valeur (avec apc_store()). Si un tableau est passé, chaque élément sera récupéré et retourné.

success

Vaut TRUE en cas de succès, et FALSE si une erreur survient.

Valeurs de retour

La variable stockée ou les variables du tableau en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_fetch()

<?php
$bar 
'BAR';
apc_store('foo'$bar);
var_dump(apc_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Historique

Version Description
3.0.17 Le paramètre success est ajouté.

Voir aussi



apc_inc

(PECL apc >= 3.1.1)

apc_incIncrémente un nombre stocké

Description

int apc_inc ( string $key [, int $step = 1 [, bool &$success ]] )

Incrémente un nombre stocké.

Liste de paramètres

key

La clé de la valeur à incrémenter.

step

Le pas, ou la valeur à incrémenter.

success

Booléen optionnel pass/fail (par référence).

Valeurs de retour

Retourne la valeur courante de key en cas de succès, ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple apc_inc()

<?php
echo "Faisons les choses bien"PHP_EOL;

apc_store('anumber'42);

echo 
apc_fetch('anumber'), PHP_EOL;

echo 
apc_inc('anumber'), PHP_EOL;
echo 
apc_inc('anumber'10), PHP_EOL;
echo 
apc_inc('anumber'10$success), PHP_EOL;

var_dump($success);

echo 
"Maintenant, un échec"PHP_EOLPHP_EOL;

apc_store('astring''foo');

$ret apc_inc('astring'1$fail);

var_dump($ret);
var_dump($fail);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Faisons les choses bien
42
43
53
63
bool(true)
Maintenant, un échec

bool(false)
bool(false)

Voir aussi



apc_load_constants

(PECL apc >= 3.0.0)

apc_load_constants Charge un jeu de constantes depuis le cache

Description

bool apc_load_constants ( string $key [, bool $case_sensitive = true ] )

Charge un jeu de constantes depuis le cache.

Liste de paramètres

key

Le nom du jeu de constantes (qui a été stocké avec la fonction apc_define_constants()) à récupérer.

case_sensitive

Le comportement par défaut pour les constantes est d'être déclarées en tenant compte de la casse ; i.e. CONSTANT et Constant représentent des valeurs différentes. Si ce paramètre est évalué à FALSE, les constantes seront déclarées en tant que symboles insensibles à la casse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_load_constants()

<?php
$constants 
= array(
    
'UN'   => 1,
    
'DEUX'   => 2,
    
'TROIS' => 3,
);
apc_define_constants('numbers'$constants);
apc_load_constants('numbers');
echo 
UNDEUXTROIS;
?>

L'exemple ci-dessus va afficher :

123

Voir aussi



apc_sma_info

(PECL apc >= 2.0.0)

apc_sma_info Récupère les informations d'allocation mémoire partagée d'APC

Description

array apc_sma_info ([ bool $limited = false ] )

Récupère les informations d'allocation mémoire partagée d'APC.

Liste de paramètres

limited

Lorsque défini à FALSE (défaut) apc_sma_info() retournera une information détaillée de chaque segment.

Valeurs de retour

Tableau de données d'allocation mémoire partagée ; FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_sma_info()

<?php
print_r
(apc_sma_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)



apc_store

(PECL apc >= 3.0.0)

apc_store Met en cache une variable dans le magasin

Description

bool apc_store ( string $key , mixed $var [, int $ttl = 0 ] )
array apc_store ( array $values [, mixed $unused [, int $ttl = 0 ]] )

Met en cache une variable en magasin.

Note: Contrairement à tous les autres mécanismes de PHP, les variables stockées en utilisant la fonction apc_store() persistent entre les requêtes (tant que la valeur n'est pas effacée du cache).

Liste de paramètres

key

Stocke la variable en utilisant ce nom. Les clés key sont uniques, donc, stocker une seconde valeur avec la même clé effacera la valeur originale.

var

La variable à stocker.

ttl

Temps de vie : stocke la variable var dans le cache pour ttl secondes. Après que ttl soit passé, la variable stockée sera supprimée du cache (à la requête suivante). Si aucun ttl n'est fourni (ou si le ttl vaut 0), la valeur persistera tant qu'elle ne sera pas effacée manuellement du cache, ou si elle n'existe plus dans le cache (effacement, redémarrage, etc.).

values

Les noms comme clés, les variables comme valeurs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La seconde syntaxe retourne un tableau avec les clés en erreur.

Exemples

Exemple #1 Exemple avec apc_store()

<?php
$bar 
'BAR';
apc_store('foo'$bar);
var_dump(apc_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Voir aussi

  • apc_add() - Met en cache une variable dans le magasin de données
  • apc_fetch() - Récupère une variable stockée dans le cache
  • apc_delete() - Efface une variable stockée dans le cache


Sommaire

  • apc_add — Met en cache une variable dans le magasin de données
  • apc_bin_dump — Récupère une sortie binaire des fichiers fournis et des variables utilisateur
  • apc_bin_dumpfile — Envoi une sortie binaire des fichiers fournis et des variables utilisateur vers un fichier spécifique
  • apc_bin_load — Charge une sortie binaire dans le cache fichiers ou utilisateur d'APC
  • apc_bin_loadfile — Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC
  • apc_cache_info — Récupère les informations du cache dans l'entrepôt APC
  • apc_cas — Met à jour une ancienne valeur par une nouvelle
  • apc_clear_cache — Efface le cache APC
  • apc_compile_file — Stocke un fichier dans le cache, en évitant tous les filtres
  • apc_dec — Décrémente un nombre stocké
  • apc_define_constants — Définit un jeu de constantes pour la récupération et la définition en masse
  • apc_delete_file — Efface un fichier depuis le cache opcode
  • apc_delete — Efface une variable stockée dans le cache
  • apc_exists — Vérifie si une clé APC existe
  • apc_fetch — Récupère une variable stockée dans le cache
  • apc_inc — Incrémente un nombre stocké
  • apc_load_constants — Charge un jeu de constantes depuis le cache
  • apc_sma_info — Récupère les informations d'allocation mémoire partagée d'APC
  • apc_store — Met en cache une variable dans le magasin


La classe APCIterator

Introduction

La classe APCIterator simplifie l'itération des caches APC volumineux. C'est utile car cela permet d'itérer sur les gros caches par pas tout en récupérant un nombre défini d'entrées par instance de verrou, ainsi les verrous sont libérés pour des activités ultérieures plutôt que de bloquer tout le cache pour récupérer (par défaut) 100 entrées. Aussi, l'utilisation d'expression régulière est plus réactive car l'implémentation a été faite au niveau C.

Synopsis de la classe

APCIterator implements Iterator , Traversable {
/* Méthodes */
__construct ( string $cache [, mixed $search = null [, int $format [, int $chunk_size = 100 [, int $list ]]]] )
public mixed current ( void )
public int getTotalCount ( void )
public int getTotalHits ( void )
public int getTotalSize ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void valid ( void )
}

APCIterator::__construct

(PECL apc >= 3.1.1)

APCIterator::__constructConstruit un objet d'itération APCIterator

Description

APCIterator::__construct ( string $cache [, mixed $search = null [, int $format [, int $chunk_size = 100 [, int $list ]]]] )

Construit un objet APCIterator.

Liste de paramètres

cache

Le type de cache, user ou file.

search

Une expression régulière PCRE pour établir la correspondance avec les clés APC. Peut être une string pour une expression régulière simple ou un array d'expressions régulières. Passez optionnellement NULL pour sauter la recherche.

format

Le format désiré, configuré à partir d'une ou plusieurs constantes APC_ITER_*.

chunk_size

La taille du segment. Doit être une valeur supérieure à 0. La valeur par défaut est 100.

list

Le type de liste. Passez APC_LIST_ACTIVE ou APC_LIST_INACTIVE.

Valeurs de retour

Un objet APCIterator en cas de succès, ou NULL si échec.

Voir aussi



APCIterator::current

(PECL apc >= 3.1.1)

APCIterator::currentRécupère l'élément en cours

Description

public mixed APCIterator::current ( void )

Récupère l'élément en cours dans la pile APCIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément en cours en cas de succès, ou FALSE si aucun élément supplémentaire n'existe ou en cas d'échec.

Voir aussi



APCIterator::getTotalCount

(PECL apc >= 3.1.1)

APCIterator::getTotalCountRécupère le nombre total d'éléments

Description

public int APCIterator::getTotalCount ( void )

Récupère le nombre total d'éléments.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre total d'éléments.

Voir aussi



APCIterator::getTotalHits

(PECL apc >= 3.1.1)

APCIterator::getTotalHitsRécupère le nombre total de cache hits

Description

public int APCIterator::getTotalHits ( void )

Récupère le nombre total de cache hits.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de hits en cas de succès, ou FALSE si échec.

Voir aussi



APCIterator::getTotalSize

(PECL apc >= 3.1.1)

APCIterator::getTotalSizeRécupère la taille totale du cache

Description

public int APCIterator::getTotalSize ( void )

Récupère la taille totale du cache.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille totale du cache.

Voir aussi



APCIterator::key

(PECL apc >= 3.1.1)

APCIterator::keyRécupère la clé de l'itérateur

Description

public string APCIterator::key ( void )

Récupère la clé de l'itérateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé en cas de succès, ou FALSE si échec.

Voir aussi



APCIterator::next

(PECL apc >= 3.1.1)

APCIterator::nextDéplace le pointeur vers l'élément suivant

Description

public void APCIterator::next ( void )

Déplace le pointeur vers l'élément suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



APCIterator::rewind

(PECL apc >= 3.1.1)

APCIterator::rewindRembobine l'itérateur

Description

public void APCIterator::rewind ( void )

Rembobine l'itérateur sur le premier élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



APCIterator::valid

(PECL apc >= 3.1.1)

APCIterator::validVérifie si la position actuelle de l'itérateur est valide

Description

public void APCIterator::valid ( void )

Vérifie si la position actuelle de l'itérateur est valide

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la position actuelle de l'itérateur est valide, sinon FALSE.

Voir aussi


Sommaire




Débogueur PHP avancé


Introduction

APD est un débogueur PHP avancé. Il a été écrit afin de fournir des possibilités de profilage et de déboguage pour le code PHP, mais aussi la possibilité d'afficher une trace complète. APD supporte le déboguage interactif, mais, par défaut, il écrit les données dans des fichiers de traces. Il fournit également des événements lors de la journalisation à différents niveaux (incluant les appels aux fonctions, les arguments passés, le temps passé, etc...) pouvant être activés ou non pour des scripts particuliers.

Attention

APD est une extension Zend, modifiant la façon dont les appels aux fonctions, en interne, s'effectue, et donc, peut ne pas être compatible avec les autres extensions Zend (par exemple, Zend Optimizer).



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/apd.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Dans votre fichier INI, ajoutez les lignes suivantes:

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

En fonction de votre compilation de PHP, la directive zend_extension peut prendre l'une des formes suivantes :

zend_extension              (non ZTS, non debug build)
zend_extension_ts           (    ZTS, non debug build)
zend_extension_debug        (non ZTS,     debug build)
zend_extension_debug_ts     (    ZTS,     debug build)



Building on Win32

Pour compiler APD sous Windows, vous devez installer un environnement de compilation PHP, tel que décrit sur http://php.net/ : en fait, vous avez besoin de Microsoft Visual C++, win32build.zip, bison/flex, et d'un peu de savoir-faire pour le faire fonctionner. De plus, assurez-vous que adp.dsp utilise les nouvelles lignes de format DOS; si c'est le format Unix, Microsoft Visual C++ va s'en plaindre.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration APD
Nom Défaut Modifiable Historique
apd.dumpdir NULL PHP_INI_ALL  
apd.statement_tracing "0" PHP_INI_ALL Disponible depuis apd 0.9.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

apd.dumpdir chaîne de caractères

Spécifie le dossier dans lequel APD écrit les fichiers de profilage. Vous pouvez spécifier un chemin absolu ou relatif.

Vous pouvez spécifier un dossier différent comme argument de apd_set_pprof_trace().

apd.statement_tracing booléen

Active ou désactive les traces à la ligne. En activant cette option (valeur de 1), l'application sera considérablement ralentie.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes APD
Constante Valeur Description
FUNCTION_TRACE (entier) 1  
ARGS_TRACE (entier) 2  
ASSIGNMENT_TRACE (entier) 4  
STATEMENT_TRACE (entier) 8  
MEMORY_TRACE (entier) 16  
TIMING_TRACE (entier) 32  
SUMMARY_TRACE (entier) 64  
ERROR_TRACE (entier) 128  
PROF_TRACE (entier) 256  
APD_VERSION (chaîne de caractères) exemple : 1.0.2-dev  


Exemples

Sommaire


Comment utiliser PHP-APD dans vos scripts

  1. À la première ligne de votre script PHP, appelez la fonction apd_set_pprof_trace() afin de commencer à enregistrer la trace :

    <?php
    apd_set_pprof_trace
    ();
    ?>

    Vous pouvez insérer la ligne n'importe où dans votre script, mais si vous ne commencez pas à enregistrer la trace au début de votre script, vous désactiverez les données du profile qui pourraient vous mener à trouver un goulot d'étranglement.

  2. Maintenant, exécutez votre script. L'affichage sera écrit dans le fichier apd.dumpdir/pprof_pid.ext.

    Astuce

    Si vous utilisez la version CGI de PHP, vous devrez utiliser l'option "-e" afin d'activer les informations étendues d'APD. Par exemple : php -e -f script.php

  3. Pour afficher les données formatées du profil, exécutez la commande pprofp avec les options de tri et d'affichage de votre choix. Le formatage de la sortie ressemblera à :

    bash-2.05b$ pprofp -R /tmp/pprof.22141.0
    
    Trace for /home/dan/testapd.php
    Total Elapsed Time = 0.00
    Total System Time  = 0.00
    Total User Time    = 0.00
    
    
    Real         User        System             secs/    cumm
    %Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
    --------------------------------------------------------------------------------------
    100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
    56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
    28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
    14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace
    

    L'option -R utilisé dans cet exemple trie la table de profil par la colonne "Real Time", représentant le temps mis par le script pour exécuter une fonction donnée. La colonne "cumm call" montre le nombre de fois que la fonction a été appelée et la colonne "s/call", le nombre de secondes chaque appel à la fonction nécessite, en moyenne.

  4. Pour générer un fichier "calltree" que vous pourrez importer dans l'application d'analyse de profil KCacheGrind, exécutez la commande pprof2calltree.




Fonctions APD

Informations de contact

Si vous avez des commentaires, des corrections de bogues ou si vous voulez développer des améliorations pour cette extension, vous pouvez envoyer un message à » apd@mail.communityconnect.com. Toute aide est vraiment la bienvenue.


apd_breakpoint

(PECL apd >= 0.2)

apd_breakpointStoppe l'interpréteur et attend un CR depuis la socket

Description

bool apd_breakpoint ( int $debug_level )

apd_breakpoint() peut être utilisé pour stopper l'exécution de votre script PHP et attend les réponses depuis la socket connectée. Pour reprendre l'exécution du programme, appuyez juste sur enter (une ligne vide) ou entrez une commande PHP à exécuter.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Session typique utilisant tcplisten

bash#tcplisten localhost 7777

APD - Advanced PHP Debugger Trace File
---------------------------------------------------------------------------
Process Pid (6118)
Trace Begun at Sun Mar 10 23:13:12 2002
---------------------------------------------------------------------------
(  0.000000): apd_set_session_trace called at /home/alan/Projects/project2/test. 
php:5
(  0.074824): apd_set_session_trace_socket() at /home/alan/Projects/project2/tes 
t.php:5 returned.  Elapsed (0.074824)
(  0.074918): apd_breakpoint() /home/alan/Projects/project2/test.php:7
              ++ argv[0] $(??) = 9
apd_breakpoint() at /home/alan/Projects/project2/test.php:7 returned.  Elapsed ( 
-2089521468.1073275368)
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:10
>apd_echo($i);
EXEC: apd_echo($i);
0
>apd_echo(serialize(apd_get_active_symbols()));
EXEC:  apd_echo(serialize(apd_get_active_symbols()));
a:47:{i:0;s:4:"PWD";i:1;s:10:"COLORFGBG";i:2;s:11:"XAUTHORITY";i:3;s:14:"
COLORTERM_BCE";i:4;s:9:"WINDOWID";i:5;s:14:"ETERM_VERSION";i:6;s:16:"SE
SSION_MANAGER";i:7;s:4:"PS1";i:8;s:11:"GDMSESSION";i:9;s:5:"USER";i:10;s:5:"
MAIL";i:11;s:7:"OLDPWD";i:12;s:5:"LANG";i:13;s:10:"COLORTERM";i:14;s:8:"DISP
LAY";i:15;s:8:"LOGNAME";i:16;s:6:"
>apd_echo(system('ls /home/mydir'));

>apd_continue(0);



apd_callstack

(PECL apd 0.2-0.4)

apd_callstackRetourne la pile d'appel courante dans un tableau

Description

array apd_callstack ( void )

apd_callstack() retourne la pile d'appel courante dans un tableau d'éléments.

Valeurs de retour

Un tableau contenant la pile d'appel courante.

Exemples

Exemple #1 Exemple avec apd_callstack()

<?php
print_r
(apd_callstack());
?>



apd_clunk

(PECL apd 0.2-0.4)

apd_clunkLance une alerte et un callstack

Description

void apd_clunk ( string $warning [, string $delimiter ] )

apd_clunk() fonctionne de la même façon que son homologue Perl Carp::cluck. apd_clunk() lance une alerte et un callstack en utilisant le paramètre delimiter comme délimiteur.

Liste de paramètres

warning

L'alerte à lancer.

delimiter

Le délimiteur. Par défaut, <BR />.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_clunk()

<?php
apd_clunk
("Quelques alertes""<br/>");
?>

Voir aussi



apd_continue

(PECL apd >= 0.2)

apd_continueRedémarre l'interpréteur

Description

bool apd_continue ( int $debug_level )

apd_continue() envoie une instruction via la socket pour redémarrer l'interpréteur.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apd_continue()

<?php
apd_continue
(0);
?>



apd_croak

(PECL apd 0.2-0.4)

apd_croakLance une erreur, un callstack et sort

Description

void apd_croak ( string $warning [, string $delimiter ] )

apd_croak() fonctionne comme son homologue Perl Carp::croak. apd_croak() lance une erreur, un callstack et sort.

Liste de paramètres

warning

L'alerte à lancer.

delimiter

Le délimiteur. Par défaut, <BR />.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_croak()

<?php
apd_croak
("Quelques alertes","<P>");
?>

Voir aussi



apd_dump_function_table

(Unknown)

apd_dump_function_tableAffiche la table courante de fonction

Description

void apd_dump_function_table ( void )

apd_dump_function_table() affiche la table courante de fonction.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_dump_function_table()

<?php
apd_dump_function_table
();
?>



apd_dump_persistent_resources

(PECL apd 0.2-0.4)

apd_dump_persistent_resourcesRetourne toutes les ressources persistantes dans un tableau

Description

array apd_dump_persistent_resources ( void )

apd_dump_persistent_resources() retourne toutes les ressources persistantes dans un tableau.

Valeurs de retour

Un tableau contenant toutes les ressources persistantes.

Exemples

Exemple #1 Exemple avec apd_dump_persistent_resources()

<?php
print_r
(apd_dump_persistent_resources());
?>

Voir aussi



apd_dump_regular_resources

(PECL apd 0.2-0.4)

apd_dump_regular_resourcesRetourne toutes les ressources régulières courantes dans un tableau

Description

array apd_dump_regular_resources ( void )

Retourne toutes les ressources régulières courantes dans un tableau.

Valeurs de retour

Un tableau contenant les ressources régulières courantes.

Exemples

Exemple #1 Exemple avec apd_dump_regular_resources()

<?php
print_r
(apd_dump_regular_resources());
?>

Voir aussi



apd_echo

(PECL apd >= 0.2)

apd_echoÉcrit dans la socket de déboguage

Description

bool apd_echo ( string $output )

apd_echo() envoie via la socket une demande d'information concernant le script exécuté.

Liste de paramètres

output

La variable de déboguage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apd_echo()

<?php
apd_echo
($i);
?>



apd_get_active_symbols

(PECL apd 0.2)

apd_get_active_symbolsRécupère un tableau contenant les noms des variables courantes de portée locale

Description

array apd_get_active_symbols ( void )

apd_get_active_symbols() récupère les noms de toutes les variables définies dans le contexte actif (et non leurs valeurs).

Valeurs de retour

Un tableau multidimensionnel contenant toutes les variables.

Exemples

Exemple #1 Exemple avec apd_get_active_symbols()

<?php
apd_echo
(apd_get_active_symbols());
?>



apd_set_pprof_trace

(PECL apd >= 0.2)

apd_set_pprof_traceDémarre la session de déboguage APD

Description

string apd_set_pprof_trace ([ string $dump_directory [, string $fragment = "pprof" ]] )

Démarre la session de déboguage dans le dossier dump_directory/pprof_{process_id}.

Liste de paramètres

dump_directory

Le dossier dans lequel le fichier sera écrit. S'il n'est pas fourni, la directive apd.dumpdir du php.ini sera utilisée.

fragment

Valeurs de retour

Retourne le chemin du fichier de destination.

Exemples

Exemple #1 Exemple avec apd_set_pprof_trace()

<?php
apd_set_pprof_trace
();
?>

Voir aussi



apd_set_session_trace_socket

(PECL apd >= 0.2)

apd_set_session_trace_socketDémarre la session de déboguage à distance

Description

bool apd_set_session_trace_socket ( string $tcp_server , int $socket_type , int $port , int $debug_level )

apd_set_session_trace_socket() se connecte au serveur TCP (e.g. tcplisten) spécifié par l'IP ou la socket Unix (comme un fichier) et envoie des données de déboguage à la socket.

Liste de paramètres

tcp_server

IP ou socket Unix (comme un fichier) du serveur TCP.

socket_type

Peut prendre les valeurs des constantes AF_UNIX, pour une socket à base de fichiers, ou APD_AF_INET, pour des sockets TCP/IP standard.

port

Vous pouvez utiliser n'importe quel port, mais les numéros de port les plus élevés sont plus recommandés que les moins élevés, qui risquent d'être utilisés par d'autres services du système.

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apd_set_socket_session_trace()

<?php
  apd_set_socket_session_trace
("127.0.0.1",APD_AF_INET,7112,0);
?>



apd_set_session_trace

(PECL apd 0.2-0.4)

apd_set_session_traceDémarre la session de déboguage APD

Description

void apd_set_session_trace ( int $debug_level [, string $dump_directory ] )

Démarre le déboguage de apd_dump_{process_id} dans le dossier dump_directory.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

dump_directory

Le dossier dans lequel le fichier sera écrit. S'il n'est pas défini, la valeur du paramètre de configuration apd.dumpdir du php.ini sera utilisée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_set_session_trace()

<?php
apd_set_session_trace
(99);
?>



apd_set_session

(PECL apd 0.2-0.4)

apd_set_sessionModifie ou définit le degré de déboguage courant

Description

void apd_set_session ( int $debug_level )

apd_set_session() peut être utilisé pour augmenter ou diminuer le degré de déboguage dans un endroit particulier de votre application.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_set_session()

<?php
apd_set_session
(9);
?>



override_function

(PECL apd >= 0.2)

override_functionSurcharge les fonctions intégrées

Description

bool override_function ( string $function_name , string $function_args , string $function_code )

override_function() surcharge les fonctions intégrées (les remplace dans la table des symboles).

Liste de paramètres

function_name

La fonction à surcharger.

function_args

Les arguments de la fonction, séparés par une virgule.

Habituellement, vous voudriez passer ce paramètre, tout comme le paramètre function_code, délimité par un guillemet simple. La raison pour laquelle on utilise un guillemet simple est pour protéger le nom de la variable lors de l'analyse, sinon, si vous utilisez des guillemets doubles, il devient nécessaire d'échapper le nom de la variable, e.g. \$votre_variable.

function_code

Le nouveau code pour la fonction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec override_function()

<?php
override_function
('test''$a,$b''echo "DOING TEST"; return $a * $b;');
?>



rename_function

(PECL apd >= 0.2)

rename_functionRenomme une fonction intégrée dans la table des fonctions globales

Description

bool rename_function ( string $original_name , string $new_name )

rename_function() renomme une fonction intégrée dans la table des fonctions globales. Utile pour surcharger temporairement une fonction intégrée.

Liste de paramètres

original_name

Le nom original de la fonction.

new_name

Le nouveau nom pour la fonction original_name.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rename_function()

<?php
rename_function
('mysql_connect''debug_mysql_connect' );
?>


Sommaire




Compilateur bytecode PHP


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Bcompiler a été écrit pour diverses raisons :

  • Pour encoder un script entier dans une application PHP propriétaire
  • Pour encoder quelques fonctions / classes dans une application PHP propriétaire
  • Pour activer la production d'applications php-gtk qui peuvent être utilisées dans des applications bureautiques, sans avoir besoin d'un php.exe.
  • Pour faire la transition facilement du PHP au C
La première des raisons est possible en utilisant les fonctions bcompiler_write_header(), bcompiler_write_file() et bcompiler_write_footer(). Les fichiers bytecode peuvent être écrits compressés ou non. Pour utiliser le bytecode généré, vous pouvez simplement l'inclure grâce aux instructions include ou require.

La deuxième raison est possible en utilisant les fonctions bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), et bcompiler_load(). Les fichiers bytecode peuvent être écrits compressés ou non. La fonction bcompiler_load() lit le fichier bytecode compressé, qui représente un tiers de la taille du fichier original.

Pour créer les fichiers de type EXE, bcompiler doit être utilisé avec un fichier sapi modifié ou une version de PHP qui a été compilé en tant que bibliothèque partagé. Dans ce cas, bcompiler lit le bytecode compressé depuis la fin du fichier EXE.

Bcompiler peut améliorer les performances d'environ 30% lors de l'utilisation de bytecode non compressé uniquement. Mais garder à l'esprit que le bytecode non compressé peut représenter une taille 5 fois plus large que le code source original. L'utilisation de bytecode compressé prendra moins de place, mais la décompression nécessite plus de temps que d'analyser le code source. De plus, Bcompiler n'effectue aucune optimisation du bytecode. Cette fonctionnalité devrait être ajoutée dans les futures versions...

D'un point de vue de la protection du code, l'on peut dire qu'il est absolument impossible de recréer le code source exact, tel qu'à l'origine, et sans les commentaires originaux. Cependant, il est possible de récupérer les données depuis un fichier bytecode Bcompiler - de ce fait, n'y incluez pas vos mots de passes personnels.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/bcompiler.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions bcompiler

Contact

Si vous avez des commentaires, des corrections de bogues, des améliorations ou que vous voulez aider à rendre cette extension meilleure, vous pouvez envoyer un message à » alan_k@php.net. Toute aide est vraiment la bienvenue.


bcompiler_load_exe

(PECL bcompiler >= 0.4)

bcompiler_load_exeLit et crée des classes depuis un fichier exe bcompiler

Description

bool bcompiler_load_exe ( string $filename )

Lit les données depuis le fichier exe bcompiler appelé filename et crée les classes à partir du bytecode.

Liste de paramètres

filename

Le chemin vers le fichier exe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_load_exe()

<?php

bcompiler_load_exe
("/tmp/example.exe");
print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_load() - Lit et crée les classes depuis un fichier compressé en bzip2



bcompiler_load

(PECL bcompiler >= 0.4)

bcompiler_loadLit et crée les classes depuis un fichier compressé en bzip2

Description

bool bcompiler_load ( string $filename )

Lit les données depuis le fichier compressé en bzip2 filename et crée les classes depuis le bytecode.

Liste de paramètres

filename

Le chemin vers le fichier compressé avec bzip2, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_load()

<?php

bcompiler_load
("/tmp/example");

print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Utiliser les instructions include() ou require() pour analyser les bytecodes : c'est plus portable et plus commode que d'utiliser cette fonction.

Notez que cette fonction n'exécute pas le corps du script contenu dans le fichier bytecode.

Voir aussi



bcompiler_parse_class

(PECL bcompiler >= 0.4)

bcompiler_parse_classLit le bytecode d'une classe et revient à une fonction utilisateur

Description

bool bcompiler_parse_class ( string $class , string $callback )

Lit le bytecode d'une classe et revient à une fonction utilisateur.

Liste de paramètres

class

Le nom de la classe, sous la forme d'une chaîne de caractères.

callback

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_parse_class()

<?php

function readByteCodes($data) {
    
print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Cette fonction a été supprimée de bcompiler et n'est plus disponible depuis bcompiler 0.5.



bcompiler_read

(PECL bcompiler >= 0.4)

bcompiler_readLit et crée les classes depuis un pointeur de fichier

Description

bool bcompiler_read ( resource $filehandle )

Lit les données depuis un fichier ouvert représenté par la ressource filehandle et crée les classes depuis le bytecode.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_read()

<?php
$fh 
fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Utiliser les instructions include() ou require() pour analyser les bytecodes : c'est plus portable et plus commode que d'utiliser cette fonction.

Notez que cette fonction n'exécute pas le corps du script contenu dans le fichier bytecode.



bcompiler_write_class

(PECL bcompiler >= 0.4)

bcompiler_write_classÉcrit une classe définie en bytecode

Description

bool bcompiler_write_class ( resource $filehandle , string $className [, string $extends ] )

Lit le bytecode d'une classe existante nommée className depuis PHP et l'écrit dans le fichier ouvert désigné par la ressource filehandle.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

className

Le nom de la classe, sous la forme d'une chaîne de caractères.

extends

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_class()

<?php
$fh 
fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// vous devez écrire DB_common avant DB_mysql, car DB_mysql étend DB_common.
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Cette fonction n'effectue pas de vérification sur les dépendances, assurez-vous donc d'écrire les classes dans l'ordre pour éviter d'avoir une alerte du genre 'undefined class' lorsque vous les chargerez.

Voir aussi



bcompiler_write_constant

(PECL bcompiler >= 0.5)

bcompiler_write_constantÉcrit une constante définie comme bytecode

Description

bool bcompiler_write_constant ( resource $filehandle , string $constantName )

Lit le bytecode depuis PHP pour une constante existante constantName et écrit le bytecode dans le fichier ouvert désigné par filehandle.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

constantName

Le nom de la constante définie, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_constant()

<?php
define
("MODULE_MAX"30);

$fh fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_constant($fh,"MODULE_MAX");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi




bcompiler_write_file

(PECL bcompiler >= 0.6)

bcompiler_write_fileÉcrit un code source PHP sous forme de bytecode

Description

bool bcompiler_write_file ( resource $filehandle , string $filename )

Cette fonction compile le fichier filename en bytecodes, et écrit le résultat dans le fichier filename.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

filename

Le chemin vers le fichier source, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_file()

<?php
$fh 
fopen("example.phb""w");
bcompiler_write_header($fh);
bcompiler_write_file($fh"example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* Ce qui suit doit être équivalent :
include "example.php";
   et
include "example.phb";
*/
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi




bcompiler_write_function

(PECL bcompiler >= 0.5)

bcompiler_write_functionÉcrit une fonction définie sous forme de bytecode

Description

bool bcompiler_write_function ( resource $filehandle , string $functionName )

Lit le bytecode d'une fonction existante depuis PHP et l'écrit dans le fichier désigné par la ressource de fichier filehandle. L'ordre n'est pas important (e.g. si la fonction b utilise la fonction a et que vous compilez l'exemple ci-dessous, cela fonctionnera très bien).

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

functionName

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_function()

<?php
$fh 
fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_function($fh,"my_function_a");
bcompiler_write_function($fh,"my_function_b");
bcompiler_write_footer($fh);
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



bcompiler_write_functions_from_file

(PECL bcompiler >= 0.5)

bcompiler_write_functions_from_fileÉcrit toutes les fonctions définies dans un fichier sous forme de bytecode

Description

bool bcompiler_write_functions_from_file ( resource $filehandle , string $fileName )

Recherche toutes les fonctions déclarées dans le fichier nommé fileName et écrit leurs bytecodes correspondants dans le fichier désigné par la ressource filehandle.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

fileName

Le fichier à compiler. Souvenez-vous de toujours include/require les fichiers que vous tentez de compiler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_functions_from_file()

<?php
require('module.php');

$fh fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_functions_from_file($fh,'module.php');
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



bcompiler_write_header

(PECL bcompiler >= 0.3)

bcompiler_write_headerÉcrit l'en-tête bcompiler

Description

bool bcompiler_write_header ( resource $filehandle [, string $write_ver ] )

Écrit l'en-tête bcompiler.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

write_ver

Peut être utilisé pour écrire le bytecode dans un format utilisé précédemment, vous pouvez donc l'utiliser avec les anciennes versions de bcompiler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_header()

<?php
$fh 
fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



bcompiler_write_included_filename

(PECL bcompiler >= 0.5)

bcompiler_write_included_filenameÉcrit un fichier inclus en tant que bytecode

Description

bool bcompiler_write_included_filename ( resource $filehandle , string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Sommaire




Gestion des erreurs et des journaux


Introduction

Voici des fonctions gérant les erreurs et les journaux. Elles vous permettent de définir vos propres règles de gestion des erreurs, mais aussi la façon dont les erreurs sont enregistrées ; ceci afin de répondre à vos besoins particuliers.

Avec les fonctions de journal, vous pouvez envoyer des messages directement à d'autres machines (ou des emails avec une passerelles), vers les logs du système, etc..., ainsi, vous pouvez sélectionner les messages et surveiller les parties les plus importantes de vos applications et de vos sites web.

Les fonctions sur le rapport d'erreurs vous permettent de personnaliser le degré et les erreurs désirées, en les catégorisant comme simple avertissement jusqu'à l'exécution de fonctions personnalisées lorsque des erreurs surviennent.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour la gestion d'erreurs
Nom Défaut Modifiable Historique
error_reporting NULL PHP_INI_ALL  
display_errors "1" PHP_INI_ALL  
display_startup_errors "0" PHP_INI_ALL  
log_errors "0" PHP_INI_ALL  
log_errors_max_len "1024" PHP_INI_ALL Disponible depuis PHP 4.3.0.
ignore_repeated_errors "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
ignore_repeated_source "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
report_memleaks "1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
track_errors "0" PHP_INI_ALL  
html_errors "1" PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors "0" PHP_INI_SYSTEM Disponible depuis PHP 4.1.0.
xmlrpc_error_number "0" PHP_INI_ALL Disponible depuis PHP 4.1.0.
docref_root "" PHP_INI_ALL Disponible depuis PHP 4.3.0.
docref_ext "" PHP_INI_ALL Disponible depuis PHP 4.3.2.
error_prepend_string NULL PHP_INI_ALL  
error_append_string NULL PHP_INI_ALL  
error_log NULL PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

error_reporting integer

Fixe le niveau d'erreur. Ce paramètre est un entier, représentant un champ de bits. Ajoutez les valeurs suivantes pour choisir le niveau que vous désirez, telles que décrites dans la section Constantes pré-définies, et dans le fichier php.ini. Pour modifier cette configuration durant l'exécution du script, utilisez la fonction error_reporting(). Voyez aussi la directive display_errors.

En PHP 4 et PHP 5, la configuration par défaut est E_ALL & ~E_NOTICE. Elle montre toutes les erreurs, sauf les E_NOTICE. Il est recommandé de les afficher durant le développement.

Note:

Activer le rapport d'erreur de niveau E_NOTICE durant le développement a des avantages. En terme de déboguage, les message d'alertes vous signalent des bogues potentiels dans votre code. Par exemple, l'utilisation de valeurs non initialisées est signalée. Il est aussi plus pratique pour trouver des coquilles, et, ainsi, gagner du temps. Les messages NOTICE vous signaleront aussi les mauvaises pratiques de codage. Par exemple $arr[item] doit toujours être écrit $arr['item'] car PHP va considérer "item" comme une constante, au premier abord. Si cette constante n'est pas définie, alors il va l'utiliser comme une chaîne.

Note:

En PHP 5, un nouveau niveau d'erreur nommé E_STRICT est disponible. Comme E_STRICT n'est pas inclus sans E_ALL, vous devez explicitement activer ce niveau d'erreur. Activer E_STRICT pendant le développement peut être bénéfique. Les messages STRICT vous aideront à utiliser la dernière et meilleure suggestion de méthode de codage, par exemple, vous alertera de l'utilisation de fonctions non recommandées.

Note: Les constantes PHP en dehors de PHP

L'utilisation des constantes PHP en dehors de PHP, comme dans le fichier httpd.conf, n'a pas de signification utile mise à part dans les cas où des valeurs entières sont nécessaires. Et depuis que les niveaux d'erreurs ont été ajoutés, la valeur maximale (pour E_ALL) devrait changée. Donc, à la place de E_ALL, utilisez plutôt une valeur plus grande pour couvrir tous les octets, une valeur numérique comme 2147483647 (incluant toutes les erreurs, et non juste les erreurs de type E_ALL).

display_errors string

Cette directive détermine si les erreurs doivent être affichées à l'écran ou non.

La valeur "stderr" envoie les erreurs vers stderr plutôt que vers stdout. La valeur est disponible depuis PHP 5.2.4. Dans les anciennes versions, cette directive était du type boolean.

Note:

C'est une directive nécessaire en développement mais qui ne doit jamais être utilisée sur un système en production. (e.g. systèmes connectés à Internet).

Note:

Bien que display_errors peut être défini en cours d'exécution (avec la fonction ini_set()), il n'aura aucun effet si le script a des erreurs fatales, car l'action désirée au moment de l'exécution ne sera pas exécutée.

display_startup_errors boolean

Même si display_errors est activé, des erreurs peuvent survenir lors de la séquence de démarrage de PHP, et ces erreurs sont cachées. Avec cette option, vous pouvez les afficher, ce qui est recommandé pour le déboguage. En dehors de ce cas, il est fortement recommandé de laisser display_startup_errors à off.

log_errors boolean

Indique où les messages d'erreur générés doivent être écrits : dans l'historique du serveur ou dans error_log. Cette fonction est spécifique aux serveurs.

Note:

Il est recommandé d'utiliser l'historique d'erreur, plutôt que d'afficher les erreurs sur les sites de production.

log_errors_max_len integer

Configure la taille maximale des erreurs qui seront enregistrées dans l'historique, en kilo octets. Dans les informations de error_log, l'origine est ajoutée. La valeur par défaut est de 1024. 0 signifie qu'il n'y a pas de limite de taille. Cette longueur est appliquée pour enregistrer dans l'historique les erreurs, afficher les erreurs et également à $php_errormsg.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..
ignore_repeated_errors boolean

Ne pas enregistrer des messages répétitifs. Les erreurs répétées doivent survenir au même moment, à la même ligne et depuis le même fichier de script, à moins que ignore_repeated_source soit défini à TRUE.

ignore_repeated_source boolean

Ignore la source du message lors des messages répétés. Lorsque vous avez configuré cette option à On, vous n'enregistrerez pas les erreurs répétées provenant de fichiers et lignes de code différents.

report_memleaks boolean

Si ce paramètre est défini à On (par défaut), il affichera un rapport de fuite mémoire détectée par le gestionnaire de mémoire Zend. Ce rapport sera envoyé à stderr sur les plate-formes Posix. Sous Windows, il sera envoyé au débogueur en utilisant OutputDebugString(), et pourra être lu avec des outils comme » DbgView. Ce paramètre n'a d'effet que lors d'une compilation de débogage, et si error_reporting inclut E_WARNING dans sa liste autorisée.

track_errors boolean

Si cette option est activée, le dernier message d'erreur sera placé dans la variable $php_errormsg.

html_errors boolean

Désactive les balises HTML dans les messages d'erreurs. Le nouveau format d'erreurs HTML fournit des messages avec liens hypertexte, qui redirige l'utilisateur vers la documentation de l'erreur ou de la fonction. Ces références sont affectées par docref_root et docref_ext.

xmlrpc_errors boolean

Désactive le rapport normal d'erreur et formate les erreurs comme des messages d'erreur XML-RPC.

xmlrpc_error_number integer

Utilisé comme valeur de l'élément XML-RPC faultcode.

docref_root string

Le nouveau format d'erreur contient une référence à une page décrivant l'erreur, ou la fonction ayant causé l'erreur. Pour le manuel, vous pouvez télécharger ce dernier dans votre langue, et configurer cette option pour qu'elle pointe sur lui. Si votre copie du manuel est accessible à "/manual/", vous pouvez simplement utiliser docref_root=/manual/. De plus, vous devez configurer docref_ext pour qu'elle corresponde aux extensions de votre manuel. docref_ext=.html. Il est possible d'utiliser des références externes. Par exemple, vous pouvez utiliser docref_root=http://manual/en/ ou docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon&url=http%3A%2F%2Fwww.php.net%2F"

La plupart du temps, vous utilisez l'option docref_root avec un slash a la fin ("/"). Mais ce n'est pas obligatoire, comme le montre le second exemple ci-dessus.

Note:

Cette directive est destiné à vous aider dans votre développement en rendant facile la consultation de la description d'une fonction. Ne jamais l'utiliser sur un système de production (e.g. système connecté à Internet).

docref_ext string

Voir aussi docref_root.

Note:

La valeur de docref_ext doit commencer par un point ".".

error_prepend_string string

La chaîne à placer avant les messages d'erreur.

error_append_string string

La chaîne à placer après les messages d'erreur.

error_log string

Nom du fichier où seront enregistrées les erreurs. Le fichier doit être accessible en écriture par l'utilisateur exécutant le serveur web. Si la valeur spéciale syslog est utilisée, les erreurs seront envoyées au système d'historique du serveur. Sous Unix, cela correspond à syslog(3) et sous Windows NT, à l'historique d'événement. L'historique n'est pas supporté sous Windows 95. Voir aussi : syslog(). Si cette directive n'est pas fixée, les erreurs sont envoyées au journal d'erreurs SAPI. Par exemple, s'il s'agit d'une erreur de journal dans Apache ou stderr dans CLI.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Note: Vous pouvez utiliser ces constantes dans le fichier php.ini mais pas hors de PHP, comme dans le fichier httpd.conf, où vous devez utiliser les valeurs des champs de bits.

Erreurs et historique
Valeur Constante Description Note
1 E_ERROR (entier) Les erreurs sont aussi affichées par défaut, et l'exécution du script est interrompue. Elles indiquent des erreurs qui ne peuvent pas être ignorées, comme des problèmes d'allocation de mémoire, par exemple.  
2 E_WARNING (entier) Les alertes sont affichées par défaut, mais n'interrompent pas l'exécution du script. Elles indiquent un problème qui doit être intercepté par le script durant l'exécution du script. Par exemple, appeler ereg() avec une expression rationnelle invalide.  
4 E_PARSE (entier) Les erreurs d'analyse ne doivent être générées que par l'analyseur. Elles ne sont citées ici que dans le but d'être exhaustif.  
8 E_NOTICE (entier) Les remarques ne sont pas affichées par défaut, et indiquent que le script a rencontré quelque chose qui peut être une erreur, mais peut aussi être un événement normal dans la vie du script. Par exemple, essayer d'accéder à une valeur qui n'a pas été déclarée, ou appeler stat() sur un fichier qui n'existe pas.  
16 E_CORE_ERROR (entier) Elles sont similaires aux erreurs E_ERROR, mais elles sont générées par le code source de PHP. Les fonctions ne doivent pas générer ce genre d'erreur.  
32 E_CORE_WARNING (entier) Elles sont similaires à E_WARNING, mais elles sont générées par le code source de PHP. Les fonctions ne doivent pas générer ce genre d'erreur.  
64 E_COMPILE_ERROR (entier) Elles sont similaires à E_ERROR, mais elles sont générées par le moteur Zend. Les fonctions ne doivent pas générer ce genre d'erreur.  
128 E_COMPILE_WARNING (entier) Elles sont similaires à E_WARNING, mais elles sont générées par le moteur Zend. Les fonctions ne doivent pas générer ce genre d'erreur.  
256 E_USER_ERROR (entier) Message d'erreur généré par l'utilisateur. Comparable à E_ERROR. Elle est générée par le programmeur en PHP par l'utilisation de la fonction trigger_error(). Les fonctions de PHP ne doivent pas générer ce genre d'erreur.  
512 E_USER_WARNING (entier) Message d'erreur généré par l'utilisateur. Comparable à E_WARNING. Elle est générée par le programmeur en PHP par l'utilisation de la fonction trigger_error(). Les fonctions de PHP ne doivent pas générer ce genre d'erreur.  
1024 E_USER_NOTICE (entier) Message d'erreur généré par l'utilisateur. Comparable à E_NOTICE. Elle est générée par le programmeur en PHP par l'utilisation de la fonction trigger_error(). Les fonctions de PHP ne doivent pas générer ce genre d'erreur.  
2048 E_STRICT (entier) Permet d'obtenir des suggestions de PHP pour modifier votre code, assurant ainsi une meilleure interopérabilité et compatibilité de celui-ci. Depuis PHP 5
4096 E_RECOVERABLE_ERROR (entier) Erreur fatale qui peut être captée. Ceci indique qu'une erreur probablement dangereuse s'est produite, mais n'a pas laissé le moteur Zend dans un état instable. Si l'erreur n'est pas attrapée par un gestionnaire d'erreur défini par l'utilisateur (voyez aussi set_error_handler(), l'application arrête prématurément comme si cela était une E_ERROR. Depuis PHP 5.2.0
8192 E_DEPRECATED (entier) Alertes d'exécution. Activer cette option pour recevoir des alertes sur les portions de votre code qui pourraient ne pas fonctionner avec les futures versions. Depuis PHP 5.3.0
16384 E_USER_DEPRECATED (entier) Message d'alerte généré par l'utilisateur. Fonctionne de la même façon que E_DEPRECATED, mise à part que le message est généré par votre code PHP en utilisant la fonction trigger_error(). Depuis PHP 5.3.0
30719 E_ALL (entier) Toutes les erreurs et alertes supportées sauf le niveau E_STRICT. 30719 en PHP 5.3.x, 6143 en PHP 5.2.x, et 2047 auparavant

Les valeurs ci-dessus (numérique ou symbolique) sont utilisées pour constituer des champs de bits, qui spécifient le niveau de rapport d'erreur. Vous pouvez utiliser les opérateurs de bits pour combiner ces valeurs pour en faire des masques qui filtrent certaines erreurs. Notez bien que seuls '|', '~', '!', '^' et '&' seront compris dans le fichier php.ini.



Exemples

Ci-dessous, vous trouverez un exemple de gestion des erreurs par PHP. Il y est défini un gestionnaire d'erreur, qui enregistre les informations dans un fichier (au format XML), et envoie un courriel au développeur si l'erreur est critique.

Exemple #1 Gestion d'erreurs avancées en PHP

<?php
// Nous allons faire notre propre gestion
error_reporting(0);

// Fonction spéciale de gestion des erreurs
function userErrorHandler($errno$errmsg$filename$linenum$vars)
{
    
// Date et heure de l'erreur
    
$dt date("Y-m-d H:i:s (T)");

    
// Définit un tableau associatif avec les chaînes d'erreur
    // En fait, les seuls niveaux qui nous interessent
    // sont E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING et E_USER_NOTICE
    
$errortype = array (
                
E_ERROR              => 'Erreur',
                
E_WARNING            => 'Alerte',
                
E_PARSE              => 'Erreur d\'analyse',
                
E_NOTICE             => 'Note',
                
E_CORE_ERROR         => 'Core Error',
                
E_CORE_WARNING       => 'Core Warning',
                
E_COMPILE_ERROR      => 'Compile Error',
                
E_COMPILE_WARNING    => 'Compile Warning',
                
E_USER_ERROR         => 'Erreur spécifique',
                
E_USER_WARNING       => 'Alerte spécifique',
                
E_USER_NOTICE        => 'Note spécifique',
                
E_STRICT             => 'Runtime Notice',
                
E_RECOVERABLE_ERROR => 'Catchable Fatal Error'
                
);
    
// Les niveaux qui seront enregistrés
    
$user_errors = array(E_USER_ERRORE_USER_WARNINGE_USER_NOTICE);
    
    
$err "<errorentry>\n";
    
$err .= "\t<datetime>" $dt "</datetime>\n";
    
$err .= "\t<errornum>" $errno "</errornum>\n";
    
$err .= "\t<errortype>" $errortype[$errno] . "</errortype>\n";
    
$err .= "\t<errormsg>" $errmsg "</errormsg>\n";
    
$err .= "\t<scriptname>" $filename "</scriptname>\n";
    
$err .= "\t<scriptlinenum>" $linenum "</scriptlinenum>\n";

    if (
in_array($errno$user_errors)) {
        
$err .= "\t<vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>\n";
    }
    
$err .= "</errorentry>\n\n";
    
    
// sauvegarde de l'erreur, et mail si c'est critique
    
error_log($err3"/usr/local/php4/error.log");
    if (
$errno == E_USER_ERROR) {
        
mail("phpdev@example.com","Critical User Error",$err);
    }
}


function 
distance($vect1$vect2)
{
    if (!
is_array($vect1) || !is_array($vect2)) {
        
trigger_error("Incorrect parameters, arrays expected"E_USER_ERROR);
        return 
NULL;
    }

    if (
count($vect1) != count($vect2)) {
        
trigger_error("Vectors need to be of the same size"E_USER_ERROR);
        return 
NULL;
    }

    for (
$i=0$i<count($vect1); $i++) {
        
$c1 $vect1[$i]; $c2 $vect2[$i];
        
$d 0.0;
        if (!
is_numeric($c1)) {
            
trigger_error("Coordinate $i in vector 1 is not a number, using zero"
                            
E_USER_WARNING);
            
$c1 0.0;
        }
        if (!
is_numeric($c2)) {
            
trigger_error("Coordinate $i in vector 2 is not a number, using zero"
                            
E_USER_WARNING);
            
$c2 0.0;
        }
        
$d += $c2*$c2 $c1*$c1;
    }
    return 
sqrt($d);
}

$old_error_handler set_error_handler("userErrorHandler");

// constante non définie, qui génère une alerte
$t I_AM_NOT_DEFINED;

// définition de quelques vecteurs
$a = array (23"foo");
$b = array (5.54.3, -1.6);
$c = array (1, -3);

// génère une erreur utilisateur
$t1 distance ($c$b)."\n";

// génère une erreur utilisateur
$t2 distance ($b"i am not an array")."\n";

// Génère une alerte
$t3 distance ($a$b)."\n";

?>



Fonctions sur la gestion des erreurs

Voir aussi

Voir aussi la fonction syslog().


debug_backtrace

(PHP 4 >= 4.3.0, PHP 5)

debug_backtraceGénère le contexte de déboguage

Description

array debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] )

debug_backtrace() génère un contexte de déboguage PHP.

Liste de paramètres

options

Depuis PHP 5.3.6, ce paramètre est un masque d'options suivantes :

Options pour la fonction debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT Si l'on doit ou non peupler l'index "object".
DEBUG_BACKTRACE_IGNORE_ARGS Si l'on doit ou non omettre l'index "args" et donc tous les arguments de la méthode pour économiser de la mémoire.
Avant PHP 5.3.6, les seules valeurs reconnues étaient TRUE ou FALSE, ce qui revenait à définir ou non l'option DEBUG_BACKTRACE_PROVIDE_OBJECT.

limit

Depuis 5.4.0, ce paramètre peut être utilisé pour limiter le nombre de trames dans la pile retournée. Par défaut, (limit=0), la fonction retourne toutes les trames de la pile.

Valeurs de retour

Retourne un tableau associatif. Les éléments de retour possibles sont les suivants :

Éléments possibles de retour de la fonction debug_backtrace()
Nom Type Description
function chaîne de caractères Le nom de la fonction courante. Voir aussi __FUNCTION__.
line entier Le numéro de la ligne courante. Voir aussi __LINE__.
file string Le nom du fichier courant. Voir aussi __FILE__.
class string Le nom courante de la classe. Voir aussi __CLASS__
object object L'objet courant.
type string Le type de classe courante. Si une méthode est appelée, "->" est retourné. Si une méthode statique est appelé, "::" est retourné. Si une fonction est appelée, rien ne sera retourné.
args array Si à l'intérieur d'une fonction, ceci liste des arguments. Si dans un fichier inclus, ceci liste des fichiers inclus.

Historique

Version Description
5.3.6 Le paramètre provide_object a été modifié en options et d'autres options DEBUG_BACKTRACE_IGNORE_ARGS ont été ajoutées.
5.2.5 Ajout du paramètre optionnel provide_object.
5.1.1 Ajout de l'objet courant comme élément de retour possible.

Exemples

Exemple #1 Exemple avec debug_backtrace()

<?php
// filename: /tmp/a.php

function a_test($str)
{
  echo 
"\nHi: $str";
  
var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>

Résultat de l'exécution de /tmp/b.php :

Hi: friend
array(2) {
  [0]=>
    array(4) {
      ["file"] => string(10) "/tmp/a.php"
      ["line"] => int(10)
      ["function"] => string(6) "a_test"
      ["args"]=>
        array(1) {
          [0] => &string(6) "friend"
        }
    }
  [1]=>
    array(4) {
      ["file"] => string(10) "/tmp/b.php"
      ["line"] => int(2)
      ["args"] =>
        array(1) {
          [0] => string(10) "/tmp/a.php"
        }
      ["function"] => string(12) "include_once"
    }
}

Voir aussi



debug_print_backtrace

(PHP 5)

debug_print_backtrace Affiche la pile d'exécution PHP

Description

void debug_print_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] )

debug_print_backtrace() affiche la pile d'exécution de PHP. Elle affiche les appels aux fonctions, aux fichiers inclus / requis ainsi que les appels à eval().

Liste de paramètres

options

Depuis 5.3.6, ce paramètre est un masque d'options suivantes :

Options pour debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT Si l'on doit peupler ou non l'index "object".
DEBUG_BACKTRACE_IGNORE_ARGS Si l'on doit omettre l'index "args" et ainsi, tous les arguments de la méthode pour préserver la mémoire.

limit

Depuis 5.4.0, ce paramètre peut être utilisé pour limiter le nombre de trames de la pile à afficher. Par défaut (limit=0), toutes les trames de la pile seront affichées.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec debug_print_backtrace()

<?php
// fichier include.php

function a() {
    
b();
}

function 
b() {
    
c();
}

function 
c(){
    
debug_print_backtrace();
}

a();

?>
<?php
// fichier test.php
// C'est le fichier que vous devez exécuter

include 'include.php';
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0  c() called at [/tmp/include.php:10]
#1  b() called at [/tmp/include.php:6]
#2  a() called at [/tmp/include.php:17]
#3  include(/tmp/include.php) called at [/tmp/test.php:3]

Voir aussi



error_get_last

(PHP 5 >= 5.2.0)

error_get_lastRécupère la dernière erreur survenue

Description

array error_get_last ( void )

Récupère la dernière erreur survenue.

Valeurs de retour

Retourne un tableau associatif décrivant la dernière errer avec les clés "type", "message", "file" et "line". Si l'erreur a été causée par une fonctione interne à PHP, le message commencera par le nom de cette fonction. Retourne NULL s'il n'y a actuellement aucune erreur.

Exemples

Exemple #1 Exemple avec error_get_last()

<?php
echo $a;
print_r(error_get_last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)



error_log

(PHP 4, PHP 5)

error_logStocke un message d'erreur

Description

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

Envoie un message d'erreur à l'historique d'erreur sur serveur web ou à un fichier.

Liste de paramètres

message

Le message d'erreur qui doit être stocké.

message_type

Spécifie la destination du message d'erreur. Les types possibles de messages sont :

error_log() log types
0 message est envoyé à l'historique PHP, qui est basé sur l'historique système ou un fichier, en fonction de la configuration de error_log. C'est l'option par défaut.
1 message est envoyé par email à l'adresse destination. C'est le seul type qui utilise le quatrième paramètre extra_headers.
2 N'est plus une option.
3 message est ajouté au fichier destination. Aucune nouvelle ligne (retour chariot) n'est automatiquement ajoutée à la fin de la chaîne message.
4 message est envoyé directement au gestionnaire d'identification SAPI.

destination

La destination. Cela dépend du paramètre message_type décrit ci-dessus.

extra_headers

Les en-têtes supplémentaires. Ils sont utilisés lorsque le paramètre message_type est défini à 1. Ce type de message utilise la même fonction interne que la fonction mail().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.7 La valeur possible pour 4 a été ajoutée à message_type.

Exemples

Exemple #1 Exemples avec error_log()

<?php
// Envoie une notification par l'historique du serveur web,
// si la connexion à la base de données est impossible.
if (!Ora_Logon($username$password)) {
  
error_log("Base Oracle indisponible !"0);
}

// Indiquer à l'administrateur, par email, qu'il n'y a plus de FOO
if (!($foo allocate_new_foo())) {
  
error_log("Aya!, Il ne reste plus de FOO disponibles !"1,
  
"operateur@example.com");
}

// D'autres manières d'appeler error_log():
error_log("Grosse bourde !"3"/var/tmp/mes-erreurs.log");
?>



error_reporting

(PHP 4, PHP 5)

error_reportingFixe le niveau de rapport d'erreurs PHP

Description

int error_reporting ([ int $level ] )

error_reporting() modifie la directive error_reporting pendant l'exécution du script. PHP possède plusieurs niveaux d'erreurs, utiliser cette fonction configure ce niveau pendant la durée (d'exécution) de votre script. Si le paramètre optionnel level n'est pas défini, error_reporting() retournera uniquement le niveau de rapport d'erreurs courant.

Liste de paramètres

level

Le nouveau niveau error_reporting. Il peut être un champ de bits ou une combinaison de constantes. L'utilisation des constantes est vivement recommandée pour assurer une compatibilité maximale avec les futures versions. Au fur et à mesure que de nouveaux niveaux d'erreurs sont créés, les valeurs évoluent, c'est pourquoi les anciennes valeurs n'ont plus forcément la même signification.

Les constantes représentant les niveaux d'erreurs disponibles et la signification de ces niveaux d'erreurs est décrite dans le manuel sur les constantes prédéfinies.

Valeurs de retour

Retourne l'ancien niveau d'error_reporting ou le niveau d'erreurs courant si le paramètre level n'est pas fourni.

Historique

Version Description
5.0.0 E_STRICT est introduit (ne fait plus partie de E_ALL).
5.2.0 E_RECOVERABLE_ERROR est introduit.
5.3.0 E_DEPRECATED et E_USER_DEPRECATED ont été introduits.

Exemples

Exemple #1 Exemple avec error_reporting()

<?php

// Désactiver le rapport d'erreurs
error_reporting(0);

// Rapporte les erreurs d'exécution de script
error_reporting(E_ERROR E_WARNING E_PARSE);

// Rapporter les E_NOTICE peut vous aider à améliorer vos scripts
// (variables non initialisées, variables mal orthographiées..)
error_reporting(E_ERROR E_WARNING E_PARSE E_NOTICE);

// Rapporte toutes les erreurs à part les E_NOTICE
// C'est la configuration par défaut de php.ini
error_reporting(E_ALL E_NOTICE);

// Reporte toutes les erreurs PHP (Voir l'historique des modifications)
error_reporting(E_ALL);

// Reporte toutes les erreurs PHP
error_reporting(-1);

// Même chose que error_reporting(E_ALL);
ini_set('error_reporting'E_ALL);

?>

Notes

Avertissement

La plupart des erreurs E_STRICT sont évaluées au moment de la compilation, comme les erreurs qui ne sont pas reportées dans le fichier lorsque error_reporting est défini pour inclure les erreurs E_STRICT (et vice-versa).

Astuce

En passant la valeur -1, toutes les erreurs possibles seront affichées, même lors de l'ajout d'autres niveaux et constantes dans les futures versions de PHP.

Voir aussi



restore_error_handler

(PHP 4 >= 4.0.1, PHP 5)

restore_error_handlerRéactive l'ancienne fonction de gestion des erreurs

Description

bool restore_error_handler ( void )

Utilisée après avoir modifié la fonction de gestion des erreurs, grâce à set_error_handler(), restore_error_handler() permet de réutiliser l'ancienne version de gestion des erreurs (qui peut être la fonction PHP par défaut, ou une autre fonction utilisateur).

Valeurs de retour

Cette fonction retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec restore_error_handler()

Si unserialize() cause une erreur, alors le gestionnaire d'erreurs original est restauré.

<?php
function unserialize_handler($errno$errstr)
{
echo 
"Valeur incorrectement linéarisée.\n";
}

$serialized 'foo';
set_error_handler('unserialize_handler');
$original unserialize($serialized);
restore_error_handler();
?>

L'exemple ci-dessus va afficher :

Valeur incorrectement linéarisée.

Notes

Note:

L'appel de la fonction restore_error_handler() depuis la fonction error_handler est ignoré.

Voir aussi



restore_exception_handler

(PHP 5)

restore_exception_handler Réactive l'ancienne fonction de gestion d'exceptions

Description

bool restore_exception_handler ( void )

restore_exception_handler() est utilisé, après le changement de la fonction de gestion d'exceptions avec la fonction set_exception_handler(), pour revenir à l'ancien gestionnaire d'exceptions (qui peut être la fonction interne ou une fonction définie par l'utilisateur).

Valeurs de retour

Cette fonction retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec restore_exception_handler()

<?php
    
function exception_handler_1(Exception $e)
    {
        echo 
'[' __FUNCTION__ '] ' $e->getMessage();
    }

    function 
exception_handler_2(Exception $e)
    {
        echo 
'[' __FUNCTION__ '] ' $e->getMessage();
    }

    
set_exception_handler('exception_handler_1');
    
set_exception_handler('exception_handler_2');

    
restore_exception_handler();

    throw new 
Exception('Ceci utilise le premier gestionnaire d\'exception...');
?>

L'exemple ci-dessus va afficher :

[exception_handler_1] Ceci utilise le premier gestionnaire d'exception...

Voir aussi



set_error_handler

(PHP 4 >= 4.0.1, PHP 5)

set_error_handlerSpécifie une fonction utilisateur comme gestionnaire d'erreurs

Description

mixed set_error_handler ( callback $error_handler [, int $error_types = E_ALL | E_STRICT ] )

set_error_handler() choisit la fonction utilisateur error_handler pour gérer les erreurs dans un script.

set_error_handler() peut être utilisé pour définir votre propre manière de gérer les erreurs durant l'exécution, par exemple pour une application dans laquelle vous devez nettoyer les données/fichiers lorsqu'une erreur survient ou lorsque vous devez déclencher une erreur sous certaines conditions (en utilisant trigger_error()).

Il faut se rappeler que la fonction standard de traitement des erreurs de PHP est alors complètement ignorée pour les erreurs de types spécifiés par error_types à moins que la fonction de rappel retourne FALSE. error_reporting() n'aura plus d'effet, et votre fonction de gestion des erreurs sera toujours appelée. Vous pourrez toujours lire la valeur de l'erreur courante de error_reporting et faire réagir la fonction de gestion des erreurs en fonction. Cette remarque est notamment valable si la commande a été préfixée par @.

Notez aussi qu'il est alors confié à cette fonction de terminer le script (die()) si nécessaire. Si la fonction de gestion des erreurs se termine normalement, l'exécution du script se poursuivra avec l'exécution de la prochaine commande.

Les types d'erreur suivants ne peuvent pas être gérés avec cette fonction : E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING ainsi que la plupart des E_STRICT d'un fichier lorsque set_error_handler() est appelé.

Si une erreur survient avant que le script ne soit exécuté (par exemple un téléchargement de fichier), le gestionnaire d'erreurs personnalisé ne pourra pas être appelé, car il n'est pas encore enregistré.

Liste de paramètres

error_handler

La fonction utilisateur doit accepter deux paramètres : le code d'erreur et une chaîne décrivant le code d'erreur. Depuis, trois paramètres optionnels sont fournis en même temps : le fichier dans lequel l'erreur est survenue, la ligne à laquelle l'erreur est survenue, et le contexte dans lequel l'erreu est survenue (un tableau contenant la liste des symboles lors de l'erreur). La fonction peut être décrite comme ceci :

handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] )
errno
Le premier paramètre errno, contient le niveau d'erreur, sous la forme d'un entier.
errstr
Le second paramètre errstr, contient le message d'erreur, sous forme de chaîne.
errfile
Le troisième paramètre, optionnel, errfile, contient le nom du fichier dans lequel l'erreur a été identifiée.
errline
Le quatrième paramètre, optionnel, errline, contient le numéro de ligne à laquelle l'erreur a été identifiée.
errcontext
Le cinquième paramètre, optionnel, errcontext, est un tableau qui pointe sur la table des symboles actifs lors de l'erreur. En d'autres termes, errcontext contient un tableau avec toutes les variables qui existaient lorsque l'erreur a été déclenchée. La fonction de gestion d'erreurs de l'utilisateur ne doit pas modifier le contexte d'erreur.

Si la fonction retourne FALSE, alors le gestion d'erreurs normal continue.

error_types

Sert de masque pour appeler la fonction error_handler de la même façon que l'option de configuration error_reporting contrôle les erreurs qui sont affichées. Sans le masque, error_handler sera appelé pour toutes les erreurs, quelque soit la valeur de error_reporting.

Valeurs de retour

Retourne une chaîne contenant le dernier gestionnaire d'erreurs (s'il existe). Si le gestionnaire d'erreurs natif est utilisé, NULL est retourné. NULL est également retourné dans le cas d'une erreur, comme une fonction de rappel incorrecte. Si le gestionnaire d'erreurs précédent est une méthode d'une classe, cette fonction retournera un tableau indexé de la classe et du nom de la méthode.

Historique

Version Description
5.2.0 Le gestionnaire d'erreurs doit retourner FALSE pour peupler la variable $php_errormsg.
5.0.0 Le paramètre error_types a été introduit.
4.3.0 Au lieu d'un nom de fonction, un tableau contenant une référence à un objet ainsi qu'un nom de méthode peut aussi être passé au paramètre error_handler.
4.0.2 Trois paramètres optionnels pour le paramètre error_handler de la fonction utilisateur ont été introduits. C'est le nom du fichier, le numéro de ligne ainsi que le contexte.

Exemples

Exemple #1 Gestionnaire d'erreurs avec set_error_handler() et trigger_error()

L'exemple ci-dessous illustre l'interception d'erreurs internes avec génération d'erreur et son exploitation dans une fonction utilisateur :

<?php
// Gestionnaire d'erreurs
function myErrorHandler($errno$errstr$errfile$errline)
{
   if (!(
error_reporting() & $errno)) {
        
// Ce code d'erreur n'est pas inclus dans error_reporting()
        
return;
    }

    switch (
$errno) {
    case 
E_USER_ERROR:
        echo 
"<b>Mon ERREUR</b> [$errno$errstr<br />\n";
        echo 
"  Erreur fatale sur la ligne $errline dans le fichier $errfile";
        echo 
", PHP " PHP_VERSION " (" PHP_OS ")<br />\n";
        echo 
"Arrêt...<br />\n";
        exit(
1);
        break;

    case 
E_USER_WARNING:
        echo 
"<b>Mon ALERTE</b> [$errno$errstr<br />\n";
        break;

    case 
E_USER_NOTICE:
        echo 
"<b>Mon AVERTISSEMENT</b> [$errno$errstr<br />\n";
        break;

    default:
        echo 
"Type d'erreur inconnu : [$errno$errstr<br />\n";
        break;
    }

    
/* Ne pas exécuter le gestionnaire interne de PHP */
    
return true;
}

// Fonction pour tester la gestion d'erreur
function scale_by_log($vect$scale)
{
    if (!
is_numeric($scale) || $scale <= 0) {
        
trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale"E_USER_ERROR);
    }

    if (!
is_array($vect)) {
        
trigger_error("Type d'entrée incorrect, tableau de valeurs attendu"E_USER_WARNING);
        return 
null;
    }

    
$temp = array();
    foreach(
$vect as $pos => $value) {
        if (!
is_numeric($value)) {
            
trigger_error("La valeur à la position $pos n'est pas un nombre, utilisation 0 (zéro)"E_USER_NOTICE);
            
$value 0;
        }
        
$temp[$pos] = log($scale) * $value;
    }
    return 
$temp;
  }

// Configuration du gestionnaire d'erreurs
$old_error_handler set_error_handler("myErrorHandler");

// Génération de quelques erreurs. Commençons par créer un tableau
echo "vector a\n";
$a = array(23"foo"5.543.321.11);
print_r($a);

// Générons maintenant un second tableau
echo "----\nvector b - a notice (b = log(PI) * a)\n";
/* Valeur à la position $pos n'est pas un nombre, utilisation de 0 (zéro) */
$b scale_by_log($aM_PI);
print_r($b);

// Ceci est un problème, nous avons utilisé une chaîne au lieu d'un tableau
echo "----\nvector c - a warning\n";
/* Type d'entrée incorrect, tableau de valeurs attendu */
$c scale_by_log("non un tablau"2.3);
var_dump($c); // NULL

// Ceci est une erreur critique : le logarithme de zéro ou d'un nombre négatif est indéfini
echo "----\nvector d - fatal error\n";
/* log(x) pour x <= 0 est indéfini, vous utilisez : scale = $scale" */
$d scale_by_log($a, -2.5);
var_dump($d); // Jamais atteint
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a notice (b = log(PI) * a)
<b>Mon AVERTISSEMENT</b> [1024] La valeur à la position 2 n'est pas un nombre, utilisation de 0 (zéro)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an warning
<b>Mon ALERTE</b> [512] Entrée incorrect, tableau de valeurs attendu<br />
NULL
----
vector d - fatal error
<b>Mon ERREUR</b> [256] log(x) for x <= 0 est indéfini, vous utilisez : scale = -2.5<br />
Erreur fatale sur la ligne 36 dans le fichier trigger_error.php, PHP 4.0.2 (Linux)<br />
Abandon...<br />

Voir aussi



set_exception_handler

(PHP 5)

set_exception_handler Définit une fonction utilisateur de gestion d'exceptions

Description

callback set_exception_handler ( callback $exception_handler )

set_exception_handler() définit le gestionnaire d'exceptions par défaut si une exception n'est pas attrapée avec un bloc d'essai/d'attrape. L'exécution sera stoppé après l'appel à la fonction exception_handler.

Liste de paramètres

exception_handler

Nom de la fonction à appeler lorsqu'une exception qui n'a pu être attrapée survient. Cette fonction doit être définie avant l'appel de la fonction set_exception_handler(). Ce gestionnaire de fonction doit accepter un paramètre qui sera l'objet représentant l'exception qui vient d'être lancée.

Valeurs de retour

Retourne le nom du gestionnaire précédemment défini ou NULL en cas d'erreur. Si aucun gestionnaire n'a été précédemment défini, NULL est également retournée.

Exemples

Exemple #1 Exemple avec set_exception_handler()

<?php
function exception_handler($exception) {
  echo 
"Exception non attrapée : " $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new 
Exception('Uncaught Exception');
echo 
"Non exécuté\n";
?>

Voir aussi



trigger_error

(PHP 4 >= 4.0.1, PHP 5)

trigger_errorDéclenche une erreur utilisateur

Description

bool trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] )

trigger_error() est utilisé pour déclencher une erreur utilisateur. Elle peut aussi être utilisée en conjonction avec un gestionnaire d'erreurs interne, ou un gestionnaire d'erreurs utilisateur qui a été choisi comme gestionnaire d'erreurs avec set_error_handler().

trigger_error() est pratique lorsque vous devez générer une réponse particulière lors de l'exécution.

Liste de paramètres

error_msg

Le message d'erreur désigné pour cette erreur. Il est limité en longueur à 1024 caractères. Tous caractères après les 1024 seront ignorés.

error_type

Le type d'erreur désigné pour cette erreur. Cela ne fonctionne qu'avec la famille de constantes E_USER et sera par défaut E_USER_NOTICE.

Valeurs de retour

Cette fonction retourne FALSE si un paramètre incorrect est passé à error_type, TRUE sinon.

Exemples

Exemple #1 Exemple avec trigger_error()

Voir set_error_handler() pour un exemple plus conséquent.

<?php
if ($divisor == 0) {
  
trigger_error("Impossible de diviser par zéro"E_USER_ERROR);
}
?>

Notes

Avertissement

Les entités HTML contenues dans le paramètre error_msg ne sont pas échappées. Utilisez la fonction htmlentities() sur le message si l'erreur doit être affichée dans un navigateur.

Voir aussi



user_error

(PHP 4, PHP 5)

user_errorAlias de trigger_error()

Description

Cette fonction est un alias de : trigger_error().


Sommaire




Support du format .htaccess pour toutes les SAPI


Introduction

L'extension htscanner donne la possibilité d'accéder à des fichiers au format .htaccess pour configurer PHP, dossier par dossier, comme c'est possible avec Apache. Cela est particulièrement utile avec fastcgi (ISS5/6/7, lighttpd, etc.).



Installation/Configuration

Sommaire


Pré-requis

PHP version 5.2.0 ou plus récent.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/htscanner



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration htscanner
Nom Défaut Modifiable Historique
htscanner.config_file ".htscanner" PHP_INI_SYSTEM  
htscanner.default_docroot "/" PHP_INI_SYSTEM  
htscanner.default_ttl "300" PHP_INI_SYSTEM  
htscanner."stop_on_error" "Off" PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

htscanner.config_file string

Nom du fichier qui contient les configurations.

htscanner.default_docroot string

Racine Web par défaut.

htscanner.default_ttl int

Durée de vie des documents mis en cache, exprimé en secondes.

htscanner.stop_on_error int

Arrêt sur erreur (erreur d'analyse, ou d'affectation d'une directive INI).



Types de ressources

Cette extension ne définit aucune ressource.





Arbre d'inclusions


Introduction

Note les inclusions, et produire une arborescence d'inclusions et d'héritage de classes à la volée.

Les fichiers peuvent avoir été inclus avec les fonctions include(), include_once(), require() ou require_once().

Les héritages de classes sont aussi rapportés.



Installation/Configuration

Sommaire


Pré-requis

PHP version 5.1.0 ou plus récente.

Le fichier inclus gengraph.php utilise la bibliothèque » graphviz, mais elle n'est pas obligatoire.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/inclued



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration inclued
Nom Défaut Modifiable Historique
inclued.enabled Off PHP_INI_SYSTEM  
inclued.dumpdir NULL PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

inclued.enabled bool

Si oui ou non, inclued est activée.

inclued.dumpdir string

Chemin du dossier qui stocke les fichiers inclued. Si configuré, chaque requête PHP va créer un fichier dans ce dossier. Ces fichiers représentent la version sérialisée de ce qu'aurait produit inclued_get_data(), leur contenu peut donc être désérialisé au moyen de unserialize().

Attention

Comme chaque requête crée un fichier, ce dossier risque de se remplir très vite!



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemple qui implémente inclued dans une application

Cet exemple montre comment implémenter inclued dans une application existante, et afficher les résultats.

Exemple #1 Traitement des informations dans une application PHP

<?php
// Fichier de stockage des informations d'inclusion
$fp fopen('/tmp/wp.ser''w');
if (
$fp) {
    
$clue inclued_get_data();
    if (
$clue) {
        
fwrite($fpserialize($clue));
    }
    
fclose($fp);
}
?>

Maintenant que nous avons des données, il est temps de prendre du recul et d'avoir un graphique. L'extension inclued inclut un fichier PHP appelé gengraph.php qui crée un fichier DOT, qui peut être passé à la bibliothèque » graphviz. Cependant, cette approche n'est pas obligatoire.

Exemple #2 Exemple d'utilisation de gengraph.php

Cet exemple crée une image appelée inclued.png qui montre les fichiers inclus.

# First, create the dot file
$ php graphviz.php -i /tmp/wp.ser -o wp.dot

# Next, create the image
$ dot -Tpng -o inclued.png wp.dot

Exemple #3 Lister les données depuis une capture inclued

En utilisant la directive inclued.dumpdir , des fichiers (les traces include) sont écrits à chaque requête. Voici un moyen de lister ces fichiers et utiliser unserialize() avec.

<?php
$path 
ini_get('inclued.dumpdir');
if (
$path && is_dir($path)) {

    echo 
"Path: $path"PHP_EOL;

    
$inclues = new GlobIterator($path DIRECTORY_SEPARATOR 'inclued*');

    if (
$inclues->count() === 0) {
        echo 
'Pas de traces'PHP_EOL;
        exit;
    }

    foreach (
$inclues as $inclue) {

        echo 
'Fichier Inclus: '$inclue->getFilename(), PHP_EOL;

        
$data file_get_contents($inclue->getPathname());
        if (
$data) {
            
$inc unserialize($data);
            echo 
' -- fichier: '$inc['request']['SCRIPT_FILENAME'], PHP_EOL;
            echo 
' -- nombre d'inclusions', count($inc['includes']), PHP_EOL;
        }
        echo PHP_EOL;
    }
} else {
    echo '
Pas de traces.', PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PATH: /tmp/inclued
Fichier Inclus: inclued.56521.1
 -- fichier: /Users/philip/test.php
 -- nombre d'inclusions: 1

Fichier Inclus: inclued.56563.1
 -- fichier: /tmp/none.php
 -- nombre d'inclusions: 0

Fichier Inclus: inclued.56636.1
 -- fichier: /tmp/three.php
 -- nombre d'inclusions: 3




Fonctions inclued


inclued_get_data

(PECL inclued >= 0.1.0)

inclued_get_dataGet the inclued data

Description

array inclued_get_data ( void )

Lit les données incluses.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données incluses.

Exemples

Exemple #1 Exemple avec inclued_get_data()

Voyez les exemples avec inclued pour une méthode de représentation de ces données.

<?php 
include 'x.php';

$clue inclued_get_data();

print_r($clue);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
  [includes] => Array
    (
      [0] => Array
        (
          [operation] => include
          [op_type] => 2
          [filename] => x.php
          [opened_path] => /tmp/x.php
          [fromfile] => /tmp/z.php
          [fromline] => 2
        )
    )
)

Voir aussi


Sommaire




Options PHP et informations PHP


Introduction

Ces fonctions vous donnent accès à de nombreuses informations sur PHP lui-même, comme les configurations d'exécution, les extensions chargées, les versions, etc. Vous trouverez aussi des fonctions pour modifier des options. Ainsi que la star des fonctions PHP phpinfo().



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration
Nom Défaut Modifiable Historique
assert.active "1" PHP_INI_ALL  
assert.bail "0" PHP_INI_ALL  
assert.warning "1" PHP_INI_ALL  
assert.callback NULL PHP_INI_ALL  
assert.quiet_eval "0" PHP_INI_ALL  
enable_dl "1" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
max_execution_time "30" PHP_INI_ALL  
max_input_time "-1" PHP_INI_PERDIR Disponible depuis PHP 4.3.0.
max_input_nesting_level "64" PHP_INI_PERDIR Disponible depuis PHP 4.4.8. Supprimé depuis PHP 5.0.0.
magic_quotes_gpc "1" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
magic_quotes_runtime "0" PHP_INI_ALL Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
zend.enable_gc "1" PHP_INI_ALL Disponible depuis PHP 5.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

assert.active boolean

Active les évaluations de type assert().

assert.bail boolean

Termine le script si une assertion échoue.

assert.warning boolean

Émet une alerte PHP pour chaque assertion qui échoue.

assert.callback string

Fonction définie par le programmeur, à appeler pour chaque assertion échouée.

assert.quiet_eval boolean

Utilise la configuration courante de error_reporting() durant les évaluations d'assertions. Si activée, aucune erreur n'est affichée (error_reporting(0) implicite) durant l'évaluation. Si désactivée, les erreurs sont affichées en fonction de la configuration de error_reporting()

enable_dl boolean

Cette directive est réellement utile lorsque PHP est compilé comme module Apache. Vous pouvez activer le chargement dynamique d'extension avec la fonction PHP dl() au cas par cas, pour chaque serveur virtuel.

La raison principale pour désactiver ce système est la sécurité. Avec le chargement dynamique, il est possible de passer outre les configurations de safe mode et open_basedir. Par défaut, le chargement dynamique est autorisé, sauf avec le safe mode. En safe mode, il est toujours impossible d'utiliser la fonction dl().

max_execution_time entier

Fixe le temps maximal d'exécution d'un script, en secondes. Cela permet d'éviter que des scripts en boucles infinies saturent le serveur. La configuration par défaut est de 30 secondes. Lorsque PHP fonctionne depuis la ligne de commande, la valeur par défaut est 0.

Le temps d'exécution maximum n'est pas affecté par des appels systèmes tels que sleep(). Reportez-vous à la fonction set_time_limit() pour plus de détails.

Vous ne pouvez pas modifier la valeur de cette directive avec ini_set() lorsque PHP est configuré en safe mode. Le seul moyen de le faire est de désactiver le safe mode ou de changer la valeur dans php.ini.

Votre serveur web peut avoir d'autres configurations de la durée limite d'exécution qui peuvent également interrompre PHP. Apache a une directive Timeout et IIS a une fonction CGI pour cela. Par défaut, elles valent toutes les deux 300 secondes. Reportez-vous à la documentation de votre serveur web pour plus de détails.

max_input_time entier

Cette option spécifie la durée maximale pour analyser les données d'entrée, via POST et GET. Cette durée est mesurée depuis le moment où toutes les données sont reçues du serveur jusqu'à début de l'exécution du script.

max_input_nesting_level entier

Définit la profondeur maximale des variables d'entrées (i.e. $_GET, $_POST..)

magic_quotes_gpc boolean
Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Fixe le mode magic_quotes pour les opérations GPC (Get/Post/Cookie). Lorsque magic_quotes est activé, tous les caractères ' (guillemets simples), " (guillemets doubles), \ (antislash) et NUL sont échappés avec un antislash.

Note:

En PHP 4, la variable $_ENV est également échappée.

Note:

Si la directive magic_quotes_sybase est aussi activée, elle écrasera magic_quotes_gpc. Avec les deux directives activées, seuls les guillemets simples seront protégés avec un autre guillemet simple (''). Les guillemets doubles, les antislashs et les NUL ne seront pas protégés.

Voir aussi get_magic_quotes_gpc().

magic_quotes_runtime boolean
Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Si magic_quotes_runtime est activé, toutes les fonctions qui obtiennent des données auprès d'une source externe, y compris les bases de données et les fichiers texte, verront leur guillemets échappés avec un antislash. Si magic_quotes_sybase est aussi activé, les guillemets simples seront échappés avec un autre guillemet simple, plutôt qu'un antislash.

Fonctions affectées par magic_quotes_runtime (n'incluent pas les fonctions depuis PECL):

zend.enable_gc boolean

Active ou désactive la collecte des références circulaires.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Constantes prédéfinies de phpcredits()
Constante Valeur Description
CREDITS_GROUP 1 Une liste des développeurs principaux
CREDITS_GENERAL 2 Crédits généraux. Design du langage, concepts, auteurs de PHP et module SAPI.
CREDITS_SAPI 4 Une liste des API de serveurs, et leurs auteurs.
CREDITS_MODULES 8 Une liste des extensions de PHP, et leurs auteurs
CREDITS_DOCS 16 Les crédits de l'équipe de documentation
CREDITS_FULLPAGE 32 Généralement utilisé combiné avec d'autres options. Cette option indique qu'une page HTML complète doit être générée.
CREDITS_QA 64 Les crédits pour le groupe d'assurance qualité.
CREDITS_ALL -1 Tous les crédits. C'est l'équivalent de : CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Elle génère une page HTML complète et autonome. C'est la valeur par défaut.
Constantes de phpinfo()
Constante Valeur Description
INFO_GENERAL 1 La ligne de configuration, le chemin du php.ini, la date de compilation, le système et plus encore.
INFO_CREDITS 2 Crédits de PHP. Voir aussi phpcredits().
INFO_CONFIGURATION 4 Valeurs locales et serveurs des directives PHP. Voir aussi ini_get().
INFO_MODULES 8 Les modules chargés et leurs configurations respectives.
INFO_ENVIRONMENT 16 Les variables d'environnement, qui sont aussi disponibles dans $_ENV.
INFO_VARIABLES 32 Toutes les variables prédéfinies : EGPCS (Environnement, GET, POST, Cookie, Server).
INFO_LICENSE 64 La licence PHP. Voir aussi la » FAQ de la licence.
INFO_ALL -1 Affiche toutes les valeurs citées ci-dessus. C'est la valeur par défaut.

Les constantes d'assertions servent avec la fonction assert_options().

Constantes d'assert()
Constante Directive de configuration Description
ASSERT_ACTIVE assert.active Active l'évaluation assert().
ASSERT_CALLBACK assert.callback Fonction de rappel des assertions échouées.
ASSERT_BAIL assert.bail Termine l'exécution des assertions échouées.
ASSERT_WARNING assert.warning Émet une alerte PHP pour chaque assertion échouée.
ASSERT_QUITE_EVAL assert.quiet_eval Désactive le error_reporting durant l'évaluation des expressions d'assertion.

Les constantes suivantes ne sont disponibles que si le système d'hébergement est sur Windows, et peut vous donner des informations sur les versions, qui vous permettront de détecter la présence de fonctionnalités. Elles sont disponibles depuis PHP 5.3.0.

Constantes particulières à Windows
Constante Description
PHP_WINDOWS_VERSION_MAJOR La version majeure de Windows, qui peut être 4 (NT4/Me/98/95), 5 (XP/2003 R2/2003/2000) ou 6 (Vista/2008).
PHP_WINDOWS_VERSION_MINOR La version mineure de Windows, qui peut être 0 (Vista/2008/2000/NT4/95), 1 (XP), 2 (2003 R2/2003/XP x64), 10 (98) ou 90 (ME).
PHP_WINDOWS_VERSION_BUILD Le numéro de compilation de Windows (par exemple, Windows Vista avec SP1 a le numéro 6001)
PHP_WINDOWS_VERSION_PLATFORM La plate-forme que PHP utilise actuellement : cette valeur peut être 2 sur Windows Vista/XP/2000/NT4, Server 2008/2003 et sur Windows ME/98/95 cette valeur est 1.
PHP_WINDOWS_VERSION_SP_MAJOR La version majeure du paquet de service installé : cette valeur vaut 0 si aucun paquet de service n'est disponible. Par exemple, Windows XP avec le paquet de service 3 donne la valeur 3 à cette constante.
PHP_WINDOWS_VERSION_SP_MINOR La version mineur du paquet de service installé. Cette valeur est 0 si aucun paquet de service n'est installé.
PHP_WINDOWS_VERSION_SUITEMASK Le masque est un champ de bits qui permet de connaître la présence de différentes fonctionnalités de Windows. Voyez la table ci-dessous pour connaître les différents champs.
PHP_WINDOWS_VERSION_PRODUCTTYPE Cette constante contient la valeur utilisée pour déterminer la valeur des constantes PHP_WINDOWS_NT_*. Cette valeur peut être l'une des constantes PHP_WINDOWS_NT_*, indiquant le type de plate-forme.
PHP_WINDOWS_NT_DOMAIN_CONTROLLER Le contrôleur de domaine.
PHP_WINDOWS_NT_SERVER Un serveur système (eg. Server 2008/2003/2000). Notez que si c'est un contrôleur de domaine, il est indiqué dans PHP_WINDOWS_NT_DOMAIN_CONTROLLER.
PHP_WINDOWS_NT_WORKSTATION Un poste de travail (eg. Vista/XP/2000/NT4)

La table ci-desous présente les fonctionnalités qui peuvent être vérifiées dans le champ de bit de la constante PHP_WINDOWS_VERSION_SUITEMASK.

Champs du masque Windows
Bits Description
0x00000004 Les composants Microsoft BackOffice sont installés.
0x00000400 Windows Server 2003, Web Edition est installé.
0x00004000 Windows Server 2003, Compute Cluster Edition est installé.
0x00000080 Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition ou Windows 2000 Datacenter Server est installé.
0x00000002 Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, Windows 2000 Advanced Server, ou Windows NT Server 4.0 Enterprise Edition est installé.
0x00000040 Windows XP Embedded est installé.
0x00000200 Windows Vista Home Premium, Windows Vista Home Basic, ou Windows XP Home Edition est installé.
0x00000100 Remote Desktop est supporté, mais une seule session interactive est supportée. Cette valeur est présente, à moins que le système ne fonctionne en mode serveur d'application.
0x00000001 Microsoft Small Business Server a été installé sur le système, mais a été mis à joru vers une nouvelle version de Windows.
0x00000020 Microsoft Small Business Server est installé avec la licence cliente restreinte.
0x00002000 Windows Storage Server 2003 R2 ou Windows Storage Server 2003 est installé.
0x00000010 Terminal Services est installé. Cette valeur est toujours activée. Si cette valeur est activée, mais 0x00000100 ne l'est pas, alors le système fonctionne en mode de serveur d'application.
0x00008000 Windows Home Server est installé.


Fonctions sur les options et les informations de PHP


assert_options

(PHP 4, PHP 5)

assert_optionsFixe et lit différentes options d'assertions

Description

mixed assert_options ( int $what [, mixed $value ] )

assert_options() permet de modifier les diverses options de la fonction assert(), ou simplement connaître la configuration actuelle.

Liste de paramètres

what

Options d'assertions
Option Directive Valeur par défaut Description
ASSERT_ACTIVE assert.active 1 Active l'évaluation de la fonction assert()
ASSERT_WARNING assert.warning 1 Génère une alerte PHP pour chaque assertion fausse
ASSERT_BAIL assert.bail 0 Termine l'exécution en cas d'assertion fausse
ASSERT_QUIET_EVAL assert.quiet_eval 0 Désactive le rapport d'erreur durant l'évaluation d'une assertion
ASSERT_CALLBACK assert.callback (NULL) Fonction de rappel utilisateur, pour le traitement des assertions fausses

value

Une nouvelle valeur, optionnelle, pour l'option.

Valeurs de retour

Retourne la valeur originale de l'option, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec assert_options()

<?php
// Ceci est notre fonction pour gérer les
// erreurs d'assertion
function assert_failure()
{
    echo 
'Échec de l\'assertion';
}

// Ceci est notre fonction de test
function test_assert($parameter)
{
    
assert(is_bool($parameter));
}

// Définit nos options d'assertion
assert_options(ASSERT_ACTIVE,   true);
assert_options(ASSERT_BAIL,     true);
assert_options(ASSERT_WARNING,  false);
assert_options(ASSERT_CALLBACK'assert_failure');

// Une assertion qui doit échouée
test_assert(1);

// Ceci n'est jamais atteint, car ASSERT_BAIL
// vaut true
echo 'Jamais atteint';
?>

Voir aussi

  • assert() - Vérifie si une assertion est fausse



assert

(PHP 4, PHP 5)

assertVérifie si une assertion est fausse

Description

bool assert ( mixed $assertion )

assert() va vérifier l'assertion assertion et prendre la mesure appropriée si le résultat est FALSE.

Si assertion est donnée sous la forme d'une chaîne, elle sera évaluée comme un code PHP par la fonction assert(). Les avantages de ce type d'assertion sont d'être moins lourd si la vérification d'assertion est désactivée, et les messages contenant l'assertion lorsque l'assertion échoue. Cela signifie que si vous passez une condition booléenne en tant qu'assertion, cette condition ne sera pas considérée comme un paramètre par la fonction d'assertion que vous avez définie avec la fonction assert_options(), la condition est convertie en chaîne de caractères avant l'appel à ce gestionnaire de fonction, et le booléen FALSE sera converti en chaîne de caractères vide.

Il est recommandé de n'utiliser les assertions que comme outil de déboguage. Vous pouvez les utiliser pour les vérifications d'usage : ces conditions doivent normalement être vraies, et indiquer une erreur de programmation si ce n'est pas le cas. Vous pouvez aussi vérifier la présence de certaines extensions ou limitations du système.

Les assertions ne doivent pas être utilisées pour faire des opérations de vérifications en production, comme des vérifications de valeur d'argument. En conditions normales, votre code doit être en état de fonctionner si la vérification d'assertion est désactivée.

Le comportement de assert() peut être configuré par assert_options() ou par les directives de configuration décrites dans la page de manuel de cette fonction.

La fonction assert_options() et la directive ASSERT_CALLBACK permettent de configurer une fonction qui sera appelée lorsque l'assertion échoue.

Les fonctions de rappel pour assert() sont particulièrement utiles pour bâtir des suites de tests automatiques, car elles vous permettent de capturer facilement le code passé à l'assertion, ainsi que des informations sur le lieu et le moment de l'assertion. Même si ces informations peuvent être appelées par d'autres méthodes, les assertions sont plus rapides et plus faciles.

La fonction de rappel doit accepter trois arguments. Le premier contient le nom du fichier qui a vu l'assertion échouer. Le second contient le numéro de ligne dans le fichier précédent. Le troisième argument contient l'expression qui a échoué (s'il y en a : les valeurs littérales comme 1 ou "deux" ne seront pas passées par cet argument).

Liste de paramètres

assertion

L'assertion.

Valeurs de retour

FALSE si l'assertion est fausse, TRUE sinon.

Exemples

Exemple #1 Gestion des assertions avec un gestionnaire personnalisé

<?php
// Activation des assertions et mise en mode discret
assert_options(ASSERT_ACTIVE1);
assert_options(ASSERT_WARNING0);
assert_options(ASSERT_QUIET_EVAL1);

// Création d'un gestionnaire d'assertions
function my_assert_handler($file$line$code)
{
    echo 
"<hr>Échec de l'assertion :
        File '
$file'<br />
        Line '
$line'<br />
        Code '
$code'<br /><hr />";
}

// Configuration de la méthode de callback
assert_options(ASSERT_CALLBACK'my_assert_handler');

// Utilisation d'une assertion qui va échouer
assert('mysql_query("")');
?>

Voir aussi



dl

(PHP 4, PHP 5)

dlCharge une extension PHP à la volée

Description

bool dl ( string $library )

Charge l'extension PHP library à la volée.

Utilisez la fonction extension_loaded() pour vérifier qu'une extension est chargée ou non. Cette fonction travaille aussi bien avec les extensions natives qu'avec les extensions dynamiquement chargées (via le php.ini ou dl()).

Avertissement

Cette fonction a été supprimée du SAPI en PHP 5.3.

Liste de paramètres

library

Ce paramètre est seulement le nom de fichier de l'extension, qui dépend de votre plate-forme. Par exemple l'extension sockets (si compilée comme module partagé, et non par défaut), sera appelée sockets.so sous Unix, et php_sockets.dll sous Windows.

Le dossier à partir duquel sont chargées vos extensions dépend de votre plate-forme :

Windows - S'il n'est pas explicitement indiqué dans le fichier php.ini, le dossier des extensions est c:\php4\extensions\ (PHP4) ou C:\php5\ (PHP5) par défaut.

Unix - S'il n'est pas explicitement indiqué dans le fichier php.ini, le dossier des extensions dépend de

  • Si PHP a été compilé avec l'option --enable-debug ou non
  • Si PHP a été compilé avec le support (expérimental) de ZTS (Zend Thread Safety) ou non
  • de la constante interne ZEND_MODULE_API_NO (version interne de module d'API Zend, qui est en réalité la date à laquelle une modification importante de l'API a été faite, par exemple 20010901)
En prenant ces paramètres en considération, le dossier des extensions vaut alors <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 ou /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.. Si la fonctionnalité de chargement de module n'est pas disponible, ou a été désactivée (soit en désactivant la directive enable_dl ou en activant le safe mode dans le php.ini) une E_ERROR sera émise et l'exécution du script sera stoppée. Si la fonction dl() échoue parce que la bibliothèque n'a pu être trouvée, dl() retournera FALSE et émettra un message d'alerte E_WARNING.

Exemples

Exemple #1 Exemples avec dl()

<?php
// Chargement pour toutes plates-formes
if (!extension_loaded('sqlite')) {
    if (
strtoupper(substr(PHP_OS03)) === 'WIN') {
        
dl('php_sqlite.dll');
    } else {
        
dl('sqlite.so');
    }
}

// Mais la constante PHP_SHLIB_SUFFIX est disponible depuis PHP 4.3.0
if (!extension_loaded('sqlite')) {
    
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' '';
    
dl($prefix 'sqlite.' PHP_SHLIB_SUFFIX);
}
?>

Historique

Version Description
5.3.0 dl() est maintenant désactivé dans quelques SAPIs en raison de son instabilité. Le seul SAPI qui active dl() sont : CLI, CGI et Embed. Utilisez les directives de chargement d'extension à la place.

Notes

Note:

dl() n'est pas supporté lorsque PHP est compilé avec le support ZTS. Utilisez les directives de chargement d'extension à la place.

Note:

dl() est sensible à la casse sur les plates-formes Unix.

Note: Cette fonction est désactivée par le safe-mode

Voir aussi



extension_loaded

(PHP 4, PHP 5)

extension_loadedDétermine si une extension est chargée ou non

Description

bool extension_loaded ( string $name )

Détermine si une extension est chargée ou non.

Liste de paramètres

name

Le nom de l'extension.

Vous pouvez connaître le nom des différentes extensions PHP en utilisant la fonction phpinfo() ou bien si vous utilisez la version CGI ou CLI de PHP, vous pouvez utiliser l'option de ligne de commande -m pour afficher toutes les extensions disponibles :

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Valeurs de retour

Retourne TRUE si l'extension name a été chargée, FALSE sinon.

Exemples

Exemple #1 Exemple avec extension_loaded()

<?php
if (!extension_loaded('gd')) {
    if (!
dl('gd.so')) {
        exit;
    }
}
?>

Historique

Version Description
5.0.0 extension_loaded() utilise le nom interne de l'extension pour vérifier si une extension est disponible ou pas. La plupart des extensions ont des noms internes écrits en minuscules, mais il peut arriver que certaines aient des noms en majuscules. Avant PHP 5, cette fonction comparait les noms en ne tenant pas compte de la casse.

Voir aussi



gc_collect_cycles

(PHP 5 >= 5.3.0)

gc_collect_cyclesForce le passage du collecteur de mémoire

Description

int gc_collect_cycles ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Force le passage du collecteur de mémoire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de cycles collectés.



gc_disable

(PHP 5 >= 5.3.0)

gc_disableDésactive le collecteur de références circulaires

Description

void gc_disable ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Désactive le collecteur de références circulaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



gc_enable

(PHP 5 >= 5.3.0)

gc_enableActive le collecteur de références circulaires

Description

void gc_enable ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Active le collecteur de références circulaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



gc_enabled

(PHP 5 >= 5.3.0)

gc_enabledRetourne le statut du collecteur de références circulaires

Description

bool gc_enabled ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le statut du collecteur de références circulaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE so le collecteur est actif, et FALSE sinon.



get_cfg_var

(PHP 4, PHP 5)

get_cfg_varRetourne la valeur d'une option de PHP

Description

string get_cfg_var ( string $option )

Retourne la valeur de l'option option de configuration PHP.

get_cfg_var() ne retourne pas les options qui ont été choisies lors de la compilation de PHP, ni ne lit dans le fichier de configuration d'Apache.

Pour vérifier si le système utilise le fichier de configuration, essayez de lire la valeur de cfg_file_path. Si cette valeur est disponible, alors le fichier de configuration est utilisé.

Liste de paramètres

option

Le nom de l'option de configuration.

Valeurs de retour

Retourne la valeur courante de l'option PHP option ou bien FALSE si une erreur survient.

Historique

Version Description
5.3.0 get_cfg_var() a été modifié afin de permettre de retourner un tableau de directives.

Voir aussi

  • ini_get() - Lit la valeur d'une option de configuration
  • ini_get_all() - Lit toutes les valeurs de configuration



get_current_user

(PHP 4, PHP 5)

get_current_userRetourne le nom du possesseur du script courant

Description

string get_current_user ( void )

Retourne le nom du possesseur du script courant.

Valeurs de retour

Retourne le nom de l'utilisateur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec get_current_user()

<?php
echo 'Propriétaire du script courant : ' get_current_user();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Propriétaire du script courant : SYSTEM

Voir aussi

  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmygid() - Retourne le GID du propriétaire du script
  • getmypid() - Retourne le numéro de processus courant de PHP
  • getmyinode() - Retourne l'inode du script
  • getlastmod() - Retourne la date de dernière modification de la page



get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constantsRetourne la liste des constantes et leurs valeurs

Description

array get_defined_constants ([ bool $categorize = false ] )

Retourne les noms et valeurs des constantes déjà définies. Cela inclut les constantes créées par les extensions, et celles créées avec la fonction define().

Liste de paramètres

categorize

Permet à cette fonction de retourner un tableau multidimensionnel avec les catégories en tant que clés de la première dimension et les constantes ainsi que leurs valeurs dans la seconde dimension.

<?php
define
("MY_CONSTANT"1);
print_r(get_defined_constants(true));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

Valeurs de retour

Historique

Version Description
5.3.1 Windows uniquement : Les constantes internes sont catégorisées sous Core, précédemment, elles l'étaient sous mhash.
5.3.0 Les constantes internes sont maintenant catégorisées sous Core alors qu'elles l'étaient sous internal auparavant. Sous WIndows, les constantes internes étaient catégorisées sous mhash.
5.2.11 Le paramètre categorize agit maintenant comme entendu. Avant, le paramètre categorize était interprété comme !is_null($categorize), faisant que n'importe quelle valeur autre que NULL forçait la constante a être catégorisée.
5.0.0 Le paramètre categorize a été ajouté.

Exemples

Exemple #1 Exemple avec get_defined_constants()

<?php
print_r
(get_defined_constants());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Voir aussi



get_extension_funcs

(PHP 4, PHP 5)

get_extension_funcsListe les fonctions d'une extension

Description

array get_extension_funcs ( string $module_name )

Retourne le nom des fonctions définies dans le module module_name.

Liste de paramètres

module_name

Le nom du module.

Note:

Ce paramètre doit être en minuscule.

Valeurs de retour

Retourne un tableau contenant toutes les fonctions, ou FALSE si module_name n'est pas une extension valide.

Exemples

Exemple #1 Affiche toutes les fonctions XML

<?php
print_r
(get_extension_funcs("xml"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
    [22] => utf8_encode
    [23] => utf8_decode
)

Voir aussi



get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_pathLit la valeur de la directive de configuration include_path

Description

string get_include_path ( void )

Lit la valeur de la directive de configuration include_path.

Valeurs de retour

Retourne le chemin, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec get_include_path()

<?php
// Fonctionne depuis PHP 4.3.0
echo get_include_path();

// Fonctionne sur toutes les versions
echo ini_get('include_path');
?>

Voir aussi



get_included_files

(PHP 4, PHP 5)

get_included_filesRetourne un tableau avec les noms des fichiers qui sont inclus dans un script

Description

array get_included_files ( void )

Retourne un tableau contenant les noms de tous les fichiers qui ont été ajoutés au script avec les fonctions require_once(), include_once(), require() ou include().

Valeurs de retour

Retourne un tableau contenant les noms de tous les fichiers.

Le script en cours est considéré comme fichier inclus, il sera donc listé avec les autres fichiers.

Les fichiers inclus ou requis plusieurs fois ne s'affichent qu'une fois dans le tableau retourné.

Historique

Version Description
4.0.1 En PHP 4.0.1 et inférieure, cette fonction supposait que les fichiers requis utilisait l'extension .php ; les autres extensions ne fonctionnaient pas. Par ailleurs, dans cette version, le tableau retourné par la fonction get_included_files() était un tableau associatif et ne reprenait que les fichiers ajoutés avec include() et include_once().

Exemples

Exemple #1 Exemple avec get_included_files()

<?php
// Ce fichier est abc.php

include 'test1.php';
include_once 
'test2.php';
require 
'test3.php';
require_once 
'test4.php';

$included_files get_included_files();

foreach (
$included_files as $filename) {
    echo 
"$filename\n";
}

?>

L'exemple ci-dessus va afficher :

abc.php
test1.php
test2.php
test3.php
test4.php

Notes

Note:

Les fichiers inclus en utilisant la directive de configuration auto_prepend_file ne sont pas listés.

Voir aussi



get_loaded_extensions

(PHP 4, PHP 5)

get_loaded_extensionsRetourne la liste de tous les modules compilés et chargés

Description

array get_loaded_extensions ([ bool $zend_extensions = false ] )

Retourne un tableau contenant les noms de tous les modules compilés et chargés par l'application PHP courante.

Liste de paramètres

zend_extensions

Retourne uniquement les extensions Zend. Par défaut vaut FALSE et ne liste que les extensions PHP classiques comme mysqli par exemple.

Valeurs de retour

Retourne un tableau indexé des noms de tous les modules.

Historique

Version Description
5.2.4 Le paramètre optionnel zend_extensions a été ajouté

Exemples

Exemple #1 Exemple avec get_loaded_extensions()

<?php
print_r
(get_loaded_extensions());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

Voir aussi



get_magic_quotes_gpc

(PHP 4, PHP 5)

get_magic_quotes_gpcRetourne la configuration actuelle de l'option magic_quotes_gpc

Description

int get_magic_quotes_gpc ( void )

Retourne la configuration actuelle de l'option magic_quotes_gpc

Gardez en tête que vous ne pouvez pas définir magic_quotes_gpc au moment de l'exécution.

Pour plus d'informations sur magic_quotes, voir la section sur les guillemets magiques.

Valeurs de retour

Retourne 0 si magic_quotes_gpc est désactivée, 1 sinon.

Exemples

Exemple #1 Exemple avec get_magic_quotes_gpc()

<?php
echo get_magic_quotes_gpc();         // 1
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

if (get_magic_quotes_gpc()) {
    
$lastname stripslashes($_POST['lastname']);
}
else {
    
$lastname $_POST['lastname'];
}

// Si vous utilisez MySQL
$lastname mysql_real_escape_string($lastname);

echo 
$lastname// O\'reilly
$sql "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

Notes

Note:

Si la directive magic_quotes_sybase est activée, elle remplacera complètement magic_quotes_gpc. Ce qui fait que même si get_magic_quotes() retourne TRUE les guillemets doubles, les antislashs ou les caractères NULL ne seront pas protégés. Seul les guillemets simples le seront. Dans ce cas, ils ressembleront à ''.

Voir aussi



get_magic_quotes_runtime

(PHP 4, PHP 5)

get_magic_quotes_runtimeRetourne la configuration actuelle de l'option magic_quotes_runtime

Description

int get_magic_quotes_runtime ( void )

Retourne la configuration actuelle de l'option magic_quotes_runtime.

Valeurs de retour

Retourne 0 si magic_quotes_runtime est désactivée, 1 sinon.

Exemples

Exemple #1 Exemple avec get_magic_quotes_runtime()

<?php
// Vérifie si magic_quotes_runtime est activé
if(get_magic_quotes_runtime())
{
    
// Désactivation
    
set_magic_quotes_runtime(false);
}
?>

Voir aussi



get_required_files

(PHP 4, PHP 5)

get_required_filesAlias de get_included_files()

Description

Cette fonction est un alias de : get_included_files().



getenv

(PHP 4, PHP 5)

getenvRetourne la valeur d'une variable d'environnement

Description

string getenv ( string $varname )

Retourne la valeur d'une variable d'environnement.

Vous pouvez voir une liste complète des variables d'environnement en utilisant la fonction phpinfo(). Vous pouvez trouver la signification de chacune d'entre elles en consultant la » RFC 3875, en particulier la section 4.1 "Request Meta-Variables".

Liste de paramètres

varname

Le nom de la variable.

Valeurs de retour

Retourne la valeur de la variable d'environnement varname, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec getenv()

<?php
// Exemple d'utilisation de getenv()
$ip getenv('REMOTE_ADDR');

// Ou utilisez simplement une Superglobale ($_SERVER ou $_ENV)
$ip $_SERVER['REMOTE_ADDR'];
?>

Voir aussi



getlastmod

(PHP 4, PHP 5)

getlastmodRetourne la date de dernière modification de la page

Description

int getlastmod ( void )

Retourne la date de dernière modification de la page.

Si vous voulez récupérer la date de la dernière modification d'un fichier différent, utilisez la fonction filemtime().

Valeurs de retour

Retourne la date de dernière modification de la page. La valeur retournée est un timestamp UNIX, utilisable comme paramètre avec la fonction date(). Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec getlastmod()

<?php
// affiche par exemple 'Dernière modification: April 20 2004 20:43:59.'
echo "Dernière modification : " date ("F d Y H:i:s."getlastmod());
?>

Voir aussi

  • date() - Formate une date/heure locale
  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmygid() - Retourne le GID du propriétaire du script
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getmyinode() - Retourne l'inode du script
  • getmypid() - Retourne le numéro de processus courant de PHP
  • filemtime() - Lit la date de dernière modification du fichier



getmygid

(PHP 4 >= 4.1.0, PHP 5)

getmygidRetourne le GID du propriétaire du script

Description

int getmygid ( void )

Retourne le GID du propriétaire du script.

Valeurs de retour

Retourne le GID du propriétaire du script courant, ou FALSE si une erreur survient.

Voir aussi



getmyinode

(PHP 4, PHP 5)

getmyinodeRetourne l'inode du script

Description

int getmyinode ( void )

Retourne l'inode du script courant.

Valeurs de retour

Retourne l'inode du script courant, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

  • getmygid() - Retourne le GID du propriétaire du script
  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmypid() - Retourne le numéro de processus courant de PHP
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getlastmod() - Retourne la date de dernière modification de la page



getmypid

(PHP 4, PHP 5)

getmypidRetourne le numéro de processus courant de PHP

Description

int getmypid ( void )

Retourne le numéro de processus courant de PHP.

Valeurs de retour

Retourne le numéro de processus courant de PHP, ou FALSE si une erreur survient.

Notes

Avertissement

Les identifiants de processus ne sont pas uniques, et forment une source d'entropie faible. Nous recommandons de ne pas utiliser les pid pour assurer la sécurité d'un système.

Voir aussi



getmyuid

(PHP 4, PHP 5)

getmyuidRetourne l'UID du propriétaire du script actuel

Description

int getmyuid ( void )

Retourne l'UID du propriétaire du script actuel.

Valeurs de retour

Retourne l'identifiant du propriétaire du script actuel (UID) ou FALSE en cas d'erreur.

Voir aussi



getopt

(PHP 4 >= 4.3.0, PHP 5)

getoptLit des options passées dans la ligne de commande

Description

array getopt ( string $options [, array $longopts ] )

getopt() lit les options passées dans la ligne de commande.

Liste de paramètres

options
Chaque caractère dans cette chaîne sera utilisé en tant que caractères optionnels et devra correspondre aux options passées, commençant par un tiret simple (-). Par exemple, une chaîne optionnelle "x" correspondra à l'option -x. Seuls a-z, A-Z et 0-9 sont autorisés.
longopts
Un tableau d'options. Chaque élément de ce tableau sera utilisé comme option et devra correspondre aux options passées, commençant par un tiret double (--). Par exemple, un élément longopts "opt" correspondra à l'option --opt.

Note: Avant PHP 5.3.0, ce paramètre n'était disponible que sous peu de systèmes.

Le paramètre options peut contenir les éléments suivants :

  • Caractères individuels (n'accepte pas de valeur)
  • Caractères suivis par un deux-points (le paramètre nécessite une valeur)
  • Caractères suivis par deux deux-points (valeur optionnelle)
Les valeurs optionnelles sont les premiers arguments après la chaîne. Peut importe que la valeur soit suivie d'un espace ou non.

Note: Les valeurs optionnelles n'acceptent pas l'espace comme séparateur.

Note:

Le format des paramètres options et longopts est identique ; la seule différence est que longopts prend un tableau en option (où chaque élément est une option) alors que options prend une chaîne (où chaque caractère est une option).

Valeurs de retour

Cette fonction retourne un tableau d'options/arguments, ou FALSE si une erreur survient.

Note:

L'analyse des options s'arrêtera lorsque la première mauvaise option sera trouvée, et tout ce qui suivra sera ignoré.

Historique

Version Description
5.3.0 Ajout du support de "=" comme séparateur argument/valeur.
5.3.0 Ajout du support des valeurs optionnelles (spécifié par "::").
5.3.0 Cette fonction n'est plus dépendante du système et fonctionne maintenant également sous Windows.

Exemples

Exemple #1 Exemple avec getopt()

<?php
$options 
getopt("f:hp:");
var_dump($options);
?>

L'exécution du script ci-dessus avec la commande php script.php -fvalue -h affichera :

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

Exemple #2 Second exemple avec getopt()

<?php
$shortopts  
"";
$shortopts .= "f:";  // Valeur requise
$shortopts .= "v::"// Valeur optionnelle
$shortopts .= "abc"// Ces options n'acceptent pas de valeur

$longopts  = array(
    
"required:",     // Valeur requise
    
"optional::",    // Valeur optionnelle
    
"option",        // Aucune valeur
    
"opt",           // Aucune valeur
);
$options getopt($shortopts$longopts);
var_dump($options);
?>

L'exécution du script ci-dessus avec la commande php script.php -f "value for f" -v -a --required value --optional="optional value" --option affichera :

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

Exemple #3 Troisième exemple avec getopt()

Passage de plusieurs options

<?php
$options 
getopt("abc");
var_dump($options);
?>

L'exécution du script ci-dessus avec la commande php script.php -aaac affichera :

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}



getrusage

(PHP 4, PHP 5)

getrusageRetourne le niveau d'utilisation des ressources

Description

array getrusage ([ int $who = 0 ] )

C'est une interface à la fonction système getrusage(2). Elle retourne un tableau associatif contenant les informations renvoyées par cet appel système.

Liste de paramètres

who

Si who est égal à 1, getrusage() sera appelé avec le paramètre RUSAGE_CHILDREN.

Valeurs de retour

Retourne un tableau associatif contenant les données retournées depuis l'appel système. Toutes les entrées sont accessibles en utilisant leurs noms de champs documentés.

Exemples

Exemple #1 Exemple avec getrusage()

<?php
$dat 
getrusage();
echo 
$dat["ru_nswap"];         // Taille de la mémoire swap
echo $dat["ru_majflt"];        // Nombre de page mémoires utilisées
echo $dat["ru_utime.tv_sec"];  // Temps utilisateur (en secondes)
echo $dat["ru_utime.tv_usec"]; // Temps utilisateur (en microsecondes)
?>

Notes

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • La page de manuel getrusage(2) de votre système



ini_alter

(PHP 4, PHP 5)

ini_alterAlias de ini_set()

Description

Cette fonction est un alias de : ini_set().



ini_get_all

(PHP 4 >= 4.2.0, PHP 5)

ini_get_allLit toutes les valeurs de configuration

Description

array ini_get_all ([ string $extension [, bool $details = true ]] )

Lit toutes les valeurs de configuration.

Liste de paramètres

extension

Un nom d'extension, optionnel. S'il est défini, la fonction retournera uniquement les options spécifiques à cette extension.

details

Récupère les détails, ou uniquement la valeur courante de chaque configuration. Par défaut, vaut TRUE (récupère les détails).

Valeurs de retour

Retourne un tableau associatif dont les clés sont les noms des directives.

Lorsque le paramètre details vaut TRUE (défaut), le tableau contiendra les valeurs global_value (définies dans le fichier php.ini), local_value (définie éventuellement avec la fonction ini_set() ou via un .htaccess), et access (le degré d'accès).

Lorsque le paramètre details vaut FALSE, la valeur sera la valeur courant de l'option.

Voir le manuel pour plus d'informations sur la signification du degré d'accès.

Note:

Il est possible pour une directive d'avoir plusieurs degrés d'accès, et c'est la raison pour laquelle access montre les valeurs du masque appropriées.

Historique

Version Description
5.3.0 Ajout du paramètre details.

Exemples

Exemple #1 Exemple avec ini_get_all()

<?php
print_r
(ini_get_all("pcre"));
print_r(ini_get_all());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Exemple #2 Désactive le paramètre details

<?php
print_r
(ini_get_all("pcre"false)); // Ajouté en PHP 5.3.0
print_r(ini_get_all(nullfalse)); // Ajouté en PHP 5.3.0
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Voir aussi



ini_get

(PHP 4, PHP 5)

ini_getLit la valeur d'une option de configuration

Description

string ini_get ( string $varname )

Retourne la valeur de l'option de configuration varname en cas de succès.

Liste de paramètres

varname

Le nom de l'option de configuration.

Valeurs de retour

Retourne la valeur de l'option de configuration varname en cas de succès, ou une chaîne de caractères vide pour les valeurs NULL. Retourne FALSE si l'option de configuration n'existe pas.

Exemples

Exemple #1 Exemples avec ini_get()

<?php
/*
Notre fichier php.ini contient les directives suivantes :

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' ini_get('display_errors') . "\n";
echo 
'register_globals = ' ini_get('register_globals') . "\n";
echo 
'post_max_size = ' ini_get('post_max_size') . "\n";
echo 
'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 
'post_max_size in bytes = ' return_bytes(ini_get('post_max_size'));

function 
return_bytes($val) {
    
$val trim($val);
    
$last strtolower($val[strlen($val)-1]);
    switch(
$last) {
        
// Le modifieur 'G' est disponible depuis PHP 5.1.0
        
case 'g':
            
$val *= 1024;
        case 
'm':
            
$val *= 1024;
        case 
'k':
            
$val *= 1024;
    }

    return 
$val;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

Notes

Note: Lecture de valeurs booléennes

Une directive de configuration ayant la valeur de off sera retourné sous la forme d'une chaîne vide ou "0" alors que la valeur on retournera "1". Cette fonction peut également retourner la valeur littérale du fichier INI.

Note: Lors de la lecture des tailles de mémoire

Plusieurs directives traitant de taille mémoire, comme upload_max_filesize, sont stockées dans le fichier php.ini avec une notation courte. ini_get() retourne la chaîne exacte stockée dans le fichier php.ini et NON PAS son équivalent entier. Appliquer des opérations arithmétiques classiques sur ces valeurs ne conduira à rien de bon. L'exemple ci-dessous montre une façon de convertir la notation sténographique en octets, de la même façon dont le fait le source PHP.

Voir aussi



ini_restore

(PHP 4, PHP 5)

ini_restoreRestaure la valeur de l'option de configuration

Description

void ini_restore ( string $varname )

Restaure la valeur originale de l'option de configuration varname.

Liste de paramètres

varname

Le nom de l'option de configuration.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ini_restore()

<?php
$setting 
'y2k_compliance';

echo 
'Valeur courante de \'' $setting '\': ' ini_get($setting), PHP_EOL;

ini_set($settingini_get($setting) ? 1);
echo 
'Nouvelle valeur de \'' $setting '\': ' ini_get($setting), PHP_EOL;

ini_restore($setting);
echo 
'Valeur originale de \'' $setting '\': ' ini_get($setting), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Valeur courante de 'y2k_compliance': 1
Nouvelle valeur de 'y2k_compliance': 0
Valeur originale de 'y2k_compliance': 1

Voir aussi

  • ini_get() - Lit la valeur d'une option de configuration
  • ini_get_all() - Lit toutes les valeurs de configuration
  • ini_set() - Modifie la valeur d'une option de configuration



ini_set

(PHP 4, PHP 5)

ini_setModifie la valeur d'une option de configuration

Description

string ini_set ( string $varname , string $newvalue )

Change la valeur de l'option de configuration varname et lui donne celle de newvalue. La valeur de l'option de configuration sera modifiée durant toute l'exécution du script et pour ce script spécifiquement. Elle reprendra sa valeur par défaut dès la fin du script.

Liste de paramètres

varname

Les options disponibles ne peuvent pas toutes être modifiées avec ini_set(). La liste de toutes les options disponibles se trouve dans l'annexe.

newvalue

La nouvelle valeur pour l'option.

Valeurs de retour

Retourne l'ancien valeur en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Définit une option de configuration

<?php
echo ini_get('display_errors');

if (!
ini_get('display_errors')) {
    
ini_set('display_errors'1);
}

echo 
ini_get('display_errors');
?>

Voir aussi



magic_quotes_runtime

(PHP 4, PHP 5)

magic_quotes_runtimeAlias de set_magic_quotes_runtime()

Description

Cette fonction est un alias de : set_magic_quotes_runtime()



main

mainFausse documentation pour main()

Description

Il n'y a pas de fonction appelée main(), hormis dans les sources PHP. En PHP 4.3.0, un nouveau type de gestion d'erreur a été introduit dans les sources de PHP : php_error_docref. Une des fonctionnalité était de fournir un lien vers la page de manuel de PHP lorsque les directives html_errors (par défaut) et docref_root (par défaut jusqu'en PHP 4.3.2) sont activées.

Certains messages d'erreur faisaient référence à une page de manuel pour la fonction main() alors que cette page n'existe pas. Ajoutez alors un » rapport de bug, en anglais, où vous mentionnez la fonction PHP vous ayant conduite sur cette page. Cette erreur sera corrigée et documentée.

Erreurs connues pour diriger sur la page main()
Nom de la fonction Ne pointe plus sur cette page depuis la version
include() 5.1.0
include_once() 5.1.0
require() 5.1.0
require_once() 5.1.0



memory_get_peak_usage

(PHP 5 >= 5.2.0)

memory_get_peak_usageRetourne la quantité de mémoire maximale allouée par PHP

Description

int memory_get_peak_usage ([ bool $real_usage = false ] )

Retourne la quantité de mémoire maximale, en octets, qui a été allouée à votre script PHP.

Liste de paramètres

real_usage

Définir à TRUE pour récupérer la taille réelle de la mémoire allouée par le système. Si ce paramètre n'est pas définit ou vaut FALSE, seule la mémoire utilisée par emalloc() sera retournée.

Valeurs de retour

Retourne la quantité de mémoire, en octets.

Historique

Version Description
5.2.1 La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
5.2.0 Le paramètre real_usage a été ajouté.

Voir aussi



memory_get_usage

(PHP 4 >= 4.3.2, PHP 5)

memory_get_usageIndique la quantité de mémoire utilisée par PHP

Description

int memory_get_usage ([ bool $real_usage = false ] )

Retourne la quantité de mémoire allouée à PHP à cet instant.

Liste de paramètres

real_usage

Définir à TRUE pour récupérer la taille réelle de la mémoire allouée par le système. Si ce paramètre n'est pas définit ou vaut FALSE, seule la mémoire utilisée par emalloc() sera retournée.

Valeurs de retour

Retourne la quantité de mémoire, en octets.

Historique

Version Description
5.2.1 La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
5.2.0 Le paramètre real_usage a été ajouté.

Exemples

Exemple #1 Exemple avec memory_get_usage()

<?php
// Ceci n'est qu'un exemple. Les chiffres ci-dessous
// différeront suivant les systèmes et les configurations

echo memory_get_usage() . "\n"// 36640

$a str_repeat("Hello"4242);

echo 
memory_get_usage() . "\n"// 57960

unset($a);

echo 
memory_get_usage() . "\n"// 36744

?>

Voir aussi



php_ini_loaded_file

(PHP 5 >= 5.2.4)

php_ini_loaded_fileRécupère le chemin d'un fichier php.ini chargé

Description

string php_ini_loaded_file ( void )

Vérifie si un fichier php.ini est chargé, et récupère son chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le chemin du fichier php.ini chargé, ou FALSE si aucun n'a été chargé.

Exemples

Exemple #1 Exemple avec php_ini_loaded_file()

<?php
$inipath 
php_ini_loaded_file();

if (
$inipath) {
    echo 
'php.ini chargé : ' $inipath;
} else {
    echo 
'Aucun fichier php.ini n\'a été chargé';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

php.ini chargé : /usr/local/php/php.ini

Voir aussi



php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5)

php_ini_scanned_filesRetourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires

Description

string php_ini_scanned_files ( void )

php_ini_scanned_files() retourne une liste de noms de fichiers de configuration analysés, en plus de php.ini. Cette liste est au format CSV. Ces fichiers sont situés dans un dossier défini par l'option --with-config-file-scan-dir , définie au moment de la compilation.

Les fichiers retournés incluent le chemin, comme déclaré dans la directive --with-config-file-scan-dir . De plus, chaque virgule est suivie d'une nouvelle ligne.

Valeurs de retour

Retourne une chaîne de caractères, où les noms de fichiers sont séparés par des virgules. Si --with-config-file-scan-dir n'était pas configuré, FALSE est retourné. Si cette option était configurée, mais que le dossier était vide, une chaîne vide est retournée. Si un fichier n'est pas lisible, le nom du fichier sera inclus dans la liste, mais une erreur sera générée. Cette erreur sera visible au moment de la compilation, et lorsque vous appellerez la fonction php_ini_scanned_files().

Exemples

Exemple #1 Un exemple de liste retournée par php_ini_scanned_files()

<?php
if ($filelist php_ini_scanned_files()) {
    if (
strlen($filelist) > 0) {
        
$files explode(','$filelist);

        foreach (
$files as $file) {
            echo 
"<li>" trim($file) . "</li>\n";
        }
    }
}
?>

Voir aussi

  • ini_set() - Modifie la valeur d'une option de configuration
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • php_ini_loaded_file() - Récupère le chemin d'un fichier php.ini chargé



php_logo_guid

(PHP 4, PHP 5)

php_logo_guidRetourne l'identifiant du logo PHP

Description

string php_logo_guid ( void )

Cette fonction retourne l'identifiant qui peut être utilisé pour afficher le logo PHP en utilisant une image incorporée dans les sources. Le logo est affiché uniquement si expose_php vaut On.

Valeurs de retour

Retourne PHPE9568F34-D428-11d2-A769-00AA001ACF42.

Exemples

Exemple #1 Exemple avec php_logo_guid()

<?php

echo '<img src="' $_SERVER['PHP_SELF'] .
     
'?=' php_logo_guid() . '" alt="Logo PHP !" />';

?>

Voir aussi



php_sapi_name

(PHP 4 >= 4.0.1, PHP 5)

php_sapi_nameRetourne le type d'interface utilisée entre le serveur web et PHP

Description

string php_sapi_name ( void )

Retourne une chaîne en minuscule qui décrit le type d'interface (l'API, SAPI serveur) que PHP utilise. Par exemple, en PHP CLI, cette chaîne sera "cli" tandis qu'avec Apache, elle pourra avoir plusieurs valeurs différentes suivant le SAPI exact utilisé. Les valeurs possibles sont listées ci-dessous.

Valeurs de retour

Retourne le type de l'interface, sous la forme d'une chaîne de caractères en minuscule.

Voici une liste non exhaustive des valeurs possibles : aolserver, apache, apache2filter, apache2handler, caudium, cgi (jusqu'en PHP 5.3), cgi-fcgi, cli, continuity, embed, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, tux et webjames.

Exemples

Exemple #1 Exemple avec php_sapi_name()

Cet exemple cherche la sous-chaîne cgi car elle peut également valoir cgi-fcgi.

<?php
$sapi_type 
php_sapi_name();
if (
substr($sapi_type03) == 'cgi') {
    echo 
"Vous utilisez CGI PHP\n";
} else {
    echo 
"Vous n'utilisez pas CGI PHP\n";
}
?>

Notes

Note: Une approche alternative

La constante PHP PHP_SAPI a une valeur identique à php_sapi_name().

Astuce

Un comportement inattendu

Le SAPI défini ne doit pas être ambigu, car par exemple, au lieu de apache, il peut être défini à apache2handler ou apache2filter.

Voir aussi



php_uname

(PHP 4 >= 4.0.2, PHP 5)

php_unameRetourne les informations sur le système d'exploitation

Description

string php_uname ([ string $mode = "a" ] )

php_uname() retourne une description sur le système d'exploitation sur lequel tourne PHP. C'est la même chaîne que celle que vous voyez en haut du phpinfo(). Si vous voulez juste savoir le nom du système d'exploitation, utilisez plutôt la constante PHP_OS mais gardez à l'esprit que cette constante contient le nom du système sur lequel PHP a été compilé.

Sur certaines vieilles plate-formes Unix, il n'est pas possible de déterminer les informations courantes de l'OS, auquel cas cette fonction se contente de retourner le nom de l'OS sur lequel PHP a été compilé. Cela n'arrivera que si votre bibliothèque uname() n'existe pas ou ne fonctionne pas.

Liste de paramètres

mode

mode est un seul caractère qui définit quelles seront les informations à retourner :

  • 'a': par défaut, contient tous les modes de la séquence "s n r v m".
  • 's': nom du système d'exploitation. Par exemple, FreeBSD.
  • 'n': nom de l'hôte. Par exemple, localhost.example.com.
  • 'r': nom de la version. Par exemple, 5.1.2-RELEASE.
  • 'v': information sur la version. Varie énormément suivant le système d'exploitation.
  • 'm': type de la machine. Par exemple, i386.

Valeurs de retour

Retourne la description, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemples avec php_uname()

<?php
echo php_uname();
echo 
PHP_OS;

/* Affichages possibles :
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS03)) === 'WIN') {
    echo 
'Le serveur tourne sous Windows !';
} else {
    echo 
'Le serveur ne tourne pas sous Windows !';
}

?>

Il existe aussi des constantes PHP pré-définies liées qui peuvent s'avérer utiles, par exemple :

Exemple #2 Exemples avec quelques constantes liées au système

<?php
// *nix
echo DIRECTORY_SEPARATOR// /
echo PHP_SHLIB_SUFFIX;    // so
echo PATH_SEPARATOR;      // :

// Win*
echo DIRECTORY_SEPARATOR// \
echo PHP_SHLIB_SUFFIX;    // dll
echo PATH_SEPARATOR;      // ;
?>

Voir aussi

  • phpversion() - Retourne le numéro de la version courante de PHP
  • php_sapi_name() - Retourne le type d'interface utilisée entre le serveur web et PHP
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP



phpcredits

(PHP 4, PHP 5)

phpcreditsAffiche les crédits de PHP

Description

bool phpcredits ([ int $flag = CREDITS_ALL ] )

Affiche la liste des développeurs PHP, des modules, etc. Elle génère le code HTML approprié pour insérer les informations dans une page.

Liste de paramètres

flag

Pour générer une page personnalisée sur les crédits, il faut utiliser le paramètre flag.

Paramètres prédéfinis de phpcredits()
Nom Description
CREDITS_ALL Tous les crédits, équivalent à : CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. La fonction génère alors une page HTML complète.
CREDITS_DOCS Les crédits du groupe de documentation
CREDITS_FULLPAGE En général, ce paramètre est utilisé avec d'autres constantes. Il indique que la page ainsi générée doit être une page HTML complète, avec toutes les balises nécessaires.
CREDITS_GENERAL Crédits Généraux : conception et design du langage, auteurs de PHP et du module SAPI.
CREDITS_GROUP Une liste des développeurs principaux
CREDITS_MODULES Une liste des extensions de PHP, et leurs auteurs
CREDITS_SAPI Une liste des API serveur pour PHP et leurs auteurs

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec phpcredits()

<?php
phpcredits
(CREDITS_GENERAL);
?>

Exemple #2 Affiche les développeurs principaux ansi que le groupe de documentation

<?php
phpcredits
(CREDITS_GROUP CREDITS_DOCS CREDITS_FULLPAGE);
?>

Exemple #3 Affiche tous les crédits

<html>
 <head>
  <title>Ma page de crédits</title>
 </head>
 <body>
<?php
// Un peu de votre code
phpcredits(CREDITS_ALL CREDITS_FULLPAGE);
// Encore un peu de votre code
?>
 </body>
</html>

Voir aussi

  • phpversion() - Retourne le numéro de la version courante de PHP
  • php_logo_guid() - Retourne l'identifiant du logo PHP
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP



phpinfo

(PHP 4, PHP 5)

phpinfoAffiche de nombreuses informations sur la configuration de PHP

Description

bool phpinfo ([ int $what = INFO_ALL ] )

Affiche de nombreuses informations sur PHP, concernant sa configuration courante : options de compilation, extensions, version, informations sur le serveur, et l'environnement (lorsqu'il est compilé comme module), environnement PHP, informations sur le système, chemins, valeurs générales et locales de configuration, en-têtes HTTP et la licence PHP.

Comme tous les systèmes sont configurés différemment, phpinfo() sert généralement à vérifier la configuration ainsi que les variables prédéfinies, pour une plate-forme donnée.

phpinfo() est un bon outil de débogage, car il affiche le contenu de toutes les variables EGPCS (Environnement, GET, POST, Cookie, Serveur).

Liste de paramètres

what

L'affichage peut être personnalisé en utilisant une ou plusieurs des constantes suivantes. Elles sont combinables avec l'opérateur or, et doivent être passées dans le paramètre what. Vous pouvez aussi additionner ces constantes.

Options de phpinfo()
Nom de la constante Valeur Description
INFO_GENERAL 1 La ligne de configuration, le chemin du php.ini, la date de compilation, le serveur web, le système, etc.
INFO_CREDITS 2 Les crédits de PHP. Voir aussi phpcredits().
INFO_CONFIGURATION 4 Valeurs courantes locales et générales des directives PHP. Voyez aussi la fonction ini_get().
INFO_MODULES 8 Modules chargés et leur configuration spécifique. Voir aussi la fonction get_loaded_extensions().
INFO_ENVIRONMENT 16 Informations sur les variables d'environnement, qui sont disponibles dans la variable $_ENV.
INFO_VARIABLES 32 Affiche toutes les variables prédéfinies, issues de l'environnement, la méthode GET, la méthode POST, les cookies et le serveur.
INFO_LICENSE 64 La licence PHP. Voir aussi » la FAQ de la licence.
INFO_ALL -1 Affiche toutes les informations suscitées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.2 L'information "Loaded Configuration File" a été ajoutée, alors qu'avant, seule l'information "Configuration File (php.ini) Path" existée.

Exemples

Exemple #1 Exemple avec phpinfo()

<?php

// Affiche toutes les informations, comme le ferait INFO_ALL
phpinfo();

// Affiche uniquement le module d'information.
// phpinfo(8) fournirait les mêmes informations.
phpinfo(INFO_MODULES);

?>

Notes

Note:

Une partie des informations affichées sont désactivées si la directive expose_php est configurée avec la valeur off. Cela inclus les logos PHP et Zend, ainsi que les crédits.

Note:

phpinfo() affiche du texte au lieu de HTML lorsque vous utilisez la version CLI.

Voir aussi



phpversion

(PHP 4, PHP 5)

phpversionRetourne le numéro de la version courante de PHP

Description

string phpversion ([ string $extension ] )

Retourne le numéro de la version courante de PHP.

Liste de paramètres

extension

Un nom d'extension, optionnel.

Valeurs de retour

Si le paramètre optionnel extension est spécifié, la fonction phpversion() retournera la version de cette extension ou FALSE s'il n'y a aucune information sur la version d'associée ou si cette extensions n'est pas disponible.

Exemples

Exemple #1 Exemple avec phpversion()

<?php
// affiche le numéro de version courante du PHP.
echo 'Version PHP courante : ' phpversion();

// affiche e.g. '2.0' ou rien du tout si cette extension n'est pas active
echo phpversion('tidy');
?>

Exemple #2 Exemple avec PHP_VERSION_ID

<?php
// PHP_VERSION_ID est disponible depuis PHP 5.2.7, 
// si votre version est antérieure, émulez-le.
if (!defined('PHP_VERSION_ID')) {
   
$version explode('.',PHP_VERSION);

   
define('PHP_VERSION_ID', ($version[0] * 10000 $version[1] * 100 $version[2]));
}

// PHP_VERSION_ID est défini comme un nombre : plus il est grand, plus
// la version de PHP est récente. Il est défini comme illustré dans 
// le code ci-dessous : 
//
// $version_id = $major_version * 10000 + $minor_version * 100 + $release_version;
//
// Maintenant, avec PHP_VERSION_ID, il est possible de vérifier la disponibilité
// de fonctionnalités de PHP, sans passer par version_compare().
//
// Par exemple, on peut définir les constantes PHP_VERSION_* qui n'étaient pas
// disponibles avant 5.2.7

if (PHP_VERSION_ID 50207) {
    
define('PHP_MAJOR_VERSION',   $version[0]);
    
define('PHP_MINOR_VERSION',   $version[1]);
    
define('PHP_RELEASE_VERSION'$version[2]);

    
// etc.

}
?>

Notes

Note:

Cette information est aussi disponible via la constante prédéfinie PHP_VERSION. Plus d'informations sur les versions, avec les constantes PHP_VERSION_*.

Voir aussi



putenv

(PHP 4, PHP 5)

putenvFixe la valeur d'une variable d'environnement

Description

bool putenv ( string $setting )

Fixe la valeur d'une variable d'environnement. Cette valeur n'existera que durant la vie du script courant, et l'environnement initial sera restauré lorsque le script sera terminé.

Modifier la valeur de certaines variables système peut être un trou de sécurité considérable. La directive de configuration safe_mode_allowed_env_vars contient une liste de préfixes, séparés par des virgules. Lorsque le Safe Mode est actif, l'utilisateur ne peut que modifier les variables dont le nom commence par les préfixes fournis par cette directive. Par défaut, les utilisateurs ne peuvent modifier que les variables qui commencent par PHP_ (i.e. PHP_FOO=BAR). Note : Si cette directive est vide, PHP autorisera la modification de TOUTES les variables d'environnement !

La directive de configuration safe_mode_protected_env_vars contient une liste de variables d'environnement, séparées par des virgules. Les utilisateurs ne pourront pas modifier ces variables avec la fonction putenv(). Ces variables seront protégées même si safe_mode_allowed_env_vars permet leur modification.

Liste de paramètres

setting

La configuration, comme "FOO=BAR"

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification d'une variable d'environnement

<?php
putenv
("UNIQID=$uniqid");
?>

Notes

Avertissement

Les directives safe_mode_allowed_env_vars et safe_mode_protected_env_vars ne prennent effets que si le safe_mode est activé.

Voir aussi

  • getenv() - Retourne la valeur d'une variable d'environnement



restore_include_path

(PHP 4 >= 4.3.0, PHP 5)

restore_include_pathRestaure la valeur de la directive de configuration include_path

Description

void restore_include_path ( void )

Restaure la valeur de la directive de configuration include_path à sa valeur originale de début de script, telle qu'inscrite dans le php.ini.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec restore_include_path()

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo 
get_include_path();  // /inc

// Fonctionne depuis PHP 4.3.0
restore_include_path();

// Fonctionne sur toutes les versions
ini_restore('include_path');

echo 
get_include_path();  // .:/usr/local/lib/php

?>

Voir aussi



set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_pathModifie la valeur de la directive de configuration include_path

Description

string set_include_path ( string $new_include_path )

Modifie la valeur de la directive de configuration include_path, pour la durée du script en cours.

Liste de paramètres

new_include_path

La nouvelle valeur pour la directive de configuration include_path

Valeurs de retour

Retourne l'ancienne valeur de include_path en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec set_include_path()

<?php
// Fonctionne depuis PHP 4.3.0
set_include_path('/inc');

// Fonctionne sur toutes les versions
ini_set('include_path''/inc');
?>

Exemple #2 Ajout dans le chemin d'inclusion

En utilisant la constante PATH_SEPARATOR, il est possible d'étendre le chemin d'inclusion au vu du système.

Dans cet exemple, nous ajoutons /usr/lib/pear à la fin de l'actuel include_path.

<?php
$path 
'/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR $path);
?>

Voir aussi



set_magic_quotes_runtime

(PHP 4, PHP 5)

set_magic_quotes_runtimeActive/désactive l'option magic_quotes_runtime

Description

bool set_magic_quotes_runtime ( bool $new_setting )

Active/désactive l'option magic_quotes_runtime.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

new_setting

0 l'option est désactivée, 1 l'option est activée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec set_magic_quotes_runtime()

<?php
// Création d'un pointeur de fichier temporaire
$fp tmpfile();

// Écriture de quelques données dans ce pointeur
fwrite($fp'\'PHP\' est un acronyme récursif');

// Sans magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(false);

echo 
'Sans magic_quotes_runtime : ' fread($fp64), PHP_EOL;

// Avec magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(true);

echo 
'Avec magic_quotes_runtime : ' fread($fp64), PHP_EOL;

// Clean up
fclose($fp);
?>

L'exemple ci-dessus va afficher :

Sans magic_quotes_runtime: 'PHP' est un acronyme récursif
Avec magic_quotes_runtime: \'PHP\' est un acronyme récursif

Voir aussi



set_time_limit

(PHP 4, PHP 5)

set_time_limitFixe le temps maximum d'exécution d'un script

Description

void set_time_limit ( int $seconds )

Fixe le délai d'expiration d'un script, en secondes. Si cette limite est atteinte, le script s'interrompt, et renvoie une erreur fatale. La valeur par défaut est 30 secondes ou, si c'est le cas, la valeur de la directive max_execution_time définie dans le php.ini.

Lorsqu'elle est appelée, set_time_limit() remet le compteur à zéro. En d'autres termes, si la limite par défaut est à 30 secondes, et qu'après 25 secondes d'exécution du script l'appel set_time_limit(20) est fait, alors le script tournera pendant un total de 45 secondes avant de finir.

Liste de paramètres

seconds

Le temps maximal d'exécution, en secondes. S'il vaut 0, aucune limite n'est imposée.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Notez que set_time_limit() n'a pas d'effet lorsque PHP fonctionne en mode safe mode. Il n'y a pas d'autre solution que de changer de mode, ou de modifier la durée maximale d'exécution dans le php.ini.

Note:

La fonction set_time_limit() et la directive de configuration max_execution_time n'affectent que le temps d'exécution du script lui-même. Tout temps passé en dehors du script, comme un appel système utilisant system(), des opérations sur les flux, les requêtes sur base de données, etc. n'est pas pris en compte lors du calcul de la durée maximale d'exécution du script. Ceci est faux sous Windows où le temps mesuré est le temps réel.



sys_get_temp_dir

(PHP 5 >= 5.2.1)

sys_get_temp_dirRetourne le chemin du répertoire utilisé pour les fichiers temporaires

Description

string sys_get_temp_dir ( void )

Retourne le chemin du répertoire PHP où sont enregistrés les fichiers temporaires par défaut.

Valeurs de retour

Retourne le chemin du répertoire temporaire.

Exemples

Exemple #1 Exemple avec sys_get_temp_dir()

<?php
// Création d'un fichier temporaire dans le dossier
// des fichiers temporaires, en utilisant la fonction sys_get_temp_dir()
$temp_file tempnam(sys_get_temp_dir(), 'Tux');

echo 
$temp_file;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

C:\Windows\Temp\TuxA318.tmp

Voir aussi



version_compare

(PHP 4 >= 4.1.0, PHP 5)

version_compareCompare deux chaînes de version au format des versions PHP

Description

mixed version_compare ( string $version1 , string $version2 [, string $operator ] )

version_compare() compare les deux versions de PHP standardisées. Cette fonction est pratique pour les programmes qui doivent vérifier la version de PHP qui les fait tourner.

version_compare() remplace dans un premier temps _, - et + par un point (.) dans les chaînes de version et insère aussi des points avant et après tout caractère non-numérique pour que, par exemple, '4.3.5RC1' devienne '4.3.5.RC.1'. Ensuite, elle découpe les résultats, similairement à explode('.', $ver). Puis, elle compare les morceaux en allant de gauche à droite. Si une part contient des caractères alphabétiques, ils sont gérés dans l'ordre suivant : any string not found in this list < dev < alpha = a < beta = b < RC = rc < # < pl = p. De cette façon, il est possible de comparer non seulement des versions de différents niveaux, comme '4.1' et '4.1.2', mais aussi des versions de développement à la mode de PHP, à n'importe quel stade.

Liste de paramètres

version1

Premier numéro de version.

version2

Second numéro de version.

operator

Si troisième argument optionnel operator est spécifié, il est possible de tester une relation particulière. Les opérateurs possibles sont : <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne.

Ce paramètre est sensible à la casse, aussi les valeurs doivent être en minuscule.

Valeurs de retour

Par défaut, version_compare() retourne -1 si la première version est inférieure à la seconde, 0 si elles sont égales, et 1 si la seconde est inférieure à la première.

Lorsque l'on utilise le paramètre optionnel operator, la fonction retourne TRUE si la relation est celle spécifiée par l'opérateur, FALSE sinon.

Exemples

Les exemples ci-dessous utilisent la constante PHP_VERSION, sachant qu'elle contient la valeur de la version PHP utilisée pour exécuter le code.

Exemple #1 Exemple avec version_compare()

<?php
if (version_compare(PHP_VERSION'6.0.0') >= 0) {
    echo 
'J\'ai au moins la version 6.0.0 de PHP ; ma version : ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.3.0') >= 0) {
    echo 
'J\'ai au moins la version 5.3.0 de PHP ; ma version : ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.0.0''>=')) {
    echo 
'J\'utilise PHP 5 ; ma version : ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.0.0''<')) {
    echo 
'J\'utilise PHP 4 ; ma version : ' PHP_VERSION "\n";
}
?>

Notes

Note:

La constante PHP_VERSION contient la version courante de PHP.

Note:

Notez que les versions intermédiaires, comme 5.3.0-dev, sont considérées comme inférieures à leurs versions finales (telle que 5.3.0).

Voir aussi



zend_logo_guid

(PHP 4, PHP 5)

zend_logo_guidRetourne le logo de Zend

Description

string zend_logo_guid ( void )

zend_logo_guid() retourne l'identifiant pouvant être utilisé pour afficher le logo Zend en utilisant l'image intégrée.

Valeurs de retour

Retourne PHPE9568F35-D428-11d2-A769-00AA001ACF42.

Exemples

Exemple #1 Exemple avec zend_logo_guid()

<?php

echo '<img src="' $_SERVER['PHP_SELF'] .
     
'?=' zend_logo_guid() . '" alt="Zend Logo !" />';

?>

Voir aussi



zend_thread_id

(PHP 5)

zend_thread_idRetourne un identifiant unique du thread courant

Description

int zend_thread_id ( void )

Cette fonction retourne un identifiant unique pour le thread courant.

Valeurs de retour

Retourne l'identifiant du thread, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec zend_thread_id()

<?php
$thread_id 
zend_thread_id();

echo 
'ID du thread courant : ' $thread_id;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

ID du thread courant : 7864

Notes

Note:

Cette fonction n'est disponible que si PHP a été compilé avec le support ZTS (Zend Thread Safety) et le mode de débogage (--enable-debug).



zend_version

(PHP 4, PHP 5)

zend_versionLit la version courante du moteur Zend

Description

string zend_version ( void )

Retourne une chaîne contenant le numéro de version du moteur d'analyse Zend actuellement en cours d'utilisation.

Valeurs de retour

Retourne le numéro de la version du moteur Zend, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec zend_version()

<?php
echo "Version du moteur Zend : " zend_version();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du moteur Zend : 2.2.0

Voir aussi


Sommaire

  • assert_options — Fixe et lit différentes options d'assertions
  • assert — Vérifie si une assertion est fausse
  • dl — Charge une extension PHP à la volée
  • extension_loaded — Détermine si une extension est chargée ou non
  • gc_collect_cycles — Force le passage du collecteur de mémoire
  • gc_disable — Désactive le collecteur de références circulaires
  • gc_enable — Active le collecteur de références circulaires
  • gc_enabled — Retourne le statut du collecteur de références circulaires
  • get_cfg_var — Retourne la valeur d'une option de PHP
  • get_current_user — Retourne le nom du possesseur du script courant
  • get_defined_constants — Retourne la liste des constantes et leurs valeurs
  • get_extension_funcs — Liste les fonctions d'une extension
  • get_include_path — Lit la valeur de la directive de configuration include_path
  • get_included_files — Retourne un tableau avec les noms des fichiers qui sont inclus dans un script
  • get_loaded_extensions — Retourne la liste de tous les modules compilés et chargés
  • get_magic_quotes_gpc — Retourne la configuration actuelle de l'option magic_quotes_gpc
  • get_magic_quotes_runtime — Retourne la configuration actuelle de l'option magic_quotes_runtime
  • get_required_files — Alias de get_included_files
  • getenv — Retourne la valeur d'une variable d'environnement
  • getlastmod — Retourne la date de dernière modification de la page
  • getmygid — Retourne le GID du propriétaire du script
  • getmyinode — Retourne l'inode du script
  • getmypid — Retourne le numéro de processus courant de PHP
  • getmyuid — Retourne l'UID du propriétaire du script actuel
  • getopt — Lit des options passées dans la ligne de commande
  • getrusage — Retourne le niveau d'utilisation des ressources
  • ini_alter — Alias de ini_set
  • ini_get_all — Lit toutes les valeurs de configuration
  • ini_get — Lit la valeur d'une option de configuration
  • ini_restore — Restaure la valeur de l'option de configuration
  • ini_set — Modifie la valeur d'une option de configuration
  • magic_quotes_runtime — Alias de set_magic_quotes_runtime
  • main — Fausse documentation pour main
  • memory_get_peak_usage — Retourne la quantité de mémoire maximale allouée par PHP
  • memory_get_usage — Indique la quantité de mémoire utilisée par PHP
  • php_ini_loaded_file — Récupère le chemin d'un fichier php.ini chargé
  • php_ini_scanned_files — Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires
  • php_logo_guid — Retourne l'identifiant du logo PHP
  • php_sapi_name — Retourne le type d'interface utilisée entre le serveur web et PHP
  • php_uname — Retourne les informations sur le système d'exploitation
  • phpcredits — Affiche les crédits de PHP
  • phpinfo — Affiche de nombreuses informations sur la configuration de PHP
  • phpversion — Retourne le numéro de la version courante de PHP
  • putenv — Fixe la valeur d'une variable d'environnement
  • restore_include_path — Restaure la valeur de la directive de configuration include_path
  • set_include_path — Modifie la valeur de la directive de configuration include_path
  • set_magic_quotes_runtime — Active/désactive l'option magic_quotes_runtime
  • set_time_limit — Fixe le temps maximum d'exécution d'un script
  • sys_get_temp_dir — Retourne le chemin du répertoire utilisé pour les fichiers temporaires
  • version_compare — Compare deux chaînes de version au format des versions PHP
  • zend_logo_guid — Retourne le logo de Zend
  • zend_thread_id — Retourne un identifiant unique du thread courant
  • zend_version — Lit la version courante du moteur Zend



Memtrack


Introduction

Le but de cette extension est d'identifier les scripts et les fonctions les plus consommateurs de mémoire.

memtrack surveille la consommation de mémoire dans les scripts PHP, et produit un rapport d'alertes lorsque la consommation atteint un certain niveau, défini par l'utilisateur. Ceci est réussi en remplaçant les fonctions standard par une fonction spéciale qui compare l'utilisation de mémoire avant et après le passage par une fonction : de cette manière, on sait de combien la consommation de mémoire a changé.

Le Zend Engine fait fonctionner son exécuteur pour chaque tableau d'opcodes, ce qui représente généralement une fonction ou un script, ce qui fait que memtrack n'a pas d'impact notable sur les performances.

memtrack ne fournit aucune fonction, car il n'y a que des directives d'exécution pour configurer son fonctionnement.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/memtrack



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Memtrack
Nom Défaut Modifiable
memtrack.enabled "0" PHP_INI_SYSTEM
memtrack.soft_limit "0" PHP_INI_ALL
memtrack.hard_limit "0" PHP_INI_ALL
memtrack.vm_limit "0" PHP_INI_ALL
memtrack.ignore_functions "" PHP_INI_SYSTEM
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

memtrack.enabled boolean

Active ou non l'extension. Par défaut, c'est 0, i.e. désactivé.

memtrack.soft_limit int

Limite mémoire logicielle.

L'extension vérifie la consommation avant et après l'exécution d'un tableau d'opcode, puis produit une alerte si la différence entre les deux valeurs est égale ou supérieure à la limite logicielle, et que la fonction n'est pas ignorée.

En donnant à cette directive la valeur de 0, on désactive les limites logicielle et physique. Par défaut, cette directive vaut 0, ce qui fait qu'aucune alerte n'est produite.

memtrack.hard_limit int

Limite mémoire physique.

L'extension vérifie la consommation avant et après l'exécution d'un tableau d'opcode, puis produit une alerte si la différence entre les deux valeurs est égale ou supérieure à la limite logicielle, même si la fonction est ignorée. En donnant à cette directive la valeur de 0, on désactive les limites physique. Par défaut, cette directive vaut 0, ce qui fait qu'aucune alerte n'est produite.

memtrack.vm_limit int

Limite de mémoire virtuelle (par processus).

Cette limite est vérifiée à l'extinction du script, et une alerte est émise si la consommation de mémoire est plus grande que cette limite.

Cette option est uniquement supportée sur les OS où la fonction mallinfo() est disponible (i.e. Linux).

memtrack.ignore_functions string

Une liste de fonctions qui seront ignorées par la limite logicielle. Les fonctions sont séparées par des virgules ou des espaces. Les valeurs sont insensibles à la casse, et pour les méthodes, il faut utiliser la syntaxe classe::méthode.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemple simple d'utilisation de memtrack

Exemple #1 Création d'un grand tableau

<?php

/* /tmp/exemple.php */

function foo() {
    
$a = array();
    for (
$i 0$i 10000$i++) $a[] = "test";
    return 
$a;
}
$arr foo();

?>

Exécution de l'exemple avec la commande suivante :

php -d memtrack.enabled=1 -d memtrack.soft_limit=1M -d memtrack.vm_limit=3M /tmp/exemple.php

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/example1.php on line 10 allocated 4194304 bytes in /tmp/example1.php on line 0
Warning: [memtrack] [pid 26177] virtual memory usage on shutdown: 32911360 bytes in Unknown on line 0




Surcharge d'objets


Introduction

Le but de cette extension est de permettre de maîtriser les appels aux méthodes et aux membres d'un objet. Seule une fonction est définie dans cette extension, overload() qui demande le nom de la classe qui doit supporter cette fonctionnalité. Cette classe doit être pourvue des méthodes nécessaires au bon fonctionnement de l'extension, c'est-à-dire : __get(), __set() et __call(), qui servent respectivement à lire, à modifier un membre et à appeler une méthode. De cette manière, l'overloading assure un contrôle sur les fonctions appelées. À l'intérieur de ces méthodes, l'overloading est désactivé, pour que vous puissiez accéder à l'objet.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Avertissement

Cette extension ne fait pas partie de PHP 5. PHP 5 supporte __get(), __set() et __call() nativement. Voir la page traitant de la surcharge en PHP 5 pour plus d'informations.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Afin d'utiliser ces fonctions, vous devez compiler PHP avec l'option --enable-overload . Depuis PHP 4.3.0, cette extension est activée par défaut. Pour la désactiver, utilisez l'option --disable--overload .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note: Le support par défaut de l'extension overload a été ajouté en PHP 4.3.0.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Voici un exemple simple de fonctions utilisant overload() :

Exemple #1 Overload avec une classe PHP

<?php

class OO {
   var 
$a 111;
   var 
$elem = array('b' => 9'c' => 42);

   
// Fonction de callback pour la lecture de membre
   
function __get($prop_name, &$prop_value
   {
       if (isset(
$this->elem[$prop_name])) {
           
$prop_value $this->elem[$prop_name];
           return 
true;
       } else {
           return 
false;
       }
   }

   
// Fonction de callback pour l'écriture de membre
   
function __set($prop_name$prop_value
   {
       
$this->elem[$prop_name] = $prop_value;
       return 
true;
   }
}

// Ici, l'initiation de l'overload
overload('OO');

$o = new OO;
echo 
"\$o->a: $o->a\n"// print: $o->a: 111
echo "\$o->b: $o->b\n"// print: $o->b: 9
echo "\$o->c: $o->c\n"// print: $o->c: 42
echo "\$o->d: $o->d\n"// print: $o->d:

// ajout d'une nouvelle valeur au membre $elem, en programmation OOP
$o->56

// instantiation de la classe stdclass (elle existe par défaut en PHP 4)
// $val n'est pas surchargée !
$val = new stdclass;
$val->prop 555;

// Forcez "a" à être un tableau avec l'élément $val
// Mais _set() forcera cet élément dans le tableau $elem
$o->= array($val);
var_dump($o->a[0]->prop);

?>




Fonctions sur la surcharge d'objets


overload

(PHP 4 >= 4.3.0)

overloadActive la couche de contrôle des membres et méthodes

Description

void overload ( string $class_name )

overload() active le contrôle des accesseurs et appels de méthodes pour la classe class_name.

Liste de paramètres

class_name

Le nom de la classe surchargée, sous la forme d'une chaîne de caractères

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir un exemple dans la section d'introduction de cette partie.


Sommaire

  • overload — Active la couche de contrôle des membres et méthodes



Bufferisation de sortie


Introduction

Les fonctions de bufferisation de sortie vous permettent de contrôler quand les données ont été envoyées par le script. Cela peut être utile dans certaines situations, notamment si vous devez envoyer des en-têtes au navigateur après avoir envoyé des données. Ces fonctions n'affectent pas les en-têtes envoyés par la fonction header() ou les cookies envoyés par setcookie(). Seules les fonctions telles que echo() et les données entre blocs PHP sont affectées.

Note:

Lors de la mise à jour depuis PHP 4.1.x (et 4.2.x) vers 4.3.x, à cause d'un bogue dans les versions précédentes, vous devez vous assurer que implicit_flush vaut OFF dans votre php.ini, sinon, tout affichage avec la fonction ob_start() sera caché.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration des buffers de sortie
Nom Défaut Modifiable Historique
output_buffering "0" PHP_INI_PERDIR  
output_handler NULL PHP_INI_PERDIR Disponible depuis PHP 4.0.4.
implicit_flush "0" PHP_INI_ALL PHP_INI_PERDIR en PHP <= 4.2.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

output_buffering booléen/entier

Vous pouvez activer la bufferisation de sortie pour tous les fichiers avec cette directive, en lui passant la valeur On. Si vous souhaitez limiter la taille du buffer à une certaine taille, vous pouvez alors indiquer un nombre maximum d'octets à la place de On. Par exemple, output_buffering=4096). Depuis PHP 4.3.5, cette directive est toujours désactivée en ligne de commande.

output_handler string

Vous pouvez rediriger le résultat de tous vos scripts à une fonction avant leur envoi au navigateur. Par exemple, si vous configurez output_handler à mb_output_handler(), l'encodage des caractères sera adapté de manière transparente. Configurer une telle fonction active automatiquement la bufferisation de sortie.

Note:

Vous ne pouvez pas utiliser simultanément mb_output_handler() avec ob_iconv_handler(), non plus que ob_gzhandler() avec zlib.output_compression.

Note:

Seules les fonctions internes peuvent être utilisées avec cette directive. Pour les fonctions utilisateurs, utilisez ob_start().

implicit_flush booléen

FALSE par défaut. En changeant cette valeur pour TRUE vous indiquez à PHP que le buffer de sortie doit être vidé automatiquement après chaque fonction d'affichage. Cela revient à appeler la fonction flush() après chaque appel à print() ou echo() et pour tous les blocs HTML.

Lorsque vous utilisez PHP en environnement web, activer cette option a de sérieuses implications et généralement, cela n'est conseillé que pour les déboguages. Cette valeur est par défaut à TRUE lorsque PHP fonctionne en mode CLI SAPI.

Voir aussi ob_implicit_flush().



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemples

Exemple #1 Exemple de bufferisation de sortie

<?php

ob_start
();
echo 
"Bonjour\n";

setcookie("cookiename""cookiedata");

ob_end_flush();

?>

Dans l'exemple ci-dessus, l'instruction echo() est stockée dans un buffer jusqu'à l'appel de la fonction ob_end_flush(). Dans le même temps, l'appel à setcookie() a réussi à créer un cookie, sans générer d'erreur. (D'habitude, vous devez envoyer les en-têtes avant les données).




Fonctions de bufferisation de sortie

Voir aussi

Voir aussi header() et setcookie().


flush

(PHP 4, PHP 5)

flushVide les tampons de sortie

Description

void flush ( void )

Vide les tampons d'écriture de PHP et tous ceux que PHP utilisait (CGI, un serveur web, etc.). Cette fonction tente d'envoyer tout l'affichage courant au navigateur, sous quelques conditions.

flush() peut ne pas être capable d'écraser le schéma du buffer de votre serveur web et ceci n'aura aucun effet sur le buffer du navigateur côté client. De plus, cette fonction n'affecte pas le mécanisme d'affichage du buffer de l'espace utilisateur de PHP. Cela signifie que vous devez appeler à la fois la fonction ob_flush() et la fonction flush() pour vider les tampons de sortie si vous les utilisez.

De nombreux serveurs, essentiellement sous Windows, continueront à tamporiser l'affichage de votre script jusqu'à ce qu'il soit terminé, avant de transmettre les résultats à l'internaute.

Des modules Apache comme mod_gzip utilisent leur propre tamporisation, ce qui fait que flush() n'enverra pas les données jusqu'au navigateur client immédiatement.

Même le navigateur peut réaliser une tamporisation avant de l'afficher. Netscape, par exemple, met en cache le texte jusqu'à ce qu'il reçoive une fin de ligne, ou un début d'une balise et il n'affichera pas les tables tant que la balise </table> la plus externe ne soit vue.

Certaines versions de Microsoft Internet Explorer ne commenceront l'affichage de la page qu'après avoir reçu 256 octets d'affichage. Cela vous obligera à envoyer des espaces supplémentaires pour afficher la page.

Valeurs de retour

Aucune valeur n'est retournée.



ob_clean

(PHP 4 >= 4.2.0, PHP 5)

ob_cleanEfface le tampon de sortie

Description

void ob_clean ( void )

Cette fonction vide le tampon de sortie sans l'envoyer au navigateur.

Cette fonction ne détruit pas le contenu du tampon de sortie comme peut le faire ob_end_clean().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ob_flush() - Envoie le tampon de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la tamporisation de sortie



ob_end_clean

(PHP 4, PHP 5)

ob_end_cleanDétruit les données du tampon de sortie et éteint la tamporisation de sortie

Description

bool ob_end_clean ( void )

Cette fonction vide le contenu du premier tampon de sortie et désactive la tamporisation de sortie. Si vous voulez traiter le contenu du tampon, vous devrez appeler ob_get_contents() avant ob_end_clean(), car le tampon est détruit par ob_end_clean().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Les raisons d'un tel échec sont que la tamporisation de sortie pouvait ne pas être activée, ou que, pour une raison quelconque, le tampon n'a pu être détruit.

Erreurs / Exceptions

Si la fonction échoue, elle génère une note E_NOTICE.

Historique

Version Description
4.2.0 La valeur booléen retournée par la fonction a été ajoutée.

Exemples

L'exemple suivant montre comment se débarrasser de tous les tampons de sortie :

Exemple #1 Exemple avec ob_end_clean()

<?php
ob_start
();
echo 
'Texte qui ne sera pas affiché.';
ob_end_clean();
?>

Voir aussi



ob_end_flush

(PHP 4, PHP 5)

ob_end_flushEnvoie les données du tampon de sortie et éteint la tamporisation de sortie

Description

bool ob_end_flush ( void )

Envoie le contenu du tampon de sortie (s'il existe) et éteint la tamporisation de sortie. Si vous voulez continuer à manipuler la valeur du tampon, vous pouvez appeler ob_get_contents() avant ob_end_flush() car le contenu du tampon est détruit après un appel à ob_end_flush().

Note: Cette fonction est similaire à ob_get_flush(), excepté que ob_get_flush() retourne le tampon comme une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Les raisons d'échec sont que vous pourriez avoir appelé la fonction sans avoir de tampon actif, ou que, pour une raison quelconque, le tampon n'a pu être effacé (possible pour un tampon spécial).

Erreurs / Exceptions

Si la fonction échoue, elle émet une alerte de type E_NOTICE.

Historique

Version Description
4.2.0 La fonction retourne une valeur booléenne.

Exemples

Exemple #1 Exemple avec ob_end_flush()

L'exemple ci-dessous montre une méthode simple pour vider tous les tampons :

<?php
while (@ob_end_flush());
?>

Voir aussi

  • ob_start() - Enclenche la tamporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_get_flush() - Vide le tampon, le retourne en tant que chaîne et stoppe la tamporisation
  • ob_flush() - Envoie le tampon de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la tamporisation de sortie



ob_flush

(PHP 4 >= 4.2.0, PHP 5)

ob_flushEnvoie le tampon de sortie

Description

void ob_flush ( void )

Envoie le contenu du tampon de sortie (s'il y en a un). Si vous voulez contrôler le contenu du tampon, vous devez appeler la fonction ob_get_contents() avant ob_flush() car le contenu du tampon est effacé après l'appel de ob_flush().

ob_flush() ne désactive pas la temporisation de sortie comme peut le faire ob_end_flush().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_clean() - Efface le tampon de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la tamporisation de sortie



ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)

ob_get_cleanLit le contenu courant du tampon de sortie puis l'efface

Description

string ob_get_clean ( void )

Lit le contenu courant du tampon de sortie puis l'efface.

ob_get_clean() exécute successivement ob_get_contents() et ob_end_clean().

Valeurs de retour

Retourne le contenu du tampon de sortie et termine la session de tamporisation. Si la tamporisation n'est pas activée, alors FALSE sera retourné.

Exemples

Exemple #1 Exemple avec ob_get_clean()

<?php

ob_start
();

echo 
"Bonjour le monde !";

$out ob_get_clean();
$out strtolower($out);

var_dump($out);
?>

L'exemple ci-dessus va afficher :


string(18) "bonjour le monde !"

Voir aussi



ob_get_contents

(PHP 4, PHP 5)

ob_get_contentsRetourne le contenu du tampon de sortie

Description

string ob_get_contents ( void )

Retourne le contenu du tampon de sortie sans l'effacer.

Valeurs de retour

Retourne le contenu du tampon de sortie sans l'effacer ou FALSE, si la tamporisation de sortie n'est pas activée.

Exemples

Exemple #1 Exemple avec ob_get_contents()

<?php

ob_start
();

echo 
"Bonjour ";

$out1 ob_get_contents();

echo 
"le monde !";

$out2 ob_get_contents();

ob_end_clean();

var_dump($out1$out2);
?>

L'exemple ci-dessus va afficher :

string(8) "Bonjour "
string(18) "Bonjour le monde !"

Voir aussi



ob_get_flush

(PHP 4 >= 4.3.0, PHP 5)

ob_get_flushVide le tampon, le retourne en tant que chaîne et stoppe la tamporisation

Description

string ob_get_flush ( void )

ob_get_flush() vide le tampon, le retourne en tant que chaîne et stoppe la tamporisation.

Note: ob_get_flush() est similaire à ob_end_flush(), sauf que cette fonction retourne le tampon en tant que chaîne.

Valeurs de retour

Retourne le tampon de sortie ou FALSE s'il n'y en a aucun d'actif.

Exemples

Exemple #1 Exemple avec ob_get_flush()

<?php
//Utilisation de output_buffering=On
print_r(ob_list_handlers());

//Saugarde du tampon dans un fichier
$buffer ob_get_flush();
file_put_contents('buffer.txt'$buffer);

print_r(ob_list_handlers());
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => default output handler
)
Array
(
)

Voir aussi

  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés



ob_get_length

(PHP 4 >= 4.0.2, PHP 5)

ob_get_lengthRetourne la longueur du contenu du tampon de sortie

Description

int ob_get_length ( void )

Retourne la longueur du contenu du tampon de sortie.

Valeurs de retour

Retourne la longueur du contenu du tampon de sortie si la tamporisation est activée, et FALSE sinon.

Exemples

Exemple #1 Exemple avec ob_get_length()

<?php

ob_start
();

echo 
"Bonjour ";

$len1 ob_get_length();

echo 
"le monde";

$len2 ob_get_length();

ob_end_clean();

echo 
$len1 ", ." $len2;
?>

L'exemple ci-dessus va afficher :

8, 16

Voir aussi



ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_levelRetourne le nombre de niveaux d'imbrications du système de tamporisation de sortie

Description

int ob_get_level ( void )

Retourne le nombre de niveaux d'imbrications du système de tamporisation de sortie.

Valeurs de retour

Retourne le nombre de niveaux d'imbrications du système de tamporisation de sortie, et zéro s'il n'est pas actif.

Voir aussi



ob_get_status

(PHP 4 >= 4.2.0, PHP 5)

ob_get_statusLit le statut du tampon de sortie

Description

array ob_get_status ([ bool $full_status = FALSE ] )

ob_get_status() retourne les informations sur le statut du tampon d'affichage de haut niveau ou de tous les tampons d'affichage si full_status est défini à TRUE.

Liste de paramètres

full_status

TRUE pour retourner tous les tampons d'affichage. Si vaut FALSE ou non défini, seul le statut du tampon d'affichage de haut niveau sera retourné.

Valeurs de retour

Si la fonction est appelée sans le paramètre full_status ou avec le paramètre full_status = FALSE, un tableau simple avec les éléments suivants sera retourné :

Array
(
    [level] => 2
    [type] => 0
    [status] => 0
    [name] => URL-Rewriter
    [del] => 1
)
Résultats simples pour la fonction ob_get_status()
Clé:level
Valeur:Niveau de sortie désiré
Clé:type
Valeur:PHP_OUTPUT_HANDLER_INTERNAL (0) ou PHP_OUTPUT_HANDLER_USER (1)
Clé:status
Valeur:Un parmi PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) ou PHP_OUTPUT_HANDLER_END (2)
Clé:name
Valeur:Nom du gestionnaire de sortie actif ou ' default output handler' si aucun n'est défini
Clé:del
Valeur:Flag d'effacement tel que défini par ob_start()

Si la fonction est appelée avec le paramètre full_status défini à TRUE, un tableau avec un élément par tampon de sortie actif est retourné. Le niveau de sortie est utilisé en tant que clé du tableau de niveau élevé et chaque élément du tableau est un autre tableau contenant les informations sur le statut du niveau du tampon actif.

Array
(
    [0] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 1
            [status] => 0
            [name] => default output handler
            [del] => 1
        )

    [1] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 0
            [buffer_size] => 0
            [status] => 0
            [name] => URL-Rewriter
            [del] => 1
        )

)

La sortie complète contient les éléments suivants :

Résultats complets pour la fonction ob_get_status()
Clé:chunk_size
Valeur:Taille telle que définie par la fonction ob_start()
Clé:size
Valeur:...
Clé:blocksize
Valeur:...

Voir aussi

  • ob_get_level() - Retourne le nombre de niveaux d'imbrications du système de tamporisation de sortie
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés



ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandlerFonction de rappel pour la compression automatique des tampons

Description

string ob_gzhandler ( string $buffer , int $mode )

ob_gzhandler() est destinée à être utilisée comme fonction de rappel par ob_start() pour faciliter l'envoi de données compressées aux navigateurs qui supportent les pages compressées. Avant que ob_gzhandler() envoie les données compressées, il détermine les types d'encodage qui sont supportés par le navigateur ("gzip", "deflate" ou aucun) et retourne le contenu des tampons de manière appropriée. Tous les navigateurs sont traités, car c'est aux navigateurs d'envoyer un en-tête indiquant les types de pages supportés. Si le navigateur ne supporte pas les pages compressées, cette fonction retournera FALSE.

Liste de paramètres

buffer

mode

Valeurs de retour

Historique

Version Description
4.0.5 Ajout du paramètre mode.

Exemples

Exemple #1 Exemple avec ob_gzhandler()

<?php

ob_start
("ob_gzhandler");

?>
<html>
<body>
<p>Ceci devrait être une page compressée.</p>
</html>
<body>

Notes

Note:

ob_gzhandler() nécessite l'extension zlib.

Note:

Vous ne pouvez pas utiliser simultanément ob_gzhandler() et zlib.output_compression. De plus, notez bien que zlib.output_compression est préférable à ob_gzhandler().

Voir aussi

  • ob_start() - Enclenche la tamporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la tamporisation de sortie



ob_implicit_flush

(PHP 4, PHP 5)

ob_implicit_flushActive/désactive l'envoi implicite

Description

void ob_implicit_flush ([ int $flag = true ] )

ob_implicit_flush() active/désactive l'envoi implicite. L'envoi implicite signifie que toute fonction qui envoie des données au navigateur verra ses données envoyées immédiatement (la fonction flush() est appelée automatiquement).

Liste de paramètres

flag

TRUE pour activer, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • flush() - Vide les tampons de sortie
  • ob_start() - Enclenche la tamporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la tamporisation de sortie



ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5)

ob_list_handlersListe les gestionnaires d'affichage utilisés

Description

array ob_list_handlers ( void )

Liste les gestionnaires d'affichage utilisés.

Valeurs de retour

Retourne un tableau avec le gestionnaire d'affichage en cours d'utilisation (s'il existe). Si output_buffering est activé ou si une fonction anonyme est utilisée avec ob_start(), ob_list_handlers() retournera un tableau avec comme valeur d'entrée : "default output handler".

Exemples

Exemple #1 Exemple avec ob_list_handlers()

<?php
//Utilisation de output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// Fonctions anonymes
ob_start(create_function('$string''return $string;'));
print_r(ob_list_handlers());
ob_end_flush();
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => default output handler
)

Voir aussi

  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_get_flush() - Vide le tampon, le retourne en tant que chaîne et stoppe la tamporisation
  • ob_start() - Enclenche la tamporisation de sortie



ob_start

(PHP 4, PHP 5)

ob_startEnclenche la tamporisation de sortie

Description

bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] )

ob_start() démarre la tamporisation de sortie. Tant qu'elle est enclenchée, aucune donnée, hormis les en-têtes, n'est envoyée au navigateur, mais temporairement mise en tampon.

Le contenu de ce tampon peut être copié dans une chaîne avec la fonction ob_get_contents(). Pour afficher le contenu de ce tampon, utilisez ob_end_flush(). Au contraire, ob_end_clean() effacera le contenu de ce tampon.

Avertissement

Quelques serveurs web (par exemple Apache) modifient le dossier de travail d'un script lorsqu'il appelle une fonction de rappel. Vous pouvez revenir à un comportement normal en ajoutant chdir(dirname($_SERVER['SCRIPT_FILENAME'])) dans votre fonction de rappel.

Les tampons de sortie sont gérés par pile, c'est-à-dire que vous pouvez appeler plusieurs fois ob_start() simultanément. Assurez-vous que vous appelez ob_end_flush() suffisamment souvent. Si plusieurs fonctions de rappel sont actives, les contenus seront filtrés séquentiellement, dans l'ordre d'emboîtement.

Liste de paramètres

output_callback

Une fonction optionnelle de rappel peut être spécifiée. Cette fonction prend une chaîne comme paramètre, et retourne une chaîne. Elle sera appelée lorsque le tampon sera envoyé ou supprimé (avec les fonctions ob_flush(), ob_clean() ou des fonctions similaires) ou lorsque le tampon sera envoyé au navigateur à la fin du script et recevra le contenu du tampon de sortie. Lorsque la fonction output_callback est appelée, elle doit retourner un nouveau contenu pour le tampon de sortie : celui-ci sera envoyé au navigateur. Si output_callback n'est pas une fonction accessible, la fonction retournera FALSE.

Si la fonction de rappel a deux paramètres, le second est composé du champ bits constitué par PHP_OUTPUT_HANDLER_START, PHP_OUTPUT_HANDLER_CONT et PHP_OUTPUT_HANDLER_END.

Si output_callback retourne FALSE, l'entrée originale est envoyée au navigateur.

Le paramètre output_callback peut être annulé en y passant la valeur NULL.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() et ob_start() ne doivent pas être appelés depuis une fonction de rappel. Si vous les appelez depuis une fonction de rappel, le comportement ne sera pas défini. Si vous voulez effacer le contenu du tampon, retournez "" (une chaîne vide) comme fonction de rappel. Vous ne pourrez jamais appeler les fonctions utilisant la fonction de tamporisation de sortie comme print_r($expression, true) ou highlight_file($filename, true) depuis une fonction de rappel.

Note:

En PHP 4.0.4, ob_gzhandler() a été introduite pour faciliter l'envoi de fichiers compressés avec gzip aux navigateurs web qui supportent les pages compressées. ob_gzhandler() détermine le type d'encodage accepté par un navigateur, et retourne le contenu le plus adéquat.

chunk_size

Si le paramètre optionnel chunk_size est passé, la fonction de rappel est appelée à chaque nouvelle ligne après chunk_size octets d'affichage. La valeur par défaut (zéro) signifie que la fonction est appelée uniquement à la fin, et si la valeur est 1, chunk_size vaudra 4096.

erase

Si le paramètre optionnel erase est défini à FALSE, le tampon ne sera pas effacé tant que le script ne sera pas terminé. Ceci aura pour effet d'émettre une notice et de retourner FALSE lors de l'appel aux fonctions d'affichage et de nettoyage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.2 Cette fonction a été modifiée pour retourner FALSE dans le cas où output_callback ne peut être exécuté.
4.2.0 Ajout du paramètre erase.

Exemples

Exemple #1 Exemple de gestion de sortie avec fonction de rappel

<?php

function rappel($buffer)
{
  
// remplace toutes les pommes par des carottes
  
return (ereg_replace("pommes de terre""carottes"$buffer));
}

ob_start("rappel");

?>
<html>
<body>
<p>C'est comme comparer des carottes et des pommes de terre.</p>
</body>
</html>
<?php

ob_end_flush
();

?>

L'exemple ci-dessus va afficher :

<html>
<body>
<p>C'est comme comparer des carottes et des carottes.</p>
</body>
</html>

Voir aussi



output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5)

output_add_rewrite_varAjoute une règle de réécriture d'URL

Description

bool output_add_rewrite_var ( string $name , string $value )

Cette fonction ajoute une nouvelle paire nom/valeur au mécanisme de réécriture d'URL. Le nom et la valeur sera ajouté aux URL (en tant que paramètre GET) et aux formulaires (en tant que champs cachés) de la même façon que pour les identifiants de session lorsque la réécriture d'URL est activée avec session.use_trans_sid. Notez que les URL absolues, telles http://example.com/, ne sont pas réécrites.

Ce comportement est contrôlé par l'option url_rewriter.tags du php.ini.

Note: L'appel à cette fonction démarre implicitement la tamporisation de sortie si elle n'est pas déjà activée.

Liste de paramètres

name

Le nom de la variable.

value

La valeur de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec output_add_rewrite_var()

<?php
output_add_rewrite_var
('var''value');

// Quelques liens
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>'
;

// un formulaire
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>'
;

print_r(ob_list_handlers());
?>

L'exemple ci-dessus va afficher :

<a href="file.php?var=value">link</a>
<a href="http://example.com">link2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

Voir aussi



output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5)

output_reset_rewrite_varsAnnule la réécriture d'URL

Description

bool output_reset_rewrite_vars ( void )

Cette fonction annule la règle de réécriture et efface toutes les variables de réécriture précédemment définies avec la fonction output_add_rewrite_var() ou par le mécanisme de session (si session.use_trans_sid a été défini lors de l'utilisation de la fonction session_start()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec output_reset_rewrite_vars()

<?php
session_start
();
output_add_rewrite_var('var''value');

echo 
'<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo 
'<a href="file.php">link</a>';
?>

L'exemple ci-dessus va afficher :

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

Voir aussi


Sommaire

  • flush — Vide les tampons de sortie
  • ob_clean — Efface le tampon de sortie
  • ob_end_clean — Détruit les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_end_flush — Envoie les données du tampon de sortie et éteint la tamporisation de sortie
  • ob_flush — Envoie le tampon de sortie
  • ob_get_clean — Lit le contenu courant du tampon de sortie puis l'efface
  • ob_get_contents — Retourne le contenu du tampon de sortie
  • ob_get_flush — Vide le tampon, le retourne en tant que chaîne et stoppe la tamporisation
  • ob_get_length — Retourne la longueur du contenu du tampon de sortie
  • ob_get_level — Retourne le nombre de niveaux d'imbrications du système de tamporisation de sortie
  • ob_get_status — Lit le statut du tampon de sortie
  • ob_gzhandler — Fonction de rappel pour la compression automatique des tampons
  • ob_implicit_flush — Active/désactive l'envoi implicite
  • ob_list_handlers — Liste les gestionnaires d'affichage utilisés
  • ob_start — Enclenche la tamporisation de sortie
  • output_add_rewrite_var — Ajoute une règle de réécriture d'URL
  • output_reset_rewrite_vars — Annule la réécriture d'URL



runkit


Introduction

L'extension runkit fournit les moyens de modifier les constantes, les fonctions et les classes définies par l'utilisateur. Elle fournit aussi ces moyens pour les variables superglobales et les sous-interpréteurs par sandboxing.

Ce paquetage est signifié en tant que remplacement de fonctionnalités pour le paquetage » classkit. Lorsque compilé avec l'option --enable-runkit=classkit à ./configure, les définitions des fonctions et des constantes de classkit seront exportées.



Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

RUNKIT_IMPORT_FUNCTIONS (entier)
runkit_import() marque indiquant que les fonctions normales doivent être importées à partir du fichier spécifié.
RUNKIT_IMPORT_CLASS_METHODS (entier)
runkit_import() marque indiquant que les méthodes de classes doivent être importées à partir du fichier spécifié.
RUNKIT_IMPORT_CLASS_CONSTS (entier)
runkit_import() marque indiquant que les constantes de classes doivent être importées à partir du fichier spécifié. Notez que cette marque est seulement signifiante dans les versions PHP 5.1.0 et supérieures.
RUNKIT_IMPORT_CLASS_PROPS (entier)
runkit_import() marque indiquant que les propriétés standards de classes doivent être importée à partir du fichier spécifié.
RUNKIT_IMPORT_CLASSES (entier)
runkit_import() marque indiquant une opération de bits OU (OR) des constantes RUNKIT_IMPORT_CLASS_*.
RUNKIT_IMPORT_OVERRIDE (entier)
runkit_import() marque indiquant que si n'importe quelles fonctions, méthodes, constantes ou propriétés importées existent, elles doivent être remplacées par leurs nouvelles définitions. Si ce drapeau n'est pas activé, alors toutes définitions importées qui existent déjà seront supprimées.
RUNKIT_ACC_PUBLIC (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add()
RUNKIT_ACC_PROTECTED (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add()
RUNKIT_ACC_PRIVATE (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add()
CLASSKIT_ACC_PUBLIC (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.
CLASSKIT_ACC_PROTECTED (entier)
Drapeau spécifique à PHP5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.
CLASSKIT_ACC_PRIVATE (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.
CLASSKIT_AGGREGATE_OVERRIDE (entier)
Drapeau spécifique à PHP 5 pour classkit_import() Seulement définie lorsque les compatibilités classkit sont activées.
RUNKIT_VERSION (chaîne de caractères)
Définie la version courante du paquetage runkit.
CLASSKIT_VERSION (chaîne de caractères)
Définie la version courante du paquetage runkit. Seulement définie lorsque les compatibilités classkit sont activées.


Installation/Configuration

Sommaire


Pré-requis

Modification de Constantes, Fonctions, Classes et Méthodes fonctionne avec toutes les versions de PHP 4 et PHP 5. Aucune condition spéciale n'est nécessaire.

Les Superglobales Personnalisées sont seulement disponibles dans les versions PHP 4.2.0 et supérieures.

Sandboxing nécessite PHP 5.1.0 ou supérieur ou PHP 5.0.0 avec le patch spécial TSRM appliqué. Sans se soucier de quelle version de PHP est utilisé, sandboxing doit être compilé avec l'option --enable-maintainer-zts. Voyez le fichier README dans le paquetage de runkit pour plus d'informations.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/runkit.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Runkit
Nom Défaut Modifiable Historique
runkit.superglobal "" PHP_INI_PERDIR  
runkit.internal_override "0" PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

runkit.superglobal string
Liste de noms de variable séparés par des virgules à être traités comme variables superglobales. Cette valeur devrait être fixée dans le fichier du système php.ini, mais devrait fonctionner dans les contextes de configuration par dossier dépendamment de votre SAPI.

Exemple #1 Superglobales particulières avec runkit.superglobal=_FOO,_BAR dans php.ini

<?php
function montre_valeurs() {
  echo 
"Foo est $_FOO\n";
  echo 
"Bar est $_BAR\n";
  echo 
"Baz est $_BAZ\n";
}

$_FOO 'foo';
$_BAR 'bar';
$_BAZ 'baz';

/* Montre foo et bar mais pas baz */
montre_valeurs();
?>
runkit.internal_override boolean
Active la possibilité de modifier/renommer/supprimer les fonctions internes.



Types de ressources

Cette extension ne définit aucune ressource.




Fonctions runkit


Runkit_Sandbox

(PECL runkit >= 0.7.0)

Runkit_Sandbox Classe Runkit Sandbox -- Machine Virtuelle PHP

Description

L'instanciation de la classe Runkit_Sandbox crée un nouveau thread avec sa propre portée et sa pile de programme. En utilisant les options passées au constructeur, cet environnement peut être restreint à un sous-ensemble pour lequel l'interpréteur primaire peut exécuter et fournir un environnement plus sûr pour l'exécution de code utilisateur.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Constructeur

void Runkit_Sandbox::__construct ([ array $options ] )

options est un tableau associatif contenant n'importe quelle combinaison des options ini listées ci-dessous.

safe_mode

Si un script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode = off, alors safe_mod devrait être activé pour l'environnement sandbox. Cette configuration ne peut être utilisée pour désactiver safe_mode lorsque safe_mode est déjà activé dans le script extérieur.

safe_mode_gid

Si le script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode_gid = on, alors safe_mod_gid devrait être désactivé pour l'environnement sandbox. Cette configuration ne peut être utilisée pour activer safe_mode_gid lorsque c'est déjà désactivé dans le script extérieur.

safe_mode_include_dir

Si le script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode_include_dir, alors un nouveau safe_mode_include_dir devrait être fixé pour les environnements de sandbox sous la valeur actuellement définie. safe_mode_include_dir peut aussi être supprimé pour indiquer que l'évitement de cette fonctionnalité est désactivé. Si safe_mode_include_dir était vide dans le script extérieur, mais safe_mod n'était pas activé, alors n'importe quel safe_mode_include_dir arbitraire peut être fixé en activant le safe_mode.

open_basedir

open_basedir peut être fixé à n'importe quel chemin sous la configuration courante de open_basedir. Si open_basedir n'est pas fixé dans la portée globale, alors il est assumé qu'il est dans le répertoire root et peut être fixé à n'importe quelle autre emplacement.

allow_url_fopen

Comme safe_mode, cette configuration peut seulement être faite plus restrictive, dans ce cas, en mettant FALSE lorsque la valeur était précédemment TRUE.

disable_functions

Liste de fonctions séparées par des virgules à désactiver dans le sous-interpréteur sandbox. Cette liste ne nécessite pas de contenir le nom des fonctions déjà désactivées, elles resteront désactivées même si elles ne sont pas listées.

disable_classes

Liste de classes séparées par des virgules à désactiver dans le sous-interpréteur sandbox. Cette liste ne nécessite pas de contenir le nom des classes déjà désactivées, elles resteront désactivées même si elles ne sont pas listées.

runkit.superglobal

Liste des variables qui seront traitées en tant que superglobales dans le sous-interpréteur sandbox. Ces variables seront utilisées en plus de celles définies à l'interne ou à l'aide de la configuration runkit.superglobal.

runkit.internal_override

L'option ini runkit.internal_override devrait être désactivée (mais non réactivée) à l'intérieur des sandbox.

Exemple #1 Instanciation d'un sandbox restreint

<?php
$options 
= array(
  
'safe_mode'=>true,
  
'open_basedir'=>'/var/www/users/jdoe/',
  
'allow_url_fopen'=>'false',
  
'disable_functions'=>'exec,shell_exec,passthru,system',
  
'disable_classes'=>'myAppClass');
$sandbox = new Runkit_Sandbox($options);
/* Configurations ini non protégées sont fixées normalement */
$sandbox->ini_set('html_errors',true);
?>

Portée des variables

Toutes les variables dans la portée globale de l'environnement sandbox sont accessibles comme étant des propriétés de l'objet sandbox. La première chose à noter, c'est puisque la manière de gestion de la mémoire entre les deux threads est faite que les objets et les variables de ressources ne peuvent pas, jusqu'à présent, être échangées entre les interpréteurs. De plus, tous les tableaux sont copiés au complet et toutes références seront perdues. Cela veut aussi dire que les références entre les interpréteurs ne sont pas possibles.

Exemple #2 Utilisation des variables dans sandbox

<?php
$sandbox 
= new Runkit_Sandbox();

$sandbox->foo 'bar';
$sandbox->eval('echo "$foo\n"; $bar = $foo . "baz";');
echo 
"{$sandbox->bar}\n";
if (isset(
$sandbox->foo)) unset($sandbox->foo);
$sandbox->eval('var_dump(isset($foo));');
?>

L'exemple ci-dessus va afficher :

bar
barbaz
bool(false)

Appel de Fonctions PHP

Toute fonction définie dans le sandbox peut être appelée en tant que méthode sur l'objet sandbox. Ceci inclut aussi quelques constructions de pseudo-fonctions : eval() include(), include_once(), require(), require_once(), echo(), print(), die() et exit().

Exemple #3 Appel de fonctions sandbox

<?php
$sandbox 
= new Runkit_Sandbox();

echo 
$sandbox->str_replace('a','f','abc');
?>

L'exemple ci-dessus va afficher :

fbc

Lors du passage d'arguments à une fonction sandbox, les arguments sont pris à partir de l'extérieur de l'instance de PHP. Si vous voulez passer les arguments à la portée de sandbox, soyez assuré de les accéder comme étant des propriétés de l'objet sandbox comme montré plus haut.

Exemple #4 Passage d'arguments aux fonctions sandbox

<?php
$sandbox 
= new Runkit_Sandbox();

$foo 'bar';
$sandbox->foo 'baz';
echo 
$sandbox->str_replace('a',$foo,'a');
echo 
$sandbox->str_replace('a',$sandbox->foo,'a');
?>

L'exemple ci-dessus va afficher :

bar
baz

Modification des Configurations de Sandbox

Depuis la version de runkit 0.5, certaines configurations de Sandbox peuvent être modifiées à la volée en utilisant la syntaxe ArrayAccess. Certaines configurations, comme active sont en lecture seule et permettent de fournir des informations de statut. Les autres configurations, comme output_handler peuvent être fixées et lues comme un tableau normal. Les configurations futures devraient être en écriture seule, cependant aucune configuration n'existe présentement.

Configurations Sandbox / Indicateurs de Statut
Configuration Type But Défaut
active booléen (Lecture Seule) TRUE si le Sandbox est toujours dans un état utilisable, FALSE si la requête est en arrêt dû à un appel à die(), exit() ou à cause d'une condition d'erreur fatale. TRUE (Initial)
output_handler Callback Lorsque fixée à une valeur de retour valide, toutes sorties générées par l'instance Sandbox seront traitées à travers la fonction nommée. Les sorties de Sandbox suivent les mêmes conventions d'appel pour les gestionnaires de sortie du système entier. Aucun
parent_access booléen Autorise sandbox à utiliser des instances de la classe Runkit_Sandbox_Parent. Doit être activée pour que les autres configurations reliées à Runkit_Sandbox_Parent fonctionnent. FALSE
parent_read booléen Autorise sandbox à lire des variables dans son contexte parent. FALSE
parent_write booléen Autorise sandbox à modifier des variables dans son contexte parent. FALSE
parent_eval booléen Autorise sandbox à évaluer du code arbitraire dans son contexte parent. (DANGEREUX) FALSE
parent_include booléen Autorise sandbox à inclure des fichiers de code php dans son contexte parent. DANGEREUX FALSE
parent_echo booléen Autorise sandbox à afficher des données dans son contexte parent en court-circuitant efficacement son propre output_handler. FALSE
parent_call booléen Autorise sandbox à appeler des fonctions dans son contexte parent. FALSE
parent_die booléen Autorise sandbox à tuer son propre parent. (Et donc soi-même) FALSE
parent_scope entier Quelle portée la propriété de l'accès parental vérifiera ? 0 == Portée Globale, 1 == Portée Appelante, 2 == Portée précédant la portée appelante, 3 == La porté avant celle-ci, etc., etc. 0 (Global)
parent_scope chaîne de caractères Lorsque parent_scope est fixée à une valeur d'une chaîne de caractères, elle se réfère à une variable tableau nommée dans la portée globale. Si la variable nommée n'existe pas au moment de son accès, elle sera créée comme un tableau vide. Si la variable existe mais n'est pas un tableau, un faux tableau sera créé contenant une référence à la variable globale nommée.  



Runkit_Sandbox_Parent

(PECL runkit >= 0.7.0)

Runkit_Sandbox_Parent Classe Anti-Sandbox Runkit

Description

void Runkit_Sandbox_Parent::__construct ( void )

L'instanciation de la classe Runkit_Sandbox_Parent à l'intérieure d'un environnement sandbox créé à partir de la classe Runkit_Sandbox fournit certains moyens (contrôlés) pour un sandbox fils pour accéder à son parent.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Afin de faire fonctionner une des fonctionnalités de Runkit_Sandbox_Parent, le support doit être activé sur une base de chaque sandbox en activant le drapeau parent_access à partir du contexte parent.

Exemple #1 Travailler avec des variables dans un sandbox

<?php
$sandbox 
= new Runkit_Sandbox();
$sandbox['parent_access'] = true;
?>

Accéder les Variables du Parent

Comme les accès des variables de sandbox, les variables de parent sandbox devraient être lues et écrites à partir des propriétés de la classe Runkit_Sandbox_Parent. L'accès en lecture aux variables parentes devraient être activé avec la configuration parent_read (en plus de la base de configuration parent_access). L'accès en écriture est activé avec la configuration parent_write.

La portée des variables est différente de l'accès aux variables enfants de sandbox; elle n'est pas limitée au variables globales seulement. En configurant la configuration parent_scope pour un entier approprié, les autres portées dans la pile active pourraient être inspectée. Une valeur de 0 (Défaut) autorisera l'accès direct aux variables dans la portée globale. 1 pointera l'accès des variables à n'importe quelles variables dont la portée était active au moment ou le bloc courant du code sandbox était exécuté. Des valeurs plus élevées font reculer à travers les fonctions qui ont appelées d'autres fonctions qui menent au code sandbox en train d'être exécuté et qui essaie d'accéder à ses propres variables parentes.

Exemple #2 Accès aux variables parentes

<?php
$php 
= new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;
one();

$php['parent_scope'] = 1;
one();

$php['parent_scope'] = 2;
one();

$php['parent_scope'] = 3;
one();

$php['parent_scope'] = 4;
one();

$php['parent_scope'] = 5;
one();

function 
un() {
    
$test "un()";
    
two();
}

function 
deux() {
    
$test "deux()";
    
three();
}

function 
trois() {
    
$test "trois()";
    
$GLOBALS['php']->eval('var_dump($PARENT->test);');
}
?>

L'exemple ci-dessus va afficher :

string(6) "Global"
string(7) "trois()"
string(5) "deux()"
string(5) "un()"
string(6) "Global"
string(6) "Global"

Appel de Fonctions Parentes

Comme l'accès avec sandbox, un sandbox peut accéder ses fonctions parentes si les configurations adéquates ont été activées. L'activation de parent_call autorisera le sandbox d'appeler toutes les fonctions disponibles à la portée parente. Les constructions de langage sont chacune contrôlées par ses propres configurations : print() et echo() sont activées avec parent_echo. die() et exit() sont activées avec parent_die. eval() est activées avec parent_eval tandis que include(), include_once(), require() et require_once() sont activées avec parent_include.



runkit_class_adopt

(PECL runkit >= 0.7.0)

runkit_class_adopt Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié

Description

bool runkit_class_adopt ( string $classname , string $parentname )

Liste de paramètres

classname

Le nom de la classe à adopter

parentname

Classe parente pour laquelle la classe enfant s'étend

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_class_adopt()

<?php
class myParent {
  function 
parentFunc() {
    echo 
"Sortie Fonction Parente\n";
  }
}

class 
myChild {
}

runkit_class_adopt('myChild','myParent');
myChild::parentFunc();
?>

L'exemple ci-dessus va afficher :

Sortie Fonction Parente

Voir aussi

  • runkit_class_emancipate() - Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale



runkit_class_emancipate

(PECL runkit >= 0.7.0)

runkit_class_emancipate Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale

Description

bool runkit_class_emancipate ( string $classname )

Liste de paramètres

classname

Nom de la classe à émanciper

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_class_emancipate()

<?php
class myParent {
  function 
parentFunc () {
    echo 
"Sortie Fonction Parente\n";
  }
}
class 
myChild extends myParent {
}

myChild::parentFunc();
runkit_class_emancipate('myChild');
myChild::parentFunc();
?>

L'exemple ci-dessus va afficher :

Sortie Fonction Parente
Fatal error: Call to undefined function:  parentFunc() in example.php on line 12

Voir aussi

  • runkit_class_adopt() - Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié



runkit_constant_add

(PECL runkit >= 0.7.0)

runkit_constant_add Similaire à define(), mais permet aussi la définition dans définitions de classe

Description

bool runkit_constant_add ( string $constname , mixed $value )

Liste de paramètres

constname

Nom de la constante à déclarer. Soit une chaîne de caractères pour indiquer une constante globale ou un classname::constname pour indiquer une constante de classe.

value

Valeur NULL, Bool, Long, Double, String ou Resource pour enregistrer la nouvelle constante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



runkit_constant_redefine

(PECL runkit >= 0.7.0)

runkit_constant_redefine Redéfinit une constante déjà définie

Description

bool runkit_constant_redefine ( string $constname , mixed $newvalue )

Liste de paramètres

constname

Constante à redéfinir. Soit une chaîne de caractères pour indiquer une constante globale ou classname::constname pour indiquer une constante de classe.

newvalue

Nouvelle valeur à assigner à la constante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



runkit_constant_remove

(PECL runkit >= 0.7.0)

runkit_constant_remove Enlève/Supprime une constante déjà définie

Description

bool runkit_constant_remove ( string $constname )

Liste de paramètres

constname

Nom de la constante à enlever. Soit une chaîne de caractères pour indiquer une constante globale ou classname::constname pour indiquer une constante de classe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



runkit_function_add

(PECL runkit >= 0.7.0)

runkit_function_add Ajoute une nouvelle fonction, similaire à create_function()

Description

bool runkit_function_add ( string $funcname , string $arglist , string $code )

Liste de paramètres

funcname

Nom de la fonction à être créé

arglist

Liste d'arguments séparés par des virgules

code

Code qui compose la fonction

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_function_add()

<?php
runkit_function_add
('testme','$a,$b','echo "La valeur de a est $a\n"; echo "La valeur de b est $b\n";');
testme(1,2);
?>

L'exemple ci-dessus va afficher :

La valeur de a est 1
La valeur de b est 2

Voir aussi



runkit_function_copy

(PECL runkit >= 0.7.0)

runkit_function_copy Copie une fonction vers un nom de fonction nouveau

Description

bool runkit_function_copy ( string $funcname , string $targetname )

Liste de paramètres

funcname

Nom de la fonction existante

targetname

Nom de la nouvelle fonction pour copier la définition vers celle-ci

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_function_copy()

<?php
function original() {
  echo 
"Dans une fonction\n";
}
runkit_function_copy('original','duplicate');
original();
duplicate();
?>

L'exemple ci-dessus va afficher :

Dans une fonction
Dans une fonction

Voir aussi



runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine Remplace une définition de fonction avec une nouvelle implémentation

Description

bool runkit_function_redefine ( string $funcname , string $arglist , string $code )

Note: Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction à redéfinir

arglist

Nouvelle liste d'arguments à être acceptés par la fonction

code

Nouvelle implémentation du code

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_function_redefine()

<?php
function testme() {
  echo 
"Implémentation de Testme originale\n";
}
testme();
runkit_function_redefine('testme','','echo "Nouvelle implémentation de Testme\n";');
testme();
?>

L'exemple ci-dessus va afficher :

Implémentation de Testme originale
Nouvelle implémentation de Testme

Voir aussi



runkit_function_remove

(PECL runkit >= 0.7.0)

runkit_function_remove Enlève une définition de fonction

Description

bool runkit_function_remove ( string $funcname )

Note: Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction à supprimer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



runkit_function_rename

(PECL runkit >= 0.7.0)

runkit_function_rename Change le nom d'une fonction

Description

bool runkit_function_rename ( string $funcname , string $newname )

Note: Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction courante

newname

Nouveau nom de fonction

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



runkit_import

(PECL runkit >= 0.7.0)

runkit_import Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable

Description

bool runkit_import ( string $filename [, int $flags = RUNKIT_IMPORT_CLASS_METHODS ] )

Similaire à include(), par contre tout code qui réside à l'extérieur de fonction ou classe est simplement ignoré. De plus, dépendamment de la valeur de flags, toutes fonctions et classes qui existent déjà dans l'environnement en cours d'exécution seront automatiquement écrasées par leurs nouvelles définitions.

Liste de paramètres

filename

Nom du fichier pour importer les définitions de fonctions et de classe

flags

Comparaison de bits OU (OR) de la famille de constantes RUNKIT_IMPORT_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



runkit_lint_file

(PECL runkit >= 0.7.0)

runkit_lint_file Vérifie la syntaxe PHP d'un fichier spécifié

Description

bool runkit_lint_file ( string $filename )

La fonction runkit_lint_file() effectue une vérification de syntaxe (lint) sur le fichier spécifié en testant les erreurs de scripts. Cette fonction est similaire à l'utilisation de php -l à partir de la ligne de commande.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Liste de paramètres

filename

Fichier contenant du code PHP à être vérifié

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



runkit_lint

(PECL runkit >= 0.7.0)

runkit_lint Vérifie la syntaxe PHP de code PHP spécifié

Description

bool runkit_lint ( string $code )

La fonction runkit_lint() effectue une vérification de syntaxe (lint) sur le code PHP spécifié en testant les erreurs de scripts. Cette fonction est similaire à l'utilisation de php -l à partir de la ligne de commande à l'exception que runkit_lint() accepte le code actuel plutôt qu'un fichier.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Liste de paramètres

code

Code PHP à être vérifié

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



runkit_method_add

(PECL runkit >= 0.7.0)

runkit_method_addAjoute dynamiquement une nouvelle méthode à une classe donnée

Description

bool runkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste des arguments séparés par des virgules pour la nouvelle méthode créée

code

Le code à être évalué lors que methodname est appelé

flags

Le type de méthode à créer, peut être RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE

Note:

Ce paramètre est utilisé seulement en PHP 5, parce que, avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_add()

<?php
class Example {
    function 
foo() {
        echo 
"foo!\n";
    }
}

// Crée un objet Example
$e = new Example();

// Ajoute une nouvelle méthode publique
runkit_method_add(
    
'Example',
    
'add',
    
'$num1, $num2',
    
'return $num1 + $num2;',
    
RUNKIT_ACC_PUBLIC
);

// ajoute 12 + 4
echo $e->add(124);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi



runkit_method_copy

(PECL runkit >= 0.7.0)

runkit_method_copyCopie une méthode d'une classe à une autre

Description

bool runkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dClass

Classe destination pour la méthode copiée

dMethod

Nom de la méthode de destination

sClass

Classe source pour la méthode à copier

sMethod

Nom de la méthode à copier à partir de la classe source. Si ce paramètre est omis, la valeur de dMethod est utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_copy()

<?php
class Foo {
    function 
example() {
        return 
"foo!\n";
    }
}

class 
Bar {
    
// initialement, aucune méthode
}

// Copie la méthode example() de la classe Foo vers la classe Bar, comme étant baz()
runkit_method_copy('Bar''baz''Foo''example');

// sortie de la fonction copiée
echo Bar::baz();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi



runkit_method_redefine

(PECL runkit >= 0.7.0)

runkit_method_redefineChange dynamiquement le code de la méthode donnée

Description

bool runkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC ] )

Note: Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera redéfinie

methodname

Le nom de la méthode à redéfinir

args

Liste d'arguments séparés par des virgules pour la méthode redéfinie

code

Le nouveau code qui sera évalué lorsque methodname sera appelée

flags

La méthode redéfinie peut etre RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE

Note:

Ce paramètre est utilisé seulement en PHP 5, parce que, avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_redefine()

<?php
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
}

// Crée un objet Example
$e = new Example();

// Sortie Example::foo() (avant la redéfinition)
echo "Avant : " $e->foo();

// Redéfinition de la méthode 'foo'
runkit_method_redefine(
    
'Example',
    
'foo',
    
'',
    
'return "bar!\n";',
    
RUNKIT_ACC_PUBLIC
);

// Sortie Example::foo() (après la redéfinition)
echo "Après : " $e->foo();
?>

L'exemple ci-dessus va afficher :

Avant : foo!
Après : bar!

Voir aussi



runkit_method_remove

(PECL runkit >= 0.7.0)

runkit_method_removeSupprime dynamiquement la méthode donnée

Description

bool runkit_method_remove ( string $classname , string $methodname )

Note: Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera supprimée

methodname

Le nom de la méthode à supprimer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_remove()

<?php
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
    
    function 
bar() {
        return 
"bar!\n";
    }
}

// Suppression de la méthode 'foo'
runkit_method_remove(
    
'Example',
    
'foo'
);

echo 
implode(' 'get_class_methods('Example'));

?>

L'exemple ci-dessus va afficher :

bar

Voir aussi



runkit_method_rename

(PECL runkit >= 0.7.0)

runkit_method_renameChange dynamiquement le nom de la méthode donnée

Description

bool runkit_method_rename ( string $classname , string $methodname , string $newname )

Note: Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera renommée

methodname

Le nom de la méthode à renommer

newname

Le nouveau nom à donner à la méthode renommée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_rename()

<?php
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
}

// Renomme la méthode 'foo' par 'bar'
runkit_method_rename(
    
'Example',
    
'foo',
    
'bar'
);

// output renamed function
echo Example::bar();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi



runkit_return_value_used

(PECL runkit >= 0.8.0)

runkit_return_value_usedDétermine si la valeur de retour des fonctions courantes sera utilisée

Description

bool runkit_return_value_used ( void )

Valeurs de retour

Retourne TRUE si la valeur de retour d'une fonction est utilisée par la portée appelante, FALSE autrement.

Exemples

Exemple #1 Exemple avec runkit_return_value_used()

<?php
function foo() {
  
var_dump(runkit_return_value_used());
}

foo();
$f foo();
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)



runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox

Description

mixed runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] )

Normalement, toutes les sorties (comme avec echo() ou print()) seront écrites comme si elles avaient été écrites à partir de la portée du parent. Cependant, l'utilisation de runkit_sandbox_output_handler(), sorties générées par le sandbox (incluant les erreurs), peuvent être capturées par une fonction extérieure à sandbox.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Note: Obsolète

Depuis la version de runkit 0.5, cette fonction est obsolète et devrait être supprimée de ce paquetage avant la version 1.0. Le gestionnaire de sortie pour une instance donnée de Runkit_Sandbox devrait être lue/fixée en utilisant la syntaxe tableau de décalage montrée sur la page de définition de la classe Runkit_Sandbox.

Liste de paramètres

sandbox

Instance de la classe Runkit_Sandbox sur laquelle spécifier la gestion des sorties.

callback

Nom d'une fonction qui s'attend à un paramètre. La sortie générée par sandbox sera envoyée à cette fonction de rappel. Tout ce qui sera retourné par cette fonction sera affiché normalement. Si ce paramètre n'est pas passé, alors la gestion des sorties ne sera pas changée. Si une valeur incorrecte est passée, la gestion des sorties sera désactivée et sera retournée à l'affichage direct.

Valeurs de retour

Retourne le nom de la fonction de rappel précédemment définie en tant que gestion des sorties, ou FALSE si aucun gestionnaire n'avait été précédemment défini.

Exemples

Exemple #1 Alimentation de sortie vers une variable

<?php
function capture_output($str) {
  
$GLOBALS['sandbox_output'] .= $str;

  return 
'';
}

$sandbox_output '';

$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php'capture_output');
$php->echo("Bonjour\n");
$php->eval('var_dump("Excusez-moi");');
$php->die("Je me suis perdu.");
unset(
$php);

echo 
"Sandbox Complété\n\n";
echo 
$sandbox_output;
?>

L'exemple ci-dessus va afficher :

Sandbox Complété

Bonjour
string(9) "Excusez-moi"
Je me suis perdu.



runkit_superglobals

(PECL runkit >= 0.7.0)

runkit_superglobals Retourne un tableau indexé numériquement des variables superglobales enregistrées

Description

array runkit_superglobals ( void )

Valeurs de retour

Retourne un tableau indexé numériquement des variables superglobales enregistrée actuellement. C'est-à-dire _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES


Sommaire




Casse l'opérateur de silence


Introduction

L'extension scream donne la possibilité de désactiver l'opérateur de contrôle d'erreur, de manière à ce que toutes les erreurs soient rapportées. Cette fonctionnalité est désactivée par une directive PHP.



Installation/Configuration

Sommaire


Pré-requis

PHP version 5.2.0 ou plus récent.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/scream



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration de scream
Nom Défaut Modifiable Historique
scream.enabled Off PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

scream.enabled int

Active ou non le module scream.



Types de ressources

Cette extension ne définit aucune ressource.




Exemples

Sommaire


Exemple d'illustration de scream

Cet exemple montre comment l'extension scream affecte le comportement du gestionnaire d'erreur PHP.

Exemple #1 Activation et désactivation de scream, à l'exécution

<?php
// Affichage des erreurs
ini_set('display_errors'true);
error_reporting(E_ALL);

// Désactivation de scream : le code est silencieux
ini_set('scream.enabled'false);
echo 
"Opening http://example.com/not-existing-file\n";
@
fopen('http://example.com/not-existing-file''r');

// Activation de scream : le code est verbeux
ini_set('scream.enabled'true);
echo 
"Opening http://example.com/not-existing-file\n";
@
fopen('http://example.com/another-not-existing-file''r');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Opening http://example.com/not-existing-file
Opening http://example.com/not-existing-file

Warning: fopen(http://example.com/another-not-existing-file): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in example.php on line 14

Note: Généralement, on active cette extension avec une directive de configuration php.ini, au lieu de la modifier dans le code PHP.





Windows Cache pour PHP


Introduction

L'extension Windows Cache pour PHP est un accélérateur PHP qui est utilisé pour augmenter la vitesse des applications PHP sous Windows et Windows Server. Une fois l'extension Windows Cache activée et chargée par le moteur PHP, les applications PHP peuvent tirer parti des fonctionnalités sans aucune modification de code.

L'extension Windows Cache comprend 5 types de caches. Ce qui suit décrit le but de chaque type de cache et les avantages qu'il procure.

  • Cache d'Opcode PHP - PHP est un moteur de traitement de script, qui lit un flux d'entrée de données qui contient du texte et / ou des instructions PHP et produit un autre flux de données, le plus souvent au format HTML. Cela signifie que sur un serveur Web le moteur PHP lit, analyse, compile et exécute un script PHP à chaque fois qu'il est demandé par un client Web. Les operations de lecture, d'analyse et de compilation ajoute une charge supplémentaire sur le processeur (CPU) et sur le système de fichier, ce qui affecte la performance globale d'une application web PHP. Le cache de bytecode PHP (Opcode) est utilisé pour stocker le bytecode du script compilé dans la mémoire partagée pour qu'il puisse être ré-utilisé par le moteur PHP lors des exécutions suivantes du même script.

  • Cache de fichiers - Même avec le cache d'opcode PHP activé, le moteur PHP doit accèder aux fichiers de script sur un système de fichier. Lorsque les scripts PHP sont stockés sur le système de fichier d'un ordinateur distant, les opérations sur ces fichiers introduisent une surcharge importante des performances. L'extension de Cache Windows pour PHP inclut un cache de fichier qui est utilisé pour stocker le contenu des fichiers de scripts PHP dans la mémoire partagée, ce qui réduit le nombre d'opérations effectuées par le moteur PHP sur le système de fichier.

  • Cache de résolution des chemins de fichier - Les scripts PHP incluent ou fonctionnent très souvent avec des fichiers en utilisant des chemins relatifs. Chaque chemin de fichier doit être normalisé en un chemin de fichier absolu par le moteur PHP. Quand une application PHP utilise de nombreux fichiers PHP et y accède par des chemins relatifs, l'opération de résolution des chemins peut impacter négativement les performances de l'application. L'extension de Cache Windows pour PHP fournit un cache de résolution des chemins de fichier, qui est utilisé pour stocker les correspondances entre les chemins de fichier relatifs et absolus, réduisant ainsi le nombre de résolutions que le moteur PHP devra effectuer.

  • Cache utilisateur (disponible depuis la version 1.1.0) - Les scripts PHP peuvent tirer profit du cache de mémoire partagée en utilisant l'API de cache utilisateur. Les objets PHP et les variables peuvent être stockées dans le cache utilisateur et réutilisés lors des requêtes suivantes. Ce cache peut être utilisé pour améliorer les performances des scripts PHP et pour partager les données entre plusieurs processus PHP.

  • Gestionnaire de session (disponible depuis la version 1.1.0) - Le gestionnaire de session WinCache peut être utilisé pour stocker les données de session PHP dans le cache de la mémoire partagée. Cela évite des opérations sur le système de fichier pour la lecture et l'écriture des données de session, ce qui améliore les performances lorsque un montant important de données est stocké dans la session PHP.



Installation/Configuration

Sommaire


Pré-requis

L'extension est actuellement uniquement supportée sur les configurations suivantes :

Windows OS:

  • Windows XP SP3 avec IIS 5.1 et l'» Extension FastCGI
  • Windows Server 2003 avec IIS 6.0 et l'» Extension FastCGI
  • Windows Vista SP1 avec IIS 7.0 et le module FastCGI
  • Windows Server 2008 avec IIS 7.0 et le module FastCGI
  • Windows 7 avec IIS 7.5 et le module FastCGI
  • Windows Server 2008 R2 avec IIS 7.5 et le module FastCGI

PHP:

  • PHP 5.2.X, Non-thread-safe build
  • PHP 5.3 X86, Non-thread-safe VC9 build

Note: L'extension WinCache peut uniquement être utilisée lorsque IIS est configuré pour exécuter PHP via FastCGI.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/wincache.

Il y a deux packages pour cette extension: un package est pour les versions PHP 5.2.X, et l'autre package est pour PHP 5.3.X. Choisissez le package approprié à la version PHP utilisée.

Pour installer et activer l'extension, suivez ces étapes :

  1. Décompressez le package dans un endroit temporaire.

  2. Copiez le fichier php_wincache.dll dans le dossier d'extensions PHP. En général, ce dossier se nomme "ext" et est situé dans le même dossier avec tout les fichiers binaires PHP. Par exemple : C:\Program Files\PHP\ext.

  3. Avec un éditeur de texte, ouvrez le fichier php.ini, qui se trouve généralement dans le même dossier que tout les fichiers binaires PHP. Par exemple : C:\Program Files\PHP\php.ini.

  4. Ajoutez la ligne suivante à la fin du fichier php.ini : extension = php_wincache.dll.

  5. Enregistrez et fermez le fichier php.ini.

  6. Redémarrez le pool d'application IIS pour que PHP récupère les changements de configuration. Pour vérifier que l'extension a été activée, créez un fichier nommé phpinfo.php contenant un appel à la fonction phpinfo.

  7. Sauvez le fichier phpinfo.php dans le répertoire racine d'un site Web IIS qui utilise PHP, puis ouvrez un navigateur et faites une requête sur http://localhost/phpinfo.php. Cherchez une section appelée wincache dans la page retournée. Si l'extension est activée, alors la sortie de phpinfo listera les paramètres de configuration fournis par WinCache.

Note: Ne pas oublier de supprimer le fichier phpinfo.php du répertoire racine après avoir vérifié que l'extension a été activée.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Le tableau suivant répertorie et explique les paramètres de configuration fournis par l'extension WinCache :

Options de configuration WinCache
Nom Défault Minimum Maximum Modifiable Changelog
wincache.fcenabled "1" "0" "1" PHP_INI_ALL Disponible depuis WinCache 1.0.0
wincache.fcenabledfilter "NULL" "NULL" "NULL" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.fcachesize "24" "5" "255" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.fcndetect "1" "0" "1" PHP_INI_SYSTEM Disponible depuis WinCache 1.1.0
wincache.maxfilesize "256" "10" "2048" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.ocenabled "1" "0" "1" PHP_INI_ALL Disponible depuis WinCache 1.0.0
wincache.ocenabledfilter "NULL" "NULL" "NULL" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.ocachesize "96" "15" "255" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.filecount "4096" "1024" "16384" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.chkinterval "30" "0" "300" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.ttlmax "1200" "0" "7200" PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.enablecli 0 0 1 PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.ignorelist NULL NULL NULL PHP_INI_ALL Disponible depuis WinCache 1.0.0
wincache.namesalt NULL NULL NULL PHP_INI_SYSTEM Disponible depuis WinCache 1.0.0
wincache.ucenabled 1 0 1 PHP_INI_SYSTEM Disponible depuis WinCache 1.1.0
wincache.ucachesize 8 5 85 PHP_INI_SYSTEM Disponible depuis WinCache 1.1.0
wincache.scachesize 8 5 85 PHP_INI_SYSTEM Disponible depuis WinCache 1.1.0
wincache.rerouteini NULL NULL NULL PHP_INI_SYSTEM Disponible depuis WinCache 1.2.0
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

wincache.fcenabled boolean
Active ou désactive la fonctionnalité de cache de fichiers.
wincache.fcenabledfilter string
Définit une liste séparée par des virgules, d'identificateurs de site Web IIS où le cache de fichiers doit être activé ou désactivé. Ce paramètre fonctionne en conjonction avec wincache.fcenabled : Si wincache.fcenabled est réglé à 1, alors les sites listés dans wincache.fcenabledfilter auront le cache de fichiers désactivé; si wincache.fcenabled est réglé à 0, alors les sites listés dans wincache.fcenabledfilter auront le cache de fichiers activé.
wincache.fcachesize integer
Définit la taille maximale de mémoire (en mégaoctets) qui est allouée pour le cache de fichiers. Si la taille totale de tous les fichiers en cache dépasse la valeur spécifiée dans ce paramètre, alors la plupart des fichiers périmés seront retirés du cache de fichiers.
wincache.fcndetect boolean
Active ou désactive les notifications de détection de modification de fichier. Si la notification est supporté, alors elle sera utilisé pour rafraîchir l'opcode ainsi que les entrées du fichier présentes dans le cache aussitôt la modification correspondante des fichiers effectuée sur le système de fichiers. Si la notification n'est pas supportée, par exemple lors de l'utilisation de fichiers partagés par le réseau, alors Wincache vérifiera les modifications de fichiers à intervalle régulier spécifié par le paramètre wincache.chkinterval.
wincache.maxfilesize integer
Définit la taille maximale autorisée (en kilo-octets) pour un fichier unique qui sera mis en cache. Si un fichier a une taille supérieure à la valeur spécifiée, le fichier ne sera pas mis en cache. Ce paramètre s'applique à la mémoire cache de fichier seulement.
wincache.ocenabled boolean
Active ou désactive la fonctionnalité de cache opcode
wincache.ocenabledfilter string
Définit une liste séparée par des virgules, d'identificateurs de site Web IIS où le cache opcode doit être activé ou désactivé. Ce paramètre fonctionne en conjonction avec wincache.ocenabled : Si wincache.ocenabled est réglé à 1, alors les sites listés dans wincache.ocenabledfilter auront le cache opcode désactivé; si wincache.ocenabled est réglé à 0, alors les sites listés dans wincache.ocenabledfilter auront le cache opcode activé.
wincache.ocachesize integer
Définit la taille maximum de mémoire (en mégaoctets) qui est allouée pour le cache opcode. Si la taille du cache opcode dépasse la valeur spécifiée, alors l'opcode le plus ancien sera retiré du cache. Notez que la taille du cache d'opcode doit être au moins 3 fois plus grande que la taille du cache de fichiers. Si ce n'est pas le cas la taille du cache opcode sera automatiquement augmentée.
wincache.filecount integer
Définit combien de fichiers sont censés être mis en cache par l'extension, de sorte à ce qu'un montant de mémoire suffisant soit alloué au démarrage. Si le nombre de fichiers excède la valeur spécifiée, WinCache ré-allouera plus de mémoire comme demandé.
wincache.chkinterval integer
Définit la fréquence (en secondes) à laquelle l'extension vérifiera les changements de fichier de façon à rafraîchir le cache. Mettre cette option à 0 permet de désactiver le rafraîchissement du cache. Les changements de fichiers ne seront pas reflétés dans le cache à moins que l'entrée de cache soit supprimée par le récupérateur, que le pool d'applications IIS soit recyclé, ou que la fonction wincache_refresh_if_changed soit appelée.
wincache.ttlmax integer
Définit le temps de vie maximale (en secondes) pour une entrée de cache sans être utilisée. Définir ce paramètre à 0 désactive la récupérateur de cache, de façon à ce que les entrées du cache ne soient jamais supprimées du cache pendant la durée de vie du processus de travail IIS.
wincache.enablecli boolean
Définit si le cache est activé lorsque PHP fonctionne en ligne de commande (CLI) .
wincache.ignorelist string

Définit une liste de fichiers qui ne doivent pas être mis en cache par l'extension. La liste des fichiers est spécifiée en utilisant des noms de fichiers uniquement, séparés par le symbole pipe - "|".

Exemple #1 wincache.ignorelist exemple

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
Définit une chaîne qui sera utilisée lors du nommage des objets spécifiques à l'extension qui seront stockés dans la mémoire partagée. Ce paramètre est utilisé afin d'éviter les conflits qui peuvent être provoqués si d'autres applications dans un processus de travail IIS tente d'accéder à la mémoire partagée. La longueur de la chaîne namesalt ne peut être supérieure à 8 caractères.
wincache.ucenabled boolean
Active ou désactive la fonctionnalité de cache utilisateur.
wincache.ucachesize integer
Définit la taille maximale de mémoire (en mégaoctets) qui est allouée pour le cache utilisateur. Si la taille totale des variables stockées dans le cache utilisateur dépasse la valeur spécifiée, alors les plus anciennes variables seront retirées du cache.
wincache.scachesize integer
Définie la taille maximale de mémoire, en méga-octets, à allouer pour le cache de la session. Si la taille totale des données stockées dans le cache de la session excède la valeur spécifiée, alors les données les plus anciennes seront supprimées du cache.
wincache.rerouteini string
Indique un chemin absolu ou relatif vers le fichier reroute.ini contenant une liste de fonctions PHP dont les implémentations devraient être remplacées par les équivalents Wincache. Si un chemin relatif est passé, il est supposé relatif au fichier php-cgi.exe.



Script de statistiques WinCache

Le package d'installation pour WinCache inclut un script PHP, wincache.php, qui peut être utilisé pour obtenir des informations et des statistiques sur le cache.

Si l'extension WinCache a été installée via l'installeur de Microsoft Web Platform, alors ce script se trouve dans %SystemDrive%\Program Files\IIS\Windows Cache for PHP\. Sur une version 64 bits du système d'exploitation Windows Server, le script se trouve dans %SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP. Si l'extension a été installée manuellement, alors le fichier wincache.php sera situé dans le même dossier à partir duquel le contenu du package d'installation a été extrait.

Pour utiliser wincache.php, copiez-le dans le dossier racine d'un site Web ou dans n'importe quel sous-dossier. Pour protéger le script, ouvrez-le dans n'importe quel éditeur et remplacez les valeurs des constantes USERNAME et PASSWORD. Si n'importe quel autre authentification IIS est activée sur le serveur, alors suivez les instructions dans les commentaires :

Exemple #1 Configuration de l'authentification pour wincache.php

<?php
/**
 * ======================== CONFIGURATION SETTINGS ==============================
 * If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0.
 * If you use authentication then replace the default password.
 */
define('USE_AUTHENTICATION'1);
define('USERNAME''wincache');
define('PASSWORD''wincache');

/**
 * The Basic PHP authentication will work only when IIS is configured to support 
 * Anonymous Authentication' and nothing else. If IIS is configured to support/use
 * any other kind of authentication like Basic/Negotiate/Digest etc, this will not work.
 * In that case use the array below to define the names of users in your 
 * domain/network/workgroup which you want to grant access to.
 */
$user_allowed = array('DOMAIN\user1''DOMAIN\user2''DOMAIN\user3');

/**
 * If the array contains string 'all', then all the users authenticated by IIS
 * will have access to the page. Uncomment the below line and comment above line
 * to grant access to all users who gets authenticated by IIS.
 */
/* $user_allowed = array('all'); */

/** ===================== END OF CONFIGURATION SETTINGS ========================== */
?>

Note: Protégez toujours le script wincache.php en utilisant soit le mécanisme d'authentification intégré ou le mécanisme d'authentification du serveur. Laissez ce script non protégé peut compromettre la sécurité de votre application web et du serveur.



WinCache Session Handler

Le gestionnaire de session WinCache (disponible depuis WinCache 1.1.0) peut être utilisé pour configurer PHP pour stocker les données de session dans la mémoire partagée du cache de session. L'utilisation de la mémoire partagée au lieu de la session par défaut aide à améliorer les performances des applications PHP qui stockent de grandes quantités de données dans des objets de session. Le cache de session Wincache utilise des fichiers basés sur la mémoire partagée, ce qui assure que les données de session ne seront pas perdues lors du recyclage de la file d'attente des applications IIS.

Pour configurer PHP pour utiliser le gestionnaire de session WinCache mettez le paramètre session.save_handler du fichier php.ini à wincache. Par défaut, l'endroit où sont stockés les fichiers temporaires sous Windows est utilisé pour stocker les données de session. Pour changer cet endroit, utilisez la directive session.save_path.

Exemple #1 Activer le gestionnaire de session WinCache

session.save_handler = wincache
session.save_path = C:\inetpub\temp\session\



WinCache Functions Reroutes

Les fonctionnalités WinCache de re routages de fonctions (disponibles depuis WinCache 1.2.0) peuvent être utilisées pour remplacer des fonctions PHP natives par leur équivalent optimisé pour des cas particuliers. L'extension Wincache inclut des implémentations de fonctions PHP optimisées pour Windows, notamment dans les cas d'accès réseau ou système de fichier. Les fonctions suivantes sont concernées :

Pour configurer le re routage de fonctions avec Wincache, utilisez le fichier reroute.ini inclut dans le paquet. Copiez le dans le dossier où se trouve php.ini. Après, ajoutez wincache.rerouteini dans php.ini et précisez le chemin absolu ou relatif vers reroute.ini.

Exemple #1 Activation des fonctionnalités de re routage des fonctions de WinCache

wincache.rerouteini = C:\PHP\reroute.ini

Note: Si activé, il est recommandé d'augmenter la taille du cache des fichiers. Ceci peut être fait en utilisant le paramètre wincache.fcachesize.

Le fichier reroute.ini contient la correspondance entre la fonction PHP native et l'équivalent Wincache. Chaque ligne dans le fichier définit une correspondance. Voici la syntaxe:

<PHP function name>:[<number of function parameters>]=<wincache function name>

Un exemple de fichier est donné plus bas. Dans cet exemple, les appels aux fonctions PHP file_get_contents() seront remplacés par wincache_file_get_contents() seulement si le nombre de paramètres passés à la fonction est inférieur ou égal à deux. C'est utile de préciser le nombre de paramètres lorsque la fonction de remplacement n'est pas conçue pour tous les utiliser.

Exemple #2 Reroute.ini

[FunctionRerouteList]
file_exists=wincache_file_exists
file_get_contents:2=wincache_file_get_contents
readfile:2=wincache_readfile
is_readable=wincache_is_readable
is_writable=wincache_is_writable
is_writeable=wincache_is_writable
is_file=wincache_is_file
is_dir=wincache_is_dir
realpath=wincache_realpath
filesize=wincache_filesize



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



WinCache Fonctions


wincache_fcache_fileinfo

(PECL wincache >= 1.0.0)

wincache_fcache_fileinfo Extrait des informations sur les fichiers mis en cache dans le cache de fichiers

Description

array wincache_fcache_fileinfo ([ bool $summaryonly = false ] )

Extrait des informations sur le contenu du cache de fichiers et son utilisation.

Liste de paramètres

summaryonly

Si le tableau retourné doit contenir des informations sur chaque entrée du cache en plus du résumé sur les fichiers du cache.

Valeurs de retour

Tableau de méta-données sur le cache de fichier ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_cache_uptime - Temps d'activité total en secondes du cache de fichiers
  • total_file_count - Nombre total de fichiers actuellement dans le cache de fichiers
  • total_hit_count - Nombre de fois où les fichiers ont été servis à partir du cache du fichiers
  • total_miss_count - Nombre de fois que les fichiers n'ont pas été trouvés dans le cache de fichiers
  • file_entries - Tableau contenant les informations sur tous les fichiers mis en cache:

    • file_name - Nom et chemin absolu du fichier en cache
    • add_time - Temps en secondes depuis que le fichier a été ajouté au cache de fichiers
    • use_time - Temps en secondes depuis que le fichier a été consulté dans le cache de fichier
    • last_check - Temps en secondes depuis la dernière vérification de modifications
    • hit_count - Nombre de fois que le fichier a été servis à partir du cache
    • file_size - Taille en bytes du fichier caché

Exemples

Exemple #1 Un exemple de wincache_fcache_fileinfo()

<pre>
<?php
print_r
(wincache_fcache_fileinfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(   [total_cache_uptime] => 3234
    [total_file_count] => 5
    [total_hit_count] => 0
    [total_miss_count] => 1
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 1
                    [use_time] => 0
                    [last_check] => 1
                    [hit_count] => 1
                    [file_size] => 2435
                )
            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi



wincache_fcache_meminfo

(PECL wincache >= 1.0.0)

wincache_fcache_meminfo Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.

Description

array wincache_fcache_meminfo ( void )

Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.

Valeurs de retour

Tableau de méta-données sur l'utilisation de la mémoire du cache de fichiers ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants:

  • memory_total - Quantité de mémoire en octets allouée pour le cache de fichiers
  • memory_free - Quantité de mémoire libre en octets disponible pour le cache de fichiers
  • num_used_blks - Nombre de blocs mémoire utilisés par le cache de fichiers
  • num_free_blks - Nombre de blocs mémoire libres disponibles pour le cache de fichiers
  • memory_overhead - Quantité de mémoire en bytes utilisée pour la structure interne du cache de fichiers

Exemples

Exemple #1 Un exemple de wincache_fcache_meminfo()

<pre>
<?php
print_r
(wincache_fcache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 134217728
    [memory_free] => 131339120
    [num_used_blks] => 361
    [num_free_blks] => 3
    [memory_overhead] => 5856
)

Voir aussi



wincache_lock

(PECL wincache >= 1.1.0)

wincache_lockAcquière un verrou exclusif sur une clé donnée

Description

bool wincache_lock ( string $key [, bool $isglobal = false ] )

Obtient un verrou exclusif sur une clé donnée. L'exécution du script courant sera bloqué tant que le verrou ne pourra pas être obtenu. Une fois le verrou obtenu, les autres scripts tentant de requérir le verrou en utilisant la même clé seront bloqués, tant que le script courant n'aura pas libéré le verrou en utilisant la fonction wincache_unlock().

Avertissement

L'utilisation de la fonction wincache_lock() et de la fonction wincache_unlock() peut conduire à des verrous morts lors de l'exécution de scripts PHP sur des environnements multi-processus, comme FastCGI. N'utilisez pas ces fonctions tant que vous n'êtes pas absolument certain d'en avoir besoin. Pour la majorité des opérations sur le cache utilisateur, il n'est pas nécessaire de les utiliser.

Liste de paramètres

key

Nom de la clé du cache dont nous souhaitons obtenir un verrou.

isglobal

Contrôle si le contexte du verrou est local ou au niveau système. Les verrous locaux ont un contexte au niveau applicatif dans le cas de l'utilisation sous IIS Fast CGI ou au niveau de tous les processus PHP qui ont le même identifiant parent de processus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_lock()

<?php
$fp 
fopen("/tmp/lock.txt""r+");
if (
wincache_lock(“lock_txt_lock”)) { // obtient un verrou exclusif
    
ftruncate($fp0); // tronque le fichier
    
fwrite($fp"On écrit quelque chose ici\n");
    
wincache_unlock(“lock_txt_lock”); // libère le verrou
} else {
    echo 
"Impossible d'obtenir le verrou !";
}
fclose($fp);
?>

Voir aussi



wincache_ocache_fileinfo

(PECL wincache >= 1.0.0)

wincache_ocache_fileinfo Extrait des informations sur les fichiers mis en cache dans le cache opcode

Description

array wincache_ocache_fileinfo ([ bool $summaryonly = false ] )

Extrait des informations sur le contenu du cache opcode et son utilisation.

Liste de paramètres

summaryonly

Contrôle si le tableau retourné doit contenir des informations sur les entrées individuelles du cache en plus du résumé sur le cache opcode.

Valeurs de retour

Tableau de méta-données sur le cache opcode ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants:

  • total_cache_uptime - Temps d'activité total en secondes du cache opcode
  • total_file_count - Nombre total de fichiers actuellement dans le cache opcode
  • total_hit_count - Nombre total de fois où l'opcode compilé a été servis par le cache
  • total_miss_count - Nombre de fois où l'opcode compilé n'a pas été trouvé dans le cache
  • is_local_cache - true si les méta-données du cache sont pour une instance de cache local, false si les méta-données sont pour le cache global.
  • file_entries - Tableau contenant les informations sur tous les fichiers mis en cache:

    • file_name - Nom de fichier absolu du fichier en cache
    • add_time - Temps en secondes depuis l'ajout du fichier dans le cache opcode
    • use_time - Temps en secondes depuis la consultation du fichier dans le cache opcode
    • last_check - Temps en secondes depuis où le fichier a été vérifié pour les modifications
    • hit_count - Nombre de fois où le fichier a été servis par le cache
    • function_count - Nombre de fonctions dans le cache
    • class_count - Nombre de classes dans le cache

Exemples

Exemple #1 Un exemple de wincache_ocache_fileinfo()

<pre>
<?php
print_r
(wincache_ocache_fileinfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi



wincache_ocache_meminfo

(PECL wincache >= 1.0.0)

wincache_ocache_meminfo Extrait des informations sur l'utilisation du cache opcode

Description

array wincache_ocache_meminfo ( void )

Extrait des informations sur l'utilisation de la mémoire par le cache opcode.

Valeurs de retour

Tableau de méta-données sur l'utilisation de la mémoire cache opcode ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - Quantité de mémoire en octets, allouée pour le cache opcode
  • memory_free - Quantité de mémoire libre en octets, disponible pour le cache opcode
  • num_used_blks - Nombre de blocs mémoire utilisés par le cache opcode
  • num_free_blks - Nombre de blocs mémoire libres disponibles pour le cache opcode
  • memory_overhead - Quantité de mémoire en octets utilisée pour la structure interne du cache opcode

Exemples

Exemple #1 Un exemple de wincache_ocache_meminfo()

<pre>
<?php
print_r
(wincache_ocache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 134217728
    [memory_free] => 112106972
    [num_used_blks] => 15469
    [num_free_blks] => 4
    [memory_overhead] => 247600
)

Voir aussi



wincache_refresh_if_changed

(PECL wincache >= 1.0.0)

wincache_refresh_if_changed Actualise les entrées du cache pour les fichiers mis en cache

Description

bool wincache_refresh_if_changed ([ array $files ] )

Actualise les entrées du cache pour les fichiers dont les noms ont été passés dans les arguments d'entrée. Si aucun argument n'est précisé, alors, actualise toutes les entrées du cache.

Liste de paramètres

files

Tableau de noms de fichiers pour les fichiers qui ont besoin d'être actualisés. Un chemin de fichier absolu ou relatif peut être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

WinCache effectue des contrôles réguliers sur les fichiers mis en cache pour veiller à ce que, si un fichier ai changé, l'entrée correspondante dans la mémoire cache sois mis à jour. Par défaut, cette vérification est effectuée toutes les 30 secondes. Si par exemple un script PHP met à jour un autre script PHP où les configurations de l'application son stockés, alors il peu arriver que après les changement de configuration soient sauvés, l'application utilise toujours les anciens paramètres pour quelque temps jusqu'à ce que le cache sois actualisé. Dans ce cas, il est préférable d'actualiser le cache juste après que le fichier ai été modifié. L'exemple qui suis montre comment cela peut être effectué.

Exemple #1 Un exemple de wincache_refresh_if_changed()

<?php 
$filename 
'C:\inetpub\wwwroot\config.php';
$handle fopen($filename'w+');
if (
$handle === FALSE) die('Failed to open file '.$filename.' for writing');
fwrite($handle'<?php $setting=something; ?>');
fclose($handle);
wincache_refresh_if_changed(array($filename));
?>

Voir aussi



wincache_rplist_fileinfo

(PECL wincache >= 1.0.0)

wincache_rplist_fileinfoRécupère des informations du cache sur un chemin de fichier résolu

Description

array wincache_rplist_fileinfo ([ bool $summaryonly = false ] )

Récupère des informations sur une cartographie en cache entre des chemins relatifs de fichiers et leurs correspondances en chemins absolus.

Valeurs de retour

Un tableau de données méta contenant le contenu du cache d'un chemin de fichier résolu ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_file_count - nombre total de chemins de fichiers stockés dans le cache
  • rplist_entries - un tableau contenant les informations sur les chemins de fichier présents en cache :

    • resolve_path - chemin vers le fichier
    • subkey_data - chemin absolu correspondant

Exemples

Exemple #1 Exemple avec wincache_rplist_fileinfo()

<pre>
<?php
print_r
(wincache_rplist_fileinfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [total_file_count] => 5
    [rplist_entries] => Array
        (
            [1] => Array
                (
                    [resolve_path] => checkcache.php
                    [subkey_data] => c:\inetpub\wwwroot|c:\inetpub\wwwroot\checkcache.php
                )

            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi



wincache_rplist_meminfo

(PECL wincache >= 1.0.0)

wincache_rplist_meminfoRécupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu

Description

array wincache_rplist_meminfo ( void )

Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu.

Valeurs de retour

Un tableau de données méta qui décrit l'utilisation de la mémoire par le cache de chemin de fichier résolu. ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - nombre total de mémoire, en octets, alouée au cache de chemins de fichiers résolus
  • memory_free - mémoire libre, en octets, disponible pour le cache de chemins de fichiers résolus
  • num_used_blks - blocs mémoires utilisés par le cache de chemins de fichiers résolus
  • num_free_blks - nombre de blocs mémoires de libre pour le cache des chemins de fichiers résolus
  • memory_overhead - mémoire, en octets, utilisée pour la structure interne du cache des chemins de fichiers résolus

Exemples

Exemple #1 Exemple avec wincache_rplist_meminfo()

<pre>
<?php
print_r
(wincache_rplist_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 9437184
    [memory_free] => 9416744
    [num_used_blks] => 23
    [num_free_blks] => 1
    [memory_overhead] => 416
)

Voir aussi



wincache_scache_info

(PECL wincache >= 1.1.0)

wincache_scache_infoRécupère des informations sur des fichiers mis en cache

Description

array wincache_scache_info ([ bool $summaryonly = false ] )

Récupère des informations sur le contenu du cache et son utilisation.

Liste de paramètres

summaryonly

Contrôle si le tableau retourné doit contenir des informations sur des entrées individuelles du cache en plus du résumé du cache.

Valeurs de retour

Un tableau de données méta sur le cache pour cette session ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_cache_uptime - durée total (en secondes) d'activation du cache
  • total_item_count - nombre total d'éléments contenus actuellement dans le cache
  • is_local_cache - TRUE si les méta-données du cache sont pour une instance de cache locale, FALSE si elles sont pour un cache global
  • total_hit_count - nombre total de fois que les données ont été servis depuis le cache
  • total_miss_count - nombre total de fois que les données ont été trouvées dans le cache
  • scache_entries - un tableau contenant les informations sur les éléments mis en cache :

    • key_name - nom de la clé utilisé pour stocker les données
    • value_type - type de la valeur stockée
    • use_time - durée, en secondes, depuis le dernier accès du fichier depuis le cache opcode
    • last_check - durée, en secondes, depuis la dernière fois où le fichier a été vérifié afin de détection des modifications
    • ttl_seconds - durée restante avant suppression des données du cache, 0 signifiant qu'elles ne seront jamais supprimées
    • age_seconds - l'âge des données dans le cache (i.e. depuis leurs insertions)
    • hitcount - nombre de fois que les données ont été servies depuis le cache

Exemples

Exemple #1 Exemple avec wincache_scache_info()

<pre>
<?php
print_r
(wincache_scache_info());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [scache_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi



wincache_scache_meminfo

(PECL wincache >= 1.1.0)

wincache_scache_meminfoRécupère des informations sur l'utilisation de la mémoire du cache

Description

array wincache_scache_meminfo ( void )

Récupère des informations sur l'utilisation mémoire du cache.

Valeurs de retour

Un tableau de données méta sur l'utilisation de la mémoire du cache ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - mémoire, en octets, allouée au cache
  • memory_free - mémoire disponible, en octets, pour le cache
  • num_used_blks - nombre de blocs mémoires utilisés par le cache
  • num_free_blks - nombre de blocs mémoires disponibles pour le cache
  • memory_overhead - mémoire, en octets, utilisé par les structures internes du cache

Exemples

Exemple #1 Exemple avec wincache_scache_meminfo()

<pre>
<?php
print_r
(wincache_scache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array 
( 
    [memory_total] => 5242880 
    [memory_free] => 5215056 
    [num_used_blks] => 6 
    [num_free_blks] => 3 
    [memory_overhead] => 176
) 

Voir aussi



wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add Ajoute une nouvelle variable au cache utilisateur

Description

bool wincache_ucache_add ( string $key , mixed $value [, int $ttl = 0 ] )
bool wincache_ucache_add ( array $values [, mixed $unused [, int $ttl = 0 ]] )

Ajoute une variable au cache utilisateur, uniquement si elle n'existe pas déjà dans le cache. La variable restera dans le cache tant que le délai d'expiration n'est pas atteint ou qu'elle n'est effacée par la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Liste de paramètres

key

Stoque la variable en utilisant le nom key. Si une variable correspondant à la même clé est déjà présente dans le cache, la fonction échouera et retournera FALSE. Le paramètre key est sensible à la casse. Pour écraser cette valeur, si key est présent, utilisez plutôt la fonction wincache_ucache_set(). key peut également être un tableau de paires nom => valeur où les noms seront utilisés comme clés. Ce format peut être utilisé pour ajouter de multiples valeurs dans le cache en une seule opération.

value

La valeur de la variable à stoquer. Le paramètre Value supporte tous les types de données, sauf les ressources, comme des pointeurs de fichiers. Ce paramètre sera ignoré si le premier argument est un tableau. De façon général, il convient de passer la valeur NULL au paramètre value lors de l'utilisation d'un tableau pour le paramètre key. Si le paramètre value est un objet, ou un tableau contenant des objets, alors les objets seront linéarisés. Reportez-vous à la fonction __sleep() pour plus de détails sur la linéarisation d'objets.

values

Tableau associatif de clés et de valeurs.

ttl

Durée de vie de la variable dans le cache, en secondes. Après la durée spécifiée par le paramètre ttl, la variable stoquée sera supprimée du cache. Ce paramètre prend, comme valeur par défaut, zéro (0), ce qui signifie que la variable restera dans le cache tant qu'elle n'est pas explicitement effacée en utilisant la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Valeurs de retour

Si le paramètre key est une chaîne de caractères, la fonction retourne TRUE en cas de succès, FALSE si une erreur survient.

Si le paramètre key est un tableau, la fonction retourne :

  • Si toutes les paires nom => valeur du tableau peuvent être définies, la fonction retournera un tableau vide ;
  • Si toutes les paires nom => valeur du tableau ne peuvent être définies, la fonction retournera FALSE ;
  • Si certaines peuvent être définies, et d'autres non, la fonction retournera un tableau de paires nom => valeur n'ayant pû être définies dans le cache utilisateur.

Exemples

Exemple #1 Exemple avec wincache_ucache_add() et le paramètre key sous forme de chaîne de caractères

<?php
$bar 
'BAR';
var_dump(wincache_ucache_add('foo'$bar));
var_dump(wincache_ucache_add('foo'$bar));
var_dump(wincache_ucache_get('foo'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
string(3) "BAR" 

Exemple #2 Exemple avec wincache_ucache_add() et le paramètre key sous forme d'un tableau

<?php
$colors_array 
= array('green' => '5''Blue' => '6''yellow' => '7''cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

L'exemple ci-dessus va afficher :

array(0) { } 
array(4) { 
  ["green"]=> int(-1) 
  ["Blue"]=> int(-1) 
  ["yellow"]=> int(-1) 
  ["cyan"]=> int(-1) 
} 
string(1) "6"

Voir aussi



wincache_ucache_cas

(PECL wincache >= 1.1.0)

wincache_ucache_casCompare la variable avec son ancienne valeur et lui assigne une nouvelle valeur

Description

bool wincache_ucache_cas ( string $key , int $old_value , int $new_value )

Compare la variable associée avec la clé key avec la valeur old_value et si elle correspond, lui assigne la nouvelle valeur new_value.

Liste de paramètres

key

La clé key utilisé pour stoquer la variable dans le cache. key est sensible à la casse.

old_value

L'ancienne valeur de la variable pointée par le paramètre key dans le cache utilisateur. La valeur doit être de type long, sinon, la fonction retournera FALSE.

new_value

La nouvelle valeur qui sera assignée à la variable pointée par la clé key si la correspondance a été trouvée. La valeur doit être de type long, sinon, la fonction retournera FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_cas()

<?php
wincache_ucache_set
('counter'2922);
var_dump(wincache_ucache_cas('counter'29221));
var_dump(wincache_ucache_get('counter'));
?>

L'exemple ci-dessus va afficher :

bool(true) 
int(1)

Voir aussi



wincache_ucache_clear

(PECL wincache >= 1.1.0)

wincache_ucache_clearSupprime le contenu d'une entrée du cache utilisateur

Description

bool wincache_ucache_clear ( void )

Supprime toutes les valeurs stoquées dans le cache utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_clear()

<?php
wincache_ucache_set
('green'1);
wincache_ucache_set('red'2);
wincache_ucache_set('orange'4);
wincache_ucache_set('blue'8);
wincache_ucache_set('cyan'16);
$array1 = array('green''red''orange''blue''cyan');
var_dump(wincache_ucache_get($array1));
var_dump(wincache_ucache_clear());
var_dump(wincache_ucache_get($array1));
?>

L'exemple ci-dessus va afficher :

array(5) { ["green"]=> int(1) 
           ["red"]=> int(2) 
           ["orange"]=> int(4) 
           ["blue"]=> int(8) 
           ["cyan"]=> int(16) } 
bool(true) 
bool(false) 

Voir aussi



wincache_ucache_dec

(PECL wincache >= 1.1.0)

wincache_ucache_decDécrémente la valeur associée à une clé

Description

mixed wincache_ucache_dec ( string $key [, int $dec_by = 1 [, bool &$success ]] )

Décrémente de 1 ou dec_by de la valeur associée avec la clé key.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse.

dec_by

La valeur utilisée pour décrémenter la variable associée à la clé key. Si l'argument est un nombre à virgule flottante, il sera arrondi à l'entier le plus proche. La variable associée avec la clé key doit être de type long, sinon, la fonction retournera FALSE.

success

Sera définie à TRUE en cas de succès, FALSE si une erreur survient.

Valeurs de retour

Retourne la valeur décrémentée en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_dec()

<?php
wincache_ucache_set
('counter'1);
var_dump(wincache_ucache_dec('counter'2923$success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

int(2922) 
bool(true)

Voir aussi



wincache_ucache_delete

(PECL wincache >= 1.1.0)

wincache_ucache_deleteSupprime les variables du cache utilisateur

Description

bool wincache_ucache_delete ( mixed $key )

Supprime les éléments pointés par la clé key du cache utilisateur.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse. key peut être un tableau de clés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si le paramètre key est un tableau, alors la fonction retournera FALSE si un des éléments du tableau n'a pu être supprimé du cache utilisateur, sinon, elle retournera un tableau contenant toutes les clés ayant été supprimées avec succès.

Exemples

Exemple #1 Exemple avec wincache_ucache_delete() et le paramètre key sous forme de chaîne de caractères

<?php
wincache_ucache_set
('foo''bar');
var_dump(wincache_ucache_delete('foo'));
var_dump(wincache_ucache_exists('foo'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Exemple #2 Exemple avec wincache_ucache_delete() et le paramètre key sous forme d'un tableau

<?php
$array1 
= array('green' => '5''blue' => '6''yellow' => '7''cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green''blue''yellow''cyan');
var_dump(wincache_ucache_delete($array2));
?>

L'exemple ci-dessus va afficher :

array(4) { [0]=> string(5) "green" 
           [1]=> string(4) "Blue" 
           [2]=> string(6) "yellow" 
           [3]=> string(4) "cyan" } 

Exemple #3 Exemple avec wincache_ucache_delete() et le paramètre key sous la forme d'un tableau où quelques éléments n'ont pas pu être supprimés

<?php
$array1 
= array('green' => '5''blue' => '6''yellow' => '7''cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('orange''red''yellow''cyan');
var_dump(wincache_ucache_delete($array2));
?>

L'exemple ci-dessus va afficher :

array(2) { [0]=> string(6) "yellow" 
           [1]=> string(4) "cyan" }

Voir aussi



wincache_ucache_exists

(PECL wincache >= 1.1.0)

wincache_ucache_existsVérifie si une variable existe dans le cache utilisateur

Description

bool wincache_ucache_exists ( string $key )

Vérifie si une variable dont la clé est key existe ou non dans le cache utilisateur.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse.

Valeurs de retour

Retourne TRUE si la variable dont la clé est key existe, FALSE sinon.

Exemples

Exemple #1 Exemple avec wincache_ucache_exists()

<?php
if (!wincache_ucache_exists('green'))
    
wincache_ucache_set('green'1);
var_dump(wincache_ucache_exists('green'));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi



wincache_ucache_get

(PECL wincache >= 1.1.0)

wincache_ucache_getRécupère une variable stokée dans le cache utilisateur

Description

mixed wincache_ucache_get ( mixed $key [, bool &$success ] )

Récupère une variable stokée dans le cache utilisateur.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse. key peut être un tableau de clés. Dans ce cas, la valeur retournée sera un tableau de valeurs de chaque éléments du tableau key. Si un objet ou un tableau contenant des objets est retourné, alors les objets seront délinéarisés. Reportez-vous à la fonction __wakeup() pour plus de détails sur les délinéarisations des objets.

success

Sera définie à TRUE en cas de succès, FALSE si une erreur survient.

Valeurs de retour

Si le paramètre key est une chaîne de caractères, la fonction retournera la valeur de la variable stokée avec cette clé. Le paramètre success sera défini à TRUE en cas de succès, et à FALSE si une erreur survient.

Si le paramètre key est un tableau, le paramètre success sera toujours défini à TRUE. Le tableau retourné (paires de nom => valeur) contiendra uniquement les paires nom => valeur pour lesquelles la récupération depuis le cache utilisateur a été un succès. Si aucune des clés du tableau ne correspond à des entrées du cache utilisateur, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec wincache_ucache_get() et le paramètre key sous forme de chaîne de caractères

<?php
wincache_ucache_add
('color''blue');
var_dump(wincache_ucache_get('color'$success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

string(4) "blue"
bool(true)

Exemple #2 Exemple avec wincache_ucache_get() et le paramètre key sous forme d'un tableau

<?php
$array1 
= array('green' => '5''Blue' => '6''yellow' => '7''cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green''Blue''yellow''cyan');
var_dump(wincache_ucache_get($array2$success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

array(4) { ["green"]=> string(1) "5" 
           ["Blue"]=> string(1) "6" 
           ["yellow"]=> string(1) "7" 
           ["cyan"]=> string(1) "8" } 
bool(true) 

Voir aussi



wincache_ucache_inc

(PECL wincache >= 1.1.0)

wincache_ucache_incIncrémente la valeur associée à une clé

Description

mixed wincache_ucache_inc ( string $key [, int $inc_by = 1 [, bool &$success ]] )

Incrémente, de 1 ou de la valeur du paramètre inc_by, la valeur associée avec la clé key.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse.

inc_by

La valeur utilisée pour incrémenter la variable associée à la clé key. Si l'argument est un nombre à virgule flottante, elle sera arrondie à l'entier le plus proche. La variable associée à la clé key doit être de type long, sinon la fonction échouera et retournera FALSE.

success

Sera défini à TRUE en cas de succès, FALSE si une erreur survient.

Valeurs de retour

Retourne la valeur incrémentée en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_inc()

<?php
wincache_ucache_set
('counter'1);
var_dump(wincache_ucache_inc('counter'2921$success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

int(2922) 
bool(true)

Voir aussi



wincache_ucache_info

(PECL wincache >= 1.1.0)

wincache_ucache_infoRécupère des informations sur des données stokées dans le cache utilisateur

Description

array wincache_ucache_info ([ bool $summaryonly = false [, string $key ]] )

Récupère des informations sur des données stokées dans le cache utilisateur.

Liste de paramètres

summaryonly

Contrôle si le tableau résultant doit contenir les informations sur des entrées individuelles en plus du résumé du cache utilisateur.

key

La clé de l'entrée du cache utilisateur. Si spécifiée, alors le tableau résultant contiendra des informations uniquement sur cette entrée du cache. Si non spécifiée, et le paramètre summaryonly est défini à FALSE, alors le tableau résultant contiendra des informations sur toutes les entrées du cache.

Valeurs de retour

Un tableau de données méta sur le cache utilisateur ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_cache_uptime - durée, en secondes, depuis l'activation de ce cache utilisateur
  • total_item_count - nombre total d'éléments contenus dans le cache utilisateur
  • is_local_cache - TRUE si les données méta du cache sont pour une instance locale du cache, FALSE si elles sont pour le cache global
  • total_hit_count - durée depuis laquelle les données ont été servies depuis le cache
  • total_miss_count - durée depuis laquelle les données n'ont pu être trouvée dans le cache
  • ucache_entries - un tableau contenant les informations sur les éléments mis en cache :

    • key_name - nom de la clé utilisée pour stoker les données
    • value_type - type de valeur stokée pour cette clé
    • use_time - durée, en secondes, depuis laquelle le fichier a été accédé dans le cache opcode
    • last_check - durée, en secondes, depuis laquelle le fichier a été vérifié pour y détecter les modifications
    • is_session - indique si la donnée est une variable de session
    • ttl_seconds - durée de vie de la donnée dans le cache ; 0 signifie indéfiniment
    • age_seconds - durée depuis laquelle la donné a été ajoutée dans le cache
    • hitcount - nombre de fois que la donnée a été servie depuis le cache

Exemples

Exemple #1 Exemple avec wincache_ucache_info()

<?php
wincache_ucache_get
('green');
wincache_ucache_set('green'2922);
wincache_ucache_get('green');
wincache_ucache_get('green');
wincache_ucache_get('green');
print_r(wincache_ucache_info());
?>

L'exemple ci-dessus va afficher :

Array 
( ["total_cache_uptime"] => int(0)
  ["is_local_cache"] => bool(false)
  ["total_item_count"] => int(1) 
  ["total_hit_count"] => int(3) 
  ["total_miss_count"] => int(1) 
  ["ucache_entries"] => Array(1) 
    ( [1] => Array(6)
      ( 
        ["key_name"] => string(5) "green"
        ["value_type"] => string(4) "long" 
        ["is_session"] => int(0) 
        ["ttl_seconds"] => int(0)
        ["age_seconds"] => int(0)
        ["hitcount"] => int(3) 
       ) 
    ) 
)

Voir aussi



wincache_ucache_meminfo

(PECL wincache >= 1.1.0)

wincache_ucache_meminfoRécupère des informations sur l'utilisation mémoire du cache utilisateur

Description

array wincache_ucache_meminfo ( void )

Récupère des informations sur l'utilisation mémoire du cache utilisateur.

Valeurs de retour

Tableau de données méta sur l'utilisation mémoire du cache utilisateur ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - quantité de mémoire, en octets, allouée au cache utilisateur
  • memory_free - quantité de mémoire libre, en octets, disponible pour le cache utilisateur
  • num_used_blks - nombre de blocs mémoire utilisés par le cache utilisateur
  • num_free_blks - nombre de blocs mémoire libres disponible depuis le cache utilisateur
  • memory_overhead - quantité de mémoire, en octets, utilisé pour la structure interne du cache utilisateur

Exemples

Exemple #1 Exemple avec wincache_ucache_meminfo()

<pre>
<?php
print_r
(wincache_ucache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array 
( 
    [memory_total] => 5242880 
    [memory_free] => 5215056 
    [num_used_blks] => 6 
    [num_free_blks] => 3 
    [memory_overhead] => 176
) 

Voir aussi



wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_setAjoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache

Description

bool wincache_ucache_set ( mixed $key , mixed $value [, int $ttl = 0 ] )
bool wincache_ucache_set ( array $values [, mixed $unused [, int $ttl = 0 ]] )

Ajoute une variable au cache utilisateur. Écrase une variable si elle existe déjà dans le cache. La variable ainsi créée ou mise à jour restera dans le cache utilisateur tant que le délai d'expiration n'est pas atteint ou tant qu'elle n'est pas supprimée avec la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Liste de paramètres

key

Stocke la variable en utilisant la clé key. Si une variable utilisant la même clé key est déjà présente, la fonction écrasera la précédente valeur avec la nouvelle. Le paramètre key est sensible à la casse. key peut également être un tableau de paires nom => valeur où les noms seront utilisés comme clés. Ceci peut être utile pour ajouter plusieurs valeurs dans le cache en une seule opération.

value

Valeur de la variable à stocker. Le paramètre Value supporte tous les types de données, sauf les ressources, comme les pointeurs de fichiers. Ce paramètre est ignoré si le premier argument est un tableau. Il est de convention de passer la valeur NULL comme valeur du paramètre value lors de l'utilisation d'un tableau dans le paramètre key. Si le paramètre value est un objet, ou un tableau contenant des objets, alors tous les objets seront linéarisés. Reportez-vous à la fonction __sleep() pour plus de détails sur la linéarisation d'objets.

values

Tableau associatif de clés et de valeurs.

ttl

Durée de vie de la variable dans le cache, en secondes. Après la durée spécifiée par le paramètre ttl, la variable stockée sera effacée du cache utilisateur. Ce paramètre prend par défaut la valeur zéro (0), ce qui signifie que la variable restera dans le cache tant qu'elle ne sera pas explicitement supprimée en appelant la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Valeurs de retour

Si key est une chaîne de caractères, la fonction retournera TRUE en cas de succès, FALSE si une erreur survient.

Si key est un tableau, la fonction retournera :

  • Si toutes les paires nom => valeur du tableau ont pu être définies, la fonction retournera un tableau vide.
  • Si toutes les paires nom => valeur du tableau n'ont pu être définies, la fonction retournera FALSE.
  • Si quelques paires ont été définies, et d'autres non, la fonction retournera un tableau de paires nom => valeur qui n'ont pas pu être définies dans le cache utilisateur.

Exemples

Exemple #1 Exemple avec wincache_ucache_set() et le paramètre key sous forme de chaîne de caractères

<?php
$bar 
'BAR';
var_dump(wincache_ucache_set('foo'$bar));
var_dump(wincache_ucache_get('foo'));
$bar1 'BAR1';
var_dump(wincache_ucache_set('foo'$bar1));
var_dump(wincache_ucache_get('foo'));
?>

L'exemple ci-dessus va afficher :

bool(true)
string(3) "BAR"
bool(true)
string(3) "BAR1"

Exemple #2 Exemple avec wincache_ucache_set() et le paramètre key sous forme de tableau

<?php
$colors_array 
= array('green' => '5''Blue' => '6''yellow' => '7''cyan' => '8');
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

L'exemple ci-dessus va afficher :

array(0) {}
array(0) {}
string(1) "6"

Voir aussi



wincache_unlock

(PECL wincache >= 1.1.0)

wincache_unlockLibère un verrou exclusif sur une clé donnée

Description

bool wincache_unlock ( string $key )

Libère un verrou exclusif qui a été obtenu sur une clé donnée en utilisant la fonction wincache_lock(). Si un autre processus est en attente de ce verrou, pour cette clé, il obtiendra le verrou.

Avertissement

L'utilisation des fonctions wincache_lock() et wincache_unlock() peut provoquer des verrous morts lors de l'exécution de scripts PHP dans un environnement multi-processus comme FastCGI. N'utilisez pas ces fonctions tant que vous n'êtes pas sûr d'en avoir besoin. Pour la majorité des opérations sur le cache utilisateur, il n'est pas nécessaire de les utiliser.

Liste de paramètres

key

Nom de la clé du cache pour laquelle le verrou doit être libéré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_unlock()

<?php
$fp 
fopen("/tmp/lock.txt""r+");
if (
wincache_lock(“lock_txt_lock”)) { // Pose d'un verrou exclusif
    
ftruncate($fp0); // on vide le fichier
    
fwrite($fp"On écrit quelque chose ici\n");
    
wincache_unlock(“lock_txt_lock”); // On libère le verrou
} else {
    echo 
"Impossible d'obtenir le verrou !";
}
fclose($fp);
?>

Voir aussi


Sommaire



Compilation sous Windows

Sommaire


Prérequis

Pour compiler l'extension WinCache, il faudra:

  1. le code source de PHP
  2. un environnement de compilation PHP
  3. le code source de WinCache

Pour compléter les deux premières étapes, suivez le guide étape par étape » Compiler PHP sous Windows.

Pour obtenir le code source de WinCache, suivez les instructions décrites dans Télécharger des extensions PECL.



Compiler et construire

Les étapes suivantes décrivent comment compiler et construire WinCache sous Windows:

  1. Ouvrez une invite de commande utilisée pour compiler PHP

  2. Allez dans le dossier racine où les sources de PHP sont présentes

  3. Lancez la commande :

    cscript.exe win32\build\buildconf.js

  4. Lancez la commande :

    configure.bat --help
    La sortie contiendra une nouvelle option --enable-wincache.

  5. Lancez la commande :

    configure.js [all options used to build PHP] --enable-wincache
    --enable-wincache est la seule option supplémentaire requise pour s'assurer que l'extension WinCache se compile correctement. Cette option permet de construire WinCache et le lier statiquement avec la DLL de PHP. Pour construire l'extension comme une DLL externe, utilisez l'option --enable-wincache=shared.

  6. Lancez la commande :

    nmake



Verifying the build

Les étapes suivantes décrivent comment vérifier que WinCache a été construit correctement :

  1. Allez dans le dossier où les fichiers PHP sont construits.

  2. Lancez la commande :

    php.exe -n -d extension=php_wincache.dll -re wincache
    Si WinCache a été construit correctement, la sortie de cette commande listera les directives INI et les fonctions supportées par WinCache.






Manipulation audio


Balises ID3


Introduction

Ces fonctions vous permettent de lire et de manipuler les tags ID3. Les tags ID3 sont utilisés dans les fichiers MP3 pour stocker le titre d'une chanson, tout comme des informations sur l'artiste, l'album, le genre, l'année et le numéro de la piste.

Depuis la version 0.2, il est également possible d'extraire des champs texte depuis des tags ID3 v2.2+.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/id3.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes prédéfinies

La plupart des fonctions ID3 vous permettent soit de spécifier, soit de retourner un tag. Pour spécifier la version, utilisez une de ces constantes :

ID3_V1_0 (entier)
ID3_V1_0 est utilisé si vous travaillez avec des tags ID3 V1.0. Ces tags peuvent contenir les champs title, artist, album, genre, year et comment.
ID3_V1_1 (entier)
ID3_V1_1 est utilisé si vous travaillez avec des tags ID3 V1.1. Ces tags peuvent contenir tous les champs de la version 1.0 ainsi qu'un champ représentant le numéro de la piste.
ID3_V2_1 (entier)
ID3_V2_1 est utilisé si vous travaillez avec des tags ID3 V2.1.
ID3_V2_2 (entier)
ID3_V2_2 est utilisé si vous travaillez avec des tags ID3 V2.2 tags.
ID3_V2_3 (entier)
ID3_V2_3 est utilisé si vous travaillez avec des tags ID3 V2.3 tags.
ID3_V2_4 (entier)
ID3_V2_4 est utilisé si vous travaillez avec des tags ID3 V2.4 tags.
ID3_BEST (entier)
ID3_BEST est utilisé si vous voulez laisser les fonctions id3 déterminer quelle version de tags doit être utilisée.



Fonctions ID3


id3_get_frame_long_name

(PECL id3 >= 0.2)

id3_get_frame_long_nameRécupère le nom long d'un champs ID3v2

Description

string id3_get_frame_long_name ( string $frameId )

id3_get_frame_long_name() retourne le nom long d'un champs ID3v2.

Liste de paramètres

frameId

Une frame ID3v2

Valeurs de retour

Retourne le nom long d'un champs ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_get_frame_long_name()

<?php
$longName 
id3_get_frame_long_name("TOLY");
echo 
$longName;
?>

L'exemple ci-dessus va afficher :

Original lyricist(s)/text writer(s)

Voir aussi



id3_get_frame_short_name

(PECL id3 >= 0.2)

id3_get_frame_short_nameRécupère le nom court d'un champs ID3v2

Description

string id3_get_frame_short_name ( string $frameId )

id3_get_frame_short_name() retourne le nom court d'un champs ID3v2.

Liste de paramètres

frameId

Une frame ID3v2

Valeurs de retour

Retourne le nom court d'un champs ou FALSE si une erreur survient.

Les valeurs retournées par id3_get_frame_short_name() sont utilisées dans le tableau retourné par id3_get_tag().

Exemples

Exemple #1 Exemple avec id3_get_frame_short_name()

<?php
$shortName 
id3_get_frame_short_name("TOLY");
echo 
$shortName;
?>

L'exemple ci-dessus va afficher :

originalLyricist

Voir aussi



id3_get_genre_id

(PECL id3 >= 0.1)

id3_get_genre_idRécupération d'un id pour un genre

Description

int id3_get_genre_id ( string $genre )

id3_get_genre_id() retourne l'id pour un genre.

Liste de paramètres

genre

Un entier compris entre 0 et 147

Valeurs de retour

L'id du genre ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_get_genre_id()

<?php
$id 
id3_get_genre_id("Alternative");
echo 
$id;
?>

L'exemple ci-dessus va afficher :

20

Voir aussi



id3_get_genre_list

(PECL id3 >= 0.1)

id3_get_genre_listRécupère toutes les valeurs possibles du genre

Description

array id3_get_genre_list ( void )

id3_get_genre_list() retourne un tableau contenant tous les genres possibles pouvant être stockés dans un tag ID3. La liste a été créée par Eric Kemp et, plus tard, complétée par WinAmp.

Cette fonction est pratique pour fournir à vos utilisateurs une liste de genres depuis laquelle ils peuvent en choisir un. Lorsque vous mettez à jour vos tags ID3, vous devez également spécifier un genre sous forme d'entier entre 0-147.

Valeurs de retour

Retourne un tableau contenant tous les genres possibles qui peuvent être stockés dans une balise ID3.

Exemples

Exemple #1 Exemple avec id3_get_genre_list()

<?php
$genres 
id3_get_genre_list();
print_r($genres);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Blues
    [1] => Classic Rock
    [2] => Country
    [3] => Dance
    [4] => Disco
    [5] => Funk
    [6] => Grunge
    [7] => Hip-Hop
    [8] => Jazz
    [9] => Metal
    [10] => New Age
    [11] => Oldies
    [12] => Other
    [13] => Pop
    [14] => R&B
    [15] => Rap
    [16] => Reggae
    [17] => Rock
    [18] => Techno
    [19] => Industrial
    [20] => Alternative
    [21] => Ska
    [22] => Death Metal
    [23] => Pranks
    [24] => Soundtrack
    [25] => Euro-Techno
    [26] => Ambient
    [27] => Trip-Hop
    [28] => Vocal
    [29] => Jazz+Funk
    [30] => Fusion
    [31] => Trance
    [32] => Classical
    [33] => Instrumental
    [34] => Acid
    [35] => House
    [36] => Game
    [37] => Sound Clip
    [38] => Gospel
    [39] => Noise
    [40] => Alternative Rock
    [41] => Bass
    [42] => Soul
    [43] => Punk
    [44] => Space
    [45] => Meditative
    [46] => Instrumental Pop
    [47] => Instrumental Rock
    [48] => Ethnic
    [49] => Gothic
    [50] => Darkwave
    [51] => Techno-Industrial
    [52] => Electronic
    [53] => Pop-Folk
    [54] => Eurodance
    [55] => Dream
    [56] => Southern Rock
    [57] => Comedy
    [58] => Cult
    [59] => Gangsta
    [60] => Top 40
    [61] => Christian Rap
    [62] => Pop/Funk
    [63] => Jungle
    [64] => Native US
    [65] => Cabaret
    [66] => New Wave
    [67] => Psychadelic
    [68] => Rave
    [69] => Showtunes
    [70] => Trailer
    [71] => Lo-Fi
    [72] => Tribal
    [73] => Acid Punk
    [74] => Acid Jazz
    [75] => Polka
    [76] => Retro
    [77] => Musical
    [78] => Rock & Roll
    [79] => Hard Rock
    [80] => Folk
    [81] => Folk-Rock
    [82] => National Folk
    [83] => Swing
    [84] => Fast Fusion
    [85] => Bebob
    [86] => Latin
    [87] => Revival
    [88] => Celtic
    [89] => Bluegrass
    [90] => Avantgarde
    [91] => Gothic Rock
    [92] => Progressive Rock
    [93] => Psychedelic Rock
    [94] => Symphonic Rock
    [95] => Slow Rock
    [96] => Big Band
    [97] => Chorus
    [98] => Easy Listening
    [99] => Acoustic
    [100] => Humour
    [101] => Speech
    [102] => Chanson
    [103] => Opera
    [104] => Chamber Music
    [105] => Sonata
    [106] => Symphony
    [107] => Booty Bass
    [108] => Primus
    [109] => Porn Groove
    [110] => Satire
    [111] => Slow Jam
    [112] => Club
    [113] => Tango
    [114] => Samba
    [115] => Folklore
    [116] => Ballad
    [117] => Power Ballad
    [118] => Rhytmic Soul
    [119] => Freestyle
    [120] => Duet
    [121] => Punk Rock
    [122] => Drum Solo
    [123] => Acapella
    [124] => Euro-House
    [125] => Dance Hall
    [126] => Goa
    [127] => Drum & Bass
    [128] => Club-House
    [129] => Hardcore
    [130] => Terror
    [131] => Indie
    [132] => BritPop
    [133] => Negerpunk
    [134] => Polsk Punk
    [135] => Beat
    [136] => Christian Gangsta
    [137] => Heavy Metal
    [138] => Black Metal
    [139] => Crossover
    [140] => Contemporary C
    [141] => Christian Rock
    [142] => Merengue
    [143] => Salsa
    [144] => Thrash Metal
    [145] => Anime
    [146] => JPop
    [147] => SynthPop
)

Voir aussi



id3_get_genre_name

(PECL id3 >= 0.1)

id3_get_genre_nameRécupère le nom pour un id de genre

Description

string id3_get_genre_name ( int $genre_id )

id3_get_genre_name() retourne le nom pour un id de genre spécifié.

Liste de paramètres

genre_id

Un entier, compris entre 0 et 147

Valeurs de retour

Retourne le nom sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec id3_get_genre_name()

<?php
$genre 
id3_get_genre_name(20);
echo 
$genre;
?>

L'exemple ci-dessus va afficher :

Alternative

Voir aussi



id3_get_tag

(PECL id3 >= 0.1)

id3_get_tagRécupère toutes les informations stockées dans un tag ID3

Description

array id3_get_tag ( string $filename [, int $version = ID3_BEST ] )

id3_get_tag() est utilisée pour récupérer toutes les informations stockées dans un tag ID3 d'un fichier spécifique.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu de passer un nom de fichier, vous pouvez aussi passer un flux de ressource valide.

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Depuis la version 0.2, id3_get_tag() supporte également les tags ID3 version 2.2, 2.3 et 2.4. Pour extraire les informations de ces tags, passez une des constantes ID3_V2_2, ID3_V2_3 ou ID3_V2_4 en tant que second paramètre. Les tags ID3 v2.x peuvent contenir beaucoup plus d'informations sur le fichier MP3 que les versions ID3 v1.x.

Valeurs de retour

Retourne un tableau associatif avec diverses clés, comme : title, artist, ..

La clé genre doit contenir un entier compris entre 0 et 147. Vous pouvez utiliser la fonction id3_get_genre_name() pour convertir ce nombre en une chaîne lisible humainement.

Exemples

Exemple #1 Exemple avec id3_get_tag()

<?php
$tag 
id3_get_tag"path/to/example.mp3" );
print_r($tag);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [title] => DN-38416
    [artist] => Re:\Legion
    [album] => Reflections
    [year] => 2004
    [genre] => 19
)

Exemple #2 Exemple avec id3_get_tag()

<?php
$tag 
id3_get_tag"path/to/example2.mp3"ID3_V2_3 );
print_r($tag);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [copyright] => Dirty Mac
    [originalArtist] => Dirty Mac
    [composer] => Marcus Götze
    [artist] => Dirty Mac
    [title] => Little Big Man
    [album] => Demo-Tape
    [track] => 5/12
    [genre] => (17)Rock
    [year] => 2001
)

Voir aussi



id3_get_version

(PECL id3 >= 0.1)

id3_get_versionRécupère la version d'un tag ID3

Description

int id3_get_version ( string $filename )

id3_get_version() récupère la(les) version(s) de la(des) balise(s) ID3 d'un fichier MP3.

Si un fichier contient une balise ID3 v1.1, il contiendra toujours aussi une balise 1.0, vu que 1.1 est uniquement une extension de 1.0.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu de passer un nom de fichier, vous pouvez aussi passer un flux de ressource valide.

Valeurs de retour

Retourne la(les) version(s) du(des) tag(s) ID3 d'un fichier MP3. Sachant qu'un tag peut contenir des tags ID3 de version v1.x et v2.x, la valeur retournée par cette fonction doit être comparée au niveau binaire avec les constantes prédéfinies ID3_V1_0, ID3_V1_1 et ID3_V2.

Exemples

Exemple #1 Exemple avec id3_get_version()

<?php
$version 
id3_get_version"path/to/example.mp3" );
if (
$version ID3_V1_0) {
    echo 
"Contains a 1.x tag\n";
}
if (
$version ID3_V1_1) {
    echo 
"Contains a 1.1 tag\n";
}
if (
$version ID3_V2) {
    echo 
"Contains a 2.x tag\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Contains a 1.x tag
Contains a 1.1 tag

Voir aussi



id3_remove_tag

(PECL id3 >= 0.1)

id3_remove_tagEfface un tag ID3

Description

bool id3_remove_tag ( string $filename [, int $version = ID3_V1_0 ] )

id3_remove_tag() est utilisé pour effacer les informations stockées dans un tag ID3.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu d'un nom de fichier, vous pouvez également passer une ressource valide.

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_remove_tag()

<?php
$result 
id3_remove_tag"path/to/example.mp3"ID3_V1_0 );
if (
$result === true) {
    echo 
"Le tag a été effacé avec succès\n";
}
?>

Si le fichier est accessible en écriture et qu'il contient un tag 1.0, l'exemple affichera :

Le tag a été effacé avec succès

Notes

Note: Actuellement, id3_remove_tag() supporte uniquement les tags version 1.0 et 1.1. Si vous tentez d'effacer un tag 1.0 et que le fichier contient un tag 1.1, le tag sera effacé car la version 1.1 n'est qu'une extension de la version 1.0.

Voir aussi



id3_set_tag

(PECL id3 >= 0.1)

id3_set_tagMet à jour les informations stockées dans un tag ID3

Description

bool id3_set_tag ( string $filename , array $tag [, int $version = ID3_V1_0 ] )

id3_set_tag() est utilisé pour changer les informations stockées dans un tag ID3. Si aucun tag n'est présent, le tag sera ajouté au fichier.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu d'un nom de fichier, vous pouvez également passer une ressource valide.

tag

Un tableau associatif de clés et de valeurs de tags

Les clés suivantes peuvent être utilisées dans le tableau associatif :

Clés dans le tableau associatif
Clé Valeur possible Disponible dans la version
"title" chaîne de caractères avec un maximum de 30 caractères v1.0, v1.1
"artist" chaîne de caractères avec un maximum de 30 caractères v1.0, v1.1
"album" chaîne de caractères avec un maximum de 30 caractères v1.0, v1.1
"year" 4 digits v1.0, v1.1
"genre" valeur entière comprise entre 0 et 147 v1.0, v1.1
"comment" chaîne de caractères avec un maximum de 30 caractères (28 en v1.1) v1.0, v1.1
"track" entier compris entre 0 et 255 v1.1

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_set_tag()

<?php
$data 
= array(
              
"title" => "Re:Start",
              
"artist" => "Re:\Legion",
              
"comment" => "A nice track"
             
);
$result id3_set_tag"path/to/example.mp3"$dataID3_V1_0 );
if (
$result === true) {
    echo 
"Le tag a été mis à jour avec succès\n";
}
?>

Si le fichier est accessible en écriture, l'exemple affichera :

Le tag a été mis à jour avec succès

Notes

Note: Actuellement, id3_set_tag() supporte uniquement les versions 1.0 et 1.1.

Voir aussi


Sommaire




KTaglib


Introduction

KTaglib est une approche orientée objet de la bibliothèque taglib du projet KDE utilisée dans des projets comme Amarok, permettant de lire et d'écrire les tags ID3 et Ogg. La bibliothèque permet également d'accéder aux informations audio. Cette approche suit l'API C++ de base, mais a été modifiée légèrement afin d'être plus orientée PHP.

Note:

Pour le moment, ktaglib est capable de lire et d'écrire les tags ID3v1 et ID3v2.



Installation/Configuration

Sommaire


Pré-requis

Si vous voulez compiler ktaglib, vous devez avoir installé la bibliothèque taglib version 1.5. Pour obtenir cette bibliothèque, reportez-vous à la » page du projet taglib. Les bibliothèque DLL Windows sont compilés statiquement sur taglib, aussi, vous n'avez pas besoin d'installer la bibliothèque taglib.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ktaglib.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

KTaglib utilise des constantes. La plupart de ces constantes est identique à celle de la bibliothèque Taglib.

KTaglib_MPEG_Header::Version1 (integer)
La version ID3 est 1.0
KTaglib_MPEG_Header::Version2 (integer)
La version ID3 est 2.0
KTaglib_MPEG_Header::Version2_5 (integer)
La version ID3 est 2.5
KTaglib_ID3v2_AttachedPictureFrame::Other (integer)
Autre type d'image
KTaglib_ID3v2_AttachedPictureFrame::FileIcon (integer)
Image de type "FileIcon"
KTaglib_ID3v2_AttachedPictureFrame::OtherFileIcon (integer)
Image de type "OtherFileIcon"
KTaglib_ID3v2_AttachedPictureFrame::FrontCover (integer)
Image de type "FrontCover"
KTaglib_ID3v2_AttachedPictureFrame::BackCover (integer)
Image de type "BackCover"
KTaglib_ID3v2_AttachedPictureFrame::LeafletPage (integer)
Image de type "LeafletPage"
KTaglib_ID3v2_AttachedPictureFrame::Media (integer)
Image de type "Media"
KTaglib_ID3v2_AttachedPictureFrame::LeadArtist (integer)
Image de type "LeadArtist"
KTaglib_ID3v2_AttachedPictureFrame::Artist (integer)
Image de type "Artist"
KTaglib_ID3v2_AttachedPictureFrame::Conductor (integer)
Image de type "Condutor"
KTaglib_ID3v2_AttachedPictureFrame::Band (integer)
Image de type "Band"
KTaglib_ID3v2_AttachedPictureFrame::Composer (integer)
Image de type "Composer"
KTaglib_ID3v2_AttachedPictureFrame::Lyricist (integer)
Image de type "Lyricist"
KTaglib_ID3v2_AttachedPictureFrame::RecordingLocation (integer)
Image de type "RecordingLocation"
KTaglib_ID3v2_AttachedPictureFrame::DuringRecording (integer)
Image de type "DuringRecording"
KTaglib_ID3v2_AttachedPictureFrame::DuringPerformance (integer)
Image de type "DuringPerformance"
KTaglib_ID3v2_AttachedPictureFrame::MovieScreenCapture (integer)
Image de type "MovieScreenCapture"
KTaglib_ID3v2_AttachedPictureFrame::ColouredFish (integer)
Image de type "ColouredFish"
KTaglib_ID3v2_AttachedPictureFrame::Illustration (integer)
Image de type "Illustration"
KTaglib_ID3v2_AttachedPictureFrame::BandLogo (integer)
Image de type "BandLogo"


La classe KTagLib_MPEG_File

Introduction

Représente un fichier MPEG. Les fichiers MPEG peuvent avoir des tags ID3v1, ID3v2 et des propriétés audio.

Class synopsis

KTagLib_MPEG_File {
}

KTaglib_MPEG_File::__construct

(0.0.1)

KTaglib_MPEG_File::__constructOuvre un nouveau fichier

Description

KTaglib_MPEG_File::__construct() ( string $filename )

Ouvre un nouveau fichier MPEG.

Liste de paramètres

filename

Le fichier à lire.

Exemples

Exemple #1 Ouvre un nouveau fichier MP3 et lit le titre

<?php
$mpeg 
= new KTaglib_MPEG_File('example.mp3');
echo 
$mpeg->getID3v1Tag()->getTitle();
?>



KTaglib_MPEG_File::getAudioProperties

(0.0.1)

KTaglib_MPEG_File::getAudioPropertiesRetourne un objet qui permet l'accès aux propriétés audio

Description

public KTaglib_MPEG_File: KTaglib_MPEG_File::getAudioProperties ( void )

Retourne un objet qui permet l'accès aux propriétés audio d'un fichier MPEG.

Valeurs de retour

Retourne un objet KTaglib_MPEG_AudioProperties ou FALSE si une erreur survient.



KTaglib_MPEG_File::getID3v1Tag

(0.0.1)

KTaglib_MPEG_File::getID3v1TagRetourne un objet représentant un tag ID3v1

Description

public KTaglib_ID3v1_Tag KTaglib_MPEG_File::getID3v1Tag ([ bool $create = false ] )

Retourne un objet représentant un tag ID3v1, qui pourra être utilisé pour récupérer les informations s'y trouvant.

Valeurs de retour

Retourne un objet KTaglib_MPEG_ID3v1Tag ou FALSE s'il n'y a pas de tag ID3v1.



KTaglib_MPEG_File::getID3v2Tag

(0.0.1)

KTaglib_MPEG_File::getID3v2TagRetourne un objet ID3v2

Description

public KTaglib_ID3v2_Tag KTaglib_MPEG_File::getID3v2Tag ([ bool $create = false ] )

Retourne un objet ID3v2 pour le fichier MPEG. S'il n'y a aucun tag ID3v2, une exception KTaglib_TagNotFoundException sera lancée.

Valeurs de retour

Retourne un objet KTaglib_ID3v2_Tag pour un fichier MPEG s'il possède un tag ID3v2, ou FALSE s'il n'en possède pas.


Sommaire



La classe KTaglib_MPEG_AudioProperties

Introduction

Représente les propriétés audio d'un fichier MPEG, comme la longueur, le débit ou encore la fréquence.

Classe

KTaglib_MPEG_AudioProperties {
}

KTaglib_MPEG_AudioProperties::getBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getBitrateRetourne le débit binaire d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getBitrate ( void )

Retourne le débit binaire d'un fichier MPEG.

Valeurs de retour

Retourne le débit binaire, sous la forme d'un entier.



KTaglib_MPEG_AudioProperties::getChannels

(0.0.1)

KTaglib_MPEG_AudioProperties::getChannelsRetourne le nombre de canaux d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getChannels ( void )

Retourne le nombre de canaux d'un fichier MPEG.

Valeurs de retour

Retourne le nombre de canaux, sous la forme d'un entier.



KTaglib_MPEG_AudioProperties::getLayer

(0.0.1)

KTaglib_MPEG_AudioProperties::getLayerRetourne la couche d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getLayer ( void )

Retourne la couche d'un fichier MPEG (habituellement 2 pour un MP3).

Valeurs de retour

Retourne la couche, sous la forme d'un entier.



KTaglib_MPEG_AudioProperties::getLength

(0.0.1)

KTaglib_MPEG_AudioProperties::getLengthRetourne la taille d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getLength ( void )

Retourne la taille d'un fichier MPEG.

Valeurs de retour

Retourne la taille, sous la forme d'un entier.



KTaglib_MPEG_AudioProperties::getSampleBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getSampleBitrateRetourne l'échantillonnage d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getSampleBitrate ( void )

Retourne l'échantillonnage d'un fichier MPEG.

Valeurs de retour

Retourne l'échantillonnage, sous la forme d'un entier.



KTaglib_MPEG_AudioProperties::getVersion

(0.0.1)

KTaglib_MPEG_AudioProperties::getVersionRetourne la version d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getVersion ( void )

Retourne la version de l'en-tête d'un fichier MPEG. Les versions possibles sont définies dans Tag_MPEG_Header (Version1, Version2, Version2.5).

Valeurs de retour

Retourne la version.



KTaglib_MPEG_AudioProperties::isCopyrighted

(0.0.1)

KTaglib_MPEG_AudioProperties::isCopyrightedRetourne true si le fichier MPEG est sous copyright

Description

public bool KTaglib_MPEG_AudioProperties::isCopyrighted ( void )

Retourne true si le fichier MPEG est sous copyright.

Valeurs de retour

Retourne true si le fichier MPEG est sous copyright.



KTaglib_MPEG_AudioProperties::isOriginal

(0.0.1)

KTaglib_MPEG_AudioProperties::isOriginalRetourne true si le fichier MPEG est marqué comme original

Description

public bool KTaglib_MPEG_AudioProperties::isOriginal ( void )

Retourne true si le fichier MPEG est marqué comme original.

Valeurs de retour

Retourne true si le fichier MPEG est marqué comme original.



KTaglib_MPEG_AudioProperties::isProtectionEnabled

(0.0.1)

KTaglib_MPEG_AudioProperties::isProtectionEnabledRetourne true si une protection est active

Description

public bool KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void )

Retourne true si un méchanisme de protection tel que le DRM est actif pour ce fichier.

Valeurs de retour

Retourne true si un méchanisme de protection tel que le DRM est actif pour ce fichier.


Sommaire



La classe KTaglib_Tag

Introduction

Classe de base pour les tags ID3v1 ou ID3v2.

Class synopsis

KTaglib_Tag {
}

KTaglib_Tag::getAlbum

(0.0.1)

KTaglib_Tag::getAlbumRetourne le nom de l'album d'un tag ID3

Description

public string KTaglib_Tag::getAlbum ( void )

Retourne le nom de l'album d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le nom de l'album.



KTaglib_Tag::getArtist

(0.0.1)

KTaglib_Tag::getArtistRetourne le nom de l'artiste d'un tag ID3

Description

public string KTaglib_Tag::getArtist ( void )

Retourne le nom de l'artiste d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le nom de l'artiste.



KTaglib_Tag::getComment

(0.0.1)

KTaglib_Tag::getCommentRetourne le commentaire d'un tag ID3

Description

public string KTaglib_Tag::getComment ( void )

Retourne le commentaire d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le commentaire.



KTaglib_Tag::getGenre

(0.0.1)

KTaglib_Tag::getGenreRetourne le genre d'un tag ID3

Description

public string KTaglib_Tag::getGenre ( void )

Retourne le genre d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le genre.



KTaglib_Tag::getTitle

(0.0.1)

KTaglib_Tag::getTitleRetourne le titre d'un tag ID3

Description

public string KTaglib_Tag::getTitle ( void )

Retourne le titre d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le titre.



KTaglib_Tag::getTrack

(0.0.1)

KTaglib_Tag::getTrackRetourne le numéro de la piste d'un tag ID3

Description

public int KTaglib_Tag::getTrack ( void )

Retourne le numéro de la piste d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le numéro de la piste, sous la forme d'un entier.



KTaglib_Tag::getYear

(0.0.1)

KTaglib_Tag::getYearRetourne l'année d'un tag ID3

Description

public int KTaglib_Tag::getYear ( void )

Retourne l'année d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne l'année, sous la forme d'un entier.



KTaglib_Tag::isEmpty

(0.0.1)

KTaglib_Tag::isEmptyRetourne TRUE si le tag est vide

Description

public bool KTaglib_Tag::isEmpty ( void )

Retourne TRUE si le tag existe mais qu'il est vide. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne TRUE si le tag est vide, FALSE sinon.


Sommaire



La classe KTagLib_ID3v2_Tag

Introduction

Représente un tag ID3v2. Elle fournit une liste des frames ID3v2 et peut être utilisée pour ajouter ou effacer des frames.

Classe

étend KTagLib_Tag {
}

KTaglib_ID3v2_Tag::addFrame

(0.0.1)

KTaglib_ID3v2_Tag::addFrameAjoute une frame à un tag ID3v2

Description

public bool KTaglib_ID3v2_Tag::addFrame ( KTagLib_ID3v2_Frame $frame )

Ajoute une frame à un tag ID3v2. La frame doit être un objet KTagLib_ID3v2_Frame valide. Pour sauvegarder la frame, la fonction de sauvegarde doit être appelée.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.



KTaglib_ID3v2_Tag::getFrameList

(0.0.1)

KTaglib_ID3v2_Tag::getFrameListRetourne un tableau de frames ID3v2, associées avec un tag ID3v2

Description

public array KTaglib_ID3v2_Tag::getFrameList ( void )

Retourne un tableau de frames ID3v2, associées au tag ID3v2.

Valeurs de retour

Retourne un tableau d'objets KTaglib_ID3v2_Frame.


Sommaire



La classe KTagLib_ID3v2_Frame

Introduction

La classe de base pour les frames ID3v2. Les tags ID3v2 sont séparés en plusieurs frames spécialisés. Quelques frames peuvent être présents plusieurs fois.

Classe

étend KTagLib_Tag {
}

KTaglib_ID3v2_Frame::getSize

(0.0.1)

KTaglib_ID3v2_Frame::getSizeRetourne la taille de la frame, en octets

Description

public int KTaglib_ID3v2_Frame::getSize ( void )

Retourne la taille de la frame, en octets. Reportez-vous au site id3.org pour savoir comment sont les frames et comment elles sont définies.

Valeurs de retour

Retourne la taille de la frame, en octets.



KTaglib_ID3v2_Frame::__toString

(0.0.1)

KTaglib_ID3v2_Frame::__toStringRetourne une chaîne représentant la frame

Description

public string KTaglib_ID3v2_Frame::__toString ( void )

Retourne une chaîne représentant la frame. Ce peut être uniquement l'identifiant de la frame, mais cette chaîne peut également contenir d'autres informations. Reportez-vous à la documentation de ktaglib pour plus d'informations.

Valeurs de retour

Retourne une chaîne représentant la frame.


Sommaire



La classe KTaglib_ID3v2_AttachedPictureFrame

Introduction

Représente une frame ID3v2 qui peut contenir une image.

Classe

étend KTagLib_ID3v2_Frame {
}

KTaglib_ID3v2_AttachedPictureFrame::getDescription

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::getDescriptionRetourne une description de l'image contenu dans la frame spécialisée

Description

public string KTaglib_ID3v2_AttachedPictureFrame::getDescription ( void )

Retourne la description attachée à une frame contenant une image, dans une frame ID3v2.x.

Valeurs de retour

Retourne une description de l'image.



KTaglib_ID3v2_AttachedPictureFrame::getMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getMimeTypeRetourne le type MIME de l'image

Description

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( void )

Retourne le type MIME de l'image présente dans la frame spécialisée.

Notez que cette méthode peut retourner différents types. Alors que les tags ID3v2.2 contiennent un type MIME qui ne commencent pas par "image/", les tags ID3v2.3 et v2.4 commencent eux par "image/". Aussi, cette méthode peut retourner "image/png" pour les tags IDv2.3 et uniquement "PNG" pour les tags ID3v2.2.

Notez également que, malgré le fait qu'une image soit attachée, le type MIME peut ne pas avoir été défini, et ainsi, une chaîne vide peut être retournée.

Valeurs de retour

Retourne le type MIME de l'image.



KTaglib_ID3v2_AttachedPictureFrame::getType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getTypeRetourne le type d'une image

Description

public int KTaglib_ID3v2_AttachedPictureFrame::getType ( void )

Retourne le type d'une image.

La spécification ID3v2 autorise un AttachedPictureFrame à définir une image. Cela peut être, i.e. FrontCover ou FileIcon. Reportez-vous à la description de la classe KTagLib_ID3v2_AttachedPictureFrame pour une liste des types disponibles.

Valeurs de retour

Retourne un entier représentant le type de l'image.



KTaglib_ID3v2_AttachedPictureFrame::savePicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::savePictureSauvegarde une image dans un fichier

Description

public bool KTaglib_ID3v2_AttachedPictureFrame::savePicture ( string $filename )

Sauvegarde l'image attachée dans un fichier donné.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.



KTaglib_ID3v2_AttachedPictureFrame::setMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setMimeTypeDéfinit le type MIME d'une image

Description

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( string $type )

Définit le type MIME d'une image. C'est, en général, "image/png" ou "image/jpeg".



KTaglib_ID3v2_AttachedPictureFrame::setPicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::setPictureDéfinit le tag image en une image donnée

Description

public void KTaglib_ID3v2_AttachedPictureFrame::setPicture ( string $filename )

Définit le tag image en une image donnée. L'image est chargée depuis le fichier fourni. Notez que l'image n'est sauvegardée que lors de l'appel à la méthode de sauvegarde de l'objet fichier correspondant.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.



KTaglib_ID3v2_AttachedPictureFrame::setType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setTypeDéfinit le type de l'image

Description

public void KTaglib_ID3v2_AttachedPictureFrame::setType ( int $type )

Définit le type de l'image. Ce peut être FrontCover ou FileIcon. Reportez-vous à la description de la classe KTaglib_ID3v2_AttachedPictureFrame pour une liste de types disponibles ainsi que leurs constantes correspondantes.


Sommaire




OGG/Vorbis


Introduction

Le format de fichier OGG/Vorbis, comme définit par » http://www.vorbis.com/, est un schéma pour la compression de flux audio par de multiples facteurs avec un minimum de perte de qualité. Cette extension ajoute le support Ogg Vorbis aux gestionnaires d'URL de PHP. Lorsqu'utilisé en mode lecture, les données compressées OGG/Vorbis sont déployées en audio PCM brute en un des six formats d'encodage PCM listés ci-dessous.



Installation/Configuration

Sommaire


Pré-requis

Cette extension nécessite PHP >= 4.3.0, » libogg >= 1.0, et » libvorbis >= 1.0.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/oggvorbis



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

OGG/Vorbis supporte l'encodage PCM dans les formats suivants :
Constante Définition
OGGVORBIS_PCM_U8 PCM 8-bit non-signé.
OGGVORBIS_PCM_S8 PCM 8-bit signé.
OGGVORBIS_PCM_U16_LE PCM 16-bit non-signé. Arrangements normaux Little Endian.
OGGVORBIS_PCM_U16_BE PCM 16-bit non-signé. Arrangements normaux Big Endian.
OGGVORBIS_PCM_S16_LE PCM 16-bit signé. Arrangements normaux Little Endian.
OGGVORBIS_PCM_S16_BE PCM 16-bit signé. Arrangements normaux Big Endian.


Options de contexte

Options personnalisées OGG/Vorbis
Option Définition Pertinence Défaut
pcm_mode Encodage PCM utilisé. Voir les constantes ci-dessous. Lecture / Écriture OGGVORBIS_PCM_S16_LE
rate Taux d'échantillonnage PCM. Mesuré en Hz. Écriture uniquement 44100
bitrate Débit d'encodage moyen Vorbis / Débit d'encodage variable. Mesuré en bps (ABR) ou en niveau de qualité (VBR : 0.0 à 1.0). 128000 ABR équivaut à 0.4 VBR. Écriture uniquement 128000
channels Nombre de canaux PCM. 1 == Mono, 2 == Stéréo. Écriture uniquement 2
serialno Nombre de séries de flux dans un fichier. Doit être unique dans un fichier. Parce qu'il est potentiellement possible de sélectionner plusieurs nombres de séries dans un fichier chaîné, faites l'effort d'assigner manuellement des nombres uniques lors de l'encodage. Écriture uniquement Random
comments Tableau associatif de commentaires de fichier. Peut être traduit par strtoupper($name) . "=$value". Note : cette option de contexte n'est pas disponible en oggvorbis 0.1 Écriture uniquement array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')


Exemples

Sommaire


Exemples d'utilisation du gestionnaire ogg://

Exemple #1 Lecture d'un fichier OGG/Vorbis

<?php
dl
("oggvorbis.so");

/* Par défaut, ogg:// décodera en 16-bit signé, en mode Little Endian */
$fp fopen('ogg://monaudio.ogg''r');

/* Collecte quelques informations sur le fichier. */
$metadata stream_get_meta_data($fp);

/* Inspection de la première chanson (habituellement la seule chanson
   mais les fichiers OGG/Vorbis peuvent être chaînés) */
$songdata $metadata['wrapper_data'][0];

echo 
"Fichier OGG/Vorbis encodé par : {$songdata['vendor']}\n.";
echo 
"  {$songdata['channels']} canaux de {$songdata['rate']}Hz encodé à {$songdata['bitrate_nominal']}bps.\n";
foreach(
$songdata['comments'] as $comment) {
    echo 
"  $comment\n";
}

while (
$audio_data fread($fp8192)) {
  
/* Faire quelque chose avec l'audio PCM extrait depuis le OGG.
     Copier vers /dev/dsp est une bonne chose sur les systèmes linux,
     souvenez-vous juste de définir le périphérique pour votre mode d'échantillonage d'abord. */
}

fclose($fp);

?>

Exemple #2 Encoder un fichier audio en OGG/Vorbis

<?php
dl
('oggvorbis.so');

$context stream_context_create(array('ogg'=>array(
             
'pcm_mode' => OGGVORBIS_PCM_S8,  /* audio 8bit signé */
             
'rate' => 44100,                 /* Qualité CD 44kHz */
             
'bitrate' => 0.5,                /* Qualité moyenne VBR */
             
'channels' => 1,                 /* Mono */
             
'serialno' => 12345)));          /* Unique dans notre flux */

/* Ouverture d'un fichier pour un ajout. Ceci permet de "chaîner" un deuxième flux OGG à la fin du premier. */
$ogg fopen('ogg://machanson.ogg''a'false$context);

$pcm fopen('mysample.pcm''r');

/* Compression de l'audio brute PCM depuis mysample.pcm vers machanson.ogg */
stream_copy_to_stream($pcm$ogg);

fclose($pcm);
fclose($ogg);
?>





Gestion Audio OpenAL


Introduction

Plate-forme indépendante pour la gestion de l'audio. Requiert la bibliothèque » OpenAL.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/openal.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définie quatre types de ressource : Open AL(Device) - Retournée par openal_device_open(), Open AL(Context) - Retournée par openal_context_create(), Open AL(Buffer) - Retournée par openal_buffer_create(), et Open AL(Source) - Retournée par openal_source_create().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ALC_FREQUENCY (entier)
Attribut de contexte
ALC_REFRESH (entier)
Attribut de contexte
ALC_SYNC (entier)
Attribut de contexte
AL_FREQUENCY (entier)
Configuration du buffer
AL_BITS (entier)
Configuration du buffer
AL_CHANNELS (entier)
Configuration du buffer
AL_SIZE (entier)
Configuration du buffer
AL_BUFFER (entier)
Configuration de la source/de l'écoute (Entier)
AL_SOURCE_RELATIVE (entier)
Configuration de la source/de l'écoute (Entier)
AL_SOURCE_STATE (entier)
Configuration de la source/de l'écoute (Entier)
AL_PITCH (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MIN_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MAX_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MAX_DISTANCE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_ROLLOFF_FACTOR (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_OUTER_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_INNER_ANGLE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_OUTER_ANGLE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_REFERENCE_DISTANCE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_POSITION (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_VELOCITY (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_DIRECTION (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_ORIENTATION (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_FORMAT_MONO8 (entier)
Format PCM
AL_FORMAT_MONO16 (entier)
Format PCM
AL_FORMAT_STEREO8 (entier)
Format PCM
AL_FORMAT_STEREO16 (entier)
Format PCM
AL_INITIAL (entier)
État de la Source
AL_PLAYING (entier)
État de la Source
AL_PAUSED (entier)
État de la Source
AL_STOPPED (entier)
État de la Source
AL_LOOPING (entier)
État de la Source
AL_TRUE (entier)
Valeur booléen reconnue par OpenAL
AL_FALSE (entier)
Valeur booléen reconnue par OpenAL


Fonctions OpenAL


openal_buffer_create

(PECL openal >= 0.1.0)

openal_buffer_createGénère un buffer OpenAL

Description

resource openal_buffer_create ( void )

Valeurs de retour

openal_buffer_create() retourne une ressource Open AL(Buffer) ou FALSE en cas d'erreur.

Voir aussi



openal_buffer_data

(PECL openal >= 0.1.0)

openal_buffer_dataCharge un buffer avec des données

Description

bool openal_buffer_data ( resource $buffer , int $format , string $data , int $freq )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

format

Format du paramètre data, un parmi ceux-là : AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 et AL_FORMAT_STEREO16.

data

Bloc de données binaires audio dans le format spécifié format et freq.

freq

Fréquence des données data, en Hz.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_buffer_destroy

(PECL openal >= 0.1.0)

openal_buffer_destroyDétruit un buffer OpenAL

Description

bool openal_buffer_destroy ( resource $buffer )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_buffer_get

(PECL openal >= 0.1.0)

openal_buffer_getRécupère les propriétés du buffer OpenAL

Description

int openal_buffer_get ( resource $buffer , int $property )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

property

Une propriété spécifique, une parmi celles-ci : AL_FREQUENCY, AL_BITS, AL_CHANNELS et AL_SIZE.

Valeurs de retour

Retourne une valeur entière appropriée à la demande property ou FALSE si une erreur survient.

Voir aussi



openal_buffer_loadwav

(PECL openal >= 0.1.0)

openal_buffer_loadwavCharge un fichier .wav dans le buffer

Description

bool openal_buffer_loadwav ( resource $buffer , string $wavfile )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

wavfile

Chemin vers le fichier .wav sur le système de fichier local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_context_create

(PECL openal >= 0.1.0)

openal_context_createCrée un contexte de traitement audio

Description

resource openal_context_create ( resource $device )

Liste de paramètres

device

Une ressource Open AL(Device) (précédemment créée par openal_device_open()).

Valeurs de retour

Retourne une ressource Open AL(Context) ou FALSE en cas d'erreur.

Voir aussi



openal_context_current

(PECL openal >= 0.1.0)

openal_context_currentRend courant le contexte spécifié

Description

bool openal_context_current ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_context_destroy

(PECL openal >= 0.1.0)

openal_context_destroyDétruit un contexte

Description

bool openal_context_destroy ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_context_process

(PECL openal >= 0.1.0)

openal_context_processTraite le contexte spécifié

Description

bool openal_context_process ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_context_suspend

(PECL openal >= 0.1.0)

openal_context_suspendSuspend le contexte spécifié

Description

bool openal_context_suspend ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_device_close

(PECL openal >= 0.1.0)

openal_device_closeFerme un périphérique OpenAL

Description

bool openal_device_close ( resource $device )

Liste de paramètres

device

Une ressource Open AL(Device) (précédemment créée par openal_device_open()) à fermer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_device_open

(PECL openal >= 0.1.0)

openal_device_openInitialise une interface audio OpenAL

Description

resource openal_device_open ([ string $device_desc ] )

Liste de paramètres

device_desc

openal_device_open() ouvre un périphérique audio optionnellement spécifié par le paramètre device_desc. Si le paramètre device_desc n'est pas spécifié, le premier périphérique audio disponible sera utilisé.

Valeurs de retour

Retourne une ressource Open AL(Device) ou FALSE en cas d'erreur.

Voir aussi



openal_listener_get

(PECL openal >= 0.1.0)

openal_listener_getRécupère une propriété d'auditeur

Description

mixed openal_listener_get ( int $property )

Liste de paramètres

property

La propriété à récupérer, une parmi celles-ci : AL_GAIN (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)) et AL_ORIENTATION (array(float,float,float)).

Valeurs de retour

Retourne un nombre décimal ou un tableau de nombres à virgule flottante ou FALSE si une erreur survient.

Voir aussi



openal_listener_set

(PECL openal >= 0.1.0)

openal_listener_setDéfinie une propriété d'auditeur

Description

bool openal_listener_set ( int $property , mixed $setting )

Liste de paramètres

property

La propriété à définir, une parmi celles-ci : AL_GAIN (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)) et AL_ORIENTATION (array(float,float,float)).

setting

La valeur à définir, soit un nombre décimal, soit un tableau de nombres à virgule flottante appropriés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_source_create

(PECL openal >= 0.1.0)

openal_source_createGénère une ressource de source

Description

resource openal_source_create ( void )

Valeurs de retour

Retourne une ressource Open AL(Source) ou FALSE en cas d'erreur.

Voir aussi



openal_source_destroy

(PECL openal >= 0.1.0)

openal_source_destroyDétruit une ressource de source

Description

bool openal_source_destroy ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_source_get

(PECL openal >= 0.1.0)

openal_source_getRécupère une propriété de source OpenAL

Description

mixed openal_source_get ( resource $source , int $property )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

property

Propriété à récupérer, une parmi celles-ci : AL_SOURCE_RELATIVE (entier), AL_SOURCE_STATE (entier), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

Valeurs de retour

Retourne le type associé avec la propriété récupérée ou FALSE si une erreur survient.

Voir aussi



openal_source_pause

(PECL openal >= 0.1.0)

openal_source_pauseMarque une pause dans la source

Description

bool openal_source_pause ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée avec openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_source_play

(PECL openal >= 0.1.0)

openal_source_playDémarre la lecture de la source

Description

bool openal_source_play ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_source_rewind

(PECL openal >= 0.1.0)

openal_source_rewindRevient en arrière dans la source

Description

bool openal_source_rewind ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_source_set

(PECL openal >= 0.1.0)

openal_source_setDéfinie une propriété de la source

Description

bool openal_source_set ( resource $source , int $property , mixed $setting )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

property

La propriété à définir, une parmi celles-ci : AL_BUFFER (OpenAL(Source)), AL_LOOPING (boolean), AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

setting

La valeur à assigner à la propriété spécifiée par le paramètre property. Référez-vous à la description de la propriété property pour une description des valeurs attendues.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_source_stop

(PECL openal >= 0.1.0)

openal_source_stopArrête la lecture de la source

Description

bool openal_source_stop ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openal_stream

(PECL openal >= 0.1.0)

openal_streamDémarre le streaming d'une source

Description

resource openal_stream ( resource $source , int $format , int $rate )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

format

Le format du paramètre data, un parmi ceux-là : AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 et AL_FORMAT_STEREO16.

rate

La fréquence des données à streamer, en Hz.

Valeurs de retour

Retourne une ressource de streaming ou FALSE si une erreur survient.

Voir aussi


Sommaire





Services d'identification


Kerberos V


Introduction

Ce paquet vous permet d'accéder à l'administration des serveurs Kerberos V. Vous pourrez créer, modifier et effacer les directives et les éléments principaux Kerberos V.

Plus d'informations à propos de Kerberos peuvent être trouvées sur » http://web.mit.edu/kerberos/www/.

La documentation sur Kerberos et KADM5 peut être trouvée sur » http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/kadm5.

Note:

Si vous utilisez cette option sans spécifier le chemin vers KADM5, PHP utilisera les bibliothèques clientes internes de KADM5. Les utilisateurs qui exécutent d'autres applications qui utilisent également KADM5 (par exemple, l'exécution de PHP 4 et PHP 5 comme modules apache concurrent, ou auth-kadm5), doivent également spécifier le chemin vers KADM5 : --with-kadm5=/path/to/kadm5. Ceci forcera PHP à utiliser les bibliothèques clientes installées par KADM5, évitant ainsi les conflits.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit un gestionnaire KADM5 retourné par la fonction kadm5_init_with_password().




Constantes pré-définies

Sommaire

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Constantes pour les attributs des balises

Les fonctions kadm5_create_principal(), kadm5_modify_principal() et kadm5_modify_principal() vous permettent de spécifier des attributs spéciaux utilisant un champ de bits. Les symboles sont définis ci-dessous :

Attributs à utiliser par KDC
constante
KRB5_KDB_DISALLOW_POSTDATED
KRB5_KDB_DISALLOW_FORWARDABLE
KRB5_KDB_DISALLOW_TGT_BASED
KRB5_KDB_DISALLOW_RENEWABLE
KRB5_KDB_DISALLOW_PROXIABLE
KRB5_KDB_DISALLOW_DUP_SKEY
KRB5_KDB_DISALLOW_ALL_TIX
KRB5_KDB_REQUIRES_PRE_AUTH
KRB5_KDB_REQUIRES_HW_AUTH
KRB5_KDB_REQUIRES_PWCHANGE
KRB5_KDB_DISALLOW_SVR
KRB5_KDB_PWCHANGE_SERVER
KRB5_KDB_SUPPORT_DESMD5
KRB5_KDB_NEW_PRINC



Constantes pour les options

Les fonctions kadm5_create_principal(), kadm5_modify_principal() et kadm5_get_principal() permettent de spécifier ou retourner les options des éléments principaux en tant que tableaux associatifs. Les clés pour le tableau associatif sont définies en tant que constantes ci-dessous :

Options pour créer/modifier/récupérer des éléments principaux
constante type description
KADM5_PRINCIPAL long Le délai d'expiration des éléments principaux en tant que timestamp Kerberos.
KADM5_PRINC_EXPIRE_TIME long Le délai d'expiration des éléments principaux en tant que timestamp Kerberos.
KADM5_LAST_PW_CHANGE long Le délai pendant lequel le mot de passe du principal a été changé pour la dernière fois.
KADM5_PW_EXPIRATION long Le délai d'expiration du mot de passe du principal courant, en tant que timestamp Kerberos.
KADM5_MAX_LIFE long La durée de vie maximale de tous les tickets Kerberos issus de ce principal.
KADM5_MAX_RLIFE long La durée maximale renouvelable de tous les tickets Kerberos issus de ce principal.
KADM5_MOD_NAME string Le nom du principal Kerberos qui a modifié ce principal le plus récemment.
KADM5_MOD_TIME long L'heure à laquelle ce principal a été modifié pour la dernière fois, en tant que timestamp Kerberos.
KADM5_KVNO long La version de la clé courante du principal.
KADM5_POLICY string Le nom de la directive contrôlant ce principal.
KADM5_CLEARPOLICY long La procédure standard servant à assigner la directive par défaut pour créer des éléments principaux. KADM5_CLEARPOLICY supprime ce comportement.
KADM5_LAST_SUCCESS long L'heure KDC de la dernière AS_REQ qui a réussi.
KADM5_LAST_FAILED long L'heure KDC de la dernière AS_REQ qui a échoué.
KADM5_FAIL_AUTH_COUNT long Le nombre d'échec récursif AS_REQs.
KADM5_RANDKEY long Génère un mot de passe aléatoire pour le principal. Le paramètre password sera ignoré.
KADM5_ATTRIBUTES long Un champ de bits d'attributs à utiliser par KDC.




Exemples

Sommaire


Cet exemple simple montre comment se connecter, interroger, imprimer les éléments principaux et se déconnecter depuis une base de données KADM5.

Exemple #1 Exemple général de l'extension KADM5

<?php

  $handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

  print 
"<h1>get_principals</h1>\n";
  
$principals kadm5_get_principals($handle);
  for( 
$i=0$i<count($principals); $i++)
      print 
"$principals[$i]<br>\n";

  print 
"<h1>get_policies</h1>\n";
  
$policies kadm5_get_policies($handle);
  for( 
$i=0$i<count($policies); $i++)
      print 
"$policies[$i]<br>\n";

  print 
"<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

  
$options kadm5_get_principal($handle"burbach@GONICUS.LOCAL" );
  
$keys array_keys($options);
  for( 
$i=0$i<count($keys); $i++) {
    
$value $options[$keys[$i]];
    print 
"$keys[$i]$value<br>\n";
  }

  
$options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  
kadm5_modify_principal($handle"burbach@GONICUS.LOCAL"$options);

  
kadm5_destroy($handle);
?>




Fonctions KADM5


kadm5_chpass_principal

(PECL kadm5 >= 0.2.3)

kadm5_chpass_principalModifie le mot de passe du principal

Description

bool kadm5_chpass_principal ( resource $handle , string $principal , string $password )

kadm5_chpass_principal() définit un nouveau mot de passe password pour le principal.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

password

Le nouveau mot de passe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de modification du mot de passe du principal

<?php

$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

kadm5_chpass_principal($handle"burbach@GONICUS.LOCAL""newpassword");

kadm5_destroy($handle);
?>



kadm5_create_principal

(PECL kadm5 >= 0.2.3)

kadm5_create_principalCrée un principal kerberos avec les paramètres donnés

Description

bool kadm5_create_principal ( resource $handle , string $principal [, string $password [, array $options ]] )

kadm5_create_principal() crée un principal avec le mot de passe password donné.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

password

Si password n'est pas spécifié ou s'il vaut NULL, une clé aléatoire sera générée.

options

Il est possible de spécifier plusieurs paramètres optionnels avec le tableau options. Les options suivantes sont autorisées : KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de création d'un principal

<?php

$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

$attributes KRB5_KDB_REQUIRES_PRE_AUTH KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 
KADM5_POLICY => "default",
                 
KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle"burbach@GONICUS.LOCAL""password"$options);

kadm5_destroy($handle);
?>

Voir aussi



kadm5_delete_principal

(PECL kadm5 >= 0.2.3)

kadm5_delete_principalEfface un principal kerberos

Description

bool kadm5_delete_principal ( resource $handle , string $principal )

Efface un principal depuis la base de données Kerberos.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal à effacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_delete_principal()

<?php

$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

kadm5_delete_principal($handle"burbach@GONICUS.LOCAL");

kadm5_destroy($handle);
?>

Voir aussi



kadm5_destroy

(PECL kadm5 >= 0.2.3)

kadm5_destroyFerme la connexion avec le serveur d'administration et libère toutes les ressources associées

Description

bool kadm5_destroy ( resource $handle )

Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées.

Liste de paramètres

handle

Un gestionnaire KADM5.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



kadm5_flush

(PECL kadm5 >= 0.2.3)

kadm5_flushValide toutes les modifications de la base de données Kerberos

Description

bool kadm5_flush ( resource $handle )

Valide toutes les modifications de la base de données Kerberos, et quitte la connexion ouverte du serveur d'administration Kerberos

Liste de paramètres

handle

Un gestionnaire KADM5.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



kadm5_get_policies

(PECL kadm5 >= 0.2.3)

kadm5_get_policiesRécupère toutes les directives depuis la base de données Kerberos

Description

array kadm5_get_policies ( resource $handle )

Récupère un tableau contenant tous les noms des directives.

Liste de paramètres

handle

Un gestionnaire KADM5.

Valeurs de retour

Retourne un tableau de directives en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_get_policies()

<?php
$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

print 
"<h1>get_policies</h1>\n";
foreach (
kadm5_get_policies($handle) as $policy) {
    echo 
"$policy<br />\n";
}

kadm5_destroy($handle);
?>



kadm5_get_principal

(PECL kadm5 >= 0.2.3)

kadm5_get_principalRécupère les entrées des éléments principaux depuis la base de données Kerberos

Description

array kadm5_get_principal ( resource $handle , string $principal )

Récupère les entrées des éléments principaux depuis la base de données Kerberos.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

Valeurs de retour

kadm5_get_principal() retourne un tableau associatif contenant les clés suivantes : KADM5_PRINCIPAL, KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_MOD_NAME, KADM5_MOD_TIME, KADM5_KVNO, KADM5_POLICY, KADM5_MAX_RLIFE, KADM5_LAST_SUCCESS, KADM5_LAST_FAILED, KADM5_FAIL_AUTH_COUNT. en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_get_principal()

<?php
$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

print 
"<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

$options kadm5_get_principal($handle"burbach@GONICUS.LOCAL" );

foreach (
$options as $key => $value) {
    echo 
"$key$value<br />\n";
}

kadm5_destroy($handle);
?>

Voir aussi



kadm5_get_principals

(PECL kadm5 >= 0.2.3)

kadm5_get_principalsRécupère tous les éléments principaux depuis la base de données Kerberos

Description

array kadm5_get_principals ( resource $handle )

kadm5_get_principals() retourne un tableau contenant tous les noms des éléments principaux.

Liste de paramètres

handle

A KADM5 handle.

Valeurs de retour

Retourne un tableau d'éléments principaux en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_get_principals()

<?php
$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

print 
"<h1>get_principals</h1>\n";
foreach (
kadm5_get_principals($handle) as $principal) {
    echo 
"$principal<br />\n";
}

kadm5_destroy($handle);
?>

Voir aussi

  • kadm5_get_principal() - Récupère les entrées des éléments principaux depuis la base de données Kerberos



kadm5_init_with_password

(PECL kadm5 >= 0.2.3)

kadm5_init_with_passwordOuvre une connexion à la bibliothèque KADM5

Description

resource kadm5_init_with_password ( string $admin_server , string $realm , string $principal , string $password )

Ouvre une connexion avec la bibliothèque KADM5 en utilisant le principal et le mot de passe password pour obtenir les créances initiales depuis le serveur d'administration admin_server.

Liste de paramètres

admin_server

Le serveur.

realm

Définit le domaine d'identification pour la connexion.

principal

Le principal.

password

Si password est omis ou s'il vaut NULL, une clé aléatoire sera générée.

Valeurs de retour

Retourne un gestionnaire KADM5 en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'initialisation KADM5

<?php

$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

$attributes KRB5_KDB_REQUIRES_PRE_AUTH KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 
KADM5_POLICY => "default",
                 
KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle"burbach@GONICUS.LOCAL""password"$options);

kadm5_destroy($handle);
?>

Notes

Note:

La connexion doit être close après l'avoir utilisée avec la fonction kadm5_destroy().

Voir aussi

  • kadm5_destroy() - Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées



kadm5_modify_principal

(PECL kadm5 >= 0.2.3)

kadm5_modify_principalModifie un principal Kerberos avec les paramètres donnés

Description

bool kadm5_modify_principal ( resource $handle , string $principal , array $options )

Modifie un principal Kerberos avec les paramètres donnés

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

options

Il est possible de spécifier plusieurs paramètres optionnels avec un tableau d'options. Les options suivantes sont autorisées : KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE. KADM5_FAIL_AUTH_COUNT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de modification d'un principal

<?php

$handle 
kadm5_init_with_password("afs-1""GONICUS.LOCAL""admin/admin""password");

$attributes KRB5_KDB_REQUIRES_PRE_AUTH;
$options = array(KADM5_PRINC_EXPIRE_TIME => 3451234,
KADM5_POLICY => "gonicus",
KADM5_ATTRIBUTES => $attributes);

kadm5_modify_principal($handle"burbach@GONICUS.LOCAL"$options);

kadm5_destroy($handle);
?>

Voir aussi


Sommaire




Radius


Introduction

Ce paquet est basé sur la bibliothèque libradius (Remote Authentication Dial In User Service) de FreeBSD. Il permet aux clients d'effectuer des identification et représentations par le biais de requêtes réseau sur des serveurs distants.

Cette extension PECL supporte tout le protocole Radius Authentication complet pour les identifications (» RFC 2865) et Radius Accounting (» RFC 2866). Ce paquet est disponible pour Unix (testé sous FreeBSD et Linux) mais aussi pour Windows.

Note:

Une description de libradius peut être trouvée » ici. Une description détaillée du fichier de configuration peut être trouvée » ici.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/radius.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

RADIUS_ACCESS_REQUEST ()
Demande d'identification
RADIUS_ACCESS_ACCEPT ()
Accès accepté
RADIUS_ACCESS_REJECT ()
Accès rejeté
RADIUS_ACCOUNTING_REQUEST ()
Demande de compte
RADIUS_ACCOUNTING_RESPONSE ()
Réponse du compte
RADIUS_ACCESS_CHALLENGE ()
Défi d'accès
RADIUS_USER_NAME (chaîne de caractères)
Nom d'utilisateur
RADIUS_USER_PASSWORD (chaîne de caractères)
Mot de passe
RADIUS_CHAP_PASSWORD (chaîne de caractères)
Chap Password: chappass = md5(ident + plaintextpass + challenge)
RADIUS_NAS_IP_ADDRESS (chaîne de caractères)
Adresse IP NAS
RADIUS_NAS_PORT (entier)
Port NAS
RADIUS_SERVICE_TYPE (entier)

Type de service :

  • RADIUS_LOGIN
  • RADIUS_FRAMED
  • RADIUS_CALLBACK_LOGIN
  • RADIUS_CALLBACK_FRAMED
  • RADIUS_OUTBOUND
  • RADIUS_ADMINISTRATIVE
  • RADIUS_NAS_PROMPT
  • RADIUS_AUTHENTICATE_ONLY
  • RADIUS_CALLBACK_NAS_PROMPT

RADIUS_FRAMED_PROTOCOL (entier)

Protocole encadré :

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (chaîne de caractères)
Adresse IP
RADIUS_FRAMED_IP_NETMASK (chaîne de caractères)
Netmasque
RADIUS_FRAMED_ROUTING (entier)
Routing
RADIUS_FILTER_ID (chaîne de caractères)
Identifiant de filtre
RADIUS_FRAMED_MTU (entier)
MTU
RADIUS_FRAMED_COMPRESSION (entier)

Compression :

  • RADIUS_COMP_NONE
  • RADIUS_COMP_VJ
  • RADIUS_COMP_IPXHDR

RADIUS_LOGIN_IP_HOST (chaîne de caractères)
Login IP Host
RADIUS_LOGIN_SERVICE (entier)
Login Service
RADIUS_LOGIN_TCP_PORT (entier)
Login TCP Port
RADIUS_REPLY_MESSAGE (chaîne de caractères)
Message de réponse
RADIUS_CALLBACK_NUMBER (chaîne de caractères)
Numéro de Callback
RADIUS_CALLBACK_ID (chaîne de caractères)
ID de Callback
RADIUS_FRAMED_ROUTE (chaîne de caractères)
Framed Route
RADIUS_FRAMED_IPX_NETWORK (chaîne de caractères)
Framed IPX Network
RADIUS_STATE (chaîne de caractères)
Statut
RADIUS_CLASS (entier)
Classe
RADIUS_VENDOR_SPECIFIC (entier)
Attribut spécifique au vendeur
RADIUS_SESSION_TIMEOUT (entier)
Timeout de la session
RADIUS_IDLE_TIMEOUT (entier)
Durée d'expiration
RADIUS_TERMINATION_ACTION (entier)
Action de termination
RADIUS_CALLED_STATION_ID (entier)
Called Station Id
RADIUS_CALLING_STATION_ID (chaîne de caractères)
Calling Station Id
RADIUS_NAS_IDENTIFIER (entier)
NAS ID
RADIUS_PROXY_STATE (entier)
Proxy State
RADIUS_LOGIN_LAT_SERVICE (entier)
Login LAT Service
RADIUS_LOGIN_LAT_NODE (entier)
Login LAT Node
RADIUS_LOGIN_LAT_GROUP (entier)
Login LAT Group
RADIUS_FRAMED_APPLETALK_LINK (entier)
Framed Appletalk Link
RADIUS_FRAMED_APPLETALK_NETWORK (entier)
Framed Appletalk Network
RADIUS_FRAMED_APPLETALK_ZONE (entier)
Framed Appletalk Zone
RADIUS_CHAP_CHALLENGE (chaîne de caractères)
Challenge
RADIUS_NAS_PORT_TYPE (entier)

Type du port NAS :

  • RADIUS_ASYNC
  • RADIUS_SYNC
  • RADIUS_ISDN_SYNC
  • RADIUS_ISDN_ASYNC_V120
  • RADIUS_ISDN_ASYNC_V110
  • RADIUS_VIRTUAL
  • RADIUS_PIAFS
  • RADIUS_HDLC_CLEAR_CHANNEL
  • RADIUS_X_25
  • RADIUS_X_75
  • RADIUS_G_3_FAX
  • RADIUS_SDSL
  • RADIUS_ADSL_CAP
  • RADIUS_ADSL_DMT
  • RADIUS_IDSL
  • RADIUS_ETHERNET
  • RADIUS_XDSL
  • RADIUS_CABLE
  • RADIUS_WIRELESS_OTHER
  • RADIUS_WIRELESS_IEEE_802_11

RADIUS_PORT_LIMIT (entier)
Port Limit
RADIUS_LOGIN_LAT_PORT (entier)
Login LAT Port
RADIUS_CONNECT_INFO (chaîne de caractères)
Connect info
RADIUS_ACCT_STATUS_TYPE (entier)

Type de statut du compte :

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (entier)
Accounting delay time
RADIUS_ACCT_INPUT_OCTETS (entier)
Accounting input bytes
RADIUS_ACCT_OUTPUT_OCTETS (entier)
Accounting output bytes
RADIUS_ACCT_SESSION_ID (entier)
Accounting session ID
RADIUS_ACCT_AUTHENTIC (entier)

Accounting authentic, un parmi :

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (entier)
Accounting session time
RADIUS_ACCT_INPUT_PACKETS (entier)
Accounting input packets
RADIUS_ACCT_OUTPUT_PACKETS (entier)
Accounting output packets
RADIUS_ACCT_TERMINATE_CAUSE (entier)

Accounting terminate cause, un parmi :

  • RADIUS_TERM_USER_REQUEST
  • RADIUS_TERM_LOST_CARRIER
  • RADIUS_TERM_LOST_SERVICE
  • RADIUS_TERM_IDLE_TIMEOUT
  • RADIUS_TERM_SESSION_TIMEOUT
  • RADIUS_TERM_ADMIN_RESET
  • RADIUS_TERM_ADMIN_REBOOT
  • RADIUS_TERM_PORT_ERROR
  • RADIUS_TERM_NAS_ERROR
  • RADIUS_TERM_NAS_REQUEST
  • RADIUS_TERM_NAS_REBOOT
  • RADIUS_TERM_PORT_UNNEEDED
  • RADIUS_TERM_PORT_PREEMPTED
  • RADIUS_TERM_PORT_SUSPENDED
  • RADIUS_TERM_SERVICE_UNAVAILABLE
  • RADIUS_TERM_CALLBACK
  • RADIUS_TERM_USER_ERROR
  • RADIUS_TERM_HOST_REQUEST

RADIUS_ACCT_MULTI_SESSION_ID (chaîne de caractères)
Accounting multisession ID
RADIUS_ACCT_LINK_COUNT (entier)
Accounting link count
RADIUS_VENDOR_MICROSOFT (entier)

Attributs spécifiques à Microsoft (» RFC 2548) :

  • RADIUS_MICROSOFT_MS_CHAP_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP_ERROR
  • RADIUS_MICROSOFT_MS_CHAP_PW_1
  • RADIUS_MICROSOFT_MS_CHAP_PW_2
  • RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
  • RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
  • RADIUS_MICROSOFT_MS_RAS_VENDOR
  • RADIUS_MICROSOFT_MS_CHAP_DOMAIN
  • RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
  • RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
  • RADIUS_MICROSOFT_MS_BAP_USAGE
  • RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
  • RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
  • RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
  • RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
  • RADIUS_MICROSOFT_MS_RAS_VERSION
  • RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
  • RADIUS_MICROSOFT_MS_FILTER
  • RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
  • RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
  • RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
  • RADIUS_MICROSOFT_MS_CHAP2_PW
  • RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_ARAP_CHALLENGE



Exemples

Comment commencer ?

  • récupérez une ressource radius
  • configurez la bibliothèque
  • créez la requête
  • ajoutez les attributs
  • envoyez la requête
  • récupérer les attributs
  • fermez la ressource radius (optionnel)
Regardez également aux exemples fournis avec ce paquet.

Le paquet contient un exemple de script PHP. Ce script montre une identification avec radius, en utilisant PAP ou CHAP (md5). Si vous effectuer une identification via Microsoft Radius servers, alors il est possible d'utiliser CHAP (md5). Si vous voulez vous identifier avec Microsoft Servers, vous devez utiliser MS-CHAPv1 ou MS-CHAPv2, mais c'est plus compliqué, car vous devez avoir md4, sha1 et des pour générer les bonnes données. L'exemple fourni montre toutes les méthodes d'identification, incluant MS-CHAPv1 et MS-CHAPv2. Pour faire en sorte que MS-CHAP fonctionne, vous devez activer les extensions mcrypt et mhash, à partir de la version 1.2 de ce paquet, l'extension mcrypt n'est plus nécessaire.



Fonctions Radius

Contact

Si vous avez des commentaires, des corrections de bogues, des améliorations ou si vous voulez aider dans le développement, vous pouvez envoyer un email à » mbretter@php.net.


radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_openCrée une ressource Radius pour les comptes

Description

resource radius_acct_open ( void )

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient. Cette fonction n'échoue que s'il y a un manque de mémoire.

Exemples

Exemple #1 Exemple avec radius_acct_open()

<?php
$res 
radius_acct_open ()
    or die (
"Impossible de créer la ressource");
print(
"La ressource a été créée avec succès");
?>



radius_add_server

(PECL radius >= 1.1.0)

radius_add_serverAjoute un serveur

Description

bool radius_add_server ( resource $radius_handle , string $hostname , int $port , string $secret , int $timeout , int $max_tries )

radius_add_server() peut être utilisé plusieurs fois, et il peut être utilisé avec la fonction radius_config(). Tout au plus, 10 serveurs peuvent être spécifiés. Lorsque plusieurs serveurs sont fournis, ils sont essayés à la façon round-robin tant qu'une réponse valide n'est pas reçue, ou tant que la limite max_tries de chaque serveur n'est pas atteinte.

Liste de paramètres

radius_handle

hostname

Le paramètre hostname spécifie l'hôte serveur, soit en tant que nom de domaine qualifié, soit en tant qu'adresse IP.

port

Le port spécifie le port UDP à contacter sur le serveur. Si le port donné vaut 0, la bibliothèque recherchera le service radius/udp ou radacct/udp dans la base de données des services du réseau et utilisera le port s'y trouvant. Si aucune entrée n'est trouvée, la bibliothèque utilisera les ports Radius standards, 1812 pour l'identification et 1813 pour les comptes.

secret

Le secret partagé pour l'hôte serveur est passé au paramètre secret. Le protocole Radius ignore tout mais garde les 128 premiers octets du secret partagé.

timeout

Le délai limite pour recevoir les réponses du serveur est passé au paramètre timeout, sous la forme de seconde.

max_tries

Le nombre maximal de requêtes répétées à faire avant d'échouer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_add_server()

<?php
if (!radius_add_server($res'radius.example.com'1812'testing123'33)) {
    echo 
'Erreur Radius :' radius_strerror($res). "\n<br>";
    exit;
}
?>

Voir aussi

  • radius_config() - Demande à la bibliothèque de lire un fichier de configuration donné



radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_openCrée une ressource Radius pour l'identification

Description

resource radius_auth_open ( void )

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient. Cette fonction n'échoue que s'il y a un manque de mémoire.

Exemples

Exemple #1 Exemple avec radius_auth_open()

<?php
$radh 
radius_auth_open()
    or die (
"Impossible de créer la ressource");
echo 
"La ressource a été créée avec succès";
?>



radius_close

(PECL radius >= 1.1.0)

radius_closeLibère toutes les ressources Radius

Description

bool radius_close ( resource $radius_handle )

Il n'est pas nécessaire d'appeler cette fonction car PHP libère toutes les ressources à la fin de chaque demande.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



radius_config

(PECL radius >= 1.1.0)

radius_configDemande à la bibliothèque de lire un fichier de configuration donné

Description

bool radius_config ( resource $radius_handle , string $file )

Avant toute demande Radius, la bibliothèque doit connaître le serveur à contacter. La manière simple de configurer la bibliothèque est d'appeler la fonction radius_config(). radius_config() demande à la bibliothèque de lire un fichier de configuration dont le format est décrit sur la page » radius.conf.

Liste de paramètres

radius_handle

file

Le chemin vers le fichier de configuration est passé en tant qu'argument à la fonction radius_config(). La bibliothèque peut également être configurée en appelant la fonction radius_add_server().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



radius_create_request

(PECL radius >= 1.1.0)

radius_create_requestCrée une demande de compte ou d'identification

Description

bool radius_create_request ( resource $radius_handle , int $type )

Une demande Radius consiste en du code spécifiant une demande spécifique, ainsi que zéro ou plusieurs attributs qui fournissent des informations supplémentaires. Pour commencer à construire une nouvelle demande, appelez la fonction radius_create_request().

Note: Attention : Vous devez appeler cette fonction avant de passer n'importe quel argument !

Liste de paramètres

radius_handle

type

Le type est RADIUS_ACCESS_REQUEST ou RADIUS_ACCOUNTING_REQUEST.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_create_request()

<?php
if (!radius_create_request($resRADIUS_ACCESS_REQUEST)) {
    echo 
'Erreur Radius :' radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi



radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addrConvertit des données brutes en adresse IP

Description

string radius_cvt_addr ( string $data )

Exemples

Exemple #1 Exemple avec radius_cvt_addr()

<?php
while ($resa radius_get_attr($res)) {

    if (!
is_array($resa)) {
        
printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    
$attr $resa['attr'];
    
$data $resa['data'];

    switch (
$attr) {

    case 
RADIUS_FRAMED_IP_ADDRESS:
        
$ip radius_cvt_addr($data);
        echo 
"IP : $ip<br>\n";
        break;

    case 
RADIUS_FRAMED_IP_NETMASK:
        
$mask radius_cvt_addr($data);
        echo 
"MASQUE : $mask<br>\n";
        break;
    }
}
?>

Voir aussi



radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_intConvertit des données brutes en entier

Description

int radius_cvt_int ( string $data )

Exemples

Exemple #1 Exemple avec radius_cvt_int()

<?php
while ($resa radius_get_attr($res)) {

    if (!
is_array($resa)) {
        
printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    
$attr $resa['attr'];
    
$data $resa['data'];

    switch (
$attr) {

    case 
RADIUS_FRAMED_MTU:
        
$mtu radius_cvt_int($data);
        echo 
"MTU : $mtu<br>\n";
        break;
    }
}
?>

Voir aussi



radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_stringConvertit des données brutes en chaîne de caractères

Description

string radius_cvt_string ( string $data )

Exemples

Exemple #1 Exemple avec radius_cvt_string()

<?php
while ($resa radius_get_attr($res)) {

    if (!
is_array($resa)) {
        
printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    
$attr $resa['attr'];
    
$data $resa['data'];

    switch (
$attr) {

    case 
RADIUS_FILTER_ID:
        
$id radius_cvt_string($data);
        echo 
"Filtre ID : $id<br>\n";
        break;
    }
}
?>

Voir aussi



radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_keyDérive les clés mppe depuis des données

Description

string radius_demangle_mppe_key ( resource $radius_handle , string $mangled )

Lors de l'utilisation de MPPE avec MS-CHAPv2, les clés reçues et envoyées sont "séchées" (voir la » RFC 2548), cependant, cette fonction est utile, car je ne sais pas s'il y a ou pas une implémentation de PPTP-MPPE dans PHP.

Valeurs de retour

Retourne la chaîne ou FALSE si une erreur survient.



radius_demangle

(PECL radius >= 1.2.0)

radius_demangleAssèche des données

Description

string radius_demangle ( resource $radius_handle , string $mangled )

Quelques données (mots de passe, clés MS-CHAPv1 MPPE) sont "séchées" pour des raisons de sécurité et doivent être "asséchées" avant de pouvoir les utiliser.

Valeurs de retour

Retourne la chaîne "asséchées" ou FALSE si une erreur survient.



radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attrExtrait un attribut

Description

mixed radius_get_attr ( resource $radius_handle )

Comme les demandes Radius, chaque réponse doit contenir zéro ou plusieurs attributs. Après la réception d'une réponse avec succès par la fonction radius_send_request(), ces attributs peuvent être extraits un par un en utilisant la fonction radius_get_attr(). À chaque appel de radius_get_attr(), le prochain attribut est récupéré depuis la réponse courante.

Valeurs de retour

Retourne un tableau associatif contenant le type de l'attribut ainsi que les données ou un numéro d'erreur <= 0.

Exemples

Exemple #1 Exemple avec radius_get_attr()

<?php
while ($resa radius_get_attr($res)) {

    if (!
is_array($resa)) {
        
printf("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    
$attr $resa['attr'];
    
$data $resa['data'];
    
printf("Attribut récupéré :%d %d octets %s\n"$attrstrlen($data), bin2hex($data));
}
?>

Voir aussi



radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attrExtrait un attribut spécifique au vendeur

Description

array radius_get_vendor_attr ( string $data )

Si radius_get_attr() retourne RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() peut être appelé pour déterminer le vendeur.

Valeurs de retour

Retourne un tableau associatif contenant le type de l'attribut, le vendeur ainsi que les données, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_get_vendor_attr()

<?php
while ($resa radius_get_attr($res)) {

    if (!
is_array($resa)) {
        
printf ("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    
$attr $resa['attr'];
    
$data $resa['data'];
    
printf("Attribut récupéré :%d %d octets %s\n"$attrstrlen($data), bin2hex($data));
    if (
$attr == RADIUS_VENDOR_SPECIFIC) {

        
$resv radius_get_vendor_attr($data);
        if (
is_array($resv)) {
            
$vendor $resv['vendor'];
            
$attrv $resv['attr'];
            
$datav $resv['data'];
            
printf("Récupération du vendeur de l'attribut :%d %d octets %s\n"$attrvstrlen($datav), bin2hex($datav));
        }

    }
}
?>

Voir aussi



radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addrAttache une adresse IP en tant qu'attribut

Description

bool radius_put_addr ( resource $radius_handle , int $type , string $addr )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attrAttache un attribut binaire

Description

bool radius_put_attr ( resource $radius_handle , int $type , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_put_attr()

<?php
mt_srand
(time());
$chall mt_rand();
$chapval md5(pack('Ca*','sepp' $chall));
$pass pack('CH*'1$chapval);
if (!
radius_put_attr($resRADIUS_CHAP_PASSWORD$pass)) {
    echo 
'Erreur Radius :' radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi



radius_put_int

(PECL radius >= 1.1.0)

radius_put_intAttache un attribut entier

Description

bool radius_put_int ( resource $radius_handle , int $type , int $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_put_int()

<?php
if (!radius_put_int($resRAD_FRAMED_PROTOCOLRAD_PPP)) {
   echo 
'Erreur Radius :' radius_strerror($res). "\n<br />";
   exit;
}
?>

Voir aussi



radius_put_string

(PECL radius >= 1.1.0)

radius_put_stringAttache un attribut chaîne de caractères

Description

bool radius_put_string ( resource $radius_handle , int $type , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_put_string()

<?php
if (!radius_put_string($resRADIUS_USER_NAME'billy')) {
    echo 
'Erreur Radius :' radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi



radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addrAttache un attribut IP-Address spécifique à un vendeur

Description

bool radius_put_vendor_addr ( resource $radius_handle , int $vendor , int $type , string $addr )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attrAttache un attribut binaire à un vendeur spécifique

Description

bool radius_put_vendor_attr ( resource $radius_handle , int $vendor , int $type , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_put_vendor_attr()

<?php
if (!radius_put_vendor_attr($resRADIUS_VENDOR_MICROSOFTRAD_MICROSOFT_MS_CHAP_CHALLENGE$challenge)) {
    echo 
'Erreur Radius :' radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi



radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_intAttache un attribut entier à un vendeur spécifique

Description

bool radius_put_vendor_int ( resource $radius_handle , int $vendor , int $type , int $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_stringAttache un attribut sous la forme d'une chaîne à un vendeur spécifique

Description

bool radius_put_vendor_string ( resource $radius_handle , int $vendor , int $type , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticatorRetourne l'identifiant demandé

Description

string radius_request_authenticator ( resource $radius_handle )

L'identifiant demandé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de chiffrement.

Valeurs de retour

Retourne l'identificateur demandé en tant que chaîne de caractères ou FALSE si une erreur survient.

Voir aussi



radius_send_request

(PECL radius >= 1.1.0)

radius_send_requestEnvoie la demande et attente une réponse

Description

int radius_send_request ( resource $radius_handle )

Après qu'une demande Radius ait été construite, elle est envoyé grâce à la fonction radius_send_request().

La fonction radius_send_request() envoie la requête et attend une réponse valide, essayant à nouveau, suivant la méthode round-robin autant que nécessaire.

Valeurs de retour

Si une réponse valide est reçue, radius_send_request() retourne le code Radius qui spécifie le type de réponse. C'est, typiquement, RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT ou RADIUS_ACCESS_CHALLENGE. Si aucune réponse valide n'est reçue, radius_send_request() retournera FALSE.

Voir aussi



radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secretRetourne le secret partagé

Description

string radius_server_secret ( resource $radius_handle )

Le secret partagé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de chiffrement.

Valeurs de retour

Retourne le secret partagé du serveur en tant que chaîne de caractères ou FALSE si une erreur survient.



radius_strerror

(PECL radius >= 1.1.0)

radius_strerrorRetourne un message d'erreur

Description

string radius_strerror ( resource $radius_handle )

Si une fonction Radius échoue, alors, elle enregistre un message d'erreur. Ce message d'erreur peut être récupéré avec cette fonction.

Valeurs de retour

Retourne un message d'erreur en tant que chaîne de caractères.


Sommaire





Extensions relatives aux dates et aux heures


Calendar


Introduction

L'extension Calendar contient une série de fonctions afin de convertir simplement les différents formats de calendrier. Elles sont basées sur un comptage de jour Julien. Le comptage Julien est un comptage commençant le 1er Janvier 4713 A.J. Pour convertir les différents calendriers, vous devez tout d'abord convertir en nombre de jours Julien, puis, dans le type de calendrier de votre choix. Le comptage de jours Julien est très différent du calendrier Julien ! Pour plus d'informations sur le comptage en jours Julien, visitez cette page : » http://www.hermetic.ch/cal_stud/jdn.htm. Pour plus d'informations sur les différents calendriers, visitez cette page : » http://www.fourmilab.ch/documents/calendar/.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour faire fonctionner ces fonctions avec PHP, vous devez le compiler avec l'option --enable-calendar .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CAL_GREGORIAN (entier)
CAL_JULIAN (entier)
CAL_JEWISH (entier)
CAL_FRENCH (entier)
CAL_NUM_CALS (entier)
CAL_DOW_DAYNO (entier)
CAL_DOW_SHORT (entier)
CAL_DOW_LONG (entier)
CAL_MONTH_GREGORIAN_SHORT (entier)
CAL_MONTH_GREGORIAN_LONG (entier)
CAL_MONTH_JULIAN_SHORT (entier)
CAL_MONTH_JULIAN_LONG (entier)
CAL_MONTH_JEWISH (entier)
CAL_MONTH_FRENCH (entier)

Les constantes suivantes sont disponibles depuis PHP 4.3.0 :

CAL_EASTER_DEFAULT (entier)
CAL_EASTER_ROMAN (entier)
CAL_EASTER_ALWAYS_GREGORIAN (entier)
CAL_EASTER_ALWAYS_JULIAN (entier)

Les constantes suivantes sont disponibles depuis PHP 5.0.0 :

CAL_JEWISH_ADD_ALAFIM_GERESH (entier)
CAL_JEWISH_ADD_ALAFIM (entier)
CAL_JEWISH_ADD_GERESHAYIM (entier)


Calendar Fonctions


cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5)

cal_days_in_monthRetourne le nombre de jours dans un mois, pour une année et un calendrier donné

Description

int cal_days_in_month ( int $calendar , int $month , int $year )

Retourne le nombre de jours dans le mois month de l'année year, pour le calendrier calendar.

Liste de paramètres

calendar

Calendrier à utiliser pour le calcul

month

Mois dans le calendrier sélectionné

year

Année dans le calendrier sélectionné

Valeurs de retour

Le nombre de jours dans le mois sélectionné, dans le calendrier fourni.

Exemples

Exemple #1 Exemple avec cal_days_in_month()

<?php
$num 
cal_days_in_month(CAL_GREGORIAN82003); // 31
echo "Il y a $num jours en Août 2003";
?>



cal_from_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_from_jdConvertit le nombre de jours Julien en un calendrier spécifique

Description

array cal_from_jd ( int $jd , int $calendar )

cal_from_jd() convertit le nombre de jours Julien jd en une date du calendrier calendar. Les valeurs possibles pour calendar sont CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH et CAL_FRENCH.

Liste de paramètres

jd

Jour Julien, sous la forme d'un entier

calendar

Calendrier à utiliser

Valeurs de retour

Retourne un tableau contenant des informations sur le calendrier, comme le mois, le jour, l'année, le jour de la semaine, les noms abrégés et complets des jours de la semaine et du mois, et la date, sous la forme d'une chaîne de caractères "mois/jour/année".

Exemples

Exemple #1 Exemple avec cal_from_jd()

<?php
$today 
unixtojd(mktime(0008162003));
print_r(cal_from_jd($todayCAL_GREGORIAN));
?>

L'exemple ci-dessus va afficher :

Array
(
   [date] => 8/16/2003
   [month] => 8
   [day] => 16
   [year] => 2003
   [dow] => 6
   [abbrevdayname] => Sat
   [dayname] => Saturday
   [abbrevmonth] => Aug
   [monthname] => August
)

Voir aussi

  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien
  • jdtofrench() - Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
  • jdtogregorian() - Convertit le nombre de jours du calendrier Julien en date grégorienne
  • jdtojewish() - Convertit le nombre de jours du calendrier Julien en date du calendrier juif
  • jdtojulian() - Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
  • jdtounix() - Convertit un jour Julien en timestamp UNIX



cal_info

(PHP 4 >= 4.1.0, PHP 5)

cal_infoRetourne des détails sur un calendrier

Description

array cal_info ([ int $calendar = -1 ] )

cal_info() retourne des informations sur le calendrier calendar spécifié.

Les informations de calendriers sont retournées dans un tableau qui contient les éléments calname, calsymbol, month, abbrevmonth et maxdaysinmonth. Les noms des différents calendriers qui peuvent être utilisés dans le paramètre calendar sont les suivants :

  • 0 ou CAL_GREGORIAN - Calendrier Grégorien
  • 1 ou CAL_JULIAN - Calendrier Julien
  • 2 ou CAL_JEWISH - Calendrier juif
  • 3 ou CAL_FRENCH - Calendrier révolutionnaire français

Si le paramètre calendar n'est pas spécifié, un tableau représentant tous les calendriers est retourné.

Liste de paramètres

calendar

Calendrier dont on souhaite des informations. Si aucun calendrier n'est spécifié, des informations sur tous les calendriers seront retournées.

Valeurs de retour

Historique

Version Description
Since 5.0 Le paramètre calendar devient optionnel et vaut par défaut "tous calendriers" s'il n'est pas spécifié.

Exemples

Exemple #1 Exemple avec cal_info()

<?php
$info 
cal_info(0);
print_r($info);
?>

L'exemple ci-dessus va afficher :

Array
(
    [months] => Array
        (
            [1] => January
            [2] => February
            [3] => March
            [4] => April
            [5] => May
            [6] => June
            [7] => July
            [8] => August
            [9] => September
            [10] => October
            [11] => November
            [12] => December
        )

    [abbrevmonths] => Array
        (
            [1] => Jan
            [2] => Feb
            [3] => Mar
            [4] => Apr
            [5] => May
            [6] => Jun
            [7] => Jul
            [8] => Aug
            [9] => Sep
            [10] => Oct
            [11] => Nov
            [12] => Dec
        )

    [maxdaysinmonth] => 31
    [calname] => Gregorian
    [calsymbol] => CAL_GREGORIAN
)



cal_to_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_to_jdConvertit un calendrier en nombre de jours Julien

Description

int cal_to_jd ( int $calendar , int $month , int $day , int $year )

cal_to_jd() calcule le nombre de jours Julien pour une date, dans le calendrier calendar. Les valeurs possibles pour calendar sont CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH et CAL_FRENCH.

Liste de paramètres

calendar

Calendrier à convertir. Un parmi CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH ou CAL_FRENCH.

month

Le mois, sous la forme d'un nombre. L'intervalle valide dépend du calendrier calendar

day

Le jour, sous la forme d'un nombre. L'intervalle valide dépend du calendrier calendar

year

L'année, sous la forme d'un nombre. L'intervalle valide dépend du calendrier calendar

Valeurs de retour

Le nombre de jour Julien.

Voir aussi

  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique
  • frenchtojd() - Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
  • gregoriantojd() - Convertit une date grégorienne en nombre de jours du calendrier Julien
  • jewishtojd() - Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
  • juliantojd() - Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • unixtojd() - Convertit un timestamp UNIX en un jour Julien



easter_date

(PHP 4, PHP 5)

easter_dateRetourne un timestamp UNIX pour Pâques, à minuit pour une année donnée

Description

int easter_date ([ int $year ] )

Retourne un timestamp UNIX pour Pâques, à minuit, pour une année donnée.

Avertissement

Cette fonction génère une alerte si la date tombe hors de la zone de validité des timestamp UNIX (i.e. avant 1970 ou après 2037).

La date de Pâques a été fixée par le concile de Nicée, en 325 de notre ère, comme étant le dimanche après la première pleine lune qui suit l'équinoxe de printemps. L'équinoxe de printemps est considéré comme étant toujours le 21 mars, ce qui réduit le problème au calcul de la date de la lune pleine qui suit, et le dimanche suivant. L'algorithme fut introduit vers 532, par Dionysius Exiguus. Avec le calendrier Julien, (pour les années avant 1753), un cycle de 19 ans suffit pour connaître les dates des phases de la lune. Avec le calendrier grégorien, (à partir des années 1753, conçu par Clavius et Lilius, puis introduit par le pape Grégoire XIII en octobre 1582, et en Grande Bretagne et ses colonies en septembre 1752), deux facteurs de corrections ont été ajoutés pour rendre le cycle plus précis.

Liste de paramètres

year

L'année, sous la forme d'un nombre compris entre 1970 et 2037

Valeurs de retour

La date pour Pâques, sous la forme d'un timestamp unix.

Historique

Version Description
Depuis la version 4.3.0 Le paramètre year est optionnel et vaut par défaut l'année courante vis à vis de l'heure locale.

Exemples

Exemple #1 Exemple avec easter_date()

<?php

echo date("M-d-Y"easter_date(1999));        // Apr-04-1999
echo date("M-d-Y"easter_date(2000));        // Apr-23-2000
echo date("M-d-Y"easter_date(2001));        // Apr-15-2001

?>

Voir aussi

  • easter_days() - Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée pour le calcul de Pâques avant 1970 et après 2037



easter_days

(PHP 4, PHP 5)

easter_daysRetourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée

Description

int easter_days ([ int $year [, int $method = CAL_EASTER_DEFAULT ]] )

Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée. Si l'année n'est pas précisée, l'année courante sera utilisée.

Cette fonction peut être utilisée à la place de easter_date() pour calculer la date de Pâques, pour les années qui tombent hors de l'intervalle de validité des timestamps UNIX (i.e. avant 1970 ou après 2037).

La date de Pâques a été fixée par le concile de Nicée, en 325 de notre ère, comme étant le dimanche après la première pleine lune qui suit l'équinoxe de printemps. L'équinoxe de printemps est considéré comme étant toujours le 21 mars, ce qui réduit le problème au calcul de la date de la lune pleine qui suit, et le dimanche suivant. L'algorithme fut introduit vers 532, par Dionysius Exiguus. Avec le calendrier Julien, (pour les années avant 1753), un cycle de 19 ans suffit pour connaître les date des phases de la lune. Avec le calendrier grégorien, (à partir des années 1753, conçu par Clavius et Lilius, puis introduit par le pape Grégoire XIII en octobre 1582, et en Grande Bretagne et ses colonies en septembre 1752), deux facteurs de corrections ont été ajoutés pour rendre le cycle plus précis.

Liste de paramètres

year

L'année, sous la forme d'un nombre positif

method

Permet le calcul des dates de Pâques en se basant sur le calendrier Grégorien pour les années entre 1582 et 1752 lorsque définit à CAL_EASTER_ROMAN. Voir les constantes des calendriers pour plus de constantes valides.

Valeurs de retour

Le nombre de jours entre le 21 Mars et Pâques, pour l'année year fournie.

Historique

Version Description
Depuis la version 4.3.0 Le paramètre year est optionnel et vaut par défaut, l'année courante du temps local.
Depuis la version 4.3.0 Le paramètre method a été introduit.

Exemples

Exemple #1 Exemple avec easter_days()

<?php

echo easter_days(1999);        // 14, i.e. April 4
echo easter_days(1492);        // 32, i.e. April 22
echo easter_days(1913);        //  2, i.e. March 23

?>

Voir aussi

  • easter_date() - Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée



FrenchToJD

(PHP 4, PHP 5)

FrenchToJDConvertit une date du calendrier français républicain en nombre de jours du calendrier Julien

Description

int frenchtojd ( int $month , int $day , int $year )

frenchtojd() convertit une date du calendrier français républicain en nombre de jours du calendrier Julien.

Ces fonctions convertissent les dates comprises entre l'an 1 et l'an 14 (22 Septembre 1792 à 22 Septembre 1806 en calendrier grégorien). Cela couvre plus que la durée d'existence de ce calendrier.

Liste de paramètres

month

Le mois, sous la forme d'un nombre entre 1 (pour Vendémiaire) à 13 (pour la période de 5-6 jours en à la fin de chaque année)

day

Le jour, sous la forme d'un nombre compris entre 1 et 30

year

L'année, sous la forme d'un nombre compris entre 1 et 14

Valeurs de retour

Le jour Julien pour la date fournie du calendrier français républicain, sous la forme d'un entier.

Voir aussi

  • jdtofrench() - Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien



GregorianToJD

(PHP 4, PHP 5)

GregorianToJDConvertit une date grégorienne en nombre de jours du calendrier Julien

Description

int gregoriantojd ( int $month , int $day , int $year )

Intervalle de validité pour le calendrier grégorien : 4714 avant JC à 9999 après JC.A.D.

Bien qu'il soit possible de manipuler des dates jusqu'en 4714 avant JC, une telle utilisation n'est pas significative. En effet, ce calendrier fut créé le 18 octobre 1582 après J.C. (ou 5 octobre 1582 en calendrier grec). Certains pays ne l'acceptèrent que bien plus tard. Par exemple, les britanniques n'y passèrent qu'en 1752, les Russes en 1918 et les Grecs en 1923. La plupart des pays européens utilisaient le calendrier Julien avant le Grégorien.

Liste de paramètres

month

Le mois, sous la forme d'un nombre compris entre 1 (pour Janvier) et 12 (pour Décembre)

day

Le jour, sous la forme d'un nombre compris entre 1 et 31

year

L'année, sous la forme d'un nombre compris entre -4714 et 9999

Valeurs de retour

Le jour Julien pour la date fournie du calendrier Grégorien, sous la forme d'un entier.

Exemples

Exemple #1 Fonctions calendrier

<?php
$jd 
GregorianToJD(10111970);
echo 
"$jd\n";
$gregorian JDToGregorian($jd);
echo 
"$gregorian\n";
?>

Voir aussi

  • jdtogregorian() - Convertit le nombre de jours du calendrier Julien en date grégorienne
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien



JDDayOfWeek

(PHP 4, PHP 5)

JDDayOfWeekRetourne le numéro du jour de la semaine

Description

mixed jddayofweek ( int $julianday [, int $mode = CAL_DOW_DAYNO ] )

Retourne le numéro du jour de la semaine. Peut retourner une chaîne ou un entier, en fonction du mode.

Liste de paramètres

julianday

Le numéro du jour Julien, sous la forme d'un entier

mode
Modes pour la semaine du calendrier
Mode Signification
0 (défaut) Retourne le numéro du jour comme un entier (0=dimanche, 1=lundi, etc.)
1 Retourne une chaîne contenant le nom du jour (anglais grégorien)
2 Retourne une chaîne contenant le nom abrégé du jour de la semaine (anglais grégorien)

Valeurs de retour

Le jour de la semaine Grégorien, sous la forme d'un entier ou d'une chaîne de caractères.



JDMonthName

(PHP 4, PHP 5)

JDMonthNameRetourne le nom du mois

Description

string jdmonthname ( int $julianday , int $mode )

Retourne une chaîne contenant le nom du mois. mode indique de quel calendrier dépend ce mois, et quel type de nom doit être retourné.

Modes de calendrier
Mode Signification Valeurs
0 Grégorien - abrégé Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
1 Grégorien January, February, March, April, May, June, July, August, September, October, November, December
2 Julien - abrégé Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
3 Julien January, February, March, April, May, June, July, August, September, October, November, December
4 Juif Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 Républicain français Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Liste de paramètres

jday

Le jour Julien à analyser

calendar

Le calendrier dans lequel on récupère le nom du mois

Valeurs de retour

Le nom du mois pour le jour Julien donné, pour le calendrier calendar.



JDToFrench

(PHP 4, PHP 5)

JDToFrenchConvertit le nombre de jours du calendrier Julien en date du calendrier français républicain

Description

string jdtofrench ( int $juliandaycount )

Convertit le nombre de jours du calendrier julien en date du calendrier français républicain.

Liste de paramètres

julianday

Le numéro du jour Julien, sous la forme d'un entier

Valeurs de retour

La date française républicaine, sous la forme d'une chaîne de caractères "mois/jour/année".

Voir aussi

  • frenchtojd() - Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique



JDToGregorian

(PHP 4, PHP 5)

JDToGregorianConvertit le nombre de jours du calendrier Julien en date grégorienne

Description

string jdtogregorian ( int $julianday )

Convertit le nombre de jours du calendrier Julien en une chaîne contenant une date du calendrier grégorien, au format "mois/jour/année".

Liste de paramètres

julianday

Le numéro du jour Julien, sous la forme d'un entier

Valeurs de retour

La date grégorienne, sous la forme d'une chaîne de caractères "mois/jour/année".

Voir aussi

  • gregoriantojd() - Convertit une date grégorienne en nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique



jdtojewish

(PHP 4, PHP 5)

jdtojewishConvertit le nombre de jours du calendrier Julien en date du calendrier juif

Description

string jdtojewish ( int $juliandaycount [, bool $hebrew = false [, int $fl = 0 ]] )

Convertit le nombre de jours du calendrier Julien en date du calendrier juif.

Les paramètres optionnels hebrew et fl sont disponibles depuis PHP 5.0.0.

Si le paramètre hebrew vaut TRUE, le paramètre fl sera utilisé pour générer une chaîne au format hébreux. Les formats disponibles sont : CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM et CAL_JEWISH_ADD_GERESHAYIM.

Liste de paramètres

julianday

Le nombre de jours Julien, sous la forme d'un entier

Valeurs de retour

La date Juive, sous la forme d'une chaîne de caractères "mois/jour/année".

Historique

Version Description
5.0.0 Les paramètres hebrew et fl ont été ajoutés. Le paramètre fl a été ajouté.
4.3.0 Le paramètre hebrew a été ajouté.

Exemples

Exemple #1 Exemple avec jdtojewish()

<?php
echo jdtojewish(gregoriantojd(1082002), true,
       
CAL_JEWISH_ADD_GERESHAYIM CAL_JEWISH_ADD_ALAFIM CAL_JEWISH_ADD_ALAFIM_GERESH); 
?>

Voir aussi

  • jewishtojd() - Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique



JDToJulian

(PHP 4, PHP 5)

JDToJulianConvertit le nombre de jours du calendrier Julien en date du calendrier Julien

Description

string jdtojulian ( int $julianday )

Convertit le nombre de jours du calendrier Julien en une chaîne contenant la date du calendrier Julien, au format "mois/jour/année".

Liste de paramètres

julianday

Le nombre de jours Julien, sous la forme d'un entier

Valeurs de retour

La date Julien, sous la forme d'une chaîne de caractères "mois/jour/année".

Voir aussi

  • juliantojd() - Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique



jdtounix

(PHP 4, PHP 5)

jdtounixConvertit un jour Julien en timestamp UNIX

Description

int jdtounix ( int $jday )

Retourne un timestamp UNIX correspondant au jour Julien jday ou FALSE si jday n'est pas dans l'intervalle de validité de l'époque UNIX. (années grégoriennes entre 1970 et 2037 ou 2440588 <= jday <= 2465342 .) Le temps retourné est un temps local (et non GMT).

Liste de paramètres

jday

Le nombre de jours Julien, compris entre 2440588 et 2465342.

Valeurs de retour

Le timestamp unix pour le début du jour Julien donné.

Voir aussi

  • unixtojd() - Convertit un timestamp UNIX en un jour Julien



JewishToJD

(PHP 4, PHP 5)

JewishToJDConvertit une date du calendrier Juif en nombre de jours du calendrier Julien

Description

int jewishtojd ( int $month , int $day , int $year )

Bien qu'il soit possible de manipuler des dates à partir de l'an 1 (3761 avant J.C.), une telle utilisation a peu de sens. Le calendrier juif a été utilisé depuis plusieurs dizaines de siècles, mais dans les premiers temps, il n'y avait pas de formule pour déterminer le début du mois. Un nouveau mois commençait quand une nouvelle lune était observée.

Liste de paramètres

month

Le mois, sous la forme d'un nombre entre 1 et 13

day

Le jour, sous la forme d'un nombre entre 1 et 30

year

L'année, sous la forme d'un nombre entre 1 et 9999

Valeurs de retour

Le jour Julien pour la date Juive donnée, sous la forme d'un entier.

Voir aussi

  • jdtojewish() - Convertit le nombre de jours du calendrier Julien en date du calendrier juif
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien



JulianToJD

(PHP 4, PHP 5)

JulianToJDConvertit un jours du calendrier Julien en un nombre de jours du calendrier Julien

Description

int juliantojd ( int $month , int $day , int $year )

Intervalle de validité du calendrier Julien : 4713 avant JC à 9999 après J.C.

Bien qu'il soit possible de manipuler des dates jusqu'en 4713 avant JC, une telle utilisation n'est pas significative. En effet, ce calendrier fut créé en 46 avant J.C., et ses détails ne furent finalisés qu'au plus tôt en 8 après JC, et probablement pas avant le quatrième siècle après JC. De plus, le début de l'année variait suivant les peuples, certains n'acceptant pas janvier comme premier mois de l'année.

Attention

Souvenez-vous, le calendrier courant du système utilisé sur le Web est un calendrier Grégorien. gregoriantojd() peut être utilisé pour convertir ce genre de dates en un nombre de jours du calendrier Julien.

Liste de paramètres

month

Le mois, sous la forme d'un nombre entre 1 (pour Janvier) et 12 (pour Décembre)

day

Le jour, sous la forme d'un nombre entre 1 et 31

year

L'année, sous la forme d'un nombre entre -4713 et 9999

Valeurs de retour

Le jour Julien pour la date Julienne donnée, sous la forme d'un entier.

Voir aussi

  • jdtojulian() - Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien



unixtojd

(PHP 4, PHP 5)

unixtojdConvertit un timestamp UNIX en un jour Julien

Description

int unixtojd ([ int $timestamp = time() ] )

Retourne le jour Julien du timestamp UNIX timestamp (nombre de secondes depuis le 1/1/1970), ou pour le jour courant si timestamp est omis.

Liste de paramètres

timestamp

Un timestamp unix à convertir.

Valeurs de retour

Un nombre de jours Julien, sous la forme d'un entier.

Voir aussi

  • jdtounix() - Convertit un jour Julien en timestamp UNIX


Sommaire

  • cal_days_in_month — Retourne le nombre de jours dans un mois, pour une année et un calendrier donné
  • cal_from_jd — Convertit le nombre de jours Julien en un calendrier spécifique
  • cal_info — Retourne des détails sur un calendrier
  • cal_to_jd — Convertit un calendrier en nombre de jours Julien
  • easter_date — Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée
  • easter_days — Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée
  • FrenchToJD — Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
  • GregorianToJD — Convertit une date grégorienne en nombre de jours du calendrier Julien
  • JDDayOfWeek — Retourne le numéro du jour de la semaine
  • JDMonthName — Retourne le nom du mois
  • JDToFrench — Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
  • JDToGregorian — Convertit le nombre de jours du calendrier Julien en date grégorienne
  • jdtojewish — Convertit le nombre de jours du calendrier Julien en date du calendrier juif
  • JDToJulian — Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
  • jdtounix — Convertit un jour Julien en timestamp UNIX
  • JewishToJD — Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
  • JulianToJD — Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • unixtojd — Convertit un timestamp UNIX en un jour Julien



Date et Heure


Introduction

Ces fonctions vous permettent de récupérer la date et l'heure depuis le serveur où le script PHP s'exécute. Vous pouvez utiliser ces fonctions pour formater la date et l'heure de différentes façons.

Les informations quant à la date et l'heure sont stockées en interne comme nombre sur 64 bits, aussi, toutes les dates imaginables (y compris les dates négatives) sont supportées. L'intervalle va de 292 billions d'années dans le passé, et la même valeur dans le futur.

Note: Gardez à l'esprit que ces fonctions sont indépendantes de la configuration locale de votre système. Assurez-vous donc de prendre en considération l'heure d'été (en utilisant e.g. $date = strtotime('+7 days', $date) et non $date += 7*24*60*60) ainsi que les années bissextiles lorsque vous utilisez ces fonctions.

Note: Les fuseaux horaires référencés dans cette section peuvent être trouvés dans la section Liste des Fuseaux Horaires Supportés.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Note: Récupération de la dernière base de données des fuseaux horaires

La dernière version de la base de données des fuseaux horaires peut être installée via le paquet PECL » timezonedb.

Note: Support DateTime expérimental en PHP 5.1.x

Bien que la classe DateTime (et les fonctions connexes) soit activée par défaut depuis PHP 5.2.0, il est possible d'ajouter un support expérimental dans PHP 5.1.x en utilisant le drapeau suivant lors de la compilation : CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les dates et heures
Nom Défaut Modifiable Historique
date.default_latitude "31.7667" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.default_longitude "35.2333" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.sunrise_zenith "90.583333" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.sunset_zenith "90.583333" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.timezone "" PHP_INI_ALL Disponible depuis PHP 5.1.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

date.default_latitude float

La latitude par défaut.

date.default_longitude float

La longitude par défaut.

date.sunrise_zenith float

L'heure de lever du soleil par défaut.

date.sunset_zenith float

L'heure du coucher du soleil par défaut.

date.timezone string

Avant PHP 5.3.0, c'est le décalage horaire par défaut utilisé pour les fonctions date/heure si la variable d'environnement TZ n'est pas définie ; ce n'est plus le cas depuis 5.3.0. L'ordre est décrit dans la page de documentation de la fonction date_default_timezone_get(). Voir Liste des Fuseaux Horaires Supportés pour une liste complète des décalages horaires supportés.

Note: Les quatre premières options de configuration sont actuellement utilisées uniquement par les fonction date_sunrise() et date_sunset().



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Les constantes DATE_ sont définies depuis PHP 5.1.1 et offrent une représentation standard des dates, qui peut être utilisée avec toutes les fonctions de formatage de date (comme date()).

Les constantes suivantes existent depuis PHP 5.1.2 et spécifient un format retourné par les fonctions date_sunrise() et date_sunset().

SUNFUNCS_RET_TIMESTAMP (entier)
Timestamp
SUNFUNCS_RET_STRING (entier)
Heures:minutes (exemple: 08:02)
SUNFUNCS_RET_DOUBLE (entier)
Heures en tant que nombre à point flottant (exemple 8.75)


La classe DateTime

Introduction

Représentation d'une date et heure.

Synopsis de la classe

DateTime {
/* Constantes */
const string DateTime::ATOM = Y-m-d\TH:i:sP ;
const string DateTime::COOKIE = l, d-M-y H:i:s T ;
const string DateTime::ISO8601 = Y-m-d\TH:i:sO ;
const string DateTime::RFC822 = D, d M y H:i:s O ;
const string DateTime::RFC850 = l, d-M-y H:i:s T ;
const string DateTime::RFC1036 = D, d M y H:i:s O ;
const string DateTime::RFC1123 = D, d M Y H:i:s O ;
const string DateTime::RFC2822 = D, d M Y H:i:s O ;
const string DateTime::RFC3339 = Y-m-d\TH:i:sP ;
const string DateTime::RSS = D, d M Y H:i:s O ;
const string DateTime::W3C = Y-m-d\TH:i:sP ;
/* Méthodes */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTime add ( DateInterval $interval )
public static DateTime createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public DateInterval diff ( DateTime $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public static array getLastErrors ( void )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public DateTime modify ( string $modify )
public static DateTime __set_state ( array $array )
public DateTime setDate ( int $year , int $month , int $day )
public DateTime setISODate ( int $year , int $week [, int $day = 1 ] )
public DateTime setTime ( int $hour , int $minute [, int $second = 0 ] )
public DateTime setTimestamp ( int $unixtimestamp )
public DateTime setTimezone ( DateTimeZone $timezone )
public DateTime sub ( DateInterval $interval )
public DateTime __wakeup ( void )
}

Constantes pré-définies

Types de noeuds DateTime

DateTime::ATOM
DATE_ATOM
Atom (exemple : 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
Cookies HTTP (exemple : Monday, 15-Aug-05 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (exemple : 2005-08-15T15:52:01+0000)
DateTime::RFC822
DATE_RFC822
RFC 822 (exemple : Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (exemple : Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (exemple : Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (exemple : Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (exemple : Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Identique à DATE_ATOM (Depuis PHP 5.1.3)
DateTime::RSS
DATE_RSS
RSS (exemple : Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::W3C
DATE_W3C
World Wide Web Consortium (exemple : 2005-08-15T15:52:01+00:00)

DateTime::add

(PHP 5 >= 5.3.0)

DateTime::add Ajoute une durée à un objet DateTime

Description

Style orienté objet

public DateTime DateTime::add ( DateInterval $interval )

Style procédural

DateTime date_add ( DateTime $object , DateInterval $interval )

Ajoute la durée de l'objet DateInterval à l'objet DateTime.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

interval

Un objet DateInterval

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::add()

Style orienté objet

<?php
$date 
= new DateTime('2000-01-01');
$date->add(new DateInterval('P10D'));
echo 
$date->format('Y-m-d') . "\n";
?>

Style procédural

<?php
$date 
date_create('2000-01-01');
date_add($datedate_interval_create_from_date_string('10 days'));
echo 
date_format($date'Y-m-d');
?>

L'exemple ci-dessus va afficher :

2000-01-11

Exemple #2 Autres exemples avec DateTime::add()

<?php
$date 
= new DateTime('2000-01-01');
$date->add(new DateInterval('PT10H30S'));
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo 
$date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher :

2000-01-01 10:00:30
2007-06-05 04:03:02

Exemple #3 Attention à l'ajout de mois

<?php
$date 
= new DateTime('2000-12-31');
$interval = new DateInterval('P1M');

$date->add($interval);
echo 
$date->format('Y-m-d') . "\n";

$date->add($interval);
echo 
$date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-31
2001-03-03

Notes

DateTime::modify() est une alternative pouvant être utilisée avec PHP 5.2.

Voir aussi



DateTime::__construct

(PHP 5 >= 5.2.0)

DateTime::__constructRetourne un nouvel objet DateTime

Description

Style orienté objet

public DateTime::__construct() ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Style procédural

DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Retourne un nouvel objet DateTime.

Liste de paramètres

time

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Passez NULL ici pour obtenir le temps courant en utilisant le paramètre $timezone.

timezone

Un objet DateTimeZone object representant le fuseau horaire.

Si$timezone est omis, le fuseau horaire actuel sera utilisé.

Note:

Le paramètre $timezone et le fuseau horaire actuels sont ignorés lorsque paramètre $time est un timestamp UNIX (e.g. @946684800) ou précise un fuseau (e.g. 2010-01-28T15:00:00+02:00).

Valeurs de retour

Retourne une nouvelle instance DateTime. Style procédural retourne FALSE en cas d'erreur.

Erreurs / Exceptions

Émet un Exception en cas d'erreur.

Historique

Version Description
5.3.0 Si une date invalide est précisée, une exception est maintenant levée. Auparavant, une erreur était émise.

Exemples

Exemple #1 Exemple avec DateTime::__construct()

Style orienté objet

<?php
try {
    
$date = new DateTime('2000-01-01');
} catch (
Exception $e) {
    echo 
$e->getMessage();
    exit(
1);
}

echo 
$date->format('Y-m-d');
?>

Style procédural

<?php
$date 
date_create('2000-01-01');
if (!
$date) {
    
$e date_get_last_errors();
    foreach (
$e['errors'] as $error) {
        echo 
"$error\n";
    }
    exit(
1);
}

echo 
date_format($date'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2000-01-01

Exemple #2 Autres exemples avec DateTime::__construct()

<?php
// date/time spécifiés dans le fuseau de votre machine
$date = new DateTime('2000-01-01');
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// date/time dans un fuseau précis.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// date/time courants dans le fuseau de votre machine
$date = new DateTime();
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// date/time courants dans un fuseau précis.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Utilisation d'un timestamp Unix. Notez que le résultat est dans le fuseau UTC.
$date = new DateTime('@946684800');
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Valeur non existante
$date = new DateTime('2000-02-30');
echo 
$date->format('Y-m-d H:i:sP') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00

Voir aussi



DateTime::createFromFormat

(PHP 5 >= 5.3.0)

DateTime::createFromFormatRetourne un nouvel objet DateTime formaté

Description

Style orienté objet

public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

Style procédural

DateTime date_create_from_format ( string $format , string $time [, DateTimeZone $timezone ] )

Retourne un nouvel objet DateTime formaté.

Liste de paramètres

format

Le format à utiliser. Voir les options de formattage ci-dessous. Dans le plus part des cas, les mêmes lettres que pour la fonction date() peuvent être utilisées.

Les caractères suivants sont reconnus pour le paramètre format
format character Description Exemple de valeurs analysées
Jour --- ---
d et j Jour du mois, sur 2 chiffres, avec ou sans le zéro initial 01 à 31 ou 1 à 31
D and l Une représentation textuelle du jour De Mon jusqu'à Sun ou de Sunday jusqu'à Saturday
S Préfixe englais du jour du mois, sur 2 caractères. il sera ignoré lors de l'analyse. st, nd, rd ou th.
z Le jour de l'année (en commençant à 0) 0 through 365
Mois --- ---
F et M Une représentation textuelle du mois, comme January ou Sept De January à December ou de Jan à Dec
m et n Une représentation numérique du mois, avec ou sans zéro initial De 01 à 12 ou de 1 à 12
Année --- ---
Y Une représentation complète de l'année, sur 4 chiffres Exemples : 1999 ou 2003
y Une reprensation partielle de l'année, sur 2 chiffres Exemples : 99 ou 03
Heure --- ---
a et A Ante meridiem et Post meridiem am ou pm
g et h L'heure au format 12-heures, avec ou sans zéro initial De 1 à 12 ou de 01 à 12
G et H L'heure au format 24-heures, avec ou sans zéro initial De 0 à 23 ou de 00 à 23
i Les minutes, avec un zéro initial De 00 à 59
s Les secondes, avec un zéro initial De 00 à 59
u Les microsecondes (jusqu'à 6 chiffres) Exemple : 45, 654321
Fuseau horaire --- ---
e, O, P et T L'identifiant du fuseau horaire, ou la différence en heures avec UTC, ou la différence avec UTC avec deux points (:) entre les heures et les minutes, ou l'abbréviation du fuseau horaire Exemples : UTC, GMT, Atlantic/Azores ou +0200 ou +02:00 ou EST, MDT
Date/heure complète --- ---
U Le nombre de secondes depuis l'époque Unix (January 1 1970 00:00:00 GMT) Exemple : 1292177455
Espace et séparateurs --- ---
(espace) Un espace ou une tabulation Exemple :
# Un des symboles de séparation suivants : ;, :, /, ., ,, -, ( ou ) Exemple : /
;, :, /, ., ,, -, ( ou ) Le caractère spécifié. Exemple : -
? Un octet aléatoire Exemple : ^ (Be aware that for UTF-8 characracters you might need more than one ?. In this case, using * is probably what you want instead)
* Octets aléatoires jusqu'au prochain séparateur ou chiffre Exemple : * dans Y-*-d avec la chaîne 2009-aWord-08 trouvera la chaîne aWord
! Réinitialise tous les champs (année, mois, jour, heure, minute, seconde ainsi que les informations quant au fuseau horaire) à l'heure de l'époque Unix Sans le caractère !, tous les champs seront définis à la date et heure courante.
| Réinitialise tous les champs (année, mois, jour, heure, minute, seconde ainsi que les informations quant au fuseau horaire) à l'heure de l'époque Unix s'ils n'ont pas encore été analysés Y-m-d| définira l'année, le mois et le jour avec les informations trouvées dans la chaîne analysée, mais aussi l'heure, les minutes et les secondes à 0.
+ Si le spécifieur de format est présent, les données restantes de la chaîne ne causeront pas une erreur, mais une alerte Utilisez la méthode DateTime::getLastErrors() pour identifier la présence de données restantes.

Les caractères non reconnus dans le format feront échoués l'analyse et un message d'erreur sera ajouté à la structure retournée. Vous pouvez utiliser la méthode DateTime::getLastErrors() pour récupérer les messages d'erreur.

Si format n'est pas composé du caractère ! alors les valeurs de temps générées qui sont absentes de format prendront comme valeur le temps système.

Si format contient le caractère !, alors les valeurs de temps générées qui sont absentes de format ainsi que les valeurs situées à gauche de ! prendront des valeurs mesurées depuis Unix epoch.

Le début de l'époque Unix est le 01/01/1970 à 00:00:00 UTC.

time

Chaîne représentant l'heure.

timezone

Un objet DateTimeZone représentant le fuseau horaire désiré.

Valeurs de retour

Retourne un nouvel objet DateTime ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::createFromFormat()

Style orienté objet

<?php
$date 
DateTime::createFromFormat('j-M-Y''15-Feb-2009');
echo 
$date->format('Y-m-d');
?>

Style procédural

<?php
$date 
date_create_from_format('j-M-Y''15-Feb-2009');
echo 
date_format($date'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2009-02-15

Exemple #2 Autres exemples avec DateTime::createFromFormat()

<?php
echo 'Date courante: ' date('Y-m-d H:i:s') . "\n";

$format 'Y-m-d';
$date DateTime::createFromFormat($format'2009-02-15');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";

$format 'Y-m-d H:i:s';
$date DateTime::createFromFormat($format'2009-02-15 15:16:17');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";

$format 'Y-m-!d H:i:s';
$date DateTime::createFromFormat($format'2009-02-15 15:16:17');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";

$format '!d';
$date DateTime::createFromFormat($format'15');
echo 
"Format: $format; " $date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Date courante: 2010-04-23 10:29:35
Format: Y-m-d; 2009-02-15 10:29:35
Format: Y-m-d H:i:s; 2009-02-15 15:16:17
Format: Y-m-!d H:i:s; 1970-01-15 15:16:17
Format: !d; 1970-01-15 00:00:00

Voir aussi



DateTime::diff

(PHP 5 >= 5.3.0)

DateTime::diffRetourne la différence entre deux objets DateTime

Description

Style orienté objet

public DateInterval DateTime::diff ( DateTime $datetime2 [, bool $absolute = false ] )

Style procédural

DateInterval date_diff ( DateTime $datetime1 , DateTime $datetime2 [, bool $absolute = false ] )

Retourne la différence entre deux objets DateTime.

Liste de paramètres

datetime

La date à comparer.

absolute

Retourner la différence absolue ou non.

Valeurs de retour

L'objet DateInterval représentant la différence entre les 2 dates ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::diff()

Style orienté objet

<?php
$datetime1 
= new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval $datetime1->diff($datetime2);
echo 
$interval->format('%R%a days');
?>

Style procédural

<?php
$datetime1 
date_create('2009-10-11');
$datetime2 date_create('2009-10-13');
$interval date_diff($datetime1$datetime2);
echo 
$interval->format('%R%a days');
?>

L'exemple ci-dessus va afficher :

+2 days

Exemple #2 Comparaison de dates DateTime

Note:

Depuis PHP 5.2.2, les objets DateTime peuvent être comparés grâce aux opérateurs de comparaison.

<?php
$date1 
= new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 $date2);
var_dump($date1 $date2);
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi



DateTime::format

(PHP 5 >= 5.2.0)

DateTime::formatRetourne la date au format demandé

Description

Style orienté objet

public string DateTime::format ( string $format )

Style procédural

string date_format ( DateTime $object , string $format )

Retourne une date formattée selon un format donné.

Liste de paramètres

object

Seulement en style procédural : un objet DateTime retourné par date_create()

format

Format accepté par date().

Valeurs de retour

Retourne la date formatée, en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::format()

Style orienté objet

<?php
$date 
= new DateTime('2000-01-01');
echo 
$date->format('Y-m-d H:i:s');
?>

Style procédural

<?php
$date 
date_create('2000-01-01');
echo 
date_format($date'Y-m-d H:i:s');
?>
?>

L'exemple ci-dessus va afficher :

2000-01-01 00:00:00

Notes

Cette méthode n'utilise pas les locales. Toute sortie est en anglais.

Voir aussi

  • date() - Formate une date/heure locale


DateTime::getLastErrors

(PHP 5 >= 5.3.0)

DateTime::getLastErrorsRetourne les dernières erreurs et alertes

Description

Style orienté objet

public static array DateTime::getLastErrors ( void )

Style procédural

array date_get_last_errors ( void )

Retourne un tableau contenant les dernières erreurs et alertes obtenu lors de l'analyse de la chaîne de date.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les erreurs et alertes.

Exemples

Exemple #1 Exemple avec DateTime::getLastErrors()

Style orienté objet

<?php
try {
    
$date = new DateTime('asdfasdf');
} catch (
Exception $e) {
    
// Juste pour l'exemple...
    
print_r(DateTime::getLastErrors());

    
// Manière orientée objets de gérer les erreurs (exceptions)
    // echo $e->getMessage();
}
?>

Style procédural

<?php
$date 
date_create('asdfasdf');
print_r(date_get_last_errors());
?>

Les exemples ci-dessus vont afficher :

Array
(
    [warning_count] => 1
    [warnings] => Array
        (
            [6] => Double timezone specification
        )

    [error_count] => 1
    [errors] => Array
        (
            [0] => The timezone could not be found in the database
        )

)


DateTime::getOffset

(PHP 5 >= 5.2.0)

DateTime::getOffsetRetourne le décalage horaire

Description

Style orienté objet

public int DateTime::getOffset ( void )

Style procédural

int date_offset_get ( DateTime $object )

Retourne le décalage horaire.

Liste de paramètres

object

Seulement en style procédural : un objet DateTime retourné par date_create()

Valeurs de retour

Retourne le décalage horaire en secondes depuis UTC en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::getOffset()

Style orienté objet

<?php
$winter 
= new DateTime('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York'));

echo 
$winter->getOffset() . "\n";
echo 
$summer->getOffset() . "\n";
?>

Style procédural

<?php
$winter 
date_create('2010-12-21'timezone_open('America/New_York'));
$summer date_create('2008-06-21'timezone_open('America/New_York'));

echo 
$winter->getOffset() . "\n";
echo 
$summer->getOffset() . "\n";
?>

Les exemples ci-dessus vont afficher :

-18000
-14400

Note: -18000 = -5 heures, -14400 = -4 heures.



DateTime::getTimestamp

(PHP 5 >= 5.3.0)

DateTime::getTimestampLit le timestamp Unix

Description

Style orienté objet

public int DateTime::getTimestamp ( void )

Style procédural

int date_timestamp_get ( DateTime $object )

Lit le timestamp Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le timestamp Unix représentant la date.

Exemples

Exemple #1 Exemple avec DateTime::getTimestamp()

Style orienté objet

<?php
$date 
= new DateTime();
echo 
$date->getTimestamp();
?>

Style procédural

<?php
$date 
date_create();
echo 
date_timestamp_get($date);
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

1272509157

Notes

Utiliser U comme paramètre de DateTime::format() est une alternative proposée pour PHP 5.2.

Voir aussi



DateTime::getTimezone

(PHP 5 >= 5.2.0)

DateTime::getTimezoneLit le fuseau horaire d'un objet DateTime

Description

Style orienté objet

public DateTimeZone DateTime::getTimezone ( void )

Style procédural

Retourne le fuseau relatif à un DateTime donné.

Liste de paramètres

object

Seulement en style procédural : un objet DateTime retourné par date_create()

Valeurs de retour

Retourne l'objet DateTimeZone en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::getTimezone()

Style orienté objet

<?php
$date 
= new DateTime(null, new DateTimeZone('Europe/London'));
$tz $date->getTimezone();
echo 
$tz->getName();
?>

Style procédural

<?php
$date 
date_create(nulltimezone_open('Europe/London'));
$tz date_timezone_get($date);
echo 
timezone_name_get($tz);
?>

L'exemple ci-dessus va afficher :

Europe/London

Voir aussi



DateTime::modify

(PHP 5 >= 5.2.0)

DateTime::modifyModifie le timestamp

Description

Style orienté objet

public DateTime DateTime::modify ( string $modify )

Style procédural

DateTime date_modify ( DateTime $object , string $modify )

Modifie le timestamp d'un objet DateTime en l'incrémentant ou le décrémentant dans un format acceptable par strtotime().

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

modify

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version Description
5.3.0Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::modify()

Style orienté objet

<?php
$date 
= new DateTime('2006-12-12');
$date->modify('+1 day');
echo 
$date->format('Y-m-d');
?>

Style procédural

<?php
$date 
date_create('2006-12-12');
date_modify($date'+1 day');
echo 
date_format($date'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2006-12-13

Exemple #2 Méfiez-vous lors de l'ajout ou la soustraction de mois

<?php
$date 
= new DateTime('2000-12-31');

$date->modify('+1 month');
echo 
$date->format('Y-m-d') . "\n";

$date->modify('+1 month');
echo 
$date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-31
2001-03-03

Voir aussi



DateTime::__set_state

(PHP 5 >= 5.2.0)

DateTime::__set_stateLe gestionnaire __set_state

Description

public static DateTime DateTime::__set_state ( array $array )

Le gestionnaire __set_state.

Liste de paramètres

array

Le tableau d'initialisation.

Valeurs de retour

Retourne une nouvelle instance de l'objet DateTime.



DateTime::setDate

(PHP 5 >= 5.2.0)

DateTime::setDateAssigne la date

Description

Style orienté objet

public DateTime DateTime::setDate ( int $year , int $month , int $day )

Style procédural

DateTime date_date_set ( DateTime $object , int $year , int $month , int $day )

Assigne la date courante de l'objet DateTime à une nouvelle date.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

year

Année de la date.

month

Mois de la date.

day

Jour de la date.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version Description
5.3.0Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setDate()

Style orienté objet

<?php
$date 
= new DateTime();
$date->setDate(200123);
echo 
$date->format('Y-m-d');
?>

Style procédural

<?php
$date 
date_create();
date_date_set($date200123);
echo 
date_format($date'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2001-02-03

Exemple #2 Les valeurs qui dépassent leurs bornes sont ajoutées à leur parent

<?php
$date 
= new DateTime();

$date->setDate(2001228);
echo 
$date->format('Y-m-d') . "\n";

$date->setDate(2001229);
echo 
$date->format('Y-m-d') . "\n";

$date->setDate(2001143);
echo 
$date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-02-28
2001-03-01
2002-02-03

Voir aussi



DateTime::setISODate

(PHP 5 >= 5.2.0)

DateTime::setISODateConfigure une date ISO

Description

Style orienté objet

public DateTime DateTime::setISODate ( int $year , int $week [, int $day = 1 ] )

Style procédural

DateTime date_isodate_set ( DateTime $object , int $year , int $week [, int $day = 1 ] )

Configure une date au format ISO 8601 : en utilisant des décalages de semaines et de jours, au lieu de dates spécifiques.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

year

L'année de la date.

week

Le numéro de la semaine.

day

Décalage par rapport au premier jour de la semaine.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version Description
5.3.0Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setISODate()

Style orienté objet

<?php
$date 
= new DateTime();

$date->setISODate(20082);
echo 
$date->format('Y-m-d') . "\n";

$date->setISODate(200827);
echo 
$date->format('Y-m-d') . "\n";
?>

Style procédural

<?php
$date 
date_create();

date_isodate_set($date20082);
echo 
date_format($date'Y-m-d') . "\n";

date_isodate_set($date200827);
echo 
date_format($date'Y-m-d') . "\n";
?>

Les exemples ci-dessus vont afficher :

2008-01-07
2008-01-13

Exemple #2 Les valeurs qui excèdent leur bornes s'ajoutent à leur parent

<?php
$date 
= new DateTime();

$date->setISODate(200827);
echo 
$date->format('Y-m-d') . "\n";

$date->setISODate(200828);
echo 
$date->format('Y-m-d') . "\n";

$date->setISODate(2008537);
echo 
$date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2008-01-13
2008-01-14
2009-01-04

Exemple #3 Calcul du mois dans lequel est une semaine

<?php
$date 
= new DateTime();
$date->setISODate(200814);
echo 
$date->format('n');
?>

Les exemples ci-dessus vont afficher :

3

Voir aussi



DateTime::setTime

(PHP 5 >= 5.2.0)

DateTime::setTimeAssigne l'heure

Description

Style orienté objet

public DateTime DateTime::setTime ( int $hour , int $minute [, int $second = 0 ] )

Style procédural

DateTime date_time_set ( DateTime $object , int $hour , int $minute [, int $second = 0 ] )

Change le temps dans l'objet DateTime.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

hour

Heure du moment.

minute

Minute du moment.

second

Seconde du moment.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version Description
5.3.0Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setTime()

Style orienté objet

<?php
$date 
= new DateTime('2000-01-01');

$date->setTime(1455);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(145524);
echo 
$date->format('Y-m-d H:i:s') . "\n";

?>

Style procédural

<?php
$date 
date_create('2001-01-01');

date_time_set($date1455);
echo 
date_format($date'Y-m-d H:i:s') . "\n";

date_time_set($date145524);
echo 
date_format($date'Y-m-d H:i:s') . "\n";
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

2000-01-01 14:55:00
2000-01-01 14:55:24

Exemple #2 Les valeurs qui dépassent leur borne sont ajoutées à leur parent

<?php
$date 
= new DateTime('2001-01-01');

$date->setTime(145524);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(145565);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(146524);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(255524);
echo 
$date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24

Voir aussi



DateTime::setTimestamp

(PHP 5 >= 5.3.0)

DateTime::setTimestampAssigne la date et l'heure à l'aide d'un timestamp Unix

Description

Style orienté objet

public DateTime DateTime::setTimestamp ( int $unixtimestamp )

Style procédural

DateTime date_timestamp_set ( DateTime $object , int $unixtimestamp )

Assigne la date et l'heure à l'aide d'un timestamp Unix.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

unixtimestamp

Timestamp Unix représentant la date et l'heure.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::setTimestamp()

Style orienté objet

<?php
$date 
= new DateTime();
echo 
$date->format('U = Y-m-d H:i:s') . "\n";

$date->setTimestamp(1171502725);
echo 
$date->format('U = Y-m-d H:i:s') . "\n";
?>

Style procédural

<?php
$date 
date_create();
echo 
date_format($date'U = Y-m-d H:i:s') . "\n";

date_timestamp_set($date1171502725);
echo 
date_format($date'U = Y-m-d H:i:s') . "\n";
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Notes

Pour PHP 5.2, une alternative est de passer un timestamp Unix à DateTime::__construct() comme montré dans l'exemple suivant.

Exemple #2 DateTime::setTimestamp() alternative pour PHP 5.2

<?php
$ts 
1171502725;
$date = new DateTime("@$ts");
echo 
$date->format('U = Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1171502725 = 2007-02-14 20:25:25

Voir aussi



DateTime::setTimezone

(PHP 5 >= 5.2.0)

DateTime::setTimezoneConfigure le fuseau horaire de l'objet DateTime

Description

Style orienté objet

public DateTime DateTime::setTimezone ( DateTimeZone $timezone )

Style procédural

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

timezone

Un objet DateTimeZone représentant le fuseau horaire désiré.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version Description
5.3.0Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setTimeZone()

Style orienté objet

<?php
$date 
= new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";
?>

Style procédural

<?php
$date 
date_create('2000-01-01'timezone_open('Pacific/Nauru'));
echo 
date_format($date'Y-m-d H:i:sP') . "\n";

date_timezone_set($datetimezone_open('Pacific/Chatham'));
echo 
date_format($date'Y-m-d H:i:sP') . "\n";
?>

L'exemple ci-dessus va afficher :

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Voir aussi



DateTime::sub

(PHP 5 >= 5.3.0)

DateTime::sub Soustrait une durée à un objet DateTime

Description

Style orienté objet

public DateTime DateTime::sub ( DateInterval $interval )

Style procédural

DateTime date_sub ( DateTime $object , DateInterval $interval )

Soustrait la durée spécifiée par l'objet DateInterval de l'objet DateTime.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

interval

Un objet DateInterval

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::sub()

Style orienté objet

<?php
$date 
= new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo 
$date->format('Y-m-d') . "\n";
?>

Style procédural

<?php
$date 
date_create('2000-01-20');
date_sub($datedate_interval_create_from_date_string('10 days'));
echo 
date_format($date'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2000-01-10

Exemple #2 Autres exemples avec DateTime::sub()

<?php
$date 
= new DateTime('2000-01-20');
$date->sub(new DateInterval('PT10H30S'));
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo 
$date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher :

2000-01-19 13:59:30
1992-08-15 19:56:58

Exemple #3 Attention à la soustraction de mois

<?php
$date 
= new DateTime('2001-04-30');
$interval = new DateInterval('P1M');

$date->sub($interval);
echo 
$date->format('Y-m-d') . "\n";

$date->sub($interval);
echo 
$date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-03-30
2001-03-02

Notes

DateTime::modify() est une alternative à utiliser avec PHP 5.2.

Voir aussi



DateTime::__wakeup

(PHP 5 >= 5.2.0)

DateTime::__wakeupLe gestionnaire de __wakeup

Description

public DateTime DateTime::__wakeup ( void )

Le gestionnaire de __wakeup.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Initialise un objet DateTime.


Sommaire



La classe DateTimeZone

Introduction

Représentation d'un fuseau horaire.

Synopsis de la classe

DateTimeZone {
/* Constantes */
const integer DateTimeZone::AFRICA = 1 ;
const integer DateTimeZone::AMERICA = 2 ;
const integer DateTimeZone::ANTARCTICA = 4 ;
const integer DateTimeZone::ARCTIC = 8 ;
const integer DateTimeZone::ASIA = 16 ;
const integer DateTimeZone::ATLANTIC = 32 ;
const integer DateTimeZone::AUSTRALIA = 64 ;
const integer DateTimeZone::EUROPE = 128 ;
const integer DateTimeZone::INDIAN = 256 ;
const integer DateTimeZone::PACIFIC = 512 ;
const integer DateTimeZone::UTC = 1024 ;
const integer DateTimeZone::ALL = 2047 ;
const integer DateTimeZone::ALL_WITH_BC = 4095 ;
const integer DateTimeZone::PER_COUNTRY = 4096 ;
/* Méthodes */
public __construct ( string $timezone )
public array getLocation ( void )
public string getName ( void )
public int getOffset ( DateTime $datetime )
public array getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )
public static array listAbbreviations ( void )
public static array listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )
}

Constantes pré-définies

Types de noeuds DateTimeZone

DateTimeZone::AFRICA

Fuseau africain.

DateTimeZone::AMERICA

Fuseau américain.

DateTimeZone::ANTARCTICA

Fuseau antarctique.

DateTimeZone::ARCTIC

Fuseau arctique.

DateTimeZone::ASIA

Fuseau asiatique.

DateTimeZone::ATLANTIC

Fuseau atlantique.

DateTimeZone::AUSTRALIA

Fuseau australien.

DateTimeZone::EUROPE

Fuseau européen.

DateTimeZone::INDIAN

Fuseau indien.

DateTimeZone::PACIFIC

Fuseau pacifique.

DateTimeZone::UTC

Fuseau UTC.

DateTimeZone::ALL

Tous les fuseaux.

DateTimeZone::ALL_WITH_BC

Tous les fuseaux, y compris les anciens.

DateTimeZone::PER_COUNTRY

Fuseaux horaires par pays.


DateTimeZone::__construct

(PHP 5 >= 5.2.0)

DateTimeZone::__constructCrée un nouvel objet DateTimeZone

Description

Style orienté objet

public DateTimeZone::__construct() ( string $timezone )

Style procédural

DateTimeZone timezone_open ( string $timezone )

Crée un nouvel objet DateTimeZone.

Liste de paramètres

timezone

Un des fuseaux horaires.

Valeurs de retour

Retourne un objet DateTimeZone, en cas de succès. Style procédural retourne FALSE en cas d'erreur..

Erreurs / Exceptions

Cette méthode émet une exception Exception, si le fuseau horaire fourni n'est pas reconnu.

Exemples

Exemple #1 Interception des erreurs avec DateTimeZone

<?php
// Gestion des erreurs par interception des exceptions
$timezones = array('Europe/London''Mars/Phobos''Jupiter/Europa');

foreach (
$timezones as $tz) {
    try {
        
$mars = new DateTimeZone($tz);
    } catch(
Exception $e) {
        echo 
$e->getMessage() . '<br />';
    }
}
?>

L'exemple ci-dessus va afficher :

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)



DateTimeZone::getLocation

(PHP 5 >= 5.3.0)

DateTimeZone::getLocationRetourne les informations géographiques d'un fuseau horaire

Description

Style orienté objet

public array DateTimeZone::getLocation ( void )

Style procédural

Retourne les informations géographiques d'un fuseau horaire, comprenant le code du pays, la latitude et la longitude, et commentaires.

Liste de paramètres

object

Seulement en style procédural : un DateTimeZone objet retourné par timezone_open()

Valeurs de retour

Tableau contenant les informations de localisation du fuseau horaire.

Exemples

Exemple #1 Exemple avec DateTimeZone::getLocation()

<?php
$tz 
= new DateTimeZone("Europe/Prague");
print_r($tz->getLocation());
print_r(timezone_location_get($tz));
?>

L'exemple ci-dessus va afficher :

Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] => 
)
Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] => 
)



DateTimeZone::getName

(PHP 5 >= 5.2.0)

DateTimeZone::getNameRetourne le nom du fuseau horaire

Description

Style orienté objet

public string DateTimeZone::getName ( void )

Style procédural

string timezone_name_get ( DateTimeZone $object )

Retourne le nom du fuseau horaire.

Liste de paramètres

object

L'objet DateTimeZone utilisé pour retourner le nom du fuseau.

Valeurs de retour

Un des fuseaux horaires de la liste des fuseaux horaires.



DateTimeZone::getOffset

(PHP 5 >= 5.2.0)

DateTimeZone::getOffsetRetourne le décalage GMT d'un fuseau horaire

Description

Style orienté objet

public int DateTimeZone::getOffset ( DateTime $datetime )

Style procédural

int timezone_offset_get ( DateTimeZone $object , DateTime $datetime )

timezone_offset_get() retourne le décalage horaire par rapport au GMT pour le paramètre datetime. Le décalage GMT est calculé à partir des informations de fuseau horaire contenu dans l'objet DateTime.

Liste de paramètres

object

Seulement en style procédural : un DateTimeZone objet retourné par timezone_open()

datetime

Objet DateTime qui contient la date dont il faut calculer le décalage.

Valeurs de retour

Retourne le décalage horaire, exprimé en secondes, en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTimeZone::getOffset()

<?php
// Crée deux objets fuseau horaire, un pour Taipei (Taiwan) et un pour 
// Tokyo (Japon)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Crée deux objets DateTime qui contiennent le même timestampe Unix,
// mais sont situés dans deux fuseaux horaires différents.
$dateTimeTaipei = new DateTime("now"$dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now"$dateTimeZoneJapan);

// Calcule le décalage horaire GMT pour l'objet $dateTimeTaipei
// mais en utilisant le fuseau horaire de Tokyo
// ($dateTimeZoneJapan).
$timeOffset $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Devrait afficher int(32400) (pour les dates après le Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>



DateTimeZone::getTransitions

(PHP 5 >= 5.2.0)

DateTimeZone::getTransitionsRetourne toutes les transitions d'un fuseau horaire

Description

Style orienté objet

public array DateTimeZone::getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )

Style procédural

array timezone_transitions_get ( DateTimeZone $object [, int $timestamp_begin [, int $timestamp_end ]] )

Liste de paramètres

object

Seulement en style procédural : un DateTimeZone objet retourné par timezone_open()

timestamp_begin

Début du timestamp.

timestamp_end

Fin du timestamp.

Valeurs de retour

Retourne un tableau numérique, contenant des tableaux associatifs avec toutes les transitions, en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Les paramètres optionnels timestamp_begin et timestamp_end ont été ajouté.

Exemples

Exemple #1 Exemple avec timezone_transitions_get()

<?php
$timezone 
= new DateTimeZone("Europe/London");
$transitions $timezone->getTransitions();
print_r(array_slice($transitions03));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [ts]  => -9223372036854775808
             [time] =>  -292277022657-01-27T08:29:52+0000
             [offset] => 3600
            [isdst]  => 1
            [abbr] => BST
         )

    [1] => Array
        (
            [ts]  => -1691964000
            [time] => 1916-05-21T02:00:00+0000
            [offset]  => 3600
            [isdst] => 1
             [abbr] => BST
        )

    [2] => Array
        (
            [ts]  => -1680472800
            [time] => 1916-10-01T02:00:00+0000
            [offset]  => 0
            [isdst] => 
             [abbr] => GMT
        )

)



DateTimeZone::listAbbreviations

(PHP 5 >= 5.2.0)

DateTimeZone::listAbbreviationsRetourne un tableau associatif, décrivant un fuseau horaire

Description

Style orienté objet

public static array DateTimeZone::listAbbreviations ( void )

Style procédural

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec timezone_abbreviations_list()

<?php
$timezone_abbreviations 
DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

Voir aussi



DateTimeZone::listIdentifiers

(PHP 5 >= 5.2.0)

DateTimeZone::listIdentifiersRetourne un tableau numérique de tous les fuseaux horaires

Description

Style orienté objet

public static array DateTimeZone::listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )

Style procédural

array timezone_identifiers_list ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )

Liste de paramètres

what

Une des constantes de classe DateTimeZone.

country

Un code de pays en deux lettres, compatible ISO 3166-1.

Note: Cette option n'est dispoinble que lorsque le paramètre what prend la valeur de DateTimeZone::PER_COUNTRY.

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Ajout des paramètres optionnels what et country.

Exemples

Exemple #1 Exemple avec timezone_identifiers_list()

<?php
$timezone_identifiers 
DateTimeZone::listIdentifiers();
for (
$i=0$i 5$i++) {
    echo 
"$timezone_identifiers[$i]\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Voir aussi


Sommaire



La classe DateInterval

Introduction

Représentation d'un intervalle de dates. Un intervalle stock un nombre fixe de durées (en années, mois, jours, heures, etc.) ou une chaîne relative à une durée dans un format compréhensible par le constructeur de la classe DateTime.

Synopsis de la classe

DateInterval {
/* Propriétés */
public integer $y ;
public integer $m ;
public integer $d ;
public integer $h ;
public integer $i ;
public integer $s ;
public integer $invert ;
public mixed $days ;
/* Méthodes */
public __construct ( string $interval_spec )
public static DateInterval createFromDateString ( string $time )
public string format ( string $format )
}

Propriétés

y

Année.

m

Numéro du mois.

d

Numéro du jour.

h

L'heure.

i

Les minutes.

s

Les secondes.

invert

Vaut 1 si l'intervalle est inversée et 0 sinon. Voir la méthode DateInterval::format().

days

Nombre total de jours de l'intervalle. S'il n'est pas connu, la propriété days vaudra FALSE.


DateInterval::__construct

(PHP 5 >= 5.3.0)

DateInterval::__constructCrée un nouvel objet DateInterval

Description

public DateInterval::__construct() ( string $interval_spec )

Crée un nouvel objet DateInterval.

Liste de paramètres

interval_spec

Spécification d'intervalle.

Le format commence avec la lettre P, pour "period". Chaque durée de la période est représentée par une valeur entière suivie par une désignation de période. Si la durée contient des éléments de temps, cette portion de la spécification est précédée par la lettre T.

Désignation de période interval_spec
Désignation de période Description
Y Années
M Mois
D Jours
W Semaine. Sera converti en jours, aussi, vous ne pouvez pas le combiner avec D.
H Heures
M Minutes
S Secondes

Voici quelques exemples simples. 2 jours sera P2D. 2 secondes sera PT2S. 6 années et 5 minutes sera P6YT5M.

Note:

Les types d'unité doivent être entrés des plus grands aux plus petits. Ainsi, les années doivent être présentes avant les mois, les mois avant les jours, les jours avant les minutes, etc. Aussi, une année et 4 jours doit être représenté comme P1Y4D, et non P4D1Y.

Cette spécification peut également être représentée sous la forme d'une durée. Aussi, une année et 4 jours peut être P0001-00-04T00:00:00. Mais les valeurs de ce format ne peuvent pas exécéder une période donnée (i.e. 25 heures est invalide).

Ces formats sont basés sur la » spécification de durée ISO 8601.

Exemples

Exemple #1 Exemple avec DateInterval

<?php

$interval 
= new DateInterval('P2Y4DT6H8M');
print_r($interval);

?>

L'exemple ci-dessus va afficher :

DateInterval Object
(
    [y] => 2
    [m] => 0
    [d] => 4
    [h] => 6
    [i] => 8
    [s] => 0
    [invert] => 0
    [days] => 0
)

Voir aussi



DateInterval::createFromDateString

(PHP 5 >= 5.3.0)

DateInterval::createFromDateStringConfigure un objet DateInterval à partir des parties d'une chaîne

Description

public static DateInterval DateInterval::createFromDateString ( string $time )

Utilise les analyseurs de dates natifs et configure un objet DateInterval à partir d'une chaîne de caractères.

Liste de paramètres

time

Une date, avec des portions relatives.

Valeurs de retour

Retourne un nouvel objet DateInterval, en cas de succès.



DateInterval::format

(PHP 5 >= 5.3.0)

DateInterval::formatFormate l'intervalle

Description

public string DateInterval::format ( string $format )

Formate l'intervalle.

Liste de paramètres

format

Les caractères suivants sont reconnus dans la chaîne format. Chaque caractère utilisé pour le format doit être préfixé par un signe de pourcentage (%).
Caractère de format Description Valeur d'exemple
% Caractère % littéral %
Y Années, numérique, au moins 2 chiffres avec zéros initiaux 01, 03
y Années, numérique 1, 3
M Mois, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 12
m Mois, numérique 1, 3, 12
D Jours, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 31
d Jours, numérique 1, 3, 31
a Nombre total de jours 4, 18, 8123
H Heures, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 23
h Heures, numérique 1, 3, 23
I Minutes, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 59
i Minutes, numérique 1, 3, 59
S Secondes, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 57
s Secondes, numérique 1, 3, 57
R Signe "-" lorsque négatif, "+" si positif -, +
r Signe "-" lorsque négatif, vide si positif -,

Valeurs de retour

Retourne l'intervalle formaté.

Notes

Note:

La méthode DateInterval::format() ne recalcule pas la retenue dans les chaines de temps ni dans les segments de date. Ce comportement est attendu car il n'est pas possible de dépasser des valeurs comme "32 days" qui pourrait être interprété comme "1 mois et 4 jours" ou "1 mois et 1 jour".

Exemples

Exemple #1 Exemple avec DateInterval

<?php

$interval 
= new DateInterval('P2Y4DT6H8M');
echo 
$interval->format('%d jours');

?>

L'exemple ci-dessus va afficher :

4 jours

Exemple #2 DateInterval et retenue

<?php

$interval 
= new DateInterval('P32D');
echo 
$interval->format('%d jours');

?>

L'exemple ci-dessus va afficher :

32 jours

Exemple #3 DateInterval et DateTime::diff() avec les modificateurs %a et %d

<?php

$january 
= new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval $february->diff($january);

// %a affichera le nombre total de jours...
echo $interval->format('%a jours au total')."\n";

// ...alors que %d n'affichera que le nombre de jours non encore couverts
// dans le mois.
echo $interval->format('%m mois, %d jour');

?>

L'exemple ci-dessus va afficher :

31 jours au total
1 mois, 0 jour


Sommaire



La classe DatePeriod

Introduction

Représentation d'une période de dates.

Synopsis de la classe

DatePeriod implements Traversable {
/* Constantes */
const integer DatePeriod::EXCLUDE_START_DATE = 1 ;
/* Méthodes */
public __construct ( DateTime $start , DateInterval $interval , int $recurrences [, int $options ] )
public __construct ( DateTime $start , DateInterval $interval , DateTime $end [, int $options ] )
public __construct ( string $isostr [, int $options ] )
}

Constantes pré-définies

Types de noeuds DatePeriod

DatePeriod::EXCLUDE_START_DATE

Exclut la date de début, utilisé par DatePeriod::__construct().


DatePeriod::__construct

(PHP 5 >= 5.3.0)

DatePeriod::__constructCrée un nouvel objet DatePeriod

Description

public DatePeriod::__construct() ( DateTime $start , DateInterval $interval , int $recurrences [, int $options ] )
public DatePeriod::__construct() ( DateTime $start , DateInterval $interval , DateTime $end [, int $options ] )
public DatePeriod::__construct() ( string $isostr [, int $options ] )

Crée un nouvel objet DatePeriod.

Liste de paramètres

start

Date de début.

interval

Intervalle.

recurrences

Nombre de récurrences.

end

Date de fin.

isostr

Chaîne contenant l'intervalle ISO.

options

Peut être configuré à DatePeriod::EXCLUDE_START_DATE.


Sommaire



Fonctions Date/Heure


checkdate

(PHP 4, PHP 5)

checkdateValide une date grégorienne

Description

bool checkdate ( int $month , int $day , int $year )

Vérifie la validité d'une date formée par les arguments. Une date est considérée comme valide si chaque paramètre est défini correctement.

Liste de paramètres

month

Le mois doit être compris entre 1 et 12.

day

Le jour doit être un jour autorisé par le mois donné. Les années bissextiles sont prises en comptes.

year

L'année est comprise entre 1 et 32767 inclus.

Valeurs de retour

Retourne TRUE si la date fournie est valide, sinon FALSE.

Exemples

Exemple #1 Exemple avec checkdate()

<?php
var_dump
(checkdate(12312000));
var_dump(checkdate(2292001));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • mktime() - Retourne le timestamp UNIX d'une date
  • strtotime() - Transforme un texte anglais en timestamp



date_add

(PHP 5 >= 5.3.0)

date_addAlias de DateTime::add()

Description

Cette fonction est un alias de : DateTime::add()



date_create_from_format

(PHP 5 >= 5.3.0)

date_create_from_formatAlias de DateTime::createFromFormat()

Description

Cette fonction est un alias de : DateTime::createFromFormat()



date_create

(PHP 5 >= 5.2.0)

date_createAlias de DateTime::__construct()

Description

Cette fonction est un alias de : DateTime::__construct()



date_date_set

(PHP 5 >= 5.2.0)

date_date_setAlias de DateTime::setDate()

Description

Cette fonction est un alias de : DateTime::setDate()



date_default_timezone_get

(PHP 5 >= 5.1.0)

date_default_timezone_get Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script

Description

string date_default_timezone_get ( void )

Cette fonction retourne le décalage horaire en suivant l'ordre de préférences suivant :

  • Lecture du décalage horaire définie en utilisant la fonction date_default_timezone_set() (si elle existe)

  • Lecture de la variable d'environnement TZ (si elle n'est pas vide) (Avant PHP 5.3.0)

  • Lecture de la valeur de l'option de configuration date.timezone (si elle est définie)

  • Interrogation du système d'exploitation (si le système le supporte et l'autorise). Cette interrogation utilise un algorithme qui tente de deviner le décalage horaire. Aussi, le résultat peut ne pas être attendu dans certaine situation. Une alerte est affichée lorsque cette étape est atteinte. Inutile de la rapporter afin qu'elle soit corrigée, mais définissez plutôt date.timezone de façon plus correcte.

Si tout ce qui précède échoue, date_default_timezone_get() retournera le décalage horaire par défaut de UTC.

Valeurs de retour

Retourne une chaîne de caractères.

Historique

Version Description
5.3.0 La variable d'environnement TZ n'est plus utilisée pour deviner le décalage horaire.

Exemples

Exemple #1 Récupération du décalage horaire par défaut

<?php
date_default_timezone_set
('Europe/London');

if (
date_default_timezone_get()) {
    echo 
'date_default_timezone_set : ' date_default_timezone_get() . '<br />';
}

if (
ini_get('date.timezone')) {
    echo 
'date.timezone : ' ini_get('date.timezone');
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

date_default_timezone_set : Europe/London
date.timezone : Europe/London

Exemple #2 Récupération de l'abréviation d'un décalage horaire

<?php
date_default_timezone_set
('America/Los_Angeles');
echo 
date_default_timezone_get() . ' => ' date('e') . ' => ' date('T');
?>

L'exemple ci-dessus va afficher :

America/Los_Angeles => America/Los_Angeles => PST

Voir aussi



date_default_timezone_set

(PHP 5 >= 5.1.0)

date_default_timezone_set Définit le décalage horaire par défaut de toutes les fonctions date/heure

Description

bool date_default_timezone_set ( string $timezone_identifier )

date_default_timezone_set() définit le décalage horaire par défaut utilisé par toutes les fonctions date/heure.

Note:

Depuis PHP 5.1.0 (lorsque les fonctions date/heure ont été écrites), chaque appel à une fonction date/heure génère une E_NOTICE si le décalage horaire n'est pas valide et/ou un message E_WARNING si vous utilisez des configurations système ou la variable d'environnement TZ.

Au lieu d'utiliser cette fonction pour définir le décalage horaire par défaut dans votre script, vous pouvez également utiliser la configuration INI date.timezone.

Liste de paramètres

timezone_identifier

L'identifiant de décalage horaire, comme UTC ou Europe/Lisbon. La liste des identifiants valides est disponible dans le Liste des Fuseaux Horaires Supportés.

Valeurs de retour

Cette fonction retourne FALSE si timezone_identifier n'est pas valide, TRUE sinon.

Exemples

Exemple #1 Récupération du décalage horaire par défaut

<?php
date_default_timezone_set
('America/Los_Angeles');

$script_tz date_default_timezone_get();

if (
strcmp($script_tzini_get('date.timezone'))){
    echo 
'Le décalage horaire du script diffère du décalage horaire défini dans le fichier ini.';
} else {
    echo 
'Le décalage horaire du script est équivalent à celui défini dans le fichier ini.';
}
?>

Historique

Version Description
5.3.0 Émet maintenant une alerte de type E_WARNING plutôt qu'une alerte de type E_STRICT.
5.1.2 La fonction commence à valider le paramètre timezone_identifier.

Voir aussi



date_diff

(PHP 5 >= 5.3.0)

date_diffAlias de DateTime::diff()

Description

Cette fonction est un alias de : DateTime::diff()



date_format

(PHP 5 >= 5.2.0)

date_formatAlias de DateTime::format()

Description

Cette fonction est un alias de : DateTime::format()



date_get_last_errors

(PHP 5 >= 5.3.0)

date_get_last_errorsAlias de DateTime::getLastErrors()

Description

Cette fonction est un alias de : DateTime::getLastErrors()



date_interval_create_from_date_string

(PHP 5 >= 5.3.0)

date_interval_create_from_date_stringAlias de DateInterval::createFromDateString()

Description

Cette fonction est un alias de : DateInterval::createFromDateString()



date_interval_format

(PHP 5 >= 5.3.0)

date_interval_formatAlias de DateInterval::format()

Description

Cette fonction est un alias de : DateInterval::format()



date_isodate_set

(PHP 5 >= 5.2.0)

date_isodate_setAlias de DateTime::setISODate()

Description

Cette fonction est un alias de : DateTime::setISODate()



date_modify

(PHP 5 >= 5.2.0)

date_modifyAlias de DateTime::modify()

Description

Cette fonction est un alias de : DateTime::modify()



date_offset_get

(PHP 5 >= 5.2.0)

date_offset_getAlias de DateTime::getOffset()

Description

Cette fonction est un alias de : DateTime::getOffset()



date_parse_from_format

(PHP 5 >= 5.3.0)

date_parse_from_formatRécupère les informations d'une date donnée suivant un format spécifique

Description

array date_parse_from_format ( string $format , string $date )

Retourne un tableau associatif contenant des informations détaillées sur une date donnée.

Liste de paramètres

format

Format accepté par la fonction DateTime::createFromFormat().

date

Chaîne représentant la date.

Valeurs de retour

Retourne un tableau associatif avec des informations détaillées sur la date donnée.

Exemples

Exemple #1 Exemple avec date_parse_from_format()

<?php
$date 
"6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP"$date));
?>

L'exemple ci-dessus va afficher :

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] => 
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => -60
    [is_dst] => 
)

Voir aussi



date_parse

(PHP 5 >= 5.2.0)

date_parseRetourne un tableau associatif avec des informations détaillées sur une date donnée

Description

array date_parse ( string $date )

Liste de paramètres

date

Date mise en forme acceptée par strtotime().

Valeurs de retour

Retourne un tableau contenant des informations sur la date analysée en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Dans le cas où la fonction retourne une erreur, l'élément "errors" contiendra les messages d'erreur.

Exemples

Exemple #1 Exemple avec date_parse()

<?php
print_r
(date_parse("2006-12-12 10:00:00.5"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] => 
)

Voir aussi



date_sub

(PHP 5 >= 5.3.0)

date_subAlias de DateTime::sub()

Description

Cette fonction est un alias de : DateTime::sub()



date_sun_info

(PHP 5 >= 5.1.2)

date_sun_infoRetourne un tableau avec les informations sur lever/coucher du soleil ainsi que le début et la fin de l'aube

Description

array date_sun_info ( int $time , float $latitude , float $longitude )

Liste de paramètres

time

Timestamp.

latitude

Latitude en degrés.

longitude

Longitude en degrés.

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec date_sun_info()

<?php
$sun_info 
date_sun_info(strtotime("2006-12-12"), 31.766735.2333);
foreach (
$sun_info as $key => $val) {
  echo 
"$key: " date("H:i:s"$val) . "\n";
}
?>

L'exemple ci-dessus va afficher :

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

Voir aussi

  • date_sunrise() - Retourne l'heure de levé du soleil pour un jour et un endroit donnés
  • date_sunset() - Retourne l'heure de coucher du soleil pour un jour et un endroit donnés



date_sunrise

(PHP 5)

date_sunriseRetourne l'heure de levé du soleil pour un jour et un endroit donnés

Description

mixed date_sunrise ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunrise_zenith") [, float $gmt_offset = 0 ]]]]] )

date_sunrise() retourne l'heure de levé du soleil pour un jour (spécifié par le paramètre timestamp) et un endroit donnés.

Liste de paramètres

timestamp

Le timestamp Unix du jour pour lequel l'heure de levé du soleil est donné.

format

Constantes pour le paramètre format
Constante Description Exemple
SUNFUNCS_RET_STRING Retourne le résultat en tant que chaîne de caractères 16:46
SUNFUNCS_RET_DOUBLE Retourne le résultat en tant que nombre décimal 16.78243132
SUNFUNCS_RET_TIMESTAMP Retourne le résultat en tant qu'entier (timestamp) 1095034606

latitude

Par défaut, c'est le Nord. Passez une valeur négative pour le Sud. Voir aussi date.default_latitude.

longitude

Par défaut, c'est l'Est. Passez une valeur négative pour l'Ouest. Voir aussi date.default_longitude.

zenith

Par défaut : date.sunrise_zenith

gmtoffset

Spécifié en heures.

Valeurs de retour

Retourne l'heure de levé du soleil dans un format spécifié en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple avec date_sunrise()

<?php

/* Calcul l'heure du levé du soleil pour Lisbonne, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING38.4, -9901);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon Dec 20 2004, sunrise time : 08:54

Voir aussi

  • date_sunset() - Retourne l'heure de coucher du soleil pour un jour et un endroit donnés



date_sunset

(PHP 5)

date_sunset Retourne l'heure de coucher du soleil pour un jour et un endroit donnés

Description

mixed date_sunset ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunset_zenith") [, float $gmt_offset = 0 ]]]]] )

date_sunset() retourne l'heure de couché du soleil pour un jour (spécifié en tant que timestamp Unix) et un endroit donnés.

Liste de paramètres

timestamp

Le timestamp Unix du jour pour lequel l'heure du couché du soleil est donnée.

format

Constantes pour le paramètre format
Constante Description Exemple
SUNFUNCS_RET_STRING Retourne le résultat sous la forme d'une chaîne de caractères 16:46
SUNFUNCS_RET_DOUBLE Retourne le résultat sous la forme d'un nombre décimal 16.78243132
SUNFUNCS_RET_TIMESTAMP Retourne le résultat sous la forme d'un entier (timestamp) 1095034606

latitude

Par défaut, c'est le Nord. Passez une valeur négative pour le Sud. Voir aussi date.default_latitude.

longitude

Par défaut, c'est l'Est. Passez une valeur négative pour l'Ouest. Voir aussi date.default_longitude.

zenith

Par défaut : date.sunrise_zenith

gmtoffset

Spécifié en heures.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Valeurs de retour

Retourne l'heure de couché du soleil dans un format spécifié ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec date_sunset()

<?php

     
/* Calcul l'heure du couché du soleil pour Lisbonne, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING38.4, -9901);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon Dec 20 2004, sunset time : 18:13

Voir aussi

  • date_sunrise() - Retourne l'heure de levé du soleil pour un jour et un endroit donnés



date_time_set

(PHP 5 >= 5.2.0)

date_time_setAlias de DateTime::setTime()

Description

Cette fonction est un alias de : DateTime::setTime()



date_timestamp_get

(PHP 5 >= 5.3.0)

date_timestamp_getAlias de DateTime::getTimestamp()

Description

Cette fonction est un alias de : DateTime::getTimestamp()



date_timestamp_set

(PHP 5 >= 5.3.0)

date_timestamp_setAlias de DateTime::setTimestamp()

Description

Cette fonction est un alias de : DateTime::setTimestamp()



date_timezone_get

(PHP 5 >= 5.2.0)

date_timezone_getAlias de DateTime::getTimezone()

Description

Cette fonction est un alias de : DateTime::getTimezone()



date_timezone_set

(PHP 5 >= 5.2.0)

date_timezone_setAlias de DateTime::setTimezone()

Description

Cette fonction est un alias de : DateTime::setTimezone()



date

(PHP 4, PHP 5)

dateFormate une date/heure locale

Description

string date ( string $format [, int $timestamp ] )

Retourne une date sous forme d'une chaîne, au format donné par le paramètre format, fournie par le paramètre timestamp ou la date et l'heure courantes si aucun timestamp n'est fourni. En d'autres termes, le paramètre timestamp est optionnel et vaut par défaut la valeur de la fonction time().

Liste de paramètres

format

Le format de la date désirée. Voir les options de formatage ci-dessous. Il existe aussi de nombreuses constantes de dates qui peuvent être utilisées, ce qui fait que DATE_RSS va remplacer le format "D, d M Y H:i:s".

Les caractères suivants sont reconnus dans le paramètre format
Caractères pour le paramètre format Description Exemple de valeurs retournées
Jour --- ---
d Jour du mois, sur deux chiffres (avec un zéro initial) 01 à 31
D Jour de la semaine, en trois lettres (et en anglais) Mon à Sun
j Jour du mois sans les zéros initiaux 1 à 31
l ('L' minuscule) Jour de la semaine, textuel, version longue, en anglais Sunday à Saturday
N Représentation numérique ISO-8601 du jour de la semaine (ajouté en PHP 5.1.0) 1 (pour Lundi) à 7 (pour Dimanche)
S Suffixe ordinal d'un nombre pour le jour du mois, en anglais, sur deux lettres st, nd, rd ou th. Fonctionne bien avec j
w Jour de la semaine au format numérique 0 (pour dimanche) à 6 (pour samedi)
z Jour de l'année 0 à 366
Semaine --- ---
W Numéro de semaine dans l'année ISO-8601, les semaines commencent le lundi (ajouté en PHP 4.1.0) Exemple : 42 (la 42ème semaine de l'année)
Mois --- ---
F Mois, textuel, version longue; en anglais, comme January ou December January à December
m Mois au format numérique, avec zéros initiaux 01 à 12
M Mois, en trois lettres, en anglais Jan à Dec
n Mois sans les zéros initiaux 1 à 12
t Nombre de jours dans le mois 28 à 31
Année --- ---
L Est ce que l'année est bissextile 1 si bissextile, 0 sinon.
o L'année ISO-8601. C'est la même valeur que Y, excepté que si le numéro de la semaine ISO (W) appartient à l'année précédente ou suivante, cette année sera utilisé à la place. (ajouté en PHP 5.1.0) Exemples : 1999 ou 2003
Y Année sur 4 chiffres Exemples : 1999 ou 2003
y Année sur 2 chiffres Exemples : 99 ou 03
Heure --- ---
a Ante meridiem et Post meridiem en minuscules am ou pm
A Ante meridiem et Post meridiem en majuscules AM ou PM
B Heure Internet Swatch 000 à 999
g Heure, au format 12h, sans les zéros initiaux 1 à 12
G Heure, au format 24h, sans les zéros initiaux 0 à 23
h Heure, au format 12h, avec les zéros initiaux 01 à 12
H Heure, au format 24h, avec les zéros initiaux 00 à 23
i Minutes avec les zéros initiaux 00 à 59
s Secondes, avec zéros initiaux 00 à 59
u Microsecondes (ajouté en PHP 5.2.2) Exemple : 654321
Fuseau horaire --- ---
e L'identifiant du fuseau horaire (ajouté en PHP 5.1.0) Exemples : UTC, GMT, Atlantic/Azores
I (i majuscule) L'heure d'été est activée ou pas 1 si oui, 0 sinon.
O Différence d'heures avec l'heure de Greenwich (GMT), exprimée en heures Exemple : +0200
P Différence avec l'heure Greenwich (GMT) avec un deux-points entre les heures et les minutes (ajouté dans PHP 5.1.3) Exemple : +02:00
T Abréviation du fuseau horaire Exemples : EST, MDT ...
Z Décalage horaire en secondes. Le décalage des zones à l'ouest de la zone UTC est négative, et à l'est, il est positif. -43200 à 50400
Date et Heure complète --- ---
c Date au format ISO 8601 (ajouté en PHP 5) 2004-02-12T15:19:21+00:00
r Format de date » RFC 2822 Exemple : Thu, 21 Dec 2000 16:01:07 +0200
U Secondes depuis l'époque Unix (1er Janvier 1970, 0h00 00s GMT) Voir aussi time()

Les caractères non reconnus seront imprimés tels quel. "Z" retournera toujours 0 lorsqu'il est utilisé avec gmdate().

Note:

Sachant que cette fonction n'accepte que des entiers sous la forme de timestamp, le caractère u n'est utile que lors de l'utilisation de la fonction date_format() avec un timestamp utilisateur créé avec la fonction date_create().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formatée. Si une valeur non-numérique est utilisée dans le paramètre timestamp, FALSE sera retourné et une erreur de niveau E_WARNING est émise.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.1.0 L'intervalle de validité d'un timestamp va généralement du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT. (Ces dates correspondent aux valeurs minimales et maximales des entiers 32 bits non-signés). Cependant, avant PHP 5.1.0, cette intervalle va du 01-01-1970 au 19-01-2038 sur quelques systèmes (e.g. Windows).
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

5.1.1 Il y a plusieurs constantes utiles de formats date/heure standards qui peuvent être utilisées pour spécifier le paramètre format.

Exemples

Exemple #1 Exemple avec date()

<?php
// Définit le fuseau horaire par défaut à utiliser. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');


// Affichage de quelque chose comme : Monday
echo date("l");

// Affichage de quelque chose comme : Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Affiche : July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " date("l"mktime(000712000));

/* utilise les constantes dans le paramètre format */
// Affichage de quelque chose comme : Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// Affichage de quelque chose comme : 2000-07-01T00:00:00+00:00
echo date(DATE_ATOMmktime(000712000));
?>

Vous pouvez faire afficher un caractère spécial dans la chaîne de format en le protégeant par un antislash. Si le caractère est lui-même une séquence incluant un antislash, vous devrez protéger aussi l'antislash.

Exemple #2 Protection des caractères dans la fonction date()

<?php
// Affichage de quelque chose comme : Wednesday the 15th
echo date("l \\t\h\e jS");
?>

Il est possible d'utiliser date() et mktime() ensemble pour générer des dates dans le futur ou dans le passé.

Exemple #3 Exemple avec date() et mktime()

<?php
$tomorrow  
mktime(000date("m")  , date("d")+1date("Y"));
$lastmonth mktime(000date("m")-1date("d"),   date("Y"));
$nextyear  mktime(000date("m"),   date("d"),   date("Y")+1);
?>

Note:

Cette méthode est plus sûre que simplement ajouter ou retrancher le nombre de secondes dans une journée ou un mois à un timestamp, à cause des heures d'hiver et d'été.

Voici maintenant quelques exemples de formatage avec date(). Notez que vous devriez échapper tous les autres caractères, car s'ils ont une signification spéciale, ils risquent de produire des effets secondaires indésirables. Notez aussi que les versions futures de PHP peuvent attribuer une signification à des lettres qui sont actuellement inertes. Lorsque vous échappez les caractères, pensez à utiliser des guillemets simples, pour que les séquences \n ne deviennent pas des nouvelles lignes.

Exemple #4 Exemple avec date()

<?php
// Aujourd'hui, le 12 Mars 2001, 5:16:18 pm, Fuseau horaire 
// Mountain Standard Time (MST)
 
$today date("F j, Y, g:i a");                   // March 10, 2001, 5:16 pm
$today date("m.d.y");                           // 03.10.01
$today date("j, n, Y");                         // 10, 3, 2001
$today date("Ymd");                             // 20010310
$today date('h-i-s, j-m-y, it is w Day');       // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today date('\i\t \i\s \t\h\e jS \d\a\y.');     // It is the 10th day (10ème jour du mois).
$today date("D M j G:i:s T Y");                 // Sat Mar 10 17:16:18 MST 2001
$today date('H:m:s \m \e\s\t\ \l\e\ \m\o\i\s'); // 17:16:18 m est le mois
$today date("H:i:s");                           // 17:16:18
?>

Pour formater des dates dans d'autres langues, utilisez les fonctions setlocale() et strftime() au lieu de la fonction date().

Notes

Note:

Pour générer un timestamp à partir d'une représentation de date, vous pouvez utiliser la fonction strtotime(). De plus, certaines bases de données disposent de fonctions pour convertir leurs propres formats de date en timestamp (par exemple, MySQL et sa fonction » UNIX_TIMESTAMP()).

Astuce

Un timestamp représentant le début de la requête est disponible dans la variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.

Voir aussi



getdate

(PHP 4, PHP 5)

getdateRetourne la date/heure

Description

array getdate ([ int $timestamp = time() ] )

Retourne un tableau associatif contenant les informations de date et d'heure du timestamp timestamp lorsqu'il est fourni, sinon, le timestamp de la date/heure courante locale.

Liste de paramètres

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne un tableau associatif contenant les informations de date et d'heure du timestamp timestamp. Les éléments du tableau associatif retourné sont les suivants :

Nom des clés du tableau associatif retourné
Clé Description Exemple de valeur retournée
"seconds" Représentation numérique des secondes 0 à 59
"minutes" Représentation numérique des minutes 0 à 59
"hours" Représentation numérique des heures 0 à 23
"mday" Représentation numérique du jour du mois courant 1 à 31
"wday" Représentation numérique du jour de la semaine courante 0 (pour Dimanche) à 6 (pour Samedi)
"mon" Représentation numérique du mois 1 à 12
"year" Année, sur 4 chiffres Exemples : 1999 ou 2003
"yday" Représentation numérique du jour de l'année 0 à 365
"weekday" Version texte du jour de la semaine Sunday à Saturday
"month" Version texte du mois, comme January ou March January à December
0 Nombre de secondes depuis l'époque Unix, similaire à la valeur retournée par la fonction time() et utilisée par date(). Dépend du système, typiquement de -2147483648 à 2147483647.

Exemples

Exemple #1 Exemple avec getdate()

<?php
$today 
getdate();
print_r($today);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
     [seconds] => 40
     [minutes] => 58
     [hours]   => 21
     [mday]    => 17
     [wday]    => 2
     [mon]     => 6
     [year]    => 2003
     [yday]    => 167
     [weekday] => Tuesday
     [month]   => June
     [0]       => 1055901520
)

Voir aussi

  • date() - Formate une date/heure locale
  • idate() - Formate une date/heure locale en tant qu'entier
  • time() - Retourne le timestamp UNIX actuel
  • setlocale() - Modifie les informations de localisation



gettimeofday

(PHP 4, PHP 5)

gettimeofdayRetourne l'heure actuelle

Description

mixed gettimeofday ([ bool $return_float ] )

C'est une interface avec gettimeofday(2). Elle retourne un tableau associatif qui contient les informations retournées par le système.

Liste de paramètres

return_float

Lorsque défini à TRUE, un nombre décimal est retourné à la place d'un tableau.

Valeurs de retour

Par défaut, un tableau est retourné. Si le paramètre return_float est défini, alors un nombre décimal sera retourné.

Clés du tableau :

  • "sec" : secondes depuis l'époque Unix
  • "usec" : microsecondes
  • "minuteswest" : minutes de décalage par rapport à Greenwich, vers l'Ouest.
  • "dsttime" : type de correction dst

Historique

Version Description
5.1.0 Le paramètre return_float a été ajouté.

Exemples

Exemple #1 Exemple avec gettimeofday()

<?php
print_r
(gettimeofday());

echo 
gettimeofday(true);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [sec] => 1073504408
   [usec] => 238215
   [minuteswest] => 0
   [dsttime] => 1
)

1073504408.23910



gmdate

(PHP 4, PHP 5)

gmdateFormate une date/heure GMT/CUT

Description

string gmdate ( string $format [, int $timestamp ] )

gmdate() est identique à la fonction date(), hormis le fait que le temps retourné est GMT (Greenwich Mean Time).

Liste de paramètres

format

Le format de la date en sortie. Voir les options de formatage pour la fonction date().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formatée. Si une valeur non numérique est utilisée pour le paramètre timestamp, FALSE est retourné et une erreur de niveau E_WARNING sera émise.

Historique

Version Description
5.1.0 L'intervalle de validité d'un timestamp est typiquement depuis le Vendredi 13 Décembre 1901 20:45:54 GMT au 19 Janvier 2038 03:14:07 GMT. (ce qui correspond aux valeurs minimales et maximales d'un entier 32 bits signé). Cependant, avant PHP 5.1.0, cet intervalle était limité de 01-01-1970 à 19-01-2038 sous quelques systèmes (e.g. Windows).
5.1.1 Il y a quelques constants utiles pour les formats standards date/heure qui peuvent être utilisées dans le paramètre format.

Exemples

Exemple #1 Exemple avec gmdate()

Lorsque cette fonction est exécutée en Finlande (GMT +0200), la première ligne ci-dessous affichera "Jan 01 1998 00:00:00", tandis que la seconde affichera "Dec 31 1997 22:00:00".

<?php
echo date("M d Y H:i:s"mktime(000111998));
echo 
gmdate("M d Y H:i:s"mktime(000111998));
?>

Voir aussi

  • date() - Formate une date/heure locale
  • mktime() - Retourne le timestamp UNIX d'une date
  • gmmktime() - Retourne le timestamp UNIX d'une date GMT
  • strftime() - Formate une date/heure locale avec la configuration locale



gmmktime

(PHP 4, PHP 5)

gmmktimeRetourne le timestamp UNIX d'une date GMT

Description

int gmmktime ([ int $hour = gmdate("H") [, int $minute = gmdate("i") [, int $second = gmdate("s") [, int $month = gmdate("n") [, int $day = gmdate("j") [, int $year = gmdate("Y") [, int $is_dst = -1 ]]]]]]] )

Identique à la fonction mktime() excepté le fait que les paramètres passés sont GMT. gmmktime() utilise en interne la fonction mktime(), donc, seuls les temps valides dans la zone locale dérivée peuvent être utilisés.

Comme mktime(), les arguments restants peuvent être ignorés. Ils prendront alors leurs valeurs GMT actuelles.

Liste de paramètres

hour

Le nombre d'heures depuis le début de la journée fixée par les paramètres month, day et year. Les valeurs négatives font références aux heures avant minuit du jour en question. Les valeurs supérieures à 23 font références aux heures associées pour le(s) jour(s) suivant(s).

minute

Le nombre de minutes depuis le début de l'heure hour. Les valeurs négatives font références aux minutes de l'heure précédente. Les valeurs supérieures à 59 font références aux minutes associées pour l'(les) heure(s) suivante(s).

second

Le nombre de secondes depuis le début de la minute minute. Les valeurs négatives font références aux secondes de la minute précédente. Les valeurs supérieures à 59 font références aux secondes associées à la(les) minute(s) suivante(s).

month

Le nombre de mois depuis la fin de l'année précédente. Les valeurs comprises entre 1 et 12 font références aux mois du calendrier normal de l'année en question. Les valeurs inférieures à 1 (y compris les valeurs négatives) font références aux mois de l'année précédente dans l'ordre inverse, aussi, 0 correspond à décembre, -1 à novembre, etc. Les valeurs supérieures à 12 font références au mois correspondant dans l'(les) année(s) suivante(s).

day

Le nombre de jours depuis la fin du mois précédent. Les valeurs comprises entre 1 et 28, 29, 30, 31 (suivant le mois) font références aux jours normaux dans le mois courant. Les valeurs inférieures à 1 (y compris les valeurs négatives) font références aux jours du mois précédent, aussi, 0 correspond au dernier jour du mois précédent, -1, le jour d'avant, etc. Les valeurs supérieures au nombre de jours du mois courant font références aux jours correspondants du(des) mois suivant(s).

year

L'année

is_dst

Les paramètres représentent toujours une date GMT donc, le paramètre is_dst n'influence pas le résultat.

Valeurs de retour

Retourne un timestamp Unix de type entier.

Historique

Version Description
5.1.0 Depuis PHP 5.1.0, le paramètre is_dst est devenu obsolète. Comme résultat, le nouveau gestionnaire de fuseau horaire doit être utilisé à la place.

Exemples

Exemple #1 Exemple avec gmmktime()

<?php
gmmktime
(000111970);  // valide en GMT et l'ouest, invalide à l'est
?>

Voir aussi

  • mktime() - Retourne le timestamp UNIX d'une date
  • date() - Formate une date/heure locale
  • time() - Retourne le timestamp UNIX actuel



gmstrftime

(PHP 4, PHP 5)

gmstrftimeFormate une date/heure GMT/CUT en fonction de la configuration locale

Description

string gmstrftime ( string $format [, int $timestamp = time() ] )

gmstrftime() se comporte exactement comme strftime() hormis le fait que l'heure utilisée est celle de Greenwich (Greenwich Mean Time, GMT). Par exemple, dans la zone Eastern Standard Time (est des USA) est GMT -0500, la première ligne de l'exemple ci-dessous affiche "Dec 31 1998 20:00:00", tandis que la seconde affiche "Jan 01 1999 01:00:00".

Liste de paramètres

format

Voir la description de la fonction strftime().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une chaîne de caractères formatée suivant le format donné par le paramètre timestamp ou la date courante si aucun paramètre timestamp n'est fourni. Les noms des mois, des jours de la semaine et des autres chaînes dépendant d'une localisation donnée, respectent la localisation courante définie par la fonction setlocale().

Exemples

Exemple #1 Exemple avec gmstrftime()

<?php
setlocale
(LC_TIME'en_US');
echo 
strftime("%b %d %Y %H:%M:%S"mktime(2000123198)) . "\n";
echo 
gmstrftime("%b %d %Y %H:%M:%S"mktime(2000123198)) . "\n";
?>

Voir aussi

  • strftime() - Formate une date/heure locale avec la configuration locale



idate

(PHP 5)

idateFormate une date/heure locale en tant qu'entier

Description

int idate ( string $format [, int $timestamp = time() ] )

idate() retourne une nombre formaté avec le format format et représentant le timestamp timestamp ou l'heure courant si timestamp est omis. En d'autres termes, le paramètre timestamp est optionnel et la valeur par défaut est la valeur retournée par la fonction time().

À l'inverse de la fonction date(), idate() accepte juste un caractère comme paramètre format.

Liste de paramètres

format

Les caractères suivants sont reconnus dans la chaîne de caractères du paramètre format
Caractères de format Description
B Temps Internet Swatch Beat
d Le jour du mois
h Heure (format 12 heures)
H Heure (format 24 heures)
i Minutes
I(i, en majuscule) Retourne 1 si l'heure d'été est activée, 0 sinon
L(l, en majuscule) Retourne 1 pour une année bissextile, 0 sinon
m Numéro du mois
s Secondes
t Jour du mois courant
U Secondes depuis l'époque Unix - 1 Janvier 1970 00:00:00 UTC - c'est la même chose que la fonction time()
w Jour de la semaine (0 pour Dimanche)
W Le numéro de semaine de l'année ; selon l'ISO-8601, les semaines débutent le Lundi
y Année sur 1 ou 2 chiffres, voir la note plus bas
Y Année sur 4 chiffres
z Jour de l'année
Z Décalage horaire, en secondes

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne un entier.

Sachant que idate() retourne toujours un entier et qu'il ne peut commencer par 0, idate() peut retourner moins de chiffres que ce dont on pourrait espérer. Voir l'exemple ci-dessous.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple avec idate()

<?php
$timestamp 
strtotime('1st January 2004'); //1072915200

// ceci affiche l'année sur deux chiffres
// néanmoins, vu que ce chiffre va commencer par "0",
// seul "4" sera affiché
echo idate('y'$timestamp);
?>

Voir aussi

  • date() - Formate une date/heure locale
  • getdate() - Retourne la date/heure
  • time() - Retourne le timestamp UNIX actuel



localtime

(PHP 4, PHP 5)

localtimeRécupère l'heure locale

Description

array localtime ([ int $timestamp = time() [, bool $is_associative = false ]] )

localtime() retourne un tableau identique à la structure retournée par la fonction C localtime.

Liste de paramètres

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

is_associative

si défini à FALSE ou ignoré, force localtime() à retourner un tableau à index numérique. S'il est mis à TRUE, localtime() retourne un tableau associatif, avec tous les éléments de la structure C, accessible avec les clés. Les noms des différentes clés du tableau associatif sont les suivants :

  • "tm_sec" : secondes
  • "tm_min" : minutes
  • "tm_hour" : heure
  • "tm_mday" : jour du mois Les mois commencent à 0 (Janvier) à 11 (Décembre) et les jours de la semaine commencent à 0 (Dimanche) à 6 (Samedi).
  • "tm_mon" : mois de l'année, commence par 0 pour Janvier
  • "tm_year" : Année depuis 1900
  • "tm_wday" : Jour de la semaine
  • "tm_yday" : Jour de l'année
  • "tm_isdst" : Est-ce que l'heure d'hiver a pris effet ?

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple avec localtime()

<?php
$localtime 
localtime();
$localtime_assoc localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [8] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)



microtime

(PHP 4, PHP 5)

microtimeRetourne le timestamp UNIX actuel avec les microsecondes

Description

mixed microtime ([ bool $get_as_float ] )

microtime() retourne le timestamp Unix, avec les microsecondes. Cette fonction est uniquement disponible sur les systèmes qui supportent la fonction gettimeofday().

Liste de paramètres

get_as_float

Si utilisé et défini à TRUE, microtime() retournera un nombre à virgule flottante au lieu d'une chaîne de caractères, tel que décrit dans la section des valeurs retournées ci-dessous.

Valeurs de retour

Par défaut, microtime() retourne une chaîne de caractères au format "msec sec", où sec est le temps courant mesuré en nombre de secondes depuis l'époque Unix (1 Janvier 1970, 00:00:00 GMT), et msec est le nombre de microsecondes qui se sont écoulées depuis sec exprimé en secondes.

Si get_as_float est défini à TRUE, alors microtime() retourne un nombre à virgule flottante, qui représente le temps courant, en secondes, depuis l'poque Unix, précis à la microseconde près.

Historique

Version Description
5.0.0 Le paramètre get_as_float a été ajouté.

Exemples

Exemple #1 Durée d'exécution d'un script avec la fonction microtime()

<?php
/**
* Fonction simple identique à celle en PHP 5 qui va suivre
*/
function microtime_float()
{
    list(
$usec$sec) = explode(" "microtime());
    return ((float)
$usec + (float)$sec);
}

$time_start microtime_float();

// Attend pendant un moment
usleep(100);

$time_end microtime_float();
$time $time_end $time_start;

echo 
"Ne rien faire pendant $time secondes\n";
?>

Exemple #2 Durée d'exécution d'un script en PHP 5

<?php
$time_start 
microtime(true);

// Sleep for a while
usleep(100);

$time_end microtime(true);
$time $time_end $time_start;

echo 
"Did nothing in $time seconds\n";
?>

Voir aussi

  • time() - Retourne le timestamp UNIX actuel



mktime

(PHP 4, PHP 5)

mktime Retourne le timestamp UNIX d'une date

Description

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

mktime() retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié.

Les arguments peuvent être omis, de droite à gauche, et tous les arguments manquants sont utilisés avec la valeur courante de l'heure et du jour.

Notes

Note:

Depuis PHP 5.1, lorsqu'appelée sans argument, la fonction mktime() émet une alerte de type E_STRICT : utilisez la fonction time() à la place.

Liste de paramètres

hour

Le nombre d'heures depuis le début de la journée fixée par les paramètres month, day et year. Les valeurs négatives font références aux heures avant minuit du jour en question. Les valeurs supérieures à 23 font références aux heures associées pour le(s) jour(s) suivant(s).

minute

Le nombre de minutes depuis le début de l'heure hour. Les valeurs négatives font références aux minutes de l'heure précédente. Les valeurs supérieures à 59 font références aux minutes associées pour l'(les) heure(s) suivante(s).

second

Le nombre de secondes depuis le début de la minute minute. Les valeurs négatives font références aux secondes de la minute précédente. Les valeurs supérieures à 59 font références aux secondes associées à la(les) minute(s) suivante(s).

month

Le nombre de mois depuis la fin de l'année précédente. Les valeurs comprises entre 1 et 12 font références aux mois du calendrier normal de l'année en question. Les valeurs inférieures à 1 (y compris les valeurs négatives) font références aux mois de l'année précédente dans l'ordre inverse, aussi, 0 correspond à décembre, -1 à novembre, etc. Les valeurs supérieures à 12 font références au mois correspondant dans l'(les) année(s) suivante(s).

day

Le nombre de jours depuis la fin du mois précédent. Les valeurs comprises entre 1 et 28, 29, 30, 31 (suivant le mois) font références aux jours normaux dans le mois courant. Les valeurs inférieures à 1 (y compris les valeurs négatives) font références aux jours du mois précédent, aussi, 0 correspond au dernier jour du mois précédent, -1, le jour d'avant, etc. Les valeurs supérieures au nombre de jours du mois courant font références aux jours correspondants du(des) mois suivant(s).

year

L'année, peut être sur deux ou quatre chiffres, avec des valeurs allant de 0 à 69, correspondant au valeur 2000 à 2069 et 70 à 100, correspondant au valeur 1970 à 2000. Sur les systèmes où time_t un entier signé sur 32bits, ce qui est le plus courant de nos jours, la période valide pour year est quelque part près de 1901 et 2038. Cependant, avant PHP 5.1.0, cette intervalle était limitée de 1970 à 2038 sur quelques systèmes (i.e. Windows).

is_dst

Ce paramètre peut être mis à 1 si l'heure d'hiver est appliquée (DST), 0 si elle ne l'est pas, et -1 (par défaut) si on ne sait pas. Si l'on ne sait pas, PHP tente de le traiter lui-même. Ceci peut occasionner des résultats inattendus (mais néanmoins correct). Quelques temps sont invalides si DST est activé sur les systèmes où PHP fonctionne ou is_dist est défini à 1. Si DST est activé e.g. 2:00, tous les temps entre 2:00 et 3:00 sont invalides et la fonction mktime() retourne une valeur indéfinie (généralement une valeur négative). Quelques systèmes (e.g. Solaris 8) activent DST à minuit, donc, le temps 0:30 du jour lorsque DST est activé est évalué à 23:30 du jour précédent.

Note:

Depuis PHP 5.1.0, ce paramètre est obsolète. Comme résultat, le nouveau gestionnaire de fuseau horaire doit être utilisé à la place.

Valeurs de retour

mktime() retourne un timestamp Unix des arguments donnés. Si les arguments ne sont pas valides, la fonction retournera FALSE (avant PHP 5.1, elle retournait -1).

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.3.0 mktime() lance maintenant une alerte de type E_DEPRECATED si le paramètre is_dst est utilisé.
5.1.0 Le paramètre is_dst est obsolète. Fait que la fonction retourne FALSE en cas d'erreur, au lieu de -1. La fonction a été modifiée pour accepter la valeur zéro comme année, mois ou bien jour.
5.1.0 Lorsqu'appelée sans argument, la fonction mktime() émet une alerte de type E_STRICT. Utilisez la fonction time() à la place.
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple simple avec mktime()

<?php
// Configuration du fuseau horaire. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');

// Affiche : July 1, 2000 est un Saturday
echo "July 1, 2000 est un " date("l"mktime(000712000));

// Affiche quelque chose comme : 2006-04-05T01:02:03+00:00
echo date('c'mktime(123452006));
?>

Exemple #2 Exemple avec mktime()

mktime() est pratique pour faire des calculs de dates et des validations, car elle va automatiquement corriger les valeurs invalides. Par exemple, toutes les lignes suivantes vont retourner la même date : "Jan-01-1998".

<?php
echo date("M-d-Y"mktime(00012321997));
echo 
date("M-d-Y"mktime(0001311997));
echo 
date("M-d-Y"mktime(000111998));
echo 
date("M-d-Y"mktime(0001198));
?>

Exemple #3 Dernier jour du mois suivant

Le dernier jour d'un mois peut être décrit comme le jour "0" du mois suivant, et non pas le jour -1. Les deux exemples suivants vont donner : "Le dernier jour de Février 2000 est: 29".

<?php
$lastday 
mktime(000302000);
echo 
strftime("Le dernier jour de Fevrier 2000 est : %d"$lastday);
$lastday mktime(0004, -312000);
echo 
strftime("Le dernier jour de Fevrier 2000 est : %d"$lastday);
?>

Notes

Attention

Avant PHP 5.1.0, les valeurs négatives des timestamp ne sont pas supportées sous toutes les versions actuelles de Microsoft Windows. De ce fait, l'intervalle valide pour les années est de 1970 à 2038, inclus.

Voir aussi

  • checkdate() - Valide une date grégorienne
  • gmmktime() - Retourne le timestamp UNIX d'une date GMT
  • date() - Formate une date/heure locale
  • time() - Retourne le timestamp UNIX actuel



strftime

(PHP 4, PHP 5)

strftimeFormate une date/heure locale avec la configuration locale

Description

string strftime ( string $format [, int $timestamp = time() ] )

Formate une date et/ou une heure suivant la localisation locale. Les noms des mois, des jours de la semaine mais aussi d'autres chaînes dépendant de la location, respecteront la localisation courante définie par la fonction setlocale().

Tous les caractères modificateurs ne sont pas toujours supportés par toutes les bibliothèques C. Dans ce cas, ils ne seront pas supportés par PHP non plus. De plus, toutes les plates-formes ne supportent pas les timestamps négatifs, et vos dates pourraient être limitées par le début de l'époque Unix. Cela signifie que %e, %T, %R et %D (et peut être d'autres) et les dates antérieures au 1er Janvier 1970 ne fonctionneront pas sous Windows, sur certaines distributions de Linux, et sur certains systèmes d'exploitation. Pour Windows, une liste complète des options de conversion est disponible sur le » site de MSDN.

Liste de paramètres

format

Les caractères suivants sont reconnus dans le paramètre format
format Description Exemple de valeurs retournées
Jour --- ---
%a Nom abrégé du jour de la semaine De Sun à Sat
%A Nom complet du jour de la semaine De Sunday à Saturday
%d Jour du mois en numérique, sur 2 chiffres (avec le zéro initial) De 01 à 31
%e Jour du mois, avec un espace précédant le premier chiffre. L'implémentation Windows est différente, voyez après pour plus d'informations. De 1 à 31
%j Jour de l'année, sur 3 chiffres avec un zéro initial 001 à 366
%u Représentation ISO-8601 du jour de la semaine De 1 (pour Lundi) à 7 (pour Dimanche)
%w Représentation numérique du jour de la semaine De 0 (pour Dimanche) à 6 (pour Samedi)
Semaine --- ---
%U Numéro de la semaine de l'année donnée, en commençant par le premier Lundi comme première semaine 13 (pour la 13ème semaine pleine de l'année)
%V Numéro de la semaine de l'année, suivant la norme ISO-8601:1988, en commençant comme première semaine, la semaine de l'année contenant au moins 4 jours, et où Lundi est le début de la semaine De 01 à 53 (où 53 compte comme semaine de chevauchement)
%W Une représentation numérique de la semaine de l'année, en commençant par le premier Lundi de la première semaine 46 (pour la 46ème semaine de la semaine commençant par un Lundi)
Mois --- ---
%b Nom du mois, abrégé, suivant la locale De Jan à Dec
%B Nom complet du mois, suivant la locale De January à December
%h Nom du mois abrégé, suivant la locale (alias de %b) De Jan à Dec
%m Mois, sur 2 chiffres De 01 (pour Janvier) à 12 (pour Décembre)
Année --- ---
%C Représentation, sur 2 chiffres, du siècle (année divisée par 100, réduit à un entier) 19 pour le 20ème siècle
%g Représentation, sur 2 chiffres, de l'année, compatible avec les standards ISO-8601:1988 (voyez %V) Exemple : 09 pour la semaine du 6 janvier 2009
%G La version complète à quatre chiffres de %g Exemple : 2008 pour la semaine du 3 janvier 2009
%y L'année, sur 2 chiffres Exemple : 09 pour 2009, 79 pour 1979
%Y L'année, sur 4 chiffres Exemple : 2038
Heure --- ---
%H L'heure, sur 2 chiffres, au format 24 heures De 00 à 23
%I Heure, sur 2 chiffres, au format 12 heures De 01 à 12
%l ('L' minuscule) Heure, au format 12 heures, avec un espace précédant de complétion pour les heures sur un chiffre De 1 à 12
%M Minute, sur 2 chiffres De 00 à 59
%p 'AM' ou 'PM', en majuscule, basé sur l'heure fournie Exemple : AM pour 00:31, PM pour 22:23
%P 'am' ou 'pm', en minuscule, basé sur l'heure fournie Exemple : am pour 00:31, pm pour 22:23
%r Identique à "%I:%M:%S %p" Exemple : 09:34:17 PM pour 21:34:17
%R Identique à "%H:%M" Exemple : 00:35 pour 12:35 AM, 16:44 pour 4:44 PM
%S Seconde, sur 2 chiffres De 00 à 59
%T Identique à "%H:%M:%S" Exemple : 21:34:17 pour 09:34:17 PM
%X Représentation de l'heure, basée sur la locale, sans la date Exemple : 03:59:16 ou 15:59:16
%z Soit le décalage horaire depuis UTC, ou son abréviation (suivant le système d'exploitation) Exemple : -0500 ou EST pour l'heure de l'Est
%Z Le décalage horaire ou son abréviation NON fournie par %z (suivant le système d'exploitation) Exemple : -0500 ou EST pour l'heure de l'Est
L'heure et la date --- ---
%c Date et heure préférées, basées sur la locale Exemple : Tue Feb 5 00:45:10 2009 pour le 5 Février 2009 à 12:45:10 AM
%D Identique à "%m/%d/%y" Exemple : 02/05/09 pour le 5 Février 2009
%F Identique à "%Y-%m-%d" (utilisé habituellement par les bases de données) Exemple : 2009-02-05 pour le 5 février 2009
%s Timestamp de l'époque Unix (identique à la fonction time()) Exemple : 305815200 pour le 10 Septembre 1979 08:40:00 AM
%x Représentation préférée de la date, basée sur la locale, sans l'heure Exemple : 02/05/09 pour le 5 Février 2009
Divers --- ---
%n Une nouvelle ligne ("\n") ---
%t Une tabulation ("\t") ---
%% Le caractère de pourcentage ("%") ---

La longueur maximale de ce paramètre est de 1023 caractères.

Avertissement

Contrairement à la norme ISO-9899:1999, Sun Solaris commence avec le Dimanche à 1. Aussi, le format %u ne fonctionnera pas tel que décrit dans ce manuel.

Avertissement

Windows seulement: Le modificateur %e n'est pas supporté sous Windows. Pour calculer la valeur, le modificateur %#d peut être utilisé à la place. L'exemple d'après illustre la manière d'écrire un code cross-plateforme.

Avertissement

Mac OS X uniquement : Le modificateur %P n'est pas supporté sous l'implémentation de Mac OS X de cette fonction.

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une chaîne de caractères formatée suivant le paramètre format donné, en utilisant le paramètre timestamp ou la date locale courante si aucun timestamp n'est fourni. Les noms des mois, des jours de la semaine mais aussi d'autres chaînes dépendant de la location, respecteront la localisation courante définie par la fonction setlocale().

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Vu que la sortie dépend de la bibliothèque C sous-jacente, quelques spécificateurs de conversion ne sont pas supportés. Sous Windows, le fait de fournir un spécificateur de conversion inconnu retournera 5 messages de niveau E_WARNING et retournera FALSE au final. Sous d'autres systèmes d'exploitation, vous ne recevrez aucun message de niveau E_WARNING et la sortie contiendra les spécificateurs non convertis.

Historique

Version Description
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Cet exemple ne fonctionnera que si vous avez les locales respectives installées sur votre système.

Exemple #1 Exemple avec strftime()

<?php
setlocale
(LC_TIME"C");
echo 
strftime("%A");
setlocale(LC_TIME"fi_FI");
echo 
strftime(" in Finnish is %A,");
setlocale(LC_TIME"fr_FR");
echo 
strftime(" in French %A and");
setlocale(LC_TIME"de_DE");
echo 
strftime(" in German %A.\n");
?>

Exemple #2 Exemple au format de date ISO 8601:1988

<?php
/*     December 2002 / January 2003
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Affiche : 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " strftime("%V,%G,%Y"strtotime("12/28/2002")) . "\n";

// Affiche : 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " strftime("%V,%G,%Y"strtotime("12/30/2002")) . "\n";

// Affiche : 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Affiche : 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*     December 2004 / January 2005
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Affiche : 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Affiche : 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Affiche : 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Affiche : 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Exemple #3 %e fonctionnant sous toute plateforme

<?php

// Jan 1 : résultats dans : '%e%1%' (%%, e, %%, %e, %%)
$format '%%e%%%e%%';

// Vérifie sous Windows, pour trouver et remplacer le modificateur %e 
// correctement
if (strtoupper(substr(PHP_OS03)) == 'WIN') {
    
$format preg_replace('#(?<!%)((?:%%)*)%e#''\1%#d'$format);
}

echo 
strftime($format);
?>

Exemple #4 Affiche tous les formats connus ou non.

<?php
// Décrit les formats.
$strftimeFormats = array(
    
'A' => 'Une représentation textuelle complète du jour',
    
'B' => 'Nom du mois complet, basé sur la locale',
    
'C' => 'Représentation sur 2 chiffres de l\'année (année, divisée par 100, tronquée en entier)',
    
'D' => 'Identique à "%m/%d/%y"',
    
'E' => '',
    
'F' => 'Identique à "%Y-%m-%d"',
    
'G' => 'La version complète, sur 4 chiffres de %g',
    
'H' => 'Une représentation sur 2 chiffres de l\'heure au format 24-heures',
    
'I' => 'Une représentation sur 2 chiffres de l\'heure au format 12-heures',
    
'J' => '',
    
'K' => '',
    
'L' => '',
    
'M' => 'Une représentation sur 2 chiffres des minutes',
    
'N' => '',
    
'O' => '',
    
'P' => '"am" ou "pm" (en minuscule) basé sur l\'heure courante',
    
'Q' => '',
    
'R' => 'Identique à "%H:%M"',
    
'S' => 'Une représentation sur 2 chiffres des secondes',
    
'T' => 'Identique à "%H:%M:%S"',
    
'U' => 'Numéro de la semaine pour l\'année courante, en commençant par le premier Dimanche comme première semaine',
    
'V'  => 'ISO-8601:1988 numéro de la semaine de l\'année courante, commençant par la première semaine de l\'année avec au moins 4 jours de semaine, avec le Lundi comme début de semaine',
    
'W' => 'Une représentation numérique de la semaine de l\'année, en commençant par le premier Lundi comme première semaine',
    
'X' => 'Représentation préférée pour l\'heure, basée sur la locale, sans la date',
    
'Y' => 'Une représentation sur 4 chiffres de l\'année',
    
'Z' => 'L\'abréviation du décalage horaire, non fournie par %z (dépend sur système d\'exploitation)',
    
'a' => 'L\'abréviation de la représentation textuelle du jour',
    
'b' => 'L\'abréviation du nom du mois, basée sur la locale',
    
'c' => 'Timestamp préféré basé sur la locale',
    
'd' => 'Jour du mois sur 2 chiffres (avec le zéro initial)',
    
'e' => 'Jour du mois, avec un espace précédent un seul chiffre',
    
'f' => '',
    
'g' => 'Une représentation sur 2 chiffres de l\'année au format ISO-8601:1988 (voir %V)',
    
'h' => 'Abréviation du nom du mois, basée sur la locale (alias de %b)',
    
'i' => '',
    
'j' => 'Jour de l\'année, sur 3 chiffres avec zéro initial',
    
'k' => '',
    
'l' => 'Heure, au format 12-heures, avec un espace précédent un seul chiffre',
    
'm' => 'Une représentation du mois sur 2 chiffres',
    
'n' => 'Un caractère de nouvelle ligne ("\n")',
    
'o' => '',
    
'p' => '"AM" ou "PM" (en majuscule) basé sur l'heure courante',
    '
q' => '',
    '
r' => 'Identique à "%I:%M:%S %p"',
    '
s' => 'Timestamp par rapport à l\'époque Unix',
    
't' => 'Un caractère de tabulation ("\t")',
    
'u' => 'Représentation numérique du jour de la semaine au format ISO-8601',
    
'v' => '',
    
'w' => 'Représentation numérique du jour de la semaine',
    
'x' => 'Représentation préférée de la date, basée sur la locale, sans l\'heure',
    
'y' => 'Représentation de l\'année sur 2 chiffres',
    
'z' => 'Soit le décalage horaire depuis UTC ou son abréviation (suivant le système d\'exploitation)',
    
'%' => 'Un caractère pourcentage ("%")',
);

// Résultats.
$strftimeValues = array();

// 2value les formats tout en supprimant les erreurs.
foreach($strftimeFormats as $format => $description){
    if (
False !== ($value = @strftime("%{$format}"))){
        
$strftimeValues[$format] = $value;
    }
}

// Trouve la valeur la plus longue.
$maxValueLength max(array_map('strlen'$strftimeValues));

// Affiche tous les formats connus.
foreach($strftimeValues as $format => $value){
    echo 
"Format connu : '{$format}' = "str_pad("'{$value}'"$maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Affiche tous les formats non connus.
foreach(array_diff_key($strftimeFormats$strftimeValues) as $format => $description){
    echo 
"Format inconnu : '{$format}'   "str_pad(' '$maxValueLength), ($description " ( {$description} )" ''), "\n";
}

L'exemple ci-dessus va afficher quelque chose de similaire à :

Format connu : 'A' = 'Friday'            ( Une représentation textuelle complète du jour )
Format connu : 'B' = 'December'          ( Nom du mois complet, basé sur la locale )
Format connu : 'H' = '11'                ( Une représentation sur 2 chiffres de l'heure au format 24-heures )
Format connu : 'I' = '11'                ( Une représentation sur 2 chiffres de l'heure au format 12-heures )
Format connu : 'M' = '24'                ( Une représentation sur 2 chiffres des minutes )
Format connu : 'S' = '44'                ( Une représentation sur 2 chiffres des secondes )
Format connu : 'U' = '48'                ( Numéro de la semaine pour l'année courante, en commençant par le premier Dimanche comme première semaine )
Format connu : 'W' = '48'                ( Une représentation numérique de la semaine de l'année, en commençant par le premier Lundi comme première semaine )
Format connu : 'X' = '11:24:44'          ( Représentation préférée pour l'heure, basée sur la locale, sans la date )
Format connu : 'Y' = '2010'              ( Une représentation sur 4 chiffres de l'année )
Format connu : 'Z' = 'GMT Standard Time' ( L'abréviation du décalage horaire, non fournie par %z (dépend sur système d'exploitation )
Format connu : 'a' = 'Fri'               ( L'abréviation de la représentation textuelle du jour )
Format connu : 'b' = 'Dec'               ( L'abréviation du nom du mois, basée sur la locale )
Format connu : 'c' = '12/03/10 11:24:44' ( Timestamp préféré basé sur la locale )
Format connu : 'd' = '03'                ( Jour du mois sur 2 chiffres (avec le zéro initial) )
Format connu : 'j' = '337'               ( Jour de l'année, sur 3 chiffres avec zéro initial )
Format connu : 'm' = '12'                ( Une représentation du mois sur 2 chiffres )
Format connu : 'p' = 'AM'                ( "AM" ou "PM" (en majuscule) basé sur l'heure courante )
Format connu : 'w' = '5'                 ( Représentation numérique du jour de la semaine )
Format connu : 'x' = '12/03/10'          ( Représentation préférée de la date, basée sur la locale, sans l'heure )
Format connu : 'y' = '10'                ( Représentation de l'année sur 2 chiffres )
Format connu : 'z' = 'GMT Standard Time' ( Soit le décalage horaire depuis UTC ou son abréviation (suivant le système d'exploitation) )
Format connu : '%' = '%'                 ( Un caractère pourcentage ("%") )
Format inconnu : 'C'                       ( Représentation sur 2 chiffres de l'année (année, divisée par 100, tronquée en entier) )
Format inconnu : 'D'                       ( Identique à "%m/%d/%y" )
Format inconnu : 'E'
Format inconnu : 'F'                       ( Identique à "%Y-%m-%d" )
Format inconnu : 'G'                       ( La version complète, sur 4 chiffres de %g )
Format inconnu : 'J'
Format inconnu : 'K'
Format inconnu : 'L'
Format inconnu : 'N'
Format inconnu : 'O'
Format inconnu : 'P'                       ( "am" ou "pm" (en minuscule) basé sur l'heure courante )
Format inconnu : 'Q'
Format inconnu : 'R'                       ( Identique à "%H:%M" )
Format inconnu : 'T'                       ( Identique à "%H:%M:%S" )
Format inconnu : 'V'                       ( ISO-8601:1988 numéro de la semaine de l'année  courante, commençant par la première semaine de l'année avec au moins 4  jours de semaine, avec le Lundi comme début de semaine )
Format inconnu : 'e'                       ( Jour du mois, avec un espace précédent un seul chiffre )
Format inconnu : 'f'
Format inconnu : 'g'                       ( Une représentation sur 2 chiffres de l'année au format ISO-8601:1988 (voir %V) )
Format inconnu : 'h'                       ( Abréviation du nom du mois, basée sur la locale (alias de %b) )
Format inconnu : 'i'
Format inconnu : 'k'
Format inconnu : 'l'                       ( Heure, au format 12-heures, avec un espace précédent un seul chiffre )
Format inconnu : 'n'                       ( Un caractère de nouvelle ligne ("\n") )
Format inconnu : 'o'
Format inconnu : 'q'
Format inconnu : 'r'                       ( Identique à "%I:%M:%S %p" )
Format inconnu : 's'                       ( Timestamp par rapport à l'époque Unix )
Format inconnu : 't'                       ( Un caractère de tabulation ("\t") )
Format inconnu : 'u'                       ( Représentation numérique du jour de la semaine au format ISO-8601 )
Format inconnu : 'v'

Notes

Note: %G et %V, qui sont basées sur la semaine ISO 8601:1988, peut conduire à des résultat inattendus (bien que corrects) si le système de numérotation n'est pas connu. Voir l'exemple %V de cette page.

Voir aussi



strptime

(PHP 5 >= 5.1.0)

strptime Analyse une date générée par strftime()

Description

array strptime ( string $date , string $format )

strptime() retourne un tableau après avoir analysé date, ou FALSE en cas d'erreur.

Les noms des mois et jour de la semaine dépendent de la configuration locale, choisie avec setlocale() (LC_TIME).

Liste de paramètres

date (string)

La chaîne à analyser (e.g. retournée par strftime())

format (string)

Le format utilisé par date (e.g. le même que celui qui a été utilisé par strftime()).

Pour plus d'informations sur les spécificateurs de formats, voyez la fonction strftime().

Valeurs de retour

Retourne un tableau ou FALSE si une erreur survient.

Les paramètres suivants sont retournés dans le tableau
Paramètres Description
"tm_sec" Secondes après la minute (0-61)
"tm_min" Minutes après l'heure (0-59)
"tm_hour" Heure depuis minuit (0-23)
"tm_mday" Jour du mois (1-31)
"tm_mon" Mois depuis janvier (0-11)
"tm_year" Années depuis 1900
"tm_wday" Jours depuis dimanche (0-6)
"tm_yday" Jours depuis le 1er janvier (0-365)
"unparsed" La partie de date qui n'a pas été reconnue par l'analyseur avec le format spécifié.

Exemples

Exemple #1 Exemple avec strptime()

<?php
$format 
'%d/%m/%Y %H:%M:%S';
$strf strftime($format);

echo 
"$strf\n";

print_r(strptime($strf$format));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

Notes

Note: Cette fonction n'est pas implémentée sous Windows.

Note:

En interne, cette fonction appèle la fonction strptime() fournie par la bibliothèque système C. Cette fonction a des comportements bien différents suivants les systèmes d'exploitation. L'utilisation de la fonction date_parse_from_format(), qui elle, ne souffre pas de ces défauts, est recommandée depuis PHP 5.3.0 et suivants.

Note:

"tm_sec" inclut toutes les secondes intercalaires (acutellement 2 par an). Pour plus d'informations sur les secondes intercalaires, repportez-vous à l'» article sur Wikipedia les concernant.

Note:

Avant PHP 5.2.0, cette fonction pouvait avoir un comportement imprévisible, notamment concernant "tm_sec", "tm_min" et "tm_hour" qui pouvaient retourner des valeurs non définies.

Voir aussi

  • checkdate() - Valide une date grégorienne
  • strftime() - Formate une date/heure locale avec la configuration locale



strtotime

(PHP 4, PHP 5)

strtotimeTransforme un texte anglais en timestamp

Description

int strtotime ( string $time [, int $now ] )

strtotime() essaye de lire une date au format anglais dans la chaîne time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC), relativement au timestamp now, ou à la date courante si ce dernier est omis.

Cette fonction devrait utiliser la variable d'environnement TZ (si disponible) pour calculer le timestamp. Depuis PHP 5.1.0, il y a une façon simple de définir un fuseau horaire à utiliser avec toutes les fonctions de date/heure. Le processus est expliqué dans la page du manuel de la fonction date_default_timezone_get().

Liste de paramètres

time

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

now

Le timestamp, représentant la date courante, utilisé pour le calcul relative des dates.

Valeurs de retour

Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.3.0 Avant PHP 5.3.0, 24:00 n'était pas un format valide et strtotime() retournait FALSE.
5.2.7 En PHP 5 avant 5.2.7, demander le jour de la semaine correspondant au premier jour du mois ajoute de manière incorrecte une semaine au timestamp retourné. Ceci a été corrigé dans PHP 5.2.7 et supérieur.
5.1.0 La fonction retourne maintenant FALSE en cas d'échec, au lieu de -1.
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

5.0.2 En PHP 5 jusqu'à 5.0.2, "now" et les autres temps relatifs sont mal calculés depuis minuit d'aujourd'hui. Dans les autres versions, le calcul est correct.
5.0.0 Les microsecondes sont acceptées mais ignorées.
4.4.0 En PHP avant 4.4.0, "next" est mal calculé et considère +2. Une solution typique à ce problème est d'utiliser "+1".

Exemples

Exemple #1 Exemple avec strtotime()

<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?>

Exemple #2 Vérification d'erreur

<?php
$str 
'Pas bon';

// Avant PHP 5.1.0, vous devez comparer avec  -1, au lieu de false
if (($timestamp strtotime($str)) === false) {
   echo 
"La chaîne ($str) est boguée";
} else {
   echo 
"$str == " date('l dS \o\f F Y h:i:s A'$timestamp);
}
?>

Notes

Note:

Si le chiffre des années est précisé sur deux chiffres, les valeurs entre 00-69 correspondent à 2000-2069 et 70-99 à 1970-1999. Voyez les notes après concernant les différences possibles entres systèmes 32bits (des dates peuvent échoué après le 19/01/2038 à 03:14:07).

Note:

L'intervalle de validité d'un timestamp va du Vendredi 13 Décembre 1901 20:45:54 UTC au Mardi 19 Janvier 2038 03:14:07 UTC. (Cela correspond aux dates maximales et minimales pour un entier de 32 bits signé.) Toutes les plates-formes ne supportent pas les timestamp négatifs et dans ce cas, l'intervalle de date sera limitée à environs l'époque Unix. Cela signifie que les dates antérieures au 1 Janvier 1970 ne fonctionneront pas sous Windows, quelques distributions Linux et quelques autres systèmes. PHP 5.1.0 ainsi que les versions plus récentes outrepassent cette limitation.

Note:

Les dates aux formats m/d/y ou d-m-y formats sont analysées en regardant le séparateur entre les différentes parties: si le séparateur est un slash (/), alors le format américain m/d/y est supposé; si le séparateur est un tiret (-) ou un point (.), alors le format Européen d-m-y sera supposé.

Pour éviter des ambiguïtés éventuelles, le mieux est d'utiliser le format ISO 8601 (YYYY-MM-DD) ou encore DateTime::createFromFormat() lorsque possible.

Voir aussi



time

(PHP 4, PHP 5)

timeRetourne le timestamp UNIX actuel

Description

int time ( void )

time() retourne l'heure courante, mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT).

Exemples

Exemple #1 Exemple avec time()

<?php
$nextWeek 
time() + (24 60 60);
// 7 jours; 24 heures; 60 minutes; 60secondes
echo 'Aujourd\'hui :       'date('Y-m-d') ."\n";
echo 
'Semaine prochaine : 'date('Y-m-d'$nextWeek) ."\n";
// ou en utilisant strtotime():
echo 'Semaine prochaine : 'date('Y-m-d'strtotime('+1 week')) ."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Aujourd'hui :       2005-03-30
Semaine prochaine : 2005-04-06
Semaine prochaine : 2005-04-06

Notes

Astuce

Un timestamp représentant le début de la demande est disponible dans la variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.

Voir aussi

  • date() - Formate une date/heure locale
  • microtime() - Retourne le timestamp UNIX actuel avec les microsecondes



timezone_abbreviations_list

(PHP 5 >= 5.1.0)

timezone_abbreviations_listAlias de DateTimeZone::listAbbreviations()

Description

Cette fonction est un alias de : DateTimeZone::listAbbreviations()



timezone_identifiers_list

(PHP 5 >= 5.1.0)

timezone_identifiers_listAlias de DateTimeZone::listIdentifiers()

Description

Cette fonction est un alias de : DateTimeZone::listIdentifiers()



timezone_location_get

(PHP 5 >= 5.3.0)

timezone_location_getAlias de DateTimeZone::getLocation()

Description

Cette fonction est un alias de : DateTimeZone::getLocation()



timezone_name_from_abbr

(PHP 5 >= 5.1.3)

timezone_name_from_abbrRetourne le nom du fuseau horaire à partir de son abréviation

Description

string timezone_name_from_abbr ( string $abbr [, int $gmtOffset = -1 [, int $isdst = -1 ]] )

Liste de paramètres

abbr

Abréviation du fuseau horaire.

gmtOffset

Décalage à partir du GMT en seconde. La valeur par défaut est -1 ce qui signifie que le premier fuseau horaire trouvé correspondant à abbr est retourné. Autrement, le décalage exact est recherché et seulement s'il n'est pas trouvé alors le premier fuseau horaire avec n'importe quel décalage est retourné.

isdst

Indicateur d'heure d'été/heure d'hiver. Par défaut -1 qui signifie que le décalage heure d'été/heure d'hiver n'est pas pris en compte dans la recherche même si le fuseau le gère. Si mis à 1, alors le gmtOffset est supposé comprendre le décalage heure d'été /heure d'hiver; si 0 alors gmtOffset est supposé représenter un décalage ne prennant pas en compte l'heure d'été/hiver. Si abbr n'existe pas alors le fuseau horaire est cherché uniquement au moyen de gmtOffset et isdst.

Valeurs de retour

Retourne un nom de fuseau horaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec timezone_name_from_abbr()

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo 
timezone_name_from_abbr(""36000) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Europe/Berlin
Europe/Paris

Voir aussi



timezone_name_get

(PHP 5 >= 5.1.0)

timezone_name_getAlias de DateTimeZone::getName()

Description

Cette fonction est un alias de : DateTimeZone::getName()



timezone_offset_get

(PHP 5 >= 5.1.0)

timezone_offset_getAlias de DateTimeZone::getOffset()

Description

Cette fonction est un alias de : DateTimeZone::getOffset()



timezone_open

(PHP 5 >= 5.1.0)

timezone_openAlias de DateTimeZone::__construct()

Description

Cette fonction est un alias de : DateTimeZone::__construct()



timezone_transitions_get

(PHP 5 >= 5.2.0)

timezone_transitions_getAlias de DateTimeZone::getTransitions()

Description

Cette fonction est un alias de : DateTimeZone::getTransitions()



timezone_version_get

(PHP 5 >= 5.3.0)

timezone_version_get Lit la version de la timezonedb

Description

string timezone_version_get ( void )

timezone_version_get() lit la version de la timezonedb.

Valeurs de retour

Retourne une chaîne de caractères.

Exemples

Exemple #1 Lecture de la version de la timezonedb

<?php
echo timezone_version_get();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2009.7


Sommaire



Formats supportés de temps et de dates

Sommaire

Cette section explique tous les formats accéptés par strtotime(), DateTime et date_create(). Les formats sont groupés par sections. Dans la plupart des cas les formats de sections différentes peuvent être utilisés dans la même chaine date/time. Pour chaque format supporté, un ou plusieurs exemples sont données ainsi qu'une description du format en question. Les caractères entre guillemets simples pour les formats sont insensibles à la casse ('t' pourrait s'écrire t ou T), les caractères écrits entre guillemets doubles, eux, sont sensibles à la casse ("T" et seulement T).


Formats pour les temps (Time)

Symboles utilisés
Description Formats Exemples
frac . [0-9]+ ".21342", ".85"
hh "0"?[1-9] | "1"[0-2] "04", "7", "12"
HH [01][0-9] | "2"[0-4] "04", "7", "19"
méridien [AaPp] .? [Mm] .? [\0\t ] "A.m.", "pM", "am."
MM [0-5][0-9] "00", "12", "59"
II [0-5][0-9] "00", "12", "59"
espace [ \t]  
tz "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+ "CEST", "Europe/Amsterdam", "America/Indiana/Knox"
tzcorrection "GMT"? [+-] hh ":"? MM? "+0400", "GMT-07:00", "-07:00"
Notation 12 heures
Description Format Examples
Heures seules, avec méridien hh espace? méridien "4 am", "5PM"
Heures et minutes, avec méridien hh [.:] MM space? méridien "4:08 am", "7:19P.M."
Heures, minutes et secondes avec méridien hh [.:] MM [.:] II espace? méridien "4:08:37 am", "7:19:19P.M."
MS SQL (Heures, minutes, secondes et fraction avec méridien), PHP 5.3 et plus uniquement hh ":" MM ":" II [.:] [0-9]+ meridian "4:08:39:12313am"
Notation 24 heures
Description Format Exemples
Heures et minutes 't'? HH [.:] MM "04:08", "19.19", "T23:43"
Heures et minutes, sans double-points 't'? HH MM "0408", "t1919", "T2343"
Heures, minutes et secondes 't'? HH [.:] MM [.:] II "04.08.37", "t19:19:19"
Heures, minutes et secondes, sans double-points 't'? HH MM II "040837", "T191919"
Heures, minutes, secondes et fuseau 't'? HH [.:] MM [.:] II space? ( tzcorrection | tz ) "040837CEST", "T191919-0700"
Heures, minutes, secondes et fraction 't'? HH [.:] MM [.:] II frac "04.08.37.81412", "19:19:19.532453"
Information de fuseau horaire tz | tzcorrection "CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"


Formats de dates

Symboles utilisés
Description Format Exemples
suffixe des jours "st" | "nd" | "rd" | "th"  
dd ([0-2]?[0-9] | "3"[01]) daysuf? "7th", "22nd", "31"
DD "0" [0-9] | [1-2][0-9] | "3" [01] "07", "31"
m 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII"  
M 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec'  
mm "0"? [0-9] | "1"[0-2] "0", "04", "7", "12"
MM "0" [0-9] | "1"[0-2] "00", "04", "07", "12"
y [0-9]{1,4} "00", "78", "08", "8", "2008"
yy [0-9]{2} "00", "08", "78"
YY [0-9]{4} "2000", "2008", "1978"
Notations localisées
Description Format Exemples
Mois américain et jour mm "/" dd "5/12", "10/27"
Mois américain, jour et année mm "/" dd "/" y "12/22/78", "1/17/2006", "1/17/6"
Année sur quatre chiffres, mois et jour avec slashs YY "/" mm "/" dd "2008/6/30", "1978/12/22"
Année sur quatre chiffres et mois (GNU) YY "-" mm "2008-6", "2008-06", "1978-12"
Année, mois et jour avec tirets y "-" mm "-" dd "2008-6-30", "78-12-22", "8-6-21"
Jour, mois et année sur quatre chiffres, avec des points, des tabulations ou des tirets dd [.\t-] mm [.-] YY "30-6-2008", "22.12\t1978"
Jour, mois et année sur deux chiffres, avec des points ou des tabulations dd [.\t] mm "." yy "30.6.08", "22\t12\t78"
Jour, mois textuel et année dd ([ \t.-])* m ([ \t.-])* y "30-June 2008", "22DEC78", "14 III 1879"
Mois textuel et année sur quatre chiffres (le jour sera le 1) m ([ \t.-])* YY "June 2008", "DEC1978", "March 1879"
Année sur quatre chiffres et mois textuel (le jour sera le 1) YY ([ \t.-])* m "2008 June", "1978-XII", "1879.MArCH"
Mois textuel, jour et année m ([ .\t-])* dd [,.stndrh\t ]+ y "July 1st, 2008", "April 17, 1790", "May.9,78"
Mois textuel et jour m ([ .\t-])* dd [,.stndrh\t ]* "July 1st,", "Apr 17", "May.9"
Jour et mois textuel d ([ .\t-])* m "1 July", "17 Apr", "9.May"
Mois abrégé, jour et année M "-" DD "-" y "May-09-78", "Apr-17-1790"
Année, mois abrégé et jour y "-" M "-" DD "78-Dec-22", "1814-MAY-17"
Année (et juste l'année) YY "1978", "2008"
Mois textuel (et juste le mois) m "March", "jun", "DEC"
Notations ISO8601
Description Format Exemples
Année sur huit chiffres, mois et jour YY MM DD "15810726", "19780417", "18140517"
Année sur quatre chiffres, mois et jour avec des slashes YY "/" MM "/" DD "2008/06/30", "1978/12/22"
Année sur deux chiffres, mois et jour avec des tirets yy "-" MM "-" DD "08-06-30", "78-12-22"
Année sur quatre chiffres avec un signe optionnel, mois et jour [+-]? YY "-" MM "-" DD "-0002-07-26", "+1978-04-17", "1814-05-17"

Note:

Pour les formats y et yy , les années avant 100 sont considérées d'une manière spéciale lorsque les symboles y ou yy sont utilisés. Si l'année est comprise entre 0 (inclusif) et 69 (inclusif), 2000 sont ajoutés. Si l'année est comprise entre 70 (inclusif) et 99 (inclusif) alors 1900 sont ajoutés. Cela signifie que "00-01-01" est interprété comme "2000-01-01".

Note:

Le format "Jour, mois et année sur deux chiffres avec tabulations ou points" (dd [.\t] mm "." yy) ne fonctionne que pour des valeurs d'années de 61 (inclusif) à 99 (inclusif) - en dehors de ces bornes le format du temps "HH [.:] MM [.:] SS" a une precédence plus forte et primera.

Note:

Le format "Année (et juste l'année)" ne fonctionne que si la chaine qui représente le temps a déja été trouvée, sinon le format est reconnu comme HH MM.

Note:

Il est possible d'ajouter ou soustraire une retenue pour les formats dd et DD. Le jour 0 signifie le dernier jour du mois précédent les retenues positives compteront le mois suivant. Ainsi, "2008-08-00" est équivalent à "2008-07-31" et "2008-06-31" est équivalent à "2008-07-01" (Juin ne possède que 30 jours).

Il est aussi possible de jouer avec les retenues des formats mm et MM grâce à la valeur 0. Une valeur de mois de 0 signifie Décembre de l'année précédente. Par exemple "2008-00-22" est équivalent à "2007-12-22".

Si vous combinez les deux notions précédentes et utilisez une retenue négative sur le jour et le mois, alors il se passe ceci: "2008-00-00" est converti d'abord vers "2007-12-00" puis vers "2007-11-30". Ceci arrive aussi avec la chaine "0000-00-00" qui est alors tranformée vers "-0001-11-30" (l'année -1 dans le calendrier ISO 8601, qui est 2 BC dans le calendrier Gregorien).



Formats composés

Symboles utilisés
Description Formats Exemples
DD "0" [0-9] | [1-2][0-9] | "3" [01] "02", "12", "31"
doy "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6] "36"[0-6] "000", "012", "366"
frac . [0-9]+ ".21342", ".85"
hh "0"?[1-9] | "1"[0-2] "04", "7", "12"
HH [01][0-9] | "2"[0-4] "04", "7", "19"
méridien [AaPp] .? [Mm] .? [\0\t ] "A.m.", "pM", "am."
ii [0-5][0-9] "04", "8", "59"
II [0-5][0-9] "04", "08", "59"
M 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec'  
MM [0-5][0-9] "00", "12", "59"
espace [ \t]  
ss [0-5][0-9] "04", "8", "59"
SS [0-5][0-9] "04", "08", "59"
W "0"[1-9] | [1-4][0-9] | "5"[0-3] "05", "17", "53"
tzcorrection "GMT"? [+-] hh ":"? MM? "+0400", "GMT-07:00", "-07:00"
YY [0-9]{4} "2000", "2008", "1978"
Notations localisées
Description Format Exemples
Format de log commun dd "/" M "/" YY : HH ":" II ":" SS space tzcorrection "10/Oct/2000:13:55:36 -0700"
EXIF YY ":" MM ":" DD " " HH ":" II ":" SS "2008:08:07 18:11:31"
Année ISO avec semaine ISO YY "-"? "W" W "2008W27", "2008-W28"
Année ISO avec semaine ISO et jour YY "-"? "W" W "-"? [0-7] "2008W273", "2008-W28-3"
MySQL YY "-" MM "-" DD " " HH ":" II ":" SS "2008-08-07 18:11:31"
PostgreSQL: Année avec jour de l'année YY "."? doy "2008.197", "2008197"
SOAP YY "-" MM "-" DD "T" HH ":" II ":" SS frac tzcorrection? "2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"
Unix Timestamp "@" "-"? [0-9]+ "@1215282385"
XMLRPC YY MM DD "T" hh ":" II ":" SS "20080701T22:38:07", "20080701T9:38:07"
XMLRPC (Compact) YY MM DD 't' hh II SS "20080701t223807", "20080701T093807"
WDDX YY "-" mm "-" dd "T" hh ":" ii ":" ss "2008-7-1T9:3:37"

Note:

Le "W" dans les formats "Année ISO avec semaine ISO" et "Année ISO avec semaine ISO et jour" est sensible à la casse, vous ne pouvez utiliser que la majuscule "W".

Le "T" dans les formats SOAP, XMRPC et WDDX est sensible à la casse, utilisez toujours la majuscule "T".



Formats relatifs

Symboles utilisés
Description Format
nom du jour 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
textes relatifs aux jours 'weekday' | 'weekdays'
nombre [+-]?[0-9]+
ordinal 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
textes relatifs 'next' | 'last' | 'previous' | 'this'
espace [ \t]+
unité (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext
Notations basées sur le jour
Format Description Exemples
'yesterday' Minuit d'hier "yesterday 14:00"
'midnight' Le temps est affecté à 00:00:00  
'today' Le temps est affecté à 00:00:00  
'now' Maintenant  
'noon' Le temps est affecté à 12:00:00 "yesterday noon"
'tomorrow' Minuit de demain  
'back of' hour 15 minutes avant l'heure précisée "back of 7pm", "back of 15"
'front of' hour 15 minutes après l'heure spécifiée "front of 5am", "front of 23"
'first day' ' of'? Affecte le jour du premier jour du mois courant. Il est plus intéréssant d'utiliser cette phrase suivie d'un nom de mois. "first day of January 2008"
'last day' ' of'? Affecte le jour du dernier jour du mois courant. Il est plus intéréssant d'utiliser cette phrase suivie d'un nom de mois. "last day of next month"
ordinal espace nom de jour espace 'of' Calcule le x-ième jour de semaine du mois en cours. "first sat of July 2008"
'last' espace nom de jour espace 'of' Calcule le dernier jour de semaine du mois en cours. "last sat of July 2008"
nombre espace? (unité | 'week') Gère des temps relatifs dont la valeur est dénombrée. "+5 weeks", "12 day", "-7 weekdays"
nombre espace unité Gère des temps relatifs dont la valeur est dénombrée. "fifth day", "second month"
'ago' Utilise dans le passé toute description de temps relatif ('il y a'). "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago ago"
nom de jour Se déplace vers le prochain jour indiqué. "Monday"
reltext espace 'week' Gère le format spécial "weekday + last/this/next week". "Monday next week"

Note:

Les expressions relatives sont toujours traitées après les expressions non relatives. Ceci fait en sorte que "+1 week july 2008" et "july 2008 +1 week" sont équivalents.

"yesterday", "midnight", "today", "noon" et "tomorrow" sont des exceptions à cette règle. Notez que "tomorrow 11:00" et "11:00 tomorrow" sont différents. Soit la date d'aujourd'hui à "July 23rd, 2008" , la première expression donne "2008-07-24 11:00" alors que la seconde donnera "2008-07-24 00:00". La raison est que ces cinq expressions influencent directement la date courante.

Note:

Notez les remarques qui suivent lorsque le jour de semaine courant est le même que le jour de semaine utilisé dans la chaine de date/time. Le jour de semaine courant aurait pu être recalculé par rapport aux parties non relatives de la chaine date/time.

  1. "nom de jour" n'avance pas vers un autre jour. (Exemple: "Wed July 23rd, 2008" signifie "2008-07-23").
  2. "nombre nom de jour" n'avance pas vers un autre jour. (Exemple: "1 wednesday july 23rd, 2008" signifie "2008-07-23").
  3. "nombre week nom de jour" ajoutera d'abord le nombre de semaines, mais n'avancera pas vers un autre jour. Dans ce cas "nombre week" et "nom de jour" sont deux blocs distincts. (Exemple: "+1 week wednesday july 23rd, 2008" signifie "2008-07-30").
  4. "ordinal nom de jour" avance vers un autre jour. (Exemple "first wednesday july 23rd, 2008" signifie "2008-07-30").
  5. "nombre week ordinal nom de jour" ajoutera d'abord le nombre de semaines et ensuite avancera vers un autre jour. Dans ce cas, "nombre week" et "ordinal nom de jour" sont deux blocs distincts. (Exemple: "+1 week first wednesday july 23rd, 2008" signifie "2008-08-06").
  6. "ordinal nom de jour avance vers un autre jour. (Exemple "first wednesday july 23rd, 2008" signifie "2008-07-30").
  7. "ordinal nom de jour 'of' " n'avance pas vers uyn autre jour. (Exemple: "first wednesday of july 23rd, 2008" signifie "2008-07-02" car la phrase avec 'of' remet à zéro le jour du mois vers '1' et le '23' est ignoré ici).

Notez aussi que le "of" dans "ordinal espace nom de jour espace 'of' " et "'last' espace nom de jour espace 'of' " fait quelque chose de spécial.

  1. Il affecte le jour du mois à 1.
  2. "ordinal nom de jour 'of' " n'avance pas vers un autre jour. (Exemple: "first tuesday of july 2008" signifie "2008-07-01").
  3. "ordinal nom de jour " avance vers un autre jour. (Exemple: "first tuesday july 2008" signifie "2008-07-08", voyez aussi le point numéro 4 de la liste ci dessus).
  4. "'last' nom de jour 'of' " prend le dernier jour nommé du mois courant. (Exemple: "last wed of july 2008" signifie "2008-07-30")
  5. "'last' nom de jour" prend le dernier jour nommé à partir du jour actuel. (Exemple: "last wed july 2008" signifie "2008-06-25"; "july 2008" affecte d'abord la date courante à "2008-07-01" et ensuite "last wed" remonte au dernier mercredi qui est le "2008-06-25").




Liste des Fuseaux Horaires Supportés

Sommaire

Ici, vous trouverez une liste complète des fuseaux horaires supportés par PHP, qui peuvent être utilisés avec, e.g. date_default_timezone_set().

Note: La dernière version de la base de données des fuseaux horaires peut être installée via la commande PECL » timezonedb.

Note: Cette liste est basée sur la version de la base de données des fuseaux horaires 2011.5.


Afrique

Afrique
Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara
Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau
Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca
Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti
Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare
Africa/Johannesburg Africa/Kampala Africa/Khartoum Africa/Kigali Africa/Kinshasa
Africa/Lagos Africa/Libreville Africa/Lome Africa/Luanda Africa/Lubumbashi
Africa/Lusaka Africa/Malabo Africa/Maputo Africa/Maseru Africa/Mbabane
Africa/Mogadishu Africa/Monrovia Africa/Nairobi Africa/Ndjamena Africa/Niamey
Africa/Nouakchott Africa/Ouagadougou Africa/Porto-Novo Africa/Sao_Tome Africa/Timbuktu
Africa/Tripoli Africa/Tunis Africa/Windhoek    


Amerique

Amerique
America/Adak America/Anchorage America/Anguilla America/Antigua America/Araguaina
America/Argentina/Buenos_Aires America/Argentina/Catamarca America/Argentina/ComodRivadavia America/Argentina/Cordoba America/Argentina/Jujuy
America/Argentina/La_Rioja America/Argentina/Mendoza America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan
America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Aruba America/Asuncion
America/Atikokan America/Atka America/Bahia America/Bahia_Banderas America/Barbados
America/Belem America/Belize America/Blanc-Sablon America/Boa_Vista America/Bogota
America/Boise America/Buenos_Aires America/Cambridge_Bay America/Campo_Grande America/Cancun
America/Caracas America/Catamarca America/Cayenne America/Cayman America/Chicago
America/Chihuahua America/Coral_Harbour America/Cordoba America/Costa_Rica America/Cuiaba
America/Curacao America/Danmarkshavn America/Dawson America/Dawson_Creek America/Denver
America/Detroit America/Dominica America/Edmonton America/Eirunepe America/El_Salvador
America/Ensenada America/Fort_Wayne America/Fortaleza America/Glace_Bay America/Godthab
America/Goose_Bay America/Grand_Turk America/Grenada America/Guadeloupe America/Guatemala
America/Guayaquil America/Guyana America/Halifax America/Havana America/Hermosillo
America/Indiana/Indianapolis America/Indiana/Knox America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Tell_City
America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Indianapolis America/Inuvik
America/Iqaluit America/Jamaica America/Jujuy America/Juneau America/Kentucky/Louisville
America/Kentucky/Monticello America/Knox_IN America/La_Paz America/Lima America/Los_Angeles
America/Louisville America/Maceio America/Managua America/Manaus America/Marigot
America/Martinique America/Matamoros America/Mazatlan America/Mendoza America/Menominee
America/Merida America/Metlakatla America/Mexico_City America/Miquelon America/Moncton
America/Monterrey America/Montevideo America/Montreal America/Montserrat America/Nassau
America/New_York America/Nipigon America/Nome America/Noronha America/North_Dakota/Beulah
America/North_Dakota/Center America/North_Dakota/New_Salem America/Ojinaga America/Panama America/Pangnirtung
America/Paramaribo America/Phoenix America/Port-au-Prince America/Port_of_Spain America/Porto_Acre
America/Porto_Velho America/Puerto_Rico America/Rainy_River America/Rankin_Inlet America/Recife
America/Regina America/Resolute America/Rio_Branco America/Rosario America/Santa_Isabel
America/Santarem America/Santiago America/Santo_Domingo America/Sao_Paulo America/Scoresbysund
America/Shiprock America/Sitka America/St_Barthelemy America/St_Johns America/St_Kitts
America/St_Lucia America/St_Thomas America/St_Vincent America/Swift_Current America/Tegucigalpa
America/Thule America/Thunder_Bay America/Tijuana America/Toronto America/Tortola
America/Vancouver America/Virgin America/Whitehorse America/Winnipeg America/Yakutat
America/Yellowknife        


Antarctique

Antarctique
Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Macquarie Antarctica/Mawson
Antarctica/McMurdo Antarctica/Palmer Antarctica/Rothera Antarctica/South_Pole Antarctica/Syowa
Antarctica/Vostok        


Arctique

Arctique
Arctic/Longyearbyen


Asie

Asie
Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau
Asia/Aqtobe Asia/Ashgabat Asia/Ashkhabad Asia/Baghdad Asia/Bahrain
Asia/Baku Asia/Bangkok Asia/Beirut Asia/Bishkek Asia/Brunei
Asia/Calcutta Asia/Choibalsan Asia/Chongqing Asia/Chungking Asia/Colombo
Asia/Dacca Asia/Damascus Asia/Dhaka Asia/Dili Asia/Dubai
Asia/Dushanbe Asia/Gaza Asia/Harbin Asia/Ho_Chi_Minh Asia/Hong_Kong
Asia/Hovd Asia/Irkutsk Asia/Istanbul Asia/Jakarta Asia/Jayapura
Asia/Jerusalem Asia/Kabul Asia/Kamchatka Asia/Karachi Asia/Kashgar
Asia/Kathmandu Asia/Katmandu Asia/Kolkata Asia/Krasnoyarsk Asia/Kuala_Lumpur
Asia/Kuching Asia/Kuwait Asia/Macao Asia/Macau Asia/Magadan
Asia/Makassar Asia/Manila Asia/Muscat Asia/Nicosia Asia/Novokuznetsk
Asia/Novosibirsk Asia/Omsk Asia/Oral Asia/Phnom_Penh Asia/Pontianak
Asia/Pyongyang Asia/Qatar Asia/Qyzylorda Asia/Rangoon Asia/Riyadh
Asia/Saigon Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai
Asia/Singapore Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran
Asia/Tel_Aviv Asia/Thimbu Asia/Thimphu Asia/Tokyo Asia/Ujung_Pandang
Asia/Ulaanbaatar Asia/Ulan_Bator Asia/Urumqi Asia/Vientiane Asia/Vladivostok
Asia/Yakutsk Asia/Yekaterinburg Asia/Yerevan    


Atlantique

Atlantique
Atlantic/Azores Atlantic/Bermuda Atlantic/Canary Atlantic/Cape_Verde Atlantic/Faeroe
Atlantic/Faroe Atlantic/Jan_Mayen Atlantic/Madeira Atlantic/Reykjavik Atlantic/South_Georgia
Atlantic/St_Helena Atlantic/Stanley      


Australie

Australie
Australia/ACT Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Canberra
Australia/Currie Australia/Darwin Australia/Eucla Australia/Hobart Australia/LHI
Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/North Australia/NSW
Australia/Perth Australia/Queensland Australia/South Australia/Sydney Australia/Tasmania
Australia/Victoria Australia/West Australia/Yancowinna    


Europe

Europe
Europe/Amsterdam Europe/Andorra Europe/Athens Europe/Belfast Europe/Belgrade
Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest
Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar Europe/Guernsey
Europe/Helsinki Europe/Isle_of_Man Europe/Istanbul Europe/Jersey Europe/Kaliningrad
Europe/Kiev Europe/Lisbon Europe/Ljubljana Europe/London Europe/Luxembourg
Europe/Madrid Europe/Malta Europe/Mariehamn Europe/Minsk Europe/Monaco
Europe/Moscow Europe/Nicosia Europe/Oslo Europe/Paris Europe/Podgorica
Europe/Prague Europe/Riga Europe/Rome Europe/Samara Europe/San_Marino
Europe/Sarajevo Europe/Simferopol Europe/Skopje Europe/Sofia Europe/Stockholm
Europe/Tallinn Europe/Tirane Europe/Tiraspol Europe/Uzhgorod Europe/Vaduz
Europe/Vatican Europe/Vienna Europe/Vilnius Europe/Volgograd Europe/Warsaw
Europe/Zagreb Europe/Zaporozhye Europe/Zurich    


Indien

Indien
Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro
Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte
Indian/Reunion        


Pacifique

Pacifique
Pacific/Apia Pacific/Auckland Pacific/Chatham Pacific/Chuuk Pacific/Easter
Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji Pacific/Funafuti
Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam Pacific/Honolulu
Pacific/Johnston Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein Pacific/Majuro
Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue Pacific/Norfolk
Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn Pacific/Pohnpei
Pacific/Ponape Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan Pacific/Samoa
Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Truk Pacific/Wake
Pacific/Wallis Pacific/Yap      


Autres

Autres
Brazil/Acre Brazil/DeNoronha Brazil/East Brazil/West Canada/Atlantic
Canada/Central Canada/East-Saskatchewan Canada/Eastern Canada/Mountain Canada/Newfoundland
Canada/Pacific Canada/Saskatchewan Canada/Yukon CET Chile/Continental
Chile/EasterIsland CST6CDT Cuba EET Egypt
Eire EST EST5EDT Etc/GMT Etc/GMT+0
Etc/GMT+1 Etc/GMT+10 Etc/GMT+11 Etc/GMT+12 Etc/GMT+2
Etc/GMT+3 Etc/GMT+4 Etc/GMT+5 Etc/GMT+6 Etc/GMT+7
Etc/GMT+8 Etc/GMT+9 Etc/GMT-0 Etc/GMT-1 Etc/GMT-10
Etc/GMT-11 Etc/GMT-12 Etc/GMT-13 Etc/GMT-14 Etc/GMT-2
Etc/GMT-3 Etc/GMT-4 Etc/GMT-5 Etc/GMT-6 Etc/GMT-7
Etc/GMT-8 Etc/GMT-9 Etc/GMT0 Etc/Greenwich Etc/UCT
Etc/Universal Etc/UTC Etc/Zulu Factory GB
GB-Eire GMT GMT+0 GMT-0 GMT0
Greenwich Hongkong HST Iceland Iran
Israel Jamaica Japan Kwajalein Libya
MET Mexico/BajaNorte Mexico/BajaSur Mexico/General MST
MST7MDT Navajo NZ NZ-CHAT Poland
Portugal PRC PST8PDT ROC ROK
Singapore Turkey UCT Universal US/Alaska
US/Aleutian US/Arizona US/Central US/East-Indiana US/Eastern
US/Hawaii US/Indiana-Starke US/Michigan US/Mountain US/Pacific
US/Pacific-New US/Samoa UTC W-SU WET
Zulu        
Avertissement

N'utilisez aucun des fuseaux horaires listés ici (à côté de UTC), ils n'existent que pour des raisons de compatibilité ascendante.






Extensions spécifiques à la ligne de commande


Newt


Introduction

Il s'agit d'une extension du langage PHP pour la bibliothèque RedHat Newt, une fenêtre basé sur un terminal et sur une bibliothèque de widget pour écrire des applications avec des interfaces conviviaux. Une fois que cette extension est activé dans PHP, vous aurez la possibilité d'utiliser des widgets, comme des fenêtres, des boutons, des boîtes à cocher, des boîtes radio, des labels, des boîtes texte, des barres de défilement, de grandes boîtes texte, des règles, etc. L'utilisation de cette extension est vraiment similaire à l'API original Newt du langage de programmation C.



Installation/Configuration

Sommaire


Pré-requis

Ce module utilise les fonctions de la bibliothèque RedHat Newt. Vous aurez besoin de la version libnewt >= 0.51.0.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/newt.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Afin d'utiliser ces fonctions, vous devez compiler le support newt en CGI ou en CLI PHP en utilisant l'option de configure --with-newt[=DIR] .

Note:

Cette extension n'est pas disponible pour la plate-forme Windows.

Vous aurez aussi besoin des bibliothèques curses et slang afin de compiler cette extension. Pour spécifier des emplacements de ces bibliothèques, utilisez les options de configuration suivante : --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension utilise deux types de ressources : "composant newt" et "grille newt".

Le type de ressource "composant newt" est retourné par les fonctions, qui créent les widgets communs newt (par exemple : newt_button()).

Le type de ressource "grille newt" est un lien spécial pour les identifiants des composants, retourné par la classe d'objet de grille de newt (par exemple : newt_create_grid())




Constantes pré-définies

Sommaire

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Raisons de sortie de Newt

Raisons de sortie de Newt
Constante Signification
NEWT_EXIT_HOTKEY touche rapide définie par newt_form_add_hot_key() a été appuyée
NEWT_EXIT_COMPONENT certains composants ont demandé la sortie de la forme
NEWT_EXIT_FDREADY le pointeur de fichier spécifié dans newt_form_watch_fd() est prêt à être lu ou écrit
NEWT_EXIT_TIMER le temps spécifié dans newt_form_set_timer() s'est écoulé


Newt colorsets

Newt colorsets
Constante Signification
NEWT_COLORSET_ROOT  
NEWT_COLORSET_BORDER  
NEWT_COLORSET_WINDOW  
NEWT_COLORSET_SHADOW  
NEWT_COLORSET_TITLE  
NEWT_COLORSET_BUTTON  
NEWT_COLORSET_ACTBUTTON  
NEWT_COLORSET_CHECKBOX  
NEWT_COLORSET_ACTCHECKBOX  
NEWT_COLORSET_ENTRY  
NEWT_COLORSET_LABEL  
NEWT_COLORSET_LISTBOX  
NEWT_COLORSET_ACTLISTBOX  
NEWT_COLORSET_TEXTBOX  
NEWT_COLORSET_ACTTEXTBOX  
NEWT_COLORSET_HELPLINE  
NEWT_COLORSET_ROOTTEXT  
NEWT_COLORSET_ROOTTEXT  
NEWT_COLORSET_EMPTYSCALE  
NEWT_COLORSET_FULLSCALE  
NEWT_COLORSET_DISENTRY  
NEWT_COLORSET_COMPACTBUTTON  
NEWT_COLORSET_ACTSELLISTBOX  
NEWT_COLORSET_SELLISTBOX  


Drapeaux d'argument Newt

Drapeaux d'argument Newt
Constante Signification
NEWT_ARG_LAST  
NEWT_ARG_APPEND  


Sens des Drapeaux Newt

Sens des Drapeaux Newt
Constante Signification
NEWT_FLAGS_SET  
NEWT_FLAGS_RESET  
NEWT_FLAGS_TOGGLE  


Drapeaux des Composants Newt

Drapeaux des Composants Newt
Constante Signification
NEWT_FLAG_RETURNEXIT Sort de la forme, lorsque le composant est activé
NEWT_FLAG_HIDDEN Le composant est caché
NEWT_FLAG_SCROLL Le composant est flottant
NEWT_FLAG_DISABLED Le composant est désactivé
NEWT_FLAG_BORDER  
NEWT_FLAG_WRAP Enveloppe le texte
NEWT_FLAG_NOF12 Ne sort pas de la forme en appuyant sur F12
NEWT_FLAG_MULTIPLE  
NEWT_FLAG_SELECTED Le composant est sélectionné
NEWT_FLAG_CHECKBOX Le composant est une case à cocher
NEWT_FLAG_PASSWORD Le composant est une boîte de mot de passe
NEWT_FLAG_SHOWCURSOR Montre le curseur


Drapeaux de pointeur de fichier

Drapeaux de pointeur de fichier
Constante Signification
NEWT_FD_READ  
NEWT_FD_WRITE  
NEWT_FD_EXCEPT  


Drapeaux d'Arbre de Cases à Cocher

Drapeaux d'Arbre de Cases à Cocher
Constante Signification
NEWT_CHECKBOXTREE_UNSELECTABLE  
NEWT_CHECKBOXTREE_HIDE_BOX  
NEWT_CHECKBOXTREE_COLLAPSED  
NEWT_CHECKBOXTREE_EXPANDED  
NEWT_CHECKBOXTREE_UNSELECTED  
NEWT_CHECKBOXTREE_SELECTED  


Drapeaux d'Entrée

Drapeaux d'Entrée
Constante Signification
NEWT_ENTRY_SCROLL  
NEWT_ENTRY_HIDDEN  
NEWT_ENTRY_RETURNEXIT  
NEWT_ENTRY_DISABLED  


Drapeaux de Liste

Drapeaux de Liste
Constante Signification
NEWT_LISTBOX_RETURNEXIT  


Drapeaux de Boîte Texte

Drapeaux de Boîte Texte
Constante Signification
NEWT_TEXTBOX_WRAP Enveloppe le texte dans la boîte texte
NEWT_TEXTBOX_SCROLL Défile le texte dans la boîte texte


Drapeaux de Formulaire

Drapeaux de Formulaire
Constante Signification
NEWT_FORM_NOF12 Ne sort pas de la forme en appuyant sur F12


Clés Newt

Clés Newt
Constante Signification
NEWT_KEY_TAB  
NEWT_KEY_ENTER  
NEWT_KEY_SUSPEND  
NEWT_KEY_ESCAPE  
NEWT_KEY_RETURN  
NEWT_KEY_EXTRA_BASE  
NEWT_KEY_UP  
NEWT_KEY_DOWN  
NEWT_KEY_LEFT  
NEWT_KEY_RIGHT  
NEWT_KEY_BKSPC  
NEWT_KEY_DELETE  
NEWT_KEY_HOME  
NEWT_KEY_END  
NEWT_KEY_UNTAB  
NEWT_KEY_PGUP  
NEWT_KEY_PGDN  
NEWT_KEY_INSERT  
NEWT_KEY_F1  
NEWT_KEY_F2  
NEWT_KEY_F3  
NEWT_KEY_F4  
NEWT_KEY_F5  
NEWT_KEY_F6  
NEWT_KEY_F7  
NEWT_KEY_F8  
NEWT_KEY_F9  
NEWT_KEY_F10  
NEWT_KEY_F11  
NEWT_KEY_F12  
NEWT_KEY_RESIZE  


Ancres Newt

Ancres Newt
Constante Signification
NEWT_ANCHOR_LEFT  
NEWT_ANCHOR_RIGHT  
NEWT_ANCHOR_TOP  
NEWT_ANCHOR_BOTTOM  


Drapeaux de Grille

Drapeaux de Grille
Constante Signification
NEWT_GRID_FLAG_GROWX  
NEWT_GRID_FLAG_GROWY  
NEWT_GRID_EMPTY  
NEWT_GRID_COMPONENT  
NEWT_GRID_SUBGRID  



Exemples

Sommaire


Utilisation simple

Cet exemple est une utilisation du dialogue 'setup' de RedHat écrit en PHP, exécuté en mode texte.

Exemple #1 Exemple d'Utilisation Newt

<?php
newt_init 
();
newt_cls ();

newt_draw_root_text (00"Test Mode Setup Utility 1.12");
newt_push_help_line (null);
newt_draw_root_text (-300"(c) 1999-2002 RedHat, Inc");

newt_get_screen_size ($rows$cols);

newt_open_window ($rows/2-17$cols/2-103417"Choose a Tool");

$form newt_form ();

$list newt_listbox (3210);

foreach (array (
    
"Authentication configuration",
    
"Firewall configuration",
    
"Mouse configuration",
    
"Network configuration",
    
"Printer configuration",
    
"System services") as $l_item)
{
    
newt_listbox_add_entry ($list$l_item$l_item);
}

$b1 newt_button (512"Run Tool");
$b2 newt_button (2112"Quit");

newt_form_add_component ($form$list);
newt_form_add_components ($form, array($b1$b2));

newt_refresh ();
newt_run_form ($form);

newt_pop_window ();
newt_pop_help_line ();
newt_finished ();
newt_form_destroy ($form);
?>



Fonctions Newt


newt_bell

(PECL newt >= 0.1)

newt_bellEnvoie un beep au terminal

Description

void newt_bell ( void )

Cette fonction envoie un beep au terminal.

Note:

Dépendemment des configurations du terminal, le beep peut être ou ne peut être audible.

Valeurs de retour

Aucune valeur n'est retournée.



newt_button_bar

(PECL newt >= 0.1)

newt_button_barRetourne une grille contenant les boutons créés

Description

resource newt_button_bar ( array &$buttons )

Cette fonction retourne une grille contenant les boutons créés.

Liste de paramètres

buttons

Valeurs de retour

Retourne une grille, contenant les boutons créés.



newt_button

(PECL newt >= 0.1)

newt_buttonCrée un nouveau bouton

Description

resource newt_button ( int $left , int $top , string $text )

Crée un nouveau bouton.

Liste de paramètres

left

Coordonnée X du bouton.

top

Coordonnée Y du bouton.

text

Le texte qui devrait apparaître dans le bouton.

Valeurs de retour

Retourne une ressource du composant bouton créé ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec newt_button()

<?php

$form 
newt_form();

$ok_button newt_button(512"Run Tool");
    
newt_form_add_component($form$ok_button);

?>

Voir aussi



newt_centered_window

(PECL newt >= 0.1)

newt_centered_windowOuvre une fenêtre centrée de la taille spécifiée

Description

int newt_centered_window ( int $width , int $height [, string $title ] )

Ouvre une fenêtre centrée de la taille spécifiée.

Liste de paramètres

width

Largeur de la fenêtre

height

Hauteur de la fenêtre

title

Titre de la fenêtre

Valeurs de retour

Valeur non définie.

Voir aussi



newt_checkbox_get_value

(PECL newt >= 0.1)

newt_checkbox_get_valueRécupère la valeur de la ressource de boîte à cocher

Description

string newt_checkbox_get_value ( resource $checkbox )

Cette fonction retourne le caractère dans la séquence qui indique la valeur courante de la boîte à cocher.

Liste de paramètres

checkbox

Valeurs de retour

Retourne le caractère indiquant la valeur de la boîte à cocher.



newt_checkbox_set_flags

(PECL newt >= 0.1)

newt_checkbox_set_flagsConfigure une ressource de boîte à cocher

Description

void newt_checkbox_set_flags ( resource $checkbox , int $flags , int $sense )

Cette fonction permet de définir divers drapeaux d'une ressource de boîte à cocher.

Liste de paramètres

checkbox

flags

sense

Valeurs de retour

Aucune valeur n'est retournée.



newt_checkbox_set_value

(PECL newt >= 0.1)

newt_checkbox_set_valueDéfinit la valeur de la boîte à cocher

Description

void newt_checkbox_set_value ( resource $checkbox , string $value )

Cette fonction permet de définir la valeur courante de la ressource de boîte à cocher.

Liste de paramètres

checkbox

value

Valeurs de retour

Aucune valeur n'est retournée.



newt_checkbox_tree_add_item

(PECL newt >= 0.1)

newt_checkbox_tree_add_itemAjout un nouvel élément à l'arbre des boîtes à cocher

Description

void newt_checkbox_tree_add_item ( resource $checkboxtree , string $text , mixed $data , int $flags , int $index [, int $... ] )

Cette fonction permet d'ajout un nouvel élément l'arbre des boîtes à cocher.

Liste de paramètres

checkboxtree

text

data

flags

index

Valeurs de retour

Aucune valeur n'est retournée.



newt_checkbox_tree_find_item

(PECL newt >= 0.1)

newt_checkbox_tree_find_itemCherche un élément dans l'arbre des boîtes à cocher

Description

array newt_checkbox_tree_find_item ( resource $checkboxtree , mixed $data )

Cherche un élément dans l'arbre des boîtes à cocher.

Liste de paramètres

checkboxtree

data

Valeurs de retour

Retourne la ressource de l'élément de l'arbre de boîtes à cocher, ou NULL s'il n'a pas été trouvé.



newt_checkbox_tree_get_current

(PECL newt >= 0.1)

newt_checkbox_tree_get_currentRetourne l'élément sélectionné de l'arbre des boîtes à cocher

Description

mixed newt_checkbox_tree_get_current ( resource $checkboxtree )

Cette méthode retourne l'élément sélectionné de l'arbre des boîtes à cocher.

Liste de paramètres

checkboxtree

Valeurs de retour

Retourne l'élément courant (sélectionné) de l'arbre des boîtes à cocher.



newt_checkbox_tree_get_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_get_entry_value

Description

string newt_checkbox_tree_get_entry_value ( resource $checkboxtree , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

Valeurs de retour



newt_checkbox_tree_get_multi_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_multi_selection

Description

array newt_checkbox_tree_get_multi_selection ( resource $checkboxtree , string $seqnum )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

seqnum

Valeurs de retour



newt_checkbox_tree_get_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_selection

Description

array newt_checkbox_tree_get_selection ( resource $checkboxtree )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

Valeurs de retour



newt_checkbox_tree_multi

(PECL newt >= 0.1)

newt_checkbox_tree_multi

Description

resource newt_checkbox_tree_multi ( int $left , int $top , int $height , string $seq [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

seq

flags

Valeurs de retour



newt_checkbox_tree_set_current

(PECL newt >= 0.1)

newt_checkbox_tree_set_current

Description

void newt_checkbox_tree_set_current ( resource $checkboxtree , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

Valeurs de retour

Aucune valeur n'est retournée.



newt_checkbox_tree_set_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry_value

Description

void newt_checkbox_tree_set_entry_value ( resource $checkboxtree , mixed $data , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

value

Valeurs de retour

Aucune valeur n'est retournée.



newt_checkbox_tree_set_entry

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry

Description

void newt_checkbox_tree_set_entry ( resource $checkboxtree , mixed $data , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

text

Valeurs de retour

Aucune valeur n'est retournée.



newt_checkbox_tree_set_width

(PECL newt >= 0.1)

newt_checkbox_tree_set_width

Description

void newt_checkbox_tree_set_width ( resource $checkbox_tree , int $width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkbox_tree

width

Valeurs de retour

Aucune valeur n'est retournée.



newt_checkbox_tree

(PECL newt >= 0.1)

newt_checkbox_tree

Description

resource newt_checkbox_tree ( int $left , int $top , int $height [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

flags

Valeurs de retour



newt_checkbox

(PECL newt >= 0.1)

newt_checkbox

Description

resource newt_checkbox ( int $left , int $top , string $text , string $def_value [, string $seq ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

def_value

seq

Valeurs de retour



newt_clear_key_buffer

(PECL newt >= 0.1)

newt_clear_key_bufferJette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

Description

void newt_clear_key_buffer ( void )

Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



newt_cls

(PECL newt >= 0.1)

newt_cls

Description

void newt_cls ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.



newt_compact_button

(PECL newt >= 0.1)

newt_compact_button

Description

resource newt_compact_button ( int $left , int $top , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

Valeurs de retour



newt_component_add_callback

(PECL newt >= 0.1)

newt_component_add_callback

Description

void newt_component_add_callback ( resource $component , mixed $func_name , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

component

func_name

data

Valeurs de retour

Aucune valeur n'est retournée.



newt_component_takes_focus

(PECL newt >= 0.1)

newt_component_takes_focus

Description

void newt_component_takes_focus ( resource $component , bool $takes_focus )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

component

takes_focus

Valeurs de retour

Aucune valeur n'est retournée.



newt_create_grid

(PECL newt >= 0.1)

newt_create_grid

Description

resource newt_create_grid ( int $cols , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cols

rows

Valeurs de retour



newt_cursor_off

(PECL newt >= 0.1)

newt_cursor_off

Description

void newt_cursor_off ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.



newt_cursor_on

(PECL newt >= 0.1)

newt_cursor_on

Description

void newt_cursor_on ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



newt_delay

(PECL newt >= 0.1)

newt_delay

Description

void newt_delay ( int $microseconds )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

microseconds

Valeurs de retour

Aucune valeur n'est retournée.



newt_draw_form

(PECL newt >= 0.1)

newt_draw_form

Description

void newt_draw_form ( resource $form )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

Valeurs de retour

Aucune valeur n'est retournée.



newt_draw_root_text

(PECL newt >= 0.1)

newt_draw_root_textAffiche la chaîne de caractères à la position indiquée

Description

void newt_draw_root_text ( int $left , int $top , string $text )

Affiche la chaîne de caractères à la position indiquée.

Liste de paramètres

left

Numéro de colonne

Note:

Si left est négatif, la position est mesurée à partir du côté opposé de l'écran.

top

Numéro de ligne

Note:

Si top est négatif, la position est mesurée à partir du côté opposé de l'écran.

text

Texte à afficher.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_draw_root_text()

Ce code démontre l'affichage des titres dans les deux coins de l'écran.

<?php
 newt_init
();
 
newt_cls();

 
newt_draw_root_text (20"Un peu de texte");
 
newt_refresh();
 
sleep(1);

 
newt_draw_root_text (-300"Du texte dans l'autre coin");
 
newt_refresh();
 
sleep(1);

 
newt_finished();
?>

Voir aussi



newt_entry_get_value

(PECL newt >= 0.1)

newt_entry_get_value

Description

string newt_entry_get_value ( resource $entry )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

Valeurs de retour



newt_entry_set_filter

(PECL newt >= 0.1)

newt_entry_set_filter

Description

void newt_entry_set_filter ( resource $entry , callback $filter , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

filter

data

Valeurs de retour

Aucune valeur n'est retournée.



newt_entry_set_flags

(PECL newt >= 0.1)

newt_entry_set_flags

Description

void newt_entry_set_flags ( resource $entry , int $flags , int $sense )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

flags

sense

Valeurs de retour

Aucune valeur n'est retournée.



newt_entry_set

(PECL newt >= 0.1)

newt_entry_set

Description

void newt_entry_set ( resource $entry , string $value [, bool $cursor_at_end ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

value

cursor_at_end

Valeurs de retour

Aucune valeur n'est retournée.



newt_entry

(PECL newt >= 0.1)

newt_entry

Description

resource newt_entry ( int $left , int $top , int $width [, string $init_value [, int $flags ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

width

init_value

flags

Valeurs de retour



newt_finished

(PECL newt >= 0.1)

newt_finishedArrête l'interface newt

Description

int newt_finished ( void )

Arrête l'interface newt. Cette fonction est appelée lorsque le programme est prêt à être arrêté.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi



newt_form_add_component

(PECL newt >= 0.1)

newt_form_add_componentAjoute un seul composant à la forme

Description

void newt_form_add_component ( resource $form , resource $component )

Ajoute un seul composant à la forme qui est passé dans le premier paramètre.

Liste de paramètres

form

Forme à laquelle le composant sera ajouté

component

Composant à ajouter à la forme

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_form_add_component()

<?php
$form 
newt_form();

$options = array("Authentication configuration""Firewall configuration",
"Mouse configuration""Network configuration""Printer configuration",
"System services");

$list newt_listbox(3210);

foreach (
$options as $l_item) {
   
newt_listbox_add_entry($list$l_item$l_item);
}

newt_form_add_component($form$list);
?>

Voir aussi



newt_form_add_components

(PECL newt >= 0.1)

newt_form_add_componentsAjoute plusieurs composants à la forme

Description

void newt_form_add_components ( resource $form , array $components )

Ajoute plusieurs composants à la forme form.

Liste de paramètres

form

Forme à laquelle les composants seront ajoutés

components

Tableau de composants à ajouter à la forme

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_form_add_components()

<?php
$form 
newt_form();

$b1 newt_button(512"Run Tool");
$b2 newt_button(2112"Quit");

newt_form_add_components($form, array($b1$b2));
?>

Voir aussi



newt_form_add_hot_key

(PECL newt >= 0.1)

newt_form_add_hot_key

Description

void newt_form_add_hot_key ( resource $form , int $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

key

Valeurs de retour

Aucune valeur n'est retournée.



newt_form_destroy

(PECL newt >= 0.1)

newt_form_destroyDétruit une forme

Description

void newt_form_destroy ( resource $form )

Cette fonction libère les ressources mémoires utilisées par la forme et tous les composants qui avaient été ajoutés à la forme (en incluant les composants qui sont sur des formes filles). Une fois que la forme est détruite, aucun des composants qui appartenaient à la forme ne peut être utilisé.

Liste de paramètres

form

Composant forme, qui sera détruit

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



newt_form_get_current

(PECL newt >= 0.1)

newt_form_get_current

Description

resource newt_form_get_current ( resource $form )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

Valeurs de retour



newt_form_run

(PECL newt >= 0.1)

newt_form_runExécute une forme

Description

void newt_form_run ( resource $form , array &$exit_struct )

Cette fonction exécute la forme qui lui est passée.

Liste de paramètres

form

Composant forme

exit_struct

Tableau, utilisé pour retourner des informations après l'exécution des composants de la forme. Les clés et leur valeur sont décrites dans la table suivante :

Structure Arrêt de Forme
Clé Index Type de Valeur Description
reason entier La raison indiquant pourquoi la forme a été quittée. Les valeurs possibles sont définies ici.
watch ressource Lien de ressource, spécifié dans newt_form_watch_fd()
key entier Raccourci
component ressource Composant, qui a causé la forme à quitter

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



newt_form_set_background

(PECL newt >= 0.1)

newt_form_set_background

Description

void newt_form_set_background ( resource $from , int $background )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

from

background

Valeurs de retour

Aucune valeur n'est retournée.



newt_form_set_height

(PECL newt >= 0.1)

newt_form_set_height

Description

void newt_form_set_height ( resource $form , int $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

height

Valeurs de retour

Aucune valeur n'est retournée.



newt_form_set_size

(PECL newt >= 0.1)

newt_form_set_size

Description

void newt_form_set_size ( resource $form )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

Valeurs de retour

Aucune valeur n'est retournée.



newt_form_set_timer

(PECL newt >= 0.1)

newt_form_set_timer

Description

void newt_form_set_timer ( resource $form , int $milliseconds )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

milliseconds

Valeurs de retour

Aucune valeur n'est retournée.



newt_form_set_width

(PECL newt >= 0.1)

newt_form_set_width

Description

void newt_form_set_width ( resource $form , int $width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

width

Valeurs de retour

Aucune valeur n'est retournée.



newt_form_watch_fd

(PECL newt >= 0.1)

newt_form_watch_fd

Description

void newt_form_watch_fd ( resource $form , resource $stream [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

stream

flags

Valeurs de retour

Aucune valeur n'est retournée.



newt_form

(PECL newt >= 0.1)

newt_formCrée une forme

Description

resource newt_form ([ resource $vert_bar [, string $help [, int $flags ]]] )

Crée une nouvelle forme.

Liste de paramètres

vert_bar

Barre de défilement vertical qui devrait être associée à la forme

help

Chaîne de caractères d'aide

flags

Drapeaux variés

Valeurs de retour

Retourne le lien ressource du composant de la forme créé ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec newt_form()

Affiche un simple bouton "Quitter", qui ferme l'application une fois qu'il est pressé.

<?php
newt_init
();
newt_cls();

$myform newt_form();
$button newt_button (512"Quitter");

newt_form_add_component ($myform$button);
newt_refresh ();
newt_run_form ($myform);

newt_finished ();
newt_form_destroy ($myform);
?>

Voir aussi



newt_get_screen_size

(PECL newt >= 0.1)

newt_get_screen_sizeRemplit les références passées avec la taille courante du terminal

Description

void newt_get_screen_size ( int &$cols , int &$rows )

Remplit les références passées avec la taille courante du terminal.

Liste de paramètres

cols

Nombre de colonnes dans le terminal

rows

Nombre de lignes dans le terminal

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_get_screen_size()

Ce code affiche la taille de l'écran de votre terminal.

<?php
 newt_init
();
 
newt_get_screen_size (&$cols, &$rows);
 
newt_finished();

 print 
"Votre taille de terminal est : {$cols}x{$rows}\n";
?>

L'exemple ci-dessus va afficher :

Votre taille de terminal est : 138x47



newt_grid_add_components_to_form

(PECL newt >= 0.1)

newt_grid_add_components_to_form

Description

void newt_grid_add_components_to_form ( resource $grid , resource $form , bool $recurse )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

form

recurse

Valeurs de retour

Aucune valeur n'est retournée.



newt_grid_basic_window

(PECL newt >= 0.1)

newt_grid_basic_window

Description

resource newt_grid_basic_window ( resource $text , resource $middle , resource $buttons )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

middle

buttons

Valeurs de retour



newt_grid_free

(PECL newt >= 0.1)

newt_grid_free

Description

void newt_grid_free ( resource $grid , bool $recurse )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

recurse

Valeurs de retour

Aucune valeur n'est retournée.



newt_grid_get_size

(PECL newt >= 0.1)

newt_grid_get_size

Description

void newt_grid_get_size ( resouce $grid , int &$width , int &$height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

width

height

Valeurs de retour

Aucune valeur n'est retournée.



newt_grid_h_close_stacked

(PECL newt >= 0.1)

newt_grid_h_close_stacked

Description

resource newt_grid_h_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour



newt_grid_h_stacked

(PECL newt >= 0.1)

newt_grid_h_stacked

Description

resource newt_grid_h_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour



newt_grid_place

(PECL newt >= 0.1)

newt_grid_place

Description

void newt_grid_place ( resource $grid , int $left , int $top )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

left

top

Valeurs de retour

Aucune valeur n'est retournée.



newt_grid_set_field

(PECL newt >= 0.1)

newt_grid_set_field

Description

void newt_grid_set_field ( resource $grid , int $col , int $row , int $type , resource $val , int $pad_left , int $pad_top , int $pad_right , int $pad_bottom , int $anchor [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

col

row

type

val

pad_left

pad_top

pad_right

pad_bottom

anchor

flags

Valeurs de retour

Aucune valeur n'est retournée.



newt_grid_simple_window

(PECL newt >= 0.1)

newt_grid_simple_window

Description

resource newt_grid_simple_window ( resource $text , resource $middle , resource $buttons )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

middle

buttons

Valeurs de retour



newt_grid_v_close_stacked

(PECL newt >= 0.1)

newt_grid_v_close_stacked

Description

resource newt_grid_v_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour



newt_grid_v_stacked

(PECL newt >= 0.1)

newt_grid_v_stacked

Description

resource newt_grid_v_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour



newt_grid_wrapped_window_at

(PECL newt >= 0.1)

newt_grid_wrapped_window_at

Description

void newt_grid_wrapped_window_at ( resource $grid , string $title , int $left , int $top )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

title

left

top

Valeurs de retour

Aucune valeur n'est retournée.



newt_grid_wrapped_window

(PECL newt >= 0.1)

newt_grid_wrapped_window

Description

void newt_grid_wrapped_window ( resource $grid , string $title )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

title

Valeurs de retour

Aucune valeur n'est retournée.



newt_init

(PECL newt >= 0.1)

newt_initInitialise newt

Description

int newt_init ( void )

Initialise l'interface newt. Cette fonction doit être appelée avant n'importe quelle autre fonction newt.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi



newt_label_set_text

(PECL newt >= 0.1)

newt_label_set_text

Description

void newt_label_set_text ( resource $label , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

label

text

Valeurs de retour

Aucune valeur n'est retournée.



newt_label

(PECL newt >= 0.1)

newt_label

Description

resource newt_label ( int $left , int $top , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

Valeurs de retour



newt_listbox_append_entry

(PECL newt >= 0.1)

newt_listbox_append_entry

Description

void newt_listbox_append_entry ( resource $listbox , string $text , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

text

data

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_clear_selection

(PECL newt >= 0.1)

newt_listbox_clear_selection

Description

void newt_listbox_clear_selection ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_clear

(PECL newt >= 0.1)

newt_listbox_clear

Description

void newt_listbox_clear ( resource $listobx )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listobx

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_delete_entry

(PECL newt >= 0.1)

newt_listbox_delete_entry

Description

void newt_listbox_delete_entry ( resource $listbox , mixed $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

key

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_get_current

(PECL newt >= 0.1)

newt_listbox_get_current

Description

string newt_listbox_get_current ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour



newt_listbox_get_selection

(PECL newt >= 0.1)

newt_listbox_get_selection

Description

array newt_listbox_get_selection ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour



newt_listbox_insert_entry

(PECL newt >= 0.1)

newt_listbox_insert_entry

Description

void newt_listbox_insert_entry ( resource $listbox , string $text , mixed $data , mixed $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

text

data

key

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_item_count

(PECL newt >= 0.1)

newt_listbox_item_count

Description

int newt_listbox_item_count ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour



newt_listbox_select_item

(PECL newt >= 0.1)

newt_listbox_select_item

Description

void newt_listbox_select_item ( resource $listbox , mixed $key , int $sense )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

key

sense

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_set_current_by_key

(PECL newt >= 0.1)

newt_listbox_set_current_by_key

Description

void newt_listbox_set_current_by_key ( resource $listbox , mixed $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

key

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_set_current

(PECL newt >= 0.1)

newt_listbox_set_current

Description

void newt_listbox_set_current ( resource $listbox , int $num )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

num

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_set_data

(PECL newt >= 0.1)

newt_listbox_set_data

Description

void newt_listbox_set_data ( resource $listbox , int $num , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

num

data

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_set_entry

(PECL newt >= 0.1)

newt_listbox_set_entry

Description

void newt_listbox_set_entry ( resource $listbox , int $num , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

num

text

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox_set_width

(PECL newt >= 0.1)

newt_listbox_set_width

Description

void newt_listbox_set_width ( resource $listbox , int $width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

width

Valeurs de retour

Aucune valeur n'est retournée.



newt_listbox

(PECL newt >= 0.1)

newt_listbox

Description

resource newt_listbox ( int $left , int $top , int $height [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

flags

Valeurs de retour



newt_listitem_get_data

(PECL newt >= 0.1)

newt_listitem_get_data

Description

mixed newt_listitem_get_data ( resource $item )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

item

Valeurs de retour



newt_listitem_set

(PECL newt >= 0.1)

newt_listitem_set

Description

void newt_listitem_set ( resource $item , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

item

text

Valeurs de retour

Aucune valeur n'est retournée.



newt_listitem

(PECL newt >= 0.1)

newt_listitem

Description

resource newt_listitem ( int $left , int $top , string $text , bool $is_default , resouce $prev_item , mixed $data [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

is_default

prev_item

data

flags

Valeurs de retour



newt_open_window

(PECL newt >= 0.1)

newt_open_windowOuvre une fenêtre de la taille et la position spécifiée

Description

int newt_open_window ( int $left , int $top , int $width , int $height [, string $title ] )

Ouvre une fenêtre de la taille et la position spécifiée.

Liste de paramètres

left

Emplacement du coin haut gauche de la fenêtre (numéro de colonne)

top

Emplacement du coin haut gauche de la fenêtre (numéro de ligne)

width

Largeur de la fenêtre

height

Hauteur de la fenêtre

title

Titre de la fenêtre

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi



newt_pop_help_line

(PECL newt >= 0.1)

newt_pop_help_lineReplace la ligne d'aide courante avec une provenant de la pile

Description

void newt_pop_help_line ( void )

Replace la ligne d'aide courante avec une provenant de la pile.

Note:

Il est important de ne pas appeler la fonction newt_pop_help_line() plus que newt_push_help_line().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



newt_pop_window

(PECL newt >= 0.1)

newt_pop_windowSupprime la fenêtre de premier plan de l'affichage

Description

void newt_pop_window ( void )

Supprime la fenêtre de premier plan de l'affichage et redessine le secteur d'affichage sur lequel la fenêtre se trouvait.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



newt_push_help_line

(PECL newt >= 0.1)

newt_push_help_lineSauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne

Description

void newt_push_help_line ([ string $text ] )

Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne.

Liste de paramètres

text

Nouveau message d'aide

Note:

Si non spécifié, la ligne d'aide est supprimée.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



newt_radio_get_current

(PECL newt >= 0.1)

newt_radio_get_current

Description

resource newt_radio_get_current ( resource $set_member )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

set_member

Valeurs de retour



newt_radiobutton

(PECL newt >= 0.1)

newt_radiobutton

Description

resource newt_radiobutton ( int $left , int $top , string $text , bool $is_default [, resource $prev_button ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

is_default

prev_button

Valeurs de retour



newt_redraw_help_line

(PECL newt >= 0.1)

newt_redraw_help_line

Description

void newt_redraw_help_line ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.



newt_reflow_text

(PECL newt >= 0.1)

newt_reflow_text

Description

string newt_reflow_text ( string $text , int $width , int $flex_down , int $flex_up , int &$actual_width , int &$actual_height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

width

flex_down

flex_up

actual_width

actual_height

Valeurs de retour



newt_refresh

(PECL newt >= 0.1)

newt_refreshMet à jour les portions modifiées de l'écran

Description

void newt_refresh ( void )

Pour améliorer les performances, newt met à jour seulement l'affichage lorsque c'est requis et non lorsque le programme lui demande d'écrire dans le terminal. Les applications peuvent forcer newt pour mettre à jour immédiatement les portions modifiées de l'écran en appelant cette fonction.

Valeurs de retour

Aucune valeur n'est retournée.



newt_resize_screen

(PECL newt >= 0.1)

newt_resize_screen

Description

void newt_resize_screen ([ bool $redraw ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

redraw

Valeurs de retour

Aucune valeur n'est retournée.



newt_resume

(PECL newt >= 0.1)

newt_resumeRécupère l'interface de newt après l'appel de newt_suspend()

Description

void newt_resume ( void )

Récupère l'interface après l'appel de newt_suspend().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_suspend() - Indique à newt de retourner à l'état initial du terminal



newt_run_form

(PECL newt >= 0.1)

newt_run_formExécute une forme

Description

resource newt_run_form ( resource $form )

Cette fonction exécute la forme qui lui est passée en argument.

Liste de paramètres

form

Composant forme

Valeurs de retour

Le composant qui a arrêté la forme.

Note:

Notez que cette fonction n'est pas similaire aux conventions de nom de newt. Il s'agit d'une plus vieille interface qui ne fonctionnera pas pour toutes les formes. Elle a été laissée dans newt seulement pour compatibilité des applications. Il s'agit d'une interface plus simple que la nouvelle newt_form_run() et est toujours utilisée plus souvent en pratique. Lorsqu'une application a terminée d'une forme, elle la détruit et tous les composants que la forme contient.

Voir aussi



newt_scale_set

(PECL newt >= 0.1)

newt_scale_set

Description

void newt_scale_set ( resource $scale , int $amount )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scale

amount

Valeurs de retour

Aucune valeur n'est retournée.



newt_scale

(PECL newt >= 0.1)

newt_scale

Description

resource newt_scale ( int $left , int $top , int $width , int $full_value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

width

full_value

Valeurs de retour



newt_scrollbar_set

(PECL newt >= 0.1)

newt_scrollbar_set

Description

void newt_scrollbar_set ( resource $scrollbar , int $where , int $total )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scrollbar

where

total

Valeurs de retour

Aucune valeur n'est retournée.



newt_set_help_callback

(PECL newt >= 0.1)

newt_set_help_callback

Description

void newt_set_help_callback ( mixed $function )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

function

Valeurs de retour

Aucune valeur n'est retournée.



newt_set_suspend_callback

(PECL newt >= 0.1)

newt_set_suspend_callbackAssigne la fonction de rappel appelée sur suspension

Description

void newt_set_suspend_callback ( callback $function , mixed $data )

newt_set_suspend_callback() assigne une fonction de rappel qui sera appelée lorsque l'utilisateur appuiera sur la touche de suspension (normalement ^Z). Si aucune fonction de rappel n'est configurée, la commande de suspension est ignorée.

Liste de paramètres

function

Une fonction de rappel, qui accepte un argument : data

data

Cette donnée sera passée à la fonction de rappel

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_suspend() - Indique à newt de retourner à l'état initial du terminal
  • newt_resume() - Récupère l'interface de newt après l'appel de newt_suspend



newt_suspend

(PECL newt >= 0.1)

newt_suspendIndique à newt de retourner à l'état initial du terminal

Description

void newt_suspend ( void )

Indique newt de retourner à l'état initial du terminal. Une fois cela fait, l'application est suspendue (en envoyant à elle-même un SIGTSTP, embranche sur un programme enfant ou fait n'importe quoi d'autre qu'elle aime).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_resume() - Récupère l'interface de newt après l'appel de newt_suspend



newt_textbox_get_num_lines

(PECL newt >= 0.1)

newt_textbox_get_num_lines

Description

int newt_textbox_get_num_lines ( resource $textbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

textbox

Valeurs de retour



newt_textbox_reflowed

(PECL newt >= 0.1)

newt_textbox_reflowed

Description

resource newt_textbox_reflowed ( int $left , int $top , char $*text , int $width , int $flex_down , int $flex_up [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

*text

width

flex_down

flex_up

flags

Valeurs de retour



newt_textbox_set_height

(PECL newt >= 0.1)

newt_textbox_set_height

Description

void newt_textbox_set_height ( resource $textbox , int $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

textbox

height

Valeurs de retour

Aucune valeur n'est retournée.



newt_textbox_set_text

(PECL newt >= 0.1)

newt_textbox_set_text

Description

void newt_textbox_set_text ( resource $textbox , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

textbox

text

Valeurs de retour

Aucune valeur n'est retournée.



newt_textbox

(PECL newt >= 0.1)

newt_textbox

Description

resource newt_textbox ( int $left , int $top , int $width , int $height [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

width

height

flags

Valeurs de retour



newt_vertical_scrollbar

(PECL newt >= 0.1)

newt_vertical_scrollbar

Description

resource newt_vertical_scrollbar ( int $left , int $top , int $height [, int $normal_colorset [, int $thumb_colorset ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

normal_colorset

thumb_colorset

Valeurs de retour



newt_wait_for_key

(PECL newt >= 0.1)

newt_wait_for_keyNe continue pas tant qu'une touche n'est pas appuyée

Description

void newt_wait_for_key ( void )

Cette fonction ne continue pas tant qu'une touche n'est pas appuyée. La frappe est alors ignorée. Si une touche est déjà dans le tampon du terminal, cette fonction jette la frappe et continue immédiatement.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_clear_key_buffer() - Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle



newt_win_choice

(PECL newt >= 0.1)

newt_win_choice

Description

int newt_win_choice ( string $title , string $button1_text , string $button2_text , string $format [, mixed $args [, mixed $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button1_text

button2_text

format

args

Valeurs de retour



newt_win_entries

(PECL newt >= 0.1)

newt_win_entries

Description

int newt_win_entries ( string $title , string $text , int $suggested_width , int $flex_down , int $flex_up , int $data_width , array &$items , string $button1 [, string $... ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

text

suggested_width

flex_down

flex_up

data_width

items

button1

button2

Valeurs de retour

Exemples

Exemple #1 Exemple avec newt_win_entries()

<?php

newt_init
();
newt_cls();

$entries[] = array('text' => 'First name:''value' => &$f_name);
$entries[] = array('text' => 'Last name:',  'value' => &$l_name);

$rc newt_win_entries("User information""Please enter your credentials:"507730$entries"Ok""Back");
newt_finished ();

if (
$rc != 2) {
   echo 
"Your name is: $f_name $l_name\n";
}
?>



newt_win_menu

(PECL newt >= 0.1)

newt_win_menu

Description

int newt_win_menu ( string $title , string $text , int $suggestedWidth , int $flexDown , int $flexUp , int $maxListHeight , array $items , int &$listItem [, string $button1 [, string $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

text

suggestedWidth

flexDown

flexUp

maxListHeight

items

listItem

button1

Valeurs de retour

Aucune valeur n'est retournée.



newt_win_message

(PECL newt >= 0.1)

newt_win_message

Description

void newt_win_message ( string $title , string $button_text , string $format [, mixed $args [, mixed $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button_text

format

args

Valeurs de retour

Aucune valeur n'est retournée.



newt_win_messagev

(PECL newt >= 0.1)

newt_win_messagev

Description

void newt_win_messagev ( string $title , string $button_text , string $format , array $args )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button_text

format

args

Valeurs de retour

Aucune valeur n'est retournée.



newt_win_ternary

(PECL newt >= 0.1)

newt_win_ternary

Description

int newt_win_ternary ( string $title , string $button1_text , string $button2_text , string $button3_text , string $format [, mixed $args [, mixed $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button1_text

button2_text

button3_text

format

args

Valeurs de retour


Sommaire




Fonctions de contrôle d'écran de terminal


Introduction

ncurses (new curses, les nouveaux curseurs) sont une émulation libre des curseurs du System V Rel 4.0 (et plus récente). Ils utilisent le format terminfo, supportent les pavés numériques, les couleurs, les colorations multiples, les caractères de formulaire et les touches de fonctions. De par la nature interactive de cette bibliothèque, il est hors de question de l'utiliser pour écrire des applications pour le Web mais, par contre, elle peut être très intéressante pour écrire des scripts en ligne de commande.

Les fonctionnalités disponibles, telles que les couleurs, dépendent du terminal que vous utilisez. Utilisez les fonctions telles que ncurses_has_colors(), ncurses_can_change_color() et ncurses_has_ic() pour vérifier les capacités du votre.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.

Ncurses est disponible sur les plates-formes suivantes :

  • AIX
  • BeOS
  • BSD variants (FreeBSD, NetBSD, OpenBSD)
  • Cygwin
  • Digital Unix (aka OSF1)
  • GNU/Linux
  • HPUX
  • IRIX64
  • Mac OS X
  • OS/2
  • QNX
  • SCO OpenServer
  • Solaris
  • Tru64



Installation/Configuration

Sommaire


Pré-requis

Vous devez disposer des bibliothèques ncurses et des fichiers d'en-têtes. Téléchargez la dernière version sur le site de » ftp://ftp.gnu.org/pub/gnu/ncurses/ ou sur un miroir GNU.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ncurses.

Le support des caractères CRT (ncursesw) a été ajouté en version 1.0.1 de cette extension PECL.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit les ressources window, panel et pad.




Constantes pré-définies

Sommaire

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Codes d'erreurs ncurses

En cas d'erreur, les fonctions ncurses retournent -1. Certaines fonctions retourne 0 en cas de succès. Voyez les documentations associées pour plus de détails.



Couleurs

Constantes de couleurs ncurses
Constante Signification
NCURSES_COLOR_BLACK Pas de couleur
NCURSES_COLOR_WHITE blanc
NCURSES_COLOR_RED rouge : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_GREEN vert : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_YELLOW jaune : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_BLUE bleu : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_CYAN cyan : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_MAGENTA magenta : supporté lorsque le terminal est en mode couleurs


Touches

Constantes de touches ncurses
Constante Signification
NCURSES_KEY_F0 - NCURSES_KEY_F64 Touches de fonctions F1 : F64
NCURSES_KEY_DOWN flèche vers le bas
NCURSES_KEY_UP flèche vers le haut
NCURSES_KEY_LEFT flèche vers la gauche
NCURSES_KEY_RIGHT flèche vers la droite
NCURSES_KEY_HOME touche home (vers le haut + flèche vers la gauche)
NCURSES_KEY_BACKSPACE retour en arrière
NCURSES_KEY_DL efface une ligne
NCURSES_KEY_IL insère une ligne
NCURSES_KEY_DC efface un caractère
NCURSES_KEY_IC insère un caractère, ou bien passe en mode insertion
NCURSES_KEY_EIC termine le mode insertion
NCURSES_KEY_CLEAR efface l'écran
NCURSES_KEY_EOS efface l'écran jusqu'en bas
NCURSES_KEY_EOL efface l'écran jusqu'à la fin de la ligne
NCURSES_KEY_SF scrolle une ligne vers le bas
NCURSES_KEY_SR scrolle une ligne vers le haut
NCURSES_KEY_NPAGE page suivante
NCURSES_KEY_PPAGE page précédente
NCURSES_KEY_STAB place une tabulation
NCURSES_KEY_CTAB supprime une tabulation
NCURSES_KEY_CATAB supprime toutes les tabulations
NCURSES_KEY_SRESET remise à zéro partielle
NCURSES_KEY_RESET remise à zéro totale
NCURSES_KEY_PRINT imprime
NCURSES_KEY_LL inférieur gauche (sur le pavé numérique)
NCURSES_KEY_A1 supérieur gauche (sur le pavé numérique)
NCURSES_KEY_A3 supérieur droit (sur le pavé numérique)
NCURSES_KEY_B2 centre (sur le pavé numérique)
NCURSES_KEY_C1 inférieur gauche (sur le pavé numérique)
NCURSES_KEY_C3 inférieur droit (sur le pavé numérique)
NCURSES_KEY_BTAB tabulation arrière
NCURSES_KEY_BEG début
NCURSES_KEY_CANCEL annule
NCURSES_KEY_CLOSE ferme
NCURSES_KEY_COMMAND commande
NCURSES_KEY_COPY copie
NCURSES_KEY_CREATE crée
NCURSES_KEY_END fin
NCURSES_KEY_EXIT quitte
NCURSES_KEY_FIND trouve
NCURSES_KEY_HELP aide
NCURSES_KEY_MARK marque
NCURSES_KEY_MESSAGE message
NCURSES_KEY_MOVE déplace
NCURSES_KEY_NEXT suivant
NCURSES_KEY_OPEN ouvre
NCURSES_KEY_OPTIONS options
NCURSES_KEY_PREVIOUS précédent
NCURSES_KEY_REDO refaire
NCURSES_KEY_REFERENCE référence
NCURSES_KEY_REFRESH rafraîchis
NCURSES_KEY_REPLACE replace
NCURSES_KEY_RESTART redémarre
NCURSES_KEY_RESUME recommence
NCURSES_KEY_SAVE sauve
NCURSES_KEY_SBEG shift et début
NCURSES_KEY_SCANCEL shift et annule
NCURSES_KEY_SCOMMAND shift et commande
NCURSES_KEY_SCOPY shift et copie
NCURSES_KEY_SCREATE shift et crée
NCURSES_KEY_SDC shift et efface un caractère
NCURSES_KEY_SDL shift et efface une ligne
NCURSES_KEY_SELECT sélectionne
NCURSES_KEY_SEND shift et fin
NCURSES_KEY_SEOL shift et fin de ligne
NCURSES_KEY_SEXIT shift et quitte
NCURSES_KEY_SFIND shift et trouve
NCURSES_KEY_SHELP shift et aide
NCURSES_KEY_SHOME shift et home
NCURSES_KEY_SIC shift et entrée
NCURSES_KEY_SLEFT shift et flèche vers la gauche
NCURSES_KEY_SMESSAGE shift et message
NCURSES_KEY_SMOVE shift et déplace
NCURSES_KEY_SNEXT shift et suivant
NCURSES_KEY_SOPTIONS shift et options
NCURSES_KEY_SPREVIOUS shift et précédent
NCURSES_KEY_SPRINT shift et imprime
NCURSES_KEY_SREDO shift et refait
NCURSES_KEY_SREPLACE shift et remplace
NCURSES_KEY_SRIGHT shift et flèche vers la droite
NCURSES_KEY_SRSUME shift et recommence
NCURSES_KEY_SSAVE shift et sauve
NCURSES_KEY_SSUSPEND shift et suspend
NCURSES_KEY_UNDO défait
NCURSES_KEY_MOUSE un événement souris est survenu
NCURSES_KEY_MAX valeur maximale de clé


Souris

Constantes de souris
Constante Signification
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED bouton (1-4) relâché
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED bouton (1-4) pressé
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED bouton (1-4) cliqué
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED bouton (1-4) double cliqué
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED bouton (1-4) triple cliqué
NCURSES_BUTTON_CTRL Contrôle pressé durant le clic
NCURSES_BUTTON_SHIFT shift pressé durant le clic
NCURSES_BUTTON_ALT Alt pressé durant le clic
NCURSES_ALL_MOUSE_EVENTS indique tous les événements souris
NCURSES_REPORT_MOUSE_POSITION indique la position de la souris



Fonctions Ncurses


ncurses_addch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchAjoute un caractère à la position courante et avance le curseur

Description

int ncurses_addch ( int $ch )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch



ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchnstrAjoute une chaîne de taille donnée à la position courante

Description

int ncurses_addchnstr ( string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s

n



ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchstrAjoute une chaîne à la position courante

Description

int ncurses_addchstr ( string $s )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s



ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addnstrAjoute une chaîne à la position courante

Description

int ncurses_addnstr ( string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s

n



ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addstrAffiche du texte à la position courante

Description

int ncurses_addstr ( string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text



ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_assume_default_colorsDéfinit la couleur 0

Description

int ncurses_assume_default_colors ( int $fg , int $bg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fg

bg



ncurses_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attroffDésactive les attributs donnés

Description

int ncurses_attroff ( int $attributes )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes



ncurses_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attronActive les attributs fournis

Description

int ncurses_attron ( int $attributes )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes



ncurses_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attrsetModifie les attributs donnés

Description

int ncurses_attrset ( int $attributes )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes



ncurses_baudrate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_baudrateRetourne le baudrate du terminal

Description

int ncurses_baudrate ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_beep

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_beepFait beeper le terminal

Description

int ncurses_beep ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_beep() envoie une alerte audible (bell) et si ce n'est pas possible, fait flasher l'écran.

Voir aussi



ncurses_bkgd

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgdDéfinit les propriétés de fond d'écran pour le terminal

Description

int ncurses_bkgd ( int $attrchar )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attrchar



ncurses_bkgdset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgdsetDéfinit le fond d'écran

Description

void ncurses_bkgdset ( int $attrchar )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attrchar



ncurses_border

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_borderDessine un bord autour de l'écran avec les caractères données

Description

int ncurses_border ( int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Dessine les lignes spécifiées et les coins autour de la fenêtre principale.

Utilisez ncurses_wborder() pour les bordures autour de la fenêtre.

Liste de paramètres

Chaque paramètre attend 0 pour dessiner la ligne et 1 pour ne pas le faire.

left

right

top

bottom

tl_corner

Coin en haut à gauche

tr_corner

Coin en haut à droite

bl_corner

Coin en bas à gauche

br_corner

Coin en bas à droite

Voir aussi



ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bottom_panelPlace un conteneur visible en bas de la pile

Description

int ncurses_bottom_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel



ncurses_can_change_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_can_change_colorVérifie si le terminal peut changer de couleur

Description

bool ncurses_can_change_color ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si le terminal supporte les couleurs et si on peut peut changer ces couleurs à l'aide de la fonction ncurses_init_color(). ncurses doit être initialisé avec ncurses_init() avant d'appeler cette fonction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si on peut changer les couleurs du terminal, et FALSE sinon.

Voir aussi



ncurses_cbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_cbreakChange la bufferisation d'entrée

Description

bool ncurses_cbreak ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Désactive la bufferisation de ligne, et le traitement des caractères (les interruptions et le flux de caractères de contrôle sont inchangés), rendant les caractères tapés par l'utilisateur directement accessibles au programme.

Valeurs de retour

Retourne TRUE en cas de succès, et NCURSES_ERR en cas d'erreur.

Voir aussi



ncurses_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clearEfface l'écran

Description

bool ncurses_clear ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface totalement l'écran sans configurer les blancs.

Note : ncurses_clear() efface totalement l'écran sans configurer les blancs, qui représentent la couleur de fond d'écran. Pour effacer le fond d'écran avec les blancs, utilisez plutôt ncurses_erase().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ncurses_clrtobot

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtobotEfface l'écran depuis la position courante jusqu'au bas de l'écran

Description

bool ncurses_clrtobot ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface toutes les lignes de l'écran depuis le curseur jusqu'à la fin de l'écran. Les blancs qui sont créés avec la fonction ncurses_clrtobot() ont le rendu courant du fond d'écran.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ncurses_clrtoeol

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtoeolEfface l'écran depuis la position courante jusqu'à la fin de la ligne

Description

bool ncurses_clrtoeol ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la ligne courante depuis la position courante du curseur jusqu'à la fin. Les blancs qui sont créés avec la fonction ncurses_clrtoeol() ont le rendu courant du fond d'écran.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_contentLit la valeur RGB d'une couleur

Description

int ncurses_color_content ( int $color , int &$r , int &$g , int &$b )

Lit les composants rouge, vert et bleu d'une couleur. Les capacités de gestion des couleurs du terminal doivent avoir été initialisées avec ncurses_start_color() avant d'appeler cette fonction.

Liste de paramètres

color

Le numéero de la couleur dont il faut lire les composants. Cela peut être une des constantes de couleurs prédéfinies.

r

Une variable passée par référence, pour recevoir le composant rouge de la couleur demandée. La valeur retournée sera entre 0 et 1000.

g

Une variable passée par référence, pour recevoir le composant vert de la couleur demandée. La valeur retournée sera entre 0 et 1000.

b

Une variable passée par référence, pour recevoir le composant bleu de la couleur demandée. La valeur retournée sera entre 0 et 1000.

Valeurs de retour

Retourne -1 si la fonction a réussi, et 0 si ncurses ou la gestion des couleurs du terminal n'ont pas été initialisées.

Voir aussi



ncurses_color_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_setModifie la couleur de fond et de devant

Description

int ncurses_color_set ( int $pair )

Configure les couleurs actives de fond et d'affichage. Tous les caractères qui seront écrits après l'utilisation de cette fonction utiliseront ces couleurs. Cette fonction a besoin du support des couleurs dans le terminal et de leur initialisation avec ncurses_start_color().

ncurses utilise des paires de couleurs pour spécifier simultanément les deux couleurs. Utilisez ncurses_init_pair() pour définir une paire.

Liste de paramètres

pair

La paire de couleur qui sera utilisée pour définir les couleurs de fond d'écran et d'affichage.

Valeurs de retour

Retourne -1 en cas de succès, et 0 en cas d'échec.

Exemples

Exemple #1 Affichage d'une chaîne avec une couleur donnée à l'écran

<?php
ncurses_init
();

// Si le terminal supporte les couleurs, initialisation et activation
if (ncurses_has_colors()) {
    
ncurses_start_color();
    
ncurses_init_pair(1NCURSES_COLOR_YELLOWNCURSES_COLOR_BLUE);
    
ncurses_color_set(1);
}

// Écriture d'une chaîne à l'écran
ncurses_mvaddstr(1010"Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi



ncurses_curs_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_curs_setModifie l'état du curseur

Description

int ncurses_curs_set ( int $visibility )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

visibility



ncurses_def_prog_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_prog_modeSauve le mode du terminal

Description

bool ncurses_def_prog_mode ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve le mode du terminal pour réutilisation (dans les curses) avec la fonction ncurses_reset_prog_mode().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_def_shell_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_shell_modeSauve le mode de terminal (shell)

Description

bool ncurses_def_shell_mode ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve le mode de terminal courant pour qu'il soit réutilisé par le shell (et non pas par curses) avec la fonction ncurses_reset_shell_mode().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_define_keyDéfinit un code de clé (keycode)

Description

int ncurses_define_key ( string $definition , int $keycode )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

definition

keycode



ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_del_panelRetire un conteneur de la pile et l'efface (mais pas la fenêtre associée)

Description

bool ncurses_del_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel



ncurses_delay_output

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delay_outputRetarde l'affichage sur les terminaux utilisant des caractères de remplissage

Description

int ncurses_delay_output ( int $milliseconds )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds



ncurses_delch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delchEfface le caractère courant et décale le reste de la ligne vers la gauche

Description

bool ncurses_delch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la caractère sous le curseur. Tous les caractères sont alors décalés vers la gauche sur la même ligne, et le dernier caractère est remplacé par un vide. La position du curseur ne change pas.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_deleteln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_deletelnEfface la ligne courante, et monte l'écran d'une ligne

Description

bool ncurses_deleteln ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la ligne courante, qui est placée sous le curseur. Toutes les lignes sous-jacentes sont alors remontées d'un cran. La ligne du bas est effacée. La position du curseur ne change pas.

Valeurs de retour

Retourne FALSE en cas de succès, et sinon TRUE.

Voir aussi

  • ncurses_delch() - Efface le caractère courant et décale le reste de la ligne vers la gauche



ncurses_delwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delwinEfface une fenêtre ncurses

Description

bool ncurses_delwin ( resource $window )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_doupdate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_doupdateAffiche tout ce qui est prêt, et rafraîchit l'écran

Description

bool ncurses_doupdate ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Compare l'écran mémoire avec l'écran physique, et met à jour l'écran physique. Cette méthode est plus efficace que d'utiliser des rafraîchissements multiples.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ncurses_echo

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echoActive l'écho d'entrée clavier

Description

bool ncurses_echo ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Active le mode écho. Tous les caractères saisis par l'utilisateur sont affichés à l'écran par ncurses_getch().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE si une erreur survient.

Voir aussi



ncurses_echochar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echocharAffiche un caractère et rafraîchit l'écran

Description

int ncurses_echochar ( int $character )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

character



ncurses_end

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_endCesse l'utilisation de ncurses et efface l'écran

Description

int ncurses_end ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_erase

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_eraseEfface l'écran du terminal

Description

bool ncurses_erase ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Remplit le terminal avec des blancs.

Les blancs créés ont la couleur du fond d'écran, configurée avec la fonction ncurses_bkgd().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ncurses_erasechar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erasecharLit le caractère qui se fait effacer

Description

string ncurses_erasechar ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le caractère qui se fait effacer.

Valeurs de retour

Le caractère effacé, sous la forme d'une chaîne de caractères.

Voir aussi



ncurses_filter

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_filterDéfinit LINES pour iniscr() et newterm() à 1

Description

void ncurses_filter ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_flash

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flashFait flasher le terminal (visual bell)

Description

bool ncurses_flash ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Fait flasher le terminal et si ce n'est pas possible, envoie une alerte sonore (bell).

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_flushinp

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flushinpVide le buffer d'entrée du clavier

Description

bool ncurses_flushinp ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vide le buffer d'entrée du clavier que votre programme n'a pas encore lu.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.



ncurses_getch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getchLit un caractère sur le clavier

Description

int ncurses_getch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmaxyxRetourne la taille d'une fenêtre

Description

void ncurses_getmaxyx ( resource $window , int &$y , int &$x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Place la taille verticale et la taille horizontale de la fenêtre window dans les variables fournies.

Les variables doivent être passées par référence, donc, elles seront modifiées lorsque l'utilisateur change la taille du terminal.

Liste de paramètres

window

La fenêtre mesurée

x

Sera défini pour la largeur de la fenêtre

y

Sera défini pour la hauteur de la fenêtre

Valeurs de retour

Aucune valeur n'est retournée.



ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmouseLit les événements souris

Description

bool ncurses_getmouse ( array &$mevent )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_getmouse() lit les événements souris placés dans la queue.

Liste de paramètres

mevent

Les options d'événements seront placées dans ce paramètre, qui doit être un tableau, passé par référence (voir l'exemple ci-dessous).

En cas de succès, un tableau associatif, contenant les clés suivantes, sera délivré :

  • "id" : Identifiant permettant de distinguer plusieurs périphériques

  • "x" : Position à l'écran, en abscisse relative, et comptée en caractères

  • "y" : Position à l'écran, en ordonnée relative, et comptée en caractères

  • "z" : Actuellement non supporté

  • "mmask" : Action de souris

Valeurs de retour

Retourne FALSE si un événement de souris est actuellement visible dans la fenêtre fournie, TRUE sinon.

Exemples

Exemple #1 Exemple avec ncurses_getmouse()

<?php
switch (ncurses_getch()){
  case 
NCURSES_KEY_MOUSE:
    if (!
ncurses_getmouse($mevent)){
      if (
$mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        
$mouse_x $mevent["x"]; // Sauve la position de la souris
        
$mouse_y $mevent["y"];
      }
    }
  break;

  default:
    
/* .... */
}
?>

Voir aussi



ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getyxRetourne la position courante du curseur pour une fenêtre

Description

void ncurses_getyx ( resource $window , int &$y , int &$x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x



ncurses_halfdelay

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_halfdelayMet le terminal en mode semi-retardé

Description

int ncurses_halfdelay ( int $tenth )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

tenth



ncurses_has_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_colorsVérifie que le terminal supporte les couleurs

Description

bool ncurses_has_colors ( void )

Vérifie que le terminal supporte les couleurs. Cette fonction peut être utilisée pour écrire des programmes indépendants des capacités du terminal. ncurses doit être initialisé avec ncurses_init() avant d'appeler cette fonction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le terminal supporte les couleurs, FALSE sinon.

Exemples

Exemple #1 Writing a string with a specified color to the screen

<?php
ncurses_init
();

// Si le terminal supporte les couleurs, initialise et active les couleurs
if (ncurses_has_colors()) {
    
ncurses_start_color();
    
ncurses_init_pair(1NCURSES_COLOR_YELLOWNCURSES_COLOR_BLUE);
    
ncurses_color_set(1);
}

// Écrit une chaîne à l'écran
ncurses_mvaddstr(1010"Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi



ncurses_has_ic

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_icVérifie les capacités d'insertion et d'effacement

Description

bool ncurses_has_ic ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie les capacités d'insertion et d'effacement du terminal.

Valeurs de retour

Retourne TRUE lorsque le terminal a ces capacités, FALSE sinon.

Voir aussi



ncurses_has_il

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_ilVérifie les capacités d'insertion et d'effacement

Description

bool ncurses_has_il ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie les capacités d'insertion et d'effacement du terminal.

Valeurs de retour

Retourne TRUE si le terminal a ces capacités, FALSE sinon.

Voir aussi



ncurses_has_key

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_keyVérifie la présence des touches de fonctions sur le clavier

Description

int ncurses_has_key ( int $keycode )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode



ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hide_panelRetire un conteneur de la pile, pour le rendre invisible

Description

int ncurses_hide_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel



ncurses_hline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hlineDessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale

Description

int ncurses_hline ( int $charattr , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

charattr

n



ncurses_inch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_inchLit le caractère et ses attributs à la position courante

Description

string ncurses_inch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le caractère de la position courante.

Valeurs de retour

Retourne le caractère.



ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_colorConfigure une nouvelle valeur RGB pour une couleur

Description

int ncurses_init_color ( int $color , int $r , int $g , int $b )

Définit ou redéfinit une couleur. Lorsque cette fonction est appelée, toutes les occurrences d'une couleur donnée à l'écran, s'il y en a, changent immédiatement de définition.

Le terminal doit supporter les couleurs, et avoir été initialisé avec la fonction ncurses_start_color() avant d'appeler cette fonction. De plus, le terminal doit avoir être capable de changer les couleurs, ce qui peut être vérifié avec la fonction ncurses_can_change_color().

Liste de paramètres

color

Le numéro d'identification de la couleur à redéfinir. Cela peut être une des constantes de couleurs.

r

Une valeur de couleur pour le rouge, entre 0 et 1000.

g

Une valeur de couleur pour le vert, entre 0 et 1000.

b

Une valeur de couleur pour le bleu, entre 0 et 1000.

Valeurs de retour

Retourne -1 si la fonction a réussi, et 0 si ncurses ou les couleurs du terminal n'ont pas été initialisées, ou que le terminal ne supporte pas le changement de couleurs.

Voir aussi



ncurses_init_pair

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_pairAlloue une paire de couleur

Description

int ncurses_init_pair ( int $pair , int $fg , int $bg )

Définit ou redéfinit une paire de couleur pour l'affichage à l'écran : fond d'écran et affichage. Si la paire de couleur a déjà été initialisée, l'écran est rafraîchit et toutes les occurrences sont modifiées pour refléter la nouvelle définition.

Le support des couleurs doit avoir été initialisé avec ncurses_start_color() avant d'appeler cette fonction. La première paire de couleur (numéro 0) est supposée être blanc sur noir pardéfaut, mais peut être modifiée avec ncurses_assume_default_colors().

Liste de paramètres

pair

Le numéro de la paire à définir.

fg

La couleur d'affichage pour la paire de couleurs. Doit être une des couleurs prédéfinies ou une couleur définie par ncurses_init_color(), si le terminal est capable de changer les couleurs.

bg

La couleur de fond pour la paire de couleurs. Doit être une des couleurs prédéfinies ou une couleur définie par ncurses_init_color(), si le terminal est capable de changer les couleurs.

Valeurs de retour

Retourne -1 si la fonction réussit, et 0 si ncurses ou le support des couleurs n'a pas été initialisé.

Notes

Notez que le support du changement de couleurs n'est pas nécessaire pour définir une paire de couleurs pré-existante, mais uniquement pour changer la définition des composants (rouge, vert et bleu) des couleurs elles-mêmes, via ncurses_init_color().

Exemples

Exemple #1 Écriture d'une chaîne dans une couleur donnée

<?php
ncurses_init
();

// Si le terminal supporte les couleurs, initialisation et activation
if (ncurses_has_colors()) {
    
ncurses_start_color();
    
ncurses_init_pair(1NCURSES_COLOR_YELLOWNCURSES_COLOR_BLUE);
    
ncurses_color_set(1);
}

// Écriture d'une chaîne à la position donnée
ncurses_mvaddstr(1010"Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi



ncurses_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_initInitialise ncurses

Description

void ncurses_init ( void )

Initialise l'interface ncurses et doit être utilisé avant n'importe quelle autre fonction ncurses.

Notez que ncurses_end() doit être appelé avant la fin du programme, ou alors le terminal ne sera pas remis dans sont mode non-visuel correct.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ncurses_end() - Cesse l'utilisation de ncurses et efface l'écran



ncurses_insch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_inschInsère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant

Description

int ncurses_insch ( int $character )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

character



ncurses_insdelln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insdellnInsère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)

Description

int ncurses_insdelln ( int $count )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

count



ncurses_insertln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insertlnInsère une ligne et décale le reste de l'écran vers le bas

Description

int ncurses_insertln ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère une nouvelle ligne au-dessus de la ligne courante. La ligne du bas de l'écran sera perdue.



ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insstrInsère une chaîne à la position courante, et décale le reste de la chaîne à droite

Description

int ncurses_insstr ( string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text



ncurses_instr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_instrLit une chaîne depuis le terminal

Description

int ncurses_instr ( string &$buffer )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Lit une chaîne depuis le terminal et retourne le nombre de caractères lus depuis la position courante jusqu'à la fin de la ligne.

Liste de paramètres

buffer

Les caractères. Les attributs seront supprimés.

Valeurs de retour

Retourne le nombre de caractères.



ncurses_isendwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_isendwinVérifie si ncurses est en mode endwin

Description

bool ncurses_isendwin ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si ncurses est en mode endwin.

Valeurs de retour

Retourne TRUE, si ncurses_end() a été appelée sans aucun appel subséquent à ncurses_wrefresh(), FALSE sinon.

Voir aussi



ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keyokActive ou désactive un code de clé (keycode)

Description

int ncurses_keyok ( int $keycode , bool $enable )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode

enable



ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keypadActive ou désactive le keypad

Description

int ncurses_keypad ( resource $window , bool $bf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

bf



ncurses_killchar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_killcharRetourne la ligne du caractère actuellement supprimé

Description

string ncurses_killchar ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la ligne du caractère actuellement supprimé.

Valeurs de retour

Retourne le caractère supprimé.

Voir aussi



ncurses_longname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_longnameRetourne la description du terminal

Description

string ncurses_longname ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne une description complète du terminal.

Valeurs de retour

Retourne une description complète du terminal. La description est tronquée à 128 caractères. En cas d'erreur, FALSE sera retourné.

Voir aussi



ncurses_meta

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_metaActive/désactive les informations de méta clé 8-bits

Description

int ncurses_meta ( resource $window , bool $8bit )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

8bit



ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouse_trafoTransforme les coordonnées

Description

bool ncurses_mouse_trafo ( int &$y , int &$x , bool $toscreen )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

toscreen



ncurses_mouseinterval

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouseintervalConfigure les délais entre les clics de souris

Description

int ncurses_mouseinterval ( int $milliseconds )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds



ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mousemaskConfigure les événements de souris à surveiller

Description

int ncurses_mousemask ( int $newmask , int &$oldmask )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Configure les événements de souris à surveiller. Par défaut, aucun événement souris n'est rapporté.

Les événements souris sont représentés par NCURSES_KEY_MOUSE dans la fonction ncurses_wgetch(). Pour lire les données d'événements dans la queue, utilisez la fonction ncurses_getmouse().

Liste de paramètres

newmask

Les options de masque de souris sont les constantes suivantes :

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Comme effet secondaire, utiliser la valeur de 0 avec le paramètre newmask désactive la souris. Lui donner une valeur positive non nulle réactive la souris.

oldmask

Ce paramètre sera défini avec la valeur du masque précédent.

Valeurs de retour

Retourne un masque pour indiquer quels paramètres de newmask peut être rapporté. En cas d'échec complet, elle retourne 0.

Exemples

Exemple #1 Exemple avec ncurses_mousemask()

<?php
$newmask 
NCURSES_BUTTON1_CLICKED NCURSES_BUTTON1_RELEASED;
$mask ncurses_mousemask($newmask$oldmask);
if (
$mask $newmask){
    
printf("Toutes les options de souris spécifiées sont supportées\n");
}
?>

Voir aussi



ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move_panelDéplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]

Description

int ncurses_move_panel ( resource $panel , int $startx , int $starty )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

startx

starty



ncurses_move

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_moveDéplace la position d'affichage

Description

int ncurses_move ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x



ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchDéplace la position courante et ajoute un caractère

Description

int ncurses_mvaddch ( int $y , int $x , int $c )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

c



ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchnstrDéplace la position et ajoute la chaîne attribuée avec la taille donnée

Description

int ncurses_mvaddchnstr ( int $y , int $x , string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

n



ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchstrDéplace la position et ajoute une chaîne attribuée

Description

int ncurses_mvaddchstr ( int $y , int $x , string $s )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s



ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddnstrDéplace la position et ajoute une chaîne de taille donnée

Description

int ncurses_mvaddnstr ( int $y , int $x , string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

n



ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddstrDéplace la position et ajoute une chaîne

Description

int ncurses_mvaddstr ( int $y , int $x , string $s )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s



ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvcurDéplace immédiatement le curseur

Description

int ncurses_mvcur ( int $old_y , int $old_x , int $new_y , int $new_x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

old_y

old_x

new_y

new_x



ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvdelchDéplace la position et efface le caractère, puis décale le reste de la ligne à gauche

Description

int ncurses_mvdelch ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x



ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvgetchDéplace la position et lit le caractère à la nouvelle position

Description

int ncurses_mvgetch ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x



ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvhlineChoisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée

Description

int ncurses_mvhline ( int $y , int $x , int $attrchar , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

attrchar

n



ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvinchDéplace la position et lit le caractère à la nouvelle position

Description

int ncurses_mvinch ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x



ncurses_mvvline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvvlineModifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée

Description

int ncurses_mvvline ( int $y , int $x , int $attrchar , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

attrchar

n



ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvwaddstrAjoute une chaîne à une nouvelle position dans la fenêtre

Description

int ncurses_mvwaddstr ( resource $window , int $y , int $x , string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x

text



ncurses_napms

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_napmsFait une pause

Description

int ncurses_napms ( int $milliseconds )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds



ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_new_panelCrée un nouveau conteneur et l'associe à une fenêtre

Description

resource ncurses_new_panel ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newpadCrée un nouveau pad (fenêtre)

Description

resource ncurses_newpad ( int $rows , int $cols )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

rows

cols



ncurses_newwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newwinCrée une nouvelle fenêtre

Description

resource ncurses_newwin ( int $rows , int $cols , int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée une nouvelle fenêtre pour y dessiner des éléments.

Lors de la création de la nouvelle fenêtre, pensez à utiliser ncurses_getmaxyx() pour repérer les espaces disponibles, sachant qu'un terminal est individuel et peut varier.

Liste de paramètres

rows

Nombre de lignes

cols

Nombre de colonnes

y

Y : coordonnée de l'origine

x

X : coordonnée de l'origine

Valeurs de retour

Retourne un identifiant de ressource pour la nouvelle fenêtre.



ncurses_nl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nlConvertit les nouvelles lignes et retours chariot en sauts de ligne

Description

bool ncurses_nl ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_nocbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nocbreakPasse le terminal en mode cooked

Description

bool ncurses_nocbreak ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le terminal en mode normal (cooked). Initialement, le terminal peut ou peut ne pas être en mode cbreak, comme mode hérité. Par conséquent, un program doit appeler ncurses_cbreak() et ncurses_nocbreak() explicitement.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_noecho

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noechoDésactive l'écho clavier

Description

bool ncurses_noecho ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Annule l'effet d'écho des caractères tapés à l'écran.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_nonl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nonlNe convertit par les nouvelles lignes et retours chariot en sauts de ligne

Description

bool ncurses_nonl ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_noqiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noqiflushNe vide pas les buffers sur réception des caractères de signaux

Description

void ncurses_noqiflush ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_noraw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_norawDéconfigure le mode brut du terminal

Description

bool ncurses_noraw ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Déconfigure le mode brut du terminal. Le mode brut est similaire au mode cbreak, car les caractères tapés sont immédiatement passés au programme. La différence est qu'en mode brut, les caractères d'interruption, de fin de programme, de suspension et de suivi du flux de caractères sont passés sans être interprétés.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pair_contentRetourne les couleurs de fond et d'affichage d'une paire

Description

int ncurses_pair_content ( int $pair , int &$f , int &$b )

ncurses_pair_content() lit les couleurs de fond et de forme qui constitue une paire. Le support des couleurs du terminal doivent avoir été initialisées avec la fonction ncurses_start_color() avant d'appeler cette fonction.

Liste de paramètres

pair

Le numéro de la paire de couleur qu'il faut lire.

f

Une référence dans laquelle les informations de la couleur d'affichage sera placée. Les informations retournées seront un numéro de couleur parmi les couleurs prédéfinies ou une couleur définie précédemment par ncurses_init_color(), si le terminal supporte le changement de couleur.

b

Une référence dans laquelle les informations de la couleur de fond sera placée. Les informations retournées seront un numéro de couleur parmi les couleurs prédéfinies ou une couleur définie précédemment par ncurses_init_color(), si le terminal supporte le changement de couleur.

Valeurs de retour

Retourne -1 si la fonction a réussi, et 0 si ncurses ou le support des couleurs du terminal n'ont pas été initialisées.

Voir aussi



ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_aboveRetourne le conteneur au-dessus du conteneur

Description

resource ncurses_panel_above ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Valeurs de retour

Si le conteneur est null, retourne le dernier conteneur de la pile.



ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_belowRetourne le conteneur sous le conteneur

Description

resource ncurses_panel_below ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Liste de paramètres

Si le conteneur est null, le premier conteneur de la pile est retourné.



ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_windowRetourne la fenêtre associée avec un conteneur

Description

resource ncurses_panel_window ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel



ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pnoutrefreshCopie une région depuis un pad dans un écran virtuel

Description

int ncurses_pnoutrefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol



ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_prefreshCopie une région depuis un pad dans l'écran virtuel

Description

int ncurses_prefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol



ncurses_putp

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_putpApplique l'information d'espacement à la chaîne et l'affiche

Description

int ncurses_putp ( string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text



ncurses_qiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_qiflushVide les buffers après détection d'un caractère de signal

Description

void ncurses_qiflush ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_raw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_rawPasse le terminal en mode brut (raw)

Description

bool ncurses_raw ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Place le terminal en mode brut. Le mode brut est similaire au mode cbreak, car les caractères tapés sont immédiatement passés au programme. La différence est qu'en mode brut, les caractères d'interruption, de fin de programme, de suspension et de suivi du flux de caractères sont passés sans être interprétés.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_refreshRafraîchit l'écran

Description

int ncurses_refresh ( int $ch )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch



ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_replace_panelRemplace la fenêtre associée à un conteneur

Description

int ncurses_replace_panel ( resource $panel , resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

window



ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_prog_modeRestaure le mode prog sauvé par def_prog_mode

Description

int ncurses_reset_prog_mode ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_shell_modeRestaure le mode shell, mode sauvé par def_shell_mode

Description

int ncurses_reset_shell_mode ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_resetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_resettyRétablit le terminal sauvé

Description

bool ncurses_resetty ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Rétablit le terminal sauvé par la fonction ncurses_savetty().

Valeurs de retour

Retourne toujours FALSE.

Voir aussi



ncurses_savetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_savettySauve l'état du terminal

Description

bool ncurses_savetty ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve l'état courant du terminal. L'état courant du terminal peut être rétabli avec la fonction ncurses_resetty().

Valeurs de retour

Retourne toujours FALSE.

Voir aussi



ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_dumpSauve un écran dans un fichier

Description

int ncurses_scr_dump ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename



ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_initInitialise un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_init ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename



ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_restoreRétablit un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_restore ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename



ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_setConfigure un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_set ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename



ncurses_scrl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scrlScrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante

Description

int ncurses_scrl ( int $count )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

count



ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_show_panelPlace un conteneur invisible en haut de la pile, pour le rendre visible

Description

int ncurses_show_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel



ncurses_slk_attr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attrRetourne l'attribut de la clé soft label courante

Description

int ncurses_slk_attr ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'attribut de la clé soft label.

Valeurs de retour

L'attribut, sous la forme d'un entier.



ncurses_slk_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attroffDésactive l'attribut donné pour les étiquettes des function-key (fonctions clés)

Description

int ncurses_slk_attroff ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg



ncurses_slk_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attronActive l'attribut donné pour les étiquettes des function-key (fonctions clés)

Description

int ncurses_slk_attron ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg



ncurses_slk_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attrsetDéfinit les attributs donnés à une étiquette function-key

Description

int ncurses_slk_attrset ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg



ncurses_slk_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_clearEfface les soft labels de l'écran

Description

bool ncurses_slk_clear ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_slk_clear() efface les clés label keys de l'écran.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.



ncurses_slk_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_colorConfigure la couleur des clés soft label

Description

int ncurses_slk_color ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg



ncurses_slk_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_initInitialise les fonctions de clés soft label

Description

bool ncurses_slk_init ( int $format )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Initialise les fonctions de clés soft label.

ncurses_slk_init() doit être appelée avant que ncurses_init() et ncurses_newwin() soient utilisées.

Liste de paramètres

format

Si ncurses_init() utilise une ligne de stdscr pour émuler les soft labels, alors le paramètre format détermine comment les labels seront arrangés sur l'écran.

La valeur 0 indique que vous utiliserez un arrangement de type 3-2-3; la valeur 1 indiquera un arrangement 4-4; la valeur 2 indiquera un mode 4-4-4, mais une ligne d'index sera créée en plus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ncurses_slk_noutrefresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_noutrefreshCopie toutes les clés soft label à l'écran virtuel

Description

bool ncurses_slk_noutrefresh ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_slk_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_refreshCopie les clés soft label à l'écran

Description

int ncurses_slk_refresh ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Copie les clés soft label de l'écran virtuel vers l'écran physique.



ncurses_slk_restore

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_restoreRétablit les clés soft label

Description

int ncurses_slk_restore ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Rétablit les clés soft label après l'utilisation de ncurses_slk_clear().



ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_setModifie les étiquettes de clé de fonction (function key labels)

Description

bool ncurses_slk_set ( int $labelnr , string $label , int $format )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

labelnr

label

format



ncurses_slk_touch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_touchForce l'affichage lorsque ncurses_slk_noutrefresh est utilisé

Description

int ncurses_slk_touch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Force l'affichage de tous les soft labels dès la prochaine utilisation de ncurses_slk_noutrefresh().



ncurses_standend

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standendCesse l'utilisation de l'attribut 'standout'

Description

int ncurses_standend ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_standout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standoutCommence l'utilisation de l'attribut 'standout'

Description

int ncurses_standout ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_start_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_start_colorActive les couleurs

Description

int ncurses_start_color ( void )

ncurses_start_color() intialise le support des couleurs dans ncurses. Cette fonction doit être appelée avant toute manipulation des couelurs, et après ncurses_init(). C'est une bonne pratique que d'appeler cette fonction juste après ncurses_init().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne 0 en cas de succès, et -1 si la table de couleurs n'a pas pu être allouée ou ncurses n'a pas été initialisée.

Exemples

Exemple #1 Affichage d'une chaîne en couleur à l'écran

<?php
ncurses_init
();

// Si le terminal supporte les couleurs, initialisation et activation
if (ncurses_has_colors()) {
    
ncurses_start_color();
    
ncurses_init_pair(1NCURSES_COLOR_YELLOWNCURSES_COLOR_BLUE);
    
ncurses_color_set(1);
}

// Ecriture de la chaîne à l'écran
ncurses_mvaddstr(1010"Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi



ncurses_termattrs

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termattrsRetourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR

Description

bool ncurses_termattrs ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_termname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termnameRetourne le nom court du terminal

Description

string ncurses_termname ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom court du terminal.

Valeurs de retour

Retourne le nom court du terminal. Le nom court est tronqué à 14 caractères. En cas d'erreur, ncurses_termname() retourne NULL.

Voir aussi



ncurses_timeout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_timeoutConfigure le temps d'expiration des séquences clavier spéciales

Description

void ncurses_timeout ( int $millisec )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

millisec



ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_top_panelPlace un conteneur visible sur le haut de la pile

Description

int ncurses_top_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel



ncurses_typeahead

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_typeaheadSpécifie un autre descripteur de fichier pour la vérification à la volée des données saisies

Description

int ncurses_typeahead ( int $fd )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fd



ncurses_ungetch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetchReplace un caractère dans la queue d'entrée

Description

int ncurses_ungetch ( int $keycode )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode



ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetmouseAjoute un événement souris dans la queue

Description

bool ncurses_ungetmouse ( array $mevent )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un événement souris dans la queue d'entrée, et associe cet événement avec l'état du terminal et les coordonnées relatives (en caractères) de la souris, spécifiés dans mevent.

Liste de paramètres

mevent

Un tableau associatif spécifiant les options de l'événement :

  • "id" : identifiant permettant de distinguer plusieurs périphériques

  • "x" : position à l'écran, en abscisse relative, et comptée en caractères

  • "y" : position à l'écran, en ordonnée relative, et comptée en caractères

  • "z" : actuellement non supporté

  • "mmask" : action de souris

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi



ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_update_panelsRafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile

Description

void ncurses_update_panels ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_use_default_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_default_colorsAssigne la couleur de terminal pour l'index -1

Description

bool ncurses_use_default_colors ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_use_env

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_envContrôle l'utilisation des informations d'environnement concernant la taille du terminal

Description

void ncurses_use_env ( bool $flag )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag



ncurses_use_extended_names

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_extended_namesContrôle l'utilisation des noms étendus dans les descriptions terminfo

Description

int ncurses_use_extended_names ( bool $flag )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag



ncurses_vidattr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vidattrAffiche la chaîne sur un terminal dans le mode d'attribut vidéo

Description

int ncurses_vidattr ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg



ncurses_vline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vlineDessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée

Description

int ncurses_vline ( int $charattr , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

charattr

n



ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddch Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur

Description

int ncurses_waddch ( resource $window , int $ch )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

ch



ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddstrAffiche le texte à la position courante dans la fenêtre

Description

int ncurses_waddstr ( resource $window , string $str [, int $n ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

str

n



ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattroffDésactive les attributs d'une fenêtre

Description

int ncurses_wattroff ( resource $window , int $attrs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs



ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattronEfface les attributs de la fenêtre

Description

int ncurses_wattron ( resource $window , int $attrs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs



ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattrsetModifie les attributs d'une fenêtre

Description

int ncurses_wattrset ( resource $window , int $attrs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs



ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wborderDessine le bord d'une fenêtre avec un caractère qualifié

Description

int ncurses_wborder ( resource $window , int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Dessine les lignes spécifiées et les coins autour de la fenêtre passée par window.

Utilisez ncurses_border() pour les bordures de la fenêtre principale.

Liste de paramètres

Chaque paramètre attend 0 pour dessiner et 1 pour ne pas le faire.

window

La fenêtre à traiter

left

right

top

bottom

tl_corner

Coin en haut, à gauche

tr_corner

Coin en haut, à droite

bl_corner

Coin en bas, à gauche

br_corner

Coin en bas, à droite

Voir aussi

  • ncurses_border() - Dessine un bord autour de l'écran avec les caractères données



ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wclearEfface la fenêtre

Description

int ncurses_wclear ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wcolor_setModifie les paires de couleurs de la fenêtre

Description

int ncurses_wcolor_set ( resource $window , int $color_pair )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

color_pair



ncurses_werase

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_weraseEfface le contenu de la fenêtre

Description

int ncurses_werase ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wgetchLit un caractère depuis le clavier (fenêtre)

Description

int ncurses_wgetch ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_whline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_whlineDessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale

Description

int ncurses_whline ( resource $window , int $charattr , int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

charattr

n



ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmouse_trafoTransforme les coordonnées d'une fenêtre

Description

bool ncurses_wmouse_trafo ( resource $window , int &$y , int &$x , bool $toscreen )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

x

y

toscreen



ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmoveDéplace la position d'affichage de la fenêtre

Description

int ncurses_wmove ( resource $window , int $y , int $x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x



ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wnoutrefreshCopie la fenêtre dans l'écran virtuel

Description

int ncurses_wnoutrefresh ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wrefreshRafraîchit la fenêtre sur l'écran du terminal

Description

int ncurses_wrefresh ( resource $window )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandendTermine le mode standout de la fenêtre

Description

int ncurses_wstandend ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandoutPasse une fenêtre en mode standout

Description

int ncurses_wstandout ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window



ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wvlineDessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale

Description

int ncurses_wvline ( resource $window , int $charattr , int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

charattr

n


Sommaire




GNU Readline


Introduction

Les fonctions readline implémente une interface de la bibliothèque GNU Readline. Ce sont des fonctions qui fournissent des lignes de commandes éditables. Un exemple est fourni montrant comment Bash vous permet d'utiliser les flèches pour insérer des caractères ou scroller dans l'historique des commandes. De part la nature de cette bibliothèque, vous ne devriez pas en avoir besoin dans vos applications Web mais par contre, cela peut être très utile lors de l'écriture de scripts utilisés depuis la ligne de command.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Pour utiliser les fonctions readline, vous devez installer la bibliothèque libreadline. Vous pouvez la trouver sur la page d'accueil du projet GNU Readline, ici : » http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Elle est maintenu par Chet Ramey, qui est également l'auteur de Bash.

Vous pouvez également utiliser ces fonctions avec la bibliothèque libedit, une alternative non-GPL à la bibliothèque readline. La bibliothèque libedit est sous licence BSD et est disponible au téléchargement depuis » http://www.thrysoee.dk/editline/.



Installation

Pour utiliser ces fonctions, vous devez compiler PHP, en version CGI ou CLI. Vous devez aussi utiliser l'option de compilation --with-readline[=DIR] . Si vous souhaitez utiliser la bibliothèque libedit readline, en remplacement, compilez PHP avec l'option --with-libedit[=DIR] .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Readline


readline_add_history

(PHP 4, PHP 5)

readline_add_historyAjoute une ligne à l'historique

Description

bool readline_add_history ( string $line )

Ajoute une ligne à l'historique.

Liste de paramètres

line

La ligne à ajouter à l'historique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



readline_callback_handler_install

(PHP 5 >= 5.1.0)

readline_callback_handler_installInitialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement

Description

bool readline_callback_handler_install ( string $prompt , callback $callback )

Définie une interface de rappel pour readline, affiche le prompt et retourne immédiatement. Appeler cette fonction deux fois sans effacer au préalable l'interface de rappel précédente effacera automatiquement et proprement l'ancienne interface.

La fonctionnalité de rappel est très utile lorsque combinée à la fonction stream_select() permettant l'interconnexion IO / entrée utilisateur, à la différence de readline().

Liste de paramètres

prompt

Le message de prompt.

callback

La fonction callback prend un paramètre : l'entrée utilisateur retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'interface de rappelde Readline

<?php
function rl_callback($ret)
{
    global 
$c$prompting;

    echo 
"You entered: $ret\n";
    
$c++;

    if (
$c 10) {
        
$prompting false;
        
readline_callback_handler_remove();
    } else {
        
readline_callback_handler_install("[$c] Entrer quelque chose : "'rl_callback');
    }
}

$c 1;
$prompting true;

readline_callback_handler_install("[$c] Entrer quelque chose : "'rl_callback');

while (
$prompting) {
    
$w NULL;
    
$e NULL;
    
$n stream_select($r = array(STDIN), $w$enull);
    if (
$n && in_array(STDIN$r)) {
        
// lit un caractère, appelera la fonction de callback lorsqu'une nouvelle ligne est entrée
        
readline_callback_read_char();
    }
}

echo 
"Le prompt est désactivé. Tout a été effectué.\n";
?>

Voir aussi



readline_callback_handler_remove

(PHP 5 >= 5.1.0)

readline_callback_handler_removeEfface un gestionnaire de rappel readline

Description

bool readline_callback_handler_remove ( void )

Efface un gestionnaire de rappel installé précédemment et restaure les paramètres du terminal.

Valeurs de retour

Retourne TRUE si un gestionnaire de rappel précédemment installé a été effacé ou FALSE s'il n'a pas été trouvé.

Exemples

Voir la fonction readline_callback_handler_install() pour un exemple concernant l'utilisation de l'interface de rappel readline.

Voir aussi



readline_callback_read_char

(PHP 5 >= 5.1.0)

readline_callback_read_charLit un caractère et informe l'interface de rappel readline

Description

void readline_callback_read_char ( void )

Lit un caractère de l'entrée utilisateur. Lorsqu'une ligne est reçue, la fonction informe l'interface de rappel readline installée en utilisant readline_callback_handler_install() qu'une ligne est prête à être entrée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir la fonction readline_callback_handler_install() pour un exemple concernant l'utilisation de l'interface de rappel readline.

Voir aussi



readline_clear_history

(PHP 4, PHP 5)

readline_clear_historyEfface l'historique

Description

bool readline_clear_history ( void )

Efface l'historique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



readline_completion_function

(PHP 4, PHP 5)

readline_completion_functionEnregistre une fonction de complétion

Description

bool readline_completion_function ( callback $function )

Enregistre une nouvelle fonction de complétion. C'est la même fonctionnalité que lorsque vous utilisez la touche de tabulation sous Bash.

Liste de paramètres

function

Vous devez fournir le nom d'une fonction qui accepte un nom partiel de commande, et retourne une liste de fonctions complète possibles.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



readline_info

(PHP 4, PHP 5)

readline_infoLit ou modifie diverses variables internes de readline

Description

mixed readline_info ([ string $varname [, string $newvalue ]] )

Lit/modifie diverses variables internes.

Liste de paramètres

varname

Un nom de variable.

newvalue

Si fourni, ce sera la nouvelle valeur à définir.

Valeurs de retour

Appelée sans paramètre, readline_info() retourne une tableau contenant les valeurs des paramètres de Readline. Les éléments seront indexés par les clés suivantes : "done", "end", "erase_empty_line", "library_version", "line_buffer", "mark", "pending_input", "point", "prompt", "readline_name" et "terminal_name".

Si appelée avec un ou deux paramètres, l'ancienne valeur est retournée.



readline_list_history

(PHP 4, PHP 5)

readline_list_historyListe l'historique

Description

array readline_list_history ( void )

Liste l'historique.

Valeurs de retour

Retourne un tableau avec la liste de toutes les lignes de commandes de l'historique. Les éléments sont indexés numériquement, à partir de 0.



readline_on_new_line

(PHP 5 >= 5.1.0)

readline_on_new_lineInforme readline que le curseur est passé à une nouvelle ligne

Description

void readline_on_new_line ( void )

Informe readline que le curseur est passé à une nouvelle ligne.

Valeurs de retour

Aucune valeur n'est retournée.



readline_read_history

(PHP 4, PHP 5)

readline_read_historyLit l'historique

Description

bool readline_read_history ([ string $filename ] )

Lit une ligne de l'historique depuis le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier contenant l'historique des commandes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



readline_redisplay

(PHP 5 >= 5.1.0)

readline_redisplayDemande à readline de refaire l'affichage

Description

void readline_redisplay ( void )

Demande à readline de refaire l'affichage.

Valeurs de retour

Aucune valeur n'est retournée.



readline_write_history

(PHP 4, PHP 5)

readline_write_historyÉcrit dans l'historique

Description

bool readline_write_history ([ string $filename ] )

Écrit l'historique dans le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier à sauvegarder.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



readline

(PHP 4, PHP 5)

readlineLit une ligne

Description

string readline ([ string $prompt ] )

Retourne une ligne entrée par l'utilisateur. Vous devez ajouter cette ligne à l'historique vous-même, avec la fonction readline_add_history().

Liste de paramètres

prompt

Vous pouvez spécifier une chaîne de caractères à utiliser comme prompt à l'utilisateur.

Valeurs de retour

Retourne une chaîne de caractères depuis l'utilisateur. La ligne retournée a été débarrassée du caractère final de nouvelle ligne.

Exemples

Exemple #1 Exemple avec readline()

<?php
// Lit 3 commandes de l'utilisateur
for ($i=0$i 3$i++) {
        
$line readline("Commande : ");
        
readline_add_history($line);
}

// Liste l'historique
print_r(readline_list_history());

// Liste les variables
print_r(readline_info());
?>


Sommaire





Extensions sur l'archivage et la compression


Bzip2


Introduction

Les fonctions bzip2 sont utilisées pour lire et écrire de façon transparente les fichiers compressés bzip2 (.bz2).



Installation/Configuration

Sommaire


Pré-requis

Cette extension utilise les fonctions » bzip2 de la bibliothèque écrite par Julian Seward. Ce module nécessite bzip2/libbzip2, version >= 1.0.x.



Installation

Le support bzip2 par PHP n'est pas activé par défaut. Vous devez utiliser l'option de configuration --with-bz2[=DIR] lors de la compilation de PHP pour l'activer.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit un type de ressource : un pointeur de fichier identifiant le fichier bz2.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Cet exemple ouvre un fichier temporaire et y écrit une chaîne de test, puis, affiche le contenu de ce fichier.

Exemple #1 Petit exemple avec bzip2

<?php

$filename 
"/tmp/testfile.bz2";
$str "Ceci est une chaîne de test.\n";

// Ouvre un fichier en écriture
$bz bzopen($filename"w");

// Écrit une chaîne
bzwrite($bz$str);

// Ferme le fichier
bzclose($bz);

// Ouvre le fichier en lecture
$bz bzopen($filename"r");

// Lit 10 caractères
echo bzread($bz10);

// Affiche le contenu du fichier et on le ferme
echo bzread($bz);

bzclose($bz);

?>


Fonctions Bzip2


bzclose

(PHP 4 >= 4.0.4, PHP 5)

bzcloseFerme un fichier bzip2

Description

int bzclose ( resource $bz )

bzclose() ferme le fichier bzip2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • bzopen() - Ouvre un fichier compressé avec bzip2



bzcompress

(PHP 4 >= 4.0.4, PHP 5)

bzcompressCompresse une chaîne avec bzip2

Description

mixed bzcompress ( string $source [, int $blocksize = 4 [, int $workfactor = 0 ]] )

bzcompress() compresse la chaîne source et retourne les données ainsi encodées.

Liste de paramètres

source

La chaîne à compresser.

blocksize

Spécifie la taille de bloc utilisée durant la compression et doit être un nombre de 1 à 9, sachant que 9 représente la meilleure compression, mais qu'elle utilise plus de ressources pour se faire.

workfactor

Contrôle le comportement de la compression dans les pires cas de données hautement répétitives. Cette valeur peut aller de 0 à 250 (0 est une valeur spéciale).

En dehors de workfactor, le résultat sera le même.

Valeurs de retour

La chaîne compressée ou un numéro erreur si une erreur survient.

Exemples

Exemple #1 Compression de données

<?php
$str 
"donnée simple";
$bzstr bzcompress($str9);
echo 
$bzstr;
?>

Voir aussi



bzdecompress

(PHP 4 >= 4.0.4, PHP 5)

bzdecompressDécompresse une chaîne bzip2

Description

mixed bzdecompress ( string $source [, int $small = 0 ] )

bzdecompress() décompresse la chaîne source, contenant des données compressées bzip2.

Liste de paramètres

source

La chaîne à décompresser.

small

Si ce paramètre vaut TRUE, un autre algorithme de décompression sera utilisé : il consomme moins de mémoire (le maximum demandé tombe autour de 2300 ko), mais fonctionne globalement à la moitié de la vitesse.

Reportez-vous à la » documentation bzip2 pour plus de détails sur cette fonctionnalité.

Valeurs de retour

La chaîne décompressée ou un numéro erreur si une erreur survient.

Exemples

Exemple #1 Décompression d'une chaîne

<?php
$start_str 
"phrase à compresser";
$bzstr bzcompress($start_str);

echo 
"Chaîne compressée : ";
echo 
$bzstr;
echo 
"\n<br />\n";

$str bzdecompress($bzstr);
echo 
"Chaîne décompressée : ";
echo 
$str;
echo 
"\n<br />\n";
?>

Voir aussi



bzerrno

(PHP 4 >= 4.0.4, PHP 5)

bzerrnoRetourne le code d'erreur bzip2

Description

int bzerrno ( resource $bz )

bzerrno() retourne le code d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès avec la fonction bzopen().

Valeurs de retour

Retourne le code erreur sous la forme d'un entier.

Voir aussi

  • bzerror() - Retourne le numéro et le message d'erreur bzip2 dans un tableau
  • bzerrstr() - Retourne le message d'erreur bzip2



bzerror

(PHP 4 >= 4.0.4, PHP 5)

bzerrorRetourne le numéro et le message d'erreur bzip2 dans un tableau

Description

array bzerror ( resource $bz )

bzerror() retourne un tableau associatif avec le numéro et le message d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Retourne un tableau associatif, avec le code erreur dans l'entrée errno, et le message d'erreur dans l'entrée errstr.

Exemples

Exemple #1 Exemple avec bzerror()

<?php
$error 
bzerror($bz);
                   
echo 
$error["errno"];
echo 
$error["errstr"];
?>

Voir aussi



bzerrstr

(PHP 4 >= 4.0.4, PHP 5)

bzerrstrRetourne le message d'erreur bzip2

Description

string bzerrstr ( resource $bz )

bzerrstr() retourne le message d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Retourne une chaîne contenant le message d'erreur.

Voir aussi

  • bzerrno() - Retourne le code d'erreur bzip2
  • bzerror() - Retourne le numéro et le message d'erreur bzip2 dans un tableau



bzflush

(PHP 4 >= 4.0.4, PHP 5)

bzflushForce l'écriture de toutes les données compressées

Description

int bzflush ( resource $bz )

bzflush() force l'écriture de toutes les données bzip2 mises en tampon pour le fichier représenté par bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • bzread() - Lecture binaire d'un fichier bzip2
  • bzwrite() - Écriture binaire dans un fichier bzip2



bzopen

(PHP 4 >= 4.0.4, PHP 5)

bzopenOuvre un fichier compressé avec bzip2

Description

resource bzopen ( string $filename , string $mode )

bzopen() ouvre un fichier bzip2 (.bz2) en écriture ou en lecture.

Liste de paramètres

filename

Le nom du fichier à ouvrir.

mode

Similaire à la fonction fopen(), seules les options 'r' (pour lecture), et 'w' (pour écriture) sont supportées. Tout autre option fera que la fonction retournera FALSE.

Valeurs de retour

Si l'ouverture échoue, bzopen() retourne FALSE, sinon, il retourne un pointeur vers le fichier ouvert.

Exemples

Exemple #1 Exemple avec bzopen()

<?php
                   
$file 
"/tmp/foo.bz2";
$bz bzopen($file"r") or die("Impossible d'ouvrir le fichier $file pour lecture");
                   
bzclose($bz);
                   
?>

Voir aussi



bzread

(PHP 4 >= 4.0.4, PHP 5)

bzreadLecture binaire d'un fichier bzip2

Description

string bzread ( resource $bz [, int $length = 1024 ] )

bzread() lit depuis le pointeur de fichier bzip2 donné.

La lecture s'arrête lorsque length (non-compressé) octets ont été lus ou si la fin du fichier est atteint, le premier des deux qui survient.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

length

Si non spécifié, bzread() lira 1024 (non-compressé) octets à la fois. Un maximum de 8192 octets non-compressés sera lu à la fois.

Valeurs de retour

Retourne les données non-compressées ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bzread()

<?php
                   
$file 
"/tmp/foo.bz2";
$bz bzopen($file"r") or die("Impossible d'ouvrir le fichier $file");
                   
$decompressed_file '';
while (!
feof($bz)) {
  
$decompressed_file .= bzread($bz4096);
}
bzclose($bz);
                   
echo 
"Le contenu du fichier $file est : <br />\n";
echo 
$decompressed_file;
                   
?>

Voir aussi

  • bzwrite() - Écriture binaire dans un fichier bzip2
  • feof() - Teste la fin du fichier
  • bzopen() - Ouvre un fichier compressé avec bzip2



bzwrite

(PHP 4 >= 4.0.4, PHP 5)

bzwriteÉcriture binaire dans un fichier bzip2

Description

int bzwrite ( resource $bz , string $data [, int $length ] )

bzwrite() écrit le contenu de la chaîne data dans le fichier bzip2 représenté par bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

data

Les données écrites.

length

Si fourni, l'écriture s'arrêtera après que length (non-compressé) octets aient été écrits ou bien que la fin de data soit atteinte, le premier des deux qui survient.

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bzwrite()

<?php
$str 
"donné non-compressée";
$bz bzopen("/tmp/foo.bz2""w");
bzwrite($bz$strstrlen($str));
bzclose($bz);
?>

Voir aussi

  • bzread() - Lecture binaire d'un fichier bzip2
  • bzopen() - Ouvre un fichier compressé avec bzip2


Sommaire

  • bzclose — Ferme un fichier bzip2
  • bzcompress — Compresse une chaîne avec bzip2
  • bzdecompress — Décompresse une chaîne bzip2
  • bzerrno — Retourne le code d'erreur bzip2
  • bzerror — Retourne le numéro et le message d'erreur bzip2 dans un tableau
  • bzerrstr — Retourne le message d'erreur bzip2
  • bzflush — Force l'écriture de toutes les données compressées
  • bzopen — Ouvre un fichier compressé avec bzip2
  • bzread — Lecture binaire d'un fichier bzip2
  • bzwrite — Écriture binaire dans un fichier bzip2



LZF


Introduction

LZF est un algorithme de compression très rapide, idéal pour économiser de l'espace disque sans trop de perte de temps. Il peut être optimisé pour la vitesse ou pour la compression au moment de la compilation. Cette extension utilise la bibliothèque » liblzf créée par Marc Lehmann.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/lzf.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support lzf en utilisant l'option de configuration --with-lzf[=DIR] . Vous pouvez également passer l'option --enable-lzf-better-compression pour optimiser LZF d'un point de vue d'espace au détriment de la vitesse.

Les utilisateurs de Windows doivent activer la bibliothèque php_lzf.dll dans le php.ini pour pouvoir utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions LZF


lzf_compress

(PECL lzf >= 0.1.0)

lzf_compressCompression LZF

Description

string lzf_compress ( string $data )

lzf_compress() compresse les données data en utilisant l'encodage LZF.

Liste de paramètres

data

La chaîne de caractères à compresser.

Valeurs de retour

Retourne les données compressées ou FALSE si une erreur survient.

Voir aussi



lzf_decompress

(PECL lzf >= 0.1.0)

lzf_decompressDécompression LZF

Description

string lzf_decompress ( string $data )

lzf_compress() décompresse les données data en utilisant l'encodage LZF.

Liste de paramètres

data

La chaîne compressée.

Valeurs de retour

Retourne les données compressées ou FALSE si une erreur survient.

Voir aussi



lzf_optimized_for

(PECL lzf >= 1.0.0)

lzf_optimized_forDétermine le mode d'optimisation de l'extension LZF

Description

int lzf_optimized_for ( void )

Détermine le mode d'optimisation de l'extension LZF.

Valeurs de retour

Retourne 1 si LZF a été optimisé pour la vitesse, 0 pour la compression.


Sommaire




Phar


Introduction

L'extension phar fournit un moyen de mettre une application PHP complète dans un fichier unique appelé un "phar" (PHP Archive) pour une installation et une configuration aisées. En plus de ce service, l'extension fournit aussi une classe d'abstraction de format de fichier pour créer et manipuler des fichiers tar et zip à travers la classe PharData, tout comme PDO fournit une interface unifiée pour accéder à des base de données différentes. Mais à l'inverse de PDO, qui ne peut pas transposer les données d'une base à l'autre, Phar a la possibilité de convertir des fichiers tar, zip et phar avec une simple ligne de code. Regardez Phar::convertToExecutable() pour avoir un exemple.

Qu'est-ce que phar? Les archives phar sont en fait un moyen pratique de grouper plusieurs fichiers en un seul. Ainsi, une archive phar permet de distribuer une application PHP complète dans un fichier unique et de l'exécuter à partir de ce fichier sans pour autant l'extraire sur le disque. De plus, des archives phar peuvent être exécutées par PHP aussi facilement que n'importe quel autre fichier, aussi bien en ligne de commande que via un serveur web. Phar est une sorte de clé USB pour les applications PHP.

Phar implémente cette fonctionnalité via un flux. Normalement, pour utiliser un fichier externe à partir d'un script PHP, vous devez utiliser la fonction include()

Exemple #1 Utiliser un fichier externe

<?php
 
include '/chemin/vers/le/fichier/externe.php';
 
?>

On peut considérer que PHP traduit en fait /chemin/vers/le/fichier/externe.php en un flux file:///chemin/vers/le/fichier/externe.php, et qu'il utilise de façon cachée les fonctions de flux de fichiers plats pour accéder à des fichiers locaux.

Pour utiliser un fichier nommé fichier.php contenu dans une archive phar /chemin/vers/monphar.phar, la syntaxe est quasi similaire à la syntaxe file:// ci-dessus.

Exemple #2 Utilier un fichier contenu dans une archive phar

<?php
 
include 'phar:///chemin/vers/monphar.phar/fichier.php';
 
?>

En fait, on peut traiter une archive phar comme s'il s'agissait d'un disque externe, en utilisant n'importe laquelle des fonctions relatives à fopen(), opendir() et mkdir() pour lire, changer ou créer des nouveaux fichiers ou répertoires au sein de l'archive phar. Celà permet à des applications PHP complètes d'être distribuées dans un seul fichier et d'être exécutées à partir de celui-ci

L'utilisation la plus courant d'une archive phar est de distribuer une application complète en un seul fichier. Par exemple, l'installeur PEAR qui est inclus avec les versions de PHP est distribué grâce à une archive phar. pour utiliser l'archive phar ainsi distribuée, celle-ci peut-être exécutée via la ligne de commande ou via un navigateur web.

Les archives phar peuvent être distribuées sous forme de fichiers tar, de fichiers zip ou de fichiers phar spécialement conçus pour l'extensions phar. Chaque format de fichier a ses avantages et ses inconvénients. Les fichiers zip et tar peuvent être extraits par n'importe quel outil tiers qui peut lire le format, mais requièrent l'extension phar pour être exécutés par PHP. Le format de fichier phar est unique et dédié à l'extension phar et peut être créé uniquement par celle-ci ou par le paquet PEAR » PHP_Archive, mais a l'avantage de ne pas nécessiter l'installation de l'extension phar pour que l'application empaquetée puisse être exécutée.

En d'autres mots, même avec l'extension phar désactivée, il est possible d'exécuter ou d'inclure une archive basée sur phar. Accéder à des fichiers individuels au sein d'une archive phar n'est possible qu'avec l'extension phar à moins que l'archive phar n'ait été créée par PHP_Archive.

L'extension phar est aussi capable de convertir une archive phar à partir d'un tar vers un fichier zip ou phar en une seule commande :

Exemple #3 Convertir une archive phar au format tar

<?php
 $phar 
= new Phar('monphar.phar');
 
$pgz $phar->convertToExecutable(Phar::TARPhar::GZ); // produit monphar.phar.tar.gz
 
?>

Phar peut compresser des fichiers individuels ou une archive entière en utilisant la compression gzip ou bzip2, et peut vérifier l'intégrité de l'archive automatiquement en utilisant des fonctions de signature md5(), sha1(), sha256(), ou sha512().

Enfin, l'extension phar est orientée sécurité, elle désactive par défaut les accès en écriture sur les archives phar exécutables et requiert la désactivation au niveau système du paramètre phar.readonly du php.ini pour créer ou modifier des archives phar. Des archives tar et zip sans le marqueur exécutable peuvent toujours être créées ou modifiées en utilisant la classe PharData.

Si vous créez des applications dans le but de les distribuer, vous devriez lire Comment créer des archives Phar. Si vous voulez davantage d'informations sur les différences entre les formats de fichier que phar supporte, vous devriez lire Phar, Tar et Zip.

Si vous utilisez des applications phar, il y a des astuces très utiles dans Comment utiliser des archives Phar

Le mot phar est la contraction de PHP et de Archive et est grandement inspiré du mot jar (Java Archive) familier aux développeurs Java.

L'implémentation des archives Phar est basée sur le paquet PEAR » PHP_Archive, et les détails d'implémentations sont les mêmes, bien que l'extension Phar soit plus puissante. En plus, celle-ci permet à la plupart des applications PHP d'être exécutées sans modification alors que les archives basées sur PHP_Archive requièrent souvent beaucoup de modification pour fonctionner.



Installation/Configuration

Sommaire


Pré-requis

Phar requiert PHP 5.2.0 ou plus récent. Des fonctionnalités supplémentaires requièrent l'extension SPL pour tirer parti de l'itération et de l'accès sous forme de tableau au contenu d'un fichier Phar. Le flux phar ne requiert aucune extension supplémentaire pour fonctionner.

Vous pouvez éventuellement souhaiter activer les extensions zlib et bzip2 pour tirer parti du support phar compressé. De plus, pour exploiter les signatures OpenSSL, l'extension OpenSSL doit être activée.

A noter qu'un bogue dans le filtre de flux zlib.deflate corrigé en PHP 5.2.6 et plus récent pourrait causer la troncature des archives phar compressées en gzip ou bzip2.



Installation

L'extension Phar est incluse dans PHP depuis PHP 5.3.0. Phar peut aussi être installé depuis l'extension PECL pour les versions précédentes de PHP versions, la » page PECL de Phar contient plus d'informations et l'historique.

Les utilisateurs de Windows doivent inclure php_phar.dll dans php.ini pour utiliser cette extension.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour le système de fichiers
Nom Défaut Modifiable Historique
phar.readonly "1" PHP_INI_ALL  
phar.require_hash "1" PHP_INI_ALL  
phar.extract_list "" PHP_INI_ALL Disponible de phar 1.1.0 à 1.2.3, supprimé en 2.0.0.
phar.cache_list "" PHP_INI_SYSTEM Disponible à partir de phar 2.0.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

phar.readonly booléen

Cette option désactive la création ou la modification des archives Phar en utilisant le flux phar ou le support en écriture sur les objets Phar. Ce paramètre devrait toujours être activé sur des machines de production, car le support en écriture sur les archives phar pourrait mener à la création de virus basés sur PHP en cas d'utilisation conjuguée avec des vulnérabilités communes.

Note:

Ce paramètre ne peut être désactivé que dans php.ini pour des raisons de sécurité. Si phar.readonly est désactivé dans php.ini, l'utilisateur peut activer phar.readonly dans un script ou le désactiver plus tard. Si phar.readonly est activé dans php.ini, un script pourrait "réactiver" sans danger la variable INI, mais ne pourrait pas la désactiver.

phar.require_hash booléen

Cette option forcera toutes les archives Phar ouvertes à contenir un type de signature (à ce jour MD5, SHA1, SHA256 et SHA512 sont supportés), et toute archive Phar ne contenant pas de signature sera rejetée.

Note:

Ce paramètre ne peut être désactivé que dans php.ini pour des raisons de sécurité. Si phar.require_hash est désactivé dans php.ini, l'utilisateur peut activer phar.require_hash dans un script ou le désactiver plus tard. Si phar.require_hash est activé dans php.ini, un script pourrait "réactiver" sans danger la variable INI, mais ne pourrait pas la désactiver.

Ce paramètre n'affecte pas la lecture des fichiers tar avec la classe PharData.

phar.extract_list chaîne de caractères

Ce paramètre INI a été supprimé en phar 2.0.0.

Permet la correspondance entre le chemin complet d'une archive phar ou son alias et l'emplacement de ses fichiers extraits. Le format de ce paramètre est name=archive,name2=archive2. Cela permet l'extraction de fichiers phar sur le disque, et permet à phar d'agir comme une sorte de correspondance vers des fichiers extraits sur disque. C'est souvent utilisé pour des raisons de performance ou pour aider au débogage de phar.

Exemple #1 Exemple d'utilisation de phar.extract_list

dans php.ini:
phar.extract_list = archive=/chemin/complet/vers/archive/,arch2=/chemin/complet/vers/arch2
<?php
include "phar://archive/content.php";
include "phar://arch2/foo.php";
?>

phar.cache_list chaîne de caractères

Ce paramètre INI a été ajouté en phar 2.0.0

Permet aux correspondances d'archives phar d'être traitées au démarrage du serveur web, augmentant de ce fait les performance d'accès aux fichiers contenus dans une archive phar et les rendant très proche d'un accès à des fichiers d'une installation classique sur disque.

Exemple #2 Exemple d'utilisation de phar.cache_list

dans php.ini (windows):
phar.cache_list =C:\chemin\vers\phar1.phar;C:\chemin\vers\phar2.phar
dans php.ini (unix):
phar.cache_list =/chemin/vers/phar1.phar:/chemin/vers/phar2.phar



Types de ressources

L'extension Phar fournit le flux phar, qui permet l'accès de façon transparente aux fichiers contenus dans un phar. Pour davantage d'information, lisez le format de fichier Phar




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes de compression Phar
Constante Valeur Description
Phar::NONE (integer) 0x00000000 aucune compression
Phar::COMPRESSED (integer) 0x0000F000 masque de bits pouvant être utilisé avec les drapeaux de fichier pour déterminer si une compression est utilisée
Phar::GZ (integer) 0x00001000 compression zlib (gzip)
Phar::BZ2 (integer) 0x00002000 compression bzip2
Les constantes de format de fichier Phar
Constante Valeur Description
Phar::SAME (integer) 0 Conserve le même format de fichier
Phar::PHAR (integer) 1 format de fichier phar
Phar::TAR (integer) 2 format de fichier tar
Phar::ZIP (integer) 3 format de fichier zip
Les constantes de signature Phar
Constante Valeur Description
Phar::MD5 (integer) 0x0001 signature avec l'algorithme md5
Phar::SHA1 (integer) 0x0002 signature avec l'algorithme sha1
Phar::SHA256 (integer) 0x0003 signature avec l'algorithme sha256 (requiert l'extension hash)
Phar::SHA512 (integer) 0x0004 signature avec l'algorithme sha512 (requiert l'extension hash)
Phar::OPENSSL (integer) 0x0010 signature avec une paire de clé privée/publique OpenSSL. C'est une véritable signature à clé asymétrique/
Les constantes d'écrasement de mime Phar webPhar
Constante Valeur Description
Phar::PHP (integer) 1 utilisée pour renseigner le paramètre d'écrasement mime de Phar::webPhar() et faire en sorte que l'extension soit parsée comme un fichier PHP
Phar::PHPS (integer) 2 utilisée pour renseigner le paramètre d'écrasement mime de Phar::webPhar() et faire en sorte que l'extension soit parsée comme un fichier PHP via highlight_file()


Utiliser les archives Phar

Sommaire


Utiliser les archives Phar : Introduction

Les archives Phar sont identiques dans le concept aux archives JAR de Java, mais sont conçues plus spécifiquement pour les besoins et la flexibilité des applications PHP. Une archive Phar est utilisée pour distribuer une application PHP complète ou une bibliothèque sous forme d'un fichier unique. A l'inverse de Java, aucun outil externe n'est requis pour manipuler ou exécuter une archive Phar PHP. Une application sous forme d'archive Phar est utilisée exactement de la même façon que n'importe quelle autre application PHP :

php applicationsympa.phar
  

L'utilisation d'une bibliothèque sous forme d'archive Phar est la même que n'importe quelle autre bibliothèque PHP :

<?php
include 'bibliothequesympa.phar';
?>

Le flux phar fournit le coeur de l'extension phar, et est décrit en détails ici. Le flux phar permet l'accès aux fichiers contenus dans une archive phar via les fonctions standards de fichier fopen(), opendir(), et toute autre fonctionnant sur des fichiers normaux. Le flux phar supporte toutes les opérations de lecture/écriture à al fois su les fichiers et sur les répertoires.

<?php
include 'phar://bibliothequesympa.phar/fichier/interne.php';
header('Content-type: image/jpeg');
// les phars peuvent être atteint via le chemin complet ou via des alias
echo file_get_contents('phar:///chemin/complet/vers/bibliothequesympa.phar/images/wow.jpg');
?>

La classe Phar implémente des fonctionnalités avancées pour accéder aux fichiers et créer des archives phar. La classe Phar est décrite en détails ici.

<?php
try {
    
// ouvre un phar existant
    
$p = new Phar('bibliothequesympa.phar'0);
    
// Phar étend la classe DirectoryIterator de SPL
    
foreach (new RecursiveIteratorIterator($p) as $file) {
        
// $file est une classe PharFileInfo et hérité de SplFileInfo
        
echo $file->getFileName() . "\n";
        echo 
file_get_contents($file->getPathName()) . "\n"// affiche le contenu;
    
}
    if (isset(
$p['fichier/interne.php'])) {
        
var_dump($p['fichier/interne.php']->getMetaData());
    }

    
// crée un nouveau phar - phar.readonly doit être à 0 dans php.ini
    // phar.readonly est activé par défaut pour des raisons de sécurité.
    // Sur des serveurs de production, les Phars n'ont pas besoin d'être créés,
    // juste d'être exécutés.
    
if (Phar::canWrite()) {
        
$p = new Phar('nouveauphar.tar.phar'0'nouveauphar.tar.phar');
        
// On crée une archive Phar basée sur tar, compressée par gzip (.tar.gz)
        
$p $p->convertToExecutable(Phar::TARPhar::GZ);

        
// crée une transaction - rien n'est écrit dans nouveauphar.phar
        // jusqu'à ce que stopBuffering() ne soit appelé, bien qu'un stockage temporaire soit requis
        
$p->startBuffering();
        
// ajoute tous les fichier de /chemin/vers/leprojet dans le phar avec le préfixe "projet"
        
$p->buildFromIterator(new RecursiveIteratorIterator(new DirectoryIterator('/chemin/vers/leprojet')), '/chemin/vers/');

        
// ajoute un nouveau fichier en utilisant l'API d'accès par tableau
        
$p['fichier1.txt'] = 'Information';
        
$fp fopen('grosfichier.dat''rb');
        
// copie toutes les données du flux
        
$p['data/grosfichier.dat'] = $fp;

        if (
Phar::canCompress(Phar::GZ)) {
            
$p['data/grosfichier.dat']->compress(Phar::GZ);
        }

        
$p['images/wow.jpg'] = file_get_contents('images/wow.jpg');
        
// toute valeur peut être sauvegardée comme métadonnée spécifique au fichier
        
$p['images/wow.jpg']->setMetaData(array('mime-type' => 'image/jpeg'));
        
$p['index.php'] = file_get_contents('index.php');
        
$p->setMetaData(array('bootstrap' => 'index.php'));

        
// sauvegarde l'archive phar sur le disque
        
$p->stopBuffering();
    }
} catch (
Exception $e) {
    echo 
'N\'a pas pu ouvrir le Phar: '$e;
}
?>

D'autre part, la vérification du contenu du fichier phar peut être faite en utilisant un des algorithme de signature symétrique (MD5, SHA1, SHA256 et SHA512 si ext/hash est activée) et en utilisant la signature asymétrique par clé publique/privée de OpenSSL (nouveauté de Phar 2.0.0). Pour tirer parti de la signature OpenSSL, vous devez générer une paire de clés publique/privée et utiliser la clé privée pour signer avec Phar::setSignatureAlgorithm(). En plus, la clé publique, extraite en utilisant ce code :

<?php
$public 
openssl_get_publickey(file_get_contents('private.pem'));
$pkey '';
openssl_pkey_export($public$pkey);
?>
doit être sauvegardée à part de l'archive phar qu'elle vérifie. Si l'archive phar est sauvegardée en tant que /chemin/vers/mon.phar, la clé publique doit être sauvegardée en tant que /chemin/vers/mon.phar.pubkey, sans quoi phar ne sera pas capable de vérifier la signature OpenSSL.

Depuis la version 2.0.0, la classe Phar fournit aussi trois méthodes statiques, Phar::webPhar(), Phar::mungServer() et Phar::interceptFileFuncs() qui sont cruciales pour empaqueter des applications PHP visant à être utilisée sur un système de fichier classique ou en tant qu'application web. Phar::webPhar() implémente un contrôleur qui route les appels HTTP vers le bon endroit de l'archive phar. Phar::mungServer() est utilisé pour modifier les valeurs du tableau $_SERVER pour dire aux applications d'utiliser ces valeurs. Phar::interceptFileFuncs() dit à Phar d'intercepter les appels à fopen(), file_get_contents(), opendir(), et à toutes les fonctions basées sur stat (file_exists(), is_readable(), etc) et route tous les chemins relatif vers les bons endroits de l'archive phar.

Par exemple, empaqueter une version de la célèbre application phpMyAdmin dans une archive phar nécessite juste ce simple script et, dès lors, phpMyAdmin.phar.tar.php peut être accédé comme un fichier classique à partir de votre serveur web, après avoir modifié le couple utilisateur/motdepasse :

<?php
@unlink('phpMyAdmin.phar.tar.php');
copy('phpMyAdmin-2.11.3-english.tar.gz''phpMyAdmin.phar.tar.php');
$a = new Phar('phpMyAdmin.phar.tar.php');
$a->startBuffering();
$a["phpMyAdmin-2.11.3-english/config.inc.php"] = '<?php
/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg[\'Servers\'][$i][\'host\'] = \'localhost\';
$cfg[\'Servers\'][$i][\'extension\'] = \'mysqli\';
$cfg[\'Servers\'][$i][\'connect_type\'] = \'tcp\';
$cfg[\'Servers\'][$i][\'compress\'] = false;
$cfg[\'Servers\'][$i][\'auth_type\'] = \'config\';
$cfg[\'Servers\'][$i][\'user\'] = \'root\';
$cfg[\'Servers\'][$i][\'password\'] = \'\';


/* End of servers configuration */
if (strpos(PHP_OS, \'WIN\') !== false) {
    $cfg[\'UploadDir\'] = getcwd();
} else {
    $cfg[\'UploadDir\'] = \'/tmp/pharphpmyadmin\';
    @mkdir(\'/tmp/pharphpmyadmin\');
    @chmod(\'/tmp/pharphpmyadmin\', 0777);
}'
;
$a->setStub('<?php
Phar::interceptFileFuncs();
Phar::webPhar("phpMyAdmin.phar", "phpMyAdmin-2.11.3-english/index.php");
echo "phpMyAdmin is intended to be executed from a web browser\n";
exit -1;
__HALT_COMPILER();
'
);
$a->stopBuffering();
?>



Utiliser les archives Phar : le flux phar

Le flux Phar supporte totalement fopen() pour les lectures/écritures (pas les concaténations), unlink(), stat(), fstat(), fseek(), rename() et le opérations de flux sur les répertoires opendir() et depuis la version 2.0.0, rmdir() et mkdir().

La compression et les métadonnées individuelles par fichier peuvent aussi être manipulées au sein de l'archive Phar en utilisant les contextes de flux :

<?php
$context 
stream_context_create(array('phar' =>
                                    array(
'compress' => Phar::GZ)),
                                    array(
'metadata' => array('user' => 'cellog')));
file_put_contents('phar://mon.phar/unfichier.php'0$context);
?>

Le flux phar n'agit pas sur les fichiers distants et ne peut pas considérer les fichiers distants, etc... même si les options INI allow_url_fopen et allow_url_include sont désactivées.

Bien qu'il soit possible de créer des archives phar de zéro en utilisant juste les opérations sur les flux, il est préférable d'utiliser la fonctionnalité incluse dans la classe Phar. Le flux est mieux utilisé pour les opérations de lecture.



Utiliser les archives Phar : les classes Phar et PharData

La classe Phar supporte la lecture et la manipulation des archives Phar, ainsi que l'itération à travers la fonctionnalité héritée de la classe RecursiveDirectoryIterator. Avec le support de l'interface ArrayAccess, les fichiers contenus dans une archive Phar peuvent être accédés comme s'ils étaient membres d'un tableau associatif.

La classe PharData étend la classe Phar, et permet la création et la modification d'archives tar et zip non exécutables (données) même si phar.readonly=1 dans php.ini. Ainsi, PharData::setAlias() et PharData::setStub() sont toutes deux désactivées car les concepts d'alias et de conteneur sont restreints aux archives phar exécutables.

Il est important de noter que quand une archive Phar est créée, le chemin complet doit être passé au constructeur de l'objet Phar. Un chemin relatif empêcherait l'initialisation.

En supposant que $p est un objet initialisé de cette façon :

<?php
$p 
= new Phar('/chemin/vers/monphar.phar'0'monphar.phar');
?>

Une archive Phar vide sera créée en tant que /chemin/vers/monphar.phar, ou si /chemin/vers/monphar.phar existe déjà, il sera ouvert de nouveau. Le terme monphar.phar démontre le concept d'un alias qui peut être utilisé pour référencer /chemin/vers/monphar.phar dans des URL comme ceci :

<?php
// ces deux appels à file_get_contents() sont équivalents si
// /chemin/vers/monphar.phar a un alias explicite de "monphar.phar"
// dans son mainfeste, ou si le phar a été initialisé avec l'instantiation de
// l'objet Phar de l'exemple précedent
$f file_get_contents('phar:///chemin/vers/monphar.phar/nimportequoi.txt');
$f file_get_contents('phar://monphar.phar/nimportequoi.txt');
?>

Avec l'objet Phar $p nouvellement créé, les choses suivantes sont possibles :

  • $a = $p['fichier.php'] crée une PharFileInfo qui réfère au contenu de phar://monphar.phar/fichier.php
  • $p['fichier.php'] = $v crée un nouveau fichier (phar://monphar.phar/fichier.php), ou écrase un fichier existant au sein de monphar.phar. $v peut être soit une chaîne ou un pointeur vers un fichier ouvert, dans quel cas le contenu du fichier sera utilisé pour créer le nouveau fichier. Notez que $p->addFromString('fichier.php', $v) est équivalent en terme de fonctionnalité au cas ci-dessus. Il est aussi possible d'ajouter le contenu d'un fichier avec $p->addFile('/chemin/vers/fichier.php', 'fichier.php'). Enfin, un répertoire vide peut être créé avec $p->addEmptyDir('vide').
  • isset($p['fichier.php']) peut être utilisé pour déterminer si phar://monphar.phar/fichier.php existe au sein de monphar.phar.
  • unset($p['fichier.php']) efface phar://monphar.phar/fichier.php de monphar.phar.

De plus, l'objet Phar est le seul moyen d'accéder aux métadonnées spécifiques de Phar, via Phar::getMetaData(), et c'est aussi le seul moyen de régler ou de récupérer le conteneur du chargeur de l'archive Phar via Phar::getStub() et Phar::setStub(). De plus, la compression pour l'archive Phar entière peut être manipulée seulement via la classe Phar.

La liste complète des fonctionnalités de l'objet Phar est documentée ci-dessous.

La classe PharFileInfo étend la classe SplFileInfo et ajoute plusieurs méthodes pour manipuler les métadonnées spécifiques à Phar d'un fichier contenu dans un Phar, telles que manipuler la compression ou les métadonnées.




Créer des archives Phar

Sommaire


Créer des archives Phar : Introduction

Sera entièrement écrit plus tard. Avant de lire ceci, soyez sûr de lire Comment utiliser des archives Phar.

Se documenter sur Phar::buildFromIterator() et les spécificités des choix de format de fichier disponible pour les archives peut être un bon début. Une bonne compréhension de ce qu'est et de ce que fait un conteneur (stub) est cruciale pour la création d'archive phar, ce qui fait de Phar::setStub() et Phar::createDefaultStub() également un bon point de départ. Si vous distribuer des applications web, il est important de connaître Phar::webPhar() et la méthode associée Phar::mungServer(). Toute application qui accède à ses propres fichiers devrait aussi considérer l'utilisation de Phar::interceptFileFuncs().




Qu'est-ce qui fait d'un phar un phar et pas un tar ou un zip?

Sommaire


Les constituants de toutes les archives Phar, indépendamment du format de fichier

Toute les archives Phar contiennent de trois à quatre sections:

  1. Un conteneur

  2. Un manifest décrivant le contenu

  3. Le contenu du fichier

  4. Une signature (facultative) pour vérifier l'intégrité (uniquement avec le format de fichier phar)



Le conteneur de fichier Phar

Un conteneur Phar est un simple fichier PHP. Le conteneur minimal contient :

<?php __HALT_COMPILER();

Un conteneur doit contenir au moins le jeton __HALT_COMPILER(); en guise de conclusion. Typiquement, un conteneur comportera les fonctionnalités de chargement suivantes :

<?php
Phar
::mapPhar();
include 
'phar://monphar.phar/index.php';
__HALT_COMPILER();

Il n'y a aucune restriction sur le contenu d'un conteneur Phar, si ce n'est le besoin d'être conclu par __HALT_COMPILER();. Le tag fermant PHP

?>
peut être inclus ou omis, mais il ne peut y avoir plus d'un espace entre le ; et le tag fermant
?>
sans quoi l'extension phar ne sera pas capable de lire le manifeste de l'archive.

Dans une archive phar basée sur tar ou zip, le conteneur est stocké dans le fichier .phar/stub.php. Le conteneur par défaut des archives Phar basées sur phar contient approximativement 7ko de code pour extraire le contenu du phar et l'exécuter. Regardez la fonction Phar::createDefaultStub() pour davantage de détails.

L'alias phar est stocké, dans le cas d'une archive phar basée sur tar ou zip, dans le fichier .phar/alias.txt en tant que texte plein.



Comparaison entre Phar, Tar et Zip

Quels sont les avantages et les inconvénients de chacun des trois formats supportés par l'extension phar? Ce tableau tente de répondre à cette question.

Tableau comparatif : Phar, Tar et Zip
Fonctionnalité Phar Tar Zip
Format de fichier standard Non Oui Oui
Peut être exécuté sans l'extension Phar [1] Oui Non Non
Compression par fichier Oui Non Oui
Compression pour toute l'archive Oui Oui Non
Validation par signature de toute l'archive Oui Oui Oui (PHP 5.3.1+)
Support d'applications spécifiquement Web Oui Oui Oui
Métadonnées par fichier Oui Oui Oui
Métadonnées pour toute l'archive Oui Oui Oui
Création/modification d'archive [2] Oui Oui Oui
Support complet de toutes les fonctions de flux Oui Oui Oui
Peut être créée/modifiée même si phar.readonly=1 [3] Non Oui Oui

Astuce

[1] PHP ne peut accéder directement au contenu d'une archive Phar sans que l'extension Phar soit installée si elle utilise un conteneur qui extrait le contenu de l'archive phar. Le conteneur créé par Phar::createDefaultStub() extrait l'archive phar et exécute son contenu à partir d'un répertoire temporaire si aucune extension phar n'est trouvée.

Astuce

[2] Tous les accès en écriture nécessitent que phar.readonly soit désactivé dans le php.ini ou directement via la ligne de commande.

Astuce

[3] Seules les archives tar ou zip sans .phar dans leur nom et sans conteneur exécutable .phar/stub.php peuvent être créées si phar.readonly=1.



Les phars basés sur Tar

Les archives basées sur le format de fichier tar sont conformes au format moderne USTAR. Le design des en-têtes du fichier tar le rend plus efficace que le format de fichier zip et aussi efficace que le format de fichier phar quand il s'agit d'accéder aux données. Les noms de fichiers sont limités à 255 octets, y compris le chemin complet au sein de l'archive phar basée sur tar. Ces archives peuvent être intégralement compressées au format gzip ou bzip2 tout en restant exécutables par l'extension Phar.

Pour compresser une archive entière, utilisez Phar::compress(). Pour décompresser une archive entière, utilisez Phar::decompress().



Les phars basés sur Zip

Les archives basées sur le format de fichier zip supportent de nombreuses fonctionnalités incluses dans le format zip. Les métadonnées par fichier ou sur toute l'archive sont stockées dans les commentaires du fichier zip et de l'archive zip en tant que chaîne de caractères sérialisée. Les commentaires zip déjà existants seront lus sans problème en tant que chaîne. Les lectures/écritures compressées sont supportées par la compression zlib, et uniquement les lectures compressées par la compression bzip2. Il n'y a pas de limite sur le nombre de fichiers au sein d'une archive phar basée sur zip. Les répertoires vides sont stockés dans l'archive zip comme des fichiers avec un slash final, comme mon/repertoire/



Le format de fichier Phar

Le format de fichier phar est composé de conteneur/manifeste/contenu/signature, et stocke les informations cruciales de ce qui est contenu dans l'archive phar dans son manifeste.

Le manifeste Phar est un format hautement optimisé qui permet la spécification fichier par fichier de la compression, des permissions et même des métadonnées utilisateur tels que l'utilisateur ou le groupe propriétaire. Toutes les valeurs de plus d'un octet sont stockées sous forme petit-boutiste, Ã l'exception de la version de l'API qui est stockée pour des raisons historiques en 3 morceaux grand-boutistes.

Tous les drapeaux non utilisés sont réservés pour un usage futur et ne doivent pas être utilisés pour stocker des informations personnalisées. Utilisez les métadonnées par fichier pour stocker des métadonnées personnalisées sur des fichiers particuliers.

Le format de fichier basique du manifeste d'une archive Phar est le suivant :

Format global du manifeste Phar
Taille en octets Description
4 octets Longueur du manifeste en octets (limitée à 1 Mo)
4 octets Nombre de fichiers dans le Phar
2 octets Version de l'API du manifest Phar (à ce jour 1.0.0)
4 octets Drapeaux "bitmappés" globaux du Phar
4 octets Longueur de l'alias Phar
?? L'alias Phar (longueur basée sur la valeur précédente)
4 octets Longueur des métadonnées Phar (0 si aucune)
?? métadonnées Phar sérialisées, stockées dans un format serialize()
au moins 24 * nombre d'octets des entrées Entrées pour chaque fichier



Drapeaux "bitmappés" globaux du Phar

Voici les drapeaux "bitmappés" actuellement reconnus par l'extension Phar pour le bitmap plein global de Phar :

Valeurs de bitmap reconnues
Valeur Description
0x00010000 Si présent, le Phar contient une signature de vérification
0x00001000 Si présent, le Phar contient au moins 1 fichier qui est compressé grâce à zlib
0x00002000 Si présent, le Phar contient au moins 1 fichier qui est compressé grâce à bzip



Définition des entrées du manifeste Phar

Chaque fichier du manifeste contient les informations suivantes :

Entrée du manifeste Phar
Taille en octets Description
4 octets Longueur du nom de fichier en octets
?? Nom de fichier (longueur basée sur la valeur précédente)
4 octets Taille du fichier décompressé en octets
4 octets Timestamp Unix du fichier
4 octets Taille du fichier compressé en octets
4 octets Somme de contrôle CRC32 du contenu décompressé du fichier
4 octets Drapeaux bitmappés spécifiques au fichier
4 octets Longueur des métadonnées du fichier sérialisées (0 si aucune)
?? métadonnées du fichier sérialisées, stockées dans un format serialize()

A noter qu'à partir de l'API 1.1.1, les répertoires vides sont stockés comme des noms de fichier avec un slash final comme mon/repertoire/

Les valeurs reconnues de drapeaux bitmappés spécifiques au fichier sont :

Valeurs reconnues de bitmap
Valeur Description
0x000001FF Ces bits sont réservés pour définir des permissions spécifiques au fichier. Celles-ci sont utilisées pour fstat() et peuvent être utilisées pour recréer les permissions souhaitées en cas d'extraction.
0x00001000 Si présent, le fichier est compressé grâce à zlib
0x00002000 Si présent, le fichier est compressé grâce à bzip



Phar Signature format

Les Phar qui contiennent une signature ont toujours la signature ajoutée à la fin du Phar, après le chargeur, le manifeste et le contenu. Les deux types de signature supportés à ce jour sont MD5 et SHA1.

Format de signature
Longueur en octets Description
16 ou 20 octets La signature actuelle, 20 octets pour une SHA1, 16 octets pour une MD5, 32 octets pour une SHA256, et 64 octets pour une SHA512.
4 octets Les drapeaux de signature. 0x0001 est utilisé pour définir une signature MD5, 0x0002 pour une SHA1, 0x0004 pour une SHA256 et 0x0008 pour une SHA512. Le support des signatures SHA256 et SHA512 a été introduit avec l'API version 1.1.0.
4 octets GBMB magique utilisé pour définir la présence d'une signature.




La classe Phar

Introduction

La classe Phar fournit une interface de haut niveau pour accéder et créer des archives phar.

Synopsis de la classe

Phar extends RecursiveDirectoryIterator implements Countable , ArrayAccess {
/* Propriétés */
/* Méthodes */
void addEmptyDir ( string $dirname )
void addFile ( string $file [, string $localname ] )
void addFromString ( string $localname , string $contents )
string apiVersion ( void )
array buildFromDirectory ( string $base_dir [, string $regex ] )
array buildFromIterator ( Iterator $iter [, string $base_directory ] )
bool canCompress ([ int $type = 0 ] )
bool canWrite ( void )
object compress ( int $compression [, string $extension ] )
bool compressAllFilesBZIP2 ( void )
bool compressAllFilesGZ ( void )
void compressFiles ( int $compression )
void __construct ( string $fname [, int $flags [, string $alias ]] )
PharData convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
Phar convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
bool copy ( string $oldfile , string $newfile )
int count ( void )
string createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
object decompress ([ string $extension ] )
bool decompressFiles ( void )
bool delMetadata ( void )
bool delete ( string $entry )
bool extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
mixed getMetaData ( void )
bool getModified ( void )
array getSignature ( void )
string getStub ( void )
array getSupportedCompression ( void )
array getSupportedSignatures ( void )
string getVersion ( void )
bool hasMetadata ( void )
void interceptFileFuncs ( void )
bool isBuffering ( void )
mixed isCompressed ( void )
bool isFileFormat ( int $format )
bool isValidPharFilename ( string $filename [, bool $executable = true ] )
bool isWritable ( void )
bool loadPhar ( string $filename [, string $alias ] )
bool mapPhar ([ string $alias [, int $dataoffset = 0 ]] )
void mount ( string $pharpath , string $externalpath )
void mungServer ( array $munglist )
bool offsetExists ( string $offset )
int offsetGet ( string $offset )
void offsetSet ( string $offset , string $value )
bool offsetUnset ( string $offset )
string running ([ bool $retphar = true ] )
bool setAlias ( string $alias )
bool setDefaultStub ([ string $index [, string $webindex ]] )
void setMetadata ( mixed $metadata )
void setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
bool setStub ( string $stub )
void startBuffering ( void )
void stopBuffering ( void )
bool uncompressAllFiles ( void )
bool unlinkArchive ( string $archive )
void webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, array $rewrites ]]]]] )
}

Phar::addEmptyDir

(Unknown)

Phar::addEmptyDirAjoute un répertoire vide à l'archive phar

Description

void Phar::addEmptyDir ( string $dirname )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Grâce à cette méthode, un répertoire vide est créé avec le chemin dirname. Cette méthode est identique à ZipArchive::addEmptyDir().

Liste de paramètres

dirname

Le nom du répertoire vide à créer dans l'archive phar

Valeurs de retour

pas de valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec Phar::addEmptyDir()

<?php
try {
    
$a = new Phar('/chemin/vers/phar.phar');

    
$a->addEmptyDir('/chemin/complet/vers/fichier');
    
// démontre comment le fichier est stocké
    
$b $a['chemin/complet/vers/fichier']->isDir();
} catch (
Exception $e) {
    
// traite les erreurs ici
}
?>

Voir aussi



Phar::addFile

(Unknown)

Phar::addFileAjoute un fichier du système de fichiers à l'archive phar

Description

void Phar::addFile ( string $file [, string $localname ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Grâce à cette méthode, tout fichier ou URL peut être ajouté à l'archive phar. Si le second paramètre optionnel localname est spécifié, le fichier sera stocké dans l'archive de ce nom, sinon le paramètre file est utilisé comme chemin vers lequel stocker l'archive. Les URL doivent être locales, sans quoi une exception est levée. Cette méthode est identique à ZipArchive::addFile().

Liste de paramètres

file

Chemin absolu ou relatif vers un fichier du disque à ajouter à l'archive phar.

localname

Chemin où le fichier sera stocké dans l'archive.

Valeurs de retour

Pas de valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec Phar::addFile()

<?php
try {
    
$a = new Phar('/chemin/vers/phar.phar');

    
$a->addFile('/chemin/complet/vers/fichier');
    
// démontre comment le fichier est stocké
    
$b $a['chemin/complet/vers/fichier']->getContent();

    
$a->addFile('/chemin/complet/vers/fichier''mon/fichier.txt');
    
$c $a['mon/fichier.txt']->getContent();

    
// démontre l'utilisation d'URL
    
$a->addFile('http://www.exemple.com''exemple.html');
} catch (
Exception $e) {
    
// traite les erreurs ici
}
?>

Voir aussi



Phar::addFromString

(Unknown)

Phar::addFromStringAjoute un fichier du système de fichiers à l'archive phar

Description

void Phar::addFromString ( string $localname , string $contents )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Grâce à cette méthode, toute chaîne peut être ajoutée à l'archive phar. Le fichier sera stocké dans l'archive avec localname en tant que chemin. Cette méthode est identique à ZipArchive::addFromString().

Liste de paramètres

localname

Chemin dans lequel le fichier sera stocké dans l'archive.

contents

Le contenu de fichier à stocker

Valeurs de retour

Pas de valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec Phar::addFromString()

<?php
try {
    
$a = new Phar('/chemin/vers/phar.phar');

    
$a->addFromString('chemin/vers/fichier.txt''mon fichier simple');
    
$b $a['chemin/vers/fichier.txt']->getContent();

    
// pour ajouter du contenu à partir d'un descripteur de flux pour des gros fichiers, utilisez offsetSet()
    
$c fopen('/chemin/vers/grosfichier.bin');
    
$a['grosfichier.bin'] = $c;
    
fclose($c);
} catch (
Exception $e) {
    
// traite les erreurs ici
}
?>

Voir aussi



Phar::apiVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::apiVersionRetourne la version de l'API

Description

string Phar::apiVersion ( void )

Retourne la version de l'API du format de fichier phar qui sera utilisée pour la création de phars. L'extension Phar supporte la lecture des versions d'API 1.0.0 et supérieures. L'API version 1.1.0 est requise pour les hachages SHA-256 et SHA-512, et l'API version 1.1.1 est requise pour stocker des répertoires vides.

Liste de paramètres

Valeurs de retour

La version de l'API, par exemple "1.0.0".

Exemples

Exemple #1 Un exemple avecPhar::apiVersion()

<?php
echo Phar::apiVersion();
?>

L'exemple ci-dessus va afficher :

1.1.1



Phar::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromDirectoryConstruit une archive phar à partir des fichiers d'un répertoire

Description

array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Remplit une archive phar à partir du contenu d'un répertoire. Le second paramètre, optionnel, est une expression rationnelle (pcre) utilisée pour exclure des fichiers. Tout fichier dont le nom satisfait l'expression rationnelle sera inclus, les autres seront exclus. Pour un contrôle plus fin, utilisez Phar::buildFromIterator().

Liste de paramètres

base_dir

Le chemin absolu ou relatif vers le répertoire contenant tous les fichiers à ajouter à l'archive.

regex

Une expression rationnelle optionnelle utilisée pour filtrer la liste des fichiers. Seuls les fichiers dont le nom satisfait l'expression rationnelle seront inclus dans l'archive.

Valeurs de retour

Phar::buildFromDirectory() retourne un tableau associatif faisant correspondre le chemin interne du fichier avec le chemin complet sur le système de fichiers.

Erreurs / Exceptions

Cette méthode lève une exception BadMethodCallException quand elle est incapable d'instancier l'itérateur de répertoire interne, ou une exception PharException s'il y a eu des erreurs lors de la sauvegarde de l'archive.

Exemples

Exemple #1 Un exemple avecPhar::buildFromDirectory()

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar'0'projet.phar');
// ajoute des fichiers dans le projet
$phar->buildFromDirectory(dirname(__FILE__) . '/projet');
$phar->setStub($phar->createDefaultWebStub('cli/index.php''www/index.php'));

$phar2 = new Phar('projet2.phar'0'projet2.phar');
// ajoute tous les fichiers dans le projet, mais juste les fichiers .php
$phar->buildFromDirectory(dirname(__FILE__) . '/projet''/\.php$/');
$phar->setStub($phar->createDefaultWebStub('cli/index.php''www/index.php'));
?>

Voir aussi



Phar::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromIteratorConstruit une archive phar à partir d'un itérateur

Description

array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Remplit une archive phar à partir d'un itérateur. Deux styles d'itérateur sont supportés : les itérateurs qui font correspondre le nom de fichier au sein du phar avec le nom d'un fichier sur le disque, et les itérateurs comme DirectoryIterator qui retournent des objets SplFileInfo. Pour les itérateurs qui retournent des objets SplFileInfo, le second paramètre est obligatoire.

Liste de paramètres

iter

Un itérateur qui associe un fichier avec une position, ou bien retourne des objets SplFileInfo.

base_directory

Pour les itérateurs qui retournent des objets SplFileInfo, la portion de chemin absolu de chaque fichier qu'il faut supprimer lors de l'ajout à l'archive phar.

Valeurs de retour

Phar::buildFromIterator() retourne un tableau associatif qui associe la représentation interne du fichier à un chemin absolu dans le système.

Exemples

Exemple #1 Exemple avec Phar::buildFromIterator() et SplFileInfo

Pour la plupart des archives phar, l'archive reflète l'arborescence d'un répertoire, et le second style est le plus utile. Par exemple, pour créer une archive phar contenant les fichiers de l'arborescence du répertoire :

/chemin/vers/projet/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Ce code peut être utilisé pour ajouter à l'archive "projet.phar" :

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar'0'projet.phar');
$phar->buildFromIterator(
    new 
RecursiveIteratorIterator(
     new 
RecursiveDirectoryIterator('/chemin/vers/projet')),
    
'/chemin/vers/projet');
$phar->setStub($phar->createDefaultWebStub('cli/index.php''www/index.php'));
?>

Le fichier projet.phar peut alors être utilisé immédiatement. Phar::buildFromIterator() ne règle pas les paramètres tels que la compression ou les métadonnées; ceci peut cependant être fait après avoir créé l'archive phar.

Il est intéressant de noter que Phar::buildFromIterator() peut aussi être utilisé pour copier les éléments d'une archive phar existante, car l'objet Phar hérite de DirectoryIterator :

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar'0'projet.phar');
$phar->buildFromIterator(
    new 
RecursiveIteratorIterator(
     new 
Phar('/chemin/vers/unautrephar.phar')),
    
'phar:///chemin/vers/unautrephar.phar/chemin/vers/projet');
$phar->setStub($phar->createDefaultWebStub('cli/index.php''www/index.php'));
?>

Exemple #2 Exemple avec Phar::buildFromIterator() et d'autres itérateurs

La seconde forme d'itérateur peut être utilisée avec n'importe quel itérateur qui retourne une correspondance clé => valeur, tels que ArrayIterator :

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar'0'projet.phar');
$phar->buildFromIterator(
    new 
ArrayIterator(
     array(
        
'interne/fichier.php' => dirname(__FILE__) . '/unfichier.php',
        
'unautre/fichier.jpg' => fopen('/chemin/vers/grosfichier.jpg''rb'),
     )));
$phar->setStub($phar->createDefaultWebStub('cli/index.php''www/index.php'));
?>

Erreurs / Exceptions

Cette méthode émet une exception UnexpectedValueException quand l'itérateur retourne des valeurs fausses, telles qu'une clé entière à la place d'une chaîne; une exception BadMethodCallException quand un itérateur basé sur SplFileInfo est passé sans paramètre base_directory, ou une exception PharException s'il y a eu des erreurs lors de la sauvegarde de l'archive phar.

Voir aussi



Phar::canCompress

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canCompressDétermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2

Description

bool Phar::canCompress ([ int $type = 0 ] )

Cette méthode doit être utilisée pour déterminer si la compression est possible avant de charger une archive phar qui contient des fichiers compressés.

Liste de paramètres

type

Phar::GZ et Phar::BZ2 peuvent être utilisées pour déterminer si la compression est possible avec respectivement zlip ou bzip2.

Valeurs de retour

TRUE si la compression/décompression est disponible, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::canCompress()

<?php
if (Phar::canCompress()) {
    echo 
file_get_contents('phar://pharcompresse.phar/interne/fichier.txt');
} else {
    echo 
'compression non disponible';
}
?>

Voir aussi



Phar::canWrite

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canWriteDétermine si l'extension phar supporte la création et l'écriture des phars

Description

bool Phar::canWrite ( void )

Cette méthode statique détermine si l'accès en écriture a été désactivé dans le php.ini du système via la variable INI phar.readonly.

Liste de paramètres

Valeurs de retour

TRUE si l'accès en écriture est possible, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::canWrite()

<?php
if (Phar::canWrite()) {
    
file_put_contents('phar://monphar.phar/fichier.txt''coucou');
}
?>

Voir aussi



Phar::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compressCompresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2

Description

object Phar::compress ( int $compression [, string $extension ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Dans le cas des archives phar basées sur tar ou sur phar, cette méthode compresse l'archive complète en utilisant la compression gzip ou bzip2. Le fichier qui en résulte peut être traité avec la commande gzip/bzip2, ou accédée directement et de façon transparente avec l'extension Phar.

Dans le cas des archives phar basées sur Zip, cette méthode échoue en lançant une exception. L'extension zlib doit être activée pour compresser avec gzip, tandis que l'extension bzip2 doit être activée pour compresser avec bzip2. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

En plus, cette méthode renomme automatiquement l'archive, en suffisant son nom par .gz, .bz2 ou en enlevant l'extension si Phar::NONE est passée pour supprimer la compression. Sinon, une extension de fichier peut aussi être spécifiée en utilisant le second paramètre.

Liste de paramètres

compression

La compression doit être soit Phar::GZ, soit Phar::BZ2 pour bénéficier de la compression, ou bien Phar::NONE pour éliminer la compression.

extension

Par défaut, l'extension est .phar.gz ou .phar.bz2 pour compresser les archives phar, et .phar.tar.gz ou .phar.tar.bz2 pour compresser les archives tar. Pour décompresser, les extensions par défaut sont .phar et .phar.tar.

Valeurs de retour

Retourne un objet Phar.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compress()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p1 $p->compress(Phar::GZ); // copie vers /chemin/vers/mon.phar.gz
$p2 $p->compress(Phar::BZ2); // copie vers /chemin/vers/mon.phar.bz2
$p3 $p2->compress(Phar::NONE); // exception: /chemin/vers/mon.phar existe déjà
?>

Voir aussi



Phar::compressAllFilesBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesBZIP2Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2

Description

bool Phar::compressAllFilesBZIP2 ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser Phar::compress(), Phar::decompress(), Phar::compressFiles() et Phar::decompressFiles() à la place.

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode compresse tous les fichier de l'archive Phar en utilisant la compression bzip2. L'extension bzip2 doit être activée pour pouvoir bénéficier de cette fonctionnalité. De plus, si un ou des fichiers ont déjà été compressés en utilisant la compression gzip, l'extension zlib doit être activée pour pouvoir décompresser les fichiers et les re-compresser avec l'algorithme bzip2. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est on, si l'extension bzip2 n'est pas disponible, ou si un ou des fichiers ont été déjà compressés avec la compression gzip et que l'extension zlib n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compressAllFilesBZIP2()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressedBZIP2());
    
var_dump($file->isCompressedGZ());
}
$p->compressAllFilesBZIP2();
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressedBZIP2());
    
var_dump($file->isCompressedGZ());
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(10) "monfichier.txt"
bool(true)
bool(true)
bool(false)
string(11) "monfichier2.txt"
bool(true)
bool(true)
bool(false)

Voir aussi



Phar::compressAllFilesGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesGZCompresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip

Description

bool Phar::compressAllFilesGZ ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser Phar::compress(), Phar::decompress(), Phar::compressFiles() et Phar::decompressFiles() à la place.

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar, cette méthode compresse l'archive complète en utilisant la compression gzip. Le fichier qui en résulte peut être traité avec la commande gunzip, ou accédée directement et de façon transparente avec l'extension Phar.

Pour les archives phar basées sur Zip, cette méthode compresse tous les fichiers de l'archive Phar en utilisant la compression gzip. L'extension zlib doit être activée pour pouvoir bénéficier de cette fonctionnalité. De plus, si un ou des fichiers ont déjà été compressés en utilisant la compression bzip2, l'extension bzip2 doit être activée pour pouvoir décompresser les fichiers et les re-compresser avec l'algorithme gzip. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si un ou des fichiers ont déjà été compressés avec l'algorithme bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compressAllFilesGZ()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressedBZIP2());
    
var_dump($file->isCompressedGZ());
}
$p->compressAllFilesGZ();
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressedBZIP2());
    
var_dump($file->isCompressedGZ());
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(10) "monfichier.txt"
bool(true)
bool(false)
bool(true)
string(11) "monfichier22.txt"
bool(true)
bool(false)
bool(true)

Voir aussi



Phar::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compressFilesCompresse tous les fichiers de l'archive Phar courante'

Description

void Phar::compressFiles ( int $compression )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar, cette méthode lève une exception BadMethodCallException car la compression de fichier individuelle au sein d'une archive tar n'est pas supportée par le format de fichier. Utilisez Phar::compress() pour compresser une archive phar basée sur tar en entier.

Pour les extensions phar basées sur Zip, cette méthode compresse tous les fichiers de l'archive Phar en utilisant la compression spécifiée. Les extensions zlib ou bzip2 doivent être activée pour tirer parti de cette fonctionnalité. De plus, si un ou des fichiers ont déjà été compressé en utilisant la compression bzip2/zlib, l'extension adéquate doit être activée pour décompresser les fichiers avant de les recompresser. extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Liste de paramètres

compression

La compression doit être soit Phar::GZ, soit Phar::BZ2 pour bénéficier de la compression, ou bien Phar::NONE pour éliminer la compression.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si un ou des fichiers ont été compressés avec l'algorithme bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compressFiles()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(10) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(11) "monfichier2.txt"
int(4096)
bool(false)
bool(true)

Voir aussi



Phar::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::__constructConstruit un objet d'archive Phar

Description

void Phar::__construct ( string $fname [, int $flags [, string $alias ]] )

Liste de paramètres

fname

Le chemin vers une archive Phar existante ou à créer

flags

Les drapeaux à passer à la classe parente RecursiveDirectoryIterator.

alias

Alias avec lequel on doit faire référence à l'archive lors de l'appels aux fonctionnalités de flux.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la méthode est appelée deux fois, ou UnexpectedValueException si l'archive ne peut pas être ouverte.

Exemples

Exemple #1 Un exemple avec Phar::__construct()

<?php
try {
    
$p = new Phar('/chemon/vers/mon.phar'CURRENT_AS_FILEINFO KEY_AS_FILENAME,
                  
'mon.phar');
} catch (
UnexpectedValueException $e) {
    die(
'Ne peut pas ouvrir mon.phar');
} catch (
BadMethodCallException $e) {
    echo 
'techniquement, ça ne peut pas arriver';
}
// ça fonctionne maintenant
echo file_get_contents('phar://mon.phar/exemple.txt');
// et ça fonctionne comme si nous avions tapé
echo file_get_contents('phar:///chemin/vers/mon.phar/exemple.txt');
?>



Phar::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToDataConvertit une archive phar en un fichier non-exécutable

Description

PharData Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )

Convertit une archive phar exécutable en un fichier tar ou zip. Pour rendre le tar ou le zip non exécutable, le conteneur phar et l'alias phar sont supprimés de l'archive nouvellement créée.

Si aucun changement n'est spécifié, cette méthode émet une exception BadMethodCallException si l'archive est dans le format de fichier phar. Pour les archives basées sur tar ou zip, cette méthode convertit l'archive en une archive non exécutable.

En cas de succès, la méthode crée une nouvelle archive sur le disque et retourne un objet PharData. L'ancienne archive n'est pas supprimée du disque, ce qui devrait être fait manuellement à la fin du procédé.

Liste de paramètres

format

Ce doit être l'un des formats Phar::TAR ou Phar::ZIP. Si ce paramètre est NULL, le format de fichier actuel sera conservé.

compression

Ce doit être Phar::NONE pour aucune compression globale, Phar::GZ la une compression basée sur zlib et Phar::BZ2 pour une compression basée sur bzip2.

extension

Ce paramètre est utilisée pour écraser l'extension par défaut d'une archive convertie. A noter que .phar ne peut pas être utilisé dans le nom de fichier d'une archive tar ou zip non-exécutable.

Si on convertit vers une archive basée sur tar, les extensions par défaut sont .tar, .tar.gz, et .tar.bz2 selon la compression spécifiée. Pour les archives phar basées sur zip, l'extension par défaut est .zip.

Valeurs de retour

La méthode retourne un objet PharData en cas de succès et émet une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode émet une exception BadMethodCallException si elle n'est pas capable de compresser, si une méthode de compression inconnue a été spécifiée ou si l'archive demandée a été mise en tampon avec Phar::startBuffering() sans être conclue avec Phar::stopBuffering(), et émet une exception PharException si un quelconque problème a été rencontré pendant la phase de création de l'archive.

Exemples

Exemple #1 Un exemple avec Phar::convertToData()

Utilisons Phar::convertToData():

<?php
try {
    
$tarphar = new Phar('monphar.phar.tar');
    
// notez bien que monphar.phar.tar n'est *pas* effacé
    // on convertit vers le format de fichier tar non exéctuable
    // crée monphar.tar
    
$tar $tarphar->convertToData();
    
// on convertit vers le format de fichier zip non exéctuable et crée monphar.zip
    
$zip $tarphar->convertToData(Phar::ZIP);
    
// crée monphar.tbz
    
$tgz $tarphar->convertToData(Phar::TARPhar::BZ2'.tbz');
    
// crée monphar.phar.tgz
    
$phar $tarphar->convertToData(Phar::PHAR); // émet une exception
} catch (Exception $e) {
    
// on traite les erreurs ici
}
?>

Voir aussi



Phar::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToExecutableConvertit une archive phar vers un autre format de fichier d'archive phar exécutable

Description

Phar Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est utilisée pour convertir une archive phar vers un autre format de fichier. Par exemple, elle peut être utilisée pour créer une archive phar basée sur tar en partant d'une archive phar basée sur zip ou à partir d'une archive phar exécutable basée sur le format de fichier phar. De plus, elle peut aussi être utilisée pour appliquer une compression globale à une archive basée sur tar ou sur phar.

Si aucun changement n'est précisé, cette méthode lève une exception BadMethodCallException.

En cas de succès, la méthode crée une nouvelle archive sur le disque et retourne un objet Phar. L'ancienne archive n'est pas supprimée du disque, ce qui devrait être fait manuellement à la fin du procédé.

Liste de paramètres

format

Ce doit être l'un des formats Phar::PHAR, Phar::TAR, ou Phar::ZIP. Si ce paramètre est NULL, le format de fichier actuel sera conservé.

compression

Ce doit être Phar::NONE pour aucune compression globale, Phar::GZ la une compression basée sur zlib et Phar::BZ2 pour une compression basée sur bzip2.

extension

Ce paramètre est utilisée pour écraser l'extension par défaut d'une archive convertie. A noter que toutes les archives phar basée sur zip ou sur tar doivent comporter .phar dans leur extension pour être traitées comme une archive phar.

Si on convertit vers une archive basée sur phar, les extensions par défaut sont .phar, .phar.gz, ou .phar.bz2 selon la compression spécifiée. Pour les archives phar basées sur tar, les extensions par défaut sont .phar.tar, .phar.tar.gz, et .phar.tar.bz2. Pour les archives phar basées sur zip, l'extension par défaut est .phar.zip.

Valeurs de retour

La méthode retourne un objet Phar en cas de succès et lève une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode lève une exception BadMethodCallException si elle n'est pas capable de compresser, si une méthode de compression inconnue a été spécifiée ou si l'archive demandée a été mise en tampon avec Phar::startBuffering() sans être conclue avec Phar::stopBuffering(), lève une exception UnexpectedValueException si le support en écriture a été désactivé et lève une exception PharException si un quelconque problème a été rencontré pendant la phase de création de l'archive.

Exemples

Exemple #1 Un exemple avec Phar::convertToExecutable()

Utilisons Phar::convertToExecutable() :

<?php
try {
    
$tarphar = new Phar('monphar.phar.tar');
    
// on le convertit vers le format de fichier phar
    // notez bien que monphar.phar.tar n'est *pas* effacé
    
$phar $tarphar->convertToExecutable(Phar::PHAR); // crée monphar.phar
    
$phar->setStub($phar->createDefaultStub('cli.php''web/index.php'));
    
// crée monphar.phar.tgz
    
$compressed $phar->convertToExecutable(Phar::TARPhar::GZ'.phar.tgz');
} catch (
Exception $e) {
    
// on traite les erreurs ici
}
?>

Voir aussi



Phar::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::copyCopie un fichier appartenant à une archive vers un autre fichier de la même archive

Description

bool Phar::copy ( string $oldfile , string $newfile )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Copie un fichier appartenant à une archive vers un nouveau fichier de la même archive. C'est une alternative orientée objet à l'utilisation de copy() avec un flux phar.

Liste de paramètres

oldfile

newfile

Valeurs de retour

Retourne TRUE en cas de succès, mais il est plus sûr d'encadrer l'appel à cette méthode dans un bloc try/catch et de considérer son succès si aucune exception n'est levée.

Erreurs / Exceptions

Lève une exception UnexpectedValueException si le fichier source n'existe pas, si le fichier destination existe déjà, si l'accès en écriture est désactivé, si ouvrir l'un ou l'autre des fichiers échoue, si la lecture du fichier source échoue, ou lève une exception PharException si l'écriture des changement dans le phar échoue.

Exemples

Exemple #1 Exemple avec Phar::copy()

Cet exemple montre comment utiliser Phar::copy() et la comparaison en terme de performance avec l'équivalent utilisant le flux phar. La différence principale entre les deux méthodes concerne la gestion des erreurs. Toutes les méthodes Phar lèvent des exceptions, là où les fonctions de flux utilisent trigger_error().

<?php
try {
    
$phar = new Phar('monphar.phar');
    
$phar['a'] = 'salut';
    
$phar->copy('a''b');
    echo 
$phar['b']; // affiche "salut"
} catch (Exception $e) {
    
// traite les erreurs
}

// l'équivalent en terme de flux du code ci-dessus
// des E_WARNING sont retournés plutôt que des exceptions
copy('phar://monphar.phar/a''phar//monphar.phar/c');
echo 
file_get_contents('phar://monphar.phar/c'); // affiche "salut"
?>



Phar::count

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::countRetourne le nombre d'entrées (fichiers) dans l'archive Phar

Description

int Phar::count ( void )

Liste de paramètres

Valeurs de retour

Le nombre de fichiers contenus dans le phar, ou 0 (le nombre zéro) si aucun.

Exemples

Exemple #1 Un exemple avec Phar::count()

<?php
// on s'assure que le phar n'existe pas
@unlink('lenouveauphar.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/lenouveauphar.phar'0'le nouveauphar.phar');
} catch (
Exception $e) {
    echo 
'Ne peut pas créer le phar:'$e;
}
echo 
'Le nouveau phar a ' $p->count() . " entrées\n";
$p['file.txt'] = 'salut';
echo 
'Le nouveau phar a ' $p->count() . " entrées\n";
?>

L'exemple ci-dessus va afficher :

Le nouveau phar a 0 entrées
Le nouveau phar a 1 entrées



Phar::createDefaultStub

(Unknown)

Phar::createDefaultStubCrée un conteneur de chargement d'une archive Phar

Description

string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )

Cette méthode est destinée à la création de conteneurs spécifique au format de fichier phar et n'est pas conçue pour être utilisée avec des archives phar basées sur tar ou sur zip.

Les archives Phar contiennent un chargeur ou un conteneur écrit en PHP qui est exécuté quand l'archive est exécutée soit par une inclusion

<?php
include 'monphar.phar';
?>
ou par une simple exécution :
php monphar.phar
    

Cette méthode fournit un moyen simple et facile de créer un conteneur qui lancera un fichier de démarrage à partir de l'archive phar. En plus, des fichiers différents peuvent être spécifiés pour exécuter l'archive à partir de la ligne de commande ou d'un serveur web. Le conteneur de chargement appelle alors Phar::interceptFileFuncs() pour permettre l'empaquetage facile d'applications PHP accédant au système de fichiers. Si l'extension phar n'est pas présente, le conteneur de chargement extraira l'archive phar vers un répertoire temporaire et traitera les fichier. Une fonction d'extinction effacera les fichier temporaires à la fin.

Valeurs de retour

Retourne une chaîne de caractères contenant un conteneur de chargement personnalisé qui permet à l'archive Phar créée de fonctionner avec ou sans l'extension Phar d'activée.

Erreurs / Exceptions

Lève une exception UnexpectedValueException si un des paramètres est plus long que 400 octets.

Exemples

Exemple #1 Exemple avec Phar::createDefaultStub()

<?php
try {
    
$phar = new Phar('monphar.phar');
    
$phar->setStub($phar->createDefaultStub('cli.php''web/index.php'));
} catch (
Exception $e) {
    
// traite les erreurs
}
?>

Voir aussi

  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
  • Phar::getStub() - Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar



Phar::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompressDécompresse l'archive tar complète

Description

object Phar::decompress ([ string $extension ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar et sur phar, cette méthode décompresser l'archive complète.

Pour les archives phar bases sur Zip, cette méthode échoue et lève une exception. L'extension zlib doit être active pour décompresser une archive compressée grâce à gzip, et l'extension bzip2 doit être active pour décompresser une archive compressée grâce à bzip2. Comme avec toutes les fonctionnalités qui modifient le coutenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

De plus, cette méthode change automatiquement l'extension de l'archive, .phar Par défaut pour les archives phar, ou .phar.tar pour les archives phar basées sur tar. Sinon, une extension de fichier peut aussi être spécifiée en utilisant le second paramètre.

Liste de paramètres

extension

Pour décompresser, les extension de fichier par défaut sont .phar et .phar.tar. Utilisez ce paramètre pour spécifier une autre extension de fichier. A noter que toutes les archives phar exécutables doivent contenir .phar dans leur nom de fichier.

Valeurs de retour

Un objet Phar est retourné.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::decompress()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar.gz');
$p['monfichier.txt'] = 'salut';
$p['monfichier.txt'] = 'salut';
$p3 $p2->decompress(); // crée /chemin/vers/mon.phar
?>

Voir aussi



Phar::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompressFilesDécompresse tous les fichiers de l'archive Phar courante

Description

bool Phar::decompressFiles ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar, cette méthode lève une exception BadMethodCallException, car la compression individuelle des fichiers au sein d'une archive tar n'est pas supportée par le format de fichier. Utilisez Phar::compress() pour compresser en archive phar basée sur tar en entier.

Pour les archives phar basées sur Zip ou sur phar, cette méthode décompresser tous les fichiers de l'archive Phar. Les extensions zlib ou bzip2 doivent être activées pour tirer parti de cette fonctionnalité si n'importe lequel des fichiers est compressé en utilisant une la compression bzip2/zlib. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible ou si un des fichiers est compressé en utilisant la compression bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::decompressFiles()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p->compressFiles(Phar::GZ);
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(11) "monfichier2.txt"
int(4096)
bool(false)
bool(true)
string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)

Voir aussi



Phar::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::delMetadataEfface les méta-données globales du phar

Description

bool Phar::delMetadata ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Efface les méta-données globales du phar

Liste de paramètres

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr de vérifier si des exceptions sont levées, et de considérer que tout s'est bien passé si aucune n'est levée.

Erreurs / Exceptions

Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::delMetaData()

<?php
try {
    
$phar = new Phar('monphar.phar');
    
var_dump($phar->getMetadata());
    
$phar->setMetadata("salut");
    
var_dump($phar->getMetadata());
    
$phar->delMetadata();
    
var_dump($phar->getMetadata());
} catch (
Exception $e) {
    
// traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

NULL
string(8) "salut"
NULL

Voir aussi



Phar::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::deleteEfface un fichier au sein d'une archive phar

Description

bool Phar::delete ( string $entry )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Efface une fichier au sein d'une archive phar. C'est l'équivalent fonctionnel de l'appel à unlink() dans un contexte de flux, comme décrit dans l'exemple suivant...

Liste de paramètres

entry

Chemin du fichier à effacer au sein de l'archive.

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr de vérifier si des exceptions sont levées, et de considérer que tout s'est bien passé si aucune n'est levée.

Erreurs / Exceptions

Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::delete()

<?php
try {
    
$phar = new Phar('monphar.phar');
    
$phar->delete('efface/moi.php');
    
// c'est équivalent à :
    
unlink('phar://monphar.phar/efface/moi.php');
} catch (
Exception $e) {
    
// traite les erreurs
}
?>

Voir aussi



Phar::extractTo

(Unknown)

Phar::extractToExtrait le contenu d'une archive phar vers un répertoire

Description

bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Extrait tous les fichiers d'une archive phar vers le disque. Les fichiers et les dossiers extraits conservent les permissions à l'identique de l'intérieur de l'archive. Les paramètres optionnels permettent un éventuel contrôle sur quel fichier est extrait et si des fichiers déjà existants sur le disque peuvent être écrasés. Le second paramètre files peut être soit le nom d'un fichier ou d'un répertoire, soit un tableau de noms de fichiers et de répertoires à extraire. Par défaut, cette méthode n'écrasant pas les fichiers existants, le troisième paramètre peut être passé à TRUE pour activer l'écrasement de fichiers. Cette méthode est identique à ZipArchive::extractTo().

Liste de paramètres

pathto

Chemin du fichier à effacer au sein de l'archive.

files

Le nom d'un fichier ou d'un répertoire ou un tableau de fichiers/répertoires à extraire

overwrite

Le passer à TRUE pour activer l'écrasement des fichiers existants

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr de vérifier si des exceptions sont levées, et de considérer que tout s'est bien passé si aucune n'est levée.

Erreurs / Exceptions

Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::extractTo()

<?php
try {
    
$phar = new Phar('monphar.phar');
    
$phar->extractTo('/chemin/complet'); // extrait tous les fichiers
    
$phar->extractTo('/autre/chemin''fichier.txt'); // extrait seulement fichier.txt
    
$phar->extractTo('/ce/chemin',
        array(
'fichier1.txt''fichier2.txt')); // extrait seulement 2 fichiers
    
$phar->extractTo('/troisieme/chemin'nulltrue); // extrait tous les fichiers, en écrasant
} catch (Exception $e) {
    
// traite les erreurs
}
?>

Voir aussi



Phar::getMetaData

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getMetaDataRetourne les méta-données de l'archive phar

Description

mixed Phar::getMetaData ( void )

Récupère les méta-données de l'archive. Celles-ci peuvent être n'importe quelle variable PHP pouvant être sérialisée.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

n'importe quelle variable PHP pouvant être sérialisée et qui est stockée comme méta-donnée de l'archive Phar, ou NULL si aucune méta-donnée n'est stockée.

Exemples

Exemple #1 Un exemple avec Phar::getMetaData()

<?php
// on s'assure que le phar n'existe pas
@unlink('nouveauphar.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/nouveauphar.phar'0'nouveauphar.phar');
    
$p['fichier.php'] = '<?php echo "salut";';
    
$p->setMetaData(array('bootstrap' => 'fichier.php'));
    
var_dump($p->getMetaData());
} catch (
Exception $e) {
    echo 
'Ne peut pas modifier le phar :'$e;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["bootstrap"]=>
  string(8) "fichier.php"
}

Voir aussi



Phar::getModified

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getModifiedIndique si le fichier phar a été modifié

Description

bool Phar::getModified ( void )

Détermine si une archive phar a eu soit un fichier interne effacé ou si le contenu d'un fichier a changé d'une façon ou d'une autre.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

TRUE si le phar a été modifié depuis son ouverture, FALSE sinon.



Phar::getSignature

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getSignatureRetourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar

Description

array Phar::getSignature ( void )

Retourne la signature de vérification d'une archive phar sous forme d'une chaîne de caractères hexadécimale.

Liste de paramètres

Valeurs de retour

Un tableau avec la signature de l'archive ouverte avec le hash en guise de clé et "MD5", "SHA-1", "SHA-256" ou "SHA-512" comme hash_type. Cette signature est un hachage calculé à partir du contenu de l'archive entière; elle peut être utilisée pour vérifier l'intégrité de l'archive. Une signature valide est absolument requise pour toutes les archives phar exécutables si la variable INI phar.require_hash vaut TRUE.



Phar::getStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getStubRetourne le chargeur PHP ou le conteneur de chargement d'une archive Phar

Description

string Phar::getStub ( void )

Les archives phar contiennent un chargeur, ou conteneur (stub), écrit en PHP qui est exécuté quand l'archive elle-même est exécutée soit par inclusion :

<?php
include 'monphar.phar';
?>
soit par simple exécution :
php monphar.phar
    

Valeurs de retour

Retourne une chaîne de caractères avec le contenu du conteneur de chargement (stub) de l'archive phar courante.

Erreurs / Exceptions

Lève une exception RuntimeException s'il n'est pas possible de lire le conteneur de chargement de l'archive Phar.

Exemples

Exemple #1 Exemple avec Phar::getStub()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
echo 
$p->getStub();
echo 
"==SUIVANT==\n";
$p->setStub("<?php
function __autoload(
$class)
{
    include 'phar://' . str_replace('_', '/', 
$class);
}
Phar::mapPhar('monphar.phar');
include 'phar://monphar.phar/demarrage.php';
__HALT_COMPILER(); ?>"
);
echo 
$p->getStub();
?>

L'exemple ci-dessus va afficher :

<?php __HALT_COMPILER(); ?>
==SUIVANT==
<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('monphar.phar');
include 'phar://monphar.phar/demarrage.php';
__HALT_COMPILER(); ?>

Voir aussi



Phar::getSupportedCompression

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::getSupportedCompressionRetourne un tableau des algorithmes de compression supportés

Description

array Phar::getSupportedCompression ( void )

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne un tableau contenant l'un des algorithmes Phar::GZ ou Phar::BZ2, selon la disponibilité de l'extension zlib ou de l'extension bz2.

Voir aussi



Phar::getSupportedSignatures

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::getSupportedSignaturesRetourne un tableau des types de signature supportés

Description

array Phar::getSupportedSignatures ( void )

Retourne un tableau des types de signature supportés

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne un tableau contenant un ou plusieurs des types MD5, SHA-1, SHA-256, SHA-512.

Voir aussi



Phar::getVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getVersionRetourne les informations de version de l'archive Phar

Description

string Phar::getVersion ( void )

Retourne la version de l'API d'une archive Phar ouverte.

Liste de paramètres

Valeurs de retour

La version de l'API de l'archive ouverte. A ne pas confondre avec la version dAPI que l'extension phar chargée utilisera pour créer de nouveaux phar. Chaque archive Phar a la version d'API codée en dur dans son manifeste. Pour davantage d'information, regardez le format de fichier Phar.

Voir aussi



Phar::hasMetaData

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::hasMetaDataDétermine si le phar a ou non des méta-données

Description

bool Phar::hasMetadata ( void )

Détermine si le phar a ou non des méta-données.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne TRUE si des méta-données sont présentes, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::hasMetaData()

<?php
try {
    
$phar = new Phar('monphar.phar');
    
var_dump($phar->hasMetadata());
    
$phar->setMetadata(array('deschoses' => 'salut'));
    
var_dump($phar->hasMetadata());
    
$phar->delMetadata();
    
var_dump($phar->hasMetadata());
} catch (
Exception $e) {
    
// traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi



Phar::interceptFileFuncs

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::interceptFileFuncsInforme phar qu'il doit intercepter les fonctions de fichiers

Description

void Phar::interceptFileFuncs ( void )

Informe phar d'intercepter fopen(), readfile(), file_get_contents(), opendir() et toutes les fonctions relatives à stat. Si n'importe laquelle de ces fonctions est appelée depuis l'archive phar avec un chemin relatif, l'appel est modifié pour accéder à un fichier au sein de l'archive. Les chemins absolus sont supposés être des tentatives de chargement de fichiers externes à partir du système de fichiers.

Cette fonction rend possible l'exécution d'applications PHP conçues pour être lancées en dehors d'un disque dur, en tant qu'application phar.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Phar::interceptFileFuncs()

<?php
Phar
::interceptFileFuncs();
include 
'phar://' __FILE__ '/fichier.php';
?>

En supposant que ce phar est nommé /chemin/vers/monphar.phar est qu'il contient fichier.php et fichier2.txt, si fichier.php contient ce code :

Exemple #2 Un exemple avec Phar::interceptFileFuncs()

<?php
echo file_get_contents('fichier2.txt');
?>

Normalement, PHP chercherait dans le répertoire courant le fichier nommé file2.txt, c'est à dire dans le répertoire de fichier.php ou le répertoire courant de l'utilisateur de la ligne de commande. Phar::interceptFileFuncs() dit à PHP de considérer phar:///chemin/vers/monphar.phar/ comme répertoire courant et ainsi ouvre dans l'exemple ci-dessus le fichier phar:///chemin/vers/monphar.phar/fichier2.txt.



Phar::isBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::isBufferingDétermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque

Description

bool Phar::isBuffering ( void )

Cette méthode peut être utilisée pour déterminer si un Phar sauvera ses changements immédiatement sur le disque ou si un appel à la fonction Phar->stopBuffering() est nécessaire pour inscrire les modifications.

La mise en tampon de l'écriture du Phar se fait par archive; la mise en tampon de l'archive Pharfoo.phar n'affecte en rien les changements faits sur l'archive Phar bar.phar.

Valeurs de retour

Retourne TRUE si les opérations d'écriture sont mises en tampons, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::isBuffering()

<?php
$p 
= new Phar(dirname(__FILE__) . '/nouveauphar.phar'0'nouveauphar.phar');
$p2 = new Phar('pharexistant.phar');
$p['fichier1.txt'] = 'salut';
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>
=2=
<?php
$p
->startBuffering();
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
$p->stopBuffering();
?>
=3=
<?php
var_dump
($p->isBuffering());
var_dump($p2->isBuffering());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
=2=
bool(true)
bool(false)
=3=
bool(false)
bool(false)

Voir aussi

  • Phar::startBuffering() - Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque
  • Phar::stopBuffering() - Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque



Phar::isCompressed

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isCompressedRetourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)

Description

mixed Phar::isCompressed ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc). Les archives phar basées sur Zip ne peuvent pas être compressées en tant que fichier, et cette méthode retournera toujours FALSE si une archive phar basée sur Zip est interrogée.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Phar::GZ, Phar::BZ2 ou FALSE

Exemples

Exemple #1 Exemple avec Phar::isCompressed()

<?php
try {
    
$phar1 = new Phar('monphar.zip.phar');
    
var_dump($phar1->isCompressed());
    
$phar2 = new Phar('monpharnoncompresse.tar.phar');
    
var_dump($phar2->isCompressed());
    
$phar2->compressAllFilesGZ();
    
var_dump($phar2->isCompressed() == Phar::GZ);
} catch (
Exception $e) {
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Voir aussi



Phar::isFileFormat

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isFileFormatRetourne TRUE si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre

Description

bool Phar::isFileFormat ( int $format )

Liste de paramètres

format

Soit Phar::PHAR, soit Phar::TAR, soit Phar::ZIP pour tester le format de fichier de l'archive.

Valeurs de retour

Retourne TRUE si l'archive phar utilise le format de fichier spécifié en paramètre

Erreurs / Exceptions

Une exception PharException est levée sur le paramètre est un format de fichier inconnu.

Voir aussi



Phar::isValidPharFilename

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::isValidPharFilenameDétermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar

Description

bool Phar::isValidPharFilename ( string $filename [, bool $executable = true ] )

Détermine si le nom de fichier spécifié est une nom de fichier valide pour une archive phar, qui sera reconnue comme telle par l'extension phar. Ceci peut être utilisé pour tester un nom sans avoir à instancier une archive phar et à attraper l'inévitable Exception qui sera levée si un nom de fichier non valide est spécifié.

Liste de paramètres

filename

Le nom ou le chemin complet vers une archive phar non encore créée

executable

Ce paramètre détermine si le nom de fichier doit être traité comme celui d'une archive phar exécutable ou comme une archive de données non exécutable.

Valeurs de retour

Retourne TRUE si le nom de fichier est valide, FALSE sinon.



Phar::isWritable

(Unknown)

Phar::isWritableRetourne TRUE si l'archive phar peut être modifiée

Description

bool Phar::isWritable ( void )

Cette méthode retourne TRUE si phar.readonly est à 0 et que l'archive phar actuelle sur le disque n'est pas en lecture seule.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne TRUE si l'archive phar peut être modifiée

Voir aussi



Phar::loadPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::loadPharCharge n'importe quelle archive phar avec un alias

Description

bool Phar::loadPhar ( string $filename [, string $alias ] )

Cette méthode peut être utilisée pour lire le contenu d'une archive Phar externe. C'est principalement utile pour assigner un alias à un phar de telle façon que les références ultérieures au phar puissent être faites à l'aide d'un alias plus court ou pour charger des archives Phar qui contiennent seulement des données et qui ne sont pas destinées à être exécutées/incluses dans des scripts PHP.

Liste de paramètres

filename

le chemin relatif ou absolu vers l'archive phar à ouvrir

alias

L'alias qui pourra être utilisé pour se référer à l'archive phar. Notez que de nombreuses archives phar spécifient un alias explicite au sein de l'archive phar, et une exception PharException sera levée si un nouvel alias est spécifié dans ce cas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exceptionPharException est levée si un alias est passé alors que l'archive phar a déjà un alias explicite

Exemples

Exemple #1 Un exemple avec Phar::loadPhar()

Phar::loadPhar peut être utilisée n'importe où pour charger une archive phar externe alors que Phar::mapPhar devrait être utilisée dans un conteneur de chargement pour un Phar.

<?php
try {
    
Phar::loadPhar('/chemin/vers/phar.phar''mon.phar');
    echo 
file_get_contents('phar://mon.phar/fichier.txt');
} catch (
PharException $e) {
    echo 
$e;
}
?>

Voir aussi



Phar::mapPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::mapPharLit le phar exécuté et charge son manifeste

Description

bool Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] )

Cette méthode statique peut être utilisée seulement au sein du conteneur de chargement d'une archive Phar pour initialiser le phar quand il est exécuté directement ou quand il est inclus dans un autre script.

Liste de paramètres

alias

L'alias qui peut être utilisé dans l'URL phar:// pour se référer à l'archive plutôt que d'utiliser son chemin complet.

dataoffset

Variable inutilisée, présente par souci de compatibilité avec la bibliothèque PHP_Archive de PEAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception PharException est levée si la méthode n'est pas appelée directement au sein de l'exécution de PHP, si aucun jeton __HALT_COMPILER(); n'est trouvé dans le fichier source actuel ou si le fichier ne peut pas être ouvert en lecture.

Exemples

Exemple #1 Exemple avec Phar::mapPhar()

mapPhar ne doit être utilisé qu'au sein du conteneur de chargement d'un phar. Utilisez loadPhar pour charger un phar externe en mémoire.

Voici un exemple de conteneur de chargement Phar qui utilise mapPhar.

<?php
function __autoload($class)
{
    include 
'phar://mon.phar/' str_replace('_''/'$class) . '.php';
}
try {
    
Phar::mapPhar('mon.phar');
    include 
'phar://mon.phar/demarrage.php';
} catch (
PharException $e) {
    echo 
$e->getMessage();
    die(
'Ne peut pas initialiser le Phar');
}
__HALT_COMPILER();

Voir aussi



Phar::mount

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::mountMonte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar

Description

void Phar::mount ( string $pharpath , string $externalpath )

Tout comme le concept unix de montage d'un périphérique externe à un endroit de l'arborescence, Phar::mount() permet de se référer à des fichiers et des répertoires externes comme s'ils étaient à l'intérieur de l'archive.

Liste de paramètres

pharpath

Le chemin interne au sein de l'archive phar à utiliser en tant que point de montage. En cas d'exécution au sein d'une archive phar, ce peut être un chemin relatif, sinon ce doit être une URL absolue phar.

externalpath

Un chemin ou une URL vers un fichier ou un répertoire externe à monter au sein de l'archive

Valeurs de retour

Aucun retour. Une exception PharException est levée en cas d'échec.

Erreurs / Exceptions

Lève une exception PharException si un problème est rencontré lors du montage.

Exemples

Exemple #1 Un exemple avec Phar::mount()

L'exemple suivant présente l'accès à un fichier de configuration externe comme s'il était un chemin au sein de l'archive phar.

Tout d'abord, le code au sein de l'archive phar :

<?php
$configuration 
simplexml_load_string(file_get_contents(
    
Phar::running(false) . '/config.xml'));
?>

Ensuite le code externe utilisé pour monter le fichier de configuration :

<?php
// on commence par configurer l'association entre le fichier config.xml abstrait
// et celui sur le disque
Phar::mount('phar:///chemin/vers/archive.phar/config.xml''/home/exemple/config.xml');
// on lance maintenant l'application
include '/chemin/vers/archive.phar';
?>

Une autre méthode est de mettre le code de montage au sein du conteneur de chargement de l'archive phar. Voici un exemple pour configurer un fichier de configuration par défaut si aucune configuration utilisateur n'est faite :

<?php
// on commence par configurer l'association entre le fichier config.xml abstrait
// et celui sur le disque
if (defined('EXTERNAL_CONFIG')) {
    
Phar::mount('config.xml'EXTERNAL_CONFIG);
    if (
file_exists(__DIR__ '/extra_config.xml')) {
        
Phar::mount('extra.xml'__DIR__ '/extra_config.xml');
    }
} else {
    
Phar::mount('config.xml''phar://' __FILE__ '/default_config.xml');
    
Phar::mount('extra.xml''phar://' __FILE__ '/default_extra.xml');
}
// on lance maintenant l'application
include 'phar://' __FILE__ '/index.php';
__HALT_COMPILER();
?>

... et le code externe pour charger cette archive phar :

<?php
define
('EXTERNAL_CONFIG''/home/exemple/config.xml');
// on lance maintenant l'application
include '/chemin/vers/archive.phar';
?>



Phar::mungServer

(Unknown)

Phar::mungServerDéfinit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution

Description

void Phar::mungServer ( array $munglist )

Phar::mungServer() doit être appelée seulement dans le conteneur de chargement d'une archive phar.

Définit une liste de maximum 4 variables $_SERVER qui doiventt être modifiées lors de l'exécution. Les variables qui peuvent être modifiées pour effacer les traces de l'exécution phar sont REQUEST_URI, PHP_SELF, SCRIPT_NAME et SCRIPT_FILENAME.

Seule, cette méthode ne fait rien. Elle prend effet seulement quand elle est combinée à Phar::webPhar() et seulement si le fichier demandé est un fichier PHP à parser. Notez que les variables PATH_INFO et PATH_TRANSLATED sont toujours modifiées.

Les valeurs de départ des variables qui sont modifiées sont stockées dans le tableau SERVER avec le préfixe PHAR_ et donc par exemple SCRIPT_NAME sera stockée en tant que PHAR_SCRIPT_NAME.

Liste de paramètres

munglist

un tableau contenant n'importe laquelle des variables REQUEST_URI, PHP_SELF, SCRIPT_NAME et SCRIPT_FILENAME en tant qu'indices de chaînes de caractères. Les autres valeurs déclenchent une exception et Phar::mungServer() est sensible à la casse.

Valeurs de retour

Aucun retour.

Erreurs / Exceptions

Lève une exception UnexpectedValueException si un quelconque problème est trouvé dans les données passées.

Exemples

Exemple #1 Un exemple avec Phar::mungServer()

<?php
// exemple de conteneur
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>

Voir aussi

  • Phar::webPhar() - mapPhar pour les phars orientés web. Contrôleur pour les applications web
  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar



Phar::offsetExists

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetExistsdétermine si un fichier existe dans le phar

Description

bool Phar::offsetExists ( string $offset )

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau.

offsetExists() est appelé comme isset() est appelé.

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

Valeurs de retour

Retourne TRUE si le fichier existe dans le phar, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::offsetExists()

<?php
$p 
= new Phar(dirname(__FILE__) . '/mon.phar'0'mon.phar');
$p['premierfichier.txt'] = 'premier fichier';
$p['secondfichier.txt'] = 'second fichier';
// les lignes suivantes font appel à offsetExists() de façon indirecte
var_dump(isset($p['premierfichier.txt']));
var_dump(isset($p['pasla.txt']));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi



Phar::offsetGet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetGetObtient un objet PharFileInfo à partir d'un fichier

Description

int Phar::offsetGet ( string $offset )

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau. Phar::offsetGet() est utilisé pour extraire des fichiers d'une archive Phar.

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

Valeurs de retour

Un objet PharFileInfo est retourné et peut être utilisé pour intégrer le contenu d'un fichier ou pour récupérer des informations sur le fichier courant.

Erreurs / Exceptions

Cette méthode émet une exception BadMethodCallException si le fichier n'existe pas dans l'archive Phar.

Exemples

Exemple #1 Exemple avec Phar::offsetGet()

Comme avec toutes les classes qui implémentent l'interface ArrayAccess, Phar::offsetGet() est automatiquement appelée quand les crochets d'accès à un tableau sont utilisés ([]).

<?php
$p 
= new Phar(dirname(__FILE__) . '/monphar.phar'0'monphar.phar');
$p['existe.txt'] = "le fichier existe\n";
try {
    
// appelle automatiquement offsetGet()
    
echo $p['existe.txt'];
    echo 
$p['nexistepas.txt'];
} catch (
BadMethodCallException $e) {
    echo 
$e;
}
?>

L'exemple ci-dessus va afficher :

le fichier existe
Entry nexistepas.txt does not exist

Voir aussi



Phar::offsetSet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetSetmet le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe

Description

void Phar::offsetSet ( string $offset , string $value )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau. offsetSet est utilisé pour modifier un fichier existant ou pour ajouter un nouveau fichier à l'archive Phar.

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

value

Contenu du fichier.

Valeurs de retour

Aucune valeur de retour.

Erreurs / Exceptions

Si phar.readonly est à 1, une exception BadMethodCallException est levée, car modifier un Phar n'est permis que quand phar.readonly est à 0. Une exception PharException est levée s'il y a eu un problème lors de l'écriture des changements de l'archive Phar sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::offsetSet()

offsetSet ne doit pas être accédé directement, mais plutôt via l'opérateur d'accès au tableau, [].

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
try {
    
// appelle offsetSet
    
$p['fichier.txt'] = 'Salut';
} catch (
Exception $e) {
    echo 
'Ne peut pas modifier fichier.txt:'$e;
}
?>

Voir aussi



Phar::offsetUnset

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetUnsetEfface un fichier d'un phar

Description

bool Phar::offsetUnset ( string $offset )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau. offsetUnset est utilisé pour supprimer un fichier existant et est appelé par la fonction unset().

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Si phar.readonly est à 1, une exception BadMethodCallException est levée, car modifier un Phar n'est permis que quand phar.readonly est à 0.Une exception PharException est levée s'il y a eu un problème lors de l'écriture des changements de l'archive Phar sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::offsetUnset()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
try {
    
// efface fichier.txt de mon.phar en appelant offsetUnset
    
unset($p['fichier.txt']);
} catch (
Exception $e) {
    echo 
'Ne peut pas effacer fichier.txt: '$e;
}
?>

Voir aussi



Phar::running

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::runningRetourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée

Description

string Phar::running ([ bool $retphar = true ] )

Retourne le chemin complet de l'archive phar exécutée. C'est bien entendu utilisé un peu comme la constante magique __FILE__ et a des effets uniquement au sein d'une archive phar en train d'être exécutée.

Dans le conteneur de chargement d'une archive, Phar::running() retourne "". Utilisez simplement __FILE__ pour accéder au phar courant au sein d'un conteneur de chargement.

Liste de paramètres

retphar

Si FALSE, le chemin complet sur le disque vers le phar est retourné. Si TRUE, une URL phar complète est retournée.

Valeurs de retour

Retourne le chemin de fichier si valide, sinon une chaîne vide.

Exemples

Exemple #1 Un exemple avec Phar::running()

Pour l'exemple suivant, on suppose que le fichier est au sein de l'archive phar /chemin/vers/mon.phar et qu'il y est nommé mon/fichier.txt.

<?php
$a 
Phar::running(); // $a vaut "phar:///chemin/vers/mon.phar"
$b Phar::running(false); // $b vaut "/chemin/vers/mon.phar"
?>



Phar::setAlias

(PHP >= 5.3.0, PECL phar >= 1.2.1)

Phar::setAliasFixe l'alias de l'archive Phar

Description

bool Phar::setAlias ( string $alias )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Fixe l'alias de l'archive Phar et l'écrit en tant qu'alias permanent de cette archive phar. Un alias peut être utilisé à l'intérieur d'une archive phar pour s'assurer que l'utilisation du flux phar pour accéder à des fichiers internes fonctionnera toujours quelque soit l'emplacement de l'archive phar sur le système de fichiers. Une alternative consiste à se fier à l'interception de include() faite par Phar ou d'utiliser Phar::interceptFileFuncs() et d'utiliser des chemins relatifs.

Liste de paramètres

alias

Une petite chaîne avec laquelle on se référera à cette archive lors des accès avec le flux phar.

Valeurs de retour

Erreurs / Exceptions

Une exception UnexpectedValueException est levée quand l'accès en écriture est désactivé et une exception PharException est levée si l'alias est déjà utilisé ou si un problème a été rencontré lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::setAlias()

<?php
try {
    
$phar = new Phar('monphar.phar');
    
$phar->setAlias('monp.phar');
} catch (
Exception $e) {
    
// traite les erreurs
}
?>

Voir aussi



Phar::setDefaultStub

(Unknown)

Phar::setDefaultStubUtilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut

Description

bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est un raccourci qui combine les fonctionnalités de Phar::createDefaultStub() et de Phar::setStub().

Liste de paramètres

index

Chemin relatif au sein de l'archive phar a exécuter si lancée à partir de la ligne de commande

webindex

Chemin relatif au sein de l'archive phar a exécuter si lancée à partir d'un navigateur

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception UnexpectedValueException est levée si phar.readonly est activée dans le php.ini. Une exception PharException est levée si des problèmes sont rencontrés lors de l'écriture des changements sur disque.

Exemples

Exemple #1 Un exemple avec Phar::setDefaultStub()

<?php
try {
    
$phar = new Phar('monphar.phar');
    
$phar->setDefaultStub('cli.php''web/index.php');
    
// est identique à :
    // $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    
// traite les erreurs
}
?>

Voir aussi



Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadataFixe les métadonnées de l'archive phar

Description

void Phar::setMetadata ( mixed $metadata )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Phar::setMetadata() doit être utilisée pour stocker des données personnalisées qui décrivent l'archive phar, en tant qu'entité à part entière. PharFileInfo::setMetadata() doit être utilisée pour les métadonnées spécifiques aux fichiers. Les métadonnées peuvent diminuer les performance de chargement d'une archive phar si les données sont importantes.

Une utilisation possible des métadonnées est la spécification des fichiers à utiliser au sein de l'archive pour la lancer, ou l'emplacement d'un fichier de manifeste comme le fichier package.xml de » PEAR. De façon générale, toute donnée utile qui décrit l'archive phar peut être stockée.

Liste de paramètres

metadata

Toute variable PHP contenant des informations à stocker et qui décrit l'archive phar

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec Phar::setMetadata()

<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveau.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/nouveau.phar'0'nouveau.phar');
    
$p['fichier.php'] = '<?php echo "salut"';
    
$p->setMetadata(array('chargeur' => 'fichier.php'));
    
var_dump($p->getMetadata());
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier le phar :'$e;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["chargeur"]=>
  string(11) "fichier.php"
}

Voir aussi



Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithmFixe et applique l'algorithme de signature d'un phar

Description

void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Fixe et applique l'algorithme de signature d'un phar. L'algorithme de signature doit être Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, ou Phar::OPENSSL.

Notez que toutes les archives phar exécutables ont une signature créée automatiquement, SHA1 par défaut. Les archives de données basées sur tar ou sur zip (créées avec la classe PharData) doivent avoir leur signature créée et assignée explicitement via Phar::setSignatureAlgorithm().

Liste de paramètres

sigtype

Un des algorithmes Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, ou Phar::OPENSSL

privatekey

Le contenu d'une clé privée OpenSSL, telle qu'extraite d'un certificat ou d'un fichier de clé OpenSSL :

<?php
$private 
openssl_get_privatekey(file_get_contents('private.pem'));
$pkey '';
openssl_pkey_export($private$pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL$pkey);
?>
Reportez-vous à l'introduction de phar pour les instructions de nommage et de placement du fichier de clé publique.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lève une exception UnexpectedValueException pour de nombreuses erreurs et une exception PharException si des problèmes surviennent durant l'écriture des changements sur le disque.

Voir aussi



Phar::setStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setStubUtilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar

Description

bool Phar::setStub ( string $stub )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est utilisée pour ajouter un chargeur PHP à une nouvelle archive Phar, ou pour remplacer le conteneur de chargement d'une archive Phar existante.

Le conteneur de chargement d'une archive Phar est utilisé quand une archive est incluse directement comme dans cet exemple :

<?php
include 'monphar.phar';
?>

Le chargeur n'est pas utilisé quand un fichier est inclus via le flux phar comme ceci :

<?php
include 'phar://monphar.phar/unfchier.php';
?>

Liste de paramètres

stub

Une chaîne ou une ressource de flux ouvert à utiliser comme conteneur exécutable pour cette archive phar.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception UnexpectedValueException est levée si phar.readonly est activé dans le php.ini. Une exception PharException est levée si des problèmes sont rencontrés lors de l'écriture des changement sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::setStub()

<?php
try {
    
$p = new Phar(dirname(__FILE__) . '/nouveau.phar'0'nouveau.phar');
    
$p['a.php'] = '<?php var_dump("Salut");';
    
$p->setStub('<?php var_dump("Premier"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>');
    include 
'phar://nouveau.phar/a.php';
    
var_dump($p->getStub());
    
$p['b.php'] = '<?php var_dump("Tout le monde");';
    
$p->setStub('<?php var_dump("Second"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>');
    include 
'phar://nouveau.phar/b.php';
    
var_dump($p->getStub());
} catch (
Exception $e) {
    echo 
'Erreur lors de l'écriture de nouveau.phar', $e;
}
?>

L'exemple ci-dessus va afficher :

string(5) "Salut"
string(79) "<?php var_dump("Premier"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>"
string(13) "Tout le monde"
string(78) "<?php var_dump("Second"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>"

Voir aussi



Phar::startBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::startBufferingDémarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque

Description

void Phar::startBuffering ( void )

Bien que techniquement inutile, la méthode Phar::startBuffering() peut fournir un gain de performance lors de la création ou la modification d'une archive Phar avec un grand nombre de fichiers. D'ordinaire, chaque fois qu'un fichier au sein de l'archive Phar est créé ou modifié, l'archive Phar entière et recréée en incluant les changements. De cette manière, l'archive sera toujours à jour vis à vis des opération qui y sont appliquées.

Alors que ceci peut paraître inutile lors de la création d'un archive Phar simple, ça prend tout son sens lors de l'écriture en une fois de l'archive Phar entière. De même, il est souvent nécessaire de faire une série de changements et de s'assurer qu'ils sont tous possibles avant d'écrire sur le disque, un peu comme les transactions des base de données relationnelles. Les fonctions Phar::startBuffering()/Phar::stopBuffering() sont disponibles dans ce but.

La mise en tampon Phar s'effectue par archive, le tampon actif pour l'archive Phar foo.phar n'affecte pas les changements faits à l'archive Phar bar.phar.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec Phar::startBuffering()

<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveau.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/nouveau.phar'0'nouveau.phar');
} catch (
Exception $e) {
    echo 
'Ne peut pas créer le phar:'$e;
}
echo 
'Le nouveau phar a ' $p->count() . " entrées\n";
$p->startBuffering();
$p['fichier.txt'] = 'salut';
$p['fichier2.txt'] = 'jolie';
$p['fichier2.txt']->setCompressedGZ();
$p['fichier3.txt'] = 'môme';
$p['fichier3.txt']->setMetaData(42);
$p->setStub("<?php
function __autoload(
$class)
{
    include 'phar://monphar.phar/' . str_replace('_', '/', 
$class) . '.php';
}
Phar::mapPhar('monphar.phar');
include 'phar://monphar.phar/demarrage.php';
__HALT_COMPILER();"
);
$p->stopBuffering();
?>

Voir aussi

  • Phar::stopBuffering() - Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque
  • Phar::isBuffering() - Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque



Phar::stopBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::stopBufferingArrête la mise en tampon des écritures Phar et provoque l'écriture que le disque

Description

void Phar::stopBuffering ( void )

Phar::stopBuffering() est utilisée en conjonction avec la méthode Phar::startBuffering(). Phar::startBuffering() peut fournir un gain de performance lors de la création ou la modification d'une archive Phar avec un grand nombre de fichiers. D'ordinaire, chaque fois qu'un fichier au sein de l'archive Phar est créé ou modifié, l'archive Phar entière et recréée en incluant les changements. De cette manière, l'archive sera toujours à jour vis à vis des opération qui y sont appliquées.

Alors que ceci peut paraître inutile lors de la création d'un archive Phar simple, ça prend tout son sens lors de l'écriture en une fois de l'archive Phar entière. De même, il est souvent nécessaire de faire une série de changements et de s'assurer qu'ils sont tous possibles avant d'écrire sur le disque, un peu comme les transactions des base de données relationnelles. Les fonctions Phar::startBuffering()/Phar::stopBuffering() sont disponibles dans ce but.

La mise en tampon Phar s'effectue par archive, le tampon actif pour l'archive Phar foo.phar n'affecte pas les changements faits à l'archive Phar bar.phar.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Une exception PharException est levée si des problèmes sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple Phar::stopBuffering()

<?php
$p 
= new Phar(dirname(__FILE__) . '/nouveau.phar'0'nouveau.phar');
$p['fichier1.txt'] = 'salut';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
    include 'phar://nouveau.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();"
);
$p->stopBuffering();
var_dump($p->getStub());
?>

L'exemple ci-dessus va afficher :

string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();"

Voir aussi

  • Phar::startBuffering() - Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque
  • Phar::isBuffering() - Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque



Phar::uncompressAllFiles

(PECL phar < 2.0.0)

Phar::uncompressAllFilesDécompresse tous les fichiers de l'archive Phar courante

Description

bool Phar::uncompressAllFiles ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser Phar::compress(), Phar::decompress(), Phar::compressFiles() et Phar::decompressFiles() à la place.

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode décompresser tous les fichier de l'archive Phar. Si un des fichiers est déjà compressé en utilisant la compression gzip, l'extension zlib doit être activée pour décompresser le fichier, et si un des fichiers est déjà compressé en utilisant la compression bzip2, l'extension bzip2 doit être activée pour décompresser le fichier. Comme avec toutes les fonctionnalités qui modifient le contenu d'un As with all functionality that modifies the contents of phar, la variable INI phar.readonly doit être à off pour que ça fonctionne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension bzip2 n'est pas activée alors qu'au moins un fichier est compressé avec la compression bzip2 ou si au moins un des fichiers est compressé avec la compression gzip et que l'extension zlib n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::uncompressAllFiles()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$p['monfichier2.txt'] = 'salut';
    
$p->compressAllFilesGZ();
    foreach (
$p as $file) {
        
var_dump($file->getFileName());
        
var_dump($file->isCompressed());
        
var_dump($file->isCompressedBZIP2());
        
var_dump($file->isCompressedGZ());
    }
    
$p->uncompressAllFiles();
    foreach (
$p as $file) {
        
var_dump($file->getFileName());
        
var_dump($file->isCompressed());
        
var_dump($file->isCompressedBZIP2());
        
var_dump($file->isCompressedGZ());
    }
} catch (
Exception $e) {
    echo 
'Les opération d'écriture sur mon.phar ont échoué ', $e;
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichiere.txt"
bool(true)
bool(false)
bool(true)
string(11) "monfichier2.txt"
bool(true)
bool(false)
bool(true)
string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)

Voir aussi



Phar::unlinkArchive

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::unlinkArchiveEfface complètement une archive phar du disque et de la mémoire

Description

bool Phar::unlinkArchive ( string $archive )

Efface complètement une archive phar du disque et de la mémoire

Liste de paramètres

archive

Le chemin sur le disque vers l'archive phar.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception PharException est levée si des pointeurs sont ouverts vers des fichiers de l'archive phar, ou si des objets Phar, PharData, ou PharFileInfo réfèrent à l'archive phar.

Exemples

Exemple #1 Un exemple avec Phar::unlinkArchive()

<?php
// utilisation simple
Phar::unlinkArchive('/chemin/vers/mon.phar');

// un exemple plus commun :
$p = new Phar('mon.phar');
$fp fopen('phar://mon.phar/fichier.txt''r');
// cela crée 'mon.phar.gz'
$gp $p->compress(Phar::GZ);
// enlève toutes les références à l'archive
unset($p);
fclose($fp);
// efface maintenant toute trace de l'archive
Phar::unlinkArchive('mon.phar');
?>

Voir aussi



Phar::webPhar

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::webPharmapPhar pour les phars orientés web. Contrôleur pour les applications web

Description

void Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, array $rewrites ]]]]] )

Phar::mapPhar() pour les phars orientés web. Cette méthode parse $_SERVER['REQUEST_URI'] et route les requêtes d'un navigateur vers un fichier interne à l'archive. Dans le principe, cela simule un serveur web, en routant des requêtes vers le bon fichier, en envoyant les bons en-têtes et analysant le fichier PHP comme il convient. Cette méthode puissante permet de convertir facilement des applications PHP en archive phar. Combinée avec Phar::mungServer() et Phar::interceptFileFuncs(), n'importe quelle application web peut être utilisée sans changement à partir de l'archive phar.

Phar::webPhar() doit être appelé uniquement à partir du conteneur de chargement d'une archive phar (lisez ceci pour en savoir davantage sur les conteneurs).

Liste de paramètres

alias

L'alias qui peut être utilisé dans l'URL phar:// pour se référer à l'archive, plutôt que son chemin complet.

index

L'emplacement au sein de l'archive de l'index de répertoire.

f404

L'emplacement du script à exécuter quand un fichier n'est pas trouvé. Ce script doit envoyer des en-têtes HTTP 404 corrects.

mimetypes

Un tableau faisant correspondre des extensions de fichier supplémentaires à des types MIME. Par défaut, ces correspondances sont les suivantes :

<?php
$mimes 
= array(
    
'phps' => 2// passage vers highlight_file()
    
'c' => 'text/plain',
    
'cc' => 'text/plain',
    
'cpp' => 'text/plain',
    
'c++' => 'text/plain',
    
'dtd' => 'text/plain',
    
'h' => 'text/plain',
    
'log' => 'text/plain',
    
'rng' => 'text/plain',
    
'txt' => 'text/plain',
    
'xsd' => 'text/plain',
    
'php' => 1// parse en tant que PHP
    
'inc' => 1// parse en tant que PHP
    
'avi' => 'video/avi',
    
'bmp' => 'image/bmp',
    
'css' => 'text/css',
    
'gif' => 'image/gif',
    
'htm' => 'text/html',
    
'html' => 'text/html',
    
'htmls' => 'text/html',
    
'ico' => 'image/x-ico',
    
'jpe' => 'image/jpeg',
    
'jpg' => 'image/jpeg',
    
'jpeg' => 'image/jpeg',
    
'js' => 'application/x-javascript',
    
'midi' => 'audio/midi',
    
'mid' => 'audio/midi',
    
'mod' => 'audio/mod',
    
'mov' => 'movie/quicktime',
    
'mp3' => 'audio/mp3',
    
'mpg' => 'video/mpeg',
    
'mpeg' => 'video/mpeg',
    
'pdf' => 'application/pdf',
    
'png' => 'image/png',
    
'swf' => 'application/shockwave-flash',
    
'tif' => 'image/tiff',
    
'tiff' => 'image/tiff',
    
'wav' => 'audio/wav',
    
'xbm' => 'image/xbm',
    
'xml' => 'text/xml',
);
?>

rewrites

Un tableau faisant correspondre des URI à des fichiers internes, simulant le mod_rewrite de apache. Par exemple:

<?php
array(
    
'moninfo' => 'moninfo.php'
);
?>
routera les appels à http://<hôte>/monphar.phar/moninfo vers le fichier phar:///chemin/vers/monphar.phar/moninfo.php, en préservant les GET/POST. Ca ne fonctionne pas tout à fait comme mod_rewrite car ça ne fera pas correspondre http://<hôte>/monphar.phar/moninfo/unautre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lève une exception PharException quand le fichier interne ne peut pas être ouvert ou si l'appel est fait en dehors d'un conteneur. Si un valeur de tableau non valide est passée dans mimetypes ou dans rewrites, une exception UnexpectedValueException est levée.

Exemples

Exemple #1 Exemple avec Phar::webPhar()

Dans l'exemple ci-dessous, le phar créé affichera Salut tout le monde si quelqu'un appelle /monphar.phar/index.php ou /monphar.phar, et affichera la source de index.phps si /monphar.phar/index.phps est appelé.

<?php
// l'archive phar est créée :
try {
    
$phar = new Phar('monphar.phar');
    
$phar['index.php'] = '<?php echo "Salut tout le monde"; ?>';
    
$phar['index.phps'] = '<?php echo "Salut tout le monde"; ?>';
    
$phar->setStub('<?php
Phar::webPhar();
__HALT_COMPILER(); ?>'
);
} catch (
Exception $e) {
    
// on traite les erreurs ici
}
?>

Voir aussi


Sommaire



La classe PharData

Introduction

La classe PharData fournit une interface de haut niveau pour accéder et créer des archives tar et zip non exécutables. Du fait que ces archives ne contiennent pas de conteneur et qu'elles ne puissent être exécutées par l'extension phar, il est possible de créer et de manipuler des fichiers zip et tar normaux en utilisant la classe PharData même si le paramètre phar.readonly du php.ini est à 1.

Synopsis de la classe

PharData extends Phar {
/* Propriétés */
/* Méthodes */
bool addEmptyDir ( string $dirname )
void Phar::addFile ( string $file [, string $localname ] )
bool addFromString ( string $localname , string $contents )
array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
array buildFromIterator ( Iterator $iter [, string $base_directory ] )
object compress ( int $compression [, string $extension ] )
bool compressFiles ( int $compression )
void __construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )
PharData convertToData ([ int $format [, int $compression [, string $extension ]]] )
Phar convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )
bool copy ( string $oldfile , string $newfile )
object decompress ([ string $extension ] )
bool decompressFiles ( void )
bool delMetadata ( void )
bool delete ( string $entry )
bool extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
bool isWritable ( void )
void offsetSet ( string $offset , string $value )
bool offsetUnset ( string $offset )
bool setAlias ( string $alias )
bool setDefaultStub ([ string $index [, string $webindex ]] )
void Phar::setMetadata ( mixed $metadata )
void Phar::setSignatureAlgorithm ( int $sigtype )
bool setStub ( string $stub )
/* Méthodes héritées */
void Phar::addEmptyDir ( string $dirname )
void Phar::addFile ( string $file [, string $localname ] )
void Phar::addFromString ( string $localname , string $contents )
string Phar::apiVersion ( void )
array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )
bool Phar::canCompress ([ int $type = 0 ] )
bool Phar::canWrite ( void )
object Phar::compress ( int $compression [, string $extension ] )
void Phar::compressFiles ( int $compression )
void Phar::__construct ( string $fname [, int $flags [, string $alias ]] )
PharData Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
Phar Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
bool Phar::copy ( string $oldfile , string $newfile )
int Phar::count ( void )
string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
object Phar::decompress ([ string $extension ] )
bool Phar::decompressFiles ( void )
bool Phar::delMetadata ( void )
bool Phar::delete ( string $entry )
bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
mixed Phar::getMetaData ( void )
bool Phar::getModified ( void )
array Phar::getSignature ( void )
string Phar::getStub ( void )
string Phar::getVersion ( void )
bool Phar::hasMetadata ( void )
bool Phar::isBuffering ( void )
mixed Phar::isCompressed ( void )
bool Phar::isFileFormat ( int $format )
bool Phar::isValidPharFilename ( string $filename [, bool $executable = true ] )
bool Phar::isWritable ( void )
bool Phar::loadPhar ( string $filename [, string $alias ] )
bool Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] )
void Phar::mount ( string $pharpath , string $externalpath )
void Phar::mungServer ( array $munglist )
bool Phar::offsetExists ( string $offset )
int Phar::offsetGet ( string $offset )
void Phar::offsetSet ( string $offset , string $value )
bool Phar::offsetUnset ( string $offset )
string Phar::running ([ bool $retphar = true ] )
bool Phar::setAlias ( string $alias )
bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )
void Phar::setMetadata ( mixed $metadata )
void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
bool Phar::setStub ( string $stub )
void Phar::startBuffering ( void )
void Phar::stopBuffering ( void )
bool Phar::unlinkArchive ( string $archive )
void Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, array $rewrites ]]]]] )
}

PharData::addEmptyDir

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addEmptyDirAjoute un répertoire vide à l'archive tar/zip

Description

bool PharData::addEmptyDir ( string $dirname )

Avec cette méthode, un répertoire vide est créé avec le chemin dirname. Cette méthode est identique à ZipArchive::addEmptyDir().

Liste de paramètres

dirname

Le nom du répertoire vide à créer dans l'archive phar

Valeurs de retour

aucune valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec PharData::addEmptyDir()

<?php
try {
    
$a = new PharData('/chemin/vers/mon.tar');

    
$a->addEmptyDir('/chemin/complet/vers/fichier');
    
// montre comment le fichier est stocké
    
$b $a['chemin/complet/vers/fichier']->isDir();
} catch (
Exception $e) {
    
// les erreurs sont traitées ici
}
?>

Voir aussi



PharData::addFile

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFileAjoute un fichier du système de fichiers à l'archive tar/zip

Description

void Phar::addFile ( string $file [, string $localname ] )

Avec cette méthode, n'importe quel fichier ou URL peut être ajouté à l'archive tar/zip. Si le second paramètre optionnel localname est spécifié, le fichier sera stocké dans l'archive avec ce nom, sans quoi le paramètre file est utilisé comme chemin vers lequel stocker le fichier au sein de l'archive. Les URL doivent avoir un nom local sans quoi une exception est levée. Cette méthode est identique à ZipArchive::addFile().

Liste de paramètres

file

Chemin relatif ou absolu vers un fichier du disque à ajouter à l'archive phar.

localname

Chemin vers lequel le fichier sera stocké au sein de l'archive.

Valeurs de retour

aucune valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec PharData::addFile()

<?php
try {
    
$a = new PharData('/chemin/vers/mon.tar');

    
$a->addFile('/chemin/complet/vers/fichier');
    
// montre comment le fichier est stocké
    
$b $a['chemin/complet/vers/fichier']->getContent();

    
$a->addFile('/chemin/complet/vers/fichier''mon/fichier.txt');
    
$c $a['mon/fichier.txt']->getContent();

    
// montre l'utilisation des URLs
    
$a->addFile('http://www.exemple.com''exemple.html');
} catch (
Exception $e) {
    
// les erreurs sont traitées ici
}
?>

Voir aussi



PharData::addFromString

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFromStringAjoute un fichier du système de fichiers à l'archive tar/zip

Description

bool PharData::addFromString ( string $localname , string $contents )

Ajoute une chaîne de caractères à l'archive tar/zip. Le fichier sera stocké dans l'archive avec le chemin localname. Cette méthode est identique à ZipArchive::addFromString().

Liste de paramètres

localname

Chemin vers lequel le fichier sera stocké au sein de l'archive.

contents

Le contenu du fichier à stocker

Valeurs de retour

Aucune valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Exemple avec PharData::addFromString()

<?php
try {
    
$a = new PharData('/chemin/vers/mon.tar');

    
$a->addFromString('chemin/vers/fichier.txt''mon fichier simple');
    
$b $a['chemin/vers/fichier.txt']->getContent();

    
// pour ajouter du contenu à partir d'un gestionnaire de flux pour des gros fichier, utilisez offsetSet()
    
$c fopen('/chemin/vers/grosfichier.bin');
    
$a['grosfichier.bin'] = $c;
    
fclose($c);
} catch (
Exception $e) {
    
// les erreurs sont traitées ici
}
?>

Voir aussi



PharData::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromDirectoryConstruit une archive tar/zip à partir des fichiers d'un répertoire

Description

array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Remplit une archive tar/zip à partir du contenu d'un répertoire. Le second paramètre optionnel est une expression rationnelle (pcre) utilisée pour exclure des fichiers. N'importe quel fichier dont le nom satisfait sera inclus, tous les autres seront exclus. Pour un contrôle plus fin, utilisez PharData::buildFromIterator().

Liste de paramètres

base_dir

Le chemin relatif ou absolu vers le répertoire contenant tous les fichiers à ajouter à l'archive.

regex

Une expression rationnelle optionnelle qui est utilisée pour filtrer la liste des fichiers. Seuls les fichiers dont le nom satisfont l'expression seront inclus dans l'archive.

Valeurs de retour

Phar::buildFromDirectory() retourne un tableau associatif faisant correspondre un chemin de fichier interne vers un chemin complet sur le système de fichiers.

Erreurs / Exceptions

Cette méthode soulève une exception BadMethodCallException quand elle est incapable d'instancier les itérateurs interne de répertoire, ou une exception PharException si des erreurs ont été rencontrée lors de l'enregistrement de l'archive phar.

Exemples

Exemple #1 Un exemple avec PharData::buildFromDirectory()

<?php
$phar 
= new PharData('projet.tar');
// ajoute tous les fichiers au projet
$phar->buildFromDirectory(dirname(__FILE__) . '/projet');

$phar2 = new PharData('projet2.zip');
// ajoute tous les fichiers au projet en n'incluant que les fichiers php
$phar->buildFromDirectory(dirname(__FILE__) . '/projet''/\.php$/');
?>

Voir aussi



PharData::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromIteratorConstruit une archive tar ou zip à partir d'un itérateur

Description

array PharData::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Remplit une archive tar ou zip à partir d'un itérateur. Deux styles d'itérateurs sont supportés, les itérateurs qui font correspondre le chemin de fichier au sein de l'archive avec le chemin sur le disque, et les itérateurs comme DirectoryIterator qui retournent des objets SplFileInfo. Pour les itérateurs qui retournent des objets SplFileInfo, le second paramètre est requis.

Exemples

Exemple #1 Exemple avec PharData::buildFromIterator() et SplFileInfo

Pour la plupart des archive tar/zip, l'archive reflétera la structure de répertoire actuelle, et le second style est le plus utile. Par exemple, pour créer une archive tar/zip contenant les fichiers contenant la structure de répertoire ci-dessous :

/chemin/vers/projet/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     fichier1.php
                     fichier2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Ce code peut être utilisé pour ajouter des fichiers à l'archive "projet.tar" tar :

<?php
$phar 
= new PharData('projet.tar');
$phar->buildFromIterator(
    new 
RecursiveIteratorIterator(
     new 
RecursiveDirectoryIterator('/chemin/vers/projet')),
    
'/chemin/vers/projet');
?>

Le fichier projet.tar peut alors être effacé immédiatement. PharData::buildFromIterator() ne règle pas les paramètres tels que la compression, les métadonnées, ce qui peut être fait après avoir créé l'archive tar/zip.

A noter que Phar::buildFromIterator() peut aussi être utilisé pour copier le contenu d'une archive phar, tar ou zip existante, car l'objet PharData est dérivé de DirectoryIterator :

<?php
$phar 
= new PharData('projet.tar');
$phar->buildFromIterator(
    new 
RecursiveIteratorIterator(
     new 
Phar('/chemin/vers/unautrephar.phar')),
    
'phar:///chemin/vers/unautrephar.phar/chemin/vers/projet');
$phar->setStub($phar->createDefaultWebStub('cli/index.php''www/index.php'));
?>

Exemple #2 Exemple avec PharData::buildFromIterator() et d'autres itérateurs

La seconde forme d'itérateur peut être utilisée avec n'importe quel itérateur qui retourne une association clé => valeur, tel que ArrayIterator :

<?php
$phar 
= new PharData('projet.tar');
$phar->buildFromIterator(
    new 
ArrayIterator(
     array(
        
'interne/fichier.php' => dirname(__FILE__) . '/unfichier.php',
        
'unautre/fichier.jpg' => fopen('/chemin/vers/grosfichier.jpg''rb'),
     )));
?>

Liste de paramètres

iter

N'importe quel itérateur qui fait correspondre de façon associative un fichier tar/zip ou qui retourne des objets SplFileInfo

base_directory

Pour les itérateurs qui retournent des objets SplFileInfo, la partie du chemin complet vers le fichier à enlever lors de l'ajout à l'archive tar/zip

Valeurs de retour

PharData::buildFromIterator() retourne un tableau associatif faisant correspondre un chemin de fichier interne avec un chemin complet vers le fichier sur le système de fichiers.

Erreurs / Exceptions

Cette méthode retourne une exception UnexpectedValueException quand l'itérateur retourne des valeurs incorrectes, comme une clé entière plutôt qu'une chaîne, une exception BadMethodCallException quand un itérateur basé sur SplFileInfo-based est passé sans paramètre base_directory, ou une exception PharException si des erreurs ont été rencontrées lors de la sauvegarde de l'archive phar.

Voir aussi



PharData::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compressCompresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2

Description

object PharData::compress ( int $compression [, string $extension ] )

Pour les archives tar, cette méthode compresse l'archive entière en utilisant la compressions gzip ou bzip2. Le fichier qui en résulte peut être manipulé avec la commande gunzip/bunzip, ou être accédé directement et de façon transparente avec l'extension Phar.

Pour les archives zip, cette méthode échoue en levant une exception. L'extension zlib doit être activée pour compresser avec gzip, l'extension bzip2 doit être activée pour compresser avec bzip2.

De plus, cette méthode renomme automatiquement l'archive, en la suffixant par .gz, .bz2 ou en enlevant l'extension si Phar::NONE est spécifié pour enlever la compression. Sinon, une extension de fichier peut être spécifiée avec le second paramètre.

Liste de paramètres

compression

La compression doit être Phar::GZ ou Phar::BZ2 pour appliquer une compression, ou Phar::NONE pour l'enlever.

extension

Par défaut, l'extension est .tar.gz ou .tar.bz2 pour compresser un tar, et .tar pour décompresser.

Valeurs de retour

Un objet PharData est retourné.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si l'extension zlib n'est pas disponible, ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec PharData::compress()

<?php
$p 
= new PharData('/chemin/vers/mon.tar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p1 $p->compress(Phar::GZ); // copie vers /chemin/vers/mon.phar.gz
$p2 $p->compress(Phar::BZ2); // copie vers /chemin/vers/mon.phar.bz2
$p3 $p2->compress(Phar::NONE); // exception: /chemin/vers/mon.phar existe déjà
?>

Voir aussi

  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2



PharData::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compressFilesCompresse tous les fichiers de l'archive tar/zip courante

Description

bool PharData::compressFiles ( int $compression )

Pour les archives basées sur tar, cette méthode soulève une exception BadMethodCallException car la compression individuelle des fichiers d'une archive tar n'est pas supportée par ce format de fichiers. Utilisez PharData::compress() pour compresser une archive basée sur tar complète.

Pour les archives basées sur Zip, cette méthode compresse tous les fichiers de l'archive en utilisant la compression spécifiée. Les extensions zlib ou bzip2 doivent être activées pour tirer parti de cette fonctionnalité. De plus, si au moins un fichier est déjà compressé en utilisant la compression bzip2/zlib, l'extension adéquate être activée pour décompresser les fichiers avant de les re-compresser.

Liste de paramètres

compression

La compression doit être Phar::GZ ou Phar::BZ2 pour appliquer une compression, ou Phar::NONE pour l'enlever.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible ou si au moins un fichier est compressé via bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec PharData::compressFiles()

<?php
$p 
= new Phar('/chemin/vers/mon.phar'0'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(14) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(15) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(14) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(15) "monfichier2.txt"
int(4096)
bool(false)
bool(true)

Voir aussi



PharData::__construct

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::__constructConstruit un objet d'archive tar ou zip non-exécutable

Description

void PharData::__construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )

Liste de paramètres

fname

Chemin vers une archive tar/zip existante ou à créer

flags

Drapeaux à passer à la classe parente Phar RecursiveDirectoryIterator.

alias

L'alias de l'archive Phar à utiliser lors des appels aux fonctionnalités de flux.

format

Une des constantes de format de fichier disponible dans la classe Phar.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si appelée deux fois, une exception UnexpectedValueException si l'archive phar ne peut pas être ouverte.

Exemples

Exemple #1 Un exemple avec PharData::__construct()

<?php
try {
    
$p = new PharData('/chemin/vers/mon.tar'CURRENT_AS_FILEINFO KEY_AS_FILENAME);
} catch (
UnexpectedValueException $e) {
    die(
'Ne peut pas ouvrir mon.tar');
} catch (
BadMethodCallException $e) {
    echo 
'techniquement, ça ne peut pas arriver';
}
echo 
file_get_contents('phar:///chemin/vers/mon.tar/exemple.txt');
?>



PharData::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToDataConvertit une archive phar en une archive tar ou zip non-exécutable

Description

PharData PharData::convertToData ([ int $format [, int $compression [, string $extension ]]] )

Cette méthode est utilisée pour convertir une archive non exécutable tar ou zip en un autre format non-exécutable.

Si aucun changement n'est demandé, cette méthode, cette méthode soulève une exception BadMethodCallException. Cette méthode doit être utilisée pour convertir une archive tar au format zip et vice-versa. Bien qu'il soit possible de changer la compression d'une archive tar avec cette méthode, il est préférable d'utiliser la méthode PharData::compress() pour rester cohérent au niveau de la logique.

En cas de succès, cette méthode crée une nouvelle archive sur le disque et retourne un objet PharData. L'ancienne archive n'est pas effacée du disque, ceci devant être fait manuellement une fois le traitement terminé.

Liste de paramètres

format

Le format doit être Phar::TAR ou Phar::ZIP. S'il vaut NULL, le format de fichier actuel sera conservé.

compression

La compression doit être Phar::NONE pour éviter la compression de l'archive complète, Phar::GZ pour la compression basée sur zlib, et Phar::BZ2 pour la compression basée sur bzip.

extension

Ce paramètre est utilisé pour écrase l'extension de fichier par défaut de l'archive convertie. Notez que .phar ne peut pas être utilisé n'importe où dans le nom de fichier d'une archive tar ou zip non-exécutable.

En cas de conversion vers une archive phar basée sur tar, les extensions par défaut sont .tar, .tar.gz et .tar.bz2 selon la compression spécifiée. Pour les archives basées sur zip, l'extension par défaut est .zip.

Valeurs de retour

Cette méthode retourne un objet PharData en cas de succès et soulève une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode soulève une exception BadMethodCallException quand elle est incapable de compresser, quand une méthode de compression inconnue a été spécifiée, quand l'archive demandée est mise en tampon avec Phar::startBuffering() et qu'elle n'a pas été conclue avec Phar::stopBuffering(), et soulève une exception PharException si un quelconque problème est rencontré lors de la création du phar.

Exemples

Exemple #1 Un exemple avec PharData::convertToData()

Utilisons PharData::convertToData():

<?php
try {
    
$tarphar = new PharData('monphar.tar');
    
// notez que monphar.tar n'est *pas* effacé
    // le convertir au format tar non-exécutable
    // crée monphar.zip
    
$zip $tarphar->convertToData(Phar::ZIP);
    
// crée monphar.tbz
    
$tgz $zip->convertToData(Phar::TARPhar::BZ2'.tbz');
    
// crée monphar.phar.tgz
    
$phar $tarphar->convertToData(Phar::PHAR); // soulève une exceptions
} catch (Exception $e) {
    
// les erreurs sont traitées ici
}
?>

Voir aussi



PharData::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToExecutableConvertit une archive tar/zip non-exécutable en une archive phar exécutable

Description

Phar PharData::convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est utilisée pour convertit une archive tar ou zip non-exécutable en une archive phar exécutable. N'importe lequel des trois formats de fichier (phar, tar ou zip) peut être utilisé et la compression de l'archive complète est aussi possible.

Si aucun changement n'est demandé, cette méthode soulève une exception BadMethodCallException.

En cas de succès, cette méthode crée une nouvelle archive sur le disque et retourne un objet Phar. L'ancienne archive n'est pas effacée du disque, ceci devant être fait manuellement une fois le traitement terminé.

Liste de paramètres

format

Le format doit être Phar::PHAR, Phar::TAR ou Phar::ZIP. S'il vaut NULL, le format de fichier actuel sera conservé.

compression

La compression doit être Phar::NONE pour éviter la compression de l'archive complète, Phar::GZ pour la compression basée sur zlib, et Phar::BZ2 pour la compression basée sur bzip.

extension

Ce paramètre est utilisé pour écrase l'extension de fichier par défaut de l'archive convertie. Notez que toute les archives basées sur tar et sur zip doivent contenir .phar dans leur extension de fichier pour pouvoir être traitées comme des archives phar.

En cas de conversion vers une archive basée sur phar, les extensions par défaut sont .phar, .phar.gz ou .phar.bz2 selon la compression spécifiée. Pour les archives phar basées sur tar, les extensions par défaut sont .phar.tar, .phar.tar.gz et .phar.tar.bz2. Pour les archives phar basées sur zip, l'extension par défaut est .phar.zip.

Valeurs de retour

Cette méthode retourne un objet Phar en cas de succès et soulève une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode soulève une exception BadMethodCallException quand elle est incapable de compresser, quand une méthode de compression inconnue a été spécifiée, quand l'archive demandée est mise en tampon avec Phar::startBuffering() et qu'elle n'a pas été conclue avec Phar::stopBuffering(), soulève une exception UnexpectedValueException si le support en écriture est désactivé, et soulève une exception PharException si des problèmes ont été rencontrés lors de la création du phar.

Exemples

Exemple #1 Un exemple avec PharData::convertToExecutable()

Utilisons PharData::convertToExecutable() :

<?php
try {
    
$tarphar = new PharData('monphar.tar');
    
// le convertit au format de fichier phar
    // notez que monphar.tar n'est *pas* effacé
    
$phar $tarphar->convertToExecutable(Phar::PHAR); // crée monphar.phar
    
$phar->setStub($phar->createDefaultStub('cli.php''web/index.php'));
    
// crée monphar.phar.tgz
    
$compressed $tarphar->convertToExecutable(Phar::TARPhar::GZ'.phar.tgz');
} catch (
Exception $e) {
    
// les erreurs sont traitées ici
}
?>

Voir aussi



PharData::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::copyCopie un fichier un fichier interne à l'archive phar vers un autre fichier au sein de la même archive

Description

bool PharData::copy ( string $oldfile , string $newfile )

Copie un fichier interne à l'archive tar/zip vers un autre fichier au sein de la même archive. C'est une alternative orientée objet à l'utilisation de copy() avec le gestionnaire de flux phar.

Liste de paramètres

oldfile

newfile

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr d'encadrer l'appel à la méthode dans un bloc try/catch est de considérer son succès si aucune exception n'est levée.

Erreurs / Exceptions

lève une exception UnexpectedValueException si le fichier source n'existe pas, si le fichier de destination existe déjà, si le support en écriture est désactivé, si l'ouverture d'un des deux fichiers échoue ou si la lecture du fichier source échoue; ou lève une exception PharException si l'écriture des changements de l'archive phar échoue.

Exemples

Exemple #1 Un exemple avec PharData::copy()

Cet exemple montre l'utilisation de PharData::copy() et de son équivalent en terme de gestionnaire de flux. La différence principale entre les deux façons de faire concerne la gestion des erreurs. Toutes les méthodes PharData soulèvent des exceptions, alors que le gestionnaire de flux utilise trigger_error().

<?php
try {
    
$phar = new PharData('monphar.tar');
    
$phar['a'] = 'salut';
    
$phar->copy('a''b');
    echo 
$phar['b']; // affiche "phar://myphar.tar/b"
} catch (Exception $e) {
    
// on traite les erreurs
}

// l'équivalent en terme de flux de l'exemple ci-dessus.
// des E_WARNINGS sont lancés en cas d'erreur à la place d'exceptions.
copy('phar://monphar.tar/a''phar//monphar.tar/c');
echo 
file_get_contents('phar://monphar.tar/c'); // affiche "salut"
?>



PharData::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompressDécompresse l'archive Phar entière

Description

object PharData::decompress ([ string $extension ] )

Décompresse l'archive entière, si c'est une archive tar.

Pour les archives Zip, cette méthode échoue et lève une exception. L'extension zlib doit être activée pour décompresser une archive compressée avec gzip et l'extension bzip2 doit être disponible pour décompresser une archive compressée avec bzip2.

De plus, cette méthode renomme automatiquement l'extension de fichier de l'archive, .tar par défaut. Sinon, une extension de fichier peut être spécifiée avec le second paramètre.

Liste de paramètres

extension

Pour décompresser, l'extension par défaut est .phar.tar. Utilisez ce paramètre pour spécifier une autre extension de fichier. Gardez à l'esprit que les archives non-exécutables ne peuvent pas contenir .phar dans leur nom de fichier.

Valeurs de retour

Un objet PharData est retourné.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si l'extension zlib n'est pas disponible ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Exemple avec PharData::decompress()

<?php
$p 
= new PharData('/chemin/vers/mon.tar'0'mon.tar.gz');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p3 $p2->decompress(); // crée /chemin/vers/mon.tar
?>

Voir aussi



PharData::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompressFilesDécompresse tous les fichier de l'archive zip courante

Description

bool PharData::decompressFiles ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives basées sur tar, cette méthode soulève une exception BadMethodCallException, car la compression individuelle des fichiers au sein d'une archive tar n'est pas supportée par le format de fichier. Utilisez PharData::compress() pour compresser une archive basée sur tar complète.

Pour les archives basées sur Zip, cette méthode décompresse tous les fichiers de l'archive. Les extensions zlib ou bzip2 doivent être activées pour tirer parti de cette fonctionnalité si au moins un des fichiers est compressé avec bzip2/zlib.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si l'extension zlib n'est pas disponible ou si au moins un des fichiers est compressé avec bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec PharData::decompressFiles()

<?php
$p 
= new PharData('/chemin/vers/mon.zip');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p->compressFiles(Phar::GZ);
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressed(Phar::BZ2));
    
var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(14) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(15) "monfichier2.txt"
int(4096)
bool(false)
bool(true)
string(14) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(15) "monfichier2.txt"
bool(false)
bool(false)
bool(false)

Voir aussi



PharData::delMetadata

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::delMetadataEfface les méta-données globales d'une archive zip

Description

bool PharData::delMetadata ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Efface les méta-données globales de l'archive zip

Liste de paramètres

Valeurs de retour

retourne TRUE en cas de succès, mais il est préférable de vérifier les exception soulevées et de considérer le succès si aucune ne l'est.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec PharData::delMetaData()

<?php
try {
    
$phar = new PharData('monphar.zip');
    
var_dump($phar->getMetadata());
    
$phar->setMetadata("salut");
    
var_dump($phar->getMetadata());
    
$phar->delMetadata();
    
var_dump($phar->getMetadata());
} catch (
Exception $e) {
    
// on traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

NULL
string(5) "salut"
NULL

Voir aussi



PharData::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::deleteEfface un fichier au sein de l'archive tar/zip

Description

bool PharData::delete ( string $entry )

Efface un fichier au sein de l'archive. C'est l'équivalent fonctionnel de l'appel à unlink() à l'aide du gestionnaire de flux phar, comme montré dans l'exemple ci-dessous.

Liste de paramètres

entry

Chemin du fichier à effacer au sein de l'archive.

Valeurs de retour

retourne TRUE en cas de succès, mais il est préférable de vérifier les exception soulevées et de considérer le succès si aucune ne l'est.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec PharData::delete()

<?php
try {
    
$phar = new PharData('monphar.zip');
    
$phar->delete('efface/moi.php');
    
// c'est l'équivalent de :
    
unlink('phar://monphar.phar/efface/mon.php');
} catch (
Exception $e) {
    
// on traite les erreurs
}
?>

Voir aussi



PharData::extractTo

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::extractToExtrait le contenu d'une archive tar/zip vers un répertoire

Description

bool PharData::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )

Extrait tous les fichiers d'une archive tar/zip vers le disque. Les fichiers et les répertoires extraits conservent les permissions telles qu'au sein de l'archive. Les paramètres optionnels permettent un éventuel contrôle sur quels fichiers seront extraits et si les fichiers déjà présents sur le disque peuvent être écrasés. Le second paramètre files peut être le nom d'un fichier ou d'un répertoire à extraire, ou tableau de nom de fichiers et de répertoires à extraire. Par défaut, cette méthode n'écrasera aucun fichier déjà existant, à moins que le troisième paramètre soit à TRUE. Cette méthode est identique à ZipArchive::extractTo().

Liste de paramètres

pathto

Chemin au sein de l'archive des fichiers à effacer.

files

Le nom d'un fichier ou d'un répertoire à extraire, ou un tableau de fichiers/répertoires à extraire

overwrite

Le passer à TRUE pour activer l'écrasement des fichiers déjà existants

Valeurs de retour

retourne TRUE en cas de succès, mais il est préférable de vérifier les exception soulevées et de considérer le succès si aucune ne l'est.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec PharData::extractTo()

<?php
try {
    
$phar = new PharData('monphar.tar');
    
$phar->extractTo('/chemin/complet'); // extrait tous les fichiers
    
$phar->extractTo('/un/autre/chemin''fichier.txt'); // extrait seulement fichier.txt
    
$phar->extractTo('/ce/chemin',
        array(
'fichier1.txt''fichier2.txt')); // extrait seulement 2 fichiers
    
$phar->extractTo('/troisieme/chemin'nulltrue); // extrait tous les fichiers, en écrasant
} catch (Exception $e) {
    
// on traite les erreurs
}
?>

Voir aussi



PharData::isWritable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::isWritableVérifie si l'archive tar/zip peut être modifiée

Description

bool PharData::isWritable ( void )

Cette méthode retourne TRUE si l'archive tar/zip sur le disque n'est pas en lecture seule. Contrairement à Phar::isWritable(), les archives tar/zip de données peuvent être modifiées même si phar.readonly est à 1.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne TRUE si l'archive tar/zip peut être modifiée

Voir aussi

  • Phar::canWrite() - Détermine si l'extension phar supporte la création et l'écriture des phars
  • Phar::isWritable() - Retourne TRUE si l'archive phar peut être modifiée



PharData::offsetSet

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetSetremplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères

Description

void PharData::offsetSet ( string $offset , string $value )

C'est une implémentation de l'interface ArrayAccess permettant la manipulation directe du contenu d'une archive tar/zip en utilisant les crochets, opérateurs d'accès au tableau. offsetSet est utilisé pour modifier un fichier existant ou pour ajouter un nouveau fichier à l'archive tar/zip.

Liste de paramètres

offset

Le chemin (relatif) du fichier à modifier au sein de l'archive tar ou zip.

value

Contenu du fichier.

Valeurs de retour

Aucune valeur de retour.

Erreurs / Exceptions

Soulève une exception PharException si des problèmes ont été rencontrés lors de l'écriture sur le disque des changements de l'archive tar/zip.

Exemples

Exemple #1 Un exemple avec PharData::offsetSet()

offsetSet ne doit pas être accédé directement, mais plutôt utilisé via l'opérateur [].

<?php
$p 
= new PharData('/chemin/vers/mon.tar');
try {
    
// appelle offsetSet
    
$p['fichier.txt'] = 'Salut';
} catch (
Exception $e) {
    echo 
'Ne peut pas modifier fichier.txt:'$e;
}
?>

Voir aussi

  • Phar::offsetSet() - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe



PharData::offsetUnset

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetUnsetefface un fichier d'une archive tar/zip

Description

bool PharData::offsetUnset ( string $offset )

C'est une implémentation de l'interface ArrayAccess permettant la manipulation directe du contenu d'une archive tar/zip en utilisant les crochets, opérateurs d'accès au tableau. offsetUnset est utilisé pour effacer un fichier existant et est appelé par la construction de langage unset().

Liste de paramètres

offset

Le chemin (relatif) du fichier à modifier au sein de l'archive tar ou zip.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception PharException si des problèmes ont été rencontrés lors de l'écriture sur le disque des changements de l'archive tar/zip.

Exemples

Exemple #1 Un exemple avec PharData::offsetUnset()

<?php
$p 
= new PharData('/chemin/vers/mon.zip');
try {
    
// efface fichier.txt de mon.zip en appelant offsetUnset
    
unset($p['fichier.txt']);
} catch (
Exception $e) {
    echo 
'Ne peut pas effacer fichier.txt: '$e;
}
?>

Voir aussi



PharData::setAlias

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setAliasfonction inutile (Phar::setAlias n'est pas valide pour PharData)

Description

bool PharData::setAlias ( string $alias )

Les archives tar/zip non exécutables ne peuvent pas avoir d'alias, donc cette méthode ne fait que soulever une exception.

Liste de paramètres

alias

Une courte chaîne de caractère à laquelle se référer pour faire appel à l'archive via le gestionnaire de flux phar. Ce paramètre est ignoré.

Valeurs de retour

Erreurs / Exceptions

Soulève une exception PharException lors de l'appel à la méthode

Voir aussi



PharData::setDefaultStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setDefaultStubfonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)

Description

bool PharData::setDefaultStub ([ string $index [, string $webindex ]] )

Les archives tar/zip non-exécutables ne peuvent pas avoir de conteneur de chargement, donc cette méthode ne fait que soulever une exception.

Liste de paramètres

index

Chemin relatif au sein de l'archive phar à exécuter en cas d'accès à partir de la ligne de commande

webindex

Chemin relatif au sein de l'archive phar à exécuter en cas d'accès à partir d'un navigateur

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception PharException lors de l'appel à la méthode

Voir aussi

  • Phar::setDefaultStub() - Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut



Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadataFixe les méta-données de l'archive

Description

void Phar::setMetadata ( mixed $metadata )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Phar::setMetadata() doit être utilisé pour stocker des méta-données personnalisées qui décrivent quelque chose à propos de l'archive phar en tant qu'entité complète. PharFileInfo::setMetadata() doit être utilisé pour les méta-données spécifiques aux fichiers. Les méta-données peuvent dégrader les performances de chargement d'une archive phar si les données sont trop lourdes.

Les méta-données peuvent être utilisées pour spécifier quel fichier au sein de l'archive doit être utilisé pour charger l'archive ou l'emplacement d'un fichier de manifeste comme le fichier package.xml de » PEAR. De manière générale, n'importe quelle données utile décrivant l'archive phar peut être stockée.

Liste de paramètres

metadata

N'importe quelle variable PHP contenant de l'information à stocker pour décrire l'archive phar

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec Phar::setMetadata()

<?php
// on s'assure que le phar n'existe pas
@unlink('nouveauphar.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/nouveauphar.phar'0'nouveauphar.phar');
    
$p['fichier.php'] = '<?php echo "salut"';
    
$p->setMetadata(array('chargement' => 'fichier.php'));
    
var_dump($p->getMetadata());
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier le phar:'$e;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["chargement"]=>
  string(11) "fichier.php"
}

Voir aussi



Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithmAssigne l'algorithme de signature d'un phar et l'applique

Description

void Phar::setSignatureAlgorithm ( int $sigtype )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Assigne l'algorithme de signature d'un phar et l'applique. L'algorithme de signature doit être Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, ou Phar::PGP (PGP n'est pas encore supporté et implique Phar::SHA1).

Liste de paramètres

sigtype

Un algorithme parmi Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::PGP

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Soulève une exception UnexpectedValueException pour beaucoup d'erreurs, une exception BadMethodCallException si l'appel est fait pour une archive phar basée sur tar ou sur zip, une exception PharException si des problèmes sont rencontrés lors de l'écriture des changements sur le disque.

Voir aussi



PharData::setStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setStubfonction inutile (Phar::setStub n'est pas valide pour PharData)

Description

bool PharData::setStub ( string $stub )

Les archives tar/zip non-exécutables ne peuvent pas avoir de conteneur de chargement, donc cette méthode ne fait que soulever une exception.

Liste de paramètres

stub

Une chaîne de caractères ou un gestionnaire de flux ouvert à utiliser en tant que conteneur de chargement exécutable pour l'archive phar. Ce paramètre est ignoré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception PharException lors de tout appel à la méthode

Voir aussi

  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar


Sommaire



La classe PharFileInfo

Introduction

La classe PharFileInfo fournit une interface de haut niveau pour accéder au contenu et aux attributs d'un fichier contenu dans une archive phar.

Synopsis de la classe

PharFileInfo extends SplFileInfo {
/* Propriétés */
/* Méthodes */
void chmod ( int $permissions )
bool compress ( int $compression )
void __construct ( string $entry )
bool decompress ( void )
bool delMetadata ( void )
int getCRC32 ( void )
int getCompressedSize ( void )
mixed getMetaData ( void )
int getPharFlags ( void )
bool hasMetadata ( void )
bool isCRCChecked ( void )
bool isCompressed ([ int $compression_type = 9021976 ] )
bool isCompressedBZIP2 ( void )
bool isCompressedGZ ( void )
bool setCompressedBZIP2 ( void )
bool setCompressedGZ ( void )
void setMetaData ( mixed $metadata )
bool setUncompressed ( void )
}

PharFileInfo::chmod

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::chmodFixe les bits de permission spécifiques aux fichiers

Description

void PharFileInfo::chmod ( int $permissions )

PharFileInfo::chmod() permet de fixer les bits d'exécution des fichiers, ainsi que ceux de lecture seule. Ceux d'écriture sont ignorés car fixés au démarrage par la variable INI phar.readonly. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'une archive PharData n'ont pas cette restriction.

Liste de paramètres

permissions

les permissions (voir chmod())

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec PharFileInfo::chmod()

<?php
// on s'assure que le phar n'existe pas
@unlink('nouveauphar.phar');
try {
    
$p = new Phar('nouveauphar.phar'0'nouveauphar.phar');
    
$p['fichier.sh'] = '#!/usr/local/lib/php
    <?php echo "salut"; ?>'
;
    
// met le bit d'exécution
    
$p['fichier.sh']->chmod(0555);
    
var_dump($p['fichier.sh']->isExecutable());
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier le phar: '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)



PharFileInfo::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::compressCompresse l'entrée Phar courante avec une des compressions zlib ou bzip2

Description

bool PharFileInfo::compress ( int $compression )

Cette méthode compresse le fichier au sein de l'archive Phar en utilisant l'une des compressions bzip2 ou zlib. Les extensions bzip2 ou zlib doivent être activées pour tirer parti de cette fonctionnalité. De plus, si le fichier est déjà compressé, l'extension adéquate doit être activée pour le décompresser. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2/zlib n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::compress()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    
var_dump($file->isCompressed(Phar::BZ2));
    
$p['monfichier.txt']->compress(Phar::BZ2);
    
var_dump($file->isCompressed(Phar::BZ2));
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier mon.phar : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi



PharFileInfo::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::__constructConstruit un objet d'entrée Phar

Description

void PharFileInfo::__construct ( string $entry )

Cette méthode ne doit pas être appelé directement. A la place, un objet PharFileInfo est initialisé en appelant Phar::offsetGet() via un accès de type tableau.

Liste de paramètres

entry

L'URL complète pour récupérer un fichier. Si vous voulez récupérer les informations du fichier mon/fichier.php du phar boo.phar, vous devrez préciser phar://boo.phar/mon/fichier.php.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si __construct() est appelé deux fois. Soulève une exception UnexpectedValueException si l'URL du phar demandé est mal formée, si le phar ne peut pas être ouvert ou si le fichier ne peut pas être trouvé au sein du phar.

Exemples

Exemple #1 Exemple avec PharFileInfo::__construct()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['fichierdetest.txt'] = "salut\nmon\npote";
    
$file $p['fichierdetest.txt'];
    foreach (
$file as $line => $text) {
        echo 
"ligne numéro $line$text";
    }
    
// ceci marche aussi
    
$file = new PharFileInfo('phar:///chemin/vers/mon.phar/fichierdetest.txt');
    foreach (
$file as $line => $text) {
        echo 
"ligne numéro $line$text";
    }
} catch (
Exception $e) {
    echo 
'L'opération Phar a échoué ', $e;
}
?>

L'exemple ci-dessus va afficher :

ligne numéro 1: salut
ligne numéro 2: mon
ligne numéro 3: pote
ligne numéro 1: salut
ligne numéro 2: mon
ligne numéro 3: pote



PharFileInfo::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::decompressDécompresse l'entrée Phar courante au sein du phar

Description

bool PharFileInfo::decompress ( void )

Cette méthode décompresse le fichier au sein de l'archive Phar. Selon la façon dont le fichier est compressé, les extensions bzip2 ou zlib doivent être activées pour tirer parti de cette fonctionnalité. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est dans une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2/zlib n'est pas disponible.

Exemples

Exemple #1 Exemple avec PharFileInfo::decompress()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    
$file->compress(Phar::GZ);
    
var_dump($file->isCompressed());
    
$p['monfichier.txt']->decompress();
    
var_dump($file->isCompressed());
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier mon.phar: '$e;
}
?>

L'exemple ci-dessus va afficher :

int(4096)
bool(false)

Voir aussi



PharFileInfo::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::delMetadataEfface les métadonnées de l'entrée

Description

bool PharFileInfo::delMetadata ( void )

Efface les métadonnées de l'entrée, s'il y en a.

Liste de paramètres

Pas de paramètres.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si l'entrée ne possédait pas de métadonnées. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs ont été rencontrées lors de l'écriture des changements sur le disque, et une exception BadMethodCallException si l'accès en écriture est désactivé.

Exemples

Exemple #1 Un exemple avec PharFileInfo::delMetaData()

<?php
try {
    
$a = new Phar('monphar.phar');
    
$a['salut'] = 'salut';
    
var_dump($a['salut']->delMetadata());
    
$a['salut']->setMetadata('mon pote');
    
var_dump($a['salut']->delMetadata());
    
var_dump($a['salut']->delMetadata());
} catch (
Exception $e) {
    
// on traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi



PharFileInfo::getCRC32

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCRC32Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié

Description

int PharFileInfo::getCRC32 ( void )

Retourne la somme de contrôle crc32() du fichier au sein de l'archive Phar.

Valeurs de retour

La somme de contrôle crc32() du fichier au sein de l'archive Phar.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si le CRC32 du fichier n'a pas encore été vérifié. Ceci n'arrive normalement pas, car le CRC est vérifié à l'ouverture du fichier en lecture ou en écriture.

Exemples

Exemple #1 Exemple avec PharFileInfo::getCRC32()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    echo 
$file->getCRC32();
} catch (
Exception $e) {
    echo 
'L'écriture de mon.phar.phar a échouée ', $e;
}
?>

L'exemple ci-dessus va afficher :

3633523372



PharFileInfo::getCompressedSize

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSizeRetourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar

Description

int PharFileInfo::getCompressedSize ( void )

Cette méthode retourne la taille du fichier au sein de l'archive Phar. Les fichiers non compressés retourneront la même valeur avec getCompressedSize qu'avec filesize()

Valeurs de retour

La taille en octets du fichier au sein de l'archive Phar sur le disque.

Exemples

Exemple #1 Un exemple avec PharFileInfo::getCompressedSize()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    echo 
$file->getCompressedSize();
} catch (
Exception $e) {
    echo 
'L'écriture de mon.phar a échoué ', $e;
}
?>

L'exemple ci-dessus va afficher :

2

Voir aussi



PharFileInfo::getMetaData

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getMetaDataRetourne les méta-données spécifiques attachées à un fichier

Description

mixed PharFileInfo::getMetaData ( void )

Retourne les méta-données qui ont été sauvegardées dans le manifeste de l'archive Phar pour ce fichier.

Liste de paramètres

Valeurs de retour

n'importe quelle variable PHP qui peut être sérialisée et qui est stockée comme méta-données pour le fichier, ou NULL si aucune méta-donnée n'est stockée.

Exemples

Exemple #1 Un exemple avec PharFileInfo::getMetaData()

<?php
// on s'assure que le phar n'est pas déjà
@unlink('nouveauphar.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/nouveauphar.phar'0'nouveauphar.phar');
    
$p['fichier.txt'] = 'salut';
    
$p['fichier.txt']->setMetaData(array('utilisateur' => 'Yannick''mime-type' => 'text/plain'));
    
var_dump($p['fichier.txt']->getMetaData());
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier nouveauphar.phar: '$e;
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["utilisateur"]=>
  string(7) "Yannick"
  ["mime-type"]=>
  string(10) "text/plain"
}

Voir aussi



PharFileInfo::getPharFlags

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getPharFlagsRetourne les drapeaux du fichier Phar

Description

int PharFileInfo::getPharFlags ( void )

Cette méthode retourne les drapeaux fixés dans le manifeste pour un Phar. Elle retournera toujours 0 dans son implémentation actuelle.

Valeurs de retour

Les drapeaux Phar (toujours 0 dans son implémentation actuelle)

Exemples

Exemple #1 Un exemple avecPharFileInfo::getPharFlags()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    
var_dump($file->getPharFlags());
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier mon.phar: '$e;
}
?>

L'exemple ci-dessus va afficher :

int(0)



PharFileInfo::hasMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::hasMetadataRetourne les méta-données de l'entrée

Description

bool PharFileInfo::hasMetadata ( void )

Retourne les méta-données d'un fichier au sein d'une archive Phar.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne FALSE si aucune méta-donnée n'est présente ou vaut NULL, TRUE si les méta-données ne valent pas NULL

Voir aussi



PharFileInfo::isCRCChecked

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCRCCheckedDétermine si le fichier a un CRC vérifié

Description

bool PharFileInfo::isCRCChecked ( void )

Cette méthode détermine si un fichier au sein d'une archive Phar a un CRC vérifié.

Valeurs de retour

TRUE si le fichier a un CRC vérifié, FALSE sinon.

Exemples

Exemple #1 Un exemple avec PharFileInfo::isCRCChecked()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    
var_dump($file->isCRCChecked());
} catch (
Exception $e) {
    echo 
'La création/modification de mon.phar a échoué : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)



PharFileInfo::isCompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedRetourne si l'entrée est compressée

Description

bool PharFileInfo::isCompressed ([ int $compression_type = 9021976 ] )

Cette méthode détermine si un fichier au sein d'une archive Phar est compressé avec une des compression Gzip o Bzip2.

Liste de paramètres

compression_type

Une des compressions Phar::GZ ou Phar::BZ2, aucune compression par défaut.

Valeurs de retour

TRUE si le fichier au sein de l'archive est compressé, FALSE sinon.

Exemples

Exemple #1 Un exemple avec PharFileInfo::isCompressed()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$p['monfichier2.txt'] = 'salut';
    
$p['monfichier2.txt']->setCompressedGZ();
    
$file $p['monfichier.txt'];
    
$file2 $p['monfichier2.txt'];
    
var_dump($file->isCompressed());
    
var_dump($file2->isCompressed());
} catch (
Exception $e) {
    echo 
'La création/modification de mon.phar a échoué : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi



PharFileInfo::isCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedBZIP2Détermine si l'archive Phar est compressée avec bzip2

Description

bool PharFileInfo::isCompressedBZIP2 ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Détermine si le fichier au sein de l'archive Phar est compressé avec Bzip2.

Valeurs de retour

TRUE si le fichier au sein de l'archive Phar est compressé avec Bzip2, FALSE sinon.

Exemples

Exemple #1 Un exemple avec PharFileInfo::isCompressedBZIP2()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$p['monfichier2.txt'] = 'salut';
    
$p['monfichier3.txt'] = 'salut';
    
$p['monfichier2.txt']->setCompressedGZ();
    
$p['monfichier3.txt']->setCompressedBZIP2();
    
$file $p['monfichier.txt'];
    
$file2 $p['monfichier2.txt'];
    
$file3 $p['monfichier3.txt'];
    
var_dump($file->isCompressedBZIP2());
    
var_dump($file2->isCompressedBZIP2());
    
var_dump($file3->isCompressedBZIP2());
} catch (
Exception $e) {
    echo 
'La création/modification de mon.phar a échoué : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Voir aussi



PharFileInfo::isCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedGZDétermine si l'archive Phar est compressée avec gzip

Description

bool PharFileInfo::isCompressedGZ ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Détermine si un fichier au sein de l'archive Phar est compressé avec Gzip.

Valeurs de retour

TRUE si le fichier au sein de l'archive Phar est compressé avec Gzip, FALSE sinon.

Exemples

Exemple #1 Exemple avec PharFileInfo::isCompressedGZ()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$p['monfichier2.txt'] = 'salut';
    
$p['monfichier3.txt'] = 'salut';
    
$p['monfichier2.txt']->setCompressedGZ();
    
$p['monfichier3.txt']->setCompressedBZIP2();
    
$file $p['monfichier.txt'];
    
$file2 $p['monfichier2.txt'];
    
$file3 $p['monfichier3.txt'];
    
var_dump($file->isCompressedGZ());
    
var_dump($file2->isCompressedGZ());
    
var_dump($file3->isCompressedGZ());
} catch (
Exception $e) {
    echo 
'La création/modification de mon.phar a échoué : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi



PharFileInfo::setCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedBZIP2Compresse l'entrée Phar courante au sein du phar avec Bzip2

Description

bool PharFileInfo::setCompressedBZIP2 ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Cette méthode compresse le fichier au sein de l'archive Phar en utilisant bzip2. L'extension bzip2 doit être activée doit être activée pour tirer parti de cette fonctionnalité. De plus, si au moins un fichier est déjà compressé avec gzip, l'extension zlib doit être activée pour décompresser le fichier. Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2 n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setCompressedBZIP2()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    
var_dump($file->isCompressedBZIP2());
    
$p['monfichier.txt']->setCompressedBZIP2();
    
var_dump($file->isCompressedBZIP2());
} catch (
Exception $e) {
    echo 
'La création/modification de mon.phar a échoué : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi



PharFileInfo::setCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedGZCompresse l'entrée Phar courante au sein du phar avec gzip

Description

bool PharFileInfo::setCompressedGZ ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Cette méthode compresse le fichier au sein de l'archive Phar en utilisant gzip. L'extension zlib doit être activée doit être activée pour tirer parti de cette fonctionnalité. De plus, si au moins un fichier est déjà compressé avec bzip2, l'extension bzip2 doit être activée pour décompresser le fichier. Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension zlib n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setCompressedGZ()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    
var_dump($file->isCompressedGZ());
    
$p['monfichier.txt']->setCompressedGZ();
    
var_dump($file->isCompressedGZ());
} catch (
Exception $e) {
    echo 
'La création/modification de mon.phar a échoué : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi



PharFileInfo::setMetaData

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setMetaDataFixe les métadonnées spécifiques à un fichier

Description

void PharFileInfo::setMetaData ( mixed $metadata )

PharFileInfo::setMetaData() ne doit être utilisée que pour stocker des données personnalisées dans un fichier qui ne peuvent pas l'être avec des informations normalement stockées avec le fichier. Les métadonnées peuvent dégrader les performances de chargement d'une archive phar si les données sont trop lourdes ou s'il y a beaucoup de fichiers avec des métadonnées. Il est important de noter que les permissions de fichiers sont supportées nativement dans un phar; il est possible de les fixer avec la méthode PharFileInfo::chmod(). Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Une utilisation possible des métadonnées est le passage d'un utilisateur/groupe qui devrait être utilisé quand un fichier est extrait du phar vers le disque. On peut aussi spécifier un type MIME à retourner. De manière générale, on peut stocker toute donnée utile qui décrit un fichier mais qui ne peut pas y être inscrite directement.

Liste de paramètres

metadata

Toute variable PHP contenant des informations à stocker à part du fichier

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setMetaData()

<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveauphar.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/nouveauphar.phar'0'nouveauphar.phar');
    
$p['fichier.txt'] = 'salut';
    
$p['fichier.txt']->setMetaData(array('utilisateur' => 'Yannick''mime-type' => 'text/plain'));
    
var_dump($p['fichier.txt']->getMetaData());
} catch (
Exception $e) {
    echo 
'Ne peut pas créer/modifier le phar : '$e;
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["utilisateur"]=>
  string(7) "Yannick"
  ["mime-type"]=>
  string(10) "text/plain"
}

Voir aussi



PharFileInfo::setUncompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setUncompressedDécompresse l'entrée Phar courante au sein du phar s'il y a lieu

Description

bool PharFileInfo::setUncompressed ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Cette méthode décompresse le fichier au sein de l'archive Phar. Selon la façon dont le fichier est compressé, les extensions bzip2 ou zlib doivent être activées pour tirer parti de cette fonctionnalité. Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2/zlib n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setUncompressed()

<?php
try {
    
$p = new Phar('/chemin/vers/mon.phar'0'mon.phar');
    
$p['monfichier.txt'] = 'salut';
    
$file $p['monfichier.txt'];
    
$file->setCompressedGZ();
    
var_dump($file->isCompressed());
    
$p['monfichier.txt']->setUncompressed();
    
var_dump($file->isCompressed());
} catch (
Exception $e) {
    echo 
'La création/modification de mon.phar a échoué : '$e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi


Sommaire



La classe PharException

Introduction

La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs.

Synopsis de la classe

PharException extends Exception {
/* Propriétés */
}

PharException

(Unknown)

PharExceptionLa classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs

Description


Sommaire

  • PharException — La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs



Archives RAR


Introduction

Rar est un archiveur puissant et fiable, créé par Eugene Roshal. Cette extension vous donne la possibilité de lire des archives Rar, mais ne supporte pas l'écriture, car elle n'est pas supporté par la bibliothèque UnRar et que c'est interdit directement par la licence.

Plus d'informations sur Rar et UnRar peuvent être trouvées sur » http://www.rarlabs.com/.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Rar est actuellement disponible via PECL » http://pecl.php.net/package/rar.

Vous pouvez utiliser l'assistant d'installation PECL pour installer l'extension Rar, en utilisant la commande suivante : pecl -v install rar.

Vous pouvez également télécharger le paquet tar.gz et installez Rar manuellement :

Exemple #1 Installation de Rar

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Les utilisateurs de Windows doivent activer la bibliothèque php_rar.dll dans le fichier php.ini afin d'utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension enregistre 3 classes internes : La représentation de l'archive retournée par la fonction rar_open()RarArchive –, la représentation des entrées retournée par les fonctions rar_list() et rar_entry_get()RarEntry et les exceptions de type RarException.

Cette extension enregistre également un flux de ressource appelé "rar" et un gestionnaire d'url appelé "rar wrapper", et enregistré sous le préfixe "rar".




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

RAR_HOST_MSDOS (integer)
Utilisez la constante RarEntry::HOST_MSDOS à la place.
RAR_HOST_OS2 (integer)
Utilisez la constante RarEntry::HOST_OS2 à la place.
RAR_HOST_WIN32 (integer)
Utilisez la constante RarEntry::HOST_WIN32 à la place.
RAR_HOST_UNIX (integer)
Utilisez la constante RarEntry::HOST_UNIX à la place.
RAR_HOST_BEOS (integer)
Utilisez la constante RarEntry::HOST_BEOS à la place.


Exemples

Voir aussi les exemples de la section sur le gestionnaire rar://.

Exemple #1 Décompression à la volée

<?php

if (!array_key_exists("i"$_GET) || !is_numeric($_GET["i"]))
    die(
"Index non spécifié ou non numérique");
$index = (int) $_GET["i"];
    
$arch RarArchive::open("example.rar");
if (
$arch === FALSE)
    die(
"Impossible d'ouvrir example.rar");

$entries $arch->getEntries();
if (
$entries === FALSE)
    die(
"Impossible de récupérer les entrées");

if (!
array_key_exists($index$entries))
    die(
"L'index $index n'existe pas");

$orfilename $entries[$index]->getName(); //Encodage UTF-8

$filesize $entries[$index]->getUnpackedSize();

/* Vous pouvez vérifier ici HTTP_IF_MODIFIED_SINCE et le comparer
 * avec $entries[$index]->getFileTime(). Vous pouvez également envoyer
 * un en-tête "Last modified" */

$fp $entries[$index]->getStream();
if (
$fp === FALSE)
    die(
"Impossible d'ouvrir le fichier d'index $index depuis l'archive.");

$arch->close(); //plus nécessaire ; le flux est indépendant

function detectUserAgent() {
    if (!
array_key_exists('HTTP_USER_AGENT'$_SERVER))
        return 
"Autre";
    
    
$uas $_SERVER['HTTP_USER_AGENT'];
    if (
preg_match("@Opera/@"$uas))
        return 
"Opera";
    if (
preg_match("@Firefox/@"$uas))
        return 
"Firefox";
    if (
preg_match("@Chrome/@"$uas))
        return 
"Chrome";
    if (
preg_match("@MSIE ([0-9.]+);@"$uas$matches)) {
        if (((float)
$matches[1]) >= 7.0)
            return 
"IE";
    }
    
    return 
"Autre";
}

/*
 * Nous avons 3 options :
 * - Pour FF et Opera, qui supportent RFC 2231, utilisez ce format.
 * - Pour IE et Chrome, utilisez attwithfnrawpctenclong
 *   (http://greenbytes.de/tech/tc2231/#attwithfnrawpctenclong)
 * - Pour les autres, convertissez en ISO-8859-1, si possible
 */
$formatRFC2231 'Content-Disposition: attachment; filename*=UTF-8\'\'%s';
$formatDef 'Content-Disposition: attachment; filename="%s"';

switch (
detectUserAgent()) {
    case 
"Opera":
    case 
"Firefox":
        
$orfilename rawurlencode($orfilename);
        
$format $formatRFC2231;
        break;

    case 
"IE":
    case 
"Chrome":
        
$orfilename rawurlencode($orfilename);
        
$format $formatDef;
        break;
    default:
        if (
function_exists('iconv'))
            
$orfilename =
                @
iconv("UTF-8""ISO-8859-1//TRANSLIT"$orfilename);
        
$format $formatDef;
}

header(sprintf($format$orfilename));
// Impossible d'envoyer les messages d'erreur à partir d'ici (les en-têtes
// ont déjà été émis)

// Remplacement par le type de contenu réel, pourquoi pas par déduction de l'extension du fichier
$contentType "application/octet-stream";
header("Content-Type: $contentType");

header("Content-Transfer-Encoding: binary");

header("Content-Length: $filesize");

if (
$_SERVER['REQUEST_METHOD'] == "HEAD")
    die();
    
while (!
feof($fp)) {
    
$s = @fread($fp8192);
    if (
$s === false)
        break; 
//utile pour envoyer des messages d'erreur
  
    
echo $s;
}
?>

Cet exemple ouvre l'archive RAR et extrait chacune des entrées dans un dossier spécifié.

Exemple #2 Exemple d'extractions RAR

<?php

$rar_file 
rar_open('example.rar') or die("Can't open Rar archive");

$entries rar_list($rar_file);

foreach (
$entries as $entry) {
    echo 
'Nom du fichier : ' $entry->getName() . "\n";
    echo 
'Taille de l'archive ' . $entry->getPackedSize() . "\n";
    echo '
Taille après décompression ' . $entry->getUnpackedSize() . "\n";

    $entry->extract('
/dir/extract/to/');
}

rar_close($rar_file);

?>

Cet exemple ouvre une archive RAR et extrait chaque entrée dans le dossier spécifié.



Fonctions Rar


rar_wrapper_cache_stats

(PECL rar >= 3.0.0)

rar_wrapper_cache_statsStatistique pour le cache du gestionnaire URL

Description

string rar_wrapper_cache_stats ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Sommaire



La classe RarArchive

Introduction

Cette classe représente une archive RAR, qui peut être formée de plusieurs volumes (parties) et qui peut contenir plusieurs entrées RAR (i.e., fichiers, dossiers et autres objets spéciaux comme des liens symboliques).

Les objets de cette classe peuvent être parcourus, permettant ainsi d'accéder aux entrées contenues dans les archives RAR respectives. Ces entrées peuvent également être obtenues via les méthodes RarArchive::getEntry() et RarArchive::getEntries().

Synopsis de la classe

final RarArchive implements Traversable {
/* Méthodes */
public bool close ( void )
public string getComment ( void )
public array getEntries ( void )
public RarEntry getEntry ( string $entryname )
public bool isBroken ( void )
public bool isSolid ( void )
public static RarArchive open ( string $filename [, string $password = NULL [, callback $volume_callback = NULL ]] )
public bool setAllowBroken ( bool $allow_broken )
public string __toString ( void )
}

RarArchive::close

rar_close

(PECL rar >= 2.0.0)

RarArchive::close -- rar_closeFerme une archive RAR et libère toutes les ressources

Description

Style orienté objet (méthode) :

public bool RarArchive::close ( void )

Style procédural :

bool rar_close ( RarArchive $rarfile )

Ferme une archive RAR et libère toutes les ressources associées.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
2.0.0 Les entrées RAR retournées par RarArchive::getEntry() et RarArchive::getEntries() sont désormais invalidées lors de l'appel à cette méthode. Cela signifie que tous les appels d'instances sur de telles entrées ne sont pas garanties.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch 
RarArchive::open('latest_winrar.rar');
echo 
$rar_arch."\n";
$rar_arch->close();
echo 
$rar_arch."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)

Exemple #2 Style procédural

<?php
$rar_arch 
rar_open('latest_winrar.rar');
echo 
$rar_arch."\n";
rar_close($rar_arch);
echo 
$rar_arch."\n";
?>



RarArchive::getComment

rar_comment_get

(PECL rar >= 2.0.0)

RarArchive::getComment -- rar_comment_getRécupère un commentaire depuis une archive RAR

Description

Style orienté objet (méthode) :

public string RarArchive::getComment ( void )

Style procédural :

string rar_comment_get ( RarArchive $rarfile )

Récupère le commentaire global stocké dans l'archive RAR. Il peut être supérieur à une longueur de 64 Ko.

Note:

Cette extension ne supporte pas les commentaires sur de simple entrée.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

Valeurs de retour

Retourne le commentaire, ou NULL s'il n'y en a pas.

Note:

RAR ne supporte actuellement pas les commentaires unicodes. L'encodage du résultat de cette fonction n'est pas spécifié, mais il sera probablement de type Windows-1252.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch 
RarArchive::open('commented.rar'); 
echo 
$rar_arch->getComment();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ceci est le commentaire du fichier commented.rar.

Exemple #2 Style procédural

<?php
$rar_arch 
rar_open('commented.rar'); 
echo 
rar_comment_get($rar_arch);
?>



RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_listRécupère la liste complète depuis l'archive RAR

Description

Object oriented style (method):

public array RarArchive::getEntries ( void )

Procedural style:

array rar_list ( RarArchive $rarfile )

Récupère la liste complète (fichiers et dossiers) depuis l'archive RAR.

Note:

Si l'archive contient des entrées portant le même nom, cette méthode, combinée avec l'itération RarArchive foreach et un accès style tableau avec des indexes numériques, est la seule permettant d'accéder à toutes les entrées (i.e. RarArchive::getEntry() et le gestionnaire rar:// sont insuffisants).

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonction rar_open().

Valeurs de retour

Retourne un tableau d'objets RarEntry ou FALSE si une erreur survient.

Historique

Version Description
3.0.0 Support des archives RAR contenant des entrées portant le même nom.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch 
RarArchive::open('solid.rar');
if (
$rar_arch === FALSE)
    die(
"Impossible d'ouvrir l'archive RAR.");

$rar_entries $rar_arch->getEntries();
if (
$rar_entries === FALSE)
    die(
"Impossible de récupérer les entrées.");

echo 
"Nombre d'entrées trouvées : " count($rar_entries) . "\n";

foreach (
$rar_entries as $e) {
    echo 
$e;
    echo 
"\n";
}
$rar_arch->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre d'entrées trouvées : 2
RarEntry for file "tese.txt" (23b93a7a)
RarEntry for file "unrardll.txt" (2ed64b6e)

Exemple #2 Style procédural

<?php
$rar_arch 
rar_open('solid.rar');
if (
$rar_arch === FALSE)
    die(
"Impossible d'ouvrir l'archive RAR.");

$rar_entries rar_list($rar_arch);
if (
$rar_entries === FALSE)
    die(
"Impossible de récupérer les entrées.");

echo 
"Nombre d'entrées trouvées : " count($rar_entries) . "\n";

foreach (
$rar_entries as $e) {
    echo 
$e;
    echo 
"\n";
}
rar_close($rar_arch);
?>

Voir aussi



RarArchive::getEntry

rar_entry_get

(PECL rar >= 2.0.0)

RarArchive::getEntry -- rar_entry_getRécupère une entrée depuis une archive RAR

Description

Style orienté objet (method):

public RarEntry RarArchive::getEntry ( string $entryname )

Style procédural :

RarEntry rar_entry_get ( RarArchive $rarfile , string $entryname )

Récupère une entrée (fichier ou dossier) depuis une archive RAR.

Note:

Vous pouvez également récupérer les entrées en utilisant la méthode RarArchive::getEntries().

Notez qu'une archive RAR peut avoir plusieurs entrées portant le même nom ; cette méthode ne récupèrera que la première.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

entryname

Chemin vers l'entrée, dans l'archive RAR.

Note:

Le chemin doit être le même que celui retourné par la méthode RarEntry::getName().

Valeurs de retour

Retourne l'entrée RarEntry correspondante ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch 
RarArchive::open('solid.rar');
if (
$rar_arch === FALSE)
    die(
"Impossible d'ouvrir l'archive RAR.");
$rar_entry $rar_arch->getEntry('tese.txt');
if (
$rar_entry === FALSE)
    die(
"Impossible de récupérer cette entrée.");
echo 
get_class($rar_entry)."\n";
echo 
$rar_entry;
$rar_arch->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RarEntry
RarEntry for file "tese.txt" (23b93a7a)

Exemple #2 Style procédural

<?php
$rar_arch 
rar_open('solid.rar');
if (
$rar_arch === FALSE)
    die(
"Impossible d'ouvrir l'archive RAR.");
$rar_entry rar_entry_get($rar_arch'tese.txt');
if (
$rar_entry === FALSE)
    die(
"Impossible de récupérer cette entrée.");
echo 
get_class($rar_entry)."\n";
echo 
$rar_entry;
rar_close($rar_arch);
?>

Voir aussi



RarArchive::isBroken

rar_broken_is

(PECL rar >= 3.0.0)

RarArchive::isBroken -- rar_broken_isTest si une archive est corrompue (incomplète)

Description

Style orienté objet (méthode) :

public bool RarArchive::isBroken ( void )

Style procédural :

bool rar_broken_is ( RarArchive $rarfile )

Cette fonction détermine si une archive est incomplète, i.e., si un volume est manquant ou un volume est tronqué.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonction rar_open().

Valeurs de retour

Retourne TRUE si l'archive est corrompue, FALSE sinon. Cette fonction peut également retournée FALSE si le fichier passé a déjà été clos. La seule solution pour faire la différence entre ces 2 cas est d'activer les exceptions grâce à la méthode RarException::setUsingExceptions() ; cependant, ce n'est pas nécessaire sachant qu'un programme ne doit pas fonctionner sur des fichiers fermés.

Exemples

Exemple #1 Style orienté objet

<?php
function retnull() { return null; }
$file dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument est utilisé pour éviter une alerte */
$arch RarArchive::open($filenull'retnull');
var_dump($arch->isBroken());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)

Exemple #2 Style procédural

<?php
function retnull() { return null; }
$file dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument est utilisé pour éviter une alerte */
$arch rar_open($filenull'retnull');
var_dump(rar_broken_is($arch));
?>

Voir aussi



RarArchive::isSolid

rar_solid_is

(PECL rar >= 2.0.0)

RarArchive::isSolid -- rar_solid_isVérifie si l'archive RAR est solide

Description

Style orienté objet (méthode) :

public bool RarArchive::isSolid ( void )

Style procédural :

bool rar_solid_is ( RarArchive $rarfile )

Vérifie si l'archive RAR est solide. L'extraction de fichier individuel est plus lente sur les archives solides.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

Valeurs de retour

Returns TRUE if the archive is solid, FALSE otherwise.

Exemples

Exemple #1 Style orienté objet

<?php
$arch1 
RarArchive::open("store_method.rar");
$arch2 RarArchive::open("solid.rar");
echo 
"$arch1: " . ($arch1->isSolid()?'oui':'non') ."\n";
echo 
"$arch2: " . ($arch2->isSolid()?'oui':'non') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RAR Archive "C:\php_rar\trunk\tests\store_method.rar": no
RAR Archive "C:\php_rar\trunk\tests\solid.rar": yes

Exemple #2 Style procédural

<?php
$arch1 
rar_open("store_method.rar");
$arch2 rar_open("solid.rar");
echo 
"$arch1: " . (rar_solid_is($arch1)?'oui':'non') ."\n";
echo 
"$arch2: " . (rar_solid_is($arch2)?'oui':'non') . "\n";
?>



RarArchive::open

rar_open

(PECL rar >= 2.0.0)

RarArchive::open -- rar_openOuvre une archive RAR

Description

Style orienté objet (méthode) :

public static RarArchive RarArchive::open ( string $filename [, string $password = NULL [, callback $volume_callback = NULL ]] )

Style procédural :

RarArchive rar_open ( string $filename [, string $password = NULL [, callback $volume_callback = NULL ]] )

Ouvre une archive RAR et retourne une instance RarArchive la représentant.

Note:

Si on tente d'ouvrir une archive multi-volume, le chemin du premier volume doit être passé comme premier paramètre. Sinon, l'ensemble des fichiers ne sera pas affiché.

Liste de paramètres

filename

Path to the Rar archive.

password

Un mot de passe en text plein, si nécessaire pour décrypter l'en-tête. Il sera également utilisé par défaut si des fichiers cryptés sont trouvés. Noter que les fichiers peuvent avoir un mot de passe différent, et ce, en respectant les en-têtes.

volume_callback

Une fonction qui reçoit un seul paramètre - le chemin du volume non trouvé - et retourne une chaîne de caractères contenant le chemin correct du volume ou NULL si le volume n'existe pas ou le chemin n'est pas connu. Attention à ne pas créer de boucle infinie sachant que la fonction sera appelée indéfiniment si le chemin retourné dans un précédent appel ne correspond pas au volume désiré. Le fait de spécifier ce paramètre évitera une alerte qui devrait être émise lorsqu'un volume n'est pas trouvé ; une implémentation qui ne retourne que NULL peut toutefois être utilisée pour éviter une telle alerte.

Avertissement

Avant la version 2.0.0, cette fonction ne gérait pas correctement les chemins relatifs. Utilisez la fonction realpath() pour corriger ce bogue.

Valeurs de retour

Retourne l'instance RarArchive requise ou FALSE si une erreur survient.

Historique

Version Description
3.0.0 Le paramètre volume_callback a été ajouté.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch 
RarArchive::open('encrypted_headers.rar''samplepassword');
if (
$rar_arch === FALSE)
    die(
"Échec lors de l'ouverture du fichier");
    
$entries $rar_arch->getEntries();
if (
$entries === FALSE)
    die(
"Échec lors de la récupération des entrées");

echo 
count($entries) . " fichier(s) trouvé(s).\n";

if (empty(
$entries))
    die(
"Aucune entrée valide n'a été trouvée.");
    
$stream reset($entries)->getStream();
if (
$stream === FALSE)
    die(
"Échec lors de l'ouverture du premier fichier");

$rar_arch->close();

echo 
"Contenu du premier fichier :\n";
echo 
stream_get_contents($stream);

fclose($stream);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2 fichier(s) trouvé(s).
Contenu du premier fichier :
Encrypted file 1 contents.

Exemple #2 Style procédural

<?php
$rar_arch 
rar_open('encrypted_headers.rar''samplepassword');
if (
$rar_arch === FALSE)
    die(
"Échec lors de l'ouverture du fichier");
    
$entries rar_list($rar_arch);
if (
$entries === FALSE)
    die(
"Échec lors de la récupération des entrées");

echo 
count($entries) . " fichier(s) trouvé(s).\n";

if (empty(
$entries))
    die(
"Aucune entrée valide n'a été trouvée.");
    
$stream reset($entries)->getStream();
if (
$stream === FALSE)
    die(
"Échec lors de l'ouverture du premier fichier");

rar_close($rar_arch);

echo 
"Contenu du premier fichier :\n";
echo 
stream_get_contents($stream);

fclose($stream);
?>

Exemple #3 Fonction de rappel pour le volume

<?php
/* Dans cet exemple, il y a un volume nommé multi_broken.part1.rar
 * dont le volume suivant est nommé multi.part2.rar */
function resolve($vol) {
    if (
preg_match('/_broken/'$vol))
        return 
str_replace('_broken'''$vol);
    else
        return 
null;
}
$rar_file1 rar_open(dirname(__FILE__).'/multi_broken.part1.rar'null'resolve');
$entry $rar_file1->getEntry('file2.txt');
$entry->extract(nulldirname(__FILE__) . "/temp_file2.txt");
?>

Voir aussi



RarArchive::setAllowBroken

(PECL rar >= 3.0.0)

RarArchive::setAllowBrokenAutorise ou non l'ouverture d'archives corrompues

Description

Style orienté objet (méthode) :

public bool RarArchive::setAllowBroken ( bool $allow_broken )

Style procédural :

bool rar_allow_broken_set ( RarArchive $rarfile , bool $allow_broken )

Cette méthode définit si les archives corrompues peuvent être lues ou bien si les opérations qui tentent d'extraire les entrées de l'archive doivent échouées. Les archives corrompues sont les archives pour lesquelles aucune erreur n'est détectée lorsque le fichier est ouvert mais qu'une erreur survient lors de la lecture des entrées.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonction rar_open().

allow_broken

Si la lecture des archives corrompues est autorisée (TRUE) ou non (FALSE).

Valeurs de retour

Retourne TRUE ou FALSE si une erreur survient. La méthode échouera uniquement si le fichier a déjà été clos.

Exemples

Exemple #1 Style orienté objet

<?php
function retnull() { return null; }
$file dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument évite le message "volume not found" */
$a RarArchive::open($filenull'retnull');
$a->setAllowBroken(true);
foreach (
$a->getEntries() as $e) {
    echo 
"$e\n";
}
var_dump(count($a));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RarEntry for file "file1.txt" (52b28202)
int(1)

Exemple #2 Style procédural

<?php
function retnull() { return null; }
$file dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument évite le message "volume not found" */
$a rar_open($filenull'retnull');
rar_allow_broken_set($atrue);
foreach (
rar_list($a) as $e) {
    echo 
"$e\n";
}
var_dump(count($a));
?>

Voir aussi



RarArchive::__toString

(PECL rar >= 2.0.0)

RarArchive::__toStringRécupère une représentation sous forme de texte

Description

public string RarArchive::__toString ( void )

Fournit une représentation sous forme de chaîne de caractères pour l'objet RarArchive. Actuellement, ce sera le nom du chemin complet vers le volume de l'archive ouverte ainsi qu'une information indiquant si la ressource est valide ou bien si elle a été close via un appel à la méthode RarArchive::close().

Cette méthode ne doit être utilisée qu'à des fins de débogage, sachant qu'elle n'est ni garantie dans les informations composant le résultat, ni garantie dans la façon dont le résultat sera formatté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de l'objet RarArchive. Le contenu de cette représentation n'est pas spécifié.

Exemples

Exemple #1 Exemple avec RarArchive::__toString()

<?php
$rar_arch 
RarArchive::open('latest_winrar.rar');
echo 
$rar_arch."\n";
$rar_arch->close();
echo 
$rar_arch."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)


Sommaire



La classe RarEntry

Introduction

Une entrée RAR, représentant un dossier ou un fichier compressé dans une archive RAR.

Synopsis de la classe

final RarEntry {
/* Constantes */
const integer RarEntry::HOST_MSDOS = 0 ;
const integer RarEntry::HOST_OS2 = 1 ;
const integer RarEntry::HOST_WIN32 = 2 ;
const integer RarEntry::HOST_UNIX = 3 ;
const integer RarEntry::HOST_MACOS = 4 ;
const integer RarEntry::HOST_BEOS = 5 ;
const integer RarEntry::ATTRIBUTE_WIN_HIDDEN = 2 ;
const integer RarEntry::ATTRIBUTE_WIN_SYSTEM = 4 ;
const integer RarEntry::ATTRIBUTE_WIN_DIRECTORY = 16 ;
const integer RarEntry::ATTRIBUTE_WIN_ARCHIVE = 32 ;
const integer RarEntry::ATTRIBUTE_WIN_DEVICE = 64 ;
const integer RarEntry::ATTRIBUTE_WIN_NORMAL = 128 ;
const integer RarEntry::ATTRIBUTE_WIN_TEMPORARY = 256 ;
const integer RarEntry::ATTRIBUTE_WIN_COMPRESSED = 2048 ;
const integer RarEntry::ATTRIBUTE_WIN_OFFLINE = 4096 ;
const integer RarEntry::ATTRIBUTE_WIN_ENCRYPTED = 16384 ;
const integer RarEntry::ATTRIBUTE_WIN_VIRTUAL = 65536 ;
const integer RarEntry::ATTRIBUTE_UNIX_STICKY = 512 ;
const integer RarEntry::ATTRIBUTE_UNIX_SETGID = 1024 ;
const integer RarEntry::ATTRIBUTE_UNIX_SETUID = 2048 ;
const integer RarEntry::ATTRIBUTE_UNIX_FIFO = 4096 ;
const integer RarEntry::ATTRIBUTE_UNIX_CHAR_DEV = 8192 ;
const integer RarEntry::ATTRIBUTE_UNIX_DIRECTORY = 16384 ;
const integer RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV = 24576 ;
const integer RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE = 32768 ;
const integer RarEntry::ATTRIBUTE_UNIX_SYM_LINK = 40960 ;
const integer RarEntry::ATTRIBUTE_UNIX_SOCKET = 49152 ;
/* Méthodes */
public bool extract ( string $dir [, string $filepath = '' [, string $password = NULL [, bool $extended_data = false ]]] )
public int getAttr ( void )
public string getCrc ( void )
public string getFileTime ( void )
public int getHostOs ( void )
public int getMethod ( void )
public string getName ( void )
public int getPackedSize ( void )
public resource getStream ([ string $password ] )
public int getUnpackedSize ( void )
public int getVersion ( void )
public bool isDirectory ( void )
public bool isEncrypted ( void )
public string __toString ( void )
}

Constantes pré-définies

RarEntry Node Types

RarEntry::HOST_MSDOS

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, MS-DOS est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_MSDOS.

RarEntry::HOST_OS2

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, OS/2 est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_OS2.

RarEntry::HOST_WIN32

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, Microsoft Windows est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_WIN32.

RarEntry::HOST_UNIX

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, UNIX OS est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_UNIX.

RarEntry::HOST_MACOS

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, Mac OS est utilisé pour ajouter cette entrée.

RarEntry::HOST_BEOS

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, BeOS est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_BEOS.

RarEntry::ATTRIBUTE_WIN_READONLY

Octet représentant une entrée Windows avec un attribut en lecture seule. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_HIDDEN

Octet représentant une entrée Windows avec un attribut caché. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SYSTEM

Octet représentant une entrée Windows avec un attribut système. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DIRECTORY

Octet représentant une entrée Windows avec un attribut dossier (l'entrée est un dossier). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows. Voir aussi la méthode RarEntry::isDirectory(), qui fonctionne également avec les entrées qui ne sont pas ajoutées dans WinRAR.

RarEntry::ATTRIBUTE_WIN_ARCHIVE

Octet représentant une entrée Windows avec un attribut d'archive. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DEVICE

Octet représentant une entrée Windows avec un attribut de périphérique. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NORMAL

Octet représentant une entrée Windows avec un attribut de fichier normal (l'entrée n'est pas un dossier). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows. Voir aussi la méthode RarEntry::isDirectory(), qui fonctionne également avec les entrées qui ne sont pas ajoutées dans WinRAR.

RarEntry::ATTRIBUTE_WIN_TEMPORARY

Octet représentant une entrée Windows avec un attribut temporaire. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SPARSE_FILE

Octet représentant une entrée Windows avec un attribut de fichier fragmenté (le fichier est un fichier NTFS fragmenté). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_REPARSE_POINT

Octet représentant une entrée Windows avec un attribut de point d'analyse (le fichier est un point d'analyse NTFS; i.e. une jonction de dossier ou un système de fichier monté). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_COMPRESSED

Octet représentant une entrée Windows avec un attribut compressé (NTFS uniquement). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_OFFLINE

Octet représentant une entrée Windows avec un attribut hors-ligne (le fichier est hors-ligne et non accessible). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NOT_CONTENT_INDEXED

Octet représentant une entrée Windows avec un attribut dont le contenu n'est pas indexé (l'entrée doit être indexé). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_ENCRYPTED

Octet représentant une entrée Windows avec un attribut crypté (NTFS uniquement). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_VIRTUAL

Octet représentant une entrée Windows avec un attribut virtuel. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_UNIX_WORLD_EXECUTE

Octet représentant une entrée UNIX qui est exéctuable par tous. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_WRITE

Octet représentant une entrée UNIX qui est accessible en écriture par tous. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_READ

Octet représentant une entrée UNIX qui est accessible en lecture par tous. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_EXECUTE

Octet représentant une entrée UNIX qui est dans le groupe des exécutables. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_WRITE

Octet représentant une entrée UNIX qui est dans le groupe des accessibles en écriture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_READ

Octet représentant une entrée UNIX qui est dans le groupe des accessibles en lecture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_EXECUTE

Octet représentant une entrée UNIX dont le propriétaire est exécutable. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_WRITE

Octet représentant une entrée UNIX dont le propriétaire est accessible en écriture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_READ

Octet représentant une entrée UNIX dont le propriétaire est accessible en lecture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_STICKY

Octet représentant une entrée UNIX ayant l'octet sticky. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_SETGID

Octet représentant une attribut UNIX setgid. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_SETUID

Octet représentant une attribut UNIX setuid. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET

Masque permettant d'isoler les 4 derniers octets (nibble) des attributs UNIX (_S_IFMT, le type du masque de fichier). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec les constantes RarEntry::ATTRIBUTE_UNIX_FIFO, RarEntry::ATTRIBUTE_UNIX_CHAR_DEV, RarEntry::ATTRIBUTE_UNIX_DIRECTORY, RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV, RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE, RarEntry::ATTRIBUTE_UNIX_SYM_LINK et RarEntry::ATTRIBUTE_UNIX_SOCKET.

RarEntry::ATTRIBUTE_UNIX_FIFO

Attributs FIFOs Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_CHAR_DEV

Attributs des périphériques Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_DIRECTORY

Attributs des dossiers Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. Voir aussi la méthode RarEntry::isDirectory() qui fonctionne également avec les entrées qui ont été ajoutées sous d'autres système d'exploitation.

RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV

Attributs des périphériques de bloc Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE

Attributs des fichiers réguliers (pas de dossiers) Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. Voir aussi la méthode RarEntry::isDirectory() qui fonctionne également avec les entrées qui ont été ajoutées sous d'autres système d'exploitation.

Attributs des liens symboliques Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_SOCKET

Attributs des sockets Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.


RarEntry::extract

(PECL rar >= 0.1)

RarEntry::extractExtrait une entrée d'une archive

Description

public bool RarEntry::extract ( string $dir [, string $filepath = '' [, string $password = NULL [, bool $extended_data = false ]]] )

RarEntry::extract() extrait une entrée de données. Ceci va créer un nouveau fichier dans le dossier spécifié par le paramètre dir portant un nom identique au nom de l'entrée, tant que le second argument n'est pas spécifié. Voir ci-dessous pour plus d'informations.

Liste de paramètres

dir

Chemin vers le dossier où le fichier extrait devra être créé. Ce paramètre sera utilisé uniquement si le paramètre filepath n'est pas fourni. Si ces 2 paramètres sont vides, l'extraction se fera dans le dossier courant.

filepath

Chemin (relatif ou absolut) contenant le dossier et le nom du fichier à extraire. Ce paramètre écrase à la fois le paramètre dir et le nom original du fichier.

password

Le mot de passe à utiliser pour décrypter cette entrée. Si l'entrée n'est pas crypté, cette valeur ne sera pas utilisée et peut être omise. Si ce paramètre est omis et que l'entrée est cryptée, le mot de passe fourni à la fonction rar_open(), si il existe, sera utilisé. Si un mauvais mot de passe est fourni, soit explicitement ou implicitement via la fonction rar_open(), la vérification CRC échouera et cette méthode échouera, en retournant FALSE. Si aucun mot de passe n'est fourni alors qu'il est nécessaire, cette méthode échouera en retournant FALSE. Vous pouvez vérifier si une entrée est cryptée avec la méthode RarEntry::isEncrypted().

extended_data

Si vaut TRUE, les informations étendues comme NTFS ACLs et les informations sur le propriétaire Unix seront définies dans les fichiers extraits, si ils sont bien définies dans l'archives.

Avertissement

Avant la version 2.0.0, cette fonction ne gérait pas les chemins relatifs correctement. Utilisez la fonction realpath() comme contournement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
3.0.0 Le paramètre extended_data a été ajouté.
3.0.0 Support des archives RAR contenant des entrées portant le même nom.

Exemples

Exemple #1 Exemple avec RarEntry::extract()

<?php

$rar_file 
rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

$entry->extract('/dir/to'); // Création de /dir/to/Dir/file.txt
$entry->extract(false'/dir/to/new_name.txt'); // Création de /dir/to/new_name.txt

?>

Exemple #2 Comment extraire tous les fichiers d'une archive :

<?php

/* Exemple fourni par Erik Jenssen aka erix */

$filename "foobar.rar";
$filepath "/home/foo/bar/";

$rar_file rar_open($filepath.$filename);
$list rar_list($rar_file);
foreach(
$list as $file) {
    
$entry rar_entry_get($rar_file$file);
    
$entry->extract("."); // Extraction dans le dossier courant
}
rar_close($rar_file);

?>

Voir aussi



RarEntry::getAttr

(PECL rar >= 0.1)

RarEntry::getAttrRécupère les attributs d'une entrée

Description

public int RarEntry::getAttr ( void )

Retourne les attributs dépendants de l'OS d'une entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les attributs ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getAttr()

<?php

$rar_file 
rar_open('example.rar') or die("Impossible d'ouvrir l'archive RAR");

$entry rar_entry_get($rar_file'dir/in/the/archive') or die("L'entrée demandée n'existe pas !");

$host_os $entry->getHostOs();
$attr $entry->getAttr();

switch(
$host_os) {
    case 
RAR_HOST_MSDOS:
    case 
RAR_HOST_OS2:
    case 
RAR_HOST_WIN32:
    case 
RAR_HOST_MACOS:
        
printf("%c%c%c%c%c%c\n",
                (
$attr 0x08) ? 'V' '.',
                (
$attr 0x10) ? 'D' '.',
                (
$attr 0x01) ? 'R' '.',
                (
$attr 0x02) ? 'H' '.',
                (
$attr 0x04) ? 'S' '.',
                (
$attr 0x20) ? 'A' '.');
        break;
    case 
RAR_HOST_UNIX:
    case 
RAR_HOST_BEOS:
        switch (
$attr 0xF000)
        {
            case 
0x4000:
                
printf("d");
                break;
            case 
0xA000:
                
printf("l");
                break;
            default:
                
printf("-");
                break;
        }
        
printf("%c%c%c%c%c%c%c%c%c\n",
                (
$attr 0x0100) ? 'r' '-',
                (
$attr 0x0080) ? 'w' '-',
                (
$attr 0x0040) ? (($attr 0x0800) ? 's':'x'):(($attr 0x0800) ? 'S':'-'),
                (
$attr 0x0020) ? 'r' '-',
                (
$attr 0x0010) ? 'w' '-',
                (
$attr 0x0008) ? (($attr 0x0400) ? 's':'x'):(($attr 0x0400) ? 'S':'-'),
                (
$attr 0x0004) ? 'r' '-',
                (
$attr 0x0002) ? 'w' '-',
                (
$attr 0x0001) ? 'x' '-');
        break;
}

rar_close($rar_file);

?>

Voir aussi



RarEntry::getCrc

(PECL rar >= 0.1)

RarEntry::getCrcRécupère le CRC d'une entrée

Description

public string RarEntry::getCrc ( void )

Retourne une chaîne de caractères hexadécimale représentant le CRC d'une entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le CRC d'une entrée d'une archive, ou FALSE si une erreur survient.

Historique

Version Description
2.0.0 Cette méthode retourne maintenant des valeurs correctes pour les archives sur plusieurs volumes.



RarEntry::getFileTime

(PECL rar >= 0.1)

RarEntry::getFileTimeRécupère la date de dernière modification d'une entrée

Description

public string RarEntry::getFileTime ( void )

Récupère la date de dernière modification d'une entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de dernière modification de l'entrée sous la forme d'une chaîne de caractères au format YYYY-MM-DD HH:II:SS, ou FALSE si une erreur survient.



RarEntry::getHostOs

(PECL rar >= 0.1)

RarEntry::getHostOsRécupère le code de l'hôte pour une entrée

Description

public int RarEntry::getHostOs ( void )

Retourne le code de l'OS hôte d'une entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de l'OS hôte d'une entrée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getHostOs() (version >= 2.0.0)

<?php

$rar_file 
rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

switch (
$entry->getHostOs()) {
    case 
RarEntry::HOST_MSDOS:
        echo 
"MS-DOS\n";
        break;
    case 
RarEntry::HOST_OS2:
        echo 
"OS2\n";
        break;
    case 
RarEntry::HOST_WIN32:
        echo 
"Win32\n";
        break;
    case 
RarEntry::HOST_MACOS:
        echo 
"MacOS\n";
        break;
    case 
RarEntry::HOST_UNIX:
        echo 
"Unix/Linux\n";
        break;
    case 
RarEntry::HOST_BEOS:
        echo 
"BeOS\n";
        break;
}

?>

Exemple #2 Exemple avec RarEntry::getHostOs() (version <= 1.0.0)

<?php

$rar_file 
rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

switch (
$entry->getHostOs()) {
    case 
RAR_HOST_MSDOS:
        echo 
"MS-DOS\n";
        break;
    case 
RAR_HOST_OS2:
        echo 
"OS2\n";
        break;
    case 
RAR_HOST_WIN32:
        echo 
"Win32\n";
        break;
    case 
RAR_HOST_MACOS:
        echo 
"MacOS\n";
        break;
    case 
RAR_HOST_UNIX:
        echo 
"Unix/Linux\n";
        break;
    case 
RAR_HOST_BEOS:
        echo 
"BeOS\n";
        break;
}

?>

Voir aussi



RarEntry::getMethod

(PECL rar >= 0.1)

RarEntry::getMethodRécupère la méthode utilisée pour l'ajout d'une entrée

Description

public int RarEntry::getMethod ( void )

Récupère la méthode utilisée lors de l'ajout d'une entrée dans l'archive courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de la méthode, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getMethod()

<?php

$rar_file 
rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

echo 
"Numéro de la méthode : " $entry->getMethod();

?>



RarEntry::getName

(PECL rar >= 0.1)

RarEntry::getNameRécupère le nom de l'entrée

Description

public string RarEntry::getName ( void )

Retourne le nom (avec le chemin) de l'entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de l'entrée, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Historique

Version Description
2.0.0 Depuis la version 2.0.0, la chaîne de caractères retournée est encodée en Unicode/UTF-8.

Exemples

Exemple #1 Exemple avec RarEntry::getName()

<?php

// Cet exemple fonctionne aussi pour les pages encodées en UTF-8.
// Aussi, l'appel à la fonction mb_convert_encoding n'est pas nécessaire

$rar_file rar_open('example.rar') or die("Erreur lors de l'ouverture de l'archive Rar");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("Entrée non trouvée");

echo 
"Entry name: " mb_convert_encoding(
    
htmlentities(
        
$entry->getName(),
        
ENT_COMPAT,
        
"UTF-8"
    
),
    
"HTML-ENTITIES",
    
"UTF-8"
);

?>



RarEntry::getPackedSize

(PECL rar >= 0.1)

RarEntry::getPackedSizeRécupère la taille compressée d'une entrée

Description

public int RarEntry::getPackedSize ( void )

Récupère la taille décompressée d'une entrée.

Note:

Noter que sous les plateformes 32bits (y compris sous Windows 64bits), la taille maximale retournée sera tronquée à 2 Go. Vérifier la constante PHP_INT_MAX.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille compressée, ou FALSE si une erreur survient.

Historique

Version Description
2.0.0 Cette méthode retourne maintenant des valeurs correcte de tailles compressées plus grandes que 2Go sous les plateformes 64bits et ne retourne jamais de valeurs négatives sous les autres plateformes.

Exemples

Exemple #1 Exemple avec RarEntry::getPackedSize()

<?php

$rar_file 
rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive Rar");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("Impossible de trouver l'entrée demandée");

echo 
"Taille compressée de " $entry->getName() . " = " $entry->getPackedSize() . " octets";

?>



RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStreamRécupère le gestion de fichier pour une entrée

Description

public resource RarEntry::getStream ([ string $password ] )

Retourne le gestionnaire de fichier qui supporte les opérations de lecture. Ce gestionnaire permet la décompression à la volée de l'entrée.

Le gestionnaire ne sera pas touché par l'appel à la fonction rar_close().

Avertissement

Le flux résultant ne permet pas de vérifier l'intégrité des données. Par exemple, un fichier corrompu ou crypté avec une clé fausse ne sera pas détecté. Ce sera de la responsabilité du développeur d'utiliser le CRC de l'entrée pour vérifier son intégrité, s'il le souhaite.

Liste de paramètres

password

Le mot de passe à utiliser pour décrypter l'entrée. Si l'entrée n'est pas crypté, la valeur ne sera pas utilisée et peut être omise. Si ce paramètre est omis et que l'entrée est crypté, le mot de passe fourni lors de l'appel à la fonction rar_open() sera utilisé, si il a été fourni. Si un mauvais mot de passe est fourni, soit explicitement, soit implicitement via la fonction rar_open(), le flux résultant produira un affichage incorrect. Si aucun mot de passe n'est fourni alors qu'il est nécessaire, la méthode échouera et retournera FALSE. Vous pouvez vérifier si l'entrée est cryptée en utilisant la méthode RarEntry::isEncrypted().

Valeurs de retour

Le gestionnaire de fichier, ou FALSE si une erreur survient.

Historique

Version Description
3.0.0 Support des archives RAR dont les entrées portent le même nom.

Exemples

Exemple #1 Exemple avec RarEntry::getStream()

<?php

$rar_file 
rar_open('example.rar');
if (
$rar_file === false)
    die(
"Échec lors de l'ouverture de l'archive Rar");

$entry rar_entry_get($rar_file'Dir/file.txt');
if (
$entry === false)
    die(
"Impossible de trouver l'entrée demandée");

$stream $entry->getStream();
if (
$stream === false)
    die(
"Échec lors de la récupération du flux.");

rar_close($rar_file); //le flux est indépendant du fichier

while (!feof($stream)) {
    
$buff fread($stream8192);
    if (
$buff !== false)
        echo 
$buff;
    else
        break; 
//erreur fread
}

fclose($stream);

?>

Voir aussi



RarEntry::getUnpackedSize

(PECL rar >= 0.1)

RarEntry::getUnpackedSizeRécupère la taille décompressée d'une entrée

Description

public int RarEntry::getUnpackedSize ( void )

Récupère la taille décompressée d'une entrée d'une archive.

Note:

Notez que sur les plateformes 32bits (y compris les Windows x64), la taille maximale est tronquée à 2 Go. Vérifier la constante PHP_INT_MAX.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille décompressée, ou FALSE si une erreur survient.

Historique

Version Description
2.0.0 Cette méthode retourne maintenant les valeurs correctes pour les tailles décompressées plus grandes que 2Go sur les plateformes 64bits et ne retournera jamais de valeurs négatives pour les autres plateformes.

Valeurs de retour

Exemple #1 Exemple avec RarEntry::getUnpackedSize()

<?php

$rar_file 
rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive Rar");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("Échec lors de la récupération de l'entrée");

echo 
"Taille décompressée de " $entry->getName() . " = " $entry->getPackedSize() . " octets";

?>



RarEntry::getVersion

(PECL rar >= 0.1)

RarEntry::getVersionRécupère la version minimale du logiciel RAR à utiliser pour décompresser une entrée

Description

public int RarEntry::getVersion ( void )

Retourne la version minimale du logiciel RAR (e.g. WinRAR) requise pour décompresser l'entrée. Elle sera encodée sous la forme 10 * version majeure + version mineure.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la version ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getVersion()

<?php

$rar_file 
rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive Rar");

$entry rar_entry_get($rar_file'Dir/file.txt') or die("L'entrée demandée n'existe pas");

echo 
"Version Rar requise pour décompresser l'entrée : " $entry->getVersion();

?>



RarEntry::isDirectory

(PECL rar >= 2.0.0)

RarEntry::isDirectoryTeste si l'entrée courante est un dossier

Description

public bool RarEntry::isDirectory ( void )

Teste si l'entrée courante est un dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée est un dossier, FALSE sinon.

Notes

Cette fonction est uniquement disponible depuis la version 2.0.0, mais ce test peut également être effectué en vérifiant les attributs de l'entrée comme ceci (ne fonctionne que pour des fichiers compressés avec RAR sous Windows ou Unix) :

<?php
//...
// Ouvre le fichier, récupère l'entrée et la stock dans la variable $e...
//...

$isDirectory = (bool) ((($e->getHostOs() == RAR_HOST_WIN32) && ($e->getAttr() & 0x10)) ||
    ((
$e->getHostOs() == RAR_HOST_UNIX) && (($e->getAttr() & 0xf000) == 0x4000)));
?>



RarEntry::isEncrypted

(PECL rar >= 2.0.0)

RarEntry::isEncryptedTeste si une entrée est cryptée

Description

public bool RarEntry::isEncrypted ( void )

Teste si le contenu de l'entrée courante est crypté.

Note:

Le mot de passe utilisé peut différé entre plusieurs fichiers de la même archive RAR.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée courante est crypté, FALSE sinon.



RarEntry::__toString

(PECL rar >= 2.0.0)

RarEntry::__toStringRécupère une représentation sous forme de chaîne de caractères d'une entrée

Description

public string RarEntry::__toString ( void )

Retourne une représentation textuelle d'une entrée. Ceci inclut les entrées sous forme de fichier, de dossier (les liens symboliques ou les objets spéciaux seront traités comme des fichiers), les noms UTF-8 des entrées, mais aussi les CRC. La forme et le contenu de cette représentation peut changer dans le futur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de l'entrée.


Sommaire



La classe RarException

Introduction

Cette classe sert à 2 choses : C'est le type d'exceptions lancées par l'extension RAR et permet, via ses méthodes statiques, de savoir et de définir les comportements des erreurs de l'extension, i.e. si l'exception doit être émise ou bien si des alertes PHP doivent être émises.

Les codes erreurs suivants sont utilisés :

  • -1 - Erreur externe à la bibliothèque UnRAR
  • 11 - Mémoire insuffisante
  • 12 - Données incorrectes
  • 13 - Archive incorrecte
  • 14 - Format inconnu
  • 15 - Erreur lors de l'ouverture du fichier
  • 16 - Erreur lors de la création d'un fichier
  • 17 - Erreur lors de la fermeture d'un fichier
  • 18 - Erreur lors de la lecture
  • 19 - Erreur lors de l'écriture
  • 20 - Buffer trop petit
  • 21 - Erreur RAR inconnue
  • 22 - Mot de passe nécessaire mais non fourni

Synopsis de la classe

final RarException extends Exception {
/* Méthodes */
public static bool isUsingExceptions ( void )
public static void setUsingExceptions ( bool $using_exceptions )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

RarException::isUsingExceptions

(PECL rar >= 2.0.0)

RarException::isUsingExceptionsVérifie si le gestionnaire d'erreur utilise les exceptions ou non

Description

public static bool RarException::isUsingExceptions ( void )

Vérifie si les fonctions RAR émettent des alertes et retournent des valeurs d'erreur ou bien si elles émettent des exceptions (n'incluent pas des erreurs de syntaxe telles que le fait de passer des types incorrects comme arguments).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si les exceptions sont utilisées, FALSE sinon.

Exemples

Exemple #1 Exemple avec RarException::isUsingExceptions()

<?php
// Par défaut, les exceptions ne sont pas utilisées
var_dump(RarException::isUsingExceptions());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)

Voir aussi



RarException::setUsingExceptions

(PECL rar >= 2.0.0)

RarException::setUsingExceptionsActive ou désactive les exceptions dans le gestionnaire d'erreurs

Description

public static void RarException::setUsingExceptions ( bool $using_exceptions )

Si et seulement si l'argument vaut TRUE, alors, au lieu d'émettre des alertes et de retourner des valeurs spéciales indiquant une erreur lors que la bibliothèque UnRAR rencontre une erreur, une exception de type RarException est émise.

Les exceptions seront également lancées pour les erreurs suivantes, qui surviennent en dehors de la bibliothèque (leurs codes erreurs seront -1) :

Liste de paramètres

using_exceptions

Doit valoir TRUE pour active l'émission d'exceptions, FALSE pour le désactiver (par défaut).

Exemples

Exemple #1 Exemple avec RarException::setUsingExceptions()

<?php
var_dump
(RarException::isUsingExceptions());
$arch RarArchive::open("does_not_exist.rar");
var_dump($arch);

RarException::setUsingExceptions(true);
var_dump(RarException::isUsingExceptions());
$arch RarArchive::open("does_not_exist.rar");
var_dump($arch); //non atteint
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)

Warning: RarArchive::open(): Failed to open does_not_exist.rar: ERAR_EOPEN (file open error) in C:\php_rar\trunk\tests\test.php on line 3
bool(false)
bool(true)

Fatal error: Uncaught exception 'RarException' with message 'unRAR internal error: Failed to open does_not_exist.rar: ERAR_EOPEN (file open error)' in C:\php_rar\trunk\tests\test.php:8
Stack trace:
#0 C:\php_rar\trunk\tests\test.php(8): RarArchive::open('does_not_exist....')
#1 {main}
  thrown in C:\php_rar\trunk\tests\test.php on line 8

Voir aussi


Sommaire




Zip


Introduction

Cette extension offre la possibilité de lire et d'écrire des archives compressées ZIP, et d'accéder aux les fichiers et dossiers s'y trouvant.



Installation/Configuration

Sommaire


Pré-requis

PHP 4

La version incluse dans PHP 4 nécessite la bibliothèque » ZZIPlib, écrite par Guido Draheim, en version 0.10.6 ou supérieure.

PHP 5.2.0 ou supérieure

Cette extension utilise les fonctions » zlib écrite par Jean-loup Gailly et Mark Adler.



Installation

PHP 4

Note:

Le support de Zip avant PHP 4.1.0 est expérimental.

Avertissement

Comme l'extension Zip en PHP 4 n'est plus entretenue, il est recommandé d'utiliser l'extension PECL.

Systèmes Linux

Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support Zip en utilisant l'option de configuration --with-zip[=DIR] , où [DIR] est le préfixe de l'installation de la bibliothèque » ZZIPlib.

Windows

Les utilisateurs de Windows doivent activer la bibliothèque php_zip.dll dans le php.ini afin d'utiliser ces fonctions.

PHP 5.2.0 et supérieur

Systèmes Linux

Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support Zip en utilisant l'option de configuration --enable-zip .

Windows

Les utilisateurs de Windows doivent activer la bibliothèque php_zip.dll dans le php.ini afin d'utiliser ces fonctions.

Installation via PECL

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/zip.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Il y a deux types de ressources utilisées par le module Zip. La première est le dossier Zip d'une archive Zip, et la seconde, l'entrée Zip de l'archives.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ZipArchive utilise des constantes de classe. Il y a trois types de constantes : les options (préfixées par FL_), les erreurs (préfixées par ER_) ou les modes (sans préfixe).

ZIPARCHIVE::CREATE (entier)
Crée l'archive si elle n'existe pas.
ZIPARCHIVE::OVERWRITE (entier)
Démarre toujours une nouvelle archive. Ce mode écrase le fichier s'il existe déjà.
ZIPARCHIVE::EXCL (entier)
Erreur si l'archive existe déjà.
ZIPARCHIVE::CHECKCONS (entier)
Effectue des analyses supplémentaires de cohérence et émet une erreur si elles échouent.
ZIPARCHIVE::FL_NOCASE (entier)
Ignore la casse sur le nom
ZIPARCHIVE::FL_NODIR (entier)
Ignore le composant dossier
ZIPARCHIVE::FL_COMPRESSED (entier)
Lit les données compressées
ZIPARCHIVE::FL_UNCHANGED (entier)
Utilise les données originales, ignore les modifications
ZIPARCHIVE::CM_DEFAULT (entier)
meilleur compression ou stocke
ZIPARCHIVE::CM_STORE (entier)
stocké (non-compressé)
ZIPARCHIVE::CM_SHRINK (entier)
retrait
ZIPARCHIVE::CM_REDUCE_1 (entier)
réduit de facteur 1
ZIPARCHIVE::CM_REDUCE_2 (entier)
réduit de facteur 2
ZIPARCHIVE::CM_REDUCE_3 (entier)
réduit de facteur 3
ZIPARCHIVE::CM_REDUCE_4 (entier)
réduit de facteur 4
ZIPARCHIVE::CM_IMPLODE (entier)
réunit
ZIPARCHIVE::CM_DEFLATE (entier)
compression
ZIPARCHIVE::CM_DEFLATE64 (entier)
compression 64
ZIPARCHIVE::CM_PKWARE_IMPLODE (entier)
réunit PKWARE
ZIPARCHIVE::CM_BZIP2 (entier)
algorithme BZIP2
ZIPARCHIVE::ER_OK (entier)
Aucune erreur
ZIPARCHIVE::ER_MULTIDISK (entier)
archives ZIP multidisques non supportées
ZIPARCHIVE::ER_RENAME (entier)
échec du changement de nom du fichier temporaire
ZIPARCHIVE::ER_CLOSE (entier)
échec de la fermeture de l'archive ZIP
ZIPARCHIVE::ER_SEEK (entier)
erreur de pointeur
ZIPARCHIVE::ER_READ (entier)
erreur de lecture
ZIPARCHIVE::ER_WRITE (entier)
erreur d'écriture
ZIPARCHIVE::ER_CRC (entier)
erreur CRC
ZIPARCHIVE::ER_ZIPCLOSED (entier)
archive ZIP fermée
ZIPARCHIVE::ER_NOENT (entier)
le fichier n'existe pas
ZIPARCHIVE::ER_EXISTS (entier)
le fichier existe déjà
ZIPARCHIVE::ER_OPEN (entier)
impossible d'ouvrir le fichier
ZIPARCHIVE::ER_TMPOPEN (entier)
échec lors de la création du fichier temporaire
ZIPARCHIVE::ER_ZLIB (entier)
erreur Zlib
ZIPARCHIVE::ER_MEMORY (entier)
échec d'allocation mémoire
ZIPARCHIVE::ER_CHANGED (chaîne de caractères)
l'entrée a été modifiée
ZIPARCHIVE::ER_COMPNOTSUPP (entier)
méthode de compression non supportée
ZIPARCHIVE::ER_EOF (entier)
EOF prématuré
ZIPARCHIVE::ER_INVAL (entier)
argument invalide
ZIPARCHIVE::ER_NOZIP (entier)
ce n'est pas une archive ZIP
ZIPARCHIVE::ER_INTERNAL (entier)
erreur interne
ZIPARCHIVE::ER_INCONS (entier)
archive ZIP incohérente
ZIPARCHIVE::ER_REMOVE (entier)
impossible d'effacer le fichier
ZIPARCHIVE::ER_DELETED (entier)
l'entrée a été supprimée


Exemples

Exemple #1 Création d'une archive Zip

<?php

$zip 
= new ZipArchive();
$filename "./test112.zip";

if (
$zip->open($filenameZIPARCHIVE::CREATE)!==TRUE) {
    exit(
"Impossible d'ouvrir <$filename>\n");
}

$zip->addFromString("testfilephp.txt" time(), "#1 Ceci est une chaîne texte, ajoutée comme testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" time(), "#2 Ceci est une chaîne texte, ajoutée comme testfilephp2.txt.\n");
$zip->addFile($thisdir "/too.php","/testfromfile.php");
echo 
"Nombre de fichiers : " $zip->numFiles "\n";
echo 
"statut :" $zip->status "\n";
$zip->close();
?>

Exemple #2 Affiche les détails de l'archive et liste son contenu

<?php
$za 
= new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo 
"Nombre de fichiers : " $za->numFiles "\n";
echo 
"statut : " $za->status  "\n";
echo 
"statut du système : " $za->statusSys "\n";
echo 
"Nom du fichier : " $za->filename "\n";
echo 
"Commentaire : " $za->comment "\n";

for (
$i=0$i<$za->numFiles;$i++) {
    echo 
"index : $i\n";
    
print_r($za->statIndex($i));
}
echo 
"Nombre de fichiers :" $za->numFiles "\n";
?>

Exemple #3 Flux ZIP ; lit les metainformations d'un fichier OpenOffice

<?php
$reader 
= new XMLReader();

$reader->open('zip://' dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while (
$reader->read()) {
    if (
$reader->nodeType == XMLREADER::ELEMENT) {
        
$elm $reader->name;
    } else {
        if (
$reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
            break;
        }
        if (!
trim($reader->value)) {
            continue;
        }
        
$odt_meta[$elm] = $reader->value;
    }
}
print_r($odt_meta);
?>

Cet exemple utilise l'ancienne API (PHP 4) ; il ouvre une archive ZIP, lit chaque fichier de l'archive et affiche son contenu. L'archive test2.zip utilisée dans cet exemple est une des archives de test, se trouvant dans les sources de ZZIPlib.

Exemple #4 Exemple d'utilisation de Zip

<?php

$zip 
zip_open("/tmp/test2.zip");

if (
$zip) {
    while (
$zip_entry zip_read($zip)) {
        echo 
"Nom :                        " zip_entry_name($zip_entry) . "\n";
        echo 
"Taille actuelle du fichier : " zip_entry_filesize($zip_entry) . "\n";
        echo 
"Taille compressée :          " zip_entry_compressedsize($zip_entry) . "\n";
        echo 
"Méthode de compression :     " zip_entry_compressionmethod($zip_entry) . "\n";

        if (
zip_entry_open($zip$zip_entry"r")) {
            echo 
"Contenu du fichier :\n";
            
$buf zip_entry_read($zip_entryzip_entry_filesize($zip_entry));
            echo 
"$buf\n";

            
zip_entry_close($zip_entry);
        }
        echo 
"\n";

    }

    
zip_close($zip);

}
?>


La classe ZipArchive

Introduction

Un fichier d'archive, compressé Zip.

Synopsis de la classe

ZipArchive {
/* Propriétés */
/* Méthodes */
bool addEmptyDir ( string $dirname )
bool addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] )
bool addFromString ( string $localname , string $contents )
bool close ( void )
bool deleteIndex ( int $index )
bool deleteName ( string $name )
bool extractTo ( string $destination [, mixed $entries ] )
string getArchiveComment ([ int $flags ] )
string getCommentIndex ( int $index [, int $flags ] )
string getCommentName ( string $name [, int $flags ] )
mixed getFromIndex ( int $index [, int $length = 0 [, int $flags ]] )
mixed getFromName ( string $name [, int $length = 0 [, int $flags ]] )
string getNameIndex ( int $index [, int $flags ] )
string getStatusString ( void )
resource getStream ( string $name )
mixed locateName ( string $name [, int $flags ] )
mixed open ( string $filename [, int $flags ] )
bool renameIndex ( int $index , string $newname )
bool renameName ( string $name , string $newname )
mixed setArchiveComment ( string $comment )
mixed setCommentIndex ( int $index , string $comment )
mixed setCommentName ( string $name , string $comment )
mixed statIndex ( int $index [, int $flags ] )
mixed statName ( name $name [, int $flags ] )
mixed unchangeAll ( void )
mixed unchangeArchive ( void )
mixed unchangeIndex ( int $index )
mixed unchangeName ( string $name )
}

Propriétés

status

Le statut de l'archive Zip

statusSys

Le statut système de l'archive Zip

numFiles

Le nombre de fichiers dans l'archive

filename

Le nom du fichier dans le système de fichiers

comment

Commentaire pour l'archive


ZipArchive::addEmptyDir

(PHP 5 >= 5.2.0, PECL zip >= 1.8.0)

ZipArchive::addEmptyDirAjoute un nouveau dossier à une archive Zip

Description

bool ZipArchive::addEmptyDir ( string $dirname )

Ajoute un dossier vide dans l'archive Zip.

Liste de paramètres

dirname

Le dossier à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau dossier dans l'archive

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    if(
$zip->addEmptyDir('newDirectory')) {
        echo 
'Création d\'un nouveau dossier racine';
    } else {
        echo 
'Impossible de créer un nouveau dossier';
    }
    
$zip->close();
} else {
    echo 
'Échec';
}
?>


ZipArchive::addFile

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::addFileAjoute un fichier à l'archive ZIP depuis le chemin fourni

Description

bool ZipArchive::addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] )

Ajoute un fichier à une archive ZIP depuis le chemin fourni.

Liste de paramètres

filename

Le chemin vers le fichier à ajouter

localname

Si fourni, ce sera le nom local dans l'archive ZIP qui écrasera le contenu du paramètre filename.

start

Ce paramètre n'est pas utilisé mais est nécessaire pour étendre la classe ZipArchive.

length

Ce paramètre n'est pas utilisé mais est nécessaire pour étendre la classe ZipArchive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Cet exemple ouvre l'archive ZIP test.zip et ajoute le fichier /path/to/index.txt, en tant que newname.txt.

Exemple #1 Ouverture et extraction

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->addFile('/chemin/vers/index.txt''newname.txt');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>

Notes

Note:

Lorsqu'un fichier est marqué comme étant à ajouter à l'archive, PHP va essayer de verrouiller ce fichier et il ne sera relacher que lorsque l'opération ZIP sera terminée. En gros, vous ne pouvez supprimer un fichier ajouté à l'archive que lorsque l'archive est fermée.



ZipArchive::addFromString

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::addFromStringAjoute un fichier à une archive ZIP en utilisant son contenu

Description

bool ZipArchive::addFromString ( string $localname , string $contents )

Ajoute un fichier à une archive ZIP en utilisant son contenu.

Liste de paramètres

localname

Le nom de l'entrée à créer

contents

Le contenu à utiliser pour créer l'entrée. Ceci est utilisé dans un mode binaire sécurisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout d'une entrée dans une nouvelle archive

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip'ZipArchive::CREATE);
if (
$res === TRUE) {
    
$zip->addFromString('test.txt''contenu du fichier ici');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>

Exemple #2 Ajout d'un fichier dans un dossier d'une archive

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->addFromString('dir/test.txt''contenu du fichier ici');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::close

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::closeFerme l'archive active

Description

bool ZipArchive::close ( void )

Ferme une archive ouverte ou nouvellement créée et sauvegarde les modifications. Cette méthode est appelée automatiquement à la fin du script.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::deleteIndexEfface une entrée de l'archive en utilisant son index

Description

bool ZipArchive::deleteIndex ( int $index )

Efface une entrée de l'archive en utilisant son index.

Liste de paramètres

index

Index de l'entrée à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Efface le fichier depuis l'archive en utilisant son index

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->deleteIndex(2);
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::deleteName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::deleteNameEfface une entrée dans l'archive en utilisant son nom

Description

bool ZipArchive::deleteName ( string $name )

Efface une entrée dans l'archive en utilisant son nom.

Liste de paramètres

name

Nom de l'entrée à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Efface un fichier et un dossier de l'archive en utilisant les noms

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test1.zip') === TRUE) {
    
$zip->deleteName('testfromfile.php');
    
$zip->deleteName('testDir/');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::extractTo

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::extractToExtrait le contenu de l'archive

Description

bool ZipArchive::extractTo ( string $destination [, mixed $entries ] )

Extrait l'archive complète ou les fichiers fournis vers un chemin spécifié.

Liste de paramètres

destination

Endroit où l'on doit extraire les fichiers

entries

Les entrées à extraire. Ce peut être soit le nom d'une entrée ou un tableau de noms

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Extrait toutes les entrées

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->extractTo('/mon/dossier/destination/');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>

Exemple #2 Extrait deux entrées

<?php
$zip 
= new ZipArchive;
$res $zip->open('test_im.zip');
if (
$res === TRUE) {
    
$zip->extractTo('/mon/dossier/destination/', array('pear_item.gif''testfromfile.php'));
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::getArchiveCommentRetourne le commentaire de l'archive ZIP

Description

string ZipArchive::getArchiveComment ([ int $flags ] )

Retourne le commentaire de l'archive ZIP.

Liste de paramètres

flags

Si ce paramètre est défini à ZIPARCHIVE::FL_UNCHANGED, le commentaire original non modifié sera retourné.

Valeurs de retour

Retourne le commentaire de l'archive ZIP ou FALSE si une erreur survient.

Exemples

Exemple #1 Extrait le commentaire de l'archive

<?php
$zip 
= new ZipArchive;
$res $zip->open('test_avec_commentaire.zip');
if (
$res === TRUE) {
    
var_dump($zip->getArchiveComment());
    
/* Ou en utilisant la propriété de l'archive */
    
var_dump($zip->comment);
} else {
    echo 
'échec, code:' $res;
}
?>


ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::getCommentIndexRetourne le commentaire d'une entrée

Description

string ZipArchive::getCommentIndex ( int $index [, int $flags ] )

Retourne le commentaire d'une entrée en utilisant l'index de l'entrée.

Liste de paramètres

index

Index de l'entrée

flags

Si ce flag est défini à ZIPARCHIVE::FL_UNCHANGED, le commentaire original est retourné.

Valeurs de retour

Retourne le commentaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affiche le commentaire d'une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test1.zip');
if (
$res === TRUE) {
    
var_dump($zip->getCommentIndex(1));
} else {
    echo 
'échec, code:' $res;
}
?>


ZipArchive::getCommentName

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::getCommentNameRetourne le commentaire d'une entrée en utilisant le nom de l'entrée

Description

string ZipArchive::getCommentName ( string $name [, int $flags ] )

Retourne le commentaire d'une entrée en utilisant le nom de l'entrée.

Liste de paramètres

name

Nom de l'entrée

flags

Si ce flag est défini à ZIPARCHIVE::FL_UNCHANGED, le commentaire original est retourné.

Valeurs de retour

Retourne le commentaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affiche le commentaire d'une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test1.zip');
if (
$res === TRUE) {
    
var_dump($zip->getCommentName('test/entry1.txt'));
} else {
    echo 
'échec, code:' $res;
}
?>


ZipArchive::getFromIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.3.0)

ZipArchive::getFromIndexRetourne le contenu d'une entrée en utilisant son index

Description

mixed ZipArchive::getFromIndex ( int $index [, int $length = 0 [, int $flags ]] )

Retourne le contenu d'une entrée en utilisant son index.

Liste de paramètres

index

Index de l'entrée

length

La longueur à lire depuis l'entrée. Si vaut 0, alors toute l'entrée sera lue.

flags

Le flag à utiliser pour ouvrir l'archive.

  • ZIPARCHIVE::FL_UNCHANGED

  • ZIPARCHIVE::FL_COMPRESSED

Valeurs de retour

Retourne le contenu de l'entrée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère le contenu du fichier

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    echo 
$zip->getFromIndex(2);
    
$zip->close();
} else {
    echo 
'échec';
}
?>


ZipArchive::getFromName

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::getFromNameRetourne le contenu de l'entrée en utilisant son nom

Description

mixed ZipArchive::getFromName ( string $name [, int $length = 0 [, int $flags ]] )

Retourne le contenu de l'entrée en utilisant son nom.

Liste de paramètres

name

Nom de l'entrée

length

La longueur à lire depuis l'entrée. Si vaut 0, alors toute l'entrée sera lue.

flags

Le flag à utiliser pour ouvrir l'archive.

  • ZIPARCHIVE::FL_UNCHANGED

  • ZIPARCHIVE::FL_COMPRESSED

Valeurs de retour

Retourne le contenu de l'entrée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère le contenu d'un fichier

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test1.zip') === TRUE) {
    echo 
$zip->getFromName('testfromfile.php');
    
$zip->close();
} else {
    echo 
'échec';
}
?>

Exemple #2 Convertit une image depuis une entrée ZIP

<?php
$z 
= new ZipArchive();
if (
$z->open(dirname(__FILE__) . '/test_im.zip')) {
    
$im_string $z->getFromName("pear_item.gif");
    
$im imagecreatefromstring($im_string);
    
imagepng($im'b.png');
}
?>


ZipArchive::getNameIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::getNameIndexRetourne le nom d'une entrée en utilisant son index

Description

string ZipArchive::getNameIndex ( int $index [, int $flags ] )

Retourne le nom d'une entrée en utilisant son index.

Liste de paramètres

index

Index de l'entrée

flags

Si ce paramètre est défini à ZIPARCHIVE::FL_UNCHANGED, le nom original non modifié sera retourné.

Valeurs de retour

Retourne le nom en cas de succès ou FALSE si une erreur survient.



ZipArchive::getStatusString

(PHP 5 >= 5.2.7)

ZipArchive::getStatusStringRetourne le message du statut de l'erreur, du système ou de zip

Description

string ZipArchive::getStatusString ( void )

Retourne le message du statut de l'erreur, du système ou de zip.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant le message du statut en cas de succès ou FALSE si une erreur survient.



ZipArchive::getStream

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::getStreamRécupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)

Description

resource ZipArchive::getStream ( string $name )

Récupère un gestionnaire de fichier pour l'entrée définie par son nom. Actuellement, cette fonction ne supporte que les opérations de lecture.

Liste de paramètres

name

Le nom de l'entrée à utiliser

Valeurs de retour

Retourne un pointeur de fichier (ressource) en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère le contenu de l'entrée ZIP

<?php
$content 
'';
$z = new ZipArchive();
if (
$z->open('test.zip')) {
    
$fp $z->getStream('test');
    if(!
$fp) exit("échec\n");

    while (!
feof($fp)) {
        
$contents .= fread($fp2);
    }

    
fclose($fp);
    
file_put_contents('t',$contents);
    echo 
"fait.\n";
}
?>

Exemple #2 Récupère une entrée Zip avec la fonction fopen() et le gestionnaire de flux ZIP

<?php
$fp 
fopen('zip://' dirname(__FILE__) . '/test.zip#test''r');
if (!
$fp) {
    exit(
"impossible d'ouvrir\n");
}
while (!
feof($fp)) {
    
$contents .= fread($fp2);
    echo 
"$contents\n";
}
fclose($fp);
echo 
"fait.\n";
?>

Exemple #3 Gestionnaire de flux et image, peut être utilisé également avec les fonctions XML

<?php
$im 
imagecreatefromgif('zip://' dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im'a.png');
?>


ZipArchive::locateName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::locateNameRetourne l'index d'une entrée de l'archive

Description

mixed ZipArchive::locateName ( string $name [, int $flags ] )

Localise une entrée en utilisant son nom.

Liste de paramètres

name

Le nom de l'entrée à chercher

flags

La fonction retourne l'index du fichier dans l'archive. Le flag est spécifié par les valeurs suivantes ou par 0 pour aucun d'entre eux.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

Valeurs de retour

Retourne l'index de l'entrée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée une archive et l'utilise avec ZipArchive::locateName()

<?php
$file 
'testlocate.zip';

$zip = new ZipArchive;
if (
$zip->open($fileZIPARCHIVE::CREATE) !== TRUE) {
    exit(
'failed');
}

$zip->addFromString('entry1.txt''entry #1');
$zip->addFromString('entry2.txt''entry #2');
$zip->addFromString('dir/entry2d.txt''entry #2');

if (!
$zip->status == ZIPARCHIVE::ER_OK) {
    echo 
"échec lors de l'écriture ZIP\n";
}
$zip->close();

if (
$zip->open($file) === TRUE) {
    exit(
'échec');
}

echo 
$zip->locateName('entry1.txt') . "\n";
echo 
$zip->locateName('eNtry2.txt') . "\n";
echo 
$zip->locateName('eNtry2.txt'ZIPARCHIVE::FL_NOCASE) . "\n";
echo 
$zip->locateName('enTRy2d.txt'ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR) . "\n";
$zip->close();

?>

L'exemple ci-dessus va afficher :

0

1
2


ZipArchive::open

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::openOuvre une archive ZIP

Description

mixed ZipArchive::open ( string $filename [, int $flags ] )

Ouvre une nouvelle archive ZIP pour lecture, écriture et modification.

Liste de paramètres

filename

Le nom du fichier ZIP à ouvrir.

flags

Le mode à utiliser pour ouvrir l'archive.

  • ZIPARCHIVE::OVERWRITE

  • ZIPARCHIVE::CREATE

  • ZIPARCHIVE::EXCL

  • ZIPARCHIVE::CHECKCONS

Valeurs de retour

Error codes

Retourne TRUE en cas de succès ou sinon, le code erreur

  • ZIPARCHIVE::ER_EXISTS

  • ZIPARCHIVE::ER_INCONS

  • ZIPARCHIVE::ER_INVAL

  • ZIPARCHIVE::ER_MEMORY

  • ZIPARCHIVE::ER_NOENT

  • ZIPARCHIVE::ER_NOZIP

  • ZIPARCHIVE::ER_OPEN

  • ZIPARCHIVE::ER_READ

  • ZIPARCHIVE::ER_SEEK

Exemples

Exemple #1 Ouverture et extraction

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip');
if (
$res === TRUE) {
    echo 
'ok';
    
$zip->extractTo('test');
    
$zip->close();
} else {
    echo 
'échec, code:' $res;
}
?>

Exemple #2 Création d'une archive

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip'ZipArchive::CREATE);
if (
$res === TRUE) {
    
$zip->addFromString('test.txt''file content goes here');
    
$zip->addFile('data.txt''nom_de_l_entree.txt');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::renameIndexRenomme une entrée définie par son index

Description

bool ZipArchive::renameIndex ( int $index , string $newname )

Renomme une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée à renommer

newname

Nouveau nom

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Renommer une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip');
if (
$res === TRUE) {
    
$zip->renameIndex(2,'newname.txt');
    
$zip->close();
} else {
    echo 
'échec, code:' $res;
}
?>


ZipArchive::renameName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::renameNameRenomme une entrée définie par son nom

Description

bool ZipArchive::renameName ( string $name , string $newname )

Renomme une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée à renommer

newname

Nouveau nom

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Renommer une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip');
if (
$res === TRUE) {
    
$zip->renameName('currentname.txt','newname.txt');
    
$zip->close();
} else {
    echo 
'échec, code:' $res;
}
?>


ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::setArchiveCommentDéfinit le commentaire d'une archive ZIP

Description

mixed ZipArchive::setArchiveComment ( string $comment )

Définit le commentaire d'une archive ZIP.

Liste de paramètres

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une archive et définition d'un commentaire

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip'ZipArchive::CREATE);
if (
$res === TRUE) {
    
$zip->addFromString('test.txt''contenu du fichier ici');
    
$zip->setArchiveComment('commentaire de l\'archive');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::setCommentIndexDéfinit le commentaire d'une entrée définie par son index

Description

mixed ZipArchive::setCommentIndex ( int $index , string $comment )

Définit le commentaire d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ouvre une archive et définit un commentaire pour une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip');
if (
$res === TRUE) {
    
$zip->setCommentIndex(2'commentaire de l\'entrée');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::setCommentName

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::setCommentNameDéfinit le commentaire d'une entrée spécifiée par son nom

Description

mixed ZipArchive::setCommentName ( string $name , string $comment )

Définit le commentaire pour une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ouvre une archive et définit le commentaire pour une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip');
if (
$res === TRUE) {
    
$zip->setCommentName('entry1.txt''commentaire de l\'entrée');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'échec';
}
?>


ZipArchive::statIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::statIndexRécupère les détails d'une entrée définie par son index

Description

mixed ZipArchive::statIndex ( int $index [, int $flags ] )

Cette fonction obtient des informations d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée

flags

ZIPARCHIVE::FL_UNCHANGED permet d'obtenir les informations du fichier original de l'archive, ignorant toutes les modifications effectuées

Valeurs de retour

Retourne un tableau contenant les détails de l'entrée ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère les informations d'une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip');
if (
$res === TRUE) {
    
print_r($zip->statIndex(3));
    
$zip->close();
} else {
    echo 
'échec, code:' $res;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


ZipArchive::statName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::statNameRécupère les détails de l'entrée définie par son nom

Description

mixed ZipArchive::statName ( name $name [, int $flags ] )

Cette fonction obtient des informations sur l'entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée

flags

Le flag spécifie comment la recherche sur le nom doit s'effectuer. ZIPARCHIVE::FL_UNCHANGED doit être utilisé pour récupérer les informations sur le fichier original de l'archive, ignorant toutes les modifications effectuées.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

  • ZIPARCHIVE::FL_UNCHANGED

Valeurs de retour

Retourne un tableau contenant les détails de l'entrée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère les informations d'une entrée

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip');
if (
$res === TRUE) {
    
print_r($zip->statName('foobar/baz'));
    
$zip->close();
} else {
    echo 
'échec, code:' $res;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


ZipArchive::unchangeAll

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::unchangeAllAnnule toutes les modifications faites sur l'archive

Description

mixed ZipArchive::unchangeAll ( void )

Annule toutes les modifications faites sur l'archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::unchangeArchiveAnnule toutes les modifications globales faites sur l'archive

Description

mixed ZipArchive::unchangeArchive ( void )

Annule toutes les modifications faites sur l'archive. Actuellement, ceci annule uniquement les modifications effectuées sur les commentaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::unchangeIndexAnnule toutes les modifications faites sur une entrée, définie par nom index

Description

mixed ZipArchive::unchangeIndex ( int $index )

Annule toutes les modifications faites sur une entrée, définie par son index.

Liste de paramètres

index

Index de l'entrée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::unchangeNameAnnule toutes les modifications faites sur une entrée, définie par son nom

Description

mixed ZipArchive::unchangeName ( string $name )

Annule toutes les modifications faites sur une entrée, définie par son nom.

Liste de paramètres

name

Nom de l'entrée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



Fonctions Zip


zip_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_closeFerme une archive Zip

Description

void zip_close ( resource $zip )

zip_close() ferme l'archive ZIP donnée.

Liste de paramètres

zip

Un fichier ZIP précédemment ouvert avec la fonction zip_open().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



zip_entry_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_closeFerme un dossier d'archive

Description

bool zip_entry_close ( resource $zip_entry )

zip_entry_close() ferme un dossier d'archive donné.

Liste de paramètres

zip_entry

Un dossier d'archive précédemment ouvert avec la fonction zip_entry_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



zip_entry_compressedsize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_compressedsizeLit la taille compressée d'un dossier d'archives

Description

int zip_entry_compressedsize ( resource $zip_entry )

zip_entry_compressedsize() retourne la taille compressée d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La taille compressée.

Voir aussi



zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_compressionmethodLit la méthode de compression utilisée sur un dossier d'archives

Description

string zip_entry_compressionmethod ( resource $zip_entry )

zip_entry_compressionmethod() retourne la méthode de compression utilisée sur le dossier d'archives spécifié par zip_entry.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La méthode de compression.

Voir aussi



zip_entry_filesize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_filesizeLit la taille décompressée d'un dossier d'archives

Description

int zip_entry_filesize ( resource $zip_entry )

zip_entry_filesize() retourne la taille décompressée d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La taille décompressée du dossier d'archives.

Voir aussi



zip_entry_name

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_nameLit le nom d'un dossier d'archives

Description

string zip_entry_name ( resource $zip_entry )

zip_entry_name() retourne le nom d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

Le nom du dossier d'archives.

Voir aussi



zip_entry_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_openOuvre un dossier d'archives en lecture

Description

bool zip_entry_open ( resource $zip , resource $zip_entry [, string $mode ] )

zip_entry_open() ouvre un dossier dans un fichier ZIP pour lecture.

Liste de paramètres

zip

Une ressource valide retournée par la fonction zip_open().

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

mode

Toutes les méthodes spécifiées dans la documentation de la fonction fopen().

Note:

Actuellement, mode est ignoré et vaut toujours "rb". Cela est dû au fait que le support ZIP de PHP est uniquement en lecture seule.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Note:

Contrairement à fopen() et les autres fonctions de fichiers, la valeur retournée par zip_entry_open() indique uniquement le résultat de l'opération, et n'est pas nécessaire pour la lecture ou la fermeture du fichier de dossier d'archives.

Voir aussi



zip_entry_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_readLit le contenu d'un fichier dans un dossier

Description

string zip_entry_read ( resource $zip_entry [, int $length ] )

zip_entry_read() lit dans un dossier d'archives ouvert.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

length

Le nombre d'octets à retourner. Si ce paramètre est omis, la fonction tentera de lire 1024 octets.

Note:

Ceci doit être la taille non-compressée que vous voulez lire.

Valeurs de retour

Retourne les données lues ou FALSE si la fin du fichier est atteinte.

Voir aussi



zip_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_openOuvre une archive ZIP

Description

mixed zip_open ( string $filename )

zip_open() ouvre une nouvelle archive ZIP pour lecture.

Liste de paramètres

filename

Le nom du fichier de l'archive ZIP à ouvrir.

Valeurs de retour

Retourne une ressource à utiliser plus tard avec les fonctions zip_read() et zip_close(), ou bien retourne le numéro de l'erreur si le paramètre filename n'existe pas ou dans le cas d'une autre erreur.

Voir aussi



zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_readLit la prochaine entrée dans une archive ZIP

Description

mixed zip_read ( resource $zip )

zip_read() lit la prochaine entrée dans une archive ZIP.

Liste de paramètres

zip

Un fichier ZIP précédemment ouvert avec la fonction zip_open().

Valeurs de retour

Retourne une ressource de dossier d'archive, à utiliser plus tard avec les autres fonctions de la bibliothèque, FALSE s'il n'y a plus d'entrées à lire dans l'archive ZIP ou le numéro de l'erreur dans le cas d'une autre erreur.

Voir aussi


Sommaire




Compression Zlib


Introduction

Ce module vous permet de lire et d'écrire des fichiers compressés gzip (.gz), via la plupart des fonctions du système de fichiers qui fonctionnent avec les fichiers compressés gzip (ainsi qu'avec les fichiers non-compressés, mais sans sockets).

Note:

La version 4.0.4 introduit un gestionnaire de format pour les fichiers .gz ; ainsi, vous pouvez utiliser l'URL spécial zlib: pour accéder aux fichiers compressés en utilisant les fonctions normales f*() si vous préfixez le nom du fichier ou le nom du chemin par zlib: lorsque vous appelez la fonction fopen(). Cette fonctionnalité nécessite une bibliothèque C qui fournit la fonction fopencookie(). À ce jour, il semble que seule la bibliothèque GNU libc fournit cette fonctionnalité.

En PHP 4.3.0, zlib: a été modifié en compress.zlib:// afin d'éviter de confondre avec les noms de fichiers contenant les caractères ':'. La fonction fopencookie() n'est plus requise. Pour plus d'informations, reportez-vous à la section zlib://.



Installation/Configuration

Sommaire


Pré-requis

Ce module utilise les fonctions » zlib crées par Jean-loup Gailly et Mark Adler. Vous devez utiliser la bibliothèque zlib version >= 1.0.9 avec ce module.



Installation

Le support de Zlib dans PHP n'est pas activé par défaut. Vous devez compiler PHP avec l'option --with-zlib[=DIR] .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note: Le support intégré de zlib pour Windows est disponible depuis PHP 4.3.0.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

L'extension zlib offre l'option de compresser de manière transparente les pages PHP à la volée, si le navigateur du visiteur le supporte. Voici donc les trois options à utiliser dans le fichier de configuration php.ini.

Options de configuration Zlib
Nom Défaut Modifiable Historique
zlib.output_compression "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
zlib.output_compression_level "-1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
zlib.output_handler "" PHP_INI_ALL Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

zlib.output_compression booléen/entier

Active ou pas la compression transparente des pages. Si cette option est mise à "On" dans php.ini ou dans la configuration Apache, les pages sont compressées si le navigateur envoie un en-tête "Accept-Encoding: gzip" ou "deflate". Les en-têtes "Content-Encoding: gzip" (respectivement "deflate") et "Vary: Accept-Encoding" sont ajoutés dans la page envoyée au navigateur. En fonctionnement, il peut être défini uniquement avant tout affichage.

Cette option accepte aussi des valeurs entières au lieu des booléens, "On"/"Off", ce qui vous permet de configurer la taille du tampon de sortie (par défaut, il vaut 4ko).

Note:

output_handler doit être laissée à vide si cette option est activée. Sinon, vous devez utiliser zlib.output_handler.

zlib.output_compression_level entier

Niveau de compression utilisé pour la compression de sortie. La valeur doit être comprise entre 0 (aucune compression) et 9 (compression élevée). La valeur par défaut est -1, ce qui laissera le serveur décider du niveau de compression à utiliser.

zlib.output_handler chaîne de caractères

Vous ne pouvez pas spécifier de gestionnaire de sortie supplémentaire si zlib.output_compression est activée. Cette configuration est la même que output_handler mais dans un ordre différent.



Types de ressources

Cette extension définit une ressource de fichier, retournée par la fonction gzopen().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FORCE_GZIP (entier)
FORCE_DEFLATE (entier)


Exemples

Cet exemple ouvre un fichier temporaire et y écrit une chaîne de test, puis, affiche le contenu de ce fichier, deux fois.

Exemple #1 Exemple avec Zlib

<?php

$filename 
tempnam('/tmp''zlibtest') . '.gz';
echo 
"<html>\n<head></head>\n<body>\n<pre>\n";
$s "Seulement un test, test, test, test, test, test, test, test!\n";

// ouvre un fichier en écriture, avec une compression maximale
$zp gzopen($filename"w9");

// écrit une chaîne dans le fichier
gzwrite($zp$s);

// ferme le fichier
gzclose($zp);

// ouvre un fichier en lecture
$zp gzopen($filename"r");

// lit 3 caractères
echo gzread($zp3);

// lit tout le contenu et ferme le fichier
gzpassthru($zp);
gzclose($zp);

echo 
"\n";

// ouvre un fichier et affiche le contenu (pour la deuxième fois).
if (readgzfile($filename) != strlen($s)) {
        echo 
"Erreur avec les fonctions zlib !";
}
unlink($filename);
echo 
"</pre>\n</body>\n</html>\n";

?>


Fonctions Zlib


gzclose

(PHP 4, PHP 5)

gzcloseFerme un pointeur sur un fichier gz ouvert

Description

bool gzclose ( resource $zp )

gzclose() referme le fichier compressé zp.

Liste de paramètres

zp

Le pointeur de fichier compressé. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzclose()

<?php
$gz 
gzopen('somefile.gz','w9');
gzputs ($gz'Je suis ajouté à somefile.gz');
gzclose($gz);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip



gzcompress

(PHP 4 >= 4.0.1, PHP 5)

gzcompressCompresse une chaîne

Description

string gzcompress ( string $data [, int $level = -1 ] )

gzcompress() compresse la chaîne donnée en utilisant le format de données ZLIB.

Pour plus de détails sur l'algorithme, lisez le document » "ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Note:

Ce n'est pas la même chose que la compression gzip, qui inclut quelques en-têtes de données. Voir gzencode() pour la compression gzip.

Liste de paramètres

data

La donnée à compresser.

level

Le degré de compression. 0 signifie aucune compression, jusqu'à 9 pour une compression maximale.

Valeurs de retour

La chaîne compressée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzcompress()

<?php
$compressed 
gzcompress('Compresse moi'9);
echo 
$compressed;
?>

Voir aussi



gzdecode

(No version information available, might only be in SVN)

gzdecodeDécode une chaîne de caractères compressée gzip

Description

string gzdecode ( string $data [, int $length ] )

Cette fonction retourne une version décodée des données data.

Liste de paramètres

data

Les données à décoder, encodées par la fonction gzencode().

length

La longueur maximale de données à décoder.

Valeurs de retour

La chaîne de caractères décodée, ou FALSE si une erreur survient.

Voir aussi



gzdeflate

(PHP 4 >= 4.0.4, PHP 5)

gzdeflateCompresse une chaîne

Description

string gzdeflate ( string $data [, int $level = -1 ] )

gzdeflate() compresse la chaîne donnée en utilisant le format de données DEFLATE.

Pour plus de détails sur l'algorithme, lisez le document » "ZLIB Compressed Data Format Specification version 1.3" (RFC 1951).

Liste de paramètres

data

Les données à compresser.

level

Le degré de compression. 0 signifie aucune compression jusqu'à 9 pour une compression maximale. Si omis, le degré de compression par défaut sera celui de la bibliothèque zlib.

Valeurs de retour

La chaîne compressée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzdeflate()

<?php
$compressed 
gzdeflate('Compresse moi'9);
echo 
$compressed;
?>

Voir aussi



gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencodeCrée une chaîne compressée gzip

Description

string gzencode ( string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP ]] )

gzencode() retourne la version compressée de la chaîne data compatible avec la sortie du programme gzip.

Pour plus de détails sur l'algorithme, lisez le document » "ZLIB Compressed Data Format Specification version 4.3" (RFC 1952).

Liste de paramètres

data

Les données à encoder.

level

Le degré de compression. 0 signifie aucune compression, jusqu'à 9 pour une compression maximale. Si omis, le degré de compression par défaut sera celui de la bibliothèque zlib.

encoding_mode

Le mode d'encodage. Peut être FORCE_GZIP (par défaut) ou FORCE_DEFLATE.

Si vous utilisez FORCE_DEFLATE, vous récupérez une chaîne standard zlib (incluant les en-têtes zlib) après l'en-tête de fichier gzip mais sans la somme de vérification (checksum) crc32 finale.

Valeurs de retour

La chaîne encodée ou FALSE si une erreur survient.

Historique

Version Description
4.2 level a été ajouté. gzencode() n'avait que les paramètres data et encoding_mode (optionnel) avant.

Exemples

Les données résultantes contiennent les en-têtes appropriés ainsi que la structure de données pour faire un fichier .gz standard, e.g. :

Exemple #1 Création d'un fichier gzip

<?php
$data 
implode(""file("bigfile.txt"));
$gzdata gzencode($data9);
$fp fopen("bigfile.txt.gz""w");
fwrite($fp$gzdata);
fclose($fp);
?>

Voir aussi



gzeof

(PHP 4, PHP 5)

gzeofIndique si la fin d'un fichier (EOF) compressé est atteinte

Description

int gzeof ( resource $zp )

Indique si la fin d'un fichier compressé est atteinte, c'est à dire si le pointeur est à la position EOF.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Retourne TRUE si le pointeur de fichier gz est à la fin du fichier (EOF) ou si une erreur survient ; sinon, retourne FALSE.

Exemples

Exemple #1 Exemple avec gzeof()

<?php
$gz 
gzopen('somefile.gz''r');
while (!
gzeof($gz)) {
  echo 
gzgetc($gz);
}
gzclose($gz);
?>



gzfile

(PHP 4, PHP 5)

gzfileLit la totalité d'un fichier compressé

Description

array gzfile ( string $filename [, int $use_include_path = 0 ] )

gzfile() est identique à la fonction readgzfile(), excepté qu'elle retourne le fichier dans un tableau.

Liste de paramètres

filename

Le nom du fichier.

use_include_path

Vous pouvez définir ce paramètre optionnel à 1, si vous voulez chercher le fichier également dans l'include_path.

Valeurs de retour

Un tableau contenant le fichier, une ligne par cellule.

Exemples

Exemple #1 Exemple avec gzfile()

<?php
$lines 
gzfile('somefile.gz');
foreach (
$lines as $line) {
    echo 
$line;
}
?>

Voir aussi



gzgetc

(PHP 4, PHP 5)

gzgetcLit un caractère dans un fichier compressé

Description

string gzgetc ( resource $zp )

gzgetc() retourne une chaîne contenant un seul caractère (décompressé) lu depuis le pointeur de fichier gz.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Le caractère décompressé ou FALSE si le pointeur est à la fin du fichier, position EOF (contrairement à la fonction gzeof()).

Exemples

Exemple #1 Exemple avec gzgetc()

<?php
$gz 
gzopen('somefile.gz''r');
while (!
gzeof($gz)) {
  echo 
gzgetc($gz);
}
gzclose($gz);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgets() - Lit une ligne dans un fichier compressé



gzgets

(PHP 4, PHP 5)

gzgetsLit une ligne dans un fichier compressé

Description

string gzgets ( resource $zp , int $length )

gzgets() retourne une chaîne non compressée, de taille maximale length - 1 octets, lue dans le fichier représenté par zp. La lecture s'arrête lorsque length - 1 octets ont été lus, ou que la fonction a rencontré une nouvelle ligne ou la fin du fichier (le premier des trois qui survient).

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

La longueur de données à lire.

Valeurs de retour

La chaîne décompressée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzgets()

<?php
$handle 
gzopen('somefile.gz''r');
while (!
gzeof($handle)) {
   
$buffer gzgets($handle4096);
   echo 
$buffer;
}
gzclose($handle);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgetc() - Lit un caractère dans un fichier compressé
  • gzwrite() - Écrit dans un fichier compressé gzip



gzgetss

(PHP 4, PHP 5)

gzgetss Lit une ligne dans un fichier compressé, et supprime les balises HTML

Description

string gzgetss ( resource $zp , int $length [, string $allowable_tags ] )

gzgetss() est identique à la fonction gzgets(), excepté que gzgetss() tente de supprimer toutes les balises HTML et PHP du texte lu.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

La longueur des données à récupérer.

allowable_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises à ne pas supprimer.

Valeurs de retour

La chaîne décompressée et nettoyée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzgetss()

<?php
$handle 
gzopen('somefile.gz''r');
while (!
gzeof($handle)) {
   
$buffer gzgetss($handle4096);
   echo 
$buffer;
}
gzclose($handle);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgets() - Lit une ligne dans un fichier compressé
  • strip_tags() - Supprime les balises HTML et PHP d'une chaîne



gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflateDécompresse une chaîne

Description

string gzinflate ( string $data [, int $length = 0 ] )

gzinflate() décompresse une chaîne.

Liste de paramètres

data

Les données compressées avec la fonction gzdeflate().

length

La longueur maximale de données à décoder.

Valeurs de retour

Les données originales décompressées ou FALSE si une erreur survient.

gzinflate() retourne une erreur si la chaîne décompressée est plus de 32768 fois plus longue que la chaîne compressée data ou plus grande que la taille de length octets, passé comme paramètre optionnel.

Exemples

Exemple #1 Exemple avec gzinflate()

<?php
$compressed   
gzdeflate('Compresse moi'9);
$uncompressed gzinflate($compressed);
echo 
$uncompressed;
?>

Voir aussi



gzopen

(PHP 4, PHP 5)

gzopenOuvre un fichier compressé avec gzip

Description

resource gzopen ( string $filename , string $mode [, int $use_include_path = 0 ] )

gzopen() ouvre un fichier compressé avec gzip pour y écrire ou y lire des données.

gzopen() peut être utilisée pour lire un fichier qui n'est pas dans un format gzip ; dans ce cas, gzread() lira directement le fichier sans décompression.

Liste de paramètres

filename

Le nom du fichier.

mode

Comme dans la fonction fopen() (rb ou wb) mais peut également inclure un degré de compression (wb9) ou une stratégie : f pour les données filtrées comme wb6f, h pour Huffman only compression comme wb1h. (Lisez la description de deflateInit2 dans le fichier zlib.h pour plus d'informations sur la stratégie des paramètres.)

use_include_path

Vous pouvez définir ce paramètre optionnel à 1, si vous voulez chercher un fichier également dans l'include_path.

Valeurs de retour

Retourne un pointeur de fichier vers le fichier ouvert, ainsi, la lecture depuis ce pointeur de fichier sera des données décompressées et ce que vous y écrirez, sera compressé.

Si l'ouverture échoue, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gzopen()

<?php
$fp 
gzopen("/tmp/file.gz""r");
?>

Voir aussi

  • gzclose() - Ferme un pointeur sur un fichier gz ouvert



gzpassthru

(PHP 4, PHP 5)

gzpassthru Affiche toutes les données qui restent dans un pointeur gz

Description

int gzpassthru ( resource $zp )

gzpassthru() lit les données restantes du fichier zp jusqu'à la fin (position EOF), puis affiche le résultat (décompressé).

Note:

Vous pourriez avoir besoin d'appeler la fonction gzrewind() pour réinitialiser le pointeur de fichier au début du fichier si vous avez déjà écrit des données dedans.

Astuce

Si vous voulez uniquement afficher le contenu d'un fichier, sans le modifier auparavant ou sans déplacer le pointeur à une position particulière, vous devriez utiliser la fonction readgzfile(), ce qui vous évitera d'appeler la fonction gzopen().

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Le nombre de caractères décompressés lus depuis gz et affiché ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzpassthru()

<?php
$fp 
gzopen('file.gz''r');
gzpassthru($fp);
gzclose($fp);
?>



gzputs

(PHP 4, PHP 5)

gzputsAlias de gzwrite()

Description

Cette fonction est un alias de : gzwrite().



gzread

(PHP 4, PHP 5)

gzreadLecture de fichier compressé binaire

Description

string gzread ( resource $zp , int $length )

gzread() lit jusqu'à length octets dans le fichier compressé gzip, représenté par zp. La lecture s'arrête lorsque length octets (décompressés) ont été lus, ou que la fin du fichier a été atteinte (position EOF).

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

Le nombre d'octets lus.

Valeurs de retour

Les données qui ont été lues.

Exemples

Exemple #1 Exemple avec gzread()

<?php
// récupère le contenu d'un fichier gz dans une chaîne
$filename "/usr/local/something.txt.gz";
$zd gzopen($filename"r");
$contents gzread($zd10000);
gzclose($zd);
?>

Voir aussi

  • gzwrite() - Écrit dans un fichier compressé gzip
  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgets() - Lit une ligne dans un fichier compressé
  • gzgetss() - Lit une ligne dans un fichier compressé, et supprime les balises HTML
  • gzfile() - Lit la totalité d'un fichier compressé
  • gzpassthru() - Affiche toutes les données qui restent dans un pointeur gz



gzrewind

(PHP 4, PHP 5)

gzrewindReplace le pointeur au début du fichier

Description

bool gzrewind ( resource $zp )

gzrewind() replace le pointeur de position du fichier zp au début de celui-ci.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gzseek() - Déplace le pointeur de lecture
  • gztell() - Lit la position courante du pointeur de lecture



gzseek

(PHP 4, PHP 5)

gzseekDéplace le pointeur de lecture

Description

int gzseek ( resource $zp , int $offset [, int $whence = SEEK_SET ] )

gzseek() place le pointeur de lecture du fichier zp à la position offset, comptée en octets depuis le début du fichier. C'est l'équivalent de la fonction gzseek(zp, offset, SEEK_SET), du langage C.

Si le fichier est ouvert en lecture, cette fonction est alors émulée, et se révèle extrêmement lente. Si le fichier est ouvert en écriture, seuls les déplacements vers l'avant sont supportés : gzseek() compresse alors une série de zéros jusqu'à la nouvelle position.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

offset

La position désirée.

whence

Les valeurs de whence sont :

  • SEEK_SET : ramène la position à l'offset.
  • SEEK_CUR : ramène la position à la position actuelle plus offset.

Si whence n'est pas spécifié, il vaut par défaut SEEK_SET.

Valeurs de retour

0 en cas de réussite, -1 sinon. Notez que placer le pointeur au delà de la fin du fichier n'est pas considéré comme une erreur.

Exemples

Exemple #1 Exemple avec gzseek()

<?php
$gz 
gzopen('somefile.gz''r');
gzseek($gz,2);
echo 
gzgetc($gz);
gzclose($gz);
?>

Voir aussi

  • gztell() - Lit la position courante du pointeur de lecture
  • gzrewind() - Replace le pointeur au début du fichier



gztell

(PHP 4, PHP 5)

gztellLit la position courante du pointeur de lecture

Description

int gztell ( resource $zp )

gztell() retourne la position du pointeur de lecture dans le fichier zp.

Liste de paramètres

zp

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

La position du pointeur de fichier ou FALSE si une erreur survient.

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzseek() - Déplace le pointeur de lecture
  • gzrewind() - Replace le pointeur au début du fichier



gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompressDécompresse une chaîne compressée

Description

string gzuncompress ( string $data [, int $length = 0 ] )

gzuncompress() décompresse une chaîne compressée.

Liste de paramètres

data

Les données compressées par gzcompress().

length

La longueur maximale de données à décoder.

Valeurs de retour

Les données originales décompressées ou FALSE si une erreur survient.

gzuncompress() retourne une erreur si la chaîne décompressée est 32768 fois plus longue que la chaîne compressée data ou plus grande que la taille de length octets, passé comme paramètre optionnel.

Exemples

Exemple #1 Exemple avec gzuncompress()

<?php
$compressed   
gzcompress('Compresse moi'9);
$uncompressed gzuncompress($compressed);
echo 
$uncompressed;
?>

Voir aussi



gzwrite

(PHP 4, PHP 5)

gzwriteÉcrit dans un fichier compressé gzip

Description

int gzwrite ( resource $zp , string $string [, int $length ] )

gzwrite() écrit le contenu de la chaîne string dans le fichier compressé zp.

Liste de paramètres

zp

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

string

La chaîne à écrire.

length

Le nombre d'octets décompressés à écrire. Si fournie, l'écriture s'arrêtera après length (décompressé) octets écrits ou si la fin de la chaîne string est atteinte ; celui qui survient le premier.

Note:

Notez que si l'argument length est donné, alors l'option de configuration magic_quotes_runtime sera ignoré et aucun slash ne sera supprimé de la chaîne string.

Valeurs de retour

Retourne le nombre d'octets (décompressés) écrits dans le fichier gz donné.

Exemples

Exemple #1 Exemple avec gzwrite()

<?php
$string 
'Quelques informations à compresser';
$gz gzopen('somefile.gz','w9');
gzwrite($gz$string);
gzclose($gz);
?>

Voir aussi

  • gzread() - Lecture de fichier compressé binaire
  • gzopen() - Ouvre un fichier compressé avec gzip



readgzfile

(PHP 4, PHP 5)

readgzfileLit tout le fichier compressé

Description

int readgzfile ( string $filename [, int $use_include_path = 0 ] )

readgzfile() lit le fichier filename, le décompresse et affiche le résultat.

readgzfile() peut aussi servir à lire un fichier qui n'est pas compressé : dans ce cas, readgzfile() va lire le fichier sans le décompresser.

Liste de paramètres

filename

Le nom du fichier. Ce fichier devra être ouvert depuis le système de fichiers et son contenu sera affiché.

use_include_path

Vous pouvez définir ce paramètre optionnel à 1, si vous voulez chercher le fichier également dans l'include_path.

Valeurs de retour

Retourne le nombre d'octets (décompressés) lus depuis le fichier. Si une erreur survient, FALSE est retourné et si la fonction n'a pas été appelée de cette façon : @readgzfile, un message d'erreur sera affiché.

Voir aussi

  • gzpassthru() - Affiche toutes les données qui restent dans un pointeur gz
  • gzfile() - Lit la totalité d'un fichier compressé
  • gzopen() - Ouvre un fichier compressé avec gzip



zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5)

zlib_get_coding_typeRetourne la méthode de compression utilisée avec Gzip

Description

string zlib_get_coding_type ( void )

zlib_get_coding_type() retourne la méthode de compression utilisée avec Gzip.

Valeurs de retour

Les valeurs possibles de retour sont gzip, deflate ou FALSE.

Voir aussi


Sommaire

  • gzclose — Ferme un pointeur sur un fichier gz ouvert
  • gzcompress — Compresse une chaîne
  • gzdecode — Décode une chaîne de caractères compressée gzip
  • gzdeflate — Compresse une chaîne
  • gzencode — Crée une chaîne compressée gzip
  • gzeof — Indique si la fin d'un fichier (EOF) compressé est atteinte
  • gzfile — Lit la totalité d'un fichier compressé
  • gzgetc — Lit un caractère dans un fichier compressé
  • gzgets — Lit une ligne dans un fichier compressé
  • gzgetss — Lit une ligne dans un fichier compressé, et supprime les balises HTML
  • gzinflate — Décompresse une chaîne
  • gzopen — Ouvre un fichier compressé avec gzip
  • gzpassthru — Affiche toutes les données qui restent dans un pointeur gz
  • gzputs — Alias de gzwrite
  • gzread — Lecture de fichier compressé binaire
  • gzrewind — Replace le pointeur au début du fichier
  • gzseek — Déplace le pointeur de lecture
  • gztell — Lit la position courante du pointeur de lecture
  • gzuncompress — Décompresse une chaîne compressée
  • gzwrite — Écrit dans un fichier compressé gzip
  • readgzfile — Lit tout le fichier compressé
  • zlib_get_coding_type — Retourne la méthode de compression utilisée avec Gzip




Traitement des cartes de crédit


Paiement MCVE (Monetra)


Introduction

Ces fonctions servent d'interface avec l'API MCVE (Monetra, libmonetra, auparavant libmcve), qui vous permet de travailler directement avec MCVE/Monetra à partir de vos scripts PHP. MCVE/Monetra est la solution de Main Street Softworks pour les traitements de carte de crédit/débit/cadeau sous Linux/Unix/MacOSX/Windows (» http://www.mainstreetsoftworks.com/). Elle vous permet d'interroger l'établissement bancaire gérant la carte de crédit à partir de votre machine *nix, de votre modem ou de votre connexion Internet (en ne passant pas par des services supplémentaires comme Authorize.Net ou Pay Flow Pro). En utilisant le module MCVE/Monetra pour PHP, vous pouvez manipuler les cartes de crédit directement dans vos scripts PHP via l'API MCVE/Monetra. La documentation ci-dessous en explique le fonctionnement.

Note:

MCVE/Monetra remplace la solution CCVS de RedHat. Un contrat a été passé avec RedHat fin 2001 pour migrer la clientèle existante vers la plate-forme MCVE.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

La bibliothèque LibMonetra (formellement, libmcve).



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mcve.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Si vous installez sans spécifier le chemin d'accès de votre installation de libmonetra, PHP tentera de rechercher dans l'emplacement d'installation par défaut de LibMonetra (/usr/local). Si Monetra (MCVE) est dans un emplacement non standard, exécutez la configuration avec : --with-mcve=$mcve_path , où $mcve_path est le chemin menant à votre installation de MCVE/Monetra. Veuillez noter que le support MCVE/Monetra requiert que $mcve_path/lib et $mcve_path/include existent et incluent mcve.h ou monetra.h dans le répertoire include et libmcve.so et/ou libmcve.a et/ou libmonetra.so et/ou libmonetra.a dans le répertoire lib.

Comme MCVE/Monetra vient avec une véritable séparation client/serveur, il n'y a pas de prérequis supplémentaires pour compiler PHP avec le support MCVE. Pour tester votre extension MCVE/Monetra avec PHP, connectez-vous au site testbox.monetra.com sur le port 8333 pour le mode IP, ou le port 8444 pour le mode SSL en utilisant l'API PHP MCVE/Monetra. Utilisez 'vitale' comme nom d'utilisateur et 'test' comme mot de passe. Plus de détails sur ce système de test sont disponibles sur » http://www.mainstreetsoftworks.com/.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit une resource MVCE_CONN retournée par m_initconn().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

M_PENDING (entier)
M_DONE (entier)
M_ERROR (entier)
M_FAIL (entier)
M_SUCCESS (entier)


Fonctions MCVE

Voir aussi

De la documentation supplémentaire sur l'API PHP MCVE/Monetra peut être trouvée sur » http://www.mainstreetsoftworks.com/documentation.html. La documentation de Main Street est complète et devrait être la référence pour les fonctions.


m_checkstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_checkstatusVérifie si la transaction a été complétée

Description

int m_checkstatus ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_completeauthorizations

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_completeauthorizationsNombre d'autorisations complètes en attente, retourne un tableau de leur identifiant

Description

int m_completeauthorizations ( resource $conn , int &$array )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

array

Valeurs de retour



m_connect

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connectÉtablit une connexion à MCVE

Description

int m_connect ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour



m_connectionerror

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connectionerrorObtient une représentation textuelle de la cause de l'échec de connexion

Description

string m_connectionerror ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour



m_deletetrans

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_deletetransSupprime la transaction spécifiée de la structure MCVE_CONN

Description

bool m_deletetrans ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_destroyconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyconnDétruit la connexion et la structure MCVE_CONN

Description

bool m_destroyconn ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • m_initconn() - Crée et initialise une structure MCVE_CONN



m_destroyengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyengineLibère la mémoire associée avec la connectivité IP/SSL

Description

void m_destroyengine ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.



m_getcell

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcellRécupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne

Description

string m_getcell ( resource $conn , int $identifier , string $column , int $row )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column

row

Valeurs de retour



m_getcellbynum

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcellbynumRécupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne

Description

string m_getcellbynum ( resource $conn , int $identifier , int $column , int $row )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column

row

Valeurs de retour



m_getcommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcommadelimitedRécupère les données brutes délimitées par virgule retournées par MCVE

Description

string m_getcommadelimited ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_getheader

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getheaderRécupère le nom de la colonne dans la réponse délimitée par virgule

Description

string m_getheader ( resource $conn , int $identifier , int $column_num )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column_num

Valeurs de retour



m_initconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initconnCrée et initialise une structure MCVE_CONN

Description

resource m_initconn ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Retourne une ressource MCVE_CONN.

Voir aussi



m_initengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initengineApprête le client pour une communication IP/SSL

Description

int m_initengine ( string $location )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

location

Valeurs de retour



m_iscommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_iscommadelimitedVérifie si la réponse est délimitée par virgule

Description

int m_iscommadelimited ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_maxconntimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_maxconntimeoutLe temps maximal pendant lequel l'API tentera une connexion à MCVE

Description

bool m_maxconntimeout ( resource $conn , int $secs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

secs

Valeurs de retour



m_monitor

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_monitorEffectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant

Description

int m_monitor ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour



m_numcolumns

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numcolumnsNombre de colonnes retournées dans une réponse délimitée par virgule

Description

int m_numcolumns ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_numrows

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numrowsNombre de lignes retournées dans une réponse délimitée par virgule

Description

int m_numrows ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_parsecommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_parsecommadelimitedAnalyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite

Description

int m_parsecommadelimited ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_responsekeys

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_responsekeysRetourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction

Description

array m_responsekeys ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_responseparam

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_responseparamRécupère un paramètre spécial de réponse

Description

string m_responseparam ( resource $conn , int $identifier , string $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

key

Valeurs de retour



m_returnstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_returnstatusVérifie si la transaction fut complétée correctement

Description

int m_returnstatus ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_setblocking

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setblockingSpécifie le mode bloquant/non-bloquant pour une connexion

Description

int m_setblocking ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour



m_setdropfile

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setdropfileSpécifie la méthode de connexion à Drop-File

Description

int m_setdropfile ( resource $conn , string $directory )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

directory

Valeurs de retour



m_setip

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setipSpécifie la méthode de connexion à IP

Description

int m_setip ( resource $conn , string $host , int $port )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

host

port

Valeurs de retour



m_setssl_cafile

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_setssl_cafileSpécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur

Description

int m_setssl_cafile ( resource $conn , string $cafile )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

cafile

Valeurs de retour



m_setssl_files

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setssl_filesSpécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat

Description

int m_setssl_files ( resource $conn , string $sslkeyfile , string $sslcertfile )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

sslkeyfile

sslcertfile

Valeurs de retour



m_setssl

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setsslSpécifie la méthode de connexion à SSL

Description

int m_setssl ( resource $conn , string $host , int $port )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

host

port

Valeurs de retour



m_settimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_settimeoutSpécifie le temps maximal d'une transaction (par transaction)

Description

int m_settimeout ( resource $conn , int $seconds )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

seconds

Valeurs de retour



m_sslcert_gen_hash

(PECL mcve >= 5.2.0)

m_sslcert_gen_hashGénère une clé de hachage pour les vérifications de certificat de client SSL

Description

string m_sslcert_gen_hash ( string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Valeurs de retour



m_transactionssent

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transactionssentVérifie si le tampon de sortie est vide

Description

int m_transactionssent ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour



m_transinqueue

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transinqueueNombre de transactions dans la file de client

Description

int m_transinqueue ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour



m_transkeyval

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_transkeyvalAjoute une paire clé/valeur à une transaction. Remplace transparam() obsolète

Description

int m_transkeyval ( resource $conn , int $identifier , string $key , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

key

value

Valeurs de retour



m_transnew

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transnewDémarre une nouvelle transaction

Description

int m_transnew ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour



m_transsend

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transsendFinalise et envoie la transaction

Description

int m_transsend ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour



m_uwait

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_uwaitAttend x micro secondes

Description

int m_uwait ( int $microsecs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

microsecs

Valeurs de retour



m_validateidentifier

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_validateidentifierValide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni

Description

int m_validateidentifier ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour



m_verifyconnection

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifyconnectionEffectue un ping ou non lors de la connexion pour la vérifier

Description

bool m_verifyconnection ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour



m_verifysslcert

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifysslcertActive ou non la vérification du certificat SSL du serveur

Description

bool m_verifysslcert ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour


Sommaire

  • m_checkstatus — Vérifie si la transaction a été complétée
  • m_completeauthorizations — Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant
  • m_connect — Établit une connexion à MCVE
  • m_connectionerror — Obtient une représentation textuelle de la cause de l'échec de connexion
  • m_deletetrans — Supprime la transaction spécifiée de la structure MCVE_CONN
  • m_destroyconn — Détruit la connexion et la structure MCVE_CONN
  • m_destroyengine — Libère la mémoire associée avec la connectivité IP/SSL
  • m_getcell — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne
  • m_getcellbynum — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne
  • m_getcommadelimited — Récupère les données brutes délimitées par virgule retournées par MCVE
  • m_getheader — Récupère le nom de la colonne dans la réponse délimitée par virgule
  • m_initconn — Crée et initialise une structure MCVE_CONN
  • m_initengine — Apprête le client pour une communication IP/SSL
  • m_iscommadelimited — Vérifie si la réponse est délimitée par virgule
  • m_maxconntimeout — Le temps maximal pendant lequel l'API tentera une connexion à MCVE
  • m_monitor — Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant
  • m_numcolumns — Nombre de colonnes retournées dans une réponse délimitée par virgule
  • m_numrows — Nombre de lignes retournées dans une réponse délimitée par virgule
  • m_parsecommadelimited — Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite
  • m_responsekeys — Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction
  • m_responseparam — Récupère un paramètre spécial de réponse
  • m_returnstatus — Vérifie si la transaction fut complétée correctement
  • m_setblocking — Spécifie le mode bloquant/non-bloquant pour une connexion
  • m_setdropfile — Spécifie la méthode de connexion à Drop-File
  • m_setip — Spécifie la méthode de connexion à IP
  • m_setssl_cafile — Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur
  • m_setssl_files — Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat
  • m_setssl — Spécifie la méthode de connexion à SSL
  • m_settimeout — Spécifie le temps maximal d'une transaction (par transaction)
  • m_sslcert_gen_hash — Génère une clé de hachage pour les vérifications de certificat de client SSL
  • m_transactionssent — Vérifie si le tampon de sortie est vide
  • m_transinqueue — Nombre de transactions dans la file de client
  • m_transkeyval — Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète
  • m_transnew — Démarre une nouvelle transaction
  • m_transsend — Finalise et envoie la transaction
  • m_uwait — Attend x micro secondes
  • m_validateidentifier — Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni
  • m_verifyconnection — Effectue un ping ou non lors de la connexion pour la vérifier
  • m_verifysslcert — Active ou non la vérification du certificat SSL du serveur

  • Introduction
  • Installation/Configuration
  • Constantes pré-définies
  • Fonctions MCVE
    • m_checkstatus — Vérifie si la transaction a été complétée
    • m_completeauthorizations — Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant
    • m_connect — Établit une connexion à MCVE
    • m_connectionerror — Obtient une représentation textuelle de la cause de l'échec de connexion
    • m_deletetrans — Supprime la transaction spécifiée de la structure MCVE_CONN
    • m_destroyconn — Détruit la connexion et la structure MCVE_CONN
    • m_destroyengine — Libère la mémoire associée avec la connectivité IP/SSL
    • m_getcell — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne
    • m_getcellbynum — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne
    • m_getcommadelimited — Récupère les données brutes délimitées par virgule retournées par MCVE
    • m_getheader — Récupère le nom de la colonne dans la réponse délimitée par virgule
    • m_initconn — Crée et initialise une structure MCVE_CONN
    • m_initengine — Apprête le client pour une communication IP/SSL
    • m_iscommadelimited — Vérifie si la réponse est délimitée par virgule
    • m_maxconntimeout — Le temps maximal pendant lequel l'API tentera une connexion à MCVE
    • m_monitor — Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant
    • m_numcolumns — Nombre de colonnes retournées dans une réponse délimitée par virgule
    • m_numrows — Nombre de lignes retournées dans une réponse délimitée par virgule
    • m_parsecommadelimited — Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite
    • m_responsekeys — Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction
    • m_responseparam — Récupère un paramètre spécial de réponse
    • m_returnstatus — Vérifie si la transaction fut complétée correctement
    • m_setblocking — Spécifie le mode bloquant/non-bloquant pour une connexion
    • m_setdropfile — Spécifie la méthode de connexion à Drop-File
    • m_setip — Spécifie la méthode de connexion à IP
    • m_setssl_cafile — Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur
    • m_setssl_files — Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat
    • m_setssl — Spécifie la méthode de connexion à SSL
    • m_settimeout — Spécifie le temps maximal d'une transaction (par transaction)
    • m_sslcert_gen_hash — Génère une clé de hachage pour les vérifications de certificat de client SSL
    • m_transactionssent — Vérifie si le tampon de sortie est vide
    • m_transinqueue — Nombre de transactions dans la file de client
    • m_transkeyval — Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète
    • m_transnew — Démarre une nouvelle transaction
    • m_transsend — Finalise et envoie la transaction
    • m_uwait — Attend x micro secondes
    • m_validateidentifier — Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni
    • m_verifyconnection — Effectue un ping ou non lors de la connexion pour la vérifier
    • m_verifysslcert — Active ou non la vérification du certificat SSL du serveur


Système de paiement SPPLUS


Introduction

Cette extension vous permet d'utiliser le » système de paiement SPPLUS de la Caisse d'Épargne (une banque française).

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Reportez-vous aux fichiers README se trouvant dans le paquet kit_php pour plus de détails concernant la configuration.



Installation/Configuration

Sommaire


Pré-requis

Note: Vous devez avoir d'installer au moins PHP 4.1.0 et SPPLUS v.3

Note: Vous devriez avoir besoin de récupérer le nouveau kit_php pour spplus. Contactez le mainteneur si vous n'arrivez pas à le récupérer.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/spplus.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note:

PHP 4.3.0 ou supérieur est nécessaire pour que la compression fonctionne.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions SPPLUS


calcul_hmac

(PECL spplus >= 1.0.0)

calcul_hmacObtient la clé hmac (nécessite 8 arguments)

Description

string calcul_hmac ( string $clent , string $siretcode , string $price , string $reference , string $validity , string $taxation , string $devise , string $language )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



calculhmac

(PECL spplus >= 1.0.0)

calculhmacObtient la clé hmac (nécessite 2 arguments)

Description

string calculhmac ( string $clent , string $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



nthmac

(PECL spplus >= 1.0.0)

nthmacObtient la clé nthmac (nécessite 2 arguments)

Description

string nthmac ( string $clent , string $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



signeurlpaiement

(PECL spplus >= 1.0.0)

signeurlpaiementObtient l'URL de paiement (nécessite 2 arguments)

Description

string nthmac ( string $clent , string $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Sommaire

  • calcul_hmac — Obtient la clé hmac (nécessite 8 arguments)
  • calculhmac — Obtient la clé hmac (nécessite 2 arguments)
  • nthmac — Obtient la clé nthmac (nécessite 2 arguments)
  • signeurlpaiement — Obtient l'URL de paiement (nécessite 2 arguments)




Extensions sur la cryptographie


Cracklib


Introduction

Ces fonctions vous permettent d'utiliser la bibliothèque CrackLib afin de tester la solidité d'un mot de passe. Cette solidité est testée au regard de la longueur du mot de passe, de l'utilisation de majuscule/minuscule, et en utilisant le dictionnaire CrackLib. CrackLib fournit également des messages de diagnostique très utiles qui vous aideront dans la construction d'un mot de passe solide.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.



Installation/Configuration

Sommaire


Pré-requis

Pour plus d'informations sur CrackLib, consultez la page suivante : » http://sourceforge.net/projects/cracklib.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/crack.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Crack en utilisant l'option de configuration --with-crack[=DIR] .

Les utilisateurs de Windows doivent activer la bibliothèque php_crack.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour crack
Nom Défaut Modifiable Historique
crack.default_dictionary NULL PHP_INI_PERDIR PHP_INI_SYSTEM en crack <= 0.2. Disponible depuis PHP 4.0.5. Supprimé depuis PHP 5.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

L'extension CrackLib définit une ressource de dictionnaire, retournée par la fonction crack_opendict().




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Cet exemple montre comment ouvrir un dictionnaire CrackLib, tester un mot de passe, récupérer les messages de diagnostique, et enfin, fermer le dictionnaire.

Exemple #1 Exemple avec CrackLib

<?php
// Ouvre un dictionnaire CrackLib
$dictionary crack_opendict('/usr/local/lib/pw_dict')
     or die(
'Impossible d\'ouvrir le dictionnaire CrackLib');

// Effectue une vérification de mot de passe
$check crack_check($dictionary'gx9A2s0x');

// Récupère les messages
$diag crack_getlastmessage();
echo 
$diag// 'strong password'

// Ferme le dictionnaire
crack_closedict($dictionary);
?>

Note:

Si crack_check() retourne TRUE, crack_getlastmessage() devrait retourner 'strong password'.



Fonctions Crack


crack_check

(PECL crack >= 0.1)

crack_checkEffectue une vérification de mot de passe

Description

bool crack_check ( resource $dictionary , string $password )
bool crack_check ( string $password )

crack_check() effectue une vérification du mot de passe donné sur le dictionnaire spécifié.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dictionary

Le dictionnaire. Si aucun n'est spécifié, le dernier dictionnaire ouvert sera utilisé.

password

Le mot de passe à tester.

Valeurs de retour

Retourne TRUE si password est solide, ou FALSE sinon.



crack_closedict

(PECL crack >= 0.1)

crack_closedictFerme un dictionnaire CrackLib

Description

bool crack_closedict ([ resource $dictionary ] )

crack_closedict() ferme le dictionnaire représenté par l'identifiant dictionary.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dictionary

Le dictionnaire à fermer. Si aucun n'est spécifié, le dictionnaire courant sera fermé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



crack_getlastmessage

(PECL crack >= 0.1)

crack_getlastmessageRetourne le message de diagnostic

Description

string crack_getlastmessage ( void )

crack_getlastmessage() retourne le message de diagnostic depuis la dernière vérification.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Le message depuis la dernière vérification ou FALSE s'il n'y eu aucune vérification.

Le message retourné est l'un des suivants :

  • it's WAY too short (Le mot de passe est beaucoup trop court)
  • it is too short (Le mot de passe est trop court)
  • it does not contain enough DIFFERENT characters (Le mot de passe ne contient pas assez de caractères)
  • it is all whitespace (Le mot de passe ne contient que des mots de passe)
  • it is too simplistic/systematic (Le mot de passe est trop simple)
  • it looks like a National Insurance number. (Le mot de passe ressemble à un numéro d'assurance nationale.)
  • it is based on a dictionary word (Le mot de passe est basé sur un mot du dictionnaire)
  • it is based on a (reversed) dictionary word (Le mot de passe est basé sur un mot inversé du dictionnaire)
  • strong password (Le mot de passe est solide)

Voir aussi



crack_opendict

(PECL crack >= 0.1)

crack_opendictOuvre un nouveau dictionnaire CrackLib

Description

resource crack_opendict ( string $dictionary )

crack_opendict() ouvre le dictionnaire CrackLib dictionary pour être utilisé avec la fonction crack_check().

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Un seul dictionnaire peut être ouvert à la fois.

Liste de paramètres

dictionary

Le chemin vers le dictionnaire CrackLib.

Valeurs de retour

Retourne un identifiant de ressource de dictionnaire en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




HASH


Introduction

Moteur d'empreinte numérique. Permet le traitement direct ou incrémental de message de grandeur arbitraire en utilisant une variété d'algorithmes.



Installation/Configuration

Sommaire


Pré-requis

L'extension Hash ne nécessite aucune bibliothèque externe et est activée par défaut depuis PHP 5.1.2. Elle doit être explicitement désactivée au moment de la compilation avec l'option --disable-hash. Pour les anciennes versions de PHP, vous devez installer le » module PECL pour utiliser l'extension Hash.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit une ressource Hash de contexte, retournée par la fonction hash_init().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

HASH_HMAC (entier)
Drapeau optionnel pour hash_init(). Indique que l'algorithme de clé HMAC doit être appliqué au contexte courant de hachage.


Fonctions Hash


hash_algos

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_algosRetourne une liste des algorithmes de hachage enregistrés

Description

array hash_algos ( void )

Valeurs de retour

Retourne un tableau indexé numériquement contenant la liste des algorithmes de hachage supportés.

Exemples

Exemple #1 Exemple avec hash_algos()

Dans PHP 5.1.2, hash_algos() retournera la liste d'algorithmes suivante :

<?php
print_r
(hash_algos());
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => md4
    [1] => md5
    [2] => sha1
    [3] => sha256
    [4] => sha384
    [5] => sha512
    [6] => ripemd128
    [7] => ripemd160
    [8] => whirlpool
    [9] => tiger128,3
    [10] => tiger160,3
    [11] => tiger192,3
    [12] => tiger128,4
    [13] => tiger160,4
    [14] => tiger192,4
    [15] => snefru
    [16] => gost
    [17] => adler32
    [18] => crc32
    [19] => crc32b
    [20] => haval128,3
    [21] => haval160,3
    [22] => haval192,3
    [23] => haval224,3
    [24] => haval256,3
    [25] => haval128,4
    [26] => haval160,4
    [27] => haval192,4
    [28] => haval224,4
    [29] => haval256,4
    [30] => haval128,5
    [31] => haval160,5
    [32] => haval192,5
    [33] => haval224,5
    [34] => haval256,5
)



hash_copy

(PHP 5 >= 5.3.0)

hash_copyCopie un contexte de hashage

Description

resource hash_copy ( resource $context )

Liste de paramètres

context

Contexte de hashage, retourné par la fonction hash_init().

Valeurs de retour

Retourne une copie du contexte de hashage.

Exemples

Exemple #1 Exemple avec hash_copy()

<?php
$context 
hash_init("md5");
hash_update($context"data");

/* copie le contexte afin de pouvoir continuer à l'utiliser */
$copy_context hash_copy($context);

echo 
hash_final($context), "\n";

hash_update($copy_context"data");
echo 
hash_final($copy_context), "\n";
?>

L'exemple ci-dessus va afficher :

8d777f385d3dfec8815d20f7496026dc
511ae0b1c13f95e5f08f1a0dd3da3d93



hash_file

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_fileGénère une valeur de hachage en utilisant le contenu d'un fichier donné

Description

string hash_file ( string $algo , string $filename [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('exemple.txt''Le rapide goupil brun sauta par dessus le chien paresseux.');

echo 
hash_file('md5''exemple.txt');
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
  • hash_update_file() - Ajoute des données dans un contexte de hachage actif provenant d'un fichier
  • md5_file() - Calcule le md5 d'un fichier
  • sha1_file() - Calcule le sha1 d'un fichier



hash_final

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_finalFinalise un hachage incrémental et retourne le résultat de l'empreinte numérique

Description

string hash_final ( resource $context [, bool $raw_output = false ] )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_final()

<?php
$ctx 
hash_init('sha1');
hash_update($ctx'Le rapide goupil brun sauta par dessus le chien paresseux.');
echo 
hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

7d36f32a7c271e74a44d759b89d19bbaf1b53904

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update() - Ajoute des données dans le contexte de hachage actif
  • hash_update_stream() - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_update_file() - Ajoute des données dans un contexte de hachage actif provenant d'un fichier



hash_hmac_file

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_hmac_fileGénère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné

Description

string hash_hmac_file ( string $algo , string $filename , string $key [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.) Voir la documentation sur la fonction hash_algos() pour connaitre la liste des algorithmes supportés.

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().

key

Clé secrète partagée utilisée pour générer la variance HMAC de l'empreinte numérique.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_hmac_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('exemple.txt''Le rapide goupil brun sauta par dessus le chien paresseux.');

echo 
hash_hmac_file('md5''exemple.txt''secret');
?>

L'exemple ci-dessus va afficher :

0d68e079ae8a5d364df207637e4f6860

Voir aussi

  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné



hash_hmac

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_hmacGénère une valeur de clé de hachage en utilisant la méthode HMAC

Description

string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.). Voir la documentation de la fonction hash_algos() pour une liste des algorithmes supportés.

data

Le message qui sera haché.

key

Clé secrète partagée utilisée pour générer la variance HMAC de l'empreinte numérique.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_hmac()

<?php
echo hash_hmac('ripemd160''Le rapide goupil brun sauta par dessus le chien paresseux.''secret');
?>

L'exemple ci-dessus va afficher :

a6f41314c7a3482836268cf504b066e08216e40f

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné



hash_init

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_initInitialise un contexte de hachage incrémental

Description

resource hash_init ( string $algo [, int $options = 0 [, string $key = NULL ]] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

options

Configurations optionnelles pour la génération du hachage, supporte actuellement seulement une option : HASH_HMAC. Lorsque cette option est spécifiée, le paramètre key doit être spécifié.

key

Lorsque HASH_HMAC est spécifiée pour options, une clé secrète partagée qui sera utilisée avec la méthode de hachage HMAC doit être fournie dans ce paramètre.

Valeurs de retour

Retourne une ressource de Contexte de Hachage pour utilisation avec hash_update(), hash_update_stream(), hash_update_file() et hash_final().

Exemples

Exemple #1 Exemple de hashage incrémental

<?php
$ctx 
hash_init('md5');
hash_update($ctx'Le rapide goupil brun ');
hash_update($ctx'sauta par dessus le chien paresseux.');
echo 
hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné



hash_update_file

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_update_fileAjoute des données dans un contexte de hachage actif provenant d'un fichier

Description

bool hash_update_file ( resource $context , string $filename [, resource $context = NULL ] )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().

context

Contexte de flux retourné par stream_context_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update() - Ajoute des données dans le contexte de hachage actif
  • hash_update_stream() - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_final() - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné



hash_update_stream

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_update_streamAjoute des données dans un contexte de hachage actif d'un flux ouvert

Description

int hash_update_stream ( resource $context , resource $handle [, int $length = -1 ] )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

handle

Identifiant de fichier ouvert comme retourné par n'importe quelle fonction de création de flux.

length

Taille maximale de caractères à copier de handle dans le contexte de hachage.

Valeurs de retour

Nombre actuel d'octets ajoutés au contexte de hachage de handle.

Exemples

Exemple #1 Exemple avec hash_update_stream()

<?php
$fp 
tmpfile();
fwrite($fp'Le rapide goupil brun sauta par dessus le chien paresseux.');
rewind($fp);

$ctx hash_init('md5');
hash_update_stream($ctx$fp);
echo 
hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update() - Ajoute des données dans le contexte de hachage actif
  • hash_final() - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné



hash_update

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_updateAjoute des données dans le contexte de hachage actif

Description

bool hash_update ( resource $context , string $data )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

data

Message qui sera inclut dans l'empreinte de hachage.

Valeurs de retour

Retourne TRUE.

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update_file() - Ajoute des données dans un contexte de hachage actif provenant d'un fichier
  • hash_update_stream() - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_final() - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique



hash

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hashGénère une valeur de hachage (empreinte numérique)

Description

string hash ( string $algo , string $data [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

data

Message à être haché.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash()

<?php
echo hash('ripemd160''Le rapide goupil brun sauta par dessus le chien paresseux.');
?>

L'exemple ci-dessus va afficher :

cdb8426cb020896cea1d040e62a0f8cf9f5b4226

Voir aussi

  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_init() - Initialise un contexte de hachage incrémental
  • md5() - Calcule le md5 d'une chaîne
  • sha1() - Calcule le sha1 d'une chaîne de caractères


Sommaire

  • hash_algos — Retourne une liste des algorithmes de hachage enregistrés
  • hash_copy — Copie un contexte de hashage
  • hash_file — Génère une valeur de hachage en utilisant le contenu d'un fichier donné
  • hash_final — Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
  • hash_hmac_file — Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
  • hash_hmac — Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_init — Initialise un contexte de hachage incrémental
  • hash_update_file — Ajoute des données dans un contexte de hachage actif provenant d'un fichier
  • hash_update_stream — Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_update — Ajoute des données dans le contexte de hachage actif
  • hash — Génère une valeur de hachage (empreinte numérique)



Mcrypt


Introduction

Ces fonctions permettent d'accéder à la bibliothèque mcrypt, qui dispose d'une grande variété d'algorithmes de chiffrement, tels DES, TripleDES, Blowfish (par défaut), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 et GOST en modes CBC, OFB, CFB et ECB. De plus, elles acceptent aussi RC6 et IDEA qui sont considérés comme "non-libres". CFB/OFB est sur 8bit par défaut.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions utilisent » mcrypt. Pour utiliser cette bibliothèque, téléchargez le fichier libmcrypt-x.x.tar.gz sur » http://mcrypt.sourceforge.net/ et suivez les instructions d'installation fournies.

Depuis PHP 5.0.0, vous avez besoin de la version 2.5.6 ou suivant de la bibliothèque libmcrypt.

Les utilisateurs de Windows trouveront la bibliothèque dans la version Windows de PHP 5.3. La version binaire Windows de PHP 5.3 utilise la version statique de la bibliothèque MCrypt, aucune DLL n'est nécessaire.

Si vous compilez PHP avec la bibliothèque libmcrypt 2.4.x, les algorithmes suivants sont supportés : "CAST", "LOKI97", "RIJNDAEL", "SAFERPLUS", "SERPENT" ainsi que les chiffrements suivants : "ENIGMA" (chiffrement), "PANAMA", "RC4" et "WAKE". Avec libmcrypt 2.4.x un autre mode de chiffrement est disponible : "nOFB".



Installation

Vous devez compiler PHP avec l'option --with-mcrypt=[DIR] pour activer cette extension. DIR est le dossier d'installation de mcrypt. Assurez-vous de compiler libmcrypt avec l'option --disable-posix-threads .



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mcrypt
Nom Défaut Modifiable Historique
mcrypt.algorithms_dir NULL PHP_INI_ALL  
mcrypt.modes_dir NULL PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mcrypt.algorithms_dir string

Le dossier contenant les algorithmes. Par défaut il s'agit du dossier indiqué à la compilation de libmcrypt, typiquement il s'agit de /usr/local/lib/libmcrypt. Voyez mcrypt_list_algorithms() pour plus de détails.

mcrypt.modes_dir string

Le dossier contenant les modes. Par défaut il s'agit du dossier indiqué à la compilation de libmcrypt, typiquement il s'agit de /usr/local/lib/libmcrypt. Voyez mcrypt_list_modes() pour plus de détails.



Types de ressources

mcrypt_module_open() retourne un pointeur de chiffrement.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Mcrypt peut opérer en 4 modes de chiffrement (CBC, OFB, CFB, et ECB). Si vous utilisez libmcrypt-2.4.x ou plus récent, les fonctions peuvent aussi opérer en mode nOFB et en mode STREAM. Nous allons présenter la technique d'utilisation de ces modes. Pour plus de références et de détails, reportez-vous au livre suivant : Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) est prévu pour des données aléatoires, telles que des clés. Comme les données sont peu nombreuses et aléatoires, les inconvénients de l'ECB ont ici un effet négatif favorable.
  • MCRYPT_MODE_CBC (cipher block chaining) est particulièrement pratique avec les fichiers dont la sécurité ECB n'est pas suffisante.
  • MCRYPT_MODE_CFB (cipher feedback) est la meilleure méthode pour chiffrer des flots d'octets, quand les octets doivent être chiffrés un par un.
  • MCRYPT_MODE_OFB (output feedback, in 8bit) est comparable à CFB, mais peut être utilisé lorsque des erreurs ne doivent pas être propagées.
  • MCRYPT_MODE_NOFB (output feedback, in nbit) est comparable à OFB, mais plus sûr, car il opère avec la taille de blocs de l'algorithme.
  • MCRYPT_MODE_STREAM est un mode supplémentaire, pour permettre l'utilisation d'algorithmes tels "WAKE" ou "RC4".

Voici quelques autres modes et méthodes de compression :

MCRYPT_ENCRYPT (entier)
MCRYPT_DECRYPT (entier)
MCRYPT_DEV_RANDOM (entier)
MCRYPT_DEV_URANDOM (entier)
MCRYPT_RAND (entier)



Modes de chiffrement Mcrypt

Voici une liste non exhaustive des modes de chiffrement de l'extension mcrypt. Pour disposer d'une liste complète des chiffrements supportés, voyez les définitions dans le fichier mcrypt.h. La règle générale avec l'API mcrypt-2.2.x est que vous pouvez accéder au mode de chiffrement depuis PHP avec la constante MCRYPT_ciphername. Avec la bibliothèque libmcrypt-2.4.x et libmcrypt-2.5.x, ces constantes fonctionnent toujours, mais il est possible de spécifier le nom du chiffrement dans une chaîne, lors de l'appel à mcrypt_module_open().

  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x uniquement)
  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x uniquement)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x uniquement)
  • MCRYPT_ENIGMA (libmcrypt > 2.4.x uniquement, alias de MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (non libre)
  • MCRYPT_LOKI97 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_MARS (libmcrypt > 2.4.x uniquement, non libre)
  • MCRYPT_PANAMA (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RC2
  • MCRYPT_RC4 (libmcrypt 2.2.x uniquement)
  • MCRYPT_RC6 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RC6_128 (libmcrypt 2.2.x uniquement)
  • MCRYPT_RC6_192 (libmcrypt 2.2.x uniquement)
  • MCRYPT_RC6_256 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x uniquement)
  • MCRYPT_SERPENT(libmcrypt > 2.4.x uniquement)
  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x uniquement)
  • MCRYPT_TEAN (libmcrypt 2.2.x uniquement)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x uniquement)
  • MCRYPT_TWOFISH (pour les anciennes versions de mcrypt 2.x ou mcrypt > 2.4.x )
  • MCRYPT_TWOFISH128 (TWOFISHxxx est disponible dans les nouvelles versions 2.x, mais pas dans les versions 2.4.x)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (libmcrypt > 2.4.x uniquement)
  • MCRYPT_XTEA (libmcrypt > 2.4.x uniquement)

Vous devez (mode CFB et OFB) ou pouvez (mode CBC) fournir un vecteur d'initialisation (IV) pour ces modes de chiffrement. IV doit être unique, et avoir la même valeur au chiffrement et au déchiffrement. Pour des données qui seront enregistrées après chiffrement, vous pouvez prendre le résultat d'une fonction telle que MD5, appliquée sur le nom du fichier. Sinon, vous pouvez envoyer IV avec les données chiffrées, (reportez-vous au chapitre 9.3 de Applied Cryptography by Schneier (ISBN 0-471-11709-9) de Schneier (ISBN 0-471-11709-9) pour plus de détails sur le sujet).



Exemples

Mcrypt permet de chiffrer et de déchiffrer en utilisant les méthodes mentionnées ci-dessus. Si vous utilisez libmcrypt-2.2.x, les 4 commandes importantes (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb() et mcrypt_ofb()) peuvent toutes opérer en mode MCRYPT_ENCRYPT et MCRYPT_DECRYPT.

Exemple #1 Chiffre une valeur avec un TripleDES, en mode ECB, sous 2.2.x

<?php
$key 
"Cette clé est ultra-secrète";
$input "Rencontrons-nous dans notre place secrète à 9 h 00.";

$encrypted_data mcrypt_ecb (MCRYPT_3DES$key$inputMCRYPT_ENCRYPT);
?>
Cet exemple va retourner les données chiffrées dans la variable $encrypted_data.

Si vous avez compilé PHP avec libmcrypt 2.4.x ou 2.5.x, ces fonctions sont toujours disponibles, mais il est vivement conseillé d'utiliser les nouvelles fonctions avancées.

Exemple #2 Chiffrement d'une valeur avec TripleDES sous 2.4.x et supérieur, en mode ECB

<?php
$key 
"Ceci est une vraie clé secrète";
$input "Rendez-vous à 9 heures, dans notre planque.";

$td mcrypt_module_open('tripledes''''ecb''');
$iv mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td$key$iv);
$encrypted_data mcrypt_generic($td$input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
?>
Cet exemple va retourner les données cryptées dans la variable $encrypted_data. Pour un exemple complet, voyez mcrypt_module_open().



Fonctions Mcrypt


mcrypt_cbc

(PHP 4, PHP 5)

mcrypt_cbcChiffre/déchiffre des données en mode CBC

Description

string mcrypt_cbc ( int $cipher , string $key , string $data , int $mode [, string $iv ] )
string mcrypt_cbc ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_cbc() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().



mcrypt_cfb

(PHP 4, PHP 5)

mcrypt_cfbChiffre/déchiffre des données en mode CFB

Description

string mcrypt_cfb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_cfb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_cfb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().



mcrypt_create_iv

(PHP 4, PHP 5)

mcrypt_create_ivCrée un vecteur d'initialisation (IV) à partir d'une source aléatoire

Description

string mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_RANDOM ] )

mcrypt_create_iv() crée un IV (vecteur d'initialisation) à partir d'une source aléatoire.

Le vecteur d'initialisation est le seul moyen de fournir une initialisation de remplacement aux méthodes d'initialisation. Ce vecteur n'a pas besoin d'être particulièrement secret, même si c'est mieux. Vous pouvez l'envoyer avec vos documents chiffrés sans perdre en sécurité.

Liste de paramètres

size

La taille du vecteur.

source

La source d'un IV. La source peut être MCRYPT_RAND (le générateur de nombre aléatoire du système), MCRYPT_DEV_RANDOM (lit les données depuis /dev/random) et MCRYPT_DEV_URANDOM (lit les données depuis /dev/urandom). Avant la version 5.3.0, MCRYPT_RAND était la seule constante supportée par Windows.

Valeurs de retour

Retourne le vecteur d'initialisation, ou bien FALSE en cas d'erreur.

Historique

Version Description
5.3.0 MCRYPT_DEV_RANDOM et MCRYPT_DEV_URANDOM deviennent disponibles sous Windows.
5.3.0 Il n'est plus nécessaire d'appeler srand() dans un premier temps. Cet appel est maintenant fait automatiquement.

Exemples

Exemple #1 Exemple avec mcrypt_create_iv()

<?php
     $size 
mcrypt_get_iv_size(MCRYPT_CAST_256MCRYPT_MODE_CFB);
     
$iv mcrypt_create_iv($sizeMCRYPT_DEV_RANDOM);
     
?>

Voir aussi



mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_decryptDéchiffre un texte avec les paramètres donnés

Description

string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

Déchiffre les données data et retourne les données déchiffrées.

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme sous la forme d'une chaîne de caractères..

key

La clé utilisée lors du chiffrement des données. Si elle est plus petite que la taille requise, elle sera complétée par des '\0'.

data

Les données qui seront déchiffrées avec utilisant les paramètres cipher et mode. Si la taille des données ne correspond pas à n * la taille du bloc, les données seront complétées par des '\0'.

mode

Une constante parmi MCRYPT_MODE_modename, ou une des chaînes de caractères suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv

Le iv (Vecteur d'Initialisation) est utilisé pour les modes CBC, CFB, OFB, et dans certains algorithmes de mode STREAM. Si vous ne fournissez pas le VI, alors qu'il est nécessaire, la fonction affichera une alerte, et utilisera un VI composé de caractères "\0".

Valeurs de retour

Retourne les données déchiffrées sous la forme d'une chaîne de caractères.



mcrypt_ecb

(PHP 4, PHP 5)

mcrypt_ecbObsolète : Chiffre/déchiffre des données en mode ECB

Description

string mcrypt_ecb ( int $cipher , string $key , string $data , int $mode )
string mcrypt_ecb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_ecb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().



mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_algorithms_nameRetourne le nom de l'algorithme de chiffrement

Description

string mcrypt_enc_get_algorithms_name ( resource $td )

mcrypt_enc_get_algorithms_name() retourne le nom de l'algorithme utilisé par td.

Liste de paramètres

td

La resource de chiffrement.

Valeurs de retour

Retourne le nom de l'algorithme courant, sous forme de chaîne de caractères

Exemples

Exemple #1 Exemple avec mcrypt_enc_get_algorithms_name()

<?php
     $td 
mcrypt_module_open (MCRYPT_CAST_256''MCRYPT_MODE_CFB'');
     echo 
mcrypt_enc_get_algorithms_name($td). "\n";

     
$td mcrypt_module_open ('cast-256'''MCRYPT_MODE_CFB'');
     echo 
mcrypt_enc_get_algorithms_name($td). "\n";
     
?>

L'exemple ci-dessus va afficher :

CAST-256
CAST-256



mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_block_sizeRetourne la taille du bloc d'un algorithme

Description

int mcrypt_enc_get_block_size ( resource $td )

Récupère la taille du bloc d'un algorithme.

Liste de paramètres

td

Le pointeur de fichiers.

Valeurs de retour

Retourne la taille du bloc de l'algorithme, en octets.



mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_iv_sizeRetourne la taille du VI d'un algorithme

Description

int mcrypt_enc_get_iv_size ( resource $td )

Cette fonction retourne la taille du VI de l'algorithme désigné par td, en octets. Si la valeur retournée est 0, c'est que l'algorithme ne demande pas de VI. Un VI est demandé en mode "cbc", "cfb" et "ofb", et parfois en mode "stream".

Liste de paramètres

td

Le pointeur de fichiers.

Valeurs de retour

Retourne la taille du IV, ou 0 si l'IV est ignoré par l'algorithme.



mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_key_sizeRetourne la taille maximale de la clé pour un mode

Description

int mcrypt_enc_get_key_size ( resource $td )

Retourne la taille maximale de la clé pour un mode donné.

Liste de paramètres

td

Le pointeur de fichier.

Valeurs de retour

Retourne la taille maximale de la clé pour le mode donné.



mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_modes_nameRetourne le nom du mode

Description

string mcrypt_enc_get_modes_name ( resource $td )

Retourne le nom du mode.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec mcrypt_enc_get_modes_name()

<?php
$td 
mcrypt_module_open (MCRYPT_CAST_256''MCRYPT_MODE_CFB'');
echo 
mcrypt_enc_get_modes_name($td). "\n";

$td mcrypt_module_open ('cast-256''''ecb''');
echo 
mcrypt_enc_get_modes_name($td). "\n";
?>

L'exemple ci-dessus va afficher :

CFB
ECB



mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_supported_key_sizesRetourne un tableau contenant les tailles de clés acceptées par un algorithme

Description

array mcrypt_enc_get_supported_key_sizes ( resource $td )

mcrypt_enc_get_supported_key_sizes() lit les tailles de clés supportées par l'algorithme courant de la ressource de chiffrement td.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne un tableau contenant les tailles des clés supportées par l'algorithme désigné par td. S'il retourne un tableau vide, c'est que toutes les clés entre 1 et mcrypt_enc_get_key_size() sont acceptées par l'algorithme.

Exemples

Exemple #1 Exemple avec mcrypt_enc_get_supported_key_sizes()

<?php
    $td 
mcrypt_module_open('rijndael-256''''ecb''');
    
var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}



mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm_modeTeste le chiffrement par blocs d'un mode

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource $td )

Teste le chiffrement par blocs d'un mode (e.g. FALSE pour un flux, et TRUE pour "cbc", "cfb", "ofb").

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne TRUE si ce mode utilise des algorithmes par blocs, et FALSE sinon.



mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithmTeste le chiffrement par blocs d'un algorithme

Description

bool mcrypt_enc_is_block_algorithm ( resource $td )

Teste le chiffrement par blocs d'un algorithme.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne TRUE si l'algorithme utilisé est un algorithme par blocs, et FALSE si c'est un algorithme par flux.



mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_modeTeste si le mode retourne les données par blocs

Description

bool mcrypt_enc_is_block_mode ( resource $td )

Teste si le mode retourne les données par blocs (e.g. TRUE pour "cbc" et "ecb", et FALSE pour "cfb" et un flux).

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne TRUE si le mode retourne des blocs d'octets, ou bien FALSE s'il ne retourne que des octets.



mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_self_testTeste un module ouvert

Description

int mcrypt_enc_self_test ( resource $td )

Effectue un test du module ouvert et désigné par td.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Si le test est concluant, elle retourne FALSE, sinon TRUE.



mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encryptChiffre un texte

Description

string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

mcrypt_encrypt() chiffre les données, et retourne les données chiffrées.

Liste de paramètres

cipher

Une des constantes MCRYPT_ciphername, contenant le nom de l'algorithme, sous forme de chaîne de caractères.

key

La clé avec laquelle les données seront chiffrées. Si elle est plus petite que sa taille demandée, elle sera complétée avec des '\0'. Il est mieux de ne pas utiliser des clés ASCII.

Il est recommandé d'utiliser les fonctions mhash pour créer des clés à partir d'une chaîne.

data

Les données qui seront chiffrées, avec le cipher et le mode indiqué. Si la taille des données n'est pas un multiple de la taille de bloc, les données seront complétées par des caractères '\0', autant que nécessaire.

Le texte chiffré retourné peut être plus long que la taille des données passées en argument via data.

mode

Une des constantes MCRYPT_MODE_modename, parmi les valeurs de "ecb", "cbc", "cfb", "ofb", "nofb" et "stream".

iv

Ce paramètre est utilisé pour l'initialisation en modes CBC, CFB et OFB, et dans certains algorithmes en mode STREAM. Si vous ne fournissez pas de vecteur d'initialisation et que l'algorithme en requiert un, la fonction va émettre une alerte, et utiliser un vecteur d'initialisation entièrement constitué de '\0'.

Valeurs de retour

Retourne les données chiffrées, sous forme de chaîne de caractères.

Exemples

Exemple #1 Exemple avec mcrypt_encrypt()

<?php
$iv_size 
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256MCRYPT_MODE_ECB);
$iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);
$key "This is a very secret key";
$text "Meet me at 11 o'clock behind the monument.";
echo 
strlen($text) . "\n";

$crypttext mcrypt_encrypt(MCRYPT_RIJNDAEL_256$key$textMCRYPT_MODE_ECB$iv);
echo 
strlen($crypttext) . "\n";
?>

L'exemple ci-dessus va afficher :

42
64

Voir aussi mcrypt_module_open() pour une meilleure API et un exemple.



mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5)

mcrypt_generic_deinitPrépare le module pour le déchargement

Description

bool mcrypt_generic_deinit ( resource $td )

Prépare le module de chiffrement td pour le déchargement. Tous les tampons sont vidés, mais le module n'est pas déchargé. Vous devez appeler mcrypt_module_close() vous-même (mais PHP le fera pour vous a la fin du script).

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5 <= 5.1.6)

mcrypt_generic_endTermine un chiffrement

Description

bool mcrypt_generic_end ( resource $td )

Avertissement

Cette fonction est obsolète, utilisez mcrypt_generic_deinit() à la place. Elle peut causer des crashes lorsqu'elle est utilisée avec mcrypt_module_close() à cause d'une multitude de tampons libres.

mcrypt_generic_end() termine le chiffrement désigné par le pointeur td. En fait, elle supprime tous les buffers, et ferme les modules utilisés. Retourne FALSE si une erreur survient, ou TRUE en cas de succès.



mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_initInitialise tous les buffers nécessaires

Description

int mcrypt_generic_init ( resource $td , string $key , string $iv )

Vous devez appeler mcrypt_generic_init() avant chaque appel à mcrypt_generic() ou mdecrypt_generic().

Liste de paramètres

td

La ressource de chiffrement.

key

La taille maximale de la clé doit être celle retournée par mcrypt_enc_get_key_size() et toutes les valeurs inférieures seront aussi valides.

iv

Le vecteur d'initialisation (VI) doit avoir la taille d'un bloc, mais vous devez lire sa taille en appelant mcrypt_enc_get_iv_size(). IV est ignoré en mode ECB. IV DOIT exister en modes "CFB", "CBC", "STREAM", "nOFB" et "OFB". Il doit être aléatoire et unique (mais pas secret). Le même VI doit être utilisé pour le chiffrement et le déchiffrement. Si vous ne voulez pas l'utiliser, remplissez-le de zéros, mais ce n'est pas recommandé.

Valeurs de retour

Retourne une valeur négative en cas d'erreur : -3 si la taille de la clé est incorrecte, -4 quand il y a eu un problème d'allocation de mémoire et toute autre valeur en cas d'erreur inconnue. Si une erreur survient, une alerte est affichée. FALSE est retourné si des paramètres incorrects sont passés à la fonction.

Voir aussi



mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_genericChiffre les données

Description

string mcrypt_generic ( resource $td , string $data )

mcrypt_generic() chiffre les données data. Les données sont complétées par des "\0" pour obtenir une taille multiple de la taille d'un bloc. Elle retourne les données chiffrées. Notez que la longueur de la chaîne retournée peut être plus longue que celle passée en argument, à cause du complément.

Si vous voulez enregistrer les données chiffrées dans une base de données assurez-vous d'enregistrer la chaîne entière retournée par cette fonction, sinon la chaîne ne sera pas décryptée correctement. Si votre chaîne d'origine comporte 10 caractères et que la taille d'un bloc est de 8 (utilisez mcrypt_enc_get_block_size() pour déterminer cette taille), vous aurez besoin d'au moins 16 caractères dans le champ de votre base de données. Notez que la chaîne retournée par mdecrypt_generic() aura 16 caractères de long... utilisez rtrim($str, "\0") pour supprimer le complément.

Par exemple, si vous enregistrez les données dans une base de données MySQL, souvenez-vous que les champs de type VARCHAR suppriment automatiquement les espaces en trop durant l'insertion. Comme les données chiffrés peuvent se terminer avec un espace (ASCII 32), les données seront endommagées par cette suppression. Stockez les données dans un champ de type TINYBLOB/TINYTEXT (ou plus grand) pour que tout fonctionne normalement.

Liste de paramètres

td

La ressource de chiffrement.

Le gestionnaire de chiffrement td doit être initialisé avec la fonction mcrypt_generic_init(), avec une clé et un VI, avant d'appeler cette fonction. Lorsque le chiffrement est réalisé, vous devez libérer les buffers en appelant la fonction mcrypt_generic_deinit(). Voyez mcrypt_module_open() pour un exemple.

data

Les données à chiffrer.

Valeurs de retour

Retourne les données chiffrées.

Voir aussi



mcrypt_get_block_size

(PHP 4, PHP 5)

mcrypt_get_block_sizeRetourne la taille de blocs d'un chiffrement

Description

int mcrypt_get_block_size ( int $cipher )
int mcrypt_get_block_size ( string $cipher , string $module )

Le premier prototype sert lorsque PHP est compilé avec la bibliothèque libmcrypt 2.2.x, le second lorsqu'il est compilé avec libmcrypt 2.4.x ou 2.5.x.

mcrypt_get_block_size() sert à lire la taille de blocs du chiffrement cipher (en combinaison avec un mode de chiffrement).

Il est recommandé de se servir de la fonction mcrypt_enc_get_block_size(), car elle utilise la ressource retournée par mcrypt_module_open().

Liste de paramètres

cipher

Une des constantes MCRYPT_ciphername, représentant le nom d'un algorithme sous forme de chaîne de caractères.

module

Le module.

Valeurs de retour

Lit la taille de bloc, sous forme d'un entier.

Exemples

Exemple #1 Exemple avec mcrypt_get_block_size()

Cet exemple montre comment utiliser cette fonction lorsque PHP est compilé avec libmcrypt 2.4.x et 2.5.x.

<?php
echo mcrypt_get_block_size('tripledes''ecb'); // 8
?>

Voir aussi



mcrypt_get_cipher_name

(PHP 4, PHP 5)

mcrypt_get_cipher_nameLit le nom du chiffrement utilisé

Description

string mcrypt_get_cipher_name ( int $cipher )
string mcrypt_get_cipher_name ( string $cipher )

mcrypt_get_cipher_name() retourne le nom du chiffrement utilisé.

mcrypt_get_cipher_name() prend le numéro de chiffrement (avec libmcrypt 2.2.x) ou prend le nom du chiffrement (avec libmcrypt 2.4.x) comme paramètre, et retourne le nom du chiffrement, ou FALSE, s'il n'existe pas.

Liste de paramètres

cipher

Une des constantes MCRYPT_ciphername ou le nom de l'algorithme sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne le nom du cipher ou FALSE si le cipher n'existe pas.

Exemples

Exemple #1 Exemple avec mcrypt_get_cipher_name()

<?php
$cipher 
MCRYPT_TripleDES;

echo 
mcrypt_get_cipher_name($cipher);
?>

L'exemple ci-dessus va afficher :

3DES



mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_get_iv_sizeRetourne la taille du VI utilisé par un couple chiffrement/mode

Description

int mcrypt_get_iv_size ( string $cipher , string $mode )

mcrypt_get_iv_size() retourne la taille du vecteur d'initialisation (VI). Si l'algorithme n'utilise pas de vecteur d'initialisation, zéro est retourné.

Il est plus utile d'utiliser la fonction mcrypt_enc_get_iv_size(), car elle utilise la ressource retournée par mcrypt_module_open().

Liste de paramètres

cipher

Une des constantes MCRYPT_ciphername, qui contient le nom de l'algorithme sous forme de chaîne de caractères.

mode

Une constante parmis les constantes MCRYPT_MODE_modename ou bien une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream". IV est ignoré en mode ECB sachant que ce mode ne le demande pas. Vous devez avoir le même IV (point de départ) lors du chiffrement et du déchiffrement, sinon, votre chiffrage échouera.

Valeurs de retour

Retourne la taille du vecteur d'initialisation (IV), en octets. En cas d'erreur, la fonction retourne FALSE. Si le vecteur d'initialisation est inutile, 0 est retourné.

Exemples

Exemple #1 Exemple avec mcrypt_get_iv_size()

<?php
echo mcrypt_get_iv_size(MCRYPT_CAST_256MCRYPT_MODE_CFB) . "\n";

echo 
mcrypt_get_iv_size('des''ecb') . "\n";
?>

Voir aussi



mcrypt_get_key_size

(PHP 4, PHP 5)

mcrypt_get_key_sizeRetourne la taille de la clé de chiffrement

Description

int mcrypt_get_key_size ( int $cipher )
int mcrypt_get_key_size ( string $cipher , string $module )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x ou plus récent.

mcrypt_get_key_size() sert à lire la taille de clé du chiffrement cipher.

Il est plus intéressant d'utiliser la fonction mcrypt_enc_get_key_size() sachant qu'elle utilise la ressource retournée par la fonction mcrypt_module_open().

Exemples

Exemple #1 Exemple avec mcrypt_get_key_size()

<?php
echo mcrypt_get_key_size('tripledes''ecb');
?>

L'exemple ci-dessus montre l'utilisation de la fonction lorsqu'elle a été compilée avec la bibliothèque 2.4.x ou 2.5.x.

L'exemple ci-dessus va afficher :

24

Voir aussi



mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_algorithmsListe tous les algorithmes de chiffrement supportés

Description

array mcrypt_list_algorithms ([ string $lib_dir = ini_get("mcrypt.algorithms_dir") ] )

Liste tous les algorithmes de chiffrement de lib_dir.

Liste de paramètres

lib_dir

Spécifie le dossier où les algoritjmes sont situés. Si omis, la valeur de la directive mcrypt.algorithms_dir du fichier php.ini est utilisée.

Valeurs de retour

Retourne un tableau avec les algorithmes supportés.

Exemples

Exemple #1 Exemple avec mcrypt_list_algorithms()

<?php
$algorithms 
mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

foreach (
$algorithms as $cipher) {
    echo 
"$cipher<br />\n";
}
?>

L'exemple ci-dessus va afficher tous les algorithmes supportés dans le dossier "/usr/local/lib/libmcrypt".



mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_modesListe tous les modes de chiffrement supportés

Description

array mcrypt_list_modes ([ string $lib_dir = ini_get("mcrypt.modes_dir") ] )

Liste tous les modes de chiffrement de lib_dir.

Liste de paramètres

lib_dir

Spécifie le dossier où tous les modes sont situés. Si omis, la valeur de la directive mcrypt.modes_dir dans le php.ini est utilisée.

Valeurs de retour

Retourne un tableau avec tous les modes supportés.

Exemples

Exemple #1 Exemple avec mcrypt_list_modes()

<?php
$modes 
mcrypt_list_modes();

foreach (
$modes as $mode) {
    echo 
"$mode <br />\n";
}
?>

L'exemple ci-dessus va afficher tous les modes supportés dans le dossier par défaut. Si le mode n'est pas défini par la directive mcrypt.modes_dir du php.ini, le dossier par défaut de mcrypt sera utilisé (soit le dossier /usr/local/lib/libmcrypt).



mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_closeDécharge le module de chiffrement

Description

bool mcrypt_module_close ( resource $td )

Décharge le module td.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_block_sizeRetourne la taille de blocs d'un algorithme

Description

int mcrypt_module_get_algo_block_size ( string $algorithm [, string $lib_dir ] )

Retourne la taille de blocs d'un algorithme.

Liste de paramètres

algorithm

Le nom de l'algorithme.

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Retourne la taille de blocs d'un algorithme, en octets.



mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_key_sizeRetourne la taille maximale de clé

Description

int mcrypt_module_get_algo_key_size ( string $algorithm [, string $lib_dir ] )

Retourne la taille maximale de clé.

Liste de paramètres

algorithm

Le nom de l'algorithme.

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Retourne la taille maximale de la clé supportée par l'algorithme algorithm.



mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_supported_key_sizesRetourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert

Description

array mcrypt_module_get_supported_key_sizes ( string $algorithm [, string $lib_dir ] )

Retourne un tableau contenant les tailles de clés supportées par l'algorithme de chiffrement algorithm. S'il retourne un tableau vide, alors toutes les clés entre 1 et mcrypt_module_get_algo_key_size() sont supportées par l'algorithme.

Liste de paramètres

algorithm

L'algorithme à utiliser.

lib_dir

Le paramètre optionnel lib_dir peut contenir le chemin du dossier d'installation du module, sur le système.

Valeurs de retour

Retourne un tableau contenant les tailles de clés supportées par l'algorithme de chiffrement algorithm. S'il retourne un tableau vide, alors toutes les clés entre 1 et mcrypt_module_get_algo_key_size() sont supportées par l'algorithme.

Voir aussi



mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm_modeIndique si un mode fonctionne par blocs

Description

bool mcrypt_module_is_block_algorithm_mode ( string $mode [, string $lib_dir ] )

Cette fonction retourne TRUE si le mode doit être utilisé avec un algorithme par bloc, sinon, elle retourne FALSE (i.e. FALSE pour un flux, et TRUE pour cbc, cfb, ofb).

Liste de paramètres

mode

Le mode à vérifier.

lib_dir

Le paramètre optionnel lib_dir peut contenir le dossier où les modules d'algorithme se trouvent sur le système.

Valeurs de retour

Cette fonction retourne TRUE si le mode doit être utilisé avec un algorithme par bloc, sinon, elle retourne FALSE (i.e. FALSE pour un flux, et TRUE pour cbc, cfb, ofb).



mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithmIndique si un algorithme fonctionne par blocs

Description

bool mcrypt_module_is_block_algorithm ( string $algorithm [, string $lib_dir ] )

mcrypt_module_is_block_algorithm() retourne TRUE si algorithm est un algorithme par blocs, ou FALSE si c'est un algorithme par flux.

Liste de paramètres

algorithm

L'algorithme à vérifier.

lib_dir

Le paramètre optionnel lib_dir peut contenir le chemin où se trouve les modules des algorithmes sur le disque système.

Valeurs de retour

Retourne TRUE si l'algorithme spécifié est un algorithme par blocs ou FALSE si c'est un algorithme par flux.



mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_modeIndique si un mode travaille par blocs

Description

bool mcrypt_module_is_block_mode ( string $mode [, string $lib_dir ] )

Cette fonction retourne TRUE si ce mode fournit des blocs d'octets ou FALSE s'il ne sort que des octets. (i.e. TRUE pour "cbc" et "ecb", et FALSE pour "cfb" et "stream").

Liste de paramètres

mode

Le mode à vérifier.

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Cette fonction retourne TRUE si ce mode fournit des blocs d'octets ou FALSE s'il ne sort que des octets. (i.e. TRUE pour "cbc" et "ecb", et FALSE pour "cfb" et "stream").



mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_openOuvre le module de l'algorithme et du mode à utiliser

Description

resource mcrypt_module_open ( string $algorithm , string $algorithm_directory , string $mode , string $mode_directory )

mcrypt_module_open() ouvre le module de l'algorithme et du mode à utiliser. Le nom de l'algorithme est spécifié par le paramètre algorithm (par exemple : "twofish"), ou bien une des constantes MCRYPT_ciphername. La bibliothèque est refermée en appelant mcrypt_module_close().

Liste de paramètres

algorithm

L'algorithme à utiliser.

algorithm_directory

Le paramètre algorithm_directory est utilisé pour localiser le module de cryptage. Lorsque vous spécifiez un nom de dossier, il sera utilisé. Si vous spécifiez une chaîne vide (""), la valeur définie dans la directive mcrypt.algorithms_dir du fichier php.ini sera utilisée. Lorsqu'elle n'est pas définie, le dossier par défaut utilisé sera celui dans lequel se trouve la bibliothèque libmcrypt (habituellement, /usr/local/lib/libmcrypt).

mode

Le mode à utiliser.

mode_directory

Le paramètre mode_directory est utilisé pour localiser le module de cryptage. Si un nom de dossier est spécifié, il sera utilisé. Lorsque vous spécifiez une chaîne vide (""), la valeur de la directive mcrypt.modes_dir du fichier php.ini sera utilisée. Si elle n'est pas définie, le dossier par défaut utilisé sera celui dans lequel se trouve la bibliothèque libmcrypt (habituellement /usr/local/lib/libmcrypt).

Valeurs de retour

Normalement, cette fonction retourne un descripteur de cryptage, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mcrypt_module_open()

<?php
$td 
mcrypt_module_open(MCRYPT_DES'',
    
MCRYPT_MODE_ECB'/usr/lib/mcrypt-modes');

$td mcrypt_module_open('rijndael-256''''ofb''');
?>

La première ligne de l'exemple ci-dessus va essayer d'ouvrir le chiffrement DES, dans le dossier par défaut, et le mode EBC dans le dossier /usr/lib/mcrypt-modes. Le second exemple utilise les chaînes comme nom pour le chiffrement et le mode. Cela ne fonctionne que si l'extension est compilée avec libmcrypt 2.4.x or 2.5.x.

Exemple #2 Utilisation de mcrypt_module_open() pour chiffrer

<?php
/* Charge un chiffrement */
$td mcrypt_module_open('rijndael-256''''ofb''');

/* Crée le VI et détermine la taille de la clé */
$iv mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$ks mcrypt_enc_get_key_size($td);

/* Crée la clé */
$key substr(md5('very secret key'), 0$ks);

/* Intialise le chiffrement */
mcrypt_generic_init($td$key$iv);

/* Chiffre les données */
$encrypted mcrypt_generic($td'This is very important data');

/* Libère le gestionnaire de chiffrement */
mcrypt_generic_deinit($td);

/* Initialise le module de chiffrement pour le déchiffrement */
mcrypt_generic_init($td$key$iv);

/* Déchiffre les données */
$decrypted mdecrypt_generic($td$encrypted);

/* Libère le gestionnaire de déchiffrement, et ferme le module */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

/* Affiche la chaîne */
echo trim($decrypted)."\n";
?>

Voir aussi



mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_self_testTeste un mode

Description

bool mcrypt_module_self_test ( string $algorithm [, string $lib_dir ] )

Effectue un test sur l'algorithme spécifié.

Liste de paramètres

algorithm

The algorithm to test.

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Retourne TRUE si le test fonctionne, et FALSE sinon.

Exemples

Exemple #1 Exemple avec mcrypt_module_self_test()

<?php
var_dump
(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)



mcrypt_ofb

(PHP 4, PHP 5)

mcrypt_ofbChiffre/déchiffre des données en mode OFB

Description

string mcrypt_ofb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_ofb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_ofb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().



mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_genericDéchiffre les données

Description

string mdecrypt_generic ( resource $td , string $data )

Déchiffre les données data. Notez que la longueur de la chaîne déchiffrée peut être plus longue que la chaîne originale, car elle peut avoir été complétée par des caractères.

Liste de paramètres

td

Un descripteur de chiffrement, retourné par la fonction mcrypt_module_open()

data

Les données chiffrées.

Exemples

Exemple #1 Exemple avec mdecrypt_generic()

<?php
/* Données */
$key 'Ceci est une très longue clé de chiffrement, et même trop longue';
$plain_text 'Ceci sont des données importantes';

/* Ouvre le module et crée un VI */ 
$td mcrypt_module_open('des''''ecb''');
$key substr($key0mcrypt_enc_get_key_size($td));
$iv_size mcrypt_enc_get_iv_size($td);
$iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);

/* Initialise le module de chiffrement */
if (mcrypt_generic_init($td$key$iv) != -1) {

    
/* Chiffre les données */
    
$c_t mcrypt_generic($td$plain_text);
    
mcrypt_generic_deinit($td);

    
/* Réinitialise les tampons pour le déchiffrement */
    
mcrypt_generic_init($td$key$iv);
    
$p_t mdecrypt_generic($td$c_t);

    
/* Nettoye */
    
mcrypt_generic_deinit($td);
    
mcrypt_module_close($td);
}

if (
strncmp($p_t$plain_textstrlen($plain_text)) == 0) {
    echo 
"ok\n";
} else {
    echo 
"erreur\n";
}
?>

L'exemple ci-dessus montre comment vérifier que les données avant chiffrement sont bien les mêmes que celles après chiffrement/déchiffrement. Il est très important de réinitialiser le buffer de chiffrement avec mcrypt_generic_init() avant que nous ne déchiffriez les données.

Le gestionnaire de déchiffrement doit toujours être initialisé par la fonction mcrypt_generic_init() avec une clé et un VI avant d'appeler cette fonction. Lorsque le chiffrement est fait, il faut que vous libériez les données chiffrées en appelant mcrypt_generic_deinit(). Voir mcrypt_module_open() pour un exemple.

Voir aussi


Sommaire




Mhash


Introduction

Ces fonctions ont été prévues pour fonctionner avec » mhash. Mhash peut être utilisée pour créer une somme de contrôle, un hachage et bien plus.

Cet ensemble de fonctions représente une interface avec la bibliothèque mhash. Mhash accepte un grand nombre d'algorithmes différents, tels MD5, SHA1, GOST et bien d'autres. Pour une liste complète des hashes supportés, reportez-vous à la page sur les constantes. La règle générale est que vous pouvez accéder à un algorithme depuis PHP avec la constante MHASH_hashname. Par exemple, pour accéder à l'algorithme TIGER, vous pouvez utiliser la constante PHP MHASH_TIGER.

Note:

Cette extension est obsolète. Veuillez utiliser l'extension Hash à la place.



Installation/Configuration

Sommaire


Pré-requis

Pour l'utiliser, téléchargez les distributions de mhash depuis ce » site internet et suivez les instructions d'installation incluses.



Installation

Vous aurez besoin de compiler PHP avec l'option --with-mhash[=DIR] pour activer cette extension. DIR est le chemin du dossier d'installation de la bibliothèque MHASH.

Depuis PHP 5.3.0, l'extension mhash est émulée via l'extension Hash. Aussi, l'option permettant de spécifier le dossier d'installation de mhash n'a plus d'effet, et cette extension nécessite l'installation de l'extension hash pour fonctionner.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Voici une liste des modes qui sont supportés par mhash. Si un mode n'est pas listé ici, mais listé dans la documentation mhash comme étant supporté, vous pouvez considéré que cette liste n'est plus à jour.

  • MHASH_ADLER32
  • MHASH_CRC32
  • MHASH_CRC32B
  • MHASH_GOST
  • MHASH_HAVAL128
  • MHASH_HAVAL160
  • MHASH_HAVAL192
  • MHASH_HAVAL224
  • MHASH_HAVAL256
  • MHASH_MD2
  • MHASH_MD4
  • MHASH_MD5
  • MHASH_RIPEMD128
  • MHASH_RIPEMD256
  • MHASH_RIPEMD320
  • MHASH_SHA1
  • MHASH_SHA192
  • MHASH_SHA224
  • MHASH_SHA256
  • MHASH_SHA384
  • MHASH_SHA512
  • MHASH_SNEFRU128
  • MHASH_SNEFRU256
  • MHASH_TIGER
  • MHASH_TIGER128
  • MHASH_TIGER160
  • MHASH_WHIRLPOOL



Exemples

Exemple #1 Calcule le MD5 et le hmac, puis l'affiche comme un hexadécimal

<?php
$input 
"what do ya want for nothing?";
$hash mhash(MHASH_MD5$input);
echo 
"Le hash vaut " bin2hex($hash) . "<br />\n";
$hash mhash(MHASH_MD5$input"Jefe");
echo 
"Le hmac vaut " bin2hex($hash) . "<br />\n";
?>

L'exemple ci-dessus va afficher :

Le hash vaut d03cb659cbf9192dcd066272249f8412
Le hmac vaut 750c783e6ab0b503eaa86e310a5db738



Fonctions Mhash


mhash_count

(PHP 4, PHP 5)

mhash_countRécupère l'identifiant maximal de hash

Description

int mhash_count ( void )

Récupère l'identifiant maximal de hash.

Valeurs de retour

Retourne l'identifiant de hash maximal. Les hashs sont numérotés de 0 jusqu'à cet identifiant.

Exemples

Exemple #1 Parcourir la liste des hash

<?php

$nr 
mhash_count();

for (
$i 0$i <= $nr$i++) {
    echo 
sprintf("La taille de bloc de %s est %d\n",
        
mhash_get_hash_name($i),
        
mhash_get_block_size($i));
}
?>



mhash_get_block_size

(PHP 4, PHP 5)

mhash_get_block_sizeRetourne la taille de bloc du hash

Description

int mhash_get_block_size ( int $hash )

Retourne la taille de bloc du hash spécifié.

Liste de paramètres

hash

L'identifiant du hash. Une des constantes MHASH_hashname.

Valeurs de retour

Retourne la taille, en octets, ou FALSE si le hash n'existe pas.

Exemples

Exemple #1 Exemple avec mhash_get_block_size()

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>



mhash_get_hash_name

(PHP 4, PHP 5)

mhash_get_hash_nameRetourne le nom du hash

Description

string mhash_get_hash_name ( int $hash )

Retourne le nom du hash spécifié.

Liste de paramètres

hash

L'identifiant du hash. Une des constantes MHASH_hashname.

Valeurs de retour

Retourne le nom du hash ou FALSE si le hash n'existe pas.

Exemples

Exemple #1 Exemple avec mhash_get_hash_name()

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>



mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2kGénère une clé

Description

string mhash_keygen_s2k ( int $hash , string $password , string $salt , int $bytes )

Génère une clé suivant le hash fourni, en utilisant le mot de passe password fourni.

Cette fonction utilise l'algorithme Salted S2K, spécifié dans OpenPGP (» RFC 2440).

N'oubliez pas que les mots de passe fournis par les utilisateurs ne sont pas conseillés pour faire des clés cryptographiques, étant donné que les utilisateurs normaux retiennent des mots de passe qu'ils peuvent saisir au clavier. Ces mots de passe utilisent uniquement 6 à 7 des 8 bits d'un caractère (voire moins). Il est vivement recommandé d'appliquer une fonction de transformation (comme celle-ci), à un mot de passe utilisateur.

Liste de paramètres

hash

L'identifiant du hash utilisé pour créer la clé. Une parmi les constantes MHASH_hashname.

password

Mot de passe fourni par l'utilisateur.

salt

Doit être différent et suffisamment aléatoire pour chaque clé que vous générez, afin de créer des clés différentes. Du fait que le paramètre salt doit être connu lorsque vous vérifiez les clés, c'est une bonne idée de l'ajouter à la clé. Le paramètre salt doit avoir une longueur de 8 octets, et sera complété de zéro si vous en fournissez un d'une taille inférieure.

bytes

La longueur de la clé, en octets.

Valeurs de retour

Retourne la clé générée, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



mhash

(PHP 4, PHP 5)

mhashCalcule un hash

Description

string mhash ( int $hash , string $data [, string $key ] )

mhash() applique la fonction de hash hash aux données data.

Liste de paramètres

hash

L'identifiant du hash. Une parmi les constantes MHASH_hashname.

data

L'entrée utilisateur, sous la forme d'une chaîne de caractères.

key

Spécifié, la fonction retournera le HMAC résultant. HMAC est un hash indexé utilisé pour l'identification de message, ou bien un simple rapport de message, suivant la clé spécifiée. Certains algorithmes supportés dans mhash ne sont pas compatibles avec le mode HMAC.

Valeurs de retour

Retourne le hash résultant (appelé aussi "digest") ou HMAC, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.


Sommaire




OpenSSL


Introduction

Cette extension utilise les fonctions de » OpenSSL pour générer et vérifier les signatures, ainsi que pour sceller (chiffrer) et ouvrir (déchiffrer) les données. OpenSSL offre beaucoup de fonctionnalités que ce module n'offre pas actuellement. Quelques-unes pourront être ajoutées dans le futur.



Installation/Configuration

Sommaire


Pré-requis

Afin de pouvoir utiliser les fonctions OpenSSL, vous devez installer les fonctions » OpenSSL. PHP depuis les version 4.0.5 et 4.3.1 fonctionnent avec openSSL >= 0.9.5. Les autres versions (PHP <=4.0.4 et >= 4.3.2) nécessitent OpenSSL >= 0.9.6.

Avertissement

Vous êtes vivement encouragé à utiliser la version la plus récente d'OpenSSL afin d'éviter certaines vulnérabilités sur votre serveur web.



Installation

Pour utiliser le support OpenSSL de PHP, vous devez aussi compiler PHP avec l'option de configuration --with-openssl[=DIR] .

La bibliothèque OpenSSL possède aussi des dépendances à l'exécution. Par exemple, OpenSSL a besoin d'accéder à un générateur de nombres pseudo-aléatoires; sur la plupart des plateformes Unix (incluant donc Linux), elle doit avoir accès au périphérique /dev/urandom ou /dev/random.

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libeay32.dll

De plus, si vous avez prévu d'utiliser les fonctions relatives à la génération de clés et aux certificats, vous devez installer un fichier openssl.cnf valide sur votre système. Depuis PHP 4.3.0, nous incluons un fichier de configuration de base dans les distributions de PHP pour win32. PHP 4.3.x et 4.4.x ont ce fichier dans le dossier openssl. PHP 5.x et 6.x ont ce fichier dans le dossier extras/openssl. Si vous utilisez PHP 4.2.x ou bien si le fichier n'est pas présent, vous pouvez l'obtenir sur la page » des binaires OpenSSL ou en téléchargeant une version récente de PHP. Attention : Windows Explorer cache par défaut les fichiers dont l'extension est .cnf et indique que le type de fichier est SpeedDial.

PHP va rechercher le fichier openssl.cnf suivant la tactique suivante :

  • La variable d'environnement OPENSSL_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.
  • La variable d'environnement SSLEAY_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.
  • Le fichier openssl.cnf sera supposé se trouver dans le dossier des certificats, tel que configuré lors de la compilation de la bibliothèque openssl. Cela signifie généralement c:\usr\local\ssl\openssl.cnf.

Dans votre installation, vous devrez décider si vous allez installer le fichier dans c:\usr\local\ssl\openssl.cnf ou si vous allez le faire ailleurs et configurer une variable d'environnement (possiblement par site virtuel). Notez qu'il est possible de remplacer le chemin par défaut en utilisant le paramètre configargs des fonctions qui requièrent un fichier de configuration.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Sommaire

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Options de validations générales

X509_PURPOSE_SSL_CLIENT (entier)
X509_PURPOSE_SSL_SERVER (entier)
X509_PURPOSE_NS_SSL_SERVER (entier)
X509_PURPOSE_SMIME_SIGN (entier)
X509_PURPOSE_SMIME_ENCRYPT (entier)
X509_PURPOSE_CRL_SIGN (entier)
X509_PURPOSE_ANY (entier)


Options de remplissage (Padding)

OPENSSL_PKCS1_PADDING (entier)
OPENSSL_SSLV23_PADDING (entier)
OPENSSL_NO_PADDING (entier)
OPENSSL_PKCS1_OAEP_PADDING (entier)


Types de clés

OPENSSL_KEYTYPE_RSA (entier)
OPENSSL_KEYTYPE_DSA (entier)
OPENSSL_KEYTYPE_DH (entier)


Constantes/options PKCS7

Les fonctions S/MIME utilisent des options qui sont spécifiées par un champ de bits. Les valeurs valides sont :

Constantes PKCS7
Constante Description
PKCS7_TEXT Ajoute le texte plein en clair dans les en-têtes du message signé/chiffré. Lors du déchiffrement ou la vérification, il supprime purement et simplement ces données. Si le message chiffré ou signé n'est pas du type MIME, une erreur surviendra.
PKCS7_BINARY Normalement, le message est converti au format canonique qui utilise effectivement des CR et LF comme fin de ligne, comme demandé dans les spécifications de S/MIME. Lorsque cette option est activée, le message ne sera pas converti. Cela sert lorsque vous manipulez des données binaires qui ne sont pas au format MIME.
PKCS7_NOINTERN Lors de la vérification d'un message, les certificats (s'il y en a) inclus dans le message sont normalement utilisés pour rechercher le certificat de signature. Avec cette option, seul le certificat spécifié par le paramètre extracerts de la fonction openssl_pkcs7_verify() est utilisé. Les certificats fournis peuvent toujours être utilisés, avec un niveau de confiance réduit.
PKCS7_NOVERIFY Ne vérifie pas les certificats des signataires d'un message signé.
PKCS7_NOCHAIN N'enchaîne pas les vérifications des signataires de certificats. C'est-à-dire, n'utilise pas les certificats contenu dans le message.
PKCS7_NOCERTS Lors de la signature d'un message, le certificat du signataire est normalement inclus. Avec cette option, c'est désactivé. Cela va réduire la taille du message, mais le vérificateur devra avoir une copie locale du certificat du signataire (passée au paramètre extracerts, avec la fonction openssl_pkcs7_verify()).
PKCS7_NOATTR Normalement, lorsqu'un message est signé, un jeu d'attributs contenant l'heure de signature et l'algorithme symétrique supporté, est inclus dans le message. Avec cette option, il n'est pas inclus.
PKCS7_DETACHED Lors de la signature d'un message, utilise la signature en texte clair, avec le type MIME "multipart/signed". C'est la valeur par défaut du paramètre flags pour la fonction openssl_pkcs7_sign(). Si vous annulez cette option, le message sera signé de manière opaque, ce qui résiste mieux à la traduction des relais mail (certains anciens serveurs mail corrompent les messages), mais empêche la lecture par les client emails qui ne connaissent pas S/MIME.
PKCS7_NOSIGS Ne vérifie pas les signatures d'une message

Note:

Ces constantes ont été ajoutées en PHP 4.0.6.



Algorithme de signature

OPENSSL_ALGO_DSS1 (entier)
OPENSSL_ALGO_SHA1 (entier)
Utilisé comme algorithme par défaut pour les fonctions openssl_sign() et openssl_verify().
OPENSSL_ALGO_MD5 (entier)
OPENSSL_ALGO_MD4 (entier)
OPENSSL_ALGO_MD2 (entier)

Note:

Ces constantes ont été ajoutées depuis PHP 5.0.0.



Chiffrements

OPENSSL_CIPHER_RC2_40 (entier)
OPENSSL_CIPHER_RC2_128 (entier)
OPENSSL_CIPHER_RC2_64 (entier)
OPENSSL_CIPHER_DES (entier)
OPENSSL_CIPHER_3DES (entier)

Note:

Ces constantes ont été ajoutées depuis PHP 4.3.0.



Constantes de version

OPENSSL_VERSION_TEXT (entier)
OPENSSL_VERSION_NUMBER (entier)

Note:

Ces constantes ont été ajoutées depuis PHP 5.2.0.



Constantes d'identification du nom de serveur

OPENSSL_TLSEXT_SERVER_NAME (string)
Si le support SNI est disponible ou non.

Note:

Cette constante a été ajoutée en PHP 5.3.2 et nécessite que PHP ait été compilé avec OpenSSL 0.9.8j ou supérieur.




Paramètres clés/certificats

Un bon nombre de fonctions OpenSSL demandent une clé et un certificat comme paramètres. PHP 4.0.5 et plus récent utilisait des clés ou certificats sous forme de ressource, retournée par l'une des fonctions openssl_get_xxx(). Les versions ultérieures utilisent l'une des méthodes suivantes :

  • Certificats

    1. Une ressource X.509 retournée par openssl_x509_read()
    2. Une chaîne au format file://path/to/cert.pem; Le fichier ainsi repéré doit contenir un certificat, encodé au format PEM
    3. Une chaîne contenant le contenu d'un certificat, encodé au format PEM.

  • Clés publiques/privées

    1. Une ressource clé, retournée par la fonction openssl_get_publickey() ou openssl_get_privatekey()
    2. Pour les clés publiques seulement : une ressource X.509
    3. Une chaîne avec le format : file://path/to/file.pem. Le fichier doit contenir une clé privée, ou un certificat, encodé au format PEM (il peut contenir les deux).
    4. Une chaîne contenant une clé ou un certificat encodé au format PEM
    5. Pour les clés privées, vous pouvez aussi utiliser la syntaxe array($key, $passphrase), où $key représente une clé spécifiée par un fichier ou une représentation textuelle comme cité ci-dessus, et $passphrase représente une chaîne contenant la phrase de passe de cette clé privée.



Vérification de certificats

Lorsque vous appelez une fonction qui va vérifier une signature ou un certificat, le paramètre cainfo doit être un tableau contenant les noms d'un dossier et d'un fichier indiquant les tiers de confiance. Si un dossier est spécifié, il doit être correct, car openssl va l'utiliser.



Fonctions OpenSSL


openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export_to_fileExporte une CSR vers un fichier

Description

bool openssl_csr_export_to_file ( resource $csr , string $outfilename [, bool $notext = true ] )

openssl_csr_export_to_file() prend la CSR représentée par le paramètre csr et la sauve dans le fichier nommé outfilename.

Liste de paramètres

csr

outfilename

Chemin vers le fichier de sortie.

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_exportExporte un CSR vers un fichier ou une variable

Description

bool openssl_csr_export ( resource $csr , string &$out [, bool $notext = true ] )

openssl_csr_export() convertit la requête de signature de certificat représentée par csr au format ASCII et la stocke dans la variable out, qui est passée par référence.

Liste de paramètres

csr

out

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openssl_csr_get_public_key

(PHP 5 >= 5.2.0)

openssl_csr_get_public_keyRetourne la clé publique d'un CERT

Description

resource openssl_csr_get_public_key ( mixed $csr [, bool $use_shortnames = true ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



openssl_csr_get_subject

(PHP 5 >= 5.2.0)

openssl_csr_get_subjectRetourne le sujet d'un CERT

Description

array openssl_csr_get_subject ( mixed $csr [, bool $use_shortnames = true ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_newGénère une CSR

Description

mixed openssl_csr_new ( array $dn , resource &$privkey [, array $configargs [, array $extraattribs ]] )

openssl_csr_new() génère une nouvelle CSR (Certificate Signing Request, requête de signature de certificat), basée sur les informations apportés par dn, qui représente le nom unique (Distinguished Name) qui doit être utilisé pour ce certificat.

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

dn

Le nom distingué qui doit être utilisé dans le certificat.

privkey

privkey doit être une clé privée qui a été générée par openssl_pkey_new() (ou obtenue autrement par l'une des fonctions de la famille openssl_pkey) La clé publique sera utilisée pour signer la CSR.

configargs

Par défaut, le fichier openssl.conf de votre système est utilisé pour initialiser la requête; vous pouvez spécifier une section du fichier de configuration en paramétrant la clé config_section_section de configargs. Vous pouvez aussi spécifier un fichier de configuration openssl alternatif en paramétrant la valeur de config avec le chemin du fichier à utiliser. Si les clés suivantes sont présentes dans configargs, elles se comportent comme leurs équivalents dans openssl.conf, selon la liste suivante.

Écrasement de configuration
configargs type Équivalent de openssl.conf description
digest_alg string default_md Sélectionne l'algorithme de hachage à utiliser
x509_extensions string x509_extensions Sélectionne quelle extension utiliser lors de la création d'un certificat x509
req_extensions string req_extensions Sélectionne quelle extension utiliser lors de la création d'une CSR
private_key_bits integer default_bits Spécifie la longueur en bits de la clé privée
private_key_type integer none Spécifie le type de clé privée à créer. Les valeurs possibles sont OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH ou OPENSSL_KEYTYPE_RSA. La valeur par défaut est OPENSSL_KEYTYPE_RSA qui est actuellement le seul type de clé supporté.
encrypt_key boolean encrypt_key La clé (avec mot de passe) exportée doit-elle être chiffrée?

extraattribs

extraattribs est utilisé pour spécifier des options de configuration supplémentaires pour la CSR. Les deux paramètres dn et extraattribs sont des tableaux associatifs dont les clés sont converties en OIDs et appliquées aux parties appropriées de la requête.

Valeurs de retour

Retourne la CSR.

Exemples

Exemple #1 Création d'un certificat autosigné

<?php
// Assigne les valeurs du nom distingué à utiliser avec le certificat
// Vous devez remplacer les valeurs suivantes pour qu'elles correspondent
// au nom de votre compagnie, ou, plus précisément, le nom de la personne
// qui représente le site de votre compagnie pour qui vous générez des certificats.
// Pour les certificats SSL, le commonName est généralement le nom de domaine
// pour lequel vous installez le certificat, mais pour les certificats S/MIME,
// le commonName sera le nom de la personne qui utilisera le certificat.
$dn = array(
    
"countryName" => "UK",
    
"stateOrProvinceName" => "Somerset",
    
"localityName" => "Glastonbury",
    
"organizationName" => "The Brain Room Limited",
    
"organizationalUnitName" => "PHP Documentation Team",
    
"commonName" => "Wez Furlong",
    
"emailAddress" => "wez@example.com"
);

// Génère les clés privée et publique
$privkey openssl_pkey_new();

// Génère la requête de signature de certificat
$csr openssl_csr_new($dn$privkey);

// Vous souhaiterez généralement créer un certificat auto-signé
// une fois que votre autorité de certification accède à votre requête
// Cette commande crée une certificat auto-signé valide 365 jours
$sscert openssl_csr_sign($csrnull$privkey365);

// Maintenant, vous voulez préserver la clé privée, la CSR et le certificat
// auto-signé, de façon à ce qu'ils puissent être installés sur votre
// serveur web, serveur mail ou client mail (suivant l'utilisation).
// Cet exemple vous montre comment placer ces éléments dans des variables
// mais vous pouvez aussi les mettre directement dans des fichiers.
// Typiquement, vous allez envoyer la CSR à votre autorité de certification
// qui vous émettra un "vrai" certificat.
openssl_csr_export($csr$csrout) and var_dump($csrout);
openssl_x509_export($sscert$certout) and var_dump($certout);
openssl_pkey_export($privkey$pkeyout"mypassword") and var_dump($pkeyout);

// Affiche les erreurs qui sont survenues
while (($e openssl_error_string()) !== false) {
    echo 
$e "\n";
}
?>



openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_signSigne un CSR avec un autre certificat (ou lui-même) et génère un certificat

Description

resource openssl_csr_sign ( mixed $csr , mixed $cacert , mixed $priv_key , int $days [, array $configargs [, int $serial = 0 ]] )

openssl_csr_sign() génère une ressource de certificat x509 depuis la CSR donnée.

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

csr

Une CSR générée précédemment par openssl_csr_new(). mais ce paramètre peut aussi être une Ca peut aussi être le chemin vers une CSR encodée au format PEM, et spécifiée avec file://path/to/csr ou une chaîne exportée par openssl_csr_export().

cacert

Le certificat généré sera signé par le certificat cacert. Si cacert vaut NULL, le certificat généré sera autosigné.

priv_key

priv_key est la clé privée qui correspond au certificat cacert.

days

days spécifie la durée pour laquelle le certificat est valide, en nombre de jours.

configargs

Vous pouvez affiner la signature CSR avec configargs. Voir la fonction openssl_csr_new() pour plus d'informations sur configargs.

serial

Un numéro de série optionnel pour le certificat émis. S'il n'est pas spécifié, il vaudra 0.

Valeurs de retour

Retourne la ressource de certificat x509 en cas de succès, FALSE sinon.

Historique

Version Description
4.3.3 Le paramètre serial a été ajouté.

Exemples

Exemple #1 Exemple avec openssl_csr_sign() - signer une CSR (comment être votre propre Autorité de Certification)

<?php
// Supposons que ce script est configuré pour recevoir des CSR qui ont
// été collés dans un champ textarea depuis une autre page
$csrdata $_POST["CSR"];

// Nous allons signer la requête avec notre propre certificat, en tant 
// qu'"autorité de certification". Vous pouvez utiliser n'importe quel
// certificat pour en signer un autre, mais le processus est inutile à moins
// que le certificat de signature n'ait la confiance des utilisateurs
// qui utiliseront le nouveau certificat signé.

// Nous avons besoin de notre certificat et de la clé privée
$cacert "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key""la_cle_secrete_de_votre_certificat");

$usercert openssl_csr_sign($csrdata$cacert$privkey365);

// Affichons maintenant le certificat généré, de façon à ce que l'utilisateur
// puisse le copier/coller dans sa configuration locale (comme un
// fichier qui contient les certificats de son serveur SSL)
openssl_x509_export($usercert$certout);
echo 
$certout;

// Affiche toutes les erreurs survenues
while (($e openssl_error_string()) !== false) {
    echo 
$e "\n";
}
?>



openssl_decrypt

(PHP 5 >= 5.3.0)

openssl_decryptDécrypte les données

Description

string openssl_decrypt ( string $data , string $method , string $password [, bool $raw_input = false [, string $iv = "" ]] )

Prend une chaine brute ou base64 encodée et la décrypte en utilisant la méthode et la clé passées.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données.

method

La méthode de cipher.

password

Le password.

raw_input

Passez TRUE si les donnée sen entrées sont brutes, sinon une chaine base64 encodée est requise pour data.

Valeurs de retour

La chaine décryptée en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Emmet une erreur de niveau E_WARNING si un algorithme cipher inconnu est passé via method.

Voir aussi



openssl_dh_compute_key

(No version information available, might only be in SVN)

openssl_dh_compute_keyCalcule un secret partagé pour une valeur publique des clés DH locales et distantes

Description

string openssl_dh_compute_key ( string $pub_key , resource $dh_key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pub_key

La clé publique

dh_key

La clé DH

Valeurs de retour

Retourne la clé calculée en cas de succès ou FALSE si une erreur survient.



openssl_digest

(PHP 5 >= 5.3.0)

openssl_digestCalcule un digest

Description

string openssl_digest ( string $data , string $method [, bool $raw_output = false ] )

Calcule une hash digest pour les données d'entrée en utilisant la méthode fournie. Retourne une chaine brute ou héxadécimale.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données.

method

La méthode digest à utiliser.

raw_output

Passez à TRUE et une donnée brute sera retournée, sinon la valeur retournée sera héxadécimale.

Valeurs de retour

Retourne la valeur en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Emmet une erreur de niveau E_WARNING si un algorithme inconnu est passé au paramètre method.

Voir aussi



openssl_encrypt

(PHP 5 >= 5.3.0)

openssl_encryptCrypte les données

Description

string openssl_encrypt ( string $data , string $method , string $password [, bool $raw_output = false [, string $iv = "" ]] )

Cryte les données passées avec la méthode et la clé précisées. Retourne une chaine brute ou base64.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données.

method

La méthode de cipher.

password

Le password.

raw_output

Passez à TRUE fera retourner des données brutes, sinon la valeur retournée sera encodée base64.

Valeurs de retour

Retourne la chaine cryptée en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Emmet une erreur de niveau E_WARNING si un algorithme cipher inconnu est passé comme paramètre method.

Voir aussi



openssl_error_string

(PHP 4 >= 4.0.6, PHP 5)

openssl_error_stringRetourne le message d'erreur OpenSSL

Description

string openssl_error_string ( void )

openssl_error_string() retourne la dernière erreur de la bibliothèque OpenSSL. Les messages d'erreurs sont empilés, et openssl_error_string() doit être appelé plusieurs fois pour afficher toutes les erreurs.

Valeurs de retour

Retourne un message d'erreur, sous la forme d'une chaîne de caractères, ou FALSE s'il n'y a plus de message à afficher.

Exemples

Exemple #1 Exemple avec openssl_error_string()

<?php
// Imaginons que vous avez appelé une fonction qui a émis une erreur
while ($msg openssl_error_string())
    echo 
$msg "<br />\n";
?>



openssl_free_key

(PHP 4 >= 4.0.4, PHP 5)

openssl_free_keyLibère les ressources

Description

void openssl_free_key ( resource $key_identifier )

openssl_free_key() libère les ressources associées à key_identifier.

Liste de paramètres

key_identifier

Valeurs de retour

Aucune valeur n'est retournée.



openssl_get_cipher_methods

(PHP 5 >= 5.3.0)

openssl_get_cipher_methodsRécupère la liste des méthodes cipher disponibles

Description

array openssl_get_cipher_methods ([ bool $aliases = false ] )

Récupère la liste des méthodes cipher disponibles.

Liste de paramètres

aliases

Passez TRUE si vous voulez que les alias de cipher soient inclus dans le tableau retourné.

Valeurs de retour

Un array des méthodes cipher disponibles.

Exemples

Exemple #1 Exemple openssl_get_cipher_methods()

Montre à quoi ressemblent les ciphers disponibles, ainsi que les alias disponibles.

<?php
$ciphers             
openssl_get_cipher_methods();
$ciphers_and_aliases openssl_get_cipher_methods(true);
$cipher_aliases      array_diff($ciphers_and_aliases$ciphers);

print_r($ciphers);

print_r($cipher_aliases);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => AES-128-CBC
    [1] => AES-128-CFB
    [2] => AES-128-CFB1
    [3] => AES-128-CFB8
    [4] => AES-128-ECB
    [5] => AES-128-OFB
    [6] => AES-192-CBC
    [7] => AES-192-CFB
    [8] => AES-192-CFB1
    [9] => AES-192-CFB8
    [10] => AES-192-ECB
    [11] => AES-192-OFB
    [12] => AES-256-CBC
    [13] => AES-256-CFB
    [14] => AES-256-CFB1
    [15] => AES-256-CFB8
    [16] => AES-256-ECB
    [17] => AES-256-OFB
    [18] => BF-CBC
    [19] => BF-CFB
    [20] => BF-ECB
    [21] => BF-OFB
    [22] => CAST5-CBC
    [23] => CAST5-CFB
    [24] => CAST5-ECB
    [25] => CAST5-OFB
    [26] => DES-CBC
    [27] => DES-CFB
    [28] => DES-CFB1
    [29] => DES-CFB8
    [30] => DES-ECB
    [31] => DES-EDE
    [32] => DES-EDE-CBC
    [33] => DES-EDE-CFB
    [34] => DES-EDE-OFB
    [35] => DES-EDE3
    [36] => DES-EDE3-CBC
    [37] => DES-EDE3-CFB
    [38] => DES-EDE3-OFB
    [39] => DES-OFB
    [40] => DESX-CBC
    [41] => IDEA-CBC
    [42] => IDEA-CFB
    [43] => IDEA-ECB
    [44] => IDEA-OFB
    [45] => RC2-40-CBC
    [46] => RC2-64-CBC
    [47] => RC2-CBC
    [48] => RC2-CFB
    [49] => RC2-ECB
    [50] => RC2-OFB
    [51] => RC4
    [52] => RC4-40
    [53] => aes-128-cbc
    [54] => aes-128-cfb
    [55] => aes-128-cfb1
    [56] => aes-128-cfb8
    [57] => aes-128-ecb
    [58] => aes-128-ofb
    [59] => aes-192-cbc
    [60] => aes-192-cfb
    [61] => aes-192-cfb1
    [62] => aes-192-cfb8
    [63] => aes-192-ecb
    [64] => aes-192-ofb
    [65] => aes-256-cbc
    [66] => aes-256-cfb
    [67] => aes-256-cfb1
    [68] => aes-256-cfb8
    [69] => aes-256-ecb
    [70] => aes-256-ofb
    [71] => bf-cbc
    [72] => bf-cfb
    [73] => bf-ecb
    [74] => bf-ofb
    [75] => cast5-cbc
    [76] => cast5-cfb
    [77] => cast5-ecb
    [78] => cast5-ofb
    [79] => des-cbc
    [80] => des-cfb
    [81] => des-cfb1
    [82] => des-cfb8
    [83] => des-ecb
    [84] => des-ede
    [85] => des-ede-cbc
    [86] => des-ede-cfb
    [87] => des-ede-ofb
    [88] => des-ede3
    [89] => des-ede3-cbc
    [90] => des-ede3-cfb
    [91] => des-ede3-ofb
    [92] => des-ofb
    [93] => desx-cbc
    [94] => idea-cbc
    [95] => idea-cfb
    [96] => idea-ecb
    [97] => idea-ofb
    [98] => rc2-40-cbc
    [99] => rc2-64-cbc
    [100] => rc2-cbc
    [101] => rc2-cfb
    [102] => rc2-ecb
    [103] => rc2-ofb
    [104] => rc4
    [105] => rc4-40
)
Array
(
    [18] => AES128
    [19] => AES192
    [20] => AES256
    [21] => BF
    [26] => CAST
    [27] => CAST-cbc
    [32] => DES
    [47] => DES3
    [48] => DESX
    [50] => IDEA
    [55] => RC2
    [82] => aes128
    [83] => aes192
    [84] => aes256
    [85] => bf
    [90] => blowfish
    [91] => cast
    [92] => cast-cbc
    [97] => des
    [112] => des3
    [113] => desx
    [115] => idea
    [120] => rc2
)

Voir aussi



openssl_get_md_methods

(PHP 5 >= 5.3.0)

openssl_get_md_methodsRécupère la liste des méthodes digest disponibles

Description

array openssl_get_md_methods ([ bool $aliases = false ] )

Récupère la liste des méthodes digest disponibles.

Liste de paramètres

aliases

Passez TRUE si vous voulez que les alias de digest soient inclus dans le tableau retourné.

Valeurs de retour

Un array des méthodes digest disponibles.

Exemples

Exemple #1 Exemple openssl_get_md_methods()

Montre à quoi ressemblent les digests disponibles, ainsi que les alias disponibles.

<?php
$digests             
openssl_get_md_methods();
$digests_and_aliases openssl_get_md_methods(true);
$digest_aliases      array_diff($digests_and_aliases$digests);

print_r($digests);

print_r($digest_aliases);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => DSA
    [1] => DSA-SHA
    [2] => MD2
    [3] => MD4
    [4] => MD5
    [5] => RIPEMD160
    [6] => SHA
    [7] => SHA1
    [8] => SHA224
    [9] => SHA256
    [10] => SHA384
    [11] => SHA512
    [12] => dsaEncryption
    [13] => dsaWithSHA
    [14] => ecdsa-with-SHA1
    [15] => md2
    [16] => md4
    [17] => md5
    [18] => ripemd160
    [19] => sha
    [20] => sha1
    [21] => sha224
    [22] => sha256
    [23] => sha384
    [24] => sha512
)
Array
(
    [2] => DSA-SHA1
    [3] => DSA-SHA1-old
    [4] => DSS1
    [9] => RSA-MD2
    [10] => RSA-MD4
    [11] => RSA-MD5
    [12] => RSA-RIPEMD160
    [13] => RSA-SHA
    [14] => RSA-SHA1
    [15] => RSA-SHA1-2
    [16] => RSA-SHA224
    [17] => RSA-SHA256
    [18] => RSA-SHA384
    [19] => RSA-SHA512
    [28] => dsaWithSHA1
    [29] => dss1
    [32] => md2WithRSAEncryption
    [34] => md4WithRSAEncryption
    [36] => md5WithRSAEncryption
    [37] => ripemd
    [39] => ripemd160WithRSA
    [40] => rmd160
    [43] => sha1WithRSAEncryption
    [45] => sha224WithRSAEncryption
    [47] => sha256WithRSAEncryption
    [49] => sha384WithRSAEncryption
    [51] => sha512WithRSAEncryption
    [52] => shaWithRSAEncryption
    [53] => ssl2-md5
    [54] => ssl3-md5
    [55] => ssl3-sha1
)

Voir aussi



openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_privatekeyAlias de openssl_pkey_get_private()

Description

Cette fonction est un alias de : openssl_pkey_get_private().



openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_publickeyAlias de openssl_pkey_get_public()

Description

Cette fonction est un alias de : openssl_pkey_get_public().



openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_openOuvre des données scellées

Description

bool openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id [, string $method ] )

openssl_open() ouvre (déchiffre) les données sealed_data en utilisant la clé privée priv_key_id et la clé d'enveloppe env_key et remplit open_data avec les données déchiffrées. La clé d'enveloppe est générée lorsque les données sont scellées, et ne peut être utilisée qu'avec la clé privée spécifique. Reportez-vous à openssl_seal() pour plus d'informations.

Liste de paramètres

sealed_data

open_data

Si l'appel a réussi, les données ouvertes sont retournées dans ce paramètre.

env_key

priv_key_id

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_open()

<?php
// On suppose que $sealed et $env_key contiennent les données scellées
// et la clé d'enveloppe, fournies par l'expéditeur
// lecture de la clé privée dans un fichier
$fp fopen("/src/openssl-0.9.6/demos/sign/key.pem""r");
$priv_key fread($fp8192);
fclose($fp);
$pkeyid openssl_get_privatekey($priv_key);

// déchiffrage des données : elles sont placées dans $open
if (openssl_open($sealed$open$env_key$pkeyid)) {
    echo 
"Voici les données déchiffrées : "$open;
} else {
    echo 
"Impossible de déchiffrer les données";
}

// libération des ressources
openssl_free_key($pkeyid);
?>

Voir aussi



openssl_pkcs12_export_to_file

(PHP 5 >= 5.2.2)

openssl_pkcs12_export_to_fileExporte un certificat compatible PKCS#12

Description

bool openssl_pkcs12_export_to_file ( mixed $x509 , string $filename , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export_to_file() stocke un certificat x509 dans un fichier nommé filename dans un format PKCS#12.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

filename

Chemin vers le fichier de sortie.

priv_key

Clé privée du fichier PKCS#12.

pass

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

args

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



openssl_pkcs12_export

(PHP 5 >= 5.2.2)

openssl_pkcs12_exportExporte un certificat compatible PKCS#12 dans une variable

Description

bool openssl_pkcs12_export ( mixed $x509 , string &$out , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export() stocke un certificat x509 dans une chaîne nommée out dans un format PKCS#12.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

out

En cas de succès, cette variable contiendra le PKCS#12.

priv_key

Clé privée du fichier PKCS#12.

pass

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

args

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



openssl_pkcs12_read

(PHP 5 >= 5.2.2)

openssl_pkcs12_readLit un certificat PKCS#12 dans un tableau

Description

bool openssl_pkcs12_read ( string $pkcs12 , array &$certs , string $pass )

openssl_pkcs12_read() lit le certificat PKCS#12 fourni par le paramètre pkcs12 dans un tableau nommé certs.

Liste de paramètres

pkcs12

certs

En cas de succès, ce tableau contiendra les données du certificat.

pass

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_decryptDéchiffre un message S/MIME

Description

bool openssl_pkcs7_decrypt ( string $infilename , string $outfilename , mixed $recipcert [, mixed $recipkey ] )

Déchiffre le message S/MIME contenu dans le fichier infilename, en utilisant le certificat et la clé privée spécifiés par recipcert et recipkey.

Liste de paramètres

infilename

outfilename

Le message déchiffré est écrit dans le fichier spécifié par ce paramètre.

recipcert

recipkey

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_pkcs7_decrypt()

<?php
// $cert et $key contiennent vos certificats et clés privés
// On suppose aussi que le message vous est destiné
$infilename "encrypted.msg";  // ce fichier contient votre message chiffré
$outfilename "decrypted.msg"// assurez-vous de pouvoir écrire dans ce fichier

if (openssl_pkcs7_decrypt($infilename$outfilename$cert$key)) {
    echo 
"déchiffré !";
} else {
    echo 
"Échec lors du déchiffrement !";
}
?>



openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encryptChiffre un message S/MIME

Description

bool openssl_pkcs7_encrypt ( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags = 0 [, int $cipherid = OPENSSL_CIPHER_RC2_40 ]] )

openssl_pkcs7_encrypt() prend le contenu du fichier infilename et le chiffre en utilisant un chiffrement RC2 à 40-bit, de manière à ce que le message ne puisse être lu que par le possesseur de recipcerts.

Liste de paramètres

infile

outfile

recipcerts

Soit un certificat X.509, soit un tableau de certificats X.509.

headers

headers est un tableau d'en-têtes qui seront ajoutés en tête de message, une fois que les données auront été chiffrées.

headers peut être un tableau associatif, dont les clés sont les noms d'en-tête, ou bien un tableau indexé dont chaque ligne contient un en-tête complet.

flags

flags peut être utilisé pour spécifier des options qui affecteront le chiffrement (voir les constantes PKCS7).

cipherid

Le chiffrement peut être sélectionné avec le paramètre cipherid.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.0.0 Ajout du paramètre cipherid.

Exemples

Exemple #1 Exemple avec openssl_pkcs7_encrypt()

<?php
// le message que vous souhaitez chiffrer et envoyer à votre agent secret
// en mission commandée, appelé "nighthawk". Vous avez son certificat
// dans le fichier "nighthawk.pem"
$data = <<<EOD
Nighthawk,

Top secret, uniquement votre lecture !

L'ennemi approche! Rendez-vous au café à 8 h 30,
pour votre faux passeport.

HQ
EOD;

// Chargement de la clé
$key file_get_contents("nighthawk.pem");

// Sauvegarde du message dans un fichier
$fp fopen("msg.txt""w");
fwrite($fp$data);
fclose($fp);

// Chiffrons-le
if (openssl_pkcs7_encrypt("msg.txt""enc.txt"$key,
    array(
"To" => "nighthawk@example.com"// syntaxe sous forme de clé
          
"From: HQ <hq@example.com>"// syntaxe sous forme d'indexe
          
"Subject" => "Que pour vos yeux !"))) {
    
// message chiffré - envoyez-le !
    
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>



openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_signSigne un message S/MIME

Description

bool openssl_pkcs7_sign ( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts ]] )

openssl_pkcs7_sign() prend le contenu du fichier infilename et le signe en utilisant le certificat et la clé privée contenus dans les arguments signcert et privkey.

Liste de paramètres

infilename

outfilename

signcert

privkey

headers

headers est un tableau d'en-têtes qui seront ajoutés aux données chiffrées (voir la fonction openssl_pkcs7_encrypt() pour plus de détails sur le format du paramètre).

flags

flags sert à modifier le message final. Voyez les constantes PKCS7.

extracerts

extracerts spécifie le nom du fichier contenant un ensemble de certificats supplémentaires à inclure dans la signature, qui pourront aider le destinataire à vérifier les données que vous utilisez.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_pkcs7_sign()

<?php
// le message que vous voulez signer, afin que le destinataire soit sûr qu'il
// vient bien de vous
$data = <<<EOD

Tu peux dépenser jusqu'à 10000 euros en note de frais.

Ton boss
EOD;
// sauvez le message dans un fichier
$fp fopen("msg.txt""w");
fwrite($fp$data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt""signed.txt""mycert.pem",
    array(
"file://mycert.pem""mypassphrase"),
    array(
"To" => "joes@example.com"// syntaxe à clé
          
"From: HQ <ceo@example.com>"// syntaxe indexée
          
"Subject" => "Eyes only")
    )) {
    
// message signée - envoyez-le !
    
exec(ini_get("sendmail_path") . " < signed.txt");
}
?>



openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verifyVérifie la signature d'un message S/MIME

Description

mixed openssl_pkcs7_verify ( string $filename , int $flags [, string $outfilename [, array $cainfo [, string $extracerts [, string $content ]]]] )

openssl_pkcs7_verify() lit le message S/MIME contenu dans le fichier filename et examine la signature digitale.

Liste de paramètres

filename

Chemin vers le message.

flags

flags sert à modifier la façon dont la signature est vérifiée. Voyez les constantes PKCS7. Par défaut, la valeur est : PKCS7_DETACHED.

outfilename

Si le paramètre outfilename est spécifié, il doit être une chaîne contenant le nom d'un fichier qui contient le certificat du signataire, au format PEM.

cainfo

Si le paramètre cainfo est spécifié, il doit contenir les informations sur les tiers de certificats de confiance utilisé lors de la vérification. Voyez vérification des certificats pour plus de détails.

extracerts

Si le paramètre extracerts est spécifié, il doit représenter le nom d'un fichier contenant un ensemble de certificats utilisés comme certificats de peu de confiance.

content

Vous pouvez spécifier un nom de fichier avec le paramètre content qui peut être remplit avec les données vérifiées, mais avec les informations de signature.

Valeurs de retour

Retourne TRUE si la signature est vérifiée, et FALSE sinon (le message a été modifié, ou bien le certificat de signature est invalide) ou -1 si une erreur survient.

Historique

Version Description
5.1.0 Ajout du paramètre content.

Notes

Note: Tel que spécifié dans la RFC 2045, les lignes ne doivent pas être plus longues que 76 caractères dans le paramètre filename.



openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export_to_fileSauve une clé au format ASCII dans un fichier

Description

bool openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] )

openssl_pkey_export_to_file() sauve la clé au format ASCII (PEM) key dans le fichier outfilename.

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

key

outfilename

Chemin du fichier de sortie.

passphrase

La clé peut éventuellement être protégée par un mot de passe.

configargs

configargs peut être utilisé pour calibrer le processus d'exportation en spécifiant ou remplaçant les options du fichier de configuration d'OpenSSl. Voyez openssl_csr_new() pour plus d'informations sur configargs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_exportStocke une représentation exportable de la clé dans une chaîne de caractères

Description

bool openssl_pkey_export ( mixed $key , string &$out [, string $passphrase [, array $configargs ]] )

openssl_pkey_export() exporte la clé key sous forme de chaîne au format PEM, et la stocke dans la variable out (qui est passée par référence).

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

key

out

passphrase

La clé est éventuellement protégée par le mot de passe passphrase.

configargs

configargs peut être utilisé pour calibrer le processus d'exportation en spécifiant ou remplaçant les options du fichier de configuration d'OpenSSl. Voyez openssl_csr_new() pour plus d'informations sur configargs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_freeLibère une clé privée

Description

void openssl_pkey_free ( resource $key )

Libère une clé privée créée par la fonction openssl_pkey_new().

Liste de paramètres

key

Ressource représentant la clé.

Valeurs de retour

Aucune valeur n'est retournée.



openssl_pkey_get_details

(PHP 5 >= 5.2.0)

openssl_pkey_get_detailsRetourne un tableau contenant le détail d'une clé

Description

array openssl_pkey_get_details ( resource $key )

Retourne les détails d'une clé (bits, key, type).

Liste de paramètres

key

Ressource représentant la clé.

Valeurs de retour

Retourne un tableau avec les détails de la clé en cas de succès, ou FALSE si une erreur survient. Le tableau retourné contient l'index bits (nombre d'octets), key (représentation sous forme de chaîne de caractères de la clé publique) et type (type de clé, parmi les constantes OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC ou -1, signifiant "inconnu").

En fonction du type de clés utilisées, des détails supplémentaires peuvent être retournés. Notez que quelques éléments peuvent ne pas être toujours disponibles.

  • OPENSSL_KEYTYPE_RSA, une clé de tableau additionnelle appelée "rsa", contenant la donnée de clé est retournée
    Key Description
    "n"  
    "e"  
    "d"  
    "p"  
    "q"  
    "dmp1"  
    "dmq1"  
    "iqmp"  
  • OPENSSL_KEYTYPE_DSA, une clé de tableau additionnelle appelée "dsa", contenant la donnée de clé est retournée
    Key Description
    "p"  
    "q"  
    "g"  
    "priv_key"  
    "pub_key"  
  • OPENSSL_KEYTYPE_DH, une clé de tableau additionnelle appelée "dh", contenant la donnée de clé est retournée.
    Key Description
    "p"  
    "g"  
    "priv_key"  
    "pub_key"  


openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_privateLit une clé privée

Description

resource openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] )

openssl_pkey_get_private() analyse la clé key et la prépare pour être utilisée par d'autres fonctions.

Liste de paramètres

key

key peut être l'une des valeurs suivantes :

  1. une chaîne au format file://path/to/file.pem. Le fichier ainsi désigné doit contenir une clé privée ou un certificat au format PEM (éventuellement les deux).
  2. Une clé privée au format PEM.

passphrase

Le paramètre optionnel passphrase doit être utilisé si la clé spécifiée est chiffrée (protégée par un mot de passe).

Valeurs de retour

Retourne une ressource positive représentant une clé en cas de succès, ou FALSE si une erreur survient.



openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_publicExtrait une clé publique d'un certificat, et la prépare

Description

resource openssl_pkey_get_public ( mixed $certificate )

openssl_get_publickey() extrait la clé publique du certificat certificate et la prépare pour être utilisée par les autres fonctions.

Liste de paramètres

certificate

certificate peut avoir l'une des valeurs suivantes :

  1. Une ressource d'un certificat X.509.
  2. Une chaîne au format file://path/to/file.pem. Le fichier ainsi désigné doit contenir une clé privée ou un certificat au format PEM (éventuellement les deux).
  3. Une clé privée au format PEM.

Valeurs de retour

Retourne une ressource positive, représentant une clé en cas de succès, ou FALSE si une erreur survient.



openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_newGénère une nouvelle clé privée

Description

resource openssl_pkey_new ([ array $configargs ] )

openssl_pkey_new() génère une nouvelle paire de clés, une privée et une publique. La partie publique en est accessible via la fonction openssl_pkey_get_public().

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

configargs

Vous pouvez calibrer la génération de la clé (comme le nombre de bits) en utilisant le paramètre configargs. Voir la fonction openssl_csr_new() pour plus de détails sur configargs.

Valeurs de retour

Retourne un identifiant de ressource pour la pkey en cas de succès, FALSE sinon.



openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decryptDéchiffre des données avec une clé privée

Description

bool openssl_private_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_private_decrypt() déchiffre data qui a été chiffrée précédemment avec openssl_private_encrypt(), puis stocke le résultat dans la variable decrypted.

Vous pouvez utiliser cette fonction pour déchiffrer les données qui sont supposées vous être personnellement adressées.

Liste de paramètres

data

decrypted

key

key doit être la clé privée utilisée pour chiffrer les données.

padding

padding peut être OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_encryptChiffre des données avec une clé privée

Description

bool openssl_private_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_private_encrypt() chiffre les données data avec la clé privée key et stocke le résultat dans crypted. Les données chiffrées peuvent être déchiffrées avec la fonction openssl_public_decrypt().

Cette fonction peut être utilisée pour signer les données (ou leurs chiffrements) pour prouver qu'elles n'ont pas été écrites par une autre personne.

Liste de paramètres

data

crypted

key

padding

Le paramètre padding peut être OPENSSL_PKCS1_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_decryptDéchiffre des données avec une clé publique

Description

bool openssl_public_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_public_decrypt() déchiffre les données data qui ont été chiffrées avec la fonction openssl_private_encrypt() et stocke le résultat dans decrypted.

Vous pouvez utiliser cette fonction pour vérifier si le message a été écrit par le propriétaire de la clé privée.

Liste de paramètres

data

decrypted

key

key doit être la clé publique qui a été utilisée pour chiffrer les données.

padding

padding peut être OPENSSL_PKCS1_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_encryptChiffre des données avec une clé publique

Description

bool openssl_public_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_public_encrypt() chiffre les données data avec la clé publique key et stocke le résultat dans crypted. Les données chiffrées peuvent être déchiffrées avec la fonction openssl_private_decrypt().

Cette fonction peut être utilisée pour chiffrer un message qui pourra être lu uniquement par le propriétaire de la clé privée. Elle peut être également utilisée pour stocker des données sécurisées dans une base de données.

Liste de paramètres

data

crypted

Contiendra le résultat du chiffrage.

key

La clé publique.

padding

padding peut être OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0)

openssl_random_pseudo_bytesGénère une chaine pseudo-aléatoire d'octets

Description

string openssl_random_pseudo_bytes ( int $length [, bool &$crypto_strong ] )

Génère une chaîne de caractères pseudo-aléatoire d'octets, dont la longueur est spécifiée par le paramètre length.

Indique également si l'algorithme fort de cryptologie a été utilisé pour produire ces octets pseudo-aléatoires, en utilisant le paramètre crypto_strong.

Liste de paramètres

length

La taille désirée pour la chaine d'octets. Un entier positif est demandé. PHP va tenter de transtyper ce paramètre en un entier non nul pour l'utiliser.

crypto_strong

Si fourni, détermine si l'agorithme de cryptologie utilisé doit être fort, i.e. sécurisé lorsqu'utilisé avec GPG, les mots de passe, etc... TRUE s'il le doit, FALSE sinon.

Valeurs de retour

Retourne la chaine d'octets générée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple openssl_random_pseudo_bytes()

<?php
for ($i = -1$i <= 4$i++) {
    
$bytes openssl_random_pseudo_bytes($i$cstrong);
    
$hex   bin2hex($bytes);

    echo 
"Longueur : Octets : $i et Hex: " strlen($hex) . PHP_EOL;
    
var_dump($hex);
    
var_dump($cstrong);
    echo 
PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Longueur : Octets : -1 et Hex: 0
string(0) ""
NULL

Longueur : Octets : 0 et Hex: 0
string(0) ""
NULL

Longueur : Octets : 1 et  Hex: 2
string(2) "42"
bool(true)

Longueur : Octets : 2 et Hex: 4
string(4) "dc6e"
bool(true)

Longueur : Octets : 3 et Hex: 6
string(6) "288591"
bool(true)

Longueur : Octets : 4 et Hex: 8
string(8) "ab86d144"
bool(true)

Voir aussi

  • bin2hex() - Convertit des données binaires en représentation hexadécimale
  • crypt() - Hachage à sens unique (indéchiffrable)
  • mt_rand() - Génère une meilleure valeur aléatoire
  • uniqid() - Génère un identifiant unique


openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

openssl_sealScelle des données

Description

int openssl_seal ( string $data , string &$sealed_data , array &$env_keys , array $pub_key_ids [, string $method ] )

openssl_seal() chiffre les données data en utilisant l'algorithme RC4 avec une clé secrète générée aléatoirement. La clé est chiffrée avec chaque clé publique associée à pub_key_ids et chaque clé ainsi chiffrée est retournée dans env_keys. Cela signifie que vous pouvez envoyer des données scellées à plusieurs destinataires (en supposant que chacun ait reçu la clé publique). Chaque destinataire doit recevoir les données chiffrées et la clé d'enveloppe, qui a été chiffrée avec la clé publique du destinataire.

Liste de paramètres

data

sealed_data

env_keys

pub_key_ids

Valeurs de retour

Retourne la longueur des données scellées en cas de succès, et FALSE sinon. En cas de succès, les données scellées sont placées dans le paramètre sealed_data, et les clés d'enveloppe dans env_keys.

Exemples

Exemple #1 Exemple avec openssl_seal()

<?php
// On suppose que $data contient les données à sceller
// lecture de la clé publique pour chaque destinataire
$fp fopen("/src/openssl-0.9.6/demos/maurice/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pk1 openssl_get_publickey($cert);
// pour le deuxième destinataire
$fp fopen("/src/openssl-0.9.6/demos/sign/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pk2 openssl_get_publickey($cert);

// scelle le message : seuls, les possesseurs de $pk1 et $pk2 peuvent déchiffrer
// le message $sealed avec les clés $ekeys[0] et $ekeys[1] (respectivement).
openssl_seal($data$sealed$ekeys, array($pk1$pk2));

// libère les clés de la mémoire
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

Voir aussi



openssl_sign

(PHP 4 >= 4.0.4, PHP 5)

openssl_signSigne les données

Description

bool openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, int $signature_alg = OPENSSL_ALGO_SHA1 ] )

openssl_sign() calcule la signature des données data en utilisant l'algorithme SHA1 (hashing) suivi du chiffrage avec la clé privée priv_key_id. Notez que les données elles-mêmes ne sont pas chiffrées.

Liste de paramètres

data

signature

Si l'appel à la fonction est un succès, la signature sera retournée dans le paramètre signature.

priv_key_id

signature_alg

Pour plus d'informations, reportez-vous à la liste des algorithmes de signature.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.0.0 Ajout du paramètre signature_alg.

Exemples

Exemple #1 Exemple avec openssl_sign()

<?php
// On suppose que $data contient les données à signer
// lecture de la clé publique pour chaque destinataire
$fp fopen("/src/openssl-0.9.6/demos/sign/key.pem""r");
$priv_key fread($fp8192);
fclose($fp);
$pkeyid openssl_get_privatekey($priv_key);

// calcule de la signature
openssl_sign($data$signature$pkeyid);

// libère les clés de la mémoire
openssl_free_key($pkeyid);
?>

Voir aussi



openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verifyVérifie une signature

Description

int openssl_verify ( string $data , string $signature , mixed $pub_key_id [, int $signature_alg = OPENSSL_ALGO_SHA1 ] )

openssl_verify() vérifie que la signature signature est correcte pour les données data, et avec la clé publique pub_key_id. Cette clé doit être la clé publique correspondant à la clé privée utilisée lors de la signature.

Liste de paramètres

data

signature

pub_key_id

signature_alg

Pour plus d'informations, reportez-vous à la liste des algorithmes de signature.

Valeurs de retour

Retourne 1 si la signature est correcte, 0 si elle est incorrecte et -1 si une erreur survient.

Historique

Version Description
5.2.0 Ajout du paramètre signature_alg.

Exemples

Exemple #1 Exemple avec openssl_verify()

<?php
// On suppose que $data et $signature contiennent les données à signer et
// la signature.
// Lecture de la clé publique depuis le certificat
$fp fopen("/src/openssl-0.9.6/demos/sign/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pubkeyid openssl_get_publickey($cert);

// indique si la signature est correcte
$ok openssl_verify($data$signature$pubkeyid);
if (
$ok == 1) {
    echo 
"Signature valide";
} elseif (
$ok == 0) {
    echo 
"Signature erronée";
} else {
    echo 
"Erreur de vérification de la signature";
}
// libère les clés de la mémoire
openssl_free_key($pubkeyid);
?>

Voir aussi



openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_check_private_keyVérifie si une clé privée correspond à un certificat

Description

bool openssl_x509_check_private_key ( mixed $cert , mixed $key )

Vérifie si le paramètre key fourni est la clé privée qui correspond à cert.

Liste de paramètres

cert

Le certificat.

key

La clé privée.

Valeurs de retour

Retourne TRUE si key est la clé privée qui correspond à cert, ou FALSE sinon.



openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurposeVérifie l'usage d'un certificat

Description

int openssl_x509_checkpurpose ( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]] )

openssl_x509_checkpurpose() examine le certificat spécifié par x509cert, pour voir s'il peut être utilisé pour une opération particulière purpose.

Liste de paramètres

x509cert

Le certificat examiné.

purpose

Utilisation de openssl_x509_checkpurpose()
Constante Description
X509_PURPOSE_SSL_CLIENT Est-ce que le certificat peut être utilisé avec le client d'une connexion SSL ?
X509_PURPOSE_SSL_SERVER Est-ce que le certificat peut être utilisé avec le serveur d'une connexion SSL ?
X509_PURPOSE_NS_SSL_SERVER Est-ce que le certificat peut être utilisé avec un serveur Netscape d'une connexion SSL ?
X509_PURPOSE_SMIME_SIGN Est-ce que le certificat peut être utilisé pour signer des courriers à la norme S/MIME ?
X509_PURPOSE_SMIME_ENCRYPT Est-ce que le certificat peut être utilisé pour chiffrer un courrier au format S/MIME ?
X509_PURPOSE_CRL_SIGN Est-ce que le certificat peut être utilisé pour chiffrer une liste de révocation de certificats ? (CRL)?
X509_PURPOSE_ANY Est-ce que le certificat peut être utilisé pour n'importe lequel de ces cas ?
Ces options ne sont pas des champs de bits : vous ne pouvez en passer qu'une seule à la fois.

cainfo

cainfo doit être un tableau de dossiers/fichiers de CA de confiance comme décrit dans la Vérification des certificats.

untrustedfile

Si spécifié, est le nom d'un fichier au format PEM contenant les certificats qui pourront aider lors de la vérification du certificat, même si une confiance limitée doit leur être portée.

Valeurs de retour

Retourne TRUE si le certificat peut être utilisé pour un but particulier, FALSE s'il ne le peut pas, ou -1 si une erreur survient.



openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export_to_fileExporte un certificat vers un fichier

Description

bool openssl_x509_export_to_file ( mixed $x509 , string $outfilename [, bool $notext ] )

openssl_x509_export_to_file() stocke un certificat x509 dans le fichier outfilename au format PRM.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

outfilename

Chemin du fichier de sortie.

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_exportExporte un certificat vers une chaîne de caractères

Description

bool openssl_x509_export ( mixed $x509 , string &$output [, bool $notext ] )

openssl_x509_export() stocke un certificat x509 dans le fichier output au format PRM.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

output

En cas de succès, contiendra le PEM.

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_freeLibère les ressources prises par un certificat

Description

void openssl_x509_free ( resource $x509cert )

openssl_x509_free() libère les ressources prises par le certificat x509cert.

Liste de paramètres

x509cert

Valeurs de retour

Aucune valeur n'est retournée.



openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_parseAnalyse un certificat X509

Description

array openssl_x509_parse ( mixed $x509cert [, bool $shortnames = true ] )

openssl_x509_parse() analyse le certificat X509 x509cert, et retourne les informations contenues dedans, y compris le sujet (subject), nom (name), émetteur (issuer name), dates de début et de fin (valid from date et valid to date), etc.

Liste de paramètres

x509cert

shortnames

shortnames contrôle l'indexation des données dans le tableau : si shortnames vaut TRUE (valeur par défaut), alors les champs seront indexés avec la forme courte des noms, sinon, les noms longs seront utilisés. (par exemple, CN est le nom court de commonName).

Valeurs de retour

La structure des données retournées est (délibérément) non documentée, car elle est sujette à des changements sans préavis.



openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_readAnalyse un certificat X.509 et retourne une ressource

Description

resource openssl_x509_read ( mixed $x509certdata )

openssl_x509_read() analyse le certificat x509certdata et retourne un identifiant de ressource.

Liste de paramètres

x509certdata

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient.


Sommaire





Extensions sur les bases de données


Interface d'abstraction


Couche d'abstraction de base de données (style dbm)


Introduction

Ces fonctions permettent l'accès aux bases de données du style Berkeley DB.

C'est une couche d'abstraction générale pour plusieurs bases de données, basées sur des fichiers. Raison pour laquelle les fonctionnalités sont limitées à des actions communes supportées par les bases de données modernes, comme » Oracle Berkeley DB.



Installation/Configuration

Sommaire


Pré-requis

Le comportement de certains aspects dépend de l'implémentation de la base de données sous-jacente. Les fonctions comme dba_optimize() et dba_sync() fonctionnent comme prévues pour une base de données, et ne feront strictement rien sur d'autres. Vous devez télécharger et installer les gestionnaires DBA supportés.

Liste des gestionnaires DBA
Gestionnaire Notes
dbm DBM est la plus ancienne (l'originale) des bases de données de style Berkeley DB. Vous devriez éviter de l'utiliser si vous en avez le choix. Nous ne fournissons pas de support de la compatibilité des fonctions internes à DB2 et gdbm, car elles ne sont compatibles qu'au niveau source du code, mais ne peuvent pas gérer le format original DBM.
ndbm Ndbm est un type nouveau et plus flexible que dbm. Il comporte néanmoins des limitations arbitraires de dbm (et par conséquence, il est obsolète).
gdbm Gdbm est un » gestionnaire de bases de données GNU.
db2 » Oracle Berkeley DB 2. Il est décrit comme étant un toolkit fournissant un support haute performance pour les bases de données, aussi bien du côté client que du côté serveur.
db3 » Oracle Berkeley DB 3.
db4 » Oracle Berkeley DB 4 ou 5. Cette option est disponible depuis PHP 4.3.2. Elle peut être utilisée avec BDB 5 depuis PHP 5.3.3.
cdb Cdb est un paquet rapide, léger et fiable pour créer et lire des bases de données constantes. Il a été créé par l'auteur de qmail et peut être trouvé sur » http://cr.yp.to/cdb.html. Vu qu'il est "constant", nous ne supporterons donc que les opérations de lecture. Depuis PHP 4.3.0, nous supportons également l'écriture (et non la mise à jour) via la bibliothèque interne cdb.
cdb_make Depuis PHP 4.3.0, nous supportons l'écriture (et non la mise à jour) des fichiers cdb lorsque la bibliothèque cdb est utilisée.
flatfile Supporté depuis PHP 4.3.0 pour des raisons de compatibilité avec l'extension obsolète dbm. Cependant, vous pouvez l'utiliser lorsque les fichiers ont été créés dans ce format. Survient lorsque la configuration n'a pas réussi à trouver de bibliothèque externe.
inifile Disponible depuis PHP 4.3.3 afin de permettre de modifier les fichiers php.ini depuis des scripts PHP. Lorsque vous utilisez des fichiers ini, vous pouvez passer des tableaux de la forme (0=>groupe,1=>nom_valeur) ou des chaînes de la forme "[groupe]nom_valeur" où le groupe est optionnel. Sachant que les fonctions dba_firstkey() et dba_nextkey() retournent une chaîne de caractères représentant la clé, il y a une nouvelle fonction, dba_key_split(), disponible depuis PHP 5 qui permet de convertir les clés en tableaux sans déperdition.
qdbm Disponible depuis PHP 5.0.0. La bibliothèque peut être téléchargée depuis » http://fallabs.com/qdbm/index.html.

Lorsque vous appelez la fonction dba_open() ou la fonction dba_popen(), un des noms de gestionnaire doit être fournit comme argument. La liste des gestionnaires disponibles peut être affichée en utilisant la fonction phpinfo() ou la fonction dba_handlers().



Installation

En utilisant l'option de compilation --enable-dba=shared , vous pouvez compiler un module dynamique qui activera le support des bases de données de style DBM pour PHP. Vous devez aussi ajouter le support d'au moins l'un des gestionnaires suivants, en spécifiant l'option de configuration --with-XXXX lors de la configuration de PHP.

Avertissement

Après avoir configuré et compilé PHP, vous devez exécuter les test suivants à partir de la ligne de commande : php run-tests.php ext/dba. Cela montre si votre combinaison de pilotes fonctionne. Les plus problématiques sont dbm et ndbm qui entrent en conflit avec nombre d'installations. Ceci est dû au fait que sur de nombreux systèmes, ces bibliothèques font parties de plus d'une bibliothèque. Le test de configuration vous empêche juste de configurer des descripteurs dont la combinaison est défectueuse alors qu'ils fonctionnent correctement séparément.

Gestionnaires DBA supportés
Gestionnaire Option de configuration
dbm

Pour activer le support de dbm, ajoutez --with-dbm[=DIR] .

Note:

dbm est une surcouche qui aboutit souvent à des échecs. Ainsi, vous ne devez utiliser dbm que si vous êtes sûrs qu'il fonctionne et que vous avez besoin de ce format.

ndbm

Pour activer le support de ndbm, ajoutez --with-ndbm[=DIR] .

Note:

ndbm est une surcouche qui aboutit souvent à des échecs. Ainsi, vous ne devez utiliser ndbm que si vous êtes sûrs qu'il fonctionne et que vous avez besoin de ce format.

gdbm Pour activer le support de gdbm, ajoutez --with-gdbm[=DIR] .
db2

Pour activer le support de Oracle Berkeley DB 2, ajoutez --with-db2[=DIR] .

Note:

db2 entre en conflit avec db3 et db4.

db3

Pour activer le support de Oracle Berkeley DB 3, ajoutez --with-db3[=DIR] .

Note:

db3 entre en conflit avec db2 et db4.

db4

Pour activer le support de Oracle Berkeley DB 4, ajoutez --with-db4[=DIR] .

Note:

db4 entre en conflit avec db2 et db3.

Note:

L'option db4 a été introduite avec PHP 4.3.2. Dans des versions précédentes de PHP, vous devez utiliser --with-db3=DIR où DIR pointe vers le répertoire ou se situe la bibliothèque db4. Il n'est pas possible d'utiliser des versions de db supérieures à 4.1 avec des versions de PHP antérieures à 4.3.0. De même, les bibliothèques db avec des versions allant de 4.1 à 4.1.24 ne peuvent être utilisées avec aucune version de PHP.

Le support DB5 a été ajouté en PHP 5.3.3.

cdb

Pour activer le support de cdb, ajoutez --with-cdb[=DIR] .

Note:

Depuis PHP 4.3.0, vous pouvez omettre d'utiliser DIR, afin d'exploiter la bibliothèque cdb fournie avec PHP, qui ajoute un gestionnaire cdb_make, permet la création de fichier cdb et permet l'accès aux fichiers cbd via le réseau avec les flux de PHP.

flatfile

Pour activer le support des fichiers, ajoutez --with-flatfile .

Note:

Ceci a été ajouté à PHP 4.3.0 pour assurer la compatibilité avec l'extension dbm qui est obsolète. Utilisez ce gestionnaire seulement quand vous ne pouvez installer aucun autre gestionnaire et que vous ne pouvez pas utiliser le gestionnaire cdb intégré.

inifile

Pour activer le support de inifile, ajoutez l'option de compilation --with-inifile .

Note:

Cette option a été ajoutée avec PHP 5.0.0 et permet de lire et écrire dans des fichiers d'initialisation de type Microsoft (.ini), comme le php.ini par exemple.

qdbm

Pour activer le support de qdbm, ajoutez l'option de compilation --with-qdbm[=DIR] .

Note:

qdbm entre en conflit avec dbm et gdbm.

Note:

Cette option a été ajoutée avec PHP 5.0.0. La bibliothèque qdbm peut être téléchargée sur » http://fallabs.com/qdbm/index.html.

Note:

Jusqu'en PHP 4.3.0, il était possible d'utiliser simultanément les gestionnaires db2 et db3 mais juste avec un seul en interne. Cela signifie que vous ne pouvez pas avoir les deux formats de fichiers. Depuis PHP 5.0.0, une vérification est faite lors de la configuration pour éviter ces problèmes.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Les fonctions dba_open() et dba_popen() retournent une ressource représentant le fichier de la base de données accédée, qui sera utilisé par toutes les autres fonctions dba.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Utilisation

Exemple #1 Exemple avec DBA

<?php

$id 
dba_open("/tmp/test.db""n""db2");

if (!
$id) {
    echo 
"dba_open a échoué\n";
    exit;
}

dba_replace("key""Ceci est un exemple !"$id);

if (
dba_exists("key"$id)) {
    echo 
dba_fetch("key"$id);
    
dba_delete("key"$id);
}

dba_close($id);
?>

DBA gère les donnée binaires et n'a aucune limite arbitraire. Cependant, il hérite de toutes les limites définies par l'implémentation de la base de données accédée.

Toutes les bases de données se basant sur des fichiers doivent fournir une façon de définir le mode de fichier des nouvelles bases créées. Ce mode est passé généralement comme 4ème argument des fonctions dba_open() ou dba_popen().

Vous pouvez accéder à toutes les entrées de la base de données de façon linéaire, en utilisant les fonctions dba_firstkey() et dba_nextkey(). Vous ne pouvez pas modifier la base de données lorsque vous êtes en train de la lire.

Exemple #2 Lecture d'une base de données

<?php

// ...ouverture de la base de données...

$key dba_firstkey($id);

while (
$key != false) {
    if (
true) {          // on retient la clé pour effectuer d'autres actions plus tard
        
$handle_later[] = $key;
    }
    
$key dba_nextkey($id);
}

foreach (
$handle_later as $val) {
    
dba_delete($val$id);
}

?>




Fonctions DBA


dba_close

(PHP 4, PHP 5)

dba_closeFerme une base DBA

Description

void dba_close ( resource $handle )

dba_close() ferme le lien établi avec la base et libère toutes les ressources de handle.

Liste de paramètres

handle

Le gestionnaire de la base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • dba_open() - Ouvre une base de données DBA
  • dba_popen() - Ouvre une connexion persistante à une base de données DBA



dba_delete

(PHP 4, PHP 5)

dba_deleteEfface une ligne dans une base DBA

Description

bool dba_delete ( string $key , resource $handle )

dba_delete() efface l'entrée spécifiée par la clé key, dans la base identifiée par handle.

Liste de paramètres

key

La clé de l'entrée à effacer.

handle

Le gestionnaire de la base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



dba_exists

(PHP 4, PHP 5)

dba_existsVérifie qu'une clé DBA existe

Description

bool dba_exists ( string $key , resource $handle )

dba_exists() vérifie si la clé key existe dans la base identifiée par handle.

Liste de paramètres

key

La clé à vérifier.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne TRUE si la clé existe, FALSE sinon.

Voir aussi



dba_fetch

(PHP 4, PHP 5)

dba_fetchLit les données liées à une clé DBA

Description

string dba_fetch ( string $key , resource $handle )
string dba_fetch ( string $key , int $skip , resource $handle )

dba_fetch() lit les données spécifiées par la clé key dans la base identifiée par handle.

Liste de paramètres

key

La clé correspondant aux données.

Note:

Lorsque vous travaillez avec des fichiers .ini cette fonction accepte des tableaux comme clés où l'index 0 est le groupe et l'index 1 est le nom de la valeur. Voir dba_key_split().

skip

Le nombre de paire clé-valeur que vous souhaitez ignorer lors de l'utilisation de bases cdb. Cette valeur sera ignorée pour toutes les autres bases de données qui ne supportent pas les clés multiples avec le même nom.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne la chaîne associée si la paire clé/valeur est trouvée, FALSE sinon.

Historique

Version Description
4.3 Le paramètre skip est disponible pour supporter les capacités cdb des clés multiples portant le même nom.

Voir aussi



dba_firstkey

(PHP 4, PHP 5)

dba_firstkeyLit la première clé DBA

Description

string dba_firstkey ( resource $handle )

dba_firstkey() retourne la première clé de la base de données spécifiée par handle et y place le pointeur interne de clé. Cela permettra de traverser la base.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne la clé en cas de succès ou FALSE si une erreur survient.

Voir aussi



dba_handlers

(PHP 4 >= 4.3.0, PHP 5)

dba_handlersListe les gestionnaires DBA disponibles

Description

array dba_handlers ([ bool $full_info = false ] )

dba_handlers() retourne un tableau avec tous les gestionnaires supportés par cette extension.

Liste de paramètres

full_info

Active l'affiche de toutes les informations dans le résultat.

Valeurs de retour

Retourne un tableau de gestionnaires disponibles. Si full_info est défini à TRUE, le tableau sera associé avec les noms des gestionnaires en tant que clés, et les informations en tant que valeurs. Sinon, le résultat sera un tableau indexé par les noms des gestionnaires.

Note:

Lorsque la bibliothèque interne cdb est utilisée, vous devez voir avec cdb and cdb_make.

Exemples

Exemple #1 Exemple avec dba_handlers()

<?php
                   
echo "Gestionnaires DBA disponibles :\n";
foreach (
dba_handlers(true) as $handler_name => $handler_version) {
  
// clean the versions
  
$handler_version str_replace('$'''$handler_version);
  echo 
" - $handler_name$handler_version\n";
}
              
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Gestionnaires DBA disponibles :
 - cdb: 0.75, Revision: 1.3.2.3 
 - cdb_make: 0.75, Revision: 1.2.2.4 
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3 
 - flatfile: 1.0, Revision: 1.5.2.4 



dba_insert

(PHP 4, PHP 5)

dba_insertInsère une entrée DBA

Description

bool dba_insert ( string $key , string $value , resource $handle )

dba_insert() insère l'entrée décrite par la clé key et la valeur value dans la base spécifiée par handle.

Liste de paramètres

key

La clé de l'entrée à insérer. Si cette clé existe déjà dans la base de données, cette fonction échouera. Utilisez la fonction dba_replace() si vous devez remplacer une clé existante.

value

La valeur à insérer.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



dba_key_split

(PHP 5)

dba_key_split Transforme une représentation de clé DBA par chaîne en une représentation par tableau

Description

mixed dba_key_split ( mixed $key )

dba_key_split() transforme une représentation de clé DBA par chaîne en une représentation par tableau.

Liste de paramètres

key

La clé sous forme de chaîne de caractères.

Valeurs de retour

Retourne un tableau sous la forme array(0 => group, 1 => nom_valeur). Cette fonction retourne FALSE si key vaut NULL ou FALSE.

Voir aussi



dba_list

(PHP 4 >= 4.3.0, PHP 5)

dba_listListe tous les fichiers de bases de données DBA ouverts

Description

array dba_list ( void )

dba_list() liste tous les fichiers de bases de données DBA ouverts.

Valeurs de retour

Un tableau associatif, sous la forme idressource => nomfichier.



dba_nextkey

(PHP 4, PHP 5)

dba_nextkeyLit la clé DBA suivante

Description

string dba_nextkey ( resource $handle )

dba_nextkey() retourne la clé suivante, dans la base identifiée par handle et incrémente le pointeur de clé.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne la clé en cas de succès ou FALSE si une erreur survient.

Voir aussi



dba_open

(PHP 4, PHP 5)

dba_openOuvre une base de données DBA

Description

resource dba_open ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_open() établit une connexion à la base repérée par path avec le mode mode et l'identifiant handler.

Liste de paramètres

path

Chemin sur votre système de fichiers.

mode

Il vaut r pour lecture seule, w pour lecture/écriture, c pour lecture/écriture, et création si la base n'existe pas, et n pour création, écrasement et accès en lecture/écriture. La base de données est créé en mode BTree ; les autres modes (comme Hash ou Queue) ne sont pas supportés.

De plus, vous pouvez choisir la méthode de verrouillage de la base avec le caractère suivant. Utilisez l pour verrouiller la base avec un fichier .lck, ou d pour verrouiller la base elle-même. Il est important que vos application utilisent ces options de manière cohérente.

Si vous voulez tester la possibilité d'accès, et ne pas attendre la disponibilité du verrou, vous pouvez ajouter la lettre t comme troisième caractère. Lorsque vous êtes absolument certain que votre base ne requiert pas de verrou, vous pouvez utiliser le tiret - à la place de l ou d. Lorsque vous n'utilisez ni d, ni l ni -, dba va verrouiller en mode d.

Note:

Il ne peut y avoir qu'un seul type d'écriture dans la base. Lorsque vous utilisez dba sur un serveur web, et que plusieurs requêtes HTTP effectuent des écritures, elles ne peuvent être faites que l'une après l'autre. De même, la lecture durant l'écriture n'est pas possible. L'extension dba utilise un verrou pour éviter ces problèmes. Voici la table de verrouillage :

Verrouillage DBA
déjà ouverte mode = "rl" mode = "rlt" mode = "wl" mode = "wlt" mode = "rd" mode = "rdt" mode = "wd" mode = "wdt"
non-ouverte ok ok ok ok ok ok ok ok
mode = "rl" ok ok attente FALSE illégal illégal illégal illégal
mode = "wl" attente FALSE attente FALSE illégal illégal illégal illégal
mode = "rd" illégal illégal illégal illégal ok ok attente FALSE
mode = "wd" illégal illégal illégal illégal attente FALSE attente FALSE
  • ok: Le second appel réussit.
  • wait: Le second appel attend que dba_close() soit appelé par le premier script.
  • FALSE: Le second appel retourne FALSE.
  • illégal: vous ne devez pas mélanger les options "l" et "d" pour le paramètre mode.

handler

Le nom du gestionnaire qui doit être utilisé pour accéder à path. C'est passé à tous les paramètres facultatifs donnés à dba_open() et peut agir au nom d'eux.

Valeurs de retour

Retourne un gestionnaire positif en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 il est possible d'ouvrir la base de données à travers le réseau. Toutefois, dans le cas où des connexions sockets seront utilisées (via HTTP ou FTP), la connexion sera verrouillée, et non pas la ressource. C'est important de le savoir pour comprendre que dans ce cas, le verrouillage sera ignoré, et d'autres solutions doivent être trouvées.
4.3.0 Le paramètre de verrouillage mode et les options "l", "d", "-" et "t" ont été ajoutées. Dans les versions de PHP antérieures à la PHP 4.3.0, vous deviez utiliser des sémaphores pour éviter les accès concurrents à la base de données, hormis pour celles de type GDBM. Voyez le chapitre sur les sémaphores System V.
avant 4.3.5 le mode "c" est inopérant pour de nombreux gestionnaires internes, et tronque la base au lieu d'ajouter les données à la base existante. De plus, dbm et ndbm échoue en mode "c" dans des configurations typiques (impossible à corriger).

Voir aussi



dba_optimize

(PHP 4, PHP 5)

dba_optimizeOptimise une base DBA

Description

bool dba_optimize ( resource $handle )

dba_optimize() optimise la base de données identifiée par handle.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_sync() - Synchronise une base de données DBA



dba_popen

(PHP 4, PHP 5)

dba_popenOuvre une connexion persistante à une base de données DBA

Description

resource dba_popen ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_popen() établit une connexion persistante à la base repérée par path avec le mode mode, en utilisant l'identifiant handler.

Liste de paramètres

path

Chemin sur votre système de fichiers.

mode

Il vaut r pour lecture seule, w pour lecture/écriture, c pour lecture/écriture, et création si la base n'existe pas, et n pour création, écrasement, et accès en lecture/écriture.

handler

le nom du gestionnaire qui doit être utilisé pour accéder à path. Le gestionnaire reçoit tous les paramètres supplémentaires passés à dba_popen().

Valeurs de retour

Retourne un gestionnaire positif en cas de succès ou FALSE si une erreur survient.

Voir aussi



dba_replace

(PHP 4, PHP 5)

dba_replaceRemplace ou insère une ligne DBA

Description

bool dba_replace ( string $key , string $value , resource $handle )

dba_replace() remplace ou insère une entrée, pour la clé key et avec la valeur value dans la base identifiée par handle.

Liste de paramètres

key

La clé de l'entrée à remplacer.

value

La valeur utilisée pour le remplacement.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



dba_sync

(PHP 4, PHP 5)

dba_syncSynchronise une base de données DBA

Description

bool dba_sync ( resource $handle )

dba_sync() synchronise la base de données spécifiée par handle. Si accepté, cela va probablement lancer une opération de réécriture physique du fichier.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire

  • dba_close — Ferme une base DBA
  • dba_delete — Efface une ligne dans une base DBA
  • dba_exists — Vérifie qu'une clé DBA existe
  • dba_fetch — Lit les données liées à une clé DBA
  • dba_firstkey — Lit la première clé DBA
  • dba_handlers — Liste les gestionnaires DBA disponibles
  • dba_insert — Insère une entrée DBA
  • dba_key_split — Transforme une représentation de clé DBA par chaîne en une représentation par tableau
  • dba_list — Liste tous les fichiers de bases de données DBA ouverts
  • dba_nextkey — Lit la clé DBA suivante
  • dba_open — Ouvre une base de données DBA
  • dba_optimize — Optimise une base DBA
  • dba_popen — Ouvre une connexion persistante à une base de données DBA
  • dba_replace — Remplace ou insère une ligne DBA
  • dba_sync — Synchronise une base de données DBA



dbx


Introduction

Le module dbx est une couche d'abstraction de base de données (db 'X', où 'X' est la base de données supportées). Les fonctions dbx vous permettent d'accéder à toutes les bases de données supportées en utilisant un simple appel. Les fonctions dbx elles-mêmes ne s'interfacent pas directement sur les bases de données, mais plutôt avec le module qui est utilisé pour supporter la base de données.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.



Installation/Configuration

Sommaire


Pré-requis

Afin de pouvoir utiliser une base de données avec le module dbx, le module doit être lié ou chargé dans PHP, et le mode de base de données doit être supporté par le module dbx. Actuellement, les bases de données suivantes sont supportées, mais d'autres devraient suivre :

La documentation permettant l'ajout du support d'autres bases de données à dbx peut être trouvée sur » http://www.guidance.nl/php/dbx/doc/.



Installation

Il vous faut avoir ces fonctions compilées avec PHP (option de configuration --enable-dbx et toutes les bases que vous souhaitez utiliser. Par exemple, si vous voulez accéder à MySQL depuis dbx, vous devez aussi configurer PHP avec --with-mysql=[DIR] .



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration DBX
Nom Défaut Modifiable Historique
dbx.colnames_case "unchanged" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.1.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

dbx.colnames_case string

Les noms de colonnes peuvent être retournés comme "inchangés" ("unchanged"), ou bien "majuscules" ("uppercase") ou encore "minuscules" ("lowercase"). Cette directive peut être reconfigurée par une option de dbx_query().



Types de ressources

Il y a deux types de ressources utilisées par le module dbx. La première est l'objet lié à la connexion avec la base de données, la deuxième est le résultat d'une requête.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DBX_MYSQL (entier)
DBX_ODBC (entier)
DBX_PGSQL (entier)
DBX_MSSQL (entier)
DBX_FBSQL (entier)
DBX_OCI8 (entier) (disponible à partir de PHP 4.3.0)
DBX_SYBASECT (entier)
DBX_SQLITE (entier) (PHP 5)
DBX_PERSISTENT (entier)
DBX_RESULT_INFO (entier)
DBX_RESULT_INDEX (entier)
DBX_RESULT_ASSOC (entier)
DBX_RESULT_UNBUFFERED (entier) (PHP 5)
DBX_COLNAMES_UNCHANGED (entier) (uniquement disponible à partir de PHP 4.3.0)
DBX_COLNAMES_UPPERCASE (entier) (uniquement disponible à partir de PHP 4.3.0)
DBX_COLNAMES_LOWERCASE (entier) (uniquement disponible à partir de PHP 4.3.0)
DBX_CMP_NATIVE (entier)
DBX_CMP_TEXT (entier)
DBX_CMP_NUMBER (entier)
DBX_CMP_ASC (entier)
DBX_CMP_DESC (entier)


Fonctions dbx


dbx_close

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_closeFerme une connexion à une base DBX

Description

int dbx_close ( object $link_identifier )

Liste de paramètres

link_identifier

L'objet DBX à fermer.

Valeurs de retour

Retourne 1 en cas de succès, 0 si une erreur survient.

Exemples

Exemple #1 Exemple avec dbx_close()

<?php
$link 
dbx_connect(DBX_MYSQL"localhost""db""username""password")
    or die(
"Could not connect");

echo 
"Connected successfully";
dbx_close($link);
?>

Notes

Note:

Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Voir aussi



dbx_compare

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_compareCompare deux lignes DBX afin de les trier

Description

int dbx_compare ( array $row_a , array $row_b , string $column_key [, int $flags = DBX_CMP_ASC | DBX_CMP_NATIVE ] )

dbx_compare() est une fonction d'aide pour dbx_sort(), afin d'aider aux tris.

Liste de paramètres

row_a

Première ligne

row_b

Seconde ligne

column_key

La colonne comparée

flags

Le paramètre flags peut prendre plusieurs valeurs :

  • DBX_CMP_ASC - ordre ascendant
  • DBX_CMP_DESC - ordre descendant
et le type utilisé pour la comparaison :
  • DBX_CMP_NATIVE - pas de conversion de type
  • DBX_CMP_TEXT - compare les lignes comme des chaînes
  • DBX_CMP_NUMBER - compare les lignes comme des nombres
Une direction de tri et un type de comparaison peuvent être combinés avec l'opérateur OR (|).

Valeurs de retour

Retourne 0 si row_a[$column_key] est égale à row_b[$column_key], et 1 ou -1 si le premier est plus grand ou plus petit que le dernier, respectivement, ou bien le contraire si l'option flags est configurée à DBX_CMP_DESC.

Exemples

Exemple #1 Exemple avec dbx_compare()

<?php
function user_re_order($a$b
{
    
$rv dbx_compare($a$b"parentid"DBX_CMP_DESC);
    if (!
$rv) {
        
$rv dbx_compare($a$b"id"DBX_CMP_NUMBER);
    }
    return 
$rv;
}

$link   dbx_connect(DBX_ODBC"""db""username""password")
    or die(
"Impossible de se connecter");

$result dbx_query($link"SELECT id, parentid, description FROM table ORDER BY id");
    
// les données de $result sont désormais classées par id

dbx_sort($result"user_re_order");
    
// la date dans $result est maintenant ordonnée par parentid (descending), puis par id

dbx_close($link);
?>

Voir aussi

  • dbx_sort() - Trie un résultat avec une fonction utilisateur



dbx_connect

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_connectOuvre une connexion à une base de données

Description

object dbx_connect ( mixed $module , string $host , string $database , string $username , string $password [, int $persistent ] )

Ouvre une connexion à une base de données.

Liste de paramètres

module

Le paramètre module peut être soit une chaîne, soit une constante. Les valeurs possibles de module sont listées ci-dessous, mais n'oubliez pas que cela fonctionnera que si le module associé est chargé.

  • DBX_MYSQL ou "mysql"
  • DBX_ODBC ou "odbc"
  • DBX_PGSQL ou "pgsql"
  • DBX_MSSQL ou "mssql"
  • DBX_FBSQL ou "fbsql"
  • DBX_SYBASECT ou "sybase_ct"
  • DBX_OCI8 ou "oci8"
  • DBX_SQLITE ou "sqlite"

host

L'hôte serveur SQL

database

Le nom de la base de données

username

Le nom d'utilisateur

password

Le mot de passe

persistent

Le paramètre persistent peut prendre la valeur DBX_PERSISTENT, pour créer une connexion persistante.

Les paramètres host, database, username et password sont attendus, mais ne sont pas toujours utiles, suivant la fonction de connexion de la base de données utilisée.

Valeurs de retour

Retourne un objet en cas de succès, FALSE si une erreur survient. Si une connexion a été faîte mais la base de données n'a pu être sélectionnée, la connexion sera fermée et FALSE sera retourné.

L'objet retourné object a trois propriétés :

database
Nom de la base de données sélectionnées
handle

Ressource de connexion de la base de données, et donc, elle peut être utilisée dans les fonctions spécifiques au module (si requis).

<?php
$link 
dbx_connect(DBX_MYSQL"localhost""db""username""password");
mysql_close($link->handle); // dbx_close($link) serait plus appropriée ici.
?>

module
Utiliser en interne par dbx uniquement et actuellement, correspond au numéro du module mentionné ci-dessus.

Historique

Version Description
5.0.0 Ajout de la constante DBX_SQLITE.
4.3.0 Ajout de la constante DBX_OCI8.
4.2.0 Ajout de la constante DBX_SYBASECT.
4.1.0 Ajout de la constante DBX_FBSQL.

Exemples

Exemple #1 Exemple avec dbx_connect()

<?php
$link 
dbx_connect(DBX_ODBC"""db""username""password"DBX_PERSISTENT)
    or die(
"Impossible de se connecter");

echo 
"Connexion réussie";
dbx_close($link);
?>

Notes

Note:

Reportez-vous à la documentation du module utilisé.

Voir aussi



dbx_error

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_error Rapporte le message d'erreur du dernier appel de fonction DBX

Description

string dbx_error ( object $link_identifier )

dbx_error() retourne une chaîne contenant le dernier message d'erreur du module sélectionné.

Liste de paramètres

link_identifier

L'objet DBX retourné par la fonction dbx_connect()

Valeurs de retour

Retourne une chaîne contenant le dernier message d'erreur du module sélectionné. S'il y a des connexions multiples sur le même module, seule la dernière erreur est fournie. S'il a des connexions sur différents modules, la dernière erreur du module est retourné (le module est alors représenté par link_identifier).

Exemples

Exemple #1 Exemple avec dbx_error()

<?php
$link   
dbx_connect(DBX_MYSQL"localhost""db""username""password")
    or die(
"Impossible de se connecter");

$result dbx_query($link"select id from non_existing_table");
if (
$result == 0) {
    echo 
dbx_error($link);
}
dbx_close($link);
?>

Notes

Note:

Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Le message de Microsoft SQL Server est en fait le résultat de la fonction mssql_get_last_message().

Le support des messages d'erreur Oracle ne sont pas implémentés pour le moment.



dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_escape_string Protège une chaîne de caractères pour l'utiliser dans une requête

Description

string dbx_escape_string ( object $link_identifier , string $text )

Protège une chaîne de caractères pour l'utiliser dans une requête.

Liste de paramètres

link_identifier

L'objet DBX retourné par la fonction dbx_connect()

text

La chaîne à échapper

Valeurs de retour

Retourne le texte text dont les caractères spéciaux ont été protégés (les guillemets, les antislash...). Si une erreur survient, NULL sera retourné.

Exemples

Exemple #1 Exemple avec dbx_escape_string()

<?php
$link   
dbx_connect(DBX_MYSQL"localhost""db""username""password")
    or die(
"Impossible de se connecter");

$text dbx_escape_string($link"It\'s quoted and backslashed (\\).");
$result dbx_query($link"insert into tbl (txt) values ('" $text "')");
if (
$result == 0) {
    echo 
dbx_error($link);
}
dbx_close($link);
?>

Voir aussi

  • dbx_query() - Envoie une requête et lit tous les résultats DBX



dbx_fetch_row

(PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_fetch_rowLit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée

Description

mixed dbx_fetch_row ( object $result_identifier )

dbx_fetch_row() récupère les lignes depuis le jeu de résultats dont le drapeau DBX_RESULT_UNBUFFERED est défini.

Lorsque l'option DBX_RESULT_UNBUFFERED n'est pas activée dans la requête, dbx_fetch_row() va échouer car toutes les lignes auront été déjà lues dans le membre data.

De plus, le membre rows de l'objet de résultat est incrémenté à chaque lecture réussie de dbx_fetch_row().

Liste de paramètres

result_identifier

Un jeu de résultats retourné par la fonction dbx_query().

Valeurs de retour

Retourne un objet en cas de succès qui contient les mêmes informations que n'importe quelle ligne d'un résultat dbx, placé dans le membre data, incluant l'accès aux colonnes par index ou par nom, suivant l'utilisation des options avec dbx_guery().

Si une erreur survient, la fonction retournera 0 (e.g. lorsqu'aucune ligne n'est disponible).

Exemples

Exemple #1 Comment gérer la valeur retournée

<?php
$result 
dbx_query($link'SELECT id, parentid, description FROM table'DBX_RESULT_UNBUFFERED);

echo 
"<table>\n";
while (
$row dbx_fetch_row($result)) {
    echo 
"<tr>\n";
    foreach (
$row as $field) {
        echo 
"<td>$field</td>";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";
?>

Voir aussi

  • dbx_query() - Envoie une requête et lit tous les résultats DBX



dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_queryEnvoie une requête et lit tous les résultats DBX

Description

mixed dbx_query ( object $link_identifier , string $sql_statement [, int $flags ] )

Envoie une requête et lit tous les résultats.

Liste de paramètres

link_identifier

L'objet DBX retournée par la fonction dbx_connect()

sql_statement

La requête SQL.

Les données à l'intérieur de la requête doivent être proprement échappées.

flags

Le paramètre flags sert à contrôler la quantité d'informations retournée. Il peut être n'importe quelle combinaisons par l'opérateur OR des constantes ci-après. Les constantes remplacent la configuration du php.ini.

DBX_RESULT_INDEX
Ce paramètre est toujours activé, c'est à dire que l'objet retourné dispose du membre data qui est un tableau à deux dimensions, indexé numériquement. Par exemple, dans l'expression data[2][3] 2 représente le numéro de ligne et 3 représente le numéro de colonne. Les premières lignes et colonnes sont indexées à 0. Si DBX_RESULT_ASSOC est aussi spécifié, l'objet retourné contient en plus les informations liées à DBX_RESULT_INFO, même s'il n'a pas été spécifié.
DBX_RESULT_INFO
Cette option fournit des informations sur les colonnes, comme les noms des champs et leur type.
DBX_RESULT_ASSOC
Cette option fait que la valeur des champs peut être accessible avec le nom de la colonne, utilisé comme clé dans le tableau du membre data. Les résultats ainsi associés sont des références sur les valeurs identifiées par les index numériques, ce qui fait que modifier data[0][0] fait que data[0]['nom_de_la_premiere_colonne'] sera aussi modifié.
DBX_RESULT_UNBUFFERED
Cet option ne crée pas de propriété data et la propriété rows sera initialement positionnée à 0. Utilisez ce flag pour des jeux d'enregistrements importants et utilisez dbx_fetch_row() pour retrouver le résultat ligne par ligne. dbx_fetch_row() retournera les lignes qui se conforment au flag de la requête. Par ailleurs, cela mettra à jour les lignes à chaque appel de la fonction.
DBX_COLNAMES_UNCHANGED
La casse du nom des colonnes retournées ne sera pas modifiée.
DBX_COLNAMES_UPPERCASE
Les noms de colonnes seront mis en majuscules.
DBX_COLNAMES_LOWERCASE
Les noms de colonnes seront mis en minuscules.
Notez que DBX_RESULT_INDEX est toujours active, indépendamment de la valeur de flags. Cela signifie que seules les combinaisons suivantes sont utiles :
  • DBX_RESULT_INDEX
  • DBX_RESULT_INDEX | DBX_RESULT_INFO
  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - c'est la valeur par défaut, si flags est omis.

Valeurs de retour

dbx_query() retourne un objet dbx_result_object ou 1 en cas de succès (un objet de résultat ne sera retourné que pour les requêtes SQL qui retournent un résultat), ou 0 en cas d'erreur. L'objet résultant n'est retourné que si la requête donnée par sql_statement produit un jeu d'enregistrements. (i.e. une requête SELECT, même si le résultat est vide).

L'objet retourné a 5 membres (éventuellement 4, suivant les valeurs de flags) :

handle

Ceci est une ressource représentant la connexion à la base de données, et il peut être utilisé (si nécessaire) avec les fonctions spécialisées de la base.

<?php
$result 
dbx_query($link"SELECT id FROM table");
mysql_field_len($result->handle0);
?>

cols et rows

Ces deux membres contiennent respectivement le nombre de colonnes et de lignes.

<?php
$result 
dbx_query($link'SELECT id FROM table');
echo 
$result->rows// nombre de lignes
echo $result->cols// nombre de champs
?>

info (optionnel)
Ce membre est retourné uniquement si DBX_RESULT_INFO ou DBX_RESULT_ASSOC sont spécifiés dans le paramètre flags. C'est un tableau à deux dimensions, avec deux lignes (name et type) pour lire les informations de colonnes.

Exemple #1 Listes les types et noms de colonnes

<?php
$result 
dbx_query($link'SELECT id FROM table',
                     
DBX_RESULT_INDEX DBX_RESULT_INFO);

for (
$i 0$i $result->cols$i++ ) {
    echo 
$result->info['name'][$i] . "\n";
    echo 
$result->info['type'][$i] . "\n";
}
?>
data
Ce membre contient les résultats obtenus, possiblement associés avec le nom de colonne, en fonction de la valeur du paramètre flags. Si DBX_RESULT_ASSOC est activé, il est possible d'utiliser aussi $result->data[2]["nom_de_la_colonne"].

Exemple #2 Afficher le contenu d'une base

<?php
$result 
dbx_query($link'SELECT id, parentid, description FROM table');

echo 
"<table>\n";
foreach (
$result->data as $row) {
    echo 
"<tr>\n";
    foreach (
$row as $field) {
        echo 
"<td>$field</td>";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";
?>

Exemple #3 Comment utiliser les requêtes UNBUFFERED

<?php

$result 
dbx_query ($link'SELECT id, parentid, description FROM table'DBX_RESULT_UNBUFFERED);

echo 
"<table>\n";
while (
$row dbx_fetch_row($result)) {
    echo 
"<tr>\n";
    foreach (
$row as $field) {
        echo 
"<td>$field</td>";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

?>

Historique

Version Description
5.0.0 Ajout de la constante DBX_RESULT_UNBUFFERED.
4.3.0 Ajout des constantes DBX_COLNAMES_UNCHANGED, DBX_COLNAMES_UPPERCASE, et DBX_COLNAMES_LOWERCASE.

Exemples

Exemple #4 Comment gérer la valeur retournée

<?php
$link   
dbx_connect(DBX_ODBC"""db""username""password")
    or die(
"Impossible de se connecter");

$result dbx_query($link'SELECT id, parentid, description FROM table');

if (
is_object($result) ) {
    
// ... faîtes des actions ici, voir les exemples détaillés ci-dessus ...
    // tout d'abord, afficher les noms et types de champs
    // puis, afficher un tableau contenant les valeurs retournées
} else {
    exit(
"Échec de la requête");
}

dbx_close($link);
?>

Notes

Note:

Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Les noms des colonnes pour les requêtes sur des bases de données Oracle sont retournés en minuscules.

Voir aussi

  • dbx_escape_string() - Protège une chaîne de caractères pour l'utiliser dans une requête
  • dbx_fetch_row() - Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée
  • dbx_connect() - Ouvre une connexion à une base de données



dbx_sort

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_sort Trie un résultat avec une fonction utilisateur

Description

bool dbx_sort ( object $result , string $user_compare_function )

Trie un résultat depuis un appel à la fonction dbx_query() avec une fonction de trie personnalisée.

Liste de paramètres

result

Un jeu de résultats retourné par la fonction dbx_query().

user_compare_function

La fonction de comparaison définie par l'utilisateur. Elle doit accepter deux arguments et retourner un entier, inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à ou supérieur au second.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec dbx_sort()

<?php
function user_re_order($a$b
{
    
$rv dbx_compare($a$b"parentid"DBX_CMP_DESC);
    if (!
$rv) {
        
$rv dbx_compare($a$b"id"DBX_CMP_NUMBER);
    }
    return 
$rv;
}

$link   dbx_connect(DBX_ODBC"""db""username""password")
    or die(
"Impossible de se connecter");

$result dbx_query($link"SELECT id, parentid, description FROM tbl ORDER BY id");
    
// Les données sont maintenant triées par id

dbx_sort($result"user_re_order");
    
// Les données sont maintenant triées par parentid décroissant, puis par id

dbx_close($link);
?>

Notes

Note:

Il est toujours plus intéressant d'utiliser la clause SQL ORDER BY que la fonction dbx_sort(), si possible.

Voir aussi


Sommaire

  • dbx_close — Ferme une connexion à une base DBX
  • dbx_compare — Compare deux lignes DBX afin de les trier
  • dbx_connect — Ouvre une connexion à une base de données
  • dbx_error — Rapporte le message d'erreur du dernier appel de fonction DBX
  • dbx_escape_string — Protège une chaîne de caractères pour l'utiliser dans une requête
  • dbx_fetch_row — Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée
  • dbx_query — Envoie une requête et lit tous les résultats DBX
  • dbx_sort — Trie un résultat avec une fonction utilisateur



ODBC (Unifié)


Introduction

En plus du support de l'ODBC normal, l'ODBC unifié de PHP vous donne accès à diverses bases de données qui ont emprunté la sémantique des API ODBC pour implémenter leur propres API. Au lieu de maintenir de multiples pilotes qui sont similaires, ces pilotes ont été rassemblés dans un jeu de fonctions ODBC uniques.

Les bases de données suivantes sont supportées par l'ODBC unifié : » Adabas D, » IBM DB2, » iODBC, » Solid, et » Sybase SQL Anywhere.

Note:

Mise à part pour IODBC, il n'y a pas d'ODBC utilisé lors des connexions aux bases de données ci-dessus. Les fonctions que vous utiliserez portent des noms évocateurs, et utilisent les mêmes syntaxes que leurs cousines d'ODBC. L'exception à ceci est iODBC. En compilant PHP avec le support iODBC, vous pourrez utiliser n'importe quel pilote compatible ODBC avec vos applications PHP. Plus d'informations sur iODBC, ainsi qu'un HOWTO (en anglais), sont disponibles sur » www.iodbc.org, ainsi que l'alternative unixODBC, disponible sur » www.unixodbc.org.



Installation/Configuration

Sommaire


Pré-requis

Pour accéder à l'une des bases de données supportées, il faut que les bibliothèques équivalentes soient installées.



Installation

--with-adabas[=DIR]

Inclut le support Adabas D. DIR est le dossier d'installation d'Adabas D. Par défaut, c'est /usr/local.

--with-sapdb[=DIR]

Inclut le support SAP DB. DIR est le dossier d'installation de SAP DB. Par défaut, c'est /usr/local.

--with-solid[=DIR]

Inclut le support Solid. DIR est le dossier d'installation de Solid. Par défaut, c'est /usr/local/solid.

--with-ibm-db2[=DIR]

Inclut le support IBM DB2. DIR est le dossier d'installation de DB2. Par défaut, c'est /home/db2inst1/sqllib.

--with-empress[=DIR]

Inclut le support Empress. DIR est le dossier d'installation de Empress. Par défaut, c'est $EMPRESSPATH. Depuis PHP 4, cette option ne supporte que Empress Version 8.60 et plus récent.

--with-empress-bcs[=DIR]

Inclut le support "Empress Local Access". DIR est le dossier d'installation de Empress. Par défaut, c'est $EMPRESSPATH. Depuis PHP 4, cette option ne supporte que Empress version 8.60 et plus récent.

--with-birdstep[=DIR]

Inclut le support Birdstep. DIR est le dossier d'installation de Birdstep. Par défaut, c'est /usr/local/birdstep.

--with-custom-odbc[=DIR]

Inclut le support d'un ODBC définit par l'utilisateur. DIR est le dossier d'installation d'ODBC. Par défaut, c'est /usr/local. Assurez-vous que la variable CUSTOM_ODBC_LIBS est définie, et que le fichier odbc.h est dans votre chemin d'inclusion, c'est-à-dire que vous devriez définir les lignes suivantes pour Sybase SQL Anywhere 5.5.00 sous QNX, avant d'utiliser le script de configuration :

   CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
   LDFLAGS=-lunix
   CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Inclut le support iODBC. DIR est le dossier d'installation de iODBC. Par défaut, c'est /usr/local.

--with-esoob[=DIR]

Inclut le support Easysoft OOB. DIR est le dossier d'installation de OOB. Par défaut, c'est /usr/local/easysoft/oob/client.

--with-unixodbc[=DIR]

Inclut le support UnixODBC. DIR est le dossier d'installation d'UnixODBC. Par défaut, c'est /usr/local.

Inclut le support OpenLink ODBC. DIR est le dossier d'installation OpenLink. Par défaut, c'est /usr/local. C'est le même que pour iODBC.

--with-dbmaker[=DIR]

Inclut le support DBMaker. DIR est le dossier d'installation DBMaker. Par défaut, c'est le chemin de la dernière installation de DBMaker (par exemple /home/dbmaker/3.6).

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration UODBC
Nom Défaut Modifiable Historique
odbc.default_db * NULL PHP_INI_ALL  
odbc.default_user * NULL PHP_INI_ALL  
odbc.default_pw * NULL PHP_INI_ALL  
odbc.allow_persistent "1" PHP_INI_SYSTEM  
odbc.check_persistent "1" PHP_INI_SYSTEM  
odbc.max_persistent "-1" PHP_INI_SYSTEM  
odbc.max_links "-1" PHP_INI_SYSTEM  
odbc.defaultlrl "4096" PHP_INI_ALL  
odbc.defaultbinmode "1" PHP_INI_ALL  
odbc.default_cursortype "3" PHP_INI_ALL Disponible depuis PHP 5.3.0

Note: Les entrées marquées avec une étoile ne sont pas encore implémentées.

Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

odbc.default_db chaîne de caractères

La source de données ODBC si aucune n'est spécifiée dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_user chaîne de caractères

Nom d'utilisateur à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_pw chaîne de caractères

Mot de passe à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.allow_persistent booléen

Est-ce que les connexions ODBC persistantes sont autorisées ou pas ?

odbc.check_persistent booléen

Vérifie que la connexion est valide avant de l'utiliser.

odbc.max_persistent entier

Nombre maximum de connexions persistantes par processus.

Le nombre maximum de connexions ODBC par processus, y compris les connexions persistantes.

odbc.defaultlrl entier

Gestion des champs de type LONG. Spécifie le nombre d'octets retournés dans les variables.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..
odbc.defaultbinmode entier

Gestion des données binaires.

odbc.default_cursortype entier

Contrôle le modèle de curseur ODBC. Valeurs possibles : SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC et SQL_CURSOR_STATIC (par défaut).



Types de ressources

Cette extension définit deux types de ressource : un identifiant de connexion ODBC et un identifiant de résultat ODBC.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ODBC_TYPE (entier)
ODBC_BINMODE_PASSTHRU (entier)
ODBC_BINMODE_RETURN (entier)
ODBC_BINMODE_CONVERT (entier)
SQL_ODBC_CURSORS (entier)
SQL_CUR_USE_DRIVER (entier)
SQL_CUR_USE_IF_NEEDED (entier)
SQL_CUR_USE_ODBC (entier)
SQL_CONCURRENCY (entier)
SQL_CONCUR_READ_ONLY (entier)
SQL_CONCUR_LOCK (entier)
SQL_CONCUR_ROWVER (entier)
SQL_CONCUR_VALUES (entier)
SQL_CURSOR_TYPE (entier)
SQL_CURSOR_FORWARD_ONLY (entier)
SQL_CURSOR_KEYSET_DRIVEN (entier)
SQL_CURSOR_DYNAMIC (entier)
SQL_CURSOR_STATIC (entier)
SQL_KEYSET_SIZE (entier)
SQL_CHAR (entier)
SQL_VARCHAR (entier)
SQL_LONGVARCHAR (entier)
SQL_DECIMAL (entier)
SQL_NUMERIC (entier)
SQL_BIT (entier)
SQL_TINYINT (entier)
SQL_SMALLINT (entier)
SQL_INTEGER (entier)
SQL_BIGINT (entier)
SQL_REAL (entier)
SQL_FLOAT (entier)
SQL_DOUBLE (entier)
SQL_BINARY (entier)
SQL_VARBINARY (entier)
SQL_LONGVARBINARY (entier)
SQL_DATE (entier)
SQL_TIME (entier)
SQL_TIMESTAMP (entier)
SQL_TYPE_DATE (entier)
SQL_TYPE_TIME (entier)
SQL_TYPE_TIMESTAMP (entier)
SQL_BEST_ROWID (entier)
SQL_ROWVER (entier)
SQL_SCOPE_CURROW (entier)
SQL_SCOPE_TRANSACTION (entier)
SQL_SCOPE_SESSION (entier)
SQL_NO_NULLS (entier)
SQL_NULLABLE (entier)
SQL_INDEX_UNIQUE (entier)
SQL_INDEX_ALL (entier)
SQL_ENSURE (entier)
SQL_QUICK (entier)


Fonctions ODBC


odbc_autocommit

(PHP 4, PHP 5)

odbc_autocommitActive le mode d'autovalidation

Description

mixed odbc_autocommit ( resource $connection_id [, bool $OnOff = false ] )

Sans le paramètre onoff, odbc_autocommit() retourne le statut d'autovalidation

Par défaut, l'autovalidation est activée. Désactiver l'autovalidation est équivalent à démarrer une transaction.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

OnOff

Si OnOff vaut TRUE, l'autovalidation est activée. S'il est FALSE, l'autovalidation est désactivée.

Valeurs de retour

Sans le paramètre OnOff, odbc_autocommit() retourne le statut d'autovalidation de la connexion connection_id. Une valeur différente de 0 si le mode est activé, 0 s'il ne l'est pas, ou FALSE si une erreur survient.

Si OnOff est défini, cette fonction retourne TRUE en cas de succès,et FALSE si une erreur survient.

Voir aussi



odbc_binmode

(PHP 4, PHP 5)

odbc_binmodeModifie la gestion des colonnes de données binaires

Description

bool odbc_binmode ( resource $result_id , int $mode )

odbc_binmode() modifie la gestion des colonnes de données binaires. Les types ODBC SQL affectés sont BINARY, VARBINARY et LONGVARBINARY.

Lorsqu'une donnée SQL est convertie en caractère C, les 8 bits du caractère source sont représentés par deux caractères ASCII. Ces caractères sont des représentations ASCII des nombres au format hexadécimal. Par exemple, le binaire 00000001 est converti en "01" et le binaire 11111111 est converti en "FF".

Conversion des LONGVARBINARY
Mode Longueur Résultat
ODBC_BINMODE_PASSTHRU 0 passthru
ODBC_BINMODE_RETURN 0 passthru
ODBC_BINMODE_CONVERT 0 passthru
ODBC_BINMODE_PASSTHRU 0 passthru
ODBC_BINMODE_PASSTHRU 0 passthru
ODBC_BINMODE_RETURN 0 Tel quel
ODBC_BINMODE_CONVERT 0 Caractère

Si odbc_fetch_into() est utilisé, passthru signifie qu'une chaîne vide sera retournée pour ces colonnes.

Liste de paramètres

result_id

L'identifiant de résultat.

Si result_id vaut 0, ces paramètres seront appliqués aux nouveaux résultats.

Note: La valeur par défaut de longreadlen est 4096 et celle de mode est ODBC_BINMODE_RETURN. La gestion des colonnes binaires est aussi modifiée par odbc_longreadlen().

mode

Valeurs possibles pour le paramètre mode :

  • ODBC_BINMODE_PASSTHRU : retourner les données en binaire
  • ODBC_BINMODE_RETURN : retourner sans conversion
  • ODBC_BINMODE_CONVERT : convertir en caractère

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



odbc_close_all

(PHP 4, PHP 5)

odbc_close_allFerme toutes les connexions ODBC

Description

void odbc_close_all ( void )

odbc_close_all() ferme toutes les connexions ODBC à des sources de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

odbc_close_all() échouera s'il y a des transactions en cours sur cette connexion. Dans ce cas, la connexion restera ouverte.



odbc_close

(PHP 4, PHP 5)

odbc_closeFerme une connexion ODBC

Description

void odbc_close ( resource $connection_id )

Ferme la connexion avec la source de données représentée par l'identifiant de connexion connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

odbc_close() échouera s'il y a des transactions en cours sur cette connexion. Dans ce cas, la connexion restera ouverte.



odbc_columnprivileges

(PHP 4, PHP 5)

odbc_columnprivilegesListe les colonnes et leurs droits associés

Description

resource odbc_columnprivileges ( resource $connection_id , string $qualifier , string $owner , string $table_name , string $column_name )

Liste les colonnes et leurs droits associés.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire.

table_name

Le nom de la table.

column_name

Le paramètre column_name accepte des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Les paramètres owner, table_name, et column_name acceptent des masques de recherche ('%' correspond à zéro ou plus de caractères, et '_' correspond à exactement un caractère).

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient. Cet identifiant de résultat pourra être utilisé pour récupérer une liste des colonnes ainsi que les droits associés.

Le jeu de résultat contient les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.



odbc_columns

(PHP 4, PHP 5)

odbc_columnsListe les colonnes d'une table

Description

resource odbc_columns ( resource $connection_id [, string $qualifier [, string $schema [, string $table_name [, string $column_name ]]]] )

Liste les colonnes d'une table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

schema

Le propriétaire.

table_name

Le nom de la table.

column_name

Le nom de la colonne.

Les paramètres owner, column_name et table_name acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le jeu de résultat contient les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_SCHEM et TABLE_NAME.

Voir aussi



odbc_commit

(PHP 4, PHP 5)

odbc_commitValide une transaction ODBC

Description

bool odbc_commit ( resource $connection_id )

Valide toutes les transactions en cours sur la connexion connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



odbc_connect

(PHP 4, PHP 5)

odbc_connectConnexion à une source

Description

resource odbc_connect ( string $dsn , string $user , string $password [, int $cursor_type ] )

L'identifiant de connexion retourné par cette fonction est nécessaire pour toutes les autres fonctions ODBC. Vous pouvez avoir de multiples connexions en même temps.

Avec certains pilotes ODBC, l'exécution de procédures enregistrées complexes peut produire l'erreur suivante : "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it", ce qui signifie : "Impossible de créer un pointeur de résultat dans une procédure enregistrée qui est réduite à une simple sélection (SELECT)". Utiliser l'option SQL_CUR_USE_ODBC permet d'éviter cette erreur. De plus, certains pilotes ne supportent pas le paramètre optionnel de numéro de ligne dans odbc_fetch_row(). SQL_CUR_USE_ODBC peut aussi permettre de résoudre ces problèmes.

Liste de paramètres

dsn

Le nom source de la base de données (DSN), pour la connexion.

user

Le nom d'utilisateur.

password

Le mot de passe.

cursor_type

Fixe le type de pointeur de résultat utilisé pour cette connexion. Ce paramètre n'est généralement pas nécessaire, mais il peut être utile pour contourner certains problèmes ODBC.

Les constantes suivantes sont définies comme types de pointeur :

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Valeurs de retour

Retourne un identifiant de connexion ODBC ou 0 (FALSE) si une erreur survient.

Exemples

Exemple #1 Connexion sans DSN

<?php
// Microsoft SQL Server utilise le pilote SQL Native Client 10.0 ODBC Driver : 
// il permet les connexions à SQL 7, 2000, 2005 et 2008
$connection odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;"$user$password);

// Microsoft Access
$connection odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename"$user$password);

// Microsoft Excel
$excelFile realpath('C:/ExcelData.xls');
$excelDir dirname($excelFile);
$connection odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir'''');
?>

Voir aussi

  • Pour les connexions persistantes : odbc_pconnect() - Ouvre une connexion persistante à une source de données



odbc_cursor

(PHP 4, PHP 5)

odbc_cursorLit le nom du pointeur de résultat courant

Description

string odbc_cursor ( resource $result_id )

odbc_cursor() lit le nom du pointeur de résultat courant pour le résultat result_id.

Liste de paramètres

result_id

La ressource de résultat.

Valeurs de retour

Retourne le nom du curseur, sous forme d'une chaîne de caractères.



odbc_data_source

(PHP 4 >= 4.3.0, PHP 5)

odbc_data_sourceRetourne des informations sur la connexion courante

Description

array odbc_data_source ( resource $connection_id , int $fetch_type )

Retourne une liste de DSN disponibles (après l'avoir appelée plusieurs fois).

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

fetch_type

Le paramètre connection_id est une connexion ODBC valide. Le paramètre fetch_type peut être l'une des deux constantes suivantes : SQL_FETCH_FIRST ou SQL_FETCH_NEXT. Utilisez SQL_FETCH_FIRST la première fois que la fonction est appelée, puis SQL_FETCH_NEXT.

Valeurs de retour

Retourne FALSE si une erreur survient, un tableau sinon.



odbc_do

(PHP 4, PHP 5)

odbc_doAlias de odbc_exec()

Description

Cette fonction est un alias de : odbc_exec().



odbc_error

(PHP 4 >= 4.0.5, PHP 5)

odbc_errorLit le dernier code d'erreur

Description

string odbc_error ([ resource $connection_id ] )

Retourne un état ODBC sur 6 chiffres, ou une chaîne vide s'il n'y avait plus d'erreurs.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Si connection_id est spécifié, le dernier état ODBC de cette connexion est retourné. Si connection_id est omis, c'est le dernier état de n'importe quelle connexion qui est retourné.

Cette fonction retourne une valeur significative uniquement si la dernière requête ODBC a échoué (i.e. la fonction odbc_exec() a retourné FALSE).

Voir aussi



odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5)

odbc_errormsgLit le dernier message d'erreur

Description

string odbc_errormsg ([ resource $connection_id ] )

Retourne une chaîne contenant le dernier message d'erreur ODBC, ou une chaîne vide s'il n'y avait pas d'erreur.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Si connection_id est spécifié, le dernier état ODBC de cette connexion est retourné.

Cette fonction retourne une valeur significative uniquement si la dernière requête ODBC a échoué (i.e. la fonction odbc_exec() a retourné FALSE).

Voir aussi



odbc_exec

(PHP 4, PHP 5)

odbc_execPrépare et exécute une requête SQL

Description

resource odbc_exec ( resource $connection_id , string $query_string [, int $flags ] )

odbc_exec() envoie une commande SQL à la source de données ODBC, représentée par connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

query_string

La requête SQL.

flags

Ce paramètre n'est actuellement pas utilisé.

Valeurs de retour

Retourne une ressource de résultat ODBC en cas de succès, FALSE si une erreur survient.

Voir aussi



odbc_execute

(PHP 4, PHP 5)

odbc_executeExécute une requête SQL préparée

Description

bool odbc_execute ( resource $result_id [, array $parameters_array ] )

Exécute une requête SQL préparée par odbc_prepare().

Liste de paramètres

result_id

L'identifiant de résultat, depuis la fonction odbc_prepare().

parameters_array

Les valeurs du paramètre parameter_array seront substituées dans les variables de requêtes de la requête préparée. Les éléments de ce tableau seront convertis en chaînes de caractères en appelant cette fonction.

Tout paramètre de parameter_array qui commence et termine par des guillemets simples sera considéré comme un nom de fichier à lire et envoyé à la base de données, avec la variable de requête appropriée.

Si vous voulez stocker une chaîne de caractères qui commence et se finit réellement par des guillemets, vous devez ajouter un espace au début ou à la fin de la chaîne, pour éviter que ce paramètre soit confondu avec un nom de fichier. Si ce n'est pas possible dans le cadre de votre application, vous devrez passer par la fonction odbc_exec().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_execute() et odbc_prepare()

Dans le script suivant, $success ne sera possible que si les trois paramètres de maproc sont des paramètres de type IN :

<?php
$a 
1;
$b 2;
$c 3;
$stmt    odbc_prepare($conn'CALL maproc(?,?,?)');
$success odbc_execute($stmt, array($a$b$c));
?>

Si vous devez appeler une procédure stockée en utilisant des paramètres INOUT ou OUT, la solution est d'utiliser une extension native de votre base de données (par exemple, mssql pour MS SQL Server, ou oci8 pour Oracle).

Historique

Version Description
4.2.0 La lecture du fichier est maintenant sujette au safe mode et aux restrictions open-basedir dans le paramètre parameters_array.
4.1.1 Les fichiers distants ne sont plus supportés dans le paramètre parameters_array.

Voir aussi



odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_arrayLit une ligne de résultat dans un tableau associatif

Description

array odbc_fetch_array ( resource $result [, int $rownumber ] )

odbc_fetch_array() lit une ligne de résultat dans un tableau associatif depuis une requête ODBC. Voir le changelog ci-dessous pour savoir quand cette fonction est disponible.

Liste de paramètres

result

La ressource de résultat depuis la fonction odbc_exec().

rownumber

Le numéro de ligne doit être lu, optionnel.

Valeurs de retour

Retourne un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne de disponible.

Historique

Version Description
4.3.3 Cette fonction est disponible lorsque PHP est compilé avec le support IBM DB2 ou UnixODBC.
4.3.2 Cette fonction est disponible lorsque PHP est compilé pour Windows.
4.0.2 Cette fonction est disponible lorsque PHP est compilé avec le support DBMaker.

Voir aussi



odbc_fetch_into

(PHP 4, PHP 5)

odbc_fetch_intoLit une ligne de résultat, et la place dans un tableau

Description

int odbc_fetch_into ( resource $result_id , array &$result_array [, int $rownumber ] )

Lit une ligne de résultat, et la place dans un tableau.

Liste de paramètres

result_id

La ressource de résultat.

result_array

Peut être de n'importe quel type, étant donné qu'il sera converti en tableau. Le tableau contiendra les valeurs des colonnes, ces dernières étant numérotées à partir de 0.

rownumber

Le numéro de la ligne.

Valeurs de retour

Retourne le nombre de colonnes du résultat, ou FALSE si une erreur survient.

Historique

Version Description
4.2.0 Les paramètres result_array et rownumber ont été inversés. Cela permet à rownumber d'être à nouveau une constante.
4.0.6 Le paramètre rownumber ne peut pas être passé comme une constante, mais comme une variable. Ce comportement a également été modifié dans la version 4.2.0.
4.0.5 Le paramètre result_array n'a plus besoin d'être passé par référence.

Exemples

Exemple #1 Exemple avec odbc_fetch_into()

<?php
$rc 
odbc_fetch_into($res_id$my_array);
?>

ou

<?php
$rc 
odbc_fetch_into($res_id$my_array2);
?>



odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_objectLit une ligne de résultat dans un objet

Description

object odbc_fetch_object ( resource $result [, int $rownumber ] )

odbc_fetch_object() lit une ligne de résultat dans un objet depuis une requête ODBC. Voir le changelog ci-dessous pour savoir quand cette fonction est disponible.

Liste de paramètres

result

La ressource de résultat depuis la fonction odbc_exec().

rownumber

Le numéro de ligne à récupérer, en option.

Valeurs de retour

Retourne un objet qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne de disponible.

Historique

Version Description
4.3.3 Cette fonction est disponible lorsque PHP est compilé avec le support IBM DB2 ou UnixODBC.
4.3.2 Cette fonction est disponible lorsque PHP est compilé pour Windows.
4.0.2 Cette fonction est disponible lorsque PHP est compilé avec le support DBMaker.

Voir aussi



odbc_fetch_row

(PHP 4, PHP 5)

odbc_fetch_rowLit une ligne de résultat

Description

bool odbc_fetch_row ( resource $result_id [, int $row_number ] )

Lit une ligne dans le résultat identifié par result_id et retourné par odbc_do() ou odbc_exec(). Après odbc_fetch_row(), les champs seront accessibles avec la fonction odbc_result().

Liste de paramètres

result_id

L'identifiant de résultat.

row_number

Si row_number est omis, row_number va tenter de lire la prochaine ligne dans le résultat. Des appels répétés à odbc_fetch_row() avec et sans paramètre row_number peuvent être combinés librement.

Pour passer en revue toutes les lignes d'un résultat plusieurs fois, vous pouvez appeler odbc_fetch_row() avec row_number = 1, puis continuer à appeler odbc_fetch_row() sans le paramètre row_number pour passer en revue tout le résultat. Si un pilote ne supporte pas la lecture des lignes par numéro, le paramètre sera ignoré.

Valeurs de retour

Retourne TRUE si la ligne existe, FALSE sinon.



odbc_field_len

(PHP 4, PHP 5)

odbc_field_lenLit la longueur d'un champ

Description

int odbc_field_len ( resource $result_id , int $field_number )

Lit la longueur du champ identifié par son numéro.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne le nom du champ, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi

  • odbc_field_scale() - Lit l'échelle d'un champpour connaître l'échelle d'un nombre à virgule flottante



odbc_field_name

(PHP 4, PHP 5)

odbc_field_nameLit le nom de la colonne

Description

string odbc_field_name ( resource $result_id , int $field_number )

Lit le nom de la colonne dont l'index est field_number.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro de la colonne. La numérotation commence à 1.

Valeurs de retour

Retourne le nom de la colonne, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



odbc_field_num

(PHP 4, PHP 5)

odbc_field_numNuméro de colonne

Description

int odbc_field_num ( resource $result_id , string $field_name )

Lit le numéro de la colonne nommée field_name.

Liste de paramètres

result_id

L'identifiant de résultat.

field_name

Le nom du champ.

Valeurs de retour

Retourne le numéro du champ, sous la forme d'un entier, ou FALSE si une erreur survient. La numérotation commence à 1.



odbc_field_precision

(PHP 4, PHP 5)

odbc_field_precisionAlias de odbc_field_len()

Description

Cette fonction est un alias de : odbc_field_len().

Voir aussi

  • odbc_field_scale() - Lit l'échelle d'un champpour connaître l'échelle d'un nombre à virgule flottante.



odbc_field_scale

(PHP 4, PHP 5)

odbc_field_scaleLit l'échelle d'un champ

Description

int odbc_field_scale ( resource $result_id , int $field_number )

Lit l'échelle du champ référencé par son numéro de champ field_number dans le résultat ODBC result_id.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne l'échelle du champ, sous la forme d'un entier, ou FALSE si une erreur survient.



odbc_field_type

(PHP 4, PHP 5)

odbc_field_typeType de données d'un champ

Description

string odbc_field_type ( resource $result_id , int $field_number )

Lit le type de données SQL d'un champ, identifié par son numéro.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne le type du champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



odbc_foreignkeys

(PHP 4, PHP 5)

odbc_foreignkeysListe les clés étrangères

Description

resource odbc_foreignkeys ( resource $connection_id , string $pk_qualifier , string $pk_owner , string $pk_table , string $fk_qualifier , string $fk_owner , string $fk_table )

Liste les clés étrangères utilisées dans la table pk_table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

pk_qualifier

Le qualifieur de la clé primaire.

pk_owner

Le propriétaire de la clé primaire.

pk_table

La table de la clé primaire.

fk_qualifier

Le qualifieur de la clé étrangère.

fk_owner

Le propriétaire de la clé étrangère.

fk_table

La table de la clé étrangère.

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • PKTABLE_QUALIFIER
  • PKTABLE_OWNER
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_QUALIFIER
  • FKTABLE_OWNER
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME

Si pk_table contient un nom de table, odbc_foreignkeys() retourne la clé primaire de la table pk_table, et toutes les clés étrangères qui y font référence.

Si fk_table contient un nom de table, odbc_foreignkeys() retourne la liste des clés étrangères de la table fk_table, et les clés primaires (d'autres tables) qui y font référence.

Si pk_table et fk_table contiennent des noms de tables, odbc_foreignkeys() retourne la liste des clés étrangères de la table fk_table qui utilisent la clé primaire de la table pk_table. Cette liste devrait ne contenir qu'une clé au mieux.



odbc_free_result

(PHP 4, PHP 5)

odbc_free_resultLibère les ressources associées à un résultat

Description

bool odbc_free_result ( resource $result_id )

Libère les ressources associées à un résultat.

odbc_free_result() n'est nécessaire que si vous craignez d'utiliser trop de mémoire lors de l'exécution de votre script. Tous les résultats en mémoire seront libérés dès la fin du script.

Liste de paramètres

result_id

L'identifiant de résultat.

Valeurs de retour

Retourne toujours TRUE.

Notes

Note:

Si l'autovalidation est désactivée (voir odbc_autocommit()) et que vous appelez odbc_free_result() avant de valider vos requêtes, toutes les transactions préparées seront annulées.



odbc_gettypeinfo

(PHP 4, PHP 5)

odbc_gettypeinfoListe les types de données supportés par une source

Description

resource odbc_gettypeinfo ( resource $connection_id [, int $data_type ] )

Liste les types de données supportés par une source.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

data_type

Peut être utilisé pour restreindre les informations à un seul type de données.

Valeurs de retour

Retourne l'identifiant de résultat ODBC, ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TYPE_NAME
  • DATA_TYPE
  • PRECISION
  • LITERAL_PREFIX
  • LITERAL_SUFFIX
  • CREATE_PARAMS
  • NULLABLE
  • CASE_SENSITIVE
  • SEARCHABLE
  • UNSIGNED_ATTRIBUTE
  • MONEY
  • AUTO_INCREMENT
  • LOCAL_TYPE_NAME
  • MINIMUM_SCALE
  • MAXIMUM_SCALE

Le résultat est ordonné par DATA_TYPE et TYPE_NAME.



odbc_longreadlen

(PHP 4, PHP 5)

odbc_longreadlenGestion des colonnes de type LONG

Description

bool odbc_longreadlen ( resource $result_id , int $length )

Active la gestion des colonnes de type LONG et LONGVARBINARY.

Liste de paramètres

result_id

L'identifiant de résultat.

length

Le nombre d'octets retourné à PHP. S'il est défini à 0, les données des colonnes de type LONG sont passé au client.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

La gestion des types LONGVARBINARY est aussi affectée par odbc_binmode().



odbc_next_result

(PHP 4 >= 4.0.5, PHP 5)

odbc_next_resultVérifie si plusieurs résultats sont disponibles

Description

bool odbc_next_result ( resource $result_id )

Vérifie s'il y a plus de jeux de résultats de disponibles accessibles via les fonctions odbc_fetch_array(), odbc_fetch_row(), odbc_result(), etc.

Liste de paramètres

result_id

L'identifiant de résultat.

Valeurs de retour

Retourne TRUE s'il n'y a plus de jeux de résultats, FALSE sinon.

Exemples

Exemple #1 Exemple avec odbc_next_result()

<?php
$r_Connection 
odbc_connect($dsn$username$password);

$s_SQL = <<<END_SQL
SELECT 'A'
SELECT 'B'
SELECT 'C'
END_SQL;

$r_Results odbc_exec($r_Connection$s_SQL);

$a_Row1 odbc_fetch_array($r_Results);
$a_Row2 odbc_fetch_array($r_Results);
echo 
"Affiche le premier jeu de résultats : ";
var_dump($a_Row1$a_Row2);

echo 
"Récupération du deuxième jeu de résultats : ";
var_dump(odbc_next_result($r_Results));

$a_Row1 odbc_fetch_array($r_Results);
$a_Row2 odbc_fetch_array($r_Results);
echo 
"Affiche le second jeu de résultats : ";
var_dump($a_Row1$a_Row2);

echo 
"Récupération du troisième jeu de résultats : ";
var_dump(odbc_next_result($r_Results));

$a_Row1 odbc_fetch_array($r_Results);
$a_Row2 odbc_fetch_array($r_Results);
echo 
"Affiche le troisième jeu de résultats : ";
var_dump($a_Row1$a_Row2);

echo 
"Tente de récupérer un quatrième jeu de résultats : ";
var_dump(odbc_next_result($r_Results));
?>

L'exemple ci-dessus va afficher :

Affiche le premier jeu de résultats : array(1) {
  ["A"]=>
  string(1) "A"
}
bool(false)
Récupération du second jeu de résultats :bool(true)
Affiche le second jeu de résultats : array(1) {
  ["B"]=>
  string(1) "B"
}
bool(false)
Récupération du troisième jeu de résultats : bool(true)
Affiche le troisième jeu de résultats : array(1) {
  ["C"]=>
  string(1) "C"
}
bool(false)
Tente de récupérer un quatrième jeu de résultats : bool(false)



odbc_num_fields

(PHP 4, PHP 5)

odbc_num_fieldsNombre de colonnes dans un résultat

Description

int odbc_num_fields ( resource $result_id )

Récupère le nombre de colonnes dans un résultat ODBC.

Liste de paramètres

result_id

L'identifiant de résultat, retourné par la fonction odbc_exec().

Valeurs de retour

Retourne le nombre de colonnes, ou -1 si une erreur survient.



odbc_num_rows

(PHP 4, PHP 5)

odbc_num_rowsNombre de lignes dans un résultat

Description

int odbc_num_rows ( resource $result_id )

Lit le nombre de lignes dans un résultat. Pour les commandes INSERT, UPDATE et DELETE, odbc_num_rows() retourne le nombre de lignes affectées. Pour les commandes SELECT, cela PEUT être le nombre de lignes disponibles, mais ce n'est pas certain.

Liste de paramètres

result_id

L'identifiant de résultat, retourné par la fonction odbc_exec().

Valeurs de retour

Retourne le nombre de lignes dans le résultat ODBC. Cette fonction retournera -1 si une erreur survient.

Notes

Note:

L'utilisation de la fonction odbc_num_rows() pour déterminer le nombre de lignes disponible après un SELECT retournera -1 avec la plupart des pilotes.



odbc_pconnect

(PHP 4, PHP 5)

odbc_pconnectOuvre une connexion persistante à une source de données

Description

resource odbc_pconnect ( string $dsn , string $user , string $password [, int $cursor_type ] )

Ouvre une connexion persistante à une source de données.

odbc_pconnect() se comporte de manière similaire à odbc_connect(), mais la connexion ouverte n'est pas vraiment terminée lorsque le script est achevé. Les prochaines requêtes qui se feront sur une connexion dont les dsn, user, password sont les mêmes que celle-ci (avec odbc_connect() et odbc_pconnect()) réutiliseront la connexion ouverte.

Liste de paramètres

Voir la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Retourne un identifiant de connexion ODBC, ou 0 (FALSE) si une erreur survient.

Notes

Note: Les connexions persistantes n'ont aucun effet si PHP est utilisé comme CGI.



odbc_prepare

(PHP 4, PHP 5)

odbc_preparePrépare une commande pour l'exécution

Description

resource odbc_prepare ( resource $connection_id , string $query_string )

Prépare une commande pour l'exécution. L'identifiant peut être utilisé plus tard pour exécuter la commande avec odbc_execute().

Quelques bases de données (comme IBM DB2, MS SQL Server et Oracle) supportent les procédures stockées qui acceptent les types de paramètres IN, INOUT et OUT comme définis dans les spécifications ODBC. Cependant, le driver unifié ODBC supporte actuellement uniquement le type de paramètres IN pour les procédures stockées.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

query_string

La requête à préparer.

Valeurs de retour

Retourne un identifiant de résultat ODBC si la commande SQL a été préparée avec succès. Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_prepare() et odbc_prepare()

Dans le code suivant, $res ne sera valide uniquement si les trois paramètres pour myproc sont des paramètres IN :

<?php
$a 
1;
$b 2;
$c 3;
$stmt odbc_prepare($conn'CALL myproc(?,?,?)');
$res  odbc_execute($stmt, array($a$b$c));
?>

Si vous devez appeler une procédure stockée utilisant des paramètres INOUT ou OUT, il est recommandé d'utiliser l'extension native de votre base de données (par exemple, mssql pour MS SQL Server ou oci8 pour Oracle).

Voir aussi



odbc_primarykeys

(PHP 4, PHP 5)

odbc_primarykeysListe les colonnes utilisées dans une clé primaire

Description

resource odbc_primarykeys ( resource $connection_id , string $qualifier , string $owner , string $table )

Liste les colonnes utilisées dans une clé primaire de la table table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

owner

table

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME



odbc_procedurecolumns

(PHP 4, PHP 5)

odbc_procedurecolumnsListe les paramètres des procédures

Description

resource odbc_procedurecolumns ( resource $connection_id )
resource odbc_procedurecolumns ( resource $connection_id , string $qualifier , string $owner , string $proc , string $column )

Liste les paramètres des procédures.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

proc

Le procédure. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

column

La colonne. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

Valeurs de retour

Retourne les paramètres d'entrée et de sortie, ainsi que les colonnes utilisées dans les procédures désignées par les paramètres. Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

Le résultat est ordonné par PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME et COLUMN_TYPE.



odbc_procedures

(PHP 4, PHP 5)

odbc_proceduresListe les procédures stockées

Description

resource odbc_procedures ( resource $connection_id )
resource odbc_procedures ( resource $connection_id , string $qualifier , string $owner , string $name )

Liste les procédures stockées.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

name

Le nom. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

Valeurs de retour

Retourne un identifiant de résultat ODBC contenant les informations ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE



odbc_result_all

(PHP 4, PHP 5)

odbc_result_allAffiche le résultat sous la forme d'une table HTML

Description

int odbc_result_all ( resource $result_id [, string $format ] )

Affiche toutes les lignes d'un résultat. L'affichage se fait au format HTML.

Liste de paramètres

result_id

L'identifiant de résultat.

format

Permet de modifier l'aspect global de la table.

Valeurs de retour

Retourne le nombre de lignes du résultat, ou FALSE si une erreur survient.



odbc_result

(PHP 4, PHP 5)

odbc_resultLit un champ de résultat UODBC

Description

mixed odbc_result ( resource $result_id , mixed $field )

Lit un champ de résultat UODBC.

Liste de paramètres

result_id

Une ressource ODBC.

field

Le nom du champ à récupérer. Peut être aussi bien un entier, contenant le numéro de colonne du champ, dans le résultat, ou bien une chaîne de caractères, qui représente le nom du champ.

Valeurs de retour

Retourne le contenu du champ, FALSE si une erreur survient, NULL pour les données NULL, ou TRUE pour des données binaires.

Exemples

Le premier appel à odbc_result() retourne la valeur du troisième champ de la ligne courante du résultat result_id. Le deuxième appel à odbc_result() retourne la valeur du troisième champ dont le nom est "val" de la ligne courante du résultat result_id. Une erreur survient si le paramètre de colonne est inférieur à 1, ou dépasse le nombre de colonnes du résultat. De la même manière, une erreur survient si le nom du champ passé ne correspond à aucun champ dans le résultat.

Exemple #1 Exemple avec odbc_result()

<?php
$item_3   
odbc_result($Query_ID3);
$item_val odbc_result($Query_ID"val");
?>

Notes

Les index de champs commencent à 1. Pour plus d'informations sur la façon de lire des colonnes de type binaire ou long, reportez-vous à odbc_binmode() et odbc_longreadlen().



odbc_rollback

(PHP 4, PHP 5)

odbc_rollbackAnnule une transaction

Description

bool odbc_rollback ( resource $connection_id )

Annule toutes les transactions sur la connexion connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



odbc_setoption

(PHP 4, PHP 5)

odbc_setoptionModifie les paramètres ODBC

Description

bool odbc_setoption ( resource $id , int $function , int $option , int $param )

odbc_setoption() donne accès aux options ODBC pour une connexion particulière ou un résultat de requête. Elle a été écrite pour aider à la résolution de problèmes liés aux pilotes ODBC récalcitrants. Vous aurez sûrement à utiliser odbc_setoption() si vous êtes un programmeur ODBC et que vous comprenez les divers effets des options disponibles. Vous aurez aussi besoin d'un bon manuel de référence pour comprendre les options et leur usage. Différentes versions de pilotes supportent différentes versions d'options.

Étant donné que les effets peuvent varier d'un pilote à l'autre, l'utilisation de odbc_setoption() dans des scripts voués à être livrés au public est très fortement déconseillée. De plus, certaines options ODBC ne sont pas disponibles car elles doivent être fixées avant l'établissement de la connexion. Cependant, si dans un cas bien spécifique, odbc_setoption() vous permet d'utiliser PHP sans que votre patron ne vous pousse à utiliser un produit commercial, alors cela n'a pas d'importance.

Liste de paramètres

id

Un identifiant de connexion, ou un identifiant de résultat, pour lequel vous souhaitez modifier des options. Pour SQLSetConnectOption(), c'est un identifiant de connexion. Pour SQLSetStmtOption(), c'est un identifiant de résultat.

function

Fonction ODBC à utiliser. La valeur doit être de 1 pour utiliser SQLSetConnectOption() et 2 pour SQLSetStmtOption().

option

L'option à définir.

param

La valeur pour l'option donnée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_setoption()

<?php
// 1. L'option 102 de SQLSetConnectOption() est SQL_AUTOCOMMIT.
// 1 de SQL_AUTOCOMMIT est SQL_AUTOCOMMIT_ON.
//    Cet exemple a le même effet que
//    odbc_autocommit($conn, true);

odbc_setoption($conn11021);

// 2. Option 0 de SQLSetStmtOption() est SQL_QUERY_TIMEOUT.
//    Cet exemple fixe le délai d'expiration à 30 secondes.

$result odbc_prepare($conn$sql);
odbc_setoption($result2030);
odbc_execute($result);
?>



odbc_specialcolumns

(PHP 4, PHP 5)

odbc_specialcolumnsRetourne l'ensemble optimal de colonnes

Description

resource odbc_specialcolumns ( resource $connection_id , int $type , string $qualifier , string $owner , string $table , int $scope , int $nullable )

Retourne soit l'ensemble optimal de colonnes qui identifie de façon unique une ligne d'une table, ou les colonnes qui sont automatiquement mises à jour lorsqu'un des valeurs de la ligne est mise à jour par une transaction.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

type
Lorsque le type est SQL_BEST_ROWID, odbc_specialcolumns() retourne la ou les colonnes qui permettent de repérer uniquement chaque ligne d'une table. Lorsque le type est SQL_ROWVER, odbc_specialcolumns() retourne la colonne ou les colonnes de la table spécifiée, s'il y en a, elles sont automatiquement mises à jour par les données sources lorsque chaque valeur de la ligne est mise à jour par n'importe quelle transaction.
qualifier

Le qualifieur.

owner

Le propriétaire.

table

La table.

scope

Le scope, qui ordonne le jeu de résultats.

nullable

L'option nullable.

Valeurs de retour

Retourne la ressource de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • PSEUDO_COLUMN



odbc_statistics

(PHP 4, PHP 5)

odbc_statisticsCalcul des statistiques sur une table

Description

resource odbc_statistics ( resource $connection_id , string $qualifier , string $owner , string $table_name , int $unique , int $accuracy )

Calcul des statistiques sur une table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire.

table_name

Le nom de la table.

unique

L'attribut unique.

accuracy

L'attribut accuracy.

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • SEQ_IN_INDEX
  • COLUMN_NAME
  • COLLATION
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION

Le résultat est ordonné par NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME et SEQ_IN_INDEX.



odbc_tableprivileges

(PHP 4, PHP 5)

odbc_tableprivilegesListe les tables et leurs privilèges

Description

resource odbc_tableprivileges ( resource $connection_id , string $qualifier , string $owner , string $name )

Liste les tables et leurs privilèges.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

name

Le nom. Acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.



odbc_tables

(PHP 4, PHP 5)

odbc_tablesListe les tables d'une source

Description

resource odbc_tables ( resource $connection_id [, string $qualifier [, string $owner [, string $name [, string $types ]]]] )

Liste les tables d'une source.

Pour supporter les énumérations de qualificateurs propriétaires et types de table, la sémantique suivante pour les paramètres qualifier, owner, name et table_type est disponible :

  • Si qualifier est un signe de pourcentage (%), et owner et name sont des chaînes vides, alors le résultat contient la liste des qualifiés valides pour la source (toutes les colonnes hormis TABLE_QUALIFIER contiennent NULL).
  • Si owner est un signe de pourcentage (%), et qualifier et name sont des chaînes vides, alors le résultat contient la liste des propriétaires de la source (toutes les colonnes hormis TABLE_OWNER contiennent NULL).
  • Si table_type est un signe de pourcentage (%), et qualifier, owner et name sont des chaînes vides, alors le résultat contient la liste des types de tables de la source (toutes les colonnes hormis TABLE_TYPE contiennent NULL).

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Accepte des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

name

Le nom. Accepte des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

types

Si table_type n'est pas une chaîne vide, il doit contenir une liste de valeurs, séparées par des virgules, qui représentent les types recherchés. Chaque valeur peut être insérée entre guillemets simples ('), ou sans guillemets. Par exemple, "'TABLE','VIEW'" ou "TABLE, VIEW". Si la source de données ne supporte pas un type de table donné, odbc_tables() ne retournera aucun résultat pour ce type.

Valeurs de retour

Retourne un identifiant de résultat ODBC contenant les informations ou FALSE si une erreur survient.

Le résultat contient les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS

Le résultat est ordonné grâce aux options TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.

Voir aussi


Sommaire




PHP Data Objects


Introduction

L'extension PHP Data Objects (PDO) définit une excellente interface pour accéder à une base de données depuis PHP. Chaque pilote de base de données implémenté dans l'interface PDO peut utiliser des fonctionnalités spécifiques de chacune des bases de données en utilisant des extensions de fonctions. Notez que vous ne pouvez exécuter aucune fonction de base de données en utilisant l'extension PDO par elle-même ; vous devez utiliser un driver PDO spécifique à la base de données pour accéder au serveur de base de données.

PDO fournit une interface d'abstraction à l'accès de données, ce qui signifie que vous utilisez les mêmes fonctions pour exécuter des requêtes ou récupérer les données quelque soit la base de données utilisée. PDO ne fournit pas une abstraction de base de données : il ne réécrit pas le SQL, n'émule pas des fonctionnalités manquantes. Vous devriez utiliser une interface d'abstraction complète si vous avez besoin de cela.

PDO est fournit avec PHP 5.1 et est disponible en tant qu'extension PECL pour PHP 5.0 ; PDO requiert les nouvelles fonctionnalités OO fournies par PHP 5 et donc, ne fonctionne pas avec les versions antérieures de PHP.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

PHP 5.1 et supérieur sur les systèmes Unix
  1. PDO et le driver PDO_SQLITE sont activés par défaut depuis PHP 5.1.0. Vous devez activer le driver PDO de la base de données de votre choix ; consultez la documentation pour les drivers spécifiques à votre base de données pour plus d'informations. Notez que lors de la compilation de PDO comme extension partagée (non recommandé), alors tous les drivers PDO doivent être chargés après le chargement de PDO.

  2. Lors de l'installation de PDO comme module partagé, le fichier php.ini doit être mis à jour afin de charger l'extension PDO automatiquement lorsque PHP entre en fonctionnement. Vous devez également y activer les drivers spécifiques à votre base de données ; assurez-vous que ces drivers seront listés après la ligne pdo.so, vu que PDO doit être initialisé avant le chargement des extensions spécifiques aux bases de données. Si vous compilez PDO et les extensions relatives aux bases de données de façon statique, vous pouvez ignorer cette étape.

    extension=pdo.so
    

Utilisateurs de Windows
  1. PDO ainsi que tous les drivers principaux interagissent avec PHP en tant qu'extensions partagées, et ont tout simplement besoin d'être activés en éditant le fichier php.ini :

    extension=php_pdo.dll
    

    Note:

    Cette étape n'est plus nécessaire depuis PHP 5.3, PDO ne requière plus de DLL.

  2. Ensuite, choisissez les autres fichiers DLL spécifiques à votre base de données et utilisez soit la fonction dl() pour les charger au moment de l'exécution ou activer-les dans le fichier php.ini en dessous de la ligne php_pdo.dll. Par exemple :

    extension=php_pdo.dll
    extension=php_pdo_firebird.dll
    extension=php_pdo_informix.dll
    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    extension=php_pdo_oci8.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll  
    

    Ces bibliothèques DDLs doivent exister dans le dossier système extension_dir.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PDO
Nom Défaut Modifiable Historique
pdo.dsn.*   php.ini seulement  

Voici un éclaircissement sur l'utilisation des directives de configuration.

pdo.dsn.* string

Définit un alias DSN. Voyez PDO::__construct() pour une explication complète.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Avertissement

PDO utilise les constantes de classe depuis PHP 5.1. Les versions antérieures utilisent les constantes globales sous la forme PDO_PARAM_BOOL.

PDO::PARAM_BOOL (entier)
Représente le type de données booléen.
PDO::PARAM_NULL (entier)
Représente le type de données NULL SQL.
PDO::PARAM_INT (entier)
Représente le type de données INTEGER SQL.
PDO::PARAM_STR (entier)
Représente les types de données CHAR, VARCHAR ou les autres types de données sous forme de chaîne de caractères SQL.
PDO::PARAM_LOB (entier)
Représente le type de données "objet large" SQL.
PDO::PARAM_STMT (entier)
Représente un type de jeu de résultats. N'est actuellement pas supporté par tous les pilotes.
PDO::PARAM_INPUT_OUTPUT (entier)
Spécifie que le paramètre est un paramètre INOUT pour une procédure stockée. Vous devez utiliser l'opérateur OR avec un type de données explicite PDO::PARAM_*.
PDO::FETCH_LAZY (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne en tant qu'objet PDORow avec les noms de variables correspondants aux noms des colonnes retournées dans le jeu de résultats. PDO::FETCH_LAZY crée les noms des variables de l'objet uniquement lorsqu'ils sont utilisés.
PDO::FETCH_ASSOC (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_ASSOC retourne une seule valeur par nom de colonne.
PDO::FETCH_NAMED (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_NAMED retourne un tableau de valeurs par nom de colonne.
PDO::FETCH_NUM (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par le numéro des colonnes comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.
PDO::FETCH_BOTH (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes ainsi que leurs numéros, comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.
PDO::FETCH_OBJ (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un objet avec les noms de propriétés correspondant aux noms des colonnes comme elles sont retournées dans le jeu de résultats.
PDO::FETCH_BOUND (entier)
Spécifie que la méthode de récupération doit retourner TRUE et assigner les valeurs des colonnes du jeu de résultats dans les variables PHP auxquelles elles sont liées avec la méthode PDOStatement::bindParam() ou la méthode PDOStatement::bindColumn().
PDO::FETCH_COLUMN (entier)
Spécifie que la méthode de récupération doit retourner uniquement une seule colonne demandée depuis la prochaine ligne du jeu de résultats.
PDO::FETCH_CLASS (entier)
Spécifie que la méthode de récupération doit retourner une nouvelle instance de la classe demandée, liant les colonnes aux membres de la classe.

Note: La méthode magique __set() est appelée si le membre n'existe pas dans la classe utilisée.

PDO::FETCH_INTO (entier)
Spécifie que la méthode de récupération doit mettre à jour une instance existante de la classe demandée, liant les colonnes aux propriétés nommées dans la classe.
PDO::FETCH_FUNC (entier)
Spécifie que la méthode de récupération doit appeler une fonction de callback qui traitera les résultats.
PDO::FETCH_GROUP (entier)
PDO::FETCH_UNIQUE (entier)
PDO::FETCH_KEY_PAIR (entier)
Récupération dans un tableau lorsque la première colonne est une clé et tous les autres colonnes sont les valeurs. Disponible depuis PHP 5.2.3.
PDO::FETCH_CLASSTYPE (entier)
Détermine le nom de la classe depuis la valeur de la première colonne.
PDO::FETCH_SERIALIZE (entier)
Identique à PDO::FETCH_INTO, mais l'objet est fourni sous la forme d'une chaîne linéarisée. Disponible depuis PHP 5.1.0.
PDO::FETCH_PROPS_LATE (entier)
Disponible depuis PHP 5.2.0
PDO_ATTR_AUTOCOMMIT (entier)
Si la valeur vaut FALSE, PDO tente de désactiver l'autovalidation lorsque la connexion commence une transaction.
PDO::ATTR_PREFETCH (entier)
Définir la taille de la prérécupération vous permet d'accroître les performances de votre application. Toutes les combinaisons bases de données / pilotes ne supportent pas cette fonctionnalité. Ceci accroît les performances au détriment de la consommation de mémoire vive.
PDO::ATTR_TIMEOUT (entier)
Définit la valeur d'attente en secondes pour les communications avec la base de données.
PDO::ATTR_ERRMODE (entier)
Voir la section sur les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ATTR_SERVER_VERSION (entier)
Attribut en lecture seule ; il retourne des informations sur la version de la base de données à laquelle PDO est connecté.
PDO::ATTR_CLIENT_VERSION (entier)
Attribut en lecture seule ; il retourne des informations sur la version de la bibliothèque cliente utilisée par PDO.
PDO::ATTR_SERVER_INFO (entier)
Attribut en lecture seule ; il retourne quelques metainformations sur le serveur de base de données auquel PDO est connecté.
PDO::ATTR_CONNECTION_STATUS (entier)
PDO::ATTR_CASE (entier)
Force les noms des colonnes dans une casse spécifiée par les constantes PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (entier)
Récupère ou définit le nom à utiliser pour un curseur. Très utile lors de l'utilisation de curseurs scrollables et des mises à jour positionnées.
PDO::ATTR_CURSOR (entier)
Sélectionne le type de curseur. PDO supporte actuellement soit PDO::CURSOR_FWDONLY, soit PDO::CURSOR_SCROLL. Conservez PDO::CURSOR_FWDONLY tant que vous savez que vous avez besoin d'un curseur scrollable.
PDO::ATTR_DRIVER_NAME (chaîne de caractères)
Retourne le nom du driver.

Exemple #1 Utilisation de PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
   echo 
"Utilisation de mysql ; fait quelque chose de spécifique à mysql ici\n";
}
?>

PDO::ATTR_ORACLE_NULLS (entier)
Convertit les chaînes vides en valeurs NULL SQL dans les données récupérées.
PDO::ATTR_PERSISTENT (entier)
Demande une connexion persistante, plutôt que de créer une nouvelle connexion. Voir les connexions et le gestionnaire de connexion pour plus d'informations sur cet attribut.
PDO::ATTR_STATEMENT_CLASS (entier)
PDO::ATTR_FETCH_CATALOG_NAMES (entier)
Ajoute le contenu du catalogue de noms dans chaque nom de colonnes retourné dans le jeu de résultat. Le catalogue de noms et les noms de colonnes sont séparés par un point (.). Le support de cet attribut n'est pas disponible pour tous les pilotes ; il peut ne pas être disponible pour votre driver.
PDO::ATTR_FETCH_TABLE_NAMES (entier)
Ajoute le contenu de la table de noms dans chaque nom de colonne retourné dans le jeu de résultats. La table de nom et les noms de colonnes sont séparés par un point (.). Le support de cet attribut n'est pas disponible pour tous les pilotes ; il peut ne pas être disponible pour votre driver.
PDO::ATTR_STRINGIFY_FETCHES (entier)
PDO::ATTR_MAX_COLUMN_LEN (entier)
PDO::ATTR_DEFAULT_FETCH_MODE (entier)
Disponible depuis PHP 5.2.0.
PDO::ATTR_EMULATE_PREPARES (entier)
Disponible depuis PHP 5.1.3.
PDO::ERRMODE_SILENT (entier)
N'envoie pas d'erreur ni d'exception si une erreur survient. Le développeur doit explicitement vérifier les erreurs. C'est le mode par défaut. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_WARNING (entier)
Envoie une erreur de niveau E_WARNING si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_EXCEPTION (entier)
Lance une exception PDOException si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::CASE_NATURAL (entier)
Laisse les noms de colonnes comme retournés par le driver de base de données.
PDO::CASE_LOWER (entier)
Force les noms de colonnes en minuscule.
PDO::CASE_UPPER (entier)
Force les noms des colonnes en majuscule.
PDO::NULL_NATURAL (entier)
PDO::NULL_EMPTY_STRING (entier)
PDO::NULL_TO_STRING (entier)
PDO::FETCH_ORI_NEXT (entier)
Récupère la prochaine ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.
PDO::FETCH_ORI_PRIOR (entier)
Récupère la ligne précédente d'un jeu de résultats. Valide seulement pour les curseurs scrollables.
PDO::FETCH_ORI_FIRST (entier)
Récupère la première ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.
PDO::FETCH_ORI_LAST (entier)
Récupère la dernière ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.
PDO::FETCH_ORI_ABS (entier)
Récupère la ligne demandée par un numéro de ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.
PDO::FETCH_ORI_REL (entier)
Récupère la ligne demandée par une position relative à la position courante du curseur d'un jeu de résultats. Valide seulement pour les curseurs scrollables.
PDO::CURSOR_FWDONLY (entier)
Crée un objet PDOStatement avec un curseur uniquement de retour. C'est le choix par défaut pour le curseur, car il est rapide et l'accès aux données est commun pour les masques en PHP.
PDO::CURSOR_SCROLL (entier)
Crée un objet PDOStatement avec un curseur scrollable. Passez la constante PDO::FETCH_ORI_* pour contrôler les lignes récupérées du jeu de résultats.
PDO::ERR_NONE (chaîne de caractères)
Correspond à SQLSTATE '00000', ce qui signifie que la requête SQL a réussi sans erreur, ni avertissement. Cette constante est utile lorsque vous utilisez PDO::errorCode() ou PDOStatement::errorCode() pour déterminer si une erreur est survenue. Cependant, vous devez déjà savoir si c'est le cas en examinant le code retourné par la méthode qui a lancée l'erreur.
PDO::PARAM_EVT_ALLOC (entier)
Alloue un événement
PDO::PARAM_EVT_FREE (entier)
Supprime un événement
PDO::PARAM_EVT_EXEC_PRE (entier)
Toujours faire un déclencheur avant l'exécution d'une requête préparée.
PDO::PARAM_EVT_EXEC_POST (entier)
Toujours effectuer un déclencheur de sous séquence avant l'exécution d'une requête préparée.
PDO::PARAM_EVT_FETCH_PRE (entier)
Toujours effectuer un déclencheur avant de récupérer un résultat d'un jeu de résultats.
PDO::PARAM_EVT_FETCH_POST (entier)
Toujours effectuer un déclencheur de sous séquence avant de récupérer un résultat d'un jeu de résultats.
PDO::PARAM_EVT_NORMALIZE (entier)
Toujours effectuer un déclencheur lors de l'enregistrement des paramètres liés permettant au pilote de normaliser le nom des paramètres.


Connexions et gestionnaire de connexion

Les connexions sont établies en créant des instances de la classe de base de PDO. Peu importe quel driver vous voulez utiliser ; vous utilisez toujours le nom de la classe PDO. Le constructeur accepte des paramètres pour spécifier la source de la base de données (connue en tant que DSN) et optionnellement, le nom d'utilisateur et le mot de passe (s'il y en a un).

Exemple #2 Connexion à MySQL

<?php
$dbh 
= new PDO('mysql:host=localhost;dbname=test'$user$pass);
?>

S'il y a des erreurs de connexion, un objet PDOException est lancé. Vous pouvez attraper cette exception si vous voulez gérer cette erreur, ou laisser le gestionnaire global d'exception défini via la fonction set_exception_handler() la traiter.

Exemple #3 Gestion des erreurs de connexion

<?php
try {
    
$dbh = new PDO('mysql:host=localhost;dbname=test'$user$pass);
    foreach(
$dbh->query('SELECT * from FOO') as $row) {
        
print_r($row);
    }
    
$dbh null;
} catch (
PDOException $e) {
    print 
"Erreur !: " $e->getMessage() . "<br/>";
    die();
}
?>

Avertissement

Si votre application n'attrape pas les exceptions lancées depuis le constructeur PDO, l'action par défaut du moteur zend est de terminer le script et d'afficher une trace. Cette trace devrait révéler des détails complets sur la connexion à la base de données, incluant le nom d'utilisateur et le mot de passe. Il en est donc de votre responsabilité d'attraper cette exception, soit explicitement (via l'instruction catch) ou implicitement via la fonction set_exception_handler().

Lorsque la connexion à la base de données a réussi, une instance de la classe PDO est retournée à votre script. La connexion est active tant que l'objet PDO l'est. Pour clore la connexion, vous devez détruire l'objet en vous assurant que toutes ses références sont effacées. Vous pouvez faire cela en assignant NULL à la variable gérant l'objet. Si vous ne le faites pas explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin.

Exemple #4 Fermeture d'une connexion

<?php
$dbh 
= new PDO('mysql:host=localhost;dbname=test'$user$pass);
// utiliser la connexion ici


// et maintenant, fermez-la !
$dbh null;
?>

Beaucoup d'applications web utilisent des connexions persistantes aux serveurs de base de données. Les connexions persistantes ne sont pas fermées à la fin du script, mais sont mises en cache et réutilisées lorsqu'un autre script demande une connexion en utilisant les mêmes paramètres. Le cache des connexions persistantes vous permet d'éviter d'établir une nouvelle connexion à chaque fois qu'un script doit accéder à une base de données, rendant l'application web plus rapide.

Exemple #5 Connexions persistantes

<?php
$dbh 
= new PDO('mysql:host=localhost;dbname=test'$user$pass, array(
    
PDO::ATTR_PERSISTENT => true
));
?>

Note:

Si vous souhaitez utiliser des connexions persistantes, vous devez utiliser la valeur PDO::ATTR_PERSISTENT dans le le tableau des options du driver passé au constructeur PDO. Si vous définissez cet attribut avec la méthode PDO::setAttribute() après l'instanciation de l'objet, le driver n'utilisera pas les connexions persistantes.

Note:

Si vous utilisez le driver PDO ODBC et que votre bibliothèque ODBC supporte le pool de connexion ODBC (unixODBC et Windows le supportent tous les deux ; peut être plus), alors il est recommandé de ne pas utiliser les connexions persistantes PDO, mais plutôt laisser le pool de connexion ODBC mettre en cache les connexions. Le pool de connexion ODBC est partagé avec les autres modules dans le processus ; si PDO met en cache la connexion, alors cette connexion ne sera jamais retournée par le pool de connexion ODBC, faisant que plusieurs connexions sont créées pour les autres modules.



Transactions et validation automatique (autocommit)

Maintenant que vous êtes connecté via PDO, vous devez comprendre comment PDO gère les transactions avant d'exécuter des requêtes. Si vous n'avez jamais utilisé les transactions, elles offrent 4 fonctionnalités majeures : Atomicité, Consistance, Isolation et Durabilité (ACID). En d'autres termes, n'importe quel travail mené à bien dans une transaction, même s'il est effectué par étapes, est garanti d'être appliqué à la base de données sans risque, et sans interférence pour les autres connexions, quand il est validé. Le travail des transactions peut également être automatiquement annulé à votre demande (en supposant que vous n'avez encore rien validé), ce qui rend la gestion des erreurs bien plus simple dans vos scripts.

Les transactions sont typiquement implémentées pour appliquer toutes vos modifications en une seule fois ; ceci a le bel effet d'éprouver drastiquement l'efficacité de vos mises à jour. Dans d'autres termes, les transactions rendent vos scripts plus rapides et potentiellement plus robustes (vous devez les utiliser correctement pour avoir ces bénéfices).

Malheureusement, toutes les bases de données ne supportent pas les transactions, donc, PDO doit s'exécuter en mode "autocommit" lorsque vous ouvrez pour la première fois la connexion. Le mode "autocommit" signifie que toutes les requêtes que vous exécutez ont leurs transactions implicites, si la base de données le supporte ou aucune transaction si la base de données ne les supporte pas. Si vous avez besoin d'une transaction, vous devez utiliser la méthode PDO::beginTransaction() pour l'initialiser. Si le driver utilisé ne supporte pas les transactions, une exception PDO sera lancée (en accord avec votre gestionnaire d'erreurs : ceci est toujours une erreur sérieuse). Une fois que vous êtes dans une transaction, vous devez utiliser la fonction PDO::commit() ou la fonction PDO::rollBack() pour la terminer, suivant le succès de votre code durant la transaction.

Avertissement

PDO ne vérifie la possibilité d'utiliser des transactions qu'au niveau du pilote. Si certaines conditions à l'exécution empêchent les transactions de fonctionner, PDO::beginTransaction() retournera tout de même TRUE sans erreur si le serveur accepte de démarrer une transaction.

Un exemple serait d'utiliser des transactions sur des tables au format MyISAM du serveur de base de données MySQL.

Lorsque le script se termine ou lorsque la connexion est sur le point de se fermer, si vous avez une transaction en cours, PDO l'annulera automatiquement. Ceci est une mesure de sécurité afin de garantir la consistance de vos données dans le cas où le script se termine d'une façon inattendue. Si vous ne validez pas explicitement la transaction, alors, on présume que quelque chose s'est mal passé et l'annulation de la transaction intervient afin de garantir la sécurité de vos données.

Avertissement

L'annulation automatique intervient si vous avez initialisé la transaction via PDO::beginTransaction(). Si vous avez manuellement exécuté une requête qui commence une transaction, PDO n'a aucun moyen de le savoir et donc, n'annulera pas automatiquement cette transaction si quelque chose s'est mal passé.

Exemple #6 Exécution d'un groupe dans une transaction

Dans l'exemple suivant, supposons que nous allons créer un jeu d'entrées pour un nouvel employé, dont le numéro d'ID sera 23. En plus des données basiques sur cette personne, nous devons également lui enregistrer son salaire. Il est très simple d'effectuer deux mises à jour séparées, mais en les enfermant dans les appels des fonctions PDO::beginTransaction() et PDO::commit(), nous garantissons que personne ne pourra voir ces modifications tant qu'elles ne seront pas complètes. Si quelque chose tourne mal, le bloc de capture annulera toutes les modifications effectuées depuis le début de la transaction et affichera un message d'erreur.

<?php
try {
  
$dbh = new PDO('odbc:SAMPLE''db2inst1''ibmdb2',
      array(
PDO::ATTR_PERSISTENT => true));
  echo 
"Connecté\n";
} catch (
Exception $e) {
  die(
"Impossible de se connecter: " $e->getMessage());
}

try {  
  
$dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

  
$dbh->beginTransaction();
  
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  
$dbh->exec("insert into salarychange (id, amount, changedate) 
      values (23, 50000, NOW())"
);
  
$dbh->commit();

} catch (
Exception $e) {
  
$dbh->rollBack();
  echo 
"Failed: " $e->getMessage();
}
?>

Vous n'êtes pas limités dans le nombre de mises à jour dans une transaction ; vous pouvez également y effectuer des requêtes complexes et bien sûr, utiliser ces informations pour construire d'autres mises à jour et requêtes ; durant l'activité de la transaction, vous êtes sûrs que personne d'autre ne peut effectuer des modifications alors que vous êtes au milieu de vos modifications. Pour plus d'informations sur les transactions, reportez-vous à la documentation fournie par votre base de données.



Requêtes préparées et procédures stockées

La plupart des bases de données supportent le concept des requêtes préparées. Qu'est-ce donc ? Vous pouvez les voir comme une sorte de modèle compilé pour le SQL que vous voulez exécuter, qui peut être personnalisé en utilisant des variables en guise de paramètres. Les requêtes préparées offrent deux fonctionnalités essentielles :

  • La requête ne doit être analysée (ou préparée) qu'une seule fois, mais peut être exécutée plusieurs fois avec des paramètres identiques ou différents. Lorsque la requête est préparée, la base de données va analyser, compiler et optimiser son plan pour exécuter la requête. Pour les requêtes complexes, ce processus peut prendre assez de temps, ce qui peut ralentir vos applications si vous devez répéter la même requête plusieurs fois avec différents paramètres. En utilisant les requêtes préparées, vous évitez ainsi de répéter le cycle analyser/compilation/optimisation. Pour résumer, les requêtes préparées utilisent moins de ressources et s'exécutent plus rapidement.
  • Les paramètres pour préparer les requêtes n'ont pas besoin d'être entre guillemets ; le driver le gère pour vous. Si votre application utilise exclusivement les requêtes préparées, vous pouvez être sûr qu'aucune injection SQL n'est possible (Cependant, si vous construisez d'autres parties de la requête en vous basant sur des entrées utilisateurs, vous continuez à prendre un risque).

Les requêtes préparées sont tellement pratiques que c'est l'unique fonctionnalité que PDO émule pour les drivers qui ne les supportent pas. Ceci assure de pouvoir utiliser la même technique pour accéder aux données, sans se soucier des capacités de la base de données.

Exemple #7 Insertions répétitives en utilisant les requêtes préparées

Cet exemple effectue une requête INSERT en y substituant un nom et une valeur pour les marqueurs nommés.

<?php
$stmt 
$dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name'$name);
$stmt->bindParam(':value'$value);

// insertion d'une ligne
$name 'one';
$value 1;
$stmt->execute();

// insertion d'une autre ligne avec des valeurs différentes
$name 'two';
$value 2;
$stmt->execute();
?>

Exemple #8 Insertions répétées en utilisant des requêtes réparées

Cet exemple effectue une requête INSERT en y substituant un nom et une valeur pour les marqueurs ?.

<?php
$stmt 
$dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1$name);
$stmt->bindParam(2$value);

// insertion d'une ligne
$name 'one';
$value 1;
$stmt->execute();

// insertion d'une autre ligne avec différentes valeurs
$name 'two';
$value 2;
$stmt->execute();
?>

Exemple #9 Récupération des données en utilisant des requêtes préparées

Cet exemple récupère des données basées sur la valeur d'une clé fournie par un formulaire. L'entrée utilisateur est automatiquement échappée, il n'y a donc aucun risque d'attaque par injection SQL.

<?php
$stmt 
$dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if (
$stmt->execute(array($_GET['name']))) {
  while (
$row $stmt->fetch()) {
    
print_r($row);
  }
}
?>

Si le driver de la base de données le supporte, vous pouvez également lier des paramètres aussi bien pour l'entrée que pour la sortie. Les paramètres de sortie sont utilisés typiquement pour récupérer les valeurs d'une procédure stockée. Les paramètres de sortie sont un peu plus complexe à utiliser que les paramètres d'entrée car vous devez savoir la longueur d'un paramètre donné pourra atteindre lorsque vous le liez. Si la valeur retournée est plus longue que la taille qui vous auriez suggéré, une erreur sera émise.

Exemple #10 Appel d'une procédure stockée avec un paramètre de sortie

<?php
$stmt 
$dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1$return_valuePDO::PARAM_STR4000); 

// Appel de la procédure stockée
$stmt->execute();

print 
"La procédure a retourné : $return_value\n";
?>

Vous devez également spécifier les paramètres qui gèrent les valeurs aussi bien pour l'entrée que pour la sortie ; la syntaxe est similaire aux paramètres de sortie. Dans le prochain exemple, la chaîne 'Bonjour' est passée à la procédure stockée et lorsqu'elle retourne la valeur, 'Bonjour' est remplacée par la valeur retournée par la procédure.

Exemple #11 Appel d'une procédure stockée avec un paramètre d'entrée/sortie

<?php
$stmt 
$dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value 'hello';
$stmt->bindParam(1$valuePDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT4000); 

// appel de la procédure stockée
$stmt->execute();

print 
"La procédure a retourné : $value\n";
?>

Exemple #12 Utilisation invalide de marqueur

<?php
$stmt 
$dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));

// un marqueur doit être utilisé à la place d'une valeur complète
$stmt $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>



Les erreurs et leur gestion

PDO vous offre 3 façon différentes de gérer les erreurs afin de mieux s'adapter à votre application.

  • PDO::ERRMODE_SILENT

    C'est le mode par défaut. PDO définit simplement le code erreur à inspecter grâce aux méthodes PDO::errorCode() et PDO::errorInfo() sur les objets représentant les requêtes, mais aussi ceux représentant les bases de données ; si l'erreur résulte d'un appel à l'objet représentant la requête, vous pouvez appeler la méthode PDOStatement::errorCode() ou la méthode PDOStatement::errorInfo() sur l'objet. Si l'erreur résulte d'un appel sur l'objet représentant une base de données, vous pouvez également appeler ces deux mêmes méthodes sur l'objet.

  • PDO::ERRMODE_WARNING

    En plus de définir le code erreur, PDO émettra un message E_WARNING traditionnel. Cette configuration est utile lors des tests et du déboguage, si vous voulez voir le problème sans interrompre l'application.

  • PDO::ERRMODE_EXCEPTION

    En plus de définir le code erreur, PDO lancera une exception PDOException et y définit les propriétés afin de représenter le code erreur et les informations complémentaires. Cette configuration est également utile lors du déboguage, car elle va "contourner" le point critique de votre code, vous montrer rapidement le problème rencontré (souvenez-vous : les transactions sont automatiquement annulées si l'exception fait que votre script se termine).

    Le mode "exception" est également très utile car ainsi, vous pouvez structurer votre gestionnaire d'erreur plus clairement qu'avec les alertes traditionnelles PHP et, ce, avec moins de code que lorsque vous exécutez votre code en mode silence, et que vous vérifiez systématiquement les valeurs retournées après chaque appel à la base de données.

    Voir le chapitre sur les exceptions pour plus d'informations sur les exceptions en PHP.

PDO utilise les codes erreurs SQL-92 SQLSTATE ; chaque driver PDO est responsable de lier leurs codes natifs aux codes SQLSTATE appropriés. La méthode PDO::errorCode() retourne un code SQLSTATE unique. Si vous avez besoin d'informations spécifiques sur l'erreur, PDO vous propose également la méthode PDO::errorInfo() qui retourne un tableau contenant le code SQLSTATE, le code erreur spécifique du driver et la chaîne décrivant l'erreur provenant du driver.



Les objets larges (LOB)

À un moment dans votre application, vous pourriez avoir besoin de stocker de larges données dans votre base de données. "Large" signifie typiquement des données d'environ 4 ko ou plus, bien que certaines bases de données peuvent gérer plus de 32 ko avant que les données deviennent "larges". Les objets larges peuvent être de nature textuelle ou binaire. PDO vous permet de travailler avec ce type de larges données en utilisant le code type PDO::PARAM_LOB dans vos appels aux fonctions PDOStatement::bindParam() ou PDOStatement::bindColumn(). PDO::PARAM_LOB demande à PDO de transformer les données en un flux que vous pourrez manipuler en utilisant l'API PHP des flux.

Exemple #13 Affichage d'une image depuis une base de données

Cet exemple lie un LOB dans une variable nommée $lob et l'envoie au navigateur en utilisant la fonction fpassthru(). Étant donné qu'un LOB est représenté en un flux, les fonctions comme fgets(), fread() et stream_get_contents() peuvent être utilisées sur ce flux.

<?php
$db 
= new PDO('odbc:SAMPLE''db2inst1''ibmdb2');
$stmt $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1$typePDO::PARAM_STR256);
$stmt->bindColumn(2$lobPDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);
?>

Exemple #14 Insertion d'une image dans une base de données

Cet exemple ouvre un fichier et passe le pointeur de fichier à PDO pour l'insérer en tant que LOB. PDO fera son possible pour récupérer le contenu du fichier et l'insérer dans la base de données de la manière la plus efficace possible.

<?php
$db 
= new PDO('odbc:SAMPLE''db2inst1''ibmdb2');
$stmt $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id get_new_id(); // fonction pour allouer un nouvel ID

// assumons que nous récupérons un fichier depuis un formulaire
// vous pouvez trouver plus de détails dans la documentation de PHP

$fp fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1$id);
$stmt->bindParam(2$_FILES['file']['type']);
$stmt->bindParam(3$fpPDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

Exemple #15 Insertion d'une image dans une base de données Oracle

Oracle requiert une syntaxe légèrement différente pour y insérer un LOB depuis un fichier. Il est également essentiel d'effectuer votre insertion au sein d'une transaction, sinon, votre nouveau LOB sera inséré avec une longueur de zéro :

<?php
$db 
= new PDO('oci:''scott''tiger');
$stmt $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id get_new_id(); // fonction pour allouer un nouvel ID

// assumons que nous récupérons un fichier depuis un formulaire
// vous pouvez trouver plus de détails dans la documentation de PHP

$fp fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1$id);
$stmt->bindParam(2$_FILES['file']['type']);
$stmt->bindParam(3$fpPDO::PARAM_LOB);

$stmt->beginTransaction();
$stmt->execute();
$stmt->commit();
?>



La classe PDO

Introduction

Représente une connexion entre PHP et un serveur de base de données.

Synopsis de la classe

PDO {
__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )
bool beginTransaction ( void )
bool commit ( void )
mixed errorCode ( void )
array errorInfo ( void )
int exec ( string $statement )
mixed getAttribute ( int $attribute )
array getAvailableDrivers ( void )
bool inTransaction ( void )
string lastInsertId ([ string $name = NULL ] )
PDOStatement prepare ( string $statement [, array $driver_options = array() ] )
PDOStatement query ( string $statement )
string quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )
bool rollBack ( void )
bool setAttribute ( int $attribute , mixed $value )
}

PDO::beginTransaction

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::beginTransaction Démarre une transaction

Description

bool PDO::beginTransaction ( void )

PDO::beginTransaction() désactive le mode autocommit. Lorsque l'autocommit est désactivé, les modifications faites sur la base de données via les instances des objets PDO ne sont pas appliquées tant que vous ne mettez pas fin à la transaction en appelant la fonction PDO::commit(). L'appel de PDO::rollBack() annulera toutes les modifications faites à la base de données et remettra la connexion en mode autocommit.

Quelques bases de données, dont MySQL, exécuteront automatiquement un COMMIT lorsqu'une requête de définition de langage de base de données (DDL) comme DROP TABLE ou CREATE TABLE est exécutée dans une transaction. Ce COMMIT implicite vous empêchera d'annuler toutes autres modifications faites dans cette transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Annule une transaction

L'exemple suivant commence une transaction et exécute deux requêtes qui modifient la base de données avant d'annuler les modifications. Sur MySQL, cependant, la requête DROP TABLE validera automatiquement la transaction, donc, aucune des modifications de la transaction ne sera annulée.

<?php
/* Démarre une transaction, désactivation de l'auto-commit */
$dbh->beginTransaction();

/* Modification du schéma de la base ainsi que des données */
$sth $dbh->exec("DROP TABLE fruit");
$sth $dbh->exec("UPDATE dessert
SET name = 'hamburger'"
);

/* On s'aperçoit d'une erreur et on annule les modifications */
$dbh->rollBack();

/* Le connexion à la base de données est maintenant de retour en mode auto-commit */
?>

Voir aussi



PDO::commit

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::commit Valide une transaction

Description

bool PDO::commit ( void )

PDO::commit() valide une transaction, remet la connexion en mode autocommit en attendant l'appel à la fonction PDO::beginTransaction() pour débuter une nouvelle transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Valide une transaction

<?php
/* Commence une transaction, désactivation de l'auto-commit */
$dbh->beginTransaction();

/* Modification du schéma de la base de données */
$sth $dbh->exec("DROP TABLE fruit");

/* Valide les modifications */
$dbh->commit();

/* La connexion à la base de données est maintenant de retour en mode auto-commit */
?>

Voir aussi



PDO::__construct

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::__construct Crée une instance PDO qui représente une connexion à la base

Description

PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )

Crée un objet PDO qui représente une connexion à la base.

Liste de paramètres

dsn

Le Data Source Name, ou DSN, qui contient les informations requises pour se connecter à la base.

En général, un DSN est constitué du nom du pilote PDO, suivi d'une syntaxe spécifique au pilote. Plus de détails sont disponibles dans la documentation PDO de chaque pilote.

Le paramètre dsn supporte trois méthodes différentes pour spécifier les arguments nécessaires à la création de la base de données :

Appel pilote

dsn contient le DSN complet.

Appel URI

dsn est constitué de uri: suivi par une URI qui définit la localisation du fichier contenant la chaîne de DSN. L'URI peut spécifier un fichier local ou distant.

uri:file:///path/to/dsnfile

Aliasing

dsn est constitué d'un nom name qui correspond à pdo.dsn.name dans le fichier php.ini, et qui définit la chaîne DSN.

Note:

L'alias doit être défini dans le fichier php.ini, et non pas dans un fichier .htaccess ou httpd.conf

username

Le nom d'utilisateur pour la chaîne DSN. Ce paramètre est optionnel pour certains pilote PDO.

password

Le mot de passe de la chaîne DSN. Ce paramètre est optionnel pour certains pilote PDO.

driver_options

Un tableau clé=>valeur avec les options spécifiques de connexion.

Valeurs de retour

Retourne un objet PDO en cas de succès.

Erreurs / Exceptions

PDO::__construct() émet une exception PDOException si la tentative de connexion à la base de données échoue.

Exemples

Exemple #1 Crée une instance PDO via une invocation de pilote

<?php
/* Connexion à une base ODBC avec l'invocation de pilote */
$dsn 'mysql:dbname=testdb;host=127.0.0.1';
$user 'dbuser';
$password 'dbpass';

try {
    
$dbh = new PDO($dsn$user$password);
} catch (
PDOException $e) {
    echo 
'Connexion échouée : ' $e->getMessage();
}

?>

Exemple #2 Crée une instance PDO via une invocation URI

L'exemple ci-dessous suppose que le fichier /usr/local/dbconnect existe avec des droits d'accès qui permettent à PHP d'y accéder. Le fichier contient alors le DSN de PDO, pour se connecter à une base de données DB2, avec le pilote PDO_ODBC :

odbc:DSN=SAMPLE;UID=john;PWD=mypass

Le script PHP peut alors créer une connexion de base de données, en passant dans l'URL le paramètre uri: et en pointant sur l'URI du fichier :

<?php
/* Connexion à une base ODBC avec l'invocation de pilote */
$dsn 'uri:file:///usr/local/dbconnect';
$user '';
$password '';

try {
    
$dbh = new PDO($dsn$user$password);
} catch (
PDOException $e) {
    echo 
'Connexion échouée : ' $e->getMessage();
}

?>

Exemple #3 Crée une instance PDO avec un alias

L'exemple ci-dessous suppose que le fichier php.ini contient la directive suivant pour activer une connexion à un serveur MySQL, avec l'alias mydb:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Connexion à une base MySQL avec l'invocation d'alias */
$dsn 'mydb';
$user '';
$password '';

try {
    
$dbh = new PDO($dsn$user$password);
} catch (
PDOException $e) {
    echo 
'Connexion échouée : ' $e->getMessage();
}

?>



PDO::errorCode

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::errorCode Retourne le SQLSTATE associé avec la dernière opération sur la base de données

Description

mixed PDO::errorCode ( void )

Valeurs de retour

PDO::errorCode() retourne un SQLSTATE, un identifiant alphanumérique de cinq caractères défini dans le standard AINSI SQL. Brièvement, un SQLSTATE consiste en une valeur de classe de deux caractères suivi par une valeur de sous-classe de trois caractères. Une valeur de classe de 01 indique une alerte et est accompagnée par un code de retour SQL_SUCCESS_WITH_INFO. Les valeurs de classes autre que '01', mis à part la classe 'IM', indiquent une erreur. La classe 'IM' est spécifique aux alertes et aux erreurs qui sont issus de l'implémentation elle-même de PDO (ou peut-être ODBC, si vous utilisez le driver ODBC). La valeur de sous-classe '000' dans n'importe quelle classe, indique qu'il n'y a pas de sous-classe pour cet SQLSTATE.

PDO::errorCode() retourne uniquement les codes erreurs pour les opérations exécutées directement sur le gestionnaire de la base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorCode() ne retournera pas cette erreur. Vous devez appeler PDOStatement::errorCode() pour retourner le code erreur pour une opération exécutée sur un gestionnaire de requête particulier.

Retourne NULL si aucune opération n'a été exécutée sur la base de données.

Exemples

Exemple #1 Récupération d'un code SQLSTATE

<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo 
"\nPDO::errorCode(): ";
print 
$dbh->errorCode();
?>

L'exemple ci-dessus va afficher :

PDO::errorCode(): 42S02

Voir aussi

  • PDO::errorInfo() - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDOStatement::errorCode() - Récupère le SQLSTATE associé lors de la dernière opération sur la requête
  • PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête



PDO::errorInfo

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::errorInfo Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données

Description

array PDO::errorInfo ( void )

Valeurs de retour

PDO::errorInfo() retourne un tableau contenant des informations sur l'erreur survenu lors de la dernière opération exécutée par ce gestionnaire de base de données. Le tableau contient les champs suivants :

Élément Information
0 code erreur SQLSTATE (un identifiant alphanumérique de cinq caractères défini dans le standard ANSI SQL).
1 Code erreur spécifique au driver.
2 Message d'erreur spécifique au driver.

Note:

Si le code erreur SQLSTATE n'est pas défini ou s'il n'y a pas d'erreur spécifique du driver, l'élément suivant l'élément 0 sera défini à NULL.

PDO::errorInfo() retourne uniquement les informations des erreurs pour les opérations exécutées directement sur un gestionnaire de base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorInfo() ne retournera pas l'erreur depuis le gestionnaire de requête. Vous devez appeler la fonction PDOStatement::errorInfo() pour retourner les informations sur l'erreur pour une opération exécutée sur un gestionnaire de requête particulier.

Exemples

Exemple #1 Affiche les champs de d'erreurs pour une connexion PDO_ODBC sur une base de donnés DB2

<?php
/* Provoque une erreur -- mauvaise syntaxe SQL */
$stmt $dbh->prepare('mauvaise syntaxe sql');
if (!
$stmt) {
   echo 
"\nPDO::errorInfo():\n";
   
print_r($dbh->errorInfo());
}
?>

L'exemple ci-dessus va afficher :

PDO::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Voir aussi

  • PDO::errorCode() - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDOStatement::errorCode() - Récupère le SQLSTATE associé lors de la dernière opération sur la requête
  • PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête



PDO::exec

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::exec Exécute une requête SQL et retourne le nombre de lignes affectées

Description

int PDO::exec ( string $statement )

PDO::exec() exécute une requête SQL dans un appel d'une seule fonction, retourne le nombre de lignes affectées par la requête.

PDO::exec() ne retourne pas de résultat pour une requête SELECT. Pour une requête SELECT dont vous auriez besoin une seule fois dans le programme, utilisez plutôt la fonction PDO::query(). Pour une requête dont vous auriez besoin plusieurs fois, préparez un objet PDOStatement avec la fonction PDO::prepare() et exécutez la requête avec la fonction PDOStatement::execute().

Liste de paramètres

statement

La requête à préparer et à exécuter.

Les données contenues dans la requête doivent être échappées proprement.

Valeurs de retour

PDO::exec() retourne le nombre de lignes qui ont été modifiées ou effacées pour la requête SQL qui vous exécutez. Si aucune ligne n'est affectée, la fonction PDO::exec() retournera 0.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

L'exemple suivant se fonde inexactement sur la valeur retournée par PDO::exec(), où une requête qui n'affecte aucune lignes revient à appeler die() :

<?php
$db
->exec() or die(print_r($db->errorInfo(), true));
?>

Exemples

Exemple #1 Exécution d'une requête DELETE

Compte le nombre de lignes effacées pour une requête DELETE avec aucune clause WHERE.

<?php
$dbh 
= new PDO('odbc:sample''db2inst1''ibmdb2');

/* Effacement de toutes les lignes de la table FRUIT */
$count $dbh->exec("DELETE FROM fruit WHERE couleur = 'rouge'");

/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
print(
"Effacement de $count lignes.\n");
?>

L'exemple ci-dessus va afficher :

Retourne le nombre de lignes effacées :
Effacement de 2 lignes.

Voir aussi



PDO::getAttribute

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDO::getAttribute Récupère un attribut d'une connexion à une base de données

Description

mixed PDO::getAttribute ( int $attribute )

Cette fonction retourne la valeur d'un attribut d'une connexion à une base de données. Pour récupérer les attributs PDOStatement, référez-vous à la fonction PDOStatement::getAttribute().

Notez que quelques bases de données/drivers combinés ne supportent pas tous les attributs de connexion.

Liste de paramètres

attribute

Une des constantes PDO::ATTR_*. Les constantes qui sont appliquées aux connexions sont les suivantes :

  • PDO::ATTR_AUTOCOMMIT
  • PDO::ATTR_CASE
  • PDO::ATTR_CLIENT_VERSION
  • PDO::ATTR_CONNECTION_STATUS
  • PDO::ATTR_DRIVER_NAME
  • PDO::ATTR_ERRMODE
  • PDO::ATTR_ORACLE_NULLS
  • PDO::ATTR_PERSISTENT
  • PDO::ATTR_PREFETCH
  • PDO::ATTR_SERVER_INFO
  • PDO::ATTR_SERVER_VERSION
  • PDO::ATTR_TIMEOUT

Valeurs de retour

Un appel réussi retourne la valeur de l'attribut PDO demandé. Un appel qui a échoué retourne la valeur NULL.

Exemples

Exemple #1 Récupération des attributs de connexion à une base de données

<?php
$conn 
= new PDO('odbc:sample''db2inst1''ibmdb2');
$attributes = array(
"AUTOCOMMIT""ERRMODE""CASE""CLIENT_VERSION""CONNECTION_STATUS",
"ORACLE_NULLS""PERSISTENT""PREFETCH""SERVER_INFO""SERVER_VERSION",
"TIMEOUT"
);

foreach (
$attributes as $val) {
   echo 
"PDO::ATTR_$val: ";
   echo 
$conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

Voir aussi



PDO::getAvailableDrivers

(PHP 5 >= 5.1.3, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers Retourne la liste des pilotes PDO disponibles

Description

array PDO::getAvailableDrivers ( void )
array pdo_drivers ( void )

Cette fonction retourne la liste de tous les pilotes PDO disponibles qui peuvent être utilisés avec le paramètre DSN de la fonction PDO::__construct(). C'est une méthode statique.

Valeurs de retour

PDO::getAvailableDrivers() retourne un tableau de nom de pilotes. Si aucun pilote n'est disponible, il retourne un tableau vide.

Exemples

Exemple #1 Exemple avec PDO::getAvailableDrivers()

<?php
print_r
(PDO::getAvailableDrivers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => mysql
    [1] => sqlite
)



PDO::inTransaction

(PHP 5 >= 5.3.3, Bundled pdo_pgsql)

PDO::inTransaction Vérifie si nous sommes dans une transaction

Description

bool PDO::inTransaction ( void )

Vérifie si une transaction est actuellement active dans le driver.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si une transaction est actuellement active, FALSE sinon.

Valeurs de retour

Note:

Notez qu'actuellement, seul le driver PostgreSQL dispose de cette méthode.



PDO::lastInsertId

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::lastInsertId Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence

Description

string PDO::lastInsertId ([ string $name = NULL ] )

Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment du driver utilisé. Par exemple, PDO_PGSQL() vous impose de spécifier le nom d'une séquence d'objet pour le paramètre name.

Note:

Cette méthode peut ne pas retourner un résultat significatif suivant les drivers PDO utilisés, car la base de données utilisée peut ne pas supporter la notion de champs auto-incrémenté ou de séquences.

Liste de paramètres

name

Nom de la séquence d'objets depuis laquelle l'identifiant doit être retourné.

Valeurs de retour

Si un nom de séquence n'est pas spécifié pour le paramètre name, PDO::lastInsertId() retourne une chaîne représentant l'identifiant de la ligne de la dernière ligne insérée dans la base de données.

Si un nom de séquence est spécifié pour le paramètre name, PDO::lastInsertId() retourne une chaîne représentant la dernière valeur depuis la séquence d'objets spécifiée.

Si le driver PDO ne supporte pas cette fonctionnalité, PDO::lastInsertId() lancera un SQLSTATE IM001.



PDO::prepare

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::prepare Prépare une requête à l'exécution et retourne un objet

Description

PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )

Prépare une requête SQL à être exécutée par la méthode PDOStatement::execute(). La requête SQL peut contenir zéro ou plusieurs noms (:nom) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la requête sera exécutée. Vous ne pouvez pas utiliser les marqueurs nommés et les marqueurs interrogatifs dans une même requête SQL ; choisissez l'un ou l'autre. Utilisez ces paramètres pour lier les entrées utilisateurs, ne les incluez pas directement dans la requête.

Vous devez inclure un marquer avec un nom unique pour chaque valeur que vous souhaitez passer dans la requête lorsque vous appelez PDOStatement::execute(). Vous ne pouvez pas utiliser un marqueur avec deux noms pareils dans une requête préparée. Vous ne pouvez associer plusieurs valeurs à un seul marqueur de nom entrant, par exemple, la clause IN() d'une requête SQL.

Appeler PDO::prepare() et PDOStatement::execute() pour les requêtes qui doivent être exécutées plusieurs fois avec différentes valeurs de paramètres optimisent les performances de votre application en autorisant le pilote à négocier coté client et/ou serveur avec le cache des requêtes et les metainformations, et aident à prévenir les attaques par injection SQL en éliminant le besoin de protéger les paramètres manuellement.

PDO émule les requêtes préparées / les paramètres liés pour les pilotes qui ne le supportent pas nativement, et peut également réécrire les paramètres nommés ou les marqueurs en quelques choses de plus approprié, si le pilote supporte un style et pas l'autre.

Liste de paramètres

statement

Doit être une requête SQL valide pour le serveur de base de données cible.

driver_options

Ce tableau contient une ou plusieurs paires clé=>valeur pour définir les valeurs des attributs pour l'objet PDOStatement que cette méthode retourne. Vous pouvez utiliser ceci pour définir la valeur PDO::ATTR_CURSOR à PDO::CURSOR_SCROLL pour demander un curseur scrollable. Quelques pilotes ont des options spécifiques qui peuvent être définies au moment de la préparation.

Valeurs de retour

Si le serveur de base de données prépare avec succès cette requête, PDO::prepare() retourne un objet PDOStatement. Si le serveur de base de données ne réussit pas à préparer la requête, PDO::prepare() retourne FALSE ou émet une exception PDOException (suivant le gestionnaire des erreurs).

Note:

L'émulation de requêtes préparées ne communique pas avec le serveur de base de données. Aussi, la fonction PDO::prepare() ne vérifie pas la requête.

Exemples

Exemple #1 Prépare une requête SQL avec des paramètres nommés

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sql 'SELECT nom, couleur, calories
    FROM fruit
WHERE calories < :calories AND couleur = :couleur'
;
$sth $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150':couleur' => 'red'));
$red $sth->fetchAll();
$sth->execute(array(':calories' => 175'couleur' => 'yellow'));
$yellow $sth->fetchAll();
?>

Exemple #2 Prépare une requête SQL avec des marqueurs

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?'
);
$sth->execute(array(150'rouge'));
$red $sth->fetchAll();
$sth->execute(array(175'jaune'));
$yellow $sth->fetchAll();
?>

Voir aussi

  • PDO::exec() - Exécute une requête SQL et retourne le nombre de lignes affectées
  • PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
  • PDOStatement::execute() - Exécute une requête préparée



PDO::query

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDO::query Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement

Description

PDOStatement PDO::query ( string $statement )
PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )
PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )

PDO::query() exécute une requête SQL en appelant une seule fonction, retourne le jeu de résultats (s'il y en a) retourné par la requête en tant qu'objet PDOStatement.

Pour une requête que vous devez exécuter plusieurs fois, vous réaliserez de meilleurs performances si vous préparez l'objet PDOStatement en utilisant la fonction PDO::prepare() et exécutez la requête via plusieurs appels à la fonction PDOStatement::execute().

Si vous ne récupérez pas toutes les données du jeux de résultats avant d'exécuter le prochain appel à PDO::query(), votre appel peut échouer. Appeler PDOStatement::closeCursor() pour libérer les ressources de la base de données associées à l'objet PDOStatement avant d'exécuter votre prochain appel à la fonction PDO::query().

Note:

Bien que la documentation de cette fonction autorise de passer un seul paramètre, vous pouvez y passer d'autres paramètres. Ils seront traités via l'appel à PDOStatement::setFetchMode() sur le résultat du traitement de l'objet.

Liste de paramètres

statement

La requête SQL à préparer et à exécuter.

Les données contenues dans la requête doivent être échappées proprement.

Valeurs de retour

PDO::query() retourne un objet PDOStatement, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::query

Une fonctionnalité intéressante de PDO::query() est qu'il vous permet d'itérer à travers un jeu de résultats retourné par une requête SELECT exécutée avec succès.

<?php
function getFruit($conn) {
    
$sql =  'SELECT name, color, calories FROM fruit ORDER BY name';
    foreach  (
$conn->query($sql) as $row) {
        print 
$row['name'] . "\t";
        print  
$row['color'] . "\t";
        print 
$row['calories'] . "\n";
  }
}
?>

L'exemple ci-dessus va afficher :

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90

Voir aussi



PDO::quote

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.1)

PDO::quote Protège une chaîne pour l'utiliser dans une requête SQL PDO

Description

string PDO::quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )

PDO::quote() place des guillemets simples autour d'une chaîne d'entrée, si nécessaire et protège les caractères spéciaux présents dans la chaîne d'entrée, en utilisant le style de protection approprié au pilote courant.

Si vous utilisez cette fonction pour construire des requêtes SQL, vous êtes vivement invités à utiliser PDO::prepare() pour préparer les requêtes SQL avec des paramètres liés au lieu d'utiliser PDO::quote() pour interpréter les entrées utilisateur dans la requête SQL. Les requêtes préparées avec des paramètres liés sont non seulement plus portables, plus souples et plus sécuritaires, mais bien plus rapides à exécuter que d'interpréter les requêtes, étant donné que les côtés client et serveur peuvent mettre en cache une version compilée de la requête.

Tous les pilotes PDO n'implémentent pas cette méthode (comme PDO_ODBC). Utilisez les requêtes préparées à la place.

Liste de paramètres

string

La chaîne à protéger.

parameter_type

Le type de données pour les drivers qui ont des styles particuliers de protection.

Valeurs de retour

Retourne une chaîne protégée, qui est théoriquement sûre à utiliser dans une requête SQL. Retourne FALSE si le pilote ne supporte pas ce type de protections.

Exemples

Exemple #1 Protection d'une chaîne normale

<?php
$conn 
= new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne simple */
$string 'Nice';
print 
"Chaîne non échappée : $string\n";
print 
"Chaîne échappée : " $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée : Nice
Chaîne échappée: 'Nice'

Exemple #2 Protection d'une chaîne dangereuse

<?php
$conn 
= new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne dangereuse */
$string 'Chaîne \' particulière';
print 
"Chaîne non échappée : $string\n";
print 
"Chaîne échappée :" $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée : Chaîne ' particulière
Chaîne échappée : 'Chaîne '' particulière'

Exemple #3 Protection d'une chaîne complexe

<?php
$conn 
= new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne complexe */
$string "Co'mpl''exe \"ch'\"aîne";
print 
"Chaîne non protégée : $string\n";
print 
"Chaîne protégée : " $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée: Co'mpl''exe "ch'"aîne
Chaîne échappée: 'Co''mpl''''exe "ch''"aîne'

Voir aussi



PDO::rollBack

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::rollBack Annule une transaction

Description

bool PDO::rollBack ( void )

Annule la transaction courante, initiée par la fonction PDO::beginTransaction(). C'est une erreur que d'appeler cette méthode s'il n'y a aucune transaction active.

Si la base de données est en mode autocommit, cette fonction restaurera le mode autocommit après l'annulation de la transaction.

Quelques bases de données, dont MySQL, exécuteront automatiquement un COMMIT lorsqu'une requête de définition de langage de base de données (DDL) comme DROP TABLE ou CREATE TABLE est exécutée dans une transaction. Ce COMMIT implicite vous empêchera d'annuler toutes autres modifications faites dans cette transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Annulation d'une transaction

L'exemple suivant commence une transaction et exécute deux requêtes qui modifient la base de données avant d'annuler les modifications. Sur MySQL, cependant, la requête DROP TABLE validera automatiquement la transaction, donc, aucune des modifications de la transaction ne sera annulée.

<?php
/* Début d'une transaction, désactivation du mode autocommit */
$dbh->beginTransaction();

/* Modifie le schéma de la base de données ainsi que des données */
$sth $dbh->exec("DROP TABLE fruit");
$sth $dbh->exec("UPDATE dessert
    SET name = 'hamburger'"
);

/* On s'aperçoit d'une erreur et on annule les modifications */
$dbh->rollBack();

/* La connexion à la base de donnés revient en mode autocommit */
?>

Voir aussi



PDO::setAttribute

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::setAttribute Configure un attribut PDO

Description

bool PDO::setAttribute ( int $attribute , mixed $value )

Configure un attribut du gestionnaire de base de données. Certains des attributs génériques sont listés ci-dessous : certains pilotes disposent de configuration supplémentaires.

  • PDO::ATTR_CASE: force les noms de colonnes à une casse particulière.

    • PDO::CASE_LOWER : force les noms de colonnes à être en minuscules.

    • PDO::CASE_NATURAL : laisse les noms de colonnes inchangées.

    • PDO::CASE_UPPER : force les noms de colonnes à être en majuscules.

  • PDO::ATTR_ERRMODE : rapport d'erreurs.

    • PDO::ERRMODE_SILENT : assigne simplement les codes d'erreur.

    • PDO::ERRMODE_WARNING: émet une alerte E_WARNING.

    • PDO::ERRMODE_EXCEPTION : émet une exception.

  • PDO::ATTR_ORACLE_NULLS (disponible pour tous les pilotes, et pas juste Oracle ) : Conversion des valeurs NULL et chaînes vides.

    • PDO::NULL_NATURAL : Pas de conversion.

    • PDO::NULL_EMPTY_STRING : Chaîne vide convertie en NULL.

    • PDO::NULL_TO_STRING : NULL est converti en chaîne vide.

  • PDO::ATTR_STRINGIFY_FETCHES : Convertit une valeur numérique en chaîne lors de la lecture. Requiert bool.

  • PDO::ATTR_STATEMENT_CLASS : Configure une classe de résultat, définie par l'utilisateur, et dérivée de PDOStatement. Ne peut pas être utilisée avec les instances persistantes de PDO. Requiert array(string classname, array(mixed constructor_args)).

  • PDO::ATTR_TIMEOUT: Précise la durée de timeout en secondes. Tous les pilotes ne supportent pas cette option et sa signification peut différer en fonctions des pilotes. Par exemple, sqlite attendra pendant cette période pour obtenir un verrou en écriture sur le fichier, mais les autres pilotes considèreront ceci comme un timeout de connexion ou de lecture. Requiert int.

  • PDO::ATTR_AUTOCOMMIT (disponible en OCI, Firebird et MySQL) : activation de l'autocommit pour chaque commande.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (disponible en MySQL) : utilisation des requêtes bufferisées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire

  • PDO::beginTransaction — Démarre une transaction
  • PDO::commit — Valide une transaction
  • PDO::__construct — Crée une instance PDO qui représente une connexion à la base
  • PDO::errorCode — Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDO::errorInfo — Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDO::exec — Exécute une requête SQL et retourne le nombre de lignes affectées
  • PDO::getAttribute — Récupère un attribut d'une connexion à une base de données
  • PDO::getAvailableDrivers — Retourne la liste des pilotes PDO disponibles
  • PDO::inTransaction — Vérifie si nous sommes dans une transaction
  • PDO::lastInsertId — Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence
  • PDO::prepare — Prépare une requête à l'exécution et retourne un objet
  • PDO::query — Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
  • PDO::quote — Protège une chaîne pour l'utiliser dans une requête SQL PDO
  • PDO::rollBack — Annule une transaction
  • PDO::setAttribute — Configure un attribut PDO


La classe PDOStatement

Introduction

Représente une requête préparée et, une fois exécutée, le jeu de résultats associé.

Synopsis de la classe

PDOStatement implements Traversable {
/* Propriétés */
readonlystring $queryString;
/* Méthodes */
bool bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )
bool bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )
bool bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )
bool closeCursor ( void )
int columnCount ( void )
bool debugDumpParams ( void )
string errorCode ( void )
array errorInfo ( void )
bool execute ([ array $input_parameters ] )
mixed fetch ([ int $fetch_style = PDO::FETCH_BOTH [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
array fetchAll ([ int $fetch_style = PDO::FETCH_BOTH [, mixed $fetch_argument = [, array $ctor_args = array() ]]] )
string fetchColumn ([ int $column_number = 0 ] )
mixed fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] )
mixed getAttribute ( int $attribute )
array getColumnMeta ( int $column )
bool nextRowset ( void )
int rowCount ( void )
bool setAttribute ( int $attribute , mixed $value )
bool setFetchMode ( int $mode )
}

Propriétés

queryString

chaîne de caractères utilisée pour la requête.


PDOStatement->bindColumn

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->bindColumn Lie une colonne à une variable PHP

Description

bool PDOStatement::bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )

PDOStatement::bindColumn() fait en sorte qu'une variable PHP soit liée à une colonne données dans le jeu de résultats dans une requête. Chaque appel à la fonction PDOStatement::fetch() ou PDOStatement::fetchAll() met à jour toutes les variables qui sont liées aux colonnes.

Note:

Étant donné que les informations sur les colonnes ne sont pas toujours disponibles à PDO tant que la requête n'est pas exécutée, les applications portables doivent appeler cette fonction après la fonction PDOStatement::execute().

Cependant, pour pouvoir lier une colonne de type LOB avec un flux lors de l'utilisation du pilote PostGreSQL, les applications doivent appeler cette méthode avant d'appeler PDOStatement::execute(), sous peine de recevoir l'objet OID sous forme d'entier.

Liste de paramètres

column

Numéro de la colonne (en commençant à 1) ou nom de la colonne dans le jeu de résultats. Si vous utilisez les noms de colonnes, assurez-vous que le nom corresponde à la casse de la colonne, comme retourné par le pilote.

param

Nom de la variable PHP à laquelle la colonne doit être liée.

type

Type du paramètre, spécifié par les constantes PDO::PARAM_*.

maxlen

Une astuce pour la pré-allocation.

driverdata

Paramètres optionnels pour la bibliothèque.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Lie l'affichage du jeu de résultats à des variables PHP

Lie les colonnes du jeu de résultats aux variables PHP est une façon agréable de rendre les données contenues dans chaque ligne immédiatement disponible à votre application. L'exemple suivant montre comment PDO vous autorise à lier et récupérer les colonnes avec une variété d'options.

<?php
function readData($dbh) {
  
$sql 'SELECT nom, couleur, calories FROM fruit';
  try {
    
$stmt $dbh->prepare($sql);
    
$stmt->execute();

    
/* Lie par les numéros de colonnes */
    
$stmt->bindColumn(1$nom);
    
$stmt->bindColumn(2$couleur);

    
/* Lie par les noms de colonnes */
    
$stmt->bindColumn('calories'$cals);

    while (
$row $stmt->fetch(PDO::FETCH_BOUND)) {
      
$data $nom "\t" $couleur "\t" $cals "\n";
      print 
$data;
    }
  }
  catch (
PDOException $e) {
    print 
$e->getMessage();
  }
}
readData($dbh);
?>

L'exemple ci-dessus va afficher :

pomme   rouge     150
banane  jaune  175
kiwi    vert   75
orange  orange  150
mangue   rouge     200
fraise      rouge     25
  

Voir aussi



PDOStatement->bindParam

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->bindParam Lie un paramètre à un nom de variable spécifique

Description

bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )

Lie une variable PHP à un marquer nommé ou interrogatif correspondant dans une requête SQL utilisée pour préparer la requête. Contrairement à PDOStatement::bindValue(), la variable est liée en tant que référence et ne sera évaluée qu'au moment de l'appel à la fonction PDOStatement::execute().

La plupart des paramètres sont des paramètres d'entrées, et sont utilisés en lecture seule pour construire la requête. Quelques drivers supportent l'invocation de procédures stockées qui retournent des données en tant que paramètres de sortie, et quelques autres en tant que paramètres entrées / sorties qui sont envoyés ensemble et sont mis à jour pour les recevoir.

Liste de paramètres

parameter

Identifiant. Pour une requête préparée utilisant des marqueurs nommés, ce sera le nom du paramètre sous la forme :name. Pour une requête préparée utilisant les marqueurs interrogatifs, ce sera la position indexé -1 du paramètre.

variable

Nom de la variable PHP à lier au paramètre de la requête SQL.

data_type

Type explicite de données pour le paramètre utilisant la constante PDO::PARAM_*. Pour retourner un paramètre INOUT depuis une procédure stockée, utilisez l'opérateur OR pour définir l'octet PDO::PARAM_INPUT_OUTPUT pour le paramètre data_type.

length

Longueur du type de données. Pour indiquer qu'un paramètre est un paramètre OUT depuis une procédure stockée, vous devez explicitement définir la longueur.

driver_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécution d'une requête préparée avec des emplacements nommés

<?php
/* Exécution d'une requête préparée en liant des variables PHP */
$calories 150;
$couleur 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur'
);
$sth->bindParam(':calories'$caloriesPDO::PARAM_INT);
$sth->bindParam(':couleur'$couleurPDO::PARAM_STR12);
$sth->execute();
?>

Exemple #2 Exécution d'une requête préparée avec des marques de positionnement

<?php
/* Exécution d'une requête préparée en liant des variables PHP */
$calories 150;
$couleur 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?'
);
$sth->bindParam(1$caloriesPDO::PARAM_INT);
$sth->bindParam(2$couleurPDO::PARAM_STR12);
$sth->execute();
?>

Exemple #3 Appel une procédure stockée avec un paramètre INOUT

<?php
/* Appel une procédure stockée avec un paramètre INOUT */
$couleur 'rouge';
$sth $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1$couleurPDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT12);
$sth->execute();
print(
"Après avoir pressé le fruit, la couleur est : $couleur");
?>

Voir aussi



PDOStatement->bindValue

(PHP 5 >= 5.1.0, PECL pdo >= 1.0.0)

PDOStatement->bindValue Associe une valeur à un paramètre

Description

bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )

Associe une valeur à un nom correspondant ou à un point d'interrogation (comme paramètre fictif) dans la requête SQL qui a été utilisé pour préparer la requête.

Liste de paramètres

parameter

Identifiant du paramètre. Pour une requête préparée utilisant les marqueurs, cela sera un nom de paramètre de la forme :nom. Pour une requête préparée utilisant les points d'interrogation (comme paramètre fictif), cela sera un tableau indexé numériquement qui commence à la position 1 du paramètre.

value

La valeur à associer au paramètre.

data_type

Type de données explicite pour le paramètre utilisant les constantes PDO::PARAM_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécute une requête préparée avec des marqueurs nommés

<?php
/* Exécute une requête préparée en associant des variables PHP */
$calories 150;
$couleur 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur'
);
$sth->bindValue(':calories'$caloriesPDO::PARAM_INT);
$sth->bindValue(':couleur'$couleurPDO::PARAM_STR);
$sth->execute();
?>

Exemple #2 Exécute une requête préparée avec des points d'interrogation comme paramètre fictif

<?php
/* Exécute une requête préparée en associant des variables PHP */
$calories 150;
$couleur 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?'
);
$sth->bindValue(1$caloriesPDO::PARAM_INT);
$sth->bindValue(2$couleurPDO::PARAM_STR);
$sth->execute();
?>

Voir aussi



PDOStatement->closeCursor

(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)

PDOStatement->closeCursor Ferme le curseur, permettant à la requête d'être de nouveau exécutée

Description

bool PDOStatement::closeCursor ( void )

PDOStatement::closeCursor() libère la connexion du serveur, permettant ainsi à d'autres requêtes SQL d'être exécutées, mais quitte la requête, permettant ainsi qu'elle soit de nouveau exécutée.

Cette méthode est utile pour les drivers de base de données qui ne supportent pas l'exécution d'objet PDOStatement lorsqu'un objet PDOStatement exécuté précédemment a encore des lignes non récupérées. Si votre driver de base de données souffre de cette limitation, le problème se manifestera de lui-même dans une erreur en dehors de la séquence.

PDOStatement::closeCursor() est implémenté soit en tant que méthode optionnelle spécifique au pilote, avec un maximum d'efficacité, ou en tant que solution générique si aucune fonction spécifique au pilote n'est installée. Sémantiquement, la fonction générique PDO revient à écrire le code suivant dans votre script PHP :

<?php
do {
    while (
$stmt->fetch())
        ;
    if (!
$stmt->nextRowset())
        break;
} while (
true);
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDOStatement::closeCursor()

Dans l'exemple suivant, l'objet PDOStatement $stmt retourne de multiples lignes, mais l'application récupère uniquement la première ligne, laissant l'objet PDOStatement dans l'état où il lui reste des lignes non récupérées. Pour vous assurez que l'application fonctionnera avec tous les drivers de base de données, l'auteur insère un appel à la fonction PDOStatement::closeCursor() sur $stmt avant l'exécution d'objet PDOStatement $otherStmt.

<?php
/* Création d'un objet PDOStatement */
$stmt $dbh->prepare('SELECT foo FROM bar');

/* Création d'un second objet PDOStatement */
$otherStmt $dbh->prepare('SELECT foobaz FROM foobar');

/* Exécute la première requête */
$stmt->execute();

/* Récupération de la première ligne uniquement depuis le résultat */
$stmt->fetch();

/* L'appel suivant à closeCursor() peut être requis par quelques drivers */
$stmt->closeCursor();

/* Maintenant, nous pouvons exécuter la deuxième requête */
$otherStmt->execute();
?>

Voir aussi



PDOStatement->columnCount

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDOStatement->columnCount Retourne le nombre de colonnes dans le jeu de résultats

Description

int PDOStatement::columnCount ( void )

Utilisez la fonction PDOStatement::columnCount() pour retourner le nombre de colonnes dans le jeu de résultats représenté par l'objet PDOStatement.

Si l'objet PDOStatement a été retourné par la fonction PDO::query(), le nombre de colonnes est immédiatement disponible.

Si l'objet PDOStatement a été retourné par la fonction PDO::prepare(), un compte précis des colonnes ne sera pas disponible tant que vous n'invoquerez pas la fonction PDOStatement::execute().

Valeurs de retour

Retourne le nombre de colonnes dans le jeu de résultats représenté par l'objet PDOStatement. S'il n'y a pas de jeu de résultats, PDOStatement::columnCount() retournera 0.

Exemples

Exemple #1 Comptage des colonnes

Cet exemple démontre comment PDOStatement::columnCount() fonctionne avec ou sans jeu de résultats.

<?php
$dbh 
= new PDO('odbc:sample''db2inst1''ibmdb2');

$sth $dbh->prepare("SELECT nom, couleur FROM fruit");

/* Compte le nombre de colonnes dans le jeu de résultat (non-existant) */
$colcount $sth->columnCount();
print(
"Avant execute(), le jeu de résultats avait $colcount colonnes (devrait être 0)\n");

$sth->execute();

/* Compte le nombre de colonnes dans le jeu de résultats */
$colcount $sth->columnCount();
print(
"Après execute(), le jeu de résultats a $colcount colonnes (devrait être 2)\n");

?>

L'exemple ci-dessus va afficher :

Avant execute(), le jeu de résultats avait 0 colonnes (devrait être 0)
Après execute(), le jeu de résultat a 2 colonnes (devrait être 2)

Voir aussi



PDOStatement->debugDumpParams

(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)

PDOStatement->debugDumpParams Détaille une commande préparée SQL

Description

bool PDOStatement::debugDumpParams ( void )

Détaille les informations contenues dans une commande préparée, directement sur la sortie standard. Les informations sont notamment la requête SQL utilisée, le nombre de paramètres utilisés (Params), la liste des paramètres, avec leur nom, type (paramtype) sous forme d'entier, le nom de clé ou leur position dans la requête, la valeur associée, et la position dans la requête (Si cette dernière information n'est pas supportée par le pilote PDO, c'est toujours -1).

Ceci est une fonction de déboguage, qui affiche directement des informations sur la sortie standard.

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Les paramètres affichés sont ceux qui ont été ajoutés dans la requête jusqu'au moment de l'appel. Les paramètres surnuméraires sont ignorés.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec PDOStatement::debugDumpParams() et des paramètres nommés

<?php
/* exécution d'une commande préparée avec liaison avec variables PHP */
$calories 150;
$colour 'red';
$sth $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour'
);
$sth->bindParam(':calories'$caloriesPDO::PARAM_INT);
$sth->bindValue(':colour'$colourPDO::PARAM_STR12);
$sth->execute();

$sth->debugDumpParams();

?>

L'exemple ci-dessus va afficher :

SQL: [96] SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour
Params:  2
Key: Name: [9] :calories
paramno=-1
name=[9] ":calories"
is_param=1
param_type=1
Key: Name: [7] :colour
paramno=-1
name=[7] ":colour"
is_param=1
param_type=2

Exemple #2 Exemple avec PDOStatement::debugDumpParams() et des paramètres anonymes

<?php

/* exécution d'une commande préparée avec liaison avec variables PHP */
$calories 150;
$colour 'red';
$name 'apple';

$sth $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?'
);
$sth->bindParam(1$caloriesPDO::PARAM_INT);
$sth->bindValue(2$colourPDO::PARAM_STR);
$sth->execute();

$sth->debugDumpParams();

?>

L'exemple ci-dessus va afficher :

SQL: [82] SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?
Params:  2
Key: Position #0:
paramno=0
name=[0] ""
is_param=1
param_type=1
Key: Position #1:
paramno=1
name=[0] ""
is_param=1
param_type=2

Voir aussi



PDOStatement->errorCode

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->errorCode Récupère le SQLSTATE associé lors de la dernière opération sur la requête

Description

string PDOStatement::errorCode ( void )

Valeurs de retour

Identique à PDO::errorCode(), excepté que PDOStatement::errorCode() récupère uniquement les codes erreurs pour les opérations sur les objets PDOStatement.

Exemples

Exemple #1 Détermine la catégorie de l'erreur qui survient

<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$err $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo 
"\nPDOStatement::errorCode(): ";
print 
$err->errorCode();
?>

L'exemple ci-dessus va afficher :

PDOStatement::errorCode(): 42S02

Voir aussi

  • PDO::errorCode() - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDO::errorInfo() - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête



PDOStatement->errorInfo

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->errorInfo Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête

Description

array PDOStatement::errorInfo ( void )

Valeurs de retour

PDOStatement::errorInfo() retourne un tableau contenant des informations sur l'erreur survenue lors de la dernière opération exécutée par ce gestionnaire de requêtes. Le tableau contient les champs suivants :

Élément Information
0 Code erreur SQLSTATE (un identifiant de cinq caractères alphanumériques défini dans le standard ANSI SQL)
1 Code erreur spécifique au driver.
2 Message d'erreur spécifique au driver.

Exemples

Exemple #1 Affiche les champs de errorInfo() pour une connexion PDO_ODBC sur une base de données DB2

<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$sth $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo 
"\nPDOStatement::errorInfo():\n";
$arr $sth->errorInfo();
print_r($arr);
?>

L'exemple ci-dessus va afficher :

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Voir aussi

  • PDO::errorCode() - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDO::errorInfo() - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDOStatement::errorCode() - Récupère le SQLSTATE associé lors de la dernière opération sur la requête



PDOStatement->execute

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->execute Exécute une requête préparée

Description

bool PDOStatement::execute ([ array $input_parameters ] )

Exécute une requête préparée. Si la requête préparée inclut des marqueurs de positionnement, vous pouvez :

  • appeler la fonction PDOStatement::bindParam() pour lier les variables PHP aux marqueurs de positionnement : les variables liées passent leurs valeurs en entrée et reçoivent les valeurs de sortie, s'il y en a, de leurs marqueurs de positionnement respectifs

  • ou passer un tableau de valeurs de paramètres, uniquement en entrée

Liste de paramètres

input_parameters

Un tableau de valeurs avec autant d'éléments qu'il y a de paramètres à associer dans la requête SQL qui sera exécutées. Toutes les valeurs sont traitées comme des constantes PDO::PARAM_STR.

Vous ne pouvez associer plusieurs valeurs à un seul paramètre; par exemple, vous ne pouvez associer deux valeurs à un paramètre de nom dans une clause IN().

Vous ne pouvez associer plus de valeurs que spécifié ; s'il y a plus de clés dans input_parameters que dans le code SQL utilisé pour PDO::prepare(), alors la requête préparée échouera et une erreur sera levée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.0 Les clés déclarées dans input_parameters doivent correspondre à celles déclarées dans le SQL. Avant PHP 5.2.0, ceci était ignoré sans erreur.

Exemples

Exemple #1 Exécute une requête préparée avec des variables liées

<?php
/* Exécute une requête préparée en liant des variables PHP */
$calories 150;
$couleur 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur'
);
$sth->bindParam(':calories'$caloriesPDO::PARAM_INT);
$sth->bindParam(':couleur'$couleurPDO::PARAM_STR12);
$sth->execute();
?>

Exemple #2 Exécute une requête préparée avec un tableau de valeurs (paramètres de nom)

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories 150;
$couleur 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur'
);
$sth->execute(array(':calories' => $calories':couleur' => $couleur));
?>

Exemple #3 Exécute une requête préparée avec un tableau de valeurs (marqueurs)

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories 150;
$colour 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?'
);
$sth->execute(array($calories$couleur));
?>

Exemple #4 Exécute une requête préparée avec un marqueur de positionnement

<?php
/* Exécute une requête préparée en liant des variables PHP */
$calories 150;
$couleur 'rouge';
$sth $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?'
);
$sth->bindParam(1$caloriesPDO::PARAM_INT);
$sth->bindParam(2$couleurPDO::PARAM_STR12);
$sth->execute();
?>

Notes

Note:

Quelques drivers nécessitent de fermer le curseur avant d'exécuter la requête suivante.

Voir aussi



PDOStatement->fetch

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->fetch Récupère la ligne suivante d'un jeu de résultat PDO

Description

mixed PDOStatement::fetch ([ int $fetch_style = PDO::FETCH_BOTH [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )

Récupère une ligne depuis un jeu de résultats associé à l'objet PDOStatement. Le paramètre fetch_style détermine la façon dont PDO retourne la ligne.

Liste de paramètres

fetch_style

Contrôle comment la prochaine ligne sera retournée à l'appelant. Cette valeur doit être une des constantes PDO::FETCH_*, et par défaut, vaut PDO::FETCH_BOTH.

  • PDO::FETCH_ASSOC: retourne un tableau indexé par le nom de la colonne comme retourné dans le jeu de résultats

  • PDO::FETCH_BOTH (défaut): retourne un tableau indexé par les noms de colonnes et aussi par les numéros de colonnes, commençant à l'index 0, comme retournés dans le jeu de résultats

  • PDO::FETCH_BOUND: retourne TRUE et assigne les valeurs des colonnes de votre jeu de résultats dans les variables PHP à laquelle elles sont liées avec la méthode PDOStatement::bindParam()

  • PDO::FETCH_CLASS: retourne une nouvelle instance de la classe demandée, liant les colonnes du jeu de résultats aux noms des propriétés de la classe. Si fetch_style inclut PDO::FETCH_CLASS (c'est-à-dire PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE), alors le nom de la classe est déterminé à partir d'une valeur de la première colonne.

  • PDO::FETCH_INTO: met à jour une instance existante de la classe demandée, liant les colonnes du jeu de résultats aux noms des propriétés de la classe

  • PDO::FETCH_LAZY: combine PDO::FETCH_BOTH et PDO::FETCH_OBJ, créant ainsi les noms des variables de l'objet, comme elles sont accédées

  • PDO::FETCH_NUM: retourne un tableau indexé par le numéro de la colonne comme elle est retourné dans votre jeu de résultat, commençant à 0

  • PDO::FETCH_OBJ: retourne un objet anonyme avec les noms de propriétés qui correspondent aux noms des colonnes retournés dans le jeu de résultats

cursor_orientation

Pour un objet PDOStatement représentant un curseur scrollable, cette valeur détermine quelle ligne sera retournée à l'appelant. Cette valeur doit être une des constantes PDO::FETCH_ORI_*, et par défaut, vaut PDO::FETCH_ORI_NEXT. Pour demander un curseur scrollable pour votre objet PDOStatement, vous devez définir l'attribut PDO::ATTR_CURSOR à PDO::CURSOR_SCROLL lorsque vous préparez la requête SQL avec la fonction PDO::prepare().

offset

Pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursor_orientation est défini à PDO::FETCH_ORI_ABS, cette valeur spécifie le numéro absolu de la ligne dans le jeu de résultats qui doit être récupérée.

Pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursor_orientation est défini à PDO::FETCH_ORI_REL, cette valeur spécifie la ligne à récupérer relativement à la position du curseur avant l'appel à la fonction PDOStatement::fetch().

Valeurs de retour

La valeur retournée par cette fonction en cas de succès dépend du type récupéré. Dans tous les cas, FALSE est retourné si une erreur survient.

Exemples

Exemple #1 Récupération de lignes en utilisant différentes méthodes

<?php
$sth 
$dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* styles PDOStatement::fetch */
print("PDO::FETCH_ASSOC: ");
print(
"Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes\n");
$result $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print(
"\n");

print(
"PDO::FETCH_BOTH: ");
print(
"Retourne la ligne suivante en tant qu'un tableau indexé par le nom et le numéro de la colonne\n");
$result $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print(
"\n");

print(
"PDO::FETCH_LAZY: ");
print(
"Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés\n");
$result $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print(
"\n");

print(
"PDO::FETCH_OBJ: ");
print(
"Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés\n");
$result $sth->fetch(PDO::FETCH_OBJ);
print 
$result->NAME;
print(
"\n");
?>

L'exemple ci-dessus va afficher :

PDO::FETCH_ASSOC: Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes
Array
(
    [NOM] => apple
    [COULEUR] => red
)

PDO::FETCH_BOTH: Retourne la ligne suivante en tant qu'un tableau indexé par le nom et le numéro de la colonne
Array
(
    [NOM] => banana
    [0] => banana
    [COULEUR] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés PDORow Object
(
    [NOM] => orange
    [COULEUR] => orange
)

PDO::FETCH_OBJ: Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés kiwi

Exemple #2 Récupération des lignes avec un curseur scrollable

<?php
function readDataForwards($dbh) {
  
$sql 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    
$stmt $dbh->prepare($sql, array(PDO::ATTR_CURSORPDO::CURSOR_SCROLL));
    
$stmt->execute();
    while (
$row $stmt->fetch(PDO::FETCH_NUMPDO::FETCH_ORI_NEXT)) {
      
$data $row[0] . "\t" $row[1] . "\t" $row[2] . "\n";
      print 
$data;
    }
    
$stmt null;
  }
  catch (
PDOException $e) {
    print 
$e->getMessage();
  }
}
function 
readDataBackwards($dbh) {
  
$sql 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    
$stmt $dbh->prepare($sql, array(PDO::ATTR_CURSORPDO::CURSOR_SCROLL));
    
$stmt->execute();
    
$row $stmt->fetch(PDO::FETCH_NUMPDO::FETCH_ORI_LAST);
    do {
      
$data $row[0] . "\t" $row[1] . "\t" $row[2] . "\n";
      print 
$data;
    } while (
$row $stmt->fetch(PDO::FETCH_NUMPDO::FETCH_ORI_PRIOR));
    
$stmt null;
  }
  catch (
PDOException $e) {
    print 
$e->getMessage();
  }
}

print 
"Lecture en avant :\n";
readDataForwards($conn);

print 
"Lecture en arrière :\n";
readDataBackwards($conn);
?>

L'exemple ci-dessus va afficher :

Lecture en avant :
21    10    5
16    0     5
19    20    10

Lecture en arrière :
19    20    10
16    0     5
21    10    5

Voir aussi



PDOStatement->fetchAll

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->fetchAll Retourne un tableau contenant toutes les lignes du jeu d'enregistrements

Description

array PDOStatement::fetchAll ([ int $fetch_style = PDO::FETCH_BOTH [, mixed $fetch_argument = [, array $ctor_args = array() ]]] )

Liste de paramètres

fetch_style

Contrôle le contenu du tableau retourné comme documenté dans la fonction PDOStatement::fetch().

Pour retourner un tableau contenant toutes les valeurs d'une seule colonne depuis le jeu de résultats, spécifiez PDO::FETCH_COLUMN. Vous pouvez spécifier quelle colonne vous voulez avec le paramètre column-index.

Pour récupérer uniquement les valeurs uniques d'une seule colonne depuis le jeu de résultats, utilisez PDO::FETCH_COLUMN avec PDO::FETCH_UNIQUE.

Pour retourner un tableau associatif groupé par les valeurs d'une colonne spécifique, utilisez PDO::FETCH_COLUMN avec PDO::FETCH_GROUP.

fetch_argument

Cet argument prend une valeur différente en fonction de la valeur de l'argument fetch_style:

  • PDO::FETCH_COLUMN: Retourne le numéro de la colonne demandée (indéxée à partir de 0).

  • PDO::FETCH_CLASS: Retourne une instance de la classe désirée. Les colonnes sélectionnées sont liées aux attributs de la classe.

  • PDO::FETCH_FUNC: Retourne la valeur de retour de la fonction de rappel précisée.

ctor_args

Arguments du constructeur personnalisé de la classe lorsque l'argument fetch_style est à PDO::FETCH_CLASS.

Valeurs de retour

PDOStatement::fetchAll() retourne un tableau contenant toutes les lignes du jeu d'enregistrements. Le tableau représente chaque ligne comme soit un tableau de valeurs des colonnes, soit un objet avec des propriétés correspondant à chaque nom de colonne.

L'utilisation de cette méthode pour récupérer de gros jeux de résultats peut augmenter les ressources du système, mais également ces ressources. Plutôt que de récupérer toutes les données et de les manipuler avec PHP, utilisez le serveur de base de données pour manipuler les jeux de résultats. Par exemple, utilisez les clauses WHERE et ORDER BY dans vos requêtes SQL pour restreindre les résultats avant de le récupérer et de les traiter avec PHP.

Exemples

Exemple #1 Récupération de toutes les lignes d'un jeu de résultats

<?php
$sth 
$dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* Récupération de toutes les lignes d'un jeu de résultats */
print("Récupération de toutes les lignes d'un jeu de résultats :\n");
$result $sth->fetchAll();
print_r($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Récupération de toutes les lignes d'un jeu de résultats :
Array
(
    [0] => Array
        (
            [NOM] => pear
            [0] => pear
            [COULEUR] => green
            [1] => green
        )

    [1] => Array
        (
            [NOM] => watermelon
            [0] => watermelon
            [COULEUR] => pink
            [1] => pink
        )

)

Exemple #2 Récupération de toutes les valeurs d'une seule colonne depuis un jeu de résultats

L'exemple suivant montre comment retourner toutes les valeurs d'une seule colonne depuis un jeu de résultats, même si la requête SQL retourne plusieurs colonnes par lignes.

<?php
$sth 
$dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Récupération de toutes les valeurs de la première colonne */
$result $sth->fetchAll(PDO::FETCH_COLUMN0);
var_dump($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

Exemple #3 Grouper toutes les valeurs d'une seule colonne

L'exemple suivant montre comment retourner un tableau associatif groupé par les valeurs de la colonne spécifiée d'un jeu de résultats. Le tableau contient trois clés : les valeurs apple et pear sont retournées sous la forme de tableaux qui contiennent deux couleurs différentes, tandis que watermelon est retourné sous la forme d'un tableau qui contient uniquement une seule couleur.

<?php
$insert 
$dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute(array('apple''green'));
$insert->execute(array('pear''yellow'));

$sth $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Grouper les valeurs de la première colonne */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["apple"]=>
    array(2) {
      [0]=>
        string(5) "green"
      [1]=>
        string(3) "red"
    }
  ["pear"]=>
    array(2) {
      [0]=>
        string(5) "green"
      [1]=>
        string(6) "yellow"
    }
  ["watermelon"]=>
    array(1) {
      [0]=>
        string(5) "green"
    }
}

Exemple #4 Instancier une classe pour chaque résultat

L'exemple suivant montre le comportement de PDO::FETCH_CLASS.

<?php
class fruit {
    public 
$name;
    public 
$colour;
}

$sth $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result $sth->fetchAll(PDO::FETCH_CLASS"fruit");
var_dump($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  object(fruit)#1 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(5) "green"
  }
  [1]=>
  object(fruit)#2 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(6) "yellow"
  }
  [2]=>
  object(fruit)#3 (2) {
    ["name"]=>
    string(10) "watermelon"
    ["colour"]=>
    string(4) "pink"
  }
}

Exemple #5 Appel d'une fonction pour chaque résultat

L'exemple suivant montre le comportement de PDO::FETCH_FUNC.

<?php
function fruit($name$colour) {
    return 
"{$name}{$colour}";
}

$sth $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result $sth->fetchAll(PDO::FETCH_FUNC"fruit");
var_dump($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(12) "apple: green"
  [1]=>
  string(12) "pear: yellow"
  [2]=>
  string(16) "watermelon: pink"
}

Voir aussi



PDOStatement->fetchColumn

(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)

PDOStatement->fetchColumn Retourne une colonne depuis la ligne suivante d'un jeu de résultats

Description

string PDOStatement::fetchColumn ([ int $column_number = 0 ] )

Retourne une colonne depuis la ligne suivante d'un jeu de résultats ou FALSE s'il n'y a plus de ligne.

Liste de paramètres

column_number

Numéro de la colonne que vous voulez récupérer depuis la ligne (commençant à 0). Si aucune valeur n'est fournie, PDOStatement::fetchColumn() récupérera la première colonne.

Valeurs de retour

PDOStatement::fetchColumn() retourne une colonne depuis la ligne suivante d'un jeu de résultats.

Avertissement

Il n'y a pas de solution pour retourner une autre colonne depuis la même ligne si vous utilisez la fonction PDOStatement::fetchColumn() pour récupérer les données.

Exemples

Exemple #1 Retourne la première colonne de la ligne suivante

<?php
$sth 
$dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* Récupère la première colonne depuis la ligne suivante d'un jeu de résultats */
print("Récupère la première colonne depuis la ligne suivante d'un jeu de résultats :\n");
$result $sth->fetchColumn();
print(
"nom=$result\n");

print(
"Récupère la deuxième colonne depuis la ligne suivante d'un jeu de résultats :\n");
$result $sth->fetchColumn();
print(
"couleur=$result\n");
?>

L'exemple ci-dessus va afficher :

Récupère la première colonne depuis la ligne suivante d'un jeu de résultats :
nom=lemon
Récupère la deuxième colonne depuis la ligne suivante d'un jeu de résultats :
couleur=orange

Voir aussi



PDOStatement->fetchObject

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.4)

PDOStatement->fetchObjectRécupère la prochaine ligne et la retourne en tant qu'objet

Description

mixed PDOStatement::fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] )

Récupère la prochaine ligne et la retourne en tant qu'objet. Cette fonction est une alternative à PDOStatement::fetch() avec PDO::FETCH_CLASS ou le style PDO::FETCH_OBJ.

Liste de paramètres

class_name

Nom de la classe créée.

ctor_args

Éléments de ce tableau sont passés au constructeur.

Valeurs de retour

Retourne une instance de la classe demandée avec les propriétés de noms qui correspondent aux noms des colonnes ou FALSE si une erreur survient.

Voir aussi



PDOStatement->getAttribute

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDOStatement->getAttribute Récupère un attribut de requête

Description

mixed PDOStatement::getAttribute ( int $attribute )

Récupère un attribut de la requête. Actuellement, aucun attribut générique n'existe, mais uniquement des spécificités du driver :

  • PDO::ATTR_CURSOR_NAME (spécificité de Firebird et d'ODBC) : Récupère le nom du curseur pour UPDATE ... WHERE CURRENT OF.

Valeurs de retour

Retourne la valeur de l'attribut.

Voir aussi



PDOStatement->getColumnMeta

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDOStatement->getColumnMeta Retourne les métadonnées pour une colonne d'un jeu de résultats

Description

array PDOStatement::getColumnMeta ( int $column )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère les metainformations pour une colonne d'un jeu de résultat dans un tableau associatif.

Avertissement

Tous les drivers PDO ne supportent pas la fonction PDOStatement::getColumnMeta().

Liste de paramètres

column

Le nom de la colonne dans le jeu de résultat.

Valeurs de retour

Retourne un tableau associatif contenant les valeurs suivantes représentant les metainformations pour une colonne :

Metainformations d'une colonne
Nom Valeur
native_type Le type natif PHP utilisé pour représenter la valeur de la colonne.
driver:decl_type Le type SQL utilisé pour représenter la valeur de la colonne dans la base de données. Si la colonne du jeu de résultat est le résultat d'une fonction, cette valeur n'est pas retournée par la fonction PDOStatement::getColumnMeta().
flags N'importe quelle balise définie pour cette colonne.
name Le nom de cette colonne, comme retourné par la base de données.
table Le nom de la colonne dans la table, tel que retourné par la base de données.
len La longueur de cette colonne. Normalement, -1 pour les types autres que les nombres décimaux à virgule flottante.
precision La précision numérique pour cette colonne. Normalement, 0 pour les types autres que les nombres décimaux à virgule flottante.
pdo_type Le type de cette colonne comme représenté par la constante PDO::PARAM_* constants.

Retourne FALSE si la colonne demandée n'existe pas dans le jeu de résultats, ou si aucun jeu de résultats n'existe.

Historique

Version Description
5.2.3 champs table

Exemples

Exemple #1 Récupération des metainformations pour une colonne

L'exemple suivant montre le résultat de la récupération des metainformations pour une colonne générée par une fonction (COUNT) dans un pilote PDO_SQLITE.

<?php
$select 
$DB->query('SELECT COUNT(*) FROM fruit');
$meta $select->getColumnMeta(0);
var_dump($meta);
?>

L'exemple ci-dessus va afficher :

array(6) {
   ["native_type"]=>
   string(7) "integer"
   ["flags"]=>
      array(0) {
      }
   ["name"]=>
   string(8) "COUNT(*)"
   ["len"]=>
   int(-1)
   ["precision"]=>
   int(0)
   ["pdo_type"]=>
   int(2)
}

Voir aussi



PDOStatement->nextRowset

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDOStatement->nextRowset Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples

Description

bool PDOStatement::nextRowset ( void )

Quelques bases de données supportent les procédures stockées qui retournent plus d'une ligne de résultats (aussi connu comme des jeux de résultats). PDOStatement::nextRowset() vous permet d'accéder à la seconde et suivantes lignes de résultats associées avec l'objet PDOStatement. Chaque ligne de résultats a des jeux différents de colonnes depuis la ligne de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération de multiples lignes de résultats retournées par une procédure stockée

L'exemple suivant montre comment appeler une procédure stockée, MULTIPLE_RESULTS, qui retourne trois lignes de résultats. Nous utilisons une boucle do / while pour parcourir la méthode PDOStatement::nextRowset(), qui retourne FALSE et termine la boucle lorsque plus aucune ligne de résultats ne peut être retournée.

<?php
$sql 
'CALL multiple_rowsets()';
$stmt $conn->query($sql);
$i 1;
do {
    
$rowset $stmt->fetchAll(PDO::FETCH_NUM);
    if (
$rowset) {
        
printResultSet($rowset$i);
    }
    
$i++;
} while (
$stmt->nextRowset());

function 
printResultSet(&$rowset$i) {
    print 
"Jeu de résultats $i:\n";
    foreach (
$rowset as $row) {
        foreach (
$row as $col) {
            print 
$col "\t";
        }
        print 
"\n";
    }
    print 
"\n";
}
?>

L'exemple ci-dessus va afficher :

Jeu de résultats 1:
apple    red
banana   yellow

Jeu de résultats 2:
orange   orange    150
banana   yellow    175

Jeu de résultats 3:
lime     green
apple    red
banana   yellow

Voir aussi



PDOStatement->rowCount

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement->rowCount Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()

Description

int PDOStatement::rowCount ( void )

PDOStatement::rowCount() retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet PDOStatement correspondant.

Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête. Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données et ne devrait pas être exécuté pour des applications portables.

Valeurs de retour

Retourne le nombre de lignes.

Exemples

Exemple #1 Retourne le nombre de lignes effacées

PDOStatement::rowCount() retourne le nombre de lignes affectées par une requête DELETE, INSERT, ou UPDATE.

<?php
/* Effacement de toutes les lignes de la table FRUIT */
$del $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
$count $del->rowCount();
print(
"Effacement de $count lignes.\n");
?>

L'exemple ci-dessus va afficher :

Retourne le nombre de lignes effacées :
Effacement de 9 lignes.

Exemple #2 Comptage des lignes retournées par une requête SELECT

Pour la plupart des bases de données, PDOStatement::rowCount() ne retourne pas le nombre de lignes affectées par une requête SELECT. À la place, utilisez PDO::query() pour faire une requête SELECT COUNT(*), puis utilisez PDOStatement::fetchColumn() pour récupérer le nombre de lignes retournées. Votre application peut ainsi effectuer la bonne action.

<?php
$sql 
"SELECT COUNT(*) FROM fruit WHERE calories > 100";
if (
$res $conn->query($sql)) {

   
/* Récupère le nombre de lignes qui correspond à la requête SELECT */
   
if ($res->fetchColumn() > 0) {

      
/* Effectue la vraie requête SELECT et travaille sur le résultat */
      
$sql "SELECT nom FROM fruit WHERE calories > 100";
      foreach (
$conn->query($sql) as $row) {
      print 
"Nom : " .  $row['NOM'] . "\n";
      }
   }
   
/* Aucune ligne ne correspond -- faire quelque chose d'autre */
   
else {
      print 
"Aucune ligne ne correspond à la requête.";
   }
}

$res null;
$conn null;
?>

L'exemple ci-dessus va afficher :

apple
banana
orange
pear

Voir aussi



PDOStatement->setAttribute

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDOStatement->setAttribute Définie un attribut de requête

Description

bool PDOStatement::setAttribute ( int $attribute , mixed $value )

Définit un attribut de la requête. Actuellement, aucun attribut générique n'est défini, mais uniquement des spécificités du driver :

  • PDO::ATTR_CURSOR_NAME (spécificité de Firebird et d'ODBC) : Définit le nom du curseur pour UPDATE ... WHERE CURRENT OF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



PDOStatement->setFetchMode

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDOStatement->setFetchMode Définit le mode de récupération par défaut pour cette requête

Description

bool PDOStatement::setFetchMode ( int $mode )
bool PDOStatement::setFetchMode ( int $PDO::FETCH_COLUMN , int $colno )
bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
bool PDOStatement::setFetchMode ( int $PDO::FETCH_INTO , object $object )

Liste de paramètres

mode

Le mode de récupération doit être une des constantes PDO::FETCH_*.

colno

Numéro de la colonne.

classname

Nom de la classe.

ctorargs

Arguments du constructeur.

object

Objet.

Valeurs de retour

Retourne 1 en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définition du mode de récupération

L'exemple suivant montre comment PDOStatement::setFetchMode() modifie le mode de récupération par défaut pour un objet PDOStatement.

<?php
$sql 
'SELECT name, colour, calories FROM fruit';
try {
  
$stmt $dbh->query($sql);
  
$result $stmt->setFetchMode(PDO::FETCH_NUM);
  while (
$row $stmt->fetch()) {
    print 
$row[0] . "\t" $row[1] . "\t" $row[2] . "\n";
  }
}
catch (
PDOException $e) {
  print 
$e->getMessage();
}
?>

L'exemple ci-dessus va afficher :

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90


Sommaire



La classe PDOException

Introduction

Représente une erreur émise par PDO. Vous ne devez pas lancer une exception PDOException depuis votre propre code. Voir le chapitre sur les exceptions pour plus d'informations concernant les exceptions en PHP.

Synopsis de la classe

PDOException Étend RuntimeException {
/* Propriétés */
public array $errorInfo ;
protected string $message ;
protected string $code ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

errorInfo

Correspond à PDO::errorInfo() ou PDOStatement::errorInfo()

message

Message d'erreur textuel. Utilisez la méthode Exception::getMessage() pour y accéder.

code

Code erreur SQLSTATE. Utilisez la méthode Exception::getCode() pour y accéder.



Pilotes PDO

Sommaire

Les pilotes suivants (driver) sont actuellement implémentés dans l'interface PDO :

Nom du driver Bases de données supportées
PDO_CUBRID Cubrid
PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird/Interbase 6
PDO_IBM IBM DB2
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x/4.x/5.x
PDO_OCI Oracle Call Interface
PDO_ODBC ODBC v3 (IBM DB2, unixODBC et win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 et SQLite 2
PDO_4D 4D


Fonctions CUBRID (PDO_CUBRID)

Introduction

PDO_CUBRID est un driver implémentant l' interface PHP Data Objects (PDO) pour activer l'accès depuis PHP aux bases de données CUBRID.

Note:

La version courante de PDO_CUBRID ne supporte pas les connexions persistantes.

Installation

Pour construire l'extension PDO_CUBRID, CUBRID DBMS doit être installé sur le même système que PHP. PDO_CUBRID est une extension » PECL, aussi, vous devez suivre les instructions de Installation d'extensions PECL pour installer l'extension PDO_CUBRID. Lancez la commande configure pour localiser le dossier de base de CUBRID comme ceci :

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
La commande configure prendra par défaut la valeur de la variable d'environnement CUBRID.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows. Des informations sur l'installation manuelle sous Linux et Windows peuvent être trouvées dans le fichier build-guide.html du paquet CUBRID de PECL.

Fonctionnalités

Fonctionnalités PDO_CUBRID
Fonctionnalités Description
Curseurs scrollables PDO_CUBRID supporte les curseurs scrollables. Le type de curseur par défaut est uniquement un curseur permettant de se déplacer vers l'avant, et vous pouvez utiliser le paramètre driver_options de la méthode PDO::prepare() pour modifier ce type de curseur.
Délai d'expiration PDO_CUBRID supporte le délai d'expiration d'exécution d'une requête sql ; vous pouvez utiliser la méthode PDO::setAttribute() pour définir la valeur.
Autocommit_mode et transaction PDO_CUBRID supporte à la fois l'autocommit_mode et la transaction (autocommit_mode est activé par défaut). Vous pouvez utiliser la méthode PDO::setAttribute() pour modifier ce comportement.

Si vous utilisez PDO::beginTransaction pour commencer une transaction, la méthode désactivera l'autocommit_mode et l'activera de nouveau après un appel à la méthode PDO::commit ou la méthode PDO::rollBack. Notez qu'avant de désactiver l'autocommit_mode, tous les travaux en attente seront automatiquement commités.

Requêtes SQL multiples PDO_CUBRID supporte les requêtes SQL multiples. Elles sont séparées par un point virgule (;).
Informations sur un schéma PDO_CUBRID n'implémente pas PDOStatement->getColumnMeta. À la place, PDO_CUBRID implémente la méthode PDO::cubrid_schema() pour récupérer les informations sur le schéma.
LOBs PDO_CUBRID supporte les types de données BLOB/CLOB. Le LOB en PDO est représenté sous la forme d'un flux, aussi, vous pouvez insérer des LOBs en liant un flux et récupérer des LOBs en lisant un flux retourné par CUBRID PDO. Par exemple :

Exemple #2 Insertion de LOBs dans CUBRID PDO

<?php
$fp 
fopen('lob_test.png''rb');

$sql_stmt "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";

$stmt $dbh->prepare($sql_stmt);
$ret $stmt->bindParam(1$fpPDO::PARAM_LOB);
$ret $stmt->execute();
?>

Exemple #3 Récupère des LOBs depuis CUBRID PDO

<?php
$sql_stmt 
"SELECT content FROM lob_test WHERE name='lob_test.png'";

$stmt $dbh->prepare($sql_stmt);
$stmt->execute();
$result $stmt->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($result[0]);
?>

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

Les constantes suivantes peuvent être utilisées pour récupérer les informations sur le schéma. Elles peuvent être passées à la fonction PDO::cubrid_schema().

Drapeaux pour le schéma CUBRID
Constante Description
PDO::CUBRID_SCH_TABLE Récupère le nom et le type de table CUBRID.
PDO::CUBRID_SCH_VIEW Récupère le nom et le type de vue dans CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC Récupère la définition de la requête de la vue.
PDO::CUBRID_SCH_ATTRIBUTE Récupère les attributs de la colonne de la table.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE Récupère les attributs de la table.
PDO::CUBRID_SCH_METHOD Récupère la méthode de l'instance. C'est une méthode appelée par l'instance de la classe. Elle est utilisée plus souvent que la méthode de la classe car la plupart des opérations sont exécutées dans l'instance.
PDO::CUBRID_SCH_TABLE_METHOD Récupère la méthode de la classe. C'est une méthode appelée par un objet de la classe. Elle est habituellement utilisée pour créer une nouvelle instance de la classe ou pour l'initialiser. Elle est également utilisée pour accéder ou mettre à jour les attributs de la classe.
PDO::CUBRID_SCH_METHOD_FILE Récupère les informations sur le fichier où la méthode de la table est définie.
PDO::CUBRID_SCH_SUPER_TABLE Récupère le nom et le type de la table dont les attributs héritent.
PDO::CUBRID_SCH_SUB_TABLE Récupère le nom et le type de la table dont les attributs héritent.
PDO::CUBRID_SCH_CONSTRAINT Récupère les contraintes de la table.
PDO::CUBRID_SCH_TRIGGER Récupère les triggers de la table.
PDO::CUBRID_SCH_TABLE_PRIVILEGE Récupère les informations sur les privilèges de la table.
PDO::CUBRID_SCH_COL_PRIVILEGE Récupère les informations sur les privilèges d'une colonne.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE Récupère la table directement supérieure à la table.
PDO::CUBRID_SCH_PRIMARY_KEY Récupère la clé primaire de la table.
PDO::CUBRID_SCH_IMPORTED_KEYS Récupère les clés importées d'une table.
PDO::CUBRID_SCH_EXPORTED_KEYS Récupère les clés exportées d'une table.
PDO::CUBRID_SCH_CROSS_REFERENCE Récupère les relations de référence entre 2 tables.


DSN PDO_CUBRID

(No version information available, might only be in SVN)

DSN PDO_CUBRIDConnexion aux bases de données CUBRID

Description

Le DSN PDO_CUBRID est composé des éléments suivants, délimités par un point virgule :

préfixe DSN

Le préfixe DSN est cubrid:.

host

Le nom d'hôte sur lequel se trouve le serveur de base de données.

port

Le port sur lequel le serveur de base de données fonctionne.

dbname

Le nom de la base de données.

Exemples

Exemple #1 Exemples de DSN PDO_CUBRID

L'exemple suivant montre un DSN PDO_CUBRID pour une connexion à une base de données CUBRID :

cubrid:host=localhost;port=33000;dbname=demodb



PDO::cubrid_schema

(No version information available, might only be in SVN)

PDO::cubrid_schemaRécupère le schéma d'informations demandé

Description

array PDO::cubrid_schema ( int $schema_type [, string $table_name [, string $col_name ]] )

Cette fonction est utilisée pour récupérer le schéma d'informations demandé depuis la base de données. Vous devez désigner le paramètre table_name, si vous souhaitez récupérer les informations d'une certaine table, le paramètre col_name, si vous souhaitez récupérer les informations d'une certaine colonne (ne peut être utilisé qu'avec PDO::CUBRID_SCH_COL_PRIVILEGE).

Le résultat de cette fonction est retourné sous la forme d'un tableau à 2 dimensions (colonne(tableau associatif) * ligne (tableau numérique)). Les tables suivantes montrent les types de schéma et la structure de la colonne du tableau résultant.

Composition du résultat pour chaque type
Schéma Numéro de la colonne Nom de la colonne Valeur
PDO::CUBRID_SCH_TABLE 1 NAME  
  2 TYPE 0:system table 1:view 2:table
PDO::CUBRID_SCH_VIEW 1 NAME  
  2 TYPE 1:view
PDO::CUBRID_SCH_QUERY_SPEC 1 QUERY_SPEC  
PDO::CUBRID_SCH_ATTRIBUTE / PDO::CUBRID_SCH_TABLE_ATTRIBUTE 1 ATTR_NAME  
  2 DOMAIN  
  3 SCALE  
  4 PRECISION  
  5 INDEXED 1:indexed
  6 NOT NULL 1:not null
  7 SHARED 1:shared
  8 UNIQUE 1:unique
  9 DEFAULT  
  10 ATTR_ORDER base:1
  11 CLASS_NAME  
  12 SOURCE_CLASS  
  13 IS_KEY 1:key
PDO::CUBRID_SCH_METHOD / PDO::CUBRID_SCH_TABLE_METHOD 1 NAME  
  2 RET_DOMAIN  
  3 ARG_DOMAIN  
PDO::CUBRID_SCH_METHOD_FILE 1 METHOD_FILE  
PDO::CUBRID_SCH_SUPER_TABLE / PDO::CUBRID_SCH_DIRECT_SUPER_TABLE / PDO::CUBRID_SCH_SUB_TABLE 1 CLASS_NAME  
  2 TYPE 0:system table 1:view 2:table
PDO::CUBRID_SCH_CONSTRAINT 1 TYPE 0:unique 1:index 2:reverse unique 3:reverse index
  2 NAME  
  3 ATTR_NAME  
  4 NUM_PAGES  
  5 NUM_KEYS  
  6 PRIMARY_KEY 1:primary key
  7 KEY_ORDER base:1
PDO::CUBRID_SCH_TRIGGER 1 NAME  
  2 STATUS  
  3 EVENT  
  4 TARGET_CLASS  
  5 TARGET_ATTR  
  6 ACTION_TIME  
  7 ACTION  
  8 PRIORITY  
  9 CONDITION_TIME  
  10 CONDITION  
PDO::CUBRID_SCH_TABLE_PRIVILEGE / PDO::CUBRID_SCH_COL_PRIVILEGE 1 CLASS_NAME / ATTR_NAME  
  2 PRIVILEGE  
  3 GRANTABLE  
PDO::CUBRID_SCH_PRIMARY_KEY 1 CLASS_NAME  
  2 ATTR_NAME  
  3 KEY_SEQ base:1
  4 KEY_NAME  
PDO::CUBRID_SCH_IMPORTED_KEYS / PDO::CUBRID_SCH_EXPORTED_KEYS / PDO::CUBRID_SCH_CROSS_REFERENCE 1 PKTABLE_NAME  
  2 PKCOLUMN_NAME  
  3 FKTABLE_NAME base:1
  4 FKCOLUMN_NAME  
  5 KEY_SEQ base:1
  6 UPDATE_ACTION 0:cascade 1:restrict 2:no action 3:set null
  7 DELETE_ACTION 0:cascade 1:restrict 2:no action 3:set null
  8 FK_NAME  
  9 PK_NAME  

Liste de paramètres

schema_type

Le type du schéma que vous souhaitez récupérer.

table_name

La table dont vous souhaitez récupérer le schéma.

col_name

La colonne dont vous souhaitez récupérer le schéma.

Valeurs de retour

Un tableau contenant les informations relatives au schéma, lorsque le processus s'est exécuté avec succès.

FALSE sera retourné si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::cubrid_schema()

Cet exemple montre la façon dont on récupère les clés primaires et étrangères de la table "game".

<?php
$pk_list 
$dbh->cubrid_schema(PDO::CUBRID_SCH_PRIMARY_KEY"game");
print_r($pk_list);

$fk_list $dbh->cubrid_schema(PDO::CUBRID_SCH_IMPORTED_KEYS"game");
print_r($fk_list);
?>

L'exemple ci-dessus va afficher :

Result:
Array
(
    [0] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => athlete_code
            [KEY_SEQ] => 3
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [1] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => event_code
            [KEY_SEQ] => 2
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [2] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => host_year
            [KEY_SEQ] => 1
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

)
Array
(
    [0] => Array
        (
            [PKTABLE_NAME] => athlete
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => athlete_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_athlete_code
            [PK_NAME] => pk_athlete_code
        )

    [1] => Array
        (
            [PKTABLE_NAME] => event
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => event_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_event_code
            [PK_NAME] => pk_event_code
        )

)


Sommaire



Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

PDO_DBLIB est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP au Microsoft SQL Server et aux bases de données Sybase par la bibliothèque FreeTDS.

Cette extension n'est plus disponible sous Windows avec PHP 5.3 et suivant.

Sous Windows, vous devriez utiliser SqlSrv, un driver alternatif pour MS SQL disponible chez Microsoft : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx .

Si vous ne pouvez pas utiliser SqlSrv, vous pouvez utiliser le driver PDO_ODBC pour se connecter à un serveur de bases de données Microsoft SQL et Sybase, sachant que le driver natif Windows DB-LIB est ancien, non sécurisé niveau thread et plus supporté par Microsoft.


PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSNConnexion au Serveur Microsoft SQL et bases de données Sybase

Description

Le Data Source Name (DSN) de PDO_DBLIB est composé des éléments suivants :

Préfixe DSN

Le préfixe DNS est sybase: si PDO_DBLIB était lié avec les bibliothèques Sybase ct-lib, mssql: si PDO_DBLIB était lié avec les bibliothèques de Microsoft SQL Server, ou dblib: si PDO_DBLIB était lié avec les bibliothèques FreeTDS.

host

L'hôte sur lequel le serveur de base de données se situe.

dbname

Le nom de la base de données.

charset

Le jeu de caractères du client.

appname

Le nom de l'application (utilisé dans sysprocesses). Par défaut, "PHP Generic DB-lib" ou "PHP freetds".

secure

Actuellement inutilisé.

Exemples

Exemple #1 Exemples avec PDO_DBLIB DSN

Les exemples suivants montrent PDO_DBLIB DSN pour se connecter au Microsoft SQL Server et les bases de données Sybase :

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb


Sommaire

  • PDO_DBLIB DSN — Connexion au Serveur Microsoft SQL et bases de données Sybase


Fonctions Firebird/Interbase (PDO_FIREBIRD)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

PDO_FIREBIRD est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour permettre l'accès de PHP aux bases de données Firebird et Interbase.

Installation

Utilisez l'option de compilation --with-pdo-firebird[=DIR] pour installer l'extension PDO Firebird, où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de Firebird.

$ ./configure --with-pdo-firebird

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

PDO::FB_ATTR_DATE_FORMAT (entier)

Disponible depuis PHP 5.3.0.

Configure le format de la date.

PDO::FB_ATTR_TIME_FORMAT (entier)

Disponible depuis PHP 5.3.0.

Configure le format de l'heure.

PDO::FB_ATTR_TIMESTAMP_FORMAT (entier)

Disponible depuis PHP 5.3.0.

Configure le format des timestamp.


PDO_FIREBIRD DSN

(PECL PDO_FIREBIRD >= 0.1.0)

PDO_FIREBIRD DSNConnexion aux bases de données Firebird et Interbase

Description

Le Data Source Name (DSN) de PDO_FIREBIRD est composé des éléments suivants :

Préfixe DSN

Le préfixe DNS est firebird:.

dbname

Le nom de la base de données.

charset

Le jeu de caractères.

role

Le nom du rôle SQL.

Exemples

Exemple #1 Exemples avec PDO_FIREBIRD DSN

L'exemple suivant montre PDO_FIREBIRD DSN pour se connecter aux bases de données Firebird et Interbase :

firebird:dbname=DATABASE.GDE


Sommaire



Fonctions IBM (PDO_IBM)

Introduction

PDO_IBM est un driver qui implémente l'interface PHP Data Objects (PDO) afin d'activer l'accès depuis PHP aux bases de données IBM.

Installation

Pour compiler l'extension PDO_IBM, le client DB2 v9.1 ou supérieur doit être installé sur le même système que PHP. Le client DB2 peut être téléchargé depuis le site d'IBM de » développement d'applications.

Note: Note

Le client DB2 v9.1 ou supérieur supporte les accès directs à DB2 pour les systèmes Linux, UNIX et les serveurs Windows v8 et v9.1.

Le client DB2 v9.1 supporte également les accès à DB2 UDB pour i5 et DB2 UDB pour les serveurs z/OS en utilisant le » produit de connexion DB2 payant.

PDO_IBM est une extension » PECL; vous devez donc suivre les instructions de Installation d'extensions PECL pour installer l'extension PDO_IBM. Exécutez la commande configure afin qu'elle pointe vers le dossier contenant les fichiers d'en-têtes et les bibliothèques de votre client DB2 comme ceci :

 bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
La commande configure utilise par défaut la valeur de la variable d'environnement DB2DIR.


PDO_IBM DSN

(PECL PDO_IBM >= 0.9.0)

PDO_IBM DSNConnexion aux bases de données IBM

Description

Le nom de la source de données PDO_IBM (DSN) est basé sur le IBM CLI DSN. Les principaux composants de PDO_IBM DSN sont :

DSN prefix

Le préfixe DSN est ibm:.

DSN

Le DSN peut être une valeur parmi celles-ci :

  • a) Configuration de la source des données en utilisant le fichier db2cli.ini ou odbc.ini

  • b) Nom de base de données catalogué, i.e. alias de base de données contenus dans le catalogue du client DB2

  • c) Chaîne de connexion complète dans le format suivant : DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; où les paramètres représentent les valeurs suivantes :

    database

    Le nom de la base de données.

    hostname

    Le nom de l'hôte ou l'adresse IP du serveur de base de données.

    port

    Le port TCP/IP sur lequel la base de données écoute les requêtes.

    username

    Le nom d'utilisateur utilisé pour la connexion à la base de données.

    password

    Le mot de passe utilisé pour la connexion à la base de données.

Exemples

Exemple #1 Exemple avec PDO_IBM DSN en utilisant db2cli.ini

L'exemple suivant montre l'utilisation de PDO_IBM DSN pour la connexion à une base de données DB2 cataloguée comme DB2_9 dans le fichier db2cli.ini :

$db = new PDO("ibm:DSN=DB2_9", "", "");

[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789

Exemple #2 Exemple avec PDO_IBM DSN en utilisant une chaîne complète de connexion

L'exemple suivant montre l'utilisation de PDO_IBM DSN pour la connexion à une base de données DB2 nommé testdb en utilisant la chaîne complète de connexion DB2 CLI :

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");


Sommaire



Fonctions Informix (PDO_INFORMIX)

Introduction

PDO_INFORMIX est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès à PHP aux bases de données Informix.

Installation

Pour compiler l'extension PDO_INFORMIX, le SDK Client Informix 2.81 UC1 ou supérieur doit être installé sur le même système que PHP. Le SDK Client Informix est disponible sur le » Site de Support IBM Informix.

PDO_INFORMIX est une extension » PECL, alors suivez les instructions dans Installation d'extensions PECL pour installer l'extension PDO_INFORMIX. Écrivez la commande configure pour pointer au chemin de vos fichiers d'en-têtes SDK Client Informix ainsi que les bibliothèques comme suit :

   bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
La commande configure utilise par défaut la variable d'environnement INFORMIXDIR.

Curseurs flottants

PDO_INFORMIX supporte les curseurs flottants; cependant, ils ne sont pas activés par défaut. Pour activer le support des curseurs flottants, vous devez soit fixer ENABLESCROLLABLECURSORS=1 dans les configurations de la connexion ODBC correspondante dans odbc.ini ou passer la clause EnableScrollableCursors=1 dans la chaîne de caractères de connexion DSN.


PDO_INFORMIX DSN

(PECL PDO_INFORMIX >= 0.1.0)

PDO_INFORMIX DSNConnexion aux bases de données Informix

Description

Le Data Source Name (DSN) de PDO_INFORMIX est basé sur la chaîne de caractères DSN d'Informix ODBC. Les détails sur la configuration d'un DSN Informix ODBC sont disponibles sur » Informix Dynamic Server Information Center. Les composants majeurs de DSN de PDO_INFORMIX sont :

DSN prefix

Le préfixe DSN est informix:.

DSN

Le DSN peut soit être une source de données de configuration en utilisant odbc.ini ou une » chaînes de caractères de connexion complète.

Exemples

Exemple #1 Exemple DSN de PDO_INFORMIX avec odbc.ini

L'exemple suivant montre PDO_INFORMIX DSN pour se connecter à une base de données Informix cataloguée comme Infdrv33 dans odbc.ini :

$db = new PDO("informix:DSN=Infdrv33", "", "");
[ODBC Data Sources]
Infdrv33=INFORMIX 3.3 32-BIT

[Infdrv33]
Driver=/opt/informix/csdk_2.81.UC1G2/lib/cli/iclis09b.so
Description=INFORMIX 3.3 32-BIT
Database=common_db
LogonID=testuser
pwd=testpass
Servername=ids_server
DB_LOCALE=en_US.819
OPTIMIZEAUTOCOMMIT=1
ENABLESCROLLABLECURSORS=1

Exemple #2 Exemple DSN de PDO_INFORMIX avec une chaîne de caractères de connexion

L'exemple suivant montre PDO_INFORMIX DSN pour se connecter à une base de données Informix nommée common_db en utilisant la syntaxe de chaîne de caractères de connexion Informix.

$db = new PDO("informix:host=host.domain.com; service=9800;
    database=common_db; server=ids_server; protocol=onsoctcp;
    EnableScrollableCursors=1", "testuser", "tespass");


Sommaire



Fonctions MySQL (PDO_MYSQL)

Introduction

PDO_MYSQL est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données de MySQL 3.x, 4.x. et 5.x.

PDO_MYSQL tirera avantage des requêtes natives préparées présentes dans MySQL 4.1 et supérieur. Si vous utilisez une version plus ancienne des bibliothèques clientes mysql, PDO les émulera pour vous.

Avertissement

Prenez garde : certains types de tables MySQL (moteur d'enregistrement) ne supportent pas les transactions. Lorsque vous écrivez du code de base de données transactionnel en utilisant un type de table qui ne supporte pas les transactions, MySQL prétendra qu'une transaction était initiée correctement. De plus, toutes requêtes DLL publiées enverra implicitement toutes les transactions en attente.

Installation

Utilisez l'option de compilation --with-pdo-mysql[=DIR] pour installer l'extension PDO MySQL, où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de MySQL. Si mysqlnd est passé comme [=DIR], alors le driver natif MySQL sera utilisé.

Optionnellement, l'option --with-mysql-sock[=DIR] définit le chemin vers le socket Unix MySQL pour toutes les extensions MySQL, y compris PDO_MYSQL. Si non spécifié, les chemins par défaut seront utilisés.

Optionnellement, l'option --with-zlib-dir[=DIR] sera utilisé pour définir le préfixe d'installation libz.

$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (integer)
Si cet attribut est fixé à TRUE sur un objet de classe PDOStatement, le pilote MySQL utilisera les versions bufferisées de l'API MySQL. Si vous écrivez du code portable, vous devriez utiliser à la place PDOStatement::fetchAll().

Exemple #3 Forcer la bufferisation des requêtes avec mysql

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    
$stmt $db->prepare('select * from foo',
         array(
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die(
"mon application fonctionne seulement avec mysql; Je devrais utiliser \$stmt->fetchAll() à la place");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (entier)

Active LOAD LOCAL INFILE.

Notez que cette option n'a d'effet que si utilisée dans le tableau d'options driver_options du constructeur.

PDO::MYSQL_ATTR_INIT_COMMAND (entier)

Commande à exécuter lors de la connexion au serveur MySQL. Sera automatiquement ré-exécuté lors d'une reconnexion.

Notez que cette option n'a d'effet que si utilisée dans le tableau d'options driver_options du constructeur.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (entier)

Lit les options depuis le fichier nommé optionnel, plutôt que depuis my.cnf. Cette option n'est pas disponible lors de l'utilisation de mysqlnd car ce dernier ne lit pas les fichiers de configuration de mysql.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (entier)

Lit les options depuis le groupe nommé du fichier my.cnf ou depuis le fichier spécifié par MYSQL_READ_DEFAULT_FILE. Cette option n'est pas disponible lors de l'utilisation de mysqlnd car ce dernier ne lit pas les fichiers de configuration de mysql.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (entier)

Taille maximale du tampon. Par défaut, vaut 1 MiB. Cette constante n'est pas supportée lorsque mysqlnd est utilisé.

PDO::MYSQL_ATTR_DIRECT_QUERY (entier)

Effectue des requêtes directes, sans utiliser de requêtes préparées.

PDO::MYSQL_ATTR_FOUND_ROWS (integer)

Retourne le nombre d'enregistrements trouvés, pas le nombre d'enregistrements changés.

PDO::MYSQL_ATTR_IGNORE_SPACE (integer)

Autorise les espaces après les noms de fonctions. Fait en sorte que les noms de fonctions soient des mots réservés.

PDO::MYSQL_ATTR_COMPRESS (integer)

Active la compression de la communication réseau. Non supporté si mysqlnd est utilisé.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration du driver PDO_MYSQL
Nom Défaut Modifiable
pdo_mysql.default_socket "/tmp/mysql.sock" PHP_INI_SYSTEM
pdo_mysql.debug NULL PHP_INI_SYSTEM
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pdo_mysql.default_socket string

Définit un socket de domaine Unix. La valeur peut aussi être définie au moment de la compilation si un socket de domaine Unix est trouvé lors de la configuration. Cette configuration INI n'est disponible que sous Unix.

pdo_mysql.debug boolean

Active le débogage pour le driver PDO_MYSQL. Cette configuration n'est disponible que lorsque le driver PDO_MYSQL est compilé avec mysqlnd et en mode de débogage PDO.


PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSNConnexion aux bases de données MySQL

Description

Le Data Source Name (DSN) de PDO_MYSQL est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est mysql:.

host

L'hôte sur lequel le serveur de base de données se situe.

port

Le numéro de port où le serveur de base de données est en train d'écouter.

dbname

Le nom de la base de données.

unix_socket

Le socket Unix MySQL (ne devrait pas être utilisé avec host ou port).

charset

Actuellement non utilisé.

Exemples

Exemple #1 Exemples avec le DSN de PDO_MYSQL

L'exemple suivant montre le DSN PDO_MYSQL pour se connecter aux bases de données MySQL :

mysql:host=localhost;dbname=testdb
Exemples plus complets :
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Notes

Note: Unix seulement:

Lorsque le nom d'hôte est "localhost", la connexion est faite par une socket Unix. Si PDO_MYSQL est compilé avec libmysql alors le fichier de socket est celui précisé à la compilation de libmysql. Si PDO_MYSQL est compilé avec mysqlnd, une socket par défaut peut être indiquée via la paramètre pdo_mysql.default_socket.


Sommaire



Fonctions Oracle (PDO_OCI)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

PDO_OCI est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données Oracle à l'aide de la bibliothèque OCI.

Installation

Utilisez l'option de compilation --with-pdo-oci[=DIR] pour installer l'extension PDO Oracle OCI, où [=DIR] (optionnel) représente le chemin vers le dossier racine d'Oracle. [=DIR] vaut par défaut la valeur de la variable d'environnement $ORACLE_HOME.

Utilisez l'option --with-pdo-oci=instantclient,prefix,version pour leOracle Instant Client SDK, où le préfixe et la version sont configurés.

// Utilisation de $ORACLE_HOME
$ ./configure --with-pdo-oci

// Utilisation de OIC pour Linux avec 10.2.0.3 RPMs avec le préfixe /usr
$ ./configure --with-pdo-oci=instantclient,/usr,10.2.0.3


PDO_OCI DSN

(PECL PDO_OCI >= 0.1.0)

PDO_OCI DSNConnexion aux bases de données Oracle

Description

Le Data Source Name (DSN) de PDO_OCI est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est oci:.

dbname (Oracle Instant Client)

Le URI de la connexion Oracle Instant Client prend la forme de dbname=//hostname:port-number/database. Si vous vous connectez sur une base de données définies dans tnsnames.ora, utilisez seulement le nom de la base de données : dbname=database.

charset

Le jeu de caractères côté client pour l'environnement courant.

Exemples

Exemple #1 Exemples avec PDO_OCI DSN

Les exemples suivants montrent PDO_OCI DSN pour se connecter aux bases de données Oracle :

// Connexion à une base de données définie dans tnsnames.ora
oci:dbname=mydb

// Connexion en utilisant le client Oracle Instant
oci:dbname=//localhost:1521/mydb


Sommaire



Fonctions ODBC et DB2 (PDO_ODBC)

Introduction

PDO_ODBC est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données par les pilotes de ODBC ou par la bibliothèque d'interface IBM DB2 Call Level (DB2 CLI). PDO_ODBC supporte actuellement trois "saveurs" différentes des pilotes de bases de données :

ibm-db2

Supporte l'accès à IBM DB2 Universal Database, Cloudscape et Apache Derby Server à l'aide du client gratuit DB2.

unixODBC

Supporte l'accès aux serveurs de base de données à l'aide du pilote de gestion unixODBC et les bases de données possédées par les pilotes ODBC.

generic

Offre une option de compilation pour les pilotes de gestion ODBC qui ne sont pas explicitement supportés par PDO_ODBC.

Sur Windows, PDO_ODBC est construit dans le noyau de PHP par défaut. Il est lié avec le Windows ODBC Driver Manager, c'est pourquoi PHP peut se connecter à n'importe quelle base de données cataloguée comme étant un System DSN. De plus, PDO_ODBC est le pilote recommandé pour se connecter aux bases de données Microsoft SQL Server.

Installation

PDO_ODBC sur les systèmes UNIX
  1. À partir de PHP 5.1, PDO_ODBC est inclus dans les sources de PHP. Vous pouvez compiler l'extension PDO_ODBC soit en statique ou en module partagé en utilisant les commandes configure suivantes.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    
    Pour construire PDO_ODBC avec la saveur ibm-db2, vous devez avoir précédemment installé les en-têtes de développement de l'application de DB2 sur la même machine sur laquelle vous compilez PDO_ODBC. Les en-têtes de développement de l'application DB2 sont une option d'installation dans les serveurs DB2 et sont aussi disponibles en tant que DB2 Application Development Client gratuitement disponibles pour téléchargement à partir du » site. IBM DB2 Universal Database.

    Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de DB2 à la commande configure, PDO_ODBC prendra par défaut /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    
    Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de unixODBC à la commande configure, PDO_ODBC prendra par défaut /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
    

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PDO_ODBC
Nom Défaut Modifiable Historique
pdo_odbc.connection_pooling "strict" PHP_INI_ALL Disponible depuis PHP 5.1.0.
pdo_odbc.db2_instance_name NULL PHP_INI_SYSTEM Disponible depuis PHP 5.1.1. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pdo_odbc.connection_pooling string

Pour mettre en commun les connexions ODBC. Peut être "strict", "relaxed" ou "off" (égal à ""). Le paramètre décrit comment la gestion de la connexion stricte devrait être lorsque les paramètres de connexion se ressemblent pour des connexions mises en commun. strict est la valeur par défaut recommandée et permettra l'utilisation des connexions en cache lorsque des paramètres de connexion similaires sont utilisés. relaxed permettra d'utiliser des connexions mises en cache lorsque des paramètres de connexion similaire seront utilisés. Cela peut augmenter l'utilisation du cache au risque de noyer les informations de connexion entre (par exemple) des serveurs virtuels.

Cette configuration peut seulement être changé à partir du fichier php.ini et affecte le processus entier; n'importe quels autres modules chargé dans le processus qui utilisent les bibliothèques ODBC sera aussi affecté, en incluant l'extension unifié ODBC.

Avertissement

relaxed ne devrait pas être utilisé sur les serveurs partagés, pour des raisons de sécurité.

Astuce

Laissez cette configuration à la valeur par défaut strict à moins que vous ayez une bonne raison pour la changer.

pdo_odbc.db2_instance_name string

Si vous compilez PDO_ODBC en utilisant db2, cette configuration fixe la valeur de la variable d'environnement DB2INSTANCE sur les systèmes d'exploitation Linux et UNIX au nom spécifié de l'instance DB2. Ceci permet à PDO_ODBC de résoudre le chemin des bibliothèques DB2 et de faire des connexions cataloguées aux bases de données DB2.

Cette configuration peut seulement être changée à partir du fichier php.ini et affecte le processus entier; n'importe quels autres modules chargés dans le processus qui utilisent les même bibliothèques ODBC seront aussi affectés, incluant l'extension unifiée ODBC.

Cette configuration n'a aucun effet sur Windows.


PDO_ODBC DSN

(PECL PDO_ODBC >= 0.1.0)

PDO_ODBC DSNConnexion aux bases de données ODBC ou DB2

Description

Le Data Source Name (DSN) de PDO_ODBC est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est odbc:. Si vous vous connectez à une base de données cataloguée dans le pilote de ODBC Manager ou dans le catalogue de DB2, vous pouvez ajouter le nom du catalogue de la base de données au DSN.

DSN

Le nom de la base de données étant catalogué dans le pilote ODBC Manager ou le catalogue DB2. Alternativement, vous pouvez fournir une chaîne de connexion complète pour ODBC pour vous connecter à une base de données comme décrit à » http://www.connectionstrings.com/.

UID

Le nom de l'utilisateur pour la connexion. Si vous spécifiez l'utilisateur dans le DSN, PDO ignorera la valeur de l'utilisateur en argument dans le constructeur PDO.

PWD

Le mot de passe de l'utilisateur pour la connexion. Si vous spécifiez le mot de passe dans le DSN, PDO ignorera la valeur du mot de passe en argument dans le constructeur PDO.

Exemples

Exemple #1 Exemple avec PDO_ODBC DSN (pilote ODBC Manager)

L'exemple suivant montre PDO_ODBC DSN pour se connecter à une base de données ODBC catalogué comme étant testdb dans le pilote ODBC Manager :

odbc:testdb

Exemple #2 Exemple avec PDO_ODBC DSN (connexion non cataloguée IBM DB2)

L'exemple suivant montre PDO_ODBC DSN pour se connecter à une base de données IBM DB2 nommé SAMPLE en utilisant la syntaxe complète de ODBC DSN :

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Exemple #3 Exemple avec PDO_ODBC DSN (connexion non cataloguée Microsoft Access)

L'exemple suivant montre PDO_ODBC DSN pour se connecter à une base de données Microsoft Access enregistré à C:\db.mdb en utilisant la syntaxe complète de ODBC DSN :

odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin


Sommaire

  • PDO_ODBC DSN — Connexion aux bases de données ODBC ou DB2


Fonctions PostgreSQL (PDO_PGSQL)

Introduction

PDO_PGSQL est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données PostgreSQL.

Types de ressources

Cette extension définie une ressource de flux, retournée par la fonction PDO::pgsqlLOBOpen().

Installation

Utilisez l'option de compilation --with-pdo-pgsql[=DIR] pour installer l'extension PDO PostgreSQL, où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de PostgreSQL ou le chemin vers le fichier pg_config.

$ ./configure --with-pdo-pgsql


PDO_PGSQL DSN

(PECL PDO_PGSQL >= 0.1.0)

PDO_PGSQL DSNConnexion aux bases de données PostgreSQL

Description

Le Data Source Name (DSN) de PDO_PGSQL est composé des éléments suivants, délimités par des espaces ou des points-virgules :

Préfixe DSN

Le préfixe DSN est pgsql:.

host

L'hôte sur lequel le serveur de base de données se situe.

port

L'hôte sur lequel le serveur de base de données se situe.

dbname

Le nom de la base de données.

user

Le nom de l'utilisateur pour la connexion. Si vous spécifiez l'utilisateur dans le DSN, PDO ignorera la valeur de l'utilisateur en argument dans le constructeur PDO.

password

Le mot de passe de l'utilisateur pour la connexion. Si vous spécifiez le mot de passe dans le DSN, PDO ignorera la valeur du mot de passe en argument dans le constructeur PDO.

Note:

Les champs bytea sont retournés sous forme de flux.

Exemples

Exemple #1 Exemples avec PDO_PGSQL DSN

L'exemple suivant montre PDO_PGSQL DSN pour se connecter à une base de données PostgreSQL :

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass



PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreateCrée un nouvel objet large

Description

string PDO::pgsqlLOBCreate ( void )

PDO::pgsqlLOBCreate() crée un objet large et retourne le OID de cet objet. Vous devrez alors ouvrir un flux sur cet objet en utilisant PDO::pgsqlLOBOpen() pour lire et écrire des données à l'intérieur. Le OID peut être enregistré en colonnes de type OID et doit être utilisé pour référencer l'objet large, sans pour autant augmenter arbitrairement la grandeur des lignes. L'objet large continuera a vivre dans la base de données tant qu'il n'est pas supprimé en appelant PDO::pgsqlLOBUnlink().

Les objets larges peuvent atteindre une taille jusqu'à 2GO, mais sont encombrant à utiliser; vous devez vous assurer que PDO::pgsqlLOBUnlink() est appelée avant de supprimer la dernière ligne qui fait référence son OID de votre base de données. De plus, les objets larges n'ont pas de contrôle d'accès. Comme alternative, essayez la colonne de type BYTEA; les nouvelles versions de PostgreSQL autorisent les colonnes BYTEA à atteindre une taille de 1GO et gère de manière transparente l'enregistrement pour avoir une ligne de taille optimale.

Note: Cette fonction doit être appelée à l'intérieur d'une transaction.

Liste de paramètres

PDO::pgsqlLOBCreate() ne prend aucun paramètre.

Valeurs de retour

Retourne le OID du nouvel objet large créé en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec PDO::pgsqlLOBCreate()

Cet exemple crée un nouvel objet large et copie le contenu d'un fichier à l'intérieur. Le OID est alors enregistré dans une table.

<?php
$db 
= new PDO('pgsql:dbname=test host=localhost'$user$pass);
$db->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid $db->pgsqlLOBCreate();
$stream $db->pgsqlLOBOpen($oid'w');
$local fopen($filename'rb');
stream_copy_to_stream($local$stream);
$local null;
$stream null;
$stmt $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id$oid));
$db->commit();
?>

Voir aussi



PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpenOuvre un flux existant de large objet

Description

resource PDO::pgsqlLOBOpen ( string $oid [, string $mode = "rb" ] )

PDO::pgsqlLOBOpen() ouvre un flux pour accéder aux données référencées par oid. Si mode est r, le flux est ouvert en lecture, si mode est w, alors le flux sera ouvert en écriture. Vous pouvez utilisez toutes les fonctions usuelles de système de fichiers, comme fread(), fwrite() et fgets() pour manipuler le contenu du flux.

Note: Cette fonction, ainsi que toutes les manipulations sur l'objet large, doit être appelée et exécutée à l'intérieur d'une transaction.

Liste de paramètres

oid

Un identifiant d'objet large

mode

Si le mode est r, ouverture du flux en lecture. Si le mode est w, ouverture du flux en écriture.

Valeurs de retour

Retourne une ressource de flux en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::pgsqlLOBOpen()

Suivant l'exemple de PDO::pgsqlLOBCreate(), cet partie de code récupère l'objet large de la base de données et l'affiche au navigateur.

<?php
$db 
= new PDO('pgsql:dbname=test host=localhost'$user$pass);
$db->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid'$lobPDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
fpassthru($lob);
?>

Voir aussi



Sommaire



Fonctions SQLite (PDO_SQLITE)

Introduction

PDO_ODBC est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données SQLite 3.

Dans PHP 5.1, l'extension SQLite fournit aussi le pilote pour les bases de données SQLite 2; bien que ce n'est pas techniquement une partie du pilote de PDO_SQLITE, il se comporte similairement, donc il est documenté a côté de ce pilote. Le pilote SQLite 2 pour PDO est fourni principalement pour rendre plus facile l'importation de l'ancien format SQLite 2 des fichiers de base de données dans une application qui utilisent le pilote SQLite 3 qui est plus rapide et plus efficace. En conséquence, le pilote SQLite 2 n'est pas aussi riche en fonctionnalité que le pilote SQLite 3.

Note:

PDO_SQLITE autorise l'utilisation de chaînes en dehors des flux avec PDO::PARAM_LOB.

Installation

Le driver PDO PDO_SQLITE est actif par défaut. Pour le désactiver, utilisez l'option de compilation --without-pdo-sqlite[=DIR] , où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de sqlite.


PDO_SQLITE DSN

(PECL PDO_SQLITE >= 0.2.0)

PDO_SQLITE DSNConnexion aux bases de données SQLite

Description

Le Data Source Name (DSN) de PDO_SQLITE est composé des éléments suivants :

Préfixe DSN (SQLite 3)

Le préfixe DSN est sqlite:.

  • Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.

  • Pour créer une base de données en mémoire, ajouter :memory: au préfixe DSN.

Préfixe DSN (SQLite 2)

L'extension SQLite dans PHP 5.1 fournit un pilote PDO qui supporte l'accès et la création de bases de données pour SQLite 2. Ceci vous permet d'accéder aux bases de données que vous avez créées avec l'extension SQLite dans une version antérieure de PHP.

Note:

Le pilote sqlite2 n'est disponible que dans PHP 5.1.x si vous avez activé PDO et ext/sqlite. Il n'est actuellement pas disponible à partir de PECL.

Le préfixe DSN pour se connecter aux bases de données SQLite 2 est sqlite2:.

  • Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.

  • Pour créer une base de données en mémoire, ajouter :memory: au préfixe DSN.

Exemples

Exemple #1 Exemples avec PDO_SQLITE DSN

Les exemples suivant montrent PDO_SQLITE DSN pour se connecter aux bases de données SQLite :

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:



PDO::sqliteCreateAggregate

(PHP 5 >= 5.1.0, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateAggregate Référence une fonction définie par l'utilisateur agrégative pour une utilisation dans les requêtes SQL

Description

bool PDO::sqliteCreateAggregate ( string $function_name , callback $step_func , callback $finalize_func [, int $num_args ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est similaire à PDO::sqliteCreateFunction à l'exception qu'elle référence les fonctions qui peuvent être utilisées pour calculer un résultat agrégé à travers toutes les lignes d'une requête.

La différence entre cette méthode et PDO::sqliteCreateFunction est que deux fonctions sont requises pour gérer les agrégation.

Liste de paramètres

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

step_func

Fonction de rappel appelée pour chaque ligne dans le jeu de résultats. Votre fonction PHP devrait accumuler le résultat et stocker son contexte d'agrégation.

Cette fonction doit être définie comme :

step ( mixed $context , int $rownumber , mixed $value1 [, mixed $value2 [, mixed $.. ]] )

context vaudra NULL pour la première ligne; pour les lignes suivantes, il vaudra la même valeur que celle précédemment retournée par la fonction step; vous devriez l'utiliser pour maintenir l'état d'agrégation.

rownumber contiendra le nombre de lignes.

finalize_func

Fonction de rappel pour agréger les "étapes" de données de chaque ligne. Une fois que toutes les lignes ont été traitées, la fonction sera appelée, prendra les données du contexte d'agrégation et retournera le résultat. La fonction de rappel retournera une type compris par SQLite (c'est-à-dire un type scalaire).

Cette fonction doit être définie comme :

fini ( mixed $context , int $rownumber )

context contiendra la valeur de retour du tout dernier appel à la fonction step.

rownumber contiendra le nombre de lignes sur lesquelles l'agrégation a eu lieu.

La valeur de retour de cette fonction sera utilisée comme valeur de retour pour l'agrégation.

num_args

Conseil à l'analyseur SQLite si la fonction de rappel accepte un nombre prédéterminé d'arguments.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'agrégation avec une fonction max_length

<?php
$data 
= array(
   
'un',
   
'deux',
   
'trois',
   
'quatre',
   
'cinq',
   
'six',
   
'sept',
   
'huit',
   
'neuf',
   
'dix',
   );
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE strings(a)");
$insert $db->prepare('INSERT INTO strings VALUES (?)');
foreach (
$data as $str) {
    
$insert->execute(array($str));
}
$insert null;

function 
max_len_step(&$context$rownumber$string
{
    if (
strlen($string) > $context) {
        
$context strlen($string);
    }
    return 
$context;
}

function 
max_len_finalize(&$context$rownumber
{
    return 
$context;
}

$db->sqliteCreateAggregate('max_len''max_len_step''max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

Dans cet exemple, on crée une fonction agrégative qui va calculer la longueur de la plus grande chaîne de caractères dans une des colonnes de la table. Pour chaque ligne, la fonction max_len_step est appelée et le paramètre context est passé. Le paramètre de contexte est comme n'importe quelle autre variable PHP et doit être fixé pour contenir un tableau ou même, un objet. Dans cet exemple, nous l'utilisons pour contenir la taille maximale que nous avons vu jusqu'à présent ; si le paramètre string a une grandeur plus importante que celle courante, on met à jour le contexte pour contenir cette nouvelle taille maximale.

Une fois que toutes les lignes ont été traitées, SQLite appelle la fonction max_len_finalize pour déterminer le résultat agrégatif. Ici, nous pourrions effectuer des calculs basés sur les données trouvées dans context. Dans notre exemple simple, nous avons calculé le résultat comme si la requête progressait, alors que nous avons simplement besoin de retourner la valeur de contexte.

Astuce

Il n'est PAS recommandé d'enregistrer une copie des valeurs dans le contexte pour finalement les traiter. Dans ce cas, SQLite utiliserait beaucoup trop de mémoire pour traiter la requête - imaginez la quantité de mémoire nécessaire si un million de lignes étaient enregistrées en mémoire, sachant que chaque ligne contient une chaîne de caractères (32 octets par chaîne).

Astuce

Vous pouvez utiliser PDO::sqliteCreateFunction et PDO::sqliteCreateAggregate pour surcharger les fonctions natives de SQLite.

Note:

Cette méthode n'est pas disponible avec les pilotes de SQLite2. Utilisez l'ancien style de l'API sqlite à la place.

Voir aussi



PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateFunction Référence une fonction définie par l'utilisateur pour une utilisation dans les requêtes SQL

Description

bool PDO::sqliteCreateFunction ( string $function_name , callback $callback [, int $num_args ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode vous permet de référencer une fonction PHP avec SQLite comme étant un UDF (User Defined Function), de telle façon qu'elle puisse être appelée à l'intérieur de vos requêtes SQL.

Un UDF peut être utilisé dans n'importe quelle requête SQL qui peut appeler des fonctions, par exemple les requêtes SELECT et UPDATE mais aussi dans les marqueurs.

Liste de paramètres

function_name

Le nom de la fonction utilisé dans les requêtes SQL.

callback

Fonction de rappel pour manipuler la fonction SQL définie.

Note: Les fonctions de rappel devraient retourner un type connu par SQLite (c'est-à-dire type scalaire).

num_args

Conseil à l'analyseur SQLite si la fonction de rappel accepte un nombre prédéterminé d'arguments.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::sqliteCreateFunction()

<?php
function md5_et_renverse($string
{
    return 
strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev''md5_et_renverse'1);
$rows $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>

Dans cet exemple, nous avons une fonction qui calcule la somme MD5 de la chaîne de caractères et la renverse ensuite. Lorsque la requête SQL s'exécute, elle retourne la valeur du nom du fichier transformée par notre fonction. Les données retournées dans $rows contiennent le résultat traité.

La beauté de cette technique est que vous n'avez pas à traiter le résultat en utilisant une boucle foreach après que vous ayez récupéré les données.

Astuce

Vous pouvez utiliser PDO::sqliteCreateFunction et PDO::sqliteCreateAggregate pour surcharger les fonctions natives de SQL.

Note:

Cette méthode n'est pas disponible avec les pilotes de SQLite2. Utilisez l'ancien style de l'API sqlite à la place.

Voir aussi


Sommaire



4D (PDO)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

PDO_4D est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données 4D.

4D est une plate-forme intégrée de développement accélérant et simplifiant le développement et le déploiement d'applications métier, exploitée dans plus de 70 pays par une communauté de plusieurs milliers de développeurs et fournisseurs de solutions verticales, et utilisée par des millions d'utilisateurs finaux à travers le monde.

En proposant un ensemble d'outils intégrés tels qu'une base de données ANSI SQL relationnelle et transactionnelle, un environnement de développement graphique, un langage de quatrième génération comptant plus de 1000 commandes de haut niveau, un serveur HTTP, un serveur d'applications etc... 4D facilite la génération et la maintenance d'applications pour un à plusieurs centaines d'utilisateurs simultanés sous Windows, Mac ou depuis tout client Web.

4D est également une plate-forme ouverte qui offre une API complète permettant la création de plug-ins additionnels ainsi que des connecteurs variés lui permettant d'agir comme back-end ou front-end de nombreux environnements (Oracle via OCI, Serveur ou Client SOAP, source de données Flex, toutes bases ODBC, XML over HTTP, etc...).

Outre la possibilité d'interagir avec les applications 4D à travers leurs Web Services, leur base de données est désormais directement accessible avec le pilote PDO_4D.

Plus de détails sur l'environnement 4D sur » http://www.4d.com/.

Il est recommandé de l'utiliser avec les serveurs 4D versions 12 beta et plus récentes, pour Mac OS X et Windows. Les versions plus anciennes peuvent fonctionner avec, mais ne sont pas supportées.


PDO_4D DSN

(No version information available, might only be in SVN)

PDO_4D DSNConnexion aux bases de données 4D

Description

Le Data Source Name (DSN) de PDO_4D est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est 4D:.

host

L'hôte sur lequel le serveur de base de données se situe.

port

Le numéro de port où le serveur de base de données est en train d'écouter. Ce paramètre est optionnel.

user

Le nom d'utilisateur pour se connecter à la base 4D.

password

Le mot de passe associé à l'utilisateur pour se connecter à la base 4D.

dbname

Le nom de la base de données. Ce paramètre est optionnel, et n'est pas utilisé.

charset

Le jeu de caractères utilisé par 4D.

Exemples

Exemple #1 Exemples de DSN pour PDO_4D

L'exemple suivant montre un DSN PDO_4D pour se connecter aux bases de données 4D :

4D:host=localhost;charset=UTF-8
Autres exemples possibles :
4D:host=localhost
4D:



Constantes pour PDO_4D

(No version information available, might only be in SVN)

Constantes pour PDO_4DConstantes pour PDO_4D

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

PDO::FOURD_ATTR_CHARSET (entier)

Modifie le jeu de caractère dans lequel 4D retourne les résultats. (Par défaut, UTF-8). Cette constante supporte les mêmes constantes que celle de l'extension mbstring.

PDO::FOURD_ATTR_PREFERRED_IMAGE_TYPES (entier)

Le type d'image retourné par 4D, lorsqu'on sélectionne une colonne de type image.



Types SQL en PDO_4D et PHP

(No version information available, might only be in SVN)

Types SQL en PDO_4D et PHPTypes SQL en PDO_4D et PHP

Liste des types SQL supportés par 4D
Type SQL 4D Équivalent 4D Note
ALPHA_NUMERIC TEXT  
VARCHAR TEXT  
TEXT TEXT  
TIMESTAMP DATE  
INTERVAL HOUR  
DURATION HOUR  
BOOLEAN BOOLEAN  
BIT BOOLEAN  
BYTE INT32  
INT16 SMALLINT  
SMALLINT SMALLINT  
INT32 INT32  
INT INT32  
INT64 INT64  
NUMERIC INT64  
REAL REAL Non supporté (utilisez la conversion en VARCHAR)
FLOAT FLOAT Non supporté (utilisez la conversion en VARCHAR)
DOUBLE PRECISION FLOAT Non supporté (utiliser la conversion en VARCHAR)
BLOB BLOB Doit passer par une commande préparée, et PDO::PARAM_LOB
BIT VARYING BLOB Doit passer par une commande préparée, et PDO::PARAM_LOB
CLOB TEXT  
PICTURE PICTURE Doit passer par une commande préparée, et PDO::PARAM_LOB



Indications sur le SQL supporté par 4D

(No version information available, might only be in SVN)

Indications sur le SQL supporté par 4DPDO et SQL 4D

Description

4D implémente le standard ANSI 89 strict, et le fait respecter. Il est recommandé de bien lire la documentation 4D sur les commandes disponibles, dans la documentation à l'adresse suivante : » http://doc.4d.com/. La liste des particularités de 4D ci-dessous est une introduction, et ne saurait être exhaustive.

Liste des caractéristiques SQL de 4D
Caractéristique Solution Note
INTEGER Modifier la requête de création de la table. INT est le type officiellement supporté.
CHAR Utilisez VARCHAR à la place. Non supporté en 4D v12.0
UNION Faire plusieurs requêtes séparées. Non supporté en 4D v12.0
SELECT 1 + 1; SELECT 1 + 1 FROM _USER_SCHEMAS; FROM est toujours obligatoire.
REAL, FLOAT Transtyper le FLOAT en FLOAT ou en STRING avec la fonction SQL 4D (CAST, ROUND, TRUNC ou TRUNCATE) Non supporté dans les versions courantes du pilote PDO_4D
Typage fort Réécrivez votre requête SQL, ou bien ajouter du code PHP pour gérer les données dans les types attendus. Il faut utiliser le type exact que 4D attend. On ne peut pas insérer '1' (la chaîne), dans une colonne entière.
PDO::execute($row)() Utiliser les commandes préparées, et spécifier les bons types. L'extension PDO fait passer toutes les données comme des chaînes, et présume que la base assure le transtypage.
SELECT NULL FROM TABLE N'utilisez pas de constantes NULL. Extrayez les des tables. Il n'est pas autorisé d'utiliser la constante NULL dans la liste sélectionnée.
SELECT * FROM TABLE WHERE 1 Utilisez 1 = 1 Une constante ne peut pas être utilisée dans la clause WHERE.
SHOW TABLES Utilisez les tables système. Utilisez les tables _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER_CONS_COLUMNS et _USER_SCHEMAS.
Délimiteur de structures SQL Utilisez la fonction de protection suivante sur les noms d'objets SQL : function sqlEscapeElement(elem) { return '[' . str_replace(']',']]', $elem) . ']'; } Pour la protection des noms d'objets SQL (tables, champs, utilisateurs, groupe, schéma, clé primaire, etc.. ) il faut doubler les crochets fermants et mettre tout l'identifiant entre crochets.



Exemples PDO_4D

(No version information available, might only be in SVN)

Exemples PDO_4DExemples PDO_4D

Ce premier exemple montre comment se connecter, exécuter une requête SQL, lire les informations obtenues et se déconnecter d'une base de données 4D.

Exemple #1 Exemple de présentation de l'extension PDO_4D

<?php
$dsn 
'4D:host=localhost;charset=UTF-8';
$user 'test';
$pass 'test';

// Connexion au serveur 4D
$db = new PDO($dsn$user$pass);

try {
    
$db->exec('CREATE TABLE test(id varCHAR(1) NOT NULL, val VARCHAR(10))');
} catch (
PDOException $e) {
    die(
"Erreur 4D : " $e->getMessage());
}
        
$db->exec("INSERT INTO test VALUES('A', 'A')");
$db->exec("INSERT INTO test VALUES('B', 'A')");
$db->exec("INSERT INTO test VALUES('C', 'C')");

$stmt $db->prepare('SELECT id, val from test');

$stmt->execute();
print_r($stmt->fetchAll());

unset(
$stmt);
unset(
$db);
?>

L'exemple ci-dessus va afficher :

    Array
(
    [0] => Array
        (
            [ID] => A
            [0] => A
            [VAL] => B
            [1] => B
        )

    [1] => Array
        (
            [ID] => C
            [0] => C
            [VAL] => D
            [1] => D
        )

    [2] => Array
        (
            [ID] => E
            [0] => E
            [VAL] => F
            [1] => F
        )

)

Ce deuxième exemple montre comment exécuter une commande en langage 4D, et obtenir le résultat en PDO_4D.

Exemple #2 Exemple d'exécution de langage 4D depuis pdo_4d

Créer une méthode 4D, de nom method. Dans les propriétés de la méthode, assurez-vous que l'option Disponible via SQL est active. Le code de la méthode est disponible ci-dessous.

C_TEXTE($0)
$0:=Version application(*);

Le code PHP pour accéder à cette méthode 4D est le suivant :

<?php
$dsn 
'4D:host=localhost;charset=UTF-8';
$user 'test';
$pass 'test';

// Connexion et sélection de la base
$db = new PDO($dsn$user$pass);

$stmt $db->prepare('SELECT {FN method() AS VARCHAR } FROM _USER_SCHEMAS LIMIT 1');

$stmt->execute();
print_r($stmt->fetchAll());

unset(
$stmt);
unset(
$db);
?>

L'exemple ci-dessus va afficher :

(
    [0] => Array
        (
            [<expression>] => F0011140
            [0] => F0011140
        )

)

Exemple #3 Protection des noms de tables spéciaux

Cet exemple montre comment protéger un nom de table ou de colonnes avec les crochets de 4D.

<?php
$dsn 
'4D:host=localhost;charset=UTF-8';
$user 'test';
$pass 'test';
 
// Connexion au serveur 4D
$db = new PDO($dsn$user$pass);

$objets = array('[',']','[]','][','[[',']]','[[[',']]]','TBL ]]32[23');

foreach(
$objets as $id => $objet) {
    
$objet str_replace(']',']]'$objet);
    print 
"$objet\n";
    
    
$db->exec('CREATE TABLE IF NOT EXISTS ['.$objet.'](['.$objet.'] FLOAT)');

    
$req "INSERT INTO [$objet] ([$objet]) VALUES ($id);";
    
$db->query($req);

    
$q $db->prepare("SELECT [$objet] FROM [$objet]");
    
$q->execute();
    
$x[] = $q->fetch(PDO::FETCH_NUM);

    
$db->exec('DROP TABLE ['.$objet.'];');
}

?>

L'exemple ci-dessus va afficher :

[
]]
[]]
]][
[[
]]]]
[[[
]]]]]]
TBL ]]]]32[23


Sommaire






Extensions spécifiques des fabricants de bases de données


CUBRID


Introduction

Ces fonctions vous autorisent à accéder aux serveurs de base de données CUBRID. Plus d'informations sur CUBRID peuvent être trouvées sur le site de » CUBRID.

La documentation sur CUBRID peut être trouvée » ici.



Installation/Configuration

Sommaire


Pré-requis

Afin d'avoir accès à ces fonctions, vous devez installer CUBRID, et compiler la bibliothèque PHP CUBRID avec le support CUBRID.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/cubrid.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Pour plus d'informations sur l'installation manuelle sous Linux et Windows, lisez le fichier build-guide.html inclus dans le paquet.



Configuration à l'exécution

Il n'y a pas actuellement de configuration au moment de l'exécution.



Types de ressources

Il y a 3 types de ressources utilisés dans CUBRID. La première est l'identifiant du lien pour une connexion à la base de données, la seconde est une ressource qui contient le résultat d'une requête, et la troisième, une ressource qui contient les résultats d'une requête pour les types de données BLOB/CLOB.

Identifiant de connexion

Un identifiant de connexion retourné par la fonction cubrid_connect() et par la fonction cubrid_connect_with_url().

Identifiant de requête

Un identifiant de requête retourné par la fonction cubrid_prepare() et par la fonction cubrid_execute().

Identifiant LOB

Un identifiant LOB retourné par la fonction cubrid_lob_get().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes peuvent être utilisées lors de l'exécution de requête SQL. Elles peuvent être passées aux fonctions cubrid_prepare() et cubrid_execute().

Drapeaux d'exécution SQL CUBRID
Constante Description
CUBRID_INCLUDE_OID Détermine si l'on doit récupérer l'OID lors de l'exécution de la requête.
CUBRID_ASYNC Exécute la requête en mode asynchrone.

Les constantes suivantes peuvent être utilisées lors de la récupération des résultats afin d'en spécifier le comportement. Elles peuvent être passées aux fonctions cubrid_fetch() et cubrid_fetch_array().

Drapeaux de récupération CUBRID
Constante Description
CUBRID_NUM Récupère le résultat de la requête sous la forme d'un tableau numérique (dont les indexes commencent à 0).
CUBRID_ASSOC Récupère le résultat de la requête sous la forme d'un tableau associatif.
CUBRID_BOTH Récupère le résultat de la requête à la fois sous la forme d'un tableau numérique et sous la forme d'un tableau associatif (valeur par défaut).
CUBRID_OBJECT Récupère le résultat de la requête sous la forme d'un objet.

Les constantes suivantes peuvent être utilisées lors du positionnement du curseur dans les résultats de la requête. Elles peuvent être passées à ou retournées par la fonction cubrid_move_cursor().

Drapeaux sur le positionnement du curseur CUBRID
Constante Description
CUBRID_CURSOR_FIRST Déplace le curseur courant à la première position du résultat.
CUBRID_CURSOR_CURRENT Déplace le curseur courant à une valeur par défaut si l'origine n'est pas spécifiée.
CUBRID_CURSOR_LAST Déplace le curseur courant à la dernière position du résultat.
CUBRID_CURSOR_SUCCESS La valeur retournée par la fonction cubrid_move_cursor() en cas de succès.
CUBRID_NO_MORE_DATA La valeur retournée par la fonction cubrid_move_cursor() si une erreur survient.
CUBRID_CURSOR_ERROR La valeur retournée par la fonction cubrid_move_cursor() si une erreur survient.

Les constantes suivantes peuvent être utilisées lors de la récupération des informations du schéma. Elles peuvent être passées à la fonction cubrid_schema().

Drapeaux pour les schémas CUBRID
Constante Description
CUBRID_SCH_CLASS Récupère le nom et le type de la table dans CUBRID.
CUBRID_SCH_VCLASS Récupère le nom et le type de la vue dans CUBRID.
CUBRID_SCH_QUERY_SPEC Récupère la définition de la requête pour une vue.
CUBRID_SCH_ATTRIBUTE Récupère les attributs d'une colonne d'une table.
CUBRID_SCH_CLASS_ATTRIBUTE Récupère les attributs d'une table.
CUBRID_SCH_METHOD Récupère la méthode de l'instance. La méthode de l'instance est la méthode appelée par une instance de classe. Elle est plus souvent utilisée qu'une méthode de classe car la plupart des opérations sont exécutées dans l'instance.
CUBRID_SCH_CLASS_METHOD Récupère la méthode de classe. La méthode de classe est la méthode appelée par un objet de la classe. Elle est habituellement utilisée pour créer une nouvelle instance de la classe ou pour l'initialiser. Elle est également utilisée pour accéder ou mettre à jour les attributs de la classe.
CUBRID_SCH_METHOD_FILE Récupère les informations du ficher définissant la méthode de la table.
CUBRID_SCH_SUPERCLASS Récupère le nom et le type de la table pour laquelle la table héritent ses attributs.
CUBRID_SCH_SUBCLASS Récupère le nom et le type de la table héritant des attributs.
CUBRID_SCH_CONSTRAINT Récupère les contraintes de la table.
CUBRID_SCH_TRIGGER Récupère les triggers de la table.
CUBRID_SCH_CLASS_PRIVILEGE Récupère les informations quant aux privilèges de la tableGet the privilege information of table.
CUBRID_SCH_ATTR_PRIVILEGE Récupère les informations de privilèges d'une colonne.
CUBRID_SCH_DIRECT_SUPER_CLASS Récupère la table super direct de la table.
CUBRID_SCH_PRIMARY_KEY Récupère la clé primaire de la table.
CUBRID_SCH_IMPORTED_KEYS Récupère les clés importées de la table.
CUBRID_SCH_EXPORTED_KEYS Récupère les clés exportées de la table.
CUBRID_SCH_CROSS_REFERENCE Récupère les références des liens de 2 tables.

Les constantes suivantes peuvent être utilisées lors du rapport des erreurs. Elles peuvent être retournées par la fonction cubrid_error_code_facility().

Code de facilité des erreurs CUBRID
Constante Description
CUBRID_FACILITY_DBMS L'erreur est survenue dans la base de données CUBRID.
CUBRID_FACILITY_CAS L'erreur est survenue dans le courtier CUBRID.
CUBRID_FACILITY_CCI L'erreur est survenue dans le cci CUBRID.
CUBRID_FACILITY_CLIENT L'erreur est survenue dans le client PHP CUBRID.



Exemples

Ce qui suit est un simple exemple qui établit une connexion entre PHP et CUBRID. Cette section expose les fonctions les plus basiques et utiles. Le code suivant nécessite une connexion à la base de données CUBRID, ce qui signifie que le serveur CUBRID ainsi que le courtier CUBRID doivent être en fonctionnement.

L'exemple ci-dessous utilise la base de données demodb comme exemple. Par défaut, elle est créée durant l'installation. Assurez-vous que c'est bien le cas.

Exemple #1 Exemple de récupération de données

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc-kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        
/**
         * Définit les informations du serveur pour une connexion CUBRID.
         * host_ip est l'adresse IP pointant l'installation du courtier CUBRID (localhost
         * dans cet exemple), ainsi que le numéro de port à utiliser pour le courtier CUBRID.
         * Le numéro du port est celui par défaut fourni lors de l'installation.
         * Pour plus de détails, lisez le "Guide d'administration"
         */
        
$host_ip "localhost";
        
$host_port 33000;
        
$db_name "demodb";
        
/**
         * Connexion au serveur CUBRID. N'effectue pas la connexion immédiatement,
         * mais ne fait que retenir les informations de connexions. La raison
         * pour laquelle la connexion ne s'effectue pas immédiatement est pour
         * gérer les transactions plus efficacement sur des architectures en 3 parties.
         */
        
$cubrid_con = @cubrid_connect($host_ip$host_port$db_name);
 
        if (!
$cubrid_con) {
            echo 
"Erreur de connexion à la base de données";
            exit;
        }
    
?>
    <?php
        $sql 
"select sports, count(players) as players from event group by sports";
        
/**
         * Interroge le serveur CUBRID afin de récupérer les résultats de la requête SQL.
         * Maintenant, nous effectuons réellement la connexion au serveur CUBRID.
         */
        
$result cubrid_execute($cubrid_con$sql);
 
        if (
$result) {
            
/**
             * Récupère les noms des colonnes depuis le jeu de résultats créé par la requête SQL.
             */
            
$columns cubrid_column_names($result);
            
/**
             * Récupère le nombre de colonnes depuis le jeu de résultats créé par la requête SQL.
             */
            
$num_fields cubrid_num_cols($result);
            
/**
             * Liste les noms des colonnes depuis le jeu de résultats directement sur l'écran.
             */
            
echo("<tr>");
 
            while (list(
$key$colname) = each($columns)) {
                echo(
"<td align=center>$colname</td>");
            }
 
            echo(
"</tr>");
 
            
/**
             * Récupère les résultats depuis le jeu de résultats.
             */
            
while ($row cubrid_fetch($result)) {
                echo(
"<tr>");
 
                for (
$i 0$i $num_fields$i++) {
                    echo(
"<td align=center>");
                    echo(
$row[$i]);
                    echo(
"</td>");
                }
 
                echo(
"</tr>");
            }
        }
        
/**
         * Le module PHP dans CUBRID fonctionne en architecture 3 parties.
         * Lors de l'appel à une requête de type SELECT dans une transaction, elle
         * sera exécutée comme faisant partie de la transaction. Aussi, si la
         * transaction est annulé avant l'appel à la requête SELECT, elle sera
         * exécutée avec des performances moindres.
         */
        
cubrid_commit($cubrid_con);
        
cubrid_disconnect($cubrid_con);
    
?>
    </body>
    </html>

Exemple #2 Exemple d'insertion de données

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc- kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        
/**
         * host_ip est l'adresse IP pointant l'installation du courtier CUBRID.
         * host_port est le numéro du port du courtier CUBRID.
         * db_name est le nom de la base de données CUBRID.
         */
        
$host_ip "localhost";
        
$host_port 33000;
        
$db_name "demodb";
        
$cubrid_con = @cubrid_connect($host_ip$host_port$db_name);
 
        if (!
$cubrid_con) {
            echo 
"Erreur lors de la connexion à la base de données";
            exit;
        }
    
?>
    <?php
        $sql 
"insert into olympic (host_year,host_nation,host_city,"
            
"opening_date,closing_date) values (2008, 'China', 'Beijing',"
            
"to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;"
        
$result cubrid_execute($cubrid_con$sql);
        if (
$result) {
            
/**
             * Traitement réussi, nous pouvons commiter.
             */
            
cubrid_commit($cubrid_con);
            echo(
"Insertion avec succès");
        } else {
            
/**
             * Une erreur est survenue, aussi, le message d'erreur est affiché et le rollback est appelé.
             */
            
echo(cubrid_error_msg());
            
cubrid_rollback($cubrid_con);
        }
        
cubrid_disconnect($cubrid_con);
    
?>
    </body>
    </html>


Fonctions CUBRID


cubrid_affected_rows

(PECL CUBRID >= 8.3.0)

cubrid_affected_rowsRécupère le nombre de lignes affectées par la dernière requête SQL

Description

int cubrid_affected_rows ([ resource $req_identifier ] )

La fonction cubrid_affected_rows() est utilisée pour récupérer le nombre de lignes affectées par la dernière requête Cubrid (INSERT, DELETE, UPDATE).

Liste de paramètres

req_identifier

Identifiant de requête. S'il n'est pas spécifié, la dernière requête sera utilisée.

Valeurs de retour

Nombre de lignes affectées par la dernière requête SQL, lorsqu'elle a réussi.

-1, lorsque la dernière requête n'était pas de type INSERT, DELETE ou UPDATE.

FALSE, lorsque l'identifiant de requête n'est pas spécifié et qu'il n'y a aucune requête précédente.

Exemples

Exemple #1 Exemple avec cubrid_affected_rows()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE cubrid_test");
cubrid_execute($conn"CREATE TABLE cubrid_test (t varchar)");

for (
$i 0$i 5$i++) {
    
cubrid_execute($conn"INSERT INTO cubrid_test(t) VALUES('cubrid_test')");
}

cubrid_execute($conn"DELETE FROM cubrid_test");

$affected_num cubrid_affected_rows();
var_dump($affected_num);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

int(5)

Voir aussi



cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bindLie des valeurs à une requête préparée

Description

bool cubrid_bind ( resource $req_identifier , int $bind_index , string $bind_value [, string $bind_value_type ] )

La fonction cubrid_bind() est utilisée pour lier des valeurs dans une variable cubrid_prepare(), de divers types PHP avec une correspondance de types SQL. Si bind_value_type n'est pas fourni, le type chaîne de caractères sera le type par défaut.

Note:

Erreur connue : si le type de la colonne de données est CLOB, le liage échouera. Ce bogue sera résolu ultérieurement.

La liste suivante montre les types des valeurs substituées.

Types de données liées CUBRID
Support Type de liage Type correspondant SQL
Supporté STRING CHAR, VARCHAR
  NCHAR NCHAR, NVARCHAR
  BIT BIT, VARBIT
  NUMERIC or NUMBER SHORT, INT, NUMERIC
  FLOAT FLOAT
  DOUBLE DOUBLE
  TIME TIME
  DATE DATE
  TIMESTAMP TIMESTAMP
  OBJECT OBJECT
  BLOB BLOB
  CLOB CLOB
  NULL NULL
Not supported SET SET
  MULTISET MULTISET
  SEQUENCE SEQUENCE

Liste de paramètres

req_identifier

Identifiant de requête, retourné par la fonction cubrid_prepare().

bind_index

Indexe du liage.

bind_value

Valeur actuelle à lier.

bind_index

Un type de valeur à lier (il est omis par défaut et en interne, le type chaîne de caractères sera utilisé. Cependant, vous devez spécifier le type exact de la valeur comme argument lorsque vous utilisez NCHAR, BIT, ou BLOB/CLOB).

Valeurs de retour

TRUE, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Historique

Version Description
8.3.1 Ajout du support des types BLOB/CLOB.

Exemples

Exemple #1 Exemple avec cubrid_bind()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$result cubrid_execute($conn"SELECT code FROM event WHERE sports='Basketball' and gender='M'");
$row cubrid_fetch_array($resultCUBRID_ASSOC);
$event_code $row["code"];

cubrid_close_request($result);

$game_req cubrid_prepare($conn"SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'");
cubrid_bind($game_req1$event_code"number");
cubrid_execute($game_req);

printf("--- Dream Team (1992 United States men's Olympic basketball team) ---\n");
while (
$athlete_code cubrid_fetch_array($game_reqCUBRID_NUM)) {
    
$athlete_req cubrid_prepare($conn"SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'");
    
cubrid_bind($athlete_req1$athlete_code[0], "number");
    
cubrid_execute($athlete_req);
    
$row cubrid_fetch_assoc($athlete_req);
    
printf("%s\n"$row["name"]);
}

cubrid_close_request($game_req);
cubrid_close_request($athlete_req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

--- Dream Team (1992 United States men's Olympic basketball team) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles

Exemple #2 Exemple avec cubrid_bind() et les types BLOB/CLOB

<?php
$con 
cubrid_connect("localhost"33000"foo");
if (
$con) {
    
$sql "INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)"
    
$req cubrid_prepare($con$sql); 

    
$fp fopen("book.txt""rb");

    
cubrid_bind($req1$fp"blob"); 
    
cubrid_execute($req);  
}
?>

Voir aussi



cubrid_close_prepare

(PECL CUBRID >= 8.3.0)

cubrid_close_prepareFerme le gestionnaire de requête

Description

int cubrid_close_prepare ( resource $req_identifier )

La fonction cubrid_close_prepare() ferme le gestionnaire de requête fourni par l'argument req_identifier et libère la région mémoire associée.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

TRUE, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_close_prepare()

<?php
$con 
cubrid_connect ("dbsvr.cubrid.com"12345"demodb");
if (
$con) {
   echo 
"Connexion réalisée avec succès";
   
$req cubrid_execute $con"select * from members"
                           
CUBRID_INCLUDE_OID CUBRID_ASYNC);
   if (
$req) {
      while ( list (
$id$name) = cubrid_fetch ($req) ){
         echo 
$id;
         echo 
$name;
      } 
      
cubrid_close_prepare($re1);
   }
   
cubrid_disconnect($con);
}
?>

Voir aussi



cubrid_close_request

(PECL CUBRID >= 8.3.0)

cubrid_close_requestFerme le gestionnaire de requête

Description

bool cubrid_close_request ( resource $req_identifier )

La fonction cubrid_close_request() ferme le gestionnaire de requête fourni par l'argument req_identifier et libère la mémoire associée.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

TRUE, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_close_request()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req cubrid_prepare ($conn"SELECT * FROM olympic WHERE host_year=?");

$host_year 2004;
cubrid_bind($req1$host_year"number");
cubrid_execute($req);

printf("%-9s %-11s %-9s %-12s %-12s %-15s %-15s\n",
    
"host_year""host_nation""host_city""opening_date",
    
"closing_date""mascot""slogan");

while (
$row cubrid_fetch_assoc($req)) {
    
printf("%-9s %-11s %-9s %-12s %-12s %-15s %-15s\n",
        
$row["host_year"], $row["host_nation"], $row["host_city"],
        
$row["opening_date"], $row["closing_date"], $row["mascot"], $row["slogan"]);
}

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

host_year host_nation host_city opening_date closing_date mascot          slogan         
2004      Greece      Athens    2004-8-13    2004-8-29    Athena  Phevos  Welcome Home   

Voir aussi



cubrid_col_get

(PECL CUBRID >= 8.3.0)

cubrid_col_getRécupère le contenu des éléments d'un type de collection en utilisant l'OID

Description

array cubrid_col_get ( resource $conn_identifier , string $oid , string $attr_name )

La fonction cubrid_col_get() est utilisé pour récupérer le contenu des attributs des éléments d'un type de collection (set, multiset, sequence), sous la forme d'un tableau.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser pour la lecture.

attr_name

Nom de l'attribut que vous voulez lire depuis l'instance.

Valeurs de retour

Un tableau (numérique, commençant à 0) contenant les éléments voulus lorsque l'opération a été réalisée avec succès.

FALSE (afin de distinguer les erreurs et le fait que les attributs ont une collection vide ou nul ; en cas d'erreur, un message d'alerte sera affiché ; dans ce cas, vous pouvez récupérer l'erreur en utilisant la fonction cubrid_error_code()), lorsque l'opération a échouée.

Exemples

Exemple #1 Exemple avec cubrid_col_get()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

$size cubrid_col_size($conn$oid"b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


cubrid_col_size

(PECL CUBRID >= 8.3.0)

cubrid_col_sizeRécupère le nombre d'éléments dans un type de colonne d'une collection en utilisant l'OID

Description

int cubrid_col_size ( resource $conn_identifier , string $oid , string $attr_name )

La fonction cubrid_col_size() est utilisée pour récupérer le nombre d'éléments dans un attribut de type de collection (set, multiset, sequence).

Liste de paramètres

conn_identifier

Un identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut à utiliser.

Valeurs de retour

Nombre d'éléments, lorsque l'opération est un succès.

FALSE, lorsque l'opération a échoué.

Historique

Version Description
8.3.1 Modification de la valeur retournée : lorsque l'opération échoue, la fonction retourne maintenant FALSE au lieu de -1.

Exemples

Exemple #1 Exemple avec cubrid_col_size()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

$size cubrid_col_size($conn$oid"b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


cubrid_column_names

(PECL CUBRID >= 8.3.0)

cubrid_column_namesRécupère les noms de colonnes du résultat

Description

array cubrid_column_names ( resource $req_identifier )

La fonction cubrid_column_names() est utilisée pour récupérer les noms de colonnes du résultat de la requête en utilisant le paramètre req_identifier.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

Un tableau de chaînes de caractères contenant les noms des colonnes lorsque l'opération est un succès.

FALSE, lorsque l'opération échoue.

Exemples

Exemple #1 Exemple avec cubrid_column_names()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names cubrid_column_names($result);
$column_types cubrid_column_types($result);

printf("%-30s %-30s %-15s\n""Column Names""Column Types""Column Maxlen");
for(
$i 0$size count($column_names); $i $size$i++) {
    
$column_len cubrid_field_len($result$i);
    
printf("%-30s %-30s %-15s\n"$column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Column Names                   Column Types                   Column Maxlen  
host_year                      integer                        11             
event_code                     integer                        11             
athlete_code                   integer                        11             
stadium_code                   integer                        11             
nation_code                    char(3)                        3              
medal                          char(1)                        1              
game_date                      date                           10             

Voir aussi



cubrid_column_types

(PECL CUBRID >= 8.3.0)

cubrid_column_typesRécupère les types de colonnes du résultat

Description

array cubrid_column_types ( resource $req_identifier )

La fonction cubrid_column_types() récupère les types de colonnes du résultat de la requête en utilisant le paramètre req_identifier.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

Un tableau de chaînes de caractères contenant les types de colonnes, lorsque l'opération est un succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_column_types()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names cubrid_column_names($result);
$column_types cubrid_column_types($result);

printf("%-30s %-30s %-15s\n""Column Names""Column Types""Column Maxlen");
for(
$i 0$size count($column_names); $i $size$i++) {
    
$column_len cubrid_field_len($result$i);
    
printf("%-30s %-30s %-15s\n"$column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Column Names                   Column Types                   Column Maxlen  
host_year                      integer                        11             
event_code                     integer                        11             
athlete_code                   integer                        11             
stadium_code                   integer                        11             
nation_code                    char(3)                        3              
medal                          char(1)                        1              
game_date                      date                           10             

Voir aussi



cubrid_commit

(PECL CUBRID >= 8.3.0)

cubrid_commitCommit une transaction

Description

bool cubrid_commit ( resource $conn_identifier )

La fonction cubrid_commit() est utilisée pour valider une transaction pointée par le paramètre conn_identifier. La connexion au serveur sera fermée après l'appel à la fonction cubrid_commit() ; le gestionnaire de connexion resta cependant valide.

En CUBRID PHP, le mode auto-commit est désactivé par défaut pour la gestion des transactions, et il ne peut pas être activé dans la version courante de CUBRID PHP. Il le pourra dans la prochaine version. Un mode auto-commit peut être appliqué uniquement pour les requêtes SELECT en définissant les paramètres du courtier.

Liste de paramètres

conn_identifier

Identifiant de connexion.

Valeurs de retour

TRUE, lorsque l'opération est un succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_commit()

<?php
$conn 
cubrid_connect("127.0.0.1"33000"demodb");

@
cubrid_execute($conn"DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

if (!
cubrid_execute($conn$sql)) {
    
printf("Error facility: %d\nError code: %d\nError msg: %s\n"cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    
cubrid_disconnect($conn);
    exit;
}

$req cubrid_prepare($conn"INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01""P02""P03""P04");
$name_list = array("Abatis Publishers""Core Dump Books""Schadenfreude Press""Tenterhooks Press");
$city_list = array("New York""San Francisco""Hamburg""Berkeley");
$state_list = array("NY""CA"NULL"CA");
$country_list = array("USA""USA""Germany""USA");

for (
$i 0$size count($id_list); $i $size$i++) {
    
cubrid_bind($req1$id_list[$i]);
    
cubrid_bind($req2$name_list[$i]);
    
cubrid_bind($req3$city_list[$i]);
    
cubrid_bind($req4$state_list[$i]);
    
cubrid_bind($req5$country_list[$i]);

    if (!(
$ret cubrid_execute($req))) {
        break;
    }
}

if (!
$ret) {
    
cubrid_rollback($conn);
} else {
    
cubrid_commit($conn);

    
$req cubrid_execute($conn"SELECT * FROM publishers");
    while (
$result cubrid_fetch_assoc($req)) {
        
printf("%-3s %-20s %-15s %-3s %-15s\n",
            
$result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

P01 Abatis Publishers    New York        NY  USA            
P02 Core Dump Books      San Francisco   CA  USA            
P03 Schadenfreude Press  Hamburg             Germany        
P04 Tenterhooks Press    Berkeley        CA  USA            

Voir aussi



cubrid_connect_with_url

(PECL CUBRID >= 8.3.0)

cubrid_connect_with_urlÉtablit l'environnement pour une connexion au serveur CUBRID

Description

resource cubrid_connect_with_url ( string $conn_url [, string $userid [, string $passwd ]] )

La fonction cubrid_connect_with_url() est utilisée pour préparer l'environnement pour la connexion au serveur en utilisant les informations de connexion passées avec des arguments dans l'URL. Si la fonctionnalité HA est active pour CUBRID, vous devez spécifier les informations de connexion du serveur de secours, qui sera utilisé comme backup lorsqu'une erreur survient. Si le nom d'utilisateur et le mot de passe ne sont pas fournis, alors la connexion "PUBLIC" sera établie par défaut.

<url> ::= cci:CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>] <properties> ::= <property> [&<propertygt;] <alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>] <host> := HOSTNAME | IP_ADDR <time> := SECOND

  • host : Un nom d'hôte ou une adresse IP vers la base de données principale
  • db_name : Un nom de base de données
  • db_user : Un nom d'utilisateur pour la base de données
  • db_password : Le mot de passe associé à l'utilisateur
  • alhosts: spécifie le courtier d'information pour le serveur de secours, qui sera utilisé comme backup lorsqu'il devient impossible de se connecter au serveur courant. Vous pouvez spécifier plusieurs courtiers comme backup et la connexion aux courtiers se fera dans l'ordre de alhosts
  • rctime : un intervalle pendant lequel il sera tenter de se connecter au courtier active lorsqu'une erreur survient. Après qu'une erreur ne soit survenue, le système se connecter au courant spécifié par althosts, met fin à la transaction, et tente une connexion au courtier actif de la base de données principale à chaque intervalle rctime. La valeur par défaut est 600 secondes.

Liste de paramètres

conn_url

Une chaîne de caractères contenant les informations de connexion au serveur.

userid

Le nom d'utilisateur de la base de données.

passwd

Le mot de passe de l'utilisateur.

Valeurs de retour

Identifiant de connexion, en cas de succès.

FALSE, lorsqu'une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_connect_with_url()

<?php
$conn_url 
"cci:CUBRID:127.0.0.1:33088:demodb:dba:123456:"
$con cubrid_connect_with_url ($conn_url);

if (
$con) {
   echo 
"Connexion avec succès.";
   
$req =cubrid_execute($con"insert into person values(1,’James’)");

   if (
$req) {
      
cubrid_close_request ($req);
      
cubrid_commit ($con);
   } else {
      
cubrid_rollback ($con);
   }
   
cubrid_disconnect ($con);
}
?>

Exemple #2 Exemple avec cubrid_connect_with_url()

<?php
$conn_url 
"cci:CUBRID:127.0.0.1:33088:demodb:dba:123456:?althost=10.34.63.132:33088&rctime=100"
$con cubrid_connect_with_url ($conn_url);

if (
$con) {
   echo 
"Connexion avec succès.";
   
$req =cubrid_execute($con"insert into person values(1,’James’)");

   if (
$req) {
      
cubrid_close_request ($req);
      
cubrid_commit ($con);
   } else {
      
cubrid_rollback ($con);
   }
   
cubrid_disconnect ($con);
}
?>

Voir aussi



cubrid_connect

(PECL CUBRID >= 8.3.0)

cubrid_connectOuvre une connexion au serveur CUBRID

Description

resource cubrid_connect ( string $host , int $port , string $dbname [, string $userid [, string $passwd ]] )

La fonction cubrid_connect() est utilisée pour établir l'environnement pour une connexion au serveur en utilisant l'adresse du serveur, le numéro du port, le nom de la base de données, le nom d'utilisateur et son mot de passe. Si le nom d'utilisateur et le mot de passe ne sont pas fournis, alors une connexion "PUBLIC" sera effectuée par défaut.

Liste de paramètres

host

Nom d'hôte ou adresse IP du serveur CUBRID CAS.

port

Numéro du port du serveur CUBRID CAS (BROKER_PORT est configuré danns le fichier $CUBRID/conf/cubrid_broker.conf).

dbname

Nom de la base de données.

userid

Nom d'utilisateur pour la base de données.

passwd

Mot de passe pour l'utilisateur.

Valeurs de retour

Un identifiant de connexion, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_connect()

<?php
printf
("%-30s %s\n""CUBRID PHP Version:"cubrid_version());

printf("\n");

$conn cubrid_connect("localhost"33000"demodb");

if (!
$conn) {
    die(
'Connect Error ('cubrid_error_code() .')' cubrid_error_msg());
}

$db_params cubrid_get_db_parameter($conn);

while (list(
$param_name$param_value) = each($db_params)) {
    
printf("%-30s %s\n"$param_name$param_value);
}

printf("\n");

$server_info cubrid_get_server_info($conn);
$client_info cubrid_get_client_info();

printf("%-30s %s\n""Server Info:"$server_info);
printf("%-30s %s\n""Client Info:"$client_info);

printf("\n");

$charset cubrid_get_charset($conn);

printf("%-30s %s\n""CUBRID Charset:"$charset);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            8.3.1.0005

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              0

Server Info:                   8.3.1.0173
Client Info:                   8.3.1

CUBRID Charset:                iso8859-1

Voir aussi



cubrid_current_oid

(PECL CUBRID >= 8.3.0)

cubrid_current_oidRécupère l'OID de la localisation du curseur courant

Description

string cubrid_current_oid ( resource $req_identifier )

La fonction cubrid_current_oid() est utilisée pour récupérer l'OID de la localisation du curseur courant. Pour utiliser la fonction cubrid_current_oid(), la requête exécutée doit être une requête de mise à jour, et l'option CUBRID_INCLUDE_OID doit être incluse lors de l'exécution de la requête.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

OID de la localisation du curseur courant, lorsque l'opération est un succès.

FALSE, lorsque l'opération échoue.

Exemples

Exemple #1 Exemple avec cubrid_current_oid()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM code"CUBRID_INCLUDE_OID);
$oid cubrid_current_oid($req);
$res cubrid_get($conn$oid);

print_r($res);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Array
(
    [s_name] => X
    [f_name] => Mixed
)

Voir aussi



cubrid_disconnect

(PECL CUBRID >= 8.3.0)

cubrid_disconnectFerme la connexion à la base de données

Description

bool cubrid_disconnect ( resource $conn_identifier )

La fonction cubrid_disconnect() ferme le gestionnaire de connexion et se déconnecte du serveur. S'il existe des gestionnaires de requêtes non fermés, à ce moment là, ils le seront.

Liste de paramètres

conn_identifier

Identifiant de connexion.

Valeurs de retour

TRUE, en cas de succès.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_disconnect()

<?php
printf
("%-30s %s\n""CUBRID PHP Version:"cubrid_version());

printf("\n");

$conn cubrid_connect("localhost"33000"demodb");

if (!
$conn) {
    die(
'Connect Error ('cubrid_error_code() .')' cubrid_error_msg());
}

$db_params cubrid_get_db_parameter($conn);

while (list(
$param_name$param_value) = each($db_params)) {
    
printf("%-30s %s\n"$param_name$param_value);
}

printf("\n");

$server_info cubrid_get_server_info($conn);
$client_info cubrid_get_client_info();

printf("%-30s %s\n""Server Info:"$server_info);
printf("%-30s %s\n""Client Info:"$client_info);

printf("\n");

$charset cubrid_get_charset($conn);

printf("%-30s %s\n""CUBRID Charset:"$charset);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            8.3.1.0005

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              0

Server Info:                   8.3.1.0173
Client Info:                   8.3.1

CUBRID Charset:                iso8859-1

Voir aussi



cubrid_drop

(PECL CUBRID >= 8.3.0)

cubrid_dropSupprime une instance en utilisant son OID

Description

bool cubrid_drop ( resource $conn_identifier , string $oid )

La cubrid_drop() est utilisée pour supprimer une instance de la base de données en utilisant le paramètre oid.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance que vous voulez supprimer.

Valeurs de retour

TRUE, en cas de succès.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_drop()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

printf("--- Before Drop: ---\n");
$attr cubrid_get($conn$oid);
var_dump($attr);

if (
cubrid_drop($conn$oid)) {
    
cubrid_commit($conn);
} else {
    
cubrid_rollback($conn);
}

cubrid_close_request($req);

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

printf("\n--- After Drop: ---\n");
$attr cubrid_get($conn$oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

--- Before Drop: ---
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

--- After Drop: ---
array(4) {
  ["a"]=>
  string(1) "2"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "4"
    [1]=>
    string(1) "5"
    [2]=>
    string(1) "7"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "44"
    [1]=>
    string(2) "55"
    [2]=>
    string(2) "66"
    [3]=>
    string(3) "666"
  }
  ["d"]=>
  string(10) "b         "
}

Voir aussi



cubrid_error_code_facility

(PECL CUBRID >= 8.3.0)

cubrid_error_code_facilityRécupère le niveau du code erreur

Description

int cubrid_error_code_facility ( void )

La fonction cubrid_error_code_facility() est utilisée pour récupérer le niveau du code erreur (niveau dans lequel l'erreur est survenue) depuis le code erreur d'une erreur survenue lors de l'exécution de l'API. Habituellement, vous pouvez récupérer le code erreur lorsque l'API retourne FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le niveau depuis le code erreur survenue : CUBRID_FACILITY_DBMS, CUBRID_FACILITY_CAS, CUBRID_FACILITY_CCI, CUBRID_FACILITY_CLIENT

Exemples

Exemple #1 Exemple avec cubrid_error_code_facility()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req = @cubrid_execute($conn"SELECT * FROM unknown");
if (!
$req) {
    
printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        
cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    
cubrid_disconnect($conn);
    exit;
}
?>

L'exemple ci-dessus va afficher :

Error facility: 1
Error code: -493
Error msg: Syntax: syntax error, unexpected UNKNOWN

Voir aussi



cubrid_error_code

(PECL CUBRID >= 8.3.0)

cubrid_error_codeRécupère le code erreur de la dernière erreur survenue

Description

int cubrid_error_code ( void )

La fonction cubrid_error_code() est utilisée pour récupérer le code erreur survenue lors de l'exécution de l'API. Habituellement, elle récupère le code erreur lorsque l'API retourne FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code erreur de la dernière erreur survenue, ou 0 (zéro) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec cubrid_error_code()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req cubrid_prepare($conn "SELECT * FROM code WHERE s_name=?");

$req = @cubrid_execute($req);
if (!
$req) {
    
printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        
cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    
cubrid_disconnect($conn);
    exit;
}
?>

L'exemple ci-dessus va afficher :

Error facility: 4
Error code: -2015
Error msg: Some parameter not binded

Voir aussi



cubrid_error_msg

(PECL CUBRID >= 8.3.0)

cubrid_error_msgRécupère le message d'erreur de la dernière erreur survenue

Description

string cubrid_error_msg ( void )

La fonction cubrid_error_msg() est utilisée pour récupérer le message d'erreur survenue lors de l'utilisation de l'API CUBRID. Habituellement, elle récupère le message d'erreur lorsque l'API retourne FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le message d'erreur survenue.

Exemples

Exemple #1 Exemple avec cubrid_error_msg()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

if (!@
cubrid_schema($conn100000)) {
    
printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        
cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    
cubrid_disconnect($conn);
    exit;
}
?>

L'exemple ci-dessus va afficher :

Error facility: 2
Error code: -1015
Error msg: Invalid T_CCI_SCH_TYPE value

Voir aussi



cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_executeExécute une requête SQL préparée

Description

resource cubrid_execute ( resource $conn_identifier , string $SQL [, int $option ] )
bool cubrid_execute ( resource $request_identifier [, int $option ] )

La fonction cubrid_execute() est utilisée pour exécuter une requête SQL. Elle exécute la requête en utilisant le paramètre conn_identifier et SQL, puis, retourne l'identifiant de requête créé. Elle est utilisée pour une exécution simple de requête, où le liage de paramètre n'est pas nécessaire. De plus, la fonction cubrid_execute() est utilisée pour exécuter la requête préparée en utilisant cubrid_prepare() et cubrid_bind(). À ce point, vous devez spécifier les arguments request_identifier et option.

Vous pouvez utiliser l'argument option pour indiquer si vous souhaitez recevoir l'OID de la ligne après l'exécution, et, si vous souhaitez exécuter la requête en mode asynchrone, ceci en définissant CUBRID_INCLUDE_OID et CUBRID_ASYNC à l'aide de l'opérateur OR. Si les 2 variables ne sont pas explicitement fournies, elles ne seront pas sélectionnées par défaut.

Si le premier paramètre est request_identifier pour exécuter la fonction cubrid_prepare(), vous pouvez spécifier une option, CUBRID_ASYNC uniquement.

Liste de paramètres

conn_identifier

Identifiant de connexion.

SQL

SQL à exécuter.

option

Option d'exécution de la requête : CUBRID_INCLUDE_OID, CUBRID_ASYNC.

request_identifier

Identifiant de requête pour la fonction cubrid_prepare().

Valeurs de retour

Un identifiant de requête, lorsque l'opération a été réalisée avec succès et que le premier paramètre est l'identifiant de connexion ; TRUE, lorsque l'opération a été réalisée avec succès et que le premier paramètre est l'identifiant de requête.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_execute()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$result cubrid_execute($conn"SELECT code FROM event WHERE name='100m Butterfly' and gender='M'"CUBRID_ASYNC);
$row cubrid_fetch_array($resultCUBRID_ASSOC);
$event_code $row["code"];

cubrid_close_request($result);

$history_req cubrid_prepare($conn"SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req1$event_code"number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n""athlete""host_year""score""unit");
while (
$row cubrid_fetch_array($history_reqCUBRID_ASSOC)) {
    
printf("%-20s %-9s %-10s %-5s\n",
        
$row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

athlete              host_year score      unit
Phelps Michael       2004      51.25      time

Voir aussi



cubrid_fetch

(PECL CUBRID >= 8.3.0)

cubrid_fetchRécupère la prochaine ligne du jeu de résultats

Description

mixed cubrid_fetch ( resource $result [, int $type = CUBRID_BOTH ] )

La fonction cubrid_fetch() est utilisée pour récupérer une seule ligne depuis le résultat de la requête. Le curseur se déplace automatiquement sur la prochaine ligne une fois la récupération effectuée.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

type

Type du tableau à retourner : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT.

Valeurs de retour

Tableau ou objet de résultat, en cas de succès.

FALSE, si une erreur survient.

Le résultat peut être sous la forme d'un tableau ou d'un objet ; le type de résultat peut être défini grâce au paramètre type. La variable type peut être définie à une des valeurs suivantes :

  • CUBRID_NUM : Tableau numérique (en commençant à l'indice 0)
  • CUBRID_ASSOC : Tableau associatif
  • CUBRID_BOTH : Tableau numérique et associatif (valeur par défaut)
  • CUBRID_OBJECT : Objet dont les noms des attributs correspondent aux noms des colonnes du résultat de la requête

Lorsque l'argument type est omis, le résultat sera retourné en utilisant l'option CUBRID_BOTH par défaut. Lorsque vous voulez recevoir le résultat de la requête sous la forme d'un objet, le nom de la colonne du résultat doit être conforme aux règles de nommage des identifiants en PHP. Par exemple, les noms de colonnes comme "count(*)" ne peuvent être acceptés dans le type objet.

Exemples

Exemple #1 Exemple avec cubrid_fetch()

<?php
$conn 
cubrid_connect("localhost"33088"demodb");
$req cubrid_execute($conn"SELECT * FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n""name""area""seats""address");
while (
$row cubrid_fetch($req)) {
    
printf("%-40s %-10s %-6s %-20s\n",
        
$row["name"], $row["area"], $row["seats"], $row["address"]);
}

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address             
Panathinaiko Stadium                     86300.00   50000  Athens, Greece      
Olympic Stadium                          54700.00   13000  Athens, Greece      
Olympic Indoor Hall                      34100.00   18800  Athens, Greece      
Olympic Hall                             52400.00   21000  Athens, Greece      
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece      
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Voir aussi



cubrid_free_result

(PECL CUBRID >= 8.3.0)

cubrid_free_resultLibère la mémoire occupée par les données de résultat

Description

bool cubrid_free_result ( resource $req_identifier )

Cette fonction libère la mémoire occupées par les données de résultat. Elle retourne TRUE en cas de succès, FALSE sinon. Notez que cette fonction ne libère que le buffer de récupération du client, et que si vous voulez libérer toute la mémoire, vous devez utilisez la fonction cubrid_close_request().

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

TRUE en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_free_result()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM history WHERE host_year=2004 ORDER BY event_code");
$row cubrid_fetch_assoc($req);
var_dump($row);

cubrid_free_result($req);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(5) {
  ["event_code"]=>
  string(5) "20005"
  ["athlete"]=>
  string(12) "Hayes Joanna"
  ["host_year"]=>
  string(4) "2004"
  ["score"]=>
  string(5) "12.37"
  ["unit"]=>
  string(4) "time"
}


cubrid_get_charset

(PECL CUBRID >= 8.3.0)

cubrid_get_charsetRetourne le jeu de caractères utilisé sur la connexion CUBRID courante

Description

string cubrid_get_charset ( resource $conn_identifier )

Cette fonction retourne le jeu de caractères sur la connexion CUBRID courante.

Liste de paramètres

conn_identifier

La connexion CUBRID.

Valeurs de retour

Une chaîne de caractères représentant le jeu de caractères sur la connexion CUBRID en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_charset()

<?php
printf
("%-30s %s\n""CUBRID PHP Version:"cubrid_version());

printf("\n");

$conn cubrid_connect("localhost"33088"demodb");

if (!
$conn) {
    die(
'Connect Error ('cubrid_error_code() .')' cubrid_error_msg());
}

$db_params cubrid_get_db_parameter($conn);

while (list(
$param_name$param_value) = each($db_params)) {
    
printf("%-30s %s\n"$param_name$param_value);
}

printf("\n");

$server_info cubrid_get_server_info($conn);
$client_info cubrid_get_client_info();

printf("%-30s %s\n""Server Info:"$server_info);
printf("%-30s %s\n""Client Info:"$client_info);

printf("\n");

$charset cubrid_get_charset($conn);

printf("%-30s %s\n""CUBRID Charset:"$charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            8.3.1.0005

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              0

Server Info:                   8.3.1.0173
Client Info:                   8.3.1

CUBRID Charset:                iso8859-1


cubrid_get_class_name

(PECL CUBRID >= 8.3.0)

cubrid_get_class_nameRécupère le nom de la classe en utilisant son OID

Description

string cubrid_get_class_name ( resource $conn_identifier , string $oid )

La fonction cubrid_get_class_name() est utilisée pour récupérer le nom de la classe depuis l'oid.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez vérifier l'existence.

Valeurs de retour

Le nom de la classe, en cas de succès.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_class_name()

<?php
$conn 
cubrid_connect("localhost"33088"demodb");

$req cubrid_execute($conn"SELECT * FROM code"CUBRID_INCLUDE_OID);
$oid cubrid_current_oid($req);
$class_name cubrid_get_class_name($conn$oid);

print_r($class_name);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

code

Voir aussi



cubrid_get_client_info

(PECL CUBRID >= 8.3.0)

cubrid_get_client_infoRetourne la version de la bibliothèque cliente

Description

string cubrid_get_client_info ( void )

Cette fonction retourne une chaîne de caractères représentant la vesion de la bibliothèque cliente.

Liste de paramètres

Valeurs de retour

Une chaîne de caractères représentant la version de la bibliothèque cliente en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_client_info()

<?php
printf
("%-30s %s\n""CUBRID PHP Version:"cubrid_version());

printf("\n");

$conn cubrid_connect("localhost"33088"demodb");

if (!
$conn) {
    die(
'Connect Error ('cubrid_error_code() .')' cubrid_error_msg());
}

$db_params cubrid_get_db_parameter($conn);

while (list(
$param_name$param_value) = each($db_params)) {
    
printf("%-30s %s\n"$param_name$param_value);
}

printf("\n");

$server_info cubrid_get_server_info($conn);
$client_info cubrid_get_client_info();

printf("%-30s %s\n""Server Info:"$server_info);
printf("%-30s %s\n""Client Info:"$client_info);

printf("\n");

$charset cubrid_get_charset($conn);

printf("%-30s %s\n""CUBRID Charset:"$charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            8.3.1.0005

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              0

Server Info:                   8.3.1.0173
Client Info:                   8.3.1

CUBRID Charset:                iso8859-1


cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameterRetourne les paramètres de la base de données CUBRID

Description

array cubrid_get_db_parameter ( resource $conn_identifier )

Cette fonction retourne les paramètres de la base de données CUBRID, ou FALSE si une erreur survient. Elle retourne un tableau associatif avec les valeurs des paramètres suivants :

  • PARAM_ISOLATION_LEVEL
  • LOCK_TIMEOUT
  • MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

Paramètres de la base de données
Paramètre Description
PARAM_ISOLATION_LEVEL Dans la version courante de CUBRID PHP, vous pouvez définir le niveau d'isolation de la transaction en utilisant le paramètre isolation_level dans $CUBRID/conf/cubrid.conf ou avec la requête SET TRANSACTION. Dans la prochaine version, le niveau d'isolation pourra être défini en utilisant l'API CUBRID PHP.
LOCK_TIMEOUT CUBRID fournit la fonctionnalité de verrou du délai d'expiration, qui définit le temps d'attente pour le verrou tant que la configuration du verrou de la transaction est autorisée. Le paramètre lock_timeout_in_secs du fichier $CUBRID/conf/cubrid.conf contrôle cette fonctionnalité ou via la requête SET TRANSACTION (en secondes). Dans la prochaine version, ce paramètre pourra être défini en utilisant l'API CUBRID PHP. La valeur par défaut du paramètre lock_timeout_in_secs vaut -1, qui signifie que l'application cliente attendra indéfiniment tant que le verrou de transaction est autorisé.
PARAM_AUTO_COMMIT En CUBRID PHP, le mode auto-commit est désactivé par défaut pour le gestionnaire de transaction, et il ne peut être activé dans la version courante de CUBRID PHP. Il le pourra dans la prochaine version. Le mode auto-commit peut être appliqué qu'uniquement pour les requêtes SELECT en définissant les paramètres du courtier.

La table suivante montre les niveaux d'isolation de 1 à 6 :

Niveaux d'isolation supportés par CUBRID
Nom Description
SERIALIZABLE (6) Dans ce niveau d'isolation, les problèmes de concurrence (i.e. lecture de données modifiées, lecture répétée de données, lecture de données fantôme, etc.) ne peuvent pas survenir.
REPEATABLE READ CLASS avec REPEATABLE READ INSTANCES (5) Une autre transaction T2 ne peut pas mettre à jour le schéma de la table A tant que la transaction T1 lit la table A. La transaction T1 peut rencontrer des données fantômes de l'enregistrement R qui a été inséré par la transaction T2 lorsqu'elle récupère à plusieurs reprises un enregistrement spécifique.
REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4) Une autre transaction T2 ne peut pas mettre à jour le schéma de la table A alors qu'une transaction T1 lit la table A. La transaction T1 peut rencontrer des lectures répétées de données qui ont été mises à jour, et valider par une autre transaction T2 lorsqu'elle récupère à plusieurs reprises l'enregistrement R.
REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3) Niveau d'isolation par défaut. Une transaction T2 ne peut pas mettre à jour le schéma de la table A alors qu'une transaction T1 lit la table A. La transaction T1 peut rencontrer des données non mises à jour pour l'enregistrement qui a été mis à jour mais non encore validé par la transaction T2.
READ COMMITTED CLASS with READ COMMITTED INSTANCES (2) La transaction T1 peut rencontrer des lectures répétées de données pour la table qui a été mise à jour et validée par la transaction T2 alors qu'elle lit plusieurs fois la table A. La transaction T1 peut rencontrer des lectures répétées de données pour l'enregistrement qui a été mis à jour et validé par la transaction T2 alors qu'elle récupère à plusieurs reprises l'enregistrement R.
READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1) La transaction T1 peut rencontrer des lectures répétées de données pour la table qui a été mise à jour et validée par la transaction T2 alors qu'elle lit à plusieurs reprises la table A. La transaction T1 peut rencontrer des données non mises à jour pour l'enregistrement qui a été mise à jour mais non validé par la transaction T2.

Liste de paramètres

conn_identifier

La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, le dernier lien ouvert avec la fonction cubrid_connect() sera utilisé.

Valeurs de retour

Un tableau associatif contenant les paramètres de la base de données CUBRID en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_db_parameter()

<?php
printf
("%-30s %s\n""CUBRID PHP Version:"cubrid_version());

printf("\n");

$conn cubrid_connect("localhost"33088"demodb");

if (!
$conn) {
    die(
'Connect Error ('cubrid_error_code() .')' cubrid_error_msg());
}

$db_params cubrid_get_db_parameter($conn);

while (list(
$param_name$param_value) = each($db_params)) {
    
printf("%-30s %s\n"$param_name$param_value);
}

printf("\n");

$server_info cubrid_get_server_info($conn);
$client_info cubrid_get_client_info();

printf("%-30s %s\n""Server Info:"$server_info);
printf("%-30s %s\n""Client Info:"$client_info);

printf("\n");

$charset cubrid_get_charset($conn);

printf("%-30s %s\n""CUBRID Charset:"$charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            8.3.1.0005

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              0

Server Info:                   8.3.1.0173
Client Info:                   8.3.1

CUBRID Charset:                iso8859-1


cubrid_get_server_info

(PECL CUBRID >= 8.3.0)

cubrid_get_server_infoRetourne la version du serveur CUBRID

Description

string cubrid_get_server_info ( resource $conn_identifier )

Cette fonction retourne une chaîne de caractères représentant la version du serveur CUBRID.

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID.

Valeurs de retour

Une chaîne de caractères représentant la version du serveur CUBRID en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_server_info()

<?php
printf
("%-30s %s\n""CUBRID PHP Version:"cubrid_version());

printf("\n");

$conn cubrid_connect("localhost"33088"demodb");

if (!
$conn) {
    die(
'Connect Error ('cubrid_error_code() .')' cubrid_error_msg());
}

$db_params cubrid_get_db_parameter($conn);

while (list(
$param_name$param_value) = each($db_params)) {
    
printf("%-30s %s\n"$param_name$param_value);
}

printf("\n");

$server_info cubrid_get_server_info($conn);
$client_info cubrid_get_client_info();

printf("%-30s %s\n""Server Info:"$server_info);
printf("%-30s %s\n""Client Info:"$client_info);

printf("\n");

$charset cubrid_get_charset($conn);

printf("%-30s %s\n""CUBRID Charset:"$charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            8.3.1.0005

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              0

Server Info:                   8.3.1.0173
Client Info:                   8.3.1

CUBRID Charset:                iso8859-1


cubrid_get

(PECL CUBRID >= 8.3.0)

cubrid_getRécupère une colonne en utilisant son OID

Description

mixed cubrid_get ( resource $conn_identifier , string $oid [, mixed $attr ] )

La fonction cubrid_get() est utilisée pour récupérer l'attribut de l'instance représentée par l'oid fourni. Vous pouvez récupérer un seul attribut en utilisant le type de données "chaîne de caractères" de l'argument attr ou plusieurs attributs en utilisant le type de données "tableau" de l'argument attr.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance depuis laquelle vous voulez lire.

attr

Nom de l'attribut que vous voulez lire.

Valeurs de retour

Le contenu de l'attribut demandé, lorsque l'opération a réussi : lorsque le paramètre attr est défini comme type de données "chaîne de caractères", le résultat est retourné sous la forme d'une chaîne de caractères ; lorsque le paramètre attr est défini comme type de données "tableau" (tableau numérique commençant à 0), le résultat est retourné sous la forme d'un tableau associatif. Lorsque le paramètre attr est omis, alors tous les attributs seront retournés dans un tableau.

FALSE si une erreur survient ou si le résultat vaut NULL (si une erreur survient, pour distinguer d'une chaîne vide, une message d'alerte sera émis. Vous pouvez récupérer l'erreur en utilisant la fonction cubrid_error_code()).

Exemples

Exemple #1 Exemple avec cubrid_get()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_get($conn$oid"b");
var_dump($attr);

$attr cubrid_get($conn$oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Voir aussi



cubrid_insert_id

(PECL CUBRID >= 8.3.0)

cubrid_insert_idRetourne un tableau contenant les identifiants générés depuis les colonnes AUTO_INCREMENT

Description

array cubrid_insert_id ( string $class_name [, resource $conn_identifier ] )

Cette fonction retourne un tableau contenant les identifiants générés depuis les colonnes AUTO_INCREMENT qui ont été mis à jour par une requête précédente de type INSERT. Elle retourne un tableau contenant toutes les colonnes de type AUTO_INCREMENT ainsi que leurs valeurs. Elle retourne 0 si la précédente requête n'a généré aucune nouvelle ligne ou FALSE si une erreur survient.

Liste de paramètres

class_name

Le nom de la classe (table) qui a été utilisé dans la dernière requête INSERT depuis laquelle les valeurs auto-incrémentées sont récupérées.

conn_identifier

L'identifiant de connexion précédemment obtenu depuis un appel à la fonction cubrid_connect().

Valeurs de retour

Un tableau associatif contenant toutes les colonnes AUTO_INCREMENT ainsi que leurs valeurs en cas de succès.

0 si la précédente requête n'a généré aucune nouvelle ligne.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_insert_id()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE cubrid_test");
cubrid_execute($conn"CREATE TABLE cubrid_test (d int AUTO_INCREMENT(1, 2), t varchar)");

for (
$i 0$i 10$i++) {
    
cubrid_execute($conn"INSERT INTO cubrid_test(t) VALUES('cubrid_test')");
}

$id_list cubrid_insert_id("cubrid_test");
var_dump($id_list);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["d"]=>
  int(19)
}


cubrid_is_instance

(PECL CUBRID >= 8.3.0)

cubrid_is_instanceVérifie si une instance existe

Description

int cubrid_is_instance ( resource $conn_identifier , string $oid )

La fonction cubrid_is_instance() est utilisée pour vérifier si l'instance pointée par l'oid fournie existe ou non.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez vérifier l'existence.

Valeurs de retour

1, si l'instance existe.

0, si l'instance n'existe pas.

-1, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_is_instance()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$sql = <<<EOD
SELECT host_year, medal, game_date
FROM game
WHERE athlete_code IN
    (SELECT code FROM athlete WHERE name='Thorpe Ian');
EOD;

$req cubrid_execute($conn$sqlCUBRID_INCLUDE_OID);
$oid cubrid_current_oid($req);

$res cubrid_is_instance ($conn$oid);
if (
$res == 1) {
    echo 
"Instance pointed by $oid exists.\n";
} else if (
$res == 0){
    echo 
"Instance pointed by $oid doesn't exist.\n";
} else {
    echo 
"error\n";
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Instance pointed by @0|0|0 doesn't exist.

Voir aussi



cubrid_lob_close

(PECL CUBRID >= 8.3.1)

cubrid_lob_closeFerme un BLOB/CLOB

Description

bool cubrid_lob_close ( array $lob_identifier_array )

La fonction cubrid_lob_close() est utilisée pour fermer tous les BLOB/CLOB retournés depuis la fonction cubrid_lob_get().

Liste de paramètres

lob_identifier_array

Un tableau d'identifiants LOB retournés par la fonction cubrid_lob_get.

Valeurs de retour

TRUE lorsque le processus est un succès.

FALSE lorsque le processus est un échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_close()

<?php
$lobs 
cubrid_lob_get($con"SELECT doc_content FROM doc WHERE doc_id=5");
cubrid_lob_export($conn$lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Voir aussi



cubrid_lob_export

(PECL CUBRID >= 8.3.1)

cubrid_lob_exportExporte des données BLOB/CLOB vers un fichier

Description

bool cubrid_lob_export ( resource $conn_identifier , resource $lob_identifier , string $path_name )

La fonction cubrid_lob_export() est utilisée pour récupérer les données BLOB/CLOB depuis la base de données CUBRID, et sauvegarde leurs contenus dans un fichier. Pour utiliser cette fonction, vous devez utiliser d'abord la fonction cubrid_lob_get() pour récupérer les informations des BLOB/CLOB depuis CUBRID.

Liste de paramètres

conn_identifier

Identifiant de connexion.

lob_identifier

Identifiant LOB.

path_name

Chemin vers le fichier.

Valeurs de retour

TRUE lorsque le processus est un succès.

FALSE lorsque le processus est un échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_export()

<?php
$lobs 
cubrid_lob_get($con"SELECT doc_content FROM doc WHERE doc_id=5");
cubrid_lob_export($conn$lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Voir aussi



cubrid_lob_get

(PECL CUBRID >= 8.3.1)

cubrid_lob_getRécupère les données BLOB/CLOB

Description

array cubrid_lob_get ( resource $conn_identifier , string $SQL )

La fonction cubrid_lob_get() est utilisée pour récupérer les données d'informations méta BLOB/CLOB depuis la base de données CUBRID (CUBRID récupère les BLOB/CLOB en exécutant une requête SQL), et retourne tous les LOBs sous la forme d'un tableau de ressources. Assurez-vous que le SQL récupère uniquement une seule colonne et que le type de données est bien BLOB ou CLOB.

Gardez à l'esprit que l'utilisation de la fonction cubrid_lob_close() libère les LOBs si vous n'en avez plus besoin.

Liste de paramètres

conn_identifier

Identifiant de connexion.

SQL

SQL à exécuter.

Valeurs de retour

Retourne un tableau de ressources LOB en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_get()

<?php
$lobs 
cubrid_lob_get($con"SELECT doc_content FROM doc WHERE doc_id=5");
cubrid_lob_export($conn$lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Voir aussi



cubrid_lob_send

(PECL CUBRID >= 8.3.1)

cubrid_lob_sendLit les données BLOB/CLOB et les envoye au navigateur

Description

bool cubrid_lob_send ( resource $conn_identifier , resource $lob_identifier )

La fonction cubrid_lob_send() lit des données BLOB/CLOB et les passent au navigateur. Pour utiliser cette fonction, vous devez utiliser d'abord la fonction cubrid_lob_get() pour récupérer les informations des BLOB/CLOB depuis CUBRID.

Liste de paramètres

conn_identifier

Identifiant de connexion.

lob_identifier

Identifiant LOB.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_send()

<?php
$lobs 
cubrid_lob_get($con"SELECT image FROM person WHERE id=1");
Header("Content-type: image/jpeg");
cubrid_lob_send($conn$lobs[0]);
cubrid_lob_close($lobs);
?>

Voir aussi



cubrid_lob_size

(PECL CUBRID >= 8.3.1)

cubrid_lob_sizeRécupère la taille des données BLOB/CLOB

Description

int cubrid_lob_size ( resource $lob_identifier )

La fonction cubrid_lob_size() est utilisée pour récupérer la taille des données BLOB/CLOB.

Note:

La longueur maximale des données BLOB/CLOB correspond à la taille maximale d'un fichier qu'il est possible de créer sur le support de stockage externe. Mais il n'existe pas de type d'entier assez grand en PHP. Si vous avez besoin d'un type d'entier plus grand, utilisez PHP en environnement 64bit.

Liste de paramètres

lob_identifier

Identifiant LOB.

Valeurs de retour

Taille des données LOB en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_size()

<?php
$lobs 
cubrid_lob_get($con"SELECT doc_content FROM doc WHERE doc_id=5");
echo 
"Taille de la documentation :".cubrid_lob_size($lobs[0]);
cubrid_lob_export($conn$lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Voir aussi



cubrid_lock_read

(PECL CUBRID >= 8.3.0)

cubrid_lock_readPlace un verrou de lecture sur l'OID fourni

Description

bool cubrid_lock_read ( resource $conn_identifier , string $oid )

La fonction cubrid_lock_read() est utilisée pour placer un verrou de lecture sur l'instance pointée par l'oid fournie.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez verrouiller la lecture.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lock_read()

<?php
$conn 
cubrid_connect("localhost"33088"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

cubrid_lock_read($conn$oid);

$attr cubrid_get($conn$oid"b");
var_dump($attr);

$attr cubrid_get($conn$oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Voir aussi



cubrid_lock_write

(PECL CUBRID >= 8.3.0)

cubrid_lock_writePlace un verrou d'écriture sur l'OID fourni

Description

bool cubrid_lock_write ( resource $conn_identifier , string $oid )

La fonction cubrid_lock_write() est utilisée pour placer un verrou d'écriture sur l'instance pointée par l'oid fournie.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez placer un verrou d'écriture.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lock_write()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

cubrid_lock_write($conn$oid);

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_put($conn$oid"b", array(248));

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Voir aussi



cubrid_move_cursor

(PECL CUBRID >= 8.3.0)

cubrid_move_cursorDéplace le curseur dans le résultat

Description

int cubrid_move_cursor ( resource $req_identifier , int $offset [, int $origin = CUBRID_CURSOR_CURRENT ] )

La fonction cubrid_move_cursor() est utilisée pour déplacer le curseur courant suivant le paramètre req_identifier de la valeur du paramètre offset et dans la direction définie par le paramètre origin argument. Pour définir l'argument origin, vous pouvez utiliser CUBRID_CURSOR_FIRST pour la première partie du résultat, CUBRID_CURSOR_CURRENT pour la position courant du résultat, ou CUBRID_CURSOR_LAST pour la dernière partie du résultat. Si l'argument origin n'est pas explicitement désigné, alors la fonction utilisera CUBRID_CURSOR_CURRENT comme valeur par défaut.

Si la valeur courant du déplacement du curseur est au delà des limites valides, alors le curseur se déplace à la prochaine position après l'intervalle valide du curseur. Par exemple, si vous le déplacez de 20 unités dans le résultat dont la taille est de 10, alors le curseur se placera sur la 11ème place et retournera CUBRID_NO_MORE_DATA.

Liste de paramètres

req_identifier

Identifiant de requête.

offset

Nombre d'unités que vous voulez utiliser pour le déplacement.

origin

Cible où vous voulez déplacer le curseur Location, soit CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST.

Valeurs de retour

CUBRID_CURSOR_SUCCESS en cas de succès.

CUBRID_NO_MORE_DATA lorsque ce n'est pas une position valide pour le curseur.

CUBRID_CURSOR_ERROR si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_move_cursor()

<?php
$conn 
cubrid_connect("127.0.0.1"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM code");
cubrid_move_cursor($req1CUBRID_CURSOR_LAST);

$result cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$result cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req1CUBRID_CURSOR_CURRENT);
$result cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  string(1) "G"
  [1]=>
  string(4) "Gold"
}
array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}

Voir aussi



cubrid_num_cols

(PECL CUBRID >= 8.3.0)

cubrid_num_colsRécupère le nombre de colonnes du jeu de résultats

Description

int cubrid_num_cols ( resource $req_identifier )

La fonction cubrid_num_cols() est utilisée pour récupérer le nombre de colonnes depuis le résultat de la requête. Elle ne peut être utilisée que lorsque la requête est de type SELECT.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

Nombre de colonnes en cas de succès.

-1, si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_num_cols()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM code");

$row_num cubrid_num_rows($req);
$col_num cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n"$row_num$col_num);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Row Num: 6
Column Num: 2

Voir aussi



cubrid_num_rows

(PECL CUBRID >= 8.3.0)

cubrid_num_rowsRécupère le nombre de lignes d'un jeu de résultats

Description

int cubrid_num_rows ( resource $req_identifier )

La fonction cubrid_num_rows() est utilisée pour récupérer le nombre de lignes depuis le jeu de résultats. Vous ne pouvez l'utiliser que lorsque la requête est de type SELECT. Lorsque vous voulez savoir ce type de valeur pour une requête de type INSERT, UPDATE ou DELETE, vous devez utiliser la fonction cubrid_affected_rows().

Note : La fonction cubrid_num_rows() ne peut être utilisée que sur les requêtes synchrones ; elle retourne 0 sur des requêtes asynchrones.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

Nombre de lignes en cas de succès.

0 lorsque la requête a été effectuée en mode asynchrone.

-1, si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_num_rows()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM code");

$row_num cubrid_num_rows($req);
$col_num cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n"$row_num$col_num);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Row Num: 6
Column Num: 2

Voir aussi



cubrid_prepare

(PECL CUBRID >= 8.3.0)

cubrid_preparePrépare une requête SQL pour son exécution

Description

resource cubrid_prepare ( resource $conn_identifier , string $prepare_stmt [, int $option = 0 ] )

La fonction cubrid_prepare() prépare une requête SQL pour un gestionnaire de connexion fournie. Cette requête SQAL pré-compilée sera incluse dans la fonction cubrid_prepare().

De plus, vous pouvez utiliser cette requête à plusieurs reprises ou pour traiter de gros volumes de données. Une seule requête peut être utilisée et vous pouvez y placer des variables. L'ajout d'une variable se fait lorsque vous voulez lier une valeur dans la clause VALUES ou WHERE d'une requête. Notez qu'il est autorisé de lier une valeur à une variable (?) uniquement en utilisant la fonction cubrid_bind().

Liste de paramètres

conn_identifier

Identifiant de connexion.

prepare_stmt

Requête préparée.

option

OID retourné par l'option CUBRID_INCLUDE_OID.

Valeurs de retour

Identifiant de requête en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_prepare()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$sql = <<<EOD
SELECT g.event_code, e.name
FROM game g
JOIN event e ON g.event_code=e.code
WHERE host_year = ? AND event_code NOT IN (SELECT event_code FROM game WHERE host_year=?) GROUP BY event_code;
EOD;

$req cubrid_prepare($conn$sql);

cubrid_bind($req12004);
cubrid_bind($req22000);
cubrid_execute($req);

$row_num cubrid_num_rows($req);
printf("There are %d event that exits in 2004 olympic but not in 2000. For example:\n\n"$row_num);

printf("%-15s %s\n""Event_code""Event_name");
printf("----------------------------\n");

$row cubrid_fetch_assoc($req);
printf("%-15d %s\n"$row["event_code"], $row["name"]);
$row cubrid_fetch_assoc($req);
printf("%-15d %s\n"$row["event_code"], $row["name"]);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

There are 27 event that exits in 2004 olympic but not in 2000. For example:

Event_code      Event_name
----------------------------
20063           +91kg
20070           64kg

Voir aussi



cubrid_put

(PECL CUBRID >= 8.3.0)

cubrid_putMet à jour une colonne suivant son OID

Description

int cubrid_put ( resource $conn_identifier , string $oid [, string $attr ], mixed $value )

La fonction cubrid_put() est utilisée pour mettre à jour un attribut de l'instance pointée par l'oid fournie.

Vous pouvez mettre à jour un seul attribut en utilisant une chaîne de caractères dans le paramètre attr. Dans ce cas, vous pouvez utiliser un entier, un nombre à virgule flottante, ou une chaîne de caractères comme value. Pour mettre à jour plusieurs attributs, vous devez ignorer le paramètre attr et définir l'argument value en utilisant un tableau associatif.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance que vous voulez mettre à jour.

attr

Nom de l'attribut que vous voulez mettre à jour.

value

Nouvelle valeur que vous voulez assigner à l'attribut.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_put()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_put($conn$oid"b", array(248));

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Voir aussi



cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollbackAnnule une transaction

Description

bool cubrid_rollback ( resource $conn_identifier )

La fonction cubrid_rollback() annule la transaction en cours pointée par le paramètre conn_handle.

La connexion au serveur est fermée après l'appel à la fonction cubrid_rollback(). Cependant, le gestionnaire de connexion reste actif.

Liste de paramètres

conn_identifier

Identifiant de connexion.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exempe avec cubrid_rollback()

<?php
$conn 
cubrid_connect("127.0.0.1"33000"demodb");

@
cubrid_execute($conn"DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

if (!
cubrid_execute($conn$sql)) {
    
printf("Error facility: %d\nError code: %d\nError msg: %s\n"cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    
cubrid_disconnect($conn);
    exit;
}

$req cubrid_prepare($conn"INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01""P02""P03""P04");
$name_list = array("Abatis Publishers""Core Dump Books""Schadenfreude Press""Tenterhooks Press");
$city_list = array("New York""San Francisco""Hamburg""Berkeley");
$state_list = array("NY""CA"NULL"CA");
$country_list = array("USA""USA""Germany""USA");

for (
$i 0$size count($id_list); $i $size$i++) {
    
cubrid_bind($req1$id_list[$i]);
    
cubrid_bind($req2$name_list[$i]);
    
cubrid_bind($req3$city_list[$i]);
    
cubrid_bind($req4$state_list[$i]);
    
cubrid_bind($req5$country_list[$i]);

    if (!(
$ret cubrid_execute($req))) {
        break;
    }
}

if (!
$ret) {
    
cubrid_rollback($conn);
} else {
    
cubrid_commit($conn);

    
$req cubrid_execute($conn"SELECT * FROM publishers");
    while (
$result cubrid_fetch_assoc($req)) {
        
printf("%-3s %-20s %-15s %-3s %-15s\n",
            
$result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

P01 Abatis Publishers    New York        NY  USA            
P02 Core Dump Books      San Francisco   CA  USA            
P03 Schadenfreude Press  Hamburg             Germany        
P04 Tenterhooks Press    Berkeley        CA  USA            

Voir aussi



cubrid_schema

(PECL CUBRID >= 8.3.0)

cubrid_schemaRécupère des informations sur un schéma

Description

array cubrid_schema ( resource $conn_identifier , int $schema_type [, string $class_name [, string $attr_name ]] )

La fonction cubrid_schema() est utilisée pour récupérer des informations d'un schéma depuis la base de données. Vous devez désigner le paramètre class_name, si vous voulez récupérer les informations d'une classe particulière, attr_name si vous voulez récupérer des informations sur un attribut particulier (ne peut être utilisé qu'avec CUBRID_ SCH_ATTR_PRIVILEGE).

Le résultat de la fonction est retourné sous la forme d'un tableau à 2 dimensions (colonne (tableau associatif) * lignes (tableau numérique)). Les tables suivantes montrent les types d'un schéma ainsi que la structure d'une colonne du tableau résultant, suivant le type de schéma demandé.

Composition du résultat pour chaque type
Schéma Numéro de colonne Nom de la colonne Valeur
CUBRID_SCH_CLASS 1 NAME  
  2 TYPE 0:system class 1:vclass 2:class
CUBRID_SCH_VCLASS 1 NAME  
  2 TYPE 1:vclass
CUBRID_SCH_QUERY_SPEC 1 QUERY_SPEC  
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE 1 ATTR_NAME  
  2 DOMAIN  
  3 SCALE  
  4 PRECISION  
  5 INDEXED 1:indexed
  6 NOT NULL 1:not null
  7 SHARED 1:shared
  8 UNIQUE 1:unique
  9 DEFAULT  
  10 ATTR_ORDER base:1
  11 CLASS_NAME  
  12 SOURCE_CLASS  
  13 IS_KEY 1:key
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD 1 NAME  
  2 RET_DOMAIN  
  3 ARG_DOMAIN  
CUBRID_SCH_METHOD_FILE 1 METHOD_FILE  
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS 1 CLASS_NAME  
  2 TYPE 0:system class 1:vclass 2:class
CUBRID_SCH_CONSTRAINT 1 TYPE 0:unique 1:index 2:reverse unique 3:reverse index
  2 NAME  
  3 ATTR_NAME  
  4 NUM_PAGES  
  5 NUM_KEYS  
  6 PRIMARY_KEY 1:primary key
  7 KEY_ORDER base:1
CUBRID_SCH_TRIGGER 1 NAME  
  2 STATUS  
  3 EVENT  
  4 TARGET_CLASS  
  5 TARGET_ATTR  
  6 ACTION_TIME  
  7 ACTION  
  8 PRIORITY  
  9 CONDITION_TIME  
  10 CONDITION  
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE 1 CLASS_NAME / ATTR_NAME  
  2 PRIVILEGE  
  3 GRANTABLE  
CUBRID_SCH_PRIMARY_KEY 1 CLASS_NAME  
  2 ATTR_NAME  
  3 KEY_SEQ base:1
  4 KEY_NAME  
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE 1 PKTABLE_NAME  
  2 PKCOLUMN_NAME  
  3 FKTABLE_NAME base:1
  4 FKCOLUMN_NAME  
  5 KEY_SEQ base:1
  6 UPDATE_ACTION 0:cascade 1:restrict 2:no action 3:set null
  7 DELETE_ACTION 0:cascade 1:restrict 2:no action 3:set null
  8 FK_NAME  
  9 PK_NAME  

Liste de paramètres

conn_identifier

Identifiant de connexion.

schema_type

Données du schéma à récupérer.

class_name

Classe pour laquelle vous souhaitez connaître le schéma.

attr_name

Attribut pour lequel vous souhaitez connaître le schéma.

Valeurs de retour

Un tableau contenant les informations sur le schéma en cas de succès.

FALSE en cas d'échec.

Historique

Version Description
8.3.1 Modification de la valeur retournée : lorsque la fonction échoue, la valeur retournée est maintenant FALSE au lieu de -1.

Exemples

Exemple #1 Exemple avec cubrid_schema()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

printf("\n--- Primary Key ---\n");
$pk cubrid_schema($connCUBRID_SCH_PRIMARY_KEY"game");
var_dump($pk);

printf("\n--- Foreign Keys ---\n");
$fk cubrid_schema($connCUBRID_SCH_IMPORTED_KEYS"game");
var_dump($fk);

printf("\n--- Column Attribute ---\n");
$attr cubrid_schema($connCUBRID_SCH_ATTRIBUTE"stadium""area");
var_dump($attr);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :


--- Primary Key ---
array(3) {
  [0]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "3"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [1]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "2"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [2]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(9) "host_year"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
}

--- Foreign Keys ---
array(2) {
  [0]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(7) "athlete"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(20) "fk_game_athlete_code"
    ["PK_NAME"]=>
    string(15) "pk_athlete_code"
  }
  [1]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(5) "event"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(18) "fk_game_event_code"
    ["PK_NAME"]=>
    string(13) "pk_event_code"
  }
}

--- Column Attribute ---
array(1) {
  [0]=>
  array(13) {
    ["ATTR_NAME"]=>
    string(4) "area"
    ["DOMAIN"]=>
    string(1) "7"
    ["SCALE"]=>
    string(1) "2"
    ["PRECISION"]=>
    string(2) "10"
    ["INDEXED"]=>
    string(1) "0"
    ["NON_NULL"]=>
    string(1) "0"
    ["SHARED"]=>
    string(1) "0"
    ["UNIQUE"]=>
    string(1) "0"
    ["DEFAULT"]=>
    NULL
    ["ATTR_ORDER"]=>
    string(1) "4"
    ["CLASS_NAME"]=>
    string(7) "stadium"
    ["SOURCE_CLASS"]=>
    string(7) "stadium"
    ["IS_KEY"]=>
    string(1) "0"
  }
}


cubrid_seq_drop

(PECL CUBRID >= 8.3.0)

cubrid_seq_dropSupprime un élément d'une séquence

Description

bool cubrid_seq_drop ( resource $conn_identifier , string $oid , string $attr_name , int $index )

La fonction cubrid_seq_drop() est utilisée pour supprimer un élément de la base de données en se basant sur la séquence de types d'attributs fournie.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut depuis lequel l'élément doit être supprimé.

index

Index de l'élément à supprimer (en commençant à 1).

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_seq_drop()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"c");
var_dump($attr);

cubrid_seq_drop($conn$oid"c"4);

$attr cubrid_col_get($conn$oid"c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(3) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
}

Voir aussi



cubrid_seq_insert

(PECL CUBRID >= 8.3.0)

cubrid_seq_insertInsère un élément dans une séquence

Description

bool cubrid_seq_insert ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element )

La fonction cubrid_col_insert() est utilisée pour insérer un élément dans une séquence de types d'attributs.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut à insérer.

index

Position de l'élement pour son insertion (en commençant à 1).

seq_element

Contenu de l'élément à insérer.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_seq_insert()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"c");
var_dump($attr);

cubrid_seq_insert($conn$oid"c"5"44");

$attr cubrid_col_get($conn$oid"c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(5) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
  [4]=>
  string(2) "44"
}

Voir aussi



cubrid_seq_put

(PECL CUBRID >= 8.3.0)

cubrid_seq_putMet à jour la valeur d'un élément d'une séquence

Description

bool cubrid_seq_put ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element )

La fonction cubrid_seq_put() est utilisée pour mettre à jour le contenu d'un élément dans une séquence de types d'attributs.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut à utiliser.

index

Index (en commençant à 1) de l'élément à mettre à jour.

seq_element

Nouveau contenu à placer dans l'élément.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_seq_put()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"c");
var_dump($attr);

cubrid_seq_put($conn$oid"c"1"111");

$attr cubrid_col_get($conn$oid"c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(4) {
  [0]=>
  string(3) "111"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}

Voir aussi



cubrid_set_add

(PECL CUBRID >= 8.3.0)

cubrid_set_addInsère un seul élément pour définir le type d'une colonne

Description

bool cubrid_set_add ( resource $conn_identifier , string $oid , string $attr_name , string $set_element )

La fonction cubrid_set_add() est utilisée pour insérer un seul élément dans un jeu de types d'attributs.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut dans lequel le nouvel élément sera insérer.

set_element

Contenu de l'élément à insérer.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_set_add()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_set_add($conn$oid"b""4");

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(4) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "4"
}

Voir aussi



cubrid_set_drop

(PECL CUBRID >= 8.3.0)

cubrid_set_dropSupprime un élément

Description

bool cubrid_set_drop ( resource $conn_identifier , string $oid , string $attr_name , string $set_element )

La fonction cubrid_set_drop() est utilisée pour supprimer un élément depuis un attribut donné de la base de données.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut depuis lequel l'élément sera supprimé.

set_element

Contenu de l'élément à supprimer.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_set_drop()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

@
cubrid_execute($conn"DROP TABLE foo");
cubrid_execute($conn"CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn"INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req cubrid_execute($conn"SELECT * FROM foo"CUBRID_INCLUDE_OID);

cubrid_move_cursor($req1CUBRID_CURSOR_FIRST);
$oid cubrid_current_oid($req);

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_set_drop($conn$oid"b""1");

$attr cubrid_col_get($conn$oid"b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "3"
}

Voir aussi

  • cubrid_set_add() - Insère un seul élément pour définir le type d'une colonne



cubrid_version

(PECL CUBRID >= 8.3.0)

cubrid_versionRécupère la version du module PHP CUBRID

Description

string cubrid_version ( void )

La fonction cubrid_version() est utilisée pour récupérer la version du module PHP CUBRID.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Information sur la version (i.e. "8.3.1.0001").

Exemples

Exemple #1 Exemple avec cubrid_version()

<?php
printf
("%-30s %s\n""CUBRID PHP Version:"cubrid_version());

printf("\n");

$conn cubrid_connect("localhost"33088"demodb");

if (!
$conn) {
    die(
'Connect Error ('cubrid_error_code() .')' cubrid_error_msg());
}

$db_params cubrid_get_db_parameter($conn);

while (list(
$param_name$param_value) = each($db_params)) {
    
printf("%-30s %s\n"$param_name$param_value);
}

printf("\n");

$server_info cubrid_get_server_info($conn);
$client_info cubrid_get_client_info();

printf("%-30s %s\n""Server Info:"$server_info);
printf("%-30s %s\n""Client Info:"$client_info);

printf("\n");

$charset cubrid_get_charset($conn);

printf("%-30s %s\n""CUBRID Charset:"$charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            8.3.1.0005

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              0

Server Info:                   8.3.1.0173
Client Info:                   8.3.1

CUBRID Charset:                iso8859-1

Voir aussi


Sommaire



Fonctions CUBRID compatibles MySQL


cubrid_client_encoding

(PECL CUBRID >= 8.3.1)

cubrid_client_encodingRetourne le jeu de caractères utilisé sur la connexion CUBRID courante

Description

string cubrid_client_encoding ([ resource $conn_identifier ] )

Cette fonction retourne le jeu de caractères utilisé sur la connexion CUBRID courant.

Liste de paramètres

conn_identifier

La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Une chaîne de caractères qui représente le jeu de caractères sur la connexion CUBRID en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_client_encoding()

<?php
    $con 
cubrid_connect("localhost"33000"demodb");
    if (!
$con)
    {
        die(
'Connexion impossible.');
    }

    
printf("CUBRID current charset: %s\n"cubrid_client_encoding($con));
?>

L'exemple ci-dessus va afficher :

Result:
CUBRID current charset: iso8859-1

Voir aussi



cubrid_close

(PECL CUBRID >= 8.3.1)

cubrid_closeFerme une connexion CUBRID

Description

bool cubrid_close ([ resource $conn_identifier ] )

La fonction cubrid_close() met fin à la transaction courante, ferme le gestionnaire de connexion et déconnecte le serveur. S'il existe des gestionnaires de requêtes non clos à ce moment là, ils seront tous clos.

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

TRUE, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_close()

<?php
$con 
cubrid_connect ("210.211.133.100"12345"demodb");
if (
$con) {
   echo 
"connexion avec succès";
   
$req cubrid_execute $con"insert into person values(1,'James')");
   if (
$req) {
      
cubrid_close_request ($req);
      
cubrid_commit ($con);
   } else {
      
cubrid_rollback ($con);
   }
   
cubrid_close ($con);
}
?>

Voir aussi



cubrid_data_seek

(PECL CUBRID >= 8.3.0)

cubrid_data_seekDéplace le pointeur de lignes interne du résultat CUBRID

Description

int cubrid_data_seek ( resource $req_identifier , int $row_number )

Cette fonction déplace le pointeur de lignes interne du résultat CUBRID (associé avec l'identifiant de résultat spécifié) pour pointer sur un numéro de ligne spécifique. Il y a des fonctions, comme la fonction cubrid_fetch_assoc(), qui utilise la valeur courante stockée de row_number.

Liste de paramètres

req_identifier

Identifiant de résultat.

row_number

Numéro de ligne désirée pour le pointeur.

Valeurs de retour

CUBRID_CURSOR_SUCCESS, en cas de succès.

CUBRID_NO_MORE_DATA, lorsque la ligne désirée n'existe pas.

FALSE en cas d'erreur, ou lorsqu'il n'y a pas de ligne, ou lorsque la position choisie est invalide.

Exemples

Exemple #1 Exemple avec cubrid_data_seek()

<?php
$conn 
cubrid_connect("127.0.0.1"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM code");
cubrid_data_seek($req0);

$result cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req2);
$result cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req4);
$result cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}
array(2) {
  [0]=>
  string(1) "S"
  [1]=>
  string(6) "Silver"
}


cubrid_db_name

(PECL CUBRID >= 8.3.1)

cubrid_db_nameRécupère le nom de la base de données depuis les résultats de cubrid_list_dbs

Description

string cubrid_db_name ( array $result , int $index )

Récupère le nom de la base de données depuis un appel à la fonction cubrid_list_dbs().

Liste de paramètres

result

Le pointeur de résultat depuis un appel à la fonction cubrid_list_dbs().

index

L'index dans le jeu de résultats.

Valeurs de retour

Retourne le nom de la base de données en cas de succès, et FALSE si une erreur survient. Si FALSE est retourné, utilisez la fonction cubrid_error() pour déterminer la nature de l'erreur.

Exemples

Exemple #1 Exemple avec cubrid_db_name()

<?php
error_reporting
(E_ALL);

$conn cubrid_connect('dbhost'33000'demodb''username''password');
$db_list cubrid_list_dbs($conn);

$i 0;
$cnt cubrid_num_rows($db_list);
while (
$i $cnt) {
    echo 
cubrid_db_name($db_list$i) . "\n";
    
$i++;
}
?>

Voir aussi

  • cubrid_list_dbs() - Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes



cubrid_errno

(PECL CUBRID >= 8.3.1)

cubrid_errnoRetourne la valeur numérique d'un message d'erreur

Description

int cubrid_errno ([ resource $conn_identifier ] )

Retourne le numéro de l'erreur issue depuis la dernière fonction CUBRID.

La fonction cubrid_errno() est utilisée pour récupérer le code erreur de la dernière erreur survenue lors d'une exécution de l'API. Habituellement, elle retourne le code erreur lorsque l'API retourne FALSE.

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Retourne le numéro de l'erreur issue lors de la dernière fonction CUBRID, ou 0 (zéro) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec cubrid_errno()

<?php
$req 
cubrid_execute($con"select id, name from person");
if (
$req) {
    while (list (
$id$name) = cubrid_fetch($req))
    echo 
$id$name;
} else {
    echo 
"Code erreur : "cubrid_errno($con);
    echo 
"Message d'erreur : "cubrid_error($con);
}
?>

Voir aussi



cubrid_error

(PECL CUBRID >= 8.3.1)

cubrid_errorRécupère le message de l'erreur

Description

string cubrid_error ([ resource $connection ] )

La fonction cubrid_error() est utilisée pour récupérer le message de l'erreur survenue lors de l'utilisation de l'API CUBRID. Habituellement, elle récupère le message de l'erreur lorsque l'API retourne FALSE.

Liste de paramètres

connection

Valeurs de retour

Le message de l'erreur survenue.

Exemples

Exemple #1 Exemple avec cubrid_error()

<?php
$req 
cubrid_execute($con"select id, name from person");
if (
$req) {
    while (list (
$id$name) = cubrid_fetch($req))
    echo 
$id$name;
} else {
    echo 
"Code de l'erreur : "cubrid_errno($con);
    echo 
"Message de l'erreur : "cubrid_error($con);
}
?>

Voir aussi



cubrid_fetch_array

(PECL CUBRID >=8.3.0)

cubrid_fetch_arrayRécupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux

Description

array cubrid_fetch_array ( resource $result [, int $type = CUBRID_BOTH ] )

La fonction cubrid_fetch_array() est utilisée pour récupérer une seule ligne depuis le résultat de la requête et retourne un tableau. Le curseur se déplace automatiquement sur la prochaine ligne une fois le résultat récupéré.

Liste de paramètres

result

Le paramètre Result provient d'un appel à la fonction cubrid_execute()

type

Type du tableau récupéré : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH.

Valeurs de retour

Retourne un tableau de chaînes de caractères correspondant à la ligne récupérée, lorsque l'opération a réussi.

FALSE, lorsqu'une erreur est survenue.

Le type du tableau retourné dépend dont le type a été défini. En utilisant CUBRID_BOTH (valeur par défaut), vous récupérerez un tableau contenant à la fois des indices associatifs et numériques ; vous pouvez choisir explicitement ce type via l'argument type. La variable type peut être définie à une des valeurs suivantes :

  • CUBRID_NUM : Tableau numérique (en commençant à l'indice 0)
  • CUBRID_ASSOC : Tableau associatif
  • CUBRID_BOTH : Tableau associatif et numérique (valeur par défaut)

Exemples

Exemple #1 Exemple avec cubrid_fetch_array()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req cubrid_execute($conn"SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n""name""area""seats""address");
while (
$row cubrid_fetch_array($reqCUBRID_NUM)) {
    
printf("%-40s %-10s %-6s %-20s\n"$row[0], $row[1], $row[2], $row[3]);
}

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address             
Panathinaiko Stadium                     86300.00   50000  Athens, Greece      
Olympic Stadium                          54700.00   13000  Athens, Greece      
Olympic Indoor Hall                      34100.00   18800  Athens, Greece      
Olympic Hall                             52400.00   21000  Athens, Greece      
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece      
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Voir aussi



cubrid_fetch_assoc

(PECL CUBRID >= 8.3.0)

cubrid_fetch_assocRetourne un tableau associatif correspondant à la ligne récupérée

Description

array cubrid_fetch_assoc ( resource $result )

Cette fonction retourne un tableau associatif correspondant à la ligne récupérée, puis, déplace le pointer de données interne sur la prochaine ligne. La fonction retourne FALSE si il n'y a plus de résultat de disponible.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

Valeurs de retour

Un tableau associatif, en cas de succès.

FALSE lorsqu'il n'y a plus de résultat de disponible ou bien lorsqu'une erreur est survenue.

Exemples

Exemple #1 Exemple avec cubrid_fetch_assoc()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req cubrid_execute($conn"SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n""name""area""seats""address");
while (
$row cubrid_fetch_assoc($req)) {
    
printf("%-40s %-10s %-6s %-20s\n",
        
$row["name"], $row["area"], $row["seats"], $row["address"]);
}

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address             
Panathinaiko Stadium                     86300.00   50000  Athens, Greece      
Olympic Stadium                          54700.00   13000  Athens, Greece      
Olympic Indoor Hall                      34100.00   18800  Athens, Greece      
Olympic Hall                             52400.00   21000  Athens, Greece      
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece      
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece


cubrid_fetch_field

(PECL CUBRID >= 8.3.0)

cubrid_fetch_fieldRécupère des informations sur une colonne et les retourne sous la forme d'un objet

Description

object cubrid_fetch_field ( resource $result [, int $field_offset = 0 ] )

Cette fonction retourne un objet avec certaines propriétés d'une colonne spécifique. Les propriétés de l'objet sont :

name

Nom de la colonne

table

Nom de la tableau contenant cette colonne

def

Valeur par défaut de la colonne

max_length

Longueur maximale de la colonne

not_null

1 si la colonne ne peut être NULL

unique_key

1 si la colonne est une clé unique

multiple_key

1 si la colonne est une clé non-unique

numeric

1 si la colonne est de type numérique

type

Le type de la colonne

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. Si la position du champ n'est pas spécifiée, le prochain champ (qui n'a pas encore été récupéré par cette fonction) est récupéré. Le paramètre field_offset commence à zéro.

Valeurs de retour

Un objet avec certaines propriétés d'une colonne spécifique, en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_field()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req cubrid_execute($conn"SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req1);
$field cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n""name:"$field->name);
printf("%-30s %s\n""table:"$field->table);
printf("%-30s \"%s\"\n""default value:"$field->def);
printf("%-30s %d\n""max lenght:"$field->max_length);
printf("%-30s %d\n""not null:"$field->not_null);
printf("%-30s %d\n""unique key:"$field->unique_key);
printf("%-30s %d\n""multiple key:"$field->multiple_key);
printf("%-30s %d\n""numeric:"$field->numeric);
printf("%-30s %s\n""type:"$field->type);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16681"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-9-30"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max lenght:                    5
not null:                      1
unique key:                    1
multiple key:                  0
numeric:                       1
type:                          integer


cubrid_fetch_lengths

(PECL CUBRID >= 8.3.0)

cubrid_fetch_lengthsRetourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante

Description

array cubrid_fetch_lengths ( resource $result )

Cette fonction retourne un tableau numérique avec les longueurs des valeurs de chaque champ depuis la ligne courante du jeu de résultats, ou retourne FALSE si une erreur survient.

Note:

Si le type de données du champ est BLOB/CLOB, vous devez utiliser la fonction cubrid_lob_size() afin d'en connaître sa longueur.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

Valeurs de retour

Un tableau numérique en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_lengths()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$row cubrid_fetch_row($result);
print_r($row);

$lens cubrid_fetch_lengths($result);
print_r($lens);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 2004
    [1] => 20085
    [2] => 15118
    [3] => 30134
    [4] => AUS
    [5] => G
    [6] => 2004-8-20
)
Array
(
    [0] => 4
    [1] => 5
    [2] => 5
    [3] => 5
    [4] => 3
    [5] => 1
    [6] => 9
)


cubrid_fetch_object

(PECL CUBRID >= 8.3.0)

cubrid_fetch_objectRécupère la prochaine ligne et la retourne sous la forme d'un objet

Description

object cubrid_fetch_object ( resource $result [, string $class_name [, array $params ]] )

Cette fonction retourne un objet avec les noms de la colonne du jeu de résultats comme propriétés. Les valeurs de ces propriétés sont extraites depuis la ligne courante du jeu de résultats.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

class_name

Le nom de la classe à instancier, à définir les propriétés et à retourner. Si non spécifié, un objet stdClass est retourné.

params

Un tableau de paramètres optionnels à passer au constructeur de la classe class_name.

Valeurs de retour

Un objet en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_object()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$res cubrid_execute($conn"SELECT * FROM code");

var_dump(cubrid_fetch_object($res));

class 
demodb_code {
    public 
$s_name null;
    public 
$f_name null;

    public function 
toString() {
        
var_dump($this);
    }
}

var_dump(cubrid_fetch_object($res"demodb_code"));

class 
demodb_code_construct extends demodb_code {
    public function 
__construct($s$f) {
        
$this->s_name $s;
        
$this->f_name $f;
    }   
}

var_dump(cubrid_fetch_object($res'demodb_code_construct', array('s_name''f_name')));
var_dump(cubrid_fetch_object($res));

cubrid_close_request($res);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "X"
  ["f_name"]=>
  string(5) "Mixed"
}
object(demodb_code)#1 (2) {
  ["s_name"]=>
  string(1) "W"
  ["f_name"]=>
  string(5) "Woman"
}
object(demodb_code_construct)#1 (2) {
  ["s_name"]=>
  string(6) "s_name"
  ["f_name"]=>
  string(6) "f_name"
}
object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "B"
  ["f_name"]=>
  string(6) "Bronze"
}


cubrid_fetch_row

(PECL CUBRID >= 8.3.0)

cubrid_fetch_rowRetourne un tableau numérique avec les valeurs de la ligne courante

Description

array cubrid_fetch_row ( resource $result )

Cette fonction retourne un tableau numérique avec les valeurs de la ligne courante depuis le jeu de résultats, en commençant à 0 et déplace le pointeur interne de données.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

Valeurs de retour

Un tableau numérique en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_row()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req cubrid_execute($conn"SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n""name""area""seats""address");
while (
$row cubrid_fetch_row($req)) {
    
printf("%-40s %-10s %-6s %-20s\n"$row[0], $row[1], $row[2], $row[3]);
}

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address             
Panathinaiko Stadium                     86300.00   50000  Athens, Greece      
Olympic Stadium                          54700.00   13000  Athens, Greece      
Olympic Indoor Hall                      34100.00   18800  Athens, Greece      
Olympic Hall                             52400.00   21000  Athens, Greece      
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece      
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece


cubrid_field_flags

(PECL CUBRID >= 8.3.0)

cubrid_field_flagsRetourne une chaîne avec les drapeaux de la position du champ fourni

Description

string cubrid_field_flags ( resource $result , int $field_offset )

Cette fonction retourne une chaîne de caractères avec les drapeaux de la position du champ fourni, séparés par un espace. Vous pouvez utiliser la fonction explode() pour récupérer chaque drapeau. Les drapeaux disponibles sont : not_null, primary_key, unique_key, foreign_key, auto_increment, shared, reverse_index, reverse_unique et timestamp.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Une chaîne de caractères avec les drapeaux, en cas de succès.

FALSE si la valeur de field_offset est invalide.

-1 si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_field_flags()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num cubrid_num_cols($result);

printf("%-30s %s\n""Field Name""Field Flags");
for(
$i 0$i $col_num$i++) {
    
printf("%-30s %s\n"cubrid_field_name($result$i), cubrid_field_flags($result$i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code                    
medal                          
game_date                      


cubrid_field_len

(PECL CUBRID >= 8.3.0)

cubrid_field_lenRécupère la longueur maximale du champ spécifié

Description

int cubrid_field_len ( resource $result , int $field_offset )

Cette fonction retourne la longueur maximale du champ spécifié en cas de succès, ou FALSE si une erreur survient.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

La longueur maximale, en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_field_len()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names cubrid_column_names($result);
$column_types cubrid_column_types($result);

printf("%-30s %-30s %-15s\n""Column Names""Column Types""Column Maxlen");
for(
$i 0$size count($column_names); $i $size$i++) {
    
$column_len cubrid_field_len($result$i);
    
printf("%-30s %-30s %-15s\n"$column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Column Names                   Column Types                   Column Maxlen  
host_year                      integer                        11             
event_code                     integer                        11             
athlete_code                   integer                        11             
stadium_code                   integer                        11             
nation_code                    char(3)                        3              
medal                          char(1)                        1              
game_date                      date                           10             


cubrid_field_name

(PECL CUBRID >= 8.3.0)

cubrid_field_nameRetourne le nom du champ spécifié

Description

string cubrid_field_name ( resource $result , int $field_offset )

Cette fonction retourne le nom du champ spécifié par son index en cas de succès, ou FALSE si une erreur survient.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Nom du champ spécifié par son index en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_field_name()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num cubrid_num_cols($result);

printf("%-30s %s\n""Field Name""Field Flags");
for(
$i 0$i $col_num$i++) {
    
printf("%-30s %s\n"cubrid_field_name($result$i), cubrid_field_flags($result$i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code                    
medal                          
game_date                      


cubrid_field_seek

(PECL CUBRID >= 8.3.0)

cubrid_field_seekDéplace le curseur du jeu de résultats à une position spécifiée

Description

bool cubrid_field_seek ( resource $result [, int $field_offset = 0 ] )

Cette fonction déplace le curseur du jeu de résultats à une position spécifiée. La position est utilisée par la fonction cubrid_fetch_field() si elle n'inclut pas une position de champ. La fonction retourne TRUE en cas de succès, FALSE sinon.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

TRUE en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_field_seek()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$req cubrid_execute($conn"SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req1);
$field cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n""name:"$field->name);
printf("%-30s %s\n""table:"$field->table);
printf("%-30s \"%s\"\n""default value:"$field->def);
printf("%-30s %d\n""max lenght:"$field->max_length);
printf("%-30s %d\n""not null:"$field->not_null);
printf("%-30s %d\n""unique key:"$field->unique_key);
printf("%-30s %d\n""multiple key:"$field->multiple_key);
printf("%-30s %d\n""numeric:"$field->numeric);
printf("%-30s %s\n""type:"$field->type);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16681"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-9-30"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max lenght:                    5
not null:                      1
unique key:                    1
multiple key:                  0
numeric:                       1
type:                          integer


cubrid_field_table

(PECL CUBRID >= 8.3.0)

cubrid_field_tableRetourne le nom de la table d'un champ spécifié

Description

string cubrid_field_table ( resource $result , int $field_offset )

Cette fonction retourne le nom de la table d'un champ spécifié. Ceci est utile lors de l'utilisation d'une requête SELECT volumineuses avec des jointures.

Liste de paramètres

result

Type du tableau des résultats retournés : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH.

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Nom de la table du champ spécifié, en cas de succès.

FALSE when invalid field_offset value.

-1 si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_field_table()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM code");

$col_num cubrid_num_cols($result);

printf("%-15s %-15s %s\n""Field Table""Field Name""Field Type");
for(
$i 0$i $col_num$i++) {
    
printf("%-15s %-15s %s\n",
        
cubrid_field_table($result$i), cubrid_field_name($result$i), cubrid_field_type($result$i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Table     Field Name      Field Type
code            s_name          char(1)
code            f_name          varchar(6)


cubrid_field_type

(PECL CUBRID >= 8.3.0)

cubrid_field_typeRetourne le type de la colonne correspondant à la position du champ fourni

Description

string cubrid_field_type ( resource $result , int $field_offset )

Cette fonction retourne le type de la colonne correspondant à la position du champ fourni. Le type du champ retourné peut être un parmi les suivants : "int", "real", "string", etc.

Liste de paramètres

result

Type du tableau du résultat récupéré : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH.

field_offset

Position numérique du champ. le paramètre field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Le type de la colonne en cas de succès.

FALSE Lorsque la valeur de field_offset est invalide.

-1 si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_field_type()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");
$result cubrid_execute($conn"SELECT * FROM code");

$col_num cubrid_num_cols($result);

printf("%-15s %-15s %s\n""Field Table""Field Name""Field Type");
for(
$i 0$i $col_num$i++) {
    
printf("%-15s %-15s %s\n",
        
cubrid_field_table($result$i), cubrid_field_name($result$i), cubrid_field_type($result$i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Table     Field Name      Field Type
code            s_name          char(1)
code            f_name          varchar(6)


cubrid_list_dbs

(PECL CUBRID >= 8.3.0)

cubrid_list_dbsRetourne un tableau contenant la liste de toutes les bases de données CUBRID existantes

Description

array cubrid_list_dbs ( resource $conn_identifier )

Cette fonction retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes.

Liste de paramètres

conn_identifier

Identifiant de connexion CUBRID.

Valeurs de retour

Un tableau numérique contenant toutes les bases de données CUBRID existantes en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_list_dbs()

<?php
$conn 
cubrid_connect("localhost"33088"demodb");

$db_list cubrid_list_dbs($conn);
var_dump($db_list);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  string(6) "demodb"
}


cubrid_num_fields

(PECL CUBRID >= 8.3.0)

cubrid_num_fieldsRetourne le nombre de colonnes dans le jeu de résultats

Description

int cubrid_num_fields ( resource $result )

Cette fonction retourne le nombre de colonnes dans le jeu de résultats en cas de succès, ou FALSE si une erreur survient.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

Valeurs de retour

Nombre de colonnes en cas de succès.

-1 si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_num_fields()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM code");

$row_num cubrid_num_rows($req);
$col_num cubrid_num_fields($req);

printf("Row Num: %d\nColumn Num: %d\n"$row_num$col_num);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Row Num: 6
Column Num: 2


cubrid_ping

(PECL CUBRID >= 8.3.1)

cubrid_pingPing une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active

Description

bool cubrid_ping ([ resource $conn_identifier ] )

Vérifie si la connexion au serveur est toujours active.

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Retourne TRUE si la connexion au serveur CUBRID est active, FALSE sinon.

Exemples

Exemple #1 Exemple avec cubrid_ping()

<?php
set_time_limit
(0);

$conn cubrid_connect('localhost'33000'demodb');

/* Supposons que la requête prend beaucoup de temps */
$result cubrid_query($sql);
if (!
$result) {
    echo 
'La requête #1 a échoué, on sort.';
    exit;
}

/* Assurons-nous que la connexion est toujours active, sinon, on se reconnecte */
if (!cubrid_ping($conn)) {
    echo 
'Connexion perdue, on sort après la requête #1';
    exit;
}
cubrid_free_result($result);

/* La connexion est toujours active, on peut exécuter une autre requête */
$result2 cubrid_query($sql2);
?>



cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_queryEnvoi une requête CUBRID

Description

resource cubrid_query ( string $query [, resource $conn_identifier ] )

La fonction cubrid_query() envoie une seule requête (l'envoi de plusieurs requête n'est pas supporté) à la base de données active sur le serveur associé avec le paramètre conn_identifier fourni.

Liste de paramètres

query

Une requête SQL

Les données de la requête doivent être proprement échappées.

conn_identifier

La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Pour les requête de type SELECT, SHOW, DESCRIBE, EXPLAIN et autres requêtes retournant un jeu de résultats, cubrid_query() retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Pour les autres requêtes (INSERT, UPDATE, DELETE, DROP, etc.), cubrid_query() retourne TRUE en cas de succès, ou FALSE si une erreur survient.

La ressource de résultats retournée doit être passée à la fonction cubrid_fetch_array(), et autres fonctions gérants les ressources de résultats, afin d'accéder aux données retournées.

Utilisez la fonction cubrid_num_rows() pour trouver le nombre de lignes retournées par une requête SELECT ou la fonction cubrid_affected_rows() afin de savoir le nombre de lignes affectées par une requête DELETE, INSERT, REPLACE, ou UPDATE.

La fonction cubrid_query() échouera et retournera FALSE si l'utilisateur n'a pas l'autorisation d'accéder à la table utilisée dans la requête.

Exemples

Exemple #1 Requête invalide

La requête suivante n'est littéralement pas valide, aussi, la fonction cubrid_query() échouera et retournera FALSE.

<?php
$conn 
cubrid_connect('localhost'33000'foo');

$result cubrid_query('SELECT * WHERE 1=1');
if (!
$result) {
    die(
'Requête invalide : ' cubrid_error());
}

?>

Exemple #2 Requête valide

La requête suivante est valide, aussi, la fonction cubrid_query() retournera une ressource.

<?php
// Ces variables pourraient être fournis par un utilisateur, par exemple
$firstname 'fred';
$lastname  'fox';

$conn cubrid_connect('localhost'33000'foo');

// Requête formelle
// C'est la meilleure façon d'exécuter une requête SQL
// Pour plus d'exemples, voir la fonction cubrid_real_escape_string()
$query sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));

// Exécution de la requête
$result cubrid_query($query);

// Vérifie le résultat
// Montre la requête envoyée à CUBRID, et l'erreur. Utile pour le débogage.
if (!$result) {
    
$message  'Requête invalide : ' cubrid_error() . "\n";
    
$message .= 'Requête complète : ' $query;
    die(
$message);
}

// Utilisation du résultat
// Le fait de tenter d'afficher $result ne vous donnera pas accès à l'information de la ressource
// Une des fonctions de traitement des résultats CUBRID doit être utilisée
// Voir aussi cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row cubrid_fetch_assoc($result)) {
    echo 
$row['firstname'];
    echo 
$row['lastname'];
    echo 
$row['address'];
    echo 
$row['age'];
}

// Libère les ressources associées avec le jeu de résultats
// Ceci est fait automatiquement à la fin du script
cubrid_free_result($result);
?>

Voir aussi



cubrid_real_escape_string

(PECL CUBRID >= 8.3.0)

cubrid_real_escape_stringÉchappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL

Description

string cubrid_real_escape_string ( string $unescaped_string [, resource $conn_identifier ] )

Cette fonction retourne la version échappée de la chaîne fournie. Elle ajoute des anti-slashes aux caractères suivants : '. En général, les guillemets simples sont utilisés pour entourer la chaîne. Les doubles guillemets peuvent être utilisés également suivant la valeur de ansi_quotes, qui est un paramètre des requêtes SQL. Si la valeur de ansi_quotes est "no", les guillemets doubles seront gérés comme un caractère de la chaîne et non un identifiant. La valeur par défaut est "yes". Si vous voulez inclure un guillemet simple comme caractère d'une chaîne, vous devez le spécifier 2 fois.

Liste de paramètres

unescaped_string

La chaîne de caractères à échapper.

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifiée, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

La version échappée de la chaîne de caractères fournie en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_real_escape_string()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$unescaped_str ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
$escaped_str cubrid_real_escape_string($unescaped_str);

$len strlen($unescaped_str);

@
cubrid_execute($conn"DROP TABLE cubrid_test");
cubrid_execute($conn"CREATE TABLE cubrid_test (t char($len))");
cubrid_execute($conn"INSERT INTO cubrid_test (t) VALUES('$escaped_str')");

$req cubrid_execute($conn"SELECT * FROM cubrid_test");
$row cubrid_fetch_assoc($req);

var_dump($row);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["t"]=>
  string(95) " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
}


cubrid_result

(PECL CUBRID >= 8.3.0)

cubrid_resultRetourne la valeur d'un champ d'une ligne spécifique

Description

string cubrid_result ( resource $result , int $row [, mixed $field = 0 ] )

Cette fonction retourne la valeur d'un champ spécifique d'une ligne spécifique depuis un jeu de résultats.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

row

Le numéro de la ligne depuis le résultat à récupérer. Ce numéro commence à partir de 0.

field

Le nom ou la position du champ field à récupérer. Ce peut être la position du champ, son nom, ou le nom de la table suivi d'un point, suivi du nom du champ (tablename.fieldname). Si le nom de la colonne est un alias ('select foo as bar from...'), utilisez l'alias au lieu du nom de la colonne. Si non défini, le premier champ sera récupéré.

Valeurs de retour

La valeur du champ spécifié en cas de succès (NULL si la valeur est NULL).

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_result()

<?php
$conn 
cubrid_connect("localhost"33000"demodb");

$req cubrid_execute($conn"SELECT * FROM code");

$result cubrid_result($req0);
var_dump($result);

$result cubrid_result($req01);
var_dump($result);

$result cubrid_result($req5"f_name");
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

string(1) "X"
string(5) "Mixed"
string(4) "Gold"


cubrid_unbuffered_query

(PECL CUBRID >= 8.3.0)

cubrid_unbuffered_queryExécute une requête sans placer les résultats en mémoire vive

Description

resource cubrid_unbuffered_query ( string $query [, resource $conn_identifier ] )

Cette fonction exécute une requête sans attendre que tous les résultats ait été récupérés. La fonction retournera lorsque les résultats seront générés.

Liste de paramètres

query

Une requête SQL.

conn_identifier

Identifiant de connexion. Si non fourni, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Pour les requêtes de type SELECT, SHOW, DESCRIBE ou EXPLAIN, la fonction retournera une ressource en cas de succès.

Pour les autres types de requêtes SQL (UPDATE, DELETE, DROP, etc.), la fonction retournera TRUE en cas de succès.

FALSE si une erreur survient.

Notes

Note:

Les bénéfices de la fonction cubrid_unbuffered_query() ont un prix : vous ne pouvez pas utiliser cubrid_num_rows() et cubrid_data_seek() sur le jeu de résultats retourné depuis cubrid_unbuffered_query().

Exemples

Exemple #1 Exemple avec cubrid_unbuffered_query()

<?php
    $link 
cubrid_connect("localhost"30000"demodb2""dba""");
    if (!
$link)
    {
        die(
'Connexion impossible.');
    }
    
$query "insert into employees (name, address, salary) values ('Michael', 'Boston, MA', 3750)";
    
cubrid_unbuffered_query($query$link);
?>

Sommaire

  • cubrid_client_encoding — Retourne le jeu de caractères utilisé sur la connexion CUBRID courante
  • cubrid_close — Ferme une connexion CUBRID
  • cubrid_data_seek — Déplace le pointeur de lignes interne du résultat CUBRID
  • cubrid_db_name — Récupère le nom de la base de données depuis les résultats de cubrid_list_dbs
  • cubrid_errno — Retourne la valeur numérique d'un message d'erreur
  • cubrid_error — Récupère le message de l'erreur
  • cubrid_fetch_array — Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
  • cubrid_fetch_assoc — Retourne un tableau associatif correspondant à la ligne récupérée
  • cubrid_fetch_field — Récupère des informations sur une colonne et les retourne sous la forme d'un objet
  • cubrid_fetch_lengths — Retourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante
  • cubrid_fetch_object — Récupère la prochaine ligne et la retourne sous la forme d'un objet
  • cubrid_fetch_row — Retourne un tableau numérique avec les valeurs de la ligne courante
  • cubrid_field_flags — Retourne une chaîne avec les drapeaux de la position du champ fourni
  • cubrid_field_len — Récupère la longueur maximale du champ spécifié
  • cubrid_field_name — Retourne le nom du champ spécifié
  • cubrid_field_seek — Déplace le curseur du jeu de résultats à une position spécifiée
  • cubrid_field_table — Retourne le nom de la table d'un champ spécifié
  • cubrid_field_type — Retourne le type de la colonne correspondant à la position du champ fourni
  • cubrid_list_dbs — Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes
  • cubrid_num_fields — Retourne le nombre de colonnes dans le jeu de résultats
  • cubrid_ping — Ping une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active
  • cubrid_query — Envoi une requête CUBRID
  • cubrid_real_escape_string — Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL
  • cubrid_result — Retourne la valeur d'un champ d'une ligne spécifique
  • cubrid_unbuffered_query — Exécute une requête sans placer les résultats en mémoire vive


Fonctions et alias CUBRID obsolètes


cubrid_load_from_glo

(PECL CUBRID >= 8.3.0)

cubrid_load_from_gloLie une donnée

Description

int cubrid_load_from_glo ( resource $conn_identifier , string $oid , string $file_name )

La fonction cubrid_load_from_glo() est utilisée pour lire une donnée depuis une instance glo, et la sauvegarde dans un fichier donné.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance glo depuis laquelle vous voulez lire la donnée.

file_name

Nom du fichier où la sauvegarde de la donnée doit s'effectuer.

Valeurs de retour

TRUE lorsque le processus est un succès.

FALSE lorsque le processus a échoué.

Exemples

Exemple #1 Exemple avec cubrid_load_from_glo()

<?php
$req 
cubrid_execute ($con"select image from person where id=1");
if (
$req) {
   list (
$oid) = cubrid_fetch($req);
   
cubrid_close_request($req);
   
$res cubrid_load_from_glo ($con$oid"output.jpg");
   if (
$res) {
      echo 
"image changée avec succès";
   }
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_load_from_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi



cubrid_new_glo

(PECL CUBRID >= 8.3.0)

cubrid_new_gloCrée une instance glo

Description

string cubrid_new_glo ( resource $conn_identifier , string $class_name , string $file_name )

La fonction cubrid_new_glo() est utilisée pour créer une instance glo dans la classe demandée (classe glo). Le glo créé est de type LO, et est stocké dans le fichier file_name.

Liste de paramètres

conn_identifier

Identifiant de connexion.

class_name

Nom de la classe dans laquelle vous voulez créer le glo.

file_name

Le nom du fichier dans lequel vous voulez sauvegarder le nouveau glo créé.

Valeurs de retour

OID de l'instance créée en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_new_glo()

<?php
$oid 
cubrid_new_glo ($con"glo""input.jpg");
if (
$oid){
   
// Le type de la colonne "image" est "object"
   
$req cubrid_execute ($con"insert into person(image) values($oid)");
   if (
$req) {
      echo 
"image insérée avec succès";
      
cubrid_close_request ($req);
      
cubrid_commit($con);
   }
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_new_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi



cubrid_save_to_glo

(PECL CUBRID >= 8.3.0)

cubrid_save_to_gloSauvegarde un fichier dans une instance glo

Description

int cubrid_save_to_glo ( resource $conn_identifier , string $oid , string $file_name )

La fonction cubrid_save_to_glo() est utilisée pour sauvegarder un fichier dans une instance glo.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance glo dans laquelle le fichier sera sauvegardé.

file_name

Le nom du fichier à sauvegarder.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_save_to_glo()

<?php
$req 
cubrid_execute ($con"select image from person where id=1");
if (
$req) {
   list (
$oid) = cubrid_fetch($req);
   
cubrid_close_request($req);
   
$res cubrid_save_to_glo ($con$oid"input.jpg");
   if (
$res) {
      echo 
"image changée avec succès";
   }
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_save_to_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi



cubrid_send_glo

(PECL CUBRID >= 8.3.0)

cubrid_send_gloLit les données depuis une instance glo

Description

int cubrid_send_glo ( resource $conn_identifier , string $oid )

La fonction cubrid_send_glo() est utilisée pour lire les données depuis une instance glo et les envoie à la sortie standard de PHP.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance glo depuis laquelle les données sont lues.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_send_glo()

<?php
$req 
cubrid_execute ($con"select image from person where id =1");
if (
$req) {
  list (
$oid) = cubrid_fetch($req);
  
cubrid_close_request($req);
  
Header ("Content-type: image/jpeg");
  
cubrid_send_glo ($con$oid);
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_send_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi


Sommaire




dBase


Introduction

Ces fonctions permettent d'accéder aux enregistrements des bases de données au format dBase (dbf).

Les fichiers dBase sont de simples fichiers séquentiels, d'un nombre d'enregistrements fixe. Les enregistrements sont ajoutés à la fin du fichier et les enregistrements effacés sont conservés tant que vous n'appelez pas la fonction dbase_pack().

Les types de champs dBase disponibles sont :

Type de champs disponible
Champ Type dBase Format Informations complémentaires
M Memo n/a Ce type n'est pas supporté par PHP, et sera ignoré
D Date YYYYMMDD La taille du champ est limitée à 8
N Number Un nombre Vous devez déclarer une taille et une précision (le nombre de chiffres après le point décimal)
C chaîne de caractères Une chaîne de caractères Vous devez déclarer une taille. Lors de la récupération des données, la chaîne sera complétée d'espace afin d'atteindre la taille déclarée.
L booléen T ou Y pour TRUE, F ou N pour FALSE Stocké et retourné sous la forme d'un entier (1 ou 0)
F Float Un nombre à virgule flottante Le support de ce type de champ a été ajouté en PHP 5.2.0

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.

Avertissement

Il n'y pas aucun support des index ou des champs memo. Il n'y pas non plus de support des verrous. Ainsi, si 2 processus accèdent en même temps au même fichier dBase, ce dernier risque d'être corrompu.

Nous vous recommandons de ne pas utiliser les fichiers dBase comme base de données, en production. Optez plutôt pour un vrai serveur SQL à la place ; » MySQL ou » PostgreSQL sont des choix commun en PHP. Le support dBase est présent en PHP uniquement pour vous permettre d'importer et d'exporter des données depuis et vers votre base de données, car ce format de fichier est habituellement compris par les tableurs Windows.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour activer la bibliothèque dBase fournie avec PHP, vous devez compiler PHP avec l'option --enable-dbase .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



dBase Fonctions

Exemples

La plupart des exemples dans cette documentation nécessitent une base de données dBase. Nous utiliserons /tmp/test.dbf qui est créée dans l'exemple de la fonction dbase_create().


dbase_add_record

(PHP 4, PHP 5)

dbase_add_recordAjoute un enregistrement dans une base dBase

Description

bool dbase_add_record ( int $dbase_identifier , array $record )

dbase_add_record() ajoute les données fournies dans la base de données dBase spécifiée.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record

Un tableau de données indexé. Le nombre d'éléments doit être égal au nombre de champs dans la base de données, sinon dbase_add_record() échouera.

Note:

Si vous utilisez dbase_get_record() pour retourner une valeur pour ce paramètre, n'oubliez pas de réinitialiser la clé nommée deleted.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Insertion d'un enregistrement dans une base de données dBase

<?php
                   
// Ouverture en mode lecture-écriture
$db dbase_open('/tmp/test.dbf'2);
                   
if (
$db) {
  
dbase_add_record($db, array(
    
date('Ymd'), 
    
'Maxim Topolov'
    
'23'
    
'max@example.com',
    
'T'));   
  
dbase_close($db);
}
                   
?>

Voir aussi



dbase_close

(PHP 4, PHP 5)

dbase_closeFerme une base dBase

Description

bool dbase_close ( int $dbase_identifier )

dbase_close() ferme la base associée à dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ferme un fichier de base de données dBase

<?php
                   
// Ouverture en mode lecture-écriture
$db dbase_open('/tmp/test.dbf'0);

if (
$db) {
// Lecture des données ..

dbase_close($db);
}

?>

Voir aussi



dbase_create

(PHP 4, PHP 5)

dbase_createCrée une base de données dBase

Description

int dbase_create ( string $filename , array $fields )

dbase_create() crée une base de données dBase dans le fichier filename, et avec les champs fields.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note:

Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

filename

Le nom de la base de données. Il peut être un chemin relatif ou absolu vers le fichier où dBase stockera vos données.

fields

Un tableau de tableaux, chaque tableau décrit le format d'un champ de la base de données. Chaque champ est constitué d'un nom, d'un caractère indiquant le type du champ et optionnellement, une longueur et une précision.

Note:

Les noms des champs sont limités en longueur et ne doivent pas excéder 10 caractères.

Valeurs de retour

Retourne un identifiant de lien à la base de données si la base de données a été créée avec succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un fichier de base de données dBase

<?php
                   
// Base de données "definition"
$def = array(
  array(
"date",     "D"),
  array(
"name",     "C",  50),
  array(
"age",      "N",   30),
  array(
"email",    "C"128),
  array(
"ismember""L")
);
                   
// Création
if (!dbase_create('/tmp/test.dbf'$def)) {
  echo 
"Erreur, impossible de créer la base de données\n";
}
                   
?>

Voir aussi



dbase_delete_record

(PHP 4, PHP 5)

dbase_delete_recordEfface un enregistrement dans une base dBase

Description

bool dbase_delete_record ( int $dbase_identifier , int $record_number )

dbase_delete_record() marque l'enregistrement record pour l'effacement, dans la base dbase_identifier.

Note:

Pour effacer réellement l'enregistrement de la base de données, vous devez appeler la fonction dbase_pack().

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

Un entier compris entre 1 et le nombre maximal d'enregistrements dans la base de données (tel que retourné par la fonction dbase_numrecords()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



dbase_get_header_info

(PHP 5)

dbase_get_header_infoRécupère des informations d'en-tête d'une base de données dBase

Description

array dbase_get_header_info ( int $dbase_identifier )

dbase_get_header_info() retourne des informations sur la structure des colonnes de la base de données référencée par dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Un tableau indexé avec une entrée pour chaque colonne de la base de données. Le tableau indexé commence à 0.

Chaque élément du tableau contient un tableau associatif contenant les informations sur les colonnes, comme décrit ici :

name
Le nom de la colonne
type
Le nom lisible du type de la colonne (i.e. date, boolean, etc.)
length
Le nombre d'octets que cette colonne peut contenir
precision
Le nombre de décimales pour la colonne
format
Un format printf() suggéré pour la colonne
offset
La position de la colonne depuis la début de la ligne

Si les informations d'en-têtes de la base de données ne peuvent pas être lues, FALSE est retourné.

Exemples

Exemple #1 Affiche les informations d'en-têtes pour un fichier de base de données dBase

<?php
// Chemin vers le fichier dBase
$db_path "/tmp/test.dbf";

// Ouvre le fichier dBase
$dbh dbase_open($db_path0)
or die(
"Erreur ! Impossible d'ouvrir le fichier dBase '$db_path'.");

// Récupération des informations des colonnes
$column_info dbase_get_header_info($dbh);

// Affichage des informations
print_r($column_info);
?>



dbase_get_record_with_names

(PHP 4, PHP 5)

dbase_get_record_with_names Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif

Description

array dbase_get_record_with_names ( int $dbase_identifier , int $record_number )

dbase_identifier retourne les données de l'enregistrement record dans un tableau associatif.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

L'index de l'enregistrement.

Valeurs de retour

Un tableau associatif avec l'enregistrement. Ceci inclut également une clé nommée deleted qui est définie à 1 si l'enregistrement a été marqué pour effacement (voir dbase_delete_record()).

Chaque champ est converti en un type PHP approprié, excepté :

  • Les dates sont laissées en tant que chaînes de caractères.
  • Les entiers qui peuvent causés un dépassement de mémoire tampon (> 32 bits) sont retournés sous forme de chaînes de caractères.

En cas d'erreur, dbase_get_record_with_names() retourne FALSE.

Exemples

Exemple #1 Liste de tous les membres enregistrés dans la base de données

<?php
// Ouverture en mode lecture seul
$db dbase_open('/tmp/test.dbf'0);
                   
if (
$db) {
  
$record_numbers dbase_numrecords($db);
  for (
$i 1$i <= $record_numbers$i++) {
    
$row dbase_get_record_with_names($db$i);
    if (
$row['ismember'] == 1) {
      echo 
"Membre #$i: " trim($row['name']) . "\n";
    }
  }
}
?>

Voir aussi



dbase_get_record

(PHP 4, PHP 5)

dbase_get_record Lit un enregistrement dans une base dBase

Description

array dbase_get_record ( int $dbase_identifier , int $record_number )

dbase_get_record() retourne les données de l'enregistrement record dans un tableau.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

L'index de l'enregistrement.

Valeurs de retour

Un tableau indexé avec l'enregistrement. Ce tableau inclut également une clé associée nommée deleted qui est définie à 1 si l'enregistrement a été marqué pour effacement (voir dbase_delete_record()).

Chaque champ est converti en un type PHP approprié, excepté :

  • Les dates sont laissées en tant que chaîne de caractères.
  • Les entiers qui peuvent causés un dépassement de mémoire tampon (> 32 bits) sont retournés sous forme de chaînes de caractères.

En cas d'erreur, dbase_get_record() retourne FALSE.

Voir aussi



dbase_numfields

(PHP 4, PHP 5)

dbase_numfieldsCompte le nombre de champs d'une base dBase

Description

int dbase_numfields ( int $dbase_identifier )

dbase_numfields() retourne le nombre de champs (colonnes) de la base de données dbase_identifier.

Note:

Les numéros de champs sont numérotés de 0 à dbase_numfields($db)-1, tandis que les numéros d'enregistrements sont numérotés de 1 à dbase_numrecords($db).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Le nombre de champs de la base de données, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec dbase_numfields()

<?php
                   
$rec 
dbase_get_record($db$recno);
$nf  dbase_numfields($db);
for (
$i 0$i $nf$i++) {
  echo 
$rec[$i], "\n";
}
                                     
?>

Voir aussi



dbase_numrecords

(PHP 4, PHP 5)

dbase_numrecordsCompte le nombre d'enregistrements dans une base dBase

Description

int dbase_numrecords ( int $dbase_identifier )

dbase_numrecords() retourne le nombre d'enregistrements (lignes) dans la base dbase_identifier.

Note:

Les numéros de champ sont numérotés de 0 à dbase_numfields($db)-1, tandis que les numéros d'enregistrements sont numérotés de 1 à dbase_numrecords($db).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Le nombre d'enregistrements dans la base de données ou FALSE si une erreur survient.

Exemples

Exemple #1 Lecture de tous les enregistrements de la base de données

<?php
                   
// Ouverture en mode lecture seul
$db dbase_open('/tmp/test.dbf'0);
                   
if (
$db) {
$record_numbers dbase_numrecords($db);
for (
$i 1$i <= $record_numbers$i++) {
  
// Faites quelque chose ici, pour chaque enregistrement
}
}
                                      
?>

Voir aussi



dbase_open

(PHP 4, PHP 5)

dbase_openOuvre une base dBase

Description

int dbase_open ( string $filename , int $mode )

dbase_open() ouvre une base de données dBase avec un mode d'accès donné.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note:

Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

filename

Le nom de la base de données. Il peut être un chemin relatif ou absolu vers le fichier où dBase stockera vos données.

mode

Un entier correspondant à celui utilisé pour l'appel système open() (Typiquement, 0 signifie lecture seule, 1 signifie écriture seule, et 2 signifie lecture et écriture).

Note:

Vous ne pouvez pas ouvrir un fichier dBase en mode écriture seul, car la fonction échouera lors de la lecture des informations d'en-têtes et donc, vous ne pouvez pas utiliser 1 comme mode.

Exemples

Exemple #1 Ouverture d'un fichier de base de données dBase

<?php

// Ouverture en lecture seul
$db dbase_open('/tmp/test.dbf'0);

if (
$db) {
// lecture des données ..

dbase_close($db);
}

?>

Valeurs de retour

Retourne un identifiant de lien à la base de données si la base de données est ouverte avec succès, ou FALSE si une erreur survient.

Voir aussi



dbase_pack

(PHP 4, PHP 5)

dbase_packCompacte une base dBase

Description

bool dbase_pack ( int $dbase_identifier )

dbase_pack() compacte la base de données dbase_identifier (effacement définitif de tous les enregistrements marqués pour l'effacement, avec la fonction dbase_delete_record()).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Vide une base de données dBase

<?php
                   
// Ouverture en mode lecture-écriture
$db dbase_open('/tmp/test.dbf'2);
                   
if (
$db) {
  
$record_numbers dbase_numrecords($db);
  for (
$i 1$i <= $record_numbers$i++) {
    
dbase_delete_record($db$i);
  }
// Compacte la base de données
dbase_pack($db);
}
                                      
?>

Voir aussi



dbase_replace_record

(PHP 4, PHP 5)

dbase_replace_recordRemplace un enregistrement dans une base dBase

Description

bool dbase_replace_record ( int $dbase_identifier , array $record , int $record_number )

dbase_replace_record() remplace les données associées à l'enregistrement dbase_record_number par les données enregistrées dans record, dans la base dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record

Un tableau indexé des données. Le nombre d'éléments doit être égal au nombre de champs dans la base de données, sinon dbase_replace_record() échouera.

Note:

Si vous utilisez dbase_get_record() pour retourner la valeur de ce paramètre, n'oubliez pas de réinitialiser la clé nommée deleted.

record_number

Un entier entre 1 et le nombre total d'enregistrements dans la base de données (comme retourné par la fonction dbase_numrecords()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Mise à jour d'un enregistrement dans une base de données

<?php
                   
// Ouverture en mode lecture-écriture
$db dbase_open('/tmp/test.dbf'2);
                   
if (
$db) {
  
// Récupération de l'ancienne ligne
  
$row dbase_get_record_with_names($db1);
                   
  
// Supprime l'entrée effacée
  
unset($row['deleted']);
                   
  
// Mise à jour de la date du champ avec le timestamp courant
  
$row['date'] = date('Ymd');
                   
  
// Remplace l'enregistrement
  
dbase_replace_record($db$row1);
  
dbase_close($db);
}
                   
?>

Voir aussi


Sommaire




DB++


Introduction

db++, conçu par une compagnie allemande » Concept asa, est un système de base de données relationnelles avec de hautes performances et une basse utilisation de la mémoire, et en gardant à l'esprit l'utilisation du disque. En fournissant le SQL comme langage additionnel, db++ n'est pas réellement une base de données SQL, mais fournit son propre langage de requête AQL, qui est plus influencé par l'algèbre relationnel que SQL.

Concept asa a toujours souhaité supporter les langages open source ; db++ a des interfaces Perl et Tcl depuis plusieurs années, et utilise Tcl comme son langage de procédure stockée interne.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Cette extension utilise des bibliothèques clientes externes ; ainsi, vous devez installé le client db++ sur votre système afin d'y utiliser cette extension.

» Concept asa fournit des versions » de démo de db++ ainsi qu'une » documentation pour Linux et quelques autres Unix. Il y a également une version Windows de db++, mais cette extension ne la supporte pas (encore).



Installation

Pour compiler cette extension vous-même, vous devez avoir les bibliothèques clients et les fichiers d'en-têtes installés sur le système (ils sont inclus dans la distribution de DB++ par défaut). Exécutez la commande configure avec l'option --with-dbplus pour inclure cette extension dans PHP.

configure recherche les bibliothèques clients et les fichiers d'en-têtes dans les dossiers suivants : /usr/dbplus, /usr/local/dbplus et /opt/dbplus. Si vous avez installé DB++ dans un autre dossier, indiquez le chemin de ce dossier dans l'option de configure comme ceci : --with-dbplus=/votre/dossier/installation .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

dbplus_relation

La plupart des fonctions db++ opèrent ou retournent des ressources dbplus_relation. dbplus_relation est un gestionnaire de relation stockée ou de relation générée, comme résultat d'une requête.




Constantes pré-définies

Sommaire

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Codes d'erreurs de DB++

Codes d'erreurs de DB++
Constante PHP Constante DB++ Description
DBPLUS_ERR_NOERR (entier) ERR_NOERR Condition d'erreur Null
DBPLUS_ERR_DUPLICATE (entier) ERR_DUPLICATE Tentative d'insertion d'un doublon
DBPLUS_ERR_EOSCAN (entier) ERR_EOSCAN Fin de scan rget()
DBPLUS_ERR_EMPTY (entier) ERR_EMPTY Relation vide (serveur)
DBPLUS_ERR_CLOSE (entier) ERR_CLOSE Le serveur ne peut fermer
DBPLUS_ERR_WLOCKED (entier) ERR_WLOCKED La ligne est verrouillée en écriture
DBPLUS_ERR_LOCKED (entier) ERR_LOCKED La relation est déjà verrouillée
DBPLUS_ERR_NOLOCK (entier) ERR_NOLOCK La relation ne peut être verrouillée
DBPLUS_ERR_READ (entier) ERR_READ Erreur de lecture sur la relation
DBPLUS_ERR_WRITE (entier) ERR_WRITE Erreur d'écriture sur la relation
DBPLUS_ERR_CREATE (entier) ERR_CREATE La fonction système Create() a échoué
DBPLUS_ERR_LSEEK (entier) ERR_LSEEK La fonction système lseek() a échoué
DBPLUS_ERR_LENGTH (entier) ERR_LENGTH La ligne excède la taille maximale
DBPLUS_ERR_OPEN (entier) ERR_OPEN La fonction système Open() a échoué
DBPLUS_ERR_WOPEN (entier) ERR_WOPEN La relation est déjà ouverte en lecture
DBPLUS_ERR_MAGIC (entier) ERR_MAGIC Le fichier n'est pas une relation
DBPLUS_ERR_VERSION (entier) ERR_VERSION Le fichier est une très vieille relation
DBPLUS_ERR_PGSIZE (entier) ERR_PGSIZE La relation utilise une page de taille différente
DBPLUS_ERR_CRC (entier) ERR_CRC CRC invalide de la super-page
DBPLUS_ERR_PIPE (entier) ERR_PIPE Une relation pipée requiert lseek()
DBPLUS_ERR_NIDX (entier) ERR_NIDX Trop d'index secondaires
DBPLUS_ERR_MALLOC (entier) ERR_MALLOC L'appel à malloc() a échoué
DBPLUS_ERR_NUSERS (entier) ERR_NUSERS Erreur lors de l'utilisation du nombre maximal d'utilisateurs
DBPLUS_ERR_PREEXIT (entier) ERR_PREEXIT Causée par une utilisation invalide
DBPLUS_ERR_ONTRAP (entier) ERR_ONTRAP Causée par un signal
DBPLUS_ERR_PREPROC (entier) ERR_PREPROC Erreur dans le préprocesseur
DBPLUS_ERR_DBPARSE (entier) ERR_DBPARSE Erreur dans l'analyseur
DBPLUS_ERR_DBRUNERR (entier) ERR_DBRUNERR Erreur durant l'exécution
DBPLUS_ERR_DBPREEXIT (entier) ERR_DBPREEXIT La condition d'exit a été causée par la procédure prexit()
DBPLUS_ERR_WAIT (entier) ERR_WAIT Attend un peu (Simple seulement)
DBPLUS_ERR_CORRUPT_TUPLE (entier) ERR_CORRUPT_TUPLE Un client a envoyé une ligne corrompue
DBPLUS_ERR_WARNING0 (entier) ERR_WARNING0 Les routines Simple ont rencontré une erreur non fatale, qui a été corrigée.
DBPLUS_ERR_PANIC (entier) ERR_PANIC Le serveur ne devrait pas s'arrêter, mais, après un désastre, envoyer ERR_PANIC à tout ses clients
DBPLUS_ERR_FIFO (entier) ERR_FIFO Impossible de créer une pile FIFO
DBPLUS_ERR_PERM (entier) ERR_PERM Permission refusée
DBPLUS_ERR_TCL (entier) ERR_TCL TCL_error
DBPLUS_ERR_RESTRICTED (entier) ERR_RESTRICTED Seulement deux utilisateurs
DBPLUS_ERR_USER (entier) ERR_USER Une erreur est survenue dans l'utilisation de la bibliothèque par l'application.
DBPLUS_ERR_UNKNOWN (entier) ERR_UNKNOWN Erreur inconnue




Fonctions DB++


dbplus_add

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_addAjoute une ligne à une relation

Description

int dbplus_add ( resource $relation , array $tuple )

Ajoute une ligne à la relation.

Liste de paramètres

relation

tuple

Un tableau de pairs d'attribut/valeur à être inséré dans la relation donnée.

Après une exécution réussie, le tableau contiendra les toutes les données de la nouvelle ligne y compris tous les champs implicitement créés, comme les séquences.

Valeurs de retour

Cette fonction retournera DBPLUS_ERR_NOERR en cas de succès ou une erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_aql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_aqlExécute une requête AQL

Description

resource dbplus_aql ( string $query [, string $server [, string $dbpath ]] )

Exécute une requête AQL query sur le serveur server et le chemin dbpath.

Liste de paramètres

query

La requête AQL qui sera exécutée. Plus d'informations sur AQL A... Le langage de requête est fourni dans le manuel original de db++.

server

dbpath

Valeurs de retour

Retourne une ressource de relation en cas de succès. Les données de résultats peuvent être récupérées à partir de cette relation en appelant dbplus_next() et dbplus_curr(). Les autres fonctions d'accès aux relations ne fonctionneront pas avec ce résultat de relation.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_chdir

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_chdirLit/modifie le chemin courant de base

Description

string dbplus_chdir ([ string $newdir ] )

Change le chemin du dossier virtuel courant où les fichiers de relations seront recherchés par dbplus_open().

Liste de paramètres

newdir

Le nouveau répertoire pour les fichiers de relations. Vous pouvez omettre ce paramètre pour récupérer le répertoire de travail courant.

Valeurs de retour

Retourne le chemin absolu du dossier courant.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_close

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_closeFerme une relation

Description

mixed dbplus_close ( resource $relation )

Ferme une relation précédemment ouverte par dbplus_open().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Retourne TRUE en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_curr

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_currLit la ligne courante dans une relation

Description

int dbplus_curr ( resource $relation , array &$tuple )

Lit les donnée de la ligne courante pour la relation relation.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Les données seront retournées par ce paramètre comme un tableau associatif.

Valeurs de retour

La fonction retournera zéro (DBPLUS_ERR_NOERR) en cas de succès ou une erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_errcode

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errcode Obtenir un message d'erreur

Description

string dbplus_errcode ([ int $errno ] )

Retourne un message d'erreur sous forme de chaîne de caractères pour le code d'erreur donné.

Liste de paramètres

errno

Le code d'erreur. S'il n'est pas fourni, le code de la dernière opération db++ est utilisé.

Valeurs de retour

Retourne le message d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_errno

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errnoLit le code d'erreur généré par la dernière opération

Description

int dbplus_errno ( void )

Retourne le code d'erreur retourné par la dernière opération db++.

Valeurs de retour

Retourne le code d'erreur sous forme d'entier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_find

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_findAjoute une contrainte sur une relation

Description

int dbplus_find ( resource $relation , array $constraints , mixed $tuple )

Ajoute une contrainte sur la relation relation.

Les futurs appels aux fonctions comme dbplus_curr() ou dbplus_next() retourneront uniquement les tuples correspondants, suivant les contraintes.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

constraints

Les contraintes sont des triplets de chaîne de caractères contenant un nom de domaine, un opérateur de comparaison et une valeur de comparaison. Le paramètre constraints est un tableau qui consiste d'une collection de tableaux de chaîne de caractères, chacun contenant un domaine, un opérateur et une valeur, ou bien un seul tableau de chaîne de caractères contenant un multiple de trois éléments.

L'opérateur de comparaison peut être une des chaînes de caractères suivantes : '==', '>', '>=', '<', '<=', '!=', '~' pour les recherche régulière, et 'BAND' ou 'BOR' pour les opérations bits à bits.

tuple

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_first

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_firstLit la première ligne d'une relation

Description

int dbplus_first ( resource $relation , array &$tuple )

Lit les données de la première ligne de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_flush

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_flushÉcrit toutes les modifications apportées à une relation

Description

int dbplus_flush ( resource $relation )

Écrit tous les changements appliqués à relation depuis la dernière écriture vers le disque.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_freealllocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freealllocksLibère tous les verrous posés par le client

Description

int dbplus_freealllocks ( void )

Libère tous les verrous posés par le client.

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_freelock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freelockLève un verrou en écriture sur une ligne

Description

int dbplus_freelock ( resource $relation , string $tuple )

Supprime le verrou en écriture sur la ligne tuple précédemment obtenu par dbplus_getlock().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

tuple

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_freerlocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freerlocksLève tous les verrous sur les lignes d'une relation

Description

int dbplus_freerlocks ( resource $relation )

Lève tous les verrous sur les lignes de la relation relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_getlock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getlockPose un verrou sur une ligne

Description

int dbplus_getlock ( resource $relation , string $tuple )

Demande un verrou sur la ligne tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne zéro en cas de succès ou un code d'erreur différent de zéro. Plus précisément DBPLUS_ERR_WLOCKED en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_getunique

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getuniqueRetourne un identifiant unique pour une relation

Description

int dbplus_getunique ( resource $relation , int $uniqueid )

Demande le nombre qui sera garantit comme unique pour la relation relation et le retourne dans le paramètre uniqueid.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

uniqueid

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_info

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_infoRécupère les informations sur une relation

Description

int dbplus_info ( resource $relation , string $key , array &$result )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

key

result

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_last

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_lastLit la dernière ligne d'une relation

Description

int dbplus_last ( resource $relation , array &$tuple )

Lit les données de la dernière ligne de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_lockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_lockrelPose un verrou en écriture sur une relation

Description

int dbplus_lockrel ( resource $relation )

Demande un verrou en écriture sur la relation relation.

Les autres clients pourront toujours lire dans cette relation, mais devront attendre pour la modifier.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_next

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_nextLit la ligne suivante dans la relation

Description

int dbplus_next ( resource $relation , array &$tuple )

Lit les données de la ligne suivante de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_open

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_openOuvre un fichier de relation

Description

resource dbplus_open ( string $name )

Ouvre le fichier de relation donné.

Liste de paramètres

name

Peut être soit un fichier ou un chemin relatif ou absolu. Dans tous les cas, il sera remplacé par un chemin absolu, sur une machine spécifique et sur un serveur spécifique.

Valeurs de retour

En cas de succès, une ressource de fichier de relation (dite aussi curseur) sera retournée. Elle sera alors utilisée avec les fonctions utilisant cette relation. En cas d'échec, la valeur zéro est retournée et le code d'erreur peut être demandé via la fonction dbplus_errno().

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_prev

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_prevLit la ligne précédente dans la relation

Description

int dbplus_prev ( resource $relation , array &$tuple )

Lit les données de la ligne précédente de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_rchperm

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rchpermModifie les droits sur la relation

Description

int dbplus_rchperm ( resource $relation , int $mask , string $user , string $group )

Modifie les droits d'accès comme spécifié par les paramètres mask, user et group. Les valeurs à fournir sont spécifiques à chaque système d'exploitation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

mask

user

group

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_rcreate

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcreateCrée une nouvelle relation DB++

Description

resource dbplus_rcreate ( string $name , mixed $domlist [, bool $overwrite ] )

Crée une nouvelle relation. N'importe quelle autre relation qui possède le même nom name sera écrasée si la relation n'est pas présentement utilisée et que le paramètre overwrite est fixé à TRUE.

Liste de paramètres

name

domlist

Une combinaison de domaines. Il est possible de passer un simple domaine en chaîne de caractères ou plusieurs noms de domaines en tableau.

Ce paramètre devrait contenir les spécifications du domaine pour la nouvelle relation, sous la forme d'un tableau de chaînes de caractères descriptives. Une description de domaine est constituée d'un nom de domaine unique pour cette relation, d'un slash et d'un caractère de spécification de type. Voyez la documentation de db++, plus spécialement la page de manuel dbcreate(1), pour une description des spécificateurs de type disponibles et leur signification.

Note:

Cette fonction acceptera aussi une chaîne de caractères avec des domaines séparés par des espaces, mais il est recommandé d'utiliser un tableau.

overwrite

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_rcrtexact

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtexactCrée une copie exacte mais vide d'une relation

Description

mixed dbplus_rcrtexact ( string $name , resource $relation [, bool $overwrite ] )

dbplus_rcrtexact() crée une copie exacte de la relation relation mais vide, sous le nouveau nom de name.

Liste de paramètres

name

relation

La relation copiée, ouverte par dbplus_open().

overwrite

Une relation existante par le même nom name sera seulement écrasée si ce paramètre est fixé à TRUE et aucun autre processus utilise cette relation.

Valeurs de retour

Retourne une ressource en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_rcrtlike

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtlikeCrée une copie vide d'une relation avec les index

Description

mixed dbplus_rcrtlike ( string $name , resource $relation [, int $overwrite ] )

dbplus_rcrtexact() crée une copie vide de la relation relation, sous le nouveau nom de name, mais avec les index par défaut.

Liste de paramètres

name

relation

La relation copiée, ouverte par dbplus_open().

overwrite

Une relation existante par le même nom name sera seulement écrasée si ce paramètre est fixé à TRUE et aucun autre processus utilise cette relation.

Valeurs de retour

Retourne une ressource en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_resolve

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_resolveRésout les informations d'hôte pour une relation

Description

array dbplus_resolve ( string $relation_name )

dbplus_resolve() essaie de résoudre le nom de relation relation_name et collecte le nom interne de serveur, le nom d'hôte et le chemin vers la base sur cet hôte.

Liste de paramètres

relation_name

Nom de la relation.

Valeurs de retour

Retourne un tableau contenant les valeurs sous les clés sid, host et host_path ou FALSE en cas d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_restorepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_restoreposRestaure la position

Description

int dbplus_restorepos ( resource $relation , array $tuple )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

tuple

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_rkeys

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rkeysSpécifie la nouvelle clé primaire d'une relation

Description

mixed dbplus_rkeys ( resource $relation , mixed $domlist )

dbplus_rkeys() remplace la clé primaire courante de la relation relation avec la combinaison de domaines spécifiée par domlist.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

domlist

Une combinaison de domaines. Peut être passé comme un seul nom de domaine ou alors un tableau de noms de domaine.

Valeurs de retour

Retourne une ressource en cas de succès où DBPLUS_ERR_UNKNOWN en cas d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_ropen

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_ropenOuvre un fichier de relation local

Description

resource dbplus_ropen ( string $name )

dbplus_ropen() ouvre le fichier de relation file localement, pour accès rapide, sans les coûts supplémentaires du système client/serveur. L'accès est alors en lecture seule, et seules dbplus_curr() et dbplus_next() peuvent être utilisées avec la relation retournée.

Liste de paramètres

name

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_rquery

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rqueryAccomplit une requête AQL locale

Description

resource dbplus_rquery ( string $query [, string $dbpath ] )

dbplus_rquery() accomplit une requête AQL brute, en utilisant l'interpréteur de la bibliothèque du client DB++. dbplus_rquery() est plus rapide que dbplus_aql() mais ne fonctionne que sur des données locales.

Liste de paramètres

query

dbpath

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_rrename

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rrenameRenomme une relation

Description

int dbplus_rrename ( resource $relation , string $name )

dbplus_rrename() va changer le nom de la relation en name.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

name

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_rsecindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rsecindex Crée un nouvel index secondaire pour une relation

Description

mixed dbplus_rsecindex ( resource $relation , mixed $domlist , int $type )

dbplus_rsecindex() crée un nouvel index secondaire pour la relation relation, qui sera constitué par domlist et sera de type type

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

domlist

Une combinaison de domaines. Peut être passé comme un seul nom de domaine ou alors un tableau de noms de domaine.

type

Valeurs de retour

Retourne une ressource en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.




dbplus_rzap

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rzapSupprime toutes les lignes d'une relation

Description

int dbplus_rzap ( resource $relation )

dbplus_rzap() supprime toutes les lignes de la relation relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_savepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_saveposSauvegarde la position

Description

int dbplus_savepos ( resource $relation )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_setindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindexDéfinie l'index

Description

int dbplus_setindex ( resource $relation , string $idx_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

idx_name

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_setindexbynumber

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindexbynumberDéfinie l'index par un nombre

Description

int dbplus_setindexbynumber ( resource $relation , int $idx_number )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

idx_number

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_sql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_sqlExécute une requête SQL

Description

resource dbplus_sql ( string $query [, string $server [, string $dbpath ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

query

server

dbpath

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_tcl

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tclExécute du code TCL côté serveur

Description

string dbplus_tcl ( int $sid , string $script )

Un serveur db++ va préparer un interpréteur TCL pour chaque connexion de client. Cet interpréteur va permettre au serveur d'exécuter du code TCL fourni par le client, un peu comme une procédure stockée, pour améliorer les performances du serveur en évitant des transferts client/serveur et des changements de contexte.

dbplus_tcl() doit recevoir l'identifiant de connexion sid et le code TCL script qui sera exécuté. dbplus_resolve() fournira l'identifiant de connexion. dbplus_tcl() retourne ce que le code TCL retourne, ou bien un message d'erreur TCL si le code TCL échoue.

Liste de paramètres

sid

script

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_tremove

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tremoveSupprime la ligne courante et retourne la nouvelle ligne courante

Description

int dbplus_tremove ( resource $relation , array $tuple [, array &$current ] )

dbplus_tremove() supprime la ligne tuple de la relation si cela correspond parfaitement à une ligne dans la relation. current, si fourni, contient les données de la nouvelle ligne, une fois la suppression effectuée avec dbplus_tremove().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

tuple

current

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_undo

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undoAnnule

Description

int dbplus_undo ( resource $relation )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_undoprepare

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undopreparePrépare l'annulation

Description

int dbplus_undoprepare ( resource $relation )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_unlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unlockrelLibère un verrou en écriture posé sur une relation

Description

int dbplus_unlockrel ( resource $relation )

Lève le verrou en écriture obtenu par dbplus_lockrel().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_unselect

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unselectRetire une contrainte d'une relation

Description

int dbplus_unselect ( resource $relation )

L'utilisation de dbplus_unselect() supprime la contrainte posée par dbplus_find() sur la relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_update

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_updateModifie une ligne dans une relation

Description

int dbplus_update ( resource $relation , array $old , array $new )

dbplus_update() remplace la ligne old avec les données de la nouvelle ligne new, seulement si la ligne old est parfaitement similaire à une relation dans relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

old

L'ancienne ligne.

new

La nouvelle ligne.

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



dbplus_xlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xlockrelPose un verrou exclusif sur une relation

Description

int dbplus_xlockrel ( resource $relation )

Demande le verrou exclusif sur la relation relation qui empêchera même la lecture des autres clients.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



dbplus_xunlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xunlockrelLève un verrou exclusif posé sur une relation

Description

int dbplus_xunlockrel ( resource $relation )

Lève le verrou exclusif obtenu par la fonction dbplus_xlockrel().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Sommaire




FrontBase


Introduction

Ces fonctions vous permettent d'accéder aux serveurs SQL FrontBase. Plus de détails sur le serveur FrontBase sont disponibles sur le site de » http://www.frontbase.com/.

La documentation complète de FrontBase est disponible à » http://www.frontbase.com/cgi-bin/WebObjects/FBWebSite.woa.

Frontbase est supporté depuis PHP 4.0.6.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.



Installation/Configuration

Sommaire


Pré-requis

Vous devez installer un serveur de bases de données FrontBase ou, tout au moins, les bibliothèques clientes fbsql, pour accéder à ces fonctions. Vous pouvez accéder au site de FrontBase à l'adresse » http://www.frontbase.com/.



Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support fbsql en utilisant l'option de configuration --with-fbsql . Si vous utilisez cette option sans spécifier le chemin jusqu'au dossier d'installation fbsql, PHP recherchera les bibliothèques du client fbsql dans les dossiers habituels, sur votre système. Les utilisateurs qui ont installé FrontBase dans un dossier non standard doivent spécifier le chemin comme ceci : --with-fbsql=/path/to/fbsql . Cela va indiquer à PHP le bon emplacement des bibliothèques de FrontBase, et éviter les conflits.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration FBSQL
Nom Défaut Modifiable Historique
fbsql.allow_persistent "1" PHP_INI_SYSTEM Disponible depuis PHP 4.2.0.
fbsql.generate_warnings "0" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.autocommit "1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_persistent "-1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_links "128" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_connections "128" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_results "128" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.batchSize "1000" PHP_INI_SYSTEM Disponible depuis PHP 4.2.0. Supprimé en PHP 5.1.0.
fbsql.default_host NULL PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_user "_SYSTEM" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_password "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_database "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_database_password "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FBSQL_ASSOC (entier)
FBSQL_NUM (entier)
FBSQL_BOTH (entier)
FBSQL_LOCK_DEFERRED (entier)
FBSQL_LOCK_OPTIMISTIC (entier)
FBSQL_LOCK_PESSIMISTIC (entier)
FBSQL_ISO_READ_UNCOMMITTED (entier)
FBSQL_ISO_READ_COMMITTED (entier)
FBSQL_ISO_REPEATABLE_READ (entier)
FBSQL_ISO_SERIALIZABLE (entier)
FBSQL_ISO_VERSIONED (entier)
FBSQL_UNKNOWN (entier)
FBSQL_STOPPED (entier)
FBSQL_STARTING (entier)
FBSQL_RUNNING (entier)
FBSQL_STOPPING (entier)
FBSQL_NOEXEC (entier)
FBSQL_LOB_DIRECT (entier)
FBSQL_LOB_HANDLE (entier)


FrontBase Fonctions


fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_affected_rowsLit le nombre de lignes affectées par la dernière requête

Description

int fbsql_affected_rows ([ resource $link_identifier ] )

fbsql_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE, effectuée avec la connexion représentée par link_identifier.

Note:

Si vous utilisez les transactions, vous devez appeler fbsql_affected_rows() après votre requête INSERT, UPDATE ou DELETE, et non après la validation.

Si la dernière requête DELETE ne contenait pas de clause WHERE, toutes les lignes seront effacées, mais fbsql_affected_rows() retournera 0.

Note:

Lors d'une requête UPDATE, FrontBase ne modifie pas les lignes dont les anciennes valeurs sont égales aux nouvelles. Cela fait que fbsql_affected_rows() ne retournera pas le nombre de lignes traitées, mais le nombre de lignes affectées (modifiées) par la requête.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Si la dernière requête échoue, fbsql_affected_rows() retourne -1.

Voir aussi



fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_autocommitActive ou désactive la validation automatique

Description

bool fbsql_autocommit ( resource $link_identifier [, bool $OnOff ] )

Retourne l'état courant de la validation automatique.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

OnOff

Si ce paramètre optionnel est fourni, le statut de l'autovalidation sera changé.

Si le paramètre onoff vaut TRUE, FBSQL va se mettre en mode d'autovalidation, et les requêtes seront validées automatiquement si aucune erreur n'est trouvée.

Si le paramètre onoff vaut FALSE, FBSQL va se mettre en mode de validation manuelle, et les requêtes seront validées par l'appel de la fonction fbsql_commit() ou annulées par fbsql_rollback().

Valeurs de retour

Retourne le statut courant de l'autovalidation, sous la forme d'un booléen.

Voir aussi



fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_blob_sizeRetourne la taille d'un BLOB

Description

int fbsql_blob_size ( string $blob_handle [, resource $link_identifier ] )

Retourne la taille du BLOB fourni.

Liste de paramètres

blob_handle

Un gestionnaire de BLOB, retourné par la fonction fbsql_create_blob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne la taille du BLOB, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi



fbsql_change_user

(PHP 4 >= 4.0.6, PHP 5)

fbsql_change_userChange le nom d'utilisateur de la session active

Description

bool fbsql_change_user ( string $user , string $password [, string $database [, resource $link_identifier ]] )

fbsql_change_user() change le nom de l'utilisateur sur la session courante. Si l'identification du nouvel utilisateur échoue, l'utilisateur courant reste actif.

Liste de paramètres

user

Le nom du nouvel utilisateur.

password

Le mot de passe du nouvel utilisateur.

database

Si spécifié, ce sera la base de données par défaut après le changement d'utilisateur.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_clob_sizeRetourne la taille d'un CLOB

Description

int fbsql_clob_size ( string $clob_handle [, resource $link_identifier ] )

Retourne la taille du CLOB fourni.

Liste de paramètres

clob_handle

Un gestionnaire de CLOB, retourné par la fonction fbsql_create_clob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne la taille du CLOB, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi



fbsql_close

(PHP 4 >= 4.0.6, PHP 5)

fbsql_closeFerme la connexion FrontBase

Description

bool fbsql_close ([ resource $link_identifier ] )

Ferme la connexion au serveur FrontBase associée à la ressource spécifiée.

Utiliser fbsql_close() n'est pas nécessaire, car les liens non persistants seront automatiquement fermés à la fin du script.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_close()

<?php
$link 
fbsql_connect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
echo 
"Connecté !";
fbsql_close($link);
?>

Voir aussi



fbsql_commit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_commitValide une transaction

Description

bool fbsql_commit ([ resource $link_identifier ] )

Termine la transaction courante en sauvant toutes les insertions, modifications et effacements sur le serveur, puis en relâchant tous les verrous qui ont été posés sur les tables. Cette commande n'est nécessaire que si FBSQL est en mode de validation manuelle.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fbsql_connect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_connectOuvre une connexion à un serveur FrontBase

Description

resource fbsql_connect ([ string $hostname = ini_get("fbsql.default_host") [, string $username = ini_get("fbsql.default_user") [, string $password = ini_get("fbsql.default_password") ]]] )

fbsql_connect() établit une connexion avec un serveur FrontBase.

Si un deuxième appel est fait à fbsql_connect() avec les mêmes arguments, une nouvelle connexion ne sera pas générée, mais la connexion déjà ouverte sera réutilisée, et retournée.

La connexion au serveur sera fermée dès la fin du script, à moins qu'elle ne soit explicitement terminée plus tôt, avec la fonction fbsql_close().

Liste de paramètres

hostname

Le nom du serveur hôte.

username

Le nom de l'utilisateur pour la connexion.

password

Le mot de passe pour la connexion.

Valeurs de retour

Retourne une ressource de connexion positive FrontBase en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_connect()

<?php

$link 
fbsql_connect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
echo 
"Connexion effectuée !";
fbsql_close($link);

?>

Voir aussi



fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_blobCrée un BLOB

Description

string fbsql_create_blob ( string $blob_data [, resource $link_identifier ] )

Crée un BLOB à partir des données fournies.

Liste de paramètres

blob_data

Les données BLOB.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un gestionnaire de ressource BLOB qui peut être utilisé avec les commandes insertions ou de mise à jour pour stocker le BLOB dans la base de données.

Exemples

Exemple #1 Exemple avec fbsql_create_blob()

<?php
$link 
fbsql_pconnect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
$filename "blobfile.bin";
$fp fopen($filename"rb");
$blobdata fread($fpfilesize($filename));
fclose($fp);

$blobHandle fbsql_create_blob($blobdata$link);

$sql "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
$rs fbsql_query($sql$link);
?>

Voir aussi



fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_clobCrée un CLOB

Description

string fbsql_create_clob ( string $clob_data [, resource $link_identifier ] )

Crée un CLOB à partir des données fournies.

Liste de paramètres

clob_data

Les données CLOB.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un gestionnaire de ressource CLOB qui pourra être utilisé avec les commandes d'insertion ou de mise à jour pour stocker le CLOB dans la base de données.

Exemples

Exemple #1 Exemple avec fbsql_create_clob()

<?php
$link 
fbsql_pconnect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
$filename "clob_file.txt";
$fp fopen($filename"rb");
$clobdata fread($fpfilesize($filename));
fclose($fp);

$clobHandle fbsql_create_clob($clobdata$link);

$sql "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
$rs fbsql_query($sql$link);
?>

Voir aussi



fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_create_dbCrée une base de données

Description

bool fbsql_create_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Tente de créer une nouvelle base de données sur le serveur spécifié.

Liste de paramètres

database_name

Le nom de la base de données, sous la forme d'une chaîne de caractères.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_create_db()

<?php
$link 
fbsql_pconnect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
if (
fbsql_create_db("my_db")) {
    echo 
"Base de données créée avec succès\n";
} else {
    
printf("Erreur de création de la base de données : %s\n"fbsql_error());
}
?>

Voir aussi



fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_data_seekDéplace le pointeur interne de résultat FBSQL

Description

bool fbsql_data_seek ( resource $result , int $row_number )

Déplace le pointeur interne de ligne dans le résultat de requête result_identifier jusqu'à la ligne row_number.

Le prochain appel à la fonction fbsql_fetch_row() retournera cette ligne.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

row_number

Le numéro de la ligne. Commence à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_data_seek()

<?php
$link 
fbsql_pconnect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");

fbsql_select_db("samp_db")
    or die(
"Impossible de sélectionner une base");

$query "SELECT last_name, first_name FROM friends;";
$result fbsql_query($query)
    or die(
"La requête a échoué");

// Lecture des lignes en ordre inverse

for ($i fbsql_num_rows($result) - 1$i >=0$i--) {
    if (!
fbsql_data_seek($result$i)) {
        
printf("Impossible d'accéder à la ligne %d\n"$i);
        continue;
    }

    if (!(
$row fbsql_fetch_object($result)))
        continue;

    echo 
$row->last_name $row->first_name "<br />\n";
}

fbsql_free_result($result);
?>



fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database_passwordModifie/lit le mot de passe dans une base FBSQL

Description

string fbsql_database_password ( resource $link_identifier [, string $database_password ] )

Modifie et lit le mot de passe de la base de données courante. Si la base de données est protégée par un mot de passe, l'utilisateur doit appeler cette fonction avant d'appeler la fonction fbsql_select_db().

Si aucune connexion n'a été ouverte PHP essaiera d'en ouvrir une en appelant la fonction fbsql_connect(), et en utilisant la connexion qui en résultera (si elle réussit).

Cette fonction ne modifie pas le mot de passe d'accès au serveur qui est stocké sur le serveur, et elle ne permet pas non plus d'aller lire ce mot de passe.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_password

Le mot de passe, sous la forme d'une chaîne de caractères. Si fourni, la fonction définira le mot de passe de base de données pour la connexion courante.

Valeurs de retour

Retourne le mot de passe de base de données associé à la connexion courante.

Exemples

Exemple #1 Exemple avec fbsql_create_clob()

<?php
$link 
fbsql_pconnect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
fbsql_database_password($link"secret db password");
fbsql_select_db($database$link);
?>

Voir aussi



fbsql_database

(PHP 4 >= 4.0.6, PHP 5)

fbsql_databaseLit ou définit le nom de la base de données utilisée avec une connexion

Description

string fbsql_database ( resource $link_identifier [, string $database ] )

Lit ou définit le nom de la base de données utilisée avec la connexion fournie.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database

Le nom de la base de données. Si fourni, la base de données par défaut pour la connexion sera changé en database.

Valeurs de retour

Retourne le nom de la base de données utilisée avec cette connexion.



fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_db_queryEnvoie une requête à la base FrontBase

Description

resource fbsql_db_query ( string $database , string $query [, resource $link_identifier ] )

Sélectionne une base de données et y exécute une requête.

Liste de paramètres

database

La base de données à sélectionner.

query

La requête SQL à exécuter.

Note:

La requête doit toujours se terminer par un point virgule.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un identifiant de résultat positif FrontBase ou FALSE si une erreur survient.

Voir aussi



fbsql_db_status

(PHP 4 >= 4.0.7, PHP 5)

fbsql_db_statusLit le statut courant d'une base de données

Description

int fbsql_db_status ( string $database_name [, resource $link_identifier ] )

Lit le statut courant de la base de données fournie.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un entier correspondant au statut courant. Il peut être une des constantes suivantes :

  • FALSE - Le gestion de cet hôte était invalide. Cette erreur survient lorsque PHP se connecte directement à une base de données en utilisant un numéro de port. FBExec peut être disponible sur un serveur, mais aucune connexion n'a été faite.
  • FBSQL_UNKNOWN - Le statut est inconnu.
  • FBSQL_STOPPED - La base de données ne fonctionne pas. Utilisez fbsql_start_db() pour démarrer la base.
  • FBSQL_STARTING - La base de données démarre.
  • FBSQL_RUNNING - La base de données fonctionne, et est disponible pour recevoir des requêtes SQL.
  • FBSQL_STOPPING - La base de données s'arrête.
  • FBSQL_NOEXEC - FBExec ne fonctionne par sur le serveur, et il n'est pas possible d'obtenir le statut de la base de données.

Voir aussi



fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_drop_dbSupprime une base de données FrontBase

Description

bool fbsql_drop_db ( string $database_name [, resource $link_identifier ] )

fbsql_drop_db() essaie de supprimer la base de données database_name, sur la connexion représentée par link_identifier.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fbsql_errno

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errnoRetourne le code d'erreur FrontBase

Description

int fbsql_errno ([ resource $link_identifier ] )

Retourne le code d'erreur de la dernière opération sur la connexion FrontBase fournie.

Les erreurs générées par FrontBase ne sont pas automatiquement affichées comme alertes. Il faut utiliser la fonction fbsql_errno() pour connaître leur code d'erreur. Notez que cette fonction ne retourne que le code d'erreur généré par la dernière fonction FrontBase (hormis fbsql_error() et fbsql_errno()) : si vous voulez repérer les erreurs, faites-le dès que les fonctions ont été appelées.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne le numéro de l'erreur généré par la dernière fonction fbsql ou 0 si aucune erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_errno()

<?php
fbsql_connect
("marliesle");
echo 
fbsql_errno() . ": " fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo 
fbsql_errno() . ": " fbsql_error() . "<br />";
$conn fbsql_query("SELECT * FROM nonexistenttable;");
echo 
fbsql_errno() . ": " fbsql_error() . "<br />";
?>

Voir aussi



fbsql_error

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errorRetourne le message d'erreur FrontBase

Description

string fbsql_error ([ resource $link_identifier ] )

Retourne le dernier message d'erreur généré par le serveur FrontBase.

Les erreurs générées par FrontBase ne sont pas automatiquement affichées comme alertes. Il faut utiliser la fonction fbsql_errno() pour connaître leur code d'erreur. Notez que cette fonction ne retourne que le code d'erreur généré par la dernière fonction FrontBase (hormis fbsql_error() et fbsql_errno()) : si vous voulez repérer les erreurs, faites-le dès que les fonctions ont été appelées.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne le texte de l'erreur générée par la dernière fonction fbsql ou '' (une chaîne vide) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec fbsql_error()

<?php
fbsql_connect
("marliesle");
echo 
fbsql_errno() . ": " fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo 
fbsql_errno() . ": " fbsql_error() . "<br />";
$conn fbsql_query("SELECT * FROM nonexistenttable;");
echo 
fbsql_errno() . ": " fbsql_error() . "<br />";
?>

Voir aussi



fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_arrayLit toute une ligne de résultat dans un tableau

Description

array fbsql_fetch_array ( resource $result [, int $result_type ] )

fbsql_fetch_array() est une combinaison de fbsql_fetch_row() et fbsql_fetch_assoc().

Il est important de noter que fbsql_fetch_array() n'est pas significativement plus lente que fbsql_fetch_row(), tandis qu'elle apporte un confort d'utilisation notable.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

result_type

Une constante et peut prendre les valeurs suivantes : FBSQL_ASSOC, FBSQL_NUM, ou FBSQL_BOTH.

Lors de l'utilisation de FBSQL_BOTH, en plus de stocker les indices numériques du tableau de résultats, il stockera les données dans des indices associatifs, en utilisant les noms des champs comme clés.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne de disponible.

Si deux colonnes (ou plus) ont le même nom, la dernière colonne sera utilisée. Pour accéder aux autres colonnes de même nom, vous devez absolument utiliser les indices numériques.

select t1.f1 as foo t2.f1 as bar from t1, t2

Exemples

Exemple #1 Exemple avec fbsql_fetch_array()

<?php
fbsql_connect
($host$user$password);
$result fbsql_db_query("database""select user_id, fullname from table");
while (
$row fbsql_fetch_array($result)) {
    echo 
"user_id: " $row["user_id"] . "<br />\n";
    echo 
"user_id: " $row[0] . "<br />\n";
    echo 
"Nom complet : " $row["fullname"] . "<br />\n";
    echo 
"Nom complet : " $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Voir aussi



fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_assocLit toute une ligne de résultat dans un tableau associatif

Description

array fbsql_fetch_assoc ( resource $result )

fbsql_fetch_assoc() est équivalent à fbsql_fetch_array() avec l'option FBSQL_ASSOC. Elle ne retourne qu'un tableau associatif.

C'est le comportement initial de fbsql_fetch_array(). Si vous avez aussi besoin des indices numériques, utilisez fbsql_fetch_array().

Il est important de noter que fbsql_fetch_assoc() n'est pas significativement plus lente que fbsql_fetch_row(), tandis qu'elle apporte un confort d'utilisation notable.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau associatif contenant la ligne courante du résultat, ou FALSE s'il n'y a plus de lignes.

Si deux colonnes (ou plus) ont le même nom, la dernière colonne sera utilisée. Pour accéder aux autres colonnes de même nom, vous devez absolument utiliser la fonction fbsql_fetch_array().

Exemples

Exemple #1 Exemple avec fbsql_fetch_assoc()

<?php
fbsql_connect
($host$user$password);
$result fbsql_db_query("database""select * from table");
while (
$row fbsql_fetch_assoc($result)) {
    echo 
$row["user_id"];
    echo 
$row["fullname"];
}
fbsql_free_result($result);
?>

Voir aussi



fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_fieldLit des informations sur une colonne dans un résultat, et retourne un objet

Description

object fbsql_fetch_field ( resource $result [, int $field_offset ] )

Sert à lire des informations sur les champs dans le résultat fourni.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

L'offset numérique du champ. L'index du champ commence à 0. Si aucun n'est spécifié, le prochain champ qui n'a pas été récupéré par la fonction fbsql_fetch_field() sera retourné.

Valeurs de retour

Retourne un objet contenant les informations sur le champ ou FALSE si une erreur survient.

Les propriétés de l'objet sont :

  • "name" : nom de colonne
  • "table" : nom de la table d'origine
  • "max_length" : taille maximale de la colonne
  • "not_null" : 1 si la colonne ne peut être nulle
  • "type" : type de la colonne

Exemples

Exemple #1 Exemple avec fbsql_fetch_field()

<?php
fbsql_connect
($host$user$password)
    or die(
"Impossible de se connecter");
$result fbsql_db_query("database""select * from table")
    or die(
"La requête a échoué");
// lire les données de colonnes
$i 0;
while (
$i fbsql_num_fields($result)) {
    echo 
"Information de la colonne $i:<br />\n";
    
$meta fbsql_fetch_field($result);
    if (!
$meta) {
        echo 
"Aucune information disponible<br />\n";
    }
    echo 
"<pre>
max_length:   
$meta->max_length
name:         
$meta->name
not_null:     
$meta->not_null
table:        
$meta->table
type:         
$meta->type
</pre>"
;
    
$i++;
}
fbsql_free_result($result);
?>

Voir aussi



fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_lengthsLit la taille de chaque colonne d'un résultat

Description

array fbsql_fetch_lengths ( resource $result )

Stocke les tailles de chaque ligne de résultat retournée par fbsql_fetch_row(), fbsql_fetch_array() et fbsql_fetch_object() dans un tableau à indices numériques, commençant à 0.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau, commençant à l'offset 0, qui correspond aux tailles de chaque champ présent dans la dernière ligne récupérée par la fonction fbsql_fetch_row(), ou FALSE si une erreur survient.

Voir aussi



fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_objectLit une ligne de résultat sous forme d'objet

Description

object fbsql_fetch_object ( resource $result )

fbsql_fetch_object() est similaire à fbsql_fetch_array(), à la différence qu'elle retourne un objet. Vous ne pouvez alors accéder aux données qu'avec les noms des colonnes, et sous la forme de membres d'objet, et non plus avec leurs index (les nombres ne peuvent représenter un membre d'objet).

En terme de vitesse, cette fonction est identique à fbsql_fetch_array() et presque aussi rapide que fbsql_fetch_row() (la différence n'est pas significative).

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un objet dont les propriétés correspondent à la ligne récupérée ou FALSE s'il n'y a plus de ligne à lire.

Exemples

Exemple #1 Exemple avec fbsql_fetch_object()

<?php
fbsql_connect
($host$user$password);
$result fbsql_db_query("database""select * from table");
while (
$row fbsql_fetch_object($result)) {
    echo 
$row->user_id;
    echo 
$row->fullname;
}
fbsql_free_result($result);
?>

Voir aussi



fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_rowLit une ligne de résultat sous forme de tableau numérique

Description

array fbsql_fetch_row ( resource $result )

fbsql_fetch_row() lit une ligne de données dans le résultat result et crée un tableau indexé.

Le prochain appel à fbsql_fetch_row() va lire la prochaine ligne, ou bien retourner FALSE s'il n'y a plus de ligne à lire.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée où chaque colonne du résultat y est stocké, en commençant par la position 0 ou FALSE s'il n'y a plus de ligne à lire.

Voir aussi



fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_flagsLit les options associées à une colonne de résultat

Description

string fbsql_field_flags ( resource $result [, int $field_offset ] )

Lit les options associées à la colonne de résultat spécifiée dans le résultat.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne les options du champ field_offset, dans le résultat result. Les options sont retournées sous la forme d'un seul mot par option, séparées par des espaces, de façon à faciliter la manipulation avec explode().



fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_lenRetourne la taille d'un champ

Description

int fbsql_field_len ( resource $result [, int $field_offset ] )

Retourne la taille du champ spécifié.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne la taille du champ spécifié.



fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_nameLit le nom d'un champ

Description

string fbsql_field_name ( resource $result [, int $field_index ] )

Lit le nom d'un champ à un index spécifié.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_index

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne le nom sous la forme d'une chaîne de caractères ou FALSE si le champ n'existe pas.

Exemples

Exemple #1 Exemple avec fbsql_field_name()

<?php
// La table utilisateur est constituée de trois colonnes :
//   user_id
//   username
//   password

$res fbsql_db_query("users""select * from users"$link);

echo 
fbsql_field_name($res0) . "\n";
echo 
fbsql_field_name($res2);
?>

L'exemple ci-dessus va afficher :

user_id
password

Voir aussi



fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_seekDéplace le pointeur de résultat

Description

bool fbsql_field_seek ( resource $result [, int $field_offset ] )

Place le pointeur de colonne à la colonne spécifiée. Si le prochain appel à fbsql_fetch_field() n'inclut pas un pointeur de champs, le pointeur du champ spécifié dans fbsql_field_seek() sera retourné.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_fetch_field() - Lit des informations sur une colonne dans un résultat, et retourne un objet



fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_tableLit le nom de la table d'origine d'un champ

Description

string fbsql_field_table ( resource $result [, int $field_offset ] )

Retourne le nom de la table d'où est issu le champ spécifié.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne le nom de la table, sous la forme d'une chaîne de caractères.



fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_typeLit le type d'une colonne

Description

string fbsql_field_type ( resource $result [, int $field_offset ] )

fbsql_field_type() est similaire à la fonction fbsql_field_name(). Les arguments sont identiques, mais le type du champ est retourné.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne le type du champ sous la forme d'une chaîne de caractères.

Ce type peut être un parmi int, real, string, blob, et d'autres, tel que spécifié dans la » documentation de FrontBase.

Exemples

Exemple #1 Exemple avec fbsql_field_type()

<?php

fbsql_connect
("localhost""_SYSTEM""");
fbsql_select_db("wisconsin");
$result fbsql_query("SELECT * FROM onek;");
$fields fbsql_num_fields($result);
$rows   fbsql_num_rows($result);
$i 0;
$table fbsql_field_table($result$i);
echo 
"Votre table '" $table "' a " $fields " colonnes et " $rows " lignes <br />";
echo 
"TLa table dispose des champs suivants <br />";
while (
$i $fields) {
    
$type  fbsql_field_type($result$i);
    
$name  fbsql_field_name($result$i);
    
$len   fbsql_field_len($result$i);
    
$flags fbsql_field_flags($result$i);
    echo 
$type " " $name " " $len " " $flags "<br />";
    
$i++;
}
fbsql_close();

?>

Voir aussi



fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_free_resultLibère le résultat de la mémoire

Description

bool fbsql_free_result ( resource $result )

Libérer toute la mémoire utilisée par le résultat associé à la ressource result.

fbsql_free_result() n'a besoin d'être appelé que si vous craignez que votre script ne consomme trop de mémoire, lorsqu'une requête retourne de très grands résultats. Toutes les ressources mémoire utilisées par le script sont de toute manière libérées à la fin du script.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



fbsql_get_autostart_info

(PHP 4 >= 4.0.7, PHP 5)

fbsql_get_autostart_info

Description

array fbsql_get_autostart_info ([ resource $link_identifier ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.



fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5)

fbsql_hostnameLit ou définit le nom de l'hôte à utiliser avec une connexion

Description

string fbsql_hostname ( resource $link_identifier [, string $host_name ] )

Lit ou définit le nom de l'hôte à utiliser avec une connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

host_name

Si fourni, ce sera le nouveau nom de l'hôte à utiliser.

Valeurs de retour

Retourne le nom de l'hôte courant pour la connexion.

Voir aussi

  • fbsql_username() - Lit ou définit le nom de login à utiliser avec une connexion
  • fbsql_password() - Lit ou définit le mot de passe à utiliser avec une connexion



fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5)

fbsql_insert_idLit le dernier identifiant généré par une requête INSERT

Description

int fbsql_insert_id ([ resource $link_identifier ] )

Retourne l'identifiant généré par la colonne de type DEFAULT UNIQUE, lors de la dernière requête INSERT.

Note:

La valeur de la fonction FrontBase SQL fbsql_insert_id() retourne toujours la dernière valeur générée par DEFAULT UNIQUE et n'est jamais annulée entre les requêtes.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne l'identifiant généré depuis la dernière requête INSERT, ou 0 si la dernière requête n'a pas générée une valeur DEFAULT UNIQUE.

Si vous devez sauver cette valeur pour plus tard, n'oubliez pas d'appeler fbsql_insert_id() tout de suite après la requête qui a généré cette valeur.

Voir aussi



fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_dbsListe les bases de données FBSQL

Description

resource fbsql_list_dbs ([ resource $link_identifier ] )

Retourne un résultat contenant la liste des bases de données disponibles sur le serveur link_identifier. Utilisez la fonction fbsql_tablename() pour passer en revue ce résultat.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_list_dbs()

<?php
$link 
fbsql_connect('localhost''myname''secret');
$db_list fbsql_list_dbs($link);

while (
$row fbsql_fetch_object($db_list)) {
    echo 
$row->Database "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

database1
database2
database3
...

Note:

L'exemple ci-dessus peut aussi bien fonctionner avec la fonction fbsql_fetch_row() ou toute autre similaire.

Voir aussi



fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_fieldsListe les champs d'une table FrontBase

Description

resource fbsql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )

Liste les champs d'une table fournie.

Liste de paramètres

database_name

Le nom de la base de données.

table_name

Le nom de la table.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat qui pourra être utilisé avec les fonctions fbsql_field_xxx ou FALSE si une erreur survient.

Erreurs / Exceptions

Une chaîne décrivant l'erreur sera placée dans la variable $phperrmsg, et ce, même si la fonction a été appelée comme ceci : @fbsql(), puis, l'erreur sera également affichée.

Exemples

Exemple #1 Exemple avec fbsql_list_fields()

<?php
$link 
fbsql_connect('localhost''myname''secret');

$fields fbsql_list_fields("database1""table1"$link);
$columns fbsql_num_fields($fields);

for (
$i 0$i $columns$i++) {
    echo 
fbsql_field_name($fields$i) . "\n";;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

field1
field2
field3
...

Voir aussi



fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_tablesListe les tables dans une base de données FrontBase

Description

resource fbsql_list_tables ( string $database [, resource $link_identifier ] )

Retourne un pointeur de résultat décrivant la base de données database.

Liste de paramètres

database

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat qui pourra être utilisé avec la fonction fbsql_tablename() pour lire les noms des tables ou FALSE si une erreur survient.

Voir aussi



fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_next_resultDéplace le pointeur interne vers le résultat suivant

Description

bool fbsql_next_result ( resource $result )

Lorsque vous envoyez plus d'une commande SQL au serveur ou que vous exécutez une procédure stockée avec de multiples résultats, cela va conduire le serveur à retourner plusieurs jeux de lignes. fbsql_next_result() va vérifier l'existence de plusieurs résultats disponibles sur le serveur. Si un autre jeu de résultats existe, fbsql_next_result() va détruire le résultat précédent et préparer la lecture dans les nouvelles lignes.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne TRUE si un jeu de résultats additionnel est disponible, FALSE sinon.

Exemples

Exemple #1 Exemple avec fbsql_next_result()

<?php
$link 
fbsql_connect("localhost""_SYSTEM""secret");
fbsql_select_db("MyDB"$link);
$SQL "Select * from table1; select * from table2;";
$rs fbsql_query($SQL$link);
do {
    while (
$row fbsql_fetch_row($rs)) {
    }
} while (
fbsql_next_result($rs));
fbsql_free_result($rs);
fbsql_close($link);
?>



fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_fieldsLit le nombre de champs dans un résultat

Description

int fbsql_num_fields ( resource $result )

Retourne le nombre de champs dans le résultat result.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi



fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_rowsLit le nombre de lignes dans un résultat

Description

int fbsql_num_rows ( resource $result )

Lit le nombre de lignes dans le jeu de résultats result.

Cette fonction n'est valable qu'avec les commandes SELECT. Pour connaître le nombre de lignes dans une requête INSERT, UPDATE ou DELETE, utilisez fbsql_affected_rows().

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de lignes retourné par la dernière requête SELECT.

Exemples

Exemple #1 Exemple avec fbsql_num_rows()

<?php

$link 
fbsql_connect("localhost""username""password");
fbsql_select_db("database"$link);

$result fbsql_query("SELECT * FROM table1;"$link);
$num_rows fbsql_num_rows($result);

echo 
"$num_rows lignes\n";

?>

Voir aussi



fbsql_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_passwordLit ou définit le mot de passe à utiliser avec une connexion

Description

string fbsql_password ( resource $link_identifier [, string $password ] )

Lit ou définit le mot de passe à utiliser avec une connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

password

Si fourni, il sera le nouveau mot de passe pour la connexion.

Valeurs de retour

Retourne le mot de passe courant pour la connexion.

Voir aussi

  • fbsql_username() - Lit ou définit le nom de login à utiliser avec une connexion
  • fbsql_hostname() - Lit ou définit le nom de l'hôte à utiliser avec une connexion



fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_pconnectOuvre une connexion persistante sur un serveur FrontBase

Description

resource fbsql_pconnect ([ string $hostname = ini_get("fbsql.default_host") [, string $username = ini_get("fbsql.default_user") [, string $password = ini_get("fbsql.default_password") ]]] )

Ouvre une connexion persistante sur un serveur FrontBase.

Pour choisir le port d'accès au serveur FrontBase, voyez fbsql_select_db().

fbsql_pconnect() se comporte comme fbsql_connect() avec deux différences majeures :

Premièrement, lors de la connexion, fbsql_pconnect() essaie de trouver une connexion permanente déjà ouverte sur cet hôte, avec les mêmes nom d'utilisateur et mot de passe. Si une telle connexion est trouvée, son identifiant est retourné sans ouvrir de nouvelle connexion.

Deuxièmement, la connexion au serveur fbssl ne sera pas terminée avec la fin du script. Au lieu de cela, le lien sera conservé pour un prochain accès (fbsql_close() ne terminera pas une connexion persistante établie par fbsql_pconnect()).

C'est pourquoi ce type de connexion est dit 'persistant'.

Liste de paramètres

hostname

Le nom de l'hôte du serveur.

username

Le nom d'utilisateur pour la connexion.

password

Le mot de passe pour la connexion.

Valeurs de retour

Retourne un identifiant de connexion persistante FrontBase en cas de succès, ou FALSE si une erreur survient.

Voir aussi



fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_queryExécute une requête sur un serveur FrontBase

Description

resource fbsql_query ( string $query [, resource $link_identifier [, int $batch_size ]] )

Envoie la requête query à la base de données courante, sur le serveur.

Lorsque la requête réussit, vous pouvez utilisez fbsql_num_rows() pour savoir combien de lignes ont été retournées par une requête SELECT, ou fbsql_affected_rows() pour les autres requêtes (DELETE, INSERT, REPLACE et UPDATE).

Liste de paramètres

query

La requête SQL à exécuter.

Note:

La requête doit toujours se terminer par un point virgule.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

batch_size

Valeurs de retour

fbsql_query() retourne une ressource en cas de succès, ou FALSE, en cas d'échec. Si TRUE est retourné, cela signifie que la requête est correcte et qu'elle peut être exécutée par le serveur. Cela n'indique rien sur le nombre de lignes concernées ou retournées. Il est tout à fait possible qu'une requête réussisse mais qu'aucune ligne ne soit affectée ni retournée.

Pour les requêtes SELECT, fbsql_query() retourne une ressource de résultat, que vous pouvez passer à fbsql_result().

fbsql_query() échouera si vous n'avez pas les droits d'accès sur l'une des bases de données utilisées dans la requête.

Exemples

La requête suivante est invalide, et fbsql_query() échouera puis retournera FALSE :

Exemple #1 Exemple avec fbsql_query()

<?php
$result 
fbsql_query("SELECT * WHERE 1=1")
    or die (
"Requête invalide");
?>

La requête suivante est invalide si my_col n'est pas une colonne dans la table my_tbl : fbsql_query() échouera puis retournera FALSE :

Exemple #2 Exemple avec fbsql_query()

<?php
$result 
fbsql_query ("SELECT my_col FROM my_tbl;")
    or die (
"Requête invalide");
?>

Voir aussi



fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_blobLit un BLOB dans une base de données

Description

string fbsql_read_blob ( string $blob_handle [, resource $link_identifier ] )

Lit un BLOB d'une base de données.

Si une sélection contient une colonne de type BLOB et/ou de type CLOB, FrontBase retournera directement les données lors de la lecture. Ce comportement par défaut peut être modifié avec la fonction fbsql_set_lob_mode() pour que les fonctions de lecture ne retournent qu'un identifiant de BLOB ou CLOB. Si un identifiant est lu, il faut utiliser la fonction fbsql_read_blob() pour obtenir la valeur du BLOB.

Liste de paramètres

blob_handle

Un gestionnaire BLOB, retourné par la fonction fbsql_create_blob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne une chaîne de caractères contenant les données du BLOB spécifié.

Exemples

Exemple #1 Exemple avec fbsql_read_blob()

<?php
$link 
fbsql_pconnect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
$sql "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
$rs fbsql_query($sql$link);
$row_data fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant les données du blob de la première
// ligne
fbsql_free_result($rs);

$rs fbsql_query($sql$link);
fbsql_set_lob_mode($rsFBSQL_LOB_HANDLE);
$row_data fbsql_fetch_row($rs);
// $row_data[0] contient maintenant un gestionnaire vers les données BLOB
// dans la première ligne
$blob_data fbsql_read_blob($row_data[0]);
fbsql_free_result($rs);

?>

Voir aussi



fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_clobLit un CLOB dans une base de données

Description

string fbsql_read_clob ( string $clob_handle [, resource $link_identifier ] )

Lit un CLOB d'une base de données.

Si une sélection contient une colonne de type CLOB et/ou de type BLOB, FrontBase retournera directement les données lors de la lecture. Ce comportement par défaut peut être modifié avec la fonction fbsql_set_lob_mode() pour que les fonctions de lecture ne retournent qu'un identifiant de BLOB ou CLOB. Si un identifiant est lu, il faut utiliser la fonction fbsql_read_clob() pour obtenir la valeur du CLOB.

Liste de paramètres

clob_handle

Un gestionnaire CLOB, retourné par la fonction fbsql_create_clob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne une chaîne de caractères contenant les données du CLOB spécifié.

Exemples

Exemple #1 Exemple avec fbsql_read_clob()

<?php
$link 
fbsql_pconnect("localhost""_SYSTEM""secret")
    or die(
"Impossible de se connecter");
$sql "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
$rs fbsql_query($sql$link);
$row_data fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant les données du blob de la
// première ligne
fbsql_free_result($rs);

$rs fbsql_query($sql$link);
fbsql_set_lob_mode($rsFBSQL_LOB_HANDLE);
$row_data fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant un identifiant vers les
// données du clob de la première ligne
$clob_data fbsql_read_clob($row_data[0]);
fbsql_free_result($rs);

?>

Voir aussi



fbsql_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_resultLit des données dans un résultat

Description

mixed fbsql_result ( resource $result [, int $row [, mixed $field ]] )

Retourne le contenu d'une cellule depuis un jeu de résultat FrontBase.

Lorsque vous travaillez sur de grands résultats, il est vivement recommandé d'utiliser les fonctions qui lisent toute une ligne d'un coup, plutôt que fbsql_result() qui travaille ligne par ligne. Elles sont beaucoup plus rapides. Notez aussi que les offset numériques sont plus rapides que les offset nominaux.

L'utilisation de fbsql_result() ne doit pas être mélangée avec d'autres fonctions qui utilisent aussi le résultat result.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

row

field

Peut être la position du champ ou le nom du champ, ou le nom de la table, suivi d'un point, suivi du nom du champ (tablename.fieldname).

Si vous n'utilisez pas d'alias ('select foo as bar from...'), utilisez plutôt le nom de la colonne.

Note:

Le fait de spécifier une position numérique pour l'argument du champ est plus rapide que de spécifier le nom du champ ou la forme tablename.fieldname comme argument.

Valeurs de retour

Voir aussi

Alternatives vivement recommandées :



fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5)

fbsql_rollbackAnnule une transaction FBSQL

Description

bool fbsql_rollback ([ resource $link_identifier ] )

Termine la transaction courante en annulant toutes les requêtes émises depuis la dernière validation.

Cette commande n'est utile que si FrontBase est en mode de validation manuelle.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fbsql_rows_fetched

(PHP 5 >= 5.1.0)

fbsql_rows_fetchedRécupère le nombre de lignes affectées par la dernière requête

Description

int fbsql_rows_fetched ( resource $result )

Récupère le nombre de lignes affectées par la dernière requête.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.



fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_select_dbSélectionne une base de données FrontBase

Description

bool fbsql_select_db ([ string $database_name [, resource $link_identifier ]] )

Sélectionne une base de données FrontBase.

Le client contacte FBExec pour connaître le numéro de port à utiliser pour la connexion à la base de données. Si le nom de la base est un numéro, le système l'utilisera comme numéro de port, et ne le demandera pas à FBExec. Le serveur Frontbase peut être démarré avec la commande : FRontBase -FBExec=No -port=<port number> <database name>.

Tous les prochains appels à fbsql_query() se feront dans la base database_name.

Liste de paramètres

database_name

Le nom de la base de données à sélectionner.

Si la base de données est protégée avec un mot de passe, l'utilisateur doit appeler la fonction fbsql_database_password() avant de sélectionner la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fbsql_set_characterset

(PHP 5 >= 5.1.0)

fbsql_set_charactersetModifie le jeu de caractères pour l'entrée / sortie

Description

void fbsql_set_characterset ( resource $link_identifier , int $characterset [, int $in_out_both ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_lob_modeModifie le mode de lecture des LOB

Description

bool fbsql_set_lob_mode ( resource $result , int $lob_mode )

Modifie le mode de lecture des LOB depuis la base de données.

Lorsque des données BLOB ou CLOB sont stockées dans une base de données FrontBase, elles peuvent l'être de manière directe ou indirecte. Si les données sont stockées directement, elles seront automatiquement lues, quel que soit le mode choisi. Si un LOB fait moins de 512 octets, il sera aussi stocké directement.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

lob_mode

Peut être un parmi :

  • FBSQL_LOB_DIRECT - les données LOB sont lues directement. Lorsque les données sont lues dans la base avec fbsql_fetch_row() ou d'autres fonctions de lecture, toutes les colonnes de type CLOB et BLOB seront retournées comme des colonnes habituelles. C'est le comportement par défaut de FrontBase.
  • FBSQL_LOB_HANDLE - Les données LOB sont lues sous forme d'identifiants. Lorsque les données sont lues dans la base avec fbsql_fetch_row() ou d'autres fonctions de lecture, toutes les colonnes de type CLOB et BLOB seront retournées sous la forme d'un identifiant. Cet identifiant sera une chaîne de 27 caractères de long, formatée comme ceci : "@'000000000000000000000000'".

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fbsql_set_password

(PHP 5)

fbsql_set_passwordChange le mot de passe de l'utilisateur spécifié

Description

bool fbsql_set_password ( resource $link_identifier , string $user , string $password , string $old_password )

Change le mot de passe de l'utilisateur user.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

user

Le nom de l'utilisateur.

password

Le nouveau mot de passe à définir.

old_password

L'ancien mot de passe à remplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_transactionConfigure le verrouillage et l'isolation de transactions

Description

void fbsql_set_transaction ( resource $link_identifier , int $locking , int $isolation )

Configure le verrouillage et l'isolation de la transaction.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

locking

Le type de verrouillage à définir. Il peut être une constante parmi : FBSQL_LOCK_DEFERRED, FBSQL_LOCK_OPTIMISTIC, ou FBSQL_LOCK_PESSIMISTIC.

isolation

Le type d'isolation à définir. Il peut être une constante parmi : FBSQL_ISO_READ_UNCOMMITTED, FBSQL_ISO_READ_COMMITTED, FBSQL_ISO_REPEATABLE_READ, FBSQL_ISO_SERIALIZABLE, ou FBSQL_ISO_VERSIONED.

Valeurs de retour

Aucune valeur n'est retournée.



fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_start_dbDémarre une base de données FBSQL

Description

bool fbsql_start_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Démarre une base de données FBSQL.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_stop_dbStoppe une base de données FBSQL

Description

bool fbsql_stop_db ( string $database_name [, resource $link_identifier ] )

Stoppe une base de données FBSQL sur un serveur local ou distant.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fbsql_table_name

(PHP 4 >= 4.2.0, PHP 5)

fbsql_table_nameRécupère le nom de la table d'un champ

Description

string fbsql_table_name ( resource $result , int $index )

fbsql_table_name() récupère le nom de la table courante dans le jeu de résultats result.

La fonction fbsql_num_rows() peut être utilisée pour déterminer le nombre de tables dans le pointeur de résultats.

Liste de paramètres

result

Un pointeur de résultats retourné par la fonction fbsql_list_tables().

index

L'index de la table courante, sous la forme d'un entier.

Valeurs de retour

Retourne le nom de la table, sous le forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec fbsql_table_name()

<?php
fbsql_connect
("localhost""_SYSTEM""");
$result fbsql_list_tables("wisconsin");
$i 0;
while (
$i fbsql_num_rows($result)) {
    
$tb_names[$i] = fbsql_table_name($result$i);
    echo 
$tb_names[$i] . "<br />";
    
$i++;
}
?>



fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5)

fbsql_tablenameAlias de fbsql_table_name()

Description

Cette fonction est un alias de : fbsql_table_name().



fbsql_username

(PHP 4 >= 4.0.6, PHP 5)

fbsql_usernameLit ou définit le nom de login à utiliser avec une connexion

Description

string fbsql_username ( resource $link_identifier [, string $username ] )

Lit ou définit le nom de login à utiliser avec la connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

username

Si fourni, il sera le nouveau nom de l'utilisateur à définir.

Valeurs de retour

Retourne le nom de l'utilisateur courant utilisé avec la connexion, sous la forme d'une chaîne de caractères.

Voir aussi

  • fbsql_password() - Lit ou définit le mot de passe à utiliser avec une connexion
  • fbsql_hostname() - Lit ou définit le nom de l'hôte à utiliser avec une connexion



fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5)

fbsql_warningsActive ou désactive les alertes FrontBase

Description

bool fbsql_warnings ([ bool $OnOff ] )

Active ou désactive les alertes FrontBase.

Liste de paramètres

OnOff

Si l'on doit activer ou non les alertes.

Valeurs de retour

Retourne TRUE si les alertes sont actives, FALSE sinon.

Voir aussi


Sommaire




filePro


Introduction

Ces fonctions permettent de lire des données enregistrées dans des bases de données non modifiables filePro.

filePro est une marque de fP Technologies, Inc. Vous pouvez avoir plus de détails sur filePro en visitant » http://www.fptech.com/.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Le support de filePro n'est pas activé par défaut dans PHP. Pour utiliser le support fourni dans la distribution, qui assure l'accès en lecture seule, vous devez compiler PHP avec l'option --enable-filepro .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions filePro


filepro_fieldcount

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldcountRetourne le nombre de champs dans une base filePro

Description

int filepro_fieldcount ( void )

Retourne le nombre de champs (ou colonnes) d'une base filePro.

Valeurs de retour

Retourne le nombre de champs d'une base de donnée filePro ouverte, ou FALSE si une erreur survient.

Voir aussi



filepro_fieldname

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldnameRetourne le nom d'un champ filePro

Description

string filepro_fieldname ( int $field_number )

Retourne le nom du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champs.

Valeurs de retour

Retourne le nom du champs sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



filepro_fieldtype

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldtypeRetourne le type d'un champ filePro

Description

string filepro_fieldtype ( int $field_number )

Retourne le type du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champs.

Valeurs de retour

Retourne le type du champs sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



filepro_fieldwidth

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldwidthRetourne la taille d'un champ filePro

Description

int filepro_fieldwidth ( int $field_number )

Retourne la taille du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champs.

Valeurs de retour

Retourne la taille du champs sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



filepro_retrieve

(PHP 4, PHP 5 <= 5.1.6)

filepro_retrieveRetourne la valeur d'un champ filePro

Description

string filepro_retrieve ( int $row_number , int $field_number )

Retourne les données à partir de l'endroit spécifié dans la base de données.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Liste de paramètres

row_number

Le numéro de ligne. Doit être compris entre 0 et le nombre total de lignes moins une (0..filepro_rowcount() - 1)

field_number

Le numéro du champs. Doit être compris entre 0 et le nombre total de champs moins un (0..filepro_fieldcount() - 1)

Valeurs de retour

Retourne les données spécifiées, ou FALSE si une erreur survient.



filepro_rowcount

(PHP 4, PHP 5 <= 5.1.6)

filepro_rowcountRetourne le nombre de lignes dans une base filePro

Description

int filepro_rowcount ( void )

Retourne le nombre de lignes dans une base filePro.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Valeurs de retour

Retourne le nombre de lignes d'une base de données filePro ouverte, ou FALSE si une erreur survient.

Voir aussi



filepro

(PHP 4, PHP 5 <= 5.1.6)

fileproLit et vérifie un fichier

Description

bool filepro ( string $directory )

Lit et vérifie un fichier, puis enregistre le nombre de champs et de lignes.

Aucun verrouillage n'est pratiqué : il vaut alors mieux ne pas modifier la base filePro lorsqu'elle est ouverte par PHP.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Liste de paramètres

directory

Le dossier du fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire




Firebird/InterBase


Introduction

Firebird/InterBase est une base de données relationnelles offrant la plus part des fonctionnalités décrites dans la norme ANSI SQL-92, qui fonctionne sous environnements Linux, Windows, et la plus part des systèmes Unix. Firebird/InterBase offre une excellente simultanéité, de hautes performances et un langage efficace pour l'écriture des procédures stockées et des déclencheurs. Il est utilisé sur des systèmes de production depuis 1981.

Interbase est le nom de la variante commerciale de cette base de données créée par Borland/Inprise. Pour plus d'informations sur Interbase, allez à » http://www.borland.com/interbase/.

Firebird est un projet commercialement indépendant de programmeurs C et C++, conseillés techniques, supportant le développement et assurant la compatibilité multi-plate-forme de la base de données relationnelle basé sur le code source offert par Inprise Corp. (maintenant connu sous le nom de Borland Software Corp.) sous la licence "InterBase Public License v.1.0 le 25 Juillet 2000". Pour plus d'informations sur Firebird, allez à » http://www.firebirdsql.org/.

Note:

Cette extension supporte Interbase version 5 et suivante ainsi que toutes les versions de Firebird. Le support d'Interbase version 5.x sera supprimé dans PHP 5.

Cette base de données utilise les guillemets simples (') pour échapper les caractères, un peu comme le fait Sybase. Ajoutez à votre fichier php.ini la directive suivante :

magic_quotes_sybase = On



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour activer le support de ibase, vous devez compiler PHP avec l'option --with-interbase[=DIR] , où DIR est le dossier d'installation Interbase (qui est par défaut, /usr/interbase).

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : gds32.dll

Dans le cas où vous installeriez un serveur InterBase sur la même machine que celle faisant fonctionner PHP, vous devriez déjà avoir cette bibliothèque. Ainsi, ne vous en faites pas car gds32.dll sera déjà dans votre PATH.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration iBase
Nom Défaut Modifiable Historique
ibase.allow_persistent "1" PHP_INI_SYSTEM  
ibase.max_persistent "-1" PHP_INI_SYSTEM  
ibase.max_links "-1" PHP_INI_SYSTEM  
ibase.default_db NULL PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
ibase.default_user NULL PHP_INI_ALL  
ibase.default_password NULL PHP_INI_ALL  
ibase.default_charset NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
ibase.timestampformat "%Y-%m-%d %H:%M:%S" PHP_INI_ALL  
ibase.dateformat "%Y-%m-%d" PHP_INI_ALL  
ibase.timeformat "%H:%M:%S" PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ibase.allow_persistent booléen

Accepte ou non les connexions persistantes à Firebird/Interbase.

ibase.max_persistent entier

Le nombre maximal de connexions persistantes Firebird/Interbase par processus. Les nouvelles connexions avec ibase_pconnect() ne seront pas persistantes si ce nombre maximal est atteint.

Le nombre maximal de connexions Firebird/Interbase par processus, incluant les connexions persistantes.

ibase.default_db chaîne de caractères

Le nom de la base de données par défaut lorsque ibase_[p]connect() est appelé sans base de données spécifique. Si cette valeur est définie et que le mode sécurisé (safe mode) SQL est activé, aucune connexion à d'autres bases de données que celle-ci ne sera autorisée.

ibase.default_user chaîne de caractères

Le nom d'utilisateur utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_password chaîne de caractères

Le mot de passe utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_charset chaîne de caractères

Le jeux de caractères utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.timestampformat chaîne de caractères

ibase.dateformat chaîne de caractères

ibase.timeformat chaîne de caractères

Ces directives sont utilisées pour définir les formats de dates et d'heures qui seront utilisés lorsque des dates/heures seront retournées d'un jeux de résultat, ou lors de traitement d'arguments en paramètres dates/heures.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes peuvent être passées à la fonction ibase_trans() pour spécifier le comportement du traitement.

Constantes Firebird/InterBase
Constante Description
IBASE_DEFAULT Définit le comportement par défaut. Ce comportement est déterminé par la bibliothèque cliente, qui est définie comme IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT dans la plus part des cas.
IBASE_READ Démarre une transaction en lecture seul
IBASE_WRITE Démarre une transaction en lecture / écriture
IBASE_CONSISTENCY Démarre une transaction avec le niveau d'isolation définie à 'consistency', ce qui signifie que le transaction courante ne peut lire depuis des tables qui ont été modifiées par d'autres transactions.
IBASE_CONCURRENCY Démarre une transaction avec le niveau d'isolation définie à 'concurrency' (ou 'snapshot'), ce qui signifie que la transaction peut accéder à toutes les tables, mais ne peut pas voir les modifications apportées par d'autres transactions une fois que la transaction a débuté.
IBASE_COMMITTED Démarre une transaction avec le niveau d'isolation définie à 'read committed'. Ce flag doit être associé avec soit la constante IBASE_REC_VERSION, soit la constante IBASE_REC_NO_VERSION. Ce niveau d'isolation vous permet d'accéder aux modifications effectuées après le début de la transaction. Si la constante IBASE_REC_NO_VERSION est spécifiée, seulement la dernière version des lignes pourra être lue. Si la constante IBASE_REC_VERSION est spécifiée, une ligne peut toujours être lue lorsqu'une modification est en attente dans une transaction concurrente.
IBASE_WAIT Indique que la transaction peut attendre, puis réessayer lorsqu'un conflit apparaît.
IBASE_NOWAIT Indique que la transaction échouera immédiatement lorsqu'un conflit apparaît.

Les constantes suivantes peuvent être passées aux fonctions ibase_fetch_row(), ibase_fetch_assoc() ou ibase_fetch_object() pour spécifier leurs comportements.

Constantes Firebird/InterBase
Constante Description
IBASE_FETCH_BLOBS Aussi disponible sous le nom IBASE_TEXT pour des raisons de compatibilité ascendante. Permet de lire le contenu d'un BLOB "inline" au lieu de le parcourir en utilisant un identifiant de BLOB.
IBASE_FETCH_ARRAYS Permet de lire un tableau "inline". Sinon, les identifiants de tableaux sont retournés. Les identifiants de tableaux ne peuvent être passés uniquement comme arguments aux requêtes INSERT, car aucune fonction pour traiter les identifiants de tableaux n'est actuellement disponible.
IBASE_UNIXTIME Permet de retourner les champs date et heure non pas comme des chaînes de caractères mais comme des timestamps UNIX (le nombre de secondes depuis l'époque UNIX, qui est le 1-Jan-1970 0:00 UTC). Cela peut être problématique si vous utilisez des dates antérieures à 1970 sur quelques systèmes.

Les constantes suivantes sont utilisées pour passer des requêtes et des options à l'API (ibase_server_info(), ibase_db_info(), ibase_backup(), ibase_restore() et ibase_maintain_db()). Merci de consulter le manuel Firebird/InterBase pour plus d'informations sur la significations de ces options.

IBASE_BKP_IGNORE_CHECKSUMS
IBASE_BKP_IGNORE_LIMBO
IBASE_BKP_METADATA_ONLY
IBASE_BKP_NO_GARBAGE_COLLECT
IBASE_BKP_OLD_DESCRIPTIONS
IBASE_BKP_NON_TRANSPORTABLE
IBASE_BKP_CONVERT
Options de ibase_backup()
IBASE_RES_DEACTIVATE_IDX
IBASE_RES_NO_SHADOW
IBASE_RES_NO_VALIDITY
IBASE_RES_ONE_AT_A_TIME
IBASE_RES_REPLACE
IBASE_RES_CREATE
IBASE_RES_USE_ALL_SPACE
Options de ibase_restore()
IBASE_PRP_PAGE_BUFFERS
IBASE_PRP_SWEEP_INTERVAL
IBASE_PRP_SHUTDOWN_DB
IBASE_PRP_DENY_NEW_TRANSACTIONS
IBASE_PRP_DENY_NEW_ATTACHMENTS
IBASE_PRP_RESERVE_SPACE
IBASE_PRP_RES_USE_FULL
IBASE_PRP_RES
IBASE_PRP_WRITE_MODE
IBASE_PRP_WM_ASYNC
IBASE_PRP_WM_SYNC
IBASE_PRP_ACCESS_MODE
IBASE_PRP_AM_READONLY
IBASE_PRP_AM_READWRITE
IBASE_PRP_SET_SQL_DIALECT
IBASE_PRP_ACTIVATE
IBASE_PRP_DB_ONLINE
IBASE_RPR_CHECK_DB
IBASE_RPR_IGNORE_CHECKSUM
IBASE_RPR_KILL_SHADOWS
IBASE_RPR_MEND_DB
IBASE_RPR_VALIDATE_DB
IBASE_RPR_FULL
IBASE_RPR_SWEEP_DB
Options de ibase_maintain_db()
IBASE_STS_DATA_PAGES
IBASE_STS_DB_LOG
IBASE_STS_HDR_PAGES
IBASE_STS_IDX_PAGES
IBASE_STS_SYS_RELATIONS
Options de ibase_db_info()
IBASE_SVC_SERVER_VERSION
IBASE_SVC_IMPLEMENTATION
IBASE_SVC_GET_ENV
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Options de ibase_server_info()



Fonctions Firebird/InterBase


ibase_add_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_add_userAjoute un utilisateur à une base de données de sécurité (uniquement pour IB6 ou plus récent)

Description

bool ibase_add_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )

PHP 4 utilise les paramètres server, dba_user_name et dba_user_password au lieu de service_handle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_modify_user() - Modifie un utilisateur dans une base de données de sécurité (uniquement pour InterBase6 ou plus récent)
  • ibase_delete_user() - Efface un utilisateur d'une base de données de sécurité (uniquement pour IB6 ou plus récent)



ibase_affected_rows

(PHP 5)

ibase_affected_rowsRetourne le nombre de lignes affectées par la dernière requête iBase

Description

int ibase_affected_rows ([ resource $link_identifier ] )

Retourne le nombre de lignes qui ont été affectées par la dernière requête (INSERT, UPDATE ou DELETE) qui a été exécuté dans le contexte de transaction spécifié par link_identifier.

Liste de paramètres

link_identifier

Un contexte de transaction. Si link_identifier est une ressource de connexion, la transaction par défaut est utilisée.

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Voir aussi



ibase_backup

(PHP 5)

ibase_backupEffectue une sauvegarde de base de données InterBase

Description

mixed ibase_backup ( resource $service_handle , string $source_db , string $dest_file [, int $options = 0 [, bool $verbose = false ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ibase_blob_add

(PHP 4, PHP 5)

ibase_blob_addAjoute des données dans un BLOB iBase fraîchement créé

Description

void ibase_blob_add ( resource $blob_handle , string $data )

ibase_blob_add() ajoute les données data dans le BLOB blob_handle, créé avec ibase_blob_create().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_create().

data

Les données à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ibase_blob_cancel

(PHP 4, PHP 5)

ibase_blob_cancelAnnule la création d'un BLOB iBase

Description

bool ibase_blob_cancel ( resource $blob_handle )

ibase_blob_cancel() annule la création du BLOB blob_handle, créé par ibase_blob_create() s'il n'a pas encore été fermé avec ibase_blob_close().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ibase_blob_close

(PHP 4, PHP 5)

ibase_blob_closeFerme un BLOB ibase

Description

mixed ibase_blob_close ( resource $blob_handle )

ibase_blob_close() ferme le BLOB blob_handle, ouvert en lecture avec ibase_open_blob() ou en écriture avec ibase_blob_create().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_create() ou la fonction ibase_blob_open().

Valeurs de retour

Si le BLOB était lu, ibase_blob_close() retourne TRUE en cas de succès, s'il était en cours de modification, ibase_blob_close() retourne une chaîne de caractères contenant l'identifiant du BLOB qui lui a été assigné par la base de données. En cas d'échec, cette fonction retournera FALSE.

Voir aussi



ibase_blob_create

(PHP 4, PHP 5)

ibase_blob_createCrée un BLOB iBase pour ajouter des données

Description

resource ibase_blob_create ([ resource $link_identifier = NULL ] )

ibase_blob_create() crée un nouveau BLOB à remplir avec des données, sur la connexion InterBase link_identifier.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Retourne un identifiant de BLOB à utiliser avec ibase_blob_add() ou FALSE si une erreur survient.

Voir aussi



ibase_blob_echo

(PHP 4, PHP 5)

ibase_blob_echoAffiche le contenu d'un BLOB iBase au navigateur

Description

bool ibase_blob_echo ( string $blob_id )
bool ibase_blob_echo ( resource $link_identifier , string $blob_id )

ibase_blob_echo() ouvre le BLOB blob_id en lecture et envoie son contenu directement vers la sortie standard (le navigateur dans la plupart des cas).

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

blob_id

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ibase_blob_get

(PHP 4, PHP 5)

ibase_blob_getLit len octets de données dans un BLOB iBase ouvert

Description

string ibase_blob_get ( resource $blob_handle , int $len )

ibase_blob_get() retourne au plus len octets du BLOB blob_handle qui a été ouvert en lecture par ibase_blob_open().

Note:

Il n'est pas possible de lire dans un BLOB ouvert en écriture par ibase_blob_create().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_open().

len

La taille des données retournées.

Valeurs de retour

Retourne au plus, len octets du BLOB, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_blob_get()

<?php
$result    
ibase_query("SELECT blob_value FROM table");
$data      ibase_fetch_object($result);
$blob_data ibase_blob_info($data->BLOB_VALUE);
$blob_hndl ibase_blob_open($data->BLOB_VALUE);
echo         
ibase_blob_get($blob_hndl$blob_data[0]);
?>
Cet exemple ne fait pas plus qu'un ibase_blob_echo( $data->BLOB_VALUE ), mais il montre comment récupérer les informations dans une $variable pour les manipuler comme vous le voulez.

Voir aussi



ibase_blob_import

(PHP 4, PHP 5)

ibase_blob_importCrée un BLOB iBase, y copie un fichier et le referme

Description

string ibase_blob_import ( resource $link_identifier , resource $file_handle )
string ibase_blob_import ( resource $file_handle )

ibase_blob_import() crée un nouveau BLOB sur la connexion iBase link_identifier, y copie le fichier file_handle en entier, le referme et en retourne l'identifiant assigné

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

file_handle

La ressource de fichier, retournée par la fonction fopen().

Valeurs de retour

Retourne l'identifiant du BLOB en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_blob_import()

<?php
$dbh 
ibase_connect($host$username$password);
$filename '/tmp/bar';

$fd fopen($filename'r');
if (
$fd) {

    
$blob ibase_blob_import($dbh$fd);
    
fclose($fd);

    if (!
is_string($blob)) {
        
// échec de l'importation
    
} else {
        
$query "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
        
$prepared ibase_prepare($dbh$query);
        if (!
ibase_execute($prepared$blob)) {
            
// échec de l'insertion de l'enregistrement
        
}
    }
} else {
    
// impossible d'ouvrir le fichier
}
?>

Voir aussi



ibase_blob_info

(PHP 4, PHP 5)

ibase_blob_infoRetourne la taille d'un BLOB iBase et d'autres informations utiles

Description

array ibase_blob_info ( resource $link_identifier , string $blob_id )
array ibase_blob_info ( string $blob_id )

Retourne la taille d'un BLOB iBase et d'autres informations utiles.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

blob_id

L'identifiant du BLOB.

Valeurs de retour

Retourne un tableau contenant des informations à propos du BLOB blob_id. Les informations sont la taille du BLOB, le nombre de segments qu'il contient, la taille du segment le plus large, et indiquent s'il s'agit d'un BLOB stream ou segmenté.



ibase_blob_open

(PHP 4, PHP 5)

ibase_blob_openOuvre un BLOB iBase pour récupérer des parties de données

Description

resource ibase_blob_open ( resource $link_identifier , string $blob_id )
resource ibase_blob_open ( string $blob_id )

Ouvre un BLOB iBase pour récupérer des parties de données.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

blob_id

L'identifiant du BLOB.

Valeurs de retour

Retourne une ressource BLOB pour une utilisation avec la fonction ibase_blob_get() ou FALSE si une erreur survient.

Voir aussi



ibase_close

(PHP 4, PHP 5)

ibase_closeFerme une connexion à une base de données Interbase

Description

bool ibase_close ([ resource $connection_id = NULL ] )

Ferme une connexion à une base de données Interbase. Cette fonction prend comme argument l'identifiant de connexion connection_id retourné par ibase_connect(). Les transactions par défaut sont validées et les autres sont annulées.

Liste de paramètres

connection_id

Un identifiant de connexion à InterBase, retourné par la fonction ibase_connect(). S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_connect() - Ouvre une connexion à une base de données InterBase
  • ibase_pconnect() - Ouvre une connexion persistante à une base de données InterBase



ibase_commit_ret

(PHP 5)

ibase_commit_retValide une transaction iBase sans la refermer

Description

bool ibase_commit_ret ([ resource $link_or_trans_identifier = NULL ] )

Valide une transaction iBase sans la refermer.

Liste de paramètres

link_or_trans_identifier

Appelée sans argument, elle valide la transaction par défaut de la connexion par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, sa transaction par défaut est validée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera validée. Le contexte de transaction sera retenu et, donc, les requêtes exécutées dans cette transaction ne seront pas invalidées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_commit

(PHP 4, PHP 5)

ibase_commitValide une transaction iBase

Description

bool ibase_commit ([ resource $link_or_trans_identifier = NULL ] )

Valide une transaction iBase.

Liste de paramètres

link_or_trans_identifier

Appelée sans argument, elle valide la transaction par défaut de la connexion par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, sa transaction par défaut est validée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera validée. Le contexte de transaction sera retenu et, donc, les requêtes exécutées dans cette transaction ne seront pas invalidées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_connect

(PHP 4, PHP 5)

ibase_connectOuvre une connexion à une base de données InterBase

Description

resource ibase_connect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Ouvre une connexion à une base de données InterBase.

Si un deuxième appel est fait avec ibase_connect(), en passant les mêmes arguments, une nouvelle connexion ne sera pas ouverte, mais la connexion déjà ouverte sera retournée. La connexion sera fermée dès que le script se termine, à moins qu'elle ne soit fermée explicitement avec ibase_close(), durant le script.

Liste de paramètres

database

database doit être un chemin valide jusqu'à un fichier de base de données sur le serveur sur lequel il réside. Si le serveur est distant, il faut le préfixer avec un nom d'hôte 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) ou 'hostname@' (IPX/SPX), en fonction du protocole de communication utilisé.

username

Le nom d'utilisateur. Peut être défini avec la directive ibase.default_user du fichier php.ini.

password

Le mot de passe correspondant à l'utilisateur username. Peut être défini avec la directive ibase.default_password du fichier php.ini.

charset

charset est le jeu de caractères par défaut pour la base de données.

buffers

buffers est le nombre de buffer de base à allouer pour le cache serveur. S'il est passé à 0 ou omis, le serveur le choisira de lui-même.

dialect

dialect sélectionne le dialecte SQL pour les requêtes exécutées avec cette connexion et, par défaut, il utilise le meilleur dialecte disponible. Ceci ne fonctionne qu'avec InterBase 6 et supérieur.

role

Ne fonctionne qu'avec InterBase 5 et supérieur.

sync

Valeurs de retour

Retourne un identifiant de connexion InterBase en cas de succès, ou FALSE si une erreur survient.

Erreurs / Exceptions

Si vous avez quelques erreurs comme "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (cela se produit lorsque vous tentez d'utiliser quelques caractères accentués) lorsque vous utilisez ibase_connect() et après ibase_query(), vous devez spécifier un jeu de caractères correct (i.e. ISO8859_1 ou votre jeu de caractères courant).

Exemples

Exemple #1 Exemple avec ibase_connect()

<?php
$host 
'localhost:/path/to/your.gdb';

$dbh ibase_connect($host$username$password);
$stmt 'SELECT * FROM tblname';
$sth ibase_query($dbh$stmt);
while (
$row ibase_fetch_object($sth)) {
    echo 
$row->email"\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

Voir aussi

  • ibase_pconnect() - Ouvre une connexion persistante à une base de données InterBase
  • ibase_close() - Ferme une connexion à une base de données Interbase



ibase_db_info

(PHP 5)

ibase_db_infoDemande des statistiques sur une base de données Interbase

Description

string ibase_db_info ( resource $service_handle , string $db , int $action [, int $argument = 0 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ibase_delete_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_delete_userEfface un utilisateur d'une base de données de sécurité (uniquement pour IB6 ou plus récent)

Description

bool ibase_delete_user ( resource $service_handle , string $user_name )

PHP 4 utilise les paramètres server, dba_user_name et dba_user_password au lieu de service_handle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_add_user() - Ajoute un utilisateur à une base de données de sécurité (uniquement pour IB6 ou plus récent)
  • ibase_modify_user() - Modifie un utilisateur dans une base de données de sécurité (uniquement pour InterBase6 ou plus récent)



ibase_drop_db

(PHP 5)

ibase_drop_dbSupprime une base de données iBase

Description

bool ibase_drop_db ([ resource $connection = NULL ] )

ibase_drop_db() supprime une base de données qui a été ouverte par ibase_connect() ou ibase_pconnect(). La base de données est refermée et supprimée du serveur.

Liste de paramètres

connection

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_connect() - Ouvre une connexion à une base de données InterBase
  • ibase_pconnect() - Ouvre une connexion persistante à une base de données InterBase



ibase_errcode

(PHP 5)

ibase_errcodeRetourne le code d'erreur iBase

Description

int ibase_errcode ( void )

Retourne le code erreur résultant de l'appel le plus récent à une fonction InterBase.

Valeurs de retour

Retourne le code erreur, sous la forme d'un entier, ou FALSE si aucune erreur n'est survenue.

Voir aussi



ibase_errmsg

(PHP 4, PHP 5)

ibase_errmsgRetourne un message d'erreur

Description

string ibase_errmsg ( void )

Retourne une chaîne contenant les messages d'erreurs.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères, ou FALSE si aucune erreur n'est survenue.

Voir aussi



ibase_execute

(PHP 4, PHP 5)

ibase_executeExécute une requête iBase préparée

Description

resource ibase_execute ( resource $query [, mixed $bind_arg [, mixed $... ]] )

Exécute une requête iBase préparée.

ibase_execute() est beaucoup plus efficace que ibase_query(), si vous effectuez plusieurs fois la même requête en ne changeant que quelques paramètres.

Liste de paramètres

query

Une requête InterBase, préparée avec la fonction ibase_prepare().

bind_arg

...

Valeurs de retour

Si la requête émet une erreur, la fonction retournera FALSE. Si la requête réussie, et qu'il y a un jeu de résultats (pouvant être vide), la fonction retourne un identifiant de résultats. Si la requête réussie et qu'il n'y a pas de résultat, la fonction retourne TRUE.

Note:

Depuis la version 5.0.0 de PHP, ibase_execute() retourne le nombre d'enregistrements affectés par la requête (si supérieur à 0). Pour une requête qui réussie mais qui ne renvoie aucun enregistrement (e.g un UPDATE sur un enregistrement inexistant), ibase_execute() retournera TRUE.

Exemples

Exemple #1 Exemple avec ibase_execute()

<?php

$dbh 
ibase_connect($host$username$password);

$updates = array(
    
=> 'Eric',
    
=> 'Filip',
    
=> 'Larry'
);

$query ibase_prepare($dbh"UPDATE FOO SET BAR = ? WHERE BAZ = ?");

foreach (
$updates as $baz => $bar) {
    
ibase_execute($query$bar$baz);
}

?>

Voir aussi



ibase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

ibase_fetch_assocRécupère une ligne du résultat d'une requête dans un tableau associatif

Description

array ibase_fetch_assoc ( resource $result [, int $fetch_flag = 0 ] )

Récupère une ligne du résultat d'une requête dans un tableau associatif.

ibase_fetch_assoc() récupère une ligne de données à partir de result. Si deux ou plus colonnes ont le même nom de champ, la dernière colonne prendra précédence. Pour accéder aux autres colonnes du même nom, vous devez soit le faire avec leurs indices numériques en utilisant ibase_fetch_row() ou en utilisant des alias dans votre requête.

Liste de paramètres

result

Le jeu de résultats.

fetch_flag

fetch_flag est une combinaison des constantes IBASE_TEXT et IBASE_UNIXTIME. Passer IBASE_TEXT fait retourner le contenu du BLOB au lieu de l'ID du BLOB. Passer IBASE_UNIXTIME fait retourner les valeurs date/time sous forme de timestamps UNIX au lieu de chaînes formatées.

Valeurs de retour

Retourne un tableau associatif qui correspond à la ligne récupérée. Les appels suivants renvoient la ligne qui suit dans le jeu de résultats, ou FALSE s'il n'y a plus de lignes.

Voir aussi



ibase_fetch_object

(PHP 4, PHP 5)

ibase_fetch_objectLit une ligne dans une base Interbase dans un objet

Description

object ibase_fetch_object ( resource $result_id [, int $fetch_flag = 0 ] )

Lit une ligne dans une base Interbase et la place dans un pseudo objet.

Les prochains appels à la fonction ibase_fetch_object() retourneront la prochaine ligne du jeu de résultats.

Liste de paramètres

result_id

Un identifiant de résultat InterBase, obtenu soit par la fonction ibase_query(), soit par la fonction ibase_execute().

fetch_flag

fetch_flag est une combinaison des constantes IBASE_TEXT et IBASE_UNIXTIME. Passer IBASE_TEXT fait retourner le contenu du BLOB au lieu de l'ID du BLOB. Passer IBASE_UNIXTIME fait retourner les valeurs date/time sous forme de timestamps UNIX au lieu de chaînes formatées.

Valeurs de retour

Retourne un objet contenant les informations de la ligne, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec ibase_fetch_object()

<?php
$dbh 
ibase_connect($host$username$password);
$stmt 'SELECT * FROM tblname';
$sth ibase_query($dbh$stmt);
while (
$row ibase_fetch_object($sth)) {
    echo 
$row->email "\n";
}
ibase_close($dbh);
?>

Voir aussi



ibase_fetch_row

(PHP 4, PHP 5)

ibase_fetch_rowLit une ligne d'une base Interbase

Description

array ibase_fetch_row ( resource $result_identifier [, int $fetch_flag = 0 ] )

ibase_fetch_row() récupère une ligne de données depuis le jeu de résultats donné.

Les appels suivants à ibase_fetch_row() vont retourner la prochaine ligne dans le résultat, ou bien FALSE s'il n'y a plus de ligne.

Liste de paramètres

result_identifier

Un identifiant de résultat InterBase.

fetch_flag

fetch_flag est une combinaison des constantes IBASE_TEXT et IBASE_UNIXTIME. Passer IBASE_TEXT fait retourner le contenu du BLOB au lieu de l'ID du BLOB. Passer IBASE_UNIXTIME fait retourner les valeurs date/time sous forme de timestamps UNIX au lieu de chaînes formatées.

Valeurs de retour

Retourne un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne. Chaque colonne du résultat est stockée dans une position du tableau, en commençant à 0.

Voir aussi



ibase_field_info

(PHP 4, PHP 5)

ibase_field_infoLit les informations sur un champ iBase

Description

array ibase_field_info ( resource $result , int $field_number )

Retourne un tableau contenant les informations d'un champ, après qu'une requête de type sélection ait été exécutée.

Liste de paramètres

result

Un identifiant de résultat InterBase.

field_number

Position du champ.

Valeurs de retour

Retourne un tableau contenant les clés suivantes : name, alias, relation, length et type.

Exemples

Exemple #1 Exemple avec ibase_field_info()

<?php
$rs 
ibase_query("SELECT * FROM tablename");
$coln ibase_num_fields($rs);
for (
$i 0$i $coln$i++) {
    
$col_info ibase_field_info($rs$i);
    echo 
"nom : "$col_info['name']. "\n";
    echo 
"alias : "$col_info['alias']. "\n";
    echo 
"relation : "$col_info['relation']. "\n";
    echo 
"taille : "$col_info['length']. "\n";
    echo 
"type : "$col_info['type']. "\n";
}
?>

Voir aussi



ibase_free_event_handler

(PHP 5)

ibase_free_event_handlerLibère un gestionnaire d'événements iBase

Description

bool ibase_free_event_handler ( resource $event )

ibase_free_event_handler() annule le gestionnaire d'événements enregistré, spécifié par event. La fonction de rappel ne sera plus exécutée pour les événements qu'elle devait prendre en charge.

Liste de paramètres

event

Une ressource d'événement, créée par la fonction ibase_set_event_handler().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ibase_free_query

(PHP 4, PHP 5)

ibase_free_queryLibère la mémoire réservée par une requête préparée

Description

bool ibase_free_query ( resource $query )

Libère la mémoire réservée par une requête préparée.

Liste de paramètres

query

Une requête préparée avec la fonction ibase_prepare().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_free_result

(PHP 4, PHP 5)

ibase_free_resultLibère un résultat iBase

Description

bool ibase_free_result ( resource $result_identifier )

Libère un résultat iBase.

Liste de paramètres

result_identifier

Un jeu de caractères, créé par la fonction ibase_query() ou par la fonction ibase_execute().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_gen_id

(PHP 5)

ibase_gen_idIncrémente le générateur donné et retourne sa nouvelle valeur

Description

mixed ibase_gen_id ( string $generator [, int $increment = 1 [, resource $link_identifier = NULL ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Retourne une nouvelle valeur générée sous la forme d'un entier ou d'une chaîne de caractères si la valeur est trop grosse.



ibase_maintain_db

(PHP 5)

ibase_maintain_dbExécute une commande de maintenance sur une base de données Interbase

Description

bool ibase_maintain_db ( resource $service_handle , string $db , int $action [, int $argument = 0 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_modify_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_modify_userModifie un utilisateur dans une base de données de sécurité (uniquement pour InterBase6 ou plus récent)

Description

bool ibase_modify_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

PHP 4 utilise les paramètres server, dba_user_name et dba_user_password au lieu de service_handle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_add_user() - Ajoute un utilisateur à une base de données de sécurité (uniquement pour IB6 ou plus récent)
  • ibase_delete_user() - Efface un utilisateur d'une base de données de sécurité (uniquement pour IB6 ou plus récent)



ibase_name_result

(PHP 5)

ibase_name_resultAssigne un nom à un jeu de résultats iBase

Description

bool ibase_name_result ( resource $result , string $name )

Assigne un nom à un jeu de résultats. Ce nom peut être utilisé plus tard dans les requêtes de type UPDATE|DELETE ... WHERE CURRENT OF name.

Liste de paramètres

result

Un jeu de résultats InterBase.

name

Le nom à assigner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_name_result()

<?php
$result 
ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
ibase_name_result($result"my_cursor");

$updateqry ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

for (
$i 0ibase_fetch_row($result); ++$i) {
    
ibase_execute($updateqry$i);
}
?>

Voir aussi

  • ibase_prepare() - Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
  • ibase_execute() - Exécute une requête iBase préparée



ibase_num_fields

(PHP 4, PHP 5)

ibase_num_fieldsRetourne le nombre de colonnes dans un résultat iBase

Description

int ibase_num_fields ( resource $result_id )

Retourne le nombre de colonnes dans un résultat iBase.

Liste de paramètres

result_id

Un identifiant de résultat InterBase.

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec ibase_num_fields()

<?php
$rs 
ibase_query("SELECT * FROM tablename");
$coln ibase_num_fields($rs);
for (
$i 0$i $coln$i++) {
    
$col_info ibase_field_info($rs$i);
    echo 
"nom : " $col_info['name'] . "\n";
    echo 
"alias : " $col_info['alias'] . "\n";
    echo 
"relation : " $col_info['relation'] . "\n";
    echo 
"taille : " $col_info['length'] . "\n";
    echo 
"type : " $col_info['type'] . "\n";
}
?>

Voir aussi



ibase_num_params

(PHP 5)

ibase_num_paramsRetourne le nombre de paramètres dans une requête préparée iBase

Description

int ibase_num_params ( resource $query )

ibase_num_params() retourne le nombre de paramètres dans la requête spécifiée par query. C'est le nombre d'arguments de substitution qui doivent être présents lors de l'appel de ibase_execute().

Liste de paramètres

query

La requête préparée.

Valeurs de retour

Retourne le nombre de paramètres, sous la forme d'un entier.

Voir aussi

  • ibase_prepare() - Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
  • ibase_param_info() - Retourne des informations à propos d'un paramètre dans une requête préparée iBase



ibase_param_info

(PHP 5)

ibase_param_infoRetourne des informations à propos d'un paramètre dans une requête préparée iBase

Description

array ibase_param_info ( resource $query , int $param_number )

Retourne un tableau avec des informations à propos d'un paramètre après qu'une requête n'ait été préparée.

Liste de paramètres

query

Un gestionnaire de requête préparée InterBase.

param_number

La position du paramètre.

Valeurs de retour

Retourne un tableau contenant les clés suivantes : name, alias, relation, length et type.

Voir aussi



ibase_pconnect

(PHP 4, PHP 5)

ibase_pconnectOuvre une connexion persistante à une base de données InterBase

Description

resource ibase_pconnect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Ouvre une connexion persistante à une base de données InterBase.

ibase_pconnect() se comporte similairement à ibase_connect(), avec deux différences majeures.

La première est que, lors de la connexion, la fonction va essayer de trouver une connexion (persistante) déjà ouverte. Si elle la trouve, cette dernière sera retournée, plutôt qu'une nouvelle connexion. Sinon, une nouvelle connexion sera ouverte.

La deuxième est que la connexion ne sera pas fermée à la fin du script, mais restera ouverte pour utilisation ultérieure. (ibase_close() ne fermera pas une connexion ouverte avec ibase_pconnect()). Ce type de lien est alors dit 'persistant'.

Liste de paramètres

database

L'argument database doit être un chemin valide vers le fichier de la base de données sur le serveur où il réside. Si le serveur n'est pas local, il doit être préfixé avec soit 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) ou 'hostname@' (IPX/SPX), suivant le protocole utilisé.

username

Le nom d'utilisateur. Peut être défini avec la directive ibase.default_user du php.ini.

password

Le mot de passe pour l'utilisateur username. Peut être défini avec la directive ibase.default_password du php.ini.

charset

charset est le jeu de caractères par défaut pour la base de données.

buffers

buffers est le nombre de buffers de la base de données à allouer pour le cache côté serveur. Si ce paramètre vaut 0 ou s'il est omis, le serveur choisira lui-même ce nombre.

dialect

dialect sélectionne le dialecte SQL par défaut pour toutes les requêtes exécutées dans la connexion, et vaudra par défaut, le plus haut supporté par la bibliothèque cliente. Ne fonctionne qu'avec InterBase 6 et supérieur.

role

Ne fonctionne qu'avec InterBase 5 et supérieur.

sync

Valeurs de retour

Retourne un identifiant de connexion InterBase en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • ibase_close() - Ferme une connexion à une base de données Interbase
  • ibase_connect() - Ouvre une connexion à une base de données InterBase



ibase_prepare

(PHP 4, PHP 5)

ibase_preparePrépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement

Description

resource ibase_prepare ( string $query )
resource ibase_prepare ( resource $link_identifier , string $query )
resource ibase_prepare ( resource $link_identifier , string $trans , string $query )

Prépare une requête afin d'y lier ultérieurement des paramètres ainsi que de l'exécuter (via la fonction ibase_execute()).

Liste de paramètres

query

Une requête InterBase.

Valeurs de retour

Retourne un gestionnaire de requête préparée, ou FALSE si une erreur survient.



ibase_query

(PHP 4, PHP 5)

ibase_queryExécute une requête sur une base iBase

Description

resource ibase_query ([ resource $link_identifier ], string $query [, int $bind_args ] )

Exécute une requête sur une base iBase.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

query

Une requête InterBase.

bind_args

Valeurs de retour

Si la requête émet une erreur, la fonction retournera FALSE. Si la requête est exécutée avec succès, et qu'il y a un jeu de résultats (même vide), la fonction retournera un identifiant de résultat. Si la requête est exécutée avec succès, et qu'il n'y a pas de résultat, la fonction retournera TRUE.

Note:

Dans les version 5.0.0 de PHP et suivantes, ibase_query() retourne le nombre d'enregistrements affectés par les requêtes INSERT, UPDATE et DELETE. Dans un souci de compatibilité ascendante, ibase_query() retournera TRUE si la requête réussi mais ne renvoie aucun enregistrement.

Erreurs / Exceptions

Si vous recevez une erreur du type "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (ceci survient lorsque vous essayez d'utiliser des caractères accentués) avec la fonction ibase_query(), c'est que vous devez choisir un jeu de caractères (i.e. ISO8859_1 ou votre jeu courant).

Historique

Version Description
5.3.1 En cas de succès, cette fonction retourne maintenant TRUE s'il n'y a aucune ligne d'affectée, alors qu'elle retournait auparavant 0 (un zéro suivi d'un espace vide).

Exemples

Exemple #1 Exemple avec ibase_query()

<?php

$host 
'localhost:/path/to/your.gdb';

$dbh ibase_connect($host$username$password);
$stmt 'SELECT * FROM tblname';

$sth ibase_query($dbh$stmt) or die(ibase_errmsg());

?>

Voir aussi



ibase_restore

(PHP 5)

ibase_restoreRestaure une sauvegarde de base de données Interbase

Description

mixed ibase_restore ( resource $service_handle , string $source_file , string $dest_db [, int $options = 0 [, bool $verbose = false ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ibase_rollback_ret

(PHP 5)

ibase_rollback_retAnnule une transaction sans la fermer

Description

bool ibase_rollback_ret ([ resource $link_or_trans_identifier = NULL ] )

Annule une transaction sans la fermer.

Liste de paramètres

link_or_trans_identifier

Si ibase_rollback_ret() est appelée sans argument, elle annule la transaction par défaut du lien par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, la transaction par défaut de cette connexion sera annulée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera annulée. Le contexte de transaction sera retenu et, donc, les requêtes exécutées dans cette transaction ne seront pas invalidées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_rollback

(PHP 4, PHP 5)

ibase_rollbackAnnule une transaction interBase

Description

bool ibase_rollback ([ resource $link_or_trans_identifier = NULL ] )

Annule une transaction interBase.

Liste de paramètres

link_or_trans_identifier

Lorsque ibase_rollback() est appelée sans argument, elle annule la transaction par défaut du lien par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, la transaction par défaut de cette connexion sera annulée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera annulée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_server_info

(PHP 5)

ibase_server_infoDemande des informations sur le serveur Interbase

Description

string ibase_server_info ( resource $service_handle , int $action )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ibase_service_attach

(PHP 5)

ibase_service_attachConnexion au service de gestion Interbase

Description

resource ibase_service_attach ( string $host , string $dba_username , string $dba_password )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ibase_service_detach

(PHP 5)

ibase_service_detachDéconnexion du service de gestion Interbase

Description

bool ibase_service_detach ( resource $service_handle )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ibase_set_event_handler

(PHP 5)

ibase_set_event_handlerEnregistre une fonction de rappel sur un événement interBase

Description

resource ibase_set_event_handler ( callback $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )
resource ibase_set_event_handler ( resource $connection , callback $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )

ibase_set_event_handler() enregistre la fonction utilisateur PHP event_handler en tant que gestionnaire d'événements pour les événements spécifiés.

Liste de paramètres

event_handler

Fonction de rappel appelée avec le nom de l'événement et la ressource de connexion en tant qu'arguments dès qu'un événement spécifié est posté dans la base de données.

La fonction de rappel event_handler doit retourner FALSE si le gestionnaire doit être annulé. Toute autre valeur de retour est ignorée. Cette fonction accepte jusqu'à 15 arguments d'événement.

event_name1

Le nom de l'événement.

event_name2

15 événements tout au plus sont autorisés.

Valeurs de retour

La valeur retournée est une ressource d'événement. Elle peut être utilisée pour libérer le gestionnaire d'événements en utilisant ibase_free_event_handler().

Exemples

Exemple #1 Exemple avec ibase_set_event_handler()

<?php

function event_handler($event_name$link)
{
    if (
$event_name == "NEW ORDER") {
        
// Traitement du nouvel ordre
        
ibase_query($link"UPDATE orders SET status='handled'");
    } else if (
$event_name == "DB_SHUTDOWN") {
        
// Libération du gestionnaire
        
return false;
    }
}

ibase_set_event_handler($link"event_handler""NEW_ORDER""DB_SHUTDOWN");
?>

Voir aussi



ibase_timefmt

(PHP 4)

ibase_timefmtFixe le format de date pour les prochaines requêtes

Description

bool ibase_timefmt ( string $format [, int $columntype ] )

Fixe le format de date pour les prochaines requêtes.

Vous pouvez définir des valeurs par défaut pour ces formats avec les directives de configuration PHP ibase.timestampformat, ibase.dateformat et ibase.timeformat.

Note:

Cette fonction a été supprimée de PHP 5 ; utilisez ini_set() à la place.

Liste de paramètres

format

En interne, les colonnes sont formatées par la fonction C strftime() : reportez-vous à sa documentation pour connaître la structure de la chaîne de format.

columntype

columntype est une constante parmi IBASE_TIMESTAMP, IBASE_DATE et IBASE_TIME. Si ce paramètre est omis, il vaudra par défaut IBASE_TIMESTAMP, afin de respecter une compatibilité avec les versions antérieures.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_timefmt()

<?php
/* Les colonnes TIME de InterBase 6 seront retournées avec
 * la forme '05 heures 37 minutes'. */
ibase_timefmt("%H hours %M minutes"IBASE_TIME);
?>



ibase_trans

(PHP 4, PHP 5)

ibase_transPrépare une transaction interBase

Description

resource ibase_trans ([ int $trans_args [, resource $link_identifier ]] )
resource ibase_trans ([ resource $link_identifier [, int $trans_args ]] )

Prépare une transaction interBase.

Note:

Le comportement de cette fonction a changé depuis PHP 5.0.0. Le premier appel à ibase_trans() retournera la transaction par défaut pour la connexion courante. Toutes les transactions commencées par ibase_trans() seront annulées à la fin de l'exécution du script si elles n'ont pas été validées ou annulées par respectivement les fonctions ibase_commit() ou ibase_rollback().

Note:

Dans les versions 5.0.0 de PHP et suivantes, ibase_trans() accepte plusieurs paramètres trans_args et link_identifier. Ceci permet d'effectuer des transactions sur plusieurs connexions à des bases de données différentes, qui seront validées en utilisant l'algorithme 2-phase. Cela signifie que vous pouvez mettre à jour plusieurs bases de données. Cela ne veut PAS dire que vous pouvez utiliser plusieurs bases de données dans une même requête !

Si vous utilisez les transactions sur plusieurs base de données, vous devez spécifier link_id et transaction_id dans les fonctions ibase_query() et ibase_prepare().

Liste de paramètres

trans_args

trans_args peut être une combinaison des constantes suivantes : IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT et IBASE_NOWAIT.

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Retourne une ressource de transaction, ou FALSE si une erreur survient.



ibase_wait_event

(PHP 5)

ibase_wait_eventAttend un événement interBase

Description

string ibase_wait_event ( string $event_name1 [, string $event_name2 [, string $... ]] )
string ibase_wait_event ( resource $connection , string $event_name1 [, string $event_name2 [, string $... ]] )

ibase_wait_event() suspend l'exécution du script jusqu'à ce que l'un des événements spécifiés soit posté par la base de données. Le nom de l'événement qui a été posté est alors retourné. Cette fonction accepte jusqu'à 15 arguments événements.

Liste de paramètres

event_name1

Le nom de l'événement.

event_name2

...

Valeurs de retour

Retourne le nom de l'événement qui a été posté.

Voir aussi


Sommaire




Informix


Introduction

Les pilotes d'accès à Informix pour Online (ODS) 7.x, SE 7.x, Universal Server (IUS) 9.x et IDS 2000 sont implémentés dans "functions/ifx.ec" et "functions/php3_ifx.h". Le support ODS 7.x est plutôt complet, et accepte les colonnes de type BYTE et TEXT. Le support IUS 9.x est partiellement fini, de nouveaux types sont disponibles, mais SLOB et CLOB sont toujours en cours de développement.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.1.



Installation/Configuration

Sommaire


Pré-requis

Note: Configuration notes

Vous avez besoin d'une version de ESQL/C pour compiler le pilote PHP d'Informix. Les versions ESQL/C 7.2x sont utilisables. ESQL/C fait partie du SDK Informix Client.

Avant que vous ne lanciez le script "configure", assurez-vous que la variable d'environnement "INFORMIXDIR" a été correctement paramétrée, et que $INFORMIXDIR/bin est dans votre PATH.



Installation

Pour activer ces fonctions, vous devez compiler PHP avec l'option --with-informix[=DIR] , où DIR est le dossier d'installation de Informix et, par défaut, il ne vaut rien.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Note:

Avant que vous ne lanciez le script "configure", assurez-vous que la variable d'environnement "INFORMIXDIR" a été correctement paramétrée, et que $INFORMIXDIR/bin est dans votre PATH. Vérifiez cela en étudiant le résultat de la fonction phpinfo() avant de commencer à utiliser cette extension. phpinfo() devrait lister ces variables d'environnement. C'est le cas aussi bien pour les modes CGI que module Apache. Vous pouvez aussi mettre en place ces variables dans votre script de démarrage Apache.

Les bibliothèques partagées Informix doivent être accessibles pour le chargement (vérifiez LD_LIBRARY_PATH et ld.so.conf/ldconfig).

Note: Notes sur l'utilisation des BLOB (TEXT et BYTE)

Les objets de type BLOB sont normalement gérés par des identifiants de BLOB. Les requêtes de sélection retournent un identifiant de BLOB pour chaque colonne de type BYTE et TEXT. Vous pouvez en lire le contenu, avec des commandes de type "string_var = ifx_get_blob($BLOB_id);" ; si vous souhaitez ramener le BLOB en mémoire (avec: "ifx_blobinfile_mode(0);"). Si vous préférez recevoir le contenu d'une colonne BLOB dans un fichier, utilisez ifx_blobinfile_mode(), et ifx_get_blob($BLOB_id) vous retournera le nom du fichier. Utilisez les fonctions habituelles d'accès aux fichiers pour lire son contenu.

Pour les requêtes INSERT/UPDATE, vous devez créer les identifiants de BLOB vous-même, avec la fonction ifx_create_blob(). Puis, vous placez l'identifiant de BLOB dans un tableau, et remplacez la colonne par un point d'interrogation (?). Pour les UPDATE/INSERT, vous êtes responsable du contenu du BLOB, avec la fonction ifx_update_blob().

Le comportement par défaut des colonnes de type BLOB peut être modifié en affectant de nouvelles valeurs aux variables de configuration (même à la volée) :

Variable de configuration : ifx.textasvarchar

Variable de configuration : ifx.byteasvarchar

Fonctions à utiliser lors de l'exécution :

ifx_textasvarchar(0) : utilise l'identifiant de BLOB avec des colonnes de type TEXT, dans les requêtes SELECT

ifx_byteasvarchar(0) : utilise l'identifiant de BLOB avec des colonnes de type BYTE, dans les requêtes SELECT

ifx_textasvarchar(1) : retourne les colonnes de type TEXT sous la forme de VARCHAR, sans utiliser les identifiants de BLOB dans les requêtes SELECT.

ifx_byteasvarchar(1) : retourne les colonnes de type BYTE sous la forme de VARCHAR, sans utiliser les identifiants de BLOB dans les requêtes SELECT.

Variable de configuration : ifx.BLOBinfile

Fonctions à utiliser lors de l'exécution :

ifx_blobinfile_mode(0) : retourne les colonnes de type BYTE en mémoire ; l'identifiant de BLOB vous donnera accès au contenu.

ifx_blobinfile_mode(1) : retourne les colonnes de type BYTE dans un fichier ; l'identifiant de BLOB vous donnera accès au nom de ce fichier.

En affectant la valeur 1 à ifx_text/byteasvarchar, vous pouvez utiliser les colonnes de type TEXT et BYTE dans les requêtes SELECT comme des champs VARCHAR (mais plus long). Étant donné la gestion des chaînes par PHP, cette technique conserve les données binaires. Les données retournées peuvent contenir n'importe quoi, et vous êtes responsable de la bonne manipulation de ces valeurs.

En affectant la valeur 1 à ifx_blobinfile_mode(), utilisez le nom de fichier retourné par ifx_get_blob() pour accéder au contenu du BLOB. Notez bien que vous êtes tenu responsable de l'effacement des fichiers temporaires, créés par Informix. Chaque nouvelle ligne lue sur le serveur va créer un nouveau fichier temporaire, pour chaque colonne de type BYTE.

L'emplacement des fichiers temporaires peut être modifié, grâce à la variable "blobdir", (par défaut, ".", c'est-à-dire, le dossier courant). Une valeur telle que BLOBdir="tmpBLOB" simplifiera le nettoyage des fichiers temporaires, accidentellement oubliés (les noms commencent tous par "blb").

Note: Suppression automatique des espaces (SQLCHAR et SQLNCHAR)

Elle peut être mise en place avec la variable de configuration.

ifx.charasvarchar : avec la valeur 1, les espaces de fin de champs seront automatiquement supprimés.

Note: NULL values

Lorsque la variable de configuration ifx.nullformat (ou que la fonction ifx_nullformat()) est à un, les colonnes contenant la valeur NULL retourneront la chaîne "NULL" et, sinon, retourneront une chaîne vide. Cela vous permet de faire la différence entre les colonnes vides et celles qui contiennent la valeur NULL.

Options de configuration Informix
Nom Défaut Modifiable Historique
ifx.allow_persistent "1" PHP_INI_SYSTEM Supprimé depuis PHP 5.2.1.
ifx.max_persistent "-1" PHP_INI_SYSTEM Supprimé depuis PHP 5.2.1.
ifx.max_links "-1" PHP_INI_SYSTEM Supprimé depuis PHP 5.2.1.
ifx.default_host NULL PHP_INI_SYSTEM Supprimé depuis PHP 5.2.1.
ifx.default_user NULL PHP_INI_SYSTEM Supprimé depuis PHP 5.2.1.
ifx.default_password NULL PHP_INI_SYSTEM Supprimé depuis PHP 5.2.1.
ifx.blobinfile "1" PHP_INI_ALL Supprimé depuis PHP 5.2.1.
ifx.textasvarchar "0" PHP_INI_ALL Supprimé depuis PHP 5.2.1.
ifx.byteasvarchar "0" PHP_INI_ALL Supprimé depuis PHP 5.2.1.
ifx.charasvarchar "0" PHP_INI_ALL Supprimé depuis PHP 5.2.1.
ifx.nullformat "0" PHP_INI_ALL Supprimé depuis PHP 5.2.1.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ifx.allow_persistent bool

Active les connexions persistantes à une base de données Informix.

ifx.max_persistent entier

Nombre maximum de connexions persistantes à une base de données Informix, par processus.

Nombre maximum de connexions à une base de données Informix par processus, en incluant les connexions persistantes.

ifx.default_host string

Hôte par défaut où se connecter si aucun hôte n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.default_user string

Utilisateur par défaut si aucun utilisateur n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.default_password string

Mot de passe par défaut si aucun mot de passe n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.blobinfile bool

Lorsque cette option est activée, les colonnes de type "blob" seront retournées dans un fichier. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_blobinfile_mode().

ifx.textasvarchar bool

Lorsque cette option est activée, les colonnes de type "TEXT" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

ifx.byteasvarchar bool

Lorsque cette option est activée, les colonnes de type "BYTE" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

ifx.charasvarchar bool

Lorsque cette option est activée, les espaces en fin de chaîne de caractères seront conservés lors d'une commande FETCH.

ifx.nullformat bool

Lorsque cette option est activée, les colonnes de valeur NULL seront retournées comme des chaînes de caractères vides. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_nullformat().



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

IFX_SCROLL (entier)
IFX_HOLD (entier)
IFX_LO_RDONLY (entier)
IFX_LO_WRONLY (entier)
IFX_LO_APPEND (entier)
IFX_LO_RDWR (entier)
IFX_LO_BUFFER (entier)
IFX_LO_NOBUFFER (entier)


Fonctions Informix


ifx_affected_rows

(PHP 4, PHP <=5.2.0)

ifx_affected_rowsRetourne le nombre de lignes affectées par une requête

Description

int ifx_affected_rows ( resource $result_id )

Retourne le nombre de lignes affectées par la requête associée à result_id.

Pour les INSERT, UPDATE et DELETE, ce nombre est le nombre exact de lignes affectées (sqlerrd[2]). Pour les SELECT, ce n'est qu'une estimation (sqlerrd[0]). Ne vous y fiez pas. Le serveur de base de données ne peut jamais retourner le nombre de lignes actuel qui sera retourné par une requête SELECT car il n'a pas commencé à les récupérer ce stade (juste après "PREPARE", lorsque l'optimisateur a déterminé le plan de requête).

ifx_affected_rows() est très pratique après ifx_prepare() pour limiter la taille des résultats.

Liste de paramètres

result_id

Un identifiant de résultat valide retourné par la fonction ifx_query() ou la fonction ifx_prepare().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Exemples

Exemple #1 Nombre de lignes affectées

<?php
$rid 
ifx_prepare("select * from emp
                     where name like " 
$name$connid);
if (! 
$rid) {
    
/* ... erreur ... */
}
$rowcount ifx_affected_rows($rid);
if (
$rowcount 1000) {
    
printf ("Trop de lignes trouvées (%d)\n<br />"$rowcount);
    die (
"Rééssayez avec une autre requête.<br />\n");
}
?>

Voir aussi

  • ifx_num_rows() - Compte le nombre de lignes déjà lues dans un résultat



ifx_blobinfile_mode

(PHP 4, PHP <=5.2.0)

ifx_blobinfile_modeChoisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT

Description

bool ifx_blobinfile_mode ( int $mode )

Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT.

Liste de paramètres

mode

Mode "0" chargera les BLOB de type Byte en mémoire ; Mode "1" sauvera les BLOB de type Byte dans un fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ifx_byteasvarchar

(PHP 4, PHP <=5.2.0)

ifx_byteasvarcharChoisit le mode par défaut des objets BYTE

Description

bool ifx_byteasvarchar ( int $mode )

Choisit le mode par défaut des objets BYTE pour toutes les requêtes de sélection.

Liste de paramètres

mode

Le mode "0" retournera l'identifiant de BLOB, et le mode "1" retournera le contenu du TEXT sous la forme d'un VARCHAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifx_close

(PHP 4, PHP <=5.2.0)

ifx_closeFerme une connexion à un serveur Informix

Description

bool ifx_close ([ resource $link_identifier ] )

ifx_close() ferme le lien au serveur de données Informix associé à l'identifiant de connexion link_identifier.

Notez qu'il n'est généralement pas besoin d'appeler cette fonction, car les connexions non persistantes seront automatiquement fermées.

ifx_close() ne peut pas fermer une connexion ouverte avec ifx_pconnect().

Liste de paramètres

link_identifier

L'identifiant du lien. S'il n'est pas spécifié, le dernier lien ouvert est utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermer une connexion Informix

<?php
$conn_id 
ifx_connect ("mydb@ol_srv""itsme""mypassword");
/* ... quelques requêtes diverses et variées ... */
ifx_close($conn_id);
?>

Voir aussi



ifx_connect

(PHP 4, PHP <=5.2.0)

ifx_connectOuvre une connexion à un serveur Informix

Description

resource ifx_connect ([ string $database [, string $userid [, string $password ]]] )

ifx_connect() établit une connexion à un serveur Informix.

Si un deuxième appel à ifx_connect() est fait avec les mêmes arguments, l'identifiant de connexion déjà ouvert sera retourné.

Le lien avec le serveur sera fermé dès que le script se termine, ce qui fait qu'il n'est pas nécessaire de terminer les connexions avec ifx_close().

Liste de paramètres

Tous les arguments sont optionnels, et, s'ils viennent à manquer, les valeurs par défaut seront prises dans le php.ini (ifx.default_host pour l'hôte par défaut) (Les bibliothèques Informix utiliseront la variable d'environnement $INFORMIXSERVER si ifx.default_host n'est pas définie). ifx.default_user pour l'utilisateur, et ifx.default_password comme mot de passe (si aucun n'a été défini).

database

Le nom de la base de données, sous la forme d'une chaîne de caractères.

userid

Le nom d'utilisateur, sous la forme d'une chaîne de caractères.

password

Le mot de passe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne un identifiant de connexion en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Connexion à un serveur Informix

<?php
$conn_id 
ifx_connect ("mydb@ol_srv1""imyself""mypassword");
?>

Voir aussi

  • ifx_pconnect() - Ouvre une connexion persistante à un serveur Informix
  • ifx_close() - Ferme une connexion à un serveur Informix



ifx_copy_blob

(PHP 4, PHP <=5.2.0)

ifx_copy_blobDuplique un BLOB

Description

int ifx_copy_blob ( int $bid )

Duplique le BLOB fourni.

Liste de paramètres

bid

L'identifiant d'un BLOB.

Valeurs de retour

Retourne l'identifiant vers le nouveau BLOB, ou FALSE si une erreur survient.

Voir aussi



ifx_create_blob

(PHP 4, PHP <=5.2.0)

ifx_create_blobCrée un objet BLOB

Description

int ifx_create_blob ( int $type , int $mode , string $param )

Crée un objet BLOB.

Liste de paramètres

type

1 = TEXT, 0 = BYTE

mode

0 = L'objet BLOB place le contenu en mémoire, 1 = L'objet BLOB place le contenu dans un fichier.

param

Si mode = 0: pointeur du contenu, si mode = 1: pointeur vers un fichier.

Valeurs de retour

Retourne l'identifiant vers le nouveau BLOB, ou FALSE si une erreur survient.

Voir aussi



ifx_create_char

(PHP 4, PHP <=5.2.0)

ifx_create_charCrée un objet char

Description

int ifx_create_char ( string $param )

Crée un objet char.

Liste de paramètres

param

Le contenu du char.

Valeurs de retour

Retourne l'identifiant vers le nouvel objet char, ou FALSE si une erreur survient.

Voir aussi



ifx_do

(PHP 4, PHP <=5.2.0)

ifx_doExécute une requête SQL préparée

Description

bool ifx_do ( resource $result_id )

Exécute une requête qui a déjà été préparée, ou crée un pointeur pour cela.

ifx_do() ne libère pas result_id en cas d'erreur.

De plus, ifx_do() fixe la valeur de result_id pour accès ultérieur par ifx_affected_rows().

Liste de paramètres

result_id

result_id est un identifiant de résultat valide retourné par la fonction ifx_query() ou la fonction ifx_prepare() (uniquement les requêtes de type SELECT !).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

Exemple #1 Exemple avec ifx_do()

<?php
$conn 
fx_connect"db""user""password" );
$result ifx_prepare("SELECT customer_num, company FROM customer"$conn);
ifx_do($result);
?>

Voir aussi



ifx_error

(PHP 4, PHP <=5.2.0)

ifx_errorRetourne le code d'erreur de la dernière requête Informix

Description

string ifx_error ([ resource $link_identifier ] )

Retourne un seul caractère décrivant les résultats généraux d'une requête ainsi que SQLSTATE et SQLCODE associés avec la requête SQL la plus récente.

Liste de paramètres

link_identifier

L'identifiant du lien.

Valeurs de retour

Les codes erreurs Informix (SQLSTATE & SQLCODE) sont formatés ainsi : x [SQLSTATE = aa bbb SQLCODE=cccc].

où x = space : aucune erreur

E : erreur

N : il n'y a plus de donnée

W : alerte

? : indéfinie

Si le caractère "x" vaut autre chose qu'un espace, SQLSTATE et SQLCODE décrivent l'erreur avec plus de détails.

Reportez-vous au manuel Informix pour trouver la description de SQLSTATE et SQLCODE.

Voir aussi

  • ifx_errormsg() - Retourne le message d'erreur de la dernière requête Informix



ifx_errormsg

(PHP 4, PHP <=5.2.0)

ifx_errormsgRetourne le message d'erreur de la dernière requête Informix

Description

string ifx_errormsg ([ int $errorcode ] )

Retourne le message d'erreur associé à la dernière erreur Informix.

Liste de paramètres

errorcode

Si spécifié, la fonction retournera le message correspondant au code erreur spécifié.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec ifx_errormsg()

<?php
printf
("%s\n<br>"ifx_errormsg(-201));
?>

Voir aussi

  • ifx_error() - Retourne le code d'erreur de la dernière requête Informix



ifx_fetch_row

(PHP 4, PHP <=5.2.0)

ifx_fetch_rowRetourne une ligne sous la forme d'un tableau énuméré

Description

array ifx_fetch_row ( resource $result_id [, mixed $position ] )

Retourne une ligne de données d'un résultat associé à l'identifiant de résultat result_id.

Les appels ultérieurs à ifx_fetch_row() retourneront la ligne suivante, ou FALSE s'il n'y a plus de ligne.

Liste de paramètres

result_id

result_id est un identifiant valide de résultat, retourné par ifx_query() ou ifx_prepare() (Requêtes SELECT seulement !).

position

position est un paramètre optionnel, pour une opération de lecture d'informations sur un pointeur de type "scroll": NEXT, PREVIOUS, CURRENT, FIRST, LAST ou encore un nombre. Si vous spécifiez un nombre, la ligne d'index absolu sera retournée. Ce paramètre est optionnel, et ne fonctionne qu'avec les pointeurs de type "scroll".

Valeurs de retour

retourne un tableau associatif qui contient la ligne retournée ou FALSE s'il ne reste plus de lignes à lire, ou s'il a eu une erreur.

Les colonnes de types BLOB sont retournées sous la forme d'un identifiant à utiliser avec ifx_get_blob() à moins que vous n'ayez utilisé la fonction ifx_textasvarchar() ou ifx_byteasvarchar() et, dans ce cas, les BLOB seront retournés sous forme de chaîne.

Exemples

Exemple #1 Exemple avec ifx_fetch_row()

<?php
$rid 
ifx_prepare ("select * from emp where name like " $name,
                     
$connidIFX_SCROLL);
if (! 
$rid) {
    
/* ... erreur ... */
}
$rowcount ifx_affected_rows($rid);
if (
$rowcount 1000) {
    
printf ("Trop de lignes dans le résultat. (%d)\n<br />"$rowcount);
    die (
"Restreignez votre requête. <br />\n");
}
if (! 
ifx_do ($rid)) {
   
/* ... erreur ... */
}
$row ifx_fetch_row ($rid"NEXT");
while (
is_array($row)) {
    for (
reset($row); $fieldname=key($row); next($row)) {
        
$fieldvalue $row[$fieldname];
        
printf ("%s = %s,"$fieldname$fieldvalue);
    }
    
printf("\n<br />");
    
$row ifx_fetch_row($rid"NEXT");
}
ifx_free_result ($rid);
?>



ifx_fieldproperties

(PHP 4, PHP <=5.2.0)

ifx_fieldpropertiesListe les propriétés des champs SQL

Description

array ifx_fieldproperties ( resource $result_id )

Retourne les propriétés Informix SQL pour tous les champs d'une requête, sous la forme d'un tableau associatif. Les propriétés sont présentées sous la forme : "SQLTYPE;longueur ;précision;échelle;ISNULLABLE" avec SQLTYPE qui représente le type de données Informix tel que "SQLVCHAR" et ISNULLABLE = "Y" ou "N" (le champ peut contenir NULL ou pas : Oui ou Non).

Liste de paramètres

result_id

result_id est un identifiant de résultats valide retourné par la fonction ifx_query() ou la fonction ifx_prepare() (Requête de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif avec les noms des champs comme clés, et les données de propriétés des champs comme valeurs. ifx_fieldproperties() retourne FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec ifx_fieldproperties()

<?php
$properties 
ifx_fieldproperties($resultid);
if (!isset(
$properties)) {
    
/* ... erreur ... */
}
foreach (
$properties as $fname => $val) {
    echo 
"$fname :\t property = $val\n";
}
?>

Voir aussi



ifx_fieldtypes

(PHP 4, PHP <=5.2.0)

ifx_fieldtypesListe les champs Informix SQL

Description

array ifx_fieldtypes ( resource $result_id )

Retourne un tableau associatif avec les noms des champs comme clés, et les types SQL comme valeurs.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif avec les noms des champs comme clés, et les types SQL comme valeurs. En cas d'erreur, retourne FALSE.

Exemples

Exemple #1 Nom de champs et type SQL

<?php
$types 
ifx_fieldtypes($resultid);
if (
is_array($types)) {
    foreach (
$types as $fname => $val) {
        echo 
"$fname :\t type = $val\n";
    }
}
?>

Voir aussi



ifx_free_blob

(PHP 4, PHP <=5.2.0)

ifx_free_blobSupprime un objet BLOB

Description

bool ifx_free_blob ( int $bid )

Supprime l'objet BLOB dont l'identifiant est fourni.

Liste de paramètres

bid

L'identifiant de l'objet BLOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifx_free_char

(PHP 4, PHP <=5.2.0)

ifx_free_charSupprime un objet char

Description

bool ifx_free_char ( int $bid )

Supprime l'objet char dont l'identifiant est fourni.

Liste de paramètres

bid

L'identifiant de l'objet char.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifx_free_result

(PHP 4, PHP <=5.2.0)

ifx_free_resultLibère les ressources prises par un résultat

Description

bool ifx_free_result ( resource $result_id )

Libère les ressources prises par le résultat associé avec result_id.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_do() - Exécute une requête SQL préparée



ifx_get_blob

(PHP 4, PHP <=5.2.0)

ifx_get_blobRetourne le contenu d'un objet BLOB

Description

string ifx_get_blob ( int $bid )

Retourne le contenu d'un objet BLOB.

Liste de paramètres

bid

L'identifiant de l'objet BLOB.

Valeurs de retour

Le contenu du BLOB, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi



ifx_get_char

(PHP 4, PHP <=5.2.0)

ifx_get_charRetourne le contenu d'un objet char

Description

string ifx_get_char ( int $bid )

Retourne le contenu d'un objet char.

Liste de paramètres

bid

L'identifiant de l'objet char.

Valeurs de retour

Retourne le contenu sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi



ifx_getsqlca

(PHP 4, PHP <=5.2.0)

ifx_getsqlcaRetourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête

Description

array ifx_getsqlca ( resource $result_id )

Retourne un tableau associatif, contenant sqlca.sqlerrd[0] à sqlca.sqlerrd[5] après la requête associée result_id.

Pour les requêtes INSERT, UPDATE et DELETE, les valeurs retournées sont celles fixées par le serveur après avoir exécuté la requête. Cela donne accès au nombre de lignes affectées, ainsi qu'au numéro de série d'insertion. Pour les requêtes de type SELECT, les valeurs retournées sont celles qui ont été préparées. Utiliser cette fonction économise l'exécution d'une requête SELECT dbinfo('sqlca.sqlerrdx'), étant donné qu'elle retourne les valeurs qui ont été sauvées par le pilote ifx au moment approprié.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif, composé des entrées suivantes : sqlerrd0, sqlerrd1, sqlerrd2, sqlerrd3, sqlerrd4 et sqlerrd5.

Exemples

Exemple #1 Lire les valeurs de sqlca.sqlerrd[x]

<?php
/* On suppose que la première colonne d'une table 
'quelconque' est un numéro de série */
$qid ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') "
$connid);
if (!
$qid) {
    
/* ... erreur ... */
}
$sqlca ifx_getsqlca($qid);
$serial_value $sqlca["sqlerrd1"];
echo 
"Le numéro de série de la valeur insérée est : $serial_value<br />\n";
?>



ifx_htmltbl_result

(PHP 4, PHP <=5.2.0)

ifx_htmltbl_resultLit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML

Description

int ifx_htmltbl_result ( resource $result_id [, string $html_table_options ] )

Formate et affiche toutes les lignes issues de la requête result_id dans un tableau HTML.

Liste de paramètres

result_id

result_id est un identifiant de résultats, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

html_table_options

Cet argument optionnel est une chaîne de caractères d'options de balise <table>.

Valeurs de retour

Retourne le nombre de lignes récupérées ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage sous la forme d'une table HTML

<?php
$rid 
ifx_prepare ("select * from emp where name like " $name,
                     
$connidIFX_SCROLL);
if (! 
$rid) {
    
/* ... erreur ... */
}
$rowcount ifx_affected_rows ($rid);
if (
$rowcount 1000) {
    
printf ("Trop de lignes dans le résultat : (%d)\n<br />"$rowcount);
    die (
"Recommencez votre requête <br />\n");
}
if (! 
ifx_do($rid)) {
    
/* ... erreur ... */
}

ifx_htmltbl_result ($rid"border=\"2\"");

ifx_free_result($rid);
?>



ifx_nullformat

(PHP 4, PHP <=5.2.0)

ifx_nullformatModifie le mode par défaut de lecture des valeurs

Description

bool ifx_nullformat ( int $mode )

Modifie le mode par défaut de lecture des valeurs.

Liste de paramètres

mode

Le mode "0" retourne "", et le mode "1" retourne "NULL".

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ifx_num_fields

(PHP 4, PHP <=5.2.0)

ifx_num_fieldsRetourne le nombre de colonnes d'une requête

Description

int ifx_num_fields ( resource $result_id )

Après avoir préparé ou exécuté une requête, cette fonction retourne le nombre de colonnes dans la requête.

Liste de paramètres

result_id

result_idest un identifiant de résultats retourné par la fonction ifx_query() ou par la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne le nombre de colonnes dans la requête result_id ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec ifx_num_fields()

<?php
$conn_id 
ifx_connect("db""user""password");
$res_id ifx_query("select * from systables"$conn_id);
echo 
ifx_num_fields($res_id);
?>

Voir aussi

  • ifx_num_rows() - Compte le nombre de lignes déjà lues dans un résultat



ifx_num_rows

(PHP 4, PHP <=5.2.0)

ifx_num_rowsCompte le nombre de lignes déjà lues dans un résultat

Description

int ifx_num_rows ( resource $result_id )

Compte le nombre de lignes déjà lues dans le résultat result_id après ifx_query() ou ifx_do().

Liste de paramètres

result_id

result_id est un identifiant de résultats retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne le nombre de lignes récupérées ou FALSE si une erreur survient.

Voir aussi



ifx_pconnect

(PHP 4, PHP <=5.2.0)

ifx_pconnectOuvre une connexion persistante à un serveur Informix

Description

resource ifx_pconnect ([ string $database [, string $userid [, string $password ]]] )

ifx_pconnect() se comporte de manière très similaire à ifx_connect() avec deux différences importantes.

Tout d'abord, lors de la connexion, la fonction va chercher une connexion (persistante) déjà ouverte avec le même hôte, le même nom d'utilisateur et le même mot de passe. Si elle en trouve une, elle retournera un identifiant de cette connexion au lieu d'en ouvrir une nouvelle.

Deuxièmement, la connexion au serveur SQL ne sera pas automatiquement refermée à la fin de l'exécution du script. Au contraire, le lien va rester ouvert (ifx_close() ne fermera pas les connexions établies avec ifx_pconnect()).

Ainsi, ce type de lien est appelé 'persistant'.

Liste de paramètres

Tous les arguments sont optionnels, et s'ils ne sont pas fournis, les valeurs par défaut sont utilisées, émanant du php.ini (ifx.default_host pour l'hôte (les bibliothèques Informix utiliseront la valeur de la variable d'environnement INFORMIXSERVER si cette valeur n'est pas défini), ifx.default_user pour l'utilisateur, ifx.default_password pour le mot de passe (aucun s'il n'est pas fourni)).

database

Le nom de la base de données, sous la forme d'une chaîne de caractères.

userid

Le nom d'utilisateur, sous la forme d'une chaîne de caractères.

password

Le mot de passe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne un identifiant valide de connexion persistante à un serveur Informix, ou FALSE, en cas d'erreur.

Voir aussi



ifx_prepare

(PHP 4, PHP <=5.2.0)

ifx_preparePrépare une requête SQL pour l'exécution

Description

resource ifx_prepare ( string $query , resource $link_identifier [, int $cursor_def ], mixed $blobidarray )

Prépare la requête query pour une utilisation ultérieure avec la fonction ifx_do().

Pour les requêtes de type "select-type" un pointeur de résultat est déclaré et ouvert. Les autres seront exécutées immédiatement.

Pour les autres types de requêtes, le nombre de lignes affectées (estimé ou exact) est enregistré, pour être lu avec la fonction ifx_affected_rows().

Si le contenu d'une colonne est de type TEXT (ou BYTE) vous pouvez aussi utiliser les fonctions ifx_textasvarchar() et ifx_byteasvarchar(). Cela vous permettra d'utiliser les colonnes TEXT (ou BYTE) comme des colonnes de type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de l'identifiant de BLOB.

Avec les fonctions ifx_textasvarchar() et ifx_byteasvarchar() (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB. Cet identifiant peut être une chaîne ou un fichier, suivant la configuration (voir plus loin).

Liste de paramètres

query

La requête.

link_identifier

L'identifiant du lien.

cursor_def

Ce paramètre optionnel permet de choisir le type de pointeur : scroll et/ou hold. Les valeurs peuvent être combinées ensemble (IFX_SCROLL, IFX_HOLD).

blobidarray

Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de modification, vous pouvez passer un paramètre blobidarray qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer cette colonne par un point d'interrogation (?) dans la requête.

Valeurs de retour

Retourne un identifiant de résultats pour une utilisation ultérieure avec la fonction ifx_do(), ou FALSE si une erreur survient.

Voir aussi

  • ifx_do() - Exécute une requête SQL préparée



ifx_query

(PHP 4, PHP <=5.2.0)

ifx_queryEnvoie une requête Informix

Description

resource ifx_query ( string $query , resource $link_identifier [, int $cursor_type [, mixed $blobidarray ]] )

ifx_query() envoie une requête au serveur actif courant, associé à l'identifiant de connexion link_identifier.

Pour les requêtes de type SELECT, un pointeur est déclaré, et ouvert. Les autres seront exécutées immédiatement.

Pour les autres requêtes, le nombre de lignes affectées (estimé ou exact) est enregistré pour être lu avec ifx_affected_rows().

Si le contenu d'une colonne est de type TEXT (ou BYTE) vous pouvez aussi utiliser les fonctions ifx_textasvarchar() et ifx_byteasvarchar(). Cela vous permettra d'utiliser les colonnes TEXT ( ou BYTE ) comme des colonnes de type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de l'identifiant de BLOB.

Avec les fonctions ifx_textasvarchar() et ifx_byteasvarchar() (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB. Ces identifiants peuvent être une chaîne ou un fichier, suivant la configuration (voir plus loin).

Liste de paramètres

query

La requête, sous la forme d'une chaîne de caractères.

link_identifier

L'identifiant du lien.

cursor_def

Ce paramètre optionnel vous permet de choisir le type de curseur, scroll et/ou hold. C'est un masque qui peut être soit IFX_SCROLL, soit IFX_HOLD, ou les deux. Si vous ne fournissez pas ce paramètre, le curseur est un curseur normal séquentiel.

blobidarray

Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de modification, vous pouvez passer un paramètre blobidarray qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer cette colonne par un point d'interrogation (?) dans la requête.

Valeurs de retour

Retourne un identifiant de résultats Informix en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Afficher toutes les lignes de la table "ordres" sous la forme html du serveur IFX

<?php
ifx_textasvarchar
(1);      // Utilisation du mode "text mode" pour les BLOBs
$res_id ifx_query("select * from orders"$conn_id);
if (! 
$res_id) {
    
printf("Can't select orders : %s\n<br />%s<br />\n"ifx_error(), ifx_errormsg());
    die;
}
ifx_htmltbl_result($res_id"border=\"1\"");
ifx_free_result($res_id);
?>

Exemple #2 Insertion de valeurs dans la table "catalogue" IFX

<?php

// Créer un identifiant de BLOB pour une colonne de type BYTE et une de type TEXT
$textid ifx_create_blob(00"Colonne Text en mémoire");
$byteid ifx_create_blob(10"Colonne Byte en mémoire");

// Stocke l'identifiant du BLOB dans le tableau BLOBid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// Exécute la requête
$query "insert into catalog (stock_num, manu_code, " .
         
"cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id ifx_query($query$conn_id$blobidarray);
if (! 
$res_id) {
    
/* ... erreur ... */
}

// Libération du résultat
ifx_free_result($res_id);
?>

Voir aussi



ifx_textasvarchar

(PHP 4, PHP <=5.2.0)

ifx_textasvarcharChoisit le mode par défaut des objets texte

Description

bool ifx_textasvarchar ( int $mode )

Modifie le mode par défaut des objets TEXT.

Liste de paramètres

mode

Le mode "0" retournera un identifiant de BLOB et le mode "1" retourne le BLOB sous la forme d'un (gros) VARCHAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifx_update_blob

(PHP 4, PHP <=5.2.0)

ifx_update_blobModifie le contenu d'un objet BLOB

Description

bool ifx_update_blob ( int $bid , string $content )

Modifie le contenu de l'objet BLOB repéré par son identifiant bid.

Liste de paramètres

bid

Un identifiant d'objet BLOB.

content

Les nouvelles données, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifx_update_char

(PHP 4, PHP <=5.2.0)

ifx_update_charModifie le contenu d'un objet char

Description

bool ifx_update_char ( int $bid , string $content )

Modifie le contenu de l'objet char repéré par son identifiant bid.

Liste de paramètres

bid

Un identifiant d'objet char.

content

Les nouvelles données, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifxus_close_slob

(PHP 4, PHP <=5.2.0)

ifxus_close_slobFerme un objet SLOB

Description

bool ifxus_close_slob ( int $bid )

Ferme l'objet SLOB représenté par son identifiant bid.

Liste de paramètres

bid

Un identifiant vers un slob existant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifxus_create_slob

(PHP 4, PHP <=5.2.0)

ifxus_create_slobCrée un objet SLOB et l'ouvre

Description

int ifxus_create_slob ( int $mode )

Crée un objet SLOB et l'ouvre.

Liste de paramètres

mode

Une combinaison des constantes suivantes : IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Valeurs de retour

Retourne l'identifiant du nouvel objet slob, ou FALSE si une erreur survient.

Voir aussi



ifxus_free_slob

(PHP 4, PHP <=5.2.0)

ifxus_free_slobSupprime un objet SLOB

Description

bool ifxus_free_slob ( int $bid )

Supprime un objet SLOB.

Liste de paramètres

bid

Un identifiant vers un slob existant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ifxus_open_slob

(PHP 4, PHP <=5.2.0)

ifxus_open_slobOuvre un objet SLOB

Description

int ifxus_open_slob ( int $bid , int $mode )

Ouvre un objet SLOB. bid doit être un identifiant slob existant.

Liste de paramètres

bid

Un identifiant slob existant.

mode

Une combinaison des constantes suivantes : IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Valeurs de retour

Retourne l'identifiant du nouvel objet slob, ou FALSE si une erreur survient.

Voir aussi



ifxus_read_slob

(PHP 4, PHP <=5.2.0)

ifxus_read_slobLit des octets dans un objet SLOB

Description

string ifxus_read_slob ( int $bid , int $nbytes )

Lit nbytes octets de l'objet slob.

Liste de paramètres

bid

Un identifiant slob existant.

nbytes

Le nombre d'octets à lire.

Valeurs de retour

Retourne le contenu du slob sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi



ifxus_seek_slob

(PHP 4, PHP <=5.2.0)

ifxus_seek_slobFixe le fichier courant ou la position courante

Description

int ifxus_seek_slob ( int $bid , int $mode , int $offset )

Fixe le fichier courant ou la position courante d'un objet slob ouvert.

Liste de paramètres

bid

Un identifiant slob existant.

mode

0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END.

offset

La position.

Valeurs de retour

Retourne le position sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi



ifxus_tell_slob

(PHP 4, PHP <=5.2.0)

ifxus_tell_slobRetourne le fichier courant ou la position courante

Description

int ifxus_tell_slob ( int $bid )

Retourne le fichier courant ou la position courante d'un objet slob ouvert.

Liste de paramètres

bid

Un identifiant slob existant.

Valeurs de retour

Retourne la position sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi



ifxus_write_slob

(PHP 4, PHP <=5.2.0)

ifxus_write_slobÉcrit une chaîne dans un objet SLOB

Description

int ifxus_write_slob ( int $bid , string $content )

Écrit une chaîne dans un objet SLOB.

Liste de paramètres

bid

Un identifiant slob existant.

content

Le contenu à écrire, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne les octets écrits, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi


Sommaire




Fonctions IBM DB2, Cloudscape et Apache Derby


Introduction

Ces fonctions vous permettent un accès aux IBM DB2 Universal Database, IBM Cloudscape et Apache Derby qui utilisent DB2 Call Level Interface (CLI).



Installation/Configuration

Sommaire


Pré-requis

Pour se connecter à des bases de données IBM DB2 Universal Database pour linux, UNIX et Windows ou IBM Cloudscape ou Apache Derby, vous devez installer un client IBM DB2 Universal Database sur le même ordinateur qui utilise PHP. Cette extension a été développé et testé avec DB2 Version 8.2.

Pour se connecter à des bases de données IBM DB2 Universal Database pour z/OS ou iSeries, vous aurez aussi besoin de IBM DB2 Connect ou l'équivalent d'un programme DRDA.

Prérequis pour Linux et Unix

L'utilisateur appelant l'exécutable PHP ou module SAPI doit spécifier l'instance DB2 avant d'accéder à ces fonctions. Vous pouvez spécifier le nom de l'instance DB2 dans php.ini en utilisant l'option de configuration ibm_db2.instance_name ou vous pouvez approvisionner le profile de l'instance DB2 avant d'appeler l'exécutable PHP.

Si vous avez créée une instance DB2 nommée db2inst1 dans /home/db2inst1, par exemple, vous pouvez ajouter la ligne suivante à votre php.ini :

ibm_db2.instance_name=db2inst1
Si vous ne spécifiez pas cette option dans php.ini, vous devez exécuter la commande suivante pour modifier vos variables d'environnement pour autoriser l'accès à DB2 :
bash$ source /home/db2inst1/sqllib/db2profile
Pour permettre votre PHP sur votre serveur web d'accéder à ces fonctions, vous devez ajouter la même commande à votre script de démarrage de votre serveur Web (typiquement /etc/init.d/httpd or /etc/init.d/apache).



Installation

Pour compiler l'extension ibm_db2, les fichiers d'en-tête et de bibliothèques de l'application de développement de DB2 doivent être présents sur votre système. DB2 ne les installe pas par défaut, vous devrez donc retourner à l'installation de DB2 et ajouter cette option. Les en-têtes des fichiers sont inclus avec le client de développement d'application DB2, disponible librement au téléchargement depuis le » support du site de la base de données universelle.

Si vous ajoutez les fichiers d'en-têtes et de bibliothèques de l'application de développement de DB2 sur un système Linux ou Unix où DB2 est déjà installé, vous devez lancer la commande db2iupdt -e pour mettre à jour les liens symboliques dans les fichiers d'en-têtes et de bibliothèques de vos exemples DB2.

ibm_db2 est une extension » PECL, alors suivez les instructions présentes dans Installation d'extensions PECL pour installer l'extension ibm_db2 pour PHP. Tapez la commande configure pour pointer vers l'emplacement de vos fichiers d'en-têtes et de bibliothèques de DB2 comme suit :

bash$ ./configure --with-IBM_DB2=/chemin/vers/DB2
La commande configure prend la valeur par défaut de /opt/IBM/db2/V8.1.

Note: Note pour les utilisateurs de IIS

Si vous utilisez le driver ibm_db2 avec IIS (Microsoft Internet Information Server), vous devez faire ce qui suit :

  • Installez DB2 avec le système de sécurité étendu.
  • Ajoutez le chemin vers le binaire PHP à la variable d'environnement du système (PATH) (Par défaut : C:\php\).
  • Créé une autre variable d'environnement contenant le chemin vers le fichier PHP.INI (e.g. : PHPRC = C:\php\).
  • Ajoutez l'utilisateur IUSR_COMPUTERNAME au groupe DB2USERS.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration DB2
Nom Défaut Modifiable Historique
ibm_db2.binmode "1" PHP_INI_ALL  
ibm_db2.i5_all_pconnect "0" PHP_INI_SYSTEM Disponible depuis ibm_db2 1.6.5.
ibm_db2.i5_allow_commit "0" PHP_INI_SYSTEM Disponible depuis ibm_db2 1.5.0.
ibm_db2.i5_dbcs_alloc "0" PHP_INI_SYSTEM Disponible depuis ibm_db2 1.0.2.
ibm_db2.instance_name NULL PHP_INI_SYSTEM  
ibm_db2.i5_ignore_userid "0" PHP_INI_SYSTEM Disponible depuis ibm_db2 1.8.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ibm_db2.binmode (entier)

Cette option contrôle le mode utilisé pour convertir à partir ou vers les données binaires dans l'application PHP.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect (entier)

Cette option écrase le comportement de la fonction db2_connect() pour les ouvertures et les fermetures en PHP Lorsque ibm_db2.i5_all_pconnect = 1, toutes les connexions db2 deviennent persistante (db2_pconnect()). Sous i5/OS, db2_pconnect() a des performances accrues avec de petites machines comparée à la fonction db2_connect(). Cette option est pratique dans le sens où elle permet de modifier le comportement de la fonction db2_connect() en db2_pconnect() sans pour autant modifier le code source PHP.

  • 0 : le comportement de la fonction db2_connect() est inchangé

  • 1 : le comportement de la fonction db2_connect() devient identique à la fonction db2_pconnect() pour les connexions persistantes uniquement.

ibm_db2.i5_allow_commit integer

Cette option contrôle le mode d'envoi utilisé pour les schémas de collections i5 dans l'application PHP.

  • 0 : aucun envoi (voir i5_commit pour dérivé)

  • 1 : autorise l'envoi (voir i5_commit pour dérivé)

ibm_db2.i5_dbcs_alloc (entier)

Cette option contrôle l'allocation de canevas internes de ibm_db2 pour des tampons de colonne large DBCS.

  • 0 : aucune allocation étendue (voir i5_dbcs_alloc pour dérivé)

  • 1 : utilise les allocations étendues (voir i5_dbcs_alloc pour dérivé)

ibm_db2.instance_name (chaîne de caractères)

Sur les systèmes d'exploitation Linux et UNIX, cette option définit le nom de l'instance à utiliser pour les connexions aux bases de données cataloguées. Si cette option est utilisée, sa valeur prévaut sur la variable d'environnement DB2INSTANCE.

Cette option est ignorée sur les systèmes d'exploitation Windows.

ibm_db2.i5_ignore_userid (entier)

Cette option surcharge le comportement de db2_pconnect() et db2_connect() quant aux userid et au mot de passe dans vos application PHP. Lorsque ibm_db2.i5_ignore_userid = 1, toutes les connexions db2 (persistantes comprises) reçoivent un userid et un mot de passe vide. Ainsi, Apache se connecte avec le profil courant (NOBODY). Vous ne devriez utiliser cette option que pour des sites web DB2 qui ne nécessitent aucun changement de profile. Cette option est une façon simple de définir le userid et le mot de passe pour les fonctions db2_pconnect() et db2_connect() sans pour autant modifier le code source PHP. Cette option peut être utilisée avec l'option ibm_db2.i5_all_pconnect = 1.

  • 0 : db2_(p)connect avec un userid et un mot de passé spécifique

  • 1 : db2_(p)connect avec un userid et un mot de passe nul



Types de ressources

L'extension ibm_db2 retourne des ressources de connexion, des ressources de déclaration et des ressources de jeu de résultats.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DB2_BINARY (entier)
Spécifie que les données binaires seront retournées comme elles sont. Ceci est le mode par défaut.
DB2_CONVERT (entier)
Spécifie que les données binaires seront converties en hexadécimal et retournées comme une chaîne ASCII.
DB2_PASSTHRU (entier)
Spécifie que les données binaires seront converties en valeur NULL.
DB2_SCROLLABLE (entier)
Spécifie le curseur flottant pour une déclaration de ressource. Ce mode permet un accès aléatoire aux lignes du jeu de résultats, mais présentement, il est supporté seulement par IBM DB2 Universal Database.
DB2_FORWARD_ONLY (entier)
Spécifie un curseur d'avancement seul pour une déclaration de ressource. Il s'agit de la valeur par défaut de ce type de curseur, et il est supporté par tous les serveurs de base de données.
DB2_PARAM_IN (entier)
Spécifie que la variable PHP doit être lié comme étant un paramètre ENTRANT pour une procédure d'enregistrement.
DB2_PARAM_OUT (entier)
Spécifie que la variable PHP doit être lié comme étant un paramètre SORTANT pour une procédure d'enregistrement.
DB2_PARAM_INOUT (entier)
Spécifie que la variable PHP doit être lié comme étant un paramètre ENTRANT/SORTANT pour une procédure d'enregistrement.
DB2_PARAM_FILE (entier)
Spécifie que la colonne doit être lié directement à un fichier pour entrée.
DB2_AUTOCOMMIT_ON (entier)
Spécifie que autocommit doit être activé.
DB2_AUTOCOMMIT_OFF (entier)
Spécifie que autocommit doit être désactivé.
DB2_DOUBLE (entier)
Spécifie que la variable doit être lié à un type DOUBLE, FLOAT ou REAL.
DB2_LONG (entier)
Spécifie que la variable doit être lié à un type SMALLINT, INTEGER ou BIGINT.
DB2_CHAR (entier)
Spécifie que la variable doit être lié à un type CHAR ou VARCHAR
DB2_CASE_NATURAL (entier)
Spécifie que les noms de colonnes doivent être retournés dans leurs casses naturelles.
DB2_CASE_LOWER (entier)
Spécifie que les noms de colonnes doivent être retournés en minuscule.
DB2_CASE_UPPER (entier)
Spécifie que les noms de colonnes doivent être retournés en majuscule.
DB2_DEFERRED_PREPARE_ON (entier)
Spécifie que la préparation déferrée doit être active pour la ressource de requête spécifiée.
DB2_DEFERRED_PREPARE_OFF (entier)
Spécifie que la préparation déferrée doit être désactivée pour la ressource de requête spécifiée.


Fonctions IBM DB2


db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données

Description

mixed db2_autocommit ( resource $connection [, bool $value ] )

Modifie ou lit le comportement de AUTOCOMMIT de la connexion spécifiée.

Liste de paramètres

connection

Une variable de connexion à une base de données valide retournée par db2_connect() ou db2_pconnect().

value

Une des constantes suivantes :

DB2_AUTOCOMMIT_OFF

Désactive AUTOCOMMIT.

DB2_AUTOCOMMIT_ON

Active AUTOCOMMIT.

Valeurs de retour

Lorsque db2_autocommit() reçoit seulement connection comme paramètre, la fonction retourne un entier représentant l'état courant de AUTOCOMMIT de la connexion fournie. Une valeur de 0 signifie que AUTOCOMMIT est désactivé, tandis qu'une valeur de 1 signifie que AUTOCOMMIT est activé.

Lorsque db2_autocommit() reçoit les deux paramètres connection et autocommit, la fonction essaie de modifier l'état AUTOCOMMIT à l'état autocommit de la connexion fournie. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération de la valeur de AUTOCOMMIT pour une connexion

Dans l'exemple suivant, une connexion qui a été initialisée avec l'état AUTOCOMMIT désactivé est testé avec la fonction db2_autocommit().

<?php
$options 
= array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn db2_connect($database$user$password$options);
$ac db2_autocommit($conn);
if (
$ac == 0) {
    print 
"$ac -- AUTOCOMMIT est désactivé.";
} else {
    print 
"$ac -- AUTOCOMMIT est activé.";
}
?>

L'exemple ci-dessus va afficher :

0 -- AUTOCOMMIT est désactivé.

Exemple #2 Modification de la valeur de AUTOCOMMIT pour une connexion

Dans l'exemple suivant, une connexion qui a été préalablement initialisée avec l'état AUTOCOMMIT désactivé a son comportement changé lors de l'activation de l'état AUTOCOMMIT.

<?php
$options 
= array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn db2_connect($database$user$password$options);

// Active AUTOCOMMIT
$rc db2_autocommit($connDB2_AUTOCOMMIT_ON);
if (
$rc) {
    print 
"Activation AUTOCOMMIT réussie.\n";
}

// Vérification de l'état AUTOCOMMIT
$ac db2_autocommit($conn);
if (
$ac == 0) {
    print 
"$ac -- AUTOCOMMIT est désactivé.";
} else {
    print 
"$ac -- AUTOCOMMIT est activé.";
}
?>

L'exemple ci-dessus va afficher :

Activation AUTOCOMMIT réussie.
1 -- AUTOCOMMIT est activé.

Voir aussi

  • db2_connect() - Retourne une connexion à une base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données



db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param Associe une variable PHP à un paramètre d'une requête SQL

Description

bool db2_bind_param ( resource $stmt , int $parameter-number , string $variable-name [, int $parameter-type [, int $data-type = 0 [, int $precision = -1 [, int $scale = 0 ]]]] )

Associe une variable PHP à un paramètre dans la requête SQL retournée par db2_prepare(). Cette fonction vous donne plus de contrôle sur les types des paramètres, les types des données, la précision, et l'échelle pour le paramètre qu'en lui passant simplement une variable à l'intérieur du tableau d'entrée optionnel de la fonction db2_execute().

Liste de paramètres

stmt

Une requête préparée retournée par db2_prepare().

parameter-number

Spécifie la position du paramètre commençant à l'indice 1 dans la requête préparée.

variable-name

Une chaîne spécifiant le nom de la variable PHP à associer au paramètre spécifié par parameter-number.

parameter-type

Une constante spécifiant si la variable PHP devrait être associé au paramètre SQL en tant que paramètre entrant (DB2_PARAM_IN), que paramètre sortant (DB2_PARAM_OUT) ou en tant que paramètre qui accepte les entrées et les sorties (DB2_PARAM_INOUT). Pour éviter une surconsommation de la mémoire, vous pouvez aussi spécifier DB2_PARAM_FILE pour attacher la variable PHP au nom du fichier qui contient les données de l'objet large (BLOB, CLOB ou DBCLOB).

data-type

Une constante spécifiant le type de données SQL que la variable PHP devrait être associée. Le paramètre doit prendre une des valeurs suivantes : DB2_BINARY, DB2_CHAR, DB2_DOUBLE ou DB2_LONG.

precision

Spécifie la précision à laquelle la variable devrait être associée à la base de données. Ce paramètre peut également être utilisé pour récupérer des valeurs de sortie XML pour les procédures stockées. Une valeur non-négative spécifie la taille maximale des données XML qui seront récupérées depuis la base de données. Si ce paramètre n'est pas utilisé, une taille par défaut de 1 Mo sera définie pour récupérer les valeurs de sorte XML depuis la procédure stockée.

scale

Spécifie l'échelle à laquelle la variable devrait être associée à la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Association de variables PHP à une requête préparée

La requête SQL dans l'exemple suivant utilise deux paramètres d'entrée dans la section WHERE. Nous appelons db2_bind_param() pour associer deux variables qui n'ont pas été déclarées ou assignées avant l'appel de db2_bind_param(); dans cet exemple, $lower_limit est assignée avant d'être appelée à db2_bind_param(), mais $upper_limit est assignée après l'appel de db2_bind_param(). Les variables doivent être associées et, pour les paramètres qui acceptent les entrées, nous devons leur assigner une valeur avant d'appeler db2_execute().

<?php

$sql 
'SELECT nom, race, poids FROM animaux
    WHERE poids > ? AND poids < ?'
;
$conn db2_connect($database$user$password);
$stmt db2_prepare($conn$sql);

// Nous pouvons déclarer la variable avant d'appeler db2_bind_param()
$lower_limit 1;

db2_bind_param($stmt1"lower_limit"DB2_PARAM_IN);
db2_bind_param($stmt2"upper_limit"DB2_PARAM_IN);

// Nous pouvons aussi déclarer la variable après l'appel de db2_bind_param()
$upper_limit 15.0;

if (
db2_execute($stmt)) {
    while (
$row db2_fetch_array($stmt)) {
        print 
"{$row[0]}{$row[1]}{$row[2]}\n"
    }
}
?>

L'exemple ci-dessus va afficher :

Pook, chat, 3.2
Rickety Ride, chèvre, 9.7
Peaches, chien, 12.3

Exemple #2 Appel de procédures d'enregistrement avec les paramètres IN et OUT

La procédure d'enregistrement concorde_animal dans l'exemple suivant accepte trois différents paramètres :

  1. un paramètre d'entré (IN) qui accepte le nom du premier animal en entré

  2. un paramètre d'entrée-sortie (INOUT) qui accepte le nom du second animal en entré et retourne une chaîne de caractères TRUE si un animal dans la base de données correspond à ce nom

  3. un paramètre de sortie (OUT) qui retourne la somme des poids des deux animaux identifiés

De plus, la procédure d'enregistrement retourne un jeu de résultat contenant les animaux listés en ordre alphabétique en commençant avec l'animal correspondant à la valeur d'entrée du premier paramètre et en terminant avec l'animal correspondant à la valeur d'entrée du deuxième paramètre.

<?php

$sql 
'CALL concorde_animal(?, ?, ?)';
$conn db2_connect($database$user$password);
$stmt db2_prepare($conn$sql);

$nom "Peaches";
$second_nom "Rickety Ride";
$poids 0;

db2_bind_param($stmt1"nom"DB2_PARAM_IN);
db2_bind_param($stmt2"second_nom"DB2_PARAM_INOUT);
db2_bind_param($stmt3"poids"DB2_PARAM_OUT);

print 
"Valeurs des paramètres _avant_ CALL :\n";
print 
"  1: {$nom} 2: {$second_nom} 3: {$poids}\n\n";

if (
db2_execute($stmt)) {
    print 
"Valeurs des paramètres _après_ CALL :\n";
    print 
"  1: {$nom} 2: {$second_nom} 3: {$poids}\n\n";

    print 
"Résultats :\n";
    while (
$row db2_fetch_array($stmt)) {
        print 
"  {$row[0]}{$row[1]}{$row[2]}\n"
    }
}
?>

L'exemple ci-dessus va afficher :

Valeurs des paramètres _avant_ CALL :
  1: Peaches 2: Rickety Ride 3: 0

Valeurs des paramètres _après_ CALL :
  1: Peaches 2: TRUE 3: 22

Résultats :
  Peaches, chien, 12.3
  Pook, chat, 3.2
  Rickety Ride, chèvre, 9.7

Exemple #3 Insertion d'un objet large binaire (BLOB) provenant directement d'un fichier

Les données pour les objets larges sont normalement enregistrées dans des fichiers, comme des documents XML ou des fichiers audio. Plutôt que de lire le fichier en entier dans une variable de PHP et ensuite associer la variable PHP dans la requête SQL, vous pouvez éviter certain surdébit de mémoire en associant le fichier directement au paramètre d'entrée de votre requête SQL. L'exemple suivant démontre comment associer un fichier directement dans une colonne BLOB.

<?php
$stmt 
db2_prepare($conn"INSERT INTO animal_pictures(photo) VALUES (?)");

$picture "/opt/albums/spook/grooming.jpg";
$rc db2_bind_param($stmt1"picture"DB2_PARAM_FILE);
$rc db2_execute($stmt);
?>

Voir aussi



db2_client_info

(PECL ibm_db2 >= 1.1.1)

db2_client_infoRetourne un objet avec des propriétés qui décrivent le client de base de données DB2

Description

object db2_client_info ( resource $connection )

Cette fonction retourne un objet avec des propriétés en lecture seule qui retournent des informations à propos du client de base de données DB2. La table suivante liste les propriétés du client DB2 :

Propriétés du client DB2
Nom Propriété Type de retour Description
APPL_CODEPAGE entier L'application est un code page.
CONN_CODEPAGE entier Le code page pour la connexion courante.
DATA_SOURCE_NAME chaîne de caractères Le nom source de la donnée (DSN) utilisé pour créer la connexion courante à la base de données.
DRIVER_NAME chaîne de caractères Le nom de la bibliothèque qui implémente la spécification DB2 Call Level Interface (CLI).
DRIVER_ODBC_VER chaîne de caractères La version de ODBC que le client DB2 supporte. Ceci retourne une chaîne de caractères "MM.mm"MM est la version majeure et mm est la version mineure. Le client DB2 retourne toujours "03.51".
DRIVER_VER chaîne de caractères La version du client, dans la forme d'une chaîne de caractères "MM.mm.uuuu"MM est la version majeure, mm est la version mineure et uuuu est la mise à jour. Par exemple, "08.02.0001" représente la version majeure 8, la version mineure 2, et la mise à jour 1.
ODBC_SQL_CONFORMANCE chaîne de caractères

Le niveau de grammaire supporté par le client :

MINIMUM

Supporte le minimum de grammaire SQL de ODBC.

CORE

Supporte le noyau de grammaire SQL de ODBC.

EXTENDED

Supporte la grammaire étendue SQL de ODBC.

ODBC_VER chaîne de caractères La version de ODBC que le gestionnaire de pilote ODBC supporte. Cela retourne une chaîne de caractères "MM.mm.rrrr"MM est la version majeure, mm est la version mineure et rrrr est la mise à jour. Le client DB2 retourne toujours "03.01.0000".

Liste de paramètres

connection

Spécifie la connexion cliente DB2 active.

Valeurs de retour

Retourne un objet si l'appel est réussi. Retourne FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec db2_client_info()

Pour récupérer des informations à propos du client, vous devez passer une ressource de connexion de base de données valide à la fonction db2_client_info().

<?php
$conn 
db2_connect'SAMPLE''db2inst1''ibmdb2' );
$client db2_client_info$conn );

if (
$client) {
    echo 
"DRIVER_NAME: ";   var_dump$client->DRIVER_NAME );  
    echo 
"DRIVER_VER: ";   var_dump$client->DRIVER_VER );  
    echo 
"DATA_SOURCE_NAME: ";   var_dump$client->DATA_SOURCE_NAME );  
    echo 
"DRIVER_ODBC_VER: ";   var_dump$client->DRIVER_ODBC_VER );  
    echo 
"ODBC_VER: ";    var_dump$client->ODBC_VER );  
    echo 
"ODBC_SQL_CONFORMANCE: ";  var_dump$client->ODBC_SQL_CONFORMANCE );  
    echo 
"APPL_CODEPAGE: ";   var_dump$client->APPL_CODEPAGE );  
    echo 
"CONN_CODEPAGE: ";   var_dump$client->CONN_CODEPAGE );  
}
else {
    echo 
"Erreur de récupération des informations du client.
     Peut-être que votre connexion à la base de données était invalide."
;
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

Voir aussi

  • db2_server_info() - Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2



db2_close

(PECL ibm_db2 >= 1.0.0)

db2_close Ferme une connexion de base de données

Description

bool db2_close ( resource $connection )

Cette fonction ferme la connexion client DB2 initialisée avec db2_connect() et libère les ressources correspondantes du serveur de base de données.

Si vous essayez de fermer une connexion client DB2 persistante initialisée avec db2_pconnect(), la requête de fermeture est ignorée et la connexion client DB2 persistante reste disponible pour de prochains appels.

Liste de paramètres

connection

Spécifie une connexion client DB2 active.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermeture d'une connexion

L'exemple suivant montre une tentative réussie de fermeture de connexion d'une base de données IBM DB2, Cloudscape ou Apache Derby.

<?php
$conn 
db2_connect('SAMPLE''db2inst1''ibmdb2');
$rc db2_close($conn);
if (
$rc) {
    echo 
"La connexion a été correctement fermée.";
}
?>

L'exemple ci-dessus va afficher :

La connexion a été correctement fermée.

Voir aussi

  • db2_connect() - Retourne une connexion à une base de données
  • db2_pclose() - Ferme une connexion persistante à la base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données



db2_column_privileges

(PECL ibm_db2 >= 1.0.0)

db2_column_privileges Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table

Description

resource db2_column_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Pour concorder avec tous les schémas, passez NULL ou une chaîne vide.

table-name

Le nom de la table. Pour obtenir toutes les tables dans la base de données, passez NULL ou une chaîne vide.

column-name

Le nom de la colonne. Pour obtenir toutes les colonnes de la table, passez NULL ou une chaîne vide.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrivent les privilèges des colonnes concordant avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne Description
TABLE_CAT Nom du catalogue. La valeur est NULL si la table ne possède pas de catalogue.
TABLE_SCHEM Nom du schéma.
TABLE_NAME Nom de la table.
COLUMN_NAME Nom de la colonne.
GRANTOR ID d'autorisation de l'utilisateur qui a donné le privilège.
GRANTEE ID d'autorisation de l'utilisateur à qui le privilège a été donné.
PRIVILEGE Le privilège pour la colonne.
IS_GRANTABLE Si GRANTEE est permis pour donner ce privilège à d'autres utilisateurs.

Voir aussi

  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_columns

(PECL ibm_db2 >= 1.0.0)

db2_columns Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table

Description

resource db2_columns ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Pour concorder avec tous les schémas, passez '%'.

table-name

Le nom de la table. Pour obtenir toutes les tables dans la base de données, passez NULL ou une chaîne vide.

column-name

Le nom de la colonne. Pour obtenir toutes les colonnes de la table, passez NULL ou une chaîne vide.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrivent les privilèges des colonnes concordant avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne Description
TABLE_CAT Nom du catalogue. La valeur est NULL si la table ne possède pas de catalogue.
TABLE_SCHEM Nom du schéma.
TABLE_NAME Nom de la table.
COLUMN_NAME Nom de la colonne.
DATA_TYPE Le type de données SQL pour la colonne, représenté comme un entier.
TYPE_NAME Une chaîne représentant le type de données pour la colonne.
COLUMN_SIZE Un entier représentant la grandeur de la colonne.
BUFFER_LENGTH Nombre d'octets maximaux nécessaires pour enregistrer des données de cette colonne.
DECIMAL_DIGITS L'échelle de la colonne ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant un type de données numériques approximé) ou NULL (représentant un type de données pour lequel la base n'est pas applicable).
NULLABLE Un entier représentant si la colonne peut être nulle ou pas.
REMARKS Description de la colonne.
COLUMN_DEF Valeur par défaut de la colonne.
SQL_DATA_TYPE Un entier représentant la grandeur de la colonne.
SQL_DATETIME_SUB Retourne un entier représentant un code de sous-type datetime ou NULL si les types de données SQL n'appliquent pas.
CHAR_OCTET_LENGTH Grandeur maximale en octets pour les type de données d'un caractère de la colonne, qui concorde avec COLUMN_SIZE pour un seul octet de données ou NULL pour un type de données qui n'est pas des caractères.
ORDINAL_POSITION La position de la colonne commençant à 1 dans la table.
IS_NULLABLE Une chaîne dont la valeur est 'YES' signifie que la colonne est nulle et 'NO' signifie que la colonne ne peut être nulle.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_commit

(PECL ibm_db2 >= 1.0.0)

db2_commit Valide la transaction

Description

bool db2_commit ( resource $connection )

Envoie une une requête en cours sur la ressource de connexion spécifiée et commence une nouvelle transaction. Les applications PHP ont normalement pour valeur par défaut AUTOCOMMIT d'activé, alors db2_commit() n'est pas nécessaire tant que AUTOCOMMIT n'est pas désactivée pour la ressource de connexion.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion

Description

string db2_conn_error ([ resource $connection ] )

db2_conn_error() retourne la valeur de SQLSTATE représentant la raison pour laquelle la dernière tentative de connexion à la base de données a échouée. Lorsque db2_connect() retourne FALSE en cas d'une tentative de connexion échouée, ne passez aucun paramètre à db2_conn_error() pour obtenir la valeur de SQLSTATE.

Si par contre la connexion était réussie mais est devenue invalide avec le temps, vous pouvez passer le paramètre de connexion connection pour obtenir la valeur de SQLSTATE pour la connexion spécifique.

Pour comprendre les valeurs de SQLSTATE, vous pouvez taper la commande suivante dans le processeur de ligne de commandes de DB2 : db2 '? sqlstate-value'. Vous pouvez aussi appeler la fonction db2_conn_errormsg() pour obtenir un message d'erreur explicite ainsi que la valeur de SQLCODE associée.

Liste de paramètres

connection

Une ressource de connexion associée à la connexion qui a préalablement été réussie, mais qui est devenue invalide avec le temps.

Valeurs de retour

Retourne la valeur de SQLSTATE résultant d'une mauvaise tentative de connexion. Retourne une chaîne vide s'il n'y a pas d'erreur associée avec la dernière tentative de connexion.

Exemples

Exemple #1 Récupération de la valeur de SQLSTATE pour une tentative de connexion échouée

L'exemple suivant montre comment retourner une valeur de SQLSTATE après un passage forcé d'un paramètre invalide à la fonction db2_connect().

<?php
$conn 
db2_connect('mauvaisnom''mauvaisutilisateur''mauvaismotdepasse');
if (!
$conn) {
    print 
"Valeur de SQLSTATE : " db2_conn_error();
}
?>

L'exemple ci-dessus va afficher :

Valeur de SQLSTATE : 08001

Voir aussi

  • db2_conn_errormsg() - Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_connect() - Retourne une connexion à une base de données
  • db2_stmt_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
  • db2_stmt_errormsg() - Retourne le dernier message d'erreur d'une requête SQL



db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE

Description

string db2_conn_errormsg ([ resource $connection ] )

db2_conn_errormsg() retourne un message d'erreur et la valeur de SQLCODE représentant la raison pour laquelle la dernière tentative de connexion à la base de données a échouée. Lorsque db2_connect() retourne FALSE en cas d'une tentative de connexion échouée, ne passez aucun paramètre à db2_conn_errormsg() pour obtenir le message d'erreur et la valeur de SQLCODE.

Si par contre la connexion était réussie mais est devenue invalide avec le temps, vous pouvez passer le paramètre de connexion connection pour obtenir le message d'erreur et la valeur de SQLCODE pour la connexion spécifique.

Liste de paramètres

connection

Une ressource de connexion associée à la connexion qui a préalablement été réussie, mais qui est devenue invalide avec le temps.

Valeurs de retour

Retourne une chaîne contenant le message d'erreur et la valeur de SQLCODE résultant d'une mauvaise tentative de connexion. Retourne une chaîne vide s'il n'y a pas d'erreur associée avec la dernière tentative de connexion.

Exemples

Exemple #1 Récupération du message d'erreur retourné par une tentative de connexion échouée

L'exemple suivant montre comment retourner un message d'erreur ainsi que la valeur de SQLCODE après un passage forcé d'un paramètre invalide à la fonction db2_connect(). db2_connect().

<?php
$conn 
db2_connect('mauvaisnom''mauvaisutilisateur''mauvaismotdepasse');
if (!
$conn) {
    print 
db2_conn_errormsg();
}
?>

L'exemple ci-dessus va afficher :

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "MAUVAISNOM" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

Voir aussi

  • db2_conn_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_connect() - Retourne une connexion à une base de données
  • db2_stmt_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
  • db2_stmt_errormsg() - Retourne le dernier message d'erreur d'une requête SQL



db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect Retourne une connexion à une base de données

Description

resource db2_connect ( string $database , string $username , string $password [, array $options ] )

Crée une nouvelle connexion à une base de données IBM DB2 Universal Database, IBM Cloudscape ou Apache Derby.

Liste de paramètres

database

Pour une connexion cataloguée de la base de données, database représente l'alias de la base de données dans le catalogue client DB2

Pour une connexion non cataloguée de la base de données, database représente une chaîne complète de connexion qui est dans le format suivant :

DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;
où les paramètres représentent les valeurs suivantes :
database

Le nom de la base de données.

hostname

L'adresse Internet ou IP du serveur de base de données.

port

Le port TCP/IP sur lequel la base de données écoute les connexions.

username

Le nom d'utilisateur avec lequel vous vous connectez à la base de données.

password

Le mot de passe avec lequel vous vous connectez à la base de données.

username

Le nom d'utilisateur avec lequel vous vous connectez à la base de données.

Pour les connexions non cataloguées, vous devez passer une valeur NULL ou une chaîne vide.

password

Le mot de passe avec lequel vous vous connectez à la base de données.

Pour les connexions non cataloguées, vous devez passer une valeur NULL ou une chaîne vide.

options

Un tableau associatif des options de connexion qui affecteront le comportement de la connexion, où les valeurs des clés incluent :

autocommit

La valeur DB2_AUTOCOMMIT_ON active l'autocommit sur cette connexion.

La valeur DB2_AUTOCOMMIT_OFF désactive le autocommit pour cette connexion.

DB2_ATTR_CASE

Passer la valeur DB2_CASE_NATURAL spécifie que les noms de colonnes seront retournés dans leurs casses naturelles.

Passer la valeur DB2_CASE_LOWER spécifie que les noms de colonnes seront retournés en minuscule.

Passer la valeur DB2_CASE_UPPER spécifie que les noms de colonnes seront retournés en majuscule.

CURSOR

Passer la valeur DB2_FORWARD_ONLY spécifie un curseur uniquement suivant pour une ressource de requête. C'est le type de curseur par défaut et est supporté sur tous les serveurs de base de données.

Passer la valeur DB2_SCROLLABLE spécifie un curseur scrollable pour une ressource de requête. Ce mode permet un accès aléatoire aux lignes dans un jeu de résultats, mais actuellement, n'est supporté que par la base de données IBM DB2 Universal.

La nouvelle option suivante est disponible pour les versions ibm_db2 1.7.0 et suivantes.

trustedcontext

Le fait de passer la valeur DB2_TRUSTED_CONTEXT_ENABLE active le contexte pour ce gestionnaire de connexion. Ce paramètre ne peut être défini avec la fonction db2_set_option().

Cette clé fonctionne uniquement si la base de données est cataloguée (même si la base de données est locale), ou si vous spécifiez le DSN complet lors de la création de la connexion.

Pour catalogue la base de données, utilisez les commandes suivantes :

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

Les nouvelles options i5/OS suivantes sont disponibles dans les versions ibm_db2 1.5.1 et suivantes.

i5_lib

Un caractère qui indique la bibliothèque par défaut qui sera utilisée pour résoudre les références aux fichiers non qualifiées. Ceci n'est pas valide si la connexion utilise un mode de système de nom.

i5_naming

La valeur DB2_I5_NAMING_ON active DB2 UDB Cli iSeries mode système de nom. Les fichiers sont qualifiés en utilisant le délimiteur slash (/). Les fichiers non qualifiés sont résolus en utilisant la liste de bibliothèque pour le travail.

La valeur DB2_I5_NAMING_OFF désactive DB2 UDB CLI mode de nom par défaut, qui est l'écriture SQL. Les fichiers sont qualifiés en utilisant le délimiteur point (.). Les fichiers non qualifiés sont résolus en utilisant soit la bibliothèque par défaut ou l'ID de l'usager courant.

i5_commit

L'attribut i5_commit devrait être fixé avant l'appel à db2_connect(). Si la valeur est changée après que la connexion ait été établie et que la connexion est à une source de données distance, le changement ne prendra effet qu'au prochain appel de db2_connect().

Note:

La configuration php.ini ibm_db2.i5_allow_commit==0 ou DB2_I5_TXN_NO_COMMIT est par défaut, mais peut être dérivée avec l'option i5_commit.

DB2_I5_TXN_NO_COMMIT : contrôle d'envoi n'est pas utilisé.

DB2_I5_TXN_READ_UNCOMMITTED : lecture ancienne, lecture non répétitive et fictive est possible.

DB2_I5_TXN_READ_COMMITTED : lecture ancienne non possible. La lecture répétitive et fictive est possible.

DB2_I5_TXN_REPEATABLE_READ : lecture ancienne et non répétitive n'est pas possible. Lecture fictive est possible.

DB2_I5_TXN_SERIALIZABLE : les transactions sont linéarisées. Lecture ancienne, non répétitive et fictive n'est pas possible.

i5_query_optimize

DB2_FIRST_IO Toutes les requêtes sont optimisées avec le but de retourner la première page aussi vite que possible. Ce but fonctionne bien lorsque l'affichage est contrôlé par un utilisateur qui peut annuler une requête après avoir vu la première page des données. Les requêtes sont codées avec une clause "OPTIMIZE nnn ROWS" afin de réussir le but spécifié par la clause.

DB2_ALL_IO Toutes les requêtes sont optimisées avec le but de retourner l'entière requête dans le plus petit intervalle de temps. Ceci est une bonne option lorsque l'affichage d'une requête est en train d'être écrit vers un fichier ou un rapport ou encore lorsque l'interface met en queue les données. Les requêtes sont codées avec une clause "OPTIMIZE FOR nnn ROWS" afin de réussir le but spécifié par la clause. Ceci est l'opération par défaut.

i5_dbcs_alloc

La valeur DB2_I5_DBCS_ALLOC_ON active le canevas d'allocation DB2 6X pour l'accroissement des tailles des colonnes.

La valeur DB2_I5_DBCS_ALLOC_OFF désactive le canevas d'allocation DB2 6X pour l'accroissement des tailles des colonnes.

Note : la configuration php.ini ibm_db2.i5_dbcs_alloc==0 ou DB2_I5_DBCS_ALLOC_OFF est par défaut mais peut être dérivée avec l'option i5_dbcs_alloc.

i5_date_fmt

DB2_I5_FMT_ISO : le format de date de l'organisation internationale de normalisation (ISO) "yyyy-mm-dd" est utilisé. Ceci est la valeur par défaut.

DB2_I5_FMT_USA : le format de date des États-Unis "mm/dd/yyyy" est utilisé.

DB2_I5_FMT_EUR : le format de date Européen "dd.mm.yyyy" est utilisé.

DB2_I5_FMT_JIS : le format de date de l'industrie japonaise des standards "yyyy-mm-dd" est utilisé.

DB2_I5_FMT_MDY : le format de date "mm/dd/yyyy" est utilisé.

DB2_I5_FMT_DMY : le format de date "dd/mm/yyyy" est utilisé.

DB2_I5_FMT_YMD : le format de date "yy/mm/dd" est utilisé.

DB2_I5_FMT_JUL : le format de date Julien "yy/ddd" est utilisé.

DB2_I5_FMT_JOB : le valeur par défaut est utilisée.

i5_date_sep

DB2_I5_SEP_SLASH : un slash ( / ) est utilisé en tant que séparateur de date. Ceci est la valeur par défaut.

DB2_I5_SEP_DASH : un tiret ( : ) est utilisé en tant que séparateur de date.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de date.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de date.

DB2_I5_SEP_BLANK : un espace blanc est utilisé en tant que séparateur de date.

DB2_I5_SEP_JOB : la valeur par défaut est utilisée.

i5_time_fmt

DB2_I5_FMT_ISO : le format de l'heure de l'organisation internationale de normalisation "hh.mm.ss" est utilisé. Ceci est la valeur par défaut.

DB2_I5_FMT_USA : le format de l'heure des États-Unis "hh:mmxx" est utilisé, où "xx" vaut "AM" ou "PM".

DB2_I5_FMT_EUR : le format de l'heure Européen "hh.mm.ss" est utilisé.

DB2_I5_FMT_JIS : le format de l'heure de l'industrie japonaise des standards "hh:mm:ss" est utilisé.

DB2_I5_FMT_HMS : le format "hh:mm:ss" est utilisé.

i5_time_sep

DB2_I5_SEP_COLON : un deux-points ( : ) est utilisé en tant que séparateur de temps. Ceci est la valeur par défaut.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de temps.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de temps.

DB2_I5_SEP_BLANK : un espace blanc est utilisé en tant que séparateur de temps.

DB2_I5_SEP_JOB : la valeur par défaut est utilisée.

i5_decimal_sep

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de décimale. Ceci est la valeur par défaut.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de décimale.

DB2_I5_SEP_JOB : la valeur par défaut est utilisée.

La nouvelle option i5/OS suivante est disponible depuis la version ibm_db2 1.8.0 et suivantes.

i5_libl

Une chaîne indiquant la liste a utilisé pour résoudre les références de fichiers non qualifiés. Spécifiez la liste en séparant les valeurs par un espace, comme ceci : 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Note:

i5_libl appelle qsys2/qcmdexc('cmd',cmdlen), qui n'est disponible que depuis i5/OS V5R4.

Valeurs de retour

Retourne la ressource de connexion si la tentative de connexion réussie. Si la tentative de connexion échoue, db2_connect() retourne FALSE.

Exemples

Exemple #1 Création d'une connexion cataloguée

Les connexions cataloguées nécessitent que vous ayez préalablement catalogué la base de données spécifiée à l'aide du processeur de ligne de commandes DB2 ("Command Line Processor" : cLP) ou avec l'assistant de configuration de DB2.

<?php
$database 
'EXEMPLE';
$user 'db2inst1';
$password 'ibmdb2';

$conn db2_connect($database$user$password);

if (
$conn) {
    echo 
"Connexion réussie.";
    
db2_close($conn);
}
else {
    echo 
"Connexion échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion réussie.

Exemple #2 Création d'une connexion non cataloguée

Une connexion non cataloguées vous permet de vous connecter dynamiquement à une base de données.

<?php
$database 
'EXEMPLE';
$user 'db2inst1';
$password 'ibmdb2';
$hostname 'localhost';
$port 50000;

$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
  
"HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn db2_connect($conn_string'''');

if (
$conn) {
    echo 
"Connexion réussie.";
    
db2_close($conn);
}
else {
    echo 
"Connexion échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion réussie.

Exemple #3 Création d'une connexion avec autocommit désactivé par défaut

Le fait de passer un tableau d'option à db2_connect() vous permet de modifier le comportement par défaut de la connexion.

<?php
$database 
'EXEMPLE';
$user 'db2inst1';
$password 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);

$conn db2_connect($database$user$password$options);

if (
$conn) {
    echo 
"Connexion réussie.\n";
    if (
db2_autocommit($conn)) {
         echo 
"Autocommit est activé.\n";
    }
    else {
         echo 
"Autocommit est désactivé.\n";
    }
    
db2_close($conn);
}
else {
    echo 
"Connexion échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion réussie.
Autocommit est désactivé.

Exemple #4 Meilleure performance i5/OS

Pour réussir à utiliser les meilleures performance de votre i5/OS ibm_db2 1.5.1, l'application PHP utilise l'hôte par défaut, le userid et le mot de passer pour votre db2_connect().

<?php
  $library 
"ADC";
  
$i5 db2_connect("""""", array("i5_lib"=>"qsys2"));
  
$result db2_exec($i5
       
"select * from systables where table_schema = '$library'");
  while (
$row db2_fetch_both($result)) {               
     echo 
$row['TABLE_NAME']."</br>";                     
  }                                                      
  
db2_close($i5);
?>

L'exemple ci-dessus va afficher :

ANIMALS
NAMES
PICTURES

Exemple #5 Utilisation du contexte

L'exemple suivant montre comment activer le contexte, changer d'utilisateur et récupérer l'ID de l'utilisateur courant.

<?php

$database 
"SAMPLE";
$hostname "localhost";
$port 50000;
$authID "db2inst1";
$auth_pass "ibmdb2";

$tc_user "tcuser";
$tc_pass "tcpassword";

$dsn "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=
$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn db2_connect($dsn""""$options);
if(
$tc_conn) {
    echo 
"Explicit trusted connection succeeded.\n";

    if(
db2_get_option($tc_conn"trustedcontext")) {
        
$userBefore db2_get_option($tc_conn"trusted_user");

        
//Code en tant qu'utilisateur 1.

        //Modification en l'utilisateur de confiance.
        
$parameters = array("trusted_user" => $tc_user
          
"trusted_password" => $tcuser_pass);
        
$res db2_set_option ($tc_conn$parameters1);

        
$userAfter db2_get_option($tc_conn"trusted_user");
        
//Code en tant qu'utilisateur de confiance.

        
if($userBefore != $userAfter) {
            echo 
"L'utilisateur a changé." "\n";
        }
    }

    
db2_close($tc_conn);
}
else {
    echo 
"Le changement de contexte de connexion a échoué.\n";
}
?>

L'exemple ci-dessus va afficher :

Le changement de contexte de connexion a échoué.
L'utilisateur a changé.

Voir aussi

  • db2_close() - Ferme une connexion de base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données



db2_cursor_type

(PECL ibm_db2 >= 1.0.0)

db2_cursor_type Retourne le type de curseur utilisé par une ressource

Description

int db2_cursor_type ( resource $stmt )

Retourne le type de curseur utilisé par une ressource. Utilisez cette fonction pour déterminer si vous travaillez avec un curseur à avancement seul ou un curseur flottant.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne DB2_FORWARD_ONLY si la ressource utilise un curseur à avance seul ou DB2_SCROLLABLE si la ressource utilise un curseur flottant.

Voir aussi



db2_escape_string

(PECL ibm_db2 >= 1.6.0)

db2_escape_string Utilisé pour échapper certains caractères

Description

string db2_escape_string ( string $string_literal )

Place des antislashs devant les caractères spéciaux à la chaîne de caractères passée en argument.

Liste de paramètres

string_literal

Une chaîne de caractères qui contient des caractères spéciaux qui doivent être modifiés. Les caractères qui sont transformés à l'aide d'un antislash sont \x00, \n, \r, \, ' " et \x1a.

Valeurs de retour

Retourne string_literal avec les caractères spéciaux mentionnés ci-dessus précédés par des antislashs.

Exemples

Exemple #1 Exemple avec db2_escape_string()

Résultat suite à l'utilisation de la fonction db2_escape_string()

<?php

$conn 
db2_connect($database$user$password);

if (
$conn) {
    
$str[0] = "Tous les caractères : \x00 , \n , \r , \ , ' , \" , \x1a .";
    
$str[1] = "Antislash (\). Apostrophe ('). Guillemet (\")";
    
$str[2] = "Le caractère NULL \0 doit être transformé aussi";
    
$str[3] = "Caractères intéressants : \x1a , \x00 .";
    
$str[4] = "Rien à transformer";
    
$str[5] = 200676;
    
$str[6] = "";

    foreach( 
$str as $string ) {
        echo 
"db2_escape_string: " db2_escape_string($string). "\n";
    }
}
?>

L'exemple ci-dessus va afficher :

db2_escape_string: Tous les caractères : \0 , \n , \r , \\ , \' , \" , \Z .
db2_escape_string: Antislash (\\). Apostrophe (\'). Guillemet (\")
db2_escape_string: Le caractère NULL \0 doit être transformé aussi
db2_escape_string: Caractères intéressants : \Z , \0 .
db2_escape_string: Rien à transformer
db2_escape_string: 200676
db2_escape_string:

Voir aussi



db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec Exécute une requête SQL directement

Description

resource db2_exec ( resource $connection , string $statement [, array $options ] )

Exécute une requête SQL directement.

Si vous prévoyez intercaler des variables PHP dans la requête SQL, vous devez comprendre que c'est l'une des plus communes failles de sécurité. Considérez qu'il faut appeler la fonction db2_prepare() pour préparer une requête SQL qui contient des marqueurs pour des variables d'entrée. Ensuite, vous pouvez appeler la fonction db2_execute() pour passer les valeurs d'entrée et ainsi éviter les attaques par injections SQL.

Si vous prévoyez appeler à plusieurs reprises la même requête SQL avec des paramètres différents, considérez qu'il est préférable d'appeler la fonction db2_prepare() et db2_execute() pour permettre au serveur de base de données de réutiliser son plan d'accès et ainsi augmenter l'efficacité de votre accès à la base de données.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

statement

Une requête SQL. La requête ne peut contenir de marqueur.

options

Un tableau associatif contenant les options de la requête. Vous pouvez utiliser ce paramètre pour demander un curseur flottant sur les serveurs de base de données qui supportent cette fonctionnalité.

Pour une description des options valides, reportez-vous à la fonction db2_set_option().

Valeurs de retour

Retourne une variable ressource si la requête SQL était envoyée correctement ou FALSE si la base de données n'a pas réussi à exécuter la requête SQL.

Exemples

Exemple #1 Création d'une table avec db2_exec()

L'exemple suivant utilise la fonction db2_exec() pour envoyer un ensemble de requêtes DDL afin de créer une table.

<?php
$conn 
db2_connect($database$user$password);

// Create the test table
$create 'CREATE TABLE animaux (id INTEGER, race VARCHAR(32),
    nom CHAR(16), poids DECIMAL(7,2))'
;
$result db2_exec($conn$create);
if (
$result) {
    print 
"La table a été créée correctement.\n";
}

// Remplit la table de test
$animaux = array(
    array(
0'chat''Pook'3.2),
    array(
1'chien''Peaches'12.3),
    array(
2'cheval''Smarty'350.0),
    array(
3'cyprin doré''Bubbles'0.1),
    array(
4'perruche''Gizmo'0.2),
    array(
5'chèvre''Rickety Ride'9.7),
    array(
6'lama''Sweater'150)
);

foreach (
$animaux as $animal) {
    
$rc db2_exec($conn"INSERT INTO animaux (id, race, nom, poids)
      VALUES (
{$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
    if (
$rc) {
        print 
"Insertion... ";
    }
}
?>

L'exemple ci-dessus va afficher :

La table a été créée correctement.
Insertion... Insertion... Insertion... Insertion... Insertion... Insertion... Insertion... 

Exemple #2 Exécution d'une requête SELECT avec un curseur flottant

L'exemple suivant montre comment demander un curseur flottant pour une requête SQL envoyée avec la fonction db2_exec().

<?php
$conn 
db2_connect($database$user$password);
$sql "SELECT nom FROM animaux
    WHERE poids < 10.0
    ORDER BY nom"
;
if (
$conn) {
    require_once(
'prepare.inc');
    
$stmt db2_exec($conn$sql, array('cursor' => DB2_SCROLLABLE));
    while (
$row db2_fetch_array($stmt)) {
        print 
"$row[0]\n";
    }

?>

L'exemple ci-dessus va afficher :

Bubbles
Gizmo
Pook
Rickety Ride

Exemple #3 Retourne des données XML en tant que ResultSet SQL

L'exemple suivant démontre comment utiliser des documents enregistrés dans une colonne XML en utilisant la base de données SAMPLE. En utilisant un simple SQL/XML, cet exemple retourne quelques noeuds dans un document XML dans un format ResultSet SQL dont la plupart des utilisateurs sont familiers.

<?php
 
$conn 
db2_connect("SAMPLE""db2inst1""ibmdb2");

$query 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = \'Kathy Smith\'
    '
;
$stmt db2_exec($conn$query);
 
while(
$row db2_fetch_object($stmt)){
    
printf("$row->CID     $row->NAME     $row->PHONE\n");
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemple #4 Exécuter un "JOIN" avec des données XML

L'exemple suivant fonctionne avec des documents enregistrés dans deux colonnes différentes dans la base de données SAMPLE. Cela crée deux tables temporaires provenant des documents XML de deux différentes colonnes XML et retourne un ResultSet SQL avec les informations contenant le statut de livraison pour un client.

<?php
 
$conn 
db2_connect("SAMPLE""db2inst1""ibmdb2");
 
$query '
    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
    FROM
    XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" BIGINT PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) as A,
    PURCHASEORDER AS B,
    XMLTABLE (
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
    COLUMNS
    "PONUM"  BIGINT PATH \'@PoNum\',
    "STATUS" VARCHAR (50) PATH \'@Status\'
    ) as C
    WHERE A.CID = B.CUSTID AND
 B.POID = C.PONUM AND
 A.NAME = \'Kathy Smith\'
'
;
 
$stmt db2_exec($conn$query);
 
while(
$row db2_fetch_object($stmt)){
    
printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
}
 
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemple #5 Retourne des données SQL faisant partie d'un document XML large

L'exemple suivant utilise une portion des documents de PRODUCT.DESCRIPTION dans la base de données SAMPLE. Cela crée un document XML contenant la description du produit (données XML) et les informations concernant le prix (données SQL).

<?php

$conn 
db2_connect("SAMPLE""db2inst1""ibmdb2");

$query '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
        for $prod in $doc/product
        where $prod/description/price < 10.00
        order by $prod/description/price ascending
        return(
            <promoitem> {
                $prod,
                <startdate> {$start} </startdate>,
                <enddate> {$end} </enddate>,
                <promoprice> {$promo} </promoprice>
            } </promoitem>
        )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
'
;

$stmt db2_exec($conn$query);

while(
$row db2_fetch_array($stmt)){
 
printf("$row[0]\n");
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Voir aussi



db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute Exécute une requête SQL préparée

Description

bool db2_execute ( resource $stmt [, array $parameters ] )

db2_execute() exécute une requête SQL qui a été préparée par db2_prepare().

Si la requête SQL retourne un jeu de résultats, par exemple, une requête SELECT ou CALL à une procédure d'enregistrement retourne un ou plusieurs jeux de résultats, vous pouvez récupérer une ligne en tant que tableau à partir de la ressource stmt en utilisant db2_fetch_assoc(), db2_fetch_both() ou db2_fetch_array(). Alternativement, vous pouvez utiliser db2_fetch_row() pour déplacer le pointeur à la ligne suivante et récupérer une colonne à la fois de cette ligne avec la fonction db2_result().

Référez-vous à db2_prepare() pour une brève discussion sur les avantages de l'utilisation de db2_prepare() et db2_execute() plutôt que db2_exec().

Liste de paramètres

stmt

Une requête préparée retournée par db2_prepare().

parameters

Un tableau des paramètres d'entrée qui contient les marqueurs de variables contenus dans la requête préparée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Préparation et exécution d'une requête SQL avec des marqueurs

L'exemple suivant prépare une requête INSERT qui accepte quatre marqueurs, ensuite itère sur le tableau contenant les valeurs d'entrées qui sera passé à la fonction db2_execute().

<?php
$pet 
= array(0'chat''Pook'3.2);

$insert 'INSERT INTO animaux (id, race, nom, poids)
    VALUES (?, ?, ?, ?)'
;

$stmt db2_prepare($conn$insert);
if (
$stmt) {
    
$result db2_execute($stmt$pet);
    if (
$result) {
        print 
"Ajout d'un nouvel animal réussi.";
    }
}
?>

L'exemple ci-dessus va afficher :

Ajout d'un nouvel animal réussi.

Exemple #2 Appel d'une procédure d'enregistrement avec un paramètre de SORTIE

L'exemple suivant prépare une requête CALL qui accepte un marqueur qui représente un paramètre de SORTIE, lie la variable PHP $my_pets au paramètre en utilisant la fonction db2_bind_param() et appelle la fonction db2_execute() pour exécuter la requête CALL. Une fois que la requête CALL a été exécutée, la valeur de $num_pets change pour réfléchir la valeur retournée par la procédure d'enregistrement pour ce paramètre de SORTIE.

<?php
$num_pets 
0;
$res db2_prepare($conn"CALL count_my_pets(?)");
$rc db2_bind_param($res1"num_pets"DB2_PARAM_OUT);
$rc db2_execute($res);
print 
"Je possède $num_pets animaux !";
?>

L'exemple ci-dessus va afficher :

Je possède 7 animaux !

Exemple #3 Retourne des données XML en tant que ResultSet SQL

L'exemple suivant démontre comment utiliser des documents enregistrés dans une colonne XML en utilisant la base de données SAMPLE. En utilisant un simple SQL/XML, cet exemple retourne quelques noeuds dans un document XML dans un format ResultSet SQL dont la plupart des utilisateurs sont familiers.

<?php

$conn 
db2_connect("SAMPLE""db2inst1""ibmdb2");

$query 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = ?
    '
;

$stmt db2_prepare($conn$query);

$name 'Kathy Smith';

if (
$stmt) {
    
db2_bind_param($stmt1"name"DB2_PARAM_IN);
    
db2_execute($stmt);

    while(
$row db2_fetch_object($stmt)){
        
printf("$row->CID     $row->NAME     $row->PHONE\n");
    }
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemple #4 Exécuter un "JOIN" avec des données XML

L'exemple suivant fonctionne avec des documents enregistrés dans deux colonnes différentes dans la base de données SAMPLE. Cela crée deux tables temporaires provenant des documents XML de deux différentes colonnes XML et retourne un ResultSet SQL avec les informations contenant le statut de livraison pour un client.

<?php

$conn 
db2_connect("SAMPLE""db2inst1""ibmdb2");

$query '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM"  BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
        B.POID = C.PONUM AND
        A.NAME = ?
'
;

$stmt db2_prepare($conn$query);

$name 'Kathy Smith';

if (
$stmt) {
    
db2_bind_param($stmt1"name"DB2_PARAM_IN);
    
db2_execute($stmt);

    while(
$row db2_fetch_object($stmt)){
        
printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
    }
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemple #5 Retourne des données SQL faisant partie d'un document XML large

L'exemple suivant utilise une portion des documents de PRODUCT.DESCRIPTION dans la base de données SAMPLE. Cela crée un document XML contenant la description du produit (données XML) et les informations concernant le prix (données SQL).

<?php

$conn 
db2_connect("SAMPLE""db2inst1""ibmdb2");

$query '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
        for $prod in $doc/product
        where $prod/description/price < 10.00
        order by $prod/description/price ascending
        return(
            <promoitem> {
                $prod,
                <startdate> {$start} </startdate>,
                <enddate> {$end} </enddate>,
                <promoprice> {$promo} </promoprice>
            } </promoitem>
        )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
'
;

$stmt db2_prepare($conn$query);

$pid "100-100-01";

if (
$stmt) {
    
db2_bind_param($stmt1"pid"DB2_PARAM_IN);
    
db2_execute($stmt);

    while(
$row db2_fetch_array($stmt)){
        
printf("$row[0]\n");
    }
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Voir aussi

  • db2_exec() - Exécute une requête SQL directement
  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_prepare() - Prépare une requête SQL à être exécutée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats



db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats

Description

array db2_fetch_array ( resource $stmt [, int $row_number = -1 ] )

Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats. Les indices du tableau sont numériques et commencent par zéro.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique indexée numériquement qui commence par la valeur 1 au jeu de résultat. En fournissant ce paramètre, vous obtiendrez une alerte PHP si le jeu de résultat utilise une curseur d'avancement seul.

Valeurs de retour

Retourne un tableau à indices numériques commençant à 0 indexé avec la position des colonnes. Cet indice pointe vers des données de la ligne suivante ou la ligne demandée dans le jeu de résultats. Retourne FALSE s'il n'y a pas de ligne disponible dans le jeu de résultats ou si la ligne demandée par row_number n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère avec un curseur d'avancement seul

Si vous appelez db2_fetch_array() sans le numéro d'une ligne spécifique, la ligne suivante sera automatiquement récupérée dans le jeu de résultats.

<?php

$sql 
"SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt db2_prepare($conn$sql);
$result db2_execute($stmt);

while (
$row db2_fetch_array($stmt)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row[0], $row[1], $row[2], $row[3]);
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Exemple #2 Récupération de lignes spécifiques avec db2_fetch_array() provenant d'un curseur flottant

Si votre jeu de résultats utilise un curseur flottant, vous pouvez appeler la fonction db2_fetch_array() avec une numéro de ligne spécifique. L'exemple suivant récupère chaque ligne paire dans le jeu de résultats, commençant avec la deuxième ligne.

<?php

$sql 
"SELECT id, nom, race, poids FROM animaux ORDER BY race";
$result db2_exec($stmt$sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while (
$row db2_fetch_array($result$i)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row[0], $row[1], $row[2], $row[3]);
    
$i $i 2;
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Voir aussi

  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats



db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats

Description

array db2_fetch_assoc ( resource $stmt [, int $row_number = -1 ] )

Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique indexée numériquement qui commence par la valeur 1 au jeu de résultat. En fournissant ce paramètre, vous obtiendrez une alerte PHP si le jeu de résultat utilise une curseur d'avancement seul.

Valeurs de retour

Retourne un tableau associatif avec les valeurs des colonnes indexées par le nom des colonnes représentant la ligne suivante ou la ligne demandée dans le jeu de résultats. Retourne FALSE s'il n'y a pas de ligne disponible dans le jeu de résultats ou si la ligne demandée par row_number n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère avec un curseur d'avancement seul

Si vous appelez db2_fetch_assoc() sans le numéro d'une ligne spécifique, la ligne suivante sera automatiquement récupérée dans le jeu de résultats.

<?php

$sql 
"SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt db2_prepare($conn$sql);
$result db2_execute($stmt);

while (
$row db2_fetch_assoc($stmt)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row['ID'], $row['NOM'], $row['RACE'], $row['POIDS']);
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Exemple #2 Récupération de lignes spécifiques avec db2_fetch_assoc() provenant d'un curseur flottant

Si votre jeu de résultats utilise un curseur flottant, vous pouvez appeler la fonction db2_fetch_assoc() avec un numéro de ligne spécifique. L'exemple suivant récupère chaque ligne paire dans le jeu de résultats, commençant avec la deuxième ligne.

<?php

$sql 
"SELECT id, nom, race, poids FROM animaux ORDER BY race";
$result db2_exec($stmt$sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while (
$row db2_fetch_assoc($result$i)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row['ID'], $row['NOM'], $row['RACE'], $row['POIDS']);
    
$i $i 2;
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats



db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats

Description

array db2_fetch_both ( resource $stmt [, int $row_number = -1 ] )

Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats. Notez que la ligne retournée par db2_fetch_both() nécessite plus de mémoire que les tableaux simplement indexés retournés par db2_fetch_assoc() ou db2_fetch_array().

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique indexée numériquement qui commence par la valeur 1 au jeu de résultat. En fournissant ce paramètre, vous obtiendrez une alerte PHP si le jeu de résultat utilise une curseur d'avancement seul.

Valeurs de retour

Retourne un tableau associatif avec les valeurs des colonnes indexées par le nom des colonnes et le numéro des colonnes commençant par 0. Le tableau représente la ligne suivante ou la ligne demandée du jeu de résultats. Retourne FALSE s'il n'y a pas de ligne disponible dans le jeu de résultats ou si la ligne demandée par row_number n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère avec un curseur d'avancement seul

Si vous appelez db2_fetch_both() sans le numéro d'une ligne spécifique, la ligne suivante sera automatiquement récupérée par le jeu de résultats. L'exemple suivant accède aux colonnes retournées dans le tableau avec la méthode des noms de colonne et par indice numérique.

<?php

$sql 
"SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt db2_prepare($conn$sql);
$result db2_execute($stmt);

while (
$row db2_fetch_both($stmt)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row['ID'], $row[0], $row['RACE'], $row[3]);
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Exemple #2 Récupération de lignes spécifiques avec db2_fetch_both() provenant d'un curseur flottant

Si votre jeu de résultats utilise un curseur flottant, vous pouvez appeler la fonction db2_fetch_assoc() avec une numéro de ligne spécifique. L'exemple suivant récupère chaque ligne paire dans le jeu de résultats, commençant avec la deuxième ligne.

<?php

$sql 
"SELECT id, nom, race, poids FROM animaux ORDER BY race";
$result db2_exec($stmt$sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while (
$row db2_fetch_both($result$i)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row[0], $row['NOM'], $row[2], $row['POIDS']);
    
$i $i 2;
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats



db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite

Description

object db2_fetch_object ( resource $stmt [, int $row_number = -1 ] )

Retourne un objet dans lequel chaque propriété représente une colonne retournée dans la ligne extraite du jeu de résultats.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique commençant à l'index 1 du jeu de résultats. Si vous passez ce paramètre, vous obtiendrez une alerte PHP si le résultat utilise un curseur à avancement seul.

Valeurs de retour

Retourne un objet représentant une seule ligne dans le jeu de résultats. Les propriétés de l'objet correspondent au nom des colonnes dans le jeu de résultats.

Les serveurs IBM DB2, Cloudscape et Apache Derby remplissent normalement les nom des colonnes avec des majuscules, par conséquent, les propriétés de l'objet refléteront ce cas.

Si votre requête SELECT appelle une fonction scalaire pour modifier la valeur d'une colonne, les serveurs de base de données retournent le numéro de colonne en tant que nom de colonne dans le jeu de résultats. Si vous préférez une description plus détaillée du nom des colonnes et des propriétés de l'objet, vous pouvez utiliser la clause AS pour assigner un nom à la colonne dans le jeu de résultats.

Retourne FALSE si aucune ligne n'a été récupérée.

Exemples

Exemple #1 Exemple avec db2_fetch_object()

L'exemple suivant envoie une requête SELECT avec une fonction scalaire, RTRIM, qui supprime les espaces à partir de la fin de la colonne. Au lieu de créer un objet avec les propriétés "RACE" et "2", nous utilisons la clause AS dans la requête SELECT pour assigner le nom "nom" à la colonne modifiée. Le serveur de base de données remplit le nom des colonnes avec des majuscules, alors l'objet aura les propriétés "RACE" et "NOM".

<?php
$conn 
db2_connect($database$user$password);

$sql "SELECT race, RTRIM(nom) AS nom
    FROM animaux
    WHERE id = ?"
;

if (
$conn) {
    
$stmt db2_prepare($conn$sql);
    
db2_execute($stmt, array(0));

    while (
$pet db2_fetch_object($stmt)) {
        echo 
"Viens ici, {$pet->NOM}, mon petit {$pet->RACE} !";
    }
    
db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

Viens ici, Pook, mon petit chat !

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats



db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée

Description

bool db2_fetch_row ( resource $stmt [, int $row_number ] )

Utilisez db2_fetch_row() pour itérer à travers un jeu de résultats ou pour pointer à une ligne spécifique d'un jeu de résultats si vous avez demandé un curseur flottant.

Pour obtenir des champs individuels du jeu de résultats, appelez la fonction db2_result().

Au lieu d'appeler les fonctions db2_fetch_row() et db2_result(), la plupart des applications vont appeler la fonction db2_fetch_assoc(), db2_fetch_both() ou db2_fetch_array() pour avancer le pointeur dans le jeu de résultats et retourner une ligne complète en tant que tableau.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Avec des curseurs flottants, vous pouvez demander un numéro de ligne spécifique du jeu de résultats. Les numéros des lignes commencent par l'indice 1

Valeurs de retour

Retourne TRUE si la ligne demandée existe dans le jeu de résultats. Retourne FALSE si la ligne demandée n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère à travers un jeu de résultats

L'exemple suivant démontre comment itérer à travers un jeu de résultats avec la fonction db2_fetch_row() et récupérer les colonnes du jeu de résultats avec db2_result().

<?php
$sql 
'SELECT nom, race FROM animaux WHERE poids < ?';
$stmt db2_prepare($conn$sql);
db2_execute($stmt, array(10));
while (
db2_fetch_row($stmt)) {
    
$nom db2_result($stmt0);
    
$race db2_result($stmt1);
    print 
"$nom $race";
}
?>

L'exemple ci-dessus va afficher :

chat Pook
cyprin doré Bubbles
perruche Gizmo
chèvre Rickety Ride

Exemple #2 Alternatives recommandées i5/OS pour db2_fetch_row/db2_result

Sur i5/OS, il est recommandé que vous utilisiez db2_fetch_both(), db2_fetch_array() ou db2_fetch_object() au lieu de db2_fetch_row()/db2_result(). En général db2_fetch_row()/db2_result() a plus de problèmes avec des types de colonne variés dans la traduction de EBCIDIC à ASCII, en incluant de possible troncature dans les applications DBCS. Vous pourriez aussi trouver une performance d'utiliser db2_fetch_both(), db2_fetch_array() et db2_fetch_object() à utiliser db2_fetch_row()/db2_result().

<?php
  $conn 
db2_connect("","","");
  
$sql 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  
$stmt db2_exec($conn$sql, array('cursor' => DB2_SCROLLABLE));
  while (
$row db2_fetch_both($stmt)){
    echo 
"<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  
$stmt db2_exec($conn$sql, array('cursor' => DB2_SCROLLABLE));
  while (
$row db2_fetch_array($stmt)){
    echo 
"<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  
$stmt db2_exec($conn$sql, array('cursor' => DB2_SCROLLABLE));
  while (
$row db2_fetch_object($stmt)){
    echo 
"<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  
db2_close($conn);
?>

L'exemple ci-dessus va afficher :

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats



db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size Retourne le maximum d'octets requis pour afficher une colonne

Description

int db2_field_display_size ( resource $stmt , mixed $column )

Retourne le maximum d'octets requis pour afficher une colonne dans un jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une valeur entière avec le maximum d'octets requis pour afficher la colonne spécifiée. Si la colonne n'existe pas dans le jeu de résultats, db2_field_display_size() retourne FALSE.

Voir aussi

  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats



db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name Retourne le nom de la colonne du jeu de résultats

Description

string db2_field_name ( resource $stmt , mixed $column )

Retourne le nom de la colonne du jeu de résultats

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une chaîne contenant le nom de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultat, db2_field_name() retourne FALSE.

Voir aussi



db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num Retourne la position du nom de la colonne du jeu de résultats

Description

int db2_field_num ( resource $stmt , mixed $column )

Retourne la position du nom de la colonne du jeu de résultats

Liste de paramètres

stmt

Spécifie une ressource contenant un jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la position commençant à 0 du nom de la colonne dans le jeu de résultats. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_num() retourne FALSE.

Voir aussi



db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision Retourne la précision de la colonne indiquée du jeu de résultats

Description

int db2_field_precision ( resource $stmt , mixed $column )

Retourne la précision de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la précision de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_precision() retourne FALSE.

Voir aussi

  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats



db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale Retourne l'échelle de la colonne indiquée du jeu de résultats

Description

int db2_field_scale ( resource $stmt , mixed $column )

Retourne l'échelle de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant l'échelle de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_scale() retourne FALSE.

Voir aussi



db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type Retourne le type de donnée de la colonne indiquée du jeu de résultats

Description

string db2_field_type ( resource $stmt , mixed $column )

Retourne le type de donnée de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une chaîne contenant le type de données défini de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_type() retourne FALSE.

Voir aussi



db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats

Description

int db2_field_width ( resource $stmt , mixed $column )

Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats. Cela est la largeur maximale de la colonne pour un type de données de longueur fixe ou la largeur actuelle de la colonne pour un type de données de longueur fixe.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la largeur du caractère spécifié ou de la colonne de type binaire dans le jeu de résultats. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_width() retourne FALSE.

Voir aussi



db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys Retourne un jeu de résultats listant les clés étrangères d'une table

Description

resource db2_foreign_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Retourne un jeu de résultats listant les clés étrangères d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Si schema est NULL, db2_foreign_keys() fait concorder le schéma pour la connexion courante.

table-name

Le nom de la table.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant des lignes décrivant les clés étrangères à la table spécifiée. Le jeu de résultats est composé des colonnes suivantes :

Nom de la colonne Description
PKTABLE_CAT Nom du catalogue de la table contenant la clé primaire. La valeur est NULL si la table n'a pas de catalogue.
PKTABLE_SCHEM Nom du schéma de la table contenant la clé primaire.
PKTABLE_NAME Nom de la table contenant la clé primaire.
PKCOLUMN_NAME Nom de la colonne contenant la clé primaire.
FKTABLE_CAT Nom du catalogue de la table contenant la clé étrangère. La valeur est NULL si la table n'a pas de catalogue.
FKTABLE_SCHEM Nom du schéma de la table contenant la clé étrangère.
FKTABLE_NAME Nom de la table contenant la clé étrangère.
FKCOLUMN_NAME Nom de la colonne contenant la clé étrangère.
KEY_SEQ Position commençant à 1 de la colonne dans la clé.
UPDATE_RULE Entier représentant l'action appliquée à la clé étrangère lorsque une opération est de type UPDATE.
DELETE_RULE Entier représentant l'action appliquée à la clé étrangère lorsque une opération est de type DELETE.
FK_NAME Nom de la clé étrangère.
PK_NAME Nom de la clé primaire.
DEFERRABILITY Un entier représentant si le mode différé de la clé étrangère est SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE ou SQL_NOT_DEFERRABLE.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result Libère la mémoire associée à un jeu de résultats

Description

bool db2_free_result ( resource $stmt )

Libère la mémoire des ressources du système et de base de données associée du jeu de résultats. Ces ressources sont libérées implicitement lorsqu'un script se termine, mais vous pouvez appeler db2_free_result() pour libérer explicitement les ressources avant la fin du script.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • db2_free_stmt() - Libère la mémoire associée à la ressource indiquée



db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt Libère la mémoire associée à la ressource indiquée

Description

bool db2_free_stmt ( resource $stmt )

Libère la mémoire des ressources du système et de base de données associée au jeu de résultats. Ces ressources sont libérées implicitement lorsqu'un script se termine, mais vous pouvez appeler db_free_stmt() pour libérer explicitement les ressources avant la fin du script.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_optionRécupère la valeur d'une option pour une requête ou une connexion

Description

string db2_get_option ( resource $resource , string $option )

Récupère la valeur d'une option spécifiée pour une ressource de requête ou une ressource de connexion.

Liste de paramètres

resource

Une ressource de requête valide retournée par db2_prepare() ou une ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

option

Des options de requête ou de connexion valides. Les nouvelles options suivantes sont disponibles depuis la version 1.6.0 de ibm_db2. Elles fournissent d'utiles informations de traçage qui peuvent être fixées pendant l'exécution avec db2_get_option().

Note:

Les anciennes versions de ibm_db ne supportent pas ces nouvelles options.

Lorsqu'une valeur dans chaque option est fixée, certains serveurs peuvent ne pas prendre en charge la valeur totale fournie et peuvent tronquer cette valeur.

Pour s'assurer que les données spécifiées dans chaque option sont converties correctement lors de la transmission vers une base de données, utilisez seulement les caractères de A à Z, 0 à 9 et les caractères de soulignement (_) ou point (.).

userid

SQL_ATTR_INFO_USERID : un pointeur vers une chaîne de caractères utilisée pour identifier l'identifiant de l'usager (ID) envoyé vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 16 caractères. Le user-id ne doit pas être confondu avec l'identification user-id ; il s'agit seulement d'un but d'identification et ne doit pas être autorisé pour des autorisations.

acctstr

SQL_ATTR_INFO_ACCTSTR : un pointeur vers une chaîne de caractères utilisée pour identifier le compte du client envoyé vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 200 caractères.

applname

SQL_ATTR_INFO_APPLNAME : un pointeur vers une chaîne de caractères utilisée pour identifier le nom de l'application du client envoyée vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 32 caractères.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME : un pointeur vers une chaîne de caractères utilisée pour identifier le nom de la machine du client envoyée vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 18 caractères.

La table suivante spécifie quelles options qui sont compatibles avec le type de ressource disponible :

Matrice ressource paramètre
Clé Valeur Type de ressource
  Connexion Requête Jeu de résultats
userid SQL_ATTR_INFO_USERID X X -
acctstr SQL_ATTR_INFO_ACCTSTR X X -
applname SQL_ATTR_INFO_APPLNAME X X -
wrkstnname SQL_ATTR_INFO_WRKSTNNAME X X -

Valeurs de retour

Retourne la configuration courante de la connexion fournie en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fixe et récupère les paramètres d'une ressource de connexion

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$user     'db2inst1';
$password 'ibmdb2';

/* Récupération de la Ressource de Connexion */
$conn db2_connect($database$user$password);

echo 
"Attributs de connexion passés avec la chaîne de caractères de connexion :\n";

/* Crée un tableau associatif d'options avec les paires clé/valeur valides */
/* Assigne les attributs à partir de la chaîne de caractères de connexion */
/* Accède les options spécifiées */
$options1 = array('userid' => 'db2inst1');
$conn1 db2_connect($database$user$password$options1);
$val db2_get_option($conn1'userid');
echo 
$val "\n";

$options2 = array('acctstr' => 'account');
$conn2 db2_connect($database$user$password$options2);
$val db2_get_option($conn2'acctstr');
echo 
$val "\n";

$options3 = array('applname' => 'myapp');
$conn3 db2_connect($database$user$password$options3);
$val db2_get_option($conn3'applname');
echo 
$val "\n";

$options4 = array('wrkstnname' => 'workstation');
$conn4 db2_connect($database$user$password$options4);
$val db2_get_option($conn4'wrkstnname');
echo 
$val "\n";

echo 
"Attributs après la connexion :\n";

/* Crée un tableau associatif d'options avec les paires clé/valeur valides */
/* Assigne les attributs après que la connexion soit faite */
/* Accède les options spécifiées */
$options5 = array('userid' => 'db2inst1');
$conn5 db2_connect($database$user$password);
$rc db2_set_option($conn5$options51);
$val db2_get_option($conn5'userid');
echo 
$val "\n";

$options6 = array('acctstr' => 'account');
$conn6 db2_connect($database$user$password);
$rc db2_set_option($conn6$options61);
$val db2_get_option($conn6'acctstr');
echo 
$val "\n";

$options7 = array('applname' => 'myapp');
$conn7 db2_connect($database$user$password);
$rc db2_set_option($conn7$options71);
$val db2_get_option($conn7'applname');
echo 
$val "\n";

$options8 = array('wrkstnname' => 'workstation');
$conn8 db2_connect($database$user$password);
$rc db2_set_option($conn8$options81);
$val db2_get_option($conn8'wrkstnname');
echo 
$val "\n";
?>

L'exemple ci-dessus va afficher :

Attributs de connexion passés avec la chaîne de caractères de connexion :
db2inst1
account
myapp
workstation
Attributs après la connexion :
db2inst1
account
myapp
workstation

Voir aussi



db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_idRetourne le dernier ID généré par la dernière requête d'insertion

Description

string db2_last_insert_id ( resource $resource )

Retourne le dernier identifiant autogénéré par la dernière requête d'insertion pour la connexion en cours.

Le résultat de cette fonction n'est pas affecté par les événements suivants :

  • Une commande unique INSERT avec une clause VALUES pour une table qui ne dispose pas de colonne d'identité.

  • Une commande INSERT multiple avec clause VALUES.

  • Une commande INSERT avec un SELECT.

  • Une commande ROLLBACK TO SAVEPOINT.

Liste de paramètres

resource

Une ressource de connexion valide, créée par db2_connect() ou db2_pconnect(). La valeur de ce paramètre ne peut pas être une ressource de commande ou de résultat.

Valeurs de retour

Retourne l'identifiant autogénéré qui a pu être exécuté correctement sur cette connexion.

Exemples

Exemple #1 Exemple avec db2_last_insert_id()

L'exemple suivant montre comment retourner un identifiant automatique

<?php

$database 
"SAMPLE";
$user "db2inst1";
$password "ibmdb2";

$conn db2_connect($database$user$password);
if(
$conn) {
    
$createTable "CREATE TABLE lastInsertID 
      (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))"
;
    
$insertTable "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

    
$stmt = @db2_exec($conn$createTable);

    
/* Vérification de l'insertion d'une ligne unique */
    
$stmt db2_exec($conn$insertTable);
    
$ret =  db2_last_insert_id($conn);
    if(
$ret) {
        echo 
"Dernier ID inséré : " $ret "\n";
    } else {
        echo 
"Pas d'ID inséré récemment.\n";
    }
    
    
db2_close($conn);
}
else {
    echo 
"La connexion a échoué.";
}
?>

L'exemple ci-dessus va afficher :

Dernier ID généré : 1



db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read Récupère de grands objets binaires de tailles prédéfinies à chaque invocation

Description

string db2_lob_read ( resource $stmt , int $colnum , int $length )

Utilisez db2_lob_read() pour passer à travers une colonne spécifique d'un jeu de résultats et récupérer les grands objets binaires de taille prédéfinie.

Liste de paramètres

stmt

Une ressource stmt valide contenant des grands objets binaires.

colnum

Un numéro de colonne valide dans le jeu de résultats de la ressource stmt.

length

La taille des grands objets binaires à récupérer de la ressource stmt.

Valeurs de retour

Retourne le nombre de données spécifiés. Retourne FALSE si les données ne peuvent être récupérées.

Exemples

Exemple #1 Itére à travers différents types de données

<?php

/* Paramètres de Connexion */
$db 'SAMPLE';
$username 'db2inst1';
$password 'ibmdb2';

/* Récupération de la Ressource de Connexion */
$conn db2_connect($db,$username,$password);

if (
$conn) {
    
$drop 'DROP TABLE clob_stream';
    
$result = @db2_exec$conn$drop );

    
$create 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
    
$result db2_exec$conn$create );

    
$variable "";
    
$stmt db2_prepare($conn"INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
    
$variable "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
    
db2_bind_param($stmt1"variable"DB2_PARAM_IN);
    
db2_execute($stmt);

    
$sql "SELECT id,my_clob FROM clob_stream";
    
$result db2_prepare($conn$sql);
    
db2_execute($result);
    
db2_fetch_row($result);
    
$i 0;
    
/* Lecture des grands objets */
    
while ($data db2_lob_read($result26)) {
        echo 
"Boucle $i : $data\n";
        
$i $i 1;
    }

    
$drop 'DROP TABLE blob_stream';
    
$result = @db2_exec$conn$drop );

    
$create 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
    
$result db2_exec$conn$create );

    
$variable "";
    
$stmt db2_prepare($conn"INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
    
$variable "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
    
db2_bind_param($stmt1"variable"DB2_PARAM_IN);
    
db2_execute($stmt);

    
$sql "SELECT id,my_blob FROM blob_stream";
    
$result db2_prepare($conn$sql);
    
db2_execute($result);
    
db2_fetch_row($result);
    
$i 0;
    
/* Lecture des grands objets */
    
while ($data db2_lob_read($result26)) {
        echo 
"Boucle $i : $data\n";
        
$i $i 1;
    }
} else {
    echo 
'aucune connexion : ' db2_conn_errormsg();
}

?>

L'exemple ci-dessus va afficher :

Boucle 0 : THIS I
Boucle 1 : S A CL
Boucle 2 : OB TES
Boucle 3 : T. THI
Boucle 4 : S IS A
Boucle 5 :  CLOB 
Boucle 6 : TEST.
Boucle 0 : THIS I
Boucle 1 : S A BL
Boucle 2 : OB TES
Boucle 3 : T. THI
Boucle 4 : S IS A
Boucle 5 :  BLOB 
Boucle 6 : TEST.

Voir aussi

  • db2_bind_param() - Associe une variable PHP à un paramètre d'une requête SQL
  • db2_exec() - Exécute une requête SQL directement
  • db2_execute() - Exécute une requête SQL préparée
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_prepare() - Prépare une requête SQL à être exécutée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats



db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result Demande le prochain jeu de résultats de la ressource indiquée

Description

resource db2_next_result ( resource $stmt )

Une procédure d'enregistrement peut retourner aucun ou plusieurs jeux de résultats. Vous devez gérer le premier jeu de résultats de la même manière que vous gérez les résultats retournés par une simple requête SELECT, pour obtenir le second ou les résultats suivants, vous devez appeler la fonction db2_next_result() et retourner le résultat dans une variable PHP.

Liste de paramètres

stmt

Une requête préparée retournée par db2_exec() ou db2_execute().

Valeurs de retour

Retourne une nouvelle ressource contenant le jeu de résultats suivants si la procédure contenait un jeu de résultats suivant. Retourne FALSE si la procédure n'avait plus de jeu de résultats à retourner.

Exemples

Exemple #1 Exemple avec db2_next_result()

Dans l'exemple suivant, nous appelons une procédure qui retourne trois jeux de résultats. Le premier jeu de résultats est récupéré directement de la même ressource sur laquelle on a invoqué une requête CALL, alors que le deuxième et troisième jeux de résultats sont récupérés des ressources retournées par l'appel de la fonction db2_next_result().

<?php
$conn 
db2_connect($database$user$password);

if (
$conn) {
  
$stmt db2_exec($conn'CALL multiResults()');

  print 
"Récupération du premier jeu de résultats\n";
  while (
$row db2_fetch_array($stmt)) {
    
var_dump($row);
  }

  print 
"\nRécupération du deuxième jeu de résultats\n";
  
$res db2_next_result($stmt);
  if (
$res) {
    while (
$row db2_fetch_array($res)) {
      
var_dump($row);
    }
  }

  print 
"\nRécupération du troisième jeu de résultats\n";
  
$res2 db2_next_result($stmt);
  if (
$res2) {
    while (
$row db2_fetch_array($res2)) {
      
var_dump($row);
    }
  }

  
db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

Récupération du premier jeu de résultats
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Récupération du deuxième jeu de résultats
array(4) {
  [0]=>
  string(16) "Sweater         "
  [1]=>
  int(6)
  [2]=>
  string(5) "lama"
  [3]=>
  string(6) "150.00"
}
array(4) {
  [0]=>
  string(16) "Smarty          "
  [1]=>
  int(2)
  [2]=>
  string(5) "cheval"
  [3]=>
  string(6) "350.00"
}

Récupération du troisième jeu de résultats
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}



db2_num_fields

(PECL ibm_db2 >= 1.0.0)

db2_num_fields Retourne le nombre de champs contenu du jeu de résultats

Description

int db2_num_fields ( resource $stmt )

Retourne le nombre de champs contenus dans le jeu de résultats. Cette fonction est très utile lorsque vous gérez des jeux de résultats retourné par des requêtes générées dynamiquement ou pour des jeux de résultats retournés par des procédures d'enregistrement, là où votre application ne peut faire autrement pour obtenir et utiliser ces résultats.

Liste de paramètres

stmt

Une ressource valide contenant un jeu de résultats.

Valeurs de retour

Retourne un entier représentant le nombre de champs dans le jeu de résultats associé avec la ressource spécifiée. Retourne FALSE si la ressource n'est pas valide.

Exemples

Exemple #1 Exemple avec db2_num_fields()

L'exemple suivant démontre comment obtenir le nombre de champs retournés dans le jeu de résultats.

<?php

$sql 
"SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt db2_prepare($conn$sql);
db2_execute($stmt$sql);
$columns db2_num_fields($stmt);

echo 
"Il y a {$columns} colonne dans le jeu de résultats.";
?>

L'exemple ci-dessus va afficher :

Il y a 4 colonnes dans le jeu de résultats.

Voir aussi



db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows Retourne le nombre de lignes affectées par une requête SQL

Description

int db2_num_rows ( resource $stmt )

Retourne le nombre de lignes supprimées, ajoutées, mises à jour par une requête SQL.

Afin de déterminer le nombre de lignes que retournera une requête SELECT, utilisez la requête SELECT COUNT(*) avec les mêmes attributs lorsque vous avez effectué la requête SELECT et la récupération des valeurs.

Si la logique de votre application vérifie le nombre de ligne retournée par une requête SELECT et effectue le saut si le nombre de ligne est 0, modifiez votre application pour tenter de retourner la première ligne avec db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array() ou db2_fetch_row(), et effectuez le saut si la fonction retourne FALSE.

Note:

Si vous envoyez une requête SELECT avec un curseur flottant, db2_num_rows() retournera le nombre de lignes retournées par la requête SELECT. Cependant, le temps système associé avec des curseurs flottants dégrade considérablement les performances de votre application, alors si cela est la seule raison pour laquelle vous utilisez des curseurs flottants, vous devriez utiliser des curseurs à avancement seul et de plus appeler SELECT COUNT(*) ou compter sur les valeurs de retour des fonctions de type boolean pour obtenir l'équivalent de fonctionnalité avec une performance bien meilleure.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

Valeurs de retour

Retourne le nombre de lignes affectées par la dernière requête SQL envoyée par une fonction qui exécute les requêtes SQL.



db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pcloseFerme une connexion persistante à la base de données

Description

bool db2_pclose ( resource $resource )

Cette fonction ferme une connexion DB2, créée avec db2_pconnect() et libère les ressources correspondances du serveur.

Note:

Cette fonction n'est disponible sur i5/OS en réponse à des requêtes d'administration i5/OS.

Si vous avez une connexion client DB2 persistante créée avec la fonction db2_pconnect(), vous pouvez utiliser cette fonction pour fermer la connexion. Pour éviter des coûts de connexion significatifs, cette fonction ne doit être utilisée que dans de rares cas, où la connexion est devenue amorphe, ou que la connexion persistante ne sera plus utilisée pour un long moment.

Liste de paramètres

connection

Une ressource de connexion active DB2.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermer une connexion DB2 persistante

L'exemple ci-dessous montre comment fermer une connexion sur un serveur IBM DB2 i5/OS.

<?php
$conn 
db2_pconnect('''''');
$rc db2_pclose($conn);
if (
$rc) {
    echo 
"La connexion a été correctement fermée.";
}
?>

L'exemple ci-dessus va afficher :

La connexion a été correctement fermée.

Voir aussi

  • db2_close() - Ferme une connexion de base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données



db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect Retourne une connexion persistante à une base de données

Description

resource db2_pconnect ( string $database , string $username , string $password [, array $options ] )

Retourne une connexion persistante à une base de données IBM DB2 Universal Database, IBM Cloudscape ou Apache Derby.

Pour plus d'infirmations sur les connexions persistantes, voyez Connexions persistantes aux bases de données.

En appelant db2_close() sur une connexion persistante, vous recevrez toujours TRUE, mais les connexions des clients DB2 demeureront ouvertes et attendront de servir la prochaine demande de la fonction db2_pconnect().

Les utilisateurs de versions 1.9.0 ou plus de ibm_db2 doivent savoir que l'extension exécutera un rollback sur une transaction dans une connexion persistente à la fin de la requête, terminant ainsi la transaction. Ceci évite un blocage transactionnel vers la requête suivante sur la même connexion si l'exécution du script se termine avant la transaction.

Liste de paramètres

database

L'alias de la base de données dans le catalogue du client DB2.

username

Le nom d'utilisateur avec lequel vous vous connectez à la base de données.

password

Le mot de passe avec lequel vous vous connectez à la base de données.

options

Un tableau associatif des options de connexion qui affecteront le comportement de la connexion, où les valeurs des clés incluent :

autocommit

La valeur DB2_AUTOCOMMIT_ON active le autocommit sur cette connexion.

La valeur DB2_AUTOCOMMIT_OFF désactive le autocommit pour cette connexion.

DB2_ATTR_CASE

Passer la valeur DB2_CASE_NATURAL spécifie que les noms de colonnes seront retournés dans leurs casses naturelles.

Passer la valeur DB2_CASE_LOWER spécifie que les noms de colonnes seront retournés en minuscule.

Passer la valeur DB2_CASE_UPPER spécifie que les noms de colonnes seront retournés en majuscule.

CURSOR

Passer la valeur DB2_FORWARD_ONLY spécifie un curseur uniquement suivant pour une ressource de requête. C'est le type de curseur par défaut et est supporté sur tous les serveurs de base de données.

Passer la valeur DB2_SCROLLABLE spécifie un curseur scrollable pour une ressource de requête. Ce mode permet un accès aléatoire aux lignes dans un jeu de résultats, mais actuellement, n'est supporté que par la base de données IBM DB2 Universal.

Les options suivantes sont disponibles depuis ibm_db2 version 1.7.0.

trustedcontext

En passant la valeur DB2_TRUSTED_CONTEXT_ENABLE, le contexte de confiance est activé pour cette connexion. Ce paramètre ne peut pas être activé avec db2_set_option().

Cette option ne fonctionne que si la base est cataloguée, même si la base est locale, ou si vous spécifiez un DSN complet lors de la création de la connexion.

Pour cataloguer la base, utilisez la commande suivante :

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

Les options i5/OS suivantes sont disponibles depuis ibm_db2 version 1.5.1.

Astuce

Des attributs de connexion contradictoires, en conjonction avec une connexion persistante peut produire des résultats indéterminés sur i5/OS. La politique du site doit être établie pour toutes les applications qui utilisent une connexion persistante. La valeur par défaut de DB2_AUTOCOMMIT_ON est recommandée avec les connexions persistantes.

i5_lib

Une caractère qui indique la bibliothèque par défaut qui sera utilisée pour résoudre les références de fichiers non qualifiées. Cette option n'est pas valide si la connexion utilise le mode de nommage système.

i5_naming

DB2_I5_NAMING_ON active le mode de nommage système de DB2 UDB CLI iSeries. Les fichiers sont alors qualifiés avec le délimiteur slash (/). Les fichiers non qualifiés sont résolus en utilisant la liste de bibliothèque de la tâche.

DB2_I5_NAMING_OFF active le mode de nommage par défaut, qui est le nommage SQL. Les fichiers sont alors qualifiés avec le point (.) . Les fichiers non qualifiés sont résolus avec la bibliothèque par défaut, ou bien l'identifiant de l'utilisateur courant.

i5_commit

L'attribut i5_commit doit être configuré avant l'appel à db2_pconnect(). Si la valeur est changée après la connexion, et que la connexion s'effectue sur des données distantes, alors ce changement n'aura pas d'effets, juqu'au prochain appel réussi à db2_pconnect().

Note:

La directive du php.ini ibm_db2.i5_allow_commit==0 ou DB2_I5_TXN_NO_COMMIT est la valeur par défaut, mais peut être remplacé par l'option i5_commit.

DB2_I5_TXN_NO_COMMIT : le contrôle de validation n'est pas utilisé.

DB2_I5_TXN_READ_UNCOMMITTED : les lectures incohérentes, ou non répétables et les fantômes sont possibles.

DB2_I5_TXN_READ_COMMITTED : les lectures sont cohérentes. Les lecteurs non répétables et les fantômes sont possibles.

DB2_I5_TXN_REPEATABLE_READ : les lectures cohérentes et répétables, mais les fantômes sont possibles.

DB2_I5_TXN_SERIALIZABLE : les transactions sont activées. les lectures incohérentes, ou non répétables et les fantômes sont impossibles.

i5_query_optimize

DB2_FIRST_IO : toutes les requêtes sont optimisées dans le but de retourner la première page le plus rapidement possible. Cet objectif fonctionne bien lorsque le résultat est contrôler par un utilisateur qui a de bonnes chances d'annuler la requête après avoir vu les premières réponses. Les requêtes codée avec une clause OPTIMIZE FOR nnn ROWS respectent aussi cet objectif.

DB2_ALL_IO : toutes les requêtes sont optimisées dans le but de traiter la requête complète le plus rapidement possible. C'est une bonne option lorsque le résultat de la requête doit être écrit dans un fichier ou un rapport, ou que l'interface accumule toutes les données avant de les exporter. Les requêtes codées avec la clause OPTIMIZE FOR nnn ROWS respectent aussi cet objectif. C'est le comportement par défaut.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON active le schéma d'allocation DB2 6X pour la croissance des tailles de colonnes de translation DBCS.

DB2_I5_DBCS_ALLOC_OFF désactive le schéma d'allocation DB2 6X pour la croissance des tailles de colonnes de translation DBCS.

Note:

La directive du php.ini ibm_db2.i5_dbcs_alloc==0 ou DB2_I5_DBCS_ALLOC_OFF est la valeur par défaut, mais peut être remplacé par l'option i5_dbcs_alloc.

i5_date_fmt

DB2_I5_FMT_ISO : le format de date ISO (International Organization for Standardization) est utilisé : yyyy-mm-dd. C'est le format par défaut.

DB2_I5_FMT_USA : le format des États Unis d'Amérique est utilisé : mm/dd/yyyy.

DB2_I5_FMT_EUR : le format de date européen dd.mm.yyyy est utilisé.

DB2_I5_FMT_JIS : le format standard industriel japonais yyyy-mm-dd est utilisé.

DB2_I5_FMT_MDY : le format de date mm/dd/yyyy est utilisé.

DB2_I5_FMT_DMY : le format de date dd/mm/yyyy est utilisé.

DB2_I5_FMT_YMD : le format de date yy/mm/dd est utilisé.

DB2_I5_FMT_JUL : Le format de date julien yy/ddd est utilisé.

DB2_I5_FMT_JOB : le format de date par défaut est utilisé.

i5_date_sep

DB2_I5_SEP_SLASH : un slash ( / ) est utilisé comme séparateur de date. C'est le format par défaut.

DB2_I5_SEP_DASH : un tiret ( - ) est utilisé comme séparateur de date.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé comme séparateur de date.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisé comme séparateur de date.

DB2_I5_SEP_BLANK : un espace est utilisé comme séparateur de date.

DB2_I5_SEP_JOB : la configuration par défaut est utilisée

i5_time_fmt

DB2_I5_FMT_ISO : le format d'heure ISO (International Organization for Standardization) est utilisé : hh.mm.ss. C'est le format par défaut.

DB2_I5_FMT_USA : le format des États-Unis d'Amérique est utilisé : hh:mmxx est utilisé, où xx vaut AM ou PM.

DB2_I5_FMT_EUR : le format d'heure européen hh.mm.ss est utilisé.

DB2_I5_FMT_JIS : le format standard industriel japonais est utilisé hh:mm:ss.

DB2_I5_FMT_HMS : le format hh:mm:ss est utilisé.

i5_time_sep

DB2_I5_SEP_COLON : un deux-point ( : ) est utilisé comme séparateur d'heure. C'est le défaut.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé comme séparateur d'heure.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée comme séparateur d'heure.

DB2_I5_SEP_BLANK : un espace est utilisé comme séparateur d'heure.

DB2_I5_SEP_JOB : le séparateur par défaut est utilisé.

i5_decimal_sep

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé comme séparateur décimal. C'est le séparateur par défaut.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée comme séparateur décimal.

DB2_I5_SEP_JOB : le séparateur par défaut est utilisé.

Les options suivantes i5/OS sont disponibles depuis ibm_db2 version 1.8.0.

i5_libl

Un caractère qui indique la bibliothèque qui sera utilisée pour résoudre les références de fichiers non qualifiées. Spécifiez la liste de bibliothèque sous la forme d'éléments séparés par des espaces : 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Note:

i5_libl appelle qsys2/qcmdexc('cmd',cmdlen), qui est disponible depuis i5/OS V5R4.

Valeurs de retour

Retourne la ressource de connexion si la tentative de connexion réussie. db2_pconnect() essaie de réutiliser une ressource de connexion existante qui correspond parfaitement aux paramètres tels que la base de données database, l'utilisateur username et le mot de passe password. Si la tentative de connexion échoue, db2_pconnect() retourne FALSE

Historique

Version Description
ibm_db2 1.9.0 Les transactions actives sur des connexions persistentes seront annulées à la fin de chaque requête.
ibm_db2 1.8.0 L'option i5_libl est disponible pour les utilisateurs de i5/OS.
ibm_db2 1.7.0 L'option trustedcontext est disponible.
ibm_db2 1.5.1 Les options i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep et i5_decimal_sep sont disponibles pour les utilisateurs de i5/OS.

Exemples

Exemple #1 Exemple d'utilisation de db2_pconnect()

Dans l'exemple suivant, le premier appel à db2_pconnect() retourne une nouvelle ressource de connexion persistante. Le second appel à la fonction db2_pconnect() retourne une ressource de connexion persistante qui réutilise la première ressource de connexion.

<?php
$database 
'EXEMPLE';
$user 'db2inst1';
$password 'ibmdb2';

$pconn db2_pconnect($database$user$password);

if (
$pconn) {
    echo 
"Connexion persistante réussie.";
}
else {
    echo 
"Connexion persistante échouée.";
}

$pconn2 db2_pconnect($database$user$password);
if (
$pconn) {
    echo 
"Deuxième connexion persistante réussie.";
}
else {
    echo 
"Deuxième connexion persistante échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion persistante réussie.
Deuxième connexion persistante réussie.

Exemple #2 Utilisation de contextes de confiance DB2

L'exemple suivant montre comment activer un utilisateur de confiance, basculer dessus, et obtenir un identifiant d'utilisateur.

<?php

$database 
"SAMPLE";
$hostname "localhost";
$port 50000;
$authID "db2inst1";
$auth_pass "ibmdb2";

$tc_user "tcuser";
$tc_pass "tcpassword";

$dsn "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=
$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn db2_pconnect($dsn""""$options);
if(
$tc_conn) {
    echo 
"Connexion de confiance réussie.\n";

    if(
db2_get_option($tc_conn"trustedcontext")) {
        
$userBefore db2_get_option($tc_conn"trusted_user");
        
        
//Travail par l'utilisateur 1.

        //Bascule sur l'utilisateur de confiance.
        
$parameters = array("trusted_user" => $tc_user
          
"trusted_password" => $tcuser_pass);
        
$res db2_set_option ($tc_conn$parameters1);

        
$userAfter db2_get_option($tc_conn"trusted_user");
        
//Do more work as trusted user.

        
if($userBefore != $userAfter) {
            echo 
"Utilisateur changé." "\n";    
        }
    }

    
db2_close($tc_conn);
}
else {
    echo 
"Connexion de confiance échouée.\n";
}
?>

L'exemple ci-dessus va afficher :

Connexion de confiance réussie.
Utilisateur changé

Voir aussi



db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare Prépare une requête SQL à être exécutée

Description

resource db2_prepare ( resource $connection , string $statement [, array $options ] )

db2_prepare() crée une requête SQL préparée qui peut inclure aucun ou plusieurs marqueurs (caractères ?) représentant les paramètres d'entrée, sortie ou d'entrée/sortie. Vous pouvez passer des paramètres à la requête préparée en utilisant la fonction db2_bind_param(), si vous avez que des entrées, vous pouvez utiliser db2_execute().

Il y a trois principaux avantages d'utiliser les requêtes préparées dans votre application :

  • Performance : lorsque vous préparez une requête, le serveur de base de données crée un plan d'accès optimisé pour la récupération des données avec la requête. Par la suite, l'envoi de la requête préparée avec db2_execute() permet à la requête de réutiliser le plan d'accès et ainsi d'éviter les surcharges du processeurs à chaque envoi de requête qui créerait dynamiquement un nouveau plan d'accès.

  • Sécurité : lorsque vous préparez une requête, vous pouvez inclure des marqueurs pour les valeurs d'entrées. Lorsque vous exécutez une requête préparée avec ces valeurs d'entrées, le serveur de base de données vérifie chaque valeur d'entrée pour s'assurer que les types concordent avec la définition de la colonne ou du paramètre de définition.

  • Fonctionnalité avancée : Les marqueurs vous permettent non seulement de passer des valeurs d'entrées dans les requêtes SQL préparées, mais permettent aussi de récupérer des paramètres de SORTIE et d'ENTRÉE/SORTIE des procédures d'enregistrement en utilisant la fonction db2_bind_param().

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

statement

Une requête SQL qui peut contenir un ou plusieurs marqueurs.

options

Un tableau associatif contenant les options de la requête. Vous pouvez utiliser ce paramètre pour demander un curseur flottant sur les serveurs de base de données qui supportent cette fonctionnalité.

Pour une description des options valides, reportez-vous à la fonction db2_set_option().

Valeurs de retour

Retourne une variable ressource si la requête SQL était envoyée correctement ou FALSE si le serveur de base de données a retourné une erreur. Vous pouvez déterminer quelle erreur a été retournée en appelant la fonction db2_stmt_error() ou db2_stmt_errormsg().

Exemples

Exemple #1 Préparation et exécution d'une requête SQL avec des marqueurs

L'exemple suivant prépare une requête INSERT qui accepte quatre marqueurs, ensuite itère sur le tableau contenant les valeurs d'entrées qui sera passé à la fonction db2_execute().

<?php
$animaux 
= array(
    array(
0'chat''Pook'3.2),
    array(
1'chien''Peaches'12.3),
    array(
2'cheval''Smarty'350.0),
);

$insert 'INSERT INTO animaux (id, race, nom, poids)
    VALUES (?, ?, ?, ?)'
;
$stmt db2_prepare($conn$insert);
if (
$stmt) {
    foreach (
$animaux as $animal) {
        
$result db2_execute($stmt$animal);
    }
}
?>

Voir aussi



db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys Retourne un jeu de résultats listant les clés d'une table

Description

resource db2_primary_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Retourne un jeu de résultats listant les clés d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Si schema est NULL, db2_primary_keys() fait concorder le schéma pour la connexion courante.

table-name

Le nom de la table.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant des lignes décrivant les clés primaires à la table spécifiée. Le jeu de résultats est composé des colonnes suivantes :

Nom de la colonne Description
TABLE_CAT Nom du catalogue de la table contenant la clé primaire. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM Nom du schéma de la table contenant la clé primaire.
TABLE_NAME Nom de la table contenant la clé primaire.
COLUMN_NAME Nom de la colonne contenant la clé primaire.
KEY_SEQ Position commençant à 1 de la colonne dans la clé.
PK_NAME Nom de la clé primaire.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement

Description

resource db2_procedure_columns ( resource $connection , string $qualifier , string $schema , string $procedure , string $parameter )

Retourne un jeu de résultats listant les paramètres pour une ou plusieurs procédures d'enregistrement.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

procedure

Le nom de la procédure. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

parameter

Le nom du paramètre. Ce paramètre accepte un paramètre de recherche de forme contenant _ et % en tant que mot clé. Si ce paramètre est NULL, tous les paramètres pour la procédure d'enregistrement spécifiée sont retournés.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les paramètres pour les procédures d'enregistrement qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne Description
PROCEDURE_CAT Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
PROCEDURE_SCHEM Nom du schéma que contient la procédure d'enregistrement.
PROCEDURE_NAME Nom de la procédure.
COLUMN_NAME Nom du paramètre.
COLUMN_TYPE

Un entier représentant le type du paramètre :

Valeur de retour Type de paramètre
1 (SQL_PARAM_INPUT) Paramètre d'entrée (IN).
2 (SQL_PARAM_INPUT_OUTPUT) Paramètre d'entrée/sortie (INOUT).
3 (SQL_PARAM_OUTPUT) Paramètre d'entrée (OUT).

DATA_TYPE Le type de données SQL pour le paramètre représenté en tant qu'entier.
TYPE_NAME Une chaîne représentant le type de données pour le paramètre.
COLUMN_SIZE Un entier représentant la grandeur du paramètre.
BUFFER_LENGTH Nombre d'octets maximaux nécessaires pour enregistrer des données de ce paramètre.
DECIMAL_DIGITS L'échelle du paramètre ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant une approximation de type de données numériques) ou NULL (représentant un type de données pour lequel la base n'est pas applicable).
NULLABLE Un entier représentant si le paramètre peut être nul ou pas.
REMARKS Description du paramètre.
COLUMN_DEF Valeur par défaut du paramètre.
SQL_DATA_TYPE Un entier représentant la grandeur du paramètre.
SQL_DATETIME_SUB Retourne un entier représentant un code de sous-type datetime ou NULL si les types de données SQL n'appliquent pas.
CHAR_OCTET_LENGTH Grandeur maximale en octets pour les type de données d'un caractère du paramètre, qui concorde avec COLUMN_SIZE pour un seul octet de données ou NULL pour un type de données qui n'est pas des caractères.
ORDINAL_POSITION La position du paramètre commençant à 1 dans la requête CALL.
IS_NULLABLE Une chaîne dont la valeur est YES signifie que le paramètre accepte ou retourne des valeurs NULL et NO signifie que le paramètre n'accepte pas ou ne retourne pas de valeurs NULL.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données

Description

resource db2_procedures ( resource $connection , string $qualifier , string $schema , string $procedure )

Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

procedure

Le nom de la procédure. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les procédures enregistrées qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne Description
PROCEDURE_CAT Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
PROCEDURE_SCHEM Nom du schéma que contient la procédure d'enregistrement.
PROCEDURE_NAME Nom de la procédure.
NUM_INPUT_PARAMS Nombre de paramètres d'entrée (IN) pour la procédure d'enregistrement.
NUM_OUTPUT_PARAMS Nombre de paramètres de sortie (OUT) pour la procédure d'enregistrement.
NUM_RESULT_SETS Nombre de jeux de résultats retournés par la procédure d'enregistrement.
REMARKS Commentaires concernant la procédure d'enregistrement.
PROCEDURE_TYPE Retourne toujours 1, indiquant que la procédure d'enregistrement ne retourne aucune valeur de retour.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result Retourne une colonne d'une ligne d'un jeu de résultats

Description

mixed db2_result ( resource $stmt , mixed $column )

Utilisez db2_result() pour retourner une valeur d'une colonne spécifique dans la ligne courante d'un jeu de résultats. Vous devez appeler db2_fetch_row() avant d'appeler db2_result() pour enregistrer les valeurs pointées du jeu de résultats.

Liste de paramètres

stmt

Une ressource stmt valide.

column

Un tableau d'entier commençant avec l'indice 0 qui pointe vers les champs du jeu de résultats ou une chaîne représentant le nom de la colonne.

Valeurs de retour

Retourne la valeur du champ demandé si le champ existe dans le jeu de résultats. Retourne NULL si le champ n'existe pas et retourne une alerte PHP.

Exemples

Exemple #1 Exemple d'utilisation de db2_result()

L'exemple suivant démontre comment itérer à travers un jeu de résultats avec la fonction db2_fetch_row() et récupérer les colonnes du jeu de résultats avec db2_result().

<?php
$sql 
'SELECT nom, race FROM animaux WHERE poids < ?';
$stmt db2_prepare($conn$sql);
db2_execute($stmt, array(10));
while (
db2_fetch_row($stmt)) {
    
$nom db2_result($stmt0);
    
$race db2_result($stmt'RACE');
    print 
"$nom $race";
}
?>

L'exemple ci-dessus va afficher :

chat Pook
cyprin doré Bubbles
perruche Gizmo
chèvre Rickety Ride

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée



db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback Annule une transaction

Description

bool db2_rollback ( resource $connection )

Annule une transaction en cours sur la connexion spécifiée et commence une nouvelle transaction. Les applications PHP ont normalement pour valeur par défaut AUTOCOMMIT d'activé, alors db2_commit() n'est pas nécessaire tant que AUTOCOMMIT n'est pas désactivée pour la ressource de connexion.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Annulation d'une requête DELETE

Dans l'exemple suivant, nous comptons le nombre de ligne dans la table, désactivons le mode AUTOCOMMIT sur la connexion de la base de données, supprimons toutes les lignes dans la table et retournons le nombre 0 pour prouver que les lignes ont bien été supprimées. Ensuite nous utilisons la fonction db2_rollback() et retournons la nouvelle valeur du nombre de ligne dans la table pour montrer que le nombre est le même que celui que nous avions avant d'effectuer la requête DELETE. Le retour à l'état original de la table démontre que l'annulation de la transaction a réussie.

<?php
$conn 
db2_connect($database$user$password);

if (
$conn) {
    
$stmt db2_exec($conn"SELECT count(*) FROM animaux");
    
$res db2_fetch_array$stmt );
    echo 
$res[0] . "\n";
    
    
// Désactive AUTOCOMMIT
    
db2_autocommit($connDB2_AUTOCOMMIT_OFF);
   
    
// Suppression de toutes les lignes de ANIMAUX
    
db2_exec($conn"DELETE FROM animals");
    
    
$stmt db2_exec($conn"SELECT count(*) FROM animaux");
    
$res db2_fetch_array$stmt );
    echo 
$res[0] . "\n";
    
    
// Annule la requête DELETE
    
db2_rollback$conn );
    
    
$stmt db2_exec$conn"SELECT count(*) FROM animaux" );
    
$res db2_fetch_array$stmt );
    echo 
$res[0] . "\n";
    
db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

7
0
7

Voir aussi



db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_infoRetourne un objet avec des propriétés qui décrivent le serveur de base de données DB2

Description

object db2_server_info ( resource $connection )

Cette fonction retourne un objet avec des propriétés en lecture seule qui retournent des informations à propos le serveur de base de données IBM DB2, Cloudscape ou Apache Derby. La table suivante liste les propriétés du serveur de base de données :

Propriétés serveur de base de données
Nom Propriété Type de retour Description
DBMS_NAME chaîne de caractères Le nom du serveur de base de données sur lequel vous êtes connecté. Pour des serveurs DB2, c'est une combinaison de DB2 suivi par le système d'exploitation sur lequel le serveur de base de données fonctionne.
DBMS_VER chaîne de caractères La version du serveur de la base de données, dans la forme d'une chaîne de caractères "MM.mm.uuuu"MM est la version majeure, mm est la version mineure et uuuu est la mise à jour. Par exemple, "08.02.0001" représente la version majeure 8, la version mineure 2, la mise à jour 1.
DB_CODEPAGE entier Le code page de la base de données sur laquelle vous êtes connecté.
DB_NAME chaîne de caractères Le nom de la base de données sur laquelle vous êtes connecté.
DFT_ISOLATION chaîne de caractères

Le niveau par défaut d'isolation de transaction supporté par le serveur :

UR

Lecture non-envoyée (Uncommitted read) : les changements sont immédiatement visibles par toutes les transactions concurrentes.

CS

Stabilité du curseur (Cursor stability) : un ligne lue par une transaction peut être modifiée et envoyée par une seconde transaction concurrente.

RS

Stabilité de lecture (Read stability) : une transaction peut ajouter ou supprimer des lignes qui correspondent à une condition de recherche ou à une transaction en attente.

RR

Lecture répétée (Repeatable read) : les données affectées par les transaction en attente ne sont pas disponibles aux autres transactions.

NC

Aucun envoi (No commit) : tout changement est visible à la fin d'une opération réussie. Les envois explicites et retours arrières ne sont pas alloués.

IDENTIFIER_QUOTE_CHAR chaîne de caractères Le caractère utilisé pour délimiter un identifiant.
INST_NAME chaîne de caractères L'instance sur le serveur de base de données qui contient la base de données.
ISOLATION_OPTION tableau Un tableau d'options d'isolation supporté par le serveur de base de données. Les options d'isolation sont décrites dans la propriété DFT_ISOLATION.
KEYWORDS tableau Un tableau des mots-clés réservés par le serveur de base de données.
LIKE_ESCAPE_CLAUSE booléen TRUE si le serveur de base de données supporte l'utilisation des caractères de remplacement % et _. FALSE si le serveur de base de données ne supporte pas ces caractères de remplacement.
MAX_COL_NAME_LEN entier Taille maximale d'un nom de colonne supportée par le serveur de base de données, exprimée en octets.
MAX_IDENTIFIER_LEN entier Taille maximale d'un identifiant SQL supportée par les serveurs de base de données, exprimée en caractères.
MAX_INDEX_SIZE entier Taille maximale des colonnes combinées dans un index supporté par le serveur de base de données, exprimée en octets.
MAX_PROC_NAME_LEN entier Taille maximale d'un nom de procédure supporté par le serveur de base de données, exprimée en octets.
MAX_ROW_SIZE entier Taille maximale d'une ligne dans la table de base supportée par le serveur de base de données, exprimée en octets.
MAX_SCHEMA_NAME_LEN entier Taille maximale d'un nom de schéma supporté par le serveur de base de données, exprimé en octets.
MAX_STATEMENT_LEN entier Taille maximale d'une requête SQL supporté par le serveur de base de données, exprimée en octets.
MAX_TABLE_NAME_LEN entier Taille maximale d'un nom de table supporté par le serveur de base de données, exprimée en octets.
NON_NULLABLE_COLUMNS booléen TRUE si le serveur de base de données supporte les colonnes qui peuvent être définies comme NOT NULL, FALSE si le serveur de base de données ne supporte pas les colonnes définies comme NOT NULL.
PROCEDURES booléen TRUE si le serveur de base de données supporte l'utilisation de la requête CALL pour appeler les procédures enregistrées, FALSE si le serveur de base de données ne supporte pas la requête CALL.
SPECIAL_CHARS chaîne de caractères Une chaîne de caractères contenant tous les caractères autre que les lettres (majuscules et minuscules), les chiffres et le caractère souligné qui peuvent être utilisé en tant que nom d'identifiant.
SQL_CONFORMANCE chaîne de caractères

Le niveau de conformité à la spécification ANSI/ISO SQL-92 offert par le serveur de base de données :

ENTRY

Niveau de conformité SQL-92.

FIPS127

Conformité traditionnelle FIPS-127-2.

FULL

Niveau complet de conformité SQL-92.

INTERMEDIATE

Niveau intermédiaire de conformité SQL-92.

Liste de paramètres

connection

Spécifie la connexion cliente DB2 active.

Valeurs de retour

Retourne un objet si l'appel est réussi. Retourne FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec db2_server_info()

Pour récupérer des informations à propos du serveur, vous devez passer une ressource de connexion de base de données valide à la fonction db2_server_info().

<?php

$conn 
db2_connect('sample''db2inst1''ibmdb2');

$server db2_server_info$conn );

if (
$server) {
    echo 
"DBMS_NAME: ";                 var_dump$server->DBMS_NAME );
    echo 
"DBMS_VER: ";                  var_dump$server->DBMS_VER );
    echo 
"DB_CODEPAGE: ";               var_dump$server->DB_CODEPAGE );
    echo 
"DB_NAME: ";                   var_dump$server->DB_NAME );
    echo 
"INST_NAME: ";                 var_dump$server->INST_NAME );
    echo 
"SPECIAL_CHARS: ";             var_dump$server->SPECIAL_CHARS );
    echo 
"KEYWORDS: ";                  var_dumpsizeof($server->KEYWORDS) );
    echo 
"DFT_ISOLATION: ";             var_dump$server->DFT_ISOLATION );
    echo 
"ISOLATION_OPTION: ";
    
$il '';
    foreach( 
$server->ISOLATION_OPTION as $opt )
    {
       
$il .= $opt." ";
    }
    
var_dump$il );
    echo 
"SQL_CONFORMANCE: ";           var_dump$server->SQL_CONFORMANCE );
    echo 
"PROCEDURES: ";                var_dump$server->PROCEDURES );
    echo 
"IDENTIFIER_QUOTE_CHAR: ";     var_dump$server->IDENTIFIER_QUOTE_CHAR );
    echo 
"LIKE_ESCAPE_CLAUSE: ";        var_dump$server->LIKE_ESCAPE_CLAUSE );
    echo 
"MAX_COL_NAME_LEN: ";          var_dump$server->MAX_COL_NAME_LEN );
    echo 
"MAX_ROW_SIZE: ";              var_dump$server->MAX_ROW_SIZE );
    echo 
"MAX_IDENTIFIER_LEN: ";        var_dump$server->MAX_IDENTIFIER_LEN );
    echo 
"MAX_INDEX_SIZE: ";            var_dump$server->MAX_INDEX_SIZE );
    echo 
"MAX_PROC_NAME_LEN: ";         var_dump$server->MAX_PROC_NAME_LEN );
    echo 
"MAX_SCHEMA_NAME_LEN: ";       var_dump$server->MAX_SCHEMA_NAME_LEN );
    echo 
"MAX_STATEMENT_LEN: ";         var_dump$server->MAX_STATEMENT_LEN );
    echo 
"MAX_TABLE_NAME_LEN: ";        var_dump$server->MAX_TABLE_NAME_LEN );
    echo 
"NON_NULLABLE_COLUMNS: ";      var_dump$server->NON_NULLABLE_COLUMNS );

    
db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

Voir aussi

  • db2_client_info() - Retourne un objet avec des propriétés qui décrivent le client de base de données DB2



db2_set_option

(PECL ibm_db2 >= 1.0.0)

db2_set_optionFixe des options pour une connexion ou des ressources

Description

bool db2_set_option ( resource $resource , array $options , int $type )

Fixe des options pour une ressource ou une connexion. Vous ne pouvez pas fixer des options pour un jeu de résultats.

Liste de paramètres

resource

Une ressource valide comme retournée par db2_prepare() ou une connexion valide comme retournée par db2_connect() ou db2_pconnect().

options

Un tableau associatif contenant des options de ressources ou de connexion valides. Ce paramètre peut être utilisé pour changer les valeurs d'autocommit, types de curseur (flottant ou à avance seule) et spécifier la casse des noms de colonne (minuscule, majuscule ou naturelle) qui apparaîtra dans le jeu de résultats.

autocommit

Passer DB2_AUTOCOMMIT_ON active l'autocommit pour la connexion spécifiée.

Passer DB2_AUTOCOMMIT_OFF désactive l'autocommit pour la connexion spécifiée.

cursor

Passer DB2_FORWARD_ONLY spécifie un curseur à avance seule pour une ressource. Ceci est le type de défaut pour un curseur et est supporté par tous les serveurs de base de données.

Passer DB2_SCROLLABLE spécifie un curseur flottant pour une ressource. Les curseurs flottants permettent aux lignes de résultats d'être accessibles dans un ordre non séquentiel. Ce type de curseur est supporté seulement par les bases de données IBM DB2 Universal Database.

binmode

Passer DB2_BINARY spécifie que des données binaires seront retournées comme telles. Ceci est le mode par défaut. Ceci est équivalent à la configuration ibm_db2.binmode=1 dans php.ini.

Passer DB2_CONVERT spécifie que les données binaires seront converties en encodage hexadécimal et seront retourné ainsi. Ceci est équivalent à la configuration ibm_db2.binmode=2 dans php.ini.

Passer DB2_PASSTHRU spécifie que les données binaires seront converties en NULL. Ceci est équivalent à la configuration ibm_db2.binmode=3 dans php.ini.

db2_attr_case

Passer DB2_CASE_LOWER spécifie que les noms des colonnes dans le jeu de résultats seront retournés en minuscule.

Passer DB2_CASE_UPPER spécifie que les noms des colonnes dans le jeu de résultats seront retournés en majuscule.

Passer DB2_CASE_NATURAL spécifie que les noms de colonnes dans le jeu de résultats seront retournés en casse naturelle.

deferred_prepare

Passer DB2_DEFERRED_PREPARE_ON active la préparation déférée sur la ressource de requête spécifiée.

Passer DB2_DEFERRED_PREPARE_OFF désactive la préparation déférée sur la ressource de requête spécifiée.

Les nouvelles options suivantes i5/OS sont disponibles depuis la version 1.5.1 de ibm_db2. Ces options s'appliquent uniquement lorsque PHP et ibm_db2 fonctionnent nativement sur un système i5.

i5_fetch_only

DB2_I5_FETCH_ON : les curseurs sont en lecture seule et ne peuvent être utilisé pour positionner des mises à jour et des suppressions. Ceci est la valeur par défaut a moins que la variable d'environnement SQL_ATTR_FOR_FETCH_ONLY ait été mis à SQL_FALSE.

DB2_I5_FETCH_OFF : les curseurs peuvent être positionnés pour mises à jour et suppressions.

Les nouvelles options suivantes sont disponibles depuis ibm_db2 version 1.8.0 et suivants.

rowcount

DB2_ROWCOUNT_PREFETCH_ON - Le client peut demander un comptage complet des lignes avant de les récupérer, ce qui signifie que la fonction db2_num_rows() retourne le nombre de lignes sélectionnées même si un curseur ROLLFORWARD_ONLY est utilisé.

DB2_ROWCOUNT_PREFETCH_OFF - Le client ne peut pas demander un comptage complet des lignes avant de les récupérer.

Les options suivantes sont nouvelles, et disponibles depuis ibm_db2 version 1.7.0.

trusted_user

Pour basculer l'utilisateur vers un utilisateur de confiance, indiquez l'identifiant utilisateur sous forme de chaîne, de l'utilisateur de confiance que vous voulez utiliser. Cette option peut être configurée au niveau de la connexion uniquement. Pour utiliser cette option, un contexte de confiance doit être activé sur la ressource de connexion.

trusted_password

Le mot de passe, sous forme de chaîne, qui correspond à l'utilisateur de confiance.

Les options suivantes sont nouvelles, et disponibles depuis ibm_db2 version 1.6.0. Ces options sont pratiques pour obtenir des informations de suivis, accessibles via db2_get_option().

Note:

Lorsque la valeur de chaque option est sur le point d'être définie, quelques serveurs peuvent ne pas gérer la totalité de la longueur fournie et peuvent tronquer la valeur.

Pour s'assurer que les données spécifiées dans chaque option seront converties correctement lorsqu'elles seront transmises au système, utilisez seulement les caractères de A à Z, 0 à 9, les soulignés (_) et les points (.).

userid

SQL_ATTR_INFO_USERID : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier l'ID utilisateur du client envoyé au serveur de base de données, lors de la connexion DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supporte une longueur supérieure à 16 caractères. L'ID utilisateur ne doit pas être confondu avec l'ID utilisateur d'identification, il est utilisé pour les processus d'identification uniquement et non pour ceux d'autorisation.

acctstr

SQL_ATTR_INFO_ACCTSTR : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier le compte du client à envoyer au serveur de base de données lors de la connexion DB2..

Note:

DB2 pour les serveurs z/OS et OS/390 supporte une longueur supérieure à 200 caractères.

applname

SQL_ATTR_INFO_APPLNAME : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier le nom de l'application client à envoyer au serveur de base de données lors de la connexion DB2.

Note:

DB2 pour les serveurs z/OS and OS/390 supportent une longueur supérieure à 32 caractères.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier le nom de la station à envoyer au serveur de base de données lors de la connexion DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent une longueur supérieure à 18 caractères.

type

Un entier qui spécifie le type de ressource qui a été passé à la fonction. Le type de ressource et valeur doit correspondre.

Passer 1 en tant que valeur spécifie qu'une ressource de connexion a été passée à la fonction.

Passer n'importe quel entier différent de 1 en tant que valeur spécifie qu'une ressource a été passée à la fonction.

Le tableau suivant spécifie quelles options sont compatibles avec quels types de ressources :

Matrice ressource paramètre
Clé Valeur Type de ressource
  Connexion Requête Jeu de résultats
autocommit DB2_AUTOCOMMIT_ON X - -
autocommit DB2_AUTOCOMMIT_OFF X - -
cursor DB2_SCROLLABLE - X -
cursor DB2_FORWARD_ONLY - X -
binmode DB2_BINARY X X -
binmode DB2_CONVERT X X -
binmode DB2_PASSTHRU X X -
db2_attr_case DB2_CASE_LOWER X X -
db2_attr_case DB2_CASE_UPPER X X -
db2_attr_case DB2_CASE_NATURAL X X -
deferred_prepare DB2_DEFERRED_PREPARE_ON - X -
deferred_prepare DB2_DEFERRED_PREPARE_OFF - X -
i5_fetch_only DB2_I5_FETCH_ON - X -
rowcount DB2_ROWCOUNT_PREFETCH_ON - X -
rowcount DB2_ROWCOUNT_PREFETCH_OFF - X -
trusted_user <USER NAME> (String) X - -
trusted_password <PASSWORD> (String) X - -
i5_fetch_only DB2_I5_FETCH_OFF - X -
userid SQL_ATTR_INFO_USERID X X -
acctstr SQL_ATTR_INFO_ACCTSTR X X -
applname SQL_ATTR_INFO_APPLNAME X X -
wrkstnname SQL_ATTR_INFO_WRKSTNNAME X X -

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fixer un paramètre à une ressource de connexion

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$hostname 'localhost';
$port 50000;
$protocol 'TCPIP';
$username 'db2inst1';
$password 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn db2_connect($conn_string'''');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result db2_set_option($conn$options1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
   echo 
'Options fixées correctement';
}
else
{
   echo 
'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Options fixées correctement

Exemple #2 Fixe des paramètres multiples avec une ressource de connexion

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$hostname 'localhost';
$port 50000;
$protocol 'TCPIP';
$username 'db2inst1';
$password 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn db2_connect($conn_string'''');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result db2_set_option($conn$options1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
  echo 
'Options fixées correctement';
}
else
{
  echo 
'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Options fixées correctement

Exemple #3 Fixe des paramètres multiples avec une clé invalide

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$hostname 'localhost';
$port 50000;
$protocol 'TCPIP';
$username 'db2inst1';
$password 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn db2_connect($conn_string'''');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF
'MY_INVALID_KEY' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result db2_set_option($conn$options1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
   echo 
'Options fixées correctement';
}
else
{
   echo 
'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #4 Fixe des paramètres multiples avec une valeur invalide

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$hostname 'localhost';
$port 50000;
$protocol 'TCPIP';
$username 'db2inst1';
$password 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn db2_connect($conn_string'''');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF
'binmode' => 'INVALID_VALUE',
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result db2_set_option($conn$options1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
   echo 
'Options fixées correctement';
}
else
{
   echo 
'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #5 Fixe des paramètres multiples avec une ressource de connexion et un mauvais type

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$hostname 'localhost';
$port 50000;
$protocol 'TCPIP';
$username 'db2inst1';
$password 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn db2_connect($conn_string'''');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type invalide */
$result db2_set_option($conn$options2);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
  echo 
'Options fixées correctement';
}
else
{
  echo 
'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #6 Fixe des paramètres multiples avec une mauvaise ressource

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$hostname 'localhost';
$port 50000;
$protocol 'TCPIP';
$username 'db2inst1';
$password 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn db2_connect($conn_string'''');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

$stmt db2_prepare($conn'SELECT * FROM EMPLOYEE');

/* Appel de la fonction en utilisant le type incorrect de ressource, mais le tableau
* d'options et la valeur type valide */
$result db2_set_option($stmt$options1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
  echo 
'Options fixées correctement';
}
else
{
  echo 
'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #7 Tout mettre ensemble

<?php
/* Paramètres de Connexion */
$database 'SAMPLE';
$hostname 'localhost';
$port 50000;
$protocol 'TCPIP';
$username 'db2inst1';
$password 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn db2_connect($conn_string'''');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
'cursor' => DB2_SCROLLABLE);

$stmt db2_prepare($conn'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$option_result db2_set_option($stmt$options2);
$result db2_execute($stmt, array('000130''000140'));

/* Récupère la ligne 2 avant la ligne 1 puisque nous avons un curseur flottant */
print_r(db2_fetch_assoc($stmt2));
print 
'<br /><br />';
print_r(db2_fetch_assoc($stmt1));

?>

L'exemple ci-dessus va afficher :

Array
(
     [empno] => 000140
     [firstnme] => HEATHER
     [midinit] => A
     [lastname] => NICHOLLS
     [workdept] => C01
     [phoneno] => 1793
     [hiredate] => 1976-12-15
     [job] => ANALYST
     [edlevel] => 18
     [sex] => F
     [birthdate] => 1946-01-19
     [salary] => 28420.00
     [bonus] => 600.00
     [comm] => 2274.00
)

Array
(
     [empno] => 000130
     [firstnme] => DELORES
     [midinit] => M
     [lastname] => QUINTANA
     [workdept] => C01
     [phoneno] => 4578
     [hiredate] => 1971-07-28
     [job] => ANALYST
     [edlevel] => 16
     [sex] => F
     [birthdate] => 1925-09-15
     [salary] => 23800.00
     [bonus] => 500.00
     [comm] => 1904.00
)

Exemple #8 Les curseurs i5/OS sont en lecture seule

<?php
$conn 
db2_connect("""""", array("i5_lib"=>"nobody"));
$stmt db2_prepare($conn'select * from names where first = ?');
$name "first2";
db2_bind_param($stmt1"name"DB2_PARAM_IN);
$options = array("i5_fetch_only"=>DB2_I5_FETCH_ON);
db2_set_option($stmt,$options,0);
if (
db2_execute($stmt)) {
   while (
$row db2_fetch_array($stmt)) {
      echo 
"{$row[0]} {$row[1]}";
   }
}
?>

L'exemple ci-dessus va afficher :

first2 last2

Voir aussi



db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table

Description

resource db2_special_columns ( resource $connection , string $qualifier , string $schema , string $table_name , int $scope )

Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables.

table_name

Le nom de la table.

scope

Un entier représentant le temps minimal pour lequel l'identifiant unique de la ligne est valide. Cela peut être une des valeurs suivantes :

Valeur Entier Constante SQL Description
0 SQL_SCOPE_CURROW L'identifiant de la ligne est valide seulement lorsque curseur est positionné sur la ligne.
1 SQL_SCOPE_TRANSACTION L'identifiant de la ligne est valide pour la durée de la transaction.
2 SQL_SCOPE_SESSION L'identifiant de la ligne est valide durant la durée de la connexion.

Valeurs de retour

Retourne une ressource avec un jeu de résultats contenant des lignes avec des informations uniques pour une table. Les lignes sont composées des colonnes suivantes :

Nom de la colonne Description
SCOPE

Valeur Entier Constante SQL Description
0 SQL_SCOPE_CURROW L'identifiant de la ligne est valide seulement lorsque curseur est positionné sur la ligne.
1 SQL_SCOPE_TRANSACTION L'identifiant de la ligne est valide pour la durée de la transaction.
2 SQL_SCOPE_SESSION L'identifiant de la ligne est valide durant la durée de la connexion.

COLUMN_NAME Nom de la colonne unique.
DATA_TYPE Le type de données SQL pour la colonne.
TYPE_NAME Une chaîne représentant le type de données pour la colonne.
COLUMN_SIZE Un entier représentant la grandeur de la colonne.
BUFFER_LENGTH Nombre d'octets maximaux nécessaires pour enregistrer des données de cette colonne.
DECIMAL_DIGITS L'échelle de la colonne ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant un type de données numériques approximé) ou NULL (représentant un type de données pour lequel la base n'est pas applicable).
PSEUDO_COLUMN Retourne toujours 1.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics Retourne un jeu de résultats listant les index et statistiques d'une table

Description

resource db2_statistics ( resource $connection , string $qualifier , string $schema , string $table-name , bool $unique )

Retourne un jeu de résultats listant les index et statistiques d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables visées. Si le paramètre est NULL, les statistiques et les index sont retournés pour le schéma de l'utilisateur en cours.

table_name

Le nom de la table.

unique

Un entier représentant le type d'information à retourner.

0

Retourne seulement les informations pour les index uniques de la table.

1

Retourne les informations pour tous les index de la table.

Valeurs de retour

Ce que la fonction retourne, premièrement lors de succès, ensuite lors d'échec. Voyez aussi l'entité Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Nom de la colonne Description
TABLE_CAT Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM Nom du schéma que contient la table.
TABLE_NAME Nom de la table.
NON_UNIQUE

Un entier représentant si l'index interdit les valeurs uniques ou si la ligne représente des statistiques sur la table elle-même :

Valeur de retour Type de paramètre
0 (SQL_FALSE) L'index autorise les valeurs dupliquées.
1 (SQL_TRUE) Les valeurs index doivent être uniques.
NULL La ligne contient des informations statistiques à propos de la table.

INDEX_QUALIFIER Une chaîne de caractères représentant un qualificatif qui devrait avoir été préalablement fixé à INDEX_NAME pour qualifier complètement l'index.
INDEX_NAME Une chaîne représentant le nom de l'index.
TYPE

Un entier représentant le type d'informations contenues dans cette ligne du jeu de résultats :

Valeur de retour Type de paramètre
0 (SQL_TABLE_STAT) La ligne contient des informations statistiques à propos de la table.
1 (SQL_INDEX_CLUSTERED) La ligne contient des informations à propos d'index groupé.
2 (SQL_INDEX_HASH) La ligne contient des informations à propos d'index haché.
3 (SQL_INDEX_OTHER) La ligne contient des informations à propos du type d'index qui n'est pas groupé ni haché.

ORDINAL_POSITION Un tableau commençant à l'index 1 indiquant la colonne dans l'index. NULL si la ligne contient des informations statistiques à propos de la table.
COLUMN_NAME Le nom de la colonne dans l'index. NULL si la ligne contient des informations statistiques à propos de la table.
ASC_OR_DESC A si la colonne est triée en ordre alphabétique, D si la colonne est triée en ordre alphabétique inverse, NULL si la ligne contient des informations statistiques à propos de la table.
CARDINALITY

Si la ligne contient des informations à propos d'un index, cette colonne contiendra un entier représentant le nombre de valeurs uniques dans l'index.

Si la ligne contient des informations à propos de la table, cette colonne contiendra un entier représentant le nombre de lignes dans la table.

PAGES

Si la ligne contient des informations à propos d'un index, cette colonne contiendra un entier représentant le nombre de pages utilisées pour enregistrer l'index.

Si la ligne contient des informations à propos de la table, cette colonne contiendra un entier représentant le nombre de pages utilisées pour enregistrer la table.

FILTER_CONDITION Retourne toujours NULL.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL

Description

string db2_stmt_error ([ resource $stmt ] )

Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL.

Si vous ne passez pas de ressource en tant qu'argument à la fonction db2_stmt_error(), elle retournera le message d'erreur associé avec le dernier essai de retour d'une requête SQL, par exemple, provenant de db2_prepare() ou db2_exec().

Pour comprendre les valeurs de SQLSTATE, vous pouvez taper la commande suivante dans le processeur de ligne de commandes de DB2 : db2 '? sqlstate-value'. Vous pouvez aussi appeler la fonction db2_conn_errormsg() pour obtenir un message d'erreur explicite ainsi que la valeur de SQLCODE associée.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne une chaîne contenant la valeur de SQLSTATE.

Voir aussi

  • db2_conn_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_conn_errormsg() - Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_stmt_errormsg() - Retourne le dernier message d'erreur d'une requête SQL



db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg Retourne le dernier message d'erreur d'une requête SQL

Description

string db2_stmt_errormsg ([ resource $stmt ] )

Retourne le dernier message d'erreur d'une requête SQL.

Si vous ne passez pas de ressource en tant qu'argument à la fonction db2_stmt_error_msg(), elle retournera le message d'erreur associé avec le dernier essai de retour d'une requête SQL, par exemple, provenant de db2_prepare() ou db2_exec().

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne une chaîne contenant l'erreur du message et le SQLCODE pour la dernière erreur qui s'est déroulée après l'exécution d'une requête SQL.

Voir aussi

  • db2_conn_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_conn_errormsg() - Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_stmt_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL



db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données

Description

resource db2_table_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table_name ]]] )

Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

table-name

Le nom de la table. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les privilèges pour la table qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne Description
TABLE_CAT Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM Nom du schéma que contient la table.
TABLE_NAME Nom de la table.
GRANTOR ID d'autorisation de l'utilisateur qui a donné le privilège.
GRANTEE ID d'autorisation de l'utilisateur à qui le privilège a été donné.
PRIVILEGE Le privilège qui a été donné. Cela peut être un de ces mots suivants : ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT ou UPDATE.
IS_GRANTABLE Une chaîne contenant "YES" ou "NO" indiquant si l'utilisateur à qui le privilège a été donné peut donner le privilège aux autres utilisateurs.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_tables() - Retourne la liste des tables et leurs métadonnées



db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables Retourne la liste des tables et leurs métadonnées

Description

resource db2_tables ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $table-type ]]]] )

Retourne un jeu de résultats listant les tables et leurs métadonnées qui leur sont associées d'une base de données

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

table-name

Le nom de la table. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

table-type

Une liste des identifiants du type de table délimitée par des virgules. Pour concorder avec tous les schémas, passez NULL ou une chaîne vide. Les identifiants valides sont : ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW et VIEW.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les tables qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne Description
TABLE_CAT Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM Nom du schéma que contient la table.
TABLE_NAME Nom de la table.
TABLE_TYPE Identifiant de la table.
REMARKS Description de la table.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données


Sommaire

  • db2_autocommit — Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
  • db2_bind_param — Associe une variable PHP à un paramètre d'une requête SQL
  • db2_client_info — Retourne un objet avec des propriétés qui décrivent le client de base de données DB2
  • db2_close — Ferme une connexion de base de données
  • db2_column_privileges — Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns — Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_commit — Valide la transaction
  • db2_conn_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_conn_errormsg — Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_connect — Retourne une connexion à une base de données
  • db2_cursor_type — Retourne le type de curseur utilisé par une ressource
  • db2_escape_string — Utilisé pour échapper certains caractères
  • db2_exec — Exécute une requête SQL directement
  • db2_execute — Exécute une requête SQL préparée
  • db2_fetch_array — Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc — Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both — Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object — Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row — Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_field_display_size — Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name — Retourne le nom de la colonne du jeu de résultats
  • db2_field_num — Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision — Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale — Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type — Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width — Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats
  • db2_foreign_keys — Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_free_result — Libère la mémoire associée à un jeu de résultats
  • db2_free_stmt — Libère la mémoire associée à la ressource indiquée
  • db2_get_option — Récupère la valeur d'une option pour une requête ou une connexion
  • db2_last_insert_id — Retourne le dernier ID généré par la dernière requête d'insertion
  • db2_lob_read — Récupère de grands objets binaires de tailles prédéfinies à chaque invocation
  • db2_next_result — Demande le prochain jeu de résultats de la ressource indiquée
  • db2_num_fields — Retourne le nombre de champs contenu du jeu de résultats
  • db2_num_rows — Retourne le nombre de lignes affectées par une requête SQL
  • db2_pclose — Ferme une connexion persistante à la base de données
  • db2_pconnect — Retourne une connexion persistante à une base de données
  • db2_prepare — Prépare une requête SQL à être exécutée
  • db2_primary_keys — Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns — Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures — Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_result — Retourne une colonne d'une ligne d'un jeu de résultats
  • db2_rollback — Annule une transaction
  • db2_server_info — Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2
  • db2_set_option — Fixe des options pour une connexion ou des ressources
  • db2_special_columns — Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics — Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_stmt_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
  • db2_stmt_errormsg — Retourne le dernier message d'erreur d'une requête SQL
  • db2_table_privileges — Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables — Retourne la liste des tables et leurs métadonnées

  • Introduction
  • Installation/Configuration
  • Constantes pré-définies
  • Fonctions IBM DB2
    • db2_autocommit — Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
    • db2_bind_param — Associe une variable PHP à un paramètre d'une requête SQL
    • db2_client_info — Retourne un objet avec des propriétés qui décrivent le client de base de données DB2
    • db2_close — Ferme une connexion de base de données
    • db2_column_privileges — Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
    • db2_columns — Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
    • db2_commit — Valide la transaction
    • db2_conn_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
    • db2_conn_errormsg — Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
    • db2_connect — Retourne une connexion à une base de données
    • db2_cursor_type — Retourne le type de curseur utilisé par une ressource
    • db2_escape_string — Utilisé pour échapper certains caractères
    • db2_exec — Exécute une requête SQL directement
    • db2_execute — Exécute une requête SQL préparée
    • db2_fetch_array — Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
    • db2_fetch_assoc — Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
    • db2_fetch_both — Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
    • db2_fetch_object — Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
    • db2_fetch_row — Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
    • db2_field_display_size — Retourne le maximum d'octets requis pour afficher une colonne
    • db2_field_name — Retourne le nom de la colonne du jeu de résultats
    • db2_field_num — Retourne la position du nom de la colonne du jeu de résultats
    • db2_field_precision — Retourne la précision de la colonne indiquée du jeu de résultats
    • db2_field_scale — Retourne l'échelle de la colonne indiquée du jeu de résultats
    • db2_field_type — Retourne le type de donnée de la colonne indiquée du jeu de résultats
    • db2_field_width — Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats
    • db2_foreign_keys — Retourne un jeu de résultats listant les clés étrangères d'une table
    • db2_free_result — Libère la mémoire associée à un jeu de résultats
    • db2_free_stmt — Libère la mémoire associée à la ressource indiquée
    • db2_get_option — Récupère la valeur d'une option pour une requête ou une connexion
    • db2_last_insert_id — Retourne le dernier ID généré par la dernière requête d'insertion
    • db2_lob_read — Récupère de grands objets binaires de tailles prédéfinies à chaque invocation
    • db2_next_result — Demande le prochain jeu de résultats de la ressource indiquée
    • db2_num_fields — Retourne le nombre de champs contenu du jeu de résultats
    • db2_num_rows — Retourne le nombre de lignes affectées par une requête SQL
    • db2_pclose — Ferme une connexion persistante à la base de données
    • db2_pconnect — Retourne une connexion persistante à une base de données
    • db2_prepare — Prépare une requête SQL à être exécutée
    • db2_primary_keys — Retourne un jeu de résultats listant les clés d'une table
    • db2_procedure_columns — Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
    • db2_procedures — Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
    • db2_result — Retourne une colonne d'une ligne d'un jeu de résultats
    • db2_rollback — Annule une transaction
    • db2_server_info — Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2
    • db2_set_option — Fixe des options pour une connexion ou des ressources
    • db2_special_columns — Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
    • db2_statistics — Retourne un jeu de résultats listant les index et statistiques d'une table
    • db2_stmt_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
    • db2_stmt_errormsg — Retourne le dernier message d'erreur d'une requête SQL
    • db2_table_privileges — Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
    • db2_tables — Retourne la liste des tables et leurs métadonnées


Ingres DBMS, EDBC, et Enterprise Access


Introduction

Le driver Ingres pour PHP vous permet de vous connecter et d'effectuer des requêtes sur des serveurs DBMS, EDBC, et Enterprise Access.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.



Installation/Configuration

Sommaire


Pré-requis

Pour utiliser ou compiler l'extension PHP pour Ingres, vous devez avoir un environnement client Ingres. Vous pouvez télécharger le logiciel client à » http://esd.ingres.com/.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ingres.

La bibliothèque DLL de cette extension PECL peut être téléchargée sur » http://esd.ingres.com/product/drivers/PHP/.

Pour activer ces fonctions, vous devez avoir » téléchargé et compilé cette extension, activé le support Ingres avec l'option --with-ingres[=DIR] , où DIR est le dossier de base de Ingres. Si la variable d'environnement II_SYSTEM n'est pas correctement spécifiée, vous devrez utiliser la directive --with-ingres=DIR pour indiquer où se trouve votre dossier d'installation Ingres.

Le code PHP écrite pour la version 2.x et plus récent n'est pas compatible avec les versions plus anciennes de cette extension. Cependant, il est possible d'exécuter les deux extensions incompatibles dans le même environnement PHP, avec l'option --enable-ingres2 . Cette option de configuration renomme l'extension en ingres2, change le nom des fonctions, des directives de configurations et des constantes. Par exemple, cette option activée, la fonction ingres_connect() devient ingres2_connect().

Pour utiliser cette extension, la variable d'environnement II_SYSTEM doit être définie. Les utilisateurs Linux et UNIX doivent aussi définir le chemin jusqu'à la bibliothèque partagée, par exemple LD_LIBRARY_PATH. Lorsqu'utilisé avec le serveur Web Apache, ces variables doivent être configurées explicitement dans le script de démarrage d'Apache. De plus, la directive PassEnv est nécessaire pour que l'extension Ingres charge correctement les bibliothèques. Par exemple :

Exemple #1 Exemple d'utilisation de PassEnv avec Ingres

<IfModule mod_env.c>
    PassEnv II_SYSTEM
    PassEnv LD_LIBRARY_PATH
</IfModule>

Note:

Pour des exemples de configurations pour différents serveurs Web et systèmes d'exploitation, voyez » http://community.ingres.com/wiki/Ingres_Articles#Ingres_and_Web_Servers.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Ingres
Nom Défaut Modifiable Historique
ingres.allow_persistent "1" PHP_INI_SYSTEM Disponible depuis ingres 1.0.0
ingres.array_index_start "1" PHP_INI_ALL Disponible depuis ingres 1.4.0.
ingres.auto "1" PHP_INI_ALL Disponible depuis ingres 2.0.0.
ingres.blob_segment_length "4096" PHP_INI_ALL Disponible depuis ingres 1.2.0.
ingres.cursor_mode "0" PHP_INI_ALL Disponible depuis ingres 1.1.0.
ingres.default_database NULL PHP_INI_ALL Disponible depuis ingres 1.0.0
ingres.default_password NULL PHP_INI_ALL Disponible depuis ingres 1.0.0
ingres.default_user NULL PHP_INI_ALL Disponible depuis ingres 1.0.0
ingres.describe 1 PHP_INI_ALL Disponible depuis ingres 2.1.0
ingres.fetch_buffer_size 100 PHP_INI_ALL Disponible depuis ingres 2.1.0
ingres.max_links "-1" PHP_INI_SYSTEM Disponible depuis ingres 1.0.0
ingres.max_persistent "-1" PHP_INI_SYSTEM Disponible depuis ingres 1.0.0
ingres.reuse_connection "1" PHP_INI_ALL Disponible depuis ingres 2.0.0
ingres.scrollable "1" PHP_INI_ALL Disponible depuis ingres 2.0.0.
ingres.trace "0" PHP_INI_ALL Disponible depuis ingres 2.0.0.
ingres.trace_connect "0" PHP_INI_ALL Disponible depuis ingres 1.2.1.
ingres.utf8 "1" PHP_INI_ALL Disponible depuis ingres 2.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ingres.allow_persistent booléen

Indique s'il faut activer les connexions persistantes à Ingres

ingres.array_index_start entier

Spécifie la valeur de départ pour les clés des entiers des tableaux générés par la fonction ingres_fetch_row() ou par la fonction ingres_fetch_array(). Par défaut, le paramètre ingres.array_index_start est définit à 1. Si vous voulez que l'extension ingres fonctionne de la même façon que les autres extensions de bases de données, définissez ce paramètre à 0.

ingres.auto booléen

Active ou pas l'émulation de l'autocommit. Ingres ne peut pas avoir plusieurs curseurs ouverts simultanément, lorsque l'autocommit est actif. Lorsqu'il est activé, le pilote émule l'autocommit.

ingres.blob_segment_length entier

Spécifie la quantité de mémoire à utiliser lors de la lecture des BLOB, en octets.

ingres.cursor_mode entier

Spécifie le mode par défaut pour les curseurs ouverts avec ingres_prepare(). Les valeurs valides sont INGRES_CURSOR_UPDATE ou INGRES_CURSOR_READONLY.

ingres.default_database chaîne de caractères

Spécifie le nom de la base de données par défaut, lors de la connexion à un serveur, si aucun nom de base n'est fourni. Cela ne s'applique pas au safe mode SQL.

ingres.default_password chaîne de caractères

Spécifie le mot de passe par défaut, lors de la connexion à un serveur, si aucun nom de base n'est fourni. Cela ne s'applique pas au safe mode SQL.

ingres.default_user chaîne de caractères

Spécifie le nom d'utilisateur par défaut, lors de la connexion à un serveur, si aucun nom de base n'est fourni. Cela ne s'applique pas au safe mode SQL.

ingres.describe booléen

Active l'utilisation de DESCRIBE INPUT pour déterminer les types de données pour les requêtes préparées. Disponible depuis Ingres 9.1.0. Lorsque cette directive est désactivée, les requêtes qui reçoivent des paramètres doivent décrire manuellement ces paramètres avec le paramètre types dans la fonction ingres_query().

Note:

En activant cette fonctionnalité, ingres_query() va réaliser plusieurs requêtes supplémentaires entre PHP et le serveur. Pour réduire ce trafic, utilisez ingres_prepare() et ingres_execute().

ingres.fetch_buffer_size entier

Spécifie le nombre de ligne à télécharger lors d'une opération de lecture en groupe par ingres_fetch_array(), ingres_fetch_object() et ingres_fetch_row().

Spécifie le nombre de sessions Ingres allouées par processus ou thread. Le nombre de sessions ne doit pas excéder le nombre maximal de connexions configurées par le serveur Ingres.

ingres.max_persistent entier

Spécifie le nombre maximum de sessions persistantes allouées par processus ou par thread. Le nombre de sessions ne doit pas excéder le nombre de connexions configurées sur le serveur Ingres.

ingres.reuse_connection booléen

Active la réutilisation de connexion si la connexion est tentée sur le même serveur avec le même nom d'utilisateur.

ingres.scrollable booléen

Active le support des curseurs scrollables. Lors de la lecture de données CLOB ou BLOB, cette directive doit être mise à FALSE. Disponible depuis Ingres 9.2.0.

ingres.trace booléen

Active les traces simples de messages E_NOTICE.

ingres.trace_connect booléen

Affiche des messages E_NOTICE durant les appels à ingres_connect() et ingres_pconnect().

ingres.utf8 booléen

Suppose que les chaîne de caractères passées à une colonne de type National Character (NVARCHAR ou NCHAR) utilisent l'encodage UTF-8 et les converti en UTF-16 pour le serveur.



Types de ressources

ingres_connect() et ingres_pconnect() retournent une ressource de connexion à Ingres.

ingres_query() et ingres_unbuffered_query() retourne une ressource de résultat Ingres.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

INGRES_ASSOC (entier)
Les colonnes sont retournées dans des tableaux, dont les noms de colonnes sont les index. À utiliser avec ingres_fetch_array().
INGRES_NUM (entier)
Les colonnes sont retournées dans des tableaux avec des index numériques. Par défaut, les index commencent à 1, qui est le premier champ du résultat. Pour changer cette valeur, voyez ingres.array_index_start. À utiliser avec ingres_fetch_array().
INGRES_BOTH (entier)
Les colonnes sont retournées dans des tableaux, numériques et littéraux. À utiliser avec ingres_fetch_array().
INGRES_EXT_VERSION (chaîne de caractères)
Spécifie la version de l'extension Ingres. Disponible depuis la version 1.2.0 de l'extension PECL.
INGRES_API_VERSION (entier)
Spécifie la version de Ingres OpenAPI. Disponible depuis la version 1.2.0 de l'extension PECL.
INGRES_CURSOR_READONLY (entier)
Spécifie si les curseurs Ingres sont en mode lecture seule. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres.cursor_mode.
INGRES_CURSOR_UPDATE (entier)
Spécifie si les curseurs Ingres sont en mode écriture. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres.cursor_mode.
INGRES_DATE_MULTINATIONAL (entier)
Équivalent à configure II_DATE_FORMAT à MULTINATIONAL. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_MULTINATIONAL4 (entier)
Équivalent à configure II_DATE_FORMAT à MULTINATIONAL4. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_FINNISH (entier)
Équivalent à configure II_DATE_FORMAT à FINNISH. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_ISO (entier)
Équivalent à configure II_DATE_FORMAT à ISO. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_ISO4 (entier)
Équivalent à configure II_DATE_FORMAT à ISO4. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_GERMAN (entier)
Équivalent à configure II_DATE_FORMAT à GERMAN. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_MDY (entier)
Équivalent à configure II_DATE_FORMAT à MDY. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_DMY (entier)
Équivalent à configure II_DATE_FORMAT à DMY. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_YMD (entier)
Équivalent à configure II_DATE_FORMAT à YMD. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_MONEY_LEADING (entier)
Spécifie le symbole monétaire, lorsqu'il est utilisé comme préfixe d'une valeur. Équivalent à configure II_MONEY_FORMAT à L:. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_MONEY_TRAILING (entier)
Spécifie le symbole monétaire, lorsqu'il est utilisé comme suffixe d'une valeur. Équivalent à configure II_MONEY_FORMAT à T:. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_STRUCTURE_BTREE (entier)
Spécifie la structure de table ou d'index par défaut à BTREE, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CBTREE (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED BTREE, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_HASH (entier)
Spécifie la structure de table ou d'index par défaut à HASH, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CHASH (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED HASH, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_HEAP (entier)
Spécifie la structure de table ou d'index par défaut à HEAP, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CHEAP (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED HEAP, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_ISAM (entier)
Spécifie la structure de table ou d'index par défaut à ISAM, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CISAM (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED ISAM, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().


Exemples

Sommaire


L'exemple suivant montre comment se connecter à une base Ingres, exécuter une requête, afficher le résultat et se déconnecter.

Exemple #1 Exemple simple avec Ingres

<?php
// Connexion et sélection de la base
$link ingres_connect("database""user""password")
    or die(
"Could not connect: " ingres_error($link));
echo 
"Connected successfully";

// Sélection dans une table qui existe dans toutes les bases
$query "SELECT * FROM iitables";
$result ingres_query($link,$query) or die("Query failed: " .
ingres_error($link));

// Affichage du résultat au format HTML
// relid : nom de la table
// relowner : propriétaire de la table
echo "<table>\n";
while (
$iitables ingres_fetch_object($result)) {
    echo 
"\t<tr>\n";
    echo 
"\t\t<td>" $iitables->relid "</td>\n";
    echo 
"\t\t<td>" $iitables->relowner "</td>\n";
    echo 
"\t</tr>\n";
}
echo 
"</table>\n";

// Libération des résultats
ingres_free_result($result);

// Validation de la transaction
ingres_commit($link);

// Fermeture de la connexion
ingres_close($link);
?>




Fonctions Ingres


ingres_autocommit_state

(PECL ingres >= 2.0.0)

ingres_autocommit_stateVérifie si la connexion utilise l'autocommit

Description

bool ingres_autocommit_state ( resource $link )

ingres_autocommit_state() sert à déterminer si la connexion actuelle utilise l'autocommit ou non.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne TRUE si l'autocommit est activé, et FALSE sinon.

Voir aussi



ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_autocommitActive ou désactive le mode autocommit

Description

bool ingres_autocommit ( resource $link )

ingres_autocommit() est appelée juste avant l'ouverture d'une transaction (avant le premier appel à ingres_query() ou juste après un appel à ingres_rollback() ou ingres_commit()) pour changer l'état du mode autocommit (ce mode fonctionne comme une bascule). Lorsque le script débute le mode autocommit est toujours désactivé.

Pour savir si l'autocommit est activé, utilisez la fonction ingres_autocommit_state().

Par défaut, Ingres va annuler toute transaction qui n'est pas validée à la fin d'une requête. Utilisez cette fonction ou ingres_autocommit() pour vous assurer que vos requêtes sont bien enregistrées dans la base.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ingres_charset

(PECL ingres >= 2.1.0)

ingres_charsetRetourne le jeu de caractères utilisé par Ingres

Description

string ingres_charset ( resource $link )

ingres_charset() retourne le jeu de caractères utilisé par le client Ingres, parmi les jeux II_CHARSETxx (où xx est le code d'installation).

Note:

Vous pouvez modifier la valeur retournée par cette fonction avec la fonction putenv(). Changer la valeur de II_CHARSETxx lorsque Ingres est en fonctionnement peut conduire à de la corruption de données.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne la chaîne avec une valeur II_CHARSETxx ou NULL si la valeur n'a pas pu être déterminée.

Exemples

Exemple #1 Exemple avec ingres_charset()

<?php
$link 
ingres_connect($database$user$password);

echo 
ingres_charset($link) . "\n";

ingres_close($link);
?>

Voir aussi



ingres_close

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_closeFerme une connexion à un serveur Ingres

Description

bool ingres_close ( resource $link )

ingres_close() ferme la connexion au serveur Ingres associée au lien link.

Habituellement l'appel à ingres_close() n'est pas nécessaire, car il ne ferme pas les connexions persistantes, et toutes les connexions non-persistantes sont automatiquement fermées à la fin du script.

Liste de paramètres

link

La ressource de connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ingres_commit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_commitValide une transaction

Description

bool ingres_commit ( resource $link )

ingres_commit() valide la transaction ouverte, ce qui rend permanentes toutes les modifications faites sur la base de données au cours de cette transaction.

Cette fonction ferme la transaction. Une nouvelle transaction peut être ouverte en envoyant une requête à l'aide de ingres_query().

Vous pouvez aussi faire en sorte que le serveur valide automatiquement les changements après chaque requête en appelant ingres_autocommit() avant l'ouverture d'une transaction.

Par défaut, Ingres va annuler toute transaction qui n'est pas validée à la fin d'une requête. Utilisez cette fonction ou ingres_autocommit() pour vous assurer que vos requêtes sont bien enregistrées dans la base.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ingres_connect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_connectOuvre une connexion sur un serveur Ingres

Description

resource ingres_connect ([ string $database [, string $username [, string $password [, array $options ]]]] )

ingres_connect() ouvre une connexion avec la base de données database.

La connexion est fermée lorsque le script se termine ou en cas d'appel à ingres_close().

Liste de paramètres

Si certains paramètres sont manquants, ingres_connect() utilise les valeurs de ingres.default_database, ingres.default_user et ingres.default_password indiquées dans php.ini.

database

Le nom de la base de données.

Doit suivre la syntaxe : [node_id::]dbname[/svr_class].

username

Le nom d'utilisateur Ingres

password

Le mot de passe associé avec l'utilisateur username

options

Options d'ingres_connect()

Nom de l'option Option type Description Exemple
date_century_boundary entier Le seuil pour lequel une année sur 2 chiffres est déterminée pour être dans le siècle courant ou dans le siècle prochain. Identique à II_DATE_CENTURY_BOUNDARY. 50
group chaîne de caractères Spécifie d'identifiant de groupe de l'utilisateur. Équivaut à l'option "-G" payroll
role chaîne de caractères L'identifiant du rôle de l'application. Si un mot de passe de rôle est nécessaire, la valeur du paramètre devra être spécifiée sous la forme "rôle/mot de passe"
effective_user chaîne de caractères Le compte utilisateur Ingres à personnifier. Équivalent à l'option "-u" un_autre_utilisateur
dbms_password chaîne de caractères Le mot de passe interne de la base de données pour l'utilisateur se connectant à Ingres s3cr3t
table_structure chaîne de caractères

La structure par défaut pour les nouvelles tables. Les valeurs valides pour table_structure sont :

  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_HEAP
  • INGRES_STRUCTURE_ISAM
  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_CHEAP

INGRES_STRUCTURE_BTREE
index_structure chaîne de caractères

La structure par défaut pour les indexes secondaires. Les valeurs valides pour index_structure sont :

  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_ISAM

INGRES_STRUCTURE_HASH
login_local booléen Détermine la façon dont sont traités l'identifiant de l'utilisateur et le mot de passe lorsqu'un VNODE est inclus dans la chaîne cible de la base de données. Si définit à TRUE, l'identifiant de l'utilisateur et le mot de passe sont utilisés pour accéder localement au VNODE et les informations d'identification du VNODE sont utilisées pour établir la connexion DBMS. Si définit à FALSE, l'identifiant du processus utilisateur est utilisé pour accéder au VNODE et l'identifiant de l'utilisateur pour la connexion et le mot de passe sont utilisés à la place des informations d'identification VNODE pour établir la connexion DBMS. Ce paramètre est ignoré si aucun VNODE n'est inclus dans la chaîne cible de la base de données. Par défaut, ce paramètre vaut FALSE. TRUE
timezone chaîne de caractères Contrôle le fuseau horaire de la session. Si aucun n'est défini, ce paramètre vaudra la valeur définie par la constante II_TIMEZONE_NAME. Si la constante II_TIMEZONE_NAME n'est pas définie, la valeur NA-PACIFIC (GMT-8) sera utilisée.
date_format entier

Définit les formats d'entrée et de sortie autorisées pour les dates Ingres. Par défaut, la valeur est définie par la constante II_DATE_FORMAT. Si la constante II_DATE_FORMAT n'est pas définie, le format par défaut de la date sera US, e.g. mm/dd/yy. Les valeurs valides pour date_format sont :

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

INGRES_DATE_MULTINATIONAL4
decimal_separator chaîne de caractères Le caractère utilisé comme séparateur des décimales ","
money_lort entier

Si le signe pour la monnaie doit se trouver avant ou après la valeur. Les valeurs valides pour money_lort sont :

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

INGRES_MONEY_TRAILING
money_sign chaîne de caractères Le symbole à utiliser avec le type de données MONEY
money_precision entier La précision pour le type de données MONEY 3
float4_precision entier La précision pour le type de données FLOAT4 10
float8_precision entier La précision pour le type de données FLOAT8 10
blob_segment_length entier La quantité de données à récupérer en une fois lorsque l'on récupère des données de type BLOB/CLOB. Par défaut, ce paramètre vaut 4096 octets. 8192

Valeurs de retour

Retourne une ressource Ingres en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ingres_connect()

<?php
$link 
ingres_connect("mydb""user""pass")
    or die(
"Connexion impossible");
echo 
"Connexion réussie";
ingres_close($link);
?>

Voir aussi



ingres_cursor

(PECL ingres >= 1.1.0)

ingres_cursorRécupère le nom du curseur pour une ressource de résultats donnée

Description

string ingres_cursor ( resource $result )

ingres_cursor() retourne une chaîne de caractères contenant le nom du curseur actif. Si aucun curseur n'est actif, alors NULL est retourné.

Liste de paramètres

result

La ressource de connexion Ingres

Valeurs de retour

Retourne une chaîne de caractères contenant le nom du curseur actif. Si aucun curseur n'est actif, NULL est retourné.

Exemples

Exemple #1 Exemple avec ingres_cursor()

<?php
$link 
ingres_connect($database$user$password);

$result ingres_prepare($link"select * from table");
 
$cursor_name ingres_cursor($result);

echo 
$cursor_name;

?>

Voir aussi



ingres_errno

(PECL ingres >= 1.1.0)

ingres_errnoRécupère le dernier numéro d'erreur d'Ingres généré

Description

int ingres_errno ([ resource $link ] )

ingres_errno() retourne le dernier numéro d'erreur. Si aucune erreur n'a été rapportée, 0 est retourné.

Si une ressource link est passée à la fonction ingres_errno(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_errno() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_errno(), devrait toujours être appelée après avoir exécuté n'importe quelle requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_errno() supprimerait ou changerait le message d'erreur provenant du dernier appel de fonction Ingres.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne un entier contenant le numéro de la dernière erreur. Si aucune erreur n'a été rapportée, 0 est retourné.

Exemples

Exemple #1 Exemple avec ingres_errno()

<?php
$link 
ingres_connect($database$user$password);

ingres_query("select * from table"$link);

$error_code ingres_errno($link);

if ( 
$error_code != ) {
   echo 
"Une erreur est survenue - " $error_code;
}
?>

Voir aussi



ingres_error

(PECL ingres >= 1.1.0)

ingres_errorLit le dernier message d'erreur Ingres

Description

string ingres_error ([ resource $link ] )

ingres_error() retourne une chaîne de caractères contenant la dernière erreur ou NULL si aucune erreur ne s'est produite.

Si une ressource link est passée à la fonction ingres_error(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_error() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_error(), devrait toujours être appelée après avoir exécuté toute sorte de requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_error() supprimera ou changera le message d'erreur provenant du dernier appel de fonction Ingres.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne une chaîne contenant la dernière erreur, ou NULL si aucune n'est survenue.

Exemples

Exemple #1 Exemple avec ingres_error()

<?php
ingres_connect
($database$user$password);

$link ingres_connect($database$user$password);

$result ingres_query($link"select * from table");

$error_text ingres_error();

if (!
is_null($error_text)) {
   echo 
"Une erreur est survenue : " $error_text;
}
?>

Voir aussi



ingres_errsqlstate

(PECL ingres >= 1.1.0)

ingres_errsqlstateRécupère le dernier code SQLSTATE généré

Description

string ingres_errsqlstate ([ resource $link ] )

ingres_errsqlstate() retourne une chaîne de caractères contenant le dernier SQLSTATE ou NULL si aucune erreur ne s'est produite.

Si une ressource link est passée à la fonction ingres_errsqlstate(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_errsqlstate() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_errsqlstate(), devrait toujours être appelée après avoir exécuté toute sorte de requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_errsqlstate() supprimera ou changera le message d'erreur provenant du dernier appel de fonction Ingres.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne une chaîne contenant la dernière SQLSTATE, ou NULL si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec ingres_errsqlstate()

<?php
ingres_connect
($database$user$password);

$result ingres_query($link"select * from table");
 
$error_sqlstate ingres_errsqlstate($link);

if (!
is_null($error_sqlstate)) {
   echo 
"Une erreur est survenue - " $error_sqlstate;
}
?>

Voir aussi



ingres_escape_string

(PECL ingres >= 2.1.0)

ingres_escape_stringProtège les caractères spéciaux de Ingres

Description

string ingres_escape_string ( resource $link , string $source_string )

ingres_escape_string() protège les caractères spéciaux de Ingres dans une chaîne, avant de l'envoyer au serveur.

Liste de paramètres

link

La ressource de connexion au serveur

source_string

La chaîne à protéger

Valeurs de retour

Retourne la chaîne avec les caractères protégés

Exemples

Exemple #1 Protège les caractères spéciaux avant de les utiliser avec Ingres

<?php
$link 
ingres_connect($database$user$password);

$last_name "O'Connor";

$sql sprintf("select * from user_profile where up_last = '%s'"ingres_escape_string$link$last_name));

$result ingres_query($link$sql);

while (
$user ingres_fetch_object($result))
{
  echo 
$user->up_first '<BR/>';
}

ingres_commit($link);

ingres_close($link);

?>

Voir aussi



ingres_execute

(PECL ingres >= 1.1.0)

ingres_executeExécute une commande préparée Ingres

Description

bool ingres_execute ( resource $result [, array $params [, string $types ]] )

ingres_execute() exécute une requête préparée avec ingres_prepare().

Note: Configurations associées

Voyez aussi les directives ingres.describe, ingres.scrollable et ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

result

La ressource de résultat Ingres

params

Un tableau de paramètres à utiliser avec la requête

types

Une chaîne contenant une séquence de types pour formater les valeurs des paramètres. Voyez les types dans la documentation de la fonction ingres_query() pour connaître la liste des codes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ingres_fetch_array

( PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_arrayRécupère une ligne de résultat Ingres dans un tableau

Description

array ingres_fetch_array ( resource $result [, int $result_type ] )

ingres_fetch_array() est une version améliorée de ingres_fetch_row(). En plus de stocker les données dans un tableau à indices numériques, elle peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme indices.

Si plusieurs colonnes ont le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne. Par exemple :

<?php

$result 
ingres_query($link"select ap_place as city, ap_ccode as country from airport where ap_iatacode = 'VLL'"); 
$result ingres_fetch_array($result);
$foo $result["city"];
$bar $result["country"];

?>

Du point de vue de la rapidité, cette fonction est identique à ingres_fetch_object(), et presque aussi rapide que ingres_fetch_row() (la différence est insignifiante).

Par défaut, les index numériques des tableaux créés avec la fonction ingres_fetch_array() commencent à 1, qui est le premier champ du résultat. Ce n'est pas la pratique avec les autres bases de données, qui commencent la numérotation à 0. Pour changer cette valeur, voyez ingres.array_index_start. À utiliser avec ingres_fetch_array().

Note: Directives de configurations associées

Voyez aussi ingres.array_index_start, ingres.fetch_buffer_size et les directives ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

result

La ressource de résultats

result_type

result_type peut valoir INGRES_NUM pour un tableau à index numériques, INGRES_ASSOC pour un tableau associatif, ou INGRES_BOTH (défaut) pour un tableau mixte (accessible selon les deux méthodes).

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec ingres_fetch_array()

<?php
$link 
ingres_connect($database$user$password);
 
$result ingres_query($link,"select * from table");

while (
$row ingres_fetch_array($result)) {
    echo 
$row["user_id"];  // utilisation du tableau associatif
    
echo $row["fullname"];
    echo 
$row[1];          // utilisation du tableau à indices numériques
    
echo $row[2];
}
?>

Voir aussi



ingres_fetch_assoc

(PECL ingres >= 2.2.2)

ingres_fetch_assocRécupère une ligne de résultat dans un tableau associatif

Description

array ingres_fetch_assoc ( resource $result )

Cette fonction stoque les données récupérées depuis une requête exécutée en utilisant la fonction ingres_query() dans un tableau associatif, en utilisant les noms des champs comme clés.

D'un point de vue rapidité, cette fonction est identique à la fonction ingres_fetch_object(), et presque aussi rapide que la fonction ingres_fetch_row() (la différence est insignifiante).

Par défaut, les tableaux créés avec la fonction ingres_fetch_assoc() commence à la position 1 et non 0 comme cela est souvent le cas avec les extensions relatives aux bases de données. La position de départ peut être mise à 0 en utilisant le paramètre de configuration ingres.array_index_start.

Note: Configurations associées

Voir aussi les directives ingres.array_index_start, ingres.fetch_buffer_size et ingres.utf8 dans la configuration lors de l'exécution.

Liste de paramètres

result

L'identifiant de résultat

Valeurs de retour

Retourne un tableau associatif correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de lignes de disponible.

Exemples

Exemple #1 Récupère une ligne dans un tableau associatif

<?php
$link 
ingres_connect($database$user$password);

$result ingres_query($link,"select * from table");
while (
$row ingres_fetch_assoc($result)) {
    echo 
$row["user_id"];  // utilisant du tableau associatif
    
echo $row["fullname"];
}
?>

Voir aussi



ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_objectRécupère une ligne de résultat dans un objet

Description

object ingres_fetch_object ( resource $result [, int $result_type ] )

ingres_fetch_object() est similaire à ingres_fetch_array(), avec une différence : la valeur de retour est un objet et non un tableau. Indirectement, cela signifie qu'il n'est possible d'accéder aux données qu'avec les noms des champs, et pas avec leur numéro (les nombres ne sont pas des noms valides de propriété).

Du point de vue de la rapidité, cette fonction est identique à ingres_fetch_array(), et presque aussi rapide que ingres_fetch_row() (la différence est insignifiante).

Note: Configurations associées

Voyez aussi les directives ingres.fetch_buffer_size et ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

link

La ressource de connexion.

result_type

Le paramètre optionnel result_type est une constante qui peut prendre les valeurs INGRES_ASSOC, INGRES_NUM, et INGRES_BOTH.

Valeurs de retour

Retourne un objet qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec ingres_fetch_object()

<?php
$link 
ingres_connect($database$user$password);
$result ingres_query($link"select * from table");
while (
$row ingres_fetch_object($result)) {
    echo 
$row->user_id;
    echo 
$row->fullname;
}
?>

Voir aussi



ingres_fetch_proc_return

(PECL ingres >= 1.4.0)

ingres_fetch_proc_returnLit le résultat d'un appel à une procédure stockée

Description

int ingres_fetch_proc_return ( resource $result )

ingres_fetch_proc_return() lit le résultat retourné par une procédure stockée Ingres.

Note:

Si cette fonction est utilisée avec une procédure stockée qui produit des lignes, elle doit être appelée après que toute les lignes de la procédure ait été lues avec ingres_fetch_array(), ingres_fetch_object() ou ingres_fetch_row(). Cette fonction va éliminer toutes les lignes qui n'ont pas encore été lues.

Liste de paramètres

result

La ressource de résultat Ingres

Valeurs de retour

Retourne un entier s'il y a une valeur à retourner, et sinon, retourne NULL.

Exemples

Exemple #1 Lit la valeur retournée par une procédure stockée Ingres

<?php

$link 
ingres_connect($database);

if ( 
ingres_errno() != ) {
    
$error_text ingres_error();
    die(
$error_text);
}

$result ingres_query($link"execute procedure php_proc (value = 1000)");

if ( 
ingres_errno() != ) {
    
$error_text ingres_error();
    die(
$error_text);
}

echo 
"return value - " ingres_fetch_proc_return($result) . "\n";

ingres_close($link);

?>

Voir aussi



ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_rowRécupère une ligne de résultat dans un tableau énuméré

Description

array ingres_fetch_row ( resource $result )

ingres_fetch_row() renvoie un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne à récupérer. La ligne est stockée dans un tableau à indices numériques, le premier champ étant à l'indice 1.

Les appels successifs à ingres_fetch_row() retournent les lignes suivantes du résultat, ou FALSE s'il n'y a plus de lignes.

Par défaut, les index numériques commencent à 1, qui est le premier champ du résultat. Ce n'est pas la pratique avec les autres bases de données, qui commencent la numérotation à 0. Pour changer cette valeur, voyez ingres.array_index_start. À utiliser avec ingres_fetch_array().

Note: Directives de configurations associées

Voyez aussi ingres.array_index_start, ingres.fetch_buffer_size et les directives ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

result

La ressource de connexion Ingres

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec ingres_fetch_row()

<?php
ingres_connect
($database$user$password);

$result ingres_query($link"select * from table");
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

Voir aussi



ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_lengthRetourne la taille d'un champ

Description

int ingres_field_length ( resource $result , int $index )

ingres_field_length() retourne la taille d'un champ. Il s'agit du nombre d'octets utilisés par le serveur pour stocker ce champ. Pour plus d'informations, voir le OpenAPI User Guide, Appendice "Data Types".

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne la taille du champ.

Voir aussi



ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_nameRetourne le nom d'un champ dans le résultat d'une requête Ingres

Description

string ingres_field_name ( resource $result , int $index )

ingres_field_name() retourne le nom d'un champ dans le résultat d'une requête.

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne le nom du champ dans le résultat d'une requête, ou FALSE si une erreur survient.

Voir aussi



ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_nullableTeste si un champ est annulable

Description

bool ingres_field_nullable ( resource $result , int $index )

ingres_field_nullable() test si un champ est annulable.

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

ingres_field_nullable() retourne TRUE si le champ peut recevoir la valeur NULL et FALSE sinon.

Voir aussi



ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_precisionRetourne la précision d'un champ Ingres

Description

int ingres_field_precision ( resource $result , int $index )

ingres_field_precision() retourne la précision d'un champ. Cette valeur est utilisée uniquement pour les types de données SQL decimal, float et money. Pour plus d'informations, voir le OpenAPI User Guide, Appendice "Data Types".

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de connexion Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne la précision du champ, sous la forme d'un entier.

Voir aussi



ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_scaleRetourne l'échelle d'un champ

Description

int ingres_field_scale ( resource $result , int $index )

ingres_field_scale() retourne l'échelle d'un champ. Cette valeur n'est utilisée que pour le type de données SQL décimal. Pour plus d'informations, voir le OpenAPI User Guide, Appendice "Data Types".

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne l'échelle d'un champ, sous la forme d'un entier.

Voir aussi



ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_typeRetourne le type d'un champ dans le résultat d'une requête Ingres

Description

string ingres_field_type ( resource $result , int $index )

Retourne le type d'un champ dans le résultat d'une requête.

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

resultat

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

ingres_field_type() retourne le type d'un champ dans le résultat d'une requête ou FALSE si une erreur survient. Exemples de types renvoyés par cette fonction : IIAPI_BYTE_TYPE, IIAPI_CHA_TYPE, IIAPI_DTE_TYPE, IIAPI_FLT_TYPE, IIAPI_INT_TYPE, IIAPI_VCH_TYPE. Certains de ces types correspondent à plus d'un type SQL, selon la taille du champ (voir ingres_field_length()). Par exemple IIAPI_FLT_TYPE peut être un float4 ou un float8. Pour plus d'informations, voir le OpenAPI User Guide, Appendice C.

Voir aussi



ingres_free_result

(PECL ingres >= 2.0.0)

ingres_free_resultLibère les ressources d'un résultat Ingres

Description

bool ingres_free_result ( resource $result )

ingres_free_result() libère les ressources du résultat Ingres result.

Liste de paramètres

result

La ressource de résultat Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Libération d'un résultat Ingres

<?php
$link 
ingres_connect($database$user$password);

$result ingres_query($link"select * from table");

while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
ingres_free_result($result);

ingres_close($link)

?>

Voir aussi



ingres_next_error

(PECL ingres >= 2.0.0)

ingres_next_errorLit l'erreur Ingres suivante

Description

bool ingres_next_error ([ resource $link ] )

ingres_next_error() lit la prochaine erreur produite par la dernière requête. Chaque appel à ingres_next_error() peut être suivi d'un appel à ingres_errno(), ingres_error() ou ingres_errsqlstate() pour obtenir respectivement le numéro, le message ou le SQL STATE. Tant que ingres_next_error() vaut TRUE, il y a d'autres erreur à lire.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

ingres_next_error() retourne TRUE s'il y a d'autres erreurs à lire, et FALSE s'il n'y a plus d'autres erreurs.

Voir aussi



ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_fieldsRetourne le nombre de champs renvoyés par la dernière requête Ingres

Description

int ingres_num_fields ( resource $result )

ingres_num_fields() retourne le nombre de champs du résultat renvoyé par le serveur Ingres après un appel à ingres_query().

Liste de paramètres

result

La ressource de résultat Ingres

Valeurs de retour

Retourne le nombre de champs.

Voir aussi



ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_rowsRetourne le nombre de lignes affectées ou renvoyées par une requête Ingres

Description

int ingres_num_rows ( resource $result )

Cette fonction est conçue principalement pour obtenir le nombre de lignes modifiées dans la base de données par la requête précédente. Elle peut être utilisée pour lire le nombre de lignes à lire après une requête SELECT.

Note:

Si les curseurs scrollables sont désactivés, et que cette fonction est appelée avant ingres_fetch_array(), ingres_fetch_object(), ou ingres_fetch_row(), le serveur va effacer les données de résultats, et le script sera incapable de les obtenir.

Il faut dans ce cas récupérer les données du résultat en utilisant une de ces 3 fonctions dans une boucle jusqu'à ce qu'elle renvoie FALSE, ce qui indique qu'il n'y a plus de résultats à récupérer.

Liste de paramètres

link

La ressource de résultats Ingres

Valeurs de retour

Pour les requêtes DELETE, INSERT, UPDATE ingres_num_rows() retourne le nombre de lignes affectées par la requête. Pour les autres requêtes, ingres_num_rows() retourne le nombre de lignes du résultat de la requête.

Voir aussi



ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_pconnectOuvre une connexion persistante à un serveur Ingres

Description

resource ingres_pconnect ([ string $database [, string $username [, string $password [, array $options ]]]] )

ingres_pconnect() ouvre une connexion persistante à la base de données Ingres.

Il n'y a que 2 différences entre ingres_pconnect() et ingres_connect() : tout d'abord, à la connexion, la fonction cherche un lien persistant déjà ouvert avec les mêmes paramètres. Si un tel lien est trouvé, la ressource de ce lien est retournée au lieu d'établir une nouvelle connexion. Ensuite, la connexion vers le serveur Ingres n'est pas fermée lorsque le script se termine. En fait, le lien reste ouvert pour pouvoir être réutilisé (ingres_close() ne ferme pas les liens établis avec ingres_pconnect()). C'est pourquoi ce type de lien est dit 'persistant'.

Liste de paramètres

database

Le nom de la base de données.

Doit suivre la syntaxe suivante : [node_id::]dbname[/svr_class].

username

Le nom d'utilisateur Ingres.

password

Le mot de passe associé à l'utilisateur username.

options

Voyez la fonction ingres_connect() pour connaître la liste des options qui peuvent être passées.

Valeurs de retour

Retourne une ressource de connexion Ingres en cas de succès, ou FALSE si une erreur survient.

Voir aussi



ingres_prepare

(PECL ingres >= 1.1.0)

ingres_preparePrépare une requête pour l'exécution

Description

mixed ingres_prepare ( resource $link , string $query )

ingres_prepare() prépare une requête pour l'exécution avec ingres_execute().

La requête fait alors partie de la transaction courante. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer la transaction, vous pouvez appeler soit ingres_commit() pour valider les modifications, ou bien ingres_rollback() pour les annuler. Lorsque le script s'achève, toutes les transactions qui n'auront pas été validées, seront annulées, en appelant ingres_rollback(). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une nouvelle transaction pour forcer la validation immédiate de toutes les requêtes.

Note: Configurations associées

Voyez aussi les directives ingres.describe, ingres.scrollable et ingres.utf8 dans les configurations d'exécution.

Liste de paramètres

link

La ressource de connexion Ingres

query

Une requête SQL valide (voyez le SQL reference guide de la documentation Ingres). Voyez la documentation du paramètre query de la fonction ingres_query() pour une liste de commandes SQL qui ne peuvent pas être exécutées avec ingres_prepare()

Valeurs de retour

ingres_prepare() retourne une ressource de résultat qui peut être utilisée avec ingres_execute() pour exécuter la requête. Pour voir si une erreur est survenue, utilisez ingres_errno(), ingres_error() ou ingres_errsqlstate().

Voir aussi



ingres_query

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_queryEnvoie une requête SQL à Ingres

Description

mixed ingres_query ( resource $link , string $query [, array $params [, string $types ]] )

ingres_query() envoie la requête SQL query au serveur Ingres.

La requête fait alors partie de la transaction courante. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer la transaction, vous pouvez appeler soit ingres_commit() pour valider les modifications, ou bien ingres_rollback() pour les annuler. Lorsque le script s'achève, toutes les transactions qui n'auront pas été validées, seront annulées, en appelant ingres_rollback(). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une nouvelle transaction pour forcer la validation immédiate de toutes les requêtes.

Note: Configurations reliées

Voyez aussi les directives ingres.describe, ingres.scrollable ingres.utf8 dans les configurations d'exécutions

Liste de paramètres

link

La ressource de connexion à Ingres

query

Une requête SQL valide (voyez le SQL reference guide de la documentation Ingres).

Les données contenues dans la requête doivent être proprement échappées.

Les requêtes suivantes ne peuvent pas être envoyées à l'aide de cette fonction :

params

Un tableau de valeurs de paramètres à utiliser avec la requête

types

Une chaîne contenant une séquence de types pour les paramètres fournis à la requête. Lorsque ingres.describe est activé, ce paramètre peut être ignoré car le pilote va lire automatiquement la valeur de ce paramètre auprès du serveur.

Code de type Type Ingres
a BOOLEAN
b BYTE
B LONG BYTE/BLOB
c CHAR
d DATE/ANSIDATE/TIMESTAMP/TIME
f FLOAT
i INTEGER
L LONG TEXT
m MONEY
M LONG NVARCHAR
n NCHAR
N NVARCHAR
t TEXT
v VARCHAR
V LONG VARCHAR

Valeurs de retour

ingres_query() retourne une ressource de résultat en cas de succès, et sinon FALSE. Pour savoir si une erreur est survenue, utilisez ingres_errno(), ingres_error() ou ingres_errsqlstate().

Exemples

Exemple #1 Envoi d'une requête à Ingres

<?php
$link 
ingres_connect("demodb");

$result ingres_query($link"select * from user_profile");
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

Exemple #2 Passage de paramètres de requête à ingres_query()

<?php
$link 
ingres_connect("demodb");

$params[] = "Emma";
$query "select * from user_profile where up_first = ?";
$result ingres_query($link$query$params);
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

Exemple #3 Insertion d'un BLOB dans les paramètres de requête

<?php
$link 
ingres_connect("demodb");

//Ouverture d'une photo
$fh fopen("photo.jpg","r");
$blob_data stream_get_contents($fh);
fclose($fh);

//Préparation des paramètres
$params[] = $blob_data;
$params[] = 1201;

//Définition des paramètres
$param_types "Bi";

$query "update user_profile set up_image = ? where up_id = ?";
$result ingres_query($link$query $params$param_types);

if (
ingres_errno())
{
    echo 
ingres_errno() . " : " ingres_error() . "\n";
}

ingres_commit($link);

ingres_close($link);
?>

Voir aussi



ingres_result_seek

(PECL ingres >= 2.1.0)

ingres_result_seekChange la position de lecture des données

Description

bool ingres_result_seek ( resource $result , int $position )

ingres_result_seek() positionne le curseur associé au résultat, avant de lire la ligne. Si ingres.array_index_start vaut 0, alors la première ligne sera au numéro 0, et sinon, elle sera à 1. ingres_result_seek() peut uniquement être utilisé avec des requêtes qui utilisent des curseurs scrollables. Elle ne peut pas être utilisée avec la fonction ingres_unbuffered_query().

Note: Configurations associées

Voyez aussi les directives ingres.scrollable et ingres.array_index_start dans les configurations d'exécution.

Liste de paramètres

result

Une ressource de résultat Ingres

position

La ligne à laquelle positionner le curseur. Si ingres.array_index_start vaut 0, ce sera la première ligne, et sinon, ce sera 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Positionnement du curseur Ingres sur la 3ème ligne

<?php

$result
=ingres_query($link"select * from airport where ap_ccode = 'ES' order by ap_place asc");

/* Va en position 3 */
if (!ingres_result_seek($result3))
{
    echo 
ingres_errno() . " - " ingres_error "\n";
    die();
}
else
{
    
$airport ingres_fetch_object ($result);
    {
        echo 
$airport->ap_iatacode " - " .  $airport->ap_name "\n";
    }
}

ingres_commit($link);

?>

Voir aussi



ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_rollbackAnnule une transaction Ingres

Description

bool ingres_rollback ( resource $link )

ingres_rollback() annule (roll back) la transaction ouverte sur la connexion Ingres link, ce qui annule les modifications faites sur la base de données au cours de cette transaction.

Ceci ferme la transaction. Une nouvelle transaction peut être ouverte en envoyant une requête à l'aide de ingres_query().

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ingres_set_environment

(PECL ingres >= 1.2.0)

ingres_set_environmentConfigure les directives contrôlant les résultats Ingres

Description

bool ingres_set_environment ( resource $link , array $options )

ingres_set_environment() assigne des valeurs aux options qui affectent l'affichage des valeurs en provenance d'Ingres, telles que les fuseaux horaires, le format de date, le séparateur décimal ou la précision des nombres décimaux.

Liste de paramètres

link

La ressource de connexion Ingres

options

Un tableau énuméré de paires clé / valeur. La table suivante liste toutes les options et leur type associé.

Nom de l'option Type de l'option Description Exemple
date_century_boundary entier Le seuil qui fait qu'une année exprimée sur deux chiffres fait partie de ce siècle ou du précédent. C'est l'équivalent de II_DATE_CENTURY_BOUNDARY 50
timezone chaîne de caractères Contrôle le fuseau horaire de la session. S'il n'est pas configuré, il prendra par défaut la valeur définie dans II_TIMEZONE_NAME. Si II_TIMEZONE_NAME n'est pas définie, ce sera NA-PACIFIC (GMT-8 avec horaire d'été), qui sera utilisé. UNITED-KINGDOM
date_format entier

Configure les formats acceptables de dates. Par défaut, c'est la valeur définie dans II_DATE_FORMAT. Si II_DATE_FORMAT n'est pas configuré, le format par défaut est celui de la date US, par exemple mm/dd/yy. Les valeurs valides pour les formats sont :

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

INGRES_DATE_ISO4
decimal_separator chaîne de caractères Le séparateur décimal (en français, la virgule) ","
money_lort entier

Le symbole monétaire, suffixe ou préfixe. Les valeurs valides sont :

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

INGRES_MONEY_LEADING
money_sign chaîne de caractères Le symbole monétaire à utiliser avec les valeurs de type MONEY
money_precision entier La précision à utiliser avec les valeurs de type MONEY 2
float4_precision entier La précision à utiliser avec les valeurs de type FLOAT4 10
float8_precision entier La précision à utiliser avec les valeurs de type FLOAT8 10
blob_segment_length entier La quantité de données à lire à chaque lecture d'une valeur de type BLOB ou CLOB. Par défaut, c'est 4096 octets 8192

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Configuration du format de date à ISO4

<?php
$options 
= array( "date_format" => INGRES_DATE_ISO4 );

if (
ingres_set_environment($link$options))
{
    
$result=ingres_query($link,"select date('now') as date");

    while ( 
$object ingres_fetch_object ($result) ) {
        echo 
$object->date."\n";
    }
}
?>

Exemple #2 Configuration du fuseau horaire de Hong-Kong

<?php

$options 
= array( "timezone" => "HONG-KONG");

if (
ingres_set_environment($link$options))
{
    
$result=ingres_query($link,"select date('now') as date");

    while ( 
$object ingres_fetch_object ($result) ) {
        echo 
$object->date."\n";
    }
}
?>

Voir aussi



ingres_unbuffered_query

(No version information available, might only be in SVN)

ingres_unbuffered_queryEnvoie une requête sans buffer à Ingres

Description

mixed ingres_unbuffered_query ( resource $link , string $query [, array $params [, string $types ]] )

ingres_unbuffered_query() envoie la requête SQL query au serveur Ingres.

La requête fait alors partie de la transaction courante. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer la transaction, vous pouvez appeler soit ingres_commit() pour valider les modifications, ou bien ingres_rollback() pour les annuler. Lorsque le script s'achève, toutes les transactions qui n'auront pas été validées, seront annulées, en appelant ingres_rollback(). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une nouvelle transaction pour forcer la validation immédiate de toutes les requêtes. Ingres permet une seule requête sans buffer active à un moment donné. L'extension va fermer toute requête active avant d'exécuter une nouvelle requête SQL. De plus, vous ne pouvez pas utiliser ingres_result_seek() pour vous positionner à la ligne que vous souhaitez dans le résultat.

Note: Configurations associées

Voyez aussi les directives ingres.describe et ingres.utf8 dans les directives d'exécution.

Liste de paramètres

link

La ressource de connexion à Ingres

query

Une requête SQL valide (voyez le SQL reference guide) pour le serveur Ingres. Voyez la documentation du paramètre query la fonction ingres-query() pour une liste de requêtes SQL qui ne peuvent pas être exécutées via la fonction ingres_unbuffered_query().

Les données contenues dans la requête doivent être proprement échappées.

params

Un tableau de valeurs de paramètre à utiliser avec la requête

types

Une chaîne contenant une séquence de types pour les paramètres fournis à la requête. Voyez la documentation de la fonction ingres-query() pour obtenir la liste des types.

Valeurs de retour

ingres_unbuffered_query() retourne une ressource de résultats lorsqu'il y a des lignes à lire, et sinon, elle retourne FALSE s'il n'y a pas de lignes à lire, comme pour les requêtes INSERT, UPDATE et DELETE. Pour savoir s'il y a eu une erreur, utilisez l'une des fonctions ingres_errno(), ingres_error() ou ingres_errsqlstate().

Exemples

Exemple #1 Exécution d'une requête SQL sans buffer sur Ingres

<?php
$link 
ingres_connect("demodb");

$result ingres_unbuffered_query($link"select * from user_profile");
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

Exemple #2 Passage de paramètres de requêtes à ingres_unbuffered_query()

<?php
$link 
ingres_connect("demodb");

$params[] = "Emma";
$query "select * from user_profile where up_first = ?";
$result ingres_unbuffered_query($link$query$params);
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

Exemple #3 Insertion d'un BLOB dans les paramètres de requêtes SQL Ingres

<?php
$link 
ingres_connect("demodb");

//Ouverture d'une photo
$fh fopen("photo.jpg","r");
$blob_data stream_get_contents($fh);
fclose($fh);

//Préparation des parametres
$params[] = $blob_data;
$params[] = 1201;

//Définition des types de paramètres
$param_types "Bi";

$query "update user_profile set up_image = ? where up_id = ?";
$result ingres_unbuffered_query($link$query $params$param_types);

if (
ingres_errno())
{
    echo 
ingres_errno() . " : " ingres_error() . "\n";
}
?>

Voir aussi


Sommaire




MaxDB


Introduction

L'extension MaxDB de PHP vous permet d'accéder aux fonctionnalités fournies par MaxDB 7.5.0 et suivant. Plus d'informations sur le serveur de base de données MaxDB peuvent être trouvées sur » http://www.sdn.sap.com/irj/sdn/maxdb.

L'extension MaxDB est compatible avec l'extension mysqli de MySQL. Il y a simplement des différences mineurs dans le comportement de certaines fonctions, liées au comportement des bibliothèques sous- jacentes.

Les différences notables par rapport à MySQLi sont :

La documentation pour MaxDB peut être trouvée sur » http://maxdb.sap.com/documentation/.



Installation/Configuration

Sommaire


Pré-requis

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support MaxDB. De plus, vous devez avoir de disponible la bibliothèque MaxDB SQLDBC pour accéder au serveur MaxDB.

La documentation sur MaxDB SQLDBC peut être trouvée sur » http://maxdb.sap.com/documentation/.

Téléchargez le paquet MaxDB SQLDBC sur » http://www.sdn.sap.com/irj/sdn/maxdb-downloads.



Installation

En utilisant l'option de configuration --with-maxdb[=DIR] , vous permettez à PHP d'accéder à une base de données MaxDB. [DIR] pointe vers le dossier contenant le paquet d'installation MaxDB SQLDBC.

Les utilisateurs de Windows doivent activer la bibliothèque php_maxdb.dll dans le php.ini.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration maxdb
Nom Défaut Modifiable Historique
maxdb.default_host NULL PHP_INI_ALL  
maxdb.default_db NULL PHP_INI_ALL  
maxdb.default_user NULL PHP_INI_ALL  
maxdb.default_pw NULL PHP_INI_ALL  
maxdb.long_readlen "200" PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

maxdb.default_host string

L'hôte par défaut à utiliser lors de la connexion au serveur de base de données si aucun hôte n'est spécifié.

maxdb.default_db string

La base de données par défaut à utiliser lors de la connexion si aucun autre base de données n'est spécifié.

maxdb.default_user string

Le nom d'utilisateur par défaut à utiliser lors de la connexion au serveur de base de données si aucun autre nom n'est spécifié.

maxdb.default_pw string

Le mot de passe par défaut à utiliser lorsqu'un utilisateur se connecte à un serveur sans spécifier de mot de passe.

maxdb.long_readlen integer

La longueur maximale d'octets par défaut qui sont transférés au client si un gros volume de données est récupéré depuis un serveur de base de données MaxDB.



Types de ressources

Cette extension définit des ressources.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes à utiliser avec maxdb_options() sont définies. Pour plus de descriptions sur ces constantes, lisez » http://maxdb.sap.com/documentation/.

Constantes clientes PHP MaxDB
Constante Description
MAXDB_COMPNAME Le nom du composant utilisé pour initialiser l'environnement d'exécution SQLDBC.
MAXDB_APPLICATION L'application à connecter à la base de données.
MAXDB_APPVERSION La version de l'application.
MAXDB_SQLMODE Le mode SQL.
MAXDB_UNICODE TRUE, si la connexion est un client unicode (UCS2) ou FALSE sinon.
MAXDB_TIMEOUT Le délai maximal d'inactivité après lequel la connexion à la base de données est close par le système.
MAXDB_ISOLATIONLEVEL Spécifie si oui ou non et comment les verrous partagés ainsi que les verrous exclusifs sont implicitement demandés ou libérés.
MAXDB_PACKETCOUNT Le nombre de paquets de requêtes différents utilisé pour la connexion.
MAXDB_STATEMENTCACHESIZE Le nombre de requêtes préparées à être mises en cache pour la connexion pour être réutilisées.
MAXDB_CURSORPREFIX Le préfixe à utiliser pour la table de résultats qui sont automatiquement nommées.

La fonction maxdb_fetch_array() utilise une constante pour les différents types de tableaux de résultats. Les constantes suivantes sont définies :

MaxDB fetch constants
Constante Description
MAXDB_ASSOC Les colonnes sont retournées dans un tableau ayant comme index les noms des champs.
MAXDB_ASSOC_UPPER Les colonnes sont retournées dans un tableau ayant comme index les noms des champs en majuscule.
MAXDB_ASSOC_LOWER Les colonnes sont retournées dans un tableau ayant comme index les noms des champs en minuscule.
MAXDB_BOTH Les colonnes sont retournées dans un tableau ayant des index numériques ainsi que les noms des champs en tant qu'index.
MAXDB_NUM Les colonnes sont retournées dans un tableau ayant un index numérique correspondant à un champs. Cet index commence à 0, le premier champs du jeu de résultats.



Exemples

Sommaire


Tous les exemples dans la documentation PHP de MaxDB utilise la base de données de démonstration HETOLDB depuis MaxDB. Plus d'informations concernant cette base de données peuvent être trouvées sur » http://maxdb.sap.com/doc/7_7/44/d8c25164bb38d0e10000000a1553f7/content.htm.

Pour utiliser les exemples dans la documentation PHP MaxDB, vous devez télécharger les données du tutorial dans votre base de données. Ensuite, vous devez définir maxdb.default_db dans votre php.ini à la valeur de votre base de données contenant les données du tutorial.

Cet exemple simple montre comment se connecter, exécuter une requête, afficher les lignes résultants et se déconnecter de la base de données MaxDB.

Exemple #1 Exemple global de l'extension MaxDB

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
   
printf("Échec de la connexion : %s\n"maxdb_connect_error());
   exit();
}

/* Exécution de la requête SQL */
$query "SELECT * FROM hotel.city";
$result maxdb_query($link$query) or die("Échec de la requête : " maxdb_error());

/* Affichage des resultats en HTML */
echo "<table>\n";
while (
$line maxdb_fetch_array($resultMAXDB_ASSOC)) {
    echo 
"  <tr>\n";
    foreach (
$line as $col_value) {
        echo 
"    <td>$col_value</td>\n";
    }
    echo 
"  </tr>\n";
}
echo 
"</table>\n";

/* Libération du résultat */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple suivant montre comment l'on lie des variables à des requêtes SELECT INTO.

Exemple #2 Exemple d'utilisation des requêtes SELECT INTO

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
   
printf("Échec de la connexion : %s\n"maxdb_connect_error());
   exit();
}

/* Exécution de la requête SQL */
$stmt maxdb_prepare ($link"SELECT percentage INTO ? FROM hotel.countrylanguage where language = ?");
if (!
$stmt) {
  
printf ("Échec de la préparation : %s\n"maxdb_error($link));
}

$name "Mbundu";

maxdb_stmt_bind_param($stmt'ds'$percentage$name);
maxdb_stmt_execute($stmt);

printf ("%f\n"$percentage);

maxdb_stmt_close ($stmt);
?>

L'exemple suivant montre comment utiliser les procédures avec les bases de données MaxDB.

Exemple #3 Exemple d'utilisation des procédures

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
   
printf("Échec de la connexion : %s\n"maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link$query);

/* Exécution de la requête SQL */
$stmt maxdb_prepare ($link"CALL test_proc (?)");
if (!
$stmt) {
  
printf ("Échec de la préparation : %s\n"maxdb_error($link));
}

maxdb_stmt_bind_param($stmt's'$result);
maxdb_stmt_execute($stmt);

printf ("%s\n"$result);

maxdb_stmt_close ($stmt);
?>




Fonctions MaxDB

Classes pré-définies

maxdb

Représente une connexion entre PHP et une base MaxDB.

Constructeur

Méthodes

  • autocommit : active ou pas l'autoarchivage

  • change_user : change l'utilisateur de la base de données

  • character_set_name : retourne le jeu de caractères par défaut de la connexion

  • close : ferme une connexion ouverte

  • commit : valide la transaction courante

  • connect : ouvre une nouvelle connexion

  • debug : effectue des opérations de déboguage

  • dump_debug_info : affiche des informations de déboguage

  • get_client_info : retourne la version du client

  • get_host_info : retourne le type de connexion

  • get_server_info : retourne les informations sur le serveur maxDB

  • get_server_version : retourne la version du serveur

  • init : initialise un objet maxdb

  • info : lit les informations sur la dernière requête exécutée

  • kill : tente de terminer un thread MaxDB

  • multi_query : effectue une commande multiple

  • more_results : vérifie si d'autres résultats existent dans la commande multiple courante

  • next_result : lit le prochain résultat de la commande multiple courante

  • options : configure les options

  • ping : teste le serveur avec un ping et se reconnecte si besoin

  • prepare : prépare une requête SQL

  • query : exécute une requête

  • real_connect : ouvre une connexion au serveur MaxDB

  • escape_string : protège les caractères spéciaux dans une chaîne pour l'utiliser dans une requête, en tenant compte du jeu de caractères courant

  • rollback : annule la transaction courante

  • select_db : sélectionne la base de données par défaut

  • ssl_set : configure les paramètres ssl

  • stat : lit le statut courant du système

  • stmt_init : initialise une commande à utiliser avec maxdb_stmt_prepare

  • store_result : transfert un résultat de la dernière requête

  • use_result : transfert un résultat non bufferisé de la dernière requête

  • thread-safe : indique si la sécurité thread est active ou pas

Propriétés

  • affected_rows : lit le nombre de lignes affectées par la dernière opération MaxDB

  • client_info : retourne la version du client MaxDB sous forme de chaîne

  • client_version : retourne la version du client MaxDB sous forme d'entier

  • errno : retourne le code d'erreur du dernier appel de fonction

  • error : retourne le message d'erreur de la plus récente fonction

  • field_count : retourne le nombre de colonne de la dernière requête

  • host_info : retourne une chaîne représentant le type de connexion

  • info : lit les informations sur la dernière requête exécutée

  • insert-id : retourne l'identifiant autogénéré par la dernière requête

  • protocol_version : retourne la version du protocole MaxDB utilisé

  • sqlstate : retourne une chaîne représentant le code d'erreur SQLSTATE

  • thread_id : retourne l'identifiant du thread de la connexion courante

  • warning-count : retourne le nombre d'alertes générées durant la dernière commande SQL

maxdb_stmt

Représente une commande préparée.

Méthodes

  • bind_param : lie les variables à la commande préparée

  • bind_result : lie les variables à la commande préparée, pour stockage des résultats

  • close : détruit la commande préparée

  • data-seek : place le pointeur à une position arbitraire du résultat

  • execute : exécute une commande préparée

  • fetch : lit les résultats de la commande préparée dans les variables liées

  • free_result : libère les ressources de la mémoire

  • result_metadata : lit les métadonnées d'un résultat de commande préparée

  • prepare : prépare une commande préparée

  • send_long_data : envoie les données par paquet

  • close_long_data : termine l'envoi de grandes données

  • reset : remet à zéro une commande préparée

  • store_result : stocke tout le résultat d'une commande préparée

Propriétés

  • affected_rows : retourne le nombre de lignes affectées par la dernière commande préparée

  • errno : retourne le code d'erreur de la dernière commande préparée

  • errno : retourne le message d'erreur de la dernière commande préparée

  • param_count : retourne le nombre de paramètres pour une commande préparée

  • sqlstate : retourne une chaîne contenant le code d'erreur SQLSTATE

maxdb_result

Représente le jeu de résultat obtenu après exécution d'une requête.

Méthodes

  • close : détruit le jeu de résultat

  • data_seek : déplace le pointeur de ligne

  • fetch_field : lit les informations de colonnes d'un résultat

  • fetch_fields : lit les informations de toutes les colonnes d'un résultat

  • fetch_field_direct : lit les informations sur une colonne spécifique

  • fetch_array : lit la ligne de résultat sous forme de tableau associatif, numérique ou les deux.

  • fetch_assoc : lit une ligne sous forme de tableau associatif

  • fetch_object : lit un résultat sous forme d'objet

  • fetch_row : lit un résultat sous forme de tableau énuméré

  • close : libère les ressources

  • field_seek : place le pointeur à une position donnée

Propriétés

  • current_field : retourne le pointeur courant

  • field_count : retourne le nombre de champs dans le résultat

  • lengths : retourne un tableau avec les tailles des colonnes

  • num_rows : retourne le nombre de ligne du résultat


maxdb_affected_rows

maxdb->affected_rows

(PECL maxdb >= 1.0)

maxdb_affected_rows -- maxdb->affected_rowsRécupère le nombre de lignes affectées par la dernière opération MaxDB

Description

Style procédural

int maxdb_affected_rows ( resource $link )

Style orienté objet

int $affected_rows;

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE associée avec le paramètre link fourni. Si ce nombre ne peut pas être déterminé, cette fonction retournera -1.

Note:

Pour les requêtes SELECT, maxdb_affected_rows() fonctionne comme la fonction maxdb_num_rows().

La fonction maxdb_affected_rows() ne fonctionne qu'avec les requêtes qui modifient une table. Pour récupérer le nombre de lignes depuis une requête SELECT, utilisez plutôt la fonction maxdb_num_rows().

Valeurs de retour

Un entier plus grand que 0 indique le nombre de lignes affectées ou récupérées. Zéro indique qu'aucune ligne n'a été mise à jour pour une requête de type SELECT, qu'aucun ligne ne correspond à une clause WHERE dans une requête ou bien qu'aucune requête n'a été exécutée. -1 indique que le nombre de lignes affectées n'a pû être déterminé.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insertion de lignes */
$maxdb->query("CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n"$maxdb->affected_rows);

$maxdb->query("ALTER TABLE mycustomer ADD Status int default 0");

/* Mise à jour de lignes */
$maxdb->query("UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n"$maxdb->affected_rows);

/* Effacement de lignes */
$maxdb->query("DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n"$maxdb->affected_rows);

/* Sélection de toutes les lignes */
$result $maxdb->query("SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n"$maxdb->affected_rows);

$result->close();

/* Effacement de la table Language */
$maxdb->query("DROP TABLE mycustomer");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

if (!
$link) {
    
printf("Impossible de se connecter à localhost. Erreur : %s\n"maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insertion de lignes */
maxdb_query($link"CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Nombres de lignes affectées (INSERT): %d\n"maxdb_affected_rows($link));

maxdb_query($link"ALTER TABLE mycustomer ADD Status int default 0");

/* Mise à jour de lignes */
maxdb_query($link"UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Nombres de lignes affectées (UPDATE): %d\n"maxdb_affected_rows($link));

/* Effacement de lignes */
maxdb_query($link"DELETE FROM mycustomer WHERE cno < 50");
printf("Nombres de lignes affectées (DELETE): %d\n"maxdb_affected_rows($link));

/* Sélectionne toutes les lignes */
$result maxdb_query($link"SELECT title FROM mycustomer");
printf("Nombres de lignes affectées (SELECT): %d\n"maxdb_affected_rows($link));

maxdb_free_result($result);

/* Effacement d'une table */
maxdb_query($link"DROP TABLE mycustomer");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affected rows (INSERT): 15
Affected rows (UPDATE): 15
Affected rows (DELETE): 0
Affected rows (SELECT): 15

Voir aussi

  • maxdb_num_rows() - Récupère le nombre de lignes dans un résultat
  • maxdb_info() - Récupère des informations sur le dernière requête exécutée



maxdb_autocommit

maxdb::auto_commit

(PECL maxdb >= 1.0)

maxdb_autocommit -- maxdb::auto_commitActive ou désactive l'auto-commit des modifications de la base de données

Description

Style procédural

bool maxdb_autocommit ( resource $link , bool $mode )

Style orienté objet

bool maxdb::auto_commit ( bool $mode )

maxdb_autocommit() est utilisé pour activer ou désactiver le mode auto-commit sur les requêtes pour la connexion à la base de données représentée par la ressource link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

if (
maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Activation de l'auto-commit */
$maxdb->autocommit(TRUE);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

if (!
$link) {
    
printf("Impossible de se connecter à localhost. Erreur : %s\n"maxdb_connect_error());
    exit();
}

/* Active l'auto-commit */
maxdb_autocommit($linkTRUE);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi



maxdb_bind_param

(PECL maxdb 1.0)

maxdb_bind_paramAlias de maxdb_stmt_bind_param()

Description

Cette fonction est un alias de : maxdb_stmt_bind_param()

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_bind_result

(PECL maxdb 1.0)

maxdb_bind_resultAlias de maxdb_stmt_bind_result()

Description

Cette fonction est un alias de : maxdb_stmt_bind_result().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_change_user

maxdb::change_user

(PECL maxdb >= 1.0)

maxdb_change_user -- maxdb::change_userModifie l'utilisateur de la connexion à la base de données spécifiée

Description

Style procédural

bool maxdb_change_user ( resource $link , string $user , string $password , string $database )

Style orienté objet

bool maxdb::change_user ( string $user , string $password , string $database )

maxdb_change_user() est utilisé pour modifier l'utilisateur de la connexion à la base de données spécifiée par le paramètre link et pour définir la base de données courant à celle spécifiée par le paramètre database.

Pour modifier avec succès un utilisateur, les paramètres username et password doivent être fournis et cet utilisateur doit avoir des permissions suffisantes pour accéder à la base de données désirées. Si pour une raison quelconque l'identification échoue, l'utilisateur courant sera conservé.

Note:

L'utilisation de cette commande fera que la connexion courante à la base de données sera renouvelée, comme si l'on avait fait une nouvelle connexion, indépendamment du succès de l'opération. Cette réinitialisation effectue une annulation sur toutes les transactions actives, ferme toutes les tables temporaires et déverrouille toutes les tables verrouillées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php

/* Connexion à la base de données */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$result $maxdb->query("SELECT * FROM dual")) {
    
$row $result->fetch_row();
    
printf("Résultat : %s\n"$row[0]);
    
$result->free();
}

/* Réinitialisation et sélection d'une nouvelle base de données */
if (!$maxdb->change_user("DBADMIN""SECRET""DEMODB")) {
    
printf("La base de données ne fonctionne pas.\n");
} else {
    
printf("La base de données fonctionne.\n");
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$result maxdb_query($link"SELECT * FROM dual")) {
    
$row maxdb_fetch_row($result);
    
printf("Résultat : %s\n"$row[0]);
    
maxdb_free_result($result);
}

/* réinitialisation de tout et sélection d'une nouvelle base de données */
if (!maxdb_change_user($link"DBADMIN""SECRET""DEMODB")) {
    
printf("La base de données ne fonctionne pas.\n");
} else {
    
printf("La base de données fonctionne.\n");
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Résultat : a
La base de données fonctionne.

Voir aussi



maxdb_character_set_name

maxdb::character_set_name

(PECL maxdb >= 1.0)

maxdb_character_set_name -- maxdb::character_set_nameRetourne le jeu de caractères par défaut pour la connexion à la base de données

Description

Style procédural

string maxdb_character_set_name ( resource $link )

Style orienté objet

string maxdb::character_set_name ( void )

Retourne le jeu de caractères courant défini pour la connexion à la base de données spécifiée par le paramètre link.

Valeurs de retour

Le jeu de caractères par défaut défini pour la connexion courante, soit ascii, soit unicode.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouverture d'une connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affichage du jeu de caractères courant */
$charset $maxdb->character_set_name();
printf ("Le jeu de caractères courant est %s\n"$charset);

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche le jeu de caractères courant */
$charset maxdb_character_set_name($link);
printf ("Le jeu de caractères courant est %s\n",$charset);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le jeu de caractères courant est ascii

Voir aussi



maxdb_client_encoding

(PECL maxdb 1.0)

maxdb_client_encodingAlias de maxdb_character_set_name()

Description

Cette fonction est un alias de : maxdb_character_set_name().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_close_long_data

maxdb->close_long_data

(PECL maxdb >= 1.0)

maxdb_close_long_data -- maxdb->close_long_dataAlias de maxdb_stmt_close_long_data()

Description

Cette fonction est un alias de : maxdb_stmt_close_long_data().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_close

maxdb::close

(PECL maxdb >= 1.0)

maxdb_close -- maxdb::closeFerme une connexion à une base de données

Description

Style procédural

bool maxdb_close ( resource $link )

Style orienté objet

bool maxdb::close ( void )

maxdb_close() ferme une connexion à une base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



maxdb_commit

maxdb::commit

(PECL maxdb >= 1.0)

maxdb_commit -- maxdb::commitValide la transaction courante

Description

Style procédural

bool maxdb_commit ( resource $link )

Style orienté objet

bool maxdb::commit ( void )

maxdb_commit() valide la transaction courante pour la connexion à la base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Désactivation de l'auto-commit */
$maxdb->autocommit(FALSE);

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycustomer LIKE hotel.customer");

/* Insertion de quelques valeurs */
$maxdb->query("INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
$maxdb->query("INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* Valide la transaction */
$maxdb->commit();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Connect failed: %s\n"maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
maxdb_autocommit($linkFALSE);

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link"CREATE TABLE mycustomer LIKE hotel.customer");

/* Insertion de quelques lignes */
maxdb_query($link"INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
maxdb_query($link"INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* Valide la transaction */
maxdb_commit($link);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus ne produit aucun affichage.

Voir aussi



maxdb_connect_errno

(PECL maxdb >= 1.0)

maxdb_connect_errnoRetourne le code erreur du dernier appel à la connexion

Description

int maxdb_connect_errno ( void )

maxdb_connect_errno() retourne le dernier code erreur du dernier appel à maxdb_connect(). Si aucune erreur n'est survenue, cette fonction retournera zéro.

Valeurs de retour

Un code erreur pour le dernier appel à maxdb_connect(), si elle a échouée. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec maxdb_connect_errno()

<?php
$link 
maxdb_connect("localhost""XXXXXXXX""YYYYYYYYY");

if (!
$link) {
    
printf("Impossible de se connecter à locahost. Code erreur : %d\n"maxdb_connect_errno());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination [08004] <...>
Impossible de se connecter à locahost. Code erreur : -4008

Voir aussi



maxdb_connect_error

(PECL maxdb >= 1.0)

maxdb_connect_errorRetourne une chaîne descriptive de la dernière erreur

Description

string maxdb_connect_error ( void )

maxdb_connect_error() est identique à la fonction maxdb_connect_errno(), excepté qu'au lieu de retourner un code erreur, maxdb_connect_error() retourne une chaîne représentative de la dernière erreur survenue lors du dernier appel à maxdb_connect(). Si aucune erreur n'est survenue, cette fonction retournera une chaîne vide.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec maxdb_connect_error()

<?php
     
$link 
maxdb_connect("localhost""nonexisting_user""");

if (!
$link) {
    
printf("Impossible de se connecter à localhost. Erreur : %s\n"maxdb_connect_error());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination <...>
Impossible de se connecter à localhost. Erreur : POS(1) Unknown user name/password combination

Voir aussi



maxdb_connect

maxdb::__construct

(PECL maxdb >= 1.0)

maxdb_connect -- maxdb::__constructOuvre une nouvelle connexion sur un serveur MaxDB

Description

Style procédural

resource maxdb_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

Style orienté objet

maxdb::__construct() ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

maxdb_connect() tente d'ouvrir une connexion sur un serveur MaxDB fonctionnant sur l'hôte host qui peut être soit un nom d'hôte, soit une adresse IP. Passer la chaîne "localhost" à ce paramètre, l'hôte local sera assumé. En cas de succès, maxdb_connect() retournera une ressource représentant la connexion à la base de données ou FALSE si une erreur survient.

Les paramètres username et password spécifient le nom de l'utilisateur ainsi que le mot de passe utilisés pour la connexion au serveur MaxDB. Si le mot de passe n'est pas fourni (la valeur NULL est passée), le serveur MaxDB tentera d'identifier l'utilisateur encore une fois en utilisant la valeur de l'option de configuration maxdb.default_pw du php.ini.

Le paramètre dbname, si fourni, spécifie la base de données par défaut à utiliser lors de l'exécution de requêtes. S'il n'est pas fourni, l'option de configuration maxdb.default_db du php.ini est utilisée.

Les paramètres port et socket sont ignorés par le serveur MaxDB.

Valeurs de retour

Retourne une ressource représentant la connexion au serveur MaxDB ou FALSE si la connexion échoue.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérfication de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

printf("Informations sur l'hôte : %s\n"$maxdb->host_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED");

/* Vérifie la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

printf("Informations sur l'hôte : %s\n"maxdb_get_host_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations sur l'hôte : localhost


maxdb_data_seek

maxdb_result::data_seek

(PECL maxdb >= 1.0)

maxdb_data_seek -- maxdb_result::data_seekAjuste le pointeur de résultat sur une ligne arbitraire dans le résultat

Description

Style procédural

bool maxdb_data_seek ( resource $result , int $offset )

Style orienté objet

bool maxdb_result::data_seek ( int $offset )

maxdb_data_seek() se déplace sur un pointeur de résultat arbitraire spécifié par offset dans le jeu de résultats représenté par result. Le paramètre offset doit être compris entre zéro le nombre total de lignes moins un (0..maxdb_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouverture de la connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Connect failed: %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER BY name";
if (
$result $maxdb->query$query)) {

    
/* Déplacement sur la ligne no. 10 */
    
$result->data_seek(10);

    
/* Récupération de la ligne */
    
$row $result->fetch_row();

    
printf ("Ville : %s  Pays : %s\n"$row[0], $row[1]);

    
/* Libération du jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */ 
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER BY name";

if (
$result maxdb_query($link$query)) {

    
/* Déplacement sur la ligne no. 400 */
    
maxdb_data_seek($result10);

    
/* Récupération de la ligne */
    
$row maxdb_fetch_row($result);

    
printf ("Ville : %s  Pays : %s\n"$row[0], $row[1]);

    
/* Libération du jeu de résultats*/
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ville : Irvine  Pays : CA

Voir aussi



maxdb_debug

(PECL maxdb >= 1.0)

maxdb_debugEffectue des opérations de déboguage

Description

void maxdb_debug ( string $debug )

maxdb_debug() peut être utilisé pour tracer la connexion SQLDBC. Les chaînes suivantes peuvent être utilisées en tant que paramètre de la fonction maxdb_debug() :

  • TRACE SHORT ON|OFF - Active/Désactive l'appel à la méthode de traçage.
  • TRACE LONG ON|OFF - Active/Désactive l'argument de la méthode et les détails de la trace de déboguage.
  • TRACE PACKET ON|OFF|<size> - Active/Désactive le paquet de trace, limitant la taille de l'objet de traçage au nombre d'octets spécifiés, ou 1000 si aucune taille n'est spécifiée.
  • TRACE SQL ON|OFF - Active/Désactive la trace de haut niveau de l'API.
  • TRACE TIMESTAMP ON|OFF - Active/Désactive un préfixe timestamp sur chaque ligne tracée.
  • TRACE SIZE <size> - Limite la taille du fichier de trace à <size> octets, 8192 octets sont au moins nécessaire.

Valeurs de retour

maxdb_debug() ne retourne aucune valeur.

Exemples

Exemple #1 Style procédural

<?php

maxdb_debug
("trace packet 200");

$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus ne produit aucun affichage.



maxdb_disable_reads_from_master

maxdb::disable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_disable_reads_from_master -- maxdb::disable_reads_from_masterDésactive la lecture depuis le maître

Description

Style procédural

bool maxdb_disable_reads_from_master ( resource $link )

Style orienté objet

void maxdb::disable_reads_from_master ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_disable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_disable_rpl_parseDésactive l'analyseur RPL

Description

bool maxdb_disable_rpl_parse ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_dump_debug_info

(PECL maxdb >= 1.0)

maxdb_dump_debug_infoSauvegarde les informations de déboguage dans un log

Description

bool maxdb_dump_debug_info ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_embedded_connect

(PECL maxdb >= 1.0)

maxdb_embedded_connectOuvre une connexion sur un serveur MaxDB embarqué

Description

resource maxdb_embedded_connect ([ string $dbname ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_enable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_enable_reads_from_masterActive la lecture depuis le maître

Description

bool maxdb_enable_reads_from_master ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_enable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_enable_rpl_parseActive l'analyseur RPL

Description

bool maxdb_enable_rpl_parse ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_errno

maxdb->errno

(PECL maxdb >= 1.0)

maxdb_errno -- maxdb->errnoRetourne le code erreur pour le dernier appel à une fonction

Description

Style procédural

int maxdb_errno ( resource $link )

Style orienté objet

int $errno;

maxdb_errno() retourne le dernier code erreur pour le dernier appel à une fonction MaxDB, qu'elle ait réussie ou échouée, sur la connexion à la base de données représentée par le paramètre link. Si aucune erreur n'est survenue, cette fonction retournera zéro.

Valeurs de retour

Une valeur de code erreur pour le dernier appel, s'il a échoué. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (!
$maxdb->query("SELECT xxx FROM hotel.city")) {
    
printf("Code erreur : %d\n"$maxdb->errno);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (!
maxdb_query($link"SELECT xxx FROM hotel.city")) {
    
printf("Code erreur : %d\n"maxdb_errno($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000] <...>
Code erreur : -4005

Voir aussi



maxdb_error

maxdb->error

(PECL maxdb >= 1.0)

maxdb_error -- maxdb->errorRetourne une chaîne représentant la dernière erreur

Description

Style procédural

string maxdb_error ( resource $link )

Style orienté objet

string $error;

maxdb_error() est identique à la fonction maxdb_errno() dans tous les sens, exceptée qu'au lieu de retourner une erreur sous forme d'entier, maxdb_error() retourne une chaîne représentant la dernière erreur survenue pour la connexion à la base de données représentée par le paramètre link. Si aucune erreur n'est survenue, cette fonction retournera une chaîne vide.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la conneixon */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion: %s\n"maxdb_connect_error());
    exit();
}

if (!
$maxdb->query("SELECT xxx FROM hotel.city")) {
    
printf("Message d'erreur : %s\n"$maxdb->error);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (!
maxdb_query($link"SELECT xxx FROM hotel.city")) {
    
printf("Message d'erreur : %s\n"maxdb_error($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000]
Message d'erreur : POS(8) Unknown column name:XXX

Voir aussi



maxdb_escape_string

(PECL maxdb 1.0)

maxdb_escape_stringAlias de maxdb_real_escape_string()

Description

Cette fonction est un alias de : maxdb_real_escape_string().



maxdb_execute

(PECL maxdb 1.0)

maxdb_executeAlias de maxdb_stmt_execute()

Description

Cette fonction est un alias de : maxdb_stmt_execute().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_fetch_array

maxdb_result::fetch_array

(PECL maxdb >= 1.0)

maxdb_fetch_array -- maxdb_result::fetch_arrayRécupère une ligne de résultat dans un tableau numérique, associatif ou les deux

Description

Style procédural

mixed maxdb_fetch_array ( resource $result [, int $resulttype ] )

Style orienté objet

mixed maxdb_result::fetch_array ([ int $resulttype ] )

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes pour le jeu de résultats représenté par le paramètre result.

maxdb_fetch_array() est une version étendue de la fonction maxdb_fetch_row(). En plus de stocker les données dans un tableau de résultats aux indices numériques , la fonction maxdb_fetch_array() peut également stocker les données dans des indices associatifs, en utilisant les noms de champs du résultat en tant que clés.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Si deux colonnes ou plus du résultats ont les mêmes noms de champs, la dernière colonne aura la priorité et effacera les données précédentes. Pour accéder aux autres colonnes du même nom, la version indexée numériquement de la ligne doit être utilisée.

Le second argument optionnel resulttype est une constante indiquant quel type de tableau doit être produit pour les données de la ligne courante. Les valeurs possibles pour ce paramètre sont les constantes MAXDB_ASSOC, MAXDB_ASSOC_UPPER, MAXDB_ASSOC_LOWER, MAXDB_NUM, ou MAXDB_BOTH. Par défaut, la fonction maxdb_fetch_array() prendra la valeur MAXDB_BOTH, qui est une combinaison de MAXDB_NUM et de MAXDB_ASSOC, pour ce paramètre.

En utilisant la constante MAXDB_ASSOC, cette fonction fonctionne de la même manière que la fonction maxdb_fetch_assoc(), tandis que MAXDB_NUM fonctionne de la même manière que la fonction maxdb_fetch_row(). L'option MAXDB_BOTH créera un seul tableau contenant les deux sortes d'attributs.

En utilisant la constante MAXDB_ASSOC_UPPER, le comportement de cette fonction est identique à l'utilisation de MAXDB_ASSOC à la seule différence que l'index de la colonne du tableau est le nom du champs en majuscule.

En utilisant la constante MAXDB_ASSOC_LOWER, le comportement de cette fonction est identique à l'utilisation de MAXDB_ASSOC à la seule différence que l'index de la colonne du tableau est le nom du champs en minuscule.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles dans le jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Connect failed: %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";
$result $maxdb->query($query);

/* Tableau numérique */
$row $result->fetch_array(MAXDB_NUM);
printf ("%s (%s)\n"$row[0], $row[1]);

/* Tableau associatif */
$row $result->fetch_array(MAXDB_ASSOC);
printf ("%s (%s)\n"$row["NAME"], $row["STATE"]);

/* Tableau associatif et numérique */
$row $result->fetch_array(MAXDB_BOTH);
printf ("%s (%s)\n"$row[0], $row["STATE"]);

/* Libération du jeu de résultats */
$result->close();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";
$result maxdb_query($link$query);

/* Tableau numérique */
$row maxdb_fetch_array($resultMAXDB_NUM);
printf ("%s (%s)\n"$row[0], $row[1]);

/* Tableau associatif */
$row maxdb_fetch_array($resultMAXDB_ASSOC);
printf ("%s (%s)\n"$row["NAME"], $row["STATE"]);

/* Tableau associatif et numérique */
$row maxdb_fetch_array($resultMAXDB_BOTH);
printf ("%s (%s)\n"$row[0], $row["STATE"]);

/* Libération du jeu de résultats */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)

Voir aussi

  • maxdb_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • maxdb_fetch_row() - Récupère une ligne de résultat en tant que tableau énuméré
  • maxdb_fetch_resource()



maxdb_fetch_assoc

maxdb_result::fetch_assoc

(PECL maxdb >= 1.0)

maxdb_fetch_assoc -- maxdb_result::fetch_assocRécupère une ligne de résultat dans un tableau associatif

Description

Style procédural

array maxdb_fetch_assoc ( resource $result )

Style orienté objet

array maxdb_result::fetch_assoc ( void )

Retourne un tableau associatif qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles.

maxdb_fetch_assoc() est utilisé pour retourner un tableau associatif représentant la prochaine ligne dans le jeu de résultats pour le résultat représenté par le paramètre result, où chaque clé du tableau représente le nom d'une des colonnes du jeu de résultats.

Si deux colonnes ou plus du résultats ont les mêmes noms de champs, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez soit accéder au résultat avec des indices numériques en utilisant la fonction maxdb_fetch_row(), soit ajouter des alias aux noms.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Valeurs de retour

Retourne un tableau représentant la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Connect failed: %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";

if (
$result $maxdb->query($query)) {

    
/* Récupération du tableau associatif */
    
while ($row $result->fetch_assoc()) {
        
printf ("%s (%s)\n"$row["NAME"], $row["STATE"]);
    }

    
/* Libération du jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";

if (
$result maxdb_query($link$query)) {

    
/* Récupération du tableau associatif */
    
while ($row maxdb_fetch_assoc($result)) {
        
printf ("%s (%s)\n"$row["NAME"], $row["STATE"]);
    }

    
/* Libération du jeu de résultats */
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

  • maxdb_fetch_array() - Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
  • maxdb_fetch_row() - Récupère une ligne de résultat en tant que tableau énuméré
  • maxdb_fetch_resource()



maxdb_fetch_field_direct

maxdb_result::fetch_field_direct

(PECL maxdb >= 1.0)

maxdb_fetch_field_direct -- maxdb_result::fetch_field_directRécupère les métadonnées pour un seul champ

Description

Style procédural

mixed maxdb_fetch_field_direct ( resource $result , int $fieldnr )

Style orienté objet

mixed maxdb_result::fetch_field_direct ( int $fieldnr )

maxdb_fetch_field_direct() retourne une ressource qui contient les informations de définition des champs pour un jeu de résultat spécifique. La valeur du champ doit être dans l'intervalle 0 à number of fields - 1.

Valeurs de retour

Retourne une ressource qui contient les informations de définition des champs ou FALSE s'il n'y a plus d'informations pour le champ fieldnr.

Attributs de l'objet
Attribut Description
name Le nom de la colonne
max_length La largeur maximale du champ pour le jeu de résultats
type Le type de données utilisé pour ce champ
decimals Le nombre de décimales utilisées (pour les champs entiers)

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY name";

if (
$result $maxdb->query($query)) {

    
/* Récupère les informations pour la colonne 'SurfaceArea' */
    
$finfo $result->fetch_field_direct(1);

    
printf("Name:     %s\n"$finfo->name);
    
printf("Table:    %s\n"$finfo->table);
    
printf("max. Len: %d\n"$finfo->max_length);
    
printf("Flags:    %d\n"$finfo->flags);
    
printf("Type:     %d\n"$finfo->type);

    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY name";

if (
$result maxdb_query($link$query)) {

    
/* Récupère les informations pour la colonne 'cno' */
    
$finfo maxdb_fetch_field_direct($result1);

    
printf("Nom :     %s\n"$finfo->name);
    
printf("Table :    %s\n"$finfo->table);
    
printf("Longueur max. : %d\n"$finfo->max_length);
    
printf("Flags :    %d\n"$finfo->flags);
    
printf("Type :     %d\n"$finfo->type);

    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     CNO
Table :
Longueur max.: 4
Flags :    -1
Type :     0

Voir aussi



maxdb_fetch_field

maxdb_result::fetch_field

(PECL maxdb >= 1.0)

maxdb_fetch_field -- maxdb_result::fetch_fieldRetourne le prochain champs d'un jeu de résultats

Description

Style procédural

mixed maxdb_fetch_field ( resource $result )

Style orienté objet

mixed maxdb_result::fetch_field ( void )

maxdb_fetch_field() retourne la définition d'une colonne d'un jeu de résultats en tant que ressource. Appelez cette fonction de façon répétitive pour récupérer toutes les informations sur les colonnes dans le jeu de résultats. maxdb_fetch_field() retourne FALSE lorsqu'il n'y a plus de champs disponibles.

Valeurs de retour

Retourne une ressource contenant toutes les informations de définitions des champs ou FALSE s'il n'y a plus d'informations de champs disponibles.

Propriétés de l'objet
Propriété Description
name Le nom de la colonne
max_length La largeur maximale d'un champ dans le jeu de résultats
type Le type de données utilisé pour ce champ
decimals Le nombre de décimales utilisées (pour les champs entiers)

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result $maxdb->query($query)) {

    
/* Récupération de l'information pour tous les champs */
    
while ($finfo $result->fetch_field()) {

        
printf("Nom :     %s\n"$finfo->name);
        
printf("Table :    %s\n"$finfo->table);
        
printf("Longueur max. : %d\n"$finfo->max_length);
        
printf("Flags :    %d\n"$finfo->flags);
        
printf("Type :     %d\n\n"$finfo->type);
    }
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result maxdb_query($link$query)) {

    
/* Récupération de l'information pour tous les champs */
    
while ($finfo maxdb_fetch_field($result)) {

        
printf("Nom :     %s\n"$finfo->name);
        
printf("Table :    %s\n"$finfo->table);
        
printf("Longueur max.: %d\n"$finfo->max_length);
        
printf("Flags :    %d\n"$finfo->flags);
        
printf("Type :     %d\n\n"$finfo->type);
    }
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi



maxdb_fetch_fields

maxdb_result::fetch_fields

(PECL maxdb >= 1.0)

maxdb_fetch_fields -- maxdb_result::fetch_fieldsRetourne un tableau de ressource représentant les champs dans un jeu de résultats

Description

Style procédural

mixed maxdb_fetch_fields ( resource $result )

Style orienté objet

mixed maxdb_result::fetch_fields ( void )

Cette fonction est identique à la fonction maxdb_fetch_field() avec la seule différence qu'au lieu de retourner une ressource à la fois pour chaque champ, les colonnes sont retournées en tant que tableau de ressources.

Valeurs de retour

Retourne un tableau de ressources qui contient les informations de définitions des champs ou FALSE s'il n'y a plus d'informations de champs de disponibles.

Propriétés de l'objet
Propriété Description
name Le nom de la colonne
max_length La largeur maximale d'un champ dans le jeu de résultats
type Le type de données utilisé pour ce champ
decimals Le nombre de décimales utilisées (pour les champs entiers)

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result $maxdb->query($query)) {

    
/* Récupération des informations pour toutes les colonnes */
    
$finfo $result->fetch_fields();

    foreach (
$finfo as $val) {
        
printf("Nom :     %s\n"$finfo[$i]->name);
        
printf("Table :    %s\n"$finfo[$i]->table);
        
printf("Longueur max. : %d\n"$finfo[$i]->max_length);
        
printf("Flags :    %d\n"$finfo[$i]->flags);
        
printf("Type :     %d\n\n"$finfo[$i]->type);
    }
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result maxdb_query($link$query)) {

    
/* Récupération des informations pour toutes les colonnes */
    
$finfo maxdb_fetch_fields($result);

    foreach (
$finfo as $val) {
        
printf("Nom :     %s\n"$finfo[$i]->name);
        
printf("Table :    %s\n"$finfo[$i]->table);
        
printf("Longueur max. : %d\n"$finfo[$i]->max_length);
        
printf("Flags :    %d\n"$finfo[$i]->flags);
        
printf("Type :     %d\n\n"$finfo[$i]->type);
    }
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi



maxdb_fetch_lengths

maxdb_result->lengths

(PECL maxdb >= 1.0)

maxdb_fetch_lengths -- maxdb_result->lengthsRetourne la longueur des colonnes de la ligne courante dans un jeu de résultats

Description

Style procédural

array maxdb_fetch_lengths ( resource $result )

Style orienté objet

array $lengths;

maxdb_fetch_lengths() retourne un tableau contenant la longueur de chaque colonne de la ligne courante du jeu de résultats représenté par le paramètre result. Si cela réussit, un tableau indexé numériquement représentant la longueur de chaque colonne est retourné ou FALSE si une erreur survient.

Valeurs de retour

Un tableau d'entiers représentant la taille de chaque colonne (n'inclut aucun caractères nul de fin). FALSE si une erreur survient.

maxdb_fetch_lengths() est valide uniquement pour la ligne courante du jeu de résultats. Il retourne FALSE si vous l'appelez avant d'appeler les fonctions maxdb_fetch_row/array/resource ou après avoir récupéré toutes les lignes du jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT * from hotel.customer WHERE cno = 3000";

if (
$result $maxdb->query($query)) {

    
$row $result->fetch_row();

    
/* Affiche la longueur des colonnes */
    
foreach ($result->lengths as $i => $val) {
        
printf("Le champs %2d a une longueur de %2d\n"$i+1$result->lengths[$i]);
    }
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT * from hotel.customer WHERE cno = 3000";

if (
$result maxdb_query($link$query)) {

    
$row maxdb_fetch_row($result);

    
/* Affiche la longueur des colonnes */
    
foreach (maxdb_fetch_lengths($result) as $i => $val) {
        
printf("Le champs %2d a une longueur de %2d\n"$i+1$lengths[$i]);
    }
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le champs 1 a une longueur de 4
Le champs 2 a une longueur de 3
Le champs 3 a une longueur de 5
Le champs 4 a une longueur de 6
Le champs 5 a une longueur de 5
Le champs 6 a une longueur de 21


maxdb_fetch_object

maxdb_result::fetch_object

(PECL maxdb >= 1.0)

maxdb_fetch_object -- maxdb_result::fetch_objectRetourne la ligne courante d'un jeu de résultats dans un objet

Description

Style procédural

object maxdb_fetch_object ( object $result )

Style orienté objet

object maxdb_result::fetch_object ( void )

maxdb_fetch_resource() retourne la ligne courante du jeu de résultats result dans un objet dont les attributs sont les noms des champs trouvés dans le jeu de résultats. S'il n'y a plus de lignes dans le jeu de résultats courant, NULL est retourné.

Valeurs de retour

Retourne une ressource qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes disponibles dans le jeu de résultats.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Connexion échouée : %s\n"maxdb_connect_error());
exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";

if (
$result $maxdb->query($query)) {

    
/* Lecture d'un objet */
    
while ($obj $result->fetch_object()) {
        
printf ("%s (%s)\n"$obj->NAME$obj->STATE);
    }

    
/* Libération des ressources */
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";

if (
$result maxdb_query($link$query)) {

    
/* Récupération de l'objet */
    
while ($obj maxdb_fetch_object($result)) {
        
printf ("%s (%s)\n"$obj->NAME$obj->STATE);
    }

    
/* Libération du résultat */
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

  • maxdb_fetch_array() - Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
  • maxdb_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • maxdb_fetch_row() - Récupère une ligne de résultat en tant que tableau énuméré



maxdb_fetch_row

maxdb_result::fetch_row

(PECL maxdb >= 1.0)

maxdb_fetch_row -- maxdb_result::fetch_rowRécupère une ligne de résultat en tant que tableau énuméré

Description

Style procédural

mixed maxdb_fetch_row ( resource $result )

Style orienté objet

mixed maxdb_result::fetch_row ( void )

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de résultat.

maxdb_fetch_row() récupère une ligne de données depuis le jeu de résultats représenté par result et la retourne dans un tableau énuméré, où chaque colonne est stocké dans une entrée du tableau, en commençant à 0 (zéro). Chaque sous-séquence d'appel à la fonction maxdb_fetch_row() retourne la ligne suivante du jeu de résultats ou FALSE s'il n'y a plus de lignes de disponibles.

Valeurs de retour

maxdb_fetch_row() retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes disponibles dans le jeu de résultats.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Connect failed: %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";

if (
$result $maxdb->query($query)) {

    
/* Récupération du tableau énumératif */
    
while ($row $result->fetch_row()) {
        
printf ("%s (%s)\n"$row[0], $row[1]);
    }

    
/* Libération du jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED");

/* Vérification de la connexion  */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, state FROM hotel.city ORDER by zip";

if (
$result maxdb_query($link$query)) {

    
/* Récupération du tableau énumératif */
    
while ($row maxdb_fetch_row($result)) {
        
printf ("%s (%s)\n"$row[0], $row[1]);
    }

    
/* Libération du jeu de résultats */
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

  • maxdb_fetch_array() - Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
  • maxdb_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • maxdb_fetch_resource()



maxdb_fetch

(PECL maxdb 1.0)

maxdb_fetchAlias de maxdb_stmt_fetch()

Description

Cette fonction est un alias de : maxdb_stmt_fetch().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_field_count

maxdb::field_count

(PECL maxdb >= 1.0)

maxdb_field_count -- maxdb::field_countRetourne le nombre de colonnes pour la dernière requête

Description

Style procédural

int maxdb_field_count ( resource $link )

Style orienté objet

int maxdb::field_count ( void )

Retourne le nombre de colonnes pour la dernière requête sur la connexion représentée par le paramètre link. Cette fonction est utile lors de l'utilisation de la fonction maxdb_store_result() pour déterminer si la requête a produit un jeu de résultats non-vide ou non, sans connaître la nature de la requête.

Valeurs de retour

Un entier représentant le nombre de champs dans un jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query"CREATE TABLE friends (id int, name varchar(20))"); 

$maxdb->query"INSERT INTO friends VALUES (1,'Hartmut')");
$maxdb->query"INSERT INTO friends VALUES (2, 'Ulf')");

if (
$maxdb->field_count()) {
    
/* Ceci est une requête select/show ou describe */
    
$result $maxdb->store_result();

    
/* Récupération du jeu de résultats */
    
$row $result->fetch_row();

    
/* Libération du jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link"CREATE TABLE friends (id int, name varchar(20))"); 

maxdb_query($link"INSERT INTO friends VALUES (1,'Hartmut')");
maxdb_query($link"INSERT INTO friends VALUES (2, 'Ulf')");

if (
maxdb_field_count($link)) {
    
/* Ceci est une requête select/show ou describe */
    
$result maxdb_store_result($link);

    
/* Récupération du jeu de résultats */
    
$row maxdb_fetch_row($result);

    
/* Libération du jeu de résultats */
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

Cet exemple ne produit aucun affichage.



maxdb_field_seek

maxdb_result::field_seek

(PECL maxdb >= 1.0)

maxdb_field_seek -- maxdb_result::field_seekDéfinit le pointeur de résultat à une position donnée

Description

Style procédural

bool maxdb_field_seek ( resource $result , int $fieldnr )

Style orienté objet

bool maxdb_result::field_seek ( int $fieldnr )

Définit le curseur de champ à une position donnée. Le prochain appel à la fonction maxdb_fetch_field() récupérera la définition de champ de la colonne associée avec cette position.

Note:

Pour placer le curseur au début d'une ligne, passez zéro comme valeur.

Valeurs de retour

maxdb_field_seek() retourne la valeur précédente du curseur de champ.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result $maxdb->query($query)) {

    
/* Récupération des informations de champ pour la deuxième colonne */
    
$result->field_seek(1);
    
$finfo $result->fetch_field();

    
printf("Nom :     %s\n"$finfo->name);
    
printf("Table :    %s\n"$finfo->table);
    
printf("Longueur max. : %d\n"$finfo->max_length);
    
printf("Flags :    %d\n"$finfo->flags);
    
printf("Type :     %d\n\n"$finfo->type);

    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result maxdb_query($link$query)) {

    
/* Récupération des informations de champ pour la deuxième colonne */
    
maxdb_field_seek($result1);
    
$finfo maxdb_fetch_field($result);

    
printf("Nom :     %s\n"$finfo->name);
    
printf("Table :    %s\n"$finfo->table);
    
printf("Longueur max. : %d\n"$finfo->max_length);
    
printf("Flags :    %d\n"$finfo->flags);
    
printf("Type :     %d\n\n"$finfo->type);

    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Voir aussi



maxdb_field_tell

maxdb_result->current_field

(PECL maxdb >= 1.0)

maxdb_field_tell -- maxdb_result->current_fieldRécupère la position du champs courant pour un pointeur de résultat

Description

Style procédural

int maxdb_field_tell ( resource $result )

Style orienté objet

int $current_field;

Retourne la position du curseur de champs utilisé par le dernier appel à maxdb_fetch_field(). Cette valeur peut être utilisée en tant qu'argument à la fonction maxdb_field_seek().

Valeurs de retour

Retourne le position courant du curseur de champs.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result $maxdb->query($query)) {

    
/* Récupère les informations pour tous les champs */
    
while ($finfo $result->fetch_field()) {

        
/* Récupère le position du curseur de champs */
        
$currentfield $result->current_field;

        
printf("Colonne    %d:\n"$currentfield); 
        
printf("Nom:     %s\n"$finfo->name);
        
printf("Table:    %s\n"$finfo->table);
        
printf("Longueur max. : %d\n"$finfo->max_length);
        
printf("Flags:    %d\n"$finfo->flags);
        
printf("Type:     %d\n\n"$finfo->type);
    }
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, cno from hotel.customer ORDER BY cno";

if (
$result maxdb_query($link$query)) {

    
/* Récupère les informations pour tous les champs */
    
while ($finfo maxdb_fetch_field($result)) {

        
/* Récupère le position du curseur de champs */
        
$currentfield maxdb_field_tell($result);

        
printf("Colonne    %d:\n"$currentfield); 
        
printf("Nom :     %s\n"$finfo->name);
        
printf("Table :    %s\n"$finfo->table);
        
printf("Longueur max. : %d\n"$finfo->max_length);
        
printf("Flags :    %d\n"$finfo->flags);
        
printf("Type :     %d\n\n"$finfo->type);
    }
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Colonne    1:
Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Colonne    2:
Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi



maxdb_free_result

maxdb_result::free

(PECL maxdb >= 1.0)

maxdb_free_result -- maxdb_result::freeLibère la mémoire associée à un résultat

Description

Style procédural

void maxdb_free_result ( resource $result )

Style orienté objet

void maxdb_result::free ( void )

maxdb_free_result() libère la mémoire associée avec le résultat représenté par le paramètre result, qui a été allouée par maxdb_query(), maxdb_store_result() ou maxdb_use_result().

Note:

Vous devriez toujours libérer votre résultat avec la fonction maxdb_free_result(), lorsque votre ressource de résultat n'est plus utile.

Valeurs de retour

Cette fonction ne retourne aucune valeur.

Voir aussi



maxdb_get_client_info

(PECL maxdb >= 1.0)

maxdb_get_client_infoRetourne la version du client MaxDB sous la forme d'une chaîne

Description

string maxdb_get_client_info ( void )

maxdb_get_client_info() est utilisé pour retourner une chaîne représentant la version cliente utilisée dans l'extension MaxDB.

Valeurs de retour

Une chaîne représentant la version de la bibliothèque cliente MaxDB.

Exemples

Exemple #1 Exemple avec maxdb_get_client_info()

<?php

/* Nous n'avons pas besoin d'une connexion
pour déterminer la version de la bibliothèque MaxDB */

printf("Version de la bibliothèque cliente : %s\n"maxdb_get_client_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version de la bibliothèque cliente : libSQLDBC <...>

Voir aussi



maxdb_get_client_version

(PECL maxdb >= 1.0)

maxdb_get_client_versionRécupère des informations sur le client MaxDB

Description

int maxdb_get_client_version ( void )

Retourne le numéro de version du client en tant qu'entier.

Valeurs de retour

Un nombre représentant la version de la bibliothèque cliente MaxDB dans le format : main_version*10000 + minor_version *100 + sub_version. Par exemple, 7.5.0 est retourné comme ceci : 70500.

Ceci est utile pour déterminer rapidement la version de la bibliothèque cliente pour savoir si certaines fonctionnalités existent.

Exemples

Exemple #1 Exemple avec maxdb_get_client_version()

<?php

/* Nous n'avons pas besoin d'une connexion
pour déterminer la version de la bibliothèque MaxDB */

printf("Version de la bibliothèque cliente : %d\n"maxdb_get_client_version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version de la bibliothèque cliente : 7.<...>

Voir aussi



maxdb_get_host_info

maxdb->get_host_info

(PECL maxdb >= 1.0)

maxdb_get_host_info -- maxdb->get_host_infoRetourne une chaîne représentant le type de de connexion utilisé

Description

Style procédural

string maxdb_get_host_info ( resource $link )

Style orienté objet

string $host_info;

maxdb_get_host_info() retourne une chaîne décrivant la connexion représentée par le paramètre link.

Valeurs de retour

Une chaîne représentant l'hôte du serveur ainsi que le type de connexion.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche les informations de l'hôte */
printf("Informations sur l'hôte : %s\n"$maxdb->host_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche les informations de l'hôte */
printf("Informations sur l'hôte : %s\n"maxdb_get_host_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations sur l'hôte : localhost

Voir aussi



maxdb_get_metadata

(PECL maxdb 1.0)

maxdb_get_metadataAlias de maxdb_stmt_result_metadata()

Description

Cette fonction est un alias de : maxdb_stmt_result_metadata().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_get_proto_info

maxdb->protocol_version

(PECL maxdb >= 1.0)

maxdb_get_proto_info -- maxdb->protocol_versionRetourne la version du protocole MaxDB utilisé

Description

Style procédural

int maxdb_get_proto_info ( resource $link )

Style orienté objet

string $protocol_version;

Retourne un entier représentant la version du protocole MaxDB utilisé par la connexion représentée par le paramètre link.

Valeurs de retour

Retourne un entier représentant la version du protocole (constante 10).

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche la version du protocole */
printf("Version du protocole : %d\n"$maxdb->protocol_version);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche la version du protocole */
printf("Version du protocole : %d\n"maxdb_get_proto_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du protocole : 10

Voir aussi



maxdb_get_server_info

maxdb->server_info

(PECL maxdb >= 1.0)

maxdb_get_server_info -- maxdb->server_infoRetourne la version du serveur MaxDB

Description

Style procédural

string maxdb_get_server_info ( resource $link )

Style orienté objet

string $server_info;

Retourne une chaîne représentant la version du serveur MaxDB sur lequel l'extension MaxDB est connecté (représenté par le paramètre link).

Valeurs de retour

Une chaîne représentant la version du serveur.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %s\n"$maxdb->server_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %s\n"maxdb_get_server_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du serveur : Kernel    7<...>

Voir aussi



maxdb_get_server_version

maxdb->server_version

(PECL maxdb >= 1.0)

maxdb_get_server_version -- maxdb->server_versionRetourne la version du serveur MaxDB sous la forme d'un entier

Description

Style procédural

int maxdb_get_server_version ( resource $link )

Style orienté objet

int $server_version;

maxdb_get_server_version() retourne la version du serveur connecté (représenté par le paramètre link) en tant qu'entier.

La forme de ce numéro de version est main_version * 10000 + minor_version * 100 + sub_version (i.e. version 7.5.0 est 70500).

Valeurs de retour

Un entier représentant la version du serveur.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %d\n"$maxdb->server_version);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %d\n"maxdb_get_server_version($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du serveur : 7<...>

Voir aussi



maxdb_info

maxdb->info

(PECL maxdb >= 1.0)

maxdb_info -- maxdb->infoRécupère des informations sur le dernière requête exécutée

Description

Style procédural

string maxdb_info ( resource $link )

Style orienté objet

string $info;

maxdb_info() retourne une chaîne contenant des informations sur la dernière requête exécutée. La nature de cette chaîne est définie ci-dessous :

Valeurs de retour possibles pour maxdb_info
Type de requête Exemple de chaîne résultante
INSERT INTO...SELECT... Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... Rows matched: 40 Changed: 40 Warnings: 0

Note:

Les requêtes qui ne correspondent pas à une des catégories ci-dessus ne sont pas supportées. Dans ce cas, maxdb_info() retourne une chaîne vide.

Valeurs de retour

Une chaîne représentant des informations additionnelles sur la dernière requête exécutée.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
$maxdb->query("INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n"$maxdb->info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query($link"CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
maxdb_query($link"INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n"maxdb_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Records: 25 Duplicates: 0 Warnings: 0

Voir aussi



maxdb_init

(PECL maxdb >= 1.0)

maxdb_initInitialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect

Description

resource maxdb_init ( void )

Alloue ou initialise une ressource MaxDB utilisable pour avec les fonctions maxdb_options() et maxdb_real_connect().

Note:

Tous les appels de sous-séquence à n'importe quel fonction maxdb (sauf maxdb_options()) échoueront tant que la fonction maxdb_real_connect() ne sera pas appelée.

Valeurs de retour

Retourne une ressource.

Voir aussi



maxdb_insert_id

maxdb->insert_id

(PECL maxdb >= 1.0)

maxdb_insert_id -- maxdb->insert_idRetourne le dernier identifiant généré automatiquement par la dernière requête

Description

Style procédural

mixed maxdb_insert_id ( resource $link )

Style orienté objet

mixed $insert_id;

maxdb_insert_id() retourne le denier identifiant généré par une requête sur une table qui a une colonne possédant l'attribut DEFAULT SERIAL. Si la dernière requête n'était pas une requête de type INSERT ou UPDATE ou si la table modifiée n'a pas de colonne possédant un attribut DEFAULT SERIAL, cette fonction retournera zéro.

Valeurs de retour

La valeur du champs DEFAULT SERIAL qui a été mis à jour par la dernière requête. Retourne zéro s'il n'y a aucune requête précédente sur la connexion ou si la requête n'a pas mis à jour la valeur DEFAULT_SERIAL.

Note:

Si le nombre généré est plus grand que la valeur maximale pour un entier, maxdb_insert_id() retournera une chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Echec de la connexion : %s\n"maxdb_connect_error());
exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycity LIKE hotel.city");
$maxdb->query("ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
$maxdb->query($query);

printf ("Le nouvel enregistrement a comme identifiant %d.\n"$maxdb->insert_id);

/* Effacement de la table */
$maxdb->query("DROP TABLE mycity");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
   
printf("Echec de la connexion : %s\n"maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link"CREATE TABLE mycity LIKE hotel.city");
maxdb_query($link"ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
maxdb_query($link$query);

printf ("Le nouvel enregistrement a comme identifiant %d.\n"maxdb_insert_id($link));

/* Effacement de la table */
maxdb_query($link"DROP TABLE mycity");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le nouvel enregistrement a comme identifiant 1.


maxdb_kill

maxdb::kill

(PECL maxdb >= 1.0)

maxdb_kill -- maxdb::killDéconnecte un serveur MaxDB

Description

Style procédural

bool maxdb_kill ( resource $link , int $processid )

Style orienté objet

bool maxdb::kill ( int $processid )

Cette fonction est utilisée pour se déconnecter d'un serveur MaxDB spécifié par le paramètre processid.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id $maxdb->thread_id;

/* Tue la connexion */
$maxdb->kill($thread_id);

/* Ceci doit produire une erreur */
if (!$maxdb->query("CREATE TABLE myCity LIKE City")) {
    
printf("Erreur : %s\n"$maxdb->error);
    exit;
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id maxdb_thread_id($link);

/* Tue la connexion */
maxdb_kill($link$thread_id);

/* Ceci doit produire une erreur */
if (!maxdb_query($link"CREATE TABLE myCity LIKE City")) {
    
printf("Erreur : %s\n"maxdb_error($link));
    exit;
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Erreur : Session not connected

Voir aussi



maxdb_master_query

(PECL maxdb >= 1.0)

maxdb_master_queryForce l'exécution d'une requête sur le maître

Description

bool maxdb_master_query ( resource $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_more_results

maxdb->more_results

(PECL maxdb >= 1.0)

maxdb_more_results -- maxdb->more_resultsVérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes

Description

bool maxdb_more_results ( resource $link )

maxdb_more_results() indique si un ou plusieurs jeux de résultats sont disponibles depuis le dernier appel à la fonction maxdb_multi_query().

Valeurs de retour

Toujours FALSE.

Exemples

Voir la documentation sur la fonction maxdb_multi_query().

Voir aussi



maxdb_multi_query

maxdb::multi_query

(PECL maxdb >= 1.0)

maxdb_multi_query -- maxdb::multi_queryExécute une requête sur une base de données

Description

Style procédural

bool maxdb_multi_query ( resource $link , string $query )

Style orienté objet

bool maxdb::multi_query ( string $query )

maxdb_multi_query() fonctionne de la même manière que la fonction maxdb_query(). Les requêtes multiples ne sont pas encore supportées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query  "SELECT * FROM dual";

/* Exécute de multiples requêtes */
if ($maxdb->multi_query($query)) {
    do {
        
/* Stock le premier jeu de résultats */
        
if ($result $maxdb->store_result()) {
            while (
$row $result->fetch_row()) {
                
printf("%s\n"$row[0]);
            }
            
$result->close();
        }
        
/* Affiche une séparation */
        
if ($maxdb->more_results()) {
            
printf("-----------------\n");
        }
    } while (
$maxdb->next_result());
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT * FROM dual";

/* Exécute de multiples requêtes */
if (maxdb_multi_query($link$query)) {
    do {
        
/* Stock le premier jeu de résultats */
        
if ($result maxdb_store_result($link)) {
            while (
$row maxdb_fetch_row($result)) {
                
printf("%s\n"$row[0]);
            }
            
maxdb_free_result($result);
        }
        
/* Affiche une séparation */
        
if (maxdb_more_results($link)) {
        
printf("-----------------\n");
        }
    } while (
maxdb_next_result($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a

Voir aussi



maxdb_next_result

maxdb->next_result

(PECL maxdb >= 1.0)

maxdb_next_result -- maxdb->next_resultPrépare le prochain résultat depuis multi_query

Description

bool maxdb_next_result ( resource $link )

Vu que les requêtes multiples ne sont pas encore implémentées, maxdb_next_result() retourne toujours FALSE.

Valeurs de retour

Retourne FALSE.

Voir aussi



maxdb_num_fields

maxdb_num->field_count

(PECL maxdb >= 1.0)

maxdb_num_fields -- maxdb_num->field_countRécupère le nombre de champs dans un résultat

Description

Style procédural

int maxdb_num_fields ( resource $result )

Style orienté objet

int $field_count;

maxdb_num_fields() retourne le nombre de champs pour un jeu de résultats spécifique.

Valeurs de retour

Le nombre de champs dans un jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$result $maxdb->query("SELECT * FROM hotel.city ORDER BY zip")) {

    
/* Détermine le nombre de champs dans le jeu de résultats */
    
$field_cnt $result->field_count;

    
printf("Le résultat contient %d champs.\n"$field_cnt);

    
/* Fermeture du jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$result maxdb_query($link"SELECT * FROM hotel.city ORDER BY zip")) {

    
/* Détermine le nombre de champs dans le jeu de résultats */
    
$field_cnt maxdb_num_fields($result);

    
printf("Le résultat contient %d champs.\n"$field_cnt);

    
/* Fermeture du jeu de résultats */
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le résultat contient 3 champs.

Voir aussi



maxdb_num_rows

maxdb->num_rows

(PECL maxdb >= 1.0)

maxdb_num_rows -- maxdb->num_rowsRécupère le nombre de lignes dans un résultat

Description

Style procédural

int maxdb_num_rows ( resource $result )

Style orienté objet

int $num_rows;

Retourne le nombre de lignes dans un jeu de résultats.

L'utilisation de la fonction maxdb_num_rows() dépend si vous utilisez des jeux de résultats bufferisés ou non. Dans le cas où vous utilisez des jeux de résultats non bufferisés, maxdb_num_rows() ne retournera pas un nombre de lignes correct tant que toutes les lignes du jeu de résultats n'auront pas été récupérées.

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Note:

Si le nombre de lignes est plus grand que la valeur maximale pour un entier, le nombre sera retourné en tant que chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$result $maxdb->query("SELECT cno, name FROM hotel.customer ORDER BY name")) {

    
/* Détermine le nombre de lignes dans le jeu de résultats */
    
$row_cnt $result->num_rows;

    
printf("Le résultat contient %d lignes.\n"$row_cnt);

    
/* Fermeture du jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$result maxdb_query($link"SELECT cno, name FROM hotel.customer ORDER BY name")) {

    
/* Détermine le nombre de lignes dans le jeu de résultats */
    
$row_cnt maxdb_num_rows($result);

    
printf("Le résultat contient %d lignes.\n"$row_cnt);

    
/* Fermeture du jeu de résultats */
    
maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le résultat contient 15 lignes.

Voir aussi



maxdb_options

maxdb::options

(PECL maxdb >= 1.0)

maxdb_options -- maxdb::optionsDéfinie des options

Description

Style procédural

bool maxdb_options ( resource $link , int $option , mixed $value )

Style orienté objet

bool maxdb::options ( int $option , mixed $value )

maxdb_options() peut être utilisé pour définir des options de connexion supplémentaire et affecte le comportement de cette connexion.

Cette fonction peut être appelée plusieurs fois pour définir différentes options.

maxdb_options() doit être appelé après maxdb_init() et avant maxdb_real_connect().

Le paramètre option est l'option que vous voulez définir, le paramètre value est la valeur de cette option. Pour plus de descriptions sur ces options, lisez » http://maxdb.sap.com/documentation/. Le paramètre option peut être une des valeurs suivantes :

Options valides
Nom Description
MAXDB_COMPNAME Le composant "name" utilisé pour initialiser l'environnement d'exécution SQLDBC.
MAXDB_APPLICATION L'application à connecter à la base de données.
MAXDB_APPVERSION La version de l'application.
MAXDB_SQLMODE Le mode SQL.
MAXDB_UNICODE TRUE si la connexion est un client unicode(UCS2), FALSE sinon.
MAXDB_TIMEOUT Le délai maximal d'inactivité autorisé après lequel la connexion à la base de données sera fermée par le système.
MAXDB_ISOLATIONLEVEL Spécifie si oui ou non et combien de verrous partagés et de verrous exclusifs sont demandés ou libérés implicitement.
MAXDB_PACKETCOUNT Le nombre de paquets différents utilisés pour la connexion.
MAXDB_STATEMENTCACHESIZE Le nombre de requêtes préparées à être mises en cache pour la connexion pour être réutilisées.
MAXDB_CURSORPREFIX Le préfixe à utiliser pour les tables résultantes qui sont automatiquement nommées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir la documentation de la fonction maxdb_real_connect().

Voir aussi

  • maxdb_init() - Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
  • maxdb_real_connect() - Ouvre une connexion sur un serveur MaxDB



maxdb_param_count

(PECL maxdb 1.0)

maxdb_param_countAlias de maxdb_stmt_param_count()

Description

Cette fonction est un alias de : maxdb_stmt_param_count().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_ping

maxdb::ping

(PECL maxdb >= 1.0)

maxdb_ping -- maxdb::pingTest une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue

Description

Style procédural

bool maxdb_ping ( resource $link )

Style orienté objet

bool maxdb::ping ( void )

Vérifie si la connexion au serveur est active. Si elle a été interrompue et que l'option globale maxdb.reconnect est active, une reconnexion automatique est tentée.

Cette fonction peut être utilisée par les clients qui restent en attente durant de grande période, pour vérifier si la connexion a été interrompue par le serveur et pour se reconnecter si nécessaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Vérifie si la connexion est active */
if ($maxdb->ping()) {
    
printf ("Notre connexion est Ok !\n");
} else {
    
printf ("Erreur : %s\n"$maxdb->error);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Vérifie si la connexion est active */
if (maxdb_ping($link)) {
    
printf ("Notre connexion est Ok !\n");
} else {
    
printf ("Erreur : %s\n"maxdb_error($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notre connexion est Ok !


maxdb_prepare

maxdb::prepare

(PECL maxdb >= 1.0)

maxdb_prepare -- maxdb::preparePrépare une requête SQL pour exécution

Description

Style procédural

resource maxdb_prepare ( resource $link , string $query )

Style orienté objet

maxdb_stmt maxdb::prepare ( string $query )

maxdb_prepare() prépare la requête SQL pointée par la chaîne de requête et retourne un gestionnaire de requête à utiliser pour les opérations futures sur la requête. La requête doit être composée d'une seule requête SQL.

Note:

Vous ne devez pas ajouter de point-virgule ou de \g à la fin de la requête.

Le paramètre query peut inclure un ou plusieurs marqueurs dans la requête SQL en y intégrant des point d'interrogations (?) aux positions voulues.

Note:

Les marqueurs sont autorisés uniquement à des positions précises dans les requêtes SQL. Par exemple, ils sont autorisés dans la liste VALUE() d'une requête INSERT (pour spécifier une valeur de colonne pour une ligne), ou dans une comparaison avec une colonne dans une clause WHERE pour spécifier une valeur de comparaison.

Cependant, ils ne sont pas autorisés pour les identifiants (comme les noms de tables ou de colonnes), dans la liste SELECT qui nomme les colonnes à être retournées par les requêtes SELECT), ou pour spécifier les opérants d'un opérateur binaire comme le signe égal (=). La dernière restriction est nécessaire car il est impossible de déterminer le type du paramètre. En général, les paramètres sont légaux uniquement dans les requêtes Data Manipulation Languange (DML) et non dans les requêtes Data Defination Language (DDL).

Les marqueurs doit être liés aux variables en utilisant les fonctions maxdb_stmt_bind_param() et/ou maxdb_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Valeurs de retour

maxdb_prepare() retourne une ressource de requête ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec dela connexion : %s\n"maxdb_connect_error());
    exit();
}

$city "Rosemont";

/* Création d'une requête préparée */
if ($stmt $maxdb->prepare("SELECT state FROM hotel.city WHERE name=?")) {

    
/* Lie les paramètres aux marqueurs */
    
$stmt->bind_param("s"$city);

    
/* Exécute la requête */
    
$stmt->execute();

    
/* Lie les variables de résultats */
    
$stmt->bind_result($district);

    
/* Récupération des valeurs */
    
$stmt->fetch();

    
printf("%s est dans %s\n"$city$district);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec dela connexion : %s\n"maxdb_connect_error());
    exit();
}

$city "Rosemont";

/* Création d'une requête préparée */
if ($stmt maxdb_prepare($link"SELECT state FROM hotel.city WHERE name=?")) {

     
/* Lie les paramètres aux marqueurs */
     
maxdb_stmt_bind_param($stmt"s"$city);

     
/* Exécute la requête */
     
maxdb_stmt_execute($stmt);

     
/* Lie les variables de résultats */
     
maxdb_stmt_bind_result($stmt$district);

     
/* Récupération des valeurs */
     
maxdb_stmt_fetch($stmt);

     
printf("%s est dans %s\n"$city$district);

     
/* Fermeture de la requête */
     
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Rosemont est dans IL

Voir aussi



maxdb_query

maxdb::query

(PECL maxdb >= 1.0)

maxdb_query -- maxdb::queryExécute une requête sur une base de données

Description

Style procédural

mixed maxdb_query ( resource $link , string $query [, int $resultmode ] )

Style orienté objet

mixed maxdb::query ( string $query )

maxdb_query() est utilisé pour simplifier l'exécution d'une requête sur une base de données représentée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Pour les requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN, maxdb_query() retourne une ressource de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* La création d'une table ne retourne pas de jeu de résultats*/
if ($maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
    
printf("La table mycity a été créée avec succès.\n");
}

/* Les requêtes SELECT retournent un jeu de résultats */
if ($result $maxdb->query("SELECT name FROM hotel.city")) {
    
printf("SELECT a retourné %d lignes.\n"$result->num_rows);

    
/* Libération des résultats */
    
$result->close();
}

/* Si nous devons récupérer une grosse quantité de données, nous utilisons MAXDB_USE_RESULT */
if ($result $maxdb->query("SELECT * FROM hotel.city"MAXDB_USE_RESULT)) {
    
$result->close();
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* La création d'une table ne retourne pas de jeu de résultats */
if (maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
    
printf("La table mycity a été créée avec succès.\n");
}

/* Les requêtes SELECT retournent un jeu de résultats */
if ($result maxdb_query($link"SELECT name FROM hotel.city")) {
    
printf("SELECT a retourné %d lignes.\n"maxdb_num_rows($result));

    
/* Libération des résultats */
    
maxdb_free_result($result);
}

/* Si nous devons récupérer une grosse quantité de données, nous utilisons MAXDB_USE_RESULT */
if ($result maxdb_query($link"SELECT * FROM hotel.city"MAXDB_USE_RESULT)) {
    
maxdb_free_result($result);
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La table mycity a été créée avec succès.
SELECT a retourné 25 lignes.

Voir aussi



maxdb_real_connect

maxdb::real_connect

(PECL maxdb >= 1.0)

maxdb_real_connect -- maxdb::real_connectOuvre une connexion sur un serveur MaxDB

Description

Style procédural

bool maxdb_real_connect ( resource $link [, string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

Style orienté objet

bool maxdb::real_connect ([ string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

maxdb_real_connect() tente d'ouvrir une connexion sur un serveur MaxDB fonctionnant sur l'hôte hostname.

Cette fonction diffère de maxdb_connect() :

  • maxdb_real_connect() nécessite une ressource valide créée par la fonction maxdb_init().

  • Avec la fonction maxdb_options(), vous pouvez définir plusieurs options pour la connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php

/* Création d'un objet de connexion qui n'est pas connecté */
$maxdb maxdb_init();

/* Définition des options de connexion */
$maxdb->options(MAXDB_UNICODE"FALSE");
$maxdb->options(MAXDB_TIMEOUT5);

/* Connexion au serveur */
$maxdb->real_connect('localhost''MONA''RED''DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

printf ("Connexion : %s\n."$maxdb->host_info);

$maxdb->close();
?>

Exemple #2 Style procédural

<?php

/* Création d'un objet de connexion qui n'est pas connecté */
$link maxdb_init();

/* Définition des options de connexion */
maxdb_options($linkMAXDB_UNICODE"FALSE");
maxdb_options($linkMAXDB_TIMEOUT5);

/* Connexion au serveur */
maxdb_real_connect($link'localhost''MONA''RED''DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

printf ("Connexion : %s\n."maxdb_get_host_info($link));

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connexion: localhost <...>

Voir aussi



maxdb_real_escape_string

maxdb::real_escape_string

(PECL maxdb >= 1.0)

maxdb_real_escape_string -- maxdb::real_escape_stringProtège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion

Description

Style procédural

string maxdb_real_escape_string ( resource $link , string $escapestr )

Style orienté objet

string maxdb::real_escape_sring ( string $escapestr )

Cette fonction est utilisée pour créer une chaîne SQL valide que vous pouvez utiliser dans une requête SQL. La chaîne escapestr est encodée en une chaîne échappée SQL, en tenant compte du jeu de caractères courant de la connexion.

Les caractères encodés sont ', ".

Valeurs de retour

Retourne une chaîne échappée.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$city "'s Hertogenbosch";

/* Cette requête échouera, car nous n'avons pas échappé $city */
if (!$maxdb->query("INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
    
printf("Erreur : %s\n"$maxdb->sqlstate);
}

$city $maxdb->real_escape_string($city);

/* Cette requête, avec $city échappé, fonctionnera */
if ($maxdb->query("INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
    
printf("%d ligne insérée.\n"$maxdb->affected_rows);
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");

$city "'s Hertogenbosch";

/* Cette requête échouera, car nous n'avons pas échappé $city */
if (!maxdb_query($link"INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
    
printf("Erreur : %s\n"maxdb_sqlstate($link));
}

$city maxdb_real_escape_string($link$city);

/* Cette requête, avec $city échappé, fonctionnera */
if (maxdb_query($link"INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
    
printf("%d ligne insérée.\n"maxdb_affected_rows($link));
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Erreur : 42000
1 ligne insérée.

Voir aussi



maxdb_real_query

maxdb::real_query

(PECL maxdb >= 1.0)

maxdb_real_query -- maxdb::real_queryExécute une requête SQL

Description

Style procédural

bool maxdb_real_query ( resource $link , string $query )

Style orienté objet

bool maxdb::real_query ( string $query )

maxdb_real_query() est identique au niveau fonctionnalité que la fonction maxdb_query().

Note:

Pour déterminer si une requête donnée doit retourner un jeu de résultats ou non, référez-vous à la fonction maxdb_field_count().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



maxdb_report

(PECL maxdb 1.0)

maxdb_reportActive ou désactive le rapport interne des fonctions

Description

bool maxdb_report ( int $flags )

Liste de paramètres

flags

Une des constantes MAXDB_REPORT_XXX.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style procédural

<?php
/* Active les rapports */
maxdb_report(MAXDB_REPORT_ERROR);

$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Cette requête doit produire une erreur */
$result maxdb_query($link,"SELECT Name FROM Nonexistingtable WHERE population > 50000");

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -4004 POS(18) Unknown table name:NONEXISTINGTABLE <...>


maxdb_rollback

maxdb::rollback

(PECL maxdb >= 1.0)

maxdb_rollback -- maxdb::rollbackAnnule la transaction courante

Description

Style procédural

bool maxdb_rollback ( resource $link )

Style orienté objet

bool maxdb::rollback ( void )

Annule la transaction courante pour la base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
$maxdb->autocommit(FALSE);

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* Exécution */
$maxdb->commit();

/* Efface toutes les lignes */
$maxdb->query("DELETE FROM temp.mycity");

if (
$result $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
    
$row $result->fetch_row();
    
printf("%d rows in table mycity.\n"$row[0]);
    
/* Free result */
    
$result->close();
}

/* Rollback */
$maxdb->rollback();

if (
$result $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
    
$row $result->fetch_row();
    
printf("%d ligne dans la table mycity (après annulation).\n"$row[0]);
    
/* Libération du résultat */
    
$result->close();
}

/* Effacement de la table myCity */
$maxdb->query("DROP TABLE temp.mycity");

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
maxdb_autocommit($linkFALSE);

maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link"INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* Exécution */
maxdb_commit($link);

/* Efface toutes les lignes */
maxdb_query($link"DELETE FROM temp.mycity");

if (
$result maxdb_query($link"SELECT COUNT(*) FROM temp.mycity")) {
    
$row maxdb_fetch_row($result);
    
printf("%d ligne dans la table mycity.\n"$row[0]);
    
/* Libération du résultats */
    
maxdb_free_result($result);
}

/* Annulation */
maxdb_rollback($link);

if (
$result maxdb_query($link"SELECT COUNT(*) FROM temp.mycity")) {
    
$row maxdb_fetch_row($result);
    
printf("%d lignes dans la table mycity (après annulation).\n"$row[0]);
    
/* Libération du résultat */
    
maxdb_free_result($result);
}

/* Effacement de la table myCity */
maxdb_query($link"DROP TABLE temp.mycity");

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0 ligne dans la table mycity.
25 lignes dans la table mycity (après annulation).

Voir aussi



maxdb_rpl_parse_enabled

(PECL maxdb >= 1.0)

maxdb_rpl_parse_enabledVérifie si l'analyseur RPL est activé

Description

int maxdb_rpl_parse_enabled ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_rpl_probe

(PECL maxdb >= 1.0)

maxdb_rpl_probeTest RPL

Description

bool maxdb_rpl_probe ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_rpl_query_type

maxdb::rpl_query_type

(PECL maxdb >= 1.0)

maxdb_rpl_query_type -- maxdb::rpl_query_typeRetourne une requête de type RPL

Description

Style procédural

int maxdb_rpl_query_type ( resource $link )

Style orienté objet

int maxdb::rpl_query_type ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_select_db

maxdb->select_db

(PECL maxdb >= 1.0)

maxdb_select_db -- maxdb->select_dbSélectionne une base de données pour les requêtes

Description

bool maxdb_select_db ( resource $link , string $dbname )

maxdb_select_db() sélectionne la base de données (spécifiée par le paramètre dbname) a être utilisée lors de l'exécution de requête sur la connexion représentée par le paramètre link.

Note:

Cette fonction ne doit être utilisée que pour changer de base de données pour une connexion donnée. Vous pouvez sélectionner une base de données par défaut en utilisant le quatrième paramètres dans la fonction maxdb_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    
$row $result->fetch_row();
    
printf("La base de données par défaut est %s.\n"$row[0]);
    
$result->close();
}

/* Changement de base de données en une base inexistante */
$maxdb->select_db("XXXXXXXX");

/* Retourne le nom de la base de données courante */
if ($result $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    
$row $result->fetch_row();
    
printf("La base de données courante est %s.\n"$row[0]);
    
$result->close();
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result maxdb_query($link"SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    
$row maxdb_fetch_row($result);
    
printf("La base de données par défaut est %s.\n"$row[0]);
    
maxdb_free_result($result);
}

/* Changement de base de données en une base inexistante */
maxdb_select_db($link"XXXXXXXX");

/* Retourne le nom de la base de données courante */
if ($result maxdb_query($link"SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    
$row maxdb_fetch_row($result);
    
printf("La base de données courante est %s.\n"$row[0]);
    
maxdb_free_result($result);
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La base de données courante est <...>.

Warning: maxdb_select_db(): -10709 Connection failed (RTE:database not running) <...>

Warning: maxdb_query(): -10821 Session not connected [] <...>

Warning: maxdb_close(): -10821 Session not connected [] <...>

Voir aussi



maxdb_send_long_data

(PECL maxdb >= 1.0)

maxdb_send_long_dataAlias de maxdb_stmt_send_long_data()

Description

Cette fonction est un alias de : maxdb_stmt_send_long_data().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



maxdb_send_query

maxdb::send_query

(PECL maxdb >= 1.0)

maxdb_send_query -- maxdb::send_queryEnvoie une requête et retourne

Description

Style procédural

bool maxdb_send_query ( resource $link , string $query )

Style orienté objet

bool maxdb::send_query ( string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_server_end

(PECL maxdb >= 1.0)

maxdb_server_endÉteint un serveur embarqué

Description

void maxdb_server_end ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_server_init

(PECL maxdb >= 1.0)

maxdb_server_initInitialise un serveur embarqué

Description

bool maxdb_server_init ([ array $server [, array $groups ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_set_opt

(PECL maxdb 1.0)

maxdb_set_optAlias de maxdb_options()

Description

Cette fonction est un alias de : maxdb_options().



maxdb_sqlstate

maxdb->sqlstate

(PECL maxdb >= 1.0)

maxdb_sqlstate -- maxdb->sqlstateRetourne l'erreur SQLSTATE depuis la dernière opération MaxDB

Description

Style procédural

string maxdb_sqlstate ( resource $link )

Style orienté objet

string $sqlstate;

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur. Les valeurs sont spécifiées par ANSI SQL et ODBC.

Note:

Notez que toutes les erreurs MaxDB ne sont pas encore implémentées dans SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs non implémentées.

Valeurs de retour

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* La table City existe déjà, donc nous devrions avoir une erreur */
if (!$maxdb->query("CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
    
printf("Erreur - SQLSTATE %s.\n"$maxdb->sqlstate);
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* La table City existe déjà, donc nous devrions avoir une erreur */
if (!maxdb_query($link"CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
    
printf("Erreur - SQLSTATE %s.\n"maxdb_sqlstate($link));
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
Erreur - SQLSTATE I6000.

Voir aussi

  • maxdb_errno() - Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_error() - Retourne une chaîne représentant la dernière erreur



maxdb_ssl_set

maxdb::ssl_set

(PECL maxdb >= 1.0)

maxdb_ssl_set -- maxdb::ssl_setUtilisé pour établir une connexion sécurisée utilisant SSL

Description

Style procédural

bool maxdb_ssl_set ( resource $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Style orienté objet

bool maxdb::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_stat

maxdb::stat

(PECL maxdb >= 1.0)

maxdb_stat -- maxdb::statRécupère le statut courant du système

Description

Style procédural

string maxdb_stat ( resource $link )

Style orienté objet

string maxdb::stat ( void )

maxdb_stat() retourne une chaîne contenant plusieurs informations concernant le serveur MaxDB.

Valeurs de retour

Une chaîne décrivant le statut du serveur ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

printf ("Statut du système : %s\n"$maxdb->stat());

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

printf("Statut du système : %s\n"maxdb_stat($link));

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Statut du système : Kernel    7<...>

Voir aussi



maxdb_stmt_affected_rows

maxdb_stmt->affected_rows

(PECL maxdb >= 1.0)

maxdb_stmt_affected_rows -- maxdb_stmt->affected_rowsRetourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

Description

Style procédural

int maxdb_stmt_affected_rows ( resource $stmt )

Style orienté objet

int $affected_rows;

maxdb_stmt_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE. Si la dernière requête est invalide ou si le nombre de lignes ne peut être déterminé, cette fonction retournera -1.

Valeurs de retour

Un entier plus grand que zéro indique le nombre de lignes affectées ou récupérées. Zéro indique qu'aucun enregistrement n'a été mis à jour pour une requête UPDATE/DELETE; aucune ligne ne correspond à la clause WHERE d'une requête ou bien qu'aucun requête n'a été exécutée pour le moment. -1 indique que la requête a retournée une erreur ou bien que le nombre de lignes n'a pu être déterminé.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Création d'une table temporaire */
$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$query "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* Prépare une requête */
if ($stmt $maxdb->prepare($query)) {

    
/* Lie les variables à un endroit */
    
$code 'N%';
    
$stmt->bind_param("s"$code);

    
/* Exécute la requête */
    
$stmt->execute();

    
printf("Lignes insérées : %d\n"$stmt->affected_rows);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Création d'une table temporaire */
maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");

$query "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* Prépare une requête */
if ($stmt maxdb_prepare($link$query)) {

    
/* Lie les variables à un endroit */
    
$code 'N%';
    
maxdb_stmt_bind_param($stmt"s"$code);

    
/* Exécute la requête */
    
maxdb_stmt_execute($stmt);

    
printf("Lignes insérées : %d\n"maxdb_stmt_affected_rows($stmt));

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes insérées : 4

Voir aussi



maxdb_stmt_bind_param

maxdb_stmt::bind_param

(PECL maxdb >= 1.0)

maxdb_stmt_bind_param -- maxdb_stmt::bind_paramLie les variables à une requête préparée en tant que paramètres

Description

Style procédural

bool maxdb_stmt_bind_param ( resource $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Style orienté objet

bool maxdb_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Style procédural (syntaxe étendue) :

bool maxdb_stmt_bind_param ( resource $stmt , string $types , array &$var )

Style orienté objet (syntaxe étendue) :

bool maxdb_stmt::bind_param ( string $types , array &$var )

maxdb_stmt_bind_param() est utilisé pour lier les variables pour les marqueurs dans la requête SQL qui a été passée à maxdb_prepare(). La chaîne types contient un ou plusieurs caractères qui spécifient le(s) type(s) correspondant aux variables liées.

La syntaxe étendue de maxdb_stmt_bind_param() permet de passer les paramètres en tant que tableaux plutôt qu'en tant que listes de variables PHP à la fonction. Si le tableau de variables n'a pas été utilisé avant l'appel à la fonction maxdb_stmt_bind_param(), il doit être initialisé en tant que tableau vide. Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() avec la syntaxe étendue.

Les variables pour les requêtes SELECT INTO SQL peuvent également être liées en utilisant la fonction maxdb_stmt_bind_param(). Les paramètres pour les procédures de base de données peuvent être liés en utilisant la fonction maxdb_stmt_bind_param(). Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() dans ce cas.

Si une variable liée comme variable INTO à une requête SQL a été utilisée avant, le contenu de cette variable sera écrasé par les données de la requête SELECT INTO. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Pour les paramètres INOUT des procédures de base de données, le contenu de la variable liée INOUT sera écrasé par la valeur de sortie de la procédure de la base de données. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Caractères spécifiant les types
Caractères Description
i correspond à une variable de type entier
d correspond à une variable de type nombre décimal
s correspond à une variable de type chaîne de caractères
b correspond à une variable de type blob et sera envoyée dans le paquet

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb('localhost''MONA''RED''DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss'$zip$name$state);

$zip '11111';
$name 'Georgetown';
$state 'NY';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n"$stmt->affected_rows);

/* Fermeture de la requête */
$stmt->close();

/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n"$maxdb->affected_rows);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query ($link"CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link"INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt maxdb_prepare($link"INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt'sss'$zip$name$state);

$zip '11111';
$name 'Georgetown';
$state 'NY';

/* Exécution de la requête préparée */
maxdb_stmt_execute($stmt);

printf("%d ligne insérée.\n"maxdb_stmt_affected_rows($stmt));

/* Fermeture de la requête */
maxdb_stmt_close($stmt);

/* Nettoyage de la table CountryLanguage */
maxdb_query($link"DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n"maxdb_affected_rows($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 ligne insérée.
1 ligne effacée.

Exemple #3 Style procédural (SELECT INTO)

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Exécution d'une requête SQL */
$stmt maxdb_prepare ($link"SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!
$stmt) {
    
printf ("Echec de la préparation : %s\n"maxdb_error($link));
}

$hno "50";
$rtype "suite";

maxdb_stmt_bind_param($stmt'dss'$price$hno$rtype);
maxdb_stmt_execute($stmt);

printf ("%f\n"$price);

maxdb_stmt_close ($stmt);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

21.600000

Exemple #4 Style procédural (avec procédure de base)

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link$query);

/* Exécution d'une requête SQL */
$stmt maxdb_prepare ($link"CALL test_proc (?)");
if (!
$stmt) {
    
printf ("Echec de la préparation : %s\n"maxdb_error($link));
}

maxdb_stmt_bind_param($stmt's'$result);
maxdb_stmt_execute($stmt);

printf ("%s\n"$result);

maxdb_stmt_close ($stmt);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a

Exemple #5 Style orienté objet (syntaxe étendue)

<?php
$maxdb 
= new maxdb('localhost''MONA''RED''DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Connect failed: %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");

$arr = array();

$stmt->bind_param('iss'$arr);

$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n"maxdb_stmt_affected_rows($stmt));

$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n"$stmt->affected_rows);

/* Fermeture de la requête et de la connexion */
$stmt->close();

$result $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if (
$result) {
    while (
$row $result->fetch_row()) {
        
printf ("%s %s %s\n"$row[0], $row[1], $row[2]);
    }
}

/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d lignes effacées.\n"$maxdb->affected_rows);

/* Fermeture de la connexion */
$maxdb->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 ligne insérée.
1 ligne insérée.
11111 Georgetown NY
22222 New Orleans LA
2 lignes effacées.

Voir aussi



maxdb_stmt_bind_result

maxdb_stmt::bind_result

(PECL maxdb >= 1.0)

maxdb_stmt_bind_result -- maxdb_stmt::bind_resultLie les variables à une requête préparée pour stockage du résultat

Description

Style procédural

bool maxdb_stmt_bind_result ( resource $stmt , mixed &$var1 [, mixed &$... ] )

Style orienté objet

bool maxdb_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )

maxdb_stmt_bind_result() est utilisé pour associer (lier) les colonnes du jeu de résultats à des variables. Lorsque maxdb_stmt_fetch() est appelé pour récupérer les données, Le protocole client/serveur MaxDB place les données pour les colonnes liées dans les variables spécifiées var1, ....

Note:

Notez que toutes les colonnes doivent être liées avant l'appel à maxdb_stmt_fetch(). Les variables liées peuvent être modifiées en leur type PHP correspondant suivant le type des colonnes.

Une colonne peut être liée ou reliée à n'importe quel moment, y compris après la récupération d'une partie du jeu de résultats. La nouvelle association prend effet au prochain appel à maxdb_stmt_fetch().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

if (
maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt $maxdb->prepare("SELECT zip, name FROM hotel.city ORDER BY name")) {
    
$stmt->execute();

    
/* Lie les variables à la requête préparée */
    
$stmt->bind_result($col1$col2);

    
/* Récupération des valeurs */
    
while ($stmt->fetch()) {
        
printf("%s %s\n"$col1$col2);
    }

    
/* Fermeture de la requête */
    
$stmt->close();
}
/* Fermeture de la connexion */
$maxdb->close();

?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (!$link) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt maxdb_prepare($link"SELECT zip, name FROM hotel.city ORDER BY name")) {
    
maxdb_stmt_execute($stmt);

    
/* Lie les variables à la requête préparée */
    
maxdb_stmt_bind_result($stmt$col1$col2);

    
/* Récupération des valeurs */
    
while (maxdb_stmt_fetch($stmt)) {
        
printf("%s %s\n"$col1$col2);
    }

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

12203 Albany
60601 Chicago
60615 Chicago
45211 Cincinnati
33575 Clearwater
75243 Dallas
32018 Daytona Beach
33441 Deerfield Beach
48226 Detroit
90029 Hollywood
92714 Irvine
90804 Long Beach
11788 Long Island
90018 Los Angeles
70112 New Orleans
10019 New York
10580 New York
92262 Palm Springs
97213 Portland
60018 Rosemont
95054 Santa Clara
20903 Silver Spring
20005 Washington
20019 Washington
20037 Washington

Voir aussi



maxdb_stmt_close_long_data

maxdb_stmt::close_long_data

(PECL maxdb 1.0)

maxdb_stmt_close_long_data -- maxdb_stmt::close_long_dataTermine une séquence maxdb_stmt_send_long_data()

Description

Style procédural

bool maxdb_stmt_close_long_data ( resource $stmt , int $param_nr )

Style orienté objet

bool maxdb_stmt::close_long_data ( void )

Cette fonction doit être appelée après une séquence de maxdb_stmt_send_long_data(), qui a été commencée après maxdb_execute().

param_nr indique quel paramètre à associer avec la fin des données. Les paramètres sont numérotés en commençant à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



maxdb_stmt_close

maxdb_stmt::close

(PECL maxdb >= 1.0)

maxdb_stmt_close -- maxdb_stmt::closeFerme une requête préparée

Description

Style procédural

bool maxdb_stmt_close ( resource $stmt )

Style orienté objet

bool maxdb_stmt::close ( void )

Ferme une requête préparée. maxdb_stmt_close() Libère également le gestionnaire de requête représenté par stmt. Si la requête courante est en attente ou a des résultats non lus, cette fonction s'interrompt et ainsi, la prochaine requête peut être exécutée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



maxdb_stmt_data_seek

maxdb_stmt::data_seek

(PECL maxdb >= 1.0)

maxdb_stmt_data_seek -- maxdb_stmt::data_seekSe positionne sur une ligne arbitraire dans le jeu de résultats

Description

Style procédural

bool maxdb_stmt_data_seek ( resource $statement , int $offset )

Style orienté objet

bool maxdb_stmt::data_seek ( int $offset )

maxdb_stmt_data_seek() déplace le pointeur sur une ligne arbitraire offset du jeu de résultat statement. Le paramètre offset doit être compris entre zéro et le nombre total de lignes moins un (0..maxdb_stmt_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, zip FROM hotel.city ORDER BY name";
if (
$stmt $maxdb->prepare($query)) {

    
/* Exécute une requête */
    
$stmt->execute();

    
/* Lie les variables de résultats */
    
$stmt->bind_result($name$code);

    
/* Stock le résultat */
    
$stmt->store_result();

    
/* Se place sur la ligne no. 5 */
    
$stmt->data_seek(5);

    
/* Récupère les valeurs */
    
$stmt->fetch();

    
printf ("Ville : %s  Code postal : %s\n"$name$code);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, zip FROM hotel.city ORDER BY name";
if (
$stmt maxdb_prepare($link$query)) {

    
/* Exécute une requête */
    
maxdb_stmt_execute($stmt);

    
/* Lie les variables de résultats */
    
maxdb_stmt_bind_result($stmt$name$code);

    
/* Stock le résultat */
    
maxdb_stmt_store_result($stmt);

    
/* Se place sur la ligne no. 5 */
    
maxdb_stmt_data_seek($stmt5);

    
/* Récupère les valeurs */
    
maxdb_stmt_fetch($stmt);

    
printf ("Ville : %s  Code postal : %s\n"$name$code);

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ville : Dallas  Code postal : 75243

Voir aussi



maxdb_stmt_errno

maxdb_stmt->errno

(PECL maxdb >= 1.0)

maxdb_stmt_errno -- maxdb_stmt->errnoRetourne le code erreur pour le dernier appel à une fonction de requête

Description

Style procédural

int maxdb_stmt_errno ( resource $stmt )

Style orienté objet

int $errno;

Pour la requête spécifiée par le paramètre stmt, maxdb_stmt_errno() retourne le code erreur pour l'appel le plus récent à une fonction de requête, qu'elle ait réussie ou échouée.

Note:

Pour une liste des codes erreurs possibles, lisez la documentation SQLDBC: » http://maxdb.sap.com/documentation/.

Valeurs de retour

Un code erreur. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");


$query "SELECT name, zip FROM temp.mycity ORDER BY name";
if (
$stmt $maxdb->prepare($query)) {

    
/* Efface une table */
    
$maxdb->query("DROP TABLE temp.mycity");

    
/* Exécute une requête */
    
$stmt->execute();

    
printf("Erreur : %d.\n"$stmt->errno);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link"INSERT INTO temp.mycity SELECT * FROM hotel.city");


$query "SELECT name, zip FROM temp.mycity ORDER BY name";
if (
$stmt maxdb_prepare($link$query)) {

    
/* Efface une table */
    
maxdb_query($link"DROP TABLE temp.mycity");

    
/* Exécute une requête */
    
maxdb_stmt_execute($stmt);

    
printf("Erreur : %d.\n"maxdb_stmt_errno($stmt));

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : -4004.

Voir aussi



maxdb_stmt_error

maxdb_stmt->error

(PECL maxdb >= 1.0)

maxdb_stmt_error -- maxdb_stmt->errorRetourne une description de la dernière erreur

Description

Style procédural

string maxdb_stmt_error ( resource $stmt )

Style orienté objet

string $error;

Pour la requête spécifiée par le paramètre stmt, maxdb_stmt_error() retourne un message d'erreur correspondant à la fonction de requête la plus récente, qu'elle ait échouée ou réussie.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide s'il n'y a aucune erreur.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouverture d'une connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");


$query "SELECT name, zip FROM temp.mycity ORDER BY name";
if (
$stmt $maxdb->prepare($query)) {

    
/* Effacement de la table */
    
$maxdb->query("DROP TABLE temp.mycity");

    
/* Exécute une requête */
    
$stmt->execute();

    
printf("Erreur : %s.\n"$stmt->error);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouverture d'une connexion */
$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link"INSERT INTO temp.mycity SELECT * FROM hotel.city");


$query "SELECT name, zip FROM temp.mycity ORDER BY name";
if (
$stmt maxdb_prepare($link$query)) {

    
/* Effacement de la table */
    
maxdb_query($link"DROP TABLE temp.mycity");

    
/* Exécute une requête */
    
maxdb_stmt_execute($stmt);

    
printf("Erreur : %s.\n"maxdb_stmt_error($stmt));

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : POS(23) Unknown table name:MYCITY.

Voir aussi



maxdb_stmt_execute

maxdb_stmt::execute

(PECL maxdb >= 1.0)

maxdb_stmt_execute -- maxdb_stmt::executeExécute une requête préparée

Description

Style procédural

bool maxdb_stmt_execute ( resource $stmt )

Style orienté objet

bool maxdb_stmt::execute ( void )

maxdb_stmt_execute() exécute une requête qui a été préparée auparavant en utilisant la fonction maxdb_prepare() représenté par la ressource stmt. Lors de l'exécution, tous les marqueurs existants seront automatiquement remplacés par les données appropriées.

Si la requête est du type UPDATE, DELETE ou INSERT, le nombre total de lignes affectées peut être déterminé en utilisant la fonction maxdb_stmt_affected_rows(). De même, si la requête rapporte un jeu de résultats, la fonction maxdb_fetch() est utilisée.

Note:

Lors de l'utilisation de la fonction maxdb_stmt_execute(), la fonction maxdb_fetch() doit être utilisée pour récupérer les données avant d'effectuer toute autre requête additionnelle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* Prépare une requête d'insertion */
$query "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt $maxdb->prepare($query);

$stmt->bind_param("sss"$val1$val2$val3);

$val1 '11111';
$val2 'Georgetown';
$val3 'NY';

/* Exécute la requête */
$stmt->execute();

$val1 '22222';
$val2 'Hubbatown';
$val3 'CA';

/* Exécute la requête */
$stmt->execute();

/* Fermeture de la requête */
$stmt->close();

/* Récupère toutes les lignes depuis myCity */
$query "SELECT zip, name, state FROM temp.mycity";
if (
$result $maxdb->query($query)) {
    while (
$row $result->fetch_row()) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* Libération du jeu de résultats */
    
$result->close();
}

/* Effacement de la table */
$maxdb->query("DROP TABLE temp.mycity");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");

/* Prépare une requête d'insertion */
$query "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt maxdb_prepare($link$query);

maxdb_stmt_bind_param($stmt"sss"$val1$val2$val3);

$val1 '11111';
$val2 'Georgetown';
$val3 'NY';

/* Exécute la requête */
maxdb_stmt_execute($stmt);

$val1 '22222';
$val2 'Hubbatown';
$val3 'CA';

/* Exécute la requête */
maxdb_stmt_execute($stmt);

/* Fermeture de la requête */
maxdb_stmt_close($stmt);

/* Récupère toutes les lignes depuis myCity */
$query "SELECT zip, name, state FROM temp.mycity";
if (
$result maxdb_query($link$query)) {
    while (
$row maxdb_fetch_row($result)) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* Libération du jeu de résultats */
    
maxdb_free_result($result);
}

/* Effacement de la table */
maxdb_query($link"DROP TABLE temp.mycity");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11111 (Georgetown,NY)
22222 (Hubbatown,CA)

Voir aussi



maxdb_stmt_fetch

maxdb_stmt::fetch

(PECL maxdb >= 1.0)

maxdb_stmt_fetch -- maxdb_stmt::fetchRécupère les résultats depuis la requête préparée dans les variables liées

Description

Style procédural

bool maxdb_stmt_fetch ( resource $stmt )

Style orienté objet

bool maxdb_stmt::fetch ( void )

maxdb_stmt_fetch() retourne les données de lignes en utilisant les variables liées par la fonction maxdb_stmt_bind_result().

Note:

Notez que toutes les colonnes doivent être liées par l'application avant l'appel à la fonction maxdb_stmt_fetch().

Valeurs de retour

Valeurs retournées
Valeur Description
TRUE Succès. Les données ont été récupérées
FALSE Une erreur est survenue
NULL Il n'y a plus de lignes/données disponibles

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT zip, name FROM hotel.city ORDER by name";

if (
$stmt $maxdb->prepare($query)) {

    
/* Exécution de la requête */
    
$stmt->execute();

    
/* Lie les variables de résultats */
    
$stmt->bind_result($name$code);

    
/* Récupération des valeurs */
    
while ($stmt->fetch()) {
        
printf ("%s (%s)\n"$name$code);
    }

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT zip, name FROM hotel.city ORDER by name";

if (
$stmt maxdb_prepare($link$query)) {

    
/* Exécution de la requête */
    
maxdb_stmt_execute($stmt);

    
/* Lie les variables de résultats */
    
maxdb_stmt_bind_result($stmt$name$code);

    
/* Récupération des valeurs */
    
while (maxdb_stmt_fetch($stmt)) {
        
printf ("%s (%s)\n"$name$code);
    }

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

12203 (Albany)
60601 (Chicago)
60615 (Chicago)
45211 (Cincinnati)
33575 (Clearwater)
75243 (Dallas)
32018 (Daytona Beach)
33441 (Deerfield Beach)
48226 (Detroit)
90029 (Hollywood)
92714 (Irvine)
90804 (Long Beach)
11788 (Long Island)
90018 (Los Angeles)
70112 (New Orleans)
10019 (New York)
10580 (New York)
92262 (Palm Springs)
97213 (Portland)
60018 (Rosemont)
95054 (Santa Clara)
20903 (Silver Spring)
20005 (Washington)
20019 (Washington)
20037 (Washington)

Voir aussi



maxdb_stmt_free_result

maxdb_stmt::free_result

(PECL maxdb >= 1.0)

maxdb_stmt_free_result -- maxdb_stmt::free_resultLibère la mémoire des résultats stockés pour un gestionnaire de requête donné

Description

Style procédural

void maxdb_stmt_free_result ( resource $stmt )

Style orienté objet

void maxdb_stmt::free_result ( void )

maxdb_stmt_free_result() libère la mémoire des résultats associés avec la requête représentée par le paramètre stmt, qui a été alloué avec la fonction maxdb_stmt_store_result().

Valeurs de retour

Cette fonction ne retourne aucune valeur.

Voir aussi



maxdb_stmt_init

maxdb->stmt_init

(PECL maxdb >= 1.0)

maxdb_stmt_init -- maxdb->stmt_init Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare

Description

Style procédural

resource maxdb_stmt_init ( resource $link )

Style orienté objet

object maxdb::stmt_init ( void )

Alloue et initialise une ressource de requête utilisable pour la fonction maxdb_stmt_prepare().

Note:

Tous les appels de sous-séquence à n'importe quel fonction maxdb_stmt échoueront tant que la fonction maxdb_stmt_prepare() ne sera pas appelée.

Valeurs de retour

Retourne une ressource.

Voir aussi



maxdb_stmt_num_rows

maxdb_stmt->num_rows

(PECL maxdb >= 1.0)

maxdb_stmt_num_rows -- maxdb_stmt->num_rowsRetourne le nombre de lignes dans le jeu de résultats

Description

Style procédural

int maxdb_stmt_num_rows ( resource $stmt )

Style orienté objet

int $num_rows;

Retourne le nombre de lignes dans le jeu de résultats.

Valeurs de retour

Un entier représentant le nombre de lignes dans le jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT zip, name FROM hotel.city ORDER BY name";
if (
$stmt $maxdb->prepare($query)) {

    
/* Exécute une requête */
    
$stmt->execute();

    
/* Stock le résultat */
    
$stmt->store_result();

    
printf("Nombre de lignes : %d.\n"$stmt->num_rows);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT zip, name FROM hotel.city ORDER BY name";
if (
$stmt maxdb_prepare($link$query)) {

    
/* Exécute une requête */
    
maxdb_stmt_execute($stmt);

    
/* Stock le résultat */
    
maxdb_stmt_store_result($stmt);

    
printf("Nombre de lignes : %d.\n"maxdb_stmt_num_rows($stmt));

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre de lignes : 25.

Voir aussi



maxdb_stmt_param_count

maxdb_stmt->param_count

(PECL maxdb >= 1.0)

maxdb_stmt_param_count -- maxdb_stmt->param_countRetourne le nombre de marqueurs pour une requête donnée

Description

Style procédural

int maxdb_stmt_param_count ( resource $stmt )

Style orienté objet

int $param_count;

maxdb_stmt_param_count() retourne le nombre de marqueurs présent dans une requête préparée.

Valeurs de retour

Retourne un entier représentant le nombre de marqueurs.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$stmt $maxdb->prepare("SELECT name FROM hotel.city WHERE name=? OR state=?")) {

    
$marker $stmt->param_count;
    
printf("Statement has %d markers.\n"$marker);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

if (
$stmt maxdb_prepare($link"SELECT name FROM hotel.city WHERE name=? OR state=?")) {

    
$marker maxdb_stmt_param_count($stmt);
    
printf("La requête contient %d marqueurs.\n"$marker);

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La requête contient 2 marqueurs.

Voir aussi



maxdb_stmt_prepare

maxdb_stmt::prepare

(PECL maxdb >= 1.0)

maxdb_stmt_prepare -- maxdb_stmt::preparePrépare une requête SQL pour exécution

Description

Style procédural

bool maxdb_stmt_prepare ( resource $stmt , string $query )

Style orienté objet

mixed maxdb_stmt::prepare ( string $query )

maxdb_stmt_prepare() prépare une requête SQL pointée par une chaîne. La ressource de requête doit avoir été allouée par la fonction maxdb_stmt_init(). La requête doit être constituée d'une simple requête SQL.

Note:

Vous ne devez pas ajouter de point-virgule final ou \g à la requête.

Le paramètre query peut inclure un ou plusieurs marqueurs de paramètres dans la requête SQL en y intégrant des points d'exclamations (?) à une position appropriée.

Note:

Les marqueurs sont autorisés uniquement à des positions précises dans les requêtes SQL. Par exemple, ils sont autorisés dans la liste VALUE() d'une requête INSERT (pour spécifier une valeur de colonne pour une ligne), ou dans une comparaison avec une colonne dans une clause WHERE pour spécifier une valeur de comparaison.

Cependant, ils ne sont pas autorisés pour les identifiants (comme les noms de tables ou de colonnes), dans la liste SELECT qui nomme les colonnes à être retournées par les requêtes SELECT), ou pour spécifier les opérants d'un opérateur binaire comme le signe égal (=). La dernière restriction est nécessaire car il est impossible de déterminer le type du paramètre. En général, les paramètres sont légaux uniquement dans les requêtes Data Manipulation Languange (DML) et non dans les requêtes Data Defination Language (DDL).

Les marqueurs doit être liés aux variables en utilisant les fonctions maxdb_stmt_bind_param() et/ou maxdb_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$city "Portland";

/* Création d'une requête préparée */
$stmt =  $maxdb->stmt_init();
if (
$stmt->prepare("SELECT state FROM hotel.city WHERE name=?")) {

    
/* Lie les paramètres aux marqueurs */
    
$stmt->bind_param("s"$city);

    
/* Exécute la requête */
    
$stmt->execute();

    
/* Lie les variables de résultats */
    
$stmt->bind_result($district);

    
/* Récupère la valeur */
    
$stmt->fetch();

    
printf("%s est dans %s\n"$city$district);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$city "Portland";

/* Création d'une requête préparée */
$stmt maxdb_stmt_init($link);
if (
maxdb_stmt_prepare($stmt"SELECT state FROM hotel.city WHERE name=?")) {

    
/* Lie les paramètres aux marqueurs */
    
maxdb_stmt_bind_param($stmt"s"$city);

    
/* Exécute la requête */
    
maxdb_stmt_execute($stmt);

    
/* Lie les variables de résultats */
    
maxdb_stmt_bind_result($stmt$district);

    
/* Récupère la valeur */
    
maxdb_stmt_fetch($stmt);

    
printf("%s est dans %s\n"$city$district);

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Portland est dans OR

Voir aussi



maxdb_stmt_reset

maxdb_stmt::reset

(PECL maxdb >= 1.0)

maxdb_stmt_reset -- maxdb_stmt::resetRéinitialise une requête préparée

Description

Style procédural

bool maxdb_stmt_reset ( resource $stmt )

Style orienté objet

bool maxdb_stmt::reset ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



maxdb_stmt_result_metadata

maxdb_stmt::result_metadata

(PECL maxdb >= 1.0)

maxdb_stmt_result_metadata -- maxdb_stmt::result_metadataRetourne les métadonnées du jeu de résultats pour une requête préparée

Description

Style procédural

resource maxdb_stmt_result_metadata ( resource $stmt )

Style orienté objet

resource maxdb_stmt::result_metadata ( void )

Si la requête passée à maxdb_prepare() est une de celle puisant un jeu de résultats, maxdb_stmt_result_metadata() retourne la ressource de résultats qui peut être utilisée pour récupérer les métadonnées comme, le nombre total de champs et les informations individuelles d'un champs.

Note:

Ce pointeur de résultats peut être passé comme argument à n'importe quelle fonction basé sur les champs qui traite les métadonnées, comme :

La structure du jeu de résultats doit être libérée lorsque vous en avez terminé avec, ce qui est obtenu en la passant à la fonction maxdb_free_result().

Note:

Le jeu de résultat retourné par maxdb_stmt_result_metadata() contient uniquement des métadonnées. Il ne contient aucune ligne de résultats. Les lignes sont obtenues en utilisant le gestionnaire de requête avec la fonction maxdb_fetch().

Valeurs de retour

maxdb_stmt_result_metadata() retourne une ressource de résultats ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

$maxdb->query("CREATE TABLE temp.friends (id int, name varchar(20))"); 

$maxdb->query("INSERT INTO temp.friends VALUES (1,'Hartmut')");
$maxdb->query("INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt $maxdb->prepare("SELECT id, name FROM temp.friends");
$stmt->execute();

/* Récupération du jeu de résultats pour les métadonnées */
$result $stmt->result_metadata();

/* Récupère les informations d'un champs pour les métadonnées du jeu de résultats */
$field $result->fetch_field();

printf("Nom du champs : %s\n"$field->name);

/* Fermeture du jeu de résultats */
$result->close();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

maxdb_query($link"CREATE TABLE temp.friends (id int, name varchar(20))"); 

maxdb_query($link"INSERT INTO temp.friends VALUES (1,'Hartmut')");
maxdb_query($link"INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt maxdb_prepare($link"SELECT id, name FROM temp.friends");
maxdb_stmt_execute($stmt);

/* Récupération du jeu de résultats pour les métadonnées */
$result maxdb_stmt_result_metadata($stmt);

/* Récupère les informations d'un champs pour les métadonnées du jeu de résultats */
$field maxdb_fetch_field($result);

printf("Nom du champs : %s\n"$field->name);

/* Fermeture du jeu de résultats */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom du champs : ID

Voir aussi



maxdb_stmt_send_long_data

maxdb_stmt::send_long_data

(PECL maxdb 1.0)

maxdb_stmt_send_long_data -- maxdb_stmt::send_long_dataEnvoie un bloc de données

Description

Style procédural

bool maxdb_stmt_send_long_data ( resource $stmt , int $param_nr , string $data )

Style orienté objet

bool maxdb_stmt::stmt_send_long_data ( int $param_nr , string $data )

Permet d'envoyer les données au serveur sous forme de morceaux (ou gros morceaux). Cette fonction peut être appelée plusieurs fois pour envoyer les parties des caractères ou des valeurs de données binaires pour une colonne, qui peut être du type TEXT ou BLOB.

param_nr indique quel paramètre à associer avec les données. Les paramètres sont numérotés en commençant à 0. data est une chaîne contenant les données à envoyer.

Note:

Pour des raisons d'efficacité, cette fonction doit être utilisée après l'appel à la fonction maxdb_execute(). Dans ce cas, les données ne sont pas stockées côté client. La fin de la séquence doit finir avec un appel à la fonction maxdb_stmt_close_long_data().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



maxdb_stmt_sqlstate

(PECL maxdb >= 1.0)

maxdb_stmt_sqlstateRetourne une erreur SQLSTATE depuis la requête précédente

Description

string maxdb_stmt_sqlstate ( resource $stmt )

Retourne une chaîne contenant un code erreur SQLSTATE depuis la fonction de requête préparée la plus récente qu'elle ait réussie ou échouée. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur. La valeur est spécifiée par ANSI SQL et ODBC.

Note:

Notez que toutes les erreurs MaxDB ne sont pas encore liées à SQLSTATE. La valeur HY000 (erreur général) est utilisée pour les erreurs non liées.

Valeurs de retour

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query "SELECT name, zip FROM temp.mycity ORDER BY name";
if (
$stmt $maxdb->prepare($query)) {

    
/* Efface la table */
    
$maxdb->query("DROP TABLE temp.mycity");

    
/* Exécute une requête */
    
$stmt->execute();

    
printf("Erreur : %s.\n"$stmt->sqlstate);

    
/* Ferme la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link"INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query "SELECT name, zip FROM temp.mycity ORDER BY name";
if (
$stmt maxdb_prepare($link$query)) {

    
/* Efface la table */
    
maxdb_query($link"DROP TABLE temp.mycity");

    
/* Exécute une requête */
    
maxdb_stmt_execute($stmt);

    
printf("Erreur : %s.\n"maxdb_stmt_sqlstate($stmt));

    
/* Ferme la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : 42000.

Voir aussi



maxdb_stmt_store_result

maxdb::store_result

(PECL maxdb >= 1.0)

maxdb_stmt_store_result -- maxdb::store_resultTransfert un jeu de résultats depuis une requête préparée

Description

Style procédural

bool maxdb_stmt_store_result ( resource $stmt )

Style orienté objet

object maxdb::store_result ( void )

maxdb_stmt_store_result() n'a pas de fonctionnalité et ne devrait pas être utilisé pour récupérer les données depuis un serveur MaxDB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, zip FROM hotel.city ORDER BY name";
if (
$stmt $maxdb->prepare($query)) {

    
/* Exécute une requête */
    
$stmt->execute();

    
/* Stock le résultat */
    
$stmt->store_result();

    
printf("Nombre de lignes : %d.\n"$stmt->num_rows);

    
/* Libération du résultat */
    
$stmt->free_result();

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query "SELECT name, zip FROM hotel.city ORDER BY name";
if (
$stmt maxdb_prepare($link$query)) {

    
/* Exécute une requête */
    
maxdb_stmt_execute($stmt);

    
/* Stock le résultat */
    
maxdb_stmt_store_result($stmt);

    
printf("Nombre de lignes : %d.\n"maxdb_stmt_num_rows($stmt));

    
/* Libération du résultat */
    
maxdb_stmt_free_result($stmt);

    
/* Fermeture de la requête */
    
maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre de lignes : 25.

Voir aussi



maxdb_store_result

maxdb::store_result

(PECL maxdb >= 1.0)

maxdb_store_result -- maxdb::store_resultTransfert un jeu de résultats depuis la dernière requête

Description

Style procédural

resource maxdb_store_result ( resource $link )

Style orienté objet

object maxdb::store_result ( void )

Cette fonction n'a aucune fonctionnalité.

Valeurs de retour

Retourne une ressource de résultats ou FALSE si une erreur survient.

Exemples

Voir la documentation de la fonction maxdb_multi_query().

Voir aussi



maxdb_thread_id

maxdb->thread_id

(PECL maxdb >= 1.0)

maxdb_thread_id -- maxdb->thread_idRetourne l'identifiant du thread pour la connexion courante

Description

Style procédural

int maxdb_thread_id ( resource $link )

Style orienté objet

int $thread_id;

maxdb_thread_id() retourne l'identifiant du thread pour la connexion courante que l'on peut ensuite tuer en utilisant la fonction maxdb_kill(). Si la connexion est perdue et que vous vous reconnectez avec la fonction maxdb_ping(), l'identifiant du thread changera. De ce fait, vous ne devez récupérer l'identifiant du thread que lorsque vous en avez besoin.

Note:

L'identifiant du thread est assigné à chaque connexion. De ce fait, si la connexion est interrompue puis établie à nouveau, un nouvel identifiant du thread sera assigné.

Valeurs de retour

maxdb_thread_id() retourne l'identifiant du thread pour la connexion courante.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Détermine notre identifiant de thread */
$thread_id $maxdb->thread_id;

/* Tue la connexion */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE mycity LIKE hotel.city")) {
    
printf("Erreur : %s\n"$maxdb->error);
    exit;
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

/* Détermine notre identifiant de thread */
$thread_id maxdb_thread_id($link);

/* Tue la connexion */
maxdb_kill($link$thread_id);

/* Ceci devrait produire une erreur */
if (!maxdb_query($link"CREATE TABLE mycity LIKE hotel.city")) {
    
printf("Erreur : %s\n"maxdb_error($link));
    exit;
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -10821 Session not connected <...>
Erreur : Session not connected

Voir aussi



maxdb_thread_safe

(PECL maxdb >= 7.6.06.04)

maxdb_thread_safeIndique si le thread safety est donné ou non

Description

bool maxdb_thread_safe ( void )

maxdb_thread_safe() indique si la bibliothèque cliente a été compilé en tant que thread safety.

Valeurs de retour

TRUE si la bibliothèque cliente est thread safety, FALSE sinon.



maxdb_use_result

maxdb::use_result

(PECL maxdb >= 1.0)

maxdb_use_result -- maxdb::use_resultInitialise un jeu de résultats

Description

Style procédural

resource maxdb_use_result ( resource $link )

Style orienté objet

resource maxdb::use_result ( void )

maxdb_use_result() n'a aucun effet.

Valeurs de retour

Retourne le résultat ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query  "SELECT * FROM DUAL";

/* Exécute une requête multiple */
if ($maxdb->multi_query($query)) {
    do {
        
/* Stock le premier jeu de résultat */
        
if ($result $maxdb->use_result()) {
            while (
$row $result->fetch_row()) {
                
printf("%s\n"$row[0]);
            }
            
$result->close();
        }
        
/* Affiche un séparateur */
        
if ($maxdb->more_results()) {
            
printf("-----------------\n");
        }
    } while (
$maxdb->next_result());
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$query  "SELECT * FROM DUAL;";

/* Exécute une requête multiple */
if (maxdb_multi_query($link$query)) {
    do {
        
/* Stock le premier jeu de résultat */
        
if ($result maxdb_use_result($link)) {
            while (
$row maxdb_fetch_row($result)) {
                
printf("%s\n"$row[0]);
            }
            
maxdb_free_result($result);
        }
        
/* Affiche un séparateur */
        
if (maxdb_more_results($link)) {
            
printf("-----------------\n");
        }
    } while (
maxdb_next_result($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a

Voir aussi



maxdb_warning_count

maxdb->warning_count

(PECL maxdb >= 1.0)

maxdb_warning_count -- maxdb->warning_countRetourne le nombre d'avertissements depuis la dernière requête pour un lien donné

Description

Style procédural

int maxdb_warning_count ( resource $link )

Style orienté objet

int $warning_count;

maxdb_warning_count() retourne le nombre d'avertissements depuis la dernière requête dans la connexion représentée par le paramètre link.

Valeurs de retour

Nombre d'avertissements ou zéro s'il n'y en a aucun.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb 
= new maxdb("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* un nom de ville remarquablement long dans Wales */
$query "INSERT INTO temp.mycity (zip, name) VALUES('11111',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')"
;

$maxdb->query($query);

printf ("Nombre d'avertissements : %d\n"$maxdb->warning_count);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    
printf("Echec de la connexion : %s\n"maxdb_connect_error());
    exit();
}

maxdb_query($link"CREATE TABLE temp.mycity LIKE hotel.city");

/* un nom de ville remarquablement long dans Wales */
$query "INSERT INTO temp.mycity (zip, name) VALUES('11111',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')"
;

maxdb_query($link$query);

printf ("Nombre d'avertissements : %d\n"maxdb_warning_count($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -8004 POS(62) Constant must be compatible with column type and length <...>
 Nombre d'avertissements : 0

Voir aussi

  • maxdb_errno() - Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_error() - Retourne une chaîne représentant la dernière erreur
  • maxdb_sqlstate() - Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB


Sommaire




Driver natif MongoDB


Manuel

Sommaire


Installation

Le driver MongoDB devrait fonctionne sur la plupart des systèmes : Windows, Mac OS X, Unix, et Linux ; des petites machines au gros serveurs ; sur des systèmes 32 et 64 bit ; avec PHP 5.1, 5.2, et 5.3.

Cette extension » PECL n'est pas intégrée à PHP. Cette page fournit des informations spécifiques sur l'installation de l'extension sur différents systèmes mais aussi sur les problèmes communs rencontrés par les utilisateurs.

Installation sur les systèmes *NIX

Lancez:


$ sudo pecl install mongo

Si vous utilisez CentOS ou Redhat, Csoke Arpad a crée » des RPMs pour ces distributions.

Ajoutez les lignes suivantes à votre fichier php.ini:


extension=mongo.so

Si pecl échoue en raison d'un manque de mémoire vive lors de l'installation, assurez-vous que l'option memory_limit de votre php.ini est définie à au moins 32M.

Installation manuelle

Pour les développeurs des pilotes ou les personnes intéréssées par les derniers correctifs de bugs, vous pouvez compiler le pilote depuis » Github. Allez sur Github et cliquez sur "download". Lancez ensuite :


$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>
$ phpize
$ ./configure
$ sudo make install

Effectuez ces changements à votre fichier php.ini:

  • Surez-vous que la variable extension_dir pointe vers le bibliothèque mongo.so. La compilation devrait afficher l'endroit où PHP installe le driver ; l'affichage devrait ressembler à quelque chose comme :

    
          Installing '/usr/lib/php/extensions/no-debug-zts-20060613/mongo.so'
    
    
    Vérifiez bien qu'il s'agisse du même dossier d'extensions que celui de votre PHP en lançant:
    
          $ php -i | grep extension_dir
            extension_dir => /usr/lib/php/extensions/no-debug-zts-20060613 =>
          /usr/lib/php/extensions/no-debug-zts-20060613  
    
    
    Si ce n'est pas le cas, changez extension_dir de php.ini ou placez manuellement mongo.so.

  • Pour chargez l'extension au démarrage de PHP, ajoutez cette ligne :

    
          extension=mongo.so
    
    

Systèmes OS X

Si votre système ne peut trouver autoconf, vous devrez installer Xcode (disponible sur le DVD d'installation de votre OS ou en libre téléchargement depuis le site web d'Apple).

Si vous utilisez XAMPP, vous devriez pouvoir compiler le driver avec la commande suivante :


sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongo

Si vous utilisez MAMP (ou XAMPP et que la commande ci-dessus ne fonctionne pas), des binaires précompilés sont disponibles sur » Github (téléchargez le dernier qui a pour nom "osx" et la version de PHP que vous utilisez). Extraire mongo.so depuis l'archive et ajoutez-le dans le dossier de l'extension MAMP ou XAMPP. Ajoutez


      extension=mongo.so

au fichier php.ini utilisé puis redémarrez le serveur web.

Gentoo

Gentoo a un paquet pour le driver PHP nommé dev-php5/mongo, qui peut installer via la commande suivante :


$ sudo emerge -va dev-php5/mongo

Si vous utilisez PECL, vous recevrez une erreur signalant que libtool n'est pas à la bonne version. Lors de la compilation depuis les sources, vous devriez avoir besoin d'exécuter aclocal et autoconf.


$ phpize && aclocal && autoconf && ./configure && make && make install

Red Hat

Ceci inclut Fedora et CentOS.

La configuration par défaut d'Apache sur ces systèmes ne permet pas aux requêtes d'effectuer des connexions réseaux, ceci signifie que le driver recevra une erreur "Permission denied" lorsqu'il tentera une connexion à la base de données. Si vous rencontrez une telle erreur, tentez d'exécuter ceci :

$ /usr/sbin/setsebool -P httpd_can_network_connect 1 
Puis, redémarrez Apache (Ce comportement peut également survenir sous SELinux).

Installation sous Windows

Les binaires précompilés pour chaque version sont disponibles sur » Github pour une grande variété de combinaison de versions, de sécurité de threads, et de bibliothèques VC. Décompressez l'archive et placez php_mongo.dll dans votre dossier d'extension PHP ("ext" par défaut).

Le code le plus récent (non publié) est compilé avec les binaires Windows à chaque modification. L'archive Zip contient les fichiers php_mongo.dll et version.txt. Conservez le fichier version.txt ; ainsi, si vous avez une question ou un problème, vous pourrez indiquer aux développeurs l'exacte version que vous utilisez. (Le nombre est assez long et absurde, mais il a du sens pour les développeurs ;) )

Pour récupérer les dernière corrections de bogues, téléchargez le binaire correspondant à la version de PHP que vous avez d'installée :

Ajoutez la ligne suivante à votre fichier php.ini :

extension=php_mongo.dll

Instructions d'installation tierces

Beaucoup de personnes ont créés d'excellents tutoriels sur l'installation du driver PHP.



Tutorial

Introduction

This is the 10gen-supported PHP driver for MongoDB.

Here's a quick code sample that connects, inserts documents, queries for documents, iterates through query results, and disconnects from MongoDB. There are more details on each step in the tutorial below.

<?php

// connect
$m = new Mongo();

// select a database
$db $m->comedy;

// select a collection (analogous to a relational database's table)
$collection $db->cartoons;

// add a record
$obj = array( "title" => "Calvin and Hobbes""author" => "Bill Watterson" );
$collection->insert($obj);

// add another record, with a different "shape"
$obj = array( "title" => "XKCD""online" => true );
$collection->insert($obj);

// find everything in the collection
$cursor $collection->find();

// iterate through the results
foreach ($cursor as $obj) {
    echo 
$obj["title"] . "\n";
}

?>

This would output:

Calvin and Hobbes
XKCD

Création d'une connexion

Pour se connecter à un serveur de base de données, utilisez une des façons suivantes :

<?php

$connection 
= new Mongo(); // Connexion à localhost:27017
$connection = new Mongo"example.com" ); // Connexion à un hôte distant (en utilisant le port par défaut)
$connection = new Mongo"example.com:65432" ); // connect to a remote host at a given port

?>
You do not have to explicitly disconnect from the database. When $connection goes out of scope, the connection will be closed automatically and any database resources it was using will be freed.

Voir aussi

La chapitre du manuel sur les connexion couvre les différents types de connexions.

La documentation de l'API de la classe Mongo et de la classe Mongo::__construct() permet d'avoir une bonne compréhension des options possibles avec bons nombres d'exemples.

Sélection d'une base de données

Pour sélectionner une base de données, utilisez :

<?php

$db 
$connection->dbname;

?>
La base de données n'a pas besoin d'avoir été créée auparavant ; vous pouvez simplement créer une nouvelle base de données en tentant de la sélectionner. Attention aux fautes de frappe ! Vous pouvez par inadvertance créer une nouvelle base de données, ce qui peut rendre plus compliqué de trouver la cause d'une erreur :
<?php

$db 
$connection->mybiglongdbname;
// Plus de codes ici...
$db $connection->mybiglongdbnme;
// Maintenant, vous êtes connecté à une base de données différente !

?>

Voir aussi

La documentation de l'API de la classe MongoDB contient plus d'informations sur les objets de bases de données.

Sélection d'une collection

Récupérer une connexion utilise la même syntaxe que de récupérer une base de données :

<?php

$db 
$connection->baz;
$collection $db->foobar;

// ou, plus succinctement
$collection $connection->baz->foobar;

?>

Voir aussi

La documentation de l'API de la classe MongoCollection contient plus d'informations sur les objets de collection.

Insertion d'un document

Les tableaux associatifs sont les objets basiques qui peuvent être insérés dans une collection d'une base de données. Un document "document" peut être :

<?php

$doc 
= array( "name" => "MongoDB",
   
"type" => "database",
   
"count" => 1,
   
"info" => (object)array( "x" => 203"y" => 102),
   
"versions" => array("0.9.7""0.9.8""0.9.9")
);

?>
Notez que vous pouvez avoir des tableaux et des objets imbriqués.

Pour insérer ce document, utilisez la méthode MongoCollection::insert():

<?php

$collection
->insert$doc );

?>

Voir aussi

La documentation de l'API sur la méthode MongoCollection::insert() contient plus d'informations sur l'insertion des données.

Trouver un document en utilisant la méthode MongoCollection::findOne()

Pour montrer que le document inséré dans l'étape précédante est bien présent, nous pouvons simplement utiliser la méthode MongoCollection::findOne() pour récupérer une seule document de la collection. Cette méthode est utile dans les cas où il n'y a qu'un seul document correspondant aux critères ou bien si vous ne souhaitez qu'un seul résultat.

<?php

$obj 
$collection->findOne();
var_dump$obj );

?>
et vous devriez voir :
array(5) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["name"]
  string(7) "MongoDB"
  ["type"]=>
  string(8) "database"
  ["count"]=>
  int(1)
  ["info"]=>
  array (2) {
    ["x"]=>
    int(203)
    ["y"]=>
    int(102)
  }
  ["versions"]
  array(3) {
    [0]=>
    string(5) "0.9.7"
    [1]=>
    string(5) "0.9.8"
    [2]=>
    string(5) "0.9.9"
  }
}

Notez que le champ _id a été ajouté automatiquement à votre document. _id est le champ "primary key" qui est automatiquement peuplé pour tous les documents dans MongoDB.

Voir aussi

La documentation de l'API sur la méthode MongoCollection::findOne() contient plus d'informations sur la recherche de données.

Ajout de plusieurs documents

Afin de faire des requêtes plus intéressantes, commençons par ajouter plusieurs documents simples dans notre collection. Ces documents seront de la forme :

<?php

array( "i" => value );

?>
et nous pouvez le faire avec une simple boucle :
<?php

for($i=0$i<100$i++) {
    
$collection->insert( array( "i" => $i ) );
}

?>

Notez que vous pouvez insérer des tableaux avec des clés différentes dans la même collection. Cet aspect correspond à ce que nous avançons lorsque nous disons que MongoDB a "un schéma libre".

Comptage des documents dans une collection

Maintenant que nous avons inséré 101 documents (le 100 noté dans la boucle, +1), nous pouvons vérifier le nombre de documents dans la collection en utilisant la méthode MongoCollection::count().

<?php

echo $collection->count();

?>
et vous devriez voir afficher : 101.

Utilisation d'un curseur pour récupérer tous les documents

Afin de récupérer tous les documents d'une collection, vous devez utiliser la méthode MongoCollection::find(). Cette méthode retourne un objet MongoCursor qui vous permet de parcourir tous les documents correspondant à votre requête. Aussi, pour récupérer tous les documents et les afficher, vous pouvez faire ceci :

<?php

$cursor 
$collection->find();
foreach (
$cursor as $id => $value) {
    echo 
"$id: ";
    
var_dump$value );
}

?>
ceci affichera les 101 documents de la collection. $id est le champ _id du document, et $value est le document lui-même.

Voir aussi

La documentation de l'API sur la méthode MongoCollection::find() contient plus d'informations sur la recherche de données.

Ajout d'un critère à une requête

Nous pouvons créer une requête à passer à la méthode MongoCollection::find() pour récupérer un sous-jeu de documents de notre collection. Par exemple, si vous voulez trouver les documents dont le champ "i" vaut "71", vous pouvez le faire comme ceci :

<?php

$query 
= array( "i" => 71 );
$cursor $collection->find$query );

while( 
$cursor->hasNext() ) {
    
var_dump$cursor->getNext() );
}

?>
un seul document s'affichera :
array(2) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["i"]=>
  int(71)
  ["_ns"]=>
  "testCollection"
}

Récupération de plusieurs documents avec une requête

Vous pouvez utiliser une requête pour récupérer plusieurs documents depuis la collection. Par exemple, si vous voulez récupérer tous les documents dont le champ "i" est plus grand que 50, vous pouvez le faire comme ceci :

<?php

$query 
= array( "i" => array( '$gt' => 50 ) ); //notez les simples guillemets autour de '$gt'
$cursor $coll->find$query );

while( 
$cursor->hasNext() ) {
    
var_dump$cursor->getNext() );
}

?>
Ceci devrait afficher les documents dont le champ "i" est supérieur à 50. Nous pouvons également spécifier un intervalle comme 20 < i <= 30 :
<?php

$query 
= array( "i" => array( "\$gt" => 20"\$lte" => 30 ) );
$cursor $coll->find$query );

while( 
$cursor->hasNext() ) {
    
var_dump$cursor->getNext() );
}

?>
Vu qu'il est facile d'oublier d'échapper le "$", vous pouvez aussi choisir votre propre caractère spécial à utiliser à la place de '$'. Choisissez un caractère qui n'apparait pas dans les noms des clés, i.e. ":" et ajoutez la ligne suivante à votre fichier php.ini :
mongo.cmd = ":"
Ainsi, l'exemple ci-dessus deviendra :
<?php

$query 
= array( "i" => array( ":gt" => 20":lte" => 30 ) );

?>
Vous pouvez également le changer dans votre code en utilisant la commande ini_set("mongo.cmd", ":"). Bien sûr, vous pouvez également utiliser des simples guillements autour de $.

Création d'un index

MongoDB supporte les indexes, et il est très simple de les ajouter à une collection. Pour créer un index, vous devez spécifier le nom du champ ainsi que sa direction : ascendant (1) ou descendant (-1). L'exemple suivant va créer un index ascendant sur le champ "i" :

<?php

$coll
->ensureIndex( array( "i" => ) );  // Création d'un index sur le champ "i"
$coll->ensureIndex( array( "i" => -1"j" => ) );  // Index descendant sur le champ "i", et ascendant sur le champ "j"

?>



Connection

La connexion à MongoDB est aussi simple que cela : new Mongo, mais il existe aussi plusieurs options et plusieurs configurations. La page sur la méthode Mongo::__construct() couvre toutes les options offertes par l'API, mais aussi, propose plusieurs cas pratiques.

Identification sur une connexion

Si MongoDB est en fonctionnement avec l'option --auth, les connexions doivent être authentifiées avant d'être utilisées. Vous pouvez le faire grâce à la méthode MongoDB::authenticate() :

<?php

$m 
= new Mongo();
$db $m->admin;

$db->authenticate($username$password);

?>

Mais cela implique un inconvénient majeur : si la connexion à la base de données est interrompue et recréée, la connexion ne sera plus authentifiée.

Si vous utilisez le format de connexion décrit dans la méthode Mongo::__construct(), la base de données authentifiera à la connexion et ré-authentifiera si la connexion est à nouveau établie.

Ceci est équivalent au code ci-dessus, mise à part que les reconnexions à la base de données seront automatiquement authentifiées :

<?php

$m 
= new Mongo("mongodb://${username}:${password}@localhost");

?>

Par défaut, le driver authentifiera l'utilisateur suivant la base de données d'administration. Pour effectuer une identification via une base de données différente, vous devez spécifier le nom de la base de données après avoir spécifié l'hôte. Cet exemple identifiera un utilisateur via la base de données "blog" :

<?php

$m 
= new Mongo("mongodb://${username}:${password}@localhost/blog");

?>

Paires de réplication

Pour se connecter à une paire de réplication, vous devez spécifier au moins un membre de la paire et utiliser l'option replicaSet.

<?php

$m 
= new Mongo("mongodb://localhost:27017", array("replicaSet" => true));

?>

Les versions 1.0.9+ du pilote sont requises pour connecter une paire (les versions d'avant ne detectent pas correctement le maitre et ne se reconnectent pas correctement.

Le pilote PHP requêtera le(s) serveur(s) de base de données listé(s) pour vérifier qui est le maitre. Dès qu'il peut se connecter à au moins un hôte listé, et trouver un maitre, la connexion sera réussie. Dans le cas contraire, une MongoConnectionException est envoyée.

Si le maître devient indisponible, les esclaves ne deviendront pas maîtres pendant ces quelques secondes. Pendant ce temps là, la connexion ne sera pas capable d'effectuer les opérations sur la base de données (les connexions aux esclaves pourront toujours effectuer des lectures) et une exception sera levée.

Une fois le maitre trouvé, essayer des lectures ou écritures permettra au pilote de détecter le nouveau maitre. Le pilote en fera alors sa connexion principale et continuera les opérations normalement.

Pour plus d'informations sur les paires de réplication, reportez-vous à la » documentation interne.

Les connexions persistantes

La création de nouvelles connexions à la base de données est une opération lente. Pour minimiser le nombre de connexions que vous devez effectuer, vous pouvez utiliser les connexions dites "persistantes". Une connexion persistante est sauvegardée par PHP, et ainsi, vous pourrez utiliser la même connexion pour toutes vos requêtes.

Par exemple, ce programme simple se connecte à la base de données 1000 fois :

<?php

for ($i=0$i<1000$i++) {
  
$m = new Mongo();
}

?>

Son exécution prend approximativement 18 secondes. Si vous changez ce code pour utiliser les connexions persistantes :

<?php

for ($i=0$i<1000$i++) {
  
$m = new Mongo("localhost:27017", array("persist" => "x"));
}

?>

... il ne prend plus que .02 secondes, vu qu'il ne réalise réellement qu'une seule connexion à la base de données.

Les connexions persistantes ont besoin d'une chaîne d'identification (qui est "x" dans notre précédent exemple) afin de les identifier de façon unique. Afin d'utiliser une connexion persistante, le nom de l'hôte, le port, la chaîne d'identification, le nom d'utilisateur ainsi que le mot de passe (si fourni) doivent correspondre avec une connexion persistante existante. Sinon, une nouvelle connexion sera créée avec ces informations d'identification.

Les connexions persistantes sont hautement recommandées et devraient être systématiquement utilisées en production sauf si une très bonne raison indique le contraire. La plupart des raisons qui font qu'elles ne sont pas recommandées dans le cas des bases de données relationnelles ne sont pas applicables pour MongoDB.

Les connexions persistantes sont utilisées par défaut depuis 1.0.12. Pour créer une connexion non-persistante, vous devez passer "persist" => false à Mongo::__construct().

Support des Domain Socket

Si vous utilisez MongoDB localement et que vous avez une version 1.0.9 ou supérieure du pilote, vous pouvez vous connecter au travers d'un fichier. MongoDB ouvre automatiquement un fichier de socket au démarrage: /tmp/mongodb-<port>.sock.

Pour vous connecter au fichier de socket, specifiez le chemin dans la chaine de connexion MongoDB:

<?php

$m 
= new Mongo("mongodb:///tmp/mongo-27017.sock");

?>

Si vous voulez utiliser une authentification sur la connexion avec un fichier de socket, vous devez alors préciser un port égal à 0 comme cela l'analyseur sait où trouver la fin de la chaine de connexion.

<?php

$m 
= new Mongo("mongodb://username:password@/tmp/mongo-27017.sock:0/foo");

?>


Écritures

Les opérations sécurisées

Par défaut, le driver n'attend pas la réponse de la base de données pour écrire (insertion, mise à jour et suppression). Cela signifie que les écritures peuvent être exécutées très rapidement, mais vous ne savez pas si elles ont réussi ou pas. Les écritures peuvent échouer pour plusieurs raisons : s'il y a un problème réseau, si un serveur de base de données n'est plus accessible, ou si l'écriture est tout simplement invalide (e.g., l'écriture sur une collection système).

Pour récupérer une réponse de la base de données, vous devez utiliser l'option safe disponible pour tous les types d'écriture. Cette option s'assure que la base de données a bien pris en compte l'écriture avant d'en retourner le succès de l'opération. Si l'écriture échoue, elle lancera une exception MongoCursorException() contenant la raison de l'échec.

Lors du développement, vous devriez toujours utiliser des écritures sécurisées (afin de vous protéger des erreurs courantes, comme la duplication de clés, et autres). En production, les écritures non sécurisées doivent être utilisées pour les données qui ne sont pas importantes. Ce genre de données dépend de l'application, mais c'est généralement des données automatiques (à contrario des données générées par les utilisateurs), comme un suivi des clics ou des localisations GPS, pour lesquelles des centaines d'enregistrements sont insérés à la seconde.

Pour effectuer des écritures sécurisées sans trop vous pénalisez en terme de performance, il est recommandé de faire des écritures sécurisées à la fin d'une série d'écritures. Par exemple :

$collection->insert($someDoc);
$collection->update($criteria, $newObj);
$collection->insert($somethingElse);
$collection->remove($something, array("safe" => true));

Ensuite, si la dernière écriture lance une exception, vous savez qu'il y a un problème avec votre base de données.

Il y a quelques autres options disponibles pour s'assurer de la sécurité des écritures. Vous pouvez spécifier "fsync" => true pour forcer la base de données à se synchroniser sur le disque (par défaut, MongoDB s'y synchronise une fois par minute).

La façon la plus sécurisée de réaliser des écriture est d'utiliser la réplication et de spécifier le nombre de serveurs qui doivent recevoir cette écriture avant que le processus ne retourne le succès de l'opération. (Vous devriez toujours utiliser la réplication en production ; reportez-vous à la section sur la connexion pour plus de détails sur le jeu de réplication)

$collection->insert($someDoc, array("safe" => 3));

Si vous spécifiez "safe" => N, le serveur MongoDB s'assurera qu'au moins N serveurs ont une copie de l'écriture avant de retourner le succès de l'opération. Ainsi, si N vaut 3, le serveur principal et 2 esclaves doivent avoir reçus l'écriture avec succès.

Mise à jour d'objets imbriqués

Supposez que vous souhaitez modifier le nom de l'auteur de ce commentaire, dans ce document :

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
Afin de modifier le champ interne, nous utilisons $set (ainsi, tous les autres champs ne seront pas supprimés) avec l'index du commentaire à modifier :
<?php

$blog
->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

L'opérateur de position

L'opérateur de position $ est utile pour mettre à jour les objets qui sont des tableaux. Dans l'exemple ci-dessus, supposons que nous ne connaissons pas l'index du commentaire que nous souhaitons modifier, mais juste que nous souhaitons modifier "John" en "Jim". Nous pouvons ici utiliser $ pour arriver à nos fins.

<?php

$blog
->update(
    array(
"comments.author" => "John"),
    array(
'$set' => array('comments.$.author' => "Jim")));

?>


Interrogation

Distribution des requêtes aux esclaves

Note: 1.1.0+

Si vous utilisez un » jeux de réplication ainsi que la version 1.1.0 ou suivante du driver, le driver peut automatiquement acheminer les lectures sur les esclaves. Ce comportement n'existe pas dans les précédentes versions du driver et ne peut pas être utilisé avec un serveur principal/esclave normal.

Par défaut, le driver envoie toutes les requêtes au serveur principal. Si vous définissez l'option "slaveOkay", le driver enverra toutes les requêtes à un serveur non-principal, si c'est possible. L'option "slaveOkay" peut être définie à plusieurs niveaux : à la connexion, à la base de données, à la collection, et au niveau du curseur. Chaque classe hérite de la configuration "slaveOkay" de la classe supérieure, aussi, si vous faîtes :

<?php

$db
->setSlaveOkay(true);
$c $db->myCollection;

$cursor $c->find();

?>

alors la requête sera exécutée sur un esclave (le collection hérite de "slaveOkay" depuis la base de données et le curseur en hérite de la collection).

Comment les esclaves sont choisis ?

Chaque instance de Mongo prend son propre esclave, choisi de façon aléatoire depuis les esclaves disponibles. Il en est de même si vous utilisez des connexions persistantes. Aussi, si vous faîtes quelque chose comme :

<?php

// connexion à un jeu de réplication avec les membres ip0, ip1 et ip2
// ip0 est le principal, ip1 et ip2 sont les secondaires
$m1 = new Mongo("mongodb://ip0", array("replicaSet" => true"persist" => "x"));
echo 
"L'esclave m1 est : ".$m1->getSlave()."\n";

// utilisation de la même connexion que $m1
$m2 = new Mongo("mongodb://ip0", array("replicaSet" => true"persist" => "x"));
echo 
"L'esclave m2 est : ".$m2->getSlave()."\n";

?>

nous pourrions constater quelque chose comme :


L'esclave m1 est : ip2
L'esclave m2 est : ip1

Si nous continuons de créer de nouvelles instances de la classe Mongo, nous constaterions toujours une distribution entre ip1 et ip2. Gardez à l'esprit que tous les secondaires listés par la commande isMaster() seront dans la réserve de serveurs pouvant être utilisés pour la lecture (y compris ceux dont la priorité est de 0 ou ceux dont slaveDelay est défini). Si vous avez des serveurs pour lesquels vous ne voulez pas y effectuer de lecture, soit vous devez redirigez manuellement la lecture, soit vous devez ajouter les cacher via l'option de configuration du jeu de réplications des serveurs.

Les esclaves sont choisis pour chaque instante et ne changent pas (tant qu'aucune erreur n'intervient à votre jeux de réplication).

Le driver connait le statut courant de ces membres en exécutant la méthode Mongo::getHosts().

Si aucun serveur non-principal n'est disponible, le driver enverra la lecture vers le serveur principal (y compris si "slaveOkay" est défini). Un serveur est considéré comme accessible si son statut vaut 2 (SECONDARY) et sa santé, 1. Vous pouvez vérifier ces valeurs avec la méthode Mongo::getHosts() (quelques champs ont été volontairement supprimés pour plus de lisibilité) :

Array
(
    [ubuntu:27017] => Array
        (
            [_id] => 0
            [name] => ip0
            [health] => 1
            [state] => 1
            [stateStr] => PRIMARY
        )

    [ubuntu:27019] => Array
        (
            [_id] => 2
            [name] => ip1
            [health] => 1
            [state] => 2
            [stateStr] => SECONDARY
        )

    [ubuntu:27018] => Array
        (
            [_id] => 1
            [name] => ip2
            [health] => 1
            [state] => 2
            [stateStr] => SECONDARY
        )

)

Le jeu ci-dessus contient 2 serveurs accessibles, "ip1" et "ip2". Si ces 2 serveurs deviennent inaccessibles ou obsolètes, les lectures seront dirigées vers "ip0".

Si vous aimez toucher à ce que vous ne devriez pas, vous pouvez forcer le driver à utiliser un esclave différent en appelant la méthode Mongo::switchSlave(). Ceci choisira alternativement un nouvel esclave à utiliser et ne devrait pas être utilisé sauf si vous savez ce que vous faîtes.

Diverses notes

Les écritures sont toujours envoyés au serveur principal. Les commandes de base de données, y compris celles en lecture seule, sont également toujours envoyés au serveur principal.

La santé et le statut d'un esclave est vérifié toutes les 5 secondes ou bien lorsque la prochaine opération intervient après 5 secondes. La configuration est également re-vérifiée lorsque le driver a un problème à atteindre un serveur. Vous pouvez manuellement forcer le driver à mettre à jour le statut en appelant la méthode Mongo::getHosts().

Notez qu'un serveur non-principal peut être derrière le principal dans les opérations, ainsi, votre application doit admettre de recevoir des données non mises à jour (ou vous devez utiliser l'option w pour toutes les écritures).

Interrogation sur un _id

Chaque objet inséré se voit assigné automatiquement un champ unique _id, qui est bien utile pour être utilisé dans les requêtes..

Supposez que vous voulez trouver un document que vous venez tout juste d'insérer. L'insertion ajoute un champ _id au document, aussi, vous pouvez effectuer votre requête de la sorte :

<?php

$person 
= array("name" => "joe");

$people->insert($person);

// Maintenant, $joe a un champ _id
$joe $people->findOne(array("_id" => $person['_id']));

?>

Tant que l'utilisateur ne l'a pas spécifié autrement, le champ _id est un MongoId. L'erreur la plus courante est d'essayer d'utiliser une chaîne qui correspond à un MongoId. Gardez à l'esprit que cet identifiant a 2 types de données différents, et ne correspond pas l'un l'autre, de la même façon que la chaîne "array()" n'est pas la même chose qu'un tableau vide. Par exemple :

<?php

$person 
= array("name" => "joe");

$people->insert($person);

// Convertion de l'_id en une chaîne
$pid $person['_id'] . "";

// ECHEC - $pid est une chaîne, et non un MongoId
$joe $people->findOne(array("_id" => $pid));

?>

Les tableaux

Les tableaux sont spéciaux à plus d'un titre. Tout d'abord, il y a 2 types utilisés par MongoDB : des tableaux "normaux" et des tableaux associatifs. Les tableaux associatifs peuvent avoir plusieurs types de clés et de valeurs. Les tableaux "normaux" sont définis comme tableaux dans ces indices numériques ascendants, en commençant par 0 et s'incrémentant de 1 pour chaque élément. Ces 2 types correspondent à ce que vous connaissez déjà comme type en PHP.

Actuellement, si vous voulez sauvegarder la liste des récompenses dans un document, vous pouvez :

<?php

$collection
->save(array("awards" => array("gold""silver""bronze")));

?>

Les requêtes peuvent effectuer des recherches directement dans les éléments. Supposez que nous souhaitons trouver tous les documents dont l'élément du tableau est à une valeur fournie. Par exemple, les documents sont la récompense est l'or, comme ceci :

{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "awards" : ["gold", "silver", "bronze"]}

Ceci peut être effectué avec une requête simple, en ignorant le fait que "awards" est un tableau :

<?php

$cursor 
$collection->find(array("awards" => "gold"));

?>

Supposez que vous interrogez la base de données avec un objet plus complexe, dont chaque élément du tableau sont eux-mêmes des objets, comme ceci :

{ 
     "_id" : ObjectId("4b06c282edb87a281e09dad9"), 
     "awards" : 
     [
        {
            "first place" : "gold"
        },
        {
            "second place" : "silver" 
        },
        {
            "third place" :  "bronze"
        }
     ]
}

Continuons d'ignorer que c'est un tableau. Nous pouvons utiliser la notation basée sur les points pour interroger le sous-objet :

<?php

$cursor 
$collection->find(array("awards.first place" => "gold"));

?>

Notez qu'il importe peu qu'il y ait un espace dans le nom du champ (bien qu'il convient de ne pas en mettre, juste pour rendre le code plus lisible).

Vous pouvez également utiliser un tableau contenant plusieurs valeurs à chercher. Actuellement, si nous cherchons les documents "gold" et "copper", nous pouvons le faire comme ceci :

<?php

$cursor 
$collection->find(array("awards" => array('$in' => array("gold""copper"))));

?>


Mises à jour

Les mises à jour sont les opérations les plus compliquées disponibles avec MongoDB. Elles combinent une requête avec une action, modifiant les documents qui correspondent aux critères. Elles sont également extrèmement puissantes, vous permettant de changer les documents rapidement mais aussi de les remplacer tous ensemble. Elles se font sur place (quand c'est possible), entrainant une légère surcharge.

Modification et remplacement de documents

Il exxiste 2 types de mises à jour: modification ou remplacement. Les modifications contiennent des opérateurs $ et changent des champs d'un document: elles peuvent incrémenter des compteurs, ajouter des éléments dans des tableaux ou encore changer le type d'un champ.

Par exemple, une mise à jour en modification ajoute un nouveau champ au document.

/** imaginons un document de cette structure :
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));

/** maintenant, le document ressemblera à :
 * {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
 */

Les mises à jour de remplacement remplacent le document entier par un autre. Elles ne sont pas aussi efficaces que les modifications, mais elles peuvent avoir un interêt dans le cas ou les opérateurs à $ ne peuvent être utilisés.

Par exemple, une mise à jour de remplacement peut complètement changer la structure d'un document.

/** imaginons un document de cette structure:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
    "name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));

/** maintenant, le document ressemblera à :
 * {
 *     "userId" : 12345,
 *     "info" : {
 *         "name" : "joe",
 *         "twitter" : "@joe4153",
 *         "email" : "..."
 *     },
 *     "likes" : []
 * }
 */

Mises à jour des objets imbriqués

Supposez que vous voulez modifier le nom de l'auteur d'un commentaire dans un document :

{ 
    "_id" : ObjectId("4b06c282edb87a281e09dad9"), 
    "content" : "ceci est un post d'un blog.",
    "comments" : 
    [
        {
            "author" : "Mike",
            "comment" : "Je pense que blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "Je ne suis pas d'accord."
        }
    ]
}
Afin de modifie un champ interne, nous utilisez $set (ainsi, les autres champs ne sont pas supprimés) avec l'index du commentaire à changer :
<?php

$blog
->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

L'opérateur de position

L'opérateur de position $ est utile pour la mise à jour d'objets qui se trouvent dans des tableaux. Dans l'exemple suivant, nous supposons que nous ne connaissons pas l'index du commentaire que nous souhaitons modifier, alors que vous voulons changer "John" en "Jim". Nous pouvons dans ce cas utiliser l'opérateur de position $.

<?php

$blog
->update(
    array(
"comments.author" => "John"), 
    array(
'$set' => array('comments.$.author' => "Jim")));

?>


Options du php.ini

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mongo
Nom Défaut Modifiable
mongo.native_long false* PHP_INI_ALL
mongo.long_as_object false PHP_INI_ALL
mongo.default_host "localhost" PHP_INI_ALL
mongo.default_port 27017 PHP_INI_ALL
mongo.auto_reconnect true PHP_INI_SYSTEM
mongo.allow_persistent true PHP_INI_SYSTEM
mongo.chunk_size 262144 PHP_INI_SYSTEM
mongo.cmd "$" PHP_INI_ALL
mongo.utf8 "1" PHP_INI_ALL
mongo.allow_empty_keys false PHP_INI_ALL
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mongo.native-long int

Le comportement par défaut de ce paramètre sera changé à TRUE en 2.0.0, faites attention de bien configurer ce paramètre à la valeur désirée (probablement TRUE) ainsi le comportement du pilote ne changera pas soudainement à la mise à jour.

Sur les plateformes 64-bits, le paramètre mongo.native_long autorise les entiers 64-bits à être stockés dans MongoDB. Sinon, seuls les entiers 32-bits seront sauvés. Dans le cas des long, le type MongoDB BSON LONG est utilisé à la place de BSON INT lorsque ce paramètre est désactivé.

Ce paramètre change aussi la manière dont les BSON LONG se comportent lorsqu'ils sont lus depuis MongoDB. Sans mongo.native_long, le pilote convertira tout BSON LONG en un type double de PHP ce qui peut amener à une perte de précision.

Sur les plateformes 32-bits, le paramètre mongo.native_log ne change rien en ce qui concerne le stockage des entiers dans MongoDB: l'entier est stocké comme un BSON INT comme avant. Cependant, lorsque ce paramètre est activé et qu'un BSON LONG est lu de MongoDB, une MongoCursorException est levée alertant que la donnée n'a pu être lue sans perte de précision.

Sur les systèmes 32-bits particulièrement, il est recommandé de combiner cela avec l'activation de mongo.long_as_object.

mongo.long_as_object string

Retourne un BSON_LONG comme instance de MongoInt64 (à la place du type primitif).

mongo.default_host string

Nom d'hôte par défaut lorsqu'aucun nom d'hôte n'est fourni au constructeur.

mongo.default_port string

Le numéro de port par défaut, à utiliser lors de la connexion à la base de données, si aucun port n'est spécifié. La valeur par défaut est 27017.

mongo.auto_reconnect bool

S'il faut se reconnecter automatiquement, lorsque la connexion à la base est perdue.

mongo.allow_persistent bool

Indique si les connexions persistantes sont autorisées.

mongo.chunk_size int

Le nombre d'octets par bloc. Utilisé lors avec les fichiers GridFS. Ce nombre doit être supérieur 4 Mo moins 100 octets (max : 4194204) et il est recommandé qu'il soit plus petit.

mongo.cmd string

Un caractère à utiliser à la place du caractère $ dans les modificateurs et les comparaisons.

mongo.utf8 int

Si une exception doit être émise lors de l'utilisation de chaînes non encodées UTF-8. Jusqu'à la version 1.0.4, le driver PHP ignorez les chaînes non encodées UTF-8, même si vous n'étiez pas supposés en utiliser. Depuis la version 1.0.4, le driver lance une exception MongoException. Pour faciliter la transition de vos application qui pouvaient insérer des chaînes non encodées UTF-8, vous pouvez désactiver cette option pour émuler l'ancien comportement. Cette option sera supprimée et l'exception toujours lancée pour les chaînes non encodées UTF-8 à partir de la version 1.1.0.

mongo.allow_empty_keys int

Ajouté en version 1.0.11.

Si oui ou non les chaines vides ("") sont autorisées comme noms de clés. Par défaut, le pilote envoie une exception si vous tentez de passer une chaine vide comme clé à la base de données. Il est très simple de faire cela par inadvertance en utilisant les doubles quotes avec des opérateurs à $, il est donc recommandé de laisser ce paramètre sur sa valeur par défaut. Cependant, si vous avez besoin de sauver des clés qui sont des chaines vides, vous pouvez utiliser cette option à true et le pilote autorisera alors les chaines vides.



Securité

Attaque par injection dans la requête

Si vous passez des paramètres $_GET dans vos requêtes, assurez-vous de les transtyper en chaînes de caractères avant. Les utilisateurs peuvent insérer des tableaux associatifs dans leurs requêtes GET, qui deviendront des requêtes non désirées.

Voici un exemple relativement inoffensif : supposez que vous récupérez les informations d'un utilisateur avec la requête http://www.example.com?username=bob. Votre application exécute la requête suivante : $collection->find(array("username" => $_GET['username'])).

Quelqu'un peut détourner ce comportement en appelant l'URL suivante : http://www.example.com?username[$ne]=foo, que PHP transformera automatiquement en un tableau associatif, exécutant ainsi la requête suivante : $collection->find(array("username" => array('$ne' => "foo"))), qui retournera tous les utilisateurs nommés "foo" (tous vos utilisateurs, probablement).

Ceci est une attaque simple qui se contre tout aussi facilement : assurez-vous que les paramètres $_GET sont du type que vous attendez avant de les envoyer à la base de données (transtypez les en chaînes de caractères, dans ce cas).

Merci à » Phil d'avoir mis le doigt sur ces possibilités.

Reportez-vous à » la documentation principale pour plus d'informations sur les injections SQL avec MongoDB.



Lancer les tests du pilote

Le paquet PECL n'est pas inclus dans les tests de PHP, mais sont disponibles sur » Github. Téléchargez les sources du pilote et les tests sont dans le dossier tests/. Le pilote utilise » PHPUnit pour ses tests, celui-ci peut être installé via PEAR.

Vous devez passererror_reporting dans php.ini à E_STRICT | E_ALL pour que tous les tests passent. Dans le cas contraire, vous récupererez des echecs indiquant qu'un warning ou une erreur était attendu pour le test.

Pour lancer les tests, vérifiez qu'un serveur MongoDB tourne en local sur le port 27017. Vérifiez que vous soyez dans le dossier principal des sources du pilote que vous avez téléchargées depuis Github, puis lancez:


$ phpunit tests/MongoSuite.php

Merci de rapporter tout échec ou erreur dans le » bugtracker. Il se peut que des tests soient évités (skipped) , ceci est normal et peut être ignoré.

De nouveaux tests sont toujours bienvenus! N'hésitez pas à contribuer au niveau des tests pour n'importe quelle fonctionnalité.



Dépannage

Si vous rencontrez des problèmes, il existe un grand nombre de ressources vous permettant d'y faire face.

  • IRC

    Le salon IRC officiel de MongoDB se trouve sur irc.freenode.net/#mongodb. C'est le moyen le plus rapide d'obtenir de l'aide... si, bien sûr, des personnes y sont présentes.

  • Liste de diffusion

    La » liste de diffusion MongoDB est un bon moyen (et souvent, un moyen rapide) d'obtenir des réponses à vos questions.

  • Le gestionnaire de bogues

    Vous avez trouvé un bogue ? Vous désirez une nouvelle fonctionnalité ? Vous avez une question ? Rapportez un bogue sur notre » gestionnaire de bogue relatif au driver PHP.

Vous pouvez activer le débogage avancé (verbose) en compilant le pilote avec le drapeau de débogage.

$ ./configure CFLAGS=-DDEBUG

DEBUG active tous les débogages. Vous pouvez aussi passer des drapeaux spécifiques. Voici une liste:

  • DEBUG_CONN

    Débogage des connexions.


Voir aussi

L'article » Développer des applications PHP en utilisant MongoDB est excellent pour commencer avec MongoDB. Pour les francophones, l'article » NoSQL - MongoDB et PHP: Première Approche donne un bon aperçu.



Classes internes

Sommaire

Les classes internes représentent la partie la plus importante du driver.


La classe Mongo

Introduction

La connexion entre MongoDB et PHP.

Cette classe est utilisée pour créer et gérer les connexions. Un exemple classique est :

<?php

$m 
= new Mongo(); // connexion
$db $m->foo// lecture de l'objet de base de données "foo"

?>

Voir Mongo::__construct() ainsi que la section sur les connections pour plus d'informations sur la création de connexions.

Synopsis de la classe

Mongo {
/* Constantes */
const string Mongo::VERSION ;
const string Mongo::DEFAULT_HOST = "localhost" ;
const int Mongo::DEFAULT_PORT = 27017 ;
/* Champs */
public boolean $connected = FALSE ;
public string $status = NULL ;
protected string $server = NULL ;
protected boolean $persistent = NULL ;
/* Méthodes */
public bool close ( void )
public bool connect ( void )
protected bool connectUtil ( void )
__construct ([ string $server = "mongodb://localhost:27017" [, array $options = array("connect" => TRUE) ]] )
public array dropDB ( mixed $db )
public MongoDB __get ( string $dbname )
public array getHosts ( void )
public string getSlave ( void )
public bool getSlaveOkay ( void )
public array listDBs ( void )
public MongoCollection selectCollection ( string $db , string $collection )
public MongoDB selectDB ( string $name )
public bool setSlaveOkay ([ bool $ok ] )
public string switchSlave ( void )
public string __toString ( void )
}

Constantes pré-définies

Constantes Mongo

Mongo::VERSION
Version du drvier PHP. Peut être préfixé avec un "+" ou un "-" si la version se trouve entre 2 versions.
Mongo::DEFAULT_HOST
"localhost"
Hôte sur lequel on doit se connecter si aucun n'est fourni.
Mongo::DEFAULT_PORT
27017
Port sur lequel on doit se connecter si aucun n'est fourni.

Fields

status
Si c'est une connection persistante, si la connection a été créée pour cet objet ou si elle est réutilisée. Si la connection n'est pas persistante, ce champ est NULL.

Voir aussi

Documentation de MongoDB » concernant les connections.


Mongo::close

(PECL mongo >=0.9.0)

Mongo::closeFerme la connexion

Description

public bool Mongo::close ( void )

Cette méthode n'a pas besoin d'être appelée, sauf dans des cas exceptionnels. Le driver fermera proprement la connexion à la base de données lorsque cette instance Mongo sortira du scope.

Si les objets ne sortent pas du scope entre les requêtes, vous devriez vouloir appeler cette méthode à la fin de votre programme pour éviter de perdre les vieilles connexions. Cependant, il peut être plus efficace d'utiliser les connexions persistantes, qui créeront automatiquement une connexion si nécessaire, et l'utiliseront pour toutes les requêtes possibles.

Si vous êtes connecté à un jeu de réplication, close() ne fermera que la connexion au primaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la connexion a pu être fermée.



Mongo::connect

(PECL mongo >=0.9.0)

Mongo::connectOuvre la connexion à la base Mongo

Description

public bool Mongo::connect ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

If the connection was successful.

Erreurs / Exceptions

Émet une exception MongoConnectionException si la connexion à la base de données échoue.



Mongo::connectUtil

(PECL mongo >=0.9.0)

Mongo::connectUtilSe connecte à un serveur Mongo

Description

protected bool Mongo::connectUtil ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la connexion a réussi.

Erreurs / Exceptions

Emet une exception MongoConnectionException si la connexion à la base de données échoue.



Mongo::__construct

(PECL mongo >=0.9.0)

Mongo::__constructCrée un nouvel objet de connection à une base de données Mongo

Description

Mongo::__construct ([ string $server = "mongodb://localhost:27017" [, array $options = array("connect" => TRUE) ]] )

Si aucun paramètre n'est passé, la connection se fera sur "localhost:27017" (ou ce qui a été spécifié dans php.ini pour mongo.default_host et mongo.default_port).

server doit être de la forme:

mongodb://[username:password@]host1[:port1][,host2[:port2:],...]/db

La chaine de connexion débute toujours par mongodb://.

Si username et password sont précisés, le constructeur tentera d'authentifier la connection à la base. Username et password sont optionnels et doivent être suivis d'une @, si renseignés.

Au moins un hôte doit être précisé (port optionnel, par défaut 27017) et plusieurs hôtes vers lesquels se connecter peuvent être passés. Les noms d'hôtes sont séparés par des virgules et le constructeur exécutera sans erreur si au moins un des hôtes peut être connecté. Si il ne peut se connecter à aucun hôte, il enverra une MongoConnectionException.

Enfin, si vous avez précisé un username et un password, vous devez préciser une base de données envers laquelle s'authentifier. Si db n'est pas renseigné, "admin" sera utilisé.

Liste de paramètres

server

Le nom du serveur.

options

Un tableau d'options pour la connection. Les options disponibles sont:

  • "connect"

    Si le constructeur doit se connecter avant de retourner l'objet. Par défaut TRUE.

  • "persist"

    Si la connection doit être persistante. La chaine représentant la valeur est utilisée comme identifiant de connection, ainsi deux instances de Mongo qui sont initialisées avec array("persist" => "foobar") vont partager la même connection à la base, alors que une instance initialisée avec array("persist" => "barbaz") utilisera une connection différente.

  • "timeout"

    Période avant timeout (tentative de connection à la base). En millisecondes.

  • "replicaSet"

    Si les hôtes listés sont compris dans un pool réplicat. Si c'est le cas, le maitre sera déterminé en utilisant la commande ismaster sur les serveurs, ainsi le pilote peut se connecter à un serveur qui n'était même pas listé. Voyez l'exemple après pour plus de détails.

  • "username"

    Le nom d'utilisateur peut être spécifié ici, au lieu de l'inclure dans la liste des hôtes. Ceci est utile tout spécialement si le nom d'utilisateur contient un caractère ":"..

  • "password"

    Le mot de passe peut être spécifié ici, au lieu de l'inclure dans la liste des hôtes. Ceci est utile tout spécialement si le mot de passe contient le caractère "@".

Valeurs de retour

Retourne un nouvel objet de connection à la base de données Mongo.

Erreurs / Exceptions

Emet une exception MongoConnectionException si la connection échoue avec les identifiants pour la base de données considérée ou si les identifiants sont invalides. Voyez la documentation de MongoConnectionException pour en savoir plus sur les exceptions courantes et leurs causes.

Historique

Version Description
1.0.2 Le constructeur a changé pour accepter une tableau. Avant 1.0.2, le constructeur acceptait les paramètres suivants:
server

Nom du serveur

connect

Paramètre optionnel indiquant si le constructeur doit se connecter à la base avant de retourner l'objet. Par défaut TRUE.

persistent

Si la connection doit être persistante.

paired

Si la connection doit être pairée.

1.0.9 Ajout de l'option replicaSet.
1.2.0 Ajout des options username et password.

Exemples

Exemple #1 Exemple avec Mongo::__construct() et un pool de réplicats

Cet exemple montre comment se connecter avec le driver à un pool de réplicats. Il suppose un jeu de trois serveurs: sf1.example.com, sf2.example.com et ny1.example.com. Le maitre peut être l'un de ces serveurs.

<?php

// Passer une liste séparée par une virgule de noms de serveurs au constructeur
$m1 = new Mongo("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => true));

// Vous ne passez qu'un seul serveur, le pilote récupèrera la liste complète et trouvera
// le maitre depuis ce serveur
$m2 = new Mongo("mongodb://ny1.example.com", array("replicaSet" => true));

?>

Si le maitre courant échoue, le pilote calculera quel serveur secondaire deviendra le nouveau maitre et utilisera sa connection. Le failover ne fonctionnera pas correctement si replicaSet n'est pas spécifié.

Au moins un serveur dans la liste doit fonctionner pour que le pilote se connecte au pool de replica.

Si vous incluez des serveurs depuis deux pools de réplicats distincts, le comportement est alors indéfini.

Voyez la » documentation du coeur sur la réplication.

Exemple #2 Connection via socket UNIX

Dans les versions 1.0.9+, vous pouvez utiliser une socket du domaine UNIX pour vous connecter à une instance de MongoDB locale. Ceci devrait être plus rapide qu'une connection réseau.

Dans la version 1.5.0, Le serveur MongoDB ouvre automatiquement une socket à /tmp/mongodb-<port>.sock. Vous pouvez vous y connecter en précisant le chemin dans la chaine de connection:

<?php

// Serveur MongoDB local sur le port 20000
$m = new Mongo("mongodb:///tmp/mongodb-20000.sock");

?>

Vous pouvez combiner cela avec d'autres connections:

<?php

// Essaye la connection socket UNIX, utilise localhost sinon
$m = new MongoDB("mongodb:///tmp/mongodb-27017.sock,localhost:27017");

?>

Exemple #3 Exemple avec Mongo::__construct() et une connection persistante

Une connection persistante est utilisée lorsque vous devez faire plus d'une requête. Elle permet de réduire significativement le temps dû aux reconnections.

Une connection persistante est identifiée par la chaîne du serveur et une chaine représentant un identifiant.

<?php

// Crée une connection persistante
$m1 = new Mongo("mongodb://localhost", array("persist" => ""));

// Utilise la même connection que $m1
$m2 = new Mongo("mongodb://localhost", array("persist" => ""));

// Crée une nouvelle connection
$m3 = new Mongo("mongodb://127.0.0.1", array("persist" => ""));

// Crée une nouvelle connection
$m4 = new Mongo("mongodb://127.0.0.1:27017", array("persist" => ""));

// Crée une nouvelle connection
$m5 = new Mongo("mongodb://localhost", array("persist" => "foo"));

// Utilise la connection $m5
$m6 = new Mongo("mongodb://localhost", array("persist" => "foo"));

?>

Exemple #4 Exemple d'authentification Mongo::__construct()

Un utilisateur doit exister dans la base de données admin avant de lancer l'authentification. Vous pouvez créer un utilisateur avec la commande shell Mongo suivante:

> use admin
switched to db admin
> db.addUser("testUser", "testPass");
{
        "_id" : ObjectId("4b21272fd9ab21611d19095c"),
        "user" : "testUser",
        "pwd" : "03b9b27e0abf1865e2f6fcbd9845dd59"
}
>

Après avoir crée un utilisateur, dans notre cas de nom "testUser" et password "testPass", vous pouvez créer une connection authentifiée:

<?php

$m 
= new Mongo("mongodb://testUser:testPass@localhost");

?>


Mongo::dropDB

(PECL mongo >=0.9.0)

Mongo::dropDBSupprime une base de données [obsolète]

Description

public array Mongo::dropDB ( mixed $db )
Avertissement

Obsolète

Utilisez MongoDB::drop() à la place.

Liste de paramètres

db

Le nom de la base de données à supprimer. Ce paramètre peut être un objet MongoDB ou le nom de la base de données.

Valeurs de retour

Retourne la réponse de la base de données.



Mongo::__get

(PECL mongo >=1.0.2)

Mongo::__getRécupère une base de données

Description

public MongoDB Mongo::__get ( string $dbname )

Cette méthode est la méthode la plus simple pour récupérer une base de données. Si le nom de la base de données contient des caractères exotiques, vous devriez plutôt utiliser la méthode Mongo::selectDB(). Cependant, dans la plupart des cas, cette méthode suffit.

<?php

$mongo 
= new Mongo();

// les 2 lignes suivants sont identiques
$db $mongo->selectDB("foo");
$db $mongo->foo;

?>

Liste de paramètres

dbname

Le nom de la base de données.

Valeurs de retour

Retourne un nouvel objet de base de données.

Erreurs / Exceptions

Lance une exception générique si le nom de la base de données est invalide.



Mongo::getHosts

(PECL mongo >=1.1.0)

Mongo::getHostsMet à jour les statuts de tous les hôtes associés à celui-ci

Description

public array Mongo::getHosts ( void )

Cette méthode ne peut être utilisée qu'avec une connexion à un jeu de réplication. Elle retourne le statut de tous les hôtes du jeu, et met à jour les informations de connexion (la mise à jour est invisible pour l'utilisateur).

Cette méthode sera appelée automatiquement par le driver toutes les 5 secondes.

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux esclaves.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'informations sur les hôtes du jeu, incluant chaque nom d'hôtes, identifiant du jeu, la santé (1 signifie que l'hôte est en bonne santé), le temps de disponibilité, et si l'hôte est à jour par rapport à l'hôte primaire. Par exemple, pour un jeu de réplication contenant 3 membres s'exécutant en local, ces informations ressembleront à ceci :

Array
(
    [ubuntu:27017] => Array
        (
            [_id] => 0
            [name] => ubuntu:27017
            [health] => 1
            [state] => 1
            [stateStr] => PRIMARY
            [optime] => MongoTimestamp Object
                (
                    [sec] => 1
                    [inc] => 1291155754
                )

            [optimeDate] => MongoDate Object
                (
                    [sec] => 1291155754
                    [usec] => 0
                )

            [self] => 1
        )

    [ubuntu:27019] => Array
        (
            [_id] => 2
            [name] => ubuntu:27019
            [health] => 1
            [state] => 2
            [stateStr] => SECONDARY
            [uptime] => 91928
            [optime] => MongoTimestamp Object
                (
                    [sec] => 1
                    [inc] => 1291155754
                )

            [optimeDate] => MongoDate Object
                (
                    [sec] => 1291155754
                    [usec] => 0
                )

            [lastHeartbeat] => MongoDate Object
                (
                    [sec] => 1291158846
                    [usec] => 0
                )

        )

    [ubuntu:27018] => Array
        (
            [_id] => 1
            [name] => ubuntu:27018
            [health] => 1
            [state] => 2
            [stateStr] => SECONDARY
            [uptime] => 91944
            [optime] => MongoTimestamp Object
                (
                    [sec] => 1
                    [inc] => 1291155754
                )

            [optimeDate] => MongoDate Object
                (
                    [sec] => 1291155754
                    [usec] => 0
                )

            [lastHeartbeat] => MongoDate Object
                (
                    [sec] => 1291158846
                    [usec] => 0
                )

        )

)

Cette méthode retourne NULL s'il n'y a pas de connexion à un jeu de réplication ou si la connexion n'a pas encore été initialisée.



Mongo::getSlave

(PECL mongo >=1.1.0)

Mongo::getSlaveRetourne l'adresse à utiliser pour les lectures slaveOkay

Description

public string Mongo::getSlave ( void )

Cette méthode trouve l'adresse de l'esclave actuellement utilisé pour les lectures. C'est une méthode en lecture seule : elle ne modifie rien sur le statut interne de l'objet.

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux esclaves.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'adresse de l'esclave utilisé par cette connexion pour les lectures.

Cette méthode retourne NULL si elle n'est pas connectée à un jeu de réplication, ou si la connexion n'a pas encore été initialisée.



Mongo::getSlaveOkay

(PECL mongo >=1.1.0)

Mongo::getSlaveOkayRécupère la configuration de slaveOkay pour cette collection

Description

public bool Mongo::getSlaveOkay ( void )

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux esclaves.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de la configuration de slaveOkay pour cette instance.



Mongo::listDBs()

(No version information available, might only be in SVN)

Liste toutes les bases de données disponibles

Description

public array Mongo::listDBs ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant 3 champs. Le premier vaut databases, et contient lui-même un tableau dont chaque élément est un tableau associatif correspondant à une base de données, fournissant des informations comme le nom, la taille, et le fait qu'elle soit vide ou non. Les 2 autres champs sont totalSize (en octets) et ok, qui vaut 1 si la méthode est exécutée avec succès.

Exemples

Exemple #1 Exemple avec Mongo::listDBs()

Cet exemple montre comment utiliser listDBs ainsi que la structure de données retournées.

<?php

$mongo 
= new Mongo();
$dbs $mongo->listDBs();
print_r($dbs);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [databases] => Array
        (
            [0] => Array
                (
                    [name] => doctrine
                    [sizeOnDisk] => 218103808
                    [empty] => 
                )
        )

    [totalSize] => 218103808
    [ok] => 1
)



Mongo::selectCollection()

(No version information available, might only be in SVN)

Lit une collection de base de données

Description

public MongoCollection Mongo::selectCollection ( string $db , string $collection )

Liste de paramètres

db

Le nom de la base de données.

collection

Le nom de la collection.

Valeurs de retour

Retourne un nouvel objet de collection collection.

Erreurs / Exceptions

Emet une exception InvalidArgumentException si la base de données ou la collection est invalide.

Exemples

Exemple #1 Exemple avec Mongo::selectCollection()

<?php
$m 
= new Mongo();

$c1 $m->selectCollection("foo""bar.baz");
// which is equivalent to
$c2 $m->selectDB("foo")->selectCollection("bar.baz");

// $c1 and $c2 now represent the same collection
?>


Mongo::selectDB

(PECL mongo >=0.9.0)

Mongo::selectDBSélectionne le nom de la base de données

Description

public MongoDB Mongo::selectDB ( string $name )

Liste de paramètres

name

Le nom de la base de données.

Valeurs de retour

Retourne un nouvel objet mongo.

Erreurs / Exceptions

Emet une exception InvalidArgumentException si la base de données est invalide.



Mongo::setSlaveOkay

(PECL mongo >=1.1.0)

Mongo::setSlaveOkayModifie la configuration de slaveOkay pour cette collection

Description

public bool Mongo::setSlaveOkay ([ bool $ok ] )

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de la lecture aux esclaves.

Liste de paramètres

ok

Si la lecture doit être envoyée aux membres secondaires du jeu de réplication pour toutes les requêtes possibles issues de l'instance Mongo.

Valeurs de retour

Retourne la valeur formelle de la configuration de slaveOkay pour cette instance.



Mongo::switchSlave

(PECL mongo >=1.1.0)

Mongo::switchSlaveChoisit un nouvel esclave pour les lectures slaveOkay

Description

public string Mongo::switchSlave ( void )

Cette méthode choisit de façon aléatoire un esclave pour une connexion afin d'y effectuer les lectures. Elle est appelée automatiquement par le driver et ne devrait pas être appelée manuellement. Elle appelle la méthode Mongo::getHosts() (pour rafraichir les statuts des hôtes) et la méthode Mongo::getSlave() (pour récupérer la valeur retournée).

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux esclaves.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'adresse de l'esclave utilisé par cette connexion pour les lectures. Elle devrait être la même que celle choisie précédemment de façon aléatoire. La méthode devrait retourner qu'une seule adresse si un seul serveur secondaire (ou un seul primaire) est disponible.

Par exemple, si vous avez 3 membres dans le jeu de réplication avec un primaire, un secondaire et un arbitraire, cette méthode devrait toujours retourner l'adresse du secondaire. Si le secondaire devient indisponible, cette méthode devrait toujours retourner l'adresse du primaire. Si le primaire devient aussi indisponible, cette méthode lancera une exception, sachant qu'un serveur arbitraire ne peut gérer les lectures.

Erreurs / Exceptions

Lance une exception MongoException (code erreur 15) si la méthode est appelée sur une connexion non connue du jeu de réplication. Elle lancera également une exception MongoException si aucun serveur de réplication n'est trouvé (primaire ou secondaire) pour la lecture (code erreur 16).



Mongo::__toString

(PECL mongo >=0.9.0)

Mongo::__toStringProduit une représentation de chaîne d'une connexion Mongo

Description

public string Mongo::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom d'hôte et le port de cette connexion.


Sommaire



La classe MongoDB

Introduction

Les objets de cette classe servent à interagir avec la base de données. Pour obtenir une base de données :

<?php

$m 
= new Mongo(); // connexion
$db $m->selectDB("exemple");

?>
Les noms de base de données peuvent contenir n'importe quel caractère ASCII. Mais ils ne peuvent pas contenir les caractères " ", "." ou être la chaîne vide. Le mot "system" est aussi réservé.

Quelques noms de base de données valides mais inattendus : "null", "[x,y]", "3", à"\"", "/".

Contrairement aux noms de collection, les noms de bases de données peuvent contenir "$".

Synopsis de la classe

MongoDB {
/* Constantes */
const int MongoDB::PROFILING_OFF = 0 ;
const int MongoDB::PROFILING_SLOW = 1 ;
const int MongoDB::PROFILING_ON = 2 ;
/* Champs */
public integer $w = 1 ;
public integer $wtimeout = 10000 ;
/* Méthodes */
public array authenticate ( string $username , string $password )
public array command ( array $command )
__construct ( Mongo $conn , string $name )
public MongoCollection createCollection ( string $name [, bool $capped = FALSE [, int $size = 0 [, int $max = 0 ]]] )
public array createDBRef ( string $collection , mixed $a )
public array drop ( void )
public array dropCollection ( mixed $coll )
public array execute ( mixed $code [, array $args = array() ] )
public bool forceError ( void )
public MongoCollection __get ( string $name )
public array getDBRef ( array $ref )
public MongoGridFS getGridFS ([ string $prefix = "fs" ] )
public int getProfilingLevel ( void )
public bool getSlaveOkay ( void )
public array lastError ( void )
public array listCollections ( void )
public array prevError ( void )
public array repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] )
public array resetError ( void )
public MongoCollection selectCollection ( string $name )
public int setProfilingLevel ( int $level )
public bool setSlaveOkay ([ bool $ok ] )
public string __toString ( void )
}

Constantes pré-définies

Niveaux d'historisation de MongoDB

MongoDB::PROFILING_OFF
0
Le profilage est inactif.
MongoDB::PROFILING_SLOW
1
Le profilage est actif pour les opérations lentes (>100 ms).
MongoDB::PROFILING_ON
2
Le profilage est actif sur toutes les opérations.

Champs

w
1

Le nombre de serveurs vers lesquels répliquer avant de retourner avec succès. Hérité par les instances dérivées de la MongoCollection La fonctionnalité w n'est disponible que pour les versions 1.5.1+ du serveur MongoDB et 1.0.8+ du pilote.

w est utilisé chaque fois que vous éxecutez une opération "sécurisée" (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), MongoCollection::save(), et MongoCollection::ensureIndex() supportent tous les options sécurisées). Avec la valeur par défaut (1), une opération sécurisée retournera une fois que le serveur a effectué l'opération. Si le serveur tombe avant que l'opération ne soit répliquée vers un esclave, il est possible de perdre l'opération. Ainsi vous pouvez préciser une valeur supérieure à 1 pour le paramètre w et garantir qu'au moins un esclave recoive l'opération avant qu'elle ne soit considérée comme étant réalisée avec succès.

Par exemple si w vaut 2, le serveur principal et un des esclaves doivent avoir enregistré l'opération ou le pilote enverra une MongoCursorException. Il est tentant de mettre le nombre total d'escalves + le maitre comme numéro pour w, mais alors si un des esclaves tombe l'opération échouera et une exception sera levée, ainsi w=2 est le cas le plus sécurisant (maitre +1esclave).

wtimeout
10000

Le nombre de millisecondes à attendre pour que les réplications de MongoDB::$w démarrent. Hérité par les instances dérivées dans la MongoCollection en cours. La fonctionnalité w n'est disponible que depuis la version 1.5.1+ du serveur MongoDB et 1.0.8+ du pilote.

Sauf si wtimeout est précisé, le serveur attendra indéfiniment que la réplication vers les serveurs w se termine. Le pilote attendra par défaut 10 secondes, vous pouvez changer cette valeur.

Voir aussi

Documentation de MongoDB » concernant les bases de données.


MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticateIdentification à une base de données

Description

public array MongoDB::authenticate ( string $username , string $password )

Cette méthode permet de s'identifier sur une connexion. Si l'identification est activée sur le serveur de base de données (ce n'est pas le cas par défaut), vous devez vous y identifier avant de faire une quelconque opération.

En général, vous devriez utiliser l'authentification intégrée à Mongo::__construct() au lieu de cette méthode. Si vous vous authentifiez sur une connection et que celle-ci se perd et se reconnecte pendant votre session, vous serez réauthentifié. Si vous vous étiez authentifié manuellement au moyen de cette méthode et que la connection se perd, vous devrez alors rappeler cette méthode une fois reconnecté.

Cette méthode revient à exécuter :

<?php

$salted 
"${username}:mongo:${password}";
$hash md5($salted);

$nonce $db->command(array("getnonce" => 1));

$saltedHash md5($nonce["nonce"]."${username}${hash}");

$result $db->command(array("authenticate" => 1
    
"user" => $username,
    
"nonce" => $nonce["nonce"],
    
"key" => $saltedHash
));

?>

Une fois la connexion authentifiée, elle ne peut être non-authentifiée qu'en utilisant la commande de la base de données "logout" :

<?php

$db
->command(array("logout" => 1));

?>

Liste de paramètres

username

Le nom d'utilisateur.

password

Le mot de passe (en texte plein).

Valeurs de retour

Retourne la réponse de la base de données. Si l'identification a réussi, la méthode retournera

<?php
array("ok" => 1);
?>
Si une erreur survient, elle retournera
<?php
array("ok" => 0"errmsg" => "auth fails");
?>
("auth fails" peut être un message différent, suivant la version de la base de données et le type d'erreur rencontré).

Voir aussi

Documentation principale MongoDB sur l' » authentification.



MongoDB::command

(PECL mongo >=0.9.2)

MongoDB::commandExécute une commande de base de données

Description

public array MongoDB::command ( array $command )

Tout ce qui n'est pas une opération CRUD peut être effectué avec une commande de base de données. Besoin de connaitre la version de la base de données ? Il y a une commande pour cela. Besoin de faire une agrégation ? Il y a une commande pour cela. Besoin d'activer l'historisation ? Vous voyez l'idée ?

Cette méthode est équivalente à :

<?php

public function command($data) {
    return 
$this->selectCollection('$cmd')->findOne($data);
}

?>

Liste de paramètres

command

La requête à envoyer.

Historique

Version Description
1.2.0 Ajout du paramètre options avec une seule option : timeout.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoDB::command() et "distinct"

Trouver tous les valeurs distinctes pour une clé.

<?php

$people 
$db->people;

$people->insert(array("name" => "Joe""age" => 4));
$people->insert(array("name" => "Sally""age" => 22));
$people->insert(array("name" => "Dave""age" => 22));
$people->insert(array("name" => "Molly""age" => 87));

$ages $db->command(array("distinct" => "people""key" => "age"));

foreach (
$ages['values'] as $age) {
    echo 
"$age\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


4
22
87

Exemple #2 Exemple avec MongoDB::command() et MapReduce

Récupérer tous les utilisateurs avec au moins un événement "sale", et savoir le nombre de fois chacun de ces utilisateurs ont eu une vente.

<?php

// Document d'événement simple
$events->insert(array("user_id" => $id,
    
"type" => $type,
    
"time" => new MongoDate(),
    
"desc" => $description));

// Construit les fonctions map et reduce
$map = new MongoCode("function() { emit(this.user_id,1); }");
$reduce = new MongoCode("function(k, vals) { ".
    
"var sum = 0;".
    
"for (var i in vals) {".
        
"sum += vals[i];".
    
"}".
    
"return sum; }");

$sales $db->command(array(
    
"mapreduce" => "events",
    
"map" => $map,
    
"reduce" => $reduce,
    
"query" => array("type" => "sale"),
    
"out" => array("merge" => "eventCounts")));

$users $db->selectCollection($sales['result'])->find();

foreach (
$users as $user) {
    echo 
"{$user['_id']} had {$user['value']} sale(s).\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


User 47cc67093475061e3d9536d2 had 3 sale(s).
User 49902cde5162504500b45c2c had 14 sale(s).
User 4af467e4fd543cce7b0ea8e2 had 1 sale(s).

Note: Utilisation de MongoCode

Cet exemple utilise la méthode MongoCode, qui prend également comme argument le scope. Cependant, actuellement, Mongo ne supporte pas l'utilisation d'un scope dans MapReduce. Si vous voulez utiliser des variables définies côté client dans les fonctions MapReduce, vous pouvez les ajouter au scope global en utilisant le champ optionnel scope avec la commande de la base de données. Voir la » documentation de MapReduce pour plus d'informations.

Note: L'argument out

Avant la version 1.8.0, l'argument out était optionnel. Si vous ne l'utilisiez pas, les résultats de MapReduce étaient écrits dans une collection temporaire, qui était supprimée lors de la fermeture de la collection. En version 1.8.0+, l'argument out est obligatoire. Reportez-vous à la » documentation sur MapReduce pour plus d'informations.

Si vous souhaitez utiliser MapReduce, Prajwal Tuladhar a créé une API pour les utilisateurs PHP de Mongo qui fournit une interface au lieu d'utiliser les commandes de base. Vous pouvez la télécharger depuis » Github et il y a un » article sur son blog expliquant comment l'utiliser.

Voir aussi

La documentation principale MongoDB sur les » commandes de base de données. Aussi, quelques commandes individuelles : » findAndModify, » getLastError, et » repair.



MongoDB::__construct

(PECL mongo >=0.9.0)

MongoDB::__constructCrée une nouvelle base de données Mongo

Description

MongoDB::__construct ( Mongo $conn , string $name )

Cette méthode ne devrait pas être appelée directement. Pour créer une instance de MongoDB, utilisez Mongo::__get() ou Mongo::selectDB().

Si vous voulez ignorer cette recommandation, vous pouvez alors utiliser:

<?php

$m 
= new Mongo();
$db = new MongoDB($m'mydbname');

?>

Mais évitez. Ceci est plus logique:

<?php

$m 
= new Mongo();
$db $m->mydbname;

// ou, si le nom contient des caractères hasardeux:

$db $m->selectDB('my,db:name');

?>

Liste de paramètres

Mongo conn

La connexion à la base de données.

name

Le nom de la base de données.

Valeurs de retour

Returns the database.

Erreurs / Exceptions

Emet l'exception par défaut si le nom de la base de données est invalide.



MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollectionCrée une collection

Description

public MongoCollection MongoDB::createCollection ( string $name [, bool $capped = FALSE [, int $size = 0 [, int $max = 0 ]]] )

Cette méthode est utilisée pour créer des collections limitées ainsi que des collections nécessitant des options spéciales. Cette méthode revient à exécuter :

<?php

$collection 
$db->command(array("create" => $name"size" => $size"capped" => $capped"max" => $max));

?>
Voir la méthode MongoDB::command() pour plus d'informations sur les commandes de base de données.

Liste de paramètres

name

Le nom de la collection.

capped

Si la collection est de taille fixe ou pas.

size

Si la collection est de taille fixe, sa taille, en octets.

max

Si la collection est de taille fixe, le nombre maximal d'éléments à stocker dans la collection.

Valeurs de retour

Retourne un objet MongoCollection, qui représente la nouvelle collection.

Exemples

Exemple #1 Exemple avec MongoDB::createCollection()

Une collection plafonnée est un type spécial de collection qui a soit des éléments fixes, soit un nombre d'éléments fixes. Une fois que la collection est pleine, les éléments les plus anciens seront effacés lors de l'ajout de nouveaux éléments. Les collections plafonnées sont vraiment utiles pour les applications qui historisent et que vous souhaitez réserver une certaine quantitié d'espaces à l'historisation sans vous soucier de leurs évolutions.

Cet exemple crée une petite collection qui conserve un maximum de 10 documents.

<?php

$log 
$db->createCollection("logger"true10*102410);

for (
$i 0$i 100$i++) {
    
$log->insert(array("level" => WARN"msg" => "Message simple #$i""ts" => new MongoDate()));
}

$msgs $log->find();

foreach (
$msgs as $msg) {
    echo 
$msg['msg']."\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Message simple #90
Message simple #91
Message simple #92
Message simple #93
Message simple #94
Message simple #95
Message simple #96
Message simple #97
Message simple #98
Message simple #99


MongoDB::createDBRef

(PECL mongo >=0.9.0)

MongoDB::createDBRefCrée une référence de base de données

Description

public array MongoDB::createDBRef ( string $collection , mixed $a )

Cette méthode est une interface flexible pour créer des références à des bases de données (voir la classe MongoDBRef).

Liste de paramètres

collection

La collection vers laquelle la référence de base de données va pointer.

a

Un objet ou un identifiant vers lequel créer une référence. Si un objet ou un tableau associatif est fourni, ceci va créer une référence en utilisant le champs _id.

Valeurs de retour

Retourne la tableau de référence de la base de données.

Exemples

Exemple #1 Exemple pour MongoDB::createDBRef()

Cet exemple montre comment créer un tableau de référence de base de données à partir d'un document.

<?php

$articles 
$db->articles;

$article = array(
 
'title' => 'Test article',
 
'description' => 'Test article description'
);

$articles->insert($article);
$ref $db->createDBRef('articles'$article);

print_r($article);
print_r($ref);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

     Array
     (
         [title] => Test article
         [description] => Test article description
         [_id] => MongoId Object
             (
             )

     )
     Array
     (
         [$ref] => articles
         [$id] => MongoId Object
             (
             )

     )
     

Maintenant $ref peut être stocké sur un autre document et récupéré plus tard avec MongoDB::getDBRef() ou MongoCollection::getDBRef().

Exemple #2 Exemple pour MongoDB::createDBRef()

Exemple montrant comment créer une référence de base de données depuis un simple id.

<?php

$id 
= new MongoId('47cc67093475061e3d9536d2');
$ref $db->createDBRef('articles'$id);
?>


MongoDB::drop

(PECL mongo >=0.9.0)

MongoDB::dropSupprime cette base de données

Description

public array MongoDB::drop ( void )

Supprime la base de données actuellement utilisée.

Identique à :

<?php

public function drop() {
    
$this->command(array("dropDatabase" => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoDB::drop()

Cet exemple montre comment supprimer une base de données Mongo et la réponse que nous devons attendre.

<?php

$db 
$mongo->foo;
$response $db->drop();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dropped] => foo.$cmd
    [ok] => 1
)


MongoDB::dropCollection

(PECL mongo >=0.9.0)

MongoDB::dropCollectionSupprime une collection [obsolète]

Description

public array MongoDB::dropCollection ( mixed $coll )
Avertissement

Obsolète

Utilisez MongoCollection::drop() à la place.

Cette fonction provoque des fuites mémoires dans les versions 1.0.7 et inférieures!

Liste de paramètres

coll

un objet MongoCollection ou le nom de la collection à supprimer.

Valeurs de retour

Retourne la réponse de la base de données.



MongoDB::execute

(PECL mongo >=0.9.3)

MongoDB::executeExécute le code JavaScript sur la base de données

Description

public array MongoDB::execute ( mixed $code [, array $args = array() ] )

Le serveur de base de données Mongo exécute un moteur Javascript. Cette méthode vous permet d'exécuter du Javascript arbitraire sur la base de données. Ceci peut être utile si vous voulez toucher un petit nombre de collections, ou pour traiter quelques résultats issus de la base de données afin de réduire la quantitié de données à envoyer au client.

L'exécution de Javascript dans la base de données pose un verrou en écriture, signifiant que les autres opérations sont bloquées. Gardez-le bien à l'esprit avant d'exécuter un script conséquant.

Ceci est un wrapper pour la commande de base de données. Cette méthode est équivalente à :

<?php

public function execute($code$args) {
    return 
$this->command(array('$eval' => $codeargs => $args));
}

?>

Liste de paramètres

code

un objet MongoCode ou une chaîne a exécuter.

args

Les arguments à passer à la requête code.

Valeurs de retour

Retourne le résultat de l'évaluation.

Exemples

Exemple #1 Exemple avec MongoDB::execute()

<?php

$response 
$db->execute("function() { return 'Bonjour le monde !'; }");
echo 
$response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Bonjour le monde !

Exemple #2 Exemple avec MongoDB::execute()

Le tableau optionnel de paramètres sera passé à la fonction Javascript.

<?php

$response 
$db->execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Au revoir""Joe"));
echo 
$response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Au revoir, Joe!

Exemple #3 Exemple de porté

Si un objet MongoCode est utilisé à la place d'une chaîne comme premier paramètre, un scope peut être passé dans lequel le Javascript sera exécuté.

<?php

$func 
=
    
"function(greeting, name) { ".
        
"return greeting+', '+name+', dit '+greeter;".
    
"}";
$scope = array("greeter" => "Fred");

$code = new MongoCode($func$scope);

$response $db->execute($code, array("Au revoir""Joe"));
echo 
$response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Au revoir, Joe, dit Fred


MongoDB::forceError()

(No version information available, might only be in SVN)

Crée une erreur de base de données

Description

public bool MongoDB::forceError ( void )

Cette méthode n'est pas utile lors d'une utilisation normal de MongoDB. Elle force l'émission d'une erreur de base de données. Cela signifie que la méthode MongoDB::lastError() retournera une erreur générique de base de données après son exécution.

Cette commande est identique à :

<?php

public function forceError() {
    return 
$this->command(array('forceerror' => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.



MongoDB::__get

(PECL mongo >=1.0.2)

MongoDB::__getRécupère une collection

Description

public MongoCollection MongoDB::__get ( string $name )

C'est la méthode la plus simple de récupérer une collection depuis un objet de base de données. Si un nom de collection contient des caractères étranges, vous devriez utiliser plutôt la méthode MongoDB::selectCollection().

<?php

$mongo 
= new Mongo();

// les 2 lignes suivants sont équivalentes
$collection $mongo->selectDB("foo")->selectCollection("bar");
$collection $mongo->foo->bar;

?>

Liste de paramètres

name

Le nom de la collection.

Valeurs de retour

Retourne la collection.



MongoDB::getDBRef

(PECL mongo >=0.9.0)

MongoDB::getDBRefLit le contenu d'une référence de base de données

Description

public array MongoDB::getDBRef ( array $ref )

Liste de paramètres

ref

Une référence de base de données.

Valeurs de retour

Retourne le document de base de données, référencé par l'identifiant de base.

Exemples

Exemple #1 Exemple pour MongoDB::getDBRef()

Exemple montrant comment récupérer une référence de base de données et la forme de l'entrée.

<?php

 $ref 
= array(
   
'$ref' => 'profiles',
   
'$id' => '47cc67093475061e3d9536d2'
 
);
 
 
$profile $db->getDBRef($ref);
 
?>

Voyez MongoDB::createDBRef() pour plus d'informations sur comment créer des références de bases de données.



MongoDB::getGridFS

(PECL mongo >=0.9.0)

MongoDB::getGridFSManipulations des fichiers dans la base

Description

public MongoGridFS MongoDB::getGridFS ([ string $prefix = "fs" ] )

Liste de paramètres

prefix

Le préfixe pour les fichiers et les morceaux de collections.

Valeurs de retour

Retourne un nouvel objet mongogridfs pour cette base de données.

Exemples

Exemple #1 Exemple pour MongoDB::getGridFS()

Cet exemple montre comment récupérer une instance de MongoGridFS.

<?php

$db 
$mongo->my_db;

$prefix 'files';
$collection $db->getGridFS($prefix);

?>

Lisez la documentation de MongoGridFS pour apprendre comment stocker des fichiers avec MongoDB.



MongoDB::getProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::getProfilingLevelLit le niveau de profilage de la base de données

Description

public int MongoDB::getProfilingLevel ( void )

Retourne le niveau de profilage de la base de données.

Le profilage de base de données surveille les temps d'exécution d'une requête. Si vous l'activez (en utilisant MongoDB::setProfilingLevel() ou le shell), vous pouvez observer le nombre de requêtes qui prennent plus qu'un certain nombre de millisecondes à s'exécuter; ou bien le temps dévolu pour toutes les requêtes.

Notez que la surveillance des requêtes ralentit les requêtes, aussi, il convient de l'utiliser lors du développement ou d'une période de test mais pas en production.

Cette méthode est équivalent à l'exécution de :

<?php

public function getProfilingLevel() {
    return 
$this->command(array('profile' => -1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le niveau de profilage.

Voir aussi

La documentation principale MongoDB sur » le profilage et MongoDB::setProfilingLevel() - Configure le niveau de profilage de la base de données.



MongoDB::getSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::getSlaveOkayRécupère la configuration de slaveOkay pour cette base de données

Description

public bool MongoDB::getSlaveOkay ( void )

Voir la section requête de ce manuel pour plus d'informations sur la distribution de la lecture aux esclaves.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de slaveOkay pour cette instance.



MongoDB::lastError

(PECL mongo >=0.9.5)

MongoDB::lastErrorVérifie s'il y a une erreur sur la dernière opération relative à la base de données

Description

public array MongoDB::lastError ( void )

Cette méthode est équivalente à :

<?php

public function lastError() {
    return 
$this->command(array('getlasterror' => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'erreur, s'il y en a une.

Exemples

Exemple #1 Exemple avec MongoDB::lastError()

<?php
$db
->resetError();
var_dump($db->lastError());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["err"]=>
  NULL
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}

Exemple #2 Exemple avec MongoDB::lastError() et une clé dupliquée

<?php
$c 
$db->selectCollection("foo");

// insert two documents with the same _id
$c->insert(array("_id" => 1));
$c->insert(array("_id" => 1));

var_dump($db->lastError());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["err"]=>
  string(64) "E11000 duplicate key errorindex: foo.foo.$_id_  dup key: { : 1 }"
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}


MongoDB::listCollections

(PECL mongo >=0.9.0)

MongoDB::listCollectionsListe les collections de la base de données

Description

public array MongoDB::listCollections ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une liste de MongoCollections.

Exemples

Exemple #1 Exemple avec MongoDB::listCollections()

L'exemple suivant illustre la suppression de toutes les collections d'une base de données.

<?php

$m 
= new Mongo();
$db $m->selectDB("sample");

$list $db->listCollections();
foreach (
$list as $collection) {
    echo 
"Suppression de $collection... ";
    
$collection->drop();
    echo 
"Fait !\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Suppression de sample.blog.posts... Fait !
Suppression de sample.critical.docs... Fait !
Suppression de sample.taxes... Fait !
...


MongoDB::prevError

(PECL mongo >=0.9.5)

MongoDB::prevErrorVérifie la dernière erreur émise lors d'une opération relative à la base de données

Description

public array MongoDB::prevError ( void )

MongoDB::lastError() est généralement préférée à la place de cette méthode. Celle-ci retourne la dernière erreur survenue sur la base de données ainsi que le nombre d'opérations sur cette dernière. Cette méthode est obsolète.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'erreur ainsi que le numéro de l'opérations dans laquelle elle est apparue.



MongoDB::repair

(PECL mongo >=0.9.0)

MongoDB::repairRépare et compacte une base de données

Description

public array MongoDB::repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] )

Cette méthode crée une copie de toutes les données de la base de données. Elle supprime toutes les données corrompues, compacte et optimise les espaces libres trouvés. Ces opérations sont très lentes sur de grosses bases de données.

Cette méthode est habituellement appelée depuis le shell ou depuis la ligne de commande, et non via le driver.

C'est un équivalent à la fonction :

<?php

public function repair() {
    return 
$this->command(array('repairDatabase' => 1));
}

?>

Liste de paramètres

preserve_cloned_files

Indique les fichiers clonés doivent être conservé, en cas d'échec de la réparation.

backup_original_files

Indique si les fichiers originaux doivent être sauvegardés.

Valeurs de retour

Retourne la réponse de la base de données.

Voir aussi

La documentation principale MongoDB sur » la réparation.

Exemples

Exemple #1 Exemple pour MongoDB::repair()

Cet exemple montre comment réparer et comprimer une base de données.

<?php

$db 
$mongo->foo;

$response $db->repair();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ok] => 1
)


MongoDB::resetError

(PECL mongo >=0.9.5)

MongoDB::resetErrorEfface toutes les erreurs d'une base de données

Description

public array MongoDB::resetError ( void )

Cette méthode n'est pas utilisée lors d'opérations normales. Elle réinitialise le tracker d'erreur de base de données (qui peut être incrémenté via la méthode MongoDB::forceError(), qui n'est également pas une méthode normalement utilisée).

C'est un équivalent de :

<?php

public function resetError() {
    return 
$this->command(array('reseterror' => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse à la base de données.



MongoDB::selectCollection

(PECL mongo >=0.9.0)

MongoDB::selectCollectionLit une collection

Description

public MongoCollection MongoDB::selectCollection ( string $name )

Liste de paramètres

name

Le nom de la collection.

Valeurs de retour

Retourne la collection.



MongoDB::setProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::setProfilingLevelConfigure le niveau de profilage de la base de données

Description

public int MongoDB::setProfilingLevel ( int $level )

Cette méthode modifie le niveau de profilage courant de la base de données.

Cette fonction est un équivalent à :

<?php

public function setProfilingLevel($level) {
    return 
$this->command(array('profile' => $level));
}

?>

Les options pour le niveau sont 0 (off), 1 (requêtes > 100ms), et 2 (toutes les requêtes). Si vous souhaitez profiler les requêtes qui prennent plus de temps d'une période donnée, utilisez la commande de base de données et passez là dans la seconde option, le nombre de millisecondes. Par exemple, pour profiler toutes les requêtes qui prennent plus d'une seconde, exécutez :

<?php

$result 
$this->command(array('profile' => 1'slowms' => 1000));

?>

Le profilage de requêtes apparaissent dans la collection system.profile de la base de données.

Liste de paramètres

level

Le niveau de profilage.

Valeurs de retour

Retourne le niveau de profilage précédent.



MongoDB::setSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::setSlaveOkayModifie la configuration de slaveOkay pour cette base de données

Description

public bool MongoDB::setSlaveOkay ([ bool $ok ] )

Voir la section requête de ce manuel pour plus d'informations sur la distribution de la lecture pour les esclaves.

Liste de paramètres

ok

Si la lecture doit être envoyée au second membre d'un jeu de réplication pour toutes les requêtes possibles utilisant l'instance MongoDB.

Valeurs de retour

Retourne la valeur de slaveOkay pour cette instance.



MongoDB::__toString

(PECL mongo >=0.9.0)

MongoDB::__toStringLe nom de cette base de données Mongo

Description

public string MongoDB::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la base de données.


Sommaire



La classe MongoCollection

Introduction

Représentation d'une collecion de base de données.

Les noms de collections peuvent contenir n'importe quel caractère ASCII. Il est possible d'utiliser les noms de collections suivants : "", "...", "ma collection" et "*&#@".

Les noms de collections définies par l'utilisateur ne peuvent contenir le caractère $. Il y a certaines collections systèmes qui utilisent le caractère $ dans leurs noms (i.e., local.oplog.$main), mais c'est un caractère réservé. Si vous tentez de créer et d'utiliser une collection dont le nom contient un $, MongoDB échouera.

Synopsis de la classe

MongoCollection {
/* Constantes */
const int MongoCollection::DESCENDING = -1 ;
/* Champs */
public MongoDB $db = NULL ;
public integer $w ;
public integer $wtimeout ;
/* Méthodes */
public mixed batchInsert ( array $a [, array $options = array() ] )
public __construct ( MongoDB $db , string $name )
public int count ([ array $query = array() [, int $limit = 0 [, int $skip = 0 ]]] )
public array createDBRef ( array $a )
public array deleteIndex ( string|array $keys )
public array deleteIndexes ( void )
public array drop ( void )
public bool ensureIndex ( array $keys [, array $options ] )
public MongoCursor find ([ array $query = array() [, array $fields = array() ]] )
public array findOne ([ array $query = array() [, array $fields = array() ]] )
public MongoCollection __get ( string $name )
public array getDBRef ( array $ref )
public array getIndexInfo ( void )
public string getName ( void )
public bool getSlaveOkay ( void )
public array group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] )
public mixed insert ( array $a [, array $options = array() ] )
public mixed remove ([ array $criteria = array() [, array $options = array() ]] )
public mixed save ( array $a [, array $options = array() ] )
public bool setSlaveOkay ([ bool $ok ] )
public string __toString ( void )
public bool update ( array $criteria , array $newobj [, array $options = array() ] )
public array validate ([ bool $scan_data = FALSE ] )
}

Constantes pré-définies

MongoCollection::ASCENDING
1
Classements et créations d'index dans l'ordre croissant.
MongoCollection::DESCENDING
-1
Classements et créations d'index dans l'ordre décroissant.

Champs

db

La base de données "parente" pour cette collection.

w

Le nombre de serveurs vers lesquels répliquer un changement avant de retourner un succès.La valeur est héritée de la base de données parente. La classe MongoDB possède plus de détails sur le fonctionnement de w.

wtimeout

Le nombre de millisecondes à attendre que les réplications $this->w se fassent. La valeur est héritée de la base de données parente. La classe MongoDB possède plus de détails sur le fonctionnement de wtimeout.

Voir aussi

Documentation de MongoDB » concernant les collections.


MongoCollection::batchInsert

(PECL mongo >=0.9.0)

MongoCollection::batchInsertInsère plusieurs documents dans la collection

Description

public mixed MongoCollection::batchInsert ( array $a [, array $options = array() ] )

Liste de paramètres

a

Un tableau de tableaux.

options

Options d'insertion.

  • "safe"

    Peut être un booléen ou un entier, et vaut par défaut FALSE. Si vaut FALSE, le programme continue l'exécution sans attendre la réponse de la base de données. Si vaut TRUE, le programme attendra la réponse de la base de données et lancera une exception MongoCursorException si l'insertion a échouée.

    Si safe est un entier, l'insertion sera répliquée sur l'ensemble des machines avant de retourner le succès de l'opération (ou lancera une exception si la réplication échoue). Cette valeur écrase la variable w définie sur la collection.

  • "fsync"

    Booléen et vaut par défaut FALSE. Force l'insertion à être synchronisée sur le disque avant de retourner le succès de l'opération. Si vaut TRUE, une insertion sécurisée sera effectuée et le paramétrage de safe sera automatiquement valorisé à FALSE.

Valeurs de retour

Si l'option "safe" est définie, retourne un tableau associatif contenant le statut de l'insertion ("ok") ainsi que toutes les erreurs survenues ("err"). Sinon, retourne TRUE si l'insertion a été envoyée avec succès, FALSE sinon.

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "safe" est définie et que l'insertion échoue.

Lance une exception MongoCursorTimeoutException si l'option "safe" est définie à une valeur supérieure à 1 et la base de données ne peut répliquer l'opération dans un délai de MongoCollection::$wtimeout millisecondes.

Historique

Version Description
1.0.5 Ajout du paramètre "options".
1.0.9 Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés) et ajout de l'option "fsync".

Exemples

Exemple #1 Exemple avec MongoCollection::batchInsert()

L'insertion en masse est un moyen rapide d'insérer rapidement de nombreux éléments à la fois dans une base

<?php

$users 
= array();
for (
$i 0$i<100$i++) {
  
$users[] = array('username' => 'user'.$i'i' => $i);
}

$mongo = new Mongo();
$collection $mongo->my_db->users;
$collection->drop();

$collection->batchInsert($users);

foreach (
$users as $user) {
  echo 
$user['_id']."\n"// peuplé via l'instance de MongoId
}

$users $collection->find()->sort(array('i' => 1));
foreach (
$users as $user) {
    
var_dump($user['username']);
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

4bf43ac68ead0e1971000000
4bf43ac68ead0e1971010000
4bf43ac68ead0e1971020000
...
string(5) "user1"
string(5) "user2"
string(5) "user3"
...


MongoCollection::__construct

(PECL mongo >=0.9.0)

MongoCollection::__constructCrée une nouvelle collection

Description

public MongoCollection::__construct ( MongoDB $db , string $name )

Liste de paramètres

MongoDB db

La base de données parente.

name

Le nom de la collection.

Valeurs de retour

Retourne un nouvel objet de connexion MongoCollection.

Erreurs / Exceptions

Emet l'exception par défaut si la connexion est invalide.



MongoCollection::count

(PECL mongo >=0.9.0)

MongoCollection::countCompte le nombre de documents de cette collection

Description

public int MongoCollection::count ([ array $query = array() [, int $limit = 0 [, int $skip = 0 ]]] )

Liste de paramètres

query

Tableau associatif ou objet avec les champs à chercher.

limit

Spécifie une limite haute au nombre retourné.

skip

Spécifie un nombre de résultats à sauter avant de commencer le comptage.

Valeurs de retour

Retourne le nombre de documents correspondant à la requête.

Historique

Version Description
1.0.7 Ajout des paramètres limit et skip.

Exemples

Exemple #1 Exemple avec MongoCollection::count()

<?php

$collection
->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

var_dump($collection->count());
var_dump($collection->count(array('x'=>1)));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(1)


MongoCollection::createDBRef

(PECL mongo >=0.9.0)

MongoCollection::createDBRefCrée une référence de base de données

Description

public array MongoCollection::createDBRef ( array $a )

Liste de paramètres

a

L'objet dont il faut créer la référence.

Valeurs de retour

Retourne le tableau de référence de base de données.

Exemples

Exemple #1 Exemple avec MongoCollection::createDBRef()

<?php

$songs 
$db->songs;
$playlists $db->playlists;

// crée une référence à une chanson
$manamana $songs->findOne(array('title' => 'Ma na ma na'));
$refToSong $songs->createDBRef($manamana);

// ajoute la référence à ma liste de lectures
$playlists->update(array('username' => 'me'), array('$push' => array('songlist' => $refToSong)));

?>

Voir aussi



MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexSupprime un index de la collection

Description

public array MongoCollection::deleteIndex ( string|array $keys )

Cette méthode est identique à:

<?php

public function deleteIndexes($keys) {
  
// toIndexString est une méthode protégée qui transforme les chaines, tableaux
  // et objets en noms d'index
  
$index $this->toIndexString($keys);

  return 
$this->db->command(array("deleteIndexes" => $this->getName(), 
    
"index" => $index);
}

?>

Chaque index possède un nom unique à sa création. C'est l'utilisateur qui le précise en général (avec l'option "name" de MongoCollection::ensureIndex()) ou alors il est généré par le pilote depuis une combinaisons de clés. Ce nom est alors utilisé par MongoCollection::deleteIndex().

Malheureusement, la méthode MongoCollection::ensureIndex() génère des noms très différents de la commande shell à cause de problèmes de compatibilité ascendante, et MongoCollection::deleteIndex() ne peut supprimer les index dont les noms sont personnalisés. De ce fait, la meilleure manière de supprimer des index créés via le shell ou avec des noms personnalisés est d'appeler directement la commande deleteIndexes de la base de données.

Ainsi, si vous avez appelé un index "superfast query", vous pouvez le supprimer avec:

<?php

$db
->command(array("deleteIndexes" => $collection->getName(), "index" => "superfast query");

?>

Pour trouver le nom d'un index, vous pouvez requêter la collection system.indexes d'une base de données et chercher le champ name.

Liste de paramètres

keys

Le ou les champs dont il faut supprimer l'index.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoCollection::deleteIndex()

This example passes the function string and array parameters.

<?php
$m 
= new Mongo();
$c $m->example->indices;

// crée un index
$c->ensureIndex(array("i"=>1));

// supprime l'index
$c->deleteIndex("i");


// créé un index à colonnes multiples
$c->ensureIndex(array("j" => 1"k" => 1));

// supprime cet index
$c->deleteIndex(array("j" => 1"k" => 1));
?>


MongoCollection::deleteIndexes

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexesSupprime tous les index de cette collection

Description

public array MongoCollection::deleteIndexes ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoCollection::deleteIndexes()

Cet exemple montre comme effacer tous les indexes depuis une collection et la réponse que nous devons attendre.

<?php

$collection 
$mongo->my_db->articles;
$response $collection->deleteIndexes();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ok] => 1
)


MongoCollection::drop

(PECL mongo >=0.9.0)

MongoCollection::dropSupprime cette collection

Description

public array MongoCollection::drop ( void )

Supprime cette collection et ses index.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoCollection::drop()

Cet exemple montre comment supprimer une collection et la réponse que nous devons attendre.

<?php

$collection 
$mongo->my_db->articles;
$response $collection->drop();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ns] => my_db.articles
    [ok] => 1
)


MongoCollection::ensureIndex

(PECL mongo >=0.9.0)

MongoCollection::ensureIndex Crée un index sur un champ donné

Description

public bool MongoCollection::ensureIndex ( array $keys [, array $options ] )

Un index unique ne peut être créé dans un champ si plusieurs documents existants ne contiennent pas ce champ. Le champ vaut effectivement NULL pour ces documents et ces derniers ne sont déjà pas uniques.

Liste de paramètres

keys

Le ou les champs à indexer.

options

Ce paramètre est un tableau associatif sous la forme array("optionname" => <boolean>, ...). Actuellement, les options supportées sont :

  • "unique"

    Crée un index unique.

  • "dropDups"

    Si un index unique est sur le point d'être créé et que les valeurs dupliquées existent, les valeurs existantes seront supprimées.

  • "background"

    Si vous utilisez la version 1.3.2+ de MongoDB, vous pouvez créer des index en arrière plan pendant que d'autres opérations se déroulent. Par défaut, la création des index est synchrone. Si vous précisez TRUE à cette option, la création d'index sera asynchrone.

  • "safe"

    Depuis la version 1.0.4 du driver, vous pouvez spécifier une valeur booléenne pour vérifier si la création de l'index a réussi. Le driver lancera une exception MongoCursorException si la création de l'index échoue.

    Si vous utilisez la réplication et que le maitre a changé, utiliser "safe" fera que le pilote se déconnectera du maitre, enverra une exception, et tentera de trouver un nouveau maitre à l'opération suivante (votre application doit décider si oui ou non l'opération devra être rééssayée sur le nouveau maitre).

    Si vous n'utilisez pas "safe" avec une paire de réplication et que le maitre change, il n'y aura aucun moyen pour le pilote d'avoir connaissance de ce changement et il continuera des écritures en échec.

  • "name"

    Après la version 1.0.4 du driver (la version 1.0.4 n'est pas concernée), vous pouvez spécifier le nom de l'index. Ceci peut être utile si vous indexez plusieurs clés et que Mongo vous indique que les noms des index sont trop longs.

  • "timeout"

    Entier, par défaut, vaut MongoCursor::$timeout. Si "safe" est défini, il définira (en millisecondes) le temps d'attente du client d'une réponse de la base de données. Si la base de données ne répond pas dans la période de timeout, une exception MongoCursorTimeoutException sera émise.

Valeurs de retour

Returns TRUE.

Historique

Version Description
1.2.0 Ajout de l'option timeout.
1.0.11 "safe" déclenchera le failover du maitre, si nécessaire.
1.0.11 MongoException sera envoyée si le nom de l'index (généré ou défini) est plus long que 128 octets.
1.0.2 Le paramètre "options" passe de booléen à un tableau. En version Pre-1.0.2, le second paramètre était une valeur booléenne optionnelle spécifiant un index unique.

Erreurs / Exceptions

Envoi MongoException si le nom de l'index est plus grand que 128 octets. (Version 1.0.11+)

Envoi MongoCursorException si l'option "safe" est utilisée et que la création d'index échoue.

Envoi une exception MongoCursorTimeoutException si l'option "safe" est définie et que l'opération prend plus de temps que MongoCollection::$wtimeout millisecondes. Ceci ne tue pas le processus serveur, mais uniquement le délai d'attente côté client.

Exemples

Exemple #1 Exemple avec MongoCollection::ensureIndex()

<?php

$c 
= new MongoCollection($db'foo');

// Crée un index montant sur 'x'
$c->ensureIndex(array('x' => 1));

// Crée un index montant sur 'z' et descendant sur 'zz'
$c->ensureIndex(array('z' => 1'zz' => -1));

// Crée un index unique sur 'x'
$c->ensureIndex(array('x' => 1), array("unique" => true));
?>

Exemple #2 Exemple de suppression de données dupliquées

<?php

$collection
->insert(array("username" => "joeschmoe"));
$collection->insert(array("username" => "joeschmoe"));

/*
 * La création d'index a échoué, vous ne pouvez pas créer d'index unique
 * sur une clé ne possédant pas de valeurs non-uniques
 */
$collection->ensureIndex(array("username" => 1), array("unique" => 1));

/*
 * La création d'index a réussi : un des documents est supprimé de la collection
 */
$collection->ensureIndex(array("username" => 1), array("unique" => 1"dropDups" => 1));

/*
 * Maintenant que nous avons un index unique, les prochaines insertions
 * avec le même nom d'utilisateur (comme ci-dessous) échoueront
 */
$collection->insert(array("username" => "joeschmoe"));

?>

Exemple #3 Indexation géospatiales

Mongo supporte l'indexation géospatiales, vous permettant de chercher des documents se trouvant près d'un endroit donné, ou dans une forme. Par exemple, pour créer un index géospatial sur le champ "loc" :

<?php

$collection
->ensureIndex(array("loc" => "2d"));

?>

Voir aussi

Documentation de MongoDB concernant les» index et les » indexes géospatiales.



MongoCollection::find

(PECL mongo >=0.9.0)

MongoCollection::findInterroge une collection

Description

public MongoCursor MongoCollection::find ([ array $query = array() [, array $fields = array() ]] )

Liste de paramètres

query

Les champs à chercher.

fields

Les champs du résultat à retourner.

Valeurs de retour

Retourne un curseur pour les résultats de recherche.

Exemples

Exemple #1 Exemple avec MongoCollection::find()

Cet exemple montre comment rechercher un intervalle.

<?php

// recherche les documents dont l'identifiant est entre 5 < x < 20
$rangeQuery = array('x' => array( '$gt' => 5'$lt' => 20 ));

$cursor $collection->find($rangeQuery);

?>

Voyez MongoCursor pour plus d'informations sur le fonctionnement des curseurs.

Exemple #2 Exemple pour MongoCollection::find() en utilisant $where

Cet exemple montre comment chercher dans une collection en utilisant du code javascript pour réduire les résultats retournés.

<?php

$collection 
$db->my_db->articles;

$js "function() {
  return this.type == 'homepage' || this.featured == true;
}"
;
$articles $collection->find(array('$where' => $js));

?>

Exemple #3 Exemple pour MongoCollection::find() utilisant $in

Cet exemple montre comment chercher dans une collection en utilisant l'opérateur $in.

<?php

$collection 
$db->my_db->articles;
$articles $collection->find(array(
  
'type' => array('$in' => array('homepage''editorial'))
));

?>

Exemple #4 Récupération des résultats sous la forme d'un tableau

Cet exemple retourne un objet MongoCursor. Lors des débuts, il peut être plus confortable d'utiliser un tableau. Pour transformer un curseur en un tableau, utilisez la fonction iterator_to_array().

<?php

$cursor 
$collection->find();
$array iterator_to_array($cursor);

?>

L'utilisation de la fonction iterator_to_array() force le driver à charger tous les résultats en mémoire, aussi, évitez d'utiliser cette fonction sur des jeux de résultats qui peuvent être plus grands que la mémoire disponible!

Aussi, certaines collections n'ont pas de champ _id. Si vous manipulez ces collections, passez FALSE au second paramètre de iterator_to_array() (il n'essayera pas d'utiliser les valeurs innexistantes de _id comme clés).

Voir aussi

Documentation de MongoDB » concernant find.



MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOneInterroge cette collection, retourne un seul élément

Description

public array MongoCollection::findOne ([ array $query = array() [, array $fields = array() ]] )

Liste de paramètres

query

Les champs à chercher.

fields

Les champs de résultat à retourner.

Valeurs de retour

Retourne les enregistrements qui correspondent aux critères, ou bien NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si l'on ne peut joindre la base de données.

Exemples

Exemple #1 MongoCollection::findOne() Cherche un document par son id.

Cet exemple montre comment récupérer un document dans une collection par son id.

<?php

$articles 
$mongo->my_db->articles;

$article $articles->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));

?>

Exemple #2 MongoCollection::findOne() Cherche un document par condition.

Cet exemple montre comment récupérer un document dans une collection au moyen d'un condition en limitant les champs retournés.

<?php

$users 
$mongo->my_db->users;
$user $users->findOne(array('username' => 'jwage'), array('password'));
print_r($user);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [_id] => MongoId Object
        (
        )

    [password] => test
)

Remarquez que même si le document possède un champ username, nous limitons les résultats au seul champ password.



MongoCollection::__get

(PECL mongo >=1.0.2)

MongoCollection::__getRécupère une collection

Description

public MongoCollection MongoCollection::__get ( string $name )

Une syntaxe simple pour récupérer une collection avec des noms séparés par des points (.). Si le nom d'une collection contient des caractères exotiques, vous devriez plutôt utiliser la méthode MongoDB::selectCollection().

<?php

$mongo 
= new Mongo();

// les 2 lignes suivants sont identiques
$collection $mongo->selectDB("foo")->selectCollection("bar.baz");
$collection $mongo->foo->bar->baz;

?>

Liste de paramètres

name

La prochaine chaîne de caractères dans le nom de la collection.

Valeurs de retour

Retourne la collection.



MongoCollection::getDBRef

(PECL mongo >=0.9.0)

MongoCollection::getDBRefLit une référence de base de données

Description

public array MongoCollection::getDBRef ( array $ref )

Liste de paramètres

ref

Une référence de base de données.

Valeurs de retour

Retourne le document de base de données désigné par la référence.

Exemples

Exemple #1 Exemple avec MongoCollection::getDBRef()

<?php

$playlists 
$db->playlists;

$myList $playlists->findOne(array('username' => 'me'));

// lit chaque chanson dans la liste
foreach ($myList['songlist'] as $songRef) {
    
$song $playlists->getDBRef($songRef);
    echo 
$song['title'] . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Dazed and Confused
Ma na ma na
Bohemian Rhapsody

Dans l'exemple ci-dessus, chaque $songRef ressemble à quelque chose
comme :
    Array
    (
        [$ref] => songs
        [$id] => 49902cde5162504500b45c2c
    )
    

Voir aussi



MongoCollection::getIndexInfo

(PECL mongo >=0.9.0)

MongoCollection::getIndexInfoRetourne un tableau de noms d'index pour cette collection

Description

public array MongoCollection::getIndexInfo ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la liste des noms d'index.



MongoCollection::getName

(PECL mongo >=0.9.0)

MongoCollection::getNameRetourne le nom de cette collection

Description

public string MongoCollection::getName ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de cette collection.

Exemples

Exemple #1 Exemple avec MongoCollection::getName()

<?php

$m 
= new Mongo();
$c $m->foo->bar->baz;

echo 
"Collection de travail " $c->getName() . ".\n";

// Le nom complet de l'espace de noms est donné par la méthode 
// MongoCollection::__toString()
echo "Espace de noms de travail $c.\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Collection de travail bar.baz.
Espace de noms de travail foo.bar.baz.



MongoCollection::getSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::getSlaveOkayRécupère la configuration slaveOkay pour cette collection

Description

public bool MongoCollection::getSlaveOkay ( void )

Reportez-vous à la section sur la requête de ce manuel pour plus d'informations sur la distribution de lecture sur les esclaves.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de la configuration slaveOkay pour cette instance.



MongoCollection::group

(PECL mongo >=0.9.2)

MongoCollection::groupEffecture une opération de regroupement

Description

public array MongoCollection::group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] )

Liste de paramètres

keys

Les champs avec lesquels faire le regroupement. Si un tableau ou un objet non-code est passé, ce sera la clé utilisée pour grouper les résultats.

1.0.4+: Si keys est une instance de MongoCode, keys sera considéré comme une fonction qui retourne la clé pour effectuer le regroupement (voir l'exemple ci-dessous sur le passage d'une fonction keys).

initial

Valeur initiales des compteurs d'agrégation.

reduce

Fonction acceptant deux arguments (le document courant et l'agrégation à ce point) et effectue l'agrégation.

options

Paramètres optionnels pour la commande de groupe. Les options accéptées sont:

  • "condition"

    Critère pour inclure un document dans l'agrégation.

  • "finalize"

    Fonction appelée une fois par clé unique qui prend le rendu final de la fonction de réduction.

Valeurs de retour

Retourne un tableau contenant les résultats.

Exemples

Exemple #1 Exemple avec MongoCollection::group()

Cet exemple regroupe des documents par catégorie et crée une liste de noms à l'intérieur des catégories

<?php

$collection
->insert(array("category" => "fruit""name" => "apple"));
$collection->insert(array("category" => "fruit""name" => "peach"));
$collection->insert(array("category" => "fruit""name" => "banana"));
$collection->insert(array("category" => "veggie""name" => "corn"));
$collection->insert(array("category" => "veggie""name" => "broccoli"));

$keys = array("category" => 1);

$initial = array("items" => array());

$reduce "function (obj, prev) { prev.items.push(obj.name); }";

$g $collection->group($keys$initial$reduce);

echo 
json_encode($g['retval']);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

[{"category":"fruit","items":["apple","peach","banana"]},{"category":"veggie","items":["corn","broccoli"]}]

Exemple #2 Exemple avec MongoCollection::group()

Cet exemple n'utilise aucune clé, donc chaque document sera dans son propre groupe. Il y a aussi une condition: seuls les documents qui correspondent à cette condition seront traités par la fonction de regroupement.

$collection->save(array("a" => 2));
$collection->save(array("b" => 5));
$collection->save(array("a" => 1));

// use all fields
$keys = array();

// set intial values
$initial = array("count" => 0);

// JavaScript function to perform
$reduce = "function (obj, prev) { prev.count++; }";

// only use documents where the "a" field is greater than 1
$condition = array("a" => array( '$gt' => 1));

$g = $collection->group($keys, $initial, $reduce, $condition);

var_dump($g);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  ["retval"]=>
  array(1) {
    [0]=>
    array(1) {
      ["count"]=>
      float(1)
    }
  }
  ["count"]=>
  float(1)
  ["keys"]=>
  int(1)
  ["ok"]=>
  float(1)
}

Exemple #3 Passer une fonction keys

Si vous voulez grouper par quelque chose d'autre qu'un nom de champ, vous pouvez passer une fonction comme premier paramètre à la méthode MongoCollection::group() et elle sera exécutée sur chacun des documents. La valeur retournée de cette fonction sera utilisée comme valeur de regroupement.

Cet exemple montre comment regrouper par le numéro du champ, modulo 4.

<?php

$c
->group(new MongoCode('function(doc) { return {mod : doc.num % 4}; }'),
     array(
"count" => 0),
     new 
MongoCode('function(current, total) { total.count++; }'));

?>


MongoCollection::insert

(PECL mongo >=0.9.0)

MongoCollection::insertInsère un tableau dans la collection

Description

public mixed MongoCollection::insert ( array $a [, array $options = array() ] )

Toutes les chaînes envoyées à la base de données doivent être en UTF-8. Si une chaîne n'est pas UTF-8, une exception MongoException sera émise. Pour insérer (ou chercher) une chaîne non-UTF-8, utilisez la méthode MongoBinData.

Liste de paramètres

a

Un tableau.

options

Options d'insertion.

  • "safe"

    Peut être un booléen ou un entier, et vaut par défaut FALSE. Si vaut FALSE, le programme continue l'exécution sans attendre la réponse de la base de données. Si vaut TRUE, le programme attendra la réponse de la base de données et lancera une exception MongoCursorException si l'insertion a échouée.

    Si vous utilisez la réplication et que le maitre a changé, utiliser "safe" fera que le pilote se déconnectera du maitre, enverra une exception, et tentera de trouver un nouveau maitre à l'opération suivante (votre application doit décider si oui ou non l'opération devra être rééssayée sur le nouveau maitre).

    Si vous n'utilisez pas "safe" avec une paire de réplication et que le maitre change, il n'y aura aucun moyen pour le pilote d'avoir connaissance de ce changement et il continuera des écritures en échec.

    Si safe est un entier, l'insertion sera répliquée sur l'ensemble des machines avant de retourner le succès de l'opération (ou lancera une exception si la réplication échoue). Cette valeur écrase la variable w définie sur la collection.

  • "fsync"

    Booléen et vaut par défaut FALSE. Force l'insertion à être synchronisée sur le disque avant de retourner le succès de l'opération. Si vaut TRUE, une insertion sécurisée sera effectuée et le paramétrage de safe sera automatiquement valorisé à FALSE.

  • "timeout"

    Entier, par défaut, vaut MongoCursor::$timeout. Si "safe" est défini, il définira (en millisecondes) le temps d'attente du client d'une réponse de la base de données. Si la base de données ne répond pas dans la période de timeout, une exception MongoCursorTimeoutException sera émise.

Valeurs de retour

Si le paramètre safe a été défini, retourne un tableau contenant le statut de l'insertion. Sinon, retourne un booléen indiquant si le tableau est non vide (un tableau vide ne peut être inséré).

Erreurs / Exceptions

Lance une exception MongoCursorTimeoutException si l'option "safe" est définie et que l'insertion échoue. (Version 1.0.1+)

Lance une exception MongoCursorTimeoutException si l'option "safe" est définie et que l'opération prend plus de temps que MongoCollection::$wtimeout millisecondes. Ceci ne tue pas le processus serveur, mais uniquement le délai d'attente côté client.

Historique

Version Description
1.0.5 Modification du second paramètre en un tableau d'options. Avant la version 1.0.5, le second paramètre était un booléen indiquant l'option "safe".
1.0.9 Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés) et ajout de l'option "fsync".
1.0.11 Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.2.0 Ajout de l'option timeout.

Exemples

Exemple #1 Exemple avec MongoCollection::insert()

L'insertion d'un objet ajoutera un champ _id sauf s'il est passé par référence.

<?php

$a 
= array('x' => 1);
$collection->insert($a);
var_dump($a);

$b = array('x' => 1);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["x"]=>
  int(1)
  ["_id"]=>
  object(MongoId)#4 (0) {
  }
}
array(1) {
  ["x"]=>
  int(1)
}

Exemple #2 Exemple avec MongoCollection::insert() en mode sécurisé

Cet exemple montre l'insertion de 2 éléments avec le même _id, ce qui entraine l'émission d'une exception MongoCursorException vu que le paramètre safe a été défini.

<?php

$person 
= array("name" => "Joe""age" => 20);
$collection->insert($persontrue);

// Maintenant, $person a un champ _id, aussi, si vous le sauvegardez à nouveau,
// une exception sera émise
try {
    
$collection->insert($persontrue);
}
catch(
MongoCursorException $e) {
    echo 
"Vous ne pouvez pas sauvegarder la même personne 2 fois !\n";
}

?>

Voir aussi

Documentation de MongoDB » concernant insert.



MongoCollection::remove

(PECL mongo >=0.9.0)

MongoCollection::removeSupprime un enregistrement d'une collection

Description

public mixed MongoCollection::remove ([ array $criteria = array() [, array $options = array() ]] )

Liste de paramètres

criteria

La description des enregistrements à supprimer.

options

Options pour l'effacement.

  • "justOne"

    Efface un seul enregistrement correspondant aux critères.

  • "safe"

    Peut être un booléen ou un entier, et vaut par défaut FALSE. Si vaut FALSE, le programme continue l'exécution sans attendre la réponse de la base de données. Si vaut TRUE, le programme attendra la réponse de la base de données et lancera une exception MongoCursorException si l'insertion a échouée.

    Si vous utilisez la réplication et que le maitre a changé, utiliser "safe" fera que le pilote se déconnectera du maitre, enverra une exception, et tentera de trouver un nouveau maitre à l'opération suivante (votre application doit décider si oui ou non l'opération devra être rééssayée sur le nouveau maitre).

    Si vous n'utilisez pas "safe" avec une paire de réplication et que le maitre change, il n'y aura aucun moyen pour le pilote d'avoir connaissance de ce changement et il continuera des écritures en échec.

    Si safe est un entier, l'insertion sera répliquée sur l'ensemble des machines avant de retourner le succès de l'opération (ou lancera une exception si la réplication échoue). Cette valeur écrase la variable w définie sur la collection.

  • "fsync"

    Booléen et vaut par défaut FALSE. Force l'insertion à être synchronisée sur le disque avant de retourner le succès de l'opération. Si vaut TRUE, une insertion sécurisée sera effectuée et le paramétrage de safe sera automatiquement valorisé à FALSE.

  • "timeout"

    Entier, par défaut, vaut MongoCursor::$timeout. Si "safe" est défini, il définira (en millisecondes) le temps d'attente du client d'une réponse de la base de données. Si la base de données ne répond pas dans la période de timeout, une exception MongoCursorTimeoutException sera émise.

Valeurs de retour

Si l'option "safe" est définie, retourne un tableau associatif contenant le statut de l'effacement ("ok"), le nombre d'éléments effacés ("n"), mais aussi toutes les erreurs rencontrées ("err"). Sinon, retourne TRUE si l'effacement a été correctement émise, FALSE sinon.

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "safe" est définie et que l'effacement échoue.

Lance une exception MongoCursorTimeoutException si l'option "safe" est définie et que l'opération prend plus de temps que MongoCollection::$wtimeout millisecondes. Ceci ne tue pas le processus serveur, mais uniquement le délai d'attente côté client.

Historique

Version Description
1.0.9 Ajout de la capacité de passer des entiers aux options "safe" (n'acceptaient que des booléens avant) et ajout de l'option "fsync".
1.0.5 Modification du second paramètre en un tableau d'options. Avant la version 1.0.5, le second paramètre était un booléen indiquant l'option "justOne" et il n'y avait pas d'option "safe".
1.0.11 Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.2.0 Ajout de l'option timeout.

Exemples

Exemple #1 Exemple avec MongoCollection::remove() et justOne

<?php

$radioactive 
$db->radioactive;

// compte la quantité de plutonium
$remaining $radioactive->count(array('type' => 94));

$halflife $remaining/2;

// Suppression de la moitié
while ($halflife 0) {
    
$radioactive->remove(array('type' => 94), array("justOne" => true));
    
$halflife--;
}

?>

Voir aussi

Documentation de MongoDB » concernant remove.



MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::saveSauve un objet dans une collection

Description

public mixed MongoCollection::save ( array $a [, array $options = array() ] )

Si l'objet est déjà dans la base, modifie la base et sinon, insère l'objet.

Liste de paramètres

a

Le tableau à sauver.

options

Options pour la sauvegarde.

  • "safe"

    Booléen ou entier, FALSE par défaut. Si FALSE, le programme continue son exécution sans attendre de réponse de la base. Si TRUE, le programme attendra la réponse de la base et enverra une MongoCursorException si l'insertion a échoué.

    Si vous utilisez la réplication et que le maitre a changé, utiliser "safe" fera que le pilote se déconnectera du maitre, enverra une exception, et tentera de trouver un nouveau maitre à l'opération suivante (votre application doit décider si oui ou non l'opération devra être rééssayée sur le nouveau maitre).

    Si vous n'utilisez pas "safe" avec une paire de réplication et que le maitre change, il n'y aura aucun moyen pour le pilote d'avoir connaissance de ce changement et il continuera des écritures en échec.

    Si safe est un entier, la réplication aura lieu avant de retourner avec succès (ou enverra une exception si la réplication n'a pas fonctionné, voyez wtimeout). Ceci écrase la variable w de la collection.

  • "fsync"

    Booléen, par défaut FALSE. Force l'insertion à être écrite sur disque avant de retourner avec succès. Si TRUE, une insertion sécurisée est effectuée et écrasera le paramètre safe si à FALSE.

  • "timeout"

    Entier, par défaut, vaut MongoCursor::$timeout. Si "safe" est défini, il définira (en millisecondes) le temps d'attente du client d'une réponse de la base de données. Si la base de données ne répond pas dans la période de timeout, une exception MongoCursorTimeoutException sera émise.

Valeurs de retour

Si safe est utilisé, retourne un tableau contenant le statut de la sauvegarde. Sinon, retourne un booléen si le tableau était non vide (un tableau vide ne sera pas inséré).

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "safe" est définie et que la sauvegarde échoue.

Lance une MongoCursorTimeoutException si l'option "safe" est définie et que l'opération prend plus de temps que MongoCollection::$wtimeout millisecondes. Ceci ne tue pas le processus serveur, mais uniquement le délai d'attente côté client.

Historique

Version Description
1.0.5 Ajout du paramètre "options".
1.0.9 Possibilité de passer des entiers pour l'option "safe" (n'acceptait que des booléen avant). Ajout de l'option "fsync".
1.0.11 Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.2.0 Ajout de l'option timeout.

Exemples

Exemple #1 Exemple avec MongoCollection::save()

<?php

$obj 
= array('x' => 1);

// insertion de $obj dans la base
$collection->save($obj);

// ajout d'un nouveau champ
$obj['foo'] = 'bar';

// $obj ne peut pas être inséré, car il causerait une duplication
$collection->insert($obj);

// sauvegarde de la modification de $obj
$collection->save($obj);

?>


MongoCollection::setSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::setSlaveOkayModifie la configuration de slaveOkay pour cette collection

Description

public bool MongoCollection::setSlaveOkay ([ bool $ok ] )

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux esclaves.

Liste de paramètres

ok

Si la lecture doit être envoyée aux membres secondaires d'un jeu de réplication pour toutes les requêtes possibles utilisant cette instance de MongoCollection.

Valeurs de retour

Retourne la valeur formelle de la configuration de slaveOkay pour cette instance.



MongoCollection::__toString

(PECL mongo >=0.9.0)

MongoCollection::__toStringRetourne la répresentation en chaîne de cette collection

Description

public string MongoCollection::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom complet de cette collection.

Exemples

Exemple #1 Exemple avec MongoCollection::__toString()

<?php

$m 
= new Mongo();

$c1 $m->foo->bar->baz;
echo 
"Utilisation de la collection $c1.";

$c2 $m->selectCollection('[]''&');
echo 
"Utilisation de la collection $c2.";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Utilisation de la collection foo.bar.baz.
Utilisation de la collection [].&.



MongoCollection::update

(PECL mongo >=0.9.0)

MongoCollection::updateModifie les enregistrements

Description

public bool MongoCollection::update ( array $criteria , array $newobj [, array $options = array() ] )

Liste de paramètres

criteria

La description des objets à modifier.

newobj

L'objet avec lequel modifier les objets trouvés.

options

Ce paramètre est un tableau associatif sous la forme array("optionname" => <boolean>, ...). Les options actuellement supportées sont :

  • "upsert"

    Si aucun document ne correspond au critère $criteria, un nouveau document sera créé depuis les variables $criteria et $newobj (voir l'exemple avec upsert ci-dessous).

  • "multiple"

    Tous les documents correspondants au $criteria seront mis à jour. MongoCollection::update() a le comportement opposé de MongoCollection::remove(): elle met à jour un document par défaut, pas tous les documents correspondants. Il est recommandé de toujours précisez si vous voulez mettre à jour un document ou plusieurs, la base de données pouvant changer son comportement par défaut dans le futur.

  • "safe"

    Peut être un booléen ou un entier, et vaut par défaut FALSE. Si vaut FALSE, le programme continue l'exécution sans attendre la réponse de la base de données. Si vaut TRUE, le programme attendra la réponse de la base de données et lancera une exception MongoCursorException si l'insertion a échouée.

    Si vous utilisez la réplication et que le maitre a changé, utiliser "safe" fera que le pilote se déconnectera du maitre, enverra une exception, et tentera de trouver un nouveau maitre à l'opération suivante (votre application doit décider si oui ou non l'opération devra être rééssayée sur le nouveau maitre).

    Si vous n'utilisez pas "safe" avec une paire de réplication et que le maitre change, il n'y aura aucun moyen pour le pilote d'avoir connaissance de ce changement et il continuera des écritures en échec.

    Si safe est un entier, l'insertion sera répliquée sur l'ensemble des machines avant de retourner le succès de l'opération (ou lancera une exception si la réplication échoue). Cette valeur écrase la variable w définie sur la collection.

  • "fsync"

    Booléen et vaut par défaut FALSE. Force l'insertion à être synchronisée sur le disque avant de retourner le succès de l'opération. Si vaut TRUE, une insertion sécurisée sera effectuée et le paramétrage de safe sera automatiquement valorisé à FALSE.

  • "timeout"

    Entier, par défaut, vaut MongoCursor::$timeout. Si "safe" est défini, il définira (en millisecondes) le temps d'attente du client d'une réponse de la base de données. Si la base de données ne répond pas dans la période de timeout, une exception MongoCursorTimeoutException sera émise.

Valeurs de retour

Retourne si la mise à jour a été envoyée avec succès à la base de données.

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "safe" est définie et que la mise à jour échoue.

Lance une exception MongoCursorTimeoutException si l'option "safe" est définie et que l'opération prend plus de temps que MongoCollection::$wtimeout millisecondes. Ceci ne tue pas le processus serveur, mais uniquement le délai d'attente côté client.

Historique

Version Description
1.0.1 Le paramètre "options" passe de booléen à un tableau. En version Pre-1.0.1, le second paramètre était une valeur booléenne optionnelle, spécifiant un upsert.
1.0.5 Ajout de l'option "safe".
1.0.9 Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés) et ajout de l'option "fsync".
1.0.11 Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.2.0 Ajout de l'option timeout.

Exemples

Exemple #1 Exemple avec MongoCollection::update()

Ajout d'un champ adresse à un document.

<?php

$c
->insert(array("firstname" => "Bob""lastname" => "Jones" ));
$newdata = array('$set' => array("address" => "1 Smith Lane"));
$c->update(array("firstname" => "Bob"), $newdata);

var_dump($c->findOne(array("firstname" => "Bob")));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["firstname"]=>
  string(3) "Bob"
  ["lastname"]=>
  string(5) "Jones"
  ["address"]=>
  string(12) "1 Smith Lane"
}

Exemple #2 Exemple avec MongoCollection::update() et upsert

Les Upserts permettent de simplifier le code, vu qu'une simple ligne permet de créer l'objet s'il n'existe pas encore, et de le mettre à jour s'il existe.

<?php

$c
->drop();
$c->update(array("uri" => "/summer_pics"), array('$inc' => array("page hits" => 1)), array("upsert" => true));
var_dump($c->findOne());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["_id"]=>
  object(MongoId)#9 (0) {
  }
  ["uri"]=>
  string(12) "/summer_pics"
  ["page hits"]=>
  int(1)
}

Si newobj ne se compose pas d'opérateurs à $, un upsert créera un nouveau document isolé. Ceci adopte le comportement d'une mise à jour normale, dans laquelle ne pas utiliser d'opérateurs $ implique que tout le document soit écrasé.

<?php

$c
->update(array("name" => "joe"), array("username" => "joe312""createdAt" => new MongoDate()),
    array(
"upsert" => true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["_id"]=>
  object(MongoId)#10 (0) {
  }
  ["username"]=>
  string(6) "joe312"
  ["createdAt"]=>
  object(MongoDate)#4 (0) {
  }
}

Exemple #3 Exemple avec plusieurs MongoCollection::update()

Par défaut, MongoCollection::update() met uniquement à jour le premier document correspondant aux critères $criteria qu'il trouve. En utilisant l'option "multiple", ce comportement est redéfini.

Cet exemple ajoute un champ "gift" à chaque personne possédant un anniversaire dans le prochain jour.

<?php

$today 
= array('$gt' => new MongoDate(), '$lt' => new MongoDate(strtotime("+1 day")));
$people->update(array("birthday" => $today), array('$set' => array('gift' => $surprise)), array("multiple" => true));

?>


MongoCollection::validate

(PECL mongo >=0.9.0)

MongoCollection::validateValide la collection

Description

public array MongoCollection::validate ([ bool $scan_data = FALSE ] )

Liste de paramètres

scan_data

Valide uniquement les index, et non pas la base de collection.

Valeurs de retour

Retourne l'évaluation de cet objet par la base de données.


Sommaire



La classe MongoCursor

Introduction

Un curseur est utiliser pour itérer les résultats d'une requête. Par exemple regarder tous les résultats d'une requête quelconque :

<?php

$cursor 
$collection->find();
var_dump(iterator_to_array($cursor));

?>

En général, vous ne créez pas de MongoCursor en utilisant le constructeur mais en appelant MongoCollection::find() (comme ci-dessus).

Supposons que, dans l'exemple ci-dessus, $collection pèse 50Go. On ne voudra certainement pas tout charger en mémoire, c'est ce que permet un curseur : permettre au client d'accéder aux données au fur et à mesure.

Si nous avons des jeux de résultats très grands, nous pouvons itérer dessus, ceci chargera seulement quelques méga-octets dans la mémoire. Par exemple :

<?php

$cursor 
$collection->find();

foreach (
$cursor as $doc) {
    
// faire quelque chose avec chaque document $doc
}

?>
Les documents ici sont crées puis détruits au fur et à mesure de l'itération.

Notez que cela signifie qu'un curseur ne contient pas les données du jeu de résultats, il ne fait que les piloter. Ainsi si vous affichez un curseur (par exemple, avec var_dump() ou print_r()), vous n'obtiendrez que l'objet curseur, pas les documents. Pour obtenir les documents, vous pouvez utiliser une des techniques ci-dessus.

Etats des curseurs

Un MongoCursor a 2 états différents : Avant et après la requête. Lorsqu'un curseur est crée, il n'a pas encore contacté la base de données, il est en état pré-requête et le client peut toujours préciser ce qu'il attend de la requête, par exemple ajouter des limites, des tris ou encore des options avancées.

Lorsque le client tente de récupérer un résultat (en appelant la fonction MongoCursor::next(), directement ou indirectement), le curseur passe à l'état post-requête. À ce moment-là, la requête a été exécutée par la base et ne peut plus être modifiée.

<?php

$cursor 
$collection->find()->limit(10);

// la base n'a pas encore été interrogée,
// il est donc encore temps d'ajouter des options
$cursor $cursor->sort(array("a" => 1));

var_dump($cursor->getNext());
// maintenant, la base a été interrogée, et les options ne sont plus prises en compte

// Cet commnande va produire une exception :
$cursor->skip(4);
?>

Synopsis de la classe

implements Iterator {
/* Champs statiques */
static boolean $slaveOkay = FALSE ;
static integer $timeout = 20000 ;
/* Méthodes */
public MongoCursor addOption ( string $key , mixed $value )
public MongoCursor batchSize ( int $num )
__construct ( Mongo $connection , string $ns [, array $query = array() [, array $fields = array() ]] )
public int count ([ bool $foundOnly = FALSE ] )
public array current ( void )
public bool dead ( void )
protected void doQuery ( void )
public array explain ( void )
public MongoCursor fields ( array $f )
public array getNext ( void )
public bool hasNext ( void )
public MongoCursor hint ( array $key_pattern )
public MongoCursor immortal ([ bool $liveForever = true ] )
public array info ( void )
public string key ( void )
public MongoCursor limit ( int $num )
public void next ( void )
public MongoCursor partial ([ bool $okay = true ] )
public void reset ( void )
public void rewind ( void )
public MongoCursor skip ( int $num )
public MongoCursor slaveOkay ([ bool $okay = true ] )
public MongoCursor snapshot ( void )
public MongoCursor sort ( array $fields )
public MongoCursor tailable ([ bool $tail = true ] )
public MongoCursor timeout ( int $ms )
public bool valid ( void )
}

Variables statiques

MongoCursor::slaveOkay

Est ce que la requête doit avoir le drapeau "slaveOkay" activé, ce qui permet des lectures sur l'esclave (les esclaves sont par défaut déstinés à des sauvegardes et donc inaccessibles en lectures). Peut être surchargé avec MongoCursor::slaveOkay().

MongoCursor::timeout

Affecte le timeout en millisecondes pour les réponses des bases de données. Pour un timeout infini, utilisez -1. Peut être surchargé avec MongoCursor::timeout(). Ceci ne provoque pas une annulation de l'opération par le serveur MongoDB mais fait en sorte que le pilote s'arrête d'attendre une réponse et envoie une MongoCursorTimeoutException.

Voir aussi

Documentation de MongoDB » concernant les curseurs.


MongoCursor::addOption

(PECL mongo >=1.0.4)

MongoCursor::addOptionAjoute une paire clé/valeur de haut niveau à la requête

Description

public MongoCursor MongoCursor::addOption ( string $key , mixed $value )

Cette méthode est une méthode avancée et ne devrait pas être utiliser sans vraiment savoir ce que vous en faîtes.

Une requête peut optionnellement être imbriquée dans un champ "query" si les autres options, comme un tri ou un indice sont fournies. Actuellement, l'ajout d'un tri fait que la requête devient un sous-champ d'un objet requête plus gros, comme ceci :

<?php

$query 
= array("query" => $query"orderby" => $sort);

?>

Cette méthode permet d'ajouter un champ de haut niveau à une requête. Elle rend une requête un sous-objet (si elle ne l'est pas déjà) et ajoute une paire clé/valeur de votre choix en haut niveau.

Avertissement

Elle ne peut être utilisée pour ajouter d'autres critères pour une requête à la volée. Actuellement, ceci ne fonctionne pas :

<?php

// INCORRECT !
$cursor $users->find()->addOption("name""joe")->addOption("age"20);

?>
Ceci ne permet pas de chercher un utilisateur nommé "joe" et dont l'âge vaut 20.

Liste de paramètres

key

Le nom du champ à ajouter.

value

La valeur à ajouter.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si ce curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple avec MongoCursor::addOption()

L'utilisation de la méthode MongoCursor::skip() pour éviter plusieurs millions de résultats peut être lent. Pour éviter de rencontrer ce problème, vous pouvez utiliser les options $min ou $max de votre requête. Ceci peut paraître simple mais encore faut-il un index sur le champ exact sur lequel on effectue la recherche. Voici un exemple d'utilisation de l'option $min comme alternative à la méthode MongoCursor::skip().

<?php

// Assurons-nous que l'index est présent
$c->ensureIndex(array("ts" => 1));

// vous devriez modifier ceci afin que l'exécution s'effectue en un
// temps raisonnable sur des machines lentes (prend environ 30 secondes
// sur une bonne machine)
for ($i 0$i 30000000$i++) {
    
$c->insert(array("ts" => new MongoDate(), "i" => $i));
}

$now strtotime("now");

// Trouve les documents insérés dans les 2 dernières secondes
$cursor $c->find()->addOption('$min', array("ts" => $now-2));

?>


MongoCursor::batchSize

(PECL mongo >=1.0.11)

MongoCursor::batchSizeDéfinit le nombre de résultats à retourner par jeu de résultats

Description

public MongoCursor MongoCursor::batchSize ( int $num )

Cette méthode n'écrasera pas la limite MongoDB sur la taille des données à retourner au client (i.e. si vous définissez la limite à 1.000.000.000, MongoDB continuera à retourner 4-16MB de résultats).

Pour assurer un comportement consistant, les règles de batchSize et le comportement de la limite sont complexes, mais fonctionnent "comme prévus". Les règles sont les suivantes : Les limites dures écraseront les limites légères avec les préférences fournies par la méthode MongoCursor::limit(), par rapport à la méthode MongoCursor::batchSize(). Après cela, quelques soient la définition de l'un ou de l'autre, l'ordre restera identique. Voici quelques exemples :

<?php

// un lot, avec au plus 20 éléments
$cursor->limit(-20)->batchSize(10);

// un lot, avec au plus 10 éléments
$cursor->limit(20)->batchSize(-10);

// premier lot : au plus, 10 éléments
$cursor->limit(10);

// premier lot : au plus, 10 éléments
$cursor->limit(10)->batchSize(20);

// premier lot : au plus, 10 éléments
$cursor->limit(20)->batchSize(10);


$cursor->limit(30)->batchSize(7)
// Si nous parcourons les 28 éléments, le prochain appel à la méthode getNext()
// contactera la base de données et lui demandera un lot de 2 documents

?>

Liste de paramètres

num

Le nombre de résultats à retourner dans le prochain lot.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à parcourir le lot. Ceci changera en version 1.0.12, et pourra être appelé à n'importe quel moment.



MongoCursor::__construct

(PECL mongo >=0.9.0)

MongoCursor::__constructCrée un nouveau curseur

Description

MongoCursor::__construct ( Mongo $connection , string $ns [, array $query = array() [, array $fields = array() ]] )

Liste de paramètres

connection

La connexion à la base de données Mongo.

ns

Le nom complet de la base et de la collection.

query

La requête de base de données.

fields

Les champs à retourner.

Valeurs de retour

Retourne le nouveau curseur.



MongoCursor::count

(PECL mongo >=0.9.2)

MongoCursor::countCompte le nombre de résultats pour cette requête

Description

public int MongoCursor::count ([ bool $foundOnly = FALSE ] )

Cette méthode n'affecte pas l'état du curseur: si vous n'avez pas effectué de requête à ce stade, vous pouvez encore appliquer des limites, des skips, etc. Si vous avez commencé à itérer sur les résultats, cela ne déplacera pas la position courante du curseur. Si vous avez épuisé le curseur, cela ne le remettra pas à zéro.

Liste de paramètres

foundOnly

Envoi la limite du curseur et supprime l'information de la fonction count, si applicable.

Valeurs de retour

Le nombre de documents retournés par la requête du curseur.

Exemples

Exemple #1 Exemple avec MongoCursor::count()

<?php

$collection
->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

$cursor $collection->find();

var_dump($cursor->count());
var_dump($cursor->count(true));

$cursor->limit(2);

var_dump($cursor->count());
var_dump($cursor->count(true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(3)
int(3)
int(2)

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte.



MongoCursor::current

(PECL mongo >=0.9.0)

MongoCursor::currentRetourne l'élément courant

Description

public array MongoCursor::current ( void )

Retourne NULL tant que la méthode MongoCursor::next() est appelé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le résultat courant, sous la forme d'un tableau associatif.



MongoCursor::dead

(PECL mongo >=0.9.6)

MongoCursor::deadVérifie s'il reste des documents non envoyés à la base de données pour ce curseur

Description

public bool MongoCursor::dead ( void )

La base de données retourne les réponses dans une série de documents, supérieures à 4 Mo par documents, par réponse. Cette méthode vérifie si la base de données a encore des séries ou si le jeu de résultats est terminé.

Un curseur devenu "dead" ne signifie pas que MongoCursor::hasNext() retournera FALSE, cela signifie uniquement que la base de données a terminé d'envoyer les résultats au client. Le client doit continuer d'itérer les résultats tant que la méthode MongoCursor::hasNext() ne retourne pas FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il reste des résultats à envoyer au client.



MongoCursor::doQuery

(No version information available, might only be in SVN)

MongoCursor::doQueryExécute la requête Mongo

Description

protected void MongoCursor::doQuery ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données n'a pu être atteinte.



MongoCursor::explain

(PECL mongo >=0.9.2)

MongoCursor::explainRetourne une explication de la requête, souvent utile pour le déboguage et l'optimisation

Description

public array MongoCursor::explain ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une explication de la requête

Exemples

Exemple #1 Exemple avec MongoCursor::explain()

<?php

$cursor 
$collection->find(array("x"=>1), array("y"));
$cursor->sort(array("z" => 1))->limit(4)->skip(5);

var_dump($cursor->explain());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(8) {
  ["cursor"]=>
  string(15) "BtreeCursor x_1"
  ["startKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["endKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["nscanned"]=>
  float(4)
  ["n"]=>
  int(4)
  ["scanAndOrder"]=>
  int(1)
  ["millis"]=>
  int(3)
  ["allPlans"]=>
  array(2) {
    [0]=>
    array(3) {
      ["cursor"]=>
      string(15) "BtreeCursor x_1"
      ["startKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
      ["endKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
    }
    [1]=>
    array(3) {
      ["cursor"]=>
      string(11) "BasicCursor"
      ["startKey"]=>
      array(0) {
      }
      ["endKey"]=>
      array(0) {
      }
    }
  }
}

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte.

Voir aussi

Documentation de MongoDB » concernant explain.



MongoCursor::fields

(PECL mongo >=1.0.6)

MongoCursor::fieldsDéfinit les champs d'une requête

Description

public MongoCursor MongoCursor::fields ( array $f )

Les champs sont spécifiés via la syntaxe "fieldname" : bool. TRUE indique qu'un champ doit être retourné, FALSE qu'il ne doit pas l'être. Vous pouvez également utiliser 1 ou 0 à la place de TRUE et FALSE.

Ainsi, pour retourner uniquement le champ "summary" :

<?php

$cursor
->fields(array("summary" => true));

?>

Pour retourner tous les champs sauf le champ "hidden" :

<?php

$cursor
->fields(array("hidden" => false));

?>

Liste de paramètres

f

Champs à retourner (ou à ne pas retourner).

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru, ou qu'un argument scalaire a été fourni.



MongoCursor::getNext

(PECL mongo >=0.9.0)

MongoCursor::getNextRetourne le prochain objet et avance le curseur

Description

public array MongoCursor::getNext ( void )

Identique à la fonction :

<?php

public function getNext() {
    
$this->next();
    return 
$this->current();
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le prochain objet.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données n'a pu être atteinte et une exception MongoCursorTimeoutException si le délai d'attente maximum a été atteint.



MongoCursor::hasNext

(PECL mongo >=0.9.0)

MongoCursor::hasNextVérifie s'il y a encore des éléments pour ce curseur

Description

public bool MongoCursor::hasNext ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il reste encore des éléments.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte et une exception MongoCursorTimeoutException si le délai d'attente maximum a été atteint.



MongoCursor::hint

(PECL mongo >=0.9.0)

MongoCursor::hintDonne des indications à la base de données pour la requête

Description

public MongoCursor MongoCursor::hint ( array $key_pattern )

Liste de paramètres

key_pattern

Les index à utiliser avec cette requête.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Emet une exception MongoCursorException si le curseur a commencé ses itérations.



MongoCursor::immortal

(PECL mongo >=1.0.1)

MongoCursor::immortalDéfinit si le curseur doit s'interrompre après un certain délai

Description

public MongoCursor MongoCursor::immortal ([ bool $liveForever = true ] )

Après un certain délai, le curseur, par défaut, "meurt". C'est en général le comportement que nous souhaitons. La base de données nettoie le curseur une fois que ses résultats ont été envoyés au client, mais si le client ne demande pas tous les résultats, le curseur sera toujours "vivant", prenant ainsi des ressources. Aussi, après quelques minutes, le curseur atteint son délai d'expiration et la base de données considère que le client a récupéré tout ce dont il avait besoin et supprime les ressources allouées à ce curseur.

Si, pour une raison particulière, vous avez besoin d'un délai plus important avant que le curseur ne meurt, vous pouvez empécher la base de données de le supprimer en utilisant cette méthode. Cependant, si vous rendez un curseur "immortel", vous devez parcourir tous ses résultats (ou, tout du moins, jusqu'à ce que la méthode Cursor::dead() retourne FALSE) ou bien le curseur sera pour toujours actif, prenant ainsi des ressources par toujours nécessaire.

Liste de paramètres

liveForever

Si le curseur doit être immortel, ou non.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.



MongoCursor::info

(PECL mongo >=1.0.5)

MongoCursor::infoRécupère la requête, les champs, la limite et les exceptions de ce curseur

Description

public array MongoCursor::info ( void )

Cette méthode peut être appelée avant ou après la requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'espace de noms, la limite, les exceptions et les champs de ce curseur.

Historique

Version Description
1.0.10 Ajout du champ started_iterating, un booléen indiquant si le curseur est antérieur ou postérieur à la requête.
1.1.0 Ajout de quelques champs, incluant id (l'identifiant de curseur), at (le compteur du driver du document courant), numReturned (le nombre retourné par le serveur dans le batch courant), et server (le serveur sur lequel la requête a été émise ; utile en plus de la méthode MongoCursor::slaveOkay()).

Exemples

Exemple #1 Exemple avec MongoCursor::info()

<?php

$m 
= new Mongo();
$cursor $m->foo->bar->find(array("x" => 4), array("y" => false));
var_dump($cursor->info());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(5) {
  ["ns"]=>
  string(7) "foo.bar"
  ["limit"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
}


MongoCursor::key

(PECL mongo >=0.9.0)

MongoCursor::keyRetourne l'identifiant du résultat courant

Description

public string MongoCursor::key ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'_id du résultat courant, sous la forme d'une chaîne de caractères.



MongoCursor::limit

(PECL mongo >=0.9.0)

MongoCursor::limitLimite le nombre de résultats retournés

Description

public MongoCursor MongoCursor::limit ( int $num )

Liste de paramètres

num

Le nombre de résultats à retourner.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Émet une exception MongoCursorException si le curseur a commencé ses itérations.

Voir aussi

Documentation de MongoDB » concernant limit.



MongoCursor::next

(PECL mongo >=0.9.0)

MongoCursor::nextAvance le curseur au prochain résultat

Description

public void MongoCursor::next ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte et une exception MongoCursorTimeoutException si le délai d'attente maximum a été atteint.



MongoCursor::partial

(PECL mongo >=1.2.0)

MongoCursor::partialSi la requête doit récupérer des résultats partiels depuis mongos si un partage est inaccessible

Description

public MongoCursor MongoCursor::partial ([ bool $okay = true ] )

Cette option permet à mongos d'envoyer des résultats partiels de requête si un partage est inaccessible. Ceci n'est valable que lors d'une exécution sur un cluster MongoDB partagé, et lors d'une connexion à un mongos.

Si un partage devient inaccessible et qu'une requête doit être envoyée sur ce partage, mongos retournera les résultats (s'il y en a) depuis les partages déjà contactés, puis, un message d'erreur indiquant qu'il n'a pu atteindre le partage (une exeception MongoCursorException en PHP). Si vous voulez récupérer tous les résultats que mongos peut fournir sans émission d'une exception, vous pouvez utiliser cette méthode. Notez que cela signifie que vous n'aurez aucune indication quant au fait qu'un partage n'est pas accessible dans la réponse.

Cette méthode n'a aucun effet sur la requête si tous les partages sont disponibles. Ce drapeau a été implémenté en MongoDB version 1.7.5, aussi, vous ne pouvez vous en service qu'à partir de cette version et supérieure.

Liste de paramètres

okay

Si nous souhaitons recevoir des résultats partiels.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Émets une exception MongoCursorException si le curseur à commencer son itération.



MongoCursor::reset

(PECL mongo >=0.9.0)

MongoCursor::resetEfface le curseur

Description

public void MongoCursor::reset ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.



MongoCursor::rewind

(PECL mongo >=0.9.0)

MongoCursor::rewindRetourne le curseur au début du jeu de résultats

Description

public void MongoCursor::rewind ( void )

Identique à la fonction :

<?php

public function rewind() {
    
$this->reset();
    
$this->next();
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si une erreur survient lors de la connexion à la base de données, et une exception MongoCursorTimeoutException si le délai d'attente maximum a été atteint.



MongoCursor::skip

(PECL mongo >=0.9.0)

MongoCursor::skipOmet les premiers résultats

Description

public MongoCursor MongoCursor::skip ( int $num )

Liste de paramètres

num

Le nombre de résultats à omettre.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Emet une exception MongoCursorException si le curseur a commencer ses itérations.



MongoCursor::slaveOkay

(PECL mongo >=0.9.4)

MongoCursor::slaveOkayDéfinit si la requête peut être effectuée sur un serveur esclave

Description

public MongoCursor MongoCursor::slaveOkay ([ bool $okay = true ] )

L'appel à cette méthode fera que la driver liera sur les esclaves si :

  • Vous utilisez un jeu de réplication et
  • Vous avez créé une instance Mongo en utilisant l'option "replicaSet" => true et
  • Il y a un esclave en bonne santé qui peut être atteint par le driver.
Vous pouvez savoir quel serveur a été utilisé pour cette requête en appelant la méthode MongoCursor::info() après l'exécution de la requête. L'information sera contenue dans le champ server.

Notez que vous devriez utiliser cette fonction même si vous n'utilisez pas la lecture automatique sur les esclaves. Si vous vous connectez directement sur un secondaire d'un jeu de réplications, vous devrez continuer d'utiliser cette méthode, qui informe la base de données que vous êtes prêt à recevoir d'anciennes données. Si vous ne l'appelez pas, vous recevrez une erreur de type "not master" lors de l'exécution de la requête.

Cette méthode écrasera la variable statique MongoCursor::slaveOkay. Elle écrasera aussi Mongo::setSlaveOkay(), MongoDB::setSlaveOkay() et MongoCollection::setSlaveOkay().

Liste de paramètres

okay

Si l'on peut effectuer la requête sur un serveur esclave.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple avec MongoCursor::slaveOkay()

<?php

MongoCursor
::$slaveOkay false;

// On ne peut pas faire la requête sur un serveur escalve
$cursor $collection->find();

// On peut faire la requête sur un serveur esclave
$cursor $collection->find()->slaveOkay();

MongoCursor::$slaveOkay true;

// On peut faire la requête sur un serveur esclave
$cursor $collection->find();

// On ne peut pas faire la requête sur un serveur escalve
$cursor $collection->find()->slaveOkay(false);

?>


MongoCursor::snapshot

(PECL mongo >=0.9.4)

MongoCursor::snapshotUtilise le mode de capture pour la requête

Description

public MongoCursor MongoCursor::snapshot ( void )

Utilise le mode de capture pour la requête. Le mode de capture assure qu'aucune donnée dupliquée ne sera retournée, ou qu'aucun objet ne sera oublié, qui seront présents au début et à la fin de l'exécution de la requête (si un objet est nouveau ou bien supprimé durant l'exécution de la requête, il peut être retourné ou non, y compris en utilisant le mode de capture).

Notez que les réponses à de courte requête (inférieure à 1 Mo) sont toujours retournées en utilisant le mode de capture.

Actuellement, le mode de capture ne peut pas être utilisé avec des trus, ou des astuces explicites.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.



MongoCursor::sort

(PECL mongo >=0.9.0)

MongoCursor::sortTrie les résultats par ordre de champs

Description

public MongoCursor MongoCursor::sort ( array $fields )

Liste de paramètres

fields

Les champs avec lesquels effectuer le tri.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Emet une exception MongoCursorException si le curseur a commencé à itérer.

Exemples

Exemple #1 Exemple avec MongoCursor::sort()

<?php
// tri en x ascendant
$cursor->sort(array('x' => 1));

// le tableau associatif est ordonné, par exemple : 
// ces deux exemples produisent le même résultat

// tri par date ascendante et age descendant
$cursor->sort(array('date' => 1'age' => -1));

// tri par date descendante et age ascendante
$cursor->sort(array('age' => -1'date' => 1));
?>


MongoCursor::tailable

(PECL mongo >=0.9.4)

MongoCursor::tailableDéfinit si le curseur doit être conservé ouvert après la récupération du dernier résultat

Description

public MongoCursor MongoCursor::tailable ([ bool $tail = true ] )

Mongo a une fonction permettant de voir le contenu du curseur en temps réel, similaire à la commande Unix "tail -f".

En utilisant cette fonctionnalité, le curseur n'est pas fermé lorsque le dernier résultat est récupéré. Au lieu de cela, le curseur marque la position du dernier objet. Vous pouvez ainsi utiliser plus tard ce curseur, depuis sa position courante, si d'autres données sont reçues.

Comme tous les curseurs latents, le curseur devient non valide à certain point, par exemple, lorsque la référence de l'objet final est effacée. Ainsi, vous devez être prêt à effectuer une nouvelle requête si le curseur est mort.

Liste de paramètres

tail

Si le curseur doit être consulté en temps réel.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple avec MongoCursor::tailable()

<?php

$cursor 
$collection->find()->tailable();

$results = array();

while (
1) {
    if (!
$cursor->hasNext()) {
        
// Nous avons lu tous les résultats, on peut sortir
        
if ($cursor->dead()) {
            break;
        }
        
// On lit tous les résultats, et on attend les suivants
        
sleep(10);
    }
    else {
        
$results[] = $cursor->getNext();
    }
}

?>


MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeoutDéfinit un délai maximum d'attente côté client pour cette requête

Description

public MongoCursor MongoCursor::timeout ( int $ms )

Un délai maximum d'attente peut être défini a n'importe quel moment, et affectera les requêtes suivantes du curseur, incluant la récupération de plus de résultats depuis la base de données. Par exemple, pour attendre sans limite de temps pour une réponse initiale mais placer un délai maximum d'attente de 100 ms pour un autre résultat, vous pouvez faire ceci :

<?php

$cursor 
$collection->find();

// $cursor->hasNext() exécute la requête. Aucun délai d'attente n'a été défini, aussi 
// le programme attendra la réponse aussi longtemps que nécessaire.

while ($cursor->hasNext()) {
    
$cursor->timeout(100);

    
// maintenant qu'un délai a été défini, et si le curseur doit récupérer d'autres résultats
    // depuis la base de données, le programme attendra seulement 100 ms la réponse de la base de données

    
try {
        
print_r($cursor->getNext());
    }
    catch(
MongoCursorTimeoutException $e) {
        echo 
"La requête a pris trop de temps !";
    }
}

?>

Un délai de 0 (ou un nombre négatif) permet d'annuler tout délai précédemment défini.

Liste de paramètres

ms

Le nombre de millisecondes que le curseur doit attente une réponse. Par défaut, le curseur attendra indéfiniment.

Valeurs de retour

Ce curseur.

Exemples

Exemple #1 Exemple avec MongoCursor::timeout()

Une requête dont le curseur attente une seconde la réponse.

<?php

$cursor 
$collection->find()->timeout(1000);

try {
  foreach (
$cursor as $value) {
    
print_r($value);
  }
}
catch(
MongoCursorTimeoutException $e) {
  echo 
"La requête a pris trop de temps !";
}

?>

Erreurs / Exceptions

Cette méthode fait que les méthodes récupérant des résultats émettent une exception MongoCursorTimeoutException si leurs requêtes dépassent le délai défini lors de leurs exécutions.



MongoCursor::valid

(PECL mongo >=0.9.0)

MongoCursor::validVérifie si le curseur lit un résultat valide

Description

public bool MongoCursor::valid ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le résultat courant n'est pas NULL.


Sommaire




Les types

Sommaire

Changement dans la gestion des nombres

Le comportement par défaut des nombres a changé en version 1.1.0. Pour la plupart des programmeurs, la gestion des nombres au niveau du pilote est plus souple et plus naturelle, mais cela peut demander des modifications du code pour assurer le fonctionnement.

Les changements qui cassent concernent la sérialisation et la désérialisation des entiers. Vous pouvez tester comment ces changements affectent vote code en précisant un paramètre .ini: mongo.native_int et mongo.long_as_object, par défaut à TRUE.

Sérialisation: par défaut avant 1.1.0, tous les entiers PHP sont sérialisés comme des entiers 32-bits même sur les machines 64-bits. Ceci signifie que les grands nombres sont tronqués silencieusement. Depuis 1.1.0, les machines 64-bits sauvegarderont par défaut les entiers comme des entiers 64-bits. Les machines 32-bits continueront de suaver les entiers sous forme d'entiers 32-bits (vous pouvez aussi utiliser les classes MongoInt32 et MongoInt64 pour manipuler explicitement ces types respectifs).

Desérialisation: par défaut, avant 1.1.0, les entiers 64-bits seront desérialisés en doubles. Ce n'est pas une correspondance parfaite et cela signifie qu'ils seront re-sauvegardés dans un mauvais type (doubles au lieu d'entiers 64-bit). En 1.1.0, les entiers 64-bits seront retournés comme des MongoInt64 sur les machines 32-bits.

MongoDB permet aux développeurs de sauvegarder et de requérir des données en utilisant tous les types basiques de PHP, comme les tableaux, les tableaux associatifs, les objets mais aussi en utilisant toutes les classes fournies par le driver PHP MongoDB (pour les expressions rationnelles, les dates et les autres applications spécialisées).

Types simples

Les types internes sont :

Type Description Taille dans MongoDB (en octets)
NULL La classique valeur NULL 0
boolean TRUE et FALSE 1
int Valeurs entières 4
float Valeurs doubles 8
string chaîne de caractères en UTF-8 longueur de la chaîne + 1

Les tableaux et les objets

Les tableaux et les objets peuvent également être sauvegardés dans la base de données. Un tableau possédant des clés numériques sera sauvegardé sous la forme d'un tableau, tous les autres seront sauvegardés sous la forme d'objets.

<?php

// $scores sera sauvegardé sous la forme d'un tableau
$scores = array(981007385);
$collection->insert(array("scores" => $scores));

// $scores sera sauvegardé sous la forme d'un objet
$scores = array("quiz1" => 98"midterm" => 100"quiz2" => 73"final" => 85);
$collection->insert(array("scores" => $scores));

?>

Si vous interrogeais ces objets en utilisant la console de base de données, elles ressembleront à ceci :

> db.students.find()
{ "_id" : ObjectId("4b06beada9ad6390dab17c43"), "scores" : [ 98, 100, 73, 85 ] }
{ "_id" : ObjectId("4b06bebea9ad6390dab17c44"), "scores" : { "quiz1" : 98, "midterm" : 100, "quiz2" : 73, "final" : 85 } }

La base de données peut également être sauvegardé sous forme d'objets PHP (malgré le fait qu'elle soit en réalité retourné sous la forme d'un tableau associatif). Ces champs sont utilisés pour les paires clé/valeurs. Par exemple, un billet de blog peut ressembler à ceci :

<?php

  
// La classe permettant de gérer le billet d'un blog
  
class Post {

  var 
$author;
  var 
$content;
  var 
$comments = array();
  var 
$date;

  public function 
__construct($author$content) {
  
$this->author $author;
$this->content $content;
    
$this->date = new MongoDate();
  }

  public function 
setTitle($title) {
    
$this->title $title;
  }
}

// Crée un billet simple et l'insère dans la base de données
$post1 = new Post("Adam""This is a blog post");

$blog->insert($post1);

// Rien ne restreint le type du champ "author", nous pouvons donc en faire
// un objet imbriqué
$author = array("name" => "Fred""karma" => 42);
$post2 = new Post($author"This is another blog post.");

// Nous créons un champ supplémentaire pour y définir le titre
$post2->setTitle("Second Post");

$blog->insert($post2);

?>

Depuis la console de la base de données, les données ressembleront à ceci :

> db.blog.find()
{ "_id" : ObjectId("4b06c263edb87a281e09dad8"), "author" : "Adam", "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:22:59 GMT-0500 (EST)" }
{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "author" : { "name" : "Fred", "karma" : 42 }, "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:23:30 GMT-0500 (EST)", "title" : "Second Post" }

Le driver ne détectera pas les boucles de référence dans les tableaux et les objets. Par exemple, ceci produira une erreur fatale :

<?php

$collection
->insert($GLOBALS);

?>

Fatal error: Nesting level too deep - recursive dependency?

Si vous devez insérer des documents qui possèdent des dépendances récursives, vous devez les vérifier vous même avant de les passer aux drivers.

Les types MongoDB

Le driver MongoDB définit également quelques nouveaux types à utiliser avec la base de données. Reportez-vous à la documentation de la classe correspondante pour plus de détails ainsi que des exemples.

Type Description Taille dans MongoDB (en octets)
MongoBinData Donnée binaire Nombre d'octets des données binaires + 5
MongoCode Code Javascript Longueur du code Javascript + taille de l'objet de contexte
MongoDate Dates et heures. Stocké sous forme de timestamp 8
MongoId Identifiant unique du document :
  • 4 octets du timestamp

    2 documents ne peuvent pas avoir le même identifiant s'ils ont été insérés à des moments différents.

  • 3 octets de l'identifiant de la machine

    2 documents ne peuvent pas avoir le même identifiant s'ils ont été insérés sur des machines différentes.

  • 2 octets de l'identifiant du processus

    2 documents ne peuvent pas avoir le même identifiant s'ils ont été insérés par des processus différents tournant sur la même machine.

  • 3 octets d'incrément

    Chaque fois qu'un identifiant est créé, un compteur global est incrémenté et utilisé comme valeur d'incrémentation pour le prochaine identifiant.

Ainsi, 2 enregistrements peuvent avoir le même identifiant si un processus unique, sur une seule machine, utilisée pour insérer 256^3 (plus de 16 millions) documents en une seconde, débordant ainsi la valeur d'incrémentation.
12
MongoMinKey Toujours plus petite que n'importe quelle autre valeur Longueur du code + taille de l'objet de contexte
MongoMaxKey Code JavaScript Toujours plus grande que n'importe quelle autre valeur
MongoRegex Expressions rationnelles Nombre de caractères de l'expression rationnelle + nombre de drapeaux utilisés
MongoTimestamp Timestamp de réplication 8

BSON

MongoDB utilise un format de stoquage appelé "BSON" (Binary Serializable Object Notation) qui est similaire à JSON mais en plus compact et est plus riche en types. Ci-dessous, nous avons listés la taille exacte en octets de chaque type (ou les informations nécessaires pour calculer leurs tailles, dans le cas de types variables en longueur). Gardez à l'esprit que ces tailles n'incluent pas les noms des champs. La taille d'un objet peut être calculée manuellement, mais c'est plus facile pour un développeur d'appeler la fonction bson_encode() et de prendre la longueur de la chaîne résultante.

Exemple de calcul manuel d'un taille BSON pour sauvegarder l'objet array("x" => null, "y" => 40) :

4 bytes (object size)

1 byte  (type of "x" field)
2 bytes ("x" and "\0")
0 bytes (for null)

1 byte  (type of "y" field)
2 bytes ("y" and "\0")
4 bytes (for an integer)

1 byte  (end-of-object byte)
-----------------------
15 bytes


La classe MongoId

Introduction

Un identifiant unique créé par les objets de la base. Si un objet est inséré dans la base de données sans le champ _id, ce champ y sera ajouté en utilisant la valeur de l'instance MongoId. Si les données ont un champ unique naturel (comme un nom d'utilisateur ou un timestamp), il conviendra de l'utiliser, mais sa valeur ne sera pas remplacée par la valeur de l'instance MongoId.

Les intances de la classe MongoId remplit le rôle d'un champ auto-incrémenté d'un base de données relationnelle : fournir une clé unique si la base de données n'en possède pas. L'auto-incrémentation ne fonctionne pas correctement lors de bases de données partagées, vu qu'il est impossible de trouver rapidement la valeur suivante. Cette classe permet de trouver rapidement une valeur unique, y compris lors de l'utilisation de bases de données partagées.

Chaque MongoId est sur 12 octets (ces chaînes seront sur 24 caractères héxadécimals). Les premiers 4 octets sont un timestamp, les 3 suivants, un hash du nom de la machine cliente, les 2 suivants, les 2 derniers octets significatifs de l'identifiant du processus exécutant le script, et les 3 derniers, une valeur incrémentée.

Un MongoId est linéarisable/délinéarisable. Leur forme linéarisé est similaire à la forme d'une chaîne de caractères :

C:7:"MongoId":24:{4af9f23d8ead0e1d32000000}

Synopsis de la classe

MongoId {
public string $$id = NULL ;
/* Méthodes */
__construct ([ string $id = NULL ] )
publicstaticstring getHostname ( void )
public int getInc ( void )
public int getPID ( void )
public int getTimestamp ( void )
publicstaticMongoId __set_state ( array $props )
public string __toString ( void )
}

Fields

$id
Ce champ contient la représentation sous forme de chaine de cet objet.

Voir aussi

Documentation de MongoDB » concernant les ids.


MongoId::__construct

(PECL mongo >= 0.8.0)

MongoId::__constructCrée un nouvel identifiant

Description

MongoId::__construct ([ string $id = NULL ] )

Liste de paramètres

id

Une chaîne à utiliser comme identifiant. Doit être une chaîne de 24 caractères héxadécimals. Si une chaîne invalide est passée au constructeur, le constructeur l'ignorera et créera un nouvel identifiant.

Valeurs de retour

Retourne un nouvel identifiant.

Exemples

Exemple #1 Exemple avec MongoId::__construct()

Cet exemple montre comment crée un nouvel identifiant. C'est rarement nécessaire, car le pilote ajoute automatiquement les identifiants avant de les stocker en base.

<?php

$id1 
= new MongoId();
echo 
"$id1\n";

$id2 = new MongoId();
echo 
"$id2\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d

Exemple #2 Exemple avec MongoId::__construct() et des paramètres

Cet exemple montre comment utiliser une chaîne de paramètres pour initialiser un objet MongoId avec une valeur donnée.

<?php
  $id1 
= new MongoId();

  
// Crée un nouvel identifiant pour $id1
  
$id2 = new MongoId("$id1");

  
// montre que $id1 et $id2 ont la même valeur hexadécimal
  
var_dump($id1 == $id2);
  
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)

Voir aussi



MongoId::getHostname

(PECL mongo >= 1.0.8)

MongoId::getHostnameRécupère le nom d'hôte utilisé pour les identifiants de cette machine

Description

publicstaticstring MongoId::getHostname ( void )

Ceci retourne le nom d'hôte que MongoId utilise pour générer des identifiants uniques. Ce devrait être la même valeur que gethostname().

C'est identique à cette fonction:

<?php

public static function getHostname() {
    return 
gethostname();
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom d'hôte.



MongoId::getInc

(PECL mongo >= 1.0.11)

MongoId::getIncRécupèpe la valeur incrémentée pour créer cet identifiant

Description

public int MongoId::getInc ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur incrémentée utilisée pour créer l'identifiant MongoId.



MongoId::getPID

(PECL mongo >= 1.0.11)

MongoId::getPIDRécupère l'identifiant du processus utilisé pour créer l'identifiant

Description

public int MongoId::getPID ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le PID utilisé pour créer l'identifiant MongoId.



MongoId::getTimestamp

(PECL mongo >= 1.0.1)

MongoId::getTimestampRetourne le timestamp depuis la création de l'id

Description

public int MongoId::getTimestamp ( void )

Équivaut à exécuter la fonction time() depuis la création de l'id.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de secondes depuis l'époque Unix et la création de l'id. Seulement les 4 premiers octets du timestamp sont stockés, aussi la méthode MongoDate est un meilleur choix pour stocker la valeur exacte.



MongoId::__set_state

(PECL mongo >= 1.0.8)

MongoId::__set_stateCrée un MongoId

Description

publicstaticMongoId MongoId::__set_state ( array $props )

Cette fonction n'est à utiliser qu'en interne, par PHP ; elle ne devrait jamais être appelé directement par l'utilisateur.

Identique à la fonction :

<?php

public static function __set_state($props) {
    return new 
MongoId("000000000000000000000000");
}

?>

Liste de paramètres

props

Théoriquement, un tableau de propriétés utilisé pour créer un nouvel identifiant. Cependant, vu que les instances mongoId n'ont pas de propriétés, ce paramètre n'est pas utilisé.

Valeurs de retour

Un nouvel identifiant avec la valeur "000000000000000000000000".



MongoId::__toString

(PECL mongo >= 0.8.0)

MongoId::__toStringRetourne une représentation hexadécimale de cet identifiant

Description

public string MongoId::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cet identifiant.

Exemples

Exemple #1 Exemple avec MongoId::__toString()

<?php

$m 
= new Mongo();
$collection $m->selectDB("foo")->selectCollection("bar");

$collection->insert(array( "x" => "y" ));
$collection->insert(array( "x" => "y" ));

$cursor $collection->find();
$r1 $cursor->next();
$r2 $cursor->next();

echo 
$r1["_id"] . "\n";
echo 
$r2["_id"] . "\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d

Sommaire



La classe MongoCode

Introduction

Cette classe représente du code JavaScript pour la base de données.

Les objets MongoCode sont composés de deux parties : une chaîne de code, et un contexte optionnel. La chaîne de code doit être du code JavaScript valide. Le contexte est un tableau associatif avec un nombre variable de paires clé/valeur.

Synopsis de la classe

MongoCode {
/* Méthodes */
__construct ( string $code [, array $scope = array() ] )
public string __toString ( void )
}

MongoCode::__construct

(PECL mongo >= 0.8.3)

MongoCode::__constructCrée un nouvel objet de code

Description

MongoCode::__construct ( string $code [, array $scope = array() ] )

Liste de paramètres

code

Une chaîne de code.

scope

Un contexte d'exécution du code.

Valeurs de retour

Retourne un nouvel objet de code.

Exemples

Exemple #1 Exemple avec MongoCode::__construct()

<?php

$code 
= new MongoCode('function() { '.
    
'for(i=0;i<10;i++) {'.
        
'db.foo.update({z : i}, {z : x});'.
    
'}'.
    
'return x-1;'.
 
'}', array("x" => 4));
var_dump($code);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MongoCode)#1 (2) {
  ["scope"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["code"]=>
  string(80) "function() { for(i=0;i<10;i++) { db.foo.update({z : i}, {z : x}); } return x-1; }"
}

Exemple #2 Utilisation de MongoCode() et $where

Cette requête interroge une collection pour récupérer les éléments où le champ 'x' est inférieur à la valeur $y. Notez que les objets PHP peuvent être passé dans le contexte JavaScript, et que la fonction JavaScript retourne un booléen.

<?php

$cursor 
$collection->find(array('$where' => new MongoCode('function() { return this.x < y; }', array('y'=>$y))));

?>


MongoCode::__toString

(PECL mongo >= 0.8.3)

MongoCode::__toStringRetourne le code sous forme de chaîne

Description

public string MongoCode::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Ce code, le contexte n'et pas retourné.

Exemples

Exemple #1 Exemple avec MongoCode::__toString()

<?php

$code 
= new MongoCode('return x;', array("x"=>"hi"));
echo 
"$code\n";

$code = new MongoCode('function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }');
echo 
"$code\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

return x;
function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }

Sommaire



La classe MongoDate

Introduction

Représente un objet date pour la base. Cette classe peut être utilisée pour sauvegarder des dates dans la base de données mais aussi pour faire des requêtes à base de dates. Par exemple :

<?php

// Sauvegarde une date dans la base de données
$collection->save(array("ts" => new MongoDate()));

$start = new MongoDate(strtotime("2010-01-15 00:00:00"));
$end = new MongoDate(strtotime("2010-01-30 00:00:00"));

// Trouve les dates entre 1/15/2010 et 1/30/2010
$collection->find(array("ts" => array('$gt' => $start'$lte' => $end)));

?>

MongoDB stocke les dates en millisecondes après epoch. Ceci signifie que les dates ne contiennent pas d'informations sur les fuseaux horaires. Les fuseaux doivent être stockés dans un champ séparé si besoin. Aussi, toute précision au delà de la milliseconde sera perdue lorsque le document est envoyé dans la base ou restauré de celle-ci.

Synopsis de la classe

MongoDate {
/* Champs */
public int $sec ;
public int $usec ;
/* Méthodes */
__construct ([ int $sec [, int $usec ]] )
publicstring __toString ( void )
}

MongoDate::__construct

(PECL mongo >= 0.8.1)

MongoDate::__constructCrée une nouvelle date

Description

MongoDate::__construct ([ int $sec [, int $usec ]] )

Créée une nouvelle date. Si aucun paramètre n'est donné, la date courante est utilisée.

Liste de paramètres

sec

Le nombre de secondes depuis le 1er janvier 1970.

usec

Le nombre de microsecondes.

Valeurs de retour

Retourne la nouvelle date.

Exemples

Exemple #1 Exemple avec MongoDate::__construct()

Cet exemple montre comment créer une date à partir de la date et l'heure courante, et une date à partir d'un timestamp.

<?php

$d 
= new MongoDate();
echo 
"$d\n";
$d = new MongoDate(1234567890);
echo 
"$d\n";
$d = new MongoDate(strtotime("2009-05-01 00:00:01"));
echo 
"$d\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0.23660600 1235685067
0.00000000 1234567890
0.00000000 1241150401

Voir aussi



MongoDate::__toString

(PECL mongo >= 0.8.1)

MongoDate::__toStringRetourne la date sous forme de chaîne

Description

publicstring MongoDate::__toString ( void )

Retourne l'objet de date sous forme d'une chaîne de caractères, similairement au résultat de la fonction microtime().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette date.


Sommaire



La classe MongoRegex

Introduction

Cette classe peut être utilisée pour créer des expressions rationnelles. Ces expressions pourront être ensuite utilisées pour interroger la base de doonées et trouver les chaînes correspondantes. Vous pouvez également les sauvegarder en base de données et les récupérer par la suite.

Mongo reconnait 6 options d'expressions rationnelles :

  • i

    Insensible à la casse

  • m

    Multi-lignes

  • x

    Peut contenir des commentaires

  • l

    Locale

  • s

    Le caractère "." correspond à n'importe quel caractère, y compris les nouvelles lignes

  • u

    Unicode possible

Synopsis de la classe

MongoRegex {
/* Champs */
public string $regex ;
public string $flags ;
/* Méthodes */
__construct ( string $regex )
public string __toString ( void )
}

MongoRegex::__construct

(PECL mongo >= 0.8.1)

MongoRegex::__constructCrée une nouvelle expression rationnelle

Description

MongoRegex::__construct ( string $regex )

Crée une nouvelle expression rationnelle.

Liste de paramètres

regex

Expression rationnelle, sous la forme /expression/options.

Valeurs de retour

Retourne une expression rationnelle.

Exemples

Exemple #1 Exemple avec MongoRegex::__construct()

Cet exemple montre comment utiliser une expression rationnelle pour rechercher les documents ayant un nom d'utilisateur qui correspond à une expression rationnelle.

<?php

$joe_search 
= new MongoRegex("/j[o0]e/i");
$cursor $collection->find(array("username" => $joe_search));

?>

Voir aussi



MongoRegex::__toString

(PECL mongo >= 0.8.1)

MongoRegex::__toStringRetourne une expression rationnelle sous forme de chaîne

Description

public string MongoRegex::__toString ( void )

Retourne une chaîne représentant l'expression rationnelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'expression rationnelle, sous la forme "/expr/flags".

Exemples

Exemple #1 Exemple avec MongoRegex::__toString()

<?php

$r 
= new MongoRegex"/[a-fA-F0-9]{16}/g" );
echo 
$r->regex "\n";
echo 
$r->flags "\n";
echo 
"$r\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

[a-fA-F0-9]{16}
g
/[a-fA-F0-9]{16}/g


Sommaire



La classe MongoBinData

Introduction

MongoBinData est une classe pour stocker ou lire des données binaires issues de la base.

La taille maximale d'un objet pouvant être inséré dans la base de données est de 4Mo. Pour les données supérieures à cette taille (films, musiques ou biographie de Guillaume Plessis), utilisez la classe MongoGridFS. Pour les données de taille inférieure à 4Mo, il est probablement plus simple de les inclure directement dans le document en utilisant la classe MongoBinData.

Par exemple, pour insérer une image dans un document :

<?php

$profile 
= array("username" => "foobity",
    
"pic" => new MongoBinData(file_get_contents("gravatar.jpg"))
);
$users->save($profile);

?>

Cette classe contient un champ type, qui ne donne actuellement aucune information supplémentaires au driver, ni à la base de données. Il existe 5 types prédéfinis (qui correspondent aux constantes de classe listés ci-dessous), et l'utilisateur peut créer les siens (attention à ne pas rentrer en contradiction avec la spécification BSON). Par défaut, le driver PHP utilise toujours le type 2 : un tableau d'octets.

Synopsis de la classe

MongoBinData {
/* Constantes */
const int MongoBinData::FUNC = 1 ;
const int MongoBinData::BYTE_ARRAY = 2 ;
const int MongoBinData::UUID = 3 ;
const int MongoBinData::MD5 = 5 ;
const int MongoBinData::CUSTOM = 128 ;
/* Champs */
public string $bin ;
public int $type = 2 ;
/* Méthodes */
public __construct ( string $data [, int $type = 2 ] )
public string __toString ( void )
}

Constantes pré-définies

Types de données binaires

MongoBinData::FUNC
0x01
Fonction.
MongoBinData::BYTE_ARRAY
0x02
Tableau d'octets.
MongoBinData::UUID
0x03
Identifiant unique universel.
MongoBinData::MD5
0x05
MD5.
MongoBinData::CUSTOM
0xf0
Type défini par l'utilisateur.

MongoBinData::__construct

(PECL mongo >= 0.8.1)

MongoBinData::__constructCrée un nouvel objet de données binaires

Description

public MongoBinData::__construct ( string $data [, int $type = 2 ] )

Crée un nouvel objet de données binaires.

Il existe 5 types de données binaires acutellement reconnus par la spécification BSON : fonction (0x01), tableau d'octets (0x02), UUID (0x03), MD5 (0x05), et un type défini par l'utilisateur (0x80). Le type par défaut est un tableau d'octets (0x02). Il n'y a pas de différence particulière dans la façon dont le driver ou le serveur interprète ces différents types, aussi, ils ne sont pas significatifs pour le moment. N'importe quel nombre (entre 0 et 255) peut être utilisé pour les types, si l'utilisateur accepte le risque que la base de données fasse éventuellement quelque chose avec des données binaires basées sur un type.

Liste de paramètres

data

Données binaires.

type

Le type de données.

Valeurs de retour

Retourne un nouvel objet de données binaires.



MongoBinData::__toString

(PECL mongo >= 0.8.1)

MongoBinData::__toStringLa représentation en chaîne de l'objet binaire

Description

public string MongoBinData::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne "<Mongo Binary Data>". Pour accéder au contenu d'un MongoBinData, utilisez le champ bin.


Sommaire



La classe MongoInt32

Introduction

La classe peut être utilisée pour sauvegarder des entiers 32 bits dans la base de données sur un système 64 bits.

Synopsis de la classe

MongoInt32 {
/* Méthodes */
public __construct ( string $value )
public string __toString ( void )
}

MongoInt32::__construct

(PECL mongo >= 1.0.9)

MongoInt32::__constructCrée un nouvel entier 32-bit

Description

public MongoInt32::__construct ( string $value )

Crée un nouvel entier 32-bit avec la valeur fournie.

Liste de paramètres

value

Un nombre.

Valeurs de retour

Retourne un nouvel entier.



MongoInt32::__toString

(PECL mongo >= 1.0.9)

MongoInt32::__toStringRetourne la représentation sous forme de chaîne de caractères d'un entier 32-bit

Description

public string MongoInt32::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sous forme de chaîne de caractères de l'entier.


Sommaire



La classe MongoInt64

Introduction

la classe peut être utilisée pour sauvegarder les entiers 64 bits dans la base de données sur un système 32 bits.

Synopsis de la classe

MongoInt64 {
/* Méthodes */
public __construct ( string $value )
public string __toString ( void )
}

MongoInt64::__construct

(PECL mongo >= 1.0.9)

MongoInt64::__constructCrée un nouvel entier 64-bit

Description

public MongoInt64::__construct ( string $value )

Crée un nouvel entier 64-bit number avec la valeur fournie.

Liste de paramètres

value

Un nombre.

Valeurs de retour

Retourne un nouvel entier.



MongoInt64::__toString

(PECL mongo >= 1.0.9)

MongoInt64::__toStringRetourne la représentation sous forme de chaîne de caractères d'un entier 64-bit

Description

public string MongoInt64::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sous forme de chaîne de caractères de l'entier.


Sommaire



La classe MongoDBRef

Introduction

Cette classe sert à créer des liens légers entre des objets de différentes colllections.

Motivation : Supposez que vous voulez lier un document dans une autre collection. La façon la plus facile est de créer un champ dans le document courant. Par exemple, si vous avez une collection "people" et une collection "addresses", vous devriez vouloir créer un lien entre chaque document d'une personne et chaque document d'adresses :

<?php

$people 
$db->people;
$addresses $db->addresses;

$myAddress = array("line 1" => "123 Main Street",
    
"line 2" => null,
    
"city" => "Springfield",
    
"state" => "Vermont",
    
"country" => "USA");

// Sauvegarde de l'adresse
$addresses->insert($myAddress);

// Sauvegarde une personne avec une référence vers l'adresse
$me = array("name" => "Fred""address" => $myAddress['_id']);
$people->insert($me);

?>

Par la suite, vous pouver retrouver l'adresse d'une personne en interrogeant la collection "addresses" avec un MongoId sauvegardé dans la collection "people".

Supposez maintenant que vous avez un cas plus général, où vous ne savez pas quelle collection (ou bien quelle base de données) contient le document référencé. La classe MongoDBRef est un bon choix dans ce cas, vu qu'elle a un format commun que tous les drivers et bases de données comprennent.

Si chaque personne a une liste de choses qu'elles aiment, pouvant venir de plusieurs collections, comme des "hobbies", "sports", "books", etc., vous pouvez utiliser la classe MongoDBRef pour garder une trace des collections fournissant ces choses :

<?php

$people 
$db->selectCollection("people");

// Les modèles de tain sont dans la collection "hobbies"
$trainRef MongoDBRef::create("hobbies"$modelTrains['_id']);
// Le foot dans la collection "sports"
$soccerRef MongoDBRef::create("sports"$soccer['_id']);

// Maintenant, vous connaissez la collection dont les éléments du tableau "likes"
// proviennent, au moment où vous souhaitez récupérer les documents associés
$people->insert(array("name" => "Fred""likes" => array($trainRef$soccerRef)));

?>

On peut représenter les références des bases de données comme des liens: elles donnent l'adresse unique d'un document, mais elles ne le chargent pas et ne suivent pas les lien/référence automatiquement.

Une référence de base de données est juste un tableau associatif, pas une instance de MongoDBRef, cette classe est donc un peu différente des autres classes de tyes de données, elle ne contient que des méthodes statiques pour manipuler les références de bases de données.

Synopsis de la classe

MongoDBRef {
/* Méthodes */
public static array create ( string $collection , mixed $id [, string $database ] )
public static array get ( MongoDB $db , array $ref )
public static bool isRef ( mixed $ref )
}

Voir aussi

Documentation de MongoDB » concernant les références de bases de données.


MongoDBRef::create

(PECL mongo >= 0.9.0)

MongoDBRef::createCrée un nouvelle référence de base de données

Description

public static array MongoDBRef::create ( string $collection , mixed $id [, string $database ] )

Si aucune base de données n'est fournie, la base de données courante sera utilisée.

Liste de paramètres

collection

Nom de la collection (sans le nom de la base de données).

id

Le champ _id de l'objet à lier.

database

Nom de la base de données.

Valeurs de retour

Retourne la référence.

Exemples

Exemple #1 Exemple avec MongoDBRef::create()

Cet exemple crée une référence de base de données vers un document de la collection addresses. La fonction MongoCollection::getName() retourne le nom de la collection (sans y inclure le nom de la base de données).

<?php
$addresses 
$db->addresses;
$people $db->people;

// Sauvegarde $address. Cette variable a maintenant un identifiant
$addresses->insert($address);

// Crée une référence
$ref MongoDBRef::create($addresses->getName(), $address['_id']);

// Définitle champ dans la variable $person
$person['address'] = $ref;
$people->save($person);
?>

Voir aussi



MongoDBRef::get

(PECL mongo >= 0.9.0)

MongoDBRef::getLit l'objet identifié par la référence

Description

public static array MongoDBRef::get ( MongoDB $db , array $ref )

Liste de paramètres

db

La base de données à utiliser.

ref

La référence à lire.

Valeurs de retour

Retourne le document pointé par la référence, ou NULL si le document n'existe pas (la référence a été rompue).

Exemples

Exemple #1 Exemple avec MongoCollection::createDBRef()

<?php

// Récupère $person depuis la base de données
$person $people->findOne();

// Récupère la référence de l'adresse
$address MongoDBRef::get($people->db$person['address']);

?>

Voir aussi



MongoDBRef::isRef

(PECL mongo >= 0.9.0)

MongoDBRef::isRefVérifie si un tableau est une référence de base de données

Description

public static bool MongoDBRef::isRef ( mixed $ref )

Cette méthode ne suit actuellement pas les références, aussi, elle ne peut déterminer si les références sont cassées ou non. Elle vérifie si le paramètre ref est bien au format valide de base de données (vérifie seulement si c'est un objet ou un tableau contenant les champs $ref et $id).

Liste de paramètres

ref

Le tableau ou l'objet à vérifier.

Valeurs de retour

Retourne TRUE si ref est une référence.


Sommaire



La classe MongoMinKey

Introduction

MongoMinKey est un type spécial utilisé par la base de données qui est évalué comme étant le plus petit des autres types. Aussi, si une requête est triée par ce genre de champs dans un ordre ascendant, n'importe quel document possédant le type MongoMinKey sera retourné en premier.

MongoMinKey n'a pas de champ associé, de méthode ou de constante. C'est ce que vous pouvez insérer de plus petit dans la base de données.

Synopsis de la classe

MongoMinKey {
}

Exemple avec MongoMinKey comme valeur

<?php

$collection
->insert(array("task" => "lunch""do by" => new MongoMinKey));
$collection->insert(array("task" => "staff meeting""do by" => new MongoDate(strtotime("+4 days"))));

$cursor $collection->find()->sort(array("do by" => 1));

?>

Le curseur contiendra le document "lunch", puis, le document "staff meeting". Le document "lunch" sera toujours retourné en premier, quelque soit les autres documents de la collection (tant qu'un autre document n'aura pas été ajouté avec un MongoMinKey dans le champ "do by").



La classe MongoMaxKey

Introduction

MongoMaxKey est un type spécial utilisé par la base de données qui sera évalué comme le plus grand parmis les autres champs. Aussi, si une requête est triée par ce genre de champ de façon ascendante, n'importe quel document avec un MongoMaxKey comme valeur sera retourné en dernier.

MongoMaxKey n'a pas de champ associé, de méthode ou de constante. C'est la chose la plus grande que vous pouvez insérer dans la base de données.

Synopsis de la classe

MongoMaxKey {
}

Utilisation de MongoMaxKey comme valeur

<?php

$collection
->insert(array("task" => "dishes""do by" => new MongoMaxKey));
$collection->insert(array("task" => "staff meeting""do by" => new MongoDate(strtotime("+4 days"))));

$cursor $collection->find()->sort(array("do by" => 1));

?>

Le curseur contiendra le document "staff meeting", puis, le document "dishes". Le document "dishes" sera toujours retourné en dernier, quelque soit les autres documents de la collection (tant qu'un autre document n'aura pas été ajouté avec un MongoMaxKey dans le champ "do by").



La classe MongoTimestamp

Introduction

MongoTimestamp est utilisé pour la fragmentation. Si vous ne cherchez pas à écrire un outil de fragmentation, vous devriez plutôt utiliser la classe MongoDate.

MongoTimestamp est composé de 4 octets d'un timestamp (nombre de secondes depuis l'époque Unix) et 4 octets d'incréments.

Cette classe n'est pas faite pour mesurer le temps, pour créer un timestamp sur un document ou automatiquement ajouter ou mettre à jour le timestamp d'un document. Tant que vous n'écrivez pas quelque chose qui interagit avec la fragmentation interne, STOP ! Allez directement à la classe MongoDate, ne passez pas par la case départ, ne touchez pas 20 euros ! Ce n'est pas la classe faite pour ça.

Si vous écrivez un utilitaire de fragmentation, vous pouvez continuer de lire ce document.

Synopsis de la classe

MongoTimestamp {
/* Champs */
public int $sec = 0 ;
public int $inc = 0 ;
/* Méthodes */
__construct ([ int $sec [, int $inc ]] )
publicstring __toString ( void )
}

MongoTimestamp::__construct

(PECL mongo >= 1.0.1)

MongoTimestamp::__constructCrée un nouveau timestamp

Description

MongoTimestamp::__construct ([ int $sec [, int $inc ]] )

Crée un nouveau timestamp. Si aucun paramètre n'est fourni, les date et heure courantes seront utilisés et l'incrément sera automatiquement fourni. L'incrément est défini à 0 lorsque le module est chargé et est incrémenté à chaque fois que ce constructeur sera appelé (sans paramètre $inc).

Liste de paramètres

sec

Nombre de secondes depuis le 1er Janvier 1970.

inc

L'incrément.

Valeurs de retour

Retourne le nouveau timestamp.

Voir aussi



MongoTimestamp::__toString

(PECL mongo >= 1.0.1)

MongoTimestamp::__toStringRetourne une représentation sous la forme d'une chaîne de caractères d'un timestamp

Description

publicstring MongoTimestamp::__toString ( void )

Retourne le champ "sec" d'un timestamp.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de seconde depuis l'époque Unix représenté par le timestamp.


Sommaire




Classes GridFS

Sommaire


La classe MongoGridFS

Introduction

Utilitaires de stockage et lecture de fichiers dans la base de données

GridFS est une spécification de stockage que tous les pilotes implémentent. Simplement, il définit deux collections: files, pour les métadonnées du fichier, et chunks pour le contenu du fichier. Si le fichier est volumineux, il sera automatiquement scindé en sous-parties et chacune sera sauvée comme document dans la collection 'chunks' représentant le contenu du fichier.

Chaque document dans la collection 'files' est caractérisé par un nom, une date d'envoi et un hash md5. Il contient aussi un champ unique _id, qui peut être utilisé pour requêter la collection 'chunks' et obtenir le contenu du fichier. Chaque document dans la collection 'chunks' contient des données inaires, un champ files_id qui correspond au _id du fichier, et la position de ce document dans le fichier.

Par exemple, la collection 'files' ressemble à:

<?php
array("_id" => 123456789"filename" => "foo.txt""chunkSize" => 3"length" => 12);
?>
et la collection 'chunks' à:
<?php
array("files_id" => 123456789"n" => 0"data" => new MongoBinData("abc"));
array(
"files_id" => 123456789"n" => 1"data" => new MongoBinData("def"));
array(
"files_id" => 123456789"n" => 2"data" => new MongoBinData("ghi"));
array(
"files_id" => 123456789"n" => 3"data" => new MongoBinData("jkl"));
?>
Bien sur la taille par défaut des segments est de plusieurs milliers d'octets, non représentatif pour notre exemple.

Compatibilité entre les différentes langages

Vous devriez être capable d'utiliser n'importe quel fichier créé par MongoGridFS avec n'importe quel driver et vis versa. Cependant, quelques drivers s'attendent à ce que toutes les méta-données associées avec un fichier soivent dans un champ "metadata". Si vous souhaitez utiliser un autre langage, ce peut être une bonne idée de placer les informations souhaitées dans un champ "metadata". Par exemple, au lieu de :

<?php

$grid
->storeFile("somefile.txt", array("date" => new MongoDate()));

?>

utilisez quelque chose comme :

<?php

$grid
->storeFile("somefile.txt", array("metadata" => array("date" => new MongoDate())));

?>

La famille MongoGridFS

MongoGridFS représente les collections 'files' et 'chunks'. MongoGridFS étend MongoCollection, et une instance de MongoGridFS a accès à toutes les méthodes de MongoCollection, qui agissent sur la collection 'files':

<?php

$grid 
$db->getGridFS();
$grid->update(array("filename" => "foo"), $newObj); // update on the files collection

?>

Un autre exemple de manipulation des méta-données:

<?php

// Sauvegarde un fichier
$id $grid->storeFile("game.tgz");
$game $grid->findOne();

// Ajoute un compteur de téléchargement
$game->file['downloads'] = 0;
$grid->save($game->file);

// Incrémente le compteur
$grid->update(array("_id" => $id), array('$inc' => array("downloads" => 1)));

?>

Vous pouvez aussi accéder aux objets dans la collection 'chunks' depuis une instance de MongoGridFS:

<?php

  $chunks 
$grid->chunks// $chunks est une MongoCollection
$chunks->insert(array("x" => 4));

?>

Il existe des méthodes dans MongoGridFS qui ont le même no que dans MongoCollection mais elles se comportent différement. Par exemple, MongoGridFS::remove() suppriment les objets qui correspondent au critère depuis la collection des fichiers ('files'), ainsi que leur contenu depuis la collection des données ('chunks').

Pour stocker un nouvel enregistrement dans GridFS, il y a plusieurs options. Si vous possédez un nom de fichier, agissez comme cela:

<?php

$grid
->storeFile($filename, array("whatever" => "metadata""you" => "want"));

?>

Si vous avez une chaine d'octets qui n'est pas un fichier, vous pouvez la stocker grâce à MongoGridFS::storeBytes():

<?php

$grid
->storeBytes($bytes, array("whatever" => "metadata""you" => "want"));

?>

Requêter une collection MongoGridFS retourne un MongoGridFSCursor, qui se comporte comme un MongoCursor normal sauf qu'il retourne des MongoGridFSFiles plutôt que des tableaux associatifs.

MongoGridFSFiles peut être écrit sur le disque en utilisant MongoGridFSFile::write() ou récupéré de la mémoire avec MongoGridFSFile::getBytes(). Il n'y a pas de méthode actuellement qui guide les données d'un à l'autre, mais ce n'est pas très difficile à écrire en utilisant $grid->chunks de la collection.

Les objets MongoGridFSFile contiennent un champ file qui contient les méta-données du fichier.

Synopsis de la classe

étend MongoCollection {
/* Fields */
public MongoCollection $chunks = NULL ;
protected string $filesName = NULL ;
protected string $chunksName = NULL ;
/* Méthodes */
__construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )
public bool delete ( mixed $id )
public array drop ( void )
public MongoGridFSCursor find ([ array $query = array() [, array $fields = array() ]] )
public MongoGridFSFile findOne ([ mixed $query = array() [, mixed $fields = array() ]] )
public MongoGridFSFile get ( mixed $id )
public mixed put ( string $filename [, array $extra = array() ] )
public bool remove ([ array $criteria = array() [, array $options = array() ]] )
public mixed storeBytes ( string $bytes [, array $extra = array() [, array $options = array() ]] )
public mixed storeFile ( string $filename [, array $extra = array() [, array $options = array() ]] )
public mixed storeUpload ( string $name [, string $filename ] )
}

Voir aussi

Documentation de MongoDB » GridFS. Il existe également une bonne introduction sur la » sauvegarde des uploads des utilisateurs et l'» ajout de méta-données sur LightCubeSolutions.com.


MongoGridFS::__construct

(PECL mongo >=0.9.0)

MongoGridFS::__constructCrée une nouvelle collection de fichiers

Description

MongoGridFS::__construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )

Les fichiers sont stockés à l'aide de deux collections : la première contient les métadonnées, et la seconde contient le contenu des fichiers. Par défaut, fs.files et fs.chunks sont les noms des collections utilisés.

Utilisez un argument pour spécifier un préfixe, autre que "fs" :

$fs = new MongoGridFS($db, "myfiles");
cet exemple utilise les collections myfiles.files et myfiles.chunks.

Liste de paramètres

db

La base de données.

files

Le nom de fichier de collection pour les fichiers, optionnel.



MongoGridFS::delete

(PECL mongo >=1.0.8)

MongoGridFS::deleteEfface un fichier depuis la base de données

Description

public bool MongoGridFS::delete ( mixed $id )

Liste de paramètres

id

Champ _id du fichier à effacer.

Valeurs de retour

Retourne si l'effacement a été correctement envoyé à la base de données.



MongoGridFS::drop

(PECL mongo >=0.9.0)

MongoGridFS::dropEfface les collections de fichiers

Description

public array MongoGridFS::drop ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La réponse de la base de données.



MongoGridFS::find

(PECL mongo >=0.9.0)

MongoGridFS::findInterroge un fichier

Description

public MongoGridFSCursor MongoGridFS::find ([ array $query = array() [, array $fields = array() ]] )

Liste de paramètres

query

La requête.

fields

Les fichiers à retourner.

Valeurs de retour

Un objet MongoGridFSCursor.



MongoGridFS::findOne

(PECL mongo >=0.9.0)

MongoGridFS::findOneLit un fichier unique satisfaisant les critères

Description

public MongoGridFSFile MongoGridFS::findOne ([ mixed $query = array() [, mixed $fields = array() ]] )

Liste de paramètres

query

Le nom du fichier ou les critères à rechercher.

Valeurs de retour

Retourne un objet MongoGridFSFile, ou bien NULL.

Exemples

Exemple #1 Exemple pour MongoGridFS::findOne()

Exemple montrant comment récupérer un fichier depuis la MongoGridFS.

<?php

$downloads 
$mongo->my_db->getGridFS('downloads');

$downloads->storeFile('filename.tgz');

$download $downloads->findOne('filename.tgz'); // instance de MongoGridFSFile

print_r($download);
?>

Voyez MongoGridFSFile pour plus d'informations sur la manière de gèrer les fichiers.

L'exemple ci-dessus va afficher quelque chose de similaire à :

MongoGridFSFile Object
(
    [file] => Array
        (
            [_id] => MongoId Object
                (
                )

            [filename] => filename.tgz
            [uploadDate] => MongoDate Object
                (
                    [sec] => 1274288014
                    [usec] => 467000
                )

            [chunkSize] => 262144
            [md5] => d41d8cd98f00b204e9800998ecf8427e
        )

    [gridfs:protected] => MongoGridFS Object
        (
            [chunks] => MongoCollection Object
                (
                )

            [filesName:protected] => downloads.files
            [chunksName:protected] => downloads.chunks
        )

)


MongoGridFS::get

(PECL mongo >=1.0.8)

MongoGridFS::getRécupère un fichier depuis la base de données

Description

public MongoGridFSFile MongoGridFS::get ( mixed $id )

Liste de paramètres

id

L'identifiant _id du fichier à trouver.

Valeurs de retour

Retourne le fichier, s'il a été trouvé, ou NULL.



MongoGridFS::put

(PECL mongo >=1.0.8)

MongoGridFS::putStoque un fichier dans la base de données

Description

public mixed MongoGridFS::put ( string $filename [, array $extra = array() ] )

Liste de paramètres

filename

Le nom du fichier.

extra

Autres métadonnées à ajouter au fichier.

Valeurs de retour

Retourne l'identifiant de l'objet suavegardé.



MongoGridFS::remove

(PECL mongo >=0.9.0)

MongoGridFS::removeEfface un fichier dans une collection

Description

public bool MongoGridFS::remove ([ array $criteria = array() [, array $options = array() ]] )

Liste de paramètres

query

Le nom du fichier ou le critère de recherche.

options

Option pour l'effacement. Les options valides sont :

  • "safe"

    Vérifie si l'effacement a réussi.

Valeurs de retour

Retourne TRUE si l'effacement a été correctement envoyé à la base de données.



MongoGridFS::storeBytes

(PECL mongo >=0.9.2)

MongoGridFS::storeBytesMorcelle et stocke des octets dans une base

Description

public mixed MongoGridFS::storeBytes ( string $bytes [, array $extra = array() [, array $options = array() ]] )

Liste de paramètres

bytes

Une chaîne d'octets à stocker.

extra

Autres méta-données à ajouter au fichier à sauver.

options

Options pour le stockage.

  • "safe"

    Vérifie si le stockage a réussi.

Valeurs de retour

Retourne l'identifiant de l'objet sauvegardé.

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "safe" est définie et que l'insertion échoue.



MongoGridFS::storeFile

(PECL mongo >=0.9.0)

MongoGridFS::storeFileStocke un fichier dans la base de données

Description

public mixed MongoGridFS::storeFile ( string $filename [, array $extra = array() [, array $options = array() ]] )

Liste de paramètres

filename

Le nom du fichier.

extra

Les autres métadonnées du fichier.

options

Options pour le stockage.

  • "safe"

    Vérifie si le stockage a réussi.

Valeurs de retour

Retourne l'identifiant de l'objet sauvegardé.

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "safe" est définie et que l'insertion échoue.



MongoGridFS::storeUpload

(PECL mongo >=0.9.0)

MongoGridFS::storeUploadSauve un fichier téléchargé dans la base

Description

public mixed MongoGridFS::storeUpload ( string $name [, string $filename ] )

Liste de paramètres

name

Le champ de nom du fichier téléchargé.

filename

La chaîne à utiliser pour le champ de nom de fichier dans la base de données filename.

Valeurs de retour

Retourne l'identifiant _id du fichier téléchargé.


Sommaire



La classe MongoGridFSFile

Introduction

Un objet de fichier de base de données.

Synopsis de la classe

MongoGridFSFile {
/* Champs */
public array $file = NULL ;
protected MongoGridFS $gridfs = NULL ;
/* Méthodes */
MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )
public string getBytes ( void )
public string getFilename ( void )
public int getSize ( void )
public int write ([ string $filename = NULL ] )
}

MongoGridfsFile::__construct

(PECL mongo >=0.9.0)

MongoGridfsFile::__constructCrée un nouveau fichier GridFS

Description

MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )

Liste de paramètres

gridfs

L'objet parent MongoGridFS.

file

Un fichier de la base de données.

Valeurs de retour

Retourne un nouvel objet MongoGridFSFile.



MongoGridFSFile::getBytes

(PECL mongo >=0.9.0)

MongoGridFSFile::getBytesRetourne le contenu du fichier

Description

public string MongoGridFSFile::getBytes ( void )

Attention : cette fonction va charger tout le fichier en mémoire. Si le fichier est plus grand que votre capacité mémoire, cela va causer des problèmes!

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du fichier sous forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemples pour MongoGridFSFile::getBytes()

<?php

$images 
$db->my_db->getGridFS('images');

$image $images->findOne('jwage.png');

header('Content-type: image/png;');
echo 
$image->getBytes();
?>


MongoGridFSFile::getFilename

(PECL mongo >=0.9.0)

MongoGridFSFile::getFilenameRetourne le nom du fichier

Description

public string MongoGridFSFile::getFilename ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier.



MongoGridFSFile::getSize

(PECL mongo >=0.9.0)

MongoGridFSFile::getSizeRetourne la taille du fichier

Description

public int MongoGridFSFile::getSize ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du fichier.



MongoGridFSFile::write

(PECL mongo >=0.9.0)

MongoGridFSFile::writeEcrit un fichier dans le système de fichiers

Description

public int MongoGridFSFile::write ([ string $filename = NULL ] )

Liste de paramètres

filename

Le chemin où écrire le fichier. Si aucun n'est fourni, le nom du fichier stocké en base sera utilisé.

Valeurs de retour

Retourne le nombre d'octets écrits.

Exemples

Exemple #1 Exemples pour MongoGridFSFile::write()

<?php

$images 
$db->my_db->getGridFS('images');

$image $images->findOne('jwage.png');
$image->write('/path/to/write/jwage.png');
?>

Sommaire



La classe MongoGridFSCursor

Introduction

Curseur de résultats de fichiers de base de données.

Synopsis de la classe

extends MongoCursor {
/* Champs */
protected MongoGridFS $gridfs = NULL ;
/* Méthodes */
__construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )
public MongoGridFSFile current ( void )
public MongoGridFSFile getNext ( void )
public string key ( void )
}

MongoGridFSCursor::__construct

(PECL mongo >=0.9.0)

MongoGridFSCursor::__constructCrée un nouveau curseur

Description

MongoGridFSCursor::__construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )

Liste de paramètres

gridfs

La collection GridFS associée.

connection

La connexion à la base de données.

ns

Full name of database and collection.

query

La requête de base de données.

fields

Les champs à retourner.

Valeurs de retour

Retourne le nouveau curseur.



MongoGridFSCursor::current

(PECL mongo >=0.9.0)

MongoGridFSCursor::currentRetourne le fichier courant

Description

public MongoGridFSFile MongoGridFSCursor::current ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le fichier courant.



MongoGridFSCursor::getNext

(PECL mongo >=0.9.0)

MongoGridFSCursor::getNextRetourne le prochain fichier vers lequel pointe le curseur, puis avance le curseur

Description

public MongoGridFSFile MongoGridFSCursor::getNext ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le fichier suivant.



MongoGridFSCursor::key

(PECL mongo >=0.9.0)

MongoGridFSCursor::keyRetourne le nom de fichier courant

Description

public string MongoGridFSCursor::key ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de fichier courant.


Sommaire




Fonctions

Sommaire


Fonctions Mongo


bson_decode

(PECL mongo >=1.0.1)

bson_decodeDélinéarise un objet BSON en un tableau PHP

Description

array bson_decode ( string $bson )

Cette fonction est en phase béta et très peu utile pour 99% des utilisateurs. Elle ne sert que si vous faites une mauvaise manipulation comme écrire votre propre pilote par dessus le pilote PHP.

Liste de paramètres

bson

L'objet BSON à délinéariser.

Valeurs de retour

Retourne l'objet BSON délinéarisé.



bson_encode

(PECL mongo >=1.0.1)

bson_encodeLinéarise une variable PHP en une chaîne BSON

Description

string bson_encode ( mixed $anything )

Cette fonction est en phase béta et très peu utile pour 99% des utilisateurs. Elle ne sert que si vous faites une mauvaise manipulation comme écrire votre propre pilote par dessus le pilote PHP.

Liste de paramètres

anything

La variable à linéariser.

Valeurs de retour

Retourne la chaîne linéarisée.


Sommaire

  • bson_decode — Délinéarise un objet BSON en un tableau PHP
  • bson_encode — Linéarise une variable PHP en une chaîne BSON



Exceptions

Sommaire

Spécificités VMWare

Si vous utilisez VMWare sous Windows et que vous utilisez CIFS, mettre en pause la VM désynchronisera CIFS et conduira à des erreurs sournoises à la reprise ("The Mongo object has not been correctly initialized by its constructor"). Monter les partages Windows de manière permanente corrigera ce comportement et vous pourrez alors mettre en pause et restaurer sans problème.

Pour monter les partages Windows de manière permanente, lancez:

$ sudo update-rc.d -f umountnfs.sh remove
$ sudo update-rc.d umountnfs.sh stop 15 0 6 .

Voyez » les documents Ubuntu pour des instructions plus à jour.


La classe MongoException

Introduction

Exception Mongo par défaut.

Cette exception couvre un grand nombre de conditions d'erreurs pouvant être déplacées vers une exception plus spécifique, mais étendant toujours la classe MongoException.

  • L'objet MongoSomething n'a pas été correctement initialisé par son constructeur

    Code: 0

    Votre objet Mongo semble déconnecté du serveur de base de données.

  • Des clés de taille zéro ne sont pas autorisées, avez-vous utiliser le $ avec des double quotes?

    Code: 1

    Vous avez tenté de sauvegardé une clé "". Vous ne devriez pas agir comme cela. "" peut servir pour des sous-objets et est utilisé en interne par MongoDB. Cependant, si vous le voulez vraiment, vous pouvez placer mongo.allow_empty_keys à true dans php.ini pour surcharger cette vérification. Si tel est le cas, il est recommandé d'utiliser la vérification stricte des erreurs.

  • '.' non autorisé dans la clé: <key>

    Code: 2

    Vous tentez d'écrire une clé avec un '.' dedans, ce qui est interdit.

  • insertion trop grande: <size>, max: <max>

    Code: 3

    Vous tentez d'envoyer trop de données à la base en une fois: la base n'accepte des insertions que jusqu'à une certaine taille (actuellement 16 MB).

  • Pas d'éléments dans le doc

    Code: 4

    Vous tentez de sauver un document sans champ.

  • La taille du doucment BSON est de <size> octets, max <max>MB

    Code: 5

    Vous tentez de sauver un document plus gros que la taille autorisée par MongoDB.

  • Pas de documents fournis

    Code: 6

    Vous tentez d'insérer par lots un tableau vide de documents.

  • MongoCollection::group prend un tableau, objet ou une clé MongoCode

    Code: 7

    Mauvais type envoyé à MongoCollection::group().

  • les noms de champs doivent être des chaines

    Code: 8

    Vous devriez formatter les sélecteurs de champs comme array("field1" => 1, "field2" => 1, ..., "fieldN" => 1).

  • invalid regex

    Code: 8

    L'expression régulière passée à MongoRegex n'a pas la forme attendue.

  • MongoDBRef::get: le champ $ref doit être une chaine

    Code: 10

  • MongoDBRef::get: le champ $db doit être une chaine

    Code: 11

  • chaines non-utf8: <str>

    Code: 12

    Cette erreur survient si vous tentez d'envoyer une chaîne de caractères non UTF-8 dans la base de données. Toutes les chaînes envoyées à la base de données doivent être encodées UTF-8. Reportez-vous aux options de votre php.ini pour l'option de transition permettant de rendre silencieuse cette exception.

  • mutex error: <err>

    Code: 13

    Le pilote utilise des mutexes pour synchroniser les requêtes et les réponses dans des environnements multithreadés. Ceci est une erreur sérieuse et peut ne pas avoir de trace de pile. C'est peu commun et devrait être rapporté aux mainteneurs avec toute information sur le système pour assurer le déboguage.

  • nom d'index trop long: <len>, max <max> caractères

    Code: 14

    Les index dont les noms dépassent 128 caractères ne peuvent être créés. Si vous avez cette erreur, vous devriez utiliser l'option "name" de MongoCollection::ensureIndex() pour créer un nom d'index plus court.

Synopsis de la classe

extends Exception {
}


La classe MongoCursorException

Introduction

Émise lors d'un accès incorrect à un curseur ou lors de la réception d'une erreur au moment de la réponse.

Si une erreur est reçue au moment de la réponse, il y aura également un message d'erreur spécifique pour aider à analyser le problème. Vu qu'il est difficile pour un programme d'analyser un message reçu d'une exception, il y a également un code d'erreur associé à chaque cause de l'exception.

  • cannot modify cursor after beginning iteration

    Code : 0

    Vous appelez une méthode qui affecte la requête après l'exécuter. Remettez à zéro le curseur et rééssayez.

  • Get next batch send errors

    Code : 1

    Ne peut envoyer la requête à la base. Vérifiez l'état su serveur et du réseau.

  • cursor not found

    Code : 2

    Le pilote a tenté de récupérer plus de données depuis la base, mais celle-ci n'avait pas assez d'enregistrements. Ceci signifie en général que le curseur a expiré coté serveur après quelques minutes d'inactivité, la base va détruire un curseur. (Voyez MongoCursor::immortal() pour plus d'informations).

  • Couldn't get response header.

    Code : 4

  • cursor->buf.pos is null

    Code: 3

    Ceci pourrait indiquer que vous n'avez plus d'espace disponible sur le disque ou une autre erreur relativement peu commune.

  • couldn't get response header

    Code: 4

    Le pilote n'a pas pu obtenir les en-têtes de la réponse depuis la base, il a donc abandonné. Vérifiez l'état du serveur et du réseau.

  • no db response

    Code: 5

    Ceci n'est pas toujours une erreur, par exemple, la commande "shutdown" émise à la base de données ne retourne aucune réponse. Cependant, si vous attendez une réponse, cela signifie que la base de données n'a pas réussi à la fournir.

  • bad response length: %d, max: %d, did the db assert?

    Code: 6

    Ceci signifie que la base de données dit que sa réponse est plus grande que 4Mo ou bien, inférieure à 0. Générallement, un nombre plus grand que 5Mo doit être rapporté aux développeurs comme un bogue potentiel (la taille maximale de la réponse est 4Mo). Une réponse inférieure à 0 signifie générallement qu'une assertion est survenue sur la base de données.

  • incomplete header

    Code: 7

    Très peu commun. Apparait si la réponse de la base commence de manière correcte, mais échoue en plein milieu. Probablement un problème réseau.

  • incomplete response

    Code: 8

    Très rare. Survient si la réponse de la base de données a commencé avec succès, mais s'est interrompue avant la fin. Probablement un problème réseau.

  • couldn't find a response

    Code: 9

    Si la réponse est en cache mais ne peut être trouvée.

  • error getting socket

    Code: 10

    La socket a été fermée ou a rencontré un problème. Le pilote devrait se reconnecter automatiquement (si possible) lors de l'opération suivante.

  • couldn't find reply, please try again

    Code: 11

    Le pilote sauvegarde toutes les réponses de la base qu'il ne peut associer immédiatement à une requête. Cette exception arrive lorsque le pilote a déja passé la réponse à votre requête mais ne peut la trouver dans son cache.

  • error getting database response: errstr

    WSA error getting database response: errstr

    "errstr" est une erreur IO, repporté directement depuis le socket C du sous-système. Sous Windows, le message d'erreur est préfixé par "WSA".

  • Timeout error

    Code: 13

    Erreur lors de l'attente qu'une requête s'exécute.

  • couldn't send query: <various>

    Code: 14

    Erreur de socket C à l'envoi.

Erreur de la base de données

Les erreurs de la base devraient toujours déclencher une MongoCursorException. Les messages d'erreur et les codes sont envoyés directement depuis la base et devraient se retrouver dans le journal de la base de données.

Voici quelques erreurs classiques de base de données:

  • E11000 duplicate key error index: foo.bar.$X dup key: { /* ... */ }

    Code: 11000

    Erreur de clé dupliquée.

  • not master

    Codes: 10107, 13435, and 10058

    Erreurs not master, pipée vers la base. Chacune causera une déconnection du pilote et sa recherche d'un nouveau maitre. L'erreur en failover peut ne pas être de type "not master", en fonction du déclenchement du changement de maitre.

Synopsis de la classe

extends MongoException {
}


La classe MongoCursorTimeoutException

Introduction

Lancée lorsqu'une requête atteint de délai maximal d'exécution. Vous pouvez passer le temps à attendre avant de lancer cette exception en appelant MongoCursor::timeout() sur le curseur ou en changeant la valeur de MongoCursor::$timeout. L'attribut static est pratique pour les requêtes comme les commandes de base et MongoCollection::findOne(), toutes deux utilisant implicitement des curseurs.

Synopsis de la classe



La classe MongoConnectionException

Introduction

Émise lorsque le pilote échoue à se connecter à la base de données.

Il y a plusieurs messages d'erreur possibles afin de vous aider à analyser un problème de connexion. Les voici :

  • No server name given.

    Cette erreur survient si vous passez une chaine vide comme nom de serveur, peut à cause d'une faute dans la variable de connexion, i.e. "$servr" au lieu de "$server".

  • failed to get left host [hostname] or port [portnum] from [server].

    Ceci indique que le premier ou le second serveur, respectivement "server1,server2" dans la chaîne de connexion, est mal formé. "[hostname]" et "[portnum]" doivent correspondre aux éxigences du driver.

  • Operation in progress

    Délai d'attente expiré lors de la connexion à la base de données.

  • Transport endpoint is not connected

    En général cela signifie que la chaine de connection est incorrecte, le pilote ne trouve pas le serveur de base de données.

  • couldn't determine master

    Impossible de déterminer le serveur maître dans une connexion pairée.

  • couldn't get host info for [server]

    Ceci indique que les DNS n'ont pas réussis à résoudre l'adresse du serveur que vous avez fourni. Vérifier la chaîne fournie.

  • Invalid Argument

    Ceci peut être dû lorsque vous tentez d'accéder à une machine qui fonctionne mais dont la base de données n'est pas en marche. Assurez-vous que la base de données est en fonctionnement avant de tenter de vous y connecter.

  • Permission denied

    Ceci signifie que le socket ne peut être ouvert en raison d'un problème sur les permissions. Sur les systèmes à base de Red Hat, ceci peut être dû à une configuration par défaut qui n'autorise pas Apache à créer des connexions réseaux. Vous pouvez résoudre ce problème en exécutant la commande suivante :

    $ /usr/sbin/setsebool -P httpd_can_network_connect 1
    
    puis, relancez Apache.

Si le message d'erreur que vous recevez n'est pas listé ci-dessus, c'est probablement une erreur qui provient du socket C, et vous pouvez chercher sur le web pour trouver les causes du problème.

Synopsis de la classe

extends MongoException {
}


La classe MongoGridFSException

Introduction

Émise lors d'erreur de lecture ou d'écriture de fichiers dans la base.

Synopsis de la classe

extends MongoException {
}




mSQL


Introduction

Ces fonctions vous permettent d'accéder aux bases de données mSQL. Plus d'informations sur mSQL à » http://www.hughes.com.au/.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Façon de pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support msql, en utilisant l'option --with-msql[=DIR] . DIR est le dossier d'installation de mSQL, et vaut par défaut /usr/local/msql3.

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : msql.dll



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MSQL
Nom Défaut Modifiable Historique
msql.allow_persistent "1" PHP_INI_ALL  
msql.max_persistent "-1" PHP_INI_ALL  
msql.max_links "-1" PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

msql.allow_persistent bool

Activation ou non des connexions mSQL persistantes.

msql.max_persistent entier

Le nombre maximum de connexions mSQL persistantes par processus.

Le nombre maximum de connexions mSQL par processus, y compris les connexions persistantes.



Types de ressources

Il y a deux types de ressources utilisées dans le module mSQL. Le premier est le lien identifiant la connexion de la base de données, le second, représente le résultat d'une requête.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MSQL_ASSOC (entier)
MSQL_NUM (entier)
MSQL_BOTH (entier)


Exemples

Sommaire


Cet exemple simple vous présente comment vous connecter à une base mSQL pour y lire quelques lignes.

Exemple #1 Exemple d'utilisation avec mSQL

<?php
/* Connexion et sélection de la base de données */
$link msql_connect('localhost''username''password')
    or die(
'Could not connect : ' msql_error($link));

msql_select_db('database'$link)
    or die(
'Could not select database');

/* Soumission de la requête */
$query 'SELECT * FROM my_table';
$result msql_query($query$link) or die('Échec de la requête : ' msql_error());

/* Affichage des résultats en HTML*/
echo "<table>\n";
while (
$row msql_fetch_array($resultMSQL_ASSOC)) {
    echo 
"\t<tr>\n";
    foreach (
$row as $col_value) {
        echo 
"\t\t<td>$col_value</td>\n";
    }
    echo 
"\t</tr>\n";
}
echo 
"</table>\n";

/* Libération des résultats */
msql_free_result($result);

/* Déconnexion */
msql_close($link);
?>




Fonctions mSQL


msql_affected_rows

(PHP 4, PHP 5)

msql_affected_rowsRetourne le nombre de lignes affectées

Description

int msql_affected_rows ( resource $result )

msql_affected_rows() retourne le nombre de lignes affectées par la dernière commande INSERT, UPDATE ou DELETE associé au paramètre result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de lignes affectées ou FALSE si une erreur survient.

Voir aussi



msql_close

(PHP 4, PHP 5)

msql_closeFerme une connexion mSQL

Description

bool msql_close ([ resource $link_identifier ] )

msql_close() ferme la connexion non persistante au serveur de base de données mSQL associée au paramètre link_identifier.

Notez bien qu'il n'est pas toujours nécessaire d'appeler cette fonction, car les connexions non persistantes seront automatiquement fermées à la fin du script. Voir aussi la libération des ressources.

Liste de paramètres

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msql_connect

(PHP 4, PHP 5)

msql_connectOuvre une connexion mSQL

Description

resource msql_connect ([ string $hostname ] )

msql_connect() établit une connexion à un serveur mSQL.

Si un deuxième appel est fait à msql_connect(), avec les mêmes arguments, ce ne sera pas une nouvelle connexion qui va être ouverte, mais l'ancienne connexion qui sera utilisée, et son identifiant sera retourné.

Le lien au serveur sera fermé dès la fin du script, ou bien, manuellement, lors de l'appel de msql_close().

Liste de paramètres

hostname

Le nom d'hôte peut aussi inclure un numéro de port, e.g. hostname,port.

Si ce paramètre n'est pas spécifié, la connexion est établie sous la forme d'un socket de domaine Unix, qui est bien plus efficace qu'une socket TCP vers localhost.

Note:

Bien que cette fonction accepte un deux-points (:) en tant que séparateur hôte/port, l'utilisation d'une virgule (,) est préférée.

Valeurs de retour

Retourne un identifiant de connexion positif mSQL en cas de succès, FALSE sinon.

Voir aussi



msql_create_db

(PHP 4, PHP 5)

msql_create_dbCrée une base de données mSQL

Description

bool msql_create_db ( string $database_name [, resource $link_identifier ] )

msql_create_db() essaie de créer une nouvelle base de données nommée database_name sur le serveur référencé par l'identifiant link_identifier.

Liste de paramètres

database_name

Le nom de la base de données mSQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msql_createdb

(PHP 4, PHP 5)

msql_createdbAlias de msql_create_db()

Description

Cette fonction est un alias de : msql_create_db().



msql_data_seek

(PHP 4, PHP 5)

msql_data_seekDéplace le pointeur interne mSQL

Description

bool msql_data_seek ( resource $result , int $row_number )

msql_data_seek() déplace le pointeur interne de résultat mSQL, et le place à l'offset donné. Le prochain appel à la fonction msql_fetch_row() retournera cette ligne.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

row_number

Le numéro de ligne désiré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msql_db_query

(PHP 4, PHP 5)

msql_db_querySoumet une requête mSQL

Description

resource msql_db_query ( string $database , string $query [, resource $link_identifier ] )

msql_db_query() sélectionne une base de données, et exécute une requête.

Liste de paramètres

database

Le nom de la base de données mSQL.

query

La requête SQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un identifiant de requête mSQL positif au résultat de la requête ou FALSE si une erreur survient.

Voir aussi



msql_dbname

(PHP 4, PHP 5)

msql_dbnameAlias de msql_result()

Description

Cette fonction est un alias de : msql_result().



msql_drop_db

(PHP 4, PHP 5)

msql_drop_dbEfface une base de données mSQL

Description

bool msql_drop_db ( string $database_name [, resource $link_identifier ] )

msql_drop_db() essaie d'effacer une base de données entière sur le serveur référencé par l'identifiant link_identifier.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msql_error

(PHP 4, PHP 5)

msql_errorRetourne le message d'erreur mSQL

Description

string msql_error ( void )

msql_error() retourne la dernière erreur retournée par le serveur mSQL. Notez que seul le dernier message est retourné par la fonction msql_error().

Valeurs de retour

Le dernier message d'erreur ou une chaîne vide s'il n'y en a aucune.



msql_fetch_array

(PHP 4, PHP 5)

msql_fetch_arrayLit une ligne sous la forme d'un tableau

Description

array msql_fetch_array ( resource $result [, int $result_type ] )

msql_fetch_array() est une version évoluée de msql_fetch_row(). En plus d'enregistrer les données dans un tableau à indice numérique, il enregistre aussi les données dans un tableau associatif, en utilisant les noms des champs comme clés.

Il est important de noter que msql_fetch_array() n'est PAS significativement plus lent que msql_fetch_row(), alors qu'elle apporte un confort d'utilisation appréciable.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

result_type

Une constante qui peut prendre les valeurs suivantes : MSQL_ASSOC, MSQL_NUM, et MSQL_BOTHMSQL_BOTH est la valeur par défaut.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec msql_fetch_array()

<?php
$con 
msql_connect();
if (!
$con) {
  die(
'Problème de connexion avec le serveur : ' msql_error());
}

if (!
msql_select_db('test'$con)) {
  die(
'Problème de connexion avec la base de données : ' msql_error());
}

$result msql_query('SELECT id, name FROM people'$con);
if (!
$result) {
  die(
'Problème d\'exécution de la requête : ' msql_error());
}

while (
$row msql_fetch_array($resultMSQL_ASSOC)) {
  echo 
$row['id'] . ': ' $row['name'] . "\n";
}

msql_free_result($result);
?>

Historique

Version Description
4.3.11 et 5.0.4 Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi



msql_fetch_field

(PHP 4, PHP 5)

msql_fetch_fieldLit la valeur d'un champ mSQL

Description

object msql_fetch_field ( resource $result [, int $field_offset = 0 ] )

msql_fetch_field() sert à lire les informations sur les champs dans certaines requêtes.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position du champs. Si non spécifié, le prochain champs qui n'a pas encore été récupéré par la fonction msql_fetch_field() sera récupéré.

Valeurs de retour

Retourne un objet contenant les informations du champs. Les propriétés de l'objet sont :

  • name : le nom de la colonne

  • table : le nom de la table à laquelle les colonnes appartiennent

  • not_null : 1 si la colonne ne peut valoir NULL

  • unique : 1 si la colonne est une clé unique

  • type : Le type de la colonne

Voir aussi



msql_fetch_object

(PHP 4, PHP 5)

msql_fetch_objectLit une ligne sous la forme d'un objet

Description

object msql_fetch_object ( resource $result )

msql_fetch_object() est identique à msql_fetch_array(), avec une différence : c'est un objet qui est retourné, à la place d'un tableau. Par conséquent, cela signifie que vous ne pouvez accéder aux valeurs que par les noms des champs, et non plus avec leur offset. (Les nombres sont interdits dans les noms de propriétés).

msql_fetch_object() est aussi rapide que msql_fetch_array(), et marginalement plus lente que msql_fetch_row() (la différence n'est pas significative).

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne un objet dont les propriétés correspondent à la ligne récupérée, ou FALSE si'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec msql_fetch_object()

<?php
$con 
msql_connect();
if (!
$con) {
die(
'Problème de connexion au serveur : ' msql_error());
}

if (!
msql_select_db('test'$con)) {
die(
'Problème de connexion à la base de données : ' msql_error());
}

$result msql_query('SELECT id, name FROM people'$con);
if (!
$result) {
die(
'Problème lors de l\'exécution de la requête : ' msql_error());
}

while (
$row msql_fetch_object($resultMSQL_ASSOC)) {
echo 
$row->id ': ' $row->name "\n";
}

msql_free_result($result);
?>

Historique

Version Description
4.3.11 et 5.0.4 Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi



msql_fetch_row

(PHP 4, PHP 5)

msql_fetch_rowRetourne une ligne sous la forme d'un tableau

Description

array msql_fetch_row ( resource $result )

msql_fetch_row() récupère une ligne de données depuis le résultat associé avec l'identifiant de requête spécifié. La ligne est retourné sous la forme d'un tableau. Chaque colonne du résultat est stockée dans une ligne du tableau, en commençant à la position 0.

Les appels suivants à la fonction msql_fetch_row() retourneront les prochaines lignes du jeu de résultat, ou FALSE s'il n'y a plus de lignes de disponible.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne un tableau qui correspond à la ligne lue, ou FALSE s'il n'y a plus de lignes de disponible.

Exemples

Exemple #1 Exemple avec msql_fetch_row()

<?php
$con 
msql_connect();
if (!
$con) {
  die(
'Problème de connexion au serveur : ' msql_error());
}

if (!
msql_select_db('test'$con)) {
  die(
'Problème de connexion à la base de données : ' msql_error());
}

$result msql_query('SELECT id, name FROM people'$con);
if (!
$result) {
  die(
'Problème lors de l\'exécution de la requête : ' msql_error());
}

while (
$row msql_fetch_row($result)) {
  echo 
$row[0] . ': ' $row[1] . "\n";
}

msql_free_result($result);
?>

Historique

Version Description
4.3.11 et 5.0.4 Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi



msql_field_flags

(PHP 4, PHP 5)

msql_field_flagsLit les options de champ msql

Description

string msql_field_flags ( resource $result , int $field_offset )

msql_field_flags() retourne les options du champ field_offset.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Retourne une chaîne contenant les options du champ correspondant à la clé spécifiée. Cela peut être : primary key not null, not null, primary key, unique not null ou unique.



msql_field_len

(PHP 4, PHP 5)

msql_field_lenLit la taille du champ mSQL

Description

int msql_field_len ( resource $result , int $field_offset )

msql_field_len() retourne la taille du champ spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Retourne la taille du champ spécifié ou FALSE en cas d'erreur.



msql_field_name

(PHP 4, PHP 5)

msql_field_nameLit le nom du champ msql

Description

string msql_field_name ( resource $result , int $field_offset )

msql_field_name() retourne le nom du champ de l'index spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le nom du champ ou FALSE si une erreur survient.

Voir aussi



msql_field_seek

(PHP 4, PHP 5)

msql_field_seekFixe l'offset d'un champ mSQL

Description

bool msql_field_seek ( resource $result , int $field_offset )

msql_field_seek() recherche l'offset du champ field_offset. Le prochain appel à msql_fetch_field() sans l'argument field_offset, retournera ce champ.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msql_field_table

(PHP 4, PHP 5)

msql_field_tableLit le nom de la table du champ msql

Description

int msql_field_table ( resource $result , int $field_offset )

msql_field_table() retourne le nom de la table dans laquelle le champ field a été lu.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le nom de la table en cas de succès ou FALSE si une erreur survient.



msql_field_type

(PHP 4, PHP 5)

msql_field_typeLit le type de champ mSQL

Description

string msql_field_type ( resource $result , int $field_offset )

msql_field_type() récupère le type du champ spécifié par son index.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le type du champ. Une valeur parmi int, char, real, ident, null ou unknown. Cette fonction retourne FALSE si une erreur survient.



msql_fieldflags

(PHP 4, PHP 5)

msql_fieldflagsAlias de msql_field_flags()

Description

msql_fieldflags() est un alias de la fonction msql_field_flags().



msql_fieldlen

(PHP 4, PHP 5)

msql_fieldlenAlias de msql_field_len()

Description

Cette fonction est un alias de la fonction msql_field_len().



msql_fieldname

(PHP 4, PHP 5)

msql_fieldnameAlias de msql_field_name()

Description

msql_fieldname() est un alias de la fonction msql_field_name().



msql_fieldtable

(PHP 4, PHP 5)

msql_fieldtableAlias de msql_field_table()

Description

msql_fieldtable() est un alias de la fonction msql_field_table().



msql_fieldtype

(PHP 4, PHP 5)

msql_fieldtypeAlias de msql_field_type()

Description

msql_fieldtype() est un alias de la fonction msql_field_type().



msql_free_result

(PHP 4, PHP 5)

msql_free_resultLibère le résultat de la mémoire

Description

bool msql_free_result ( resource $result )

msql_free_result() libère de la mémoire le résultat associé à l'identifiant de résultat query_identifier. Lorsque PHP a terminé une requête, cette mémoire est libérée, ce qui fait que vous n'aurez pas besoin de cette fonction. Vous pouvez toujours l'utiliser pour vous assurer que vous n'utilisez pas trop de mémoire durant un script.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



msql_list_dbs

(PHP 4, PHP 5)

msql_list_dbsListe les bases de données mSQL sur un serveur

Description

resource msql_list_dbs ([ resource $link_identifier ] )

msql_list_tables() liste tous les bases de données disponibles sur la base spécifiée par link_identifier.

Liste de paramètres

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats qui peut être lu par n'importe quelle fonction capable de parcourir un tel résultat, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi



msql_list_fields

(PHP 4, PHP 5)

msql_list_fieldsListe les champs d'une table

Description

resource msql_list_fields ( string $database , string $tablename [, resource $link_identifier ] )

msql_list_fields() lit les informations de la table tablename.

Liste de paramètres

database

Le nom de la base de données.

tablename

Le nom de la table.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats pouvant être parcouru par n'importe quelle fonction capable, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi



msql_list_tables

(PHP 4, PHP 5)

msql_list_tablesListe les tables mSQL sur une base de données

Description

resource msql_list_tables ( string $database [, resource $link_identifier ] )

msql_list_tables() liste les tables de la base de données spécifiée par database.

Liste de paramètres

database

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats pouvant être parcouru par n'importe quelle fonction capable, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi



msql_num_fields

(PHP 4, PHP 5)

msql_num_fieldsRetourne le nombre de champs dans un résultat

Description

int msql_num_fields ( resource $result )

msql_num_fields() retourne le nombre de champs du résultat associé à l'identifiant query_identifier.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de champs dans le jeu de résultats.

Voir aussi



msql_num_rows

(PHP 4, PHP 5)

msql_num_rowsRetourne le nombre de lignes dans un résultat

Description

int msql_num_rows ( resource $query_identifier )

msql_num_rows() retourne le nombre de lignes dans d'un jeu de résultat.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Voir aussi



msql_numfields

(PHP 4, PHP 5)

msql_numfieldsAlias de msql_num_fields()

Description

msql_numfields() est un alias de la fonction msql_num_fields().



msql_numrows

(PHP 4, PHP 5)

msql_numrowsAlias de msql_num_rows()

Description

msql_numrows() est un alias de la fonction msql_num_rows().



msql_pconnect

(PHP 4, PHP 5)

msql_pconnectOuvre une connexion persistante à un serveur mSQL

Description

resource msql_pconnect ([ string $hostname ] )

msql_pconnect() se comporte presque comme msql_connect(), mais à deux différences majeures près.

D'abord, lors de la connexion, msql_pconnect() cherche si une connexion persistante a déjà été ouverte sur le même hôte. Si une telle connexion est trouvée, elle sera utilisée.

Deuxièmement, la connexion au serveur SQL ne sera pas terminée lors de la fin de l'exécution du script. À la place, le lien restera ouvert pour d'autres connexions futures. (msql_close() ne fermera pas un lien ouvert par msql_pconnect()).

Liste de paramètres

hostname

Le nom de l'hôte peut également inclure un numéro de port. e.g. hostname,port.

Si non spécifié, la connexion est établie sous la forme d'un socket Unix, ce qui est plus efficace d'une connexion via un socket TCP.

Note: Bien que cette fonction accepte un deux-points (:) pour séparer l'hôte du port, une virgule (,) est la méthode conseillée.

Valeurs de retour

Retourne un identifiant de connexion mSQL en cas de succès, ou FALSE si une erreur survient.

Voir aussi



msql_query

(PHP 4, PHP 5)

msql_queryEnvoie une requête mSQL

Description

resource msql_query ( string $query [, resource $link_identifier ] )

msql_query() envoie une requête à la base de données active, sur le serveur associé à l'identifiant de connexion link_identifier.

Liste de paramètres

query

La requête SQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un identifiant positif de connexion mSQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msql_query()

<?php
$link 
msql_connect("dbserver")
or die(
"Impossible de se connecter au serveur msql : " msql_error());
msql_select_db("db"$link)
or die(
"Impossible de sélectionner la base de données 'db': " msql_error());

$result msql_query("SELECT * FROM table WHERE id=1"$link);
if (!
$result) {
   die(
"Échec de la requête : " msql_error());
}

while (
$row msql_fetch_array($result)) {
   echo 
$row["id"];
}
?>

Voir aussi



msql_regcase

(PHP 4, PHP 5)

msql_regcaseAlias de sql_regcase()

Description

msql_regcase() est un alias de la fonction sql_regcase().



msql_result

(PHP 4, PHP 5)

msql_resultRetourne les données de résultat

Description

string msql_result ( resource $result , int $row [, mixed $field ] )

msql_result() retourne la valeur de la cellule, à la ligne row et l'offset spécifié, field dans le résultat mSQL query_identifier.

Lorsque vous travaillez sur des résultats de grande taille, il est préférable d'utiliser les fonctions qui récupèrent toute la ligne (voir ci-dessous). Comme ces fonctions retournent plusieurs cellules en même temps, elles sont beaucoup plus rapide que msql_result().

Alternatives recommandées : msql_fetch_row(), msql_fetch_array() et msql_fetch_object().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

row

L'offset de la ligne.

field

Peut être l'offset du champ, ou le nom du champ, le nom de la table, suivi du nom du champ (tablename.fieldname.). Si le nom de la colonne est un alias ("select foo as bar from ..."), utilisez cet alias au lieu du nom de la colonne.

Note:

Le fait de spécifier l'offset numérique d'un champ est plus rapide que de spécifier le nom du champ ou bien la forme tablename.fieldname.

Valeurs de retour

Retourne le contenu de la cellule se trouvant à la ligne et à la position spécifiées dans le jeu de résultats mSQL.



msql_select_db

(PHP 4, PHP 5)

msql_select_dbSélectionne une base de données mSQL

Description

bool msql_select_db ( string $database_name [, resource $link_identifier ] )

msql_select_db() sélectionne la base de données active sur le serveur associé à link_identifier.

Les appels suivant à msql_query() seront effectués sur la base de données active.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msql_tablename

(PHP 4, PHP 5)

msql_tablenameAlias de msql_result()

Description

msql_tablename() est un alias de la fonction msql_result().



msql

(PHP 4, PHP 5)

msqlAlias de msql_db_query()

Description

msql() est un alias de la fonction msql_db_query().


Sommaire




Serveur MS SQL


Introduction

Ces fonctions vous permettent d'accéder aux serveurs de données MS SQL.

Cette extension n'est plus disponible sous Windows avec PHP 5.3 et suivant.

SQLSRV, un pilote de remplacement pour MS SQL est disponible chez Microsoft : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.



Installation/Configuration

Sommaire


Pré-requis

Requis pour les plates-formes Windows

Vous avez besoin d'un client MS SQL Client Tools sur votre système, accessible à PHP. Les Client Tools peuvent être installés depuis le CD MS SQL Server CD ou en copiant ntwdblib.dll depuis le dossier \winnt\system32 du serveur MS SQL vers \winnt\system32 sur le serveur PHP. Copier ntwdblib.dll ne fera que fournir le moyen d'accès. La configuration du client requiert l'installation des autres outils.

Cette extension n'est plus disponible sous Windows avec PHP 5.3 et suivant.

SQLSRV, un pilote de remplacement pour MS SQL est disponible chez Microsoft : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.

Prérequis pour les plates-formes Unix/Linux.

Pour utiliser l'extension MS SQL sur Unix/Linux, vous devez commencer par compiler et installer la bibliothèque FreeTDS. Le code source et les instructions d'installation sont disponibles sur le site de FreeTDS : » http://www.freetds.org/

Note:

Sur Windows, la bibliothèque DBLIB de Microsoft est utilisée. Les fonctions qui retournent les noms de colonnes sont basées sur la fonction dbcolname() de DBLIB. DBLIB a été développée pour MS SQL Server 6.x où la longueur maximale de l'identifiant est 30. Pour cette raison, la longueur maximale des colonnes est 30. Sur les plates-formes où FreeTDS est utilisé (Linux), il n'y pas ce problème.

Note:

Sur Windows, si vous utilisez MSSQL 2005 ou plus récent, vous devez copier la bibliothèque ntwdblib.dll dans le dossier où vous avez installé PHP, et écraser celle qui s'y trouve. Ceci est dû à la version qui est distribuée avec PHP : elle est ancienne et obsolète. Autrement, vous pouvez utiliser » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx, ODBC, PDO_DBLIB or PDO_ODBC pour communiquer avec MSSQL.



Installation

L'extension MSSQL est activée par la ligne extension=php_mssql.dll dans le fichier php.ini.

Pour que ces fonctions fonctionnent, vous devez compiler PHP avec --with-mssql[=DIR] , où DIR est le préfixe d'installation FreeTDS. Et le FreeTDS doit être compilé en utilisant --enable-msdblib .

Avertissement

Les fonctions MS SQL sont liées aux fonctions Sybase si PHP est compilé avec l'extension Sybase et sans l'extension MS SQL.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Microsoft SQL Server
Nom Défaut Modifiable Historique
mssql.allow_persistent "1" PHP_INI_SYSTEM  
mssql.max_persistent "-1" PHP_INI_SYSTEM  
mssql.max_links "-1" PHP_INI_SYSTEM  
mssql.min_error_severity "10" PHP_INI_ALL  
mssql.min_message_severity "10" PHP_INI_ALL  
mssql.compatability_mode "0" PHP_INI_ALL  
mssql.connect_timeout "5" PHP_INI_ALL  
mssql.timeout "60" PHP_INI_ALL Disponible depuis PHP 4.1.0.
mssql.textsize "-1" PHP_INI_ALL  
mssql.textlimit "-1" PHP_INI_ALL  
mssql.batchsize "0" PHP_INI_ALL Disponible depuis PHP 4.0.4.
mssql.datetimeconvert "1" PHP_INI_ALL Disponible depuis PHP 4.2.0.
mssql.secure_connection "0" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0.
mssql.max_procs "-1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
mssql.charset "" PHP_INI_ALL Disponible depuis PHP 5.1.2 si compilé avec FreeTDS 7.0 ou plus récent.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

mssql result

Une ressource de résultat, retourné par mssql_query() avec une requête SELECT.

mssql statement

Une commande préparée, retournée par mssql_init().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MSSQL_ASSOC (entier)
Retourne un tableau associatif. Utilisé comme paramètre de result_type, avec la fonction mssql_fetch_array().
MSSQL_NUM (entier)
Retourne un tableau numérique. Utilisé comme paramètre de result_type, avec la fonction mssql_fetch_array().
MSSQL_BOTH (entier)
Retourne un tableau numérique et associatif. Utilisé comme paramètre de result_type, avec la fonction mssql_fetch_array(). C'est la valeur par défaut.
SQLTEXT (entier)
Représente le type 'TEXT' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLVARCHAR (entier)
Représente le type 'VARCHAR' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLCHAR (entier)
Représente le type 'CHAR' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLINT1 (entier)
Représente un entier d'un octet, de -128 à 127.
SQLINT2 (entier)
Représente un entier de deux octets, de -32768 à 32767.
SQLINT4 (entier)
Représente un entier de quatre octets, de -2147483648 à 2147483647.
SQLBIT (entier)
Représente le type 'BIT' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLFLT4 (entier)
Représente un nombre décimal de quatre octets.
SQLFLT8 (entier)
Représente un nombre décimal de huit octets.


Fonctions Mssql


mssql_bind

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_bindAjoute un paramètre à une procédure stockée MSSQL (locale ou distante)

Description

bool mssql_bind ( resource $stmt , string $param_name , mixed &$var , int $type [, bool $is_output = false [, bool $is_null = false [, int $maxlen = -1 ]]] )

Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante).

Liste de paramètres

stmt

Une ressource de requête, obtenue avec la fonction mssql_init().

param_name

Le nom du paramètre, sous la forme d'une chaîne de caractères.

Note:

Vous devez ajouter un caractère @, comme dans la syntaxe T-SQL. Voir l'explication dans la documentation de la fonction mssql_execute().

var

La variable PHP que vous voulez lier au paramètre MSSQL. Il faut la passer par référence pour récupérer les valeurs OUTPUT et RETVAL après l'exécution de la procédure.

type

Une constante parmi : SQLTEXT, SQLVARCHAR, SQLCHAR, SQLINT1, SQLINT2, SQLINT4, SQLBIT, SQLFLT4, SQLFLT8, SQLFLTN.

is_output

Si la valeur est un paramètre OUTPUT ou non. Si c'est un paramètre OUTPUT et que vous ne mentionnez pas, il sera traité comme un paramètre d'entrée normal et aucune erreur ne sera émise.

is_null

Si le paramètre vaut NULL ou non. Le fait de passer NULL comme valeur au paramètre var n'y fera rien.

maxlen

Utilisé avec les valeurs de type CHAR et VARCHAR. Vous devez indiquer la longueur des données, donc, si ce paramètre vaut VARCHAR(50), le type doit être SQLVARCHAR et sa valeur, 50.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_bind()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Crée une nouvelle procédure stockée
$stmt mssql_init('NewUserRecord');

// Lie les noms de champs
mssql_bind($stmt'@username',  'Kalle',        SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt'@name',      'Kalle',        SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt'@age',       19,             SQLINT1,        false,  false,   3);

// Exécute 
mssql_execute($stmt);

// Libère les ressources
mssql_free_statement($stmt);
?>

Voir aussi



mssql_close

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_closeFerme une connexion MS SQL Server

Description

bool mssql_close ([ resource $link_identifier ] )

Ferme la connexion à la base MS SQL Server, qui était associée à l'identifiant link_identifier. Si ce dernier n'est pas précisé, la dernière connexion ouverte sera fermée.

Notez qu'il n'est pas nécessaire de fermer les connexions non persistantes aux bases de données, car elles seront fermées automatiquement à la fin du script.

Liste de paramètres

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect().

Cette fonction ne ferme pas les liens persistants générés par la fonction mssql_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_close()

<?php
// Connexion à MSSQL
$link mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');

// Quelques requêtes SQL sur le serveur ici...

// Fermeture de la connexion à MSSQL
mssql_close($link);
?>

Voir aussi



mssql_connect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_connectOuvre une connexion à un serveur MS SQL server

Description

resource mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link = false ]]]] )

mssql_connect() établit une connexion à un serveur MS SQL.

Le lien avec le serveur sera fermé dès la fin du script, ce qui fait qu'on n'est pas obligé de fermer explicitement la connexion à la fin du script avec mssql_close().

Liste de paramètres

servername

Le serveur MS SQL. Il peut également contenir le numéro du port, . e.g. hostname:port (Linux), ou hostname,port (Windows).

username

Le nom d'utilisateur.

password

Le mot de passe.

new_link

Si un deuxième appel est fait à mssql_connect() avec les mêmes arguments, un nouveau lien ne sera pas retourné, mais le lien déjà ouvert sera utilisé. Ce paramètre modifie ce comportement et fait que la fonction mssql_connect() ouvre toujours un nouveau lien, même si la fonction mssql_connect() a été appelée avant, avec les mêmes paramètres.

Valeurs de retour

Retourne un identifiant de lien MS SQL en cas de succès, ou FALSE si une erreur survient.

Historique

Version Description
4.4.1 and 5.1.0 Le paramètre new_link a été ajouté

Exemples

Exemple #1 Exemple avec mssql_connect()

<?php
// Le serveur est au format : <hôte>\<nom d'instance> ou
// <serveur>,<port> quand on utilise un port différent de celui par défaut
$server 'KALLESPC\SQLEXPRESS';

// Connexion à MSSQL
$link mssql_connect($server'sa''phpfi');

if(!
$link) {
    die(
'Erreur de connexion à MSSQL');
}
?>

Voir aussi



mssql_data_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_data_seekDéplace le pointeur interne de ligne

Description

bool mssql_data_seek ( resource $result_identifier , int $row_number )

mssql_data_seek() déplace le pointeur interne de ligne, dans le résultat result_identifier, jusqu'à la ligne row_number, la première étant numérotée 0. Le prochain appel à mssql_fetch_row() retournera cette ligne.

Liste de paramètres

result_identifier

La ressource de résultat à évaluer.

row_number

Le numéro de la ligne désiré pour le nouveau pointeur de résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_data_seek()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Sélection de tout le monde
$result mssql_query('SELECT [name], [age] FROM [persons] WHERE [age] >= 13');

if (!
$result) {
    die(
'La requête a échoué.');
}

// Sélection d'un étudiant sur quatre, dans les résultats
for ($i mssql_num_rows($result) - 1$i 4$i++) {
    if (!
mssql_data_seek($result$i)) {
        continue;
    }
    
    
// Lecture d'une ligne...
}

// Libération du résultat
mssql_free_result($result);
?>



mssql_execute

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_executeExécute une procédure stockée sur un serveur MS SQL

Description

mixed mssql_execute ( resource $stmt [, bool $skip_results = false ] )

Exécute une procédure stockée sur un serveur MS SQL.

Liste de paramètres

stmt

Le gestionnaire de requête, obtenu avec la fonction mssql_init().

skip_results

Omettre les résultats ou non.

Exemples

Exemple #1 Exemple avec mssql_execute()

<?php
// Création d'une nouvelle commande
$stmt mssql_init('NewBlogEntry');

// Quelques données
$title 'Test of blogging system';
$content 'If you can read this, then the new system is compatible with MSSQL';

// Liaison des variables
mssql_bind($stmt'@author',    'Felipe Pena',  SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt'@date',      '08/10/2008',   SQLVARCHAR,     false,  false,  20);
mssql_bind($stmt'@title',     $title,         SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt'@content',   $content,       SQLTEXT);

// Exécution de la commande
mssql_execute($stmt);

// Et libération des ressources : 
mssql_free_statement($stmt);
?>

Notes

Note:

Si la procédure stockée retourne un paramètre ou une valeur, ils seront disponibles après l'appel à la fonction mssql_execute(), à moins que la procédure stockée ne retourne plusieurs résultats. Dans ce cas, utilisez la fonction mssql_next_result() pour passer en revue tous les résultats. Lorsque le dernier résultat aura été traité, les valeurs des paramètres de sortie et les valeurs retournées seront disponibles.

Voir aussi

  • mssql_bind() - Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
  • mssql_free_statement() - Libère une commande MS SQL Server de la mémoire
  • mssql_init() - Initialise une procédure stockée MS SQL Server locale ou distante



mssql_fetch_array

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_arrayLit une ligne de résultat MS SQL dans un tableau

Description

array mssql_fetch_array ( resource $result [, int $result_type = MSSQL_BOTH ] )

mssql_fetch_array() est une version améliorée de mssql_fetch_row(). En plus de stocker les données dans un tableau à index numérique, elle les stocke aussi dans un tableau associatif, en utilisant les noms de colonnes comme clés.

Une chose importante à noter est que mssql_fetch_array() n'est PAS significativement plus lente que mssql_fetch_row(), tandis qu'elle apporte un confort appréciable.

Liste de paramètres

result

La ressource de résultat à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

result_type

Un tableau de types qui doivent être récupérés. C'est une constante et peut prendre les valeurs suivantes : MSSQL_ASSOC, MSSQL_NUM, et MSSQL_BOTH.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec mssql_fetch_array()

<?php
// Requête de sélection à MSSQL
$query mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des lignes
if (!mssql_num_rows($query)) {
    echo 
'Pas de ligne trouvée';
} else {
    
// Ceci est équivalent au code ci-dessous :
    //
    // while($row = mssql_fetch_row($query))

    
while ($row mssql_fetch_array($queryMSSQL_NUM)) {
        
// ...
    
}
}

// Libération des ressources
mssql_free_result($query);
?>

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi



mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_assocRetourne un tableau associatif pour la ligne courant de résultat MS SQL Server

Description

array mssql_fetch_assoc ( resource $result_id )

Retourne un tableau associatif pour la ligne courante de résultat MS SQL Server et déplace le pointeur de données interne au début. mssql_fetch_assoc() est équivalent à mssql_fetch_array() avec le paramètre MSSQL_ASSOC.

Liste de paramètres

result_id

La ressource de résultat à lire. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un tableau associatif qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec mssql_fetch_assoc()

<?php
// Effectue une sélection sur MSSQL
$query mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des résultats
if (!mssql_num_rows($query)) {
    echo 
'Pas de résultats trouvés';
} else {
    
// Affiche une liste d'utilisateurs au format 
    // nom (login)

    
echo '<ul>';

    while (
$row mssql_fetch_assoc($query)) {
        echo 
'<li>' $row['name'] . ' (' $row['username'] . ')</li>';
    }

    echo 
'</ul>';
}

// Libère les résultats
mssql_free_result($query);
?>



mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_batchRetourne le prochain lot de lignes MS SQL Server

Description

int mssql_fetch_batch ( resource $result )

Retourne le prochain lot de lignes MS SQL Server.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le numéro de lot, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec mssql_fetch_batch()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Envoi d'une requête
$result mssql_query('SELECT * FROM [php].[dbo].[people]'$link100);
$records 10;

while (
$records >= 0) {
    while (
$row mssql_fetch_assoc($result))
    {
        
// Traitement
    
}

    --
$records;
}

if (
$batchsize mssql_fetch_batch($result)) {
    
// $batchsize est le nombre de ligne à lire
    // dans le résultat, mais enocre à afficher
}
?>



mssql_fetch_field

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_fieldLit les informations sur le champ

Description

object mssql_fetch_field ( resource $result [, int $field_offset = -1 ] )

mssql_fetch_field() sert à lire des informations spécifiques à un champ, dans un résultat de requête.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

field_offset

La position numérique du champ. Si l'offset du champ field_offset n'est pas précisé, le prochain champ sera analysé. field_offset commence à 0.

Valeurs de retour

Retourne un objet contenant les informations du champ.

Les propriétés de l'objet sont :

  • "name" : nom de la colonne. Si la colonne est le résultat d'une fonction, le nom de la colonne sera computed#N, où #N est un numéro de série.
  • "column_source" : le nom de la table d'où la colonne est originaire.
  • "max_length" : taille maximale de la colonne.
  • "numeric" : 1 si la colonne est numérique.
  • "type" : le type de la colonne.

Exemples

Exemple #1 Exemple avec mssql_fetch_field()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Envoie une requête Select à MSSQL
$query mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Construit la table
echo '<h3>Table structure for \'persons\'</h3>';
echo 
'<table border="1">';

// Entête de table
echo '<thead>';
echo 
'<tr>';
echo 
'<td>Field name</td>';
echo 
'<td>Data type</td>';
echo 
'<td>Max length</td>';
echo 
'</tr>';
echo 
'</thead>';

// Champs
echo '<tbody>';

for (
$i 0$i mssql_num_fields($query); ++$i) {
    
// Lecture des informations des champs
    
$field mssql_fetch_field($query$i);

    
// Affichage de la ligne
    
echo '<tr>';
    echo 
'<td>' $field->name '</td>';
    echo 
'<td>' strtoupper($field->type) . '</td>';
    echo 
'<td>' $field->max_length '</td>';
    echo 
'</tr>';
}

echo 
'</tbody>';
echo 
'</table>';

// Libération des ressources
mssql_free_result($query);
?>

Voir aussi



mssql_fetch_object

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_objectRetourne une ligne de résultat MS SQL Server sous la forme d'un objet

Description

object mssql_fetch_object ( resource $result )

mssql_fetch_object() est similaire à mssql_fetch_array(), avec une différence : un objet est retourné, au lieu d'un tableau. Indirectement, cela signifie que vous ne pouvez accéder aux données que par leur nom de champ, et pas par leur offset (les nombres sont illégaux comme nom de propriété).

En terme de vitesse, cette fonction est identique à mssql_fetch_array(), quasiment aussi rapide que mssql_fetch_row() (la différence est non significative).

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un objet dont les propriétés contiennent les valeurs de la ligne courante dans le résultat result, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec mssql_fetch_object()

<?php
// Envoie une requête de sélection à MSSQL
$query mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if(!mssql_num_rows($query)) {
    echo 
'Aucune ligne trouvée';
} else {
    
// Affiche une liste d'utilisateur au format :
    // * nom (login)

    
echo '<ul>';

    while (
$row mssql_fetch_object($query)) {
        echo 
'<li>' $row->name ' (' $row->username ')</li>';
    }

    echo 
'</ul>';
}

// Libère le résultat
mssql_free_result($query);
?>

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi



mssql_fetch_row

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_rowLit une ligne de résultat MS SQL dans un tableau numérique

Description

array mssql_fetch_row ( resource $result )

mssql_fetch_row() lit une ligne dans le résultat result et place les valeurs dans un tableau. Chaque valeur est enregistrée dans un élément du tableau, et les indices commencent à 0.

Les appels suivants à mssql_fetch_row() retourneront la ligne suivante, ou bien FALSE s'il ne reste plus de ligne.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un tableau qui contient les valeurs de la ligne courante du résultat result ou bien FALSE s'il n'y a plus de ligne à lire.

Exemples

Exemple #1 Exemple avec mssql_fetch_row()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Exécution d'une requête
$query mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\''$link);

// Est-ce que la requête a échoué?
if (!$query) {
    die(
'MSSQL error: ' mssql_get_last_message());
}

// Lit la ligne
$row mssql_fetch_row($query);

// Affiche la ligne
echo 'Quote #' $row[0] . ': "' $row[1] . '"';
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Quote #42: "La réponse est ..."

Notes

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi



mssql_field_length

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_lengthLit la longueur d'un champ MS SQL Server

Description

int mssql_field_length ( resource $result [, int $offset = -1 ] )

Retourne la longueur d'un champ numéro offset dans le résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient de l'appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

La longueur du champ spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_length()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Envoi d'une requête Select
$query mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Affichage de la taille du champ et sa taille
echo 'Le champ \'age\' a la taille de ' mssql_field_length($query1);

// Free the query result
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le champ 'age' a la taille de 4

Notes

Note: Note pour les utilisateurs Windows

À cause d'une limitation dans l'API utilisé par PHP (MS DbLib C API), la longueur des champs VARCHAR est limitée à 255. Si vous avez besoin d'enregistrer plus de données, utilisez un champ TEXT à la place.

Voir aussi



mssql_field_name

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_nameLit le nom d'un champ MS SQL Server

Description

string mssql_field_name ( resource $result [, int $offset = -1 ] )

Retourne le nom du champ numéro offset du résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

Le nom du champ spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_name()

<?php
// Envoi une requête de type SELECT à MSSQL
$query mssql_query('SELECT [username], [name], [email] FROM [php].[dbo].[userlist]');

echo 
'Le jeu de résultat contient le(s) champ(s) suivant(s) :'PHP_EOL;

// Affiche le nom de tous les champs du jeu de résultats
for ($i 0$i mssql_num_fields($query); ++$i) {
    echo 
' - ' mssql_field_name($query$i), PHP_EOL;
}

// Libère le jeu de résultats
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le jeu de résultat contient le(s) champ(s) suivant(s) :
 - username
 - name
 - email

Voir aussi



mssql_field_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_seekFixe la position du pointeur de champ MS SQL Server

Description

bool mssql_field_seek ( resource $result , int $field_offset )

Modifie la valeur du pointeur de champ. Lors du prochain appel à mssql_fetch_field() qui ne précisera pas de numéro de champ, le champ fixé par mssql_field_seek() sera retourné.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

field_offset

La position du champ, en commençant à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_seek()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Requête de sélection sur MSSQL
$query mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Construction d'une table HTML
echo '<h3>Table structure for \'persons\'</h3>';
echo 
'<table border="1">';

// Entête 
echo '<thead>';
echo 
'<tr>';
echo 
'<td>Nom du champ</td>';
echo 
'<td>Type de données</td>';
echo 
'<td>Taille maximale</td>';
echo 
'</tr>';
echo 
'</thead>';

// Affichage de toutes les données
echo '<tbody>';

for (
$i 0$i mssql_num_fields($query); ++$i) {
    
// Lecture du champ : notez le paramètre 
    // field_offset qui n'est pas configuré. Voyez l'appel
    // à mssql_field_seek ci-dessous
    
$field mssql_fetch_field($query);

    
// Affichage de la ligne
    
echo '<tr>';
    echo 
'<td>' $field->name '</td>';
    echo 
'<td>' strtoupper($field->type) . '</td>';
    echo 
'<td>' $field->max_length '</td>';
    echo 
'</tr>';

    
// Déplacement du pointeur interne, jusqu'à la prochaine ligne
    // dans le résultat
    
mssql_field_seek($query$i 1);
}

echo 
'</tbody>';
echo 
'</table>';

// Libération du résultat
mssql_free_result($query);
?>

Voir aussi



mssql_field_type

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_typeLit le nom d'un champ MS SQL Server

Description

string mssql_field_type ( resource $result [, int $offset = -1 ] )

Retourne le type du champ numéro offset dans le résultat result.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

Le type du champ spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_type()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Envoi d'une requête MSSQL
$query mssql_query('SELECT [name] FROM [php].[dbo].[persons]');

// Affiche le type de champ et sa taille
echo '\'' mssql_field_name($query0) . '\' est de type ' 
     
strtoupper(mssql_field_type($query0)) . 
     
'(' mssql_field_length($query0) . ')';

// Libère le résultat
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

'name' est de type CHAR(50)

Voir aussi



mssql_free_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_resultLibère la mémoire des ressources MS SQL Server

Description

bool mssql_free_result ( resource $result )

mssql_free_result() n'a besoin d'être appelée que si vous vous inquiétez de l'utilisation excessive de la mémoire durant l'exécution de votre script. La mémoire sera automatiquement libérée à la fin de votre script. Vous devriez appeler mssql_free_result() avec l'identifiant de résultat en tant que paramètre et la mémoire associée sera libérée.

Liste de paramètres

result

La ressource de résultats à libérer. Ce résultat provient de l'appel à la fonction mssql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_free_result()

<?php
// Lit des données depuis une table
$query mssql_query('SELECT * FROM [php].[dbo].[persons]'$link);

// Traite le résultat ici

// Quand on a fini, on libère les ressources occupées
// avec la fonction mssql_free_result
mssql_free_result($query);
?>

Voir aussi



mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_statementLibère une commande MS SQL Server de la mémoire

Description

bool mssql_free_statement ( resource $stmt )

mssql_free_statement() n'est utile que si vous craignez de consommer trop de mémoire durant l'exécution de votre script. Toute la mémoire consommée par une commande sera libérée lorsque le script se termine. Avec la fonction mssql_free_statement(), la mémoire associée au résultat statement sera libérée.

Liste de paramètres

stmt

La ressource de la requête, obtenue avec la fonction mssql_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_free_statement()

<?php
// Crée une nouvelle commande
$stmt mssql_init('test');

// Exécute la commande ici

// Une fois terminé, nous pouvons libérer les ressources
// avec mssql_free_statement, comme ceci :
mssql_free_statement($stmt);
?>

Voir aussi

  • mssql_bind() - Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
  • mssql_execute() - Exécute une procédure stockée sur un serveur MS SQL
  • mssql_init() - Initialise une procédure stockée MS SQL Server locale ou distante
  • mssql_free_result() - Libère la mémoire des ressources MS SQL Server



mssql_get_last_message

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_get_last_messageRetourne le dernier message d'erreur du serveur

Description

string mssql_get_last_message ( void )

Lit le dernier message d'erreur du serveur MS-SQL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le dernier message d'erreur du serveur, ou une chaîne vide, si aucune message d'erreur n'a été retourné par MSSQL.

Exemples

Exemple #1 Exemple avec mssql_get_last_message()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Une requête qui échoue
$query = @mssql_query('SELECT * FROM [php].[dbo].[not-found]');

if (!
$query) {
    
// La requête a échoué, retourné un message d'erreur et nous
    // pouvons l'obtenir avec mssql_get_last_message()
    
die('Erreur MSSQL : ' mssql_get_last_message());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Erreur MSSQL : Invalid object name 'php.dbo.not-found'.

Voir aussi



mssql_guid_string

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_guid_stringConvertit le GUID binaire de 16 octets en une chaîne de caractères

Description

string mssql_guid_string ( string $binary [, bool $short_format = false ] )

Convertit un GUID binaire de 16 octets en une chaîne de caractères.

Liste de paramètres

binary

Un GUID binaire, de 16 octets.

short_format

TRUE s'il faut utiliser le format court.

Valeurs de retour

Retourne la chaîne convertie en cas de succès.

Exemples

Exemple #1 Exemple avec mssql_guid_string()

<?php
$binary 
'19555081977808608437941339997619274330352755554827939936';

var_dump(mssql_guid_string($binary));
var_dump(mssql_guid_string($binarytrue));
?>

L'exemple ci-dessus va afficher :

string(36) "35353931-3035-3138-3937-373830383630"
string(32) "31393535353038313937373830383630"



mssql_init

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_initInitialise une procédure stockée MS SQL Server locale ou distante

Description

resource mssql_init ( string $sp_name [, resource $link_identifier ] )

Initialise une procédure stockée MS SQL Server locale ou distante.

Liste de paramètres

sp_name

Le nom d'une procédure stocké, comme ownew.sp_name ou otherdb.owner.sp_name.

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect().

Valeurs de retour

Retourne un identifiant de ressource de requête, à utiliser lors des appels aux fonctions mssql_bind() et mssql_execute(), ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_init()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Création d'une nouvelle commande
$stmt mssql_init('StatementTest'$link);

// Liaisons des valeurs ici

// Une fois que les valerus sont liées, nous pouvons exécuter
// notre commande avec mssql_execute:
mssql_execute($stmt);

// Et nous pouvons tout libérer ainsi : 
mssql_free_statement($stmt);
?>

Voir aussi



mssql_min_error_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_error_severityFixe le niveau de sévérité des erreurs MS SQL Server

Description

void mssql_min_error_severity ( int $severity )

Configure le minimum de sévérité.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mssql_min_error_severity()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Configure le minimum de sévérité pour ne pas inclure les 
// erreurs de syntaxe en utilisant une valeur supérieure à 1
mssql_min_error_severity(1);

// Envoi d'une requête qui cause des erreurs SQL
$query mssql_query('SELECT `syntax`, `error` FROM `MSSQL`');

if(!
$query) {
    
// Gestionnaire personnalisé d'erreurs...
}
?>



mssql_min_message_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_message_severityFixe le niveau de sévérité des messages d'erreur MS SQL Server

Description

void mssql_min_message_severity ( int $severity )

Fixe le niveau de sévérité des messages d'erreurs MS SQL Server.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mssql_min_message_severity()

<?php
// Connexion à MSSQL
mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');

// Configure la sévérité minimum des messages à 17,
// ce qui masque les messages produits par l'API sous-jacente
// API lorsqu'on sélectionne une base inexistante
mssql_min_message_severity(17);

// Sélectionne une base inexistante
mssql_select_db('THIS_DATABASE_DOES_NOT_EXISTS');
?>

L'exemple ci-dessus va afficher :

mssql_select_db(): Unable to select database:  THIS_DATABASE_DOES_NOT_EXISTS



mssql_next_result

(PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)

mssql_next_resultDéplace le pointeur interne MS SQL Server au résultat suivant

Description

bool mssql_next_result ( resource $result_id )

Lorsque vous envoyez plus d'une commande SQL au serveur, ou que vous exécutez une procédure stockée avec de multiples résultats, cela va conduire le serveur à retourner plusieurs jeux de lignes. mssql_next_result() va vérifier l'existence de plusieurs résultats disponibles sur le serveur. Si un autre jeu de résultat existe, mssql_next_result() va détruire de résultat précédent et préparer la lecture dans les nouvelles lignes.

Liste de paramètres

result_id

Une ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne TRUE si un jeu de résultats additionnel est disponible, ou FALSE sinon.

Exemples

Exemple #1 Exemple avec mssql_next_result()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Envoie d'une requête à MSSQL
$sql 'SELECT [name], [age] FROM [php].[dbo].[persons]';
$query mssql_query($sql$link);

// Itération dans les lignes lues
do {
    while (
$row mssql_fetch_row($query))
    {
        
// Gestion des lignes
    
}
} while (
mssql_next_result($query));

// Nettoyage
mssql_free_result($query);
mssql_close($link);
?>



mssql_num_fields

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_fieldsRetourne le nombre de champs dans un résultat MS SQL Server

Description

int mssql_num_fields ( resource $result )

mssql_num_fields() retourne le nombre de champs dans un résultat.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec mssql_num_fields()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Sélection de données dans une table
$data mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Construction d'une table HTML
echo '<table border="1">';

$header false;

// Itération dans les résultats
while ($row mssql_fetch_array($data)) {
    
// Construction de l'entête
    
if (!$header) {
        echo 
'<thead>';
        echo 
'<tr>';

        for (
$i 1; ($i 1) <= mssql_num_fields($data); ++$i) {
            echo 
'<td>' ucfirst($row[$i]) . '</td>';
        }

        echo 
'</tr>';
        echo 
'</thead>';
        echo 
'<tbody>';

        
$header true;
    }

    
// Construction de la ligne
    
echo '<tr>';

    foreach (
$row as $value) {
        echo 
'<td>' $value '</td>';
    }

    echo 
'</tr>';
}

// Fermeture de la table
echo '</tbody>';
echo 
'</table>';

// Nettoyage
mssql_free_result($data);
mssql_close($link);
?>

Voir aussi



mssql_num_rows

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_rowsRetourne le nombre de lignes dans un résultat MS SQL

Description

int mssql_num_rows ( resource $result )

mssql_num_rows() retourne le nombre de lignes dans le résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec mssql_num_rows()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// Sélections de toutes les lignes d'une table
$query mssql_query('SELECT * FROM [php].[dbo].[persons]');

echo 
'Nombre de lignes dans la table : ' mssql_num_rows($query);

// Nettoyage
mssql_free_result($query);
?>

Voir aussi



mssql_pconnect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_pconnectOuvre une connexion persistante à un serveur MS SQL

Description

resource mssql_pconnect ([ string $servername [, string $username [, string $password [, bool $new_link = false ]]]] )

mssql_pconnect() se comporte comme mssql_connect() mais avec deux différences :

Premièrement, lors de la connexion, la fonction va commencer par rechercher un lien persistant déjà ouvert avec le même hôte, le même nom d'utilisateur, username et le même mot de passe password. Si un tel lien est trouvé, cet identifiant sera retourné, au lieu d'ouvrir une autre connexion.

Deuxièmement, la connexion au serveur SQL ne sera pas fermée à la fin du script, mais restera ouverte, pour d'autres utilisations ultérieures (mssql_close() ne fermera pas un lien établi avec mssql_pconnect()).

C'est pourquoi ce type de lien est dit 'persistant'.

Liste de paramètres

servername

Le serveur MS SQL. Il peut également contenir un numéro de port, e.g. hostname:port.

username

Le nom d'utilisateur

password

Le mot de passe

new_link

Si un deuxième appel est fait à mssql_pconnect() avec les mêmes arguments, un nouveau lien ne sera pas retourné, mais le lien déjà ouvert sera utilisé. Ce paramètre modifie ce comportement et fait que la fonction mssql_pconnect() ouvre toujours un nouveau lien, même si la fonction mssql_pconnect() a été appelée avant, avec les mêmes paramètres.

Valeurs de retour

Retourne un identifiant de lien positif MS SQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 mssql_pconnect() et le paramètre new_link

<?php
// Connexion à MSSQL et sélection de la base de données
$link1 mssql_pconnect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link1);

// Création d'une nouvelle connexion
$link2 mssql_pconnect('MANGO\SQLEXPRESS''sa''phpfi'true);
mssql_select_db('random'$link2);
?>



mssql_query

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_queryEnvoie une requête SQL au serveur MS SQL

Description

mixed mssql_query ( string $query [, resource $link_identifier [, int $batch_size = 0 ]] )

mssql_query() envoie la requête au serveur courant, associé à l'identifiant link_identifier (ou la base par défaut, s'il est omis).

Liste de paramètres

query

Une requête SQL.

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Si l'identifiant du lien n'est pas spécifié, le dernier lien ouvert est utilisé. Si aucun lien n'est ouvert, la fonction tente d'établir un lien grâce à la fonction mssql_connect() et l'utilise.

batch_size

Le nombre d'enregistrements dans le buffer.

Valeurs de retour

Retourne une ressource de résultats MS SQL en cas de succès, TRUE si aucun ligne n'est retournée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_query()

<?php
// Connexion à MSSQL
$link mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');

if (!
$link || !mssql_select_db('php'$link)) {
    die(
'Impossible de se connecter à la base!');
}

// Exécution d'une requête simple, pour obtenir la 
// version de MSSQL et l'afficher.
$version mssql_query('SELECT @@VERSION');
$row mssql_fetch_array($version);

echo 
$row[0];

// Netoyage
mssql_free_result($version);
?>

Notes

Note:

Si la requête retourne plusieurs résultats, alors, il est nécessaire de tous les récupérer via la fonction mssql_next_result(), de libérer les résultats via la fonction mssql_free_result() avant d'exécuter la prochaine requête.

Voir aussi



mssql_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_resultLit les données d'un résultat

Description

string mssql_result ( resource $result , int $row , mixed $field )

mssql_result() retourne la valeur de la colonne, à la ligne donnée, dans le résultat MS SQL.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

row

Le numéro de la ligne.

field

Peut être la position du champ, le nom du champ ou le nom de la table, suivi d'un point, suivi du nom du champ ("tablename.fieldname"). Si l'on a fourni un alias au nom de la colonne ("select foo as bar from..."), cet alias sera utilisé à la place du nom de la colonne.

Note:

Le fait de spécifier la position numérique pour l'argument field est plus rapide que de spécifier un nom de champ ou la forme tablename.fieldname.

Valeurs de retour

Retourne le contenu de la cellule spécifié.

Exemples

Exemple #1 Exemple avec mssql_result()

<?php
// Envoie une requête SELECT à MSSQL
$query mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des résultats
if (!mssql_num_rows($query)) {
    echo 
'Pas de lignes trouvées';
} else {
    for (
$i 0$i mssql_num_rows($query); ++$i) {
        echo 
mssql_result($query$i'username'), PHP_EOL;
    }
}

// Libération du résultat
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Kalle
Felipe
Emil
Ross

Exemple #2 Autre approche, plus rapide

<?php
// Envoie une requête SELECT à MSSQL
$query mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des résultats
if (!mssql_num_rows($query)) {
    echo 
'Pas de lignes trouvées';
} else {
    while (
$row mssql_fetch_array($query)) {
        echo 
$row['username'], PHP_EOL;
    }
}

// Libération du résultat
mssql_free_result($query);
?>

Notes

Note:

Lorsque vous travaillez sur des résultats de grande taille, il vaut mieux utiliser les fonctions qui récupèrent toute une ligne (voir ci-après). Comme ces fonctions lisent toutes les valeurs en une passe, elles sont extrêmement plus rapide que mssql_result().

Voir aussi

Alternatives recommandées :



mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_rows_affectedRetourne le nombre de lignes affectées par une requête MS SQL Server

Description

int mssql_rows_affected ( resource $link_identifier )

Retourne le nombre de lignes affectées par la dernière requête en écriture.

Liste de paramètres

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Valeurs de retour

Retourne le nombre de lignes affectées par la dernière requête en écriture.

Exemples

Exemple #1 Exemle avec mssql_rows_affected()

<?php
// Efface toutes les lignes de la table
mssql_query('TRUNCATE TABLE [php].[dbo].[persons]');

echo 
'Effacement de ' mssql_rows_affected($link) . ' row(s)';
?>



mssql_select_db

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_select_dbSélectionne la base de données MS SQL

Description

bool mssql_select_db ( string $database_name [, resource $link_identifier ] )

mssql_select_db() sélectionne la base de données active.

Tous les appels à mssql_query() seront faits dans cette base.

Liste de paramètres

database_name

Le nom de la base de données.

Pour protéger le nom de la base de données qui contient des espaces, des tirets ("-") ou tous autres caractères spéciaux, le nom de la base de données doit être entouré de crochets ([]), comme montré dans l'exemple ci-dessous. Cette technique peut également être appliquée lors de la sélection d'un nom de base de données qui est aussi un mot réservé (comme primary).

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Si aucun identifiant de lien n'est spécifié, le dernier lien ouvert sera utilisé. Si aucun lien n'est ouvert, la fonction tentera d'établir un lien en utilisant la fonction mssql_connect() et l'utilisera.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_select_db()

<?php
// Crée une connexion à MSSQL
$link mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');

// Selectionne la base 'php'
mssql_select_db('php'$link)
?>

Exemple #2 Echappement du nom de la base de données avec des crochets

<?php
// Création d'un lien vers MSSQL
$link mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');

// Selectionne la base de données 'my.database-name'
mssql_select_db('[my.database-name]'$link);
?>

Voir aussi


Sommaire




MySQL


Introduction

Ces fonctions vous permettent d'accéder aux bases de données MySQL. Le site officiel de cette base est » http://www.mysql.com/.

La documentation de MySQL est disponible à » http://dev.mysql.com/doc/.

Pour une présentation générale de la base de données MySQL, voyez Introduction.



Installation/Configuration

Sommaire


Pré-requis

Afin de pouvoir les utiliser, vous devez compiler PHP avec le support MySQL.



Installation

Pour compiler, utilisez tout simplement l'option de configuration --with-mysql[=DIR] où le paramètre optionnel [DIR] pointe vers le dossier d'installation de MySQL.

Bien que cette extension MySQL soit compatible avec MySQL 4.1.0 et supérieur, elle ne supporte pas les fonctionnalités supplémentaires que cette version fournit. Pour cela, utilisez plutôt l'extension MySQLi.

Si vous voulez installer l'extension mysqli en même temps que l'extension mysql, vous devez utiliser la même bibliothèque client afin d'éviter les conflits.

Installation sur les systèmes Linux

PHP 4

L'option --with-mysql est activée par défaut. Ce comportement par défaut peut être désactivé avec l'option de configuration --without-mysql . Si MySQL est activé sans spécifier le chemin vers le dossier d'installation de MySQL, PHP utilisera la bibliothèque cliente MySQL fournie dans la distribution PHP.

Les utilisateurs qui se servent d'autres applications qui utilisent MySQL (par exemple, auth-mysql) ne doivent pas utiliser la bibliothèque intégrée, mais plutôt spécifier --with-mysql=/path/to/mysql . Cela va forcer PHP à utiliser les bibliothèques clientes installées par MySQL, et évitera les conflits.

PHP 5.0.x, 5.1.x, 5.2.x

MySQL n'est plus activé par défaut, et la bibliothèque MySQL n'est plus fournie avec PHP. Lisez la FAQ pour savoir pourquoi. Utilisez l'option de configuration --with-mysql[=DIR] pour inclure le support MySQL. Vous pouvez télécharger les en-têtes et les bibliothèques depuis le site officiel de » MySQL.

PHP 5.3.0+

Dans PHP 5.3.0 et supérieur, les extensions relatives à MySQL utilisent MySQL Native Driver par défaut. Ceci signifie que la MySQL Client Library (libmysql) n'est plus requise pour se connecter à une base de données MySQL. Les extensions mysql, mysqli, et PHP_PDO_MYSQL sont toutes activées par défaut dans PHP 5.3.0+, et toutes utilisent MySQL Native Driver par défaut. Dans chaque cas, aucune manipulation supplémentaire n'est requise pour utiliser ces extensions, vous pouvez par contre régler des paramètres dans php.ini si vous le désirez.

Installation sur les systèmes Windows

PHP 4

L'extension MySQL est directement fournie dans la distribution PHP.

PHP 5.0.x, 5.1.x, 5.2.x

MySQL n'est plus activé par défaut, ainsi, la bibliothèque php_mysql.dll doit être activée dans le php.ini. De plus, PHP doit avoir accès à la bibliothèque cliente MySQL. Un fichier nommé libmysql.dll est inclus dans la distribution de PHP pour Windows et pour que PHP puisse discuter avec MySQL, ce fichier doit être disponible dans le PATH du système Windows. Lisez la FAQ intitulée "Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?" pour plus d'informations sur la réalisation de cela. Néanmoins, le fait de copier le fichier libmysql.dll dans le répertoire système de Windows fonctionne (car le dossier système est par défaut dans le PATH système), mais cela n'est pas du tout recommandé.

Pour activer n'importe quelle extension PHP (comme php_mysql.dll), la directive PHP extension_dir doit être définie et doit pointer vers le dossier où sont stockées les extensions PHP. Lisez également le manuel d'installation sous Windows. Par exemple, voici une valeur possible pour la directive extension_dir en PHP 5 : c:\php\ext

Note:

Si lorsque vous démarrez le serveur web une erreur similaire à ceci apparaît : "Unable to load dynamic library './php_mysql.dll'", c'est parce que php_mysql.dll et/ou libmysql.dll n'ont pû être trouvés par le système.

PHP 5.3.0+

Veuillez lire ces notes pour l'installation du support de MySQL avec PHP 5.3.0 et supérieur.

Notes sur l'installation de MySQL

Avertissement

Des crashes et des problèmes de démarrage de PHP peuvent être rencontrés lorsque vous chargez cette fonction en même temps que l'extension recode. Voyez l'extension recode pour plus de détails.

Note:

Si vous avez besoin d'autres jeux de caractères que celui par défaut (latin), vous devez installer la bibliothèque externe libmysql (non fournie), compilée avec ce jeu de caractères.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MySQL
Nom Défaut Modifiable Historique
mysql.allow_persistent "1" PHP_INI_SYSTEM  
mysql.max_persistent "-1" PHP_INI_SYSTEM  
mysql.max_links "-1" PHP_INI_SYSTEM  
mysql.trace_mode "Off" PHP_INI_ALL Disponible depuis PHP 4.3.0.
mysql.default_port NULL PHP_INI_ALL  
mysql.default_socket NULL PHP_INI_ALL Disponible depuis PHP 4.0.1.
mysql.default_host NULL PHP_INI_ALL  
mysql.default_user NULL PHP_INI_ALL  
mysql.default_password NULL PHP_INI_ALL  
mysql.connect_timeout "60" PHP_INI_ALL PHP_INI_SYSTEM en PHP <= 4.3.2. Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysql.allow_persistent bool

Active ou désactive les connexions persistantes à la base de données MySQL.

mysql.max_persistent entier

Le nombre maximum de connexions persistantes aux bases de données MySQL, par processus.

Le nombre maximum de connexions aux bases de données MySQL, y compris les connexions persistantes, par processus.

mysql.trace_mode boolean

Mode trace. Lorsque mysql.trace_mode est activée, des alertes pour scans de table ou d'index, pour oubli de libération des ressources ou erreurs SQL seront affichées. Cette option a été introduite en PHP 4.3.0)

mysql.default_port string

Le numéro de port TCP par défaut, utilisé pour se connecter à la base de données, lorsque aucun port n'est spécifié. Si aucun port par défaut n'est spécifié, le port sera alors obtenu en lisant la variable d'environnement MYSQL_TCP_PORT, l'entrée mysql-tcp dans le fichier /etc/services ou encore la constante de compilation MYSQL_PORT, dans cet ordre. Windows n'utilisera aussi que la constante MYSQL_PORT.

mysql.default_socket string

Le nom par défaut de la socket lorsque l'on se connecte au serveur local, si aucune autre socket n'est spécifiée.

mysql.default_host string

Adresse par défaut du serveur, à utiliser lors de la connexion à un serveur MySQL, si aucun hôte n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.default_user string

Utilisateur par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun utilisateur n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.default_password string

Mot de passe par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun mot de passe n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.connect_timeout entier

Durée maximale d'attente de la réponse d'un serveur, en secondes. Sous Linux, cette durée sert aussi lors de l'échange du premier avec le serveur.



Types de ressources

Il y a deux types de ressources utilisées par le module MySQL. Le premier est un identifiant de connexion au serveur, appelé mysql link, et le second est un identifiant de résultat de requête, appelé mysql result.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Depuis PHP 4.3.0, il est possible de spécifier des options de client supplémentaires pour les fonctions mysql_connect() et mysql_pconnect(). Ces constantes sont les suivantes :

Constantes client MySQL
Constante Description
MYSQL_CLIENT_COMPRESS Utilise le protocole avec compression
MYSQL_CLIENT_IGNORE_SPACE Autorise les espaces après les noms de fonction
MYSQL_CLIENT_INTERACTIVE Autorise interactive_timeout secondes d'inactivité sur la connexion (au lieu de wait_timeout ).
MYSQL_CLIENT_SSL Utilisation du chiffrement SSL. Cette constante n'est disponible qu'à partir de la version 4.x et plus récente de la bibliothèque cliente MySQL. La version 3.23.x est fournis avec PHP 4 ainsi qu'avec les binaires pour windows de PHP 5.

La fonction mysql_fetch_array() utilise une constante pour spécifier les différents types de formats de réponse. Les constantes suivantes sont utilisées :

Constantes de mysql_fetch_array()
Constante Description
MYSQL_ASSOC Les colonnes sont retournées dans un tableau, dont les index sont les noms de colonnes.
MYSQL_BOTH Les colonnes sont retournées dans un tableau ayant une indexation numérique et un système d'index correspondant au nom des colonnes.
MYSQL_NUM Les colonnes sont retournées dans un tableau avec un index numérique. Les colonnes sont numérotées dans leur ordre d'apparition. L'index commence à zéro.



Exemples

Sommaire


Cet exemple simple montre comment se connecter, exécuter une requête, lire les informations obtenues et se déconnecter d'une base de données MySQL.

Exemple #1 Exemple de présentation de l'extension MySQL

<?php
// Connexion et sélection de la base
$link mysql_connect('mysql_host''mysql_user''mysql_password')
    or die(
'Impossible de se connecter : ' mysql_error());
echo 
'Connected successfully';
mysql_select_db('my_database') or die('Impossible de sélectionner la base de données');

// Exécution des requêtes SQL
$query 'SELECT * FROM my_table';
$result mysql_query($query) or die('Échec de la requête : ' mysql_error());

// Affichage des résultats en HTML
echo "<table>\n";
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
    echo 
"\t<tr>\n";
    foreach (
$line as $col_value) {
        echo 
"\t\t<td>$col_value</td>\n";
    }
    echo 
"\t</tr>\n";
}
echo 
"</table>\n";

// Libération des résultats
mysql_free_result($result);

// Fermeture de la connexion
mysql_close($link);
?>




Fonctions MySQL

Notes

Note:

La plupart des fonctions MySQL acceptent link_identifier comme le dernier paramètre optionnel. S'il n'est pas fourni, la dernière connexion ouverte est utilisée. Si elle n'existe pas, une connexion est essayée d'être établie avec les paramètres par défaut définis dans php.ini. Si les fonctions ne réussissent pas, elles retournent FALSE.


mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rows Retourne le nombre de lignes affectées lors de la dernière opération MySQL

Description

int mysql_affected_rows ([ resource $link_identifier ] )

Retourne le nombre de lignes affectées lors de la dernière requête INSERT, UPDATE, REPLACE ou DELETE avec link_identifier.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le nombre de lignes affectées en cas de succès et -1 si la dernière requête a échoué.

Si la dernière requête était un DELETE sans clause WHERE, tous les enregistrements ont été effacés, mais cette fonction va retourner 0 avec les versions de MySQL antérieures à 4.1.2.

Lorsque vous utilisez UPDATE, MySQL ne mettra pas à jour les colonnes si la nouvelle valeur est identique à l'ancienne. Il est donc possible que mysql_affected_rows() ne représente pas forcément le nombre de lignes correspondantes mais plutôt le nombre de lignes qui ont été réellement affectées par la requête.

La requête REPLACE commence par effacer les enregistrements possédant la même clé primaire et ensuite, insert les nouveaux enregistrements. Cette fonction retourne le nombre d'enregistrements effacés ainsi que le nombre d'enregistrements insérés.

Exemples

Exemple #1 Exemple avec mysql_affected_rows()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
     die(
'Impossible de se connecter : ' mysql_error());
}
mysql_select_db('mydb');

/* Ceci devrait retourner le nombre correct de lignes effacées */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Lignes effacées : %d\n"mysql_affected_rows());

/* avec la clause where qui n'est jamais vraie, on devrait obtenir 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Lignes effacées : %d\n"mysql_affected_rows());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes effacées : 10
Lignes effacées : 0

Exemple #2 Exemple avec mysql_affected_rows() en utilisant les transactions

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
     die(
'Impossible de se connecter : ' mysql_error());
}
mysql_select_db('mydb');

/* Mise à jour des lignes */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Lignes modifiées : %d\n"mysql_affected_rows());
mysql_query("COMMIT");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes modifiées : 10

Notes

Note: Transactions

Si vous utilisez des transactions, vous devez appeler mysql_affected_rows() après votre requête INSERT, UPDATE ou DELETE et non après le COMMIT.

Note: Requêtes SELECT

Pour obtenir le nombre de lignes retournées par un SELECT, il est possible d'utiliser mysql_num_rows().

Note: Clés étrangères en cascade

mysql_affected_rows() ne compte pas les enregistrement affectés implicitement par un ON DELETE CASCADE et/ou un ON UPDATE CASCADE, concernant les clés étrangères.

Voir aussi

  • mysql_num_rows() - Retourne le nombre de lignes d'un résultat MySQL
  • mysql_info() - Lit des informations à propos de la dernière requête MySQL



mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding Retourne le nom du jeu de caractères utilisé par le client MySQL

Description

string mysql_client_encoding ([ resource $link_identifier ] )

Retourne la variable character_set de MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le nom du jeu de caractères par défaut pour la connexion courante.

Exemples

Exemple #1 Exemple avec mysql_client_encoding()

<?php
$link    
mysql_connect('localhost''mysql_user''mysql_password');
$charset mysql_client_encoding($link);

echo 
"Le jeu de caractères actuel est : $charset\n";
?>

L'exemple ci-dessus va afficher :

Le jeu de caractères actuel est : latin1.

Voir aussi



mysql_close

(PHP 4, PHP 5)

mysql_closeFerme la connexion MySQL

Description

bool mysql_close ([ resource $link_identifier ] )

mysql_close() ferme la connexion non persistante au serveur MySQL associée à l'identifiant spécifié. Si link_identifier n'est pas spécifié, cette commande s'applique à la dernière connexion ouverte.

L'utilisation de mysql_close() n'est pas habituellement nécessaire, puisque les connexions non persistantes ouverts sont automatiquement fermées à la fin l'exécution du script. Voyez aussi libérer des ressources.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_close()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Connexion impossible : ' mysql_error());
}
echo 
'Connexion réussie';
mysql_close($link);
?>

L'exemple ci-dessus va afficher :

Connexion réussie

Notes

Note:

mysql_close() ne fermera pas les connexions persistantes créées par mysql_pconnect().

Voir aussi



mysql_connect

(PHP 4, PHP 5)

mysql_connectOuvre une connexion à un serveur MySQL

Description

resource mysql_connect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0 ]]]]] )

Ouvre ou réutilise une connexion à un serveur MySQL.

Liste de paramètres

server

Le serveur MySQL. Il peut aussi inclure le numéro de port. C'est-à-dire "hostname:port" ou le chemin vers le socket local, c'est-à-dire ":/path/to/socket" pour localhost.

Si la directive PHP mysql.default_host n'est pas définie (défaut), alors la valeur par défaut est "localhost:3306". En safe mode SQL, ce paramètre est ignoré et la valeur "localhost:3306" est toujours utilisée.

username

Le nom d'utilisateur. La valeur par défaut est définie par l'option mysql.default_user. En safe mode SQL, ce paramètre est ignoré et le nom de l'utilisateur propriétaire du processus serveur est utilisé.

password

Le mot de passe. La valeur par défaut est définie par l'option mysql.default_password. En safe mode SQL, ce paramètre est ignoré et un mot de passe vide est utilisé.

new_link

Si un deuxième appel est fait à mysql_connect() avec les mêmes arguments, aucune nouvelle connexion ne sera établie, mais plutôt, l'identifiant de la connexion de la connexion déjà ouverte sera retourné. Le paramètre new_link modifie ce comportement et permet à mysql_connect() de toujours ouvrir une nouvelle connexion, même si mysql_connect() a été appelée avant avec les mêmes paramètres. En safe mode SQL, ce paramètre est ignoré.

client_flags

Le paramètre client_flags peut être une combinaison des constantes suivantes : 128 (active le gestionnaire LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE. Lisez la section à propos de Constantes client MySQL pour plus d'informations. En safe mode SQL, ce paramètre est ignoré.

Valeurs de retour

Retourne l'identifiant de connexion MySQL en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 Ajout du paramètre client_flags.
4.2.0 Ajout du paramètre new_link.

Exemples

Exemple #1 Exemple avec mysql_connect()

<?php
$link 
mysql_connect("localhost""mysql_user""mysql_password")
    or die(
"Impossible de se connecter : " mysql_error());
echo 
'Connexion réussie';
mysql_close($link);
?>

Exemple #2 Exemple avec mysql_connect() en utilisant la syntaxe hostname:port

<?php
// on se connecte à example.com et au port 3307
$link mysql_connect('example.com:3307''mysql_user''mysql_password');
if (!
$link) {
    die(
'Connexion impossible : ' mysql_error());
}
echo 
'Connecté correctement';
mysql_close($link);

// on se connect à localhost au port 3307
$link mysql_connect('127.0.0.1:3307''mysql_user''mysql_password');
if (!
$link) {
    die(
'Connexion impossible : ' mysql_error());
}
echo 
'Connecté correctement';
mysql_close($link);
?>

Exemple #3 Exemple avec mysql_connect() en utilisant la syntaxe ":/path/to/socket"

<?php
// on se connect à localhost et à l'interface de connexion, par exemple /tmp/mysql.sock

//variante 1 : oublie de localhost
$link mysql_connect(':/tmp/mysql''mysql_user''mysql_password');
if (!
$link) {
    die(
'Connexion impossible : ' mysql_error());
}
echo 
'Connecté correctement';
mysql_close($link);


// variante 2 : avec localhost
$link mysql_connect('localhost:/tmp/mysql.sock''mysql_user''mysql_password');
if (!
$link) {
    die(
'Connexion impossible : ' mysql_error());
}
echo 
'Connecté correctement';
mysql_close($link);
?>

Notes

Note:

Toutes les fois que vous spécifiez "localhost" ou "localhost:port" en tant que serveur, le bibliothèque client MySQL surchargera cela et essaiera de se connecter à un socket local (nommé pipe sous Windows). Si vous souhaitez utiliser TCP/IP, utilisez "127.0.0.1" au lieu de "localhost". Si la bibliothèque client MySQL essaie de se connecter au mauvais socket local, vous devriez spécifier le chemin d'accès correct à dans votre configurations PHP et laisser le champ du serveur vide.

Note:

La connexion au serveur sera fermée aussitôt que l'exécution du script se termine, à moins qu'elle soit fermée avant en appelant explicitement mysql_close().

Note:

Vous pouvez supprimer les messages d'erreur en cas d'échec en faisant précéder le nom de la fonction par @.

Note:

L'erreur "Can't create TCP/IP socket (10106)" signifie habituellement que la directive de configuration variables_order ne contient pas le caractère E. Sous Windows, si la variable d'environnement n'est pas copiée, la variable d'environnement SYSTEMROOT ne sera pas disponible et PHP aura des problèmes pour charger Winsock.

Voir aussi



mysql_create_db

(PHP 4, PHP 5)

mysql_create_dbCrée une base de données MySQL

Description

bool mysql_create_db ( string $database_name [, resource $link_identifier ] )

mysql_create_db() tente de créer une nouvelle base de données sur le serveur associé avec l'identifiant de connexion spécifié.

Liste de paramètres

database_name

Le nom de la base de données à être créée.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple alternative avec mysql_create_db()

La fonction mysql_create_db() est obsolète. Il est préférable d'utiliser la fonction mysql_query(), avec une commande SQL "CREATE DATABASE".

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Connexion impossible : ' mysql_error());
}

$sql 'CREATE DATABASE my_db';
if (
mysql_query($sql$link)) {
    echo 
"Base de données créée correctement\n";
} else {
    echo 
'Erreur lors de la création de la base de données : ' mysql_error() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Base de données créée correctement

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_createdb()

Note:

Cette fonction n'est pas disponible si l'extension MySQL a été compilée avec une bibliothèque client MySQL 4.x.

Voir aussi



mysql_data_seek

(PHP 4, PHP 5)

mysql_data_seekDéplace le pointeur interne de résultat MySQL

Description

bool mysql_data_seek ( resource $result , int $row_number )

mysql_data_seek() déplace le pointeur interne de résultat, dans le résultat associé à l'identifiant de résultat result_identifier. Il le fait pointer à la ligne row_number. Le prochain appel à une fonction MySQL de récupération de données, comme la fonction mysql_fetch_assoc() retournera cette ligne.

row_number commence à 0. row_number doit être une valeur qui va de 0 à mysql_num_rows() - 1. Cependant, si le résultat est vide, un row_number de 0 échouera avec une erreur E_WARNING et mysql_data_seek() retournera FALSE.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

row_number

La position de la ligne désirée pour le nouveau pointeur de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_data_seek()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Connexion impossible : ' mysql_error());
}
$db_selected mysql_select_db('sample_db');
if (!
$db_selected) {
    die(
'Sélection de base de données impossible : ' mysql_error());
}
$query 'SELECT nom_famille, prenom FROM amis';
$result mysql_query($query);
if (!
$result) {
    die(
'Requête échec : ' mysql_error());
}
/* Récupération des lignes en ordre inverse */
for ($i mysql_num_rows($result) - 1$i >= 0$i--) {
    if (!
mysql_data_seek($result$i)) {
        echo 
"Ne peut pointer vers la ligne $i : " mysql_error() . "\n";
        continue;
    }

    if (!(
$row mysql_fetch_assoc($result))) {
        continue;
    }

    echo 
$row['nom_famille'] . ' ' $row['prenom'] . "<br />\n";
}

mysql_free_result($result);
?>

Notes

Note:

La fonction mysql_data_seek() peut être utilisée en conjonction avec mysql_query(), mais pas avec la fonction mysql_unbuffered_query().

Voir aussi



mysql_db_name

(PHP 4, PHP 5)

mysql_db_nameLit les noms des bases de données

Description

string mysql_db_name ( resource $result , int $row [, mixed $field ] )

Récupère le nom de base de données à l'appel de mysql_list_dbs().

Liste de paramètres

result

Le pointeur de résultat d'un appel de mysql_list_dbs().

row

L'index à l'intérieur du jeu de résultats.

field

Le nom du champ.

Valeurs de retour

Retourne le nom de base de données en cas de succès et FALSE en cas d'échec. Si FALSE est retourné, utilisez mysql_error() pour déterminer la nature de l'erreur.

Exemples

Exemple #1 Exemple mysql_db_name()

<?php
error_reporting
(E_ALL);

$link mysql_connect('dbhost''username''password');
$db_list mysql_list_dbs($link);

$i 0;
$cnt mysql_num_rows($db_list);
while (
$i $cnt) {
    echo 
mysql_db_name($db_list$i) . "\n";
    
$i++;
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_dbname()

Voir aussi



mysql_db_query

(PHP 4, PHP 5)

mysql_db_queryEnvoie une requête MySQL à un serveur MySQL

Description

resource mysql_db_query ( string $database , string $query [, resource $link_identifier ] )

mysql_db_query() sélectionne une base de données et exécute une requête sur celle-ci.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

database

Le nom de la base de données qui sera sélectionnée.

query

La requête MySQL.

Les données contenues dans la requête doivent être proprement échappées.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une ressource de résultat positive MySQL à partir de la requête ou FALSE en cas d'erreur. Cette fonction retourne aussi TRUE/FALSE pour les requêtes INSERT/UPDATE/DELETE pour indiquer une réussite ou un échec.

Historique

Version Description
5.3.0 Cette fonction lance maintenant une alerte de type E_DEPRECATED.
4.0.6 Cette fonction est obsolète depuis PHP 4.0.6. N'utilisez pas cette fonction. Utilisez mysql_select_db() et mysql_query() à la place.

Exemples

Exemple #1 Exemple alternatif avec mysql_db_query()

<?php

if (!$link mysql_connect('mysql_host''mysql_user''mysql_password')) {
    echo 
'Connexion impossible à mysql';
    exit;
}

if (!
mysql_select_db('mysql_dbname'$link)) {
    echo 
'Sélection de base de données impossible';
    exit;
}

$sql    'SELECT foo FROM bar WHERE id = 42';
$result mysql_query($sql$link);

if (!
$result) {
    echo 
"Erreur DB, impossible d'effectuer une requête\n";
    echo 
'Erreur MySQL : ' mysql_error();
    exit;
}

while (
$row mysql_fetch_assoc($result)) {
    echo 
$row['foo'];
}

mysql_free_result($result);

?>

Notes

Note:

Soyez avertis que cette fonction ne restaure pas la base de données qui était utilisée initialement. En d'autres termes, vous ne pouvez utiliser cette fonction pour exécuter temporairement une requête SQL dans une autre base de données, il vous faudra sélectionner manuellement la bonne base à nouveau. Il est fortement recommandé d'utiliser la syntaxe SQL database.table ou mysql_select_db() au lieu de cette fonction.

Voir aussi



mysql_drop_db

(PHP 4, PHP 5)

mysql_drop_dbEfface une base de données MySQL

Description

bool mysql_drop_db ( string $database_name [, resource $link_identifier ] )

mysql_drop_db() essaie d'effacer la base de données database_name complète sur le serveur associé à la ressource de connexion link_identifier. La fonction mysql_drop_db() est obsolète. Il est préférable d'utiliser mysql_query() avec la requête DROP DATABASE à la place.

Liste de paramètres

database_name

Le nom de la base de données à effacer.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_drop_db()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
die(
'Impossible de se connecter : ' mysql_error());
}

$sql 'DROP DATABASE my_db';
if (
mysql_query($sql$link)) {
echo 
"La base de données my_db a été effacée avec succès.\n";
} else {
echo 
'Erreur lors de l\'effacement de la base : ' mysql_error() . "\n";
}
?>

Notes

Avertissement

Cette fonction ne sera pas disponible si vous avez compilé MySQL avec la bibliothèque cliente MySQL 4.x.

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_dropdb()

Voir aussi



mysql_errno

(PHP 4, PHP 5)

mysql_errnoRetourne le numéro d'erreur de la dernière commande MySQL

Description

int mysql_errno ([ resource $link_identifier ] )

Retourne le numéro d'erreur de la dernière commande MySQL.

Les erreurs qui sont remontées depuis le serveur MySQL ne sont plus des alertes. À la place, il faut utiliser mysql_errno() pour obtenir le numéro d'erreur. Notez que cette fonction retourne uniquement le code erreur depuis la dernière fonction MySQL exécutée (n'incluant pas les fonctions mysql_error() et mysql_errno()), donc, si vous voulez l'utiliser, assurez-vous de récupérer la valeur avant d'appeler une autre fonction MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le numéro de l'erreur depuis la dernière fonction MySQL, ou 0 (zéro) si aucune erreur ne survient.

Exemples

Exemple #1 Exemple avec mysql_errno()

<?php
$link 
mysql_connect("localhost""mysql_user""mysql_password");

if (!
mysql_select_db("nonexistentdb"$link)) {
   echo 
mysql_errno($link) . ": " mysql_error($link). "\n";
}

mysql_select_db("kossu"$link);
if (!
mysql_query("SELECT * FROM nonexistenttable"$link)) {
   echo 
mysql_errno($link) . ": " mysql_error($link) . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Voir aussi



mysql_error

(PHP 4, PHP 5)

mysql_errorRetourne le texte associé avec l'erreur générée lors de la dernière requête

Description

string mysql_error ([ resource $link_identifier ] )

mysql_error() retourne le message d'erreur généré par la dernière commande MySQL. Les erreurs retournées par le serveur MySQL ne génèrent plus de message d'alerte. À la place, vous devez utiliser la fonction mysql_error() pour lire le contenu du message. Notez que cette fonction ne retourne que le texte de l'erreur la plus récente(n'incluant pas mysql_error() et mysql_errno()), ce qui fait que si vous souhaitez l'utiliser, vous devez vous assurer de sa valeur avant de lancer une autre requête.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le texte de l'erreur de la dernière fonction MySQL, ou '' (chaîne vide) si aucune erreur survient.

Exemples

Exemple #1 Exemple avec mysql_error()

<?php
$link 
mysql_connect("localhost""mysql_user""mysql_password");

mysql_select_db("nonexistentdb"$link);
echo 
mysql_errno($link) . ": " mysql_error($link). "\n";

mysql_select_db("kossu"$link);
mysql_query("SELECT * FROM nonexistenttable"$link);
echo 
mysql_errno($link) . ": " mysql_error($link) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Voir aussi



mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_stringProtège les caractères spéciaux SQL

Description

string mysql_escape_string ( string $unescaped_string )

mysql_escape_string() va protéger tous les caractères de la chaîne unescaped_string, pour pouvoir l'utiliser directement dans une requête mysql_query(). Cette fonction est obsolète.

mysql_escape_string() est identique à la fonction mysql_real_escape_string() hormis le fait que mysql_real_escape_string() requiert une ressource de connexion et protège la chaîne en fonction du jeu de caractères courant. mysql_escape_string() ne demande pas de connexion comme argument, et ne respecte pas le jeu de caractères courant.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

unescaped_string

La chaîne qui doit être protégée.

Valeurs de retour

Retourne la chaîne protégée.

Historique

Version Description
5.3.0 Cette fonction lance maintenant une alerte de type E_DEPRECATED.
4.3.0 Cette fonction devient obsolète, ne l'utilisez pas. À la place, utilisez la fonction mysql_real_escape_string().

Exemples

Exemple #1 Exemple avec mysql_escape_string()

<?php
$item 
"C'est un exemple de Zak";
$escaped_item mysql_escape_string($item);
printf("Chaîne protégée : %s\n"$escaped_item);
?>

L'exemple ci-dessus va afficher :

Chaîne protégée : C\'est un exemple de Zak

Notes

Note:

mysql_escape_string() ne protège pas les caractères % et _.

Voir aussi



mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

Description

array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )

mysql_fetch_array() retourne un tableau qui contient la ligne demandée dans le résultat result et déplace le pointeur de données interne d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

result_type

Le type de tableau à récupérer. C'est une constante qui peut prendre les valeurs suivantes : MYSQL_ASSOC, MYSQL_NUM, et MYSQL_BOTH.

Valeurs de retour

Retourne un tableau de chaînes qui correspond à la ligne récupérée ou FALSE s'il n'y a plus de lignes. Le type de tableau retourné dépend de la définition du paramètre result_type. En utilisant MYSQL_BOTH (défaut), vous récupérerez un tableau contenant des indices associatifs et numériques. En utilisant MYSQL_ASSOC, vous ne récupérerez que les indices associatifs (comme le fonctionnement de la fonction mysql_fetch_assoc()), en utilisant MYSQL_NUM, vous ne récupérerez que les indices numériques (comme le fonctionnement de la fonctionmysql_fetch_row()).

Si plusieurs colonnes portent le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne. Pour les alias de colonnes, vous ne pourrez pas accéder aux contenus avec les noms originaux des colonnes.

Exemples

Exemple #1 Requête avec duplication de nom de colonnes

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Exemple #2 mysql_fetch_array() avec MYSQL_NUM

<?php
mysql_connect
("localhost""mysql_user""mysql_password") or
die(
"Impossible de se connecter : " mysql_error());
mysql_select_db("mydb");

$result mysql_query("SELECT id, name FROM mytable");

while (
$row mysql_fetch_array($resultMYSQL_NUM)) {
   
printf("ID : %s  Nom : %s"$row[0], $row[1]);
}

mysql_free_result($result);
?>

Exemple #3 mysql_fetch_array() avec MYSQL_ASSOC

<?php
mysql_connect
("localhost""mysql_user""mysql_password") or
die(
"Impossible de se connecter : " mysql_error());
mysql_select_db("mydb");

$result mysql_query("SELECT id, name FROM mytable");

while (
$row mysql_fetch_array($resultMYSQL_ASSOC)) {
   
printf("ID : %s  Nom : %s"$row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Exemple #4 mysql_fetch_array() avec MYSQL_BOTH

<?php
mysql_connect
("localhost""mysql_user""mysql_password") or
die(
"Impossible de se connecter : " mysql_error());
mysql_select_db("mydb");

$result mysql_query("SELECT id, name FROM mytable");

while (
$row mysql_fetch_array($resultMYSQL_BOTH)) {
   
printf ("ID : %s  Nom : %s"$row[0], $row["name"]);
}

mysql_free_result($result);
?>

Notes

Note: Performance

Une chose importante à noter est que l'utilisation de mysql_fetch_array() n'est pas significativement plus lent que l'utilisation de mysql_fetch_row(), alors qu'il fournit des valeurs significatives ajoutées.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi



mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assocLit une ligne de résultat MySQL dans un tableau associatif

Description

array mysql_fetch_assoc ( resource $result )

mysql_fetch_assoc() retourne un tableau associatif qui contient la ligne lue dans le résultat result et déplace le pointeur interne de données. mysql_fetch_assoc() revient à appeler la fonction mysql_fetch_array() avec MYSQL_ASSOC en tant que second paramètre. Cette fonction retourne uniquement un tableau associatif.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne un tableau associatif de chaînes qui contient la ligne lue dans le résultat result, ou bien FALSE s'il ne reste plus de lignes à lire.

Si plusieurs colonnes portent le même nom, la dernière aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser la fonction mysql_fetch_row() avec les indices numériques ou utiliser les alias sur les noms. Regardez la documentation sur la fonction mysql_fetch_array() pour plus d'informations sur les alias.

Exemples

Exemple #1 Exemple avec mysql_fetch_assoc()

<?php

$conn 
mysql_connect("localhost""mysql_user""mysql_password");

if (!
$conn) {
echo 
"Impossible de se connecter à la base de données : " mysql_error();
   exit;
}

if (!
mysql_select_db("mydbname")) {
   echo 
"Impossible de sélectionner la base mydbname : " mysql_error();
   exit;
}

$sql "SELECT id as userid, fullname, userstatus 
FROM   sometable
WHERE  userstatus = 1"
;

$result mysql_query($sql);

if (!
$result) {
   echo 
"Impossible d'exécuter la requête ($sql) dans la base : " mysql_error();
   exit;
}

if (
mysql_num_rows($result) == 0) {
   echo 
"Aucune ligne trouvée, rien à afficher.";
   exit;
}

// Tant qu'une ligne existe, place cette ligne dans la variable $row
// sous la forme d'un tableau associatif.
// Note : Si vous n'attendez qu'une seule ligne, oubliez la boucle
// Note : Si vous utilisez extract($row); dans la boucle suivante
//       vous créerez $userid, $fullname et $userstatus
while ($row mysql_fetch_assoc($result)) {
   echo 
$row["userid"];
   echo 
$row["fullname"];
   echo 
$row["userstatus"];
}

mysql_free_result($result);

?>

Notes

Note: Performance

Une chose importante à noter est que l'utilisation de mysql_fetch_assoc() n'est pas significativement plus lent que l'utilisation de mysql_fetch_row(), alors qu'il fournit des valeurs significatives ajoutées.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_data_seek() - Déplace le pointeur interne de résultat MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_error() - Retourne le texte associé avec l'erreur générée lors de la dernière requête



mysql_fetch_field

(PHP 4, PHP 5)

mysql_fetch_field Retourne les données enregistrées dans une colonne MySQL sous forme d'objet

Description

object mysql_fetch_field ( resource $result [, int $field_offset = 0 ] )

Retourne un objet contenant les informations sur les champs. Cette fonction peut être utilisée pour obtenir des informations sur les champs de la requête fournie result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. Si la position du champ n'est pas spécifiée, le champ suivant qui n'a pas encore été récupéré par cette fonction est alors récupéré. field_offset commence à 0.

Valeurs de retour

Retourne un objet contenant les informations sur les champs. Les propriétés de l'objet sont les suivantes :

  • "name" : nom de la colonne
  • "table" : nom de la table de la colonne
  • "max_length" : taille maximale de la colonne
  • "not_null" : 1 si la colonne ne peut pas être NULL
  • "primary_key" : 1 si la colonne est une clé primaire
  • "unique_key" : 1 si la colonne est une clé unique
  • "multiple_key" : 1 si la colonne est une clé non unique
  • "numeric" : 1 si la colonne est numérique
  • "blob" : 1 si la colonne est BLOB
  • "type" : le type de la colonne
  • "unsigned" : 1 si la colonne est non signée
  • "zerofill" : 1 si la colonne est complétée par des zéro

Exemples

Exemple #1 Exemple avec mysql_fetch_field()

<?php
$conn 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$conn) {
   die(
'Impossible de se connecter : ' mysql_error());
}
mysql_select_db('database');
$result mysql_query('select * from table');
if (!
$result) {
   die(
'Échec de la requête : ' mysql_error());
}
/* Lecture des méta données de la colonne */
$i 0;
while (
$i mysql_num_fields($result)) {
   echo 
"Détails sur la colonne $i:<br />\n";
   
$meta mysql_fetch_field($result$i);
   if (!
$meta) {
      echo 
"Aucun détail disponible<br />\n";
   }
   echo 
"<pre>
    blob:         
$meta->blob
    max_length:   
$meta->max_length
    multiple_key: 
$meta->multiple_key
    name:         
$meta->name
    not_null:     
$meta->not_null
    numeric:      
$meta->numeric
    primary_key:  
$meta->primary_key
    table:        
$meta->table
    type:         
$meta->type
    unique_key:   
$meta->unique_key
    unsigned:     
$meta->unsigned
    zerofill:     
$meta->zerofill
   </pre>"
;
   
$i++;
}
mysql_free_result($result);
?>

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Voir aussi



mysql_fetch_lengths

(PHP 4, PHP 5)

mysql_fetch_lengths Retourne la taille de chaque colonne d'une ligne de résultat MySQL

Description

array mysql_fetch_lengths ( resource $result )

mysql_fetch_lengths() retourne un tableau avec la taille de chaque colonne de la dernière ligne retournée par mysql_fetch_row().

mysql_fetch_lengths() stocke les tailles de chaque colonne de la dernière ligne retournée par mysql_fetch_row(), mysql_fetch_assoc(), mysql_fetch_array() et mysql_fetch_object() dans un tableau, en commençant à la position 0.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Un array de taille, en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_fetch_lengths()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}
$row     mysql_fetch_assoc($result);
$lengths mysql_fetch_lengths($result);

print_r($row);
print_r($lengths);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [id] => 42
   [email] => user@example.com
)
Array
(
   [0] => 2
   [1] => 16
)

Voir aussi



mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_objectRetourne une ligne de résultat MySQL sous la forme d'un objet

Description

object mysql_fetch_object ( resource $result [, string $class_name [, array $params ]] )

mysql_fetch_object() retourne un tableau qui contient la ligne demandée dans le résultat result et déplace le pointeur de données interne d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

class_name

Le nom de la classe à instancier, définit les propriétés et retourne. SI ce paramètre n'est pas spécifié, un objet stdClass sera retourné.

params

Un tableau de paramètres à passer au constructeur pour les objets class_name.

Valeurs de retour

Retourne un objet avec les propriétés qui correspondent à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Historique

Version Description
5.0.0 Ajout de la possibilité de retourner un objet différent.

Exemples

Exemple #1 Exemple avec mysql_fetch_object()

<?php
mysql_connect
("hostname""user""password");
mysql_select_db("mydb");
$result mysql_query("select * from mytable");
while (
$row mysql_fetch_object($result)) {
   echo 
$row->user_id;
   echo 
$row->fullname;
}
mysql_free_result($result);
?>

Exemple #2 Exemple avec mysql_fetch_object()

<?php
class foo {
    public 
$name;
}

mysql_connect("hostname""user""password");
mysql_select_db("mydb");

$result mysql_query("select name from mytable limit 1");
$obj mysql_fetch_object($result'foo');
var_dump($obj);
?>

Notes

Note: Performance

Concernant la vitesse, mysql_fetch_object() est aussi rapide que mysql_fetch_array() et presque aussi rapide que mysql_fetch_row() (la différence est insignifiante).

Note:

mysql_fetch_object() est identique à mysql_fetch_array(), à la différence qu'elle retourne un objet à la place d'un tableau. Vous pourrez ainsi accéder aux valeurs des champs par leur nom, mais plus par leur offset (les nombres ne sont pas des noms MySQL).

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_data_seek() - Déplace le pointeur interne de résultat MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL



mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_rowRetourne une ligne de résultat MySQL sous la forme d'un tableau

Description

array mysql_fetch_row ( resource $result )

mysql_fetch_row() retourne un tableau indexé numériquement, qui correspond à la prochaine ligne du résultat MySQL result et déplace le pointeur interne de données d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne un tableau numérique de chaînes qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

mysql_fetch_row() va rechercher une ligne dans le résultat associé à l'identifiant de résultat spécifié. La ligne est retournée sous la forme d'un tableau. Chaque colonne est enregistrée sous la forme d'un tableau commençant à la position 0.

Exemples

Exemple #1 Exemple avec mysql_fetch_row()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}
$row mysql_fetch_row($result);

echo 
$row[0]; // 42
echo $row[1]; // la valeur du champ email
?>

Notes

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi



mysql_field_flags

(PHP 4, PHP 5)

mysql_field_flagsRetourne des détails sur une colonne MySQL

Description

string mysql_field_flags ( resource $result , int $field_offset )

mysql_field_flags() retourne le sémaphore associé au champ spécifié par field_offset, dans le résultat result. Les sémaphores sont retournés comme des mots, séparés par des espaces, ce qui les rend faciles à séparer, avec la commande explode().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Retourne les sémaphores sous la forme d'une chaîne associés avec le résultat ou FALSE si une erreur survient.

Les valeurs suivantes (pour une version suffisamment récente de MySQL) sont disponibles : "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment" et "timestamp".

Exemples

Exemple #1 Exemple avec mysql_field_flags()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}
$flags mysql_field_flags($result0);

echo 
$flags;
print_r(explode(' '$flags));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

not_null primary_key auto_increment
Array
(
   [0] => not_null
   [1] => primary_key
   [2] => auto_increment
)

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldflags()

Voir aussi



mysql_field_len

(PHP 4, PHP 5)

mysql_field_lenRetourne la taille d'un champ de résultat MySQL

Description

int mysql_field_len ( resource $result , int $field_offset )

mysql_field_len() retourne la taille du champ spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le taille de l'index du champs spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_field_len()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}

// Récupère la longueur du champ id dans la base de données.
$length mysql_field_len($result0);
echo 
$length;
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldlen()

Voir aussi



mysql_field_name

(PHP 4, PHP 5)

mysql_field_nameRetourne le nom d'une colonne dans un résultat MySQL

Description

string mysql_field_name ( resource $result , int $field_offset )

mysql_field_name() retourne le nom du champ de l'index spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le nom du champ de l'index spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_field_name()

<?php
/* Supposons que la table utilisée contienne trois champs :
*   user_id
*   username
*   password.
 */
$link = @mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
   die(
'Impossible de se connecter au serveur MySQL : ' mysql_error());
}
$dbname 'mydb';
$db_selected mysql_select_db($dbname$link);
if (!
$db_selected) {
   die(
"Impossible de se connecter à la base $dbname: " mysql_error());
}
$res mysql_query('select * from users'$link);

echo 
mysql_field_name($res0) . "\n";
echo 
mysql_field_name($res2);
?>

L'exemple ci-dessus va afficher :

user_id
password

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldname()

Voir aussi



mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seekDéplace le pointeur de résultat vers une position donnée

Description

bool mysql_field_seek ( resource $result , int $field_offset )

mysql_field_seek() place le pointeur de résultat result sur le champ spécifié par sa position field_offset. Lors du prochain appel à mysql_fetch_field() qui n'aura pas d'argument d'index de champ, le champ désormais pointé sera retourné.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysql_fetch_field() - Retourne les données enregistrées dans une colonne MySQL sous forme d'objet



mysql_field_table

(PHP 4, PHP 5)

mysql_field_tableRetourne le nom de la table MySQL où se trouve une colonne

Description

string mysql_field_table ( resource $result , int $field_offset )

mysql_field_table() retourne le nom de la table où se trouve la colonne d'offset field_offset, dans le résultat MySQL result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le nom de la table en cas de succès.

Exemples

Exemple #1 Exemple avec mysql_field_table()

<?php

$query 
"SELECT account.*, country.* FROM account, country WHERE country.name = 'Portugal' AND account.country_id = country.id";

// Récupère le résultat depuis la base de données
$result mysql_query($query);

// Liste le nom de la table et ensuite, le nom du champ
for ($i 0$i mysql_num_fields($result); ++$i) {
    
$table mysql_field_table($result$i);
    
$field mysql_field_name($result$i);

    echo  
"$table$field\n";
}

?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldtable()

Voir aussi



mysql_field_type

(PHP 4, PHP 5)

mysql_field_typeRetourne le type d'une colonne MySQL spécifique

Description

string mysql_field_type ( resource $result , int $field_offset )

mysql_field_type() est similaire à la fonction mysql_field_name(). Les arguments sont identiques mais c'est le type de la colonne qui est retourné.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le type du champ retourné peut être : "int", "real", "string", "blob" ou d'autres, comme détaillé » dans la documentation MySQL.

Exemples

Exemple #1 Exemple avec mysql_field_type()

<?php
mysql_connect
("localhost""mysql_username""mysql_password");
mysql_select_db("mysql");
$result mysql_query("SELECT * FROM func");
$fields mysql_num_fields($result);
$rows   mysql_num_rows($result);
$table  mysql_field_table($result0);
echo 
"Votre table '" $table "' dispose de " $fields " colonnes et " $rows " ligne(s)\n";
echo 
"Les colonnes sont les suivantes :\n";
for (
$i=0$i $fields$i++) {
    
$type  mysql_field_type($result$i);
    
$name  mysql_field_name($result$i);
    
$len   mysql_field_len($result$i);
    
$flags mysql_field_flags($result$i);
    echo 
$type " " $name " " $len " " $flags "\n";
}
mysql_free_result($result);
mysql_close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Votre table 'func' dispose de 4 colonnes et 1 ligne(s)
Les colonnes sont les suivantes : 
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldtype()

Voir aussi



mysql_free_result

(PHP 4, PHP 5)

mysql_free_resultLibère le résultat de la mémoire

Description

bool mysql_free_result ( resource $result )

mysql_free_result() libère toute la mémoire et les ressources utilisées par la ressource de résultat result.

mysql_free_result() n'est à appeler que si vous avez peur d'utiliser trop de mémoire durant l'exécution de votre script. Toute la mémoire associée à l'identifiant de résultat sera automatiquement libérée.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si la valeur passée à l'argument result n'est pas une ressource, une erreur de niveau E_WARNING sera émise. Il est important de noter que la fonction mysql_query() retourne uniquement une ressource pour les requêtes SELECT, SHOW, EXPLAIN et DESCRIBE.

Exemples

Exemple #1 Exemple avec mysql_free_result()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}
/* Utilisation du résultat */
$row mysql_fetch_assoc($result);

/* Maintenant, nous libérons le résultat et continuons notre script */
mysql_free_result($result);

echo 
$row['id'];
echo 
$row['email'];
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_freeresult()

Voir aussi



mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_infoLit les informations sur le client MySQL

Description

string mysql_get_client_info ( void )

mysql_get_client_info() retourne une chaîne qui représente le numéro de version du client utilisé par PHP.

Valeurs de retour

La version du client MySQL.

Exemples

Exemple #1 Exemple avec mysql_get_client_info()

<?php
printf
("Détails sur le client MySQL : %s\n"mysql_get_client_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Détails sur le client MySQL : 3.23.39

Voir aussi



mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_infoLit les informations sur l'hôte MySQL

Description

string mysql_get_host_info ([ resource $link_identifier ] )

mysql_get_host_info() retourne une chaîne qui représente le type de connexion utilisé avec la connexion link_identifier, y compris le nom du serveur hôte.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une chaîne décrivant le type de connexion MySQL utilisé pour la connexion ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_get_host_info()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
   die(
'Impossible de se connecter : ' mysql_error());
}
printf("Informations sur l'hôte MySQL : %s\n"mysql_get_host_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations sur l'hôte MySQL : Localhost via UNIX socket

Voir aussi



mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_infoLit les informations sur le protocole MySQL

Description

int mysql_get_proto_info ([ resource $link_identifier ] )

Lit les informations sur le protocole MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le protocole MySQL en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_get_proto_info()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
   die(
'Impossible de se connecter : ' mysql_error());
}
printf("Version du protocole MySQL : %s\n"mysql_get_proto_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du protocole MySQL : 10

Voir aussi



mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_infoLit les informations sur le serveur MySQL

Description

string mysql_get_server_info ([ resource $link_identifier ] )

Lit les informations sur le serveur MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne la version du serveur MySQL en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_get_server_info()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
die(
'Impossible de se connecter à la base : ' mysql_error());
}
printf("Version du serveur MySQL : %s\n"mysql_get_server_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du serveur MySQL : 4.0.1-alpha

Voir aussi



mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_infoLit des informations à propos de la dernière requête MySQL

Description

string mysql_info ([ resource $link_identifier ] )

Lit des informations à propos de la dernière requête MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne des informations sur une requête en cas de succès, ou FALSE si une erreur survient. Regardez l'exemple ci-dessous pour savoir quelles sortes de requêtes fournissent des informations et avoir un aperçu des informations retournées. Les sortes de requêtes qui ne sont pas listées retournent FALSE.

Exemples

Exemple #1 Requêtes MySQL

Requêtes qui retournent des valeurs. Les nombres ne sont là que pour illustrer l'exemple ; ces valeurs correspondent à la requête.

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0

Notes

Note:

mysql_info() retourne une valeur différente de FALSE pour les commandes INSERT ... VALUES uniquement si plusieurs jeux de valeurs à insérer ont été spécifiés dans la commande.

Voir aussi



mysql_insert_id

(PHP 4, PHP 5)

mysql_insert_id Retourne l'identifiant généré par la dernière requête

Description

int mysql_insert_id ([ resource $link_identifier ] )

Retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT, sur la connexion MySQL courante ou sûr la connexion spécifiée par link_identifier (habituellement, une requête de type INSERT).

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

L'ID généré pour une colonne AUTO_INCREMENT par la dernière requête en cas de succès, 0 si la dernière requête n'a pas généré de valeur AUTO_INCREMENT, ou FALSE si aucune connexion MySQL n'a été établie.

Exemples

Exemple #1 Exemple avec mysql_insert_id()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
die(
'Impossible de se connecter : ' mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Le dernier ID inséré dans est le id %d\n"mysql_insert_id());
?>

Notes

Attention

mysql_insert_id() convertira le type retourné de la fonction native MySQL C API mysql_insert_id() en un type long (nommé int en PHP). Si votre colonne AUTO_INCREMENT a une colonne de type BIGINT (64 bits), la convertion peut résulter en une valeur incorrecte. À la place, utilisez la fonction SQL interne à MySQL LAST_INSERT_ID() dans une requête SQL. Pour plus d'informations sur les valeurs entières maximales en PHP, repportez-vous à la documentation sur les entiers.

Note:

Parce que mysql_insert_id() agit sur la dernière requête exécutée, assurez-vous d'appeler la fonction mysql_insert_id() immédiatement après l'exécution de la requête qui a générée la valeur.

Note:

La fonction MySQL LAST_INSERT_ID() contient toujours la valeur AUTO_INCREMENT la plus récente, et n'est pas remise à zéro entre deux requêtes.

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_info() - Lit des informations à propos de la dernière requête MySQL



mysql_list_dbs

(PHP 4, PHP 5)

mysql_list_dbs Liste les bases de données disponibles sur le serveur MySQL

Description

resource mysql_list_dbs ([ resource $link_identifier ] )

mysql_list_dbs() retournera un identifiant de résultat, qui contiendra les noms des bases de données disponibles sur la connexion MySQL courante ou sur la connexion spécifiée par link_identifier.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survient. Utilisez la fonction mysql_tablename() pour parcourir ce résultat ou tout autre fonction pour les résultats de table, comme la fonction mysql_fetch_array().

Exemples

Exemple #1 Exemple avec mysql_list_dbs()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
$db_list mysql_list_dbs($link);

while (
$row mysql_fetch_object($db_list)) {
   echo 
$row->Database "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

database1
database2
database3

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listdbs()

Voir aussi



mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fieldsListe les champs d'une table MySQL

Description

resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )

Liste les champs de la table MySQL spécifiée.

La fonction mysql_list_fields() est obsolète. Il est préférable d'utiliser la fonction mysql_query() avec comme requête SHOW COLUMNS FROM table [LIKE 'name'] à la place.

Liste de paramètres

database_name

Le nom de la base de données qui va être interrogée.

table_name

Le nom de la table qui va être interrogée.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survint.

Le résultat retourné peut être utilisé avec les fonction mysql_field_flags(), mysql_field_len(), mysql_field_name() et mysql_field_type().

Exemples

Exemple #1 Exemple d'alternative à mysql_list_fields()

<?php
$result 
mysql_query("SHOW COLUMNS FROM sometable");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}
if (
mysql_num_rows($result) > 0) {
   while (
$row mysql_fetch_assoc($result)) {
      
print_r($row);
   }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [Field] => id
   [Type] => int(7)
   [Null] =>  
   [Key] => PRI
   [Default] =>
   [Extra] => auto_increment
)
Array
(
   [Field] => email
   [Type] => varchar(100)
   [Null] =>
   [Key] =>
   [Default] =>
   [Extra] =>
)

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listfields()

Voir aussi



mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processesListe les processus MySQL

Description

resource mysql_list_processes ([ resource $link_identifier ] )

Liste les processus MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_list_processes()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');

$result mysql_list_processes($link);
while (
$row mysql_fetch_assoc($result)){
   
printf("%s %s %s %s %s\n"$row["Id"], $row["Host"], $row["db"],
   
$row["Command"], $row["Time"]);
}
mysql_free_result($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 localhost test Processlist 0
4 localhost mysql sleep 5

Voir aussi



mysql_list_tables

(PHP 4, PHP 5)

mysql_list_tablesListe les tables d'une base de données MySQL

Description

resource mysql_list_tables ( string $database [, resource $link_identifier ] )

Liste les tables d'une base de données MySQL spécifiée.

Cette fonction est obsolète. Il est préférable d'utiliser la fonction mysql_query() pour effectuer la requête SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] à la place.

Liste de paramètres

database

Le nom de la base de données

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès ou FALSE si une erreur survient.

Utilisez la fonction mysql_tablename() pour parcourir ce pointeur de résultats ou tout autre fonction pour les résultats de tables, comme la fonction mysql_fetch_array().

Historique

Version Description
4.3.7 Cette fonction est devenue obsolète.

Exemples

Exemple #1 Exemple d'alternative à mysql_list_tables()

<?php
$dbname 
'mysql_dbname';

if (!
mysql_connect('mysql_host''mysql_user''mysql_password')) {
   echo 
'Impossible de se connecter à MySQL';
   exit;
}

$sql "SHOW TABLES FROM $dbname";
$result mysql_query($sql);

if (!
$result) {
   echo 
"Erreur DB, impossible de lister les tables\n";
   echo 
'Erreur MySQL : ' mysql_error();
   exit;
}

while (
$row mysql_fetch_row($result)) {
   echo 
"Table : {$row[0]}\n";
}

mysql_free_result($result);
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listtables()

Voir aussi



mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fieldsRetourne le nombre de champs d'un résultat MySQL

Description

int mysql_num_fields ( resource $result )

Retourne le nombre de champs d'une requête.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne le nombre de champs d'un jeu de résultat en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_num_fields()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}

/* Retourne 2 car id,email === 2 champs */
echo mysql_num_fields($result);
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_numfields()

Voir aussi



mysql_num_rows

(PHP 4, PHP 5)

mysql_num_rowsRetourne le nombre de lignes d'un résultat MySQL

Description

int mysql_num_rows ( resource $result )

Récupère le nombre de lignes d'un jeu de résultat. Cette commande n'est disponible que pour les requêtes comme SELECT ou SHOW qui retournent un jeu de résultats. Pour récupérer le nombre de lignes affectées par une requête INSERT, UPDATE, REPLACE ou DELETE, utilisez la fonction mysql_affected_rows().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Le nombre de lignes dans un jeu de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_num_rows()

<?php

$link 
mysql_connect("localhost""mysql_user""mysql_password");
mysql_select_db("database"$link);

$result mysql_query("SELECT * FROM table1"$link);
$num_rows mysql_num_rows($result);

echo 
"$num_rows Rows\n";

?>

Notes

Note:

Si vous utilisez mysql_unbuffered_query(), mysql_num_rows() ne retournera pas une valeur correcte tant que toutes les lignes du jeu de résultats n'auront pas été récupérées.

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_numrows()

Voir aussi



mysql_pconnect

(PHP 4, PHP 5)

mysql_pconnect Ouvre une connexion persistante à un serveur MySQL

Description

resource mysql_pconnect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, int $client_flags ]]]] )

Ouvre une connexion persistante à un serveur MySQL.

mysql_pconnect() se comporte exactement comme mysql_connect(), mais avec deux différences majeures :

Premièrement, lors de la connexion, la fonction essaie de trouver une connexion permanente déjà ouverte sur cet hôte, avec le même nom d'utilisateur et de mot de passe. Si une telle connexion est trouvée, son identifiant est retourné, sans ouvrir de nouvelle connexion.

Deuxièmement, la connexion au serveur MySQL ne sera pas terminée avec la fin du script. Au lieu de cela, le lien sera conservé pour un prochain accès (mysql_close() ne terminera pas une connexion persistante établie par mysql_pconnect()).

C'est pourquoi ce type de connexion est dite persistante.

Liste de paramètres

server

Le serveur MySQL. Il peut également comprendre un numéro de port, e.g. "hostname:port" ou un chemin vers un socket local e.g. ":/path/to/socket".

Si la directive PHP mysql.default_host n'est pas définie (défaut), alors, la valeur par défaut est "localhost:3306".

username

Le nom de l'utilisateur. La valeur par défaut est l'utilisateur faisant fonctionner le processus serveur courant.

password

Le mot de passe. La valeur par défaut est un mot de passe vide.

client_flags

Le paramètre client_flags peut être une compilation des constantes suivantes : 128 (active le gestionnaire LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE.

Valeurs de retour

Retourne un identifiant de lien persistant MySQL en cas de succès, ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 Ajout du paramètre client_flags.

Notes

Note:

Notez que les connexions persistantes ne fonctionnent que si vous utilisez PHP en version module. Lisez la section sur les connexions persistantes aux bases de données pour plus d'informations.

Avertissement

L'utilisation des connexions persistantes requiert des paramétrages d'Apache et de MySQL pour vous assurer que vous n'atteindrez pas la limite maximale de nombre de connexions simultanées autorisée par MySQL.

Note:

Vous pouvez supprimer les messages d'erreur en ajoutant un @ au nom de la fonction.

Voir aussi



mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_pingVérifie la connexion au serveur MySQL, et s'y reconnecte au besoin

Description

bool mysql_ping ([ resource $link_identifier ] )

mysql_ping() vérifie si la connexion au serveur link_identifier fonctionne. Si elle est tombée, une reconnexion automatique est effectuée. Cette fonction est utile pour les scripts qui restent inactifs durant un long moment. Ils peuvent ainsi vérifier si le serveur a fermé la connexion, pour cause d'inactivité.

Note:

Depuis MySQL 5.0.13, la fonctionnalité de reconnexion automatique est désactivée.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne TRUE si la connexion au serveur MySQL fonctionne, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysql_ping()

<?php
set_time_limit
(0);

$conn mysql_connect('localhost''mysqluser''mypass');
$db   mysql_select_db('mydb');

/* En supposant que l'exécution de la requête prend beaucoup de temps */
$result mysql_query($sql);
if (!
$result) {
   echo 
'Requête #1 a échoué, sortie.';
   exit;
}

/* S'assure que la connexion est toujours active, sinon, tentative de reconnexion */
if (!mysql_ping($conn)) {
   echo 
'Perte de la connexion, sortie après la requête #1';
   exit;
}
mysql_free_result($result);

/* Donc, la connexion est toujours active, exécutons une autre requête */
$result2 mysql_query($sql2);
?>

Voir aussi



mysql_query

(PHP 4, PHP 5)

mysql_queryEnvoie une requête à un serveur MySQL

Description

resource mysql_query ( string $query [, resource $link_identifier ] )

mysql_query() envoie une seule requête (les requêtes multiples ne sont pas supportées) à la base de données courante sur le serveur associé avec le link_identifier spécifié.

Liste de paramètres

query

Une requête SQL

La chaîne de requête ne doit pas se terminer par un point-virgule. Les données contenues dans la requête doivent être échappées proprement.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.

Pour les autres types de requêtes, INSERT, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.

La ressource de résultat retournée doit être passée à la fonction mysql_fetch_array(), et les autres fonctions permettant d'explorer le résultat des tables, pour accéder aux données retournées.

Utilisez mysql_num_rows() pour trouver le nombre de lignes retournées pour une requête du type SELECT ou mysql_affected_rows() pour trouver le nombre de lignes affectées par les requêtes du type DELETE, INSERT, REPLACE, ou UPDATE.

mysql_query() échouera et retournera FALSE si l'utilisateur n'a pas les autorisations nécessaire pour accéder à la (aux) table(s) référencée(s) par la requête.

Exemples

Exemple #1 Requête invalide

La requête suivante est syntaxiquement invalide, donc mysql_query() va échouer et retourner FALSE.

<?php
$result 
mysql_query('SELECT * WHERE 1=1');
if (!
$result) {
    die(
'Requête invalide : ' mysql_error());
}

?>

Exemple #2 Requête valide

La requête suivante est valide, donc mysql_query() va retourner une ressource.

<?php
// Ceci peut être demandé par un utilisateur, par exemple :
$firstname 'fred';
$lastname  'fox';

// Formulation de la requête
// C'est la meilleur façon d'exécuter une requête SQL
// Pour plus d'exemples, voir mysql_real_escape_string()
$query sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
    
mysql_real_escape_string($firstname),
    
mysql_real_escape_string($lastname));

// Exécution de la requête
$result mysql_query($query);

// Vérification du résultat
// Ceci montre la requête envoyée à MySQL ainsi que l'erreur. Utile pour déboguer.
if (!$result) {
    
$message  'Requête invalide : ' mysql_error() . "\n";
    
$message .= 'Requête complète : ' $query;
    die(
$message);
}

// Utilisation du résultat
// Tenter d'affichager $result ne vous donnera pas d'informations contenues dans la ressource
// Une des fonctions MySQL de résultat doit être utilisée
// Voir aussi mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row mysql_fetch_assoc($result)) {
    echo 
$row['firstname'];
    echo 
$row['lastname'];
    echo 
$row['address'];
    echo 
$row['age'];
}

// Libération des ressources associées au jeu de résultats
// Ceci est effectué automatiquement à la fin du script
mysql_free_result($result);
?>

Voir aussi



mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_stringProtège les caractères spéciaux d'une commande SQL

Description

string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

mysql_real_escape_string() protège les caractères spéciaux de la chaîne unescaped_string, en prenant en compte le jeu de caractères courant de la connexion link_identifier. Le résultat peut être utilisé sans problème avec la fonction mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée.

mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.

Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger vos données avant d'envoyer la requête à MySQL.

Liste de paramètres

unescaped_string

La chaîne à échapper.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne la chaîne échappée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple simple avec mysql_real_escape_string()

<?php
// Connexion
$link mysql_connect('mysql_host''mysql_user''mysql_password')
OR die(
mysql_error());

// Requête
$query sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>

Exemple #2 Un exemple d'attaque par injection SQL

<?php
// Nous ne vérifions pas $_POST['password'], il peut contenir ce que l'utilisateur veut ! Par exemple :
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// Demande à la base de vérifier si un utilisateur correspond
$query "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// Cela signifie que la requête envoyée à MySQL sera :
echo $query;
?>

La requête envoyée à MySQL :

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

Cela permet à n'importe qui de s'identifier sans mot de passe valide.

Notes

Note:

Une connexion MySQL est nécessaire avant d'utiliser la fonction mysql_real_escape_string(), sinon, une erreur de niveau E_WARNING sera générée, et FALSE sera retourné. Si link_identifier n'est pas défini, la dernière connexion MySQL est utilisée.

Note:

Si magic_quotes_gpc est activée, appliquez d'abord la fonction stripslashes() à vos données. Utiliser cette fonction sur des données qui ont déjà été protégées, les protégera une deuxième fois.

Note:

Si cette fonction n'est pas utilisée pour protéger vos données, la requête sera vulnérable aux attaques par injection SQL.

Note: mysql_real_escape_string() n'échappe ni %, ni _. Ce sont des jokers en MySQL si combinés avec LIKE, GRANT, ou REVOKE.

Voir aussi



mysql_result

(PHP 4, PHP 5)

mysql_resultRetourne un champ d'un résultat MySQL

Description

string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )

Retourne le contenu d'un champ d'un jeu de résultats MySQL.

Lorsque vous travaillez sur des résultats de grande taille, il est conseillé d'utiliser une des fonctions qui vont rechercher une ligne entière dans un tableau. Ces fonctions sont NETTEMENT plus rapides. De plus, utiliser un offset numérique est aussi beaucoup plus rapide que spécifier un nom littéral.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

row

Le numéro de la ligne à récupérer. Les numéros de lignes commencent à 0.

field

Le nom ou la position du champ à récupérer.

Il peut être la position du champ, le nom du champ ou le nom de la table suivi d'un point, suivi du nom du champ (tablename.fieldname). Si un alias a été utilisé pour le nom de la colonne ("selected foo as bar from..."), utilisez plutôt l'alias. Si ce paramètre n'est pas défini, le premier champ sera récupéré.

Valeurs de retour

Le contenu d'un champ depuis un jeu de résultats MySQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_result()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
   die(
'Impossible de se connecter : ' mysql_error());
}
if (!
mysql_select_db('database_name')) {
    die(
'Impossible de sélectionner la table : ' mysql_error());
}
$result mysql_query('SELECT name FROM work.employee');
if (!
$result) {
   die(
'Impossible d\'exécuter la requête :' mysql_error());
}
echo 
mysql_result($result2); // Affiche le nom du troisième employé

mysql_close($link);
?>

Notes

Note:

Les appels mysql_result() ne devraient pas être mélangés avec d'autres fonctions qui travaillent aussi sur le résultat.

Voir aussi

  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_object() - Retourne une ligne de résultat MySQL sous la forme d'un objet



mysql_select_db

(PHP 4, PHP 5)

mysql_select_dbSélectionne une base de données MySQL

Description

bool mysql_select_db ( string $database_name [, resource $link_identifier ] )

Sélectionne une base de données MySQL sur le serveur associé avec le paramètre link_identifier. Chaque appel à la fonction mysql_query() sera exécutée sur la base de données active.

Liste de paramètres

database_name

Le nom de la base de données à sélectionner.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_select_db()

<?php

$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
   die(
'Impossible de se connecter : ' mysql_error());
}

// Rendre la base de données foo, la base courante
$db_selected mysql_select_db('foo'$link);
if (!
$db_selected) {
   die (
'Impossible de sélectionner la base de données : ' mysql_error());
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_selectdb()

Voir aussi



mysql_set_charset

(PHP 5 >= 5.2.3)

mysql_set_charsetDéfinit le jeu de caractères du client MySQL

Description

bool mysql_set_charset ( string $charset [, resource $link_identifier ] )

Définit le jeu de caractères par défaut pour la connexion courante.

Liste de paramètres

charset

Un nom de jeu de caractères valide.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction requiert MySQL version 5.0.7 ou supérieure.

Note:

Cette fonction est la meilleure façon de modifier le jeu de caractères. Il n'est pas recommandé d'utiliser la fonction mysql_query() avec une requête du type SET NAMES .. pour cela.

Voir aussi



mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_statRetourne le statut courant du serveur MySQL

Description

string mysql_stat ([ resource $link_identifier ] )

mysql_stat() retourne le statut courant du serveur MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une chaîne contenant le statut de durée de fonctionnement, les threads, les requêtes, les tables ouvertes et sur disque, et le nombre de requêtes par seconde. Pour une liste complète des autres variables de statuts, vous devez utiliser la commande SQL SHOW STATUS. Si link_identifier est invalide, NULL est retourné.

Exemples

Exemple #1 Exemple avec mysql_stat()

<?php
$link   
mysql_connect('localhost''mysql_user''mysql_password');
$status explode('  'mysql_stat($link));
print_r($status);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
[0] => Uptime: 5380
[1] => Threads: 2
[2] => Questions: 1321299
[3] => Slow queries: 0
[4] => Opens: 26
[5] => Flush tables: 1
[6] => Open tables: 17
[7] => Queries per second avg: 245.595
)

Exemple #2 Exemple alternatif pour mysql_stat()

<?php
$link   
mysql_connect('localhost''mysql_user''mysql_password');
$result mysql_query('SHOW STATUS'$link);
while (
$row mysql_fetch_assoc($result)) {
  echo 
$row['Variable_name'] . ' = ' $row['Value'] . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir = 
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

Voir aussi



mysql_tablename

(PHP 4, PHP 5)

mysql_tablenameLit le nom de la table qui contient un champ

Description

string mysql_tablename ( resource $result , int $i )

Lit le nom de la table depuis le jeu de résultats result.

Cette fonction est obsolète. Il est préférable d'utiliser la fonction mysql_query() avec une requête SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] à la place.

Liste de paramètres

result

Un pointeur de résultats retourné par la fonction mysql_list_tables().

i

L'index (numéro ligne/table)

Valeurs de retour

Le nom de la table en cas de succès ou FALSE si une erreur survient.

Utilisez la fonction mysql_tablename() pour parcourir ce pointeur de résultats, ou n'importe quelle fonction pour les résultats de tables comme la fonction mysql_fetch_array().

Exemples

Exemple #1 Exemple avec mysql_tablename()

<?php
mysql_connect
("localhost""mysql_user""mysql_password");
$result mysql_list_tables("mydb");
$num_rows mysql_num_rows($result);
for (
$i 0$i $num_rows$i++) {
   echo 
"Table : "mysql_tablename($result$i), "\n";
}

mysql_free_result($result);
?>

Notes

Note:

La fonction mysql_num_rows() peut être utilisée pour déterminer le nombre de tables dans le pointeur de résultats.

Voir aussi



mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_idRetourne l'identifiant du thread MySQL courant

Description

int mysql_thread_id ([ resource $link_identifier ] )

mysql_thread_id() retourne l'identifiant du thread courant. Si la connexion link_identifier est perdue et que vous vous reconnectez (avec mysql_ping(), par exemple), alors l'identifiant de thread va changer. Cela signifie que vous devez le récupérer lorsque vous en avez besoin.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

L'identifiant du thread en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_thread_id()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
$thread_id mysql_thread_id($link);
if (
$thread_id){
   
printf("L'identifiant du thread courant est : %d\n"$thread_id);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

L'identifiant du thread courant est : 73

Voir aussi



mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query Exécute une requête SQL sans mobiliser les résultats MySQL

Description

resource mysql_unbuffered_query ( string $query [, resource $link_identifier ] )

mysql_unbuffered_query() envoie la requête SQL query à MySQL sans automatiquement récupérer et mettre en mémoire les lignes du résultat, comme pourrait le faire la fonction mysql_query(). Ce comportement permet d'épargner une grande quantité de mémoire lorsque les requêtes SQL produisent un gros jeu de résultats, et vous pouvez commencer à travailler sur le jeu de résultats immédiatement après que la première ligne ait été récupérée que vous n'avez pas à attendre la fin du traitement de la requête SQL. Pour utiliser la fonction mysql_unbuffered_query() lorsque plusieurs connexions à des bases de données sont ouvertes, vous devez spécifier le paramètre optionnel link_identifier pour identifier la connexion à utiliser.

Liste de paramètres

query

La requête SQL à exécuter

Les données de la requête doivent être proprement échappées.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Pour les requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_unbuffered_query() retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc, mysql_unbuffered_query() retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'intérêt de mysql_unbuffered_query() est tempéré par une limitation : mysql_num_rows() et mysql_data_seek() ne fonctionne pas sur une ressource retournée par mysql_unbuffered_query(). Vous devez aussi lire tous les résultats d'une première requête exécutée avec mysql_unbuffered_query(), avant de pouvoir en exécuter une autre.

Voir aussi


Sommaire




Extension mysqli


Introduction

L'extension mysqli vous permet d'accéder aux fonctionnalités fournies par MySQL 4.1 et supérieur. Pour plus d'informations sur le serveur de base de données MySQL, veuillez-vous rendre sur » http://www.mysql.com/

Une liste des logiciels disponibles permettant d'utiliser MySQL depuis PHP peut être trouvée sur Introduction

La documentation MySQL est disponible sur » http://dev.mysql.com/doc/.

Des morceaux du manuel MySQL ont été inclues dans la documentation PHP avec la permission de Oracle Corporation.

Exemples

Tous les exemples de la documentation mysqli utilisent la base de données world. Celle-ci est disponible à l'adresse » http://downloads.mysql.com/docs/world.sql.gz



Introduction

Cette section fournit des informations sur les solutions qui s'offrent à vous quand vous développez une application PHP qui a besoin de s'interfacer avec une base de données MySQL.

Qu'est-ce qu'une API?

Une Interface de programmation d'application, une Application Programming Interface, ou encore API, définit les classes, méthodes, fonctions et variables dont votre application va faire usage pour exécuter différentes tâches. Dans le cas des applications PHP, les communications avec une base de données par généralement par une API qui est exposée dans une extension PHP.

Les API peuvent être procédurale ou orientée objet. Avec une API procédurale, vous pouvez appeler les fonctions pour exécuter des commandes; avec une API orientée objet, vous devez créer des objets et appeler les méthodes de ces objets. Des deux, c'est la dernière qui est généralement préférée, car elle est plus moderne, et conduit à du code plus organisé.

Lors de l'écriture d'applications PHP qui doivent se connecter à MySQL, il y a plusieurs API disponibles. Ce document présente ces API, et vous donne les informations pour choisir la meilleure solution pour votre application.

Qu'est-ce qu'un connecteur?

Dans la documentation MySQL, le terme connector fait référence à un logiciel qui permet à une application de se connecter à une base de données MySQL. MySQL fournit des connecteur pour toute une collection de langages, y compris PHP.

Si votre application PHP a besoin de communiquer avec un serveur de base de données, vous devez écrire du code pour pouvoir vous connecter, envoyer des requêtes au serveur, etc. Un logiciel est nécessaire pour assurer l'interface que PHP va utiliser et gèrer les communications entre votre application et le serveur de base de données : éventuellement, des bibliothèques intermédiaires sont nécessires. Ces logiciels sont appelés de manière générique des connecteurs, car ils permettent de se connecter à un serveur de base de données.

Qu'est-ce qu'un pilote ?

Un pilote est un logiciel qui est conçu pour communiquer avec un type particulier de base de données. Un pilote peut aussi être appelé une bibliothèque, telle que la MySQL Client Library ou le MySQL Native Driver. Ces bibliothèques implémentent le protocole de bas niveau pour communiquer avec un serveur MySQL.

Par exemple, la couche d'abstraction de base de données PHP Data Objects (PDO) utilise un ou plusieurs pilotes de base de données. Un de ces pilote est le pilote PDO MYSQL, qui permet de faire l'interface avec MySQL.

Parfois, les développeurs utilisent les termes de connecteur et de pilote de manière interchangeable, et cela peut être confus. Dans les documentations MySQL, le terme de "pilote" est réservé aux logiciels qui sont la face spécifique avec la base de données du paquet.

Qu'est-ce qu'une extension?

Dans la documentation PHP, vous rencontrerez un autre terme : extension. Le code PHP est constitué d'un coeur, avec des extensions optionnelles. Les extensions MySQL de PHP, telles que mysqli et mysql, sont implémentées avec le framework PHP.

Une extension expose typiquement une API à un programmeur PHP, pour lui permettre de faciliter sa programmation. Cependant, certaines extensions qui utilisent le framework PHP n'exposent pas d'API au développeur PHP.

L'extension de pilote PDO MySQL, par exemple, n'expose pas d'API au pgrammeur PHP, mais fournit une interface à la couche PDO.

Les termes API et extension ne devraient pas signifier la même chose, car une extension PHP ne fournit pas d'API particulière au pgorammeur PHP.

Quelles sont les API PHP pour MySQL?

Il y a trois API principales pour se connecter à MySQL :

  • L'extension mysql

  • L'extension mysqli

  • PHP Data Objects (PDO)

Chacune a ses avantages et ses inconvénients. Les sections suivantes tendent à vous donner une présentation rapide de chaque API.

Qu'est-ce que l'extension mysql de PHP?

C'est l'extension originelle, conçue pour réaliser des applications PHP qui sont en interaction avec une base MySQL. L'extension mysql fournit une interfac procédurale, et est destinée à une utilisation avec les serveurs MySQL versions 4.1.3 et plus anciennes. Cette extension peut être utilisée avec les versions de MySQL 4.1.3 et plus récente, mais elle ne pourra pas tirer parter des nouvelles fonctionnalités.

Note:

Si vous utilisez MySQL versions 4.1.3 ou plus récent, il est fortement recommandé d'utiliser l'extension mysqli.

Le code source de l'extension mysql est située dans le dossier d'extension PHP ext/mysql.

Pour plus d'informations sur l'extension mysql, voyez MySQL.

Qu'est-ce que l'extension mysqli de PHP?

L'extension mysqli, ou, comme elle est parfois appelée, l'extension MySQL améliorée (i pour improved en anglais), a été développée pour tirer partir des nouvelles fonctionnalités des systèmes MySQL version 4.1.3 et plus récent. L'extension mysqli est inclue dans PHP depuis les versions 5.

L'extension mysqli a un grand nombre d'avantages et d'améliorations par rapport à l'extension mysql :

  • Interface orientée objet

  • Support des commandes préparées

  • Support des commandes multiples

  • Support des Transactions

  • Capacités de déboguage avancées

  • Support du serveur embarqué

Note:

Si vous utilisez MySQL versions 4.1.3 ou plus récent, il est fortement recommandé d'utiliser cette extension.

En plus d'une interface orientée objet, l'extension propose aussi une interface procédurale.

L'extension mysqli est compilée avec le framework PHP, et son code source est rangé dans le dossier ext/mysqli.

Pour plus d'informations sur l'extension mysqli, voyez mysqli.

Qu'est-ce que l'extension PDO de PHP?

PHP Data Objects, ou PDO, est une couche d'abstraction de base de données, spécifique à PHP. PDO propose une API cohérente pour vos applications PHP, indépendamment du type de base de données avec laquelle vous travaillez. En théorie, si vous utilisez PDO, vous pouvez changer de base de données, disons de Firebird à MySQL, et ne faire que des changements mineurs à votre code PHP.

D'autres exemples de couches d'abstraction de base de données incluent JDBC pour Java et DBI pour Perl.

Si PDO has ses avantages, comme une API propre, simple et portable, ses inconvénients principaux sont qu'elle ne vous permet pas d'utiliser toutes les fonctionnalités avancées des dernières versions de MySQL. Par exemple, PDO ne vous permet pas de faire des requêtes multiples.

PDO est implémenté en utilisant le framework PHP, et son code source est rangé dans le dossier ext/pdo.

Pour plus d'informations sur PDO, voyez PDO.

Qu'est-ce que le pilote MySQL pour PDO ?

Le pilote PDO MYSQL n'est pas une API en temps que tel, au moins du point de vue du développeur PHP. En fait, le pilote PDO MYSQL fait partie de PDO, et fournit les fonctionnalités particulières à MySQL. Le programmeur appelle l'API PDO, mais PDO utilise le pilote PDO MYSQL pour assurer les communications avec MySQL.

Le pilote PDO MYSQL fait partie de la grande famille des pilotes PDO. Les auters pilotes disponibles assurent les communications avec Firebird et PostgreSQL, entre autres.

Le pilote PDO MYSQL est implémenté avec le framework d'extension de PHP. Son code source est situé dans le dossier ext/pdo_mysql. Il n'exposet aucune API au programmeur PHP.

Pour plus de détails sur le pilote PDO de MySQL, voyez MySQL (PDO).

What is PHP's MySQL Native Driver?

Pour communiquer avec le serveur MySQL, les extensions mysql , mysqli et le pilote PDO MYSQL utilisent tous une bibliothèque bas niveau qui implémente le protocole MySQL. Par lepassé, la seule bibliothèque disponible était la MySQL Client Library, aussi appelée libmysql.

Cependant, l'interface présentée par libmysql n'était pas optimisée pour les communications avec PHP, et libmysql était conçue à l'origine en C, pour des applications de même type. Pour cette raison, le pilote MySQL natif mysqlnd a été développé comme une alternative à libmysql pour les applications PHP.

Les extensions mysql, mysqli et le pilote MySQL natif peuvent chacun utiliser libmysql ou mysqlnd. Comme mysqlnd a été conçu spécifique pour utiliser le système PHP, il propose de nombreux avantages et améliorations par rapport à libmysql. Vous êtes vivement encouragés à en profiter.

Note:

Le MySQL Native Driver ne peut être utilisé qu'avec le serveur MySQL versions 4.1.3 et plus récent.

Le MySQL Native Driver est implémenté sur la base du framework d'extension PHP. Le code source est dans ext/mysqlnd. Il n'expose aucune nouvelle API au programmeur PHP.

Comparaison des fonctionnalités

La table suivante compare les fonctionnalités des trois méthodes principales pour se connecter à MySQL depuis PHP :

  Extension mysqli PDO (avec le pilote PDO MySQL Driver et MySQL Native Driver) Extension MySQL
Version d'introduction en PHP 5.0 5.0 Avant 3.0
Inclus en PHP 5.x yes yes Oui
Statut de développement MySQL Développement actif Développement actif depuis PHP 5.3 Maintenance uniquement
Recommandée pour les nouveaux projets MySQL Oui, et recommandée Oui Non
L'API supporte les jeux de caractères Oui Oui Non
L'API supporte les commandes préparées Oui Oui Non
L'API supporte les commandes préparées coté client Non Oui Non
L'API supporte les procédures stockées Oui Oui Non
L'API supporte les commandes multiples Oui La plupart Non
Toutes toutes les fonctionnalités MySQL 4.1 et plus récent Oui La plupart Non


Installation/Configuration

Sommaire


Pré-requis

Pour faire fonctionner ces fonctions, vous devez compiler PHP avec le support de l'extension MySQLi.

Note:

L'extension MySQLi est conçue pour fonctionner avec la version 4.1.13 ou plus récent, et 5.0.7 et plus récent, de MySQL. Pour les versions plus anciennes, voyez la documentation de l'extension MySQL.



Installation

L'extension mysqli a été introduite dans PHP 5.0.0. Le pilote natif MySQL (MySQL Native Driver) a été introduit dans PHP 5.3.0.

Installation sur Linux

Les distributions Linux incluent des versions binaires de PHP qui peuvent être installées. Même si ces binaires sont construits avec les extensions MySQL activées, les bibliothèques clientes doivent souvent être installées au moyen d'un paquet additionnel. Voyez si c'est le cas pour votre distribution.

A moins que votre distribution Linux ne fournisse de paquet binaire pour PHP embarquant l'extension mysqli, vous allez devoir construire PHP depuis les sources. Cela permet de préciser les extensions MySQL à embarquer, mais aussi les bibliothèques clientes de chaque extension.

PHP 5.0, 5.1, 5.2

Si construit depuis les sources, pour embarquer l'extension mysqli, vous devrez configurer ces sources. Cela est possible au moyen du script configure et de l'option --with-mysqli=mysql_config_path/mysql_config . Ceci activera mysqli et elle utilisera la bibliothèque cliente MySQL Client Library (libmysql) pour communiquer avec le serveur MySQL.

mysql_config_path représente l'endroit où se trouve le programme mysql_config fourni avec le serveur MySQL.

PHP 5.3.0+

A partir de PHP 5.3.0, mysqli utilise par défaut MySQL Native Driver. Elle offre plein de possibilités supplémentaires par rapport à libmysql.

C'est d'ailleurs l'option recommandée, car utiliser MySQL Native Driver améliore les performances et donne accès à des fonctionnalités qui ne sont pas disponibles avec MySQL Client Library (libmysql). Voyez Qu'est ce que MySQL Native Driver pour PHP? pour un bref aperçu des avantages de MySQL Native Driver.

Pour utiliser MySQL Native Driver avec mysqli vous devez configurer les sources de PHP avec l'option --with-mysqli=mysqlnd .

Notez qu'il est possible de mixer les extensions MySQL ainsi que les bibliothèques clientes. par exemple il est possible d'activer l'extension mysql liée avec MySQL Client Library (libmysql) tout en ayant l'extension mysqli liée avec MySQL Native Driver. Toutes les permutations sont possibles.

L'exemple suivant construit l'extension mysql pour utiliser la bibliothèque cliente MySQL Client Library, et mysqli ainsi que PDO MYSQL pour utiliser la bibliothèque cliente MySQL Native Driver:

./configure --with-mysql=/usr/bin/mysql_config  \
  --with-mysqli=mysqlnd \
  --with-pdo-mysql=mysqlnd
  [other options]

Installation sur les systèmes Windows

Sur Windows, PHP est généralement installé avec un installeur binaire.

PHP 5.0, 5.1, 5.2

Une fois PHP installé, certaines configurations demanderont l'activation de mysqli et la précision de la bibliothèque cliente à utiliser avec.

L'extension mysqli n'est pas activée par défaut, donc la DLL php_mysqli.dll doit être activée dans php.ini. Pour cela, trouvez le fichier php.ini (souvent c:\php) et enlevez le caractère de commentaire (;) devant la ligne extension=php_mysqli.dll dans la section [PHP_MYSQLI].

Aussi, si vous voulez utiliser MySQL Client Library avec mysqli, vous devez vérifier que PHP a accès à ce fichier. La MySQL Client Library est incluse dans le fichier libmysql.dll de la distribution Windows de PHP. Ce fichier doit se trouver dans le PATH de Windows pour pouvoir être chargé sans problème. Voyez la FAQ intitulée "Comment puis-je ajouter mon dossier PHP au PATH de Windows" pour plus d'informations. Copier le fichier libmysql.dll dans le dossier système de Windows fonctionne aussi (souvent c:\Windows\system) car ce dossier est par défaut présent dans le PATH de Windows. Cependant, cette pratique est hautement découragée.

Pour activer une extension PHP (telle que php_mysqli.dll), la directive PHP extension_dir doit pointer vers le dossier contenant les extensions PHP. Voyez aussi Installation manuelle sous Windows . Par exemple, extension_dir pourrait valoir c:\php\ext.

Note:

Si lorsque vous démarrez le serveur web, une erreur telle que "Unable to load dynamic library './php_mysqli.dll'" se produit, c'est que php_mysqli.dll et/ou libmysql.dll ne peut être trouvée sur le système.

PHP 5.3.0+

Sur Windows, pour PHP 5.3 ou supérieur, l'extension mysqli est activée par défaut et utilise MySQL Native Driver par défaut. Ceci signifie que vous n'avez pas à vous inquiéter au sujet de libmysql.dll.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MySQLi
Nom Défaut Modifiable Historique
mysqli.allow_persistent "1" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqli.max_persistent "-1" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqli.max_links "-1" PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
mysqli.default_port "3306" PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_socket NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_host NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_user NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_pw NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.reconnect "0" PHP_INI_SYSTEM Disponible depuis PHP 4.3.5.
mysqli.allow_local_infile "1" PHP_INI_SYSTEM Disponible depuis PHP 5.2.4.
mysqli.cache_size "2000" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Pour plus de détails et de définitions concernant les constantes PHP_INI_* ci-dessus, reportez-vous au chapitre sur les modifications de configuration.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqli.allow_persistent integer

Active la possibilité de créer des connexions persistantes en utilisant la fonction mysqli_connect().

mysqli.persistent integer

Nombre maximal de connexions persistantes pouvant être réalisé. Par défaut, vaut 0, ce qui signifie "illimité".

Le nombre maximal de connexions MySQL par processus, incluant les connexions persistantes.

mysqli.default_port integer

Le numéro par défaut de port TCP à utiliser lors de la connexion au serveur si aucun autre port n'est fourni. S'il n'est pas défini, le port sera obtenu à partir de la variable d'environnement MYSQL_TCP_PORT, l'entrée mysql-tcp dans /etc/services ou la constante de compilation MYSQL_PORT, dans cet ordre. Win32 n'utilisera que la constante MYSQL_PORT.

mysqli.default_socket string

Le nom par défaut de la socket à utiliser lors des connexions locales au serveur si aucun autre nom n'est fourni.

mysqli.default_host string

Le serveur par défaut à utiliser lors de la connexion à un serveur si aucun autre hôte n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_user string

Le nom d'utilisateur par défaut à utiliser lors de la connexion à un serveur si aucun autre nom n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_pw string

Le mot de passe par défaut à utiliser lors de la connexion à un serveur si aucun autre mot de passe n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.reconnect integer

Reconnexion automatique si la connexion est interrompue.

mysqli.allow_local_infile integer

mysqli.cache_size integer

Disponible uniquement avec mysqlnd.

Les utilisateurs ne peuvent changer MYSQL_OPT_READ_TIMEOUT via un appel de l'API ou au runtime. Notez que même si c'était possible, il y aurait des différences sur les manières de l'interpreter par libmysql ou les flux.



Types de ressources

Cette extension ne définit aucune ressource.




L'extension mysqli et les connexions persistantes

Les connexions persistantes ont été ajoutés en PHP 5.3 pour l'extension mysqli. Le support est déjà présent dans PDO_MYSQL et ext/mysql. L'idée derrière les connexions persistantes est que les connexions entre les clients et la base peuvent être réutilisés par un autre processus client, au lieu d'être détruits et recréés de nombreuses fois. Cela réduit le coût de création des connexions à chaque fois que l'une d'entre elle est requise, car les connexions sont mises en cache pour être recyclées.

Contrairement à l'extension MySQL, MySQLi ne fournit pas de fonction séparée pour ouvrir des connexions persistantes. Pour ouvrir une connexion persistante, vous devez ajouter p: au nom de l'hôte lors de la connexion.

Le problème des connexions persistantes est qu'elles peuvent être laissées dans un état imprévisible, par les clients. Par exemple, un verrou de table peut avoir été posé avant que le client ne se déconnecte inopinément. Un nouveau client va alors prendre la connexion, mais "tel quel". Il faudrait alors que le nouveau venu effectue un nettoyage en profondeur de la connexion avant de pouvoir la réutiliser sans parasitage, ce qui est un inconvénient pour le programmeur.

La connexion persistante de l'extension mysqli fournit une méthode de nettoyage automatique. Le nettoyage est effectué par mysqli et inclut :

  • L'annulation des transactions actives.

  • La fermeture et destruction des tables temporaires.

  • Le déverrouillage des tables

  • La remise à la valeur par défaut les variables de sessions

  • La libération des commandes préparées (cela arrive toujours avec PHP)

  • La fermeture du gestionnaire

  • La libération des verrous posés par GET_LOCK()

Cela assure que la connexion persistante est dans une condition correcte avant d'être remise dans le groupe de connexion, et qu'un client différent la reprenne.

L'extension mysqli effectue ce nettoyage e appelant automatiquement la fonction C mysql_change_user().

Le nettoyage automatique a ses avantages et ses inconvénients. L'avantage est que le programmeurs n'a pas besoin de s'en inquiéter, car il est appelé automatiquement. Cependant, l'inconvénient est que ce code peut éventuellement être un peu plus lent, car il doit être appelé à chaque fois que la connexion est retournée dans le groupe d'attente.

Il est possible de désactiver le nettoyage du code, en compilant PHP avec l'option MYSQLI_NO_CHANGE_USER_ON_PCONNECT.

Note:

L'extension mysqli supporte les connexions persistantes avec le MySQL Native Driver et avec la bibliothèque MySQL.



Constantes pré-définies

MYSQLI_READ_DEFAULT_GROUP

Lit les options dans le groupe my.cnf ou dans le fichier spécifié par MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE

Lit les options dans le fichier spécifié, plutôt que dans my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT

Durée d'expiration de la connexion, en secondes

MYSQLI_OPT_LOCAL_INFILE

Active la commande LOAD LOCAL INFILE

MYSQLI_INIT_COMMAND

Commande à exécuter lors de la connexion au serveur MySQL. Cette commande sera exécutée automatiquement lors de la reconnexion au serveur.

MYSQLI_CLIENT_SSL

Utilise le protocole SSL (chiffrement). Cette option ne doit pas être activée par un programme : elle doit être activée en interne, par la bibliothèque MySQL.

MYSQLI_CLIENT_COMPRESS

Utilise le protocole compressé

MYSQLI_CLIENT_INTERACTIVE

Permet interactive_timeout secondes (au lieu de wait_timeout secondes) d'inactivité avant de fermer la connexion. La valeur de la variable wait_timeout du client prendra la valeur de interactive_timeout.

MYSQLI_CLIENT_IGNORE_SPACE

Permet les espaces après un nom de fonction. Cela fait de tous les noms de fonctions, des mots réservés.

MYSQLI_CLIENT_NO_SCHEMA

Interdit la syntaxe db_name.tbl_name.col_name.

MYSQLI_CLIENT_MULTI_QUERIES

Permet plusieurs requêtes séparées par un point-virgule dans un seul appel à la fonction mysqli_query().

MYSQLI_STORE_RESULT

Pour les résultats mis en tampon

MYSQLI_USE_RESULT

Pour les résultats non-mis en tampon

MYSQLI_ASSOC

Les colonnes sont retournées dans le tableau, avec leurs noms comme index.

MYSQLI_NUM

Les colonnes sont retournées dans le tableau, avec leurs numéros comme index.

MYSQLI_BOTH

Les colonnes sont retournées dans le tableau, avec leurs noms et leurs numéros comme index.

MYSQLI_NOT_NULL_FLAG

Indique qu'un champ est défini comme NOT NULL

MYSQLI_PRI_KEY_FLAG

Le champ est une clé primaire

MYSQLI_UNIQUE_KEY_FLAG

Le champ est un index unique

MYSQLI_MULTIPLE_KEY_FLAG

Le champ fait partie d'un index

MYSQLI_BLOB_FLAG

Le champ est de type BLOB

MYSQLI_UNSIGNED_FLAG

Le champ est de type UNSIGNED

MYSQLI_ZEROFILL_FLAG

Le champ est de type ZEROFILL

MYSQLI_AUTO_INCREMENT_FLAG

Le champ est de type AUTO_INCREMENT

MYSQLI_TIMESTAMP_FLAG

Le champ est de type TIMESTAMP

MYSQLI_SET_FLAG

Le champ est de type SET

MYSQLI_NUM_FLAG

Le champ est de type NUMERIC

MYSQLI_PART_KEY_FLAG

Le champ fait partie d'un index multiple

MYSQLI_GROUP_FLAG

Le champ fait partie de la clause GROUP BY

MYSQLI_TYPE_DECIMAL

Le champ est de type DECIMAL

MYSQLI_TYPE_NEWDECIMAL

Le champ est de type DECIMAL ou NUMERIC (MySQL 5.0.3 et supérieur)

MYSQLI_TYPE_BIT

Le champ est de type BIT (MySQL 5.0.3 et supérieur)

MYSQLI_TYPE_TINY

Le champ est de type TINYINT

MYSQLI_TYPE_SHORT

Le champ est de type SMALLINT

MYSQLI_TYPE_LONG

Le champ est de type INT

MYSQLI_TYPE_FLOAT

Le champ est de type FLOAT

MYSQLI_TYPE_DOUBLE

Le champ est de type DOUBLE

MYSQLI_TYPE_NULL

Le champ est de type DEFAULT NULL

MYSQLI_TYPE_TIMESTAMP

Le champ est de type TIMESTAMP

MYSQLI_TYPE_LONGLONG

Le champ est de type BIGINT

MYSQLI_TYPE_INT24

Le champ est de type MEDIUMINT

MYSQLI_TYPE_DATE

Le champ est de type DATE

MYSQLI_TYPE_TIME

Le champ est de type TIME

MYSQLI_TYPE_DATETIME

Le champ est de type DATETIME

MYSQLI_TYPE_YEAR

Le champ est de type YEAR

MYSQLI_TYPE_NEWDATE

Le champ est de type DATE

MYSQLI_TYPE_INTERVAL

Le champ est de type INTERVAL

MYSQLI_TYPE_ENUM

Le champ est de type ENUM

MYSQLI_TYPE_SET

Le champ est de type SET

MYSQLI_TYPE_TINY_BLOB

Le champ est de type TINYBLOB

MYSQLI_TYPE_MEDIUM_BLOB

Le champ est de type MEDIUMBLOB

MYSQLI_TYPE_LONG_BLOB

Le champ est de type LONGBLOB

MYSQLI_TYPE_BLOB

Le champ est de type BLOB

MYSQLI_TYPE_VAR_STRING

Le champ est de type VARCHAR

MYSQLI_TYPE_STRING

Le champ est de type STRING

MYSQLI_TYPE_CHAR

Le champ est de type CHAR

MYSQLI_TYPE_GEOMETRY

Le champ est de type GEOMETRY

MYSQLI_NEED_DATA

Il reste des variables à relier

MYSQLI_NO_DATA

Il n'y a plus de variables à relier

MYSQLI_DATA_TRUNCATED

Les données ont été tronquées. Disponible depuis PHP 5.1.0 et MySQL 5.0.5.

MYSQLI_ENUM_FLAG

Le champ est défini comme ENUM. Disponible depuis PHP 5.3.0.

MYSQLI_CURSOR_TYPE_FOR_UPDATE

MYSQLI_CURSOR_TYPE_NO_CURSOR

MYSQLI_CURSOR_TYPE_READ_ONLY

MYSQLI_CURSOR_TYPE_SCROLLABLE

MYSQLI_STMT_ATTR_CURSOR_TYPE

MYSQLI_STMT_ATTR_PREFETCH_ROWS

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH

MYSQLI_SET_CHARSET_NAME



Notes

Quelques notes sur l'implémentation :

  1. Le support de MYSQL_TYPE_GEOMETRY a été ajouté à l'extension MySQLI en PHP 5.3.

  2. Notez qu'il y a des différences internes d'implémentations entre libmysql et mysqlnd pour gérer les colonnes de type MYSQL_TYPE_GEOMETRY. D'un point de vue général, mysqlnd alloue beaucoup moins de mémoire. Par exemple, s'il y a une colonne de type POINT dans le jeu de résultats, libmysql allouera environ 4GB de RAM alors qu'il ne faut que 50 octets pour gérer une colonne de type POINT en mémoire. L'allocation mémoire est encore plus faible que 50 octets lors de l'utilisation de mysqlnd.



Sommaire des fonctions de l'extension MySQLi

Classe MySQLi
Interface POO Interface procédural Alias (Ne plus utiliser) Description
Propriétés
$mysqli->affected_rows mysqli_affected_rows() N/A Retourne le nombre de lignes affectées par la dernière opération MySQL
$mysqli->client_info mysqli_get_client_info() N/A Retourne la version du client MySQL sous la forme d'une chaîne de caractères
$mysqli->client_version mysqli_get_client_version() N/A Retourne l'information sur la version du client MySQL sous la forme d'un entier
$mysqli->connect_errno mysqli_connect_errno() N/A Retourne le code d'erreur de la connexion MySQL
$mysqli->connect_error mysqli_connect_error() N/A Retourne le message d'erreur de la connexion MySQL
$mysqli->errno mysqli_errno() N/A Retourne le code d'erreur de connexion MySQL
$mysqli->error mysqli_error() N/A Retourne le message d'erreur de connexion MySQL
$mysqli->field_count mysqli_field_count() N/A Retourne le nombre de colonnes pour la dernière requête
$mysqli->host_info mysqli_get_host_info() N/A Retourne une chaîne contenant le type de connexion utilisée
$mysqli->protocol_version mysqli_get_proto_info() N/A Retourne la version du protocole MySQL utilisé
$mysqli->server_info mysqli_get_server_info() N/A Retourne un entier représentant la version du serveur MySQL
$mysqli->server_version mysqli_get_server_version() N/A Retourne la version du serveur MySQL
$mysqli->info mysqli_info() N/A Retourne des informations à propos de la dernière requête exécutée
$mysqli->insert_id mysqli_insert_id() N/A Retourne l'identifiant automatiquement généré par la dernière requête
$mysqli->sqlstate mysqli_sqlstate() N/A Retourne l'erreur SQLSTATE de la dernière opération MySQL
$mysqli->warning_count mysqli_warning_count() N/A Retourne le nombre d'avertissements générés par la dernière requête
Méthodes
mysqli->autocommit() mysqli_autocommit() N/A Active ou désactive le mode auto-commit
mysqli->change_user() mysqli_change_user() N/A Change l'utilisateur de la connexion spécifiée
mysqli->character_set_name(), mysqli->client_encoding mysqli_character_set_name() mysqli_client_encoding() Retourne le jeu de caractères courant pour la connexion
mysqli->close() mysqli_close() N/A Ferme une connexion
mysqli->commit() mysqli_commit() N/A Valide la transaction courante
mysqli::__construct() mysqli_connect() N/A Ouvre une connexion à un serveur MySQL
mysqli->debug() mysqli_debug() N/A Effectue des actions de déboguage
mysqli->dump_debug_info() mysqli_dump_debug_info() N/A Écrit les informations de déboguage dans les logs
mysqli->get_charset() mysqli_get_charset() N/A Retourne un objet représentant le jeu de caractères
mysqli->get_connection_stats() mysqli_get_connection_stats() N/A Retourne des statistiques sur la connexion du client. Disponible uniquement avec mysqlnd.
mysqli->get_client_info() mysqli_get_client_info() N/A Retourne une chaîne contenant la version du client MySQL
mysqli->get_client_stats() mysqli_get_client_stats() N/A Retourne les statistiques du client MySQL. Disponible uniquement avec mysqlnd.
mysqli->get_cache_stats() mysqli_get_cache_stats() N/A Retourne les statistiques de cache Zval. Disponible uniquement avec mysqlnd.
mysqli->get_server_info() mysqli_get_server_info() N/A Non documenté
mysqli->get_warnings() mysqli_get_warnings() N/A Non documenté
mysqli::init() mysqli_init() N/A Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
mysqli->kill() mysqli_kill() N/A Demande au serveur de terminer un thread MySQL
mysqli->more_results() mysqli_more_results() N/A Vérifie s'il y a d'autres jeux de résultats MySQL disponibles
mysqli->multi_query() mysqli_multi_query() N/A Exécute une requête MySQL multiple
mysqli->next_result() mysqli_next_result() N/A Prépare le prochain résultat d'une requête multiple
mysqli->options() mysqli_options() mysqli_set_opt() Définit les options
mysqli->ping() mysqli_ping() N/A Ping la connexion au serveur et reconnecte si elle n'existe plus
mysqli->prepare() mysqli_prepare() N/A Prépare une requête SQL pour l'exécution
mysqli->query() mysqli_query() N/A Exécute une requête sur la base de données
mysqli->real_connect() mysqli_real_connect() N/A Ouvre une connexion à un serveur MySQL
mysqli->real_escape_string(), mysqli->escape_string() mysqli_real_escape_string() mysqli_escape_string() Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête
mysqli->real_query() mysqli_real_query() N/A Exécute une requête SQL
mysqli->rollback() mysqli_rollback() N/A Annule la transaction courante
mysqli->select_db() mysqli_select_db() N/A Sélectionne une base de données par défaut pour les requêtes
mysqli->set_charset() mysqli_set_charset() N/A Définit le jeu de caractères par défaut du client
mysqli->set_local_infile_default() mysqli_set_local_infile_default() N/A Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE
mysqli->set_local_infile_handler() mysqli_set_local_infile_handler() N/A Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE
mysqli->ssl_set() mysqli_ssl_set() N/A Utilisée pour établir une connexion sécurisée avec SSL
mysqli->stat() mysqli_stat() N/A Obtient le statut courant du système
mysqli->stmt_init() mysqli_stmt_init() N/A Initialise une commande MySQL
mysqli->store_result() mysqli_store_result() N/A Transfère un jeu de résultats à partir de la dernière requête
mysqli->thread_id() mysqli_thread_id() N/A Retourne l'identifiant du thread pour la connexion courante
mysqli->thread_safe() mysqli_thread_safe() N/A Indique si le support des threads est activé ou pas
mysqli->use_result() mysqli_use_result() N/A Initialise la récupération d'un jeu de résultats
MySQL_STMT
Interface POO Interface procédural Alias (Ne plus utiliser) Description
Propriétés
$mysqli_stmt->affected_rows mysqli_stmt_affected_rows() N/A Le nombre total de lignes modifiées, effacées ou insérées par la dernière
$mysqli_stmt->errno mysqli_stmt_errno() N/A Le code erreur de la dernière requête
$mysqli_stmt->error mysqli_stmt_error() N/A Le message d'erreur de la dernière requête
$mysqli_stmt->field_count mysqli_stmt_field_count() N/A Le nombre de champs présent dans la requête donnée
$mysqli_stmt->insert_id mysqli_stmt_insert_id() N/A L'ID généré par la dernière requête INSERT
$mysqli_stmt->num_rows mysqli_stmt_num_rows() N/A Le nombre de lignes d'un résultat MySQL
$mysqli_stmt->param_count mysqli_stmt_param_count() mysqli_param_count() Le nombre de paramètre d'une commande SQL
$mysqli_stmt->sqlstate mysqli_stmt_sqlstate() N/A Le code SQLSTATE de la dernière opération MySQL
Méthodes
mysqli_stmt->attr_get() mysqli_stmt_attr_get() N/A Récupère la valeur courante d'un attribut de requête
mysqli_stmt->attr_set() mysqli_stmt_attr_set() N/A Modifie le comportement d'une requête préparée
mysqli_stmt->bind_param() mysqli_stmt_bind_param() mysqli_bind_param() Lie des variables à une requête MySQL
mysqli_stmt->bind_result() mysqli_stmt_bind_result() mysqli_bind_result() Lie des variables à un jeu de résultats
mysqli_stmt->close() mysqli_stmt_close() N/A Termine une requête préparée
mysqli_stmt->data_seek() mysqli_stmt_data_seek() N/A Déplace le pointeur de résultat
mysqli_stmt->execute() mysqli_stmt_execute() mysqli_execute() Exécute une requête préparée
mysqli_stmt->fetch() mysqli_stmt_fetch() mysqli_fetch() Lit des résultats depuis une requête MySQL préparée dans des variables liées
mysqli_stmt->free_result() mysqli_stmt_free_result() N/A Libère le résultat MySQL de la mémoire
mysqli_stmt->get_result() mysqli_stmt_get_result() N/A Récupère le jeu de résultats depuis une requête préparée. Disponible uniquement avec mysqlnd.
mysqli_stmt->get_warnings() mysqli_stmt_get_warnings() N/A Non documenté
$mysqli_stmt->more_results() mysqli_stmt_more_results() N/A Non documenté. Disponible uniquement avec mysqlnd.
$mysqli_stmt->next_result() mysqli_stmt_next_result() N/A Non documenté. Disponible uniquement avec mysqlnd.
mysqli_stmt->num_rows() mysqli_stmt_num_rows() N/A Voir aussi la propriété $mysqli_stmt->num_rows
mysqli_stmt->prepare() mysqli_stmt_prepare() N/A Prépare une requête SQL pour l'exécution
mysqli_stmt->reset() mysqli_stmt_reset() N/A Annule une requête préparée
mysqli_stmt->result_metadata() mysqli_stmt_result_metadata() mysqli_get_metadata() Retourne les métadonnées de préparation de requête MySQL
mysqli_stmt->send_long_data() mysqli_stmt_send_long_data() mysqli_send_long_data() Envoie des données MySQL par paquets
mysqli_stmt->store_result() mysqli_stmt_store_result() N/A Stocke un jeu de résultats depuis une requête préparée
MySQLi_RESULT
Interface POO Interface procédural Alias (Ne plus utiliser) Description
Propriétés
$mysqli_result->current_field mysqli_field_tell() N/A La position courante d'un champ dans un pointeur de résultat
$mysqli_result->field_count mysqli_num_fields() N/A Le nombre de champs dans un résultat
$mysqli_result->lengths mysqli_fetch_lengths() N/A Les tailles des champs dans un résultat
$mysqli_result->num_rows mysqli_num_rows() N/A Le nombre de lignes dans un résultat
Méthodes
mysqli_result->data_seek() mysqli_data_seek() N/A Déplace le pointeur interne de résultat
mysqli_result->fetch_all() mysqli_fetch_all() N/A Lit toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux. Disponible uniquement avec mysqlnd.
mysqli_result->fetch_array() mysqli_fetch_array() N/A Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
mysqli_result->fetch_assoc() mysqli_fetch_assoc() N/A Récupère une ligne de résultat sous forme de tableau associatif
mysqli_result->fetch_field_direct() mysqli_fetch_field_direct() N/A Récupère les métadonnées d'un champ unique
mysqli_result->fetch_field() mysqli_fetch_field() N/A Retourne le prochain champs dans le jeu de résultats
mysqli_result->fetch_fields() mysqli_fetch_fields() N/A Retourne un tableau d'objets représentant les champs dans le résultat
mysqli_result->fetch_object() mysqli_fetch_object() N/A Retourne la ligne courante d'un jeu de résultat sous forme d'objet
mysqli_result->fetch_row() mysqli_fetch_row() N/A Récupère une ligne de résultat sous forme de tableau indexé
mysqli_result->field_seek() mysqli_field_seek() N/A Déplace le pointeur de résultat sur le champs spécifié
mysqli_result->free(), mysqli_result->close, mysqli_result->free_result mysqli_free_result() N/A Libère la mémoire associée à un résultat
MySQL_Driver
Interface POO Interface procédural Alias (Ne plus utiliser) Description
Propriétés
N/A
Méthodes
mysqli_driver->embedded_server_end() mysqli_embedded_server_end() N/A Non documenté
mysqli_driver->embedded_server_start() mysqli_embedded_server_start() N/A Non documenté

Note:

Les alias sont fournies pour assurer la compatibilité ascendante. Ne les utilisez pas dans de nouveaux projets.



La classe MySQLi

Introduction

Représente une connexion entre PHP et une base de données MySQL.

Synopsis de la classe

MySQLi {
/* Propriétés */
int $affected_rows;
string $client_info;
int $client_version;
string $connect_errno;
string $connect_error;
int $errno;
string $error;
int $field_count;
int $client_version;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
mixed $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Méthodes */
int MySQLi::mysqli_affected_rows ( mysqli $link )
bool mysqli::autocommit ( bool $mode )
bool mysqli::change_user ( string $user , string $password , string $database )
string mysqli_get_client_info ( mysqli $link )
bool mysqli::close ( void )
bool mysqli::commit ( void )
int mysqli_connect_errno ( void )
string mysqli_connect_error ( void )
mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
bool mysqli::debug ( string $message )
int mysqli_errno ( mysqli $link )
string mysqli_error ( mysqli $link )
int mysqli_field_count ( mysqli $link )
object mysqli::get_charset ( void )
string mysqli::get_client_info ( void )
array mysqli_get_client_stats ( void )
string mysqli_get_host_info ( mysqli $link )
string mysqli_get_server_info ( mysqli $link )
mysqli_warning mysqli::get_warnings ( void )
string mysqli_info ( mysqli $link )
mysqli mysqli::init ( void )
mixed mysqli_insert_id ( mysqli $link )
bool mysqli::kill ( int $processid )
bool mysqli::more_results ( void )
bool mysqli::multi_query ( string $query )
bool mysqli::next_result ( void )
bool mysqli::options ( int $option , mixed $value )
bool mysqli::ping ( void )
public int mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
mysqli_stmt mysqli::prepare ( string $query )
mixed mysqli::query ( string $query [, int $resultmode ] )
bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )
string mysqli::escape_string ( string $escapestr )
bool mysqli::real_query ( string $query )
public mysqli_result mysqli::reap_async_query ( void )
bool mysqli::rollback ( void )
bool mysqli::select_db ( string $dbname )
bool mysqli::set_charset ( string $charset )
bool mysqli::set_local_infile_handler ( mysqli $link , callback $read_func )
string mysqli_sqlstate ( mysqli $link )
bool mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
string mysqli::stat ( void )
mysqli_stmt mysqli::stmt_init ( void )
mysqli_result mysqli::store_result ( void )
int mysqli_thread_id ( mysqli $link )
bool mysqli_thread_safe ( void )
mysqli_result mysqli::use_result ( void )
}

mysqli->affected_rows

mysqli_affected_rows

(PHP 5)

mysqli->affected_rows -- mysqli_affected_rowsRetourne le nombre de lignes affectées par la dernière opération MySQL

Description

Style orienté objet

int $affected_rows;

Style procédural

int mysqli::mysqli_affected_rows ( mysqli $link )

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE, REPLACE ou DELETE associée au paramètre link.

Pour les requêtes de sélection, la fonction mysqli_affected_rows() fonctionne de la même façon que la fonction mysqli_num_rows().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier plus grand que zéro indique le nombre de lignes affectées ou recherchées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête du type UPDATE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été exécutée. -1 indique que la requête a retourné une erreur.

Note:

Si le nombre de lignes affectées est plus grand que la valeur maximale que peut prendre un entier, le nombre de lignes affectées sera retourné en tant que chaîne de caractères.

Exemples

Exemple #1 Exemple avec mysqli->affected_rows

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Erreur de connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Insertion d'une ligne */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Nombre de lignes affectées (INSERT): %d\n"$mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Modification d'une ligne */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Nombre de lignes affectées (UPDATE): %d\n"$mysqli->affected_rows);

/* Effacement d'une ligne */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Nombre de lignes affectées (DELETE): %d\n"$mysqli->affected_rows);

/* Sélection de toutes les lignes */
$result $mysqli->query("SELECT CountryCode FROM Language");
printf("Nombre de lignes affectées (SELECT): %d\n"$mysqli->affected_rows);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

if (!
$link) {
    
printf("Connexion impossible à localhost. Erreur : %s\n"mysqli_connect_error());
    exit();
}

/* Insertion d'une ligne */
mysqli_query($link"CREATE TABLE Language SELECT * from CountryLanguage");
printf("Nombre de lignes affectées (INSERT): %d\n"mysqli_affected_rows($link));

mysqli_query($link"ALTER TABLE Language ADD Status int default 0");

/* Modification d'une ligne */
mysqli_query($link"UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Nombre de lignes affectées (UPDATE): %d\n"mysqli_affected_rows($link));

/* Effacement d'une ligne */
mysqli_query($link"DELETE FROM Language WHERE Percentage < 50");
printf("Nombre de lignes affectées (DELETE): %d\n"mysqli_affected_rows($link));

/* Selection de toutes les lignes */
$result mysqli_query($link"SELECT CountryCode FROM Language");
printf("Nombre de lignes affectées (SELECT): %d\n"mysqli_affected_rows($link));

mysqli_free_result($result);

/* Effacement de la table "language" */
mysqli_query($link"DROP TABLE Language");

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nombre de lignes affectées (INSERT): 984
Nombre de lignes affectées (UPDATE): 168
Nombre de lignes affectées (DELETE): 815
Nombre de lignes affectées (SELECT): 169

Voir aussi

  • mysqli_num_rows() - Retourne le nombre de lignes dans un résultat
  • mysqli_info() - Retourne des informations à propos de la dernière requête exécutée



mysqli::autocommit

mysqli_autocommit

(PHP 5)

mysqli::autocommit -- mysqli_autocommitActive ou désactive le mode auto-commit

Description

Style orienté objet

bool mysqli::autocommit ( bool $mode )

Style procédural

bool mysqli_autocommit ( mysqli $link , bool $mode )

Active ou désactive le mode auto-commit pour les requêtes sur la connexion.

Pour vérifier l'état de l'auto-commit, utilisez la commande SQL SELECT @@autocommit.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

mode

Si l'on doit activer ou non l'auto-commit.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction ne fonctionne pas avec les types de tables non transactionnelles, comme MyISAM ou ISAM.

Exemples

Exemple #1 Exemple avec mysqli::autocommit()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

if (
mysqli_connect_errno()) {
    
printf("Échec de la connexion. Erreur : %s\n"mysqli_connect_error());
    exit();
}

/* Activation de l'autocommit */
$mysqli->autocommit(TRUE);

if (
$result $mysqli->query("SELECT @@autocommit")) {
    
$row $result->fetch_row();
    
printf("L'autocommit vaut %s\n"$row[0]);
    
$result->free();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

if (!
$link) {
    
printf("Échec de la connexion. Erreur : %s\n"mysqli_connect_error());
    exit();
}

/* Activation de l'autocommit */
mysqli_autocommit($linkTRUE);

if (
$result mysqli_query($link"SELECT @@autocommit")) {
    
$row mysqli_fetch_row($result);
    
printf("L'autocommit vaut %s\n"$row[0]);
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

L'autocommit vaut 1

Voir aussi



mysqli::change_user

mysqli_change_user

(PHP 5)

mysqli::change_user -- mysqli_change_userChange l'utilisateur de la connexion spécifiée

Description

Style orienté objet

bool mysqli::change_user ( string $user , string $password , string $database )

Style procédural

bool mysqli_change_user ( mysqli $link , string $user , string $password , string $database )

Change l'utilisateur de la connexion spécifiée par le paramètre link et change la base de données courante pour celle spécifiée par le paramètre database.

Pour que cette fonction réussisse, les paramètres username et password doivent être valides et l'utilisateur en question doit avoir les permissions d'accès à la base de données désirée. Si pour une raison ou une autre, l'autorisation échoue, l'utilisateur courant sera conservé.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

user

Le nom d'utilisateur MySQL.

password

Le mot de passe MySQL.

database

La base de données à utiliser.

Vous pouvez passer la valeur NULL à ce paramètre pour ne changer que l'utilisateur. Dans ce cas, vous pouvez utiliser la fonction mysqli_select_db() pour changer de base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'utilisation de cette commande implique toujours que la connexion soit considérée comme neuve, que la fonction réussisse ou non. Un appel à cette fonction annulera donc toutes les transactions actives, fermera les tables temporaires et déverrouillera les tables verrouillées.

Exemples

Exemple #1 Exemple avec mysqli::change_user()

Style orienté objet

<?php

/* Connexion à la base de données test */
$mysqli = new mysqli("localhost""my_user""my_password""test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Définition de la variable "a" */
$mysqli->query("SET @a:=1");

/* réinitialise tout et sélectionne une nouvelle base de données */
$mysqli->change_user("my_user""my_password""world");

if (
$result $mysqli->query("SELECT DATABASE()")) {
    
$row $result->fetch_row();
    
printf("Base de données par défaut : %s\n"$row[0]);
    
$result->close();
}

if (
$result $mysqli->query("SELECT @a")) {
    
$row $result->fetch_row();
    if (
$row[0] === NULL) {
        
printf("La valeur de la variable a est NULL\n");
    }
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
/* Connexion à la base de données test */
$link mysqli_connect("localhost""my_user""my_password""test");

/* Vérification de la connexion */
if (!$link) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Définition de la variable "a" */
mysqli_query($link"SET @a:=1");

/* réinitialise tout et sélectionne une nouvelle base de données */
mysqli_change_user($link"my_user""my_password""world");

if (
$result mysqli_query($link"SELECT DATABASE()")) {
    
$row mysqli_fetch_row($result);
    
printf("Base de données par défaut : %s\n"$row[0]);
    
mysqli_free_result($result);
}

if (
$result mysqli_query($link"SELECT @a")) {
    
$row mysqli_fetch_row($result);
    if (
$row[0] === NULL) {
        
printf("La valeur de la variable a est NULL\n");
    }
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Base de données par défaut : world
La valeur de la variable a est NULL

Voir aussi



mysqli::character_set_name

mysqli_character_set_name

(PHP 5)

mysqli::character_set_name -- mysqli_character_set_nameRetourne le jeu de caractères courant pour la connexion

Description

Style orienté objet

string mysqli::character_set_name ( void )

Style procédural

string mysqli_character_set_name ( mysqli $link )

Retourne le jeu de caractères courant pour la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Le jeu de caractères par défaut pour la connexion courante.

Exemples

Exemple #1 Exemple avec mysqli::character_set_name()

Style orienté objet

<?php
/* Ouvre une connexion */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset $mysqli->character_set_name();
printf ("Jeu de caractères courant : %s\n"$charset);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
/* Ouvre une connexion */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (!$link) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affiche le jeu de caractères courant */
$charset mysqli_character_set_name($link);
printf ("Jeu de caractères courant : %s\n",$charset);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Jeu de caractères courant : latin1_swedish_ci

Voir aussi



mysqli->client_info

mysqli_get_client_info

(PHP 5)

mysqli->client_info -- mysqli_get_client_infoRetourne la version du client MySQL, sous la forme d'une chaîne de caractères

Description

Style orienté objet

string $client_info;

Style procédural

string mysqli::mysqli_get_client_info ( mysqli $link )

Retourne une chaîne de caractères représentant la version de la bibliothèque du client MySQL.

Valeurs de retour

Une chaîne de caractères représentant la version de la bibliothèque du client MySQL.

Exemples

Exemple #1 mysqli_get_client_info

<?php

/* Nous n'avons pas besoin d'une connexion pour déterminer
   la version de la bibliothèque du client MySQL */

printf("Version de la bibliothèque du client : %s\n"mysqli_get_client_info());
?>

Voir aussi



mysqli->client_version

mysqli_get_client_version

(PHP 5)

mysqli->client_version -- mysqli_get_client_versionRécupère les informations du client MySQL

Description

Style orienté objet

int $client_version;

Style procédural

int mysqli::mysqli_get_client_version ( mysqli $link )

Retourne le numéro de version du client, sous la forme d'un entier.

Valeurs de retour

Un nombre qui représente la version du client MySQL, au format : main_version*10000 + minor_version *100 + sub_version. Par exemple, 4.1.0 est retourné sous la forme 40100.

Ceci est utile pour déterminer rapidement la version de la bibliothèque cliente, afin d'en connaître les capacités.

Exemples

Exemple #1 mysqli_get_client_version

<?php

/* Nous n'avons pas besoin d'une connexion pour déterminer
   la version de la bibliothèque du client MySQL */

printf("Version de la bibliothèque du client : %d\n"mysqli_get_client_version());
?>

Voir aussi



mysqli::close

mysqli_close

(PHP 5)

mysqli::close -- mysqli_closeFerme une connexion

Description

Style orienté objet

bool mysqli::close ( void )

Style procédural

bool mysqli_close ( mysqli $link )

Ferme la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir mysqli_connect().

Voir aussi



mysqli::commit

mysqli_commit

(PHP 5)

mysqli::commit -- mysqli_commitValide la transaction courante

Description

Style orienté objet

bool mysqli::commit ( void )

Style procédural

bool mysqli_commit ( mysqli $link )

Valide la transaction courante pour la base de données spécifiée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::commit()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage");

/* Désactivation de l'autocommit */
$mysqli->autocommit(FALSE);

/* Insertion de quelques valeurs */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Validation de la transaction */
$mysqli->commit();

/* Effacement de la table */
$mysqli->query("DROP TABLE Language");

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""test");

/* Vérification de la connexion */
if (!$link) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Désactivation de l'autocommit */
mysqli_autocommit($linkFALSE);

mysqli_query($link"CREATE TABLE Language LIKE CountryLanguage");

/* Insertion de quelques valeurs */
mysqli_query($link"INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link"INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Validation de la transaction */
mysqli_commit($link);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Voir aussi



mysqli->connect_errno

mysqli_connect_errno

(PHP 5)

mysqli->connect_errno -- mysqli_connect_errnoRetourne le code d'erreur de la connexion MySQL

Description

Style orienté objet

string $connect_errno;

Style procédural

int mysqli::mysqli_connect_errno ( void )

Retourne le code d'erreur de la dernière tentative de connexion avec mysqli_connect().

Note:

Les messages d'erreur du client MySQL sont disponibles dans errmsg.h. Les messages d'erreur du serveur MySQL sont disponibles dans mysqld_error.h. Dans la distribution source de MySQL, vous pouvez trouver la liste complète des messages d'erreurs et des codes d'erreurs dans le fichier Docs/mysqld_error.txt.

Valeurs de retour

Un code d'erreur généré par le dernier appel à mysqli_connect(), si ce dernier a échoué. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec mysqli->connect_errno

Style orienté objet

<?php
$mysqli 
= @new mysqli('localhost''fake_user''my_password''my_db');

if (
$mysqli->connect_errno) {
    die(
'Erreur de connexion : ' $mysqli->connect_errno);
}
?>

Style procédural

<?php
$link 
= @mysqli_connect('localhost''fake_user''my_password''my_db');

if (!
$link) {
    die(
'Erreur de connexion : ' mysqli_connect_errno());
}
?>

Les exemples ci-dessus vont afficher :

Erreur de connexion : 1045

Voir aussi



mysqli->connect_error

mysqli_connect_error

(PHP 5)

mysqli->connect_error -- mysqli_connect_errorRetourne le message d'erreur de connexion MySQL

Description

Style orienté objet

string $connect_error;

Style procédural

string mysqli::mysqli_connect_error ( void )

Retourne un message d'erreur, lié au dernier appel à mysqli_connect().

Valeurs de retour

Une chaîne qui décrit l'erreur ou NULL si aucune erreur ne survient.

Exemples

Exemple #1 Exemple avec mysqli->connect_error

Style orienté objet

<?php
$mysqli 
= @new mysqli('localhost''fake_user''my_password''my_db');

// Fonctionne depuis PHP 5.2.9 et 5.3.0.
if ($mysqli->connect_error) {
    die(
'Erreur de connexion : ' $mysqli->connect_error);
}
?>

Style procédural

<?php
$link 
= @mysqli_connect('localhost''fake_user''my_password''my_db');

if (!
$link) {
    die(
'Erreur de connexion : ' mysqli_connect_error());
}
?>

Les exemples ci-dessus vont afficher :

Erreur de connexion : Access denied for user 'fake_user'@'localhost' (using password: YES)

Notes

Avertissement

La propriété mysqli->connect_error ne fonctionne correctement que depuis PHP versions 5.2.9 et 5.3.0. Utilisez la fonction mysqli_connect_error() pour les versions antérieures.

Voir aussi



mysqli::__construct

mysqli_connect

(PHP 5)

mysqli::__construct -- mysqli_connectOuvre une connexion à un serveur MySQL

Description

Style orienté objet

mysqli::__construct() ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )

Style procédural

mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )

Ouvre une connexion au serveur MySQL de l'hôte host qui peut être un nom d'hôte ou une adresse IP.

Liste de paramètres

host

Peut être un nom d'hôte ou une adresse IP. Si vous passez la valeur NULL ou la chaîne "localhost" à ce paramètre, l'hôte local est sous-entendu. Lorsque c'est possible, les sockets seront utilisées au lieu du protocole TCP/IP.

Préfixer l'hôte par p: ouvre une connexion persistante mysqli_change_user() est automatiquement appelé sur les connexions qui sont utilisées dans le pool de connexions.

username

Le nom d'utilisateur MySQL.

passwd

Si le mot de passe n'est pas indiqué (la valeur NULL est passée), le serveur MySQL essaiera d'identifier l'utilisateur en étudiant que les enregistrements où les utilisateurs n'ont pas de mot de passe. Cela permet à un utilisateur de jouir de plusieurs permissions (selon que l'on fournit le mot de passe ou non).

dbname

Si fourni, spécifiera la base de données par défaut à utiliser lors de l'exécution de requêtes.

port

Spécifie le numéro du port pour la connexion au serveur MySQL.

socket

Spécifie le socket ou le nom du tunnel à utiliser.

Note:

Spécifier le paramètre socket ne déterminera pas explicitement le type de connexion qui sera utilisé lors de la connexion au serveur MySQL. Cela est déterminé par le paramètre host.

Valeurs de retour

Retourne un objet qui représente la connexion au serveur MySQL.

Historique

Version Description
5.3.0 Ajout des connexions persistantes.

Exemples

Exemple #1 Exemple avec mysqli::__construct()

Style orienté objet

<?php
$mysqli 
= new mysqli('localhost''my_user''my_password''my_db');

/*
 * Ceci est le style POO "officiel"
 * MAIS $connect_error était erroné jusqu'en PHP 5.2.9 et 5.3.0.
 */
if ($mysqli->connect_error) {
    die(
'Erreur de connexion (' $mysqli->connect_errno ') '
            
$mysqli->connect_error);
}

/*
 * Utilisez cette syntaxe de $connect_error si vous devez assurer
 * la compatibilité avec les versions de PHP avant 5.2.9 et 5.3.0.
 */
if (mysqli_connect_error()) {
    die(
'Erreur de connexion (' mysqli_connect_errno() . ') '
            
mysqli_connect_error());
}

echo 
'Succès... ' $mysqli->host_info "\n";

$mysqli->close();
?>

Style orienté objet lors d'une extension de la classe mysqli

<?php

class foo_mysqli extends mysqli {
    public function 
__construct($host$user$pass$db) {
        
parent::__construct($host$user$pass$db);

        if (
mysqli_connect_error()) {
            die(
'Connect Error (' mysqli_connect_errno() . ') '
                    
mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost''my_user''my_password''my_db');

echo 
'Succès... ' $db->host_info "\n";

$db->close();
?>

Style procédural

<?php
$link 
mysqli_connect('localhost''my_user''my_password''my_db');

if (!
$link) {
    die(
'Erreur de connexion (' mysqli_connect_errno() . ') '
            
mysqli_connect_error());
}

echo 
'Succès... ' mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Succès... Localhost via UNIX socket

Notes

Note:

MySQLnd s'occupe toujours du jeu de caractères par défaut du serveur. Celui-ci est envoyé durant la négociation de la connexion ou l'authentification.

libmysql utilise le jeu de caractères par défaut de my.cnf ou via par un appel à mysqli_options() avant mysqli_real_connect(), mais après mysqli_init().

Note:

Uniquement pour la syntaxe orientée objet : pour vérifier si la connexion a échoué, utilisez la fonction mysqli_connect_error() ou la propriété mysqli->connect_error comme dans l'exemple ci-dessus.

Note:

S'il est nécessaire de configurer des options, telles que le délai de connexion, mysqli_real_connect() doit être utilisé.

Note:

Appeler le constructeur sans paramètre a le même effet qu'appeler mysqli_init().

Note:

L'erreur "Can't create TCP/IP socket (10106)" signifie à généralement que la directive de configuration variables_order ne contient pas le caractère E. Sous Windows, si l'environnement n'est pas copié, la variable d'environnement SYSTEMROOT ne sera pas disponible et PHP aura des soucis pour charger Winsock.

Voir aussi



mysqli::debug

mysqli_debug

(PHP 5)

mysqli::debug -- mysqli_debugEffectue des actions de déboguage

Description

Style orienté objet

bool mysqli::debug ( string $message )

Style procédural

bool mysqli_debug ( string $message )

Effectue des actions de déboguage en utilisant la bibliothèque de déboguage Fred Fish.

Liste de paramètres

message

Une chaîne de caractères représentant l'opération de déboguage à effectuer.

Valeurs de retour

Retourne TRUE.

Notes

Note:

Pour utiliser la fonction mysqli_debug(), vous devez compiler la bibliothèque cliente MySQL avec le support du déboguage.

Exemples

Exemple #1 Génération d'un fichier de "traces"

<?php

/* Génère un fichier de "trace" dans '/tmp/client.trace' sur la machine (cliente) locale : */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

Voir aussi



mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5)

mysqli::dump_debug_info -- mysqli_dump_debug_infoÉcrit les informations de déboguage dans les logs

Description

Style orienté objet

bool mysqli::dump_debug_info ( void )

Style procédural

bool mysqli_dump_debug_info ( mysqli $link )

Cette fonction est à utiliser par un utilisateur possédant le privilège SUPER et est utilisée pour écrire quelques informations de déboguage dans le journal pour le serveur MySQL relatif à la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mysqli->errno

mysqli_errno

(PHP 5)

mysqli->errno -- mysqli_errnoRetourne le dernier code d'erreur produit

Description

Style orienté objet

int $errno;

Style procédural

int mysqli::mysqli_errno ( mysqli $link )

Retourne le code erreur pour le dernier appel à une fonction MySQLi qui peut échouer ou réussir en respectant la connexion définie par la paramètre link.

Les numéros d'erreur client sont listés dans les en-têtes du fichier MySQL errmsg.h, les messages d'erreur du serveur sont listés dans le fichier mysqld_error.h. Dans les sources de MySQL, vous pouvez trouver une liste complète des messages d'erreur et des numéros d'erreur dans le fichier Docs/mysqld_error.txt.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La valeur du code erreur pour le dernier appel, s'il échoue. 0 signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec mysqli->errno

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (!
$mysqli->query("SET a=1")) {
    
printf("Code Erreur : %d\n"$mysqli->errno);
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (!
mysqli_query($link"SET a=1")) {
    
printf("Code Erreur : %d\n"mysqli_errno($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Code Erreur : 1193

Voir aussi



mysqli->error

mysqli_error

(PHP 5)

mysqli->error -- mysqli_errorRetourne une chaîne décrivant la dernière erreur

Description

Style orienté objet

string $error;

Style procédural

string mysqli::mysqli_error ( mysqli $link )

Retourne la chaîne de caractères décrivant l'erreur survenue lors du dernier appel à une fonction MySQLi, que cet appel est réussi ou échoué.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères qui décrit l'erreur. Une chaîne de caractères vide si aucun erreur n'est survenue.

Exemples

Exemple #1 Exemple avec mysqli->error

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (!
$mysqli->query("SET a=1")) {
    
printf("Message d'erreur : %s\n"$mysqli->error);
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (!
mysqli_query($link"SET a=1")) {
    
printf("Message d'erreur : %s\n"mysqli_error($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Message d'erreur : Unknown system variable 'a'

Voir aussi



mysqli->field_count

mysqli_field_count

(PHP 5)

mysqli->field_count -- mysqli_field_countRetourne le nombre de colonnes pour la dernière requête

Description

Style orienté objet

int $field_count;

Style procédural

int mysqli_result::mysqli_field_count ( mysqli $link )

Retourne le nombre de colonnes pour la dernière requête sur la connexion spécifiée par le paramètre link. Cette fonction peut être utile lors de l'utilisation de mysqli_store_result() pour déterminer si la requête aurait du retourner un résultat vide ou non, sans en connaître la nature.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier représentant le nombre de champs dans un jeu de résultats.

Exemples

Exemple #1 Exemple avec mysqli->field_count

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""test");

$mysqli->query"DROP TABLE IF EXISTS friends");
$mysqli->query"CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query"INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query("SELECT * FROM friends");

if (
$mysqli->field_count) {
    
/* Une requête SELECT, SHOW ou DESCRIBE */
    
$result $mysqli->store_result();

    
/* Récupération du jeu de résultats */
    
$row $result->fetch_row();

    
/* Libération du jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""test");

mysqli_query($link"DROP TABLE IF EXISTS friends");
mysqli_query($link"CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link"INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link"SELECT * FROM friends");

if (
mysqli_field_count($link)) {
    
/* Une requête SELECT, SHOW ou DESCRIBE */
    
$result mysqli_store_result($link);

    
/* Récupération du jeu de résultats */
    
$row mysqli_fetch_row($result);

    
/* Libération du jeu de résultats */
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>


mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0)

mysqli::get_charset -- mysqli_get_charsetRetourne un objet représentant le jeu de caractères

Description

Style orienté objet

object mysqli::get_charset ( void )

Style procédural

object mysqli_get_charset ( mysqli $link )

Retourne un objet représentant le jeu de caractères, fournissant différentes propriétés du jeu de caractères courant.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La fonction retourne un jeu de caractères avec les propriétés suivantes :

charset

Nom du jeu de caractères

collation

Nom de la collation

dir

Le dossier dans lequel la description du jeu de caractères est cherchée (?) ou "" pour les jeux de caractères internes

min_length

Longueur minimum de caractères, en octets

max_length

Longueur maximal de caractères, en octets

number

Numéro du jeu de caractères interne

state

Statut du jeu de caractères (?)

Exemples

Exemple #1 Exemple avec mysqli::get_charset()

Style orienté objet

<?php
  $db 
mysqli_init();
  
$db->real_connect("localhost","root","","test");
  
var_dump($db->get_charset());
?>

Style procédural

<?php
  $db 
mysqli_init();
  
mysqli_real_connect($db"localhost","root","","test");
  
var_dump($db->get_charset());
?>

Les exemples ci-dessus vont afficher :

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

Voir aussi



mysqli->get_client_info

mysqli_get_client_info

(PHP 5)

mysqli->get_client_info -- mysqli_get_client_infoRetourne une chaîne contenant la version du client MySQL

Description

Style orienté objet

string mysqli::get_client_info ( void )

Style procédural

string mysqli_get_client_info ( mysqli $link )

Retourne une chaîne de caractères qui représente la version de la librairie cliente MySQL.

Valeurs de retour

Une chaîne de caractères représentant la version du client utilisé par l'extension MySQL.

Exemples

Exemple #1 Exemple avec mysqli_get_client_info()

<?php

/* Vous n'avez pas besoin d'une connexion pour déterminer
    la version du client utilisé par l'extension MySQL */

printf("Version de la bibliothèque cliente : %s\n"mysqli_get_client_info());
?>

Voir aussi



mysqli_get_client_stats

(PHP 5 >= 5.3.0)

mysqli_get_client_statsRetournes des statistiques sur le client, par processus

Description

array mysqli_get_client_stats ( void )

Retournes des statistiques sur le client, par processus. Disponible uniquement avec mysqlnd.

Liste de paramètres

Valeurs de retour

Retourne un tableau avec les statistiques sur le client en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_get_client_stats()

<?php
$link 
mysqli_connect();
print_r(mysqli_get_client_stats());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)



mysqli->client_version

mysqli_get_client_version

(PHP 5)

mysqli->client_version -- mysqli_get_client_versionLit les informations du client MySQL

Description

Style orienté objet

int $client_version;

Style procédural

int mysqli::mysqli_get_client_version ( mysqli $link )

Retourne la version du client MySQL sous la forme d'un entier.

Valeurs de retour

Un nombre qui représente la version de la bibliothèque cliente MySQL dans ce format : version_principale*10000 + version_mineure *100 + sous_version. Par exemple, la version 4.1.0 est retournée sous la forme 40100.

Cette fonction est pratique pour déterminer la version de la bibliothèque cliente, si vous recherchez des fonctionnalités spécifiques.

Exemples

Exemple #1 Exemple avec mysqli_get_client_version()

<?php

/* Nous n'avons pas besoin d'une connexion pour
   déterminer la version de la bibliothèque cliente mysql */

printf("Version de la bibliothèque cliente : %d\n"mysqli_get_client_version());
?>

Voir aussi



mysqli::get_connection_stats

mysqli_get_connection_stats

(PHP 5 >= 5.3.0)

mysqli::get_connection_stats -- mysqli_get_connection_statsRetourne des statistiques sur la connexion

Description

Style orienté objet

bool mysqli::get_connection_stats ( void )

Style procédural

array mysqli_get_connection_stats ( mysqli $link )

Retourne des statistiques sur la connexion du client. Disponible uniquement avec mysqlnd.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un tableau avec les statistiques de connexion, en cas de succès, et FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_get_connection_stats()

<?php
$link 
mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)



mysqli->host_info

mysqli_get_host_info

(PHP 5)

mysqli->host_info -- mysqli_get_host_infoRetourne une chaîne contenant le type de connexion utilisée

Description

Style orienté objet

string $host_info;

Style procédural

string mysqli::mysqli_get_host_info ( mysqli $link )

mysqli_get_host_info() retourne une chaîne de caractères décrivant la connexion représentée par le paramètre link (incluant le nom d'hôte du serveur).

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères représentant le nom d'hôte du serveur et le type de connexion.

Exemples

Exemple #1 Exemple avec mysqli->host_info

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage des informations sur l'hôte */
printf("Informations sur l'hôte : %s\n"$mysqli->host_info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage des informations sur l'hôte */
printf("Informations sur l'hôte : %s\n"mysqli_get_host_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Informations sur l'hôte : Localhost via UNIX socket

Voir aussi



mysqli->protocol_version

mysqli_get_proto_info

(PHP 5)

mysqli->protocol_version -- mysqli_get_proto_infoRetourne la version du protocole MySQL utilisé

Description

Style orienté objet

string $protocol_version;

Style procédural

int mysqli::mysqli_get_proto_info ( mysqli $link )

Retourne un entier représentant la version du protocole MySQL utilisé par la connexion représentée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un entier représentant la version du protocole.

Exemples

Exemple #1 Exemple avec mysqli->protocol_version

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n"$mysqli->protocol_version);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n"mysqli_get_proto_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Version du protocole: 10

Voir aussi



mysqli->server_info

mysqli_get_server_info

(PHP 5)

mysqli->server_info -- mysqli_get_server_infoRetourne la version du serveur MySQL

Description

Style orienté objet

string $server_info;

Style procédural

string mysqli::mysqli_get_server_info ( mysqli $link )

Retourne une chaîne de caractères représentant la version du serveur MySQL auquel l'extension MySQLi est connectée (représenté par le paramètre link).

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères représentant la version du serveur.

Exemples

Exemple #1 Exemple avec mysqli->server_info

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n"$mysqli->server_info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n"mysqli_get_server_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Version du serveur : 4.1.2-alpha-debug

Voir aussi



mysqli->server_version

mysqli_get_server_version

(PHP 5)

mysqli->server_version -- mysqli_get_server_versionRetourne un entier représentant la version du serveur MySQL

Description

Style orienté objet

int $server_version;

Style procédural

int mysqli::mysqli_get_server_version ( mysqli $link )

La fonction mysqli_get_server_version() retourne un entier représentant la version du serveur sur lequel on est connecté (représenté par le paramètre link).

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier représentant la version du serveur.

Le format de ce nombre est main_version * 10000 + minor_version * 100 + sub_version (i.e. la version 4.1.0 retournera 40100).

Exemples

Exemple #1 Exemple avec mysqli->server_version

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n"$mysqli->server_version);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n"mysqli_get_server_version($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Version du serveur : 40102

Voir aussi



mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0)

mysqli::get_warnings -- mysqli_get_warningsLit le résultat de SHOW WARNINGS

Description

Style orienté objet

mysqli_warning mysqli::get_warnings ( void )

Style procédural

mysqli_warning mysqli_get_warnings ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



mysqli->info

mysqli_info

(PHP 5)

mysqli->info -- mysqli_infoRetourne des informations à propos de la dernière requête exécutée

Description

Style orienté objet

string $info;

Style procédural

string mysqli::mysqli_info ( mysqli $link )

La fonction mysqli_info() retourne une chaîne fournissant des informations à propos de la dernière requête exécutée. La nature de cette chaîne est fournie ci-dessous :

Valeurs de retour possibles pour mysqli_info()
Type de requête Exemple de retour
INSERT INTO...SELECT... Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... Rows matched: 40 Changed: 40 Warnings: 0

Note:

Les requêtes qui ne font pas partie de la liste précédente ne sont pas supportées. Dans cette situation, mysqli_info() retournera une chaîne de caractères vide.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères donnant des informations supplémentaires à propos de la dernière requête exécutée.

Exemples

Exemple #1 Exemple avec mysqli->info

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n"$mysqli->info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link"INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n"mysqli_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Records: 150  Duplicates: 0  Warnings: 0

Voir aussi



mysqli::init

mysqli_init

(PHP 5)

mysqli::init -- mysqli_initInitialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()

Description

Style orienté objet

mysqli mysqli::init ( void )

Style procédural

mysqli mysqli_init ( void )

Alloue ou initialise un objet MySQL utilisable pour les fonctions mysqli_options() et mysqli_real_connect().

Note:

Tous les appels suivants à n'importe quelle fonction MySQLi (exceptée mysqli_options()) échoueront en attendant que la fonction mysqli_real_connect() soit appelée.

Valeurs de retour

Retourne un objet.

Exemples

Voir mysqli_real_connect().

Voir aussi



mysqli->insert_id

mysqli_insert_id

(PHP 5)

mysqli->insert_id -- mysqli_insert_idRetourne l'identifiant automatiquement généré par la dernière requête

Description

Style orienté objet

mixed $insert_id;

Style procédural

mixed mysqli::mysqli_insert_id ( mysqli $link )

La fonction mysqli_insert_id() retourne l'identifiant généré par une requête sur une table avec une colonne possédant l'attribut AUTO_INCREMENT. Si la dernière requête n'était ni un INSERT, ni un UPDATE ou que la table modifiée ne possède pas de colonne avec l'attribut AUTO_INCREMENT, cette fonction retournera zéro.

Note:

Exécuter une commande INSERT ou UPDATE utilisant la fonction LAST_INSERT_ID() modifiera aussi la valeur retournée par la fonction mysqli_insert_id().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La valeur du champ AUTO_INCREMENT modifiée par la dernière requête. Retourne zéro s'il n'y a pas eu de requête sur la connexion ou si la dernière requête n'a pas modifié la valeur de l'AUTO_INCREMENT.

Note:

Si le nombre est plus grand que la valeur maximale d'un entier, mysqli_insert_id() retournera une chaîne le représentant.

Exemples

Exemple #1 Exemple avec mysqli->insert_id

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("Le nouvel enregistrement a l'id %d.\n"$mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TABLE myCity LIKE City");

$query "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link$query);

printf ("Le nouvel enregistrement a l'id %d.\n"mysqli_insert_id($link));

/* drop table */
mysqli_query($link"DROP TABLE myCity");

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le nouvel enregistrement a l'id 1.


mysqli::kill

mysqli_kill

(PHP 5)

mysqli::kill -- mysqli_killDemande au serveur de terminer un thread MySQL

Description

Style orienté objet

bool mysqli::kill ( int $processid )

Style procédural

bool mysqli_kill ( mysqli $link , int $processid )

mysqli_kill() est utilisée pour demander au serveur de terminer un thread MySQL spécifié par le paramètre processid. Cette valeur doit être obtenue en appelant la fonction mysqli_thread_id().

Pour arrêter une requête en cours d'exécution, utilisez la commande SQL KILL QUERY processid.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::kill()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Détermine l'id du thread */
$thread_id $mysqli->thread_id;

/* Termine le thread */
$mysqli->kill($thread_id);

/* Ceci devrait produire une erreur */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    
printf("Erreur : %s\n"$mysqli->error);
    exit;
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Détermine l'id du thread */
$thread_id mysqli_thread_id($link);

/* Termine le thread */
mysqli_kill($link$thread_id);

/* Ceci devrait produire une erreur */
if (!mysqli_query($link"CREATE TABLE myCity LIKE City")) {
    
printf("Erreur : %s\n"mysqli_error($link));
    exit;
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : MySQL server has gone away

Voir aussi



mysqli::more_results

mysqli_more_results

(PHP 5)

mysqli::more_results -- mysqli_more_resultsVérifie s'il y a d'autres jeux de résultats MySQL disponibles

Description

Style orienté objet

bool mysqli::more_results ( void )

Style procédural

bool mysqli_more_results ( mysqli $link )

Indique si un ou plusieurs jeux de résultats sont disponibles, générés par un appel antérieur à mysqli_multi_query().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir mysqli_multi_query().

Voir aussi



mysqli::multi_query

mysqli_multi_query

(PHP 5)

mysqli::multi_query -- mysqli_multi_queryExécute une requête MySQL multiple

Description

Style orienté objet

bool mysqli::multi_query ( string $query )

Style procédural

bool mysqli_multi_query ( mysqli $link , string $query )

Exécute une ou plusieurs requêtes, rassemblées dans le paramètre query par des points-virgules.

Pour lire les résultats de la première requête, vous pouvez utiliser les fonctions mysqli_use_result() et mysqli_store_result(). Tous les autres résultats de requêtes peuvent être atteints avec mysqli_more_results() et mysqli_next_result().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Les données contenues dans la requête doivent être échappées.

Valeurs de retour

Retourne FALSE uniquement si la première requête échoue. Pour récupérer les sous-séquences d'erreurs issues des autres requêtes, vous devez appeler d'abord la fonction mysqli_next_result().

Exemples

Exemple #1 Exemple avec mysqli::multi_query()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query  "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
if ($mysqli->multi_query($query)) {
    do {
        
/* Stockage du premier résultat */
        
if ($result $mysqli->store_result()) {
            while (
$row $result->fetch_row()) {
                
printf("%s\n"$row[0]);
            }
            
$result->free();
        }
        
/* Affichage d'une séparation */
        
if ($mysqli->more_results()) {
            
printf("-----------------\n");
        }
    } while (
$mysqli->next_result());
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query  "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
if (mysqli_multi_query($link$query)) {
    do {
        
/* sStockage du premier résultat */
        
if ($result mysqli_store_result($link)) {
            while (
$row mysqli_fetch_row($result)) {
                
printf("%s\n"$row[0]);
            }
            
mysqli_free_result($result);
        }
        
/* Affichage d'une séparation */
        
if (mysqli_more_results($link)) {
            
printf("-----------------\n");
        }
    } while (
mysqli_next_result($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Voir aussi



mysqli::next_result

mysqli_next_result

(PHP 5)

mysqli::next_result -- mysqli_next_resultPrépare le prochain résultat d'une requête multiple

Description

Style orienté objet

bool mysqli::next_result ( void )

Style procédural

bool mysqli_next_result ( mysqli $link )

Prépare le prochain jeu de résultat, initialisé par un appel antérieur à mysqli_multi_query(), et qui peut être lu par mysqli_store_result() ou mysqli_use_result().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir mysqli_multi_query().

Voir aussi



mysqli::options

mysqli_options

(PHP 5)

mysqli::options -- mysqli_optionsDéfinit les options

Description

Style orienté objet

bool mysqli::options ( int $option , mixed $value )

Style procédural

bool mysqli_options ( mysqli $link , int $option , mixed $value )

Utile pour définir des options de connexion et ainsi affecter le comportement de la connexion courante.

Cette fonction peut être appelée plusieurs fois pour définir plusieurs options.

mysqli_options() doit être appelée après mysqli_init() et avant mysqli_real_connect().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

option

L'option que vous voulez définir. Il peut prendre une des valeurs suivantes :

Options valides
Nom Description
MYSQLI_OPT_CONNECT_TIMEOUT délai maximal de la connexion en secondes (supporté sous Windows avec TCP/IP depuis PHP 5.3.1)
MYSQLI_OPT_LOCAL_INFILE active/désactive l'utilisation de LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND commande à exécuter après la connexion au serveur MySQL
MYSQLI_READ_DEFAULT_FILE Lit les options depuis le nom de l'option plutôt que du fichier my.cnf
MYSQLI_READ_DEFAULT_GROUP Lit les options du groupe depuis my.cnf ou depuis le fichier spécifié avec MYSQL_READ_DEFAULT_FILE.

value

La valeur pour l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir mysqli_real_connect().

Notes

Note:

MySQLnd s'occupe toujours du jeu de caractères par défaut du serveur. Celui-ci est envoyé durant la négociation de la connexion ou l'authentification.

libmysql utilise le jeu de caractères par défaut de my.cnf ou via par un appel à mysqli_options() avant mysqli_real_connect(), mais après mysqli_init().

Voir aussi



mysqli::ping

mysqli_ping

(PHP 5)

mysqli::ping -- mysqli_pingPing la connexion au serveur et reconnecte si elle n'existe plus

Description

Style orienté objet

bool mysqli::ping ( void )

Style procédural

bool mysqli_ping ( mysqli $link )

Vérifie si la connexion au serveur fonctionne correctement. Si elle a été refermée, et que la directive mysqli.reconnect est activée, une reconnexion automatique est tentée.

Cette fonction peut être utilisée pour que les clients qui restent longtemps ouverts sans action puissent vérifier que la connexion n'a pas été refermée par le serveur, et, le cas échéant, faire une reconnexion automatique.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::ping()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Vérification si la connexion est toujours active */
if ($mysqli->ping()) {
    
printf ("La connexion est Ok !\n");
} else {
    
printf ("Erreur : %s\n"$mysqli->error);
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Vérification si la connexion est toujours active */
if (mysqli_ping($link)) {
    
printf ("La connexion est Ok !\n");
} else {
    
printf ("Erreur : %s\n"mysqli_error($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

La connexion est valide !


mysqli::poll

mysqli_poll

(PHP 5 >= 5.3.0)

mysqli::poll -- mysqli_pollVérifie l'état de la connexion

Description

Style orienté objet

public int mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )

Style procédural

int mysqli_poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie l'état de la connexion. Disponible uniquement avec mysqlnd.

Liste de paramètres

read

error

reject

sec

Nombre de secondes d'attente, doit être positif ou nul.

usec

Nombre de secondes d'attente, doit être positif ou nul.

Valeurs de retour

Retourne le nombre de connexions disponibles, en cas de succès, ou FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_poll()

<?php
$link1 
mysqli_connect();
$link1->query("SELECT 'test'"MYSQLI_ASYNC);
$all_links = array($link1);
$processed 0;
do {
    
$links $errors $reject = array();
    foreach (
$all_links as $link) {
        
$links[] = $errors[] = $reject[] = $link;
    }
    if (!
mysqli_poll($links$errors$reject1)) {
        continue;
    }
    foreach (
$links as $link) {
        if (
$result $link->reap_async_query()) {
            
print_r($result->fetch_row());
            
mysqli_free_result($result);
            
$processed++;
        }
    }
} while (
$processed count($all_links));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => test
)

Voir aussi



mysqli::prepare

mysqli_prepare

(PHP 5)

mysqli::prepare -- mysqli_preparePrépare une requête SQL pour l'exécution

Description

Style orienté objet

mysqli_stmt mysqli::prepare ( string $query )

Style procédural

mysqli_stmt mysqli_prepare ( mysqli $link , string $query )

Prépare la requête SQL et retourne un gestionnaire de requête à utiliser pour les futures opérations sur la requête. La requête doit être composée d'une seule requête SQL.

Les paramètres de marques doivent être liés à des variables utilisées dans les fonctions mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Note:

Vous ne devez pas ajouter de point virgule ou de \g dans la requête.

Ce paramètre peut inclure un ou plusieurs paramètres de marques dans la requête SQL avec le caractère "point d'interrogation" (?) à la position appropriée.

Note:

Les marques sont autorisées uniquement dans certaines endroits des requêtes SQL. Par exemple, elles le sont dans la liste VALUES() d'une requête INSERT (pour spécifier les valeurs des colonnes pour une ligne), ou dans une comparaison d'une clause WHERE pour spécifier une valeur de comparaison.

Cependant, elles ne sont pas autorisées pour les identifiants (comme les noms de tables ou de colonnes), dans une liste de sélection où les noms des colonnes doivent être retournés par une requête SELECT, ou pour spécifier un opérateur tel que le signe égal (=). La dernière restriction est nécessaire, car il est impossible de déterminer le type de paramètre. Il n'est pas non plus autorisé de comparer les marqueurs avec NULL par ? IS NULL. En général, les paramètres ne sont autorisés que dans les requêtes DML ("Data Manipulation Language") et non dans les requêtes DDL ("Data Definition Language").

Valeurs de retour

mysqli_prepare() retourne un objet de traitement ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::prepare()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$city "Amersfoort";

/* Crée une requête préparée */
if ($stmt $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    
/* Lecture des marqueurs */
    
$stmt->bind_param("s"$city);

    
/* Exécution de la requête */
    
$stmt->execute();

    
/* Lecture des variables résultantes */
    
$stmt->bind_result($district);

    
/* Récupération des valeurs */
    
$stmt->fetch();

    
printf("%s est dans le district de %s\n"$city$district);

    
/* Fermeture du traitement */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$city "Amersfoort";

/* Crée une requête préparée */
if ($stmt mysqli_prepare($link"SELECT District FROM City WHERE Name=?")) {

    
/* Lecture des marqueurs */
    
mysqli_stmt_bind_param($stmt"s"$city);

    
/* Exécution de la requête */
    
mysqli_stmt_execute($stmt);

    
/* Lecture des variables résultantes */
    
mysqli_stmt_bind_result($stmt$district);

    
/* Récupération des valeurs */
    
mysqli_stmt_fetch($stmt);

    
printf("%s est dans le district de %s\n"$city$district);

    
/* Fermeture du traitement */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Amersfoort est dans le district de Utrecht

Voir aussi



mysqli::query

mysqli_query

(PHP 5)

mysqli::query -- mysqli_queryExécute une requête sur la base de données

Description

Style orienté objet

mixed mysqli::query ( string $query [, int $resultmode ] )

Style procédural

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode ] )

Exécute une requête sur la base de données.

En termes de fonctionnalités, utiliser cette fonction revient à appeler mysqli_real_query() suivie de mysqli_use_result() ou mysqli_store_result().

Note:

Si vous passez une requête à mysqli_query() qui est plus longue que max_allowed_packet, les codes d'erreur en retour seront différents selon si vous utilisez MySQL Native Driver (mysqlnd) ou la MySQL Client Library (libmysql). Le comportement est défini comme suit:

  • mysqlnd sur Linux retourne un code d'erreur de 1153. Le message d'erreur sera "got a packet bigger than max_allowed_packet bytes".

  • mysqlnd sur Windows retourne un code d'erreur de 2006. Le message sera du type "server has gone away".

  • libmysql sur toute plateforme retourne le code d'erreur 2006. Le message sera du type "server has gone away".

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Les données contenues dans la requête doivent être échappées.

resultmode

Soit la constante MYSQLI_USE_RESULT, soit la constante MYSQLI_STORE_RESULT, suivant le comportement désiré. Par défaut, la constante MYSQLI_STORE_RESULT est utilisé.

Si vous utilisez la constante MYSQLI_USE_RESULT, tous les appels suivants retourneront une erreur Commands out of sync tant que vous n'aurez pas appelé la fonction mysqli_free_result().

Avec la constante MYSQLI_ASYNC (disponible avec mysqlnd), il est possible de faire des requêtes asynchrone. mysqli_poll() est alors utilisé pour lire les résultats de ce type de requêtes.

Valeurs de retour

Retourne FALSE en cas d'échec. Pour des requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN réussies, mysqli_query()retournera un objet de résultats. Pour les autres types de requêtes ayant réussies, mysqli_query() retournera TRUE.

Historique

Version Description
5.3.0 Ajout des requêtes asynchrones.

Exemples

Exemple #1 Exemple avec mysqli::query()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* "Create table" ne retournera aucun jeu de résultats */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    
printf("Table myCity créée avec succès.\n");
}

/* Requête "Select" retourne un jeu de résultats */
if ($result $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    
printf("Select a retourné %d lignes.\n"$result->num_rows);

    
/* Libération du jeu de résultats */
    
$result->close();
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ($result $mysqli->query("SELECT * FROM City"MYSQLI_USE_RESULT)) {

    
/* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats n'est pas clos. Tous les appels retourneront un 'out of sync' 
    */
    
if (!$mysqli->query("SET @a:='this will not work'")) {
        
printf("Erreur : %s\n"$mysqli->error);
    }
    
$result->close();
}

$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* "Create table" ne retournera aucun jeu de résultats */
if (mysqli_query($link"CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    
printf("Table myCity créée avec succès.\n");
}

/* Requête "Select" retourne un jeu de résultats */
if ($result mysqli_query($link"SELECT Name FROM City LIMIT 10")) {
    
printf("Select a retourné %d lignes.\n"mysqli_num_rows($result));

    
/* Libération du jeu de résultats */
    
mysqli_free_result($result);
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ($result mysqli_query($link"SELECT * FROM City"MYSQLI_USE_RESULT)) {

    
/* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats n'est pas clos. Tous les appels retourneront un 'out of sync' 
    */
    
if (!mysqli_query($link"SET @a:='this will not work'")) {
        
printf("Erreur : %s\n"mysqli_error($link));
    }
    
mysqli_free_result($result);
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Table myCity créée avec succès.
Select a retourné 10 lignes.
Erreur : Commands out of sync;  You can't run this command now

Voir aussi



mysqli::real_connect

mysqli_real_connect

(PHP 5)

mysqli::real_connect -- mysqli_real_connectOuvre une connexion à un serveur MySQL

Description

Style orienté objet

bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

Style procédural

bool mysqli_real_connect ( mysqli $link [, string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

mysqli_real_connect() établit une connexion avec un serveur MySQL.

Cette fonction diffère de mysqli_connect() :

  • mysqli_real_connect() a besoin d'un objet créé avec mysqli_init().

  • Avec la fonction mysqli_options(), vous pouvez configurer différentes options de connexion.

  • Il y a un paramètre supplémentaire flags.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

host

Peut-être un nom d'hôte ou une adresse IP. En utilisant la valeur NULL ou la chaîne "localhost", l'hôte local est utilisé. Lorsque c'est possible, les pipes seront utilisés à la place de la pile TCP/IP.

username

Le nom d'utilisateur MySQL.

passwd

Si non fourni ou NULL, le serveur MySQL tentera de réaliser l'identification avec les utilisateurs sans mot de passe. Cela permet à un nom d'utilisateur d'être utilisé avec différentes droits, suivant que le mot de passe est fourni ou pas.

dbname

Si fourni, ce paramètre indique le nom de la base de données de travail par défaut.

port

Spécifie le numéro de port à utiliser pour se connecter au serveur MySQL.

socket

Spécifie la socket ou le pipe nommé qui doit être utilisé pour établir la connexion.

Note:

Spécifier explicitement le paramètre socket ne détermine pas le type de méthode utilisée lors de la connexion à MySQL. La méthode est déterminée par le paramètre host.

flags

Avec le paramètre flags, vous pouvez configurer différentes directives de connexion :

Options supportées
Nom Description
MYSQLI_CLIENT_COMPRESS Utilise le protocole compressé
MYSQLI_CLIENT_FOUND_ROWS Retourne le nombre de ligne trouvées, pas le nombre de lignes affectées.
MYSQLI_CLIENT_IGNORE_SPACE Autorise les espaces entre les noms de fonctions et les arguments. Cela force les noms de fonctions à être des mots réservés.
MYSQLI_CLIENT_INTERACTIVE Autorise interactive_timeout secondes (au lieu de wait_timeout secondes) d'inactivité avant de fermer la connexion.
MYSQLI_CLIENT_SSL Utilise le chiffrement SSL

Note:

Pour des raisons de sécurité, l'option MULTI_STATEMENT n'est pas supportée en PHP. Si vous voulez exécuter plusieurs commandes, utilisez la fonction mysqli_multi_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::real_connect()

Style orienté objet

<?php

$mysqli 
mysqli_init();
if (!
$mysqli) {
    die(
'mysqli_init failed');
}

if (!
$mysqli->options(MYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0')) {
    die(
'Setting MYSQLI_INIT_COMMAND failed');
}

if (!
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT5)) {
    die(
'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!
$mysqli->real_connect('localhost''my_user''my_password''my_db')) {
    die(
'Connect Error (' mysqli_connect_errno() . ') '
            
mysqli_connect_error());
}

echo 
'Succès... ' $mysqli->host_info "\n";

$mysqli->close();
?>

Style orienté objet, avec extension de la classe mysqli

<?php

class foo_mysqli extends mysqli {
    public function 
__construct($host$user$pass$db) {
        
parent::init();

        if (!
parent::options(MYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0')) {
            die(
'Setting MYSQLI_INIT_COMMAND failed');
        }

        if (!
parent::options(MYSQLI_OPT_CONNECT_TIMEOUT5)) {
            die(
'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
        }

        if (!
parent::real_connect($host$user$pass$db)) {
            die(
'Connect Error (' mysqli_connect_errno() . ') '
                    
mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost''my_user''my_password''my_db');

echo 
'Succès... ' $db->host_info "\n";

$db->close();
?>

Style procédural

<?php

$link 
mysqli_init();
if (!
$link) {
    die(
'mysqli_init failed');
}

if (!
mysqli_options($linkMYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0')) {
    die(
'Setting MYSQLI_INIT_COMMAND failed');
}

if (!
mysqli_options($linkMYSQLI_OPT_CONNECT_TIMEOUT5)) {
    die(
'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!
mysqli_real_connect($link'localhost''my_user''my_password''my_db')) {
    die(
'Connect Error (' mysqli_connect_errno() . ') '
            
mysqli_connect_error());
}

echo 
'Succès... ' mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Succès... MySQL host info: localhost via TCP/IP

Notes

Note:

MySQLnd s'occupe toujours du jeu de caractères par défaut du serveur. Celui-ci est envoyé durant la négociation de la connexion ou l'authentification.

libmysql utilise le jeu de caractères par défaut de my.cnf ou via par un appel à mysqli_options() avant mysqli_real_connect(), mais après mysqli_init().

Voir aussi



mysqli::real_escape_string

mysqli_real_escape_string

(PHP 5)

mysqli::real_escape_string -- mysqli_real_escape_stringProtège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

Description

Style orienté objet

string mysqli::escape_string ( string $escapestr )
string mysqli::real_escape_string ( string $escapestr )

Style procédural

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

Cette fonction est utilisée pour créer une chaîne SQL valide qui pourra être utilisée dans une requête SQL. La chaîne de caractères escapestr est encodée en une chaîne SQL échappée, en tenant compte du jeu de caractères courant de la connexion.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

escapestr

La chaîne de caractères à échapper.

Les caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Valeurs de retour

Retourne une chaîne de caractères échappée.

Exemples

Exemple #1 Exemple avec mysqli::real_escape_string()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city "'s Hertogenbosch";

/* Cette requête échoue car nous n'avons pas échappé $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("Erreur : %s\n"$mysqli->sqlstate);
}

$city $mysqli->real_escape_string($city);

/* Cette requête, par contre, réussira car nous avons échappé $city */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("%d ligne insérée.\n"$mysqli->affected_rows);
}

$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TEMPORARY TABLE myCity LIKE City");

$city "'s Hertogenbosch";

/* Cette requête échoue car nous n'avons pas échappé $city */
if (!mysqli_query($link"INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("Erreur : %s\n"mysqli_sqlstate($link));
}

$city mysqli_real_escape_string($link$city);

/* Cette requête, par contre, réussira car nous avons échappé $city */
if (mysqli_query($link"INSERT into myCity (Name) VALUES ('$city')")) {
    
printf("%d ligne insérée.\n"mysqli_affected_rows($link));
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : 42000
1 ligne insérée.

Voir aussi



mysqli::real_query

mysqli_real_query

(PHP 5)

mysqli::real_query -- mysqli_real_queryExécute une requête SQL

Description

Style orienté objet

bool mysqli::real_query ( string $query )

Style procédural

bool mysqli_real_query ( mysqli $link , string $query )

Exécute une seule requête sur la connexion à la base de données représentée par le paramètre link dont le résultat peut être récupéré ou stocké en utilisant les fonctions mysqli_store_result() ou mysqli_use_result().

Pour déterminer si une requête donnée aurait du retourner un jeu de résultats ou non, voyez la fonction mysqli_field_count().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Les données contenues dans la requête doivent être échappées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mysqli::reap_async_query

mysqli_reap_async_query

(PHP 5 >= 5.3.0)

mysqli::reap_async_query -- mysqli_reap_async_queryLit un résultat pour une requête asynchrone

Description

Style orienté objet

public mysqli_result mysqli::reap_async_query ( void )

Style procédural

mysqli_result mysqli_reap_async_query ( mysql $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le résultat pour une requête asynchrone. Disponible uniquement avec mysqlnd.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un objet mysqli_result en cas de succès, et FALSE sinon.

Voir aussi



mysqli::rollback

mysqli_rollback

(PHP 5)

mysqli::rollback -- mysqli_rollbackAnnule la transaction courante

Description

Style orienté objet

bool mysqli::rollback ( void )

Style procédural

bool mysqli_rollback ( mysqli $link )

Annule la transaction courante pour la base de données.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::rollback()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Désactive l'auto-commit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
$mysqli->commit();

/* Effacement de toutes les lignes */
$mysqli->query("DELETE FROM myCity");

if (
$result $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    
$row $result->fetch_row();
    
printf("%d ligne dans la table myCity.\n"$row[0]);
    
/* Free result */
    
$result->close();
}

/* Rollback */
$mysqli->rollback();

if (
$result $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    
$row $result->fetch_row();
    
printf("%d lignes dans la table myCity (après annulation).\n"$row[0]);
    
/* Libère le résultat */
    
$result->close();
}

/* Effacement de la table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Désactive l'auto-commit */
mysqli_autocommit($linkFALSE);

mysqli_query($link"CREATE TABLE myCity LIKE City");
mysqli_query($link"ALTER TABLE myCity Type=InnoDB");
mysqli_query($link"INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
mysqli_commit($link);

/* Effacement de toutes les lignes */
mysqli_query($link"DELETE FROM myCity");

if (
$result mysqli_query($link"SELECT COUNT(*) FROM myCity")) {
    
$row mysqli_fetch_row($result);
    
printf("%d ligne dans la table myCity.\n"$row[0]);
    
/* Libère le résultat */
    
mysqli_free_result($result);
}

/* Rollback */
mysqli_rollback($link);

if (
$result mysqli_query($link"SELECT COUNT(*) FROM myCity")) {
    
$row mysqli_fetch_row($result);
    
printf("%d lignes dans la table myCity (après annulation).\n"$row[0]);
    
/* Free result */
    
mysqli_free_result($result);
}

/* Effacement de la table myCity */
mysqli_query($link"DROP TABLE myCity");

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

0 ligne dans la table myCity.
50 lignes dans la table myCity (après annulation).

Voir aussi



mysqli::select_db

mysqli_select_db

(PHP 5)

mysqli::select_db -- mysqli_select_dbSélectionne une base de données par défaut pour les requêtes

Description

Style orienté objet

bool mysqli::select_db ( string $dbname )

Style procédural

bool mysqli_select_db ( mysqli $link , string $dbname )

Sélectionne la base de données par défaut (spécifiée par le paramètre dbname) pour être utilisée lors de l'exécution de requêtes sur la connexion représentée par le paramètre link.

Note:

Cette fonction ne doit être utilisée que pour changer la base de données par défaut pour la connexion courante. Vous pouvez sélectionner la base de données par défaut avec le 4ème paramètre de la fonction mysqli_connect().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

dbname

Le nom de la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::select_db()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result $mysqli->query("SELECT DATABASE()")) {
    
$row $result->fetch_row();
    
printf("La base de données courante est %s.\n"$row[0]);
    
$result->close();
}

/* Change la base de données en "world" */
$mysqli->select_db("world");

/* Retourne le nom de la base de données courante */
if ($result $mysqli->query("SELECT DATABASE()")) {
    
$row $result->fetch_row();
    
printf("La base de données courante est %s.\n"$row[0]);
    
$result->close();
}

$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result mysqli_query($link"SELECT DATABASE()")) {
    
$row mysqli_fetch_row($result);
    
printf("La base de données courante est %s.\n"$row[0]);
    
mysqli_free_result($result);
}

/* Change la base de données en "world" */
mysqli_select_db($link"world");

/* Retourne le nom de la base de données courante */
if ($result mysqli_query($link"SELECT DATABASE()")) {
    
$row mysqli_fetch_row($result);
    
printf("La base de données courante est %s.\n"$row[0]);
    
mysqli_free_result($result);
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

La base de données courante est test.
La base de données courante est world.

Voir aussi



mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5)

mysqli::set_charset -- mysqli_set_charsetDéfinit le jeu de caractères par défaut du client

Description

Style orienté objet

bool mysqli::set_charset ( string $charset )

Style procédural

bool mysqli_set_charset ( mysqli $link , string $charset )

Définit le jeu de caractères par défaut à utiliser lors de l'envoi de données depuis et vers le serveur de base de données.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

charset

Le jeu de caractères à définir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Pour utiliser cette fonction sur les systèmes Windows, vous devez utiliser la bibliothèque client MySQL version 4.1.11 ou suivante (pour MySQL 5.0, vous avez besoin de la version 5.0.6 ou suivante).

Note:

C'est la meilleure façon de modifier le jeu de caractères. Il n'est pas recommandé d'utiliser la fonction mysqli::query() avec une requête du type SET NAMES .. pour cela.

Exemples

Exemple #1 Exemple avec mysqli::set_charset()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Modification du jeu de résultats en utf8 */
if (!$mysqli->set_charset("utf8")) {
    
printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n"$mysqli->error);
} else {
    
printf("Jeu de caractères courant : %s\n"$mysqli->character_set_name());
}

$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect('localhost''my_user''my_password''test');

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Modification du jeu de résultats en utf8 */
if (!mysqli_set_charset($link"utf8")) {
    
printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n"mysqli_error($link));
} else {
    
printf("Jeu de caractères courant : %s\n"mysqli_character_set_name($link));
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Jeu de caractères courant : utf8

Voir aussi



mysqli::set_local_infile_default

mysqli_set_local_infile_default

(PHP 5)

mysqli::set_local_infile_default -- mysqli_set_local_infile_defaultRétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE

Description

void mysqli_set_local_infile_default ( mysqli $link )

Désactive un gestionnaire LOAD DATA INFILE LOCAL précédemment définit avec la fonction mysqli_set_local_infile_handler().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir l'exemple de la fonction mysqli_set_local_infile_handler()

Voir aussi



mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handlerDéfinit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE

Description

Style orienté objet

bool mysqli::set_local_infile_handler ( mysqli $link , callback $read_func )

Style procédural

bool mysqli_set_local_infile_handler ( mysqli $link , callback $read_func )

Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE.

Le but de la fonction de rappel est de lire le fichier spécifié par LOAD DATA LOCAL INFILE et de le reformater dans un format compris par LOAD DATA INFILE.

Les données retournées doivent correspondre au format spécifié par LOAD DATA

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

read_func

Une fonction ou une méthode d'objet de rappel prend les paramètres suivants :

stream

un flux PHP associé avec les commandes SQL INFILE

&buffer

Une chaîne pour y stocker les données réécrites

buflen

Le nombre maximal de caractères à stocker dans le buffer

&errormsg

Si une erreur survient, vous pourrez stocker le message d'erreur ici

La fonction de rappel doit retourner le nombre de caractères stockés dans le buffer ou une valeur négative si une erreur survient.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::set_local_infile_handler()

Style orienté objet

<?php
  $db 
mysqli_init();
  
$db->real_connect("localhost","root","","test");

  function 
callme($stream, &$buffer$buflen, &$errmsg)
  {
    
$buffer fgets($stream);

    echo 
$buffer;

    
// convertit en majuscule et remplace le délimiteur "," par [TAB]
    
$buffer strtoupper(str_replace(",""\t"$buffer));

    return 
strlen($buffer);
  }


  echo 
"Entrée :\n";

  
$db->set_local_infile_handler("callme");
  
$db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  
$db->set_local_infile_default();

  
$res $db->query("SELECT * FROM t1");

  echo 
"\nSortie :\n";
  while (
$row $res->fetch_assoc()) {
    echo 
join(","$row)."\n";
  }
?>

Style procédural

<?php
  $db 
mysqli_init();
  
mysqli_real_connect($db"localhost","root","","test");

  function 
callme($stream, &$buffer$buflen, &$errmsg)
  {
    
$buffer fgets($stream);

    echo 
$buffer;

    
// convertit en majuscule et remplace le délimiteur "," par [TAB]
    
$buffer strtoupper(str_replace(",""\t"$buffer));

    return 
strlen($buffer);
  }


  echo 
"Entrée :\n";

  
mysqli_set_local_infile_handler($db"callme");
  
mysqli_query($db"LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  
mysqli_set_local_infile_default($db);

  
$res mysqli_query($db"SELECT * FROM t1");


  echo 
"\nSortie :\n";
  while (
$row mysqli_fetch_assoc($res)) {
    echo 
join(","$row)."\n";
  }
?>

Les exemples ci-dessus vont afficher :

Entrée :
23,foo
42,bar

Sortie :
23,FOO
42,BAR

Voir aussi



mysqli->sqlstate

mysqli_sqlstate

(PHP 5)

mysqli->sqlstate -- mysqli_sqlstateRetourne l'erreur SQLSTATE de la dernière opération MySQL

Description

Style orienté objet

string $sqlstate;

Style procédural

string mysqli::mysqli_sqlstate ( mysqli $link )

Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière erreur. Le code d'erreur '00000' signifie : "pas d'erreur". Les valeurs sont spécifiées par les normes ANSI SQL et ODBC. Pour une liste des valeurs possibles, voyez : » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Note:

Notez que toutes les erreurs de MySQL n'ont pas encore de correspondance avec les erreurs SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs sans correspondance.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière erreur. Le code est constitué de 5 caractères : '00000' représente l'absence d'erreurs.

Exemples

Exemple #1 Exemple avec mysqli->sqlstate

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* La table Ville existe déjà, nous devrions avoir une erreur */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    
printf("Erreur - SQLSTATE %s.\n"$mysqli->sqlstate);
}

$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* La table Ville existe déjà, nous devrions avoir une erreur */
if (!mysqli_query($link"CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    
printf("Erreur - SQLSTATE %s.\n"mysqli_sqlstate($link));
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur - SQLSTATE 42S01.

Voir aussi



mysqli::ssl_set

mysqli_ssl_set

(PHP 5)

mysqli::ssl_set -- mysqli_ssl_setUtilisée pour établir une connexion sécurisée avec SSL

Description

Style orienté objet

bool mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )

Style procédural

bool mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Utilisée pour établir une connexion sécurisée avec SSL. Elle doit être appelée avant mysqli_real_connect(). Cette fonction ne fait rien du tout si le support OpenSSL n'est pas activé.

Noter que le driver natif MySQL ne supporte pas SSL, aussi, l'appel à cette fonction lors de l'utilisation du driver natif MySQL retournera une erreur. Le driver natif MySQL est activé par défaut sous Microsoft Windows depuis PHP version 5.3 et suivants.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

key

Le chemin vers le fichier contenant la clé.

cert

Le chemin vers le fichier contenant le certificat.

ca

Le chemin vers le fichier contenant l'autorité du certificat.

capath

Le chemin vers le dossier contenant les certificats SSL CA au format PEM.

cipher

La liste des chiffres autorisés à être utilisés pour le chiffrage SSL.

Tous les paramètres SSL non utilisés peuvent avoir comme valeur NULL.

Valeurs de retour

Cette fonction retourne toujours TRUE. Si SSL n'est pas correctement installé, mysqli_real_connect() retournera une erreur lorsque vous tenterez une connexion.

Voir aussi



mysqli::stat

mysqli_stat

(PHP 5)

mysqli::stat -- mysqli_statObtient le statut courant du système

Description

Style orienté objet

string mysqli::stat ( void )

Style procédural

string mysqli_stat ( mysqli $link )

mysqli_stat() retourne une chaîne de caractères contenant des informations similaires à la commande 'mysqladmin status'. Cela inclut le temps de fonctionnement, exprimé en secondes et le nombre de threads courant, le nombre de commandes, les tables rechargées et ouvertes.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères décrivant le statut du serveur. FALSE est retourné si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::stat()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

printf ("Statut du système : %s\n"$mysqli->stat());

$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

printf("Statut du système : %s\n"mysqli_stat($link));

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Statut du système : Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Voir aussi



mysqli::stmt_init

mysqli_stmt_init

(PHP 5)

mysqli::stmt_init -- mysqli_stmt_initInitialise une commande MySQL

Description

Style orienté objet

mysqli_stmt mysqli::stmt_init ( void )

Style procédural

mysqli_stmt mysqli_stmt_init ( mysqli $link )

Alloue et initialise un objet de commande, à utiliser avec mysqli_stmt_prepare().

Note:

Tous les appels ultérieurs aux fonctions mysqli_stmt_* échoueront, si mysqli_stmt_prepare() est appelée.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un objet.

Voir aussi



mysqli::store_result

mysqli_store_result

(PHP 5)

mysqli::store_result -- mysqli_store_resultTransfère un jeu de résultats à partir de la dernière requête

Description

Style orienté objet

mysqli_result mysqli::store_result ( void )

Style procédural

mysqli_result mysqli_store_result ( mysqli $link )

Transfère le jeu de résultats à partir de la dernière requête sur la connexion à la base de données spécifiée par le paramètre link pour une utilisation avec mysqli_data_seek().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un résultat stocké sous la forme d'un objet ou FALSE si une erreur survient.

Note:

mysqli_store_result() retourne FALSE dans le cas où la requête ne retourne pas de jeu de résultat (si la requête est de type INSERT par exemple). Cette fonction retournera toujours FALSE si le jeu de résultats ne peut être lu. Vous pouvez savoir s'il y a une erreur en utilisant la fonction mysqli_error() et en regardant si elle renvoie une chaîne vide, ou si mysqli_errno() retourne zéro, ou bien si mysqli_field_count() retourne une valeur différente de zéro. Une autre raison pour que cette fonction retourne FALSE est que le jeu de résultats retourné après une requête réussie appelée par mysqli_query() est trop long (la mémoire pour celui-ci ne peut être allouée). Si mysqli_field_count() retourne une valeur différente de zéro, le traitement devrait produire un jeu de résultats non vide.

Notes

Note:

Il est toujours conseillé de libérer la mémoire allouée pour le résultat en utilisant la fonction mysqli_free_result(), lors du transfert de grands résultats en utilisant la fonction mysqli_store_result() cela devient particulièrement important.

Exemples

Voir la fonction mysqli_multi_query().

Voir aussi



mysqli->thread_id

mysqli_thread_id

(PHP 5)

mysqli->thread_id -- mysqli_thread_idRetourne l'identifiant du thread pour la connexion courante

Description

Style orienté objet

int $thread_id;

Style procédural

int mysqli::mysqli_thread_id ( mysqli $link )

La fonction mysqli_thread_id() retourne l'identifiant du thread de la connexion courante qui peut être terminé par la suite en utilisant la fonction mysqli_kill(). Si la connexion est perdue et que vous vous reconnectez avec la fonction mysqli_ping(), l'identifiant du thread sera différent. Ainsi, vous devez récupérer l'identifiant du thread uniquement lorsque vous en avez besoin.

Note:

L'identifiant du thread est assigné sur une base de connexion par connexion. Ce qui fait que si la connexion est coupée, puis relancée, un nouvel identifiant de thread lui sera assigné.

Pour terminer une requête en cours d'exécution, vous pouvez utiliser la commande SQL KILL QUERY processid.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne l'identifiant du thread pour la connexion courante.

Exemples

Exemple #1 Exemple avec mysqli->thread_id

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id $mysqli->thread_id;

/* Termine la connexion */
$mysqli->kill($thread_id);

/* Ceci doit produire une erreur */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    
printf("Erreur : %s\n"$mysqli->error);
    exit;
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id mysqli_thread_id($link);

/* Termine la connexion */
mysqli_kill($link$thread_id);

/* Ceci doit produire une erreur */
if (!mysqli_query($link"CREATE TABLE myCity LIKE City")) {
    
printf("Erreur : %s\n"mysqli_error($link));
    exit;
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : MySQL server has gone away

Voir aussi



mysqli::thread_safe

mysqli_thread_safe

(PHP 5)

mysqli::thread_safe -- mysqli_thread_safeIndique si le support des threads est activé ou pas

Description

Style procédural

bool mysqli_thread_safe ( void )

Indique si la bibliothèque cliente est compilée avec la sécurité thread.

Valeurs de retour

TRUE si la bibliothèque cliente est thread-safe, FALSE sinon.



mysqli::use_result

mysqli_use_result

(PHP 5)

mysqli::use_result -- mysqli_use_resultInitialise la récupération d'un jeu de résultats

Description

Style orienté objet

mysqli_result mysqli::use_result ( void )

Style procédural

mysqli_result mysqli_use_result ( mysqli $link )

Utilisé pour initialiser la récupération d'un jeu de résultats à partir de la dernière requête exécutée en utilisant la fonction mysqli_real_query() sur la connexion spécifiée par le paramètre link.

Cette fonction ou la fonction mysqli_store_result() doivent être appelées avant que le résultat d'une requête ne puisse être récupéré, et pour éviter l'échec de la prochaine requête sur la connexion à la base de données.

Note:

La fonction mysqli_use_result() ne transfère pas le jeu de résultats en entier à partir de la base de données et on ne peut donc pas utiliser des fonctions telle mysqli_data_seek() pour se déplacer entre les enregistrements. Pour utiliser cette fonctionnalité, vous devez récupérer le jeu de résultats en utilisant mysqli_store_result().

Valeurs de retour

Retourne un objet de résultats non stockés ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::use_result()

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query  "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution de plusieurs requêtes */
if ($mysqli->multi_query($query)) {
    do {
        
/* Stockage du premier jeu de résultats */
        
if ($result $mysqli->use_result()) {
            while (
$row $result->fetch_row()) {
                
printf("%s\n"$row[0]);
            }
            
$result->close();
        }
        
/* Affichage d'une démarquation */
        
if ($mysqli->more_results()) {
            
printf("-----------------\n");
        }
    } while (
$mysqli->next_result());
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query  "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution de plusieurs requêtes */
if (mysqli_multi_query($link$query)) {
    do {
        
/* Stockage du premier jeu de résultats */
        
if ($result mysqli_use_result($link)) {
            while (
$row mysqli_fetch_row($result)) {
                
printf("%s\n"$row[0]);
            }
            
mysqli_free_result($result);
        }
        
/* Affichage d'une démarquation */
        
if (mysqli_more_results($link)) {
            
printf("-----------------\n");
        }
    } while (
mysqli_next_result($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Voir aussi



mysqli->warning_count

mysqli_warning_count

(PHP 5)

mysqli->warning_count -- mysqli_warning_countRetourne le nombre d'avertissements générés par la dernière requête

Description

Style orienté objet

int $warning_count;

Style procédural

int mysqli::mysqli_warning_count ( mysqli $link )

Retourne le nombre d'avertissements générés par la dernière requête de la connexion représentée par le paramètre link.

Note:

Pour récupérer les messages d'avertissements, vous pouvez utiliser la commande SQL SHOW WARNINGS [limit row_count].

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Le nombre d'avertissements ou 0 s'il n'y en a pas.

Exemples

Exemple #1 Exemple avec mysqli->warning_count

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* une ville remarquable en Grande-Bretagne :-) */
$query "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')"
;

$mysqli->query($query);

if (
$mysqli->warning_count) {
    if (
$result $mysqli->query("SHOW WARNINGS")) {
        
$row $result->fetch_row();
        
printf("%s (%d): %s\n"$row[0], $row[1], $row[2]);
        
$result->close();
    }
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TABLE myCity LIKE City");

/* une ville remarquable en Grande-Bretagne :-) */
$query "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')"
;

mysqli_query($link$query);

if (
mysqli_warning_count($link)) {
    if (
$result mysqli_query($link"SHOW WARNINGS")) {
        
$row mysqli_fetch_row($result);
        
printf("%s (%d): %s\n"$row[0], $row[1], $row[2]);
        
mysqli_free_result($result);
    }
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Warning (1264): Data truncated for column 'Name' at row 1

Voir aussi


Sommaire



La classe MySQLi_STMT

Introduction

Représente une requête préparée.

Synopsis de la classe

MySQLi_STMT {
/* Propriétés */
int $affected_rows;
int $errno;
string $error;
int $field_count;
int $insert_id;
int $num_rows;
int $param_count;
string $sqlstate;
/* Méthodes */
int MySQLi_STMT::mysqli_stmt_affected_rows ( mysqli_stmt $stmt )
int mysqli_stmt::attr_get ( int $attr )
bool mysqli_stmt::attr_set ( int $attr , int $mode )
bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
bool mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )
bool mysqli_stmt::close ( void )
void mysqli_stmt::data_seek ( int $offset )
int mysqli_stmt_errno ( mysqli_stmt $stmt )
string mysqli_stmt_error ( mysqli_stmt $stmt )
bool mysqli_stmt::execute ( void )
bool mysqli_stmt::fetch ( void )
int mysqli_stmt_field_count ( mysqli_stmt $stmt )
object mysqli_stmt::get_warnings ( mysqli_stmt $stmt )
mixed mysqli_stmt_insert_id ( mysqli_stmt $stmt )
int mysqli_stmt_num_rows ( mysqli_stmt $stmt )
int mysqli_stmt_param_count ( mysqli_stmt $stmt )
mixed mysqli_stmt::prepare ( string $query )
bool mysqli_stmt::reset ( void )
mysqli_result mysqli_stmt::result_metadata ( void )
bool mysqli_stmt::send_long_data ( int $param_nr , string $data )
string mysqli_stmt_sqlstate ( mysqli_stmt $stmt )
}

mysqli_stmt->affected_rows

mysqli_stmt_affected_rows

(PHP 5)

mysqli_stmt->affected_rows -- mysqli_stmt_affected_rowsRetourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

Description

Style orienté objet

int $affected_rows;

Style procédural

int mysqli_stmt::mysqli_stmt_affected_rows ( mysqli_stmt $stmt )

Retourne le nombre de lignes affectées par une requête INSERT, UPDATE ou DELETE.

La fonction mysqli_stmt_affected_rows() ne fonctionne que sur les requêtes qui modifient la table. Si vous désirez récupérer le nombre de lignes retournées par une requête SELECT, utilisez plutôt la requête mysqli_stmt_num_rows().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Un entier supérieur à zéro indique le nombre de lignes affectées ou retrouvées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête UPDATE/DELETE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été encore exécutée. -1 indique que la dernière requête a retourné une erreur. NULL indique qu'un argument invalide a été fourni à la fonction.

Note:

Si le nombre de lignes affectées est plus grand que la valeur entière maximale de PHP, le nombre de lignes affectées sera retourné comme une chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Création d'une table temporaire */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Préparation de la requête */
if ($stmt $mysqli->prepare($query)) {

    
/* Insertion de la variable */
    
$code 'A%';
    
$stmt->bind_param("s"$code);

    
/* Exécution de la requête */
    
$stmt->execute();

    
printf("Lignes insérées : %d\n"$stmt->affected_rows);

    
/* Fermeture du traitement */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Création d'une table temporaire */
mysqli_query($link"CREATE TEMPORARY TABLE myCountry LIKE Country");

$query "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Préparation de la requête */
if ($stmt mysqli_prepare($link$query)) {

    
/* Insertion de la variable */
    
$code 'A%';
    
mysqli_stmt_bind_param($stmt"s"$code);

    
/* Exécution de la requête */
    
mysqli_stmt_execute($stmt);

    
printf("Lignes insérées : %d\n"mysqli_stmt_affected_rows($stmt));

    
/* Fermeture du traitement */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Lignes insérées : 17

Voir aussi



mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5)

mysqli_stmt::attr_get -- mysqli_stmt_attr_getRécupère la valeur courante d'un attribut de requête

Description

Style orienté objet

int mysqli_stmt::attr_get ( int $attr )

Style procédural

int mysqli_stmt_attr_get ( mysqli_stmt $stmt , int $attr )

Récupère la valeur courante d'un attribut de requête.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

attr

L'attribut que vous voulez récupérer.

Valeurs de retour

Retourne FALSE si l'attribut n'a pas été trouvé ou la valeur de l'attribut en cas de succès.



mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5)

mysqli_stmt::attr_set -- mysqli_stmt_attr_setModifie le comportement d'une requête préparée

Description

Style orienté objet

bool mysqli_stmt::attr_set ( int $attr , int $mode )

Style procédural

bool mysqli_stmt_attr_set ( mysqli_stmt $stmt , int $attr , int $mode )

Modifie le comportement d'une requête préparée. Cette fonction peut être appelée plusieurs fois pour définir plusieurs attributs.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

attr

L'attribut que vous voulez définir. Il peut avoir une des valeurs suivantes :

Valeurs des attributs
Caractère Description
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH Si défini à 1, la fonction mysqli_stmt_store_result() mettra à jour la valeur de la méta-donnée MYSQL_FIELD->max_length.
MYSQLI_STMT_ATTR_CURSOR_TYPE Type du curseur permettant l'ouverture de la requête lorsque la fonction mysqli_stmt_execute() est appelée. mode peut valoir MYSQLI_CURSOR_TYPE_NO_CURSOR (par défaut) ou MYSQLI_CURSOR_TYPE_READ_ONLY.
MYSQLI_STMT_ATTR_PREFETCH_ROWS Nombre de lignes à récupérer depuis le serveur en une fois lors de l'utilisation d'un curseur. mode peut être compris entre 1 et la valeur maximale d'un type long non-signé. Par défaut, vaut 1.

Si vous utilisez l'option MYSQLI_STMT_ATTR_CURSOR_TYPE avec MYSQLI_CURSOR_TYPE_READ_ONLY, un curseur sera ouvert pour la requête lors de l'appel à la fonction mysqli_stmt_execute(). S'il y a déjà un curseur d'ouvert depuis un précédent appel à la fonction mysqli_stmt_execute(), il sera fermé avant d'en ouvrir un nouveau. La fonction mysqli_stmt_reset() ferme également tous les curseurs avant de préparer la requête pour une ré-exécution. La fonction mysqli_stmt_free_result() ferme tout curseur ouvert.

Si vous ouvrez un curseur pour une requête préparée, la fonction mysqli_stmt_store_result() n'est pas nécessaire.

mode

La valeur à assigner à l'attribut.



mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt::bind_param -- mysqli_stmt_bind_paramLie des variables à une requête MySQL

Description

Style orienté objet

bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Style procédural

bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Sert à lier des variables à une requête MySQL préparée par mysqli_prepare().

Note:

Si la taille des données dépasse la taille maximal d'un paquet, (max_allowed_packet), vous devez spécifier le caractère b dans le paramètre types et utiliser la fonction mysqli_stmt_send_long_data() pour envoyer le message par paquets.

Note:

Vous devez être prudent lors de l'utilisation de mysqli_stmt_bind_param() avec la fonction call_user_func_array(). Notez que mysqli_stmt_bind_param() nécessite que ses paramètres soient passés par référence, alors que la fonction call_user_func_array() peut accepter comme paramètre une liste de variables qui peuvent représenter des références ou des valeurs.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

types

Une chaîne de caractères qui contient un ou plusieurs caractères qui spécifient le type de la variable à lier :

Caractère de spécification des types
Caractère Description
i correspond à une variable de type entier
d correspond à une variable de type nombre décimal
s correspond à une variable de type chaîne de caractères
b correspond à une variable de type BLOB, qui sera envoyé par paquets

var1

Le nombre de variables et la longueur de la chaîne de caractères types doivent correspondre aux paramètres de la requête.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli('localhost''my_user''my_password''world');

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$stmt $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd'$code$language$official$percent);

$code 'DEU';
$language 'Bavarian';
$official "F";
$percent 11.2;

/* Exécution de la requête */
$stmt->execute();

printf("%d ligne insérée.\n"$stmt->affected_rows);

/* Fermeture du traitement */
$stmt->close();

/* Nettoyage de la table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n"$mysqli->affected_rows);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect('localhost''my_user''my_password''world');

/* Vérification de la connexion */
if (!$link) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$stmt mysqli_prepare($link"INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt'sssd'$code$language$official$percent);

$code 'DEU';
$language 'Bavarian';
$official "F";
$percent 11.2;

/* Exécution de la requête */
mysqli_stmt_execute($stmt);

printf("%d ligne insérée.\n"mysqli_stmt_affected_rows($stmt));

/* Fermeture du traitement */
mysqli_stmt_close($stmt);

/* Nettoyage de la table CountryLanguage */
mysqli_query($link"DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n"mysqli_affected_rows($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

1 ligne insérée.
1 ligne effacée.

Voir aussi



mysqli_stmt::bind_result

mysqli_stmt_bind_result

(PHP 5)

mysqli_stmt::bind_result -- mysqli_stmt_bind_resultLie des variables à un jeu de résultats

Description

Style orienté objet

bool mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )

Style procédural

bool mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] )

Associe des colonnes d'un résultat à des variables.

Lorsque mysqli_stmt_fetch() est appelée pour lire des valeurs, le protocole MySQL place les données dans les variables spécifiées dans le paramètre var1, ....

Note:

Notez que toutes les colonnes doivent être liées après l'exécution de la fonction mysqli_stmt_execute() et avant l'appel à la fonction mysqli_stmt_fetch(). En fonction du type de valeur de la colonne, le type de variable PHP peut être automatiquement modifié.

Une colonne peut être associée ou réassociée à tout moment, même après une lecture partielle du résultat. La nouvelle association prend effet au prochain appel de mysqli_stmt_fetch().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

var1

La variable à lier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    
$stmt->execute();

    
/* Insertion de la variable */
    
$stmt->bind_result($col1$col2);

    
/* Récupération des valeurs */
    
while ($stmt->fetch()) {
        
printf("%s %s\n"$col1$col2);
    }

    
/* Fermeture du traitement */
    
$stmt->close();
}
/* Fermeture de la connexion */
$mysqli->close();

?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (!$link) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt mysqli_prepare($link"SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    
mysqli_stmt_execute($stmt);

    
/* Insertion de la variable */
    
mysqli_stmt_bind_result($stmt$col1$col2);

    
/* Récupération des valeurs */
    
while (mysqli_stmt_fetch($stmt)) {
        
printf("%s %s\n"$col1$col2);
    }

    
/* Fermeture du traitement */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Voir aussi



mysqli_stmt::close

mysqli_stmt_close

(PHP 5)

mysqli_stmt::close -- mysqli_stmt_closeTermine une requête préparée

Description

Style orienté objet

bool mysqli_stmt::close ( void )

Style procédural

bool mysqli_stmt_close ( mysqli_stmt $stmt )

Ferme une requête préparée. mysqli_stmt_close() libère le pointeur utilisé par stmt. Si la requête est en attente ou bien que les résultats ne sont pas encore lus, cette fonction les annulera et, donc, la prochaine requête pourra être exécutée.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5)

mysqli_stmt::data_seek -- mysqli_stmt_data_seekDéplace le pointeur de résultat

Description

Style orienté objet

void mysqli_stmt::data_seek ( int $offset )

Style procédural

void mysqli_stmt_data_seek ( mysqli_stmt $stmt , int $offset )

Déplace le pointeur du résultat statement de offset lignes.

mysqli_stmt_store_result() doit être appelée avant la fonction mysqli_stmt_data_seek().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

offset

Doit prendre une valeur entre zéro et le nombre total de ligne moins 1 (0..mysqli_stmt_num_rows() - 1).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name";
if (
$stmt $mysqli->prepare($query)) {

    
/* Exécute la requête */
    
$stmt->execute();

    
/* Lie les variables de résultat */
    
$stmt->bind_result($name$code);

    
/* Stock le résultat */
    
$stmt->store_result();

    
/* Va à la ligne 400 */
    
$stmt->data_seek(399);

    
/* Lit une valeur */
    
$stmt->fetch();

    
printf ("Villle : %s Code Pays : %s\n"$name$code);

    
/* Ferme la commande */
    
$stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name";
if (
$stmt mysqli_prepare($link$query)) {

    
/* Exécute la requête */
    
mysqli_stmt_execute($stmt);

    
/* Lie les variables de résultat */
    
mysqli_stmt_bind_result($stmt$name$code);

    
/* Stock le résultat */
    
mysqli_stmt_store_result($stmt);

    
/* Va à la ligne 400 */
    
mysqli_stmt_data_seek($stmt399);

    
/* Lit une valeur */
    
mysqli_stmt_fetch($stmt);

    
printf ("Ville : %s Code Pays : %s\n"$name$code);

    
/* Ferme la commande */
    
mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Ville : Benin City Code Pays : NGA

Voir aussi



mysqli_stmt->errno

mysqli_stmt_errno

(PHP 5)

mysqli_stmt->errno -- mysqli_stmt_errnoRetourne un code erreur pour la dernière requête

Description

Style orienté objet

int $errno;

Style procédural

int mysqli_stmt::mysqli_stmt_errno ( mysqli_stmt $stmt )

Retourne le code erreur pour la dernière requête appelée dans le traitement qui a réussi ou échoué.

La liste des codes erreur client est disponible dans l'en-tête du fichier MySQL errmsg.h ; la liste des codes erreur serveur est disponible dans le fichier MySQL mysqld_error.h. Dans les sources de MySQL, vous pouvez trouver une liste complète des messages d'erreur ainsi que des codes erreur dans le fichier Docs/mysqld_error.txt.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Une valeur représentant un code erreur. 0 signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");


$query "SELECT Name, Code FROM myCountry ORDER BY Name";
if (
$stmt $mysqli->prepare($query)) {

    
/* Effacement de la table */
    
$mysqli->query("DROP TABLE myCountry");

    
/* Exécute la requête */
    
$stmt->execute();

    
printf("Erreur : %d.\n"$stmt->errno);

    
/* Ferme la commande */
    
$stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TABLE myCountry LIKE Country");
mysqli_query($link"INSERT INTO myCountry SELECT * FROM Country");


$query "SELECT Name, Code FROM myCountry ORDER BY Name";
if (
$stmt mysqli_prepare($link$query)) {

    
/* Effacement de la table */
    
mysqli_query($link"DROP TABLE myCountry");

    
/* Exécute la requête */
    
mysqli_stmt_execute($stmt);

    
printf("Erreur : %d.\n"mysqli_stmt_errno($stmt));

    
/* Ferme la commande */
    
mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : 1146.

Voir aussi



mysqli_stmt->error

mysqli_stmt_error

(PHP 5)

mysqli_stmt->error -- mysqli_stmt_errorRetourne une description de la dernière erreur de traitement

Description

Style orienté objet

string $error;

Style procédural

string mysqli_stmt::mysqli_stmt_error ( mysqli_stmt $stmt )

Retourne une chaîne de caractères représentant le message d'erreur le plus récent appelé par une fonction de traitement, qu'elle ait réussi ou échoué.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Une chaîne de caractères décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");


$query "SELECT Name, Code FROM myCountry ORDER BY Name";
if (
$stmt $mysqli->prepare($query)) {

    
/* Effacement de la table */
    
$mysqli->query("DROP TABLE myCountry");

    
/* Exécute la requête */
    
$stmt->execute();

    
printf("Erreur : %s.\n"$stmt->error);

    
/* Ferme la commande */
    
$stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TABLE myCountry LIKE Country");
mysqli_query($link"INSERT INTO myCountry SELECT * FROM Country");


$query "SELECT Name, Code FROM myCountry ORDER BY Name";
if (
$stmt mysqli_prepare($link$query)) {

    
/* Effacement de la table */
    
mysqli_query($link"DROP TABLE myCountry");

    
/* Exécute la requête */
    
mysqli_stmt_execute($stmt);

    
printf("Erreur : %s.\n"mysqli_stmt_error($stmt));

    
/* Ferme la commande */
    
mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : Table 'world.myCountry' doesn't exist.

Voir aussi



mysqli_stmt::execute

mysqli_stmt_execute

(PHP 5)

mysqli_stmt::execute -- mysqli_stmt_executeExécute une requête préparée

Description

Style orienté objet

bool mysqli_stmt::execute ( void )

Style procédural

bool mysqli_stmt_execute ( mysqli_stmt $stmt )

Exécute une requête qui a été préalablement préparée en utilisant la fonction mysqli_prepare(), grâce à la ressource stmt. Lors de l'exécution, toutes les variables de la requête seront remplacées par les données appropriées.

Si la requête est UPDATE, DELETE ou INSERT, le nombre total de lignes affectées est disponible via la fonction mysqli_stmt_affected_rows(). De la même façon, si la fonction génère un résultat, il sera disponible via la fonction mysqli_stmt_fetch().

Note:

Lors de l'utilisation de mysqli_stmt_execute(), mysqli_stmt_fetch() doit être utilisée pour lire les données avant de lancer une autre requête.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Préparation de la commande d'insertion */
$query "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt $mysqli->prepare($query);

$stmt->bind_param("sss"$val1$val2$val3);

$val1 'Stuttgart';
$val2 'DEU';
$val3 'Baden-Wuerttemberg';

/* Exécute la requête */
$stmt->execute();

$val1 'Bordeaux';
$val2 'FRA';
$val3 'Aquitaine';

/* Exécute la requête */
$stmt->execute();

/* Ferme la requête */
$stmt->close();

/* Récupère toutes les lignes de la table myCity */
$query "SELECT Name, CountryCode, District FROM myCity";
if (
$result $mysqli->query($query)) {
    while (
$row $result->fetch_row()) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* Libère le résultat */
    
$result->close();
}

/* Efface la table */
$mysqli->query("DROP TABLE myCity");

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TABLE myCity LIKE City");

/* Préparation de la commande d'insertion */
$query "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt mysqli_prepare($link$query);

mysqli_stmt_bind_param($stmt"sss"$val1$val2$val3);

$val1 'Stuttgart';
$val2 'DEU';
$val3 'Baden-Wuerttemberg';

/* Exécute la requête */
mysqli_stmt_execute($stmt);

$val1 'Bordeaux';
$val2 'FRA';
$val3 'Aquitaine';

/* Exécute la requête */
mysqli_stmt_execute($stmt);

/* Ferme la requête */
mysqli_stmt_close($stmt);

/* Récupère toutes les lignes de la table myCity */
$query "SELECT Name, CountryCode, District FROM myCity";
if (
$result mysqli_query($link$query)) {
    while (
$row mysqli_fetch_row($result)) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* Libère le résultat */
    
mysqli_free_result($result);
}

/* Efface la table */
mysqli_query($link"DROP TABLE myCity");

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Voir aussi



mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5)

mysqli_stmt::fetch -- mysqli_stmt_fetchLit des résultats depuis une requête MySQL préparée dans des variables liées

Description

Style orienté objet

bool mysqli_stmt::fetch ( void )

Style procédural

bool mysqli_stmt_fetch ( mysqli_stmt $stmt )

Retourne le résultat d'une requête préparée dans une variable, liée par mysqli_stmt_bind_result().

Note:

Notez que toutes les colonnes doivent être liées par l'application avant d'appeler mysqli_stmt_fetch().

Note:

Les données sont transférées sans être bufferisées, sans appeler la fonction mysqli_stmt_store_result(), ce qui peut avoir un impact sur les performances (mais aussi, réduire l'utilisation mémoire).

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Valeurs de retour
Value Description
TRUE Réussite. Les données ont été lues.
FALSE Une erreur est survenue.
NULL Il n'y a plus de ligne à lire ou les données ont été tronquées.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if (
$stmt $mysqli->prepare($query)) {

    
/* Exécution de la requête */
    
$stmt->execute();

    
/* Association des variables de résultat */
    
$stmt->bind_result($name$code);

    
/* Lecture des valeurs */
    
while ($stmt->fetch()) {
        
printf ("%s (%s)\n"$name$code);
    }

    
/* Fermeture de la commande */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if (
$stmt mysqli_prepare($link$query)) {

    
/* Exécution de la requête */
    
mysqli_stmt_execute($stmt);

    
/* Association des variables de résultat */
    
mysqli_stmt_bind_result($stmt$name$code);

    
/* Lecture des valeurs */
    
while (mysqli_stmt_fetch($stmt)) {
        
printf ("%s (%s)\n"$name$code);
    }

    
/* Fermeture de la commande */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Voir aussi



mysqli_stmt->field_count

mysqli_stmt_field_count

(PHP 5)

mysqli_stmt->field_count -- mysqli_stmt_field_countRetourne le nombre de champs présent dans la requête donnée

Description

Style orienté objet

int $field_count;

Style procédural

int mysqli_stmt::mysqli_stmt_field_count ( mysqli_stmt $stmt )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



mysqli_stmt::free_result

mysqli_stmt_free_result

(PHP 5)

mysqli_stmt::free_result -- mysqli_stmt_free_resultLibère le résultat MySQL de la mémoire

Description

Style orienté objet

void mysqli_stmt::free_result ( void )

Style procédural

void mysqli_stmt_free_result ( mysqli_stmt $stmt )

Libère le résultat stmt de la mémoire. stmt a été obtenu de la fonction mysqli_stmt_store_result().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



mysqli_stmt::get_result

mysqli_stmt_get_result

(No version information available, might only be in SVN)

mysqli_stmt::get_result -- mysqli_stmt_get_resultRécupère un jeu de résultats depuis une requête préparée

Description

Style orienté objet

bool mysqli_stmt::get_result ( void )

Style procédural

bool mysqli_stmt_get_result ( mysqli_stmt $stmt )

Récupère un jeu de résultats depuis une requête préparée.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un jeu de résultats.

Exemples

Style orienté objet

<?php 

$mysqli 
= new mysqli("127.0.0.1""user""password""world"); 

if(
$mysqli->connect_error)
{
    die(
"$mysqli->connect_errno$myslqi->connect_error");
}

$query "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt $mysqli->stmt_init();
if(!
$stmt->prepare($query))
{
    print 
"Échec lors de la préparation de la requête\n";
}
else
{
    
$stmt->bind_param("s"$continent);

    
$continent_array = array('Europe','Africa','Asia','North America');

    foreach(
$continent_array as $continent)
    {
        
$stmt->execute();
        
$result $stmt->get_result();
        while (
$row $result->fetch_array(MYSQLI_NUM))
        {
            foreach (
$row as $r)
            {
                print 
"$r ";
            }
            print 
"\n";
        }
    }
}

$stmt->close();
$mysqli->close();
?>

Style procédural

<?php 

$link 
mysqli_connect("127.0.0.1""user""password""world"); 

if (!
$link)
{
    
$error mysqli_connect_error();
    
$errno mysqli_connect_errno();
    print 
"$errno$error\n";
    exit();
}

$query "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt mysqli_stmt_init($link);
if(!
mysqli_stmt_prepare($stmt$query))
{
    print 
"Échec lors de la préparation de la requête\n";
}
else
{
    
mysqli_stmt_bind_param($stmt"s"$continent);

    
$continent_array = array('Europe','Africa','Asia','North America');

    foreach(
$continent_array as $continent)
    {
        
mysqli_stmt_execute($stmt);
        
$result mysqli_stmt_get_result($stmt);
        while (
$row mysqli_fetch_array($resultMYSQLI_NUM))
        {
            foreach (
$row as $r)
            {
                print 
"$r ";
            }
            print 
"\n";
        }
    }
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Albania 3401200 Europe 
Algeria 31471000 Africa 
Afghanistan 22720000 Asia 
Anguilla 8000 North America 

Voir aussi



mysqli_stmt::get_warnings

mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings

Description

Style orienté objet

object mysqli_stmt::get_warnings ( mysqli_stmt $stmt )

Style procédural

object mysqli_stmt_get_warnings ( mysqli_stmt $stmt )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



mysqli_stmt->insert_id

mysqli_stmt_insert_id

(PHP 5)

mysqli_stmt->insert_id -- mysqli_stmt_insert_idRécupère l'ID généré par la dernière requête INSERT

Description

Style orienté objet

int $insert_id;

Style procédural

mixed mysqli_stmt::mysqli_stmt_insert_id ( mysqli_stmt $stmt )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



mysqli_stmt::num_rows

mysqli_stmt_num_rows

(PHP 5)

mysqli_stmt::num_rows -- mysqli_stmt_num_rowsRetourne le nombre de lignes d'un résultat MySQL

Description

Style orienté objet

int $num_rows;

Style procédural

int mysqli_stmt::mysqli_stmt_num_rows ( mysqli_stmt $stmt )

Retourne le nombre de lignes dans le résultat stmt. L'utilisation de la fonction mysqli_stmt_num_rows() dépend de l'utilisation ou non de la fonction mysqli_stmt_store_result() pour stocker le résultat dans la ressource de commande.

Si vous utilisez mysqli_stmt_store_result(), mysqli_stmt_num_rows() peut être appelée immédiatement.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Un entier représentant le nombre de lignes dans le résultat.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$stmt $mysqli->prepare($query)) {

    
/* Exécution de la requête */
    
$stmt->execute();

    
/* Stockage du résultat */
    
$stmt->store_result();

    
printf("Nombre de lignes : %d.\n"$stmt->num_rows);

    
/* Fermeture de la commande */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$stmt mysqli_prepare($link$query)) {

    
/* Exécution de la requête */
    
mysqli_stmt_execute($stmt);

    
/* Stockage du résultat */
    
mysqli_stmt_store_result($stmt);

    
printf("Nombre de lignes : %d.\n"mysqli_stmt_num_rows($stmt));

    
/* Fermeture de la commande */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nombre de lignes : 20.

Voir aussi



mysqli_stmt->param_count

mysqli_stmt_param_count

(PHP 5)

mysqli_stmt->param_count -- mysqli_stmt_param_countRetourne le nombre de paramètre d'une commande SQL

Description

Style orienté objet

int $param_count;

Style procédural

int mysqli_stmt::mysqli_stmt_param_count ( mysqli_stmt $stmt )

Retourne le nombre de variables attendues par la commande préparée stmt.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un entier représentant le nombre de paramètres.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (
$stmt $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    
$marker $stmt->param_count;
    
printf("La requête a %d variables.\n"$marker);

    
/* Fermeture de la commande */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (
$stmt mysqli_prepare($link"SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    
$marker mysqli_stmt_param_count($stmt);
    
printf("La requête a %d variables.\n"$marker);

    
/* Fermeture de la commande */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

La requête a 2 variables.

Voir aussi



mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5)

mysqli_stmt::prepare -- mysqli_stmt_preparePrépare une requête SQL pour l'exécution

Description

Style orienté objet

mixed mysqli_stmt::prepare ( string $query )

Style procédural

bool mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query )

Prépare la requête SQL query, pour la session de travail stmt.

Les variables SQL doivent être associées à une variable PHP à l'aide de la fonction mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result(), avant d'exécuter la requête.

Note:

Si vous passez une requête à mysqli_stmt_prepare() qui est plus longue que max_allowed_packet, les codes d'erreur en retour seront différents selon si vous utilisez MySQL Native Driver (mysqlnd) ou la MySQL Client Library (libmysql). Le comportement est défini comme suit:

  • mysqlnd sur Linux retourne un code d'erreur de 1153. Le message d'erreur sera "got a packet bigger than max_allowed_packet bytes".

  • mysqlnd sur Windows retourne un code d'erreur de 2006. Le message sera du type "server has gone away".

  • libmysql sur toute plateforme retourne le code d'erreur 2006. Le message sera du type "server has gone away".

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

query

La requête, sous forme de chaîne. Elle doit être constituée d'une commande SQL valide et unique.

Ce paramètre peut inclure une ou plusieurs variables SQL, en utilisant des points d'interrogation (?) aux bons endroits.

Note:

Il ne faut pas ajouter de point-virgule ou de \g à la fin de la requête.

Note:

Les variables SQL ne sont possibles que dans certaines clauses de la requête SQL. Par exemple, elles peuvent être placées dans des clause VALUES() d'une requête INSERT (pour spécifier une valeur à insérer), ou dans une clause de condition WHERE.

Cependant, elles ne sont pas autorisées pour les identifiants (de tables ou de colonnes), dans les listes de colonnes d'un SELECT, ou pour spécifier des opérateurs comme =. Cette dernière restriction est liée au fait qu'il est impossible de déterminer le type. En général, les variables SQL ne sont valides que dans les commandes de manipulation de données ("Data Manipulation Language" (DML)), et non dans les structures du langages SQL ("Data Definition Language" (DDL)).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$city "Amersfoort";

/* Création d'une requête préparée */
$stmt =  $mysqli->stmt_init();
if (
$stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    
/* Association des variables SQL */
    
$stmt->bind_param("s"$city);

    
/* Exécution de la requête */
    
$stmt->execute();

    
/* Association des variables de résultats */
    
$stmt->bind_result($district);

    
/* Lecture des valeurs */
    
$stmt->fetch();

    
printf("%s est dans la région de %s\n"$city$district);

    
/* Fermeture de la commande */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$city "Amersfoort";

/* Création d'une requête préparée */
$stmt mysqli_stmt_init($link);
if (
mysqli_stmt_prepare($stmt'SELECT District FROM City WHERE Name=?')) {

    
/* Association des variables SQL */
    
mysqli_stmt_bind_param($stmt"s"$city);

    
/* Exécution de la requête */
    
mysqli_stmt_execute($stmt);

    
/* Association des variables de résultats */
    
mysqli_stmt_bind_result($stmt$district);

    
/* Lecture des valeurs */
    
mysqli_stmt_fetch($stmt);

    
printf("%s est dans la région de %s\n"$city$district);

    
/* Fermeture de la commande */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Amersfoort est dans la région de Utrecht

Voir aussi

mysqli_stmt_init() - Initialise une commande MySQL, mysqli_stmt_execute() - Exécute une requête préparée, mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées, mysqli_stmt_bind_param() - Lie des variables à une requête MySQL, mysqli_stmt_bind_result() - Lie des variables à un jeu de résultats mysqli_stmt_close() - Termine une requête préparée.



mysqli_stmt::reset

mysqli_stmt_reset

(PHP 5)

mysqli_stmt::reset -- mysqli_stmt_resetAnnule une requête préparée

Description

Style orienté objet

bool mysqli_stmt::reset ( void )

Style procédural

bool mysqli_stmt_reset ( mysqli_stmt $stmt )

Annule une requête préparée sur le client et sur le serveur après avoir été préparée.

Cette fonction annule la requête sur le serveur, annule les données envoyées en utilisant la fonction mysqli_stmt_send_long_data(), annule les jeux de résultats non mis en buffer mais aussi les erreurs courantes. Par contre, les jeux de résultats stoqués ou liés ne sont pas annulés. Les jeux de résultats stoqués sont effacés lors de l'exécution de la requête préparée (ou lorsuq'on les ferme).

Pour préparer de nouveau une requête, utilisez la fonction mysqli_stmt_prepare().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

(PHP 5)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadataRetourne les métadonnées de préparation de requête MySQL

Description

Style orienté objet

mysqli_result mysqli_stmt::result_metadata ( void )

Style procédural

mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt )

Si une commande a été préparée par mysqli_prepare(), et qu'elle produira un résultat, mysqli_stmt_result_metadata() retourne l'objet de résultat qui sera utilisée pour lire les métadonnées, comme le nombre de champs et les informations de colonnes.

Note:

Ce résultat peut être passé comme argument à toutes les fonctions qui demandent un champ, pour y lire les métadonnées :

Il est recommandé de libérer la ressource de résultat lorsque vous avez terminé de l'utiliser, en la passant ˆ la fonction mysqli_free_result().

Note:

Le jeu de résultat retourné par mysqli_stmt_result_metadata() ne contient que des métadonnées. Il ne contient aucune ligne de résultat. Ces lignes sont obtenues en utilisant la fonction mysqli_stmt_fetch().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un objet de résultats, ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* Lit les méta-données de résultat */
$result $stmt->result_metadata();

/* Lit les informations d'un champ, depuis les méta-données */
$field $result->fetch_field();

printf("Nom du champ : %s\n"$field->name);

/* Libération du résultat */
$result->close();

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""test");

mysqli_query($link"DROP TABLE IF EXISTS friends");
mysqli_query($link"CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link"INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt mysqli_prepare($link"SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* Lit les méta-données de résultat */
$result mysqli_stmt_result_metadata($stmt);

/* Lit les informations d'un champ, depuis les méta-données */
$field mysqli_fetch_field($result);

printf("Nom du champ : %s\n"$field->name);

/* Libération du résultat */
mysqli_free_result($result);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Voir aussi



mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_dataEnvoie des données MySQL par paquets

Description

Style orienté objet

bool mysqli_stmt::send_long_data ( int $param_nr , string $data )

Style procédural

bool mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data )

Envoie les données au serveur par paquets, si la taille des données excède la limite de max_allowed_packet. Cette fonction peut être appelée plusieurs fois pour envoyer les données textes ou binaires de champs comme les BLOB ou TEXT.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

param_nr

Indique quel paramètre doit être associé avec quelles données. Les paramètres sont numérotés à partir de 0.

data

Une chaîne de caractères contenant les données à envoyer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Style orienté objet

<?php
$stmt 
$mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null NULL;
$stmt->bind_param("b"$null);
$fp fopen("messages.txt""r");
while (!
feof($fp)) {
    
$stmt->send_long_data(0fread($fp8192));
}
fclose($fp);
$stmt->execute();
?>

Voir aussi



mysqli_stmt::sqlstate

mysqli_stmt_sqlstate

(PHP 5)

mysqli_stmt::sqlstate -- mysqli_stmt_sqlstateRetourne le code SQLSTATE de la dernière opération MySQL

Description

Style orienté objet

string $sqlstate;

Style procédural

string mysqli_stmt::mysqli_stmt_sqlstate ( mysqli_stmt $stmt )

Retourne une chaîne contenant le code d'erreur SQLSTATE de la commande la plus récente qui a été préparée. Le code d'erreur est constitué de 5 caractères '00000'. Les valeurs des codes d'erreurs sont spécifiées par les normes ANSI SQL et ODBC. Pour la liste complète des valeurs, voyez le fichier » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne la chaîne contenant le code d'erreur SQLSTATE. Le code d'erreur est constitué de 5 caractères. '00000' représente l'absence d'erreur.

Notes

Note:

Notez que toutes les erreurs MySQL n'ont pas encore de correspondance en SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs sans correspondance.

Exemples

Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");


$query "SELECT Name, Code FROM myCountry ORDER BY Name";
if (
$stmt $mysqli->prepare($query)) {

    
/* Effacement de la table */
    
$mysqli->query("DROP TABLE myCountry");

    
/* Exécution de la requête */
    
$stmt->execute();

    
printf("Erreur : %s.\n"$stmt->sqlstate);

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
/* Ouvre la connexion */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TABLE myCountry LIKE Country");
mysqli_query($link"INSERT INTO myCountry SELECT * FROM Country");


$query "SELECT Name, Code FROM myCountry ORDER BY Name";
if (
$stmt mysqli_prepare($link$query)) {

    
/* Effacement de la table */
    
mysqli_query($link"DROP TABLE myCountry");

    
/* Exécution de la requête */
    
mysqli_stmt_execute($stmt);

    
printf("Erreur : %s.\n"mysqli_stmt_sqlstate($stmt));

    
/* Fermeture de la requête */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : 42S02.

Voir aussi



mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5)

mysqli_stmt::store_result -- mysqli_stmt_store_resultStock un jeu de résultats depuis une requête préparée

Description

Style orienté objet

bool mysqli_stmt::store_result ( void )

Style procédural

bool mysqli_stmt_store_result ( mysqli_stmt $stmt )

Vous devez appeler mysqli_stmt_store_result() pour toutes les requêtes qui produisent un jeu de résultats (SELECT, SHOW, DESCRIBE, EXPLAIN), et uniquement si vous voulez stocker le jeu de résultats complet par le client, et donc, les séquences mysqli_stmt_fetch() pourront retourner ces données stockées.

Note:

Il n'est pas nécessaire d'appeler mysqli_stmt_store_result() pour d'autres types de requête, mais si vous le faites, ce n'est pas grave et ne causera aucune perte notable de performance dans tous les cas. Vous pouvez détecter dans tous les cas si votre requête va produire un jeu de résultats en regardant si la fonction mysqli_stmt_result_metadata() retourne NULL.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$stmt $mysqli->prepare($query)) {

    
/* Exécution de la requête */
    
$stmt->execute();

    
/* Stock le résultat */
    
$stmt->store_result();

    
printf("Nombre de lignes: %d.\n"$stmt->num_rows);

    
/* Libère le résultat */
    
$stmt->free_result();

    
/* Fermeture de la requête */
    
$stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
/* Ouvre la connexion */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$stmt mysqli_prepare($link$query)) {

    
/* Exécution de la requête */
    
mysqli_stmt_execute($stmt);

    
/* Stock le résultat */
    
mysqli_stmt_store_result($stmt);

    
printf("Nombre de lignes : %d.\n"mysqli_stmt_num_rows($stmt));

    
/* Libère le résultat */
    
mysqli_stmt_free_result($stmt);

    
/* Fermeture de la requête */
    
mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nombre de lignes : 20.

Voir aussi


Sommaire



La classe MySQLi_Result

Introduction

Représente le jeu de résultats obtenu depuis une requête.

Synopsis de la classe

MySQLi_Result {
/* Propriétés */
int $current_field ;
int $field_count;
array $lengths;
int $num_rows;
/* Méthodes */
int MySQLi_Result::mysqli_field_tell ( mysqli_result $result )
bool mysqli_result::data_seek ( int $offset )
mixed mysqli_result::fetch_all ([ int $resulttype = MYSQLI_NUM ] )
mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )
object mysqli_result::fetch_field_direct ( int $fieldnr )
object mysqli_result::fetch_object ([ string $class_name [, array $params ]] )
mixed mysqli_result::fetch_row ( void )
int mysqli_num_fields ( mysqli_result $result )
bool mysqli_result::field_seek ( int $fieldnr )
void mysqli_result::free ( void )
array mysqli_fetch_lengths ( mysqli_result $result )
int mysqli_num_rows ( mysqli_result $result )
}

mysqli_result->current_field

mysqli_field_tell

(PHP 5)

mysqli_result->current_field -- mysqli_field_tellRécupère la position courante d'un champ dans un pointeur de résultat

Description

Style orienté objet

int $current_field ;

Style procédural

int mysqli_result::mysqli_field_tell ( mysqli_result $result )

Retourne la position du curseur de champ utilisé par le dernier appel à la fonction mysqli_fetch_field(). Cette valeur peut être utilisée comme argument de la fonction mysqli_field_seek().

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne la position courante du curseur de champ.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result $mysqli->query($query)) {

    
/* Récupération des informations sur le champ pour toutes les colonnes */
    
while ($finfo $result->fetch_field()) {

        
/* Récupération de la position du pointeur de champ */
        
$currentfield $result->current_field;

        
printf("Colonne %d :\n"$currentfield);
        
printf("Nom :     %s\n"$finfo->name);
        
printf("Table :    %s\n"$finfo->table);
        
printf("Longueur max. : %d\n"$finfo->max_length);
        
printf("Drapeaux :    %d\n"$finfo->flags);
        
printf("Type :     %d\n\n"$finfo->type);
    }
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result mysqli_query($link$query)) {

    
/* Récupération des informations sur le champ pour toutes les colonnes */
    
while ($finfo mysqli_fetch_field($result)) {

        
/* Récupération de la position du pointeur de champ */
        
$currentfield mysqli_field_tell($result);

        
printf("Colonne %d :\n"$currentfield);
        
printf("Nom :     %s\n"$finfo->name);
        
printf("Table :    %s\n"$finfo->table);
        
printf("Longueur max. : %d\n"$finfo->max_length);
        
printf("Drapeaux :    %d\n"$finfo->flags);
        
printf("Type :     %d\n\n"$finfo->type);
    }
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Colonne 1:
Nom :           Name
Table :         Country
Longueur max. : 11
Drapeaux :      1
Type :          254

Colonne 2:
Nom :           SurfaceArea
Table      :    Country
Longueur max. : 10
Drapeaux :      32769
Type :          4

Voir aussi



mysqli_result::data_seek

mysqli_data_seek

(PHP 5)

mysqli_result::data_seek -- mysqli_data_seekDéplace le pointeur interne de résultat

Description

Style orienté objet

bool mysqli_result::data_seek ( int $offset )

Style procédural

bool mysqli_data_seek ( mysqli_result $result , int $offset )

La fonction mysqli_data_seek() déplace le pointeur interne de résultat associé au jeu de résultat représenté par result, en le faisant pointer sur la ligne spécifiée par offset.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

offset

Le paramètre offset doit être compris entre zéro et mysqli_num_rows() - 1 (0..mysqli_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction ne peut être utilisée qu'avec des résultats obtenus avec la fonction mysqli_store_result() ou mysqli_query().

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name";
if (
$result $mysqli->query$query)) {

    
/* Déplacement du pointeur sur la ligne numéro 400 */
    
$result->data_seek(399);

    
/* Récupération de cette ligne */
    
$row $result->fetch_row();

    
printf ("Ville : %s Code Pays : %s\n"$row[0], $row[1]);

    
/* Libération des résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (!$link) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name";

if (
$result mysqli_query($link$query)) {

    
/* Déplacement du pointeur sur la ligne numéro 400 */
    
mysqli_data_seek($result399);

    
/* Récupération de cette ligne */
    
$row mysqli_fetch_row($result);

    
printf ("Ville : %s Code Pays : %s\n"$row[0], $row[1]);

    
/* Libération des résultats */
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Ville : Benin City Code Pays : NGA

Voir aussi



mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0)

mysqli_result::fetch_all -- mysqli_fetch_allLit toutes les lignes de résultats dans un tableau

Description

Style orienté objet

mixed mysqli_result::fetch_all ([ int $resulttype = MYSQLI_NUM ] )

Style procédural

mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] )

mysqli_fetch_all() lit tous les résultats et retourne le résultat sous forme d'un tableau associatif, numérique, ou les deux.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

resulttype

Ce paramètre optionnel est une constante, qui indique le type de tableau qui doit être produit à partir du résultat. Les valeurs possibles sont les constantes MYSQLI_ASSOC, MYSQLI_NUM, ou MYSQLI_BOTH.

Valeurs de retour

Retourne un tableau associatif ou numérique contenant les lignes de résultat.

Driver MySQL Natif uniquement

Disponible uniquement avec mysqlnd.

Vu que la fonction mysqli_fetch_all() retourne toutes les lignes dans un tableau en une seule fois, elle peut consommer plus de mémoire que des fonctions comme mysqli_fetch_array(), qui ne font que récupérer une ligne à la fois depuis le jeu de résultats. Par la suite, si vous devez parcourir le jeu de résultats, vous devez construire une boucle qui aura un impact sur les performances. C'est pour cette raison que la fonction mysqli_fetch_all() ne doit être utilisée que dans ce genre de situation où le résultat récupéré doit être envoyé vers une autre interface pour être analysé.

Voir aussi

  • mysqli_fetch_array() - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_query() - Exécute une requête sur la base de données



mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5)

mysqli_result::fetch_array -- mysqli_fetch_arrayRetourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

Description

Style orienté objet

mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )

Style procédural

mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] )

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultats result.

mysqli_fetch_array() est une version étendue de la fonction mysqli_fetch_row(). En plus d'enregistrer les données sous forme d'un tableau à indices numériques, elle peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme clés.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Si plusieurs colonnes portent le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

resulttype

Le second argument optionnel est une constante indiquant quel type de tableau doit être renvoyé à partir de la ligne de données courante. Les valeurs possibles pour ce paramètre sont les constantes MYSQLI_ASSOC, MYSQLI_NUM, et MYSQLI_BOTH.

En utilisant la constante MYSQLI_ASSOC, cette fonction se comportera comme la fonction mysqli_fetch_assoc(), tandis que MYSQLI_NUM la fera agir comme la fonction mysqli_fetch_row(). La constante MYSQLI_BOTH, créera elle un tableau qui sera à la fois associatif et indexé numériquement.

Valeurs de retour

Retourne un tableau de chaînes qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne disponible dans le jeu de résultats.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result $mysqli->query($query);

/* Tableau numérique */
$row $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n"$row[0], $row[1]);

/* Tableau associatif */
$row $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n"$row["Name"], $row["CountryCode"]);

/* Tableau associatif et numérique */
$row $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n"$row[0], $row["CountryCode"]);

/* Libération des résultats */
$result->close();

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result mysqli_query($link$query);

/* Tableau numérique */
$row mysqli_fetch_array($resultMYSQLI_NUM);
printf ("%s (%s)\n"$row[0], $row[1]);

/* Tableau associatif */
$row mysqli_fetch_array($resultMYSQLI_ASSOC);
printf ("%s (%s)\n"$row["Name"], $row["CountryCode"]);

/* Tableau associatif et numérique */
$row mysqli_fetch_array($resultMYSQLI_BOTH);
printf ("%s (%s)\n"$row[0], $row["CountryCode"]);

/* Libération des résultats */
mysqli_free_result($result);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Voir aussi



mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5)

mysqli_result::fetch_assoc -- mysqli_fetch_assocRécupère une ligne de résultat sous forme de tableau associatif

Description

Style orienté objet

array mysqli_result::fetch_assoc ( void )

Style procédural

array mysqli_fetch_assoc ( mysqli_result $result )

Retourne un tableau associatif qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un tableau associatif de chaînes représentant la prochaine ligne dans le jeu de résultats représenté par le paramètre result, où chaque clé du tableau représente le nom d'une colonne du résultat ou NULL s'il n'y a plus de ligne dans le jeu de résultats.

Si deux ou plus colonnes dans le jeu de résultat ont le même nom, le tableau associatif retourné par la fonction mysqli_fetch_assoc() ne contiendra que la valeur de la dernière colonne de ce nom. Si vous devez travailler avec des jeux de résultats ayant cette particularité, la fonction mysqli_fetch_row() qui retourne un tableau indexé doit être utilisée à la place.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result $mysqli->query($query)) {

    
/* Récupère un tableau associatif */
    
while ($row $result->fetch_assoc()) {
        
printf ("%s (%s)\n"$row["Name"], $row["CountryCode"]);
    }

    
/* Libération des résultats */
    
$result->free();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result mysqli_query($link$query)) {

    
/* Récupère un tableau associatif */
    
while ($row mysqli_fetch_assoc($result)) {
        
printf ("%s (%s)\n"$row["Name"], $row["CountryCode"]);
    }

    
/* Libération des résultats */
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi



mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_directRécupère les métadonnées d'un champ unique

Description

Style orienté objet

object mysqli_result::fetch_field_direct ( int $fieldnr )

Style procédural

object mysqli_fetch_field_direct ( mysqli_result $result , int $fieldnr )

Retourne un objet qui contient les métadonnées d'un champ dans le jeu de résultats spécifié.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

fieldnr

Le numéro du champ. Cette valeur doit être dans l'intervalle 0 à nombre de champs - 1.

Valeurs de retour

Retourne un objet qui contient les métadonnées d'un champ ou FALSE si aucune métadonnée n'est spécifiée pour le champ fieldnr.

Attributs de l'objet
Attribut Description
name Le nom de la colonne
orgname Le nom original de la colonne si un alias a été spécifié
table Le nom de la table à laquelle ce champs appartient (s'il n'a pas été calculé)
orgtable Le nom original de la table si un alias a été spécifié
def La valeur par défaut du champs, représentée par une chaîne de caractères
max_length La longueur maximale du champs pour le jeu de résultats
length La largeur du champs, comme spécifiée dans la définition de table
charsetnr Le numéro du jeu de caractères pour ce champs
flags Un entier représentant le bit-flags pour ce champs
type Le type de données utilisées pour ce champs
decimals Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if (
$result $mysqli->query($query)) {

    
/* Get field information for column 'SurfaceArea' */
    
$finfo $result->fetch_field_direct(1);

    
printf("Nom        : %s\n"$finfo->name);
    
printf("Table      : %s\n"$finfo->table);
    
printf("Taille max : %d\n"$finfo->max_length);
    
printf("Flags      : %d\n"$finfo->flags);
    
printf("Type       : %d\n"$finfo->type);

    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if (
$result mysqli_query($link$query)) {

    
/* Get field information for column 'SurfaceArea' */
    
$finfo mysqli_fetch_field_direct($result1);

    
printf("Nom        : %s\n"$finfo->name);
    
printf("Table      : %s\n"$finfo->table);
    
printf("Taille max : %d\n"$finfo->max_length);
    
printf("Flags      : %d\n"$finfo->flags);
    
printf("Type       : %d\n"$finfo->type);

    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nom        : SurfaceArea
Table      : Country
Taille max : 10
Flags      : 32769
Type       : 4

Voir aussi



mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5)

mysqli_result::fetch_field -- mysqli_fetch_fieldRetourne le prochain champs dans le jeu de résultats

Description

Style orienté objet

object mysqli_result::fetch_field ( void )

Style procédural

object mysqli_fetch_field ( mysqli_result $result )

Retourne les attributs de la prochaine colonne dans le jeu de résultats représenté par le paramètre result en tant qu'objet. Appelez cette fonction de façon répétitive pour récupérer les informations de toutes les colonnes.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un objet qui contient les informations d'un champ ou FALSE si aucune information n'est disponible pour ce champs.

Propriétés de l'objet
Propriété Description
name Le nom de la colonne
orgname Le nom original de la colonne si un alias a été spécifié
table Le nom de la table à laquelle ce champs appartient (s'il n'a pas été calculé)
orgtable Le nom original de la table si un alias a été spécifié
max_length La longueur maximale du champs pour le jeu de résultats
length La largeur du champs, comme spécifiée dans la définition de table
charsetnr Le numéro du jeu de caractères pour ce champs
flags Un entier représentant le bit-flags pour ce champs
type Le type de données utilisées pour ce champs
decimals Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result $mysqli->query($query)) {

    
/* Récupère les informations d'un champ pour toutes les colonnes */
    
while ($finfo $result->fetch_field()) {

        
printf("Name:     %s\n"$finfo->name);
        
printf("Table:    %s\n"$finfo->table);
        
printf("max. Len: %d\n"$finfo->max_length);
        
printf("Flags:    %d\n"$finfo->flags);
        
printf("Type:     %d\n\n"$finfo->type);
    }
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result mysqli_query($link$query)) {

    
/* Récupère les informations d'un champ pour toutes les colonnes */
    
while ($finfo mysqli_fetch_field($result)) {

        
printf("Name:     %s\n"$finfo->name);
        
printf("Table:    %s\n"$finfo->table);
        
printf("max. Len: %d\n"$finfo->max_length);
        
printf("Flags:    %d\n"$finfo->flags);
        
printf("Type:     %d\n\n"$finfo->type);
    }
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Voir aussi



mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5)

mysqli_result::fetch_fields -- mysqli_fetch_fieldsRetourne un tableau d'objets représentant les champs dans le résultat

Description

Style orienté objet

array mysqli_result::fetch_fields ( void )

Style procédural

array mysqli_fetch_fields ( mysqli_result $result )

Cette fonction fonctionne comme mysqli_fetch_field() à la différence que, au lieu de retourner un objet à la fois pour chaque champ, les colonnes sont retournées en tant que tableau d'objets.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un tableau d'objets qui contient les métadonnées d'un champ ou FALSE si aucune métadonnée n'est disponible pour ce champ.

Propriétés de l'objet
Propriété Description
name Le nom de la colonne
orgname Le nom original de la colonne si un alias a été spécifié
table Le nom de la table à laquelle ce champ appartient (s'il n'a pas été calculé)
orgtable Le nom original de la table si un alias a été spécifié
max_length La longueur maximale du champs pour le jeu de résultats
length La largeur du champs, comme spécifiée dans la définition de table
charsetnr Le numéro du jeu de caractères pour ce champs
flags Un entier représentant le bit-flags pour ce champs
type Le type de données utilisées pour ce champs
decimals Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result $mysqli->query($query)) {

    
/* Récupère les informations d'un champ pour toutes les colonnes */
    
$finfo $result->fetch_fields();

    foreach (
$finfo as $val) {
        
printf("Name:     %s\n"$val->name);
        
printf("Table:    %s\n"$val->table);
        
printf("max. Len: %d\n"$val->max_length);
        
printf("Flags:    %d\n"$val->flags);
        
printf("Type:     %d\n\n"$val->type);
    }
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result mysqli_query($link$query)) {

    
/* Récupère les informations d'un champ pour toutes les colonnes */
    
$finfo mysqli_fetch_fields($result);

    foreach (
$finfo as $val) {
        
printf("Name:     %s\n"$val->name);
        
printf("Table:    %s\n"$val->table);
        
printf("max. Len: %d\n"$val->max_length);
        
printf("Flags:    %d\n"$val->flags);
        
printf("Type:     %d\n\n"$val->type);
    }
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Voir aussi



mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5)

mysqli_result::fetch_object -- mysqli_fetch_objectRetourne la ligne courante d'un jeu de résultat sous forme d'objet

Description

Style orienté objet

object mysqli_result::fetch_object ([ string $class_name [, array $params ]] )

Style procédural

object mysqli_fetch_object ( mysqli_result $result [, string $class_name [, array $params ]] )

La fonction mysqli_fetch_object() retourne la ligne courante du jeu de résultat sous forme d'objet dont les attributs représentent les noms des champs trouvés dans le jeu de résultats.

Notez que mysqli_fetch_object() affecte les attributs de l'objet avant d'en appeler le constructeur.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

class_name

Le nom de la classe à instancier. Si non fourni, un objet stdClass sera retourné.

params

Un tableau de paramètres (optionnel) à passer au constructeur de l'objet class_name.

Valeurs de retour

Retourne un objet avec les propriétés qui correspondent à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultat.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Historique

Version Description
5.0.0 Ajoute la possibilité de retourner le résultat dans un objet différent.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}
 
$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result $mysqli->query($query)) {

    
/* Récupère un tableau d'objets */
    
while ($obj $result->fetch_object()) {
        
printf ("%s (%s)\n"$obj->Name$obj->CountryCode);
    }

    
/* free result set */
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result mysqli_query($link$query)) {

    
/* Récupère un tableau d'objets */
    
while ($obj mysqli_fetch_object($result)) {
        
printf ("%s (%s)\n"$obj->Name$obj->CountryCode);
    }

    
/* free result set */
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi



mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5)

mysqli_result::fetch_row -- mysqli_fetch_rowRécupère une ligne de résultat sous forme de tableau indexé

Description

Style orienté objet

mixed mysqli_result::fetch_row ( void )

Style procédural

mixed mysqli_fetch_row ( mysqli_result $result )

Récupère une ligne de données à partir du jeu de résultats représenté par result et le retourne en tant que tableau indexé, où chaque colonne est une case du tableau, celui-ci commençant à 0 (zéro). Chaque nouvel appel à mysqli_fetch_row() retournera la prochaine ligne dans le jeu de résultats, ou NULL s'il n'y a plus de lignes.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

mysqli_fetch_row() retourne un tableau de chaînes correspondant à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultats.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result $mysqli->query($query)) {

    
/* Récupère un tableau associatif */
    
while ($row $result->fetch_row()) {
        
printf ("%s (%s)\n"$row[0], $row[1]);
    }

    
/* Libère le jeu de résultats */
    
$result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if (
$result mysqli_query($link$query)) {

    
/* Récupère un tableau associatif */
    
while ($row mysqli_fetch_row($result)) {
        
printf ("%s (%s)\n"$row[0], $row[1]);
    }

    
/* Libère le jeu de résultats */
    
mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi



mysqli_result->field_count

mysqli_num_fields

(PHP 5)

mysqli_result->field_count -- mysqli_num_fieldsRécupère le nombre de champs dans un résultat

Description

Style orienté objet

int $field_count;

Style procédural

int mysqli_result::mysqli_num_fields ( mysqli_result $result )

Retourne le nombre de champs dans le jeu de résultats spécifié.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Le nombre de champs depuis le jeu de résultats.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (
$result $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    
/* Détermine le nombre de champs dans le jeu de résultats */
    
$field_cnt $result->field_count;

    
printf("Le résultat a %d champs.\n"$field_cnt);

    
/* Ferme le jeu de résultats */
    
$result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (
$result mysqli_query($link"SELECT * FROM City ORDER BY ID LIMIT 1")) {

    
/* Détermine le nombre de champs dans le jeu de résultats */
    
$field_cnt mysqli_num_fields($result);

    
printf("Le résultat a %d champs.\n"$field_cnt);

    
/* Ferme le jeu de résultats */
    
mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le résultat a 5 champs.

Voir aussi



mysqli_result::field_seek

mysqli_field_seek

(PHP 5)

mysqli_result::field_seek -- mysqli_field_seekDéplace le pointeur de résultat sur le champs spécifié

Description

Style orienté objet

bool mysqli_result::field_seek ( int $fieldnr )

Style procédural

bool mysqli_field_seek ( mysqli_result $result , int $fieldnr )

Place le curseur sur le champs spécifié par le numéro fieldnr. Le prochain appel à la fonction mysqli_fetch_field() retournera la définition du champ de la colonne associée à cette position.

Note:

Pour se déplacer au début d'une ligne, passez une position ayant pour valeur zéro.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

fieldnr

Le numéro du champs. Cette valeur doit être dans l'intervalle 0 à nombre de champs - 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result $mysqli->query($query)) {

    
/* Récupération des informations du champ pour la 2ème colonne */
    
$result->field_seek(1);
    
$finfo $result->fetch_field();

    
printf("Name:     %s\n"$finfo->name);
    
printf("Table:    %s\n"$finfo->table);
    
printf("max. Len: %d\n"$finfo->max_length);
    
printf("Flags:    %d\n"$finfo->flags);
    
printf("Type:     %d\n\n"$finfo->type);

    
$result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result mysqli_query($link$query)) {

    
/* Récupération des informations du champ pour la 2ème colonne */
    
mysqli_field_seek($result1);
    
$finfo mysqli_fetch_field($result);

    
printf("Name:     %s\n"$finfo->name);
    
printf("Table:    %s\n"$finfo->table);
    
printf("max. Len: %d\n"$finfo->max_length);
    
printf("Flags:    %d\n"$finfo->flags);
    
printf("Type:     %d\n\n"$finfo->type);

    
mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Voir aussi



mysqli_result::free

mysqli_free_result

(PHP 5)

mysqli_result::free -- mysqli_free_resultLibère la mémoire associée à un résultat

Description

Style orienté objet

void mysqli_result::free ( void )
void mysqli_result::close ( void )
void mysqli_result::free_result ( void )

Style procédural

void mysqli_free_result ( mysqli_result $result )

Libère la mémoire associée à un résultat.

Note:

Vous devriez toujours libérer les résultats avec mysqli_free_result(), lorsque votre objet de résultat ne vous est plus utile.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



mysqli_result->lengths

mysqli_fetch_lengths

(PHP 5)

mysqli_result->lengths -- mysqli_fetch_lengthsRetourne la longueur des colonnes de la ligne courante du jeu de résultats

Description

Style orienté objet

array $lengths;

Style procédural

array mysqli_result::mysqli_fetch_lengths ( mysqli_result $result )

La fonction mysqli_fetch_lengths() retourne un tableau contenant la longueur de chaque colonne de la ligne courante du jeu de résultats représenté par le paramètre result.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Un tableau d'entiers représentant la taille de chaque colonne (n'incluant aucun caractère null de fin). Retourne FALSE si une erreur survient.

mysqli_fetch_lengths() n'est valide que pour la ligne courant du jeu de résultats. Elle retourne FALSE si vous l'appelez avant les fonctions mysqli_fetch_row(), mysqli_fetch_array(), mysqli_fetch_object() ou après avoir récupéré toutes les lignes du résultat.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""mon_user""mon_mot_de_passe""la_base");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT * from Country ORDER BY Code LIMIT 1";

if (
$result $mysqli->query($query)) {

    
$row $result->fetch_row();

    
/* Affichage de la longueur des colonnes */
    
foreach ($result->lengths as $i => $val) {
        
printf("Le champ n°%2d a une longueur de %2d\n"$i+1$val);
    }
    
$result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT * from Country ORDER BY Code LIMIT 1";

if (
$result mysqli_query($link$query)) {

    
$row mysqli_fetch_row($result);

    
/* Affichage de la longueur des colonnes */
    
foreach (mysqli_fetch_lengths($result) as $i => $val) {
        
printf("Le champ n°%2d a une longueur de %2d\n"$i+1$val);
    }
    
mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le champ n° 1 a une longueur de  3
Le champ n° 2 a une longueur de  5
Le champ n° 3 a une longueur de 13
Le champ n° 4 a une longueur de  9
Le champ n° 5 a une longueur de  6
Le champ n° 6 a une longueur de  1
Le champ n° 7 a une longueur de  6
Le champ n° 8 a une longueur de  4
Le champ n° 9 a une longueur de  6
Le champ n°10 a une longueur de  6
Le champ n°11 a une longueur de  5
Le champ n°12 a une longueur de 44
Le champ n°13 a une longueur de  7
Le champ n°14 a une longueur de  3
Le champ n°15 a une longueur de  2


mysqli_result->num_rows

mysqli_num_rows

(PHP 5)

mysqli_result->num_rows -- mysqli_num_rowsRetourne le nombre de lignes dans un résultat

Description

Style orienté objet

int $num_rows;

Style procédural

int mysqli_result::mysqli_num_rows ( mysqli_result $result )

Retourne le nombre de lignes dans un jeu de résultats.

L'utilisation de mysqli_num_rows() dépend de l'utilisation de jeux de résultats bufferisés ou non. Dans le cas où vous utilisez des jeux de résultats non bufferisés, mysqli_num_rows() ne retournera pas le nombre correct de lignes tant que toutes les lignes du jeu de résultats ne sont pas retournées.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Note:

Si le nombre de résultats est plus grand que la valeur maximale d'un entier, le nombre sera retourné sous la forme d'une chaîne de caractères.

Exemples

Style orienté objet

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (
$result $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    
/* Détermine le nombre de lignes du jeu de résultats */
    
$row_cnt $result->num_rows;

    
printf("Le jeu de résultats a %d lignes.\n"$row_cnt);

    
/* Ferme le jeu de résultats */
    
$result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

if (
$result mysqli_query($link"SELECT Code, Name FROM Country ORDER BY Name")) {

    
/* Détermine le nombre de lignes du jeu de résultats */
    
$row_cnt mysqli_num_rows($result);

    
printf("Le jeu de résultats a %d lignes.\n"$row_cnt);

    
/* Ferme le jeu de résultats */
    
mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le jeu de résultats a 239 lignes.

Voir aussi


Sommaire



La classe MySQLi_Driver

Introduction

Driver MySQLi.

Synopsis de la classe

MySQLi_Driver {
/* Propriétés */
public readonly string $client_info ;
public readonly string $client_version ;
public readonly string $driver_version ;
public readonly string $embedded ;
public boolean $reconnect ;
public int $report-mode ;
/* Méthodes */
bool mysqli_driver::embedded_server_start ( bool $start , array $arguments , array $groups )
}

Propriétés

client_info

La version de l'en-tête du client API

client_version

La version du client

driver_version

La version du driver MySQLi

embedded

Si le support "MySQLi Embedded" est activé

reconnect

Permet ou non la reconnexion (voir la directive INI mysqli.reconnect)

report_mode

Définit à MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL ou n'importe quelle combinaison de MYSQLI_REPORT_STRICT (lane des exceptions lors d'erreurs), MYSQLI_REPORT_ERROR (rapporte les erreurs) et MYSQLI_REPORT_INDEX (erreurs sur les indexes). Voir aussi mysqli_report().


mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_endArrête le serveur embarqué

Description

Style orienté objet

void mysqli_driver::embedded_server_end ( void )

Style procédural

void mysqli_embedded_server_end ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



mysqli_driver::embedded_server_start

mysqli_embedded_server_start

(PHP 5)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_startInitialise et démarre le serveur embarqué

Description

Style orienté objet

bool mysqli_driver::embedded_server_start ( bool $start , array $arguments , array $groups )

Style procédural

bool mysqli_embedded_server_start ( bool $start , array $arguments , array $groups )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire



La classe MySQLi_Warning

Introduction

Représente une alerte MySQL.

Synopsis de la classe

mysqli_warning {
/* Propriétés */
public $message ;
public $sqlstate ;
public $errno ;
/* Méthodes */
__construct ( void )
public void next ( void )
}

Propriétés

message

Le message

sqlstate

Le statut SQL

errno

Le numéro de l'erreur


mysqli_warning::__construct

(No version information available, might only be in SVN)

mysqli_warning::__constructLe constructeur __construct

Description

mysqli_warning::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



mysqli_warning::next

(No version information available, might only be in SVN)

mysqli_warning::nextLe but de next

Description

public void mysqli_warning::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Sommaire



Fonctions mysqli obsolètes et alias


mysqli_bind_param

(PHP 5)

mysqli_bind_paramAlias de mysqli_stmt_bind_param()

Description

Cette fonction est un alias de la fonction mysqli_stmt_bind_param().

Notes

Note:

La fonction mysqli_bind_param() est obsolète et devrait être supprimée.

Voir aussi



mysqli_bind_result

(PHP 5)

mysqli_bind_resultAlias de mysqli_stmt_bind_result()

Description

Cette fonction est un alias de la fonction mysqli_stmt_bind_result().

Notes

Note:

La fonction mysqli_bind_result() est obsolète et devrait être supprimée.

Voir aussi



mysqli_client_encoding

(PHP 5)

mysqli_client_encodingAlias de mysqli_character_set_name()

Description

Cette fonction est un alias de la fonction mysqli_character_set_name().

Voir aussi

  • mysqli_real_escape_string() - Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion



mysqli_connect

(PHP 5)

mysqli_connectAlias de mysqli::__construct()

Description

Cette fonction est un alias de : mysqli::__construct()



mysqli_disable_reads_from_master

mysqli->disable_reads_from_master

(PHP 5)

mysqli_disable_reads_from_master -- mysqli->disable_reads_from_masterDésactive la lecture depuis le maître

Description

Style orienté objet

void mysqli::disable_reads_from_master ( void )

Style procédural

bool mysqli_disable_reads_from_master ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_disable_rpl_parse

(PHP 5)

mysqli_disable_rpl_parseDésactive l'analyseur RPL

Description

bool mysqli_disable_rpl_parse ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_enable_reads_from_master

(PHP 5)

mysqli_enable_reads_from_masterActive la lecture depuis le maître

Description

bool mysqli_enable_reads_from_master ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_enable_rpl_parse

(PHP 5)

mysqli_enable_rpl_parseActive l'analyseur RPL

Description

bool mysqli_enable_rpl_parse ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_escape_string

(PHP 5)

mysqli_escape_stringAlias de mysqli_real_escape_string()

Description

Cette fonction est un alias de : mysqli_real_escape_string().



mysqli_execute

(PHP 5)

mysqli_executeAlias de mysqli_stmt_execute()

Description

mysqli_execute() est un alias de la fonction mysqli_stmt_execute().

Notes

Note:

mysqli_execute() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi



mysqli_fetch

(PHP 5)

mysqli_fetchAlias de mysqli_stmt_fetch()

Description

mysqli_fetch() est un alias de la fonction mysqli_stmt_fetch().

Notes

Note:

mysqli_fetch() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi

  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées



mysqli_get_cache_stats

(PHP 5 >= 5.3.0)

mysqli_get_cache_statsRetourne les statistiques sur le cache du client Zval

Description

array mysqli_get_cache_stats ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne les statistiques sur le cache du client Zval. Disponible uniquement avec mysqlnd.

Liste de paramètres

Valeurs de retour

Retourne un tableau avec les statistiques sur le cache du client Zval en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_get_cache_stats()

<?php
$link 
mysqli_connect();
print_r(mysqli_get_cache_stats());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)



mysqli_get_metadata

(PHP 5)

mysqli_get_metadataAlias de mysqli_stmt_result_metadata()

Description

mysqli_get_metadata() est un alias de la fonction mysqli_stmt_result_metadata().

Notes

Note:

mysqli_get_metadata() est obsolète, et sera bientôt supprimée.

Voir aussi



mysqli_master_query

(PHP 5)

mysqli_master_queryForce l'exécution d'une requête sur le maître dans une configuration maître/esclave

Description

bool mysqli_master_query ( mysqli $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_param_count

(PHP 5)

mysqli_param_countAlias de mysqli_stmt_param_count()

Description

mysqli_param_count() est un alias de la fonction mysqli_stmt_param_count().

Notes

Note:

mysqli_param_count() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi



mysqli_report

(PHP 5)

mysqli_reportActive ou désactive les fonctions de rapport interne

Description

bool mysqli_report ( int $flags )

mysqli_report() est une fonction puissante, pour améliorer vos requêtes et votre code durant les phases de développement et de tests. En fonction de l'argument flags, il rapporte des erreurs liées aux appels de fonctions mysqli ou aux requêtes qui n'utilisent pas d'index (ou n'utilisent pas de bon index).

Liste de paramètres

flags

Options supportées
Nom Description
MYSQLI_REPORT_OFF Désactive le rapport
MYSQLI_REPORT_ERROR Rapporte les erreurs des fonctions mysqli
MYSQLI_REPORT_STRICT Envoie une mysqli_sql_exception pour les erreurs plutôt que des warnings
MYSQLI_REPORT_INDEX Rapporte si un mauvais index ou pas d'index a été utilisé
MYSQLI_REPORT_ALL Active toutes les options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.15 & 5.3.4 Le rapport d'erreur se fait maintenant par requête et non plus par processus.

Exemples

Style orienté objet

<?php
/* Active le rapport d'erreur mysqli */
mysqli_report(MYSQLI_REPORT_ALL);

$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

/* Cette requête doit générer une erreur */
$result $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* Cette requête doit générer une alerte pour mauvais index */
$result $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();

$mysqli->close();
?>

Voir aussi



mysqli_rpl_parse_enabled

(PHP 5)

mysqli_rpl_parse_enabledVérifie si l'analyseur RPL est activé

Description

int mysqli_rpl_parse_enabled ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_rpl_probe

(PHP 5)

mysqli_rpl_probeSonde le RPL

Description

bool mysqli_rpl_probe ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_rpl_query_type

mysqli->rpl_query_type

(PHP 5)

mysqli_rpl_query_type -- mysqli->rpl_query_typeRetourne le type de requête RPL

Description

Style orienté objet

int mysqli::rpl_query_type ( string $query )

Style procédural

int mysqli_rpl_query_type ( mysqli $link , string $query )

Retourne MYSQLI_RPL_MASTER, MYSQLI_RPL_SLAVE ou MYSQLI_RPL_ADMIN, en fonction du type de requête. INSERT, UPDATE et similaire sont des requêtes maîtres, SELECT est esclave, et FLUSH, REPAIR et similaire sont des requêtes d'administration.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_send_long_data

(PHP 5)

mysqli_send_long_dataAlias de mysqli_stmt_send_long_data()

Description

mysqli_send_long_data() est un alias de la fonction mysqli_stmt_send_long_data().

Notes

Note:

mysqli_send_long_data() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi



mysqli_send_query

mysqli->send_query

(PHP 5)

mysqli_send_query -- mysqli->send_queryEnvoie la requête et retourne

Description

Style orienté objet

bool mysqli::send_query ( string $query )

Style procédural

bool mysqli_send_query ( mysqli $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.



mysqli_set_opt

(PHP 5)

mysqli_set_optAlias de mysqli_options()

Description

mysqli_set_opt() est un alias de la fonction mysqli_options().



mysqli_slave_query

(PHP 5)

mysqli_slave_queryForce l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave

Description

bool mysqli_slave_query ( mysqli $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction estobsolète et a été supprimée depuis PHP 5.3.0.


Sommaire




Le pilote natif MySQL


Introduction

Cette partie du manuel fournit un aperçu du pilote natif MySQL.



Introduction

Le pilote natif MySQL est un substitut à la bibliothèque cliente MySQL (libmysql). Le pilote natif MySQL fait partie des branches officielles depuis PHP 5.3.

Les extensions de base de données MySQL mysqli et PDO MYSQL communiquent toutes avec le serveur MySQL. Auparavant, les extensions utilisaient les services de la bibliothèque cliente MySQL et étaient compilées par rapport à elle pour utiliser son protocole client-serveur.

Avec le pilote natif MySQL, il y a maintenant une alternative car les extensions de base de données MySQL peuvent être compilées pour utiliser le pilote natif MySQL plutôt que la bibliothèque cliente MySQL.

Le pilote natif MySQL est écrit en C comme une extensions PHP.

Ce que ce n'est pas

Bien que le pilote natif MySQL soit écrit comme une extension PHP, il est important de noter qu'il ne fournit pas une nouvelle API au programmeur PHP. Les API programmeur sont fournies par l'extension MySQL, mysqli et PDO MySQL. Ces extensions peuvent maintenant utiliser les services du pilote natif MySQL pour communiquer avec le serveur MySQL. Ainsi, vous ne devez pas considérer le pilote natif MySQL comme une API.

Pourquoi l'utiliser?

Utiliser le pilote natif MySQL offre bon nombre d'avantages par rapport à la bibliothèque MySQL cliente.

L'ancienne bibliothèque MySQL cliente a été écrite par MySQL AB (maintenant partie de Oracle Corporation) et a donc été publiée sous licence MySQL, ce qui a eu pour conséquence de désactiver le support de MySQL par défaut dans PHP? Vu que le pilote natif MySQL a été développé comme partie intégrante du projet PHP, il est publié sous licence PHP, ce qui résout les soucis de licence problématique dans le passé.

De plus, auparavant, vous deviez compiler les extensions de base de données MySQL par rapport à une copie de la bibliothèque MySQL cliente, ce qui signifie que vous deviez avoir MySQL d'installé sur la machine sur laquelle vous compiliez PHP à partir des sources. Ainsi, quand votre application PHP était exécutée, les extensions MySQL appelaient les fichier de la bibliothèque MySQL cliente au démarrage, ceux-ci devant être obligatoirement installés sur le système. Avec le pilote natif MySQL, ce n'est plus le cas car il est inclus dans la distribution standard. Ainsi, vous n'aurez plus besoin d'avoir MySQL installé pour compiler PHP ou exécuter des applications PHP faisant appel à une base de données.

Du fait que le pilote natif MySQL soit écrit comme une extension PHP, il est intimement lié au coeur de PHP. Ceci implique une meilleure efficacité, notamment en ce qui concerne l'utilisation de la mémoire, car le pilote utilise l'allocation mémoire de PHP et par conséquent supporte les limites de mémoire. Utiliser le pilote natif MySQL aboutit à des performances égales sinon meilleurs qu'avec la bibliothèque cliente MySQL, car l'utilisation de la mémoire est beaucoup plus efficace. Le fait que lors de l'utilisation de la bibliothèque cliente MySQL, chaque enregistrement est stockée deux fois en mémoire alors que le client natif MySQL ne les stocké qu'une fois constitue un bon exemple de bonne gestion de la mémoire.

Fonctionnalités spéciales

Le pilote natif MySQL fournit aussi quelques fonctionnalités spéciales non disponibles avec la bibliothèque cliente MySQL, listées ci-dessous :

Les statistiques de performances peuvent s'avérer très utiles pour identifier des goulets d'étranglement de performances.

Le pilote natif MySQL fournit aussi des connexions persistantes lors de son utilisation avec l'extension mysqli.

Le support de SSL

Le pilote natif MySQL (MySQL Native Driver) supporte SSL depuis PHP 5.3.3.

Le support du protocole compressé

Depuis PHP 5.3.2, le pilote natif MySQL supporte le protocole client/serveur MySQL compressé. Il ne le supportait pas en PHP 5.3.0 ou 5.3.1. Les extensions telles que ext/mysql, ext/mysqli, PDO_MYSQL, configurées pour utiliser le pilote natif MySQL peuvent ainsi tirer parti de ce protocole. Notez que PDO_MYSQL ne supporte PAS la compression lorsqu'utilisé avec mysqlnd.

Support des pipes nommés

Le support des pipes nommés sous Windows est implémenté depuis PHP 5.4.0.



Installation

Installation sous Unix

Par défaut, les extensions de base de données MySQL sont configurées pour utiliser la bibliothèque cliente MySQL. Pour utiliser le pilote natif MySQL, PHP doit être compilé en spécifiant explicitement que les extensions de base de données MySQL doivent être compilées par rapport à lui. C'est fait grâce aux options de configuration précédant la compilation de PHP en elle-même.

Par exemple, pour compiler l'extension MySQL, mysqli et PDO MySQL en utilisant le pilote natif MYSQL, la commande suivante doit être passée :

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[autres options]

Installation sous Windows

Dans les distributions officielle de PHP à partir de la version 5.3, le pilote natif MySQL est activé par défaut et aucune configuration supplémentaire n'est nécessaire pour l'utiliser. Toutes les extensions de base de données MySQL l'utiliseront alors.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration de MySQL Native Driver
Nom Défaut Changeable Changelog
mysqlnd.collect_statistics "1" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.collect_memory_statistics "0" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.debug "0" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.net_read_timeout "31536000" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.net_cmd_buffer_size 5.3.0 - "2048", 5.3.1 - "4096" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.net_read_buffer_size "32768" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd.collect_statistics boolean

Active la collecte de différentes statistiques du client auxquelles vous pouvez accéder via mysqli_get_client_stats(), mysqli_get_connection_stats(), mysqli_get_cache_stats() et qui sont aussi décrites dans la section mysqlnd de la sortie de la fonction phpinfo().

Ce paramètre active toutes les statistiques de MySQL Native Driver sauf celles relatives à la gestion de la mémoire.

mysqlnd.collect_memory_statistics boolean

Active la collecte de différentes statistiques concernant la mémoire qui peuvent être consultées via mysqli_get_client_stats(), mysqli_get_connection_stats(), mysqli_get_cache_stats() et qui sont aussi montrées dans la section mysqlnd de la sortie de la fonction phpinfo().

Ce paramètre active les statistiques de gestion de la mémoire parmis les statistiques fournies par MySQL Native Driver.

mysqlnd.debug string

Journalise les communications en provenance de toute extension utilisant mysqlnd.

Le format de cette directive est mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]".

Les options de formattage des chaines sont les suivantes:

  • A[,file] - Ajoute la trace à un fichier. S'assure que les données sont écrites après chaque écriture en fermant puis rouvrant le fichier de trace (lent). Ceci aide à s'assurer que le fichier de traces sera complet même si l'application crash.

  • a[,file] - Ajoute la trace à un fichier.

  • d - Active la sortie depuis les macros DBUG_<N> pour l'état actuel. Peut être suivi d'une liste de mots-clés qui selectionnent la sortie seulement pour les macros DBUG avec ce mot-clé (filtre). Une liste vide de mot-clé sélectionnera tout.

  • f[,functions] - Limite les actions du débogeur à une liste spécifique de fonctions. Une liste vide fera en sorte que toutes les fonctions seront utilisées.

  • F - Marque chaque ligne de débogage du nom du fichier source contenant la macro causant cette sortie.

  • i - Marque chaque ligne de débogage du PID.

  • L - Marque chaque ligne de débogage du nom du fichier source ainsi que de la ligne de la macro qui cause cette sortie.

  • n - Marque chaque ligne de débogage de la profondeur actuelle de la fonction.

  • o[,file] - Similaire à a[,file] mais écrase les fichiers plutôt que de les compléter.

  • O[,file] - Similaire à A[,file] mais écrase les fichiers plutôt que de les compléter.

  • t[,N] - Active le traçage du flux de contrôle des fonctions. La profondeur maximale est précisée par N, par défaut 200.

  • x - Active le profilage.

Exemple:

d:t:x:O,/tmp/mysqlnd.trace

Note:

Cette caractéristique n'est disponible que pour les versions debug de PHP. Fonctionne sur Microsoft Windows si PHP est en version debug et construit avec Microsoft Visual C version 9 et supérieures.

mysqlnd.net_read_timeout integer

mysqlnd et la MySQL Client Library, libmysql utilise des API réseau différentes. mysqlnd utilise les flux PHP, alors que libmysql utilise sa propre implémentation basée sur le système. PHP, par défaut, utilise un timeout en lecture de 60s. Ceci en utilisant le paramètre de php.ini, default_socket_timeout. Ceci s'applique à tous les flux qui ne précisent pas de timeout par défaut. mysqlnd n'affecte aucune autre valeur et donc des requêtes longues peuvent se voir déconnectées après default_socket_timeout secondes avec comme résultat un message d'erreur "2006 - MySQL Server has gone away". La MySQL Client Library affecte un timeout par défaut de 365 * 24 * 3600 secondes (1 an) et attend les autres timeout, comme ceux de TCP/IP. mysqlnd utilise maintenant le même timeout très long. La valeur est configurable via le paramètre php.ini mysqlnd.net_read_timeout. mysqlnd.net_read_timeout est donc utilisé par toute extension (ext/mysql, ext/mysqli, PDO_MySQL) qui se repose sur mysqlnd. mysqlnd indique aux flux PHP d'utiliser mysqlnd.net_read_timeout. Notez qu'il peut y avoir des différences subtiles entre MYSQL_OPT_READ_TIMEOUT de la MySQL Client Library et les flux PHP, par exemple MYSQL_OPT_READ_TIMEOUT est dite fonctionnelle uniquement avec des connexions TCP/IP et, avant MySQL 5.1.2, seulement sous Windows. Les flux PHP, eux, n'ont pas cette limite. Voyez la documentation des flux en cas de doute.

mysqlnd.net_cmd_buffer_size long

mysqlnd alloue un buffer interne pour le réseau d'une taille de mysqlnd.net_cmd_buffer_size (dans php.ini) octets pour chaque connexion. Si une commande du protocole MySQL Client Server, par exemple, COM_QUERY (requête "normale"), ne rentre pas dans le buffer, mysqlnd va agrandir celui-ci à la taille requise. A chaque fois que le buffer est agrandi pour une connexion, command_buffer_too_small va être incrémenté de un.

Simysqlnd doit agrandir le buffer au-delà de sa taille initiale de mysqlnd.net_cmd_buffer_size octets pour presque toutes les connexions, vous devriez alors augmenter cette taille par défaut afin d'éviter les ré-allocations.

La taille par défaut du buffer est de 2048 octets dans PHP 5.3.0. Dans les versions suivantes, 4096 octets. Cette valeur par défaut peut être modifiée soit par le paramètre de php.ini mysqlnd.net_cmd_buffer_size ou en utilisant mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

Il est recommandé d'avoir une taille de buffer au moins égale à 4096 octets car mysqlnd l'utilise aussi lors de la lecture de certains paquets de communication avec MySQL. Dans PHP 5.3.0, mysqlnd n'augmentera pas le buffer si MySQL envoie un paquet plus grand que la taille du buffer. Ainsi, mysqlnd ne peut pas décoder le paquet et l'application cliente recevra une erreur. Il n'y a que deux situations dans lesquelles le paquet peut être plus grand que les 2048 octets par défaut de mysqlnd.net_cmd_buffer_size sous PHP 5.3.0: le paquet véhicule un message d'erreur très long, ou le paquet contient des méta données de colonnes provenant de COM_LIST_FIELD (mysql_list_fields(), méta données d'une colonne de type string avec une valeur par défaut très grande (>1900 octets).

Depuis PHP 5.3.2, mysqlnd n'autorise plus l'affectation de buffers inférieurs à 4096 octets.

La valeur peut aussi être changée au moyen de mysqli_option(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size long

Taille maximale du segment en lecture lors de la lecture du corps d'un paquet de commande MySQL. Le protocole serveur de MySQL encapsule toutes ses commandes dans des paquets. Les paquets consistent en un en-tête court suivi d'un corps contenant les infos. La taille du corps est encodée dans l'en-tête. mysqlnd lit le corps sous forme de segments de MIN(header.size, mysqlnd.net_read_buffer_size) octets. Si le corps d'un paquet est plus grand que mysqlnd.net_read_buffer_size octets, mysqlnd doit alors appeler read() plusieurs fois.

La valeur peut aussi être changée au moyen de mysqli_optionS(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).



Les connexions persistantes

Utilisation des connexions persistantes

Si mysqli est utilisé avecmysqlnd, lorsqu'une connexion persistante est créee, il génère un appel COM_CHANGE_USER (mysql_change_user()) sur le serveur. Ceci permet la re-authentification de la connexion.

Comme l'appel COM_CHANGE_USER est assez lourd, il est possible de le désactiver à la compilation. Réutiliser une connexion persistente génèrera alors un appel COM_PING (mysql_ping) pour tester simplement si la connexion est réutilisable.

L'utilisation de COM_CHANGE_USER peut être désactivée avec le drapeau de compilation MYSQLI_NO_CHANGE_USER_ON_PCONNECT. Par exemple:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

Ou encore:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

Notez que seul mysqli avec mysqlnd utilise COM_CHANGE_USER. Les autres extensions/pilotes utilisent COM_PING lors de l'utilisation de la connexion persistente.



Statistiques

Utilisation des donnés statistiques

Le pilote natif MySQL peut collecter des statistiques sur la communication entre le client et le serveur. Ces statistiques sont de trois sortes :

  • Les statistiques client

  • Les statistiques de connexion

  • Les statistiques de cache Zval

Si vous utilisez l'extension mysqli, ces statistiques sont disponibles via trois appels d'API :

Note:

Les statistiques sont agrégées entre toutes les extensions qui utilisent le pilote natif MySQL. Par exemple, quand les extensions ext/mysql et ext/mysqli sont toutes deux compilées par rapport au pilote natif MySQL, les appels de fonctions de ext/mysql et ext/mysqli changeront tous les deux les statistiques. Il n'y a aucun moyen de savoir comment des appels à une certaine API compilée par rapport au pilote natif MySQL ont modifié une statistique donnée. Vous pouvez configurer le pilote PDO MySQL, ext/mysql et ext/mysqli pour éventuellement utiliser le pilote natif MySQL. Dans ce cas, les trois extensions modifieront les statistiques.

Accéder aux statistiques client

Pour accéder aux statistiques client, vous devez appeler mysqli_get_client_stats(). L'appel à la fonction ne requiert aucun paramètre.

Cette fonction retourne un tableau associatif contenant le nom de la statistique comme clé et la donnée statistiques comme valeur.

Les statistiques client peuvent aussi être accédées via la fonction phpinfo().

Accéder aux statistiques de connexion

Pour accéder aux statistiques client, vous devez appeler mysqli_get_connection_stats(). Cette fonction prend en paramètre la ressource de connexion à la base de données.

Cette fonction retourne un tableau associatif contenant le nom de la statistique comme clé et la donnée statistique comme valeur.

Accéder aux statistiques de cache Zval

Le pilote natif MySQL collecte aussi des statistiques sur son cache interne de Zval. Ces statistiques peuvent être accédées en utilisant mysqli_get_cache_stats().

Les statistiques de cache Zval obtenues peuvent permettre de régler avec précision un paramètre du php.ini relatif au cache Zval, aboutissant à de meilleures performances.

Buffered and Unbuffered Result Sets

Les jeux de résultats peuvent être mis ou non en tampon. Le paramétrage par défaut fait fonctionner ext/mysql and ext/mysqli avec des jeux de résultats en tampon pour des requêtes normales (non préparées). Les jeux de résultats sont stockés côté client. Après l'exécution de la requête, tous les résultats sont récupérés du serveur MySQL et mis en cache côté client. Le grand avantage de jeux de résultat mis en tampon est qu'ils autorisent le serveur à libérer les ressources allouées à un jeu de résultat, dès que ceux-ci ont été récupérés par le client.

D'autre part, des jeux de résultats non mis en tampon sont gardés plus longtemps sur le serveur. Si vous voulez réduire la consommation de mémoire côté client, mais en contre-partie augmenter la charge sur le serveur, ne mettez pas les résultats en tampon. Si vous avez par contre une charge serveur importante et que vos soupçons se portent sur les résultats non mis en tampon, vous devriez considérer de déplacer la charge côté client. Les clients s'adaptent généralement plus facilement que les serveurs. La charge ("Load") ne concerne pas seulement les tampons mémoire. En effet, le serveur a aussi besoin de garder d'autres ressources ouvertes, par exemple des threads ou des descripteurs de fichier, avant qu'un jeu de résultat ne soit libéré.

Les requêtes préparées ne mettent pas par défaut les résultats en tampon. Vous pouvez toujours utiliser mysqli_stmt_store_result() pour activer la mise en tampon des résultats.

Statistiques retournées par le pilote natif MySQL

Le tableau suivant présente une liste des statistiques retournées par les fonctions mysqli_get_client_stats(), mysqli_get_connection_stats() et mysqli_get_cache_stats().

Réseau

Statistique Contexte Description Notes
bytes_sent Connexion Nombre d'octets envoyés de PHP vers le serveur MySQL Peut être utilisé pour vérifier l'efficacité du protocole compressé
bytes_received Connexion Nombres d'octets reçus du serveur MySQL Peut être utilisé pour vérifier l'efficacité du protocole compressé
packets_sent Connexion Nombre de paquets envoyés de type client-serveur MySQL Utilisé pour déboguer l'implémentation du protocole client-serveur
packets_received Connexion Nombre de paquets reçus de type client-serveur MySQL Utilisé pour déboguer l'implémentation du protocole client-serveur
protocol_overhead_in Connexion Le surcoût en octets du protocole client-serveur MySQL pour le trafic entrant. Actuellement, seul l'en-tête de paquet (4 octets) est considéré comme du surcoût. protocol_overhead_in = packets_received * 4 Utilisé pour déboguer l'implémentation du protocole client-serveur
protocol_overhead_out Connexion Le surcoût en octets du protocole client-serveur MySQL pour le trafic sortant. Actuellement, seul l'en-tête de paquet (4 octets) est considéré comme du surcoût. protocol_overhead_in = packets_received * 4 Utilisé pour déboguer l'implémentation du protocole client-serveur
bytes_received_ok_packet Connexion Nombre total d'octets des paquets du protocole client-serveur MySQL reçus avec un statut OK. Les paquets reçus avec un statut OK peuvent contenir un message de statut. La longueur de ce message de statut peut varier, entrainant de ce fait une taille non-fixe de paquet OK. Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_ok Connexion Nombre total de paquets du protocole client-serveur MySQL reçus avec un statut OK. Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_eof_packet Connexion Taille totale en octets des paquets EOF reçus avec le protocole client-serveur MySQL. La taille de EOF peut varier selon la version du serveur. De plus, EOF peut contenir un message d'erreur. Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_eof Connexion Nombre total de paquets EOF reçus avec le protocole client-serveur MySQL. Comme avec d'autres statistiques sur les paquets, le nombre de paquets augmentera même si PHP ne reçoit pas le paquet attendu, mais par exemple un message d'erreur. Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_rset_header_packet Connexion Taille totale en octets des paquets d'en-tête de jeux de résultats reçus avec le protocole client-serveur MySQL. La taille des paquets varie selon le type de données transportées (LOAD LOCAL INFILE, INSERT, UPDATE, SELECT, messages d'erreur). Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_rset_header Connexion Nombre de paquets d'en-tête de jeux de résultats reçus avec le protocole client-serveur MySQL. Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_rset_field_meta_packet Connexion Taille totale en octets des paquets de méta-données (informations sur les champs) de jeux de résultats reçus avec le protocole client-serveur MySQL. Bien entendu, la taille varie selon les champs contenus dans le jeu de résultats. Le paquet peut aussi transporter une erreur ou un EOF dans le cas de COM_LIST_FIELDS. Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_rset_field_meta Connexion Nombre de paquets de méta-données (informations sur les champs) de jeux de résultats reçus avec le protocole client-serveur MySQL. Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_rset_row_packet Connexion Taille totale en octets des paquets de données pures de jeux de résultats reçus avec le protocole client-serveur MySQL. Le paquet peut aussi transporter une erreur ou un paquet EOF. Vous pouvez faire du rétro-engeneering sur le nombre de paquets d'erreurs ou de paquets EOF en soustrayant rows_fetched_from_server_normal et rows_fetched_from_server_ps de bytes_received_rset_row_packet. Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_rset_row Connexion Nombre de paquets de données pures de jeux de résultats reçus avec le protocole client-serveur MySQL et leur taille totale en octets. Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_prepare_response_packet Connexion Taille totale en octets des paquets "OK for Prepared Statement Initialization packets (paquets d'initialisation des commandes préparées). Le paquet peut aussi traporter une erreur. La taille du paquet dépend de la version de MySQL : 9 octets avec MySQL 4.1 et 12 octets à partir de MySQL 5.0. Il n'y a aucun moyen sûr de savoir combien d'erreurs sont survenues. Vous pouvez éventuellement deviner qu'une erreur est survenue si, par exemple, vous vous connectez toujours à MySQL 5.0 ou supérieur et que bytes_received_prepare_response_packet != packets_received_prepare_response * 12. Regardez aussi ps_prepared_never_executed et ps_prepared_once_executed. Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_prepare_response Connexion Nombre de paquets "OK for Prepared Statement Initialization packets (paquets d'initialisation des commandes préparées). Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_change_user_packet Connexion Taille totale en octets des paquets COM_CHANGE_USER reçus avec le protocole client-serveur MySQL. Le paquet peut aussi transporter une erreur ou un EOF. Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_change_user Connexion Nombre de paquets COM_CHANGE_USER reçus avec le protocole client-serveur MySQL. Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_sent_command Connexion Nombre de paquets envoyés de PHP vers MySQL avec le protocole client-serveur MySQL. Il n'y a aucun moyen de savoir quelle commande spécifique a été envoyée et en quel quantité. Au mieux, vous pouvez vous en servir pour savoir si PHP a envoyé des commandes à MySQL et ainsi savoir si vous pouvez supprimer le support de MySQL dans votre binaire PHP. Il n'y a de même aucun moyen de faire du rétro-engeneering sur le nombre d'erreurs qui ont pu survenir lors de l'envoi de données à MySQL. La seule erreur recodée est command_buffer_too_small (voir ci-après). Utile seulement pour déboguer l'implémentation du protocole client-serveur.
bytes_received_real_data_normal Connexion Nombre d'octets de charge récupérés par le client PHP depuis mysqlnd en utilisant le protocole de texte. C'est la taille des données actuellement contenues dans les jeux de résultats qui ne proviennent pas des commandes préparées et qui ont été récupérées par le client PHP. Notez que même si un jeu de résultat complet a pu être récupéré de MySQL par mysqlnd, cette statistique ne compte que les données actuellement récupérées depuis mysqlnd par le client PHP. Un exemple de code qui incrémentra cette valeur:
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();

Chaque opération de récupération (fetch) incrémentera cette valeur.

Cette statistique ne sera pas incrémentée si le jeu de résultats est mis en tampon seulement sur le client, mais pas récupéré. Par exemple:

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();

Cette statistique est disponible depuis PHP 5.3.4.

bytes_received_real_data_ps Connexion Nombre d'octets de charge récupérés par le client PHP depuis mysqlnd en utilisant le protocole de commande préparée. C'est la taille des données actuellement contenues dans un jeu de résultats provenant d'une commande préparée et qui a été récupérée par le client PHP. La valeur ne sera pas incrémentée si le jeu de résultat n'est pas lu par le client PHP. Notez que même si un jeu de résultats complet a pu être récupéré depuis MySQL par mysqlnd, cette statistique ne compte que les données récupérées par le client PHP depuis mysqlnd. Voyez aussi bytes_received_real_data_normal. Cette statistique est disponible depuis PHP 5.3.4.

Jeu de résultats

Statistique Contexte Description Notes
result_set_queries Connexion Nombre de requêtes qui ont généré un jeu de résultats. Des exemples de requêtes qui génèrent un jeu de résultats : SELECT et SHOW. Cette statistique ne sera pas incrémentée si une erreur survient lors de la lecture du paquet d'en-tête du jeu de résultats. Vous pouvez l'utiliser comme mesure indirecte du nombre de requêtes que PHP a envoyées à MySQL pour identifier, par exemple, un client qui provoque beaucoup de charge sur la base de données.
non_result_set_queries Connexion Nombre de requêtes qui n'ont pas généré de jeu de résultats. Des exemples de requêtes qui ne génèrent pas de jeu de résultats : INSERT, UPDATE, LOAD DATA et SHOW. Cette statistique ne sera pas incrémentée si une erreur survient lors de la lecture du paquet d'en-tête du jeu de résultats. Vous pouvez l'utiliser comme mesure indirecte du nombre de requêtes que PHP a envoyées à MySQL pour identifier, par exemple, un client qui provoque beaucoup de charge sur la base de données.
no_index_used Connexion Nombre de requêtes qui ont généré un jeu de résultats mais qui n'ont pas utilisé d'index (voir aussi l'option de démarrage de mysqld : –log-queries-not-using-indexes). Si vous voulez que ces requêtes soient rapportées, vous pouvez utiliser mysqli_report(MYSQLI_REPORT_INDEX) pour que ext/mysqli jette une exception. Si vous préférez un avertissement plutôt qu'une exception, utilisez mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).  
bad_index_used Connexion Nombre de requêtes qui ont généré un jeu de résultats mais qui n'ont pas utilisé un bon index (voir aussi l'option de démarrage de mysqld : –log-slow-queries). Si vous voulez que ces requêtes soient rapportées, vous pouvez utiliser mysqli_report(MYSQLI_REPORT_INDEX) pour que ext/mysqli jette une exception. Si vous préférez un avertissement plutôt qu'une exception, utilisez mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).
slow_queries Connexion Les commandes SQL qui ont pris plus de long_query_time secondes à être exécutées et qui ont nécessité qu'au moins min_examined_row_limit enregistrements soient examinés. Non reporté par mysqli_report()
buffered_sets Connexion Nombre de jeux de résultats retournés par des requêtes "normales" et qui ont été mis en tampon. "normale" signifie "commande non préparée" dans les notes qui suivent. Des exemples d'appel à l'API, qui ne mettront pas les jeux de résultats en tampon côté client : mysql_query(), mysqli_query(), mysqli_store_result(), mysqli_stmt_get_result(). Mettre les jeux de résultat en tampon côté client assure que les ressources allouées côté serveur sont libérées dès que possible et rend la navigation dans le jeu de résultat plus aisée. L'inconvénient, c'est une consommation mémoire plus importante côté client pour mettre les jeux de résultats en tampon. Notez que mysqlnd (contrairement à la bibliothèque cliente MySQL) respecte la limite de mémoire de PHP pour l'allocation, car mysqlnd utilise les fonctions de gestion de mémoire internes de PHP. C'est aussi pourquoi memory_get_usage() rapporte une consommation mémoire plus importante quand on utilise mysqlnd plutôt que la bibliothèque cliente MySQL. memory_get_usage() ne mesure pas la consommation mémoire de la bibliothèque cliente MySQL car celle-ci n'utilise pas les fonctions de gestion de mémoire internes de PHP, mésurées par cette fonction!
unbuffered_sets Connexion Nombre de jeux de résultats non mis en tampon retournés par des requêtes normales (pas de commande préparée). Des exemples d'appels à l'API qui ne mettent pas les jeux de résultats en tampon côté client : mysqli_use_result()
ps_buffered_sets Connexion Nombre de jeux de résultats mis en tampon retournés par des commandes préparées. Par défaut, les commandes préparées ne sont pas mises en tampon. Des exemples d'appels à l'API qui ne mettent pas les jeux de résultats en tampon côté client : mysqli_stmt_store_result
ps_unbuffered_sets Connexion Nombre de jeux de résultats non mis en tampon retournés par des commandes préparées. Par défaut, les commandes préparées ne sont pas mises en tampon.
flushed_normal_sets Connexion Nombre de jeux de résultats issus de requêtes normales (pas de commande préparée) avec des données non lues qui ont été évacuées implicitement. L'évacuation n'a lieu qu'avec les jeux de résultats non mis en tampon. Les jeux de résultats non mis en tampon doivent être récupérés en totalité avant qu'une nouvelle requête puisse être passée sur la connexion, sans quoi MySQL renverra une erreur. Si l'application ne récupère pas tous les enregistrements d'un jeu de résultats non mis en tampon, mysqlnd récupère implicitement tout le jeu afin de laisser place nette. Voir aussi rows_skipped_normal et rows_skipped_ps. Quelques causes possibles d'une évacuation implicite :
  • Une application cliente défectueuse

  • Le client a arrêté de lire après qu'il a trouvé ce qu'il cherchait met a fait considérer à MySQL davantage d'enregistrements que nécessaire

  • L'application cliente s'est arrêtée de façon inattendue

flushed_ps_sets Connexion Nombre de jeux de résultats issus de commandes préparées avec des données non lues qui ont été évacuées implicitement. L'évacuation n'a lieu qu'avec les jeux de résultats non mis en tampon. Les jeux de résultats non mis en tampon doivent être récupérés en totalité avant qu'une nouvelle requête puisse être passée sur la connexion, sans quoi MySQL renverra une erreur. Si l'application ne récupère pas tous les enregistrements d'un jeu de résultats non mis en tampon, mysqlnd récupère implicitement tout le jeu afin de laisser place nette. Voir aussi rows_skipped_normal et rows_skipped_ps. Quelques causes possibles d'une évacuation implicite :
  • Une application cliente défectueuse

  • Le client a arrêté de lire après qu'il a trouvé ce qu'il cherchait met a fait considérer à MySQL davantage d'enregistrements que nécessaire

  • L'application cliente s'est arrêtée de façon inattendue

ps_prepared_never_executed Connexion Nombre de commandes préparées mais jamais exécutées. Les commandes préparées monopolisent des ressources serveur. Vous ne devriez pas préparer une commande si vous n'envisagez pas de l'exécuter.
ps_prepared_once_executed Connexion Nombre de commandes préparées exécutées une seule fois. Un des principes des commandes préparées est que la même requête est exécutée encore et encore (avec des paramètres différents) de telle façon que des opérations d'analyse syntaxique et de préparation puissent être économisées si l'exécution de la commande est séparée en deux phases distinctes de préparation et d'exécution. L'idée est de préparer une fois et de mettre en "cache" les résultats pour que, par exemple, l'arbre d'analyse syntaxique puisse être réutilisé pour l'exécution de plusieurs commandes. Si vous exécutez une commande préparée uen seule fois, vous perdez tous le bénéfice des deux phases distinctes par rapport à des requêtes "normales" parce que la mise en cache représente du travail supplémentaire et monopolise des ressources (limitées) côté serveur. Par conséquent, les commandes préparées exécutées une seule fois peuvent provoquer des baisses de performance.
rows_fetched_from_server_normal, rows_fetched_from_server_ps Connexion Nombre total de jeux de résultats récupérés avec succès du serveur MySQL sans se soucier si l'application cliente les a utilisés ou pas. Certains des enregistrements peuvent ne pas avoir été récupérés par l'application cliente mais avoir été évacués de façon implicite. Voir aussi packets_received_rset_row
rows_buffered_from_client_normal, rows_buffered_from_client_ps Connexion Nombre total d'enregistrements mis en tampon avec succès suite à une requête "normale" ou une commande préparée. C'est le nombre d'enregistrements qui ont été récupérés du serveur MySQL et mis en tampon par le client. Notez qu'il y a deux statistiques différentes : une sur les enregistrements ont été mis en tampon (de MySQL au tampon interne de mysqlnd) et l'autre sur les enregistrements mis en tampon qui ont été récupérés par l'application cliente (du tampon interne de mysqlnd vers l'application cliente). Si le nombre d'enregistrements mis en tampon est supérieur au nombre d'enregistrements récupérés, cela peut signifier que l'application cliente exécute des requêtes dont les enregistrements résultants sont plus grands que nécessaire, menant à des enregistrements non lus par le client. Des exemples de requêtes qui mettent les résultats en tampon : mysqli_query(), mysqli_store_result()
rows_fetched_from_client_normal_buffered, rows_fetched_from_client_ps_buffered Connexion Nombre total d'enregistrements récupérés par le client à partir d'un jeu de résultat mis en tampon et créé à partir d'une requête "normale" ou d'une commande préparée.  
rows_fetched_from_client_normal_unbuffered, rows_fetched_from_client_ps_unbuffered Connexion Nombre total d'enregistrements récupérés par le client à partir d'un jeu de résultat non mis en tampon et créé à partir d'une requête "normale" ou d'une commande préparée.  
rows_fetched_from_client_ps_cursor Connexion Nombre total d'enregistrements récupérés par le client à partir d'un curseur créé par une commande préparée.  
rows_skipped_normal, rows_skipped_ps Connexion Reservé pour une utilisation future (actuellement non supporté)  
copy_on_write_saved, copy_on_write_performed Processus Avec mysqlnd, les variables retournées par l'extension pointent vers les tampons de résultats réseau internes à mysqlnd. Si vous en changez pas ces variables, les données récupérées seront gardées une seule fois en mémoire. Si vous changez les variables, mysqlnd doit faire une copie-avant-écriture (copy-on-write) pour protéger ces tampons de résultats réseau internes. Avec la bibliothèque cliente MySQL, vous gardez toujours les données récupérées en mémoire en deux exemplaires : un pour les tampons internes à la bibliothèque cliente MySQL et un pour les extensions. En théorie, mysqlnd peut vous faire économiser jusqu'à 40% de mémoire. Notez cependant que l'économie de mémoire ne peut pas être mésurée par memory_get_usage().  
explicit_free_result, implicit_free_result Connexion, Process (seulement pendant le ménage des commandes préparées) Nombre total de jeux de résultats libérés. La libération est toujours considérée comme explicite, sauf pour les jeux de résultats créés par des commandes d'initialisation, par exemple mysqli_options(MYSQLI_INIT_COMMAND , ...)
proto_text_fetched_null, proto_text_fetched_bit, proto_text_fetched_tinyint proto_text_fetched_short, proto_text_fetched_int24, proto_text_fetched_int proto_text_fetched_bigint, proto_text_fetched_decimal, proto_text_fetched_float proto_text_fetched_double, proto_text_fetched_date, proto_text_fetched_year proto_text_fetched_time, proto_text_fetched_datetime, proto_text_fetched_timestamp proto_text_fetched_string, proto_text_fetched_blob, proto_text_fetched_enum proto_text_fetched_set, proto_text_fetched_geometry, proto_text_fetched_other Connexion Nombre total de colonnes d'un certain type retournées à partir d'une requête normale (protocole texte MySQL). Correspondance entre l'API C / les types de méta-données MySQL et le nom des statistiques :
  • MYSQL_TYPE_NULL - proto_text_fetched_null

  • MYSQL_TYPE_BIT - proto_text_fetched_bit

  • MYSQL_TYPE_TINY - proto_text_fetched_tinyint

  • MYSQL_TYPE_SHORT - proto_text_fetched_short

  • MYSQL_TYPE_INT24 - proto_text_fetched_int24

  • MYSQL_TYPE_LONG - proto_text_fetched_int

  • MYSQL_TYPE_LONGLONG - proto_text_fetched_bigint

  • MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NEWDECIMAL - proto_text_fetched_decimal

  • MYSQL_TYPE_FLOAT - proto_text_fetched_float

  • MYSQL_TYPE_DOUBLE - proto_text_fetched_double

  • MYSQL_TYPE_DATE, MYSQL_TYPE_NEWDATE - proto_text_fetched_date

  • MYSQL_TYPE_YEAR - proto_text_fetched_year

  • MYSQL_TYPE_TIME - proto_text_fetched_time

  • MYSQL_TYPE_DATETIME - proto_text_fetched_datetime

  • MYSQL_TYPE_TIMESTAMP - proto_text_fetched_timestamp

  • MYSQL_TYPE_STRING, MYSQL_TYPE_VARSTRING, MYSQL_TYPE_VARCHAR - proto_text_fetched_string

  • MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_BLOB - proto_text_fetched_blob

  • MYSQL_TYPE_ENUM - proto_text_fetched_enum

  • MYSQL_TYPE_SET - proto_text_fetched_set

  • MYSQL_TYPE_GEOMETRY - proto_text_fetched_geometry

  • N'importe quel MYSQL_TYPE_* non encore listé (il ne doit y en avoir aucun) - proto_text_fetched_other

A noter que les constantes de type MYSQL_* peuvent ne pas être associées avec le même type de colonne SQL dans toutes les versions de MySQL.

proto_binary_fetched_null, proto_binary_fetched_bit, proto_binary_fetched_tinyint proto_binary_fetched_short, proto_binary_fetched_int24, proto_binary_fetched_int, proto_binary_fetched_bigint, proto_binary_fetched_decimal, proto_binary_fetched_float, proto_binary_fetched_double, proto_binary_fetched_date, proto_binary_fetched_year, proto_binary_fetched_time, proto_binary_fetched_datetime, proto_binary_fetched_timestamp, proto_binary_fetched_string, proto_binary_fetched_blob, proto_binary_fetched_enum, proto_binary_fetched_set, proto_binary_fetched_geometry, proto_binary_fetched_other Connexion Nombre total de colonnes d'un certain type retournées à partir d'une commande préparée (protocole binaire MySQL). Pour la correspondance des types, regardez proto_text_* décrit ci-dessus.

Connexion

Statistique Contexte Description Notes
connect_success, connect_failure Connexion Nombre total de tentatives de connexions réussies / échouées. Les connexions réutilisées et tous les autres types de connexions sont incluses.
reconnect Processus Nombre total de tentatives de (real_)connect faites sur un descripteur de connexion déjà ouvert. Le code $link = new mysqli(...); $link->real_connect(...) provoquera une reconnexion. Ce qui n'est pas le cas de $link = new mysqli(...); $link->connect(...) car $link->connect(...) fermera explicitement la connexion existante avant qu'une nouvelle connexion soit établie.
pconnect_success Connexion Nombre total de tentatives de connexions persistantes réussies. Notez que connect_success contient la somme des tentatives de connexions persistantes et non-persistantes réussies. Ainsi, le nombre de tentatives de connexions non-persistantes réussies est connect_success - pconnect_success.
active_connections Connexion Nombre total de connexions persistantes et non-persistantes actives.  
active_persistent_connections Connexion Nombre total de connexions persistantes actives. Le nombre total de connexions non-persistantes actives est active_connections - active_persistent_connections.
explicit_close Connexion Nombre total de connexions fermées explicitement (seulement valable avec ext/mysqli). Des exemples de code qui ferment explicitement une connexion :
$link = new mysqli(...); $link->close(...)
$link = new mysqli(...); $link->connect(...)
implicit_close Connexion Nombre total de connexions fermées implicitement (seulement valable avec ext/mysqli). Des exemples de code qui ferment implicitement une connexion :
  • $link = new mysqli(...); $link->real_connect(...)

  • unset($link)

  • Connexions persistantes : le groupe de connexions qui ont été créées avec real_connect et où il peut y avoir des jeu d'options inconnues - ferme implicitement la connexion pour éviter de retourner une connexion avec des options inconnues

  • Connexions persistantes : ping/change_user échoue et ext/mysqli ferme la connexion

  • Fin de l'exécution d'un script : ferme la connexion qui ne l'a pas été par l'utilisateur

disconnect_close Connexion Echecs de connexions indiqués par l'appel à l'API C mysql_real_connect() pendant la tentative de connexion. Elle est appelée disconnect_close parce que le descripteur de connexion passé lors de l'appel à l'API C sera fermé.
in_middle_of_command_close Processus Une connexion a été fermée en plein milieu de l'exécution d'une commande (excluant les jeux de résultats non récupérés, après avoir envoyé une requête et avant d'avoir la réponse, en envoyant des données, en transférant des données avec LOAD DATA). A moins que vous n'utilisiez les requêtes asynchrones, ceci ne devrait arriver que si votre script s'arrête de façon inopinée et que PHP ferme la connexion pour vous.
init_command_executed_count Connexion Nombre total d'exécution de commandes d'initialisation, par exemple, mysqli_options(MYSQLI_INIT_COMMAND , ...). Le nombre de connexions avec succès est init_command_executed_count - init_command_failed_count.
init_command_failed_count Connexion Nombre total d'exécution échouées de commandes d'initialisation.  

Commandes COM_*

Statistique Contexte Description Notes
com_quit, com_init_db, com_query, com_field_list, com_create_db, com_drop_db, com_refresh, com_shutdown, com_statistics, com_process_info, com_connect, com_process_kill, com_debug, com_ping, com_time, com_delayed_insert, com_change_user, com_binlog_dump, com_table_dump, com_connect_out, com_register_slave, com_stmt_prepare, com_stmt_execute, com_stmt_send_long_data, com_stmt_close, com_stmt_reset, com_stmt_set_option, com_stmt_fetch, com_daemon Connexion Nombre total de tentatives d'envoi d'une certaine commande COM_* command de PHP vers MySQL.

Les statistiques sont incrémentées après avoir vérifié la connexion et immédiatement avant d'envoyer le paquet correspondant du protocole client-serveur MySQL. Si mysqlnd échoue lors de l'envoi du paquet via la connexion, la statistique ne sera pas décrémentée. En cas d'échec, mysqlnd émet un avertissement PHP "Error while sending %s packet. PID=%d."

Exemples d'utilisation :

  • Vérifie si PHP envoie certaines commandes à MySQL, vérifie par exemple si un client envoie COM_PROCESS_KILL

  • Calcule le nombre moyen d'exécution de commandes préparées en comparant COM_EXECUTE et COM_PREPARE

  • Vérifie si PHP a envoyé des commandes SQL non préparées en vérifiant si COM_QUERY vaut zéro

  • Identifie si des scripts PHP utilisent un nombre excessif de requêtes SQL en vérifiant COM_QUERY et COM_EXECUTE

Divers

Statistique Contexte Description Notes
explicit_stmt_close, implicit_stmt_close Processus Nombre total de fermetures de commandes préparées. Une fermeture est toujours considérée comme explicite sauf dans le cas d'une préparation échouée.
mem_emalloc_count, mem_emalloc_ammount, mem_ecalloc_count, mem_ecalloc_ammount, mem_erealloc_count, mem_erealloc_ammount, mem_efree_count, mem_malloc_count, mem_malloc_ammount, mem_calloc_count, mem_calloc_ammount, mem_realloc_count, mem_realloc_ammount, mem_free_count Processus Appels à la gestion de la mémoire. Seulement pour du développement.
command_buffer_too_small Connexion Nombre d'extension de tampon de commandes réseau lors de l'envoi des commandes de PHP vers MySQL.

mysqlnd alloue un tampon interne de commande/réseau de mysqlnd.net_cmd_buffer_size (php.ini) octets pour chaque connexion. Si une commande du protocole client-serveur MySQL, para exemple, COM_QUERY (requête normales), ne rentre pas dans le tampon, mysqlnd étendra le tampon de jusqu'à ce qui est nécessaire pour envoyer la commande. Quand le tampon est étendu pour une connexion, command_buffer_too_small sera incrémenté d'une unité.

Si mysqlnd doit étendre le tampon au délà de sa taille initiale de mysqlnd.net_cmd_buffer_size (php.ini) octets pour la plupart des connexions, vous devriez considérer l'augmentation de la taille par défaut pour éviter les you should consider to increase the default size to avoid re-allocations.

La taille par défaut du tampon est de 2048 octets en PHP 5.3.0. Dans les versions futures, ce sera 4ko ou plus par défaut. Cette valeur peut être changée soit via php.ini en ajustant le paramètre mysqlnd.net_cmd_buffer_size ou en utilisant mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

Il est recommandé de ne pas ajuster la taille du tampon en dessous de 4096 octets car mysqlnd l'utilise aussi pour lire certains paquets de communication de MySQL. En PHP 5.3.0, mysqlnd n'étendra pas le tampon si MySQL envoie un paquet plus grand que la taille courante du tampon. Par conséquent, mysqlnd n'est pas capable de décoder le paquet et l'application cliente recevra une erreur. Il y a seulement deux situations où le paquet peut être plus grand que la valeur par défaut de 2048 octets de mysqlnd.net_cmd_buffer_size en PHP 5.3.0 : le paquet transporte un message d'erreur très long ou le paquet gère des méta-données de colonne de COM_LIST_FIELD (mysql_list_fields()) et les méta-données viennent d'une chaine de caractères avec une valeur par défaut importante (plus de 1900 octets). Aucun rapport de bogue n'existe sur le sujet - ça doit arriver très rarement.

Depuis PHP 5.3.2, mysqlnd n'autorise pas les tampons de moins de 4096 octets.

connection_reused      


Notes

Cette section fournit une compilation de notes diverses sur l'utilisation du pilote natif MySQL.

  • Utiliser mysqlnd signifie utiliser les flux PHP pour la connection sous-jascente. Avec mysqlnd, la documentation des flux PHP (Flux) devrait être consultée en ce qui concerne les notions comme les timeouts et non pas la documentation de la librairie cliente MySQL.



API du plugin du driver natif MySQL

Sommaire

L'API du plugin du driver natif MySQL est une fonctionnalité du driver natif MySQL, ou mysqlnd. Le plugin Mysqlnd opère sur la couche entre les applications PHP et le serveur MySQL. Il est comparable à un proxy MySQL. Un proxy MySQL opère sur une couche entre toutes les applications clientes MySQL, par exemple, une application PHP et un serveur MySQL. Le plugin Mysqlnd peut entreprendre des tâches typiques de proxy MySQL comme l'équilibrage de charge, ainsi que le suivi et l'optimisation des performances. En raison d'une architecture et d'une localisation différente, le plugin mysqlnd n'a pas tous les inconvénients d'un proxy MySQL. Par exemple, avec le plugin, il n'y a pas qu'un seul point d'échec, pas de serveur de proxy dédié à déployer, et pas de nouveau langage à apprendre (Lua).

Un plugin mysqlnd peut être exécuté comme une extension à mysqlnd. Un plugin peut intercepter la majorité des fonctions mysqlnd. Les fonctions mysqlnd sont appelées par l'extension PHP MySQL comme ext/mysql, ext/mysqli, et PDO_MYSQL. Comme résultat, il est possible pour un plugin mysqlnd d'intercepter tous les appels effectués par ces extensions depuis une application cliente.

Les appels aux fonctions internes mysqlnd peuvent également être interceptés ou remplacés. Il n'y a aucune restriction sur la manipulation des tables de fonctions internes mysqlnd. Il est possible de définir des actions pour faire que lorsque certaines fonctions mysqlnd sont appelées par l'extension qui utilise mysqlnd, l'appel est redirigé vers la fonction appropriée du plugin mysqlnd. La possibilité de manipuler les tables de fonctions internes mysqlnd dans ce sens permet un maximum de flexibilité.

Le plugin Mysqlnd est en faite, une extension PHP, écrit en C, qui utilise l'API du plugin mysqlnd (qui est compilé dans le driver natif MySQL, mysqlnd). Le plugin peut être à 100% transparent pour les applications PHP. Aucune modification aux applications n'est nécessaire car le plugin opère sur une couche différente. Le plugin mysqlnd peut être utilisé dans une couche en dessous de mysqlnd.

La liste suivante représente quelques applications possibles du plugin mysqlnd.

  • L'équilibrage de charge.

    • Séparation des lectures et des écritures. Un exemple de cette fonctionnalité est l'extension PECL/mysqlnd_ms (Maître/esclave). Cette extension sépare les requêtes de lecture et d'écriture pour une configuration de réplication.

    • Basculement

    • Round-Robin, le moins chargé

  • Surveillance

    • Journalisation des requêtes

    • Analyse de requêtes

    • Audite de requêtes. Un exemple de ceci est l'extension PECL/mysqlnd_sip (SQL Injection Protection). Cette extension inspecte les requêtes et exécute uniquement celles qui sont autorisées suivants des ensembles de règles.

  • Performance

    • La mise en cache. Un exemple de ceci est l'extension PECL/mysqlnd_qc (Query Cache).

    • Étranglement

    • Fragmentation. Un exemple de ceci est l'extension PECL/mysqlnd_mc (Multi Connect). Cette extension tente de séparer une requête SELECT en n parties, en utilisant des requêtes du type SELECT ... LIMIT part_1, SELECT LIMIT part_n. L'extension envoie les requêtes à des serveurs MySQL distincts et fusionne ensuite le résultat à destination du client.

PLugins du driver natif MySQL disponibles

Il y a déjà plusieurs plugins mysqlnd de disponible.

  • PECL/mysqlnd_mc -Plugin Multi Connexion.

  • PECL/mysqlnd_ms - Plugin Maître Esclave.

  • PECL/mysqlnd_qc - Plugin de mise en cache de requêtes.

  • PECL/mysqlnd_pscache - Plugin de mise en cache de gestionnaire de requêtes préparées.

  • PECL/mysqlnd_sip - Plugin permettant la protection contre les injections SQL.

  • PECL/mysqlnd_uh - Plugin de gestionnaire d'utilisateurs.


Comparaison des plugins mysqlnd avec proxy MySQL

Les plugins Mysqlnd et le proxy MySQL sont des technologies différents utilisant différentes approches. Les deux sont des outils valides pour résoudre bons nombres de tâches classiques, comme l'équilibrage de charge, la surveillance, et l'amélioration des performances. Une importante différence est que le proxy MySQL fonctionne avec tous les clients MySQL alors que les plugins mysqlnd sont spécifiques aux applications PHP.

Comme une extension PHP, un plugin mysqlnd doit être installé sur le serveur d'application PHP, en plus du reste de PHP. Un proxy MySQL peut soit fonctionner sur le serveur d'application PHP, soit être installé sur une machine dédiée pour gérer plusieurs serveurs d'applications PHP.

Le déploiement d'un proxy MySQL sur un serveur d'application a 2 avantages :

  1. Pas un seul point d'échec

  2. Facile à redimensionner (redimensionnement horizontal, redimensionnement par le client)

Un proxy MySQL (et les plugins mysqlnd) peut résoudre des problèmes facilement, qui sinon, aurait du nécessité des modifications aux applications existantes.

Cepdenant, un proxy MySQL a quelques désavantages :

  • Un proxy MySQL est un nouveau composant, une nouvelle technologie à appliquer au maître et à déployer.

  • Un proxy MySQL nécessite la connaissance du langage de script Lua.

Un proxy MySQL peut être personnalisé en utilisant les langages de programmation C et Lua. Lua est le langage préféré pour un proxy MySQL. Pour la plupart des experts PHP, Lua est un nouveau langage à apprendre. Un plugin mysqlnd peut être écrit en C. Il est également possible d'écrire un plugin en PHP en utilisant » PECL/mysqlnd_uh.

Un proxy MySQL fonctionne comme un démon - un processus en arrière-plan. Un proxy MySQL peut rappeler des décisions prises antérieurement, vu que tous les états peuvent être conservés. Cependant, un plugin mysqlnd est lié au cycle de vie d'une requête PHP. Un proxy MySQL peut également partagé des résultats calculés une seule fois sur plusieurs serveurs d'applications. Un plugin mysqlnd peut donc avoir besoin de stocker des données dans un médium persistent. Un autre démon peut être utilisé dans ce but, comme par exemple, Memcache. Ce mécanisme donne un avantage au proxy MySQL.

Un proxy MySQL fonctionne au dessus de la couche physique. Avec un proxy MySQL, vous devez analyser et effectuer du "reverse engineer" du protocole client serveur MySQL. Les actions sont limitées à celles qui peuvent être effectuées par la manipulations du protocole de communication. Si la couche physique change (ce qui arrive très rarement), les scripts du proxy MySQL peut devoir être adapté.

Les plugins Mysqlnd fonctionnent au dessus de l'API C, reflétant ainsi les APIs client libmysql et Connecteur/C. Cet API C est essentiellement un wrapper du protocole Serveur Client MySQL, ou de la couche physique, vu qu'il est appelé quelques fois. Vous pouvez intercepter tous les appels à l'API C. PHP utilise l'API C, toutefois, vous pouvez connecter tous les appels PHP, sans avoir besoin de programmer au niveau de la couche physique.

Mysqlnd implémente la couche physique. Les plugins peuvent toutefois analyser, effectuer un "reverse engineer", manipuler et toujours remplacer le protocole de communication. Cependant, ce n'est généralement pas nécessaire.

Vu que les plugins vous autorisent de créer des implémentations qui utilisent les 2 niveaux (API C et couche physique), ils ont plus de flexibilité que le proxy MySQL. Si un plugin mysqlnd est implémenté en utilisant l'API C, toutes les modifications ultérieures à la couche physique ne nécessiteront pas de modification au plugin en tant que tel.



Obtenir l'API du plugin mysqlnd

L'API du plugin mysqlnd est simplement une partie de l'extension du driver PHP Natif MySQL, ext/mysqlnd. Le développement de l'API du plugin mysqlnd commenca en Décembre 2009. Il est développé comme une partie du dépôt source de PHP, et ainsi, est disponible depuis soit le dépôt public SVN, soit depuis le téléchargement des sources.

La table suivante montre les versions PHP et la version correspondante mysqlnd embarquée.

version PHP Version du driver natif MySQL
5.3.0 5.0.5
5.3.1 5.0.5
5.3.2 5.0.7
5.3.3 5.0.7
5.3.4 5.0.7

Les développeurs de plugin peuvent déterminer la version de mysqlnd via la variable MYSQLND_VERSION, au format "mysqlnd 5.0.7-dev - 091210 - $Revision: 300535", ou via MYSQLND_VERSION_ID, qui est un entier comme par exemple 50007. Les développeurs peuvent calculer le numéro de version comme ceci :

Version (partie) Exemple
Majeur*10000 5*10000 = 50000
Mineur*100 0*100 = 0
Patch 7 = 7
MYSQLND_VERSION_ID 50007

Lors du développement, les développeurs doivent se référer au numéro de version mysqlnd pour des tests de compatibilité et de version, sachant que plusieurs versions de mysqlnd peuvent survenir durant un cycle de vie de la branche de développement de PHP.



Architecture du plugin du driver natif

Cette section fournit un aperçu de l'architecture du plugin mysqlnd.

Aperçu du driver natif MySQL

Avant de développer des plugins mysqlnd, il est utile d'avoir une connaissance minimale sur l'organisation de mysqlnd. Mysqlnd est composé des modules suivants :

Modules de statistiques mysqlnd_statistics.c
Connexion mysqlnd.c
Jeu de résultats mysqlnd_result.c
Données méta du jeu de résultats mysqlnd_result_meta.c
Requête mysqlnd_ps.c
Réseau mysqlnd_net.c
Couche physique mysqlnd_wireprotocol.c

Objet C orienté paradigme

Au niveau du code, mysqlnd utilise un masque C pour implémenter l'orientation de l'objet.

En C, vous utilisez une structure (struct) pour représenter un objet. Les membres de cette structure représentent les propriétés de l'objet. Les membres de la structure pointant vers des fonctions représentent les méthodes.

Contrairement aux autres langages comme C++ ou Java, il n'y a pas de règles fixes sur l'héritage dans les objets C orientés paradigme. Cependant, il y a quelques conventions qui doivent être suivies qui seront abordées ultérieurement.

Le cycle de vie PHP

Le cycle de vie de PHP comporte 2 cycles basiques :

  • Le cycle de démarrage et d'arrêt du moteur PHP

  • Le cycle d'une demande

Lorsque le moteur PHP démarre, il appèle la fonction d'initialisation du module (MINIT) de chaque extension enregistrée. Ceci permet à chaque module de définir les variables et d'allouer les ressources qui doivent exister pour la durée de vie du processus correspondant au moteur PHP. Lorsque le moteur PHP s'arrête, il appèle la fonction d'arrêt du module (MSHUTDOWN) pour chaque extension.

Pendant la durée de vie du moteur PHP, il recevra des demandes. Chaque demande constitue un autre cycle de vie. Pour chaque requête, le moteur PHP appèlera la fonction d'initialisation de chaque extension. L'extension peut effectuer toutes les définitions de variables ainsi que les allocations de ressources nécessaires pour traiter la demande. Lorsque le cycle de la demande se termine, le moteur appèle la fonction d'arrêt (RSHUTDOWN) pour chaque extension, ainsi, l'extension peut lancer tout le nettoyage nécessaire.

Comment fonctionne un plugin

Un plugin mysqlnd fonctionne en interceptant les appels effectués à mysqlnd par les extensions qui utilisent mysqlnd. Ceci est possible en obtenant la table de fonction mysqlnd, en la sauvegardant, et en la remplaçant par une table de fonction personnalisé, qui appèle les fonctions du plugin.

Le code suivant montre la façon dont la table de fonction mysqlnd est remplacée :

/* un endroit pour stocker la table de fonction originale */
struct st_mysqlnd_conn_methods org_methods;

void minit_register_hooks(TSRMLS_D) {
  /* table de fonction active */
  struct st_mysqlnd_conn_methods * current_methods
    = mysqlnd_conn_get_methods();

  /* sauvegarde de la table de fonction originale */
  memcpy(&org_methods, current_methods,
    sizeof(struct st_mysqlnd_conn_methods);

  /* installation des nouvelles méthodes */
  current_methods->query = MYSQLND_METHOD(my_conn_class, query);
}

Les manipulation de la table de fonction de connexion doivent être effectuées lors de l'initialisation du module (MINIT). La table de fonction est une ressource globale partagée. Dans un environnement multi-thread, avec une compilation TSRM, la manipulation d'une ressource globale partagée lors d'un processus de demande entraînera la plupart du temps des conflits.

Note:

N'utilisez aucune logique de taille fixe lors de la manipulation de la table de fonction mysqlnd : les nouvelles méthodes peuvent être ajoutées à la fin de la table de fonction. La table de fonction peut être modifiée à tout moment par la suite.

Appel des méthodes parents

Si la table de fonction originale est sauvegardée, il est toujours possible d'appeler les entrées de la table de fonction originale - les méthodes parents.

Dans ce cas, tout comme pour Connection::stmt_init(), il est vital d'appeler la méthode parent avant tout autre activité dans la méthode dérivée.

MYSQLND_METHOD(my_conn_class, query)(MYSQLND *conn,
  const char *query, unsigned int query_len TSRMLS_DC) {

  php_printf("my_conn_class::query(query = %s)\n", query);

  query = "SELECT 'query rewritten' FROM DUAL";
  query_len = strlen(query);

  return org_methods.query(conn, query, query_len); /* retour avec appel du parent */
}

Étendre des propriétés

Un objet mysqlnd est représenté par une structure C. Il n'est pas possible d'ajouter un membre à une structure C au moment de l'exécution. Les utilisateurs d'objets mysqlnd ne peuvent pas ajouter simplement des propriétés aux objets.

Les données arbitraires (propriétés) peuvent être ajoutées aux objets mysqlnd en utilisant une fonction appropriée de la famille mysqlnd_plugin_get_plugin_<object>_data(). Lors de l'allocation d'un objet, mysqlnd réserve un espace à la fin de l'objet pour accueillir un pointeur void * vers des données arbitraires. mysqlnd réserve un espace pour un pointeur void * par plugin.

La table suivante montre comment calculer la position d'un pointeur pour un plugin spécifique :

Adresse mémoire Contenus
0 Début de la structure C de l'objet mysqlnd
n Fin de la structure C de l'objet mysqlnd
n + (m x sizeof(void*)) void* vers les données de l'objet du m-ème plugin

Si vous prévoyez de faire de sous-classe des constructeurs des objets mysqlnd, ce qui est autorisé, vous devez conserver ceci en mémoire !

Le code suivant montre la façon dont on étend des propriétés :

/* toutes les données que nous voulons associer */
typedef struct my_conn_properties {
  unsigned long query_counter;
} MY_CONN_PROPERTIES;

/* id du plugin */
unsigned int my_plugin_id;

void minit_register_hooks(TSRMLS_D) {
  /* on obtient un ID unique pour le plugin */
  my_plugin_id = mysqlnd_plugin_register();
  /* snip - voir l'extension de la connexion : méthodes */
}

static MY_CONN_PROPERTIES** get_conn_properties(const MYSQLND *conn TSRMLS_DC) {
  MY_CONN_PROPERTIES** props;
  props = (MY_CONN_PROPERTIES**)mysqlnd_plugin_get_plugin_connection_data(
    conn, my_plugin_id);
  if (!props || !(*props)) {
    *props = mnd_pecalloc(1, sizeof(MY_CONN_PROPERTIES), conn->persistent);
    (*props)->query_counter = 0;
  }
  return props;
}

Le développeur du plugin est responsable de la gestion de la mémoire associée aux données du plugin.

L'utilisation de l'allocateur de mémoire mysqlnd est recommandée pour les données du plugin. Ces fonctions sont nommées en utilisant la convention suivante : mnd_*loc(). L'allocateur mysqlnd a quelques fonctionnalités bien utiles, comme la possibilité d'utiliser un allocateur de débogage dans une compilation non-débogue.

Quand et comment faire une sous-classe

  Quand faire une sous-classe ? Est-ce que chaque instance a sa table de fonction privée ? Comment faire une sous-classe ?
Connexion (MYSQLND) MINIT Non mysqlnd_conn_get_methods()
Jeu de résultats (MYSQLND_RES) MINIT ou après Oui mysqlnd_result_get_methods() ou méthode de l'objet de manipulation de la table de fonction
Méta du jeu de résultats (MYSQLND_RES_METADATA) MINIT Non mysqlnd_result_metadata_get_methods()
Requête (MYSQLND_STMT) MINIT Non mysqlnd_stmt_get_methods()
Réseau (MYSQLND_NET) MINIT ou après Oui mysqlnd_net_get_methods() ou méthode de l'objet de manipulation de la table de fonction
Couche physique (MYSQLND_PROTOCOL) MINIT ou après Oui mysqlnd_protocol_get_methods() ou méthode de l'objet de manipulation de la table de fonction

Vous ne devez pas manipuler les tables de fonction après MINIT si ce n'est pas autorisé suivant la table ci-dessus.

Quelques classes contiennent un point vers une méthode de la table de fonction. Toutes les instances d'une telle classe partageront la même table de fonction. Pour éviter le chaos, en particulier dans les environnements treahdés, ce genre de tables de fonction ne doit être manipulé que lors du MINIT.

Les autres classes utilisent une copie de la table de fonction globale partagée. Cette copie est créée en même temps que l'objet. Chaque objet utilise sa propre table de fonction. Ceci vous donne 2 options : vous pouvez manipuler la table de fonction par défaut d'un objet au moment du MINIT, et vous pouvez aussi affiner des méthodes d'un objet sans impacter les autres instances de la même classe.

L'avantage de l'approche avec une table de fonction partagée est la performance. Il n'est pas nécessaire de copier une table de fonction pour chaque objet.

Constructeurs

  Allocation, construction, réinitialisation Peut-être modifié ? Appelant
Connexion (MYSQLND) mysqlnd_init() Non mysqlnd_connect()
Jeu de résultats(MYSQLND_RES)

Allocation :

  • Connection::result_init()

Reset et ré-initialisation lors de :

  • Result::use_result()

  • Result::store_result

Oui, mais appel du parent !
  • Connection::list_fields()

  • Statement::get_result()

  • Statement::prepare() (Méta-données uniquement)

  • Statement::resultMetaData()

Méta du jeu de résultats (MYSQLND_RES_METADATA) Connection::result_meta_init() Oui, mais appel du parent ! Result::read_result_metadata()
Statement (MYSQLND_STMT) Connection::stmt_init() Oui, mais appel du parent ! Connection::stmt_init()
Réseau (MYSQLND_NET) mysqlnd_net_init() Non Connection::init()
Couche physique (MYSQLND_PROTOCOL) mysqlnd_protocol_init() Non Connection::init()

Il est vivement recommandé de ne pas remplacer entièrement un constructeur. Les constructeurs effectuent les allocations mémoires. Les allocations mémoires sont vitales pour l'API du plugin mysqlnd ainsi que pour la logique de l'objet mysqlnd. Si vous ne vous souciez pas des alertes et que vous insistez pour remplacer les constructeurs, vous devriez au moins appeler le constructeur parent avant de faire quoi que ce soit dans votre constructeur.

Au niveau de toutes les alertes, il peut être utile de faire des sous-classes des constructeurs. Les constructeurs sont les endroits parfaits pour modifier les tables de fonction des objets avec les tables d'objets non partagés, comme les jeux de résultats, le réseau ou encore la couche phyique.

Destructeur

  La méthode dérivée doit appeler le parent ? Destructeur
Connexion oui, après l'exécution de la méthode free_contents(), end_psession()
Jeu de résultats oui, après l'exécution de la méthode free_result()
Méta du jeu de résultats oui, après l'exécution de la méthode free()
Requête oui, après l'exécution de la méthode dtor(), free_stmt_content()
Réseau oui, après l'exécution de la méthode free()
Couche physique oui, après l'exécution de la méthode free()

Les destructeurs sont les endroits parfaits pour libérer les propriétés, mysqlnd_plugin_get_plugin_<object>_data().

Les destructeurs listés peuvent ne pas être les équivalents aux méthodes actuelles mysqlnd libérant l'objet lui-même. Cependant, ils sont les meilleurs endroits pour vous pour libérer les données de votre plugin. Tout comme les constructeurs, vous pouvez remplacer les méthodes entières mais ce n'est pas recommandé. Si plusieurs méthodes sont listées dans la table ci-dessus, vous devez modifier toutes les méthodes listées et libérer les données de votre plugin dans la méthode appelée en premier par mysqlnd.

La méthode recommandée pour les plugins est de modifier simplement les méthodes, libérer votre mémoire et appeler l'implémentation du parent immédiatement après.

Attention

En raison d'un bogue dans les versions PHP 5.3.0 à 5.3.3, les plugins n'associent pas les données du plugin avec une connexion persistante. Ceci est dû au fait que ext/mysql et ext/mysqli ne lancent pas tous les appels à la méthode mysqlnd end_psession() et le plugin peut subir une fuite mémoire. Ce bogue est corrigé en PHP 5.3.4.



L'API du plugin mysqlnd

Voici la liste des fonctions fournies dans l'API plugin mysqlnd :

  • mysqlnd_plugin_register()

  • mysqlnd_plugin_count()

  • mysqlnd_plugin_get_plugin_connection_data()

  • mysqlnd_plugin_get_plugin_result_data()

  • mysqlnd_plugin_get_plugin_stmt_data()

  • mysqlnd_plugin_get_plugin_net_data()

  • mysqlnd_plugin_get_plugin_protocol_data()

  • mysqlnd_conn_get_methods()

  • mysqlnd_result_get_methods()

  • mysqlnd_result_meta_get_methods()

  • mysqlnd_stmt_get_methods()

  • mysqlnd_net_get_methods()

  • mysqlnd_protocol_get_methods()

Il n'y a pas de définition formelle de ce qu'est un plugin ainsi de la façon dont fonctionne un plugin.

Les composants les plus souvent trouvés dans les mécanismes de plugin sont :

  • Un gestionnaire de plugin

  • Une API du plugin

  • Les services applicatifs (ou modules)

  • Les APIs des services applicatifs (ou APIs du module)

Le concept d'un plugin mysqlnd utilise ces fonctionnalités, ainsi que d'autres joyeusetés d'architecture ouverte.

Aucune restriction

Un plugin a un accès total aux travaux internes de mysqlnd. Il n'y a aucune limite de sécurité ou de restrictions. Tout peut être écrasé pour implémenter des algorithmes utiles ou hostiles. Il est recommandé de ne déployer que des plugins depuis des sources de confiance.

Tel que discuté précédemment, les plugins peuvent utiliser librement des pointeurs. Ces pointeurs ne sont restreints en aucune manière, aussi, vous pouvez pointer vers les données d'un autre plugin. Une simple position arithmétique peut être utilisée pour lire les données d'un autre plugin.

Il est recommandé d'écrire des plugins coopératifs, et ainsi, appeler toujours la méthode parent. Les plugins devraient toujours coopérer avec mysqlnd.

Enjeux : un exemple de chaînage et de coopération

Extension Pointeur mysqlnd.query() Pile d'appel si on appelle le parent
ext/mysqlnd mysqlnd.query() mysqlnd.query
ext/mysqlnd_cache mysqlnd_cache.query()
  1. mysqlnd_cache.query()

  2. mysqlnd.query

ext/mysqlnd_monitor mysqlnd_monitor.query()
  1. mysqlnd_monitor.query()

  2. mysqlnd_cache.query()

  3. mysqlnd.query

Dans ce scénario, un plugin cache (ext/mysqlnd_cache) et un plugin de surveillance (ext/mysqlnd_monitor) sont chargés. Les 2 ont une sous-classes de Connection::query(). L'enregistrement du plugin survient lors du MINIT en utilisant la logique évoquée précédemment. PHP appelle les extensions dans un ordre alphabétique par défaut. Les plugins ne sont pas au courant les uns les autres et ne peuvent fixer de dépendances.

Par défaut, les plugins appellent l'implémentation du parent de la méthode de requête dans leur version de la méthode dérivée.

Récapitulatif de l'extension PHP

Voici un récapitulatif de ce qui survient lors de l'utilisation d'un plugin d'exemple, ext/mysqlnd_plugin, qui expose l'API C du plugin mysqlnd à PHP :

  • Toutes les applications PHP MySQL tente d'établir une connexion à l'adresse 192.168.2.29

  • L'application PHP utilisera ext/mysql, ext/mysqli ou PDO_MYSQL. Ces 3 extensions PHP MySQL utilisent mysqlnd pour établir la connexion à l'adresse 192.168.2.29.

  • Mysqlnd appelle sa méthode de connexion, qui a été sous-classé par ext/mysqlnd_plugin.

  • ext/mysqlnd_plugin appelle la méthode de l'espace utilisateur proxy::connect() enregistrée par l'utilisateur.

  • L'espace utilisateur modifie l'hôte de connexion de 192.168.2.29 à 127.0.0.1 et retourne la connexion établie par parent::connect().

  • ext/mysqlnd_plugin exécute l'équivalent de parent::connect(127.0.0.1) en appelant la méthode originale de mysqlnd pour établir une connexion.

  • ext/mysqlnd établit une connexion et redonne la main à ext/mysqlnd_plugin. ext/mysqlnd_plugin retourne également.

  • Quelque soit l'extension PHP MySQL utilisée par l'application, elle reçoit une connexion à 127.0.0.1. L'extension PHP MySQL redonne la main à l'application PHP. Le cycle est clos.



Bien commencer la compilation d'un plugin mysqlnd

Il est important de se souvenir qu'un plugin mysqlnd est lui-même une extension PHP.

Le code suivant montre la structure basique d'une fonction MINIT utilisée dans un plugin typique mysqlnd :

/* my_php_mysqlnd_plugin.c */

 static PHP_MINIT_FUNCTION(mysqlnd_plugin) {
  /* globales, entrées ini, ressources, classes */

  /* enregistrement du plugin mysqlnd */
  mysqlnd_plugin_id = mysqlnd_plugin_register();

  conn_m = mysqlnd_get_conn_methods();
  memcpy(org_conn_m, conn_m,
    sizeof(struct st_mysqlnd_conn_methods));

  conn_m->query = MYSQLND_METHOD(mysqlnd_plugin_conn, query);
  conn_m->connect = MYSQLND_METHOD(mysqlnd_plugin_conn, connect);
}
/* my_mysqlnd_plugin.c */

 enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, query)(/* ... */) {
  /* ... */
}
enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, connect)(/* ... */) {
  /* ... */
}

Tâche d'analyse : depuis C vers l'espace utilisateur

 class proxy extends mysqlnd_plugin_connection {
  public function connect($host, ...) { .. }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Process:

  1. PHP : l'utilisateur enregistre une fonction de rappel pour le plugin

  2. PHP : l'utilisateur appelle une méthode de l'API PHP MySQL pour se connecter à MySQL

  3. C : ext/*mysql* appelle la méthode mysqlnd

  4. C : mysqlnd se termine dans ext/mysqlnd_plugin

  5. C : ext/mysqlnd_plugin

    1. Appel de la fonction de rappel de l'espace utilisateur

    2. Ou la méthode originale mysqlnd, si l'espace utilisateur n'a pas défini de fonction de rappel

Vous devez effectuer les opérations suivantes :

  1. Écrire une classe "mysqlnd_plugin_connection" en C

  2. Accepter et enregistrer l'objet proxy via "mysqlnd_plugin_set_conn_proxy()"

  3. Appeler les méthodes de proxy de l'espace utilisateur depuis C (optimisation - zend_interfaces.h)

Les méthodes de l'objet de l'espace utilisateur peuvent soit être appelées en utilisant call_user_function(), soit vous pouvez opérer à un niveau en dessous du moteur Zend et utiliser zend_call_method().

Optimisation : appel des méthodes depuis C en utilisant zend_call_method

Le code suivant montre un prototype pour la fonction zend_call_method, issue de zend_interfaces.h.

 ZEND_API zval* zend_call_method(
  zval **object_pp, zend_class_entry *obj_ce,
  zend_function **fn_proxy, char *function_name,
  int function_name_len, zval **retval_ptr_ptr,
  int param_count, zval* arg1, zval* arg2 TSRMLS_DC
);

L'API Zend supporte 2 arguments. Vous pouvez en avoir besoin de plus, par exemple :

 enum_func_status (*func_mysqlnd_conn__connect)(
  MYSQLND *conn, const char *host,
  const char * user, const char * passwd,
  unsigned int passwd_len, const char * db,
  unsigned int db_len, unsigned int port,
  const char * socket, unsigned int mysql_flags TSRMLS_DC
);

Pour contourner ce problème, vous devrez faire une copie de zend_call_method() et ajouter une fonctionnalité pour ajouter des paramètres. Vous pouvez réaliser ceci en créant un jeu de macros MY_ZEND_CALL_METHOD_WRAPPER.

Appel de l'espace utilisateur PHP

Le code ci-dessous montre la méthode optimisée pour effectuer un appel à une fonction de l'espace utilisateur depuis C :

 
/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class,connect)(
  MYSQLND *conn, const char *host /* ... */ TSRMLS_DC) {
  enum_func_status ret = FAIL;
  zval * global_user_conn_proxy = fetch_userspace_proxy();
  if (global_user_conn_proxy) {
    /* appel du proxy de l'espace utilisateur */
    ret = MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, host, /*...*/);
  } else {
    /* ou la méthode originale mysqlnd = ne rien faire, être transparent */
    ret = org_methods.connect(conn, host, user, passwd,
          passwd_len, db, db_len, port,
          socket, mysql_flags TSRMLS_CC);
  }
  return ret;
}

Appel de l'espace utilisateur: arguments simples

/* my_mysqlnd_plugin.c */

 MYSQLND_METHOD(my_conn_class,connect)(
  /* ... */, const char *host, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_host;
    MAKE_STD_ZVAL(zv_host);
    ZVAL_STRING(zv_host, host, 1);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_host);
    /* ... */
  }
  /* ... */
}

Appel de l'espace utilisateur : structures comme arguments

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class, connect)(
  MYSQLND *conn, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_conn;
    ZEND_REGISTER_RESOURCE(zv_conn, (void *)conn, le_mysqlnd_plugin_conn);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_conn, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_conn);
    /* ... */
  }
  /* ... */
}

Le premier argument de toutes les méthodes mysqlnd est un objet C. Par exemple, le premier argument de la méthode connect() est un pointeur vers MYSQLND. La structure MYSQLND représente un objet de connexion mysqlnd.

Le pointeur de l'objet de connexion mysqlnd peut être comparé à un pointeur de fichier standard I/O. Tout comme un pointeur de fichier standard I/O, un objet de connexion mysqlnd doit être lié à l'espace utilisateur en utilisant une variable PHP de type ressource.

Depuis C vers l'espace utilisateur, puis, retour

 class proxy extends mysqlnd_plugin_connection {
  public function connect($conn, $host, ...) {
    /* "pre" hook */
    printf("Connexion à l'hôte = '%s'\n", $host);
    debug_print_backtrace();
    return parent::connect($conn);
  }

  public function query($conn, $query) {
    /* "post" hook */
    $ret = parent::query($conn, $query);
    printf("Requête = '%s'\n", $query);
    return $ret;
  }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Les utilisateurs PHP doivent pouvoir appeler l'implémentation du parent d'un méthode écrasée.

Comme résultat d'un sous-classement, il est possible de redéfinir uniquement les méthodes sélectionnées, et vous pouvez choisir d'avoir des actions "pre" ou "post".

Construction d'une classe : mysqlnd_plugin_connection::connect()

/*  my_mysqlnd_plugin_classes.c */

 PHP_METHOD("mysqlnd_plugin_connection", connect) {
  /* ... simplifié ! ... */
  zval* mysqlnd_rsrc;
  MYSQLND* conn;
  char* host; int host_len;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs",
    &mysqlnd_rsrc, &host, &host_len) == FAILURE) {
    RETURN_NULL();
  }
  ZEND_FETCH_RESOURCE(conn, MYSQLND* conn, &mysqlnd_rsrc, -1,
    "Mysqlnd Connection", le_mysqlnd_plugin_conn);
  if (PASS == org_methods.connect(conn, host, /* simplifié! */ TSRMLS_CC))
    RETVAL_TRUE;
  else
    RETVAL_FALSE;
}




Mysqlnd replication and load balancing plugin


Introduction

The mysqlnd replication and load balancing plugin (mysqlnd_ms) adds easy to use MySQL replication support to all PHP MySQL extensions that use mysqlnd.

As of version PHP 5.3.3 the MySQL native driver for PHP (mysqlnd) features an internal plugin C API. C plugins, such as the replication and load balancing plugin, can extend the functionality of mysqlnd.

The MySQL native driver for PHP is a C library which ships together with PHP as of PHP 5.3.0. It serves as a drop-in replacement for the MySQL Client Library (AKA libmysql/libmysqlclient). Using mysqlnd has several advantages: no extra downloads because it comes with PHP, PHP license, lower memory consumption in certain cases, new functionality such as asynchronous queries.

Mysqlnd plugins such as the replication and load balancing plugin operate mostly transparent from an user perspective. The replication and load balancing plugin supports all PHP applications and all PHP MySQL extensions ( mysqli, mysql, PDO_MYSQL). It does not change existing APIs. Therefore, it can easily be used with existing PHP applications.

Note:

The mysqlnd replication and load balancing plugin is in alpha status. It is not feature complete.

Key Features

  • Transparent and therefore easy to use

    • supports all PHP MySQL extensions

    • no API changes

    • very little, if any, application changes required, dependent on the usage scenario required

  • Featured read-write split strategies

    • Automatic detection of SELECT, supports SQL hints to overrule automatism

    • user-defined

  • Featured load balancing strategies

    • Round Robin: choose different slave in round robin fashion for every slave request.

    • Random: choose random slave for every slave request.

    • Random once (sticky): choose random slave once to run all slave requests for the duration of a web request.

    • User-defined. The application can register callbacks with mysqlnd_ms.

Limitations

The plugin does not support MySQL replication setups with more than one master server.

The built-in read/write-split mechanism is very basic. Every query which starts with SELECT is considered a read request to be sent to a MySQL slave server. All other queries, including, for example, SHOW statements, are considered as write requests to be sent to the MySQL master server. The build-in behaviour can be overruled using SQL hints or an user-defined callback function.

The read/write splitter is not aware of multi-statements. Multi-statements are considered as one statement. The decision of where to run the statement will be based on the beginning of the statement string.

The plugin does not support native prepared statements. Please note that PDO_MySQL is using a client-side prepared statement emulation by default. Client-side emulated prepared statements are fully supported by the replication and load balancing plugin because the emulation is not using native prepared statements. If you are using PHP based database abstraction, please consult the vendor manual to learn if a client-side prepared statement emulation is used.

Note:

Application must be aware of the consequences of connection switches performed for load balancing purpose. Please check the documentation on connection pooling and switching, transaction handling, failover load balancing and read-write splitting carefully.

On the name

The shortcut mysqlnd_ms stands for mysqlnd master slave plugin. The name was choosen for a quick-and-dirty proof-of-concept. In the beginning the developers did not expect to continue using the code base.



Quickstart and Examples

Sommaire

The mysqlnd replication load balancing plugin is easy to use. The quickstart will demo typical use-cases and give practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. The quickstart tries to avoid discussing theoretical concepts and limitations. Instead, it will link to the reference sections. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.


Setup

The plugin is implemented as a PHP extension. Please, follow the installation instructions to install the » PECL/mysqlnd_ms extension. Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_ms.enable.

The plugin is using its own configuration file. Use the PHP configuration directive mysqlnd_ms.ini_file to set the full path to the plugin-specific configuration file. This file must be readable by PHP.

Exemple #1 Enabling the plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.ini_file=/path/to/mysqlnd_ms_plugin.ini

Create a plugin-specific configuration file. Save the file to the path set by the PHP configuration directive mysqlnd_ms.ini_file. The plugin-specific file must be readable by PHP.

The plugins configuration file is divided into one or more sections. Each section has a name, for example, myapp. Every section makes its own set of configuration settings.

A section must at least list the MySQL replication master server. The plugin supports using only one master server per section. Multi-master MySQL replication setups are not supported. Use the configuration directive master[] to set the hostname and the port or socket of the MySQL master server.

Exemple #2 Minimal plugin-specific configuration file (mysqlnd_ms_plugin.ini)

[myapp]
master[]=localhost:/tmp/mysql.sock

It is allowed to set no MySQL slave server but it is not recommended to do. You should always configure at least one slave server as well. Slave servers are set using the configuration directive slave[]. A configuration section may contain no, one or multiple slave[] directives to set no, one or multiple MySQL slaves.

Exemple #3 Recommended minimal plugin-specific config (mysqlnd_ms_plugin.ini)

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=192.168.2.27:3306

If there are at least two servers in total, the plugin can start to load balance and switch connections. Switching connections is not always transparent and can cause issues in certain cases. The reference section on connection pooling and switching, transaction handling, fail over load balancing and read-write splitting gives details. For now you can continue reading the quickstart. Potential pitfalls will be described later in the quickstart guide.

It is responsibility of the application to handle potential issues caused by connection switches. By always configuring a master and at lease one slave server you can be sure to detect issues early because switches become possible.

The MySQL master and MySQL slave servers, which you configure, do not need to be part of MySQL replication setup. For testing purpose you can use single MySQL server and make it known to the plugin as a master and slave server as shown below. This could help you to detect many potential issues with connection switches. However, such a setup will not be prone to the issues caused by replication lag.

Exemple #4 Using one server as a master and as a slave (testing only!)

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=127.0.0.1:3306



Running statements

The plugin can be used with any PHP MySQL extension (mysqli, mysql, PDO_MYSQL) compiled to use the mysqlnd library. PECL/mysqlnd_ms plugs into the mysqlnd library. It does not change the PHP MySQL extensions and their API.

Whenever a connection to MySQL is being opened, the plugin compares the host parameter value of the connect call with the section names from the plugin specific configuration file. If, for example, the plugin specific configuration file has a section myapp the section should be referenced by opening a MySQL connection to the host myapp

Exemple #1 Plugin specific configuration file (mysqlnd_ms_plugin.ini)

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=192.168.2.27:3306

Exemple #2 Opening a load balanced connection

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp""username""password""database");
$pdo = new PDO('mysql:host=myapp;dbname=database''username''password');
$mysql mysql_connect("myapp""username""password");
?>

All of three connections opened in the example will be load balanced. The plugin will send read-only statements to the MySQL slave server with the IP 192.168.2.27 and listening on port 3306 for MySQL client connection. All other statements will be directed to the MySQL master server running on the host localhost accepting MySQL client connection on the Unix domain socket /tmp/mysql.sock. The plugin will use the user name username and the password password to connect to any of the MySQL servers listed in the section myapp of the plugins configuration file. Upon connect, the plugin will select database as the current schemata. The username, password and schema name are taken from the connect API calls and used for all servers. In other words: you must use the same username and password for every MySQL server listed in a plugin configuration file section.

The plugin does not change the API for running statements. Read-write splitting works out of the box. The following example assumes that there is no significant replication lag between the master and the slave.

Exemple #3 Executing statements

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));

/* Statements will be run on the master */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}
if (!
$mysqli->query("CREATE TABLE test(id INT)")) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}
if (!
$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}

/* read-only: statement will be run on a slave */
if (!($res $mysqli->query("SELECT id FROM test")) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
} else {
 
$row $res->fetch_assoc(); 
 
$res->close();
 
printf("Slave returns id = '%s'\n"$row['id'];
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

Slave returns id = '1'

Note:

The plugin does not support native prepared statements. Prepared statements are not load balanced. Most users of PDO_MYSQL will be unaffected by this restriction because PDO_MYSQL is using a client-side prepared statement emulation by default.



Connection state

The plugin changes the semantics of a PHP MySQL connection handle. A connection handle does no longer represent a single MySQL client-server network connection but a connection pool. The connection pool consists of a master connection and none, one or multiple slave connections.

Every connection from the connection pool has its own state. For example, SQL user variables, temporary tables and transactions are part of the state. Please, find a complete list of what belongs to the state of a connection at the concepts page on connection pooling and switching. If the plugin decides to switch connections for load balancing the application could be given connection which has a different state. Applications must be made aware of this!

Exemple #1 Plugin config with one slave and one master

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=192.168.2.27:3306

Exemple #2 Pitfall: connection state and SQL user variables

<?php
$mysqli 
= new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}

/* Connection 2, run on slave because SELECT */
if (!($res $mysqli->query("SELECT @myrole AS _role"))) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
} else {
 
$row $res->fetch_assoc();
 
$res->close();
 
printf("@myrole = '%s'\n"$row['_role']);
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

@myrole = ''

The example openes a load balanced connection and executes two statements. The first statement SET @myrole='master' does not begin with the string SELECT. Therefore the plugin does not recognize it as a read-only query which shall be run on a slave. The plugin runs the statement on the connection to the master. The statement sets a SQL user variable which is bound to the master connection. The state of the master connection has been changed.

The next statement is SELECT @myrole AS _role. The plugin does recognize it as a read-only query and sends it to the slave. The statement is run on a connection to the slave. This second connection does not have any SQL user variables bound to it. It has a different state than the first connection to the master. The requested SQL user variable is not set. The example script prints @myrole = ''.

It is the responsibility of the application developer to take care of the connection state. The plugin does not monitor all connection state changing activities. Monitoring all possible cases would be a very CPU intensive task, if it could be done at all.

The pitfalls can easily be worked around using SQL hints.



SQL Hints

SQL hints can be used to force the plugin to pick a certain server from the connection pool. Hinting the plugin to use a certain server can solve issues caused by connection switches and connection state.

SQL hints are standard compliant SQL comments. Because SQL comments are supposed to be ignored by SQL processing systems they do not infere with other programs such as the MySQL Server, the MySQL Proxy or a firewall.

Three SQL hints are supported by the plugin: MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH and MYSQLND_MS_LAST_USED_SWITCH. MYSQLND_MS_MASTER_SWITCH makes the plugin run a statement on the master, MYSQLND_MS_SLAVE_SWITCH enforces the use of the slave and MYSQLND_MS_MASTER_SWITCH will run a statement on the same server that has been used for running the previous statement.

The plugin scans the beginning of a statement for the existance of a SQL hint. SQL hints are only recognized if they appear at the very beginning of the statement.

Exemple #1 Plugin config with one slave and one master

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=192.168.2.27:3306

Exemple #2 SQL hints to prevent connection switches

<?php
$mysqli 
= new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}

/* Connection 1, run on master because of SQL hint */
if (!($res $mysqli->query(sprintf("/*%s*/SELECT @myrole AS _role"MYSQLND_MS_LAST_USED_SWITCH)))) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
} else {
 
$row $res->fetch_assoc();
 
$res->close();
 
printf("@myrole = '%s'\n"$row['_role']);
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

@myrole = 'master'

In the example the session variables issue from the previous page is solved using MYSQLND_MS_LAST_USED_SWITCH to prevent switching from the master to a slave when running the SELECT statement.

SQL hints can also be used to run SELECT statements on the MySQL master server. This may be desired if the MySQL slave servers tend to be behind the master but you need current data from the database.

Exemple #3 Fighting replication lag

<?php
$mysqli 
= new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));

/* Force use of master, master has always fresh and current data */
if (!$mysqli->query(sprintf("/*%s*/SELECT critical_data FROM important_table"MYSQLND_MS_MASTER_SWITCH))) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}
?>

use case may include the creation of tables on a slave. If no SQL hint is given, the plugin will send CREATE and INSERT statements to the master. Use the SQL hint MYSQLND_MS_SLAVE_SWITCH if you want to run any such statement on a slave, for example, to build temporary reporting tables.

Exemple #4 Table creation on a slave

<?php
$mysqli 
= new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));

/* Force use of slave */
if (!$mysqli->query(sprintf("/*%s*/CREATE TABLE slave_reporting(id INT)"MYSQLND_MS_SLAVE_SWITCH))) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}
/* Continue using this particular slave connection */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO slave_reporting(id) VALUES (1), (2), (3)"MYSQLND_MS_LAST_USED_SWITCH))) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}
/* Don't use MYSQLND_MS_SLAVE_SWITCH which would allow switching to another slave! */
if ($res $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM slave_reporting"MYSQLND_MS_LAST_USED_SWITCH))) {
  
$row $res->fetch_assoc();
  
$res->close();
  
printf("There are %d rows in the table 'slave_reporting'"$row['_num']);
} else {
  
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}
$mysqli->close();
?>

The SQL hint MYSQLND_MS_LAST_USED forbids switching connection and forces the use of the previously used connection.



Transactions

The current version of the plugin is not transaction safe, because it is not transaction aware. SQL transactions are units of work to be run on a single server. The plugin does not know when the unit of work starts and when it ends. Therefore, the plugin may decide to switch connections in the middle of a transaction.

You must use SQL hints to work around this limitation.

Exemple #1 Plugin config with one slave and one master

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=192.168.2.27:3306

Exemple #2 Using SQL hints for transactions

<?php
$mysqli 
= new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));
  
/* Not a SELECT, will use master */
if (!$mysqli->query("START TRANSACTION")) {
 
/* Please use better error handling in your code */
 
die(sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
}

/* Prevent connection switch! */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO test(id) VALUES (1)"MYSQLND_MS_LAST_USED_SWITCH)))) { 
 
/* Please do proper ROLLBACK in your code, don't just die */
 
die(sprintf("[%d] %s\n"$mysqli->errno$mysqli->error)); 
}
if (
$res $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM test"MYSQLND_MS_LAST_USED_SWITCH)))) {
  
$row $res->fetch_assoc();
  
$res->close();
  if (
$row['_num'] > 1000) {
   if (!
$mysqli->query(sprintf("/*%s*/INSERT INTO events(task) VALUES ('cleanup')"MYSQLND_MS_LAST_USED_SWITCH)))) {
     die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
   }
  }  
} else {
 die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
}
if (!
$mysqli->query(sprintf("/*%s*/UPDATE log SET last_update = NOW()"MYSQLND_MS_LAST_USED_SWITCH)))) {
 die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
}
if (!
$mysqli->query(sprintf("/*%s*/COMMIT"MYSQLND_MS_LAST_USED_SWITCH)))) {
 die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
}

$mysqli->close();
?>

Starting with PHP 5.3.99 the mysqlnd library allows the plugin to monitor the status of the autocommit mode, if the mode is set by API calls instead of using SQL statements such as SET AUTOCOMMIT=0. This makes it possible for the plugin to become transaction aware.

If using PHP 5.3.99, API calls to set the autocommit mode and setting the experimental plugin configuration option trx_stickiness=master the plugin can automatically disable load balancing and connection switches for SQL transactions. In this configuration the plugin stops load balancing, if autocommit is disabled and directs all statements to the master. This is done to prevent connection switches in the middle of a transaction. Once autocommit gets enabled again, the plugin starts to load balance statements again.

Exemple #3 Experimental trx_stickiness setting

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=192.168.2.27:3306
trx_stickiness=master

Exemple #4 Outlook: transaction aware

<?php
if (version_compare(PHP_VERSION"5.3.99""<"))
  die(
"This feature requires PHP 5.3.99, you are using " PHP_VERSION);
  
$mysqli = new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));

/* Disable autocommit, plugin will run all statements on the master */
$mysqli->autocommit(FALSE);

if (!
$mysqli->query("INSERT INTO test(id) VALUES (1)")) { 
 
/* Please do proper ROLLBACK in your code, don't just die */
 
die(sprintf("[%d] %s\n"$mysqli->errno$mysqli->error)); 
}
if (
$res $mysqli->query("SELECT COUNT(*) AS _num FROM test")) {
  
$row $res->fetch_assoc();
  
$res->close();
  if (
$row['_num'] > 1000) {
   if (!
$mysqli->query("INSERT INTO events(task) VALUES ('cleanup')")) {
     die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
   }
  }  
} else {
 die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
}
if (!
$mysqli->query("UPDATE log SET last_update = NOW()")) {
 die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
}
if (!
$mysqli->commit()) {
 die(
sprintf("[%d] %s\n"$mysqli->errno$mysqli->error));
}

/* Plugin assumes that the transaction has ended and starts load balancing again */
$mysqli->autocommit(TRUE);
$mysqli->close();
?>

Note:

The plugin configuration option trx_stickiness=master is an experimental feature. It requires PHP 5.3.99.




Concepts

Sommaire


Architecture

The mysqlnd replication and load balancing plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, in the module init phase of the PHP engine, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods.

At PHP run time it inspects queries send from mysqlnd (PHP) to the MySQL server. If a query is recognized as read-only it will be sent to one of the configured slave servers. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/ or a slave had been choose for running the previous query and the query starts with the SQL hint /*ms=last_used*/. In all other cases the query will be sent to the MySQL replication master server.

The plugin takes care internally of opening and closing the database connections to the master server and the slave servers. From an application point of view there continues to be only one connection handle. However, internally, this one public connection handle represents a pool of internal connections managed by the plugin. The plugin proxies queries to the master server and the slave ones using multiple connections.

Database connections have a state consisting, for example, transaction status, transaction settings, character set settings, temporary tables. The plugin will try to maintain the same state among all internal connections, whenever this can be done in an automatic and transparent way. In cases where it is not easily possible to maintain state among all connections, such as when using BEGIN TRANSACTION, the plugin leaves it to the user to handle. Please, find further details below.



Connection pooling and switching

The replication and load balancing plugin changes the semantics of a PHP MySQL connection handle. The existing API of the PHP MySQL extensions (mysqli, mysql, PDO_MYSQL) are not changed in a way that functions are added or removed. But their behaviour changes when using the plugin. Existing applications do not need to be adapted to a new API. But they may need to be modified because of the behaviour changes.

The plugin breaks the one-by-one relationship between a mysqli, mysql, PDO_MYSQL connection handle and a MySQL wire connection. If using the plugin a mysqli, mysql, PDO_MYSQL connection handle represents a local pool of connections to the configured MySQL replication master and the MySQL replication slave servers. The plugin redirects queries to the master and slave servers. At some point in time one and the same PHP connection handle may point to the MySQL master server. Later on, it may point to one of the slave servers or still the master. Manipulating and replacing the wire connection referenced by a PHP MySQL connection handle is not a transparent operation.

Every MySQL connection has a state. The state of the connections in the connection pool of the plugin can differ. Whenever the plugin switches from one wire connection to another, the current state of the user connection may change. The applications must be aware of this.

The following listshows what the connection state consists of.

  • Transaction status
  • Temporary tables
  • Table locks
  • Session system variables and session user variables
  • Session system variables and session user variables
  • Prepared statements
  • HANDLER variables
  • Locks acquired with GET_LOCK()

The plugins philosophy is to align the state of connections in the pool only if the state is under full control of the plugin, or if it is necessary for security reasons. Just a few actions that change the state of the connection fall into this category. The plugin does broadcast the following state changing client calls to all currently open connections in the connection pool: change_user, select_db, set_charset, set_server_option, set_client_option, autocommit.

The plugin does not proxy or "remember" settings to apply them on connections opened in the future. This is important to remember, if using lazy connections. Lazy connections are connections which are not opened before the client sends the first connection. Use of lazy connections is the default plugin action.

Connection switches happen right before queries are run. The plugin does not switch the current connection until the moment in time when the next statement is executed.

Please, do not miss the MySQL reference manual chapter on replication features and issues. Some restrictions you hit may not be related to the PHP plugin but are properties of the MySQL replication system.



Transaction handling

Transaction handling is fundamentally changed. A SQL transaction is a unit of work run on one database server. The unit of work consists of one or more SQL statements.

By default the plugin is not aware of SQL transactions. The plugin may switch connections for load balancing at any point in time. Connection switches may happen in the middle of a transaction. This is against the nature of a SQL transaction. By default the plugin is not transaction safe.

At the time of writing, applications using SQL transactions together with the plugin must use SQL hints to disable connection switches in the middle of a SQL transaction. Please, find details in the examples section.

The latest version of the mysqlnd library, as found in PHP 5.3.99, allows the plugin to subclass the library C API call trx_autocommit() to detect the status of the autocommit mode. The PHP MySQL extensions either issue a query such as SET AUTOCOMMIT=0|1 or use the mysqlnd library call trx_autcommit() to control the autocommit setting. If an extension makes use of trx_autocommit(), the plugin can be made transaction aware. Transaction awareness cannot be achieved, if using SQL to set the autocommit mode.

The experimental pluging configuration option trx_stickiness=master can be used to make the plugin transaction aware if using PHP 5.3.99. In this mode the plugin stops load balancing if autocommit gets disabled and directs all statements to the master until autocommit gets enabled.



Failover

Connection failover handling is left to the user. The application is responsible for checking return values of the database functions it calls and reacting to possible errors. If, for example, the plugin recognizes a query as a read-only query to be sent to the slave servers and the slave server selected by the plugin is not available, the plugin will raise an error after not executing the statement.

It is up to the application to handle the error and, if need be, re-issue the query to trigger selection of another slave server for statement execution. The plugin will make no attempts to failover automatically because the plugin cannot ensure that an automatic failover will not change the state of the connection. For example, the application may have issued a query which depends on SQL user variables which are bound to a specific connection. Such a query might return wrong results if the plugin would switch the connection implicitly as part of automatic failover. To ensure correct results the application must take care of the failover and rebuild the required connection state. Therefore, by default, no automatic failover is done by the plugin.

An user who does not change the connection state after opening a connection may activate automatic master failover.

The failover policy is configured in the plugins configuration file by help of the failover configuration directive.



Load balancing

Four load balancing strategies are supported to distribute read-only statements over the configured MySQL slave servers: random, random_once (default), roundrobin, user.

The load balancing policy is configured in the plugins configuration file using the pick[] configuration directive.



Read-write splitting

The plugin runs read-only statements on the configured MySQL slaves and all other queries on the MySQL master. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/ or a slave had been chosen for running the previous query and the query starts with the SQL hint /*ms=last_used*/. In all other cases the query will be send to the MySQL replication master server.

SQL hints are a special kind of standard compliant SQL comments. The plugin does check every statement for certain SQL hints. The SQL hints are described together with the constants exported by the extension. Other systems involved in the statement processing, such as the MySQL server, SQL firewalls or SQL proxies are unaffected by the SQL hints because those systems are supposed to ignore SQL comments.

The built-in read-write splitter can be replaced by a user-defined one, see also mysqlnd_ms_set_user_pick_server().

A user-defined read-write splitter can ask the built-in logic to make a proposal where to sent a statement by invoking mysqlnd_ms_is_select().

Note:

The built-in read-write splitter is not aware of multi-statements. Multi-statements are seen as one statement. The splitter will check the beginning of the statement to decide where to run the statement. If, for example, a multi-statement begins with SELECT 1 FROM DUAL; INSERT INTO test(id) VALUES (1); ... the plugin will run it on a slave although the statement is not read-only.




Installation/Configuration

Sommaire


Pré-requis

PHP 5.3.6 or newer.

The mysqlnd_ms replication and load balancing plugin supports all PHP applications and all availablePHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_ms plugin for mysqlnd.



Installation

Note:

The mysqlnd replication and load balancing plugin is in alpha status. It is not feature complete.

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mysqlnd_ms

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Mysqlnd_ms Options de configuration
Nom Défaut Modifiable Historique
mysqlnd_ms.enable 0 its PHP_INI_* value
mysqlnd_ms.force_config_usage 0 its PHP_INI_* value
mysqlnd_ms.ini_file   its PHP_INI_* value
mysqlnd_ms.collect_statistics   its PHP_INI_* value

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd_ms.enable integer

Enables or disables the plugin. If set to disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

mysqlnd_ms.force_config_usage integer

If enabled the plugin checks if the host (server) parameter value of any MySQL connection attempt matches a section name from the plugin configuration file. If not, the connection attempt is blocked.

mysqlnd_ms.ini_file string

Plugin specific configuration file.

mysqlnd_ms.collect_statistics integer

Enables or disables the collection of statistics. The collection of statistics is disabled by default for performance reasons. Statistics are returned by the function mysqlnd_ms_get_stats().



Plugin configuration file

The plugin is using its own configuration file. The configuration file holds information on the MySQL replication master server, the MySQL replication slave servers, the server pick (load balancing) policy, the failover strategy and the use of lazy connections.

The PHP configuration directive mysqlnd_ms.ini_file is used to set the plugins configuration file.

The configuration file minics standard php.ini format. It consists of one or more sections. Every section defines its own unit of settings. There is no global section for setting defaults.

Applications reference sections by their name. Applications use section names as the host (server) parameter to the various connect methods of the mysqli, mysql and PDO_MYSQL extensions. Upon connect the mysqlnd plugin compares the hostname with all section names from the plugin configuration file. If hostname and section name match, the plugin will load the sections settings.

Exemple #1 Using section names example

[myapp]
master[] = localhost
slave[] = 192.168.2.27
slave[] = 192.168.2.28:3306
[localhost]
master[] = localhost:/tmp/mysql/mysql.sock
slave[] = 192.168.3.24:3305
slave[] = 192.168.3.65:3309
<?php
/* All of the following connections will be load balanced */
$mysqli = new mysqli("myapp""username""password""database");
$pdo = new PDO('mysql:host=myapp;dbname=database''username''password');
$mysql mysql_connect("myapp""username""password");

$mysqli = new mysqli("localhost""username""password""database");
?>

Section names are strings. It is valid to use a section name such as 192.168.2.1, 127.0.0.1 or localhost. If, for example, an application connects to localhost and a plugin configuration section [localhost] exists, the semantics of the connect operation are changed. The application will no longer only use the MySQL server running on the host localhost but the plugin will start to load balance MySQL queries following the rules from the [localhost] configuration section. This way you can load balance queries from an application without changing the applications source code.

The master[], slave[] and pick[] configuration directives use a list-like syntax. Configuration directives supporting list-like syntax may appear multiple times in a configuration section. The plugin maintains the order in which entries appear when interpreting them. For example, the below example shows two slave[] configuration directives in the configuration section [myapp]. If doing round-robin load balancing for read-only queries, the plugin will send the first read-only query to the MySQL server mysql_slave_1 because it is the first in the list. The second read-only query will be send to the MySQL server mysql_slave_2 because it is the second in the list. Configuration directives supporting list-like syntax result are ordered from top to bottom in accordance to their appearance within a configuration section.

Exemple #2 List-like syntax

[myapp]
master[] = mysql_master_server
slave[] = mysql_slave_1
slave[] = mysql_slave_2

Here is a short explanation of the configuration directives that can be used.

master[] string

URI of a MySQL replication master server. The URI follows the syntax hostname[:port|unix_domain_socket].

The plugin supports using only one master server.

Setting a master server is mandatory. The plugin will report a warning upon connect if the user has failed to provide a master server for a configuration section. The warning may read (mysqlnd_ms) Cannot find master section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). The corresponding error message depends on your language settings.

slave[] string

URI of one or more MySQL replication slave servers. The URI follows the syntax hostname[:port|unix_domain_socket].

The plugin supports using one or more slave servers.

Setting a slave server is mandatory. The plugin will report a warning upon connect if the user has failed to provide at least one slave server for a configuration section. The warning may read (mysqlnd_ms) Cannot find slaves section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). The corresponding error message depends on your language settings.

pick[] string

Load balancing (server picking) policy. Supported policies: random, random_once (default), roundrobin, user.

If no load balancing policy is set, the plugin will default to random_once. The random_once policy picks a random slave server when running the first read-only statement. The slave server will be used for all read-only statements until the PHP script execution ends.

The random policy will pick a random server whenever a read-only statement is to be executed.

If using roundrobin the plugin iterates over the list of configured slave servers to pick a server for statement execution. If the plugin reaches the end of the list, it wraps around to the beginning of the list and picks the first configured slave server.

Setting more than one load balancing policy for a configuration section makes only sense in conjunction with user and mysqlnd_ms_set_user_pick_server(). If the user defined callback fails to pick a server, the plugin falls back to the second configured load balancing policy.

failover string

Failover policy. Supported policies: disabled (default), master.

If no failover policy is set, the plugin will not do any automatic failover (failover=disabled). Whenever the plugin fails to connect a server it will emit a warning and set the connections error code and message. Thereafter it is up to the application to handle the error and, for example, resent the last statement to trigger the selection of another server.

If using failover=master the plugin will implicitly failover to a slave, if available. Please check the concepts documentation to learn about potential pitfalls and risks of using failover=master.

lazy_connections bool

Controls the use of lazy connections. Lazy connections are connections which are not opened before the client sends the first connection.

It is strongly recommended to use lazy connections. Lazy connections help to keep the the number of open connections low. If you disable lazy connections and, for example, configure one MySQL replication master server and two MySQL replication slaves, the plugin will open three connections upon the first call to a connect function although the application might use the master connection only.

Lazy connections bare a risk if you make heavy use of actions which change the state of a connection. The plugin does not dispatch all state changing actions to all connections from the connection pool. The few dispatched actions are applied to already opened connections only. Lazy connections opened in the future are not affected. If, for example, the connection character set is changed using a PHP MySQL API call, the plugin will change the character set of all currently opened connection. It will not remeber the character set change to apply it on lazy connections opened in the future. As a result the internal connection pool would hold connections using different character sets. This is not desired. Remember that character sets are taken into account for escaping.

master_on_write bool

If set, the plugin will use the master server only after the first statement has been executed on the master. Applications can still send statements to the slaves using SQL hints to overrule the automatic decision.

The setting may help with replication lag. If an application runs an INSERT the plugin will, by default, use the master to execute all following statements, including SELECT statements. This helps to avoid problems with reads from slaves which have not replicated the INSERT yet.

trx_stickiness string

Transaction stickiness policy. Supported policies: disabled (default), master.

Experimental feature.

The setting requires 5.3.99 or newer. If used with PHP older than 5.3.99, the plugin will emit a warning like (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

If no transaction stickiness policy is set or, if setting trx_stickiness=disabled, the plugin is not transaction aware. Thus, the plugin may load balance connections and switch connections in the middle of a transaction. The plugin is not transaction safe. SQL hints must be used avoid connection switches during a transaction.

As of PHP 5.3.99 the mysqlnd library allows the plugin to monitor the autocommit mode set by calls to the libraries trx_autocommit() function. If setting trx_stickiness=master and autocommit gets disabled by a PHP MySQL extension invoking the mysqlnd library internal function call trx_autocommit(), the plugin is made aware of the begin of a transaction. Then, the plugin stops load balancing and directs all statements to the master server until autocommit is enabled. Thus, no SQL hints are required.

An example of a PHP MySQL API function calling the mysqlnd library internal function call trx_autocommit() is mysqli_autocommit().

Although setting trx_stickiness=master, the plugin cannot be made aware of autocommit mode changes caused by SQL statements such as SET AUTOCOMMIT=0.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SQL hint related

The mysqlnd replication and load balancing plugin (mysqlnd_ms) does read/write splitting to direct write queries to a MySQL master server and read-only queries to MySQL slave servers in a MySQL replication setup. The plugin has a built-in read/write split logic. The logic is very basic. All queries which start with SELECT are considered read-only queries which shall be send to a MySQL slave server listed in the plugin configuration file. All other queries shall be directed to the MySQL master server specified in the plugin configuration file.

User supplied SQL hints can be used to overrule automatic read/write splitting to gain full control on the process. SQL hints are standards compliant SQL comments. The plugin will scan the beginning of a query string for a SQL comment with certain contents which control query redirection. Other systems involved in the query processing are unaffected by the plugins SQL hints because other systems will ignore the SQL comments.

The plugin supports three SQL hints to direct queries to the MySQL slave servers, the MySQL master server and the last used MySQL server. SQL hints must be placed at the beginning to be recognized by the plugin.

It is recommended to use the string constants MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH and MYSQLND_MS_LAST_USED_SWITCH instead of their literal values for better portability.

<?php
/* Use constants for maximum portability */
$master_query "/*" MYSQLND_MS_MASTER_SWITCH "*/SELECT id FROM test";

/* Valid but less portable: using literal instad of constant */
$slave_query "/*ms=slave*/SHOW TABLES";

printf("master_query = '%s'\n"$master_query);
printf("slave_query = '%s'\n"$slave_query);
?>

Les exemples ci-dessus vont afficher :

master_query = /*ms=master*/SELECT id FROM test
slave_query = /*ms=slave*/SHOW TABLES

MYSQLND_MS_MASTER_SWITCH (string)
SQL hint used to send a query to the MySQL replication master server.
MYSQLND_MS_SLAVE_SWITCH (string)
SQL hint used to send a query to one of the MySQL replication slave servers.
MYSQLND_MS_LAST_USED_SWITCH (string)
SQL hint used to send a query to the last used MySQL server. The last used MySQL server can either be a master or a slave server in a MySQL replication setup.

mysqlnd_ms_is_select() related

MYSQLND_MS_QUERY_USE_MASTER (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_MASTER for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication master server.
MYSQLND_MS_QUERY_USE_SLAVE (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_SLAVE for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication slave server.
MYSQLND_MS_QUERY_USE_LAST_USED (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_LAST_USED for a given query, the built-in read/write split mechanism recommends sending the query to the last used server.

Other

The plugins version number can be obtained using MYSQLND_MS_VERSION or MYSQLND_MS_VERSION_ID. MYSQLND_MS_VERSION is the string representation of the numerical version number MYSQLND_MS_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) Example
Major*10000 1*10000 = 10000
Minor*100 0*100 = 0
Patch 0 = 0
MYSQLND_MS_VERSION_ID 10000

MYSQLND_MS_VERSION (string)
Plugin version string, for example, "1.0.0-prototype".
MYSQLND_MS_VERSION_ID (integer)
Plugin version number, for example, 10000.



Mysqlnd_ms Fonctions


mysqlnd_ms_get_stats

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_get_statsReturns query distribution and connection statistics

Description

array mysqlnd_ms_get-stats ( void )

Returns an array of statistics collected by the replication and load balancing plugin.

The PHP configuration setting mysqlnd_ms.collect_statistics controls the collection of statistics. The collection of statistics is disabled by default for performance reasons.

The scope of the statistics is the PHP process. Depending on your deployment model a PHP process may handle one or multiple requests.

Statistics are aggregated for connections. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql API calls have contributed to the aggregated data values.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns NULL if the the PHP configuration directive mysqlnd_ms.enable has disabled the plugin. Otherwise, returns array of statistics.

Array of statistics

Statistic Description Version
use_slave Number of statements considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of slave nor statements directed to a slave by an user-defined callback are included. The total number of statements sent to the slaves is use_slave + use_slave_sql_hint + use_slave_callback. Since 1.0.0.
use_master Number of statements not considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of master nor statements directed to a master by an user-defined callback are included. The total number of statements sent to the master is use_master + use_master_sql_hint + use_master_callback. Since 1.0.0.
use_slave_sql_hint Number of statements sent to a slave because statement begins with the SQL hint to force use of slave. Since 1.0.0.
use_master_sql_hint Number of statements sent to a master because statement begins with the SQL hint to force use of master. Since 1.0.0.
use_last_used_sql_hint Number of statements sent to server which has run the previous statement, because statement begins with the SQL hint to force use of previously used server. Since 1.0.0.
use_slave_callback Number of statements sent to a slave because an user-defined callback has chosen a slave server for statement execution. Since 1.0.0.
use_master_callback Number of statements sent to a master because an user-defined callback has chosen a master server for statement execution. Since 1.0.0.
non_lazy_connections_slave_success Number of successfully opened slave connections from configurations not using lazy connections. The total number of successfully opened slave connections is non_lazy_connections_slave_success + lazy_connections_slave_success Since 1.0.0.
non_lazy_connections_slave_failed Number of failed slave connection attempts from configurations not using lazy connections. The total number of failed slave connection attempts is non_lazy_connections_slave_failed + lazy_connections_slave_failed Since 1.0.0.
non_lazy_connections_master_success Number of successfully opened master connections from configurations not using lazy connections. The total number of successfully opened master connections is non_lazy_connections_master_success + lazy_connections_master_success Since 1.0.0.
non_lazy_connections_master_failed Number of failed master connection attempts from configurations not using lazy connections. The total number of failed master connection attempts is non_lazy_connections_master_failed + lazy_connections_master_failed Since 1.0.0.
lazy_connections_slave_success Number of successfully opened slave connections from configurations using lazy connections. Since 1.0.0.
lazy_connections_slave_failed Number of failed slave connection attempts from configurations using lazy connections. Since 1.0.0.
lazy_connections_master_success Number of successfully opened master connections from configurations using lazy connections. Since 1.0.0.
lazy_connections_master_failed Number of failed master connection attempts from configurations using lazy connections. Since 1.0.0.
trx_autocommit_on Number of autocommit mode activations via API calls. This figure may be used to monitor activity related to the plugin configuration setting trx_stickiness. If, for example, you want to know if a certain API call invokes the mysqlnd library function trx_autocommit(), which is a requirement for trx_stickiness, you may call the user API function in question and check if the statistic has changed. The statistic is modified only by the plugins internal subclassed trx_autocommit() method. Since 1.0.0.
trx_autocommit_off Number of autocommit mode deactivations via API calls. Since 1.0.0.
trx_master_forced Number of statemens redirected to the master while trx_stickiness=master and autocommit mode is disabled. Since 1.0.0.

Exemples

Exemple #1 mysqlnd_ms_get_stats() example

<?php
printf
("mysqlnd_ms.collect_statistics = %d\n"ini_get("mysqlnd_ms.collect_statistics"));
var_dump(mysqlnd_ms_get_stats());
?>

L'exemple ci-dessus va afficher :

mysqlnd_ms.collect_statistics = 0
array(13) {
  ["use_slave"]=>
  string(1) "0"
  ["use_master"]=>
  string(1) "0"
  ["use_slave_forced"]=>
  string(1) "0"
  ["use_master_forced"]=>
  string(1) "0"
  ["use_last_used_forced"]=>
  string(1) "0"
  ["non_lazy_connections_slave_success"]=>
  string(1) "0"
  ["non_lazy_connections_slave_failure"]=>
  string(1) "0"
  ["non_lazy_connections_master_success"]=>
  string(1) "0"
  ["non_lazy_connections_master_failure"]=>
  string(1) "0"
  ["lazy_connections_slave_success"]=>
  string(1) "0"
  ["lazy_connections_slave_failure"]=>
  string(1) "0"
  ["lazy_connections_master_success"]=>
  string(1) "0"
  ["lazy_connections_master_failure"]=>
  string(1) "0"
  ["trx_autocommit_on"]=>
  string(1) "0"
  ["trx_autocommit_off"]=>
  string(1) "0"
  ["trx_master_forced"]=>
  string(1) "0"
}



mysqlnd_ms_query_is_select

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_query_is_selectFind whether to send the query to the master, the slave or the last used MySQL server

Description

int mysqlnd_ms_query_is_select ( string $query )

Finds whether to send the query to the master, the slave or the last used MySQL server.

The plugins built-in read/write split mechanism will be used to analyze the query string to make a recommendation where to send the query. The built-in read/write split mechanism is very basic and simple. The plugin will recommend sending all queries to the MySQL replication master server but those which begin with SELECT, or begin with a SQL hint which enforces sending the query to a slave server. Due to the basic but fast algorithm the plugin may propose to run some read-only statements such as SHOW TABLES on the replication master.

Liste de paramètres

query

Query string to test.

Valeurs de retour

A return value of MYSQLND_MS_QUERY_USE_MASTER indicates that the query should be send to the MySQL replication master server. The function returns a value of MYSQLND_MS_QUERY_USE_SLAVE if the query can be run on a slave because it is considered read-only. A value of MYSQLND_MS_QUERY_USE_LAST_USED is returned to recommend running the query on the last used server. This can either be a MySQL replication master server or a MySQL replication slave server.

Exemples

Exemple #1 mysqlnd_ms_query_is_select() example

<?php
function is_select($query)
{
 switch (
mysqlnd_ms_query_is_select($query))
 {
  case 
MYSQLND_MS_QUERY_USE_MASTER:
   
printf("'%s' should be run on the master.\n"$query);
   break;
  case 
MYSQLND_MS_QUERY_USE_SLAVE:
   
printf("'%s' should be run on a slave.\n"$query);
   break;
  case 
MYSQLND_MS_QUERY_USE_LAST_USED:
   
printf("'%s' should be run on the server that has run the previous query\n"$query);
   break;
  default:
   
printf("No suggestion where to run the '%s', fallback to master recommended\n"$query);
   break;
 }
}

is_select("INSERT INTO test(id) VALUES (1)");
is_select("SELECT 1 FROM DUAL");
is_select("/*" MYSQLND_MS_LAST_USED_SWITCH "*/SELECT 2 FROM DUAL");
?>

L'exemple ci-dessus va afficher :

INSERT INTO test(id) VALUES (1) should be run on the master.
SELECT 1 FROM DUAL should be run on a slave.
/*ms=last_used*/SELECT 2 FROM DUAL should be run on the server that has run the previous query



mysqlnd_ms_set_user_pick_server

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_set_user_pick_serverSets a callback for user-defined read/write splitting

Description

bool mysqlnd_ms_set_user_pick_server ( string $function )

Sets a callback for user-defined read/write splitting. The plugin will call the callback only if pick[]=user is the default rule for server picking in the relevant section of the plugins configuration file.

The plugins built-in read/write query split mechanism decisions can be overwritten in two ways. The easiest way is to prepend the query string with the SQL hints MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH or MYSQLND_MS_LAST_USED_SWITCH. Using SQL hints one can control, for example, whether a query shall be send to the MySQL replication master server or one of the slave servers. By help of SQL hints it is not possible to pick a certain slave server for query execution.

Full control on server selection can be gained using a callback function. Use of a callback is recommended to expert users only because the callback has to cover all cases otherwise handled by the plugin.

The plugin will invoke the callback function for selecting a server from the lists of configured master and slave servers. The callback function inspects the query to run and picks a server for query execution by returning the hosts URI, as found in the master and slave list.

If the lazy connections are enabled and the callback choses a slave server for which no connection has been established so far and establishing the connection to the slave fails, the plugin will return an error upon the next action on the failed connection, for example, when running a query. It is the responsibility of the application developer to handle the error. For example, the application can re-run the query to trigger a new server selection and callback invocation. If so, the callback must make sure to select a different slave, or check slave availability, before returning to the plugin to prevent an endless loop.

Liste de paramètres

function

The function to be called. Class methods may also be invoked statically using this function by passing array($classname, $methodname) to this parameter. Additionally class methods of an object instance may be called by passing array($objectinstance, $methodname) to this parameter.

Valeurs de retour

Host to run the query on. The host URI is to be taken from the master and slave connection lists passed to the callback function. If callback returns a value neither found in the master nor in the slave connection lists the plugin will fallback to the second pick method configured via the pick[] setting in the plugin configuration file. If not second pick method is given, the plugin falls back to the build-in default pick method for server selection.

Exemples

Exemple #1 mysqlnd_ms_set_user_pick_server() example

[myapp]
master[] = localhost
slave[] = 192.168.2.27:3306
slave[] = 192.168.78.136:3306
pick[] = user
<?php

function pick_server($connected$query$master$slaves$last_used)
{
 static 
$slave_idx 0;
 static 
$num_slaves NULL;
 if (
is_null($num_slaves))
  
$num_slaves count($slaves);

 
/* default: fallback to the plugins build-in logic */
 
$ret NULL;

 
printf("User has connected to '%s'...\n"$connected);
 
printf("... deciding where to run '%s'\n"$query);

 
$where mysqlnd_ms_query_is_select($query);
 switch (
$where)
 {
  case 
MYSQLND_MS_QUERY_USE_MASTER:
   
printf("... using master\n");
   
$ret $master[0];
   break;
  case 
MYSQLND_MS_QUERY_USE_SLAVE:
   
/* SELECT or SQL hint for using slave */
   
if (stristr($query"FROM table_on_slave_a_only"))
   {
    
/* a table which is only on the first configured slave  */
    
printf("... access to table available only on slave A detected\n");
    
$ret $slaves[0];
   }
   else
   {
    
/* round robin */
    
printf("... some read-only query for a slave\n");
    
$ret $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case 
MYSQLND_MS_QUERY_LAST_USED:
   
printf("... using last used server\n");
   
$ret $last_used;
   break;
 }

 
printf("... ret = '%s'\n"$ret);
 return 
$ret;
}

mysqlnd_ms_set_user_pick_server("pick_server");

$mysqli = new mysqli("myapp""root""root""test");

if (!(
$res $mysqli->query("SELECT 1 FROM DUAL")))
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
else
 
$res->close();

if (!(
$res $mysqli->query("SELECT 2 FROM DUAL")))
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
else
 
$res->close();


if (!(
$res $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
else
 
$res->close();

$mysqli->close();
?>

L'exemple ci-dessus va afficher :

User has connected to 'myapp'...
... deciding where to run 'SELECT 1 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.2.27:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT 2 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.78.136:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT * FROM table_on_slave_a_only'
... access to table available only on slave A detected
... ret = 'tcp://192.168.2.27:3306'

Voir aussi


Sommaire




Plugin de cache des résultats de requêtes Mysqlnd


Introduction

Le plugin de cache des résultats de requêtes Mysqlnd ajoute la possibilité de mettre en cache les requêtes côté client pour toutes les extensions PHP MySQL en utilisant mysqlnd.

Depuis la version PHP 5.3.3, le driver natif MySQL pour PHP ( mysqlnd) dispose d'un plugin interne de l'API C. Les plugins C, comme le plugin de mise en cache des requêtes, peuvent étendre les fonctionnalités de mysqlnd.

Le driver natif MySQL pour PHP est une bibliothèque C qui est livré avec PHP depuis la version 5.3.0. C'est un remplaçant de la bibliothèque cliente MySQL (i.e. libmysql/libmysqlclient). L'utilisation de mysqlnd a plusieurs avantages : aucun téléchargement supplémentaire car il est fourni avec PHP, il a la même licence que PHP, il utilise moins de mémoire dans certains cas, et fournit de nouvelles fonctionnalités comme les requêtes asynchrones.

Lesplugins Mysqlnd comme le plugin de mise en cache des requêtes opère de façon transparente d'un point de vue utilisateur. Le plugin de cache supporte toutes les applications PHP ainsi que toutes les extension PHP MySQL (mysqli, mysql, PDO_MYSQL). Il ne modifie pas les APIs existantes.

Aucun modification significative n'est nécessaire pour mettre en cache une requête. Le cache a 2 modes de fonctionnement. Il peut soit mettre en cache toutes les requêtes (non recommandé), soit uniquement celles marquées avec une certaine astuce SQL (recommandé).

Principales caractéristiques

  • Transparent et facile d'utilisation.

    • supporte toutes les extensions PHP MySQL

    • aucune modification d'API

    • de très simples modifications des applications sont nécessaires

  • Stratégie d'invalidation flexible

    • Time-to-Live (TTL)

    • défini par l'utilisation

  • Stockage avec différents scopes et durée de vie

    • Défaut (Hash)

    • APC

    • MEMCACHE

    • sqlite

    • défini par l'utilisateur

Limitations

Le prototype du plugin de mise en cache des requêtes ne place pas en cache les requêtes non bufferisées, ou les résultats depuis des requêtes préparées. Cette limitation est susceptible d'être très prochainement levée.

Les appels aux APIs populaies suivantes utilisent des requêtes bufferisées, qui peuvent être mises en cache :

Architecture

La mise en cache des requêtes est implémentée comme extension PHP. Elle est écrite en C et opère en dessous de PHP. Lors du démarrage de l'interpréteur PHP, elle est enregistrée comme un plugin mysqlnd pour remplacer les méthodes sélectionnées mysqlnd C.

Lors de l'exécution de PHP, elle filtre les requêtes envoyées depuis mysqlnd (PHP) vers le serveur MySQL. Si une chaîne de requête commence avec une astuce SQL (/*qc=on*/) pour activer la mise en cache, et que la requête n'est pas encore dans le cache, le plugin de mise en cache de requêtes enregistrera les données brutes émises depuis MySQL vers PHP pour répondre à la requête. La mise en cache de requêtes enregistre les données brutes dans son cache et les fournira de nouveau, si elles sont toujours valides, lors de l'utilisation d'une astuce identique.

Notez que la mise en cache des requêtes ne stocke pas les jeux de résultats décodés sous forme de zvals (structure C struct représentant une variable PHP). Elle stocke les données brutes émises par le protocole client/serveur MySQL. Dans le cas d'une astuce de cache, mysqlnd doit toujours décoder les données brutes en variables PHP avant de passer le résultat à l'espace utilisateur. Cette approche a un avantage majeur : la simplicité. En outre, cette approche élimine le besoin de sérialiser les données depuis le stockage du cache.



Installation/Configuration

Sommaire


Pré-requis

PHP 5.3.3 ou suivants.

Pour l'utilisation du gestionnaire de stockage APC : APC 3.1.3p1-beta ou suivants.

Pour l'utilisation du gestionnaire de stockage MEMCACHE : libmemcache 0.38 ou suivants.

Pour l'utilisation du gestionnaire de stockage sqlite : sqlite3 fourni avec PHP.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mysqlnd_qc

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

mysqlnd_qc Options de configuration
Nom Défaut Modifiable Historique
mysqlnd_qc.enable_qc 1 PHP_INI_SYSTEM
mysqlnd_qc.ttl 30 PHP_INI_ALL
mysqlnd_qc.cache_by_default 0 PHP_INI_ALL
mysqlnd_qc.cache_no_table 0 PHP_INI_ALL
mysqlnd_qc.use_request_time 0 PHP_INI_ALL
mysqlnd_qc.time_statistics 1 PHP_INI_ALL
mysqlnd_qc.collect_statistics 0 PHP_INI_ALL
mysqlnd_qc.collect_query_trace 0 PHP_INI_SYSTEM
mysqlnd_qc.query_trace_bt_depth 3 PHP_INI_SYSTEM
mysqlnd_qc.slam_defense 0 PHP_INI_SYSTEM
mysqlnd_qc.slam_defense_ttl 30 PHP_INI_SYSTEM
mysqlnd_qc.collect_normalized_query_trace 0 PHP_INI_SYSTEM
mysqlnd_qc.std_data_copy 0 PHP_INI_SYSTEM
mysqlnd_qc.apc_prefix qc_ PHP_INI_ALL
mysqlnd_qc.memc_server 127.0.0.1 PHP_INI_ALL
mysqlnd_qc.memc_port 11211 PHP_INI_ALL
mysqlnd_qc.sqlite_data_file :memory: PHP_INI_ALL

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd_qc.enable_qc integer

Active ou désactive le plugin. Si désactivé, l'extension ne se branchera pas dans mysqlnd pour proxize les appels C internes de l'API mysqlnd.

mysqlnd_qc.ttl integer

Time-to-Live (TTL) par défaut des entrées du cache, en secondes.

mysqlnd_qc.cache_by_default integer

Met en cache toutes les requêtes qu'elles commencent par le joker SQL activant le cache ou non. Les gestionnaires de stockage ne peuvent écraser ce paramètre qui est évalué par le core du plugin.

mysqlnd_qc.cache_no_table integer

Met en cache les requêtes sans nom de table dans n'importe quelle colonne de méta donnée de leur résultat, par exemple SELECT SLEEP(1)

mysqlnd_qc.use_request_time integer

Utilise le temps de la requête PHP pour éviter les appels systèmes gettimeofday()? Si vous utilisez le gestionnaire de stockage APC , ce devrait être positionné à la valeur de apc.use_request_time , sinon des warnings seront générés.

mysqlnd_qc.time_statistics integer

Collecte des statistiques d'exécution et de stockage en utilisant l'appel système gettimeofday(). Les données ne seront collectées que si vous utilisez aussi mysqlnd_qc.collect_statistics = 1,

mysqlnd_qc.collect_statistics integer

Collecte des statistiques pour mysqlnd_qc_get_core_stats()(). N'influence pas les statistiques des gestionnaires de stockage. Celles-ci peuvent faire partie intégrale du format de stockage du gestionnaire. Ainsi, la collecte de certaines statistiques concernant les gestionnaires de stockage ne peut être désactivée.

mysqlnd_qc.collect_query_trace integer

Collecte les backtraces des requêtes.

mysqlnd_qc.query_trace_bt_depth integer

Profondeur/niveau maximal des backtraces des requêtes.

mysqlnd_qc.slam_defense integer

Active la slam defense du gestionnaire si disponible. Supporté par les gestionnaires Default et APC.

mysqlnd_qc.slam_defense_ttl integer

TTL pour les entrées de caches périmées qui sont servies alors qu'un autre client met à jour l'entrée. Supporté par le gestionnaire APC.

mysqlnd_qc.collect_normalized_query_trace integer

Collecte des traces de requêtes agrégées normalisées. Il faut compiler l'extension avec NORM_QUERY_TRACE_LOG pour utiliser ce paramètre.

mysqlnd_qc.std_data_copy integer

Gestionnaire de stockage par défaut. EXPERIMENTAL – utilisez le paramètre par défaut.

mysqlnd_qc.apc_prefix string

Le gestionnaire de stockage APC enregistre les données dans le cache utilisateur APC. Ce paramètre permet de préciser un préfixe à utiliser lors de l'enregistrement.

mysqlnd_qc.memc_server string

Gestionnaire de stockage MEMCACHE: Hôte memcache.

mysqlnd_qc.memc_port integer

Gestionnaire de stockage MEMCACHE: Port memcache.

mysqlnd_qc.sqlite_data_file string

Gestionnaire de sockage sqlite: Fichier de données. Tout paramètre sauf :memory: en pratique.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Astuces SQL

La mise en cache de requêtes est contrôlée par les astuces SQL. Les astuces SQL sont utilisées pour activer et désactiver la mise en cache des requêtes. Elles peuvent être utilisées pour définir le TTL (la durée de vie dans le cache) d'une requête.

Les astuces SQL reconnues par la mise en cache de requêtes peuvent être manuellement modifiées au moment de la compilation. Ceci permet d'utiliser mysqlnd_qc dans les environnements pour lesquels les astuces SQL par défaut sont déjà utilisées et interprétées par d'autres systèmes. Toutefois, il est recommandé d'utiliser les constantes relatives aux astuces SQL au lieu d'ajouter manuellement les astuces SQL dans la chaîne de la requête.

<?php
/* Utilisation des constantes pour une portabilité maximale */
$query "/*" MYSQLND_QC_ENABLE_SWITCH "*/SELECT id FROM test";

/* Valide mais moins portable : TTL par défaut */
$query "/*qc=on*/SELECT id FROM test";

/* Valide mais moins portable : TTL par requête */
$query "/*qc=on*//*qc_ttl=5*/SELECT id FROM test";

printf("MYSQLND_QC_ENABLE_SWITCH: %s\n"MYSQLND_QC_ENABLE_SWITCH);
printf("MYSQLND_QC_DISABLE_SWITCH: %s\n"MYSQLND_QC_DISABLE_SWITCH);
printf("MYSQLND_QC_TTL_SWITCH: %s\n"MYSQLND_QC_TTL_SWITCH);
?>

Les exemples ci-dessus vont afficher :

MYSQLND_QC_ENABLE_SWITCH: qc=on
MYSQLND_QC_DISABLE_SWITCH: qc=off
MYSQLND_QC_TTL_SWITCH: qc_ttl=

MYSQLND_QC_ENABLE_SWITCH (string)
Astuce SQL utilisée pour activer la mise en cache d'une requête.
MYSQLND_QC_DISABLE_SWITCH (string)
Astuce SQL utilisée pour désactiver la mise en cache d'une requête si mysqlnd_qc.cache_by_default = 1.
MYSQLND_QC_TTL_SWITCH (string)
Astuce SQL utilisée pour définir le TTL (la durée de vie dans le cache) d'un jeu de résultats.



Exemples

Sommaire


Utilisation

Le plugin de mise en case de requêtes supporte la mise en cache des requêtes issues par les appels utilisateurs de l'API suivants :

Une requête qui doit être mise en cache doit commencer par l'astuce SQL /*qc=on*/. Il est recommandé d'utiliser la constante PHP MYSQLND_QC_ENABLE_SWITCH au lieu d'utiliser la valeur littérale.

  • non mise en cache : SELECT id FROM test

  • mise en cache : /*qc=on*/SELECT id FROM test

Exemple en utilisant l'API la plus avancée de PHP, qui est mysqli :

<?php
/* Activation de la récupération des statistiques de mise en cache des requêtes */
ini_set("mysqlnd_qc.collect_statistics"1);

/* Connexion, création et population de la table test */
$mysqli = new mysqli("host""user""password""schema""port""socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Sera mis en cache car présence de l'astuce SQL : cache put et cache_miss */
$res $mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/" "SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Ne sera PAS mis en cache : aucune astuce SQL */
$res $mysqli->query("SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* Affichage des statistiques de mise en cache */
$stats mysqlnd_qc_get_core_stats();
printf("Cache hit\t: %d\n",  $stats['cache_hit']);
printf("Cache miss\t: %d\n"$stats['cache_miss']);
printf("Cache put\t: %d\n",  $stats['cache_put']);

?>

Les exemples ci-dessus vont afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
Cache hit       : 0
Cache miss      : 1
Cache put       : 1

La stratégie d'invalidation par défaut du cache est Time-to-live ( TTL, la durée de vie dans le cache). Les entrées du cache sont valides pour une certaine durée. La durée par défaut est définie par la directive de configuration PHP mysqlnd_qc.tll.



Configuration du TTL

La stratégie d'invalidation par défaut du plugin de mise en cache des requêtes est Time-to-Live (TTL). Le gestionnaire de stockage interne utilise le TTL par défaut défini par la valeur de la configuration PHP mysqlnd_qc.ttl tant que la requête ne contient pas une astuce pour définir un différent TTL. Le TTL est spécifié en secondes.

N'importe quel TTL peut servir des données périmées. Les entrées du cache ne sont pas automatiquement invalidées, si les données sous-jacentes ont été modifiées.

Un gestionnaire de stockage défini par l'utilisateur peut implémenter n'importe quelle stratégie d'invalidation pour contourner cette limitation.

<?php
/* Connexion, création et population de la table test */
$mysqli = new mysqli("host""user""password""schema""port""socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("Default TTL\t: %d seconds\n"ini_get("mysqlnd_qc.ttl"));

/* Mise en cache, vu la présence de l'astuce SQL */
$res $mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/" "SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");

/* Cache hit - aucune invalidation automatique ! */
$res $mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/" "SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

sleep(ini_get("mysqlnd_qc.ttl"));

/* Cache miss - l'entrée du cache a expiré */
$res $mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/" "SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

?>

Les exemples ci-dessus vont afficher :

Default TTL:    : 30 seconds
array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL

Le TTL par défaut peut être écrasé en utilisant l'astuce SQL /*qc_tt=seconds*/. L'astuce SQL doit apparaître immédiatement après l'astuce activant la mise en cache. Il est recommandé d'utiliser la constante PHP MYSQLND_QC_TTL_SWITCH au lieu de la valeur littérale.

<?php
$start 
microtime(true);

/* Connexion, création et population de la table test */
$mysqli = new mysqli("host""user""password""schema""port""socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("Default TTL\t: %d seconds\n"ini_get("mysqlnd_qc.ttl"));

/* Sera mis en cache pendant 2 secondes */
$sql sprintf("/*%s*//*%s%d*/SELECT id FROM test WHERE id = 1",
 
MYSQLND_QC_ENABLE_SWITCH,
 
MYSQLND_QC_TTL_SWITCH,
 
2);
$res $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");
sleep(1);

/* Cache hit - pas d'invalidation automatique et toujours valide ! */
$res $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

sleep(2);

/* Cache miss - l'entrée du cache a expiré */
$res $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

printf("Script runtime\t: %d seconds\n"microtime(true) - $start);

?>

Les exemples ci-dessus vont afficher :

Default TTL     : 30 seconds
array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL
Script runtime  : 3 seconds



Mise en cache par défaut

Le plugin de mise en cache de requêtes mettra en cache toutes les requêtes, sans se soucier de la présence l'astuce SQL en début de requêtes, si la directive de configuration de PHP mysqlnd_qc.cache_by_default est défini à 1. La directive mysqlnd_qc.cache_by_default est évaluée par le cœur du plugin de mise en cache de requêtes. Ni le gestionnaire de stockage interne, ni celui défini par l'utilisateur ne peuvent écraser la configuration de cette directive.

L'astuce SQL /*qc=off*/ peut être utilisé pour désactiver la mise en cache d'une requête si mysqlnd_qc.cache_by_default = 1. Il est recommandé d'utiliser la constante PHP MYSQLND_QC_DISABLE_SWITCH au lieu de la valeur littérale.

<?php
/* Activation de la mise en cache par défaut de toutes les requêtes */
ini_set("mysqlnd_qc.cache_by_default"1);

/* Connexion, création et population de la table test */
$mysqli = new mysqli("host""user""password""schema""port""socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");


/* Sera mise en cache malgré l'absence d'astuce SQL, car la directive mysqlnd_qc.cache_by_default vaut 1 */
$res $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");

/* Cache hit - aucune invalidation automatique, toujours valide ! */
$res $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Cache miss - la requête ne doit pas être mise en cache, ou servie depuis le cache à cause de l'astuce SQL */
$res $mysqli->query("/*" MYSQLND_QC_DISABLE_SWITCH "*/SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

?>

Les exemples ci-dessus vont afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL



Gestionnaire de stockage de procédure défini par l'utilisateur

Le plugin de mise en cache de requêtes supporte l'utilisation de gestionnaires de stockages définis par l'utilisateur. Ce type de gestionnaire peut utiliser des algorithmes d'invalidation complexes arbitraires, mais aussi supporter des médias de stockage arbitraires.

Tous les gestionnaires de stockage définis par l'utilisateur doivent fournir une certaine interface. Les fonctions du gestionnaire de stockage défini par l'utilisateur seront appelées par le cœur du plugin de mise en cache. L'interface nécessaire consiste en 7 fonctions. Ce gestionnaire doit implémenter à la fois des fonctions procédurales mais aussi orientées objets identiques.

Reportez-vous à l'exemple ci-dessous pour plus de détails.

<?php
/* Activation de la mise en cache par défaut de toutes les requêtes */
ini_set("mysqlnd_qc.cache_by_default"1);

/* Fonctions procédurales du gestionnaire de stockage défini par l'utilisateur */

$__cache = array();

function 
get_hash($host_info$port$user$db$query) {
  global 
$__cache;
  
printf("\t%s(%d)\n"__FUNCTION__func_num_args());

  return 
md5(sprintf("%s%s%s%s%s"$host_info$port$user$db$query));
}

function 
find_query_in_cache($key) {
  global 
$__cache;
  
printf("\t%s(%d)\n"__FUNCTION__func_num_args());

  if (isset(
$__cache[$key])) {
    
$tmp $__cache[$key];
    if (
$tmp["valid_until"] < time()) {
      unset(
$__cache[$key]);
      
$ret NULL;
    } else {
      
$ret $__cache[$key]["data"];
    }
  } else {
    
$ret NULL;
  }

  return 
$ret;
}

function 
return_to_cache($key) {
  
/*
     Appelé lors d'un accès au cache une fois que les données mises en cache ont été traitées,
     peut être utilisé pour le comptage
  */
  
printf("\t%s(%d)\n"__FUNCTION__func_num_args());
}

function 
add_query_to_cache_if_not_exists($key$data$ttl$run_time$store_time$row_count) {
  global 
$__cache;
  
printf("\t%s(%d)\n"__FUNCTION__func_num_args());

  
$__cache[$key] = array(
    
"data"               => $data,
    
"row_count"          => $row_count,
    
"valid_until"        => time() + $ttl,
    
"hits"               => 0,
    
"run_time"           => $run_time,
    
"store_time"         => $store_time,
    
"cached_run_times"   => array(),
    
"cached_store_times" => array(),
  );

  return 
TRUE;
}

function 
query_is_select($query) {
  
printf("\t%s('%s'): "__FUNCTION__$query);

  
$ret FALSE;
  if (
stristr($query"SELECT") !== FALSE) {
    
/* durée de vie du cache de 5 secondes */
    
$ret 5;
  }

  
printf("%s\n", (FALSE === $ret) ? "FALSE" $ret);
  return 
$ret;
}

function 
update_query_run_time_stats($key$run_time$store_time) {
  global 
$__cache;
  
printf("\t%s(%d)\n"__FUNCTION__func_num_args());

  if (isset(
$__cache[$key])) {
    
$__cache[$key]['hits']++;
    
$__cache[$key]["cached_run_times"][] = $run_time;
    
$__cache[$key]["cached_store_times"][] = $store_time;
  }
}

function 
get_stats($key NULL) {
  global 
$__cache;
  
printf("\t%s(%d)\n"__FUNCTION__func_num_args());

  if (
$key && isset($__cache[$key])) {
    
$stats $__cache[$key];
  } else {
    
$stats = array();
    foreach (
$__cache as $key => $details) {
      
$stats[$key] = array(
        
'hits'              => $details['hits'],
        
'bytes'             => strlen($details['data']),
        
'uncached_run_time' => $details['run_time'],
        
'cached_run_time'   => (count($details['cached_run_times']))
                                  ? 
array_sum($details['cached_run_times']) / count($details['cached_run_times'])
                                  : 
0,
      );
    }
  }

  return 
$stats;
}

function 
clear_cache() {
  global 
$__cache;
  
printf("\t%s(%d)\n"__FUNCTION__func_num_args());

  
$__cache = array();
  return 
TRUE;
}

/* Installation du gestionnaire de stockage procédural défini par l'utilisateur */
if (!mysqlnd_qc_set_user_handlers("get_hash""find_query_in_cache",
      
"return_to_cache""add_query_to_cache_if_not_exists",
      
"query_is_select""update_query_run_time_stats",
       
"get_stats""clear_cache")) {
  
printf("Échec de l'installation du gestionnaire de stockage défini par l'utilisateur\n");
}


/* Connect, create and populate test table */
$mysqli = new mysqli("host""user""password""schema""port""socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("\nCache put/cache miss\n");

$res $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Effacement d'un enregistrement pour vérifier que nous récupérons nos données depuis le cache */
$mysqli->query("DELETE FROM test WHERE id = 1");

printf("\nCache hit\n");

$res $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

printf("\nAffichage des statistiques du cache\n");
var_dump(mysqlnd_qc_get_cache_info());

printf("\nForçage de l'affichage du cache, cache put/cache miss");
var_dump(mysqlnd_qc_clear_cache());

$res $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Les exemples ci-dessus vont afficher :

        query_is_select('DROP TABLE IF EXISTS test'): FALSE
        query_is_select('CREATE TABLE test(id INT)'): FALSE
        query_is_select('INSERT INTO test(id) VALUES (1), (2)'): FALSE

Cache put/cache miss
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
array(1) {
  ["id"]=>
  string(1) "1"
}
        query_is_select('DELETE FROM test WHERE id = 1'): FALSE

Cache hit
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        return_to_cache(1)
        update_query_run_time_stats(3)
array(1) {
  ["id"]=>
  string(1) "1"
}

Affichage des statistiques du cache
        get_stats(0)
array(4) {
  ["num_entries"]=>
  int(1)
  ["handler"]=>
  string(4) "user"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(1) {
    ["18683c177dc89bb352b29965d112fdaa"]=>
    array(4) {
      ["hits"]=>
      int(1)
      ["bytes"]=>
      int(71)
      ["uncached_run_time"]=>
      int(398)
      ["cached_run_time"]=>
      int(4)
    }
  }
}

Forçage de l'affichage du cache, cache put/cache miss    clear_cache(0)
bool(true)
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
NULL




mysqlnd_qc Fonctions


mysqlnd_qc_change_handler

(No version information available, might only be in SVN)

mysqlnd_qc_change_handlerModifie le gestionnaire de stockage courante

Description

bool mysqlnd_qc_change_handler ( mixed $handler )

Définit le gestionnaire de stockage utilisé par le cache de requêtes. Une liste de gestionnaires de stockage disponibles peut être obtenu via la fonction mysqlnd_qc_get_handler(). Cette liste dépend de la configuration au moment de la compilation du plugin de cache de requêtes. Le gestionnaire de stockage default est toujours disponible. Tous les autres gestionnaires de stockage doivent être activés explicitement lors de la compilation de l'extension.

Liste de paramètres

handler

Peut être une chaîne de caractères représentant le nom du gestionnaire de stockage interne ou un objet de type mysqlnd_qc_handler_default. Les noms des gestionnaires de stockage internes sont default, APC, MEMCACHE, sqlite.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si la modification du gestionnaire de stockage échoue, une erreur fatale interceptable est émise. Le cache de requêtes ne peut pas fonctionner si le précédent gestionnaire de stockage a été interrompu et qu'aucun nouveau gestionnaire n'a été installé.

Exemples

L'exemple ci-dessous montre l'affiche depuis le gestionnaire de stockage interne par défaut. Les autres gestionnaires de stockage peuvent rapporter des données différentes.

<?php
var_dump
(mysqlnd_qc_change_handler("memcache"));

if (
true === mysqlnd_qc_change_handler("default"))
  
printf("Gestionnaire de stockage par défaut activé");

/* Erreur fatale interceptable */
var_dump(mysqlnd_qc_change_handler("inconnu"));
?>

Les exemples ci-dessus vont afficher :

bool(true)
Gestionnaire de stockage par défaut activé
Erreur fatale interceptable : mysqlnd_qc_change_handler(): Unknown handler 'inconnu' in (file) on line (line)

Voir aussi



mysqlnd_qc_clear_cache

(No version information available, might only be in SVN)

mysqlnd_qc_clear_cacheForce l'affichage complet du contenu du cache

Description

bool mysqlnd_qc_clear_cache ( void )

Force l'affichage complet du contenu du cache.

Le forçage du cache est de la responsabilité du gestionnaire de stockage. Tous les gestionnaires de stockage internes, sauf le gestionnaire memcache, supportent le forçage de l'affichage du cache. Le gestionnaire de stockage memcache ne peut pas forcer l'affichage de son cache.

Un gestionnaire de stockage défini par l'utilisateur peut ou no supporter l'opération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si la valeur FALSE est retournée, cela signifie que le forçage du contenu du cache a échoué, ou que l'opération n'est pas supportée par le gestionnaire de stockage courant. Les applications ne doivent pas s'attendre à ce que l'appel à cette fonction force toujours l'affichage du cache.



mysqlnd_qc_get_cache_info

(No version information available, might only be in SVN)

mysqlnd_qc_get_cache_infoRetourne des informations sur le gestionnaire courant

Description

array mysqlnd_qc_get_cache_info ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des informations sur le gestionnaire courant, le nombre d'entrées du cache ainsi que les entrées du cache, si disponible. Les données retournées depuis les entrées du cache dépendent du gestionnaire de stockage actif. Le gestionnaire de stockage est libre de retourner n'importe quelle donnée. Les gestionnaires de stockage sont invités à retourner au moins les données fournies par le gestionnaire par défaut, si c'est techniquement possible.

Exemples

L'exemple ci-dessous montre l'affiche depuis le gestionnaire de stockage interne par défaut. Les autres gestionnaires de stockage peuvent retourner des données différentes.

<?php
/* Peuple le cache, i.e. en utilisant mysqli */
$mysqli = new mysqli("host""user""password""schema");
$mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/SELECT id FROM test");

/* Affiche les informations du cache */
var_dump(mysqlnd_qc_get_cache_info());
?>

Les exemples ci-dessus vont afficher :

array(4) {
 ["num_entries"]=>
 int(1)
 ["handler"]=>
 string(7) "default"
 ["handler_version"]=>
 string(5) "1.0.0"
 ["data"]=>
 array(1) {
   ["Localhost via UNIX socket 3306 user schema|/*qc=on*/SELECT id FROM test"]=>
   array(2) {
     ["statistics"]=>
     array(11) {
       ["rows"]=>
       int(6)
       ["stored_size"]=>
       int(101)
       ["cache_hits"]=>
       int(0)
       ["run_time"]=>
       int(471)
       ["store_time"]=>
       int(27)
       ["min_run_time"]=>
       int(0)
       ["max_run_time"]=>
       int(0)
       ["min_store_time"]=>
       int(0)
       ["max_store_time"]=>
       int(0)
       ["avg_run_time"]=>
       int(0)
       ["avg_store_time"]=>
       int(0)
     }
     ["metadata"]=>
     array(1) {
       [0]=>
       array(8) {
         ["name"]=>
         string(2) "id"
         ["orig_name"]=>
         string(2) "id"
         ["table"]=>
         string(4) "test"
         ["orig_table"]=>
         string(4) "test"
         ["db"]=>
         string(4) "schema"
         ["max_length"]=>
         int(1)
         ["length"]=>
         int(11)
         ["type"]=>
         int(3)
       }
     }
   }
 }
}



mysqlnd_qc_get_core_stats

(No version information available, might only be in SVN)

mysqlnd_qc_get_core_statsStatistiques collectées par le cœur du cache des requêtes

Description

array mysqlnd_qc_get_core_stats ( void )

Retourne un tableau de statistiques collectées par le cœur du plugin de mise en cache. Des champs identiques de données seront rapportés pour tous les gestionnaires de stockage, les données étant collectées par le cœur.

La directive de configuration PHP mysqlnd_qc.collect_statistics contrôle la collection de statistiques. La collection de statistiques est désactivée par défaut pour des raisons de performance. La désactivation de la collection de statistiques désactive également la collection des temps relatifs aux statistiques.

La direction de configuration PHP mysqlnd_qc.collect_time_statistics contrôle la collection des temps relatifs aux statistiques.

Le scope des statistiques issues du cœur est le processus PHP. Suivant votre modèle de déploiement, un processus PHP peut gérer une ou plusieurs requêtes.

Les statistiques sont agrégées pour toutes les entrées du cache. Il n'est pas possible de demander le nombre de requêtes issues depuis des appels à l'API mysqli, PDO_MySQL ou mysql.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Tableau de statistiques issues du cœur.

Statistique Description Version
cache_hit La requête est considérée comme pouvant être mise en cache et les données mises en cache ont été réutilisées. La requête est considérée comme pouvant être mise en cache et un "cache miss" est survenu mais la requête a été mise en cache par un autre processus alors que nous la traitions, et ainsi, nous avons pû récupérer le résultat depuis cette nouvelle mise en cache. Depuis 1.0.0.
cache_miss La requête est considérée comme pouvant être mise en cache...
  • ... et a été ajoutée au cache

  • ... mais la directive de configuration PHP mysqlnd_qc.cache_no_table = 1 n'a pas autorisé la mise en cache.

  • ... mais un jeu de résultats non mis en mémoire tampon est demandé.

  • ... mais un jeu de résultats mis en mémoire tampon est vide.

Depuis 1.0.0.
cache_put La requête est considérée comme pouvant être mise en cache et a été ajoutée au cache. Faîtes attention lors d'un calcul de statistiques dérivées. Le gestionnaire de stockage dont la durée de stockage est au-delà du scope du processus peut rapporter à la fois cache_put = 0 et cache_hit > 0, si un autre processus a rempli le cache. Vous pouvez vouloir utiliser num_entries depuis mysqlnd_qc_get_cache_info() si le gestionnaire le supporte ( default, APC). Depuis 1.0.0.
query_should_cache La requête est considérée comme pouvant être mise en cache uniquement au vue de l'analyse de la requête. La requête peut (ou pas) être ajoutée au cache. Voir aussi cache_put. Depuis 1.0.0.
query_should_not_cache La requête est considérée comme ne pouvant pas être mise en cache uniquement au vue de l'analyse de la requête. Depuis 1.0.0.
query_not_cached La requête est considérée comme ne pouvant pas être mise en cache ou elle est considérée comme pouvant être mise en cache mais le gestionnaire de stockage n'a pas retourné de clé pour cette requête. Depuis 1.0.0.
query_could_cache La requête est considérée comme pouvant être mise en cache...
  • ... et la requête a été exécutée sans erreur

  • ... et les données méta montrent au moins une colonne dans le jeu de résultats

La requête peut (ou pas) être déjà présente dans le cache. Elle peut (ou pas) être ajoutée au cache plus tard.
Depuis 1.0.0.
query_found_in_cache La requête est considérée comme pouvant être mise en cache et nous l'avons trouvée dans le cache mais nous n'avons pas encore rejoué les données du cache et nous n'avons pas encore envoyé le jeu de résultats au client. Ce n'est pas considéré comme un accès au cache, car le client peut ne pas récupérer le résultat ou les données mises en cache peuvent être défectueuses. Depuis 1.0.0.
query_uncached_other La requête est considérée comme pouvant être mise en cache et elle peut (ou pas) être déjà dans le cache, mais soit l'accès à ces données du cache a échoué, soit le jeu de résultats n'est pas disponible, ou soit, une autre erreur est survenue.
query_uncached_no_table La requête n'a pas été mise en cache car le jeu de résultat a au moins une colonne qui n'a pas de nom de table dans ses méta-données. Un exemple d'une telle requête est SELECT SLEEP(1). Pour mettre en cache ce genre de requêtes, vous devez modifier la valeur par défaut de la directive de configuration PHP mysqlnd_qc.cache_no_table et définir mysqlnd_qc.cache_no_table = 1. Malgré tout, il n'est pas conseillé de mettre en cache ce genre de requêtes. Depuis 1.0.0.
query_uncached_use_result La requête aurait été mise en cache si le jeu de résultats de la mémoire tampon avait été utilisé. Cette situation est également considérée comme une absence de cache et cache_miss sera incrémenté. Depuis 1.0.0.
query_aggr_run_time_cache_hit Temps d'exécution agrégé (ms) de toutes les requêtes du cache. Les requêtes du cache sont celles qui ont incrémentées cache_hit. Depuis 1.0.0.
query_aggr_run_time_cache_put Temps d'exécution agrégé (ms) de toutes les requêtes non mises en cache qui ont été ajoutées dans le cache. Voir aussi cache_put. Depuis 1.0.0.
query_aggr_run_time_total Temps d'exécution agrégé (ms) de toutes les requêtes du cache ainsi que celles non mises en cache qui ont été inspectées et exécutées par le cache de requêtes. Depuis 1.0.0.
query_aggr_store_time_cache_hit Temps de stockage agrégé (ms) de toutes les requêtes du cache. Les requêtes du cache sont celles qui ont incrémentées cache_hit. Depuis 1.0.0.
query_aggr_store_time_cache_put Temps de stockage agrégé (ms) de toutes les requêtes non mises en cache qui ont été ajoutées dans le cache. Voir aussi cache_put. Depuis 1.0.0.
query_aggr_store_time_total Temps de stockage agrégé (ms) de toutes les requêtes mises en cache ainsi que celles non mises en cache qui ont été inspectées et exécutées par le cache de requêtes. Depuis 1.0.0.
receive_bytes_recorded Trafic réseau entrant enregistré (bytes) envoyé depuis MySQL vers PHP. Le trafic peut (ou pas) avoir été ajouté au cache. Le trafic est le total pour toutes les requêtes, qu'elles soient en cache ou non. Depuis 1.0.0.
receive_bytes_replayed Le trafic réseau rejoué pendant le cache. C'est la quantité totale de trafic entrant sauvegardée en raison de l'utilisation du plugin de mise en cache de requêtes. Depuis 1.0.0.
send_bytes_recorded Trafic réseau sortant enregistré ( bytes) envoyé depuis MySQL vers PHP. Le trafic peut (ou pas) avoir été ajouté au cache. Le trafic est le total pour toutes les requêtes, qu'elles soient en cache ou non. Depuis 1.0.0.
send_bytes_replayed Le trafic réseau rejoué pendant le cache. C'est la quantité totale de trafic sortant sauvegardé en raison de l'utilisation du plugin de mise en cache de requêtes. Depuis 1.0.0.
slam_stale_refresh Nombre d'absence du cache qui a été émis lors d'un accès à des données périmées, jusqu'à ce que le client qui a causé l'absence du cache ne rafraichisse l'entrée du cache. Depuis 1.0.0.
slam_stale_hit Nombre d'accès au cache avant qu'une entrée du cache périmé ne rafraichisse les données. Depuis 1.0.0.

Exemples

<?php
/* Activation de la collection des statistiques - par défaut : désactivé */
ini_set("mysqlnd_qc.collect_statistics"1);

/* Activation de la collection de toutes les durées relatives aux statistiques -
par défaut : activé mais écrasé par la directive mysqlnd_qc.collect_statistics = 0 */
ini_set("mysqlnd_qc.collect_time_statistics"1);

/* Population du cache, e.g. en utilisant mysqli */
$mysqli = new mysqli('host''user''password''schema');

/* Cache miss et cache put */
$mysqli->query("/*qc=on*/SELECT id FROM test");
/* Accès au cache */
$mysqli->query("/*qc=on*/SELECT id FROM test");

/* Affichage des statistiques du cœur */
var_dump(mysqlnd_qc_get_core_stats());
?>

Les exemples ci-dessus vont afficher :

array(26) {
  ["cache_hit"]=>
  string(1) "1"
  ["cache_miss"]=>
  string(1) "1"
  ["cache_put"]=>
  string(1) "1"
  ["query_should_cache"]=>
  string(1) "2"
  ["query_should_not_cache"]=>
  string(1) "0"
  ["query_not_cached"]=>
  string(1) "0"
  ["query_could_cache"]=>
  string(1) "2"
  ["query_found_in_cache"]=>
  string(1) "1"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(1) "4"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "395"
  ["query_aggr_run_time_total"]=>
  string(3) "399"
  ["query_aggr_store_time_cache_hit"]=>
  string(1) "2"
  ["query_aggr_store_time_cache_put"]=>
  string(1) "8"
  ["query_aggr_store_time_total"]=>
  string(2) "10"
  ["receive_bytes_recorded"]=>
  string(2) "65"
  ["receive_bytes_replayed"]=>
  string(2) "65"
  ["send_bytes_recorded"]=>
  string(2) "29"
  ["send_bytes_replayed"]=>
  string(2) "29"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(3547549858)
}



mysqlnd_qc_get_handler

(No version information available, might only be in SVN)

mysqlnd_qc_get_handlerRetourne la liste des gestionnaires de stockage disponibles

Description

array mysqlnd_qc_get_handler ( void )

La liste des gestionnaires de stockage disponibles dépend de la configuration lors de la compilation du plugin du cache de requêtes. Le gestionnaire de stockage default est toujours disponible. Tous les autres gestionnaires de stockage doivent être activés explicitement lors de la compilation de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de gestionnaires de stockage internes. Pour chaque gestionnaire de stockage, le numéro de version ainsi que la chaîne représentant la version sont fournis.

Exemples

<?php
var_dump
(mysqlnd_qc_get_handler());
?>

Les exemples ci-dessus vont afficher :

array(5) {
  ["default"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["user"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["APC"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["MEMCACHE"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["sqlite"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
}

Voir aussi



mysqlnd_qc_get_query_trace_log

(No version information available, might only be in SVN)

mysqlnd_qc_get_query_trace_logRetourne une trace pour chaque requête inspectée par la mise en cache de requêtes

Description

array mysqlnd_qc_get_query_trace_log ( void )

Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes. La collection de traces est désactivée par défaut. Pour collecter des traces, vous devez définir la directive de configuration PHP mysqlnd_qc.collect_query_trace à 1

La profondeur maximale des traces est limitée à la profondeur définie par la directive de configuration PHP mysqlnd_qc.query_trace_bt_depth.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de traces des requêtes. Chaque entrée de la liste contient la chaîne de requête, une trace ainsi que quelques informations détaillées.

Clé Description
query La chaîne représentant la requête.
origin Le code de la trace.
run_time Durée d'exécution de la requête, en millisecondes. La collection de toutes les durées ainsi que les appels nécessaires à la fonction système gettimeofday peuvent être désactivés en définissant la directive de configuration PHP mysqlnd_qc.time_statistics à 0.
store_time Durée de stockage du jeu de résultats de la requêtes, en millisecondes. La collection de toutes les durées ainsi que les appels nécessaires à la fonction système gettimeofday peuvent être désactivés en définissant la directive de configuration PHP mysqlnd_qc.time_statistics à 0.
eligible_for_caching TRUE si la requête est éligible à la mise en cache, FALSE sinon.
no_table TRUE si la requête a généré un jeu de résultats et au moins, une colonne du jeu de résultats n'a pas de nom de table de défini dans ces méta-données. C'est généralement le cas avec les requêtes qui ne doivent pas être mises en cache, comme SELECT SLEEP(1). Par défaut, ce genre de requêtes ne sera pas ajouté au cache. Voir aussi la directive de configuration PHP mysqlnd_qc.cache_no_table.
was_added TRUE si le résultat de la requête a été ajouté au cache, FALSE sinon.
was_already_in_cache TRUE si le résultat de la requête aurait été mise en cache si elle n'y était pas déjà présente, FALSE sinon.

Exemples

<?php
/* Connexion, création et population de la table test */
$mysqli = new mysqli("host""user""password""schema""port""socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

$res $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

$res $mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/" "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

$res $mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/" "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();
?>

Les exemples ci-dessus vont afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(6) {
  [0]=>
  array(8) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["origin"]=>
    string(85) "#0 /home/nixnutz/php/phpdoc/foo.php(7): mysqli->query('DROP TABLE IF E...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(25) "CREATE TABLE test(id INT)"
    ["origin"]=>
    string(85) "#0 /home/nixnutz/php/phpdoc/foo.php(8): mysqli->query('CREATE TABLE te...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [2]=>
  array(8) {
    ["query"]=>
    string(36) "INSERT INTO test(id) VALUES (1), (2)"
    ["origin"]=>
    string(85) "#0 /home/nixnutz/php/phpdoc/foo.php(9): mysqli->query('INSERT INTO tes...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [3]=>
  array(8) {
    ["query"]=>
    string(32) "SELECT id FROM test WHERE id = 1"
    ["origin"]=>
    string(86) "#0 /home/nixnutz/php/phpdoc/foo.php(11): mysqli->query('SELECT id FROM ...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(15)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [4]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(86) "#0 /home/nixnutz/php/phpdoc/foo.php(15): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(340)
    ["store_time"]=>
    int(3)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(true)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [5]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(86) "#0 /home/nixnutz/php/phpdoc/foo.php(19): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(4)
    ["store_time"]=>
    int(2)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(true)
  }
}


mysqlnd_qc_set_user_handlers

(No version information available, might only be in SVN)

mysqlnd_qc_set_user_handlersDéfinit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur

Description

bool mysqlnd_qc_set_user_handlers ( string $get_hash , string $find_query_in_cache , string $return_to_cache , string $add_query_to_cache_if_not_exists , string $query_is_select , string $update_query_run_time_stats , string $get_stats , string $clear_cache )

Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur.

Liste de paramètres

get_hash

Nom de la fonction utilisateur implémentant la fonctionnalité get_hash du gestionnaire de stockage.

find_query_in_cache

Nom de la fonction utilisateur implémentant la fonctionnalité find_in_cache du gestionnaire de stockage.

return_to_cache

Nom de la fonction utilisateur implémentant la fonctionnalité return_to_cache du gestionnaire de stockage.

add_query_to_cache_if_not_exists

Nom de la fonction utilisateur implémentant la fonctionnalité add_query_to_cache_if_not_exists du gestionnaire de stockage.

query_is_select

Nom de la fonction utilisateur implémentant la fonctionnalité query_is_select du gestionnaire de stockage.

update_query_run_time_stats

Nom de la fonction utilisateur implémentant la fonctionnalité update_query_run_time_stats du gestionnaire de stockage.

get_stats

Nom de la fonction utilisateur implémentant la fonctionnalité get_stats du gestionnaire de stockage.

clear_cache

Nom de la fonction utilisateur implémentant la fonctionnalité clear_cache du gestionnaire de stockage.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.


Sommaire




Oracle OCI8


Introduction

Ces fonctions vous permettent d'accéder aux serveurs Oracle 11g, 10g, 9i et 8i. Elles supportent les commandes SQL et PL/SQL. Les fonctions de base incluent le contrôle de transaction, la liaison de variables PHP avec des conteneurs Oracle, le support des types de grands objets (LOB) et des collections. Les fonctions d'extensibilité de Oracle, telles que de Database Resident Connection Pooling (DRCP) et le cache de résultats sont aussi supportés.



Installation/Configuration

Sommaire


Pré-requis

L'extension OCI8 nécessite les bibliothèques clientes 9iR2, 10g ou 11g. Si la base de données Oracle est sur la même machine que PHP, le logiciel de la base de données contient déjà toutes les bibliothèques nécessaires. Lorsque PHP est sur une machine différente, vous devez utilisez les bibliothèques libres » Oracle Instant Client.

Pour utiliser Oracle Instant Client, installez le fichier compressé basic ou basiclite de Oracle Instant Client ou le paquet RPM. Lorsque vous compilez PHP depuis ces sources, installez également le fichier compressé sdk ou le paquet RPM devel.

Sous Windows, OCI8 a besoin des bibliothèques clientes versions 10gR2 ou supérieur. Suivant la version du client Instant, vous pourriez également avoir besoin des bibliothèques mfc71.dll et msvcr71.dll.

Vous devriez exécuter PHP avec la même version (ou plus récente) des bibliothèques Oracle utilisées pour compiler OCI8.

Note:

Si OCI8 utilise les bibliothèques clientes 9iR2 ou 10g, alors PHP peut se connecter aux bases de données Oracle 8i, 9iR2, 10g ou 11g. Si OCI8 utilise les bibliothèques clientes 11g, la base de données peut être 9iR2, 10g ou 11g.

Note:

Le support de toutes les fonctionnalités OCI8 n'est disponible que lors de l'utilisation des versions les plus récentes des bibliothèques clientes mais aussi de la base de données la plus récente.



Installation

Configuration de PHP avec OCI8

Relisez la section précédente sur les Pré-requis avant de configurer OCI8.

Pour activer l'extension OCI8, configurez PHP avec l'option --with-oci8 .

Avant de démarrer le serveur web, OCI8, typiquement, nécessite plusieurs variables d'environnement (voir ci-dessous) pour localiser les bibliothèques, pour pointer vers des fichiers de configuration, et pour définir quelques propriétés basiques comme le jeu de caractères utilisé par les bibliothèques OCI8. Les variables doivent être définies avant le démarrage d'un quelconque processus PHP.

PHP doit être exécuté avec les mêmes (ou plus récentes) versions des bibliothèques Oracle pour lesquelles il a été compilé. Par exemple, si vous compilez OCI8 avec les bibliothèques Oracle 11.2, alors PHP doit aussi être déployé et exécuté avec les bibliothèques Oracle 11.2.

Installation OCI8 comme extension partagée

L'option de configuration shared permet de construire OCI8 comme bibliothèque partagée qui pourra être chargée dynamiquement dans PHP. Le fait de construire une extension partagée permet à OCI8 d'être mis à jour plus facilement sans pour autant impacté le reste de PHP.

Configure OCI8 en utilisant une des options de configuration suivantes :

  • Si vous utilisez le client Oracle Instant, alors faîtes :

    ./configure --with-oci8=shared,instantclient,/path/to/instant/client/lib
    

    Si le client Oracle Instant est installé depuis des fichiers compressées, assurez-vous de créer le lien symbolique vers la bibliothèque, par exemple, ln -s libclntsh.so.11.1 libclntsh.so.

    Si vous utilisez une installation du client Oracle Instant à base de paquets RPM, la ligne de configuration ressemblera à ceci :

    ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib
    

    Par exemple, --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib .

    Notez que le support du client Oracle Instant est apparu pour la première fois en PHP 4.3.11 et 5.0.4, et utilisé à l'époque l'option de configuration PHP --with-oci8-instant-client .

  • Si vous utilisez une base de données oracle ou une installation Oracle client complète, alors faîtes :

    ./configure --with-oci8=shared,$ORACLE_HOME
    

    Assurez-vous que l'utilisateur du serveur web (nobody, www) a accès aux bibliothèques, aux fichiers d'initialisation, et au fichier tnsnames.ora (si utilisé) dans le dossier $ORACLE_HOME. Avec Oracle 10gR2, vous devez avoir besoin d'exécuter l'utilitaire $ORACLE_HOME/install/changePerm.sh pour donner accès à ce dossier.

Après la configuration, suivez la procédure de compilation habituelle pour PHP, i.e. make install. L'extension partagé OCI8 oci8.sosera ainsi créée. Il se peut que vous ayez besoin de la déplacer manuellement dans le dossier d'extensions PHP, spécifié par l'option extension_dir de votre fichier php.ini.

Pour compléter l'installation d'OCI8, éditez votre fichier php.ini et ajoutez-y cette ligne :

extension=oci8.so

Installation d'OCI8 comme extension compilée statiquement

Configurez OCI8 en utilisant une des options de configuration suivante :

  • Si vous utilisez le client Oracle Instant, faîtes ceci :

    ./configure --with-oci8=instantclient,/path/to/instant/client/lib
    

  • Si vous utilisez une base de données Oracle ou une installation client complète d'Oracle, alors faîtes ceci :

    ./configure --with-oci8=$ORACLE_HOME
    

Après configuration, suivez la procédure de compilation habituelle de PHP, i.e. make install. Après une compilation réussiée, vous n'avez pas besoin d'ajouter le fichier oci8.so à votre fichier php.ini. Aucune autre étape de compilation n'est nécessaire.

Installation d'OCI8 depuis PECL

L'extension OCI8 peut être ajoutée à une installation PHP existante soit automatiquement, soit manuellement depuis » http://pecl.php.net/. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/oci8.

Pour une installation automatique, suivez les étapes suivantes :

  • Si vous être derrière un part-feu, définissez le proxy PEAR, par exemple :

    pear config-set http_proxy http://my-proxy.example.com:80/
    

  • Exécutez :

    pecl install oci8
    

    Lorsque vous avez de nouveau la main, entrez soit la valeur de la variable $ORACLE_HOME, soit instantclient,/path/to/instant/client/lib.

    Note : N'entrez pas la variable $ORACLE_HOME car elle ne sera pas analysé. A la place, entrez le chemin actuel du dossier principal d'Oracle.

Pour une installation manuelle, téléchargez le paquet PECL OCI8, i.e. oci8-1.3.5.tgz.

  • Extraire le paquet :

    tar -zxf oci8-1.3.5.tgz
    cd oci8-1.3.5
    

  • Préparez le paquet :

    phpize
    

  • Configurez le paquet, soit en utilisant $ORACLE_HOME, soit en utilisant le client Oracle Instant

    ./configure -with-oci8=shared,$ORACLE_HOME
    

    or

    ./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib
    

  • Installez le paquet :

    make install
    

Après une installation automatique ou manuelle, éditez votre fichier php.ini et ajoutez la ligne :

extension=oci8.so

Assurez-vous que la directive extension_dir de votre php.ini est définie au dossier dans lequel oci8.so a été installé.

Installation d'OCI8 sous Windows

Sous Windows, dé-commentez le ligne extension=php_oci8.dll de votre fichier php.ini lorsque vous utilisez les bibliothèques clientes Oracle 10gR2. Dé-commentez la ligne extension=php_oci8_11g.dll lorsque vous utilisez les bibliothèques clientes Oracle 11g. Ces 2 bibliothèques DLL contiennent des fonctionnalités équivalentes, et une seule peut être activée en même temps. Assurez-vous que la directive extension_dir est définie au dossier contenant les extensions DLL de PHP.

Si vous utilisez le client Oracle Instant, définissez la variable d'environnement PATH du système au dossier contenant les bibliothèques Oracle.

Définition de l'environnement Oracle

Avant d'utiliser cette extension, assurez-vous que les variables d'environnement Oracle sont correctement définies pour l'utilisateur exécutant le serveur Web. Si votre serveur Web est automatiquement démarré au démarrage de votre serveur, alors assurez-vous également de la bonne configuration de la variable d'environnement utilisé à ce moment ci.

Note:

Ne définissez pas les variables d'environnement Oracle en utilisant la fonction putenv() dans vos scripts PHP, car les bibliothèques Oracle sont chargées et initialisées avant l'exécution de votre script. Les variables définies avec putenv() pourraient ainsi entrer en conflit et provoquer aussi bien des crashs que des comportements totalement inattendu. Des fonctions peuvent réagir normalement, d'autres peuvent provoquer des erreurs. Les variables doivent être définies avant le démarrage du serveur.

Sous les systèmes Red Hat Linux et ces variantes, vous devez exporter les variables à la fin du fichier /etc/sysconfig/httpd. Sous les autres systèmes utilisant Apache 2, vous devez utiliser le script envvars que vous trouverez dans le dossier bin d'Apache. Une autre option consiste à utiliser la directive SetEnv du fichier httpd.conf, mais ceci peut ne pas être suffisant sur quelques systèmes.

Pour vérifier si les variables d'environnement ont été définies correctement, utilisez la fonction phpinfo() et attardez-vous sur la section Environment (et non la section Apache Environment) ; elle doit contenir toutes les variables définies.

Les variables qui doivent vous êtes nécessaires sont inclues dans la table suivante. Reportez-vous à la documentation Oracle pour plus d'informations sur toutes les variables.

Variables d'environnement Oracle communes
Nom But
ORACLE_HOME Chemin vers le dossier contenant le logiciel de base de données Oracle. Ne définissez pas cette variable si vous utilisez le client Oracle Instant. En effet, elle n'est pas nécessaire mais peu causer des problèmes lors de l'installation.
ORACLE_SID Le nom de la base de données sur la machine locale. Il n'est pas nécessaire de la définir si vous utilisez le client Oracle Instant, ou alors, passez la toujours comme paramètre de connexion à la fonction oci_connect().
LD_LIBRARY_PATH Définissez cette variable (ou son équivalent sur la plateforme courante, comme DYLD_LIBRARY_PATH, LIBPATH, ou SHLIB_PATH) comme le chemin vers les bibliothèques Oracle, par exemple $ORACLE_HOME/lib ou /usr/lib/oracle/11.1/client/lib. Cette variable n'est pas nécessaire si les bibliothèques sont localisées par un mécanisme de recherche différent, comme avec ldconfig ou avec LD_PRELOAD.
NLS_LANG C'est la variable principale pour définir le jeu de caractères et les informations de globalisation utilisés par les bibliothèques Oracle.
ORA_SDTZ Définit le décalage horaire à utiliser par les sessions Oracle.
TNS_ADMIN Chemin vers le dossier contenant les fichiers de configuration Oracle Net Services (tnsnames.ora et sqlnet.ora). Inutile si la chaîne de connexion utilisée par la fonction oci_connect() est au format de connexion facile comme localhost/XE. Inutile également si les fichiers de configuration du réseau sont à des endroits par défaut comme $ORACLE_HOME/network/admin ou /etc.
Il existe d'autres variables d'environnement Oracle moins souvent utilisées, comme TWO_TASK, ORA_TZFILE, ainsi que les diverses variables de globalisation comme NLS* et ORA_NLS_*.

En cas de problème

Le problème le plus courant lors de l'installation d'OCI8 est d'avoir mal configuré le jeu de variables d'environnement correctement. C'est un problème typique lorsque vous recevez un message d'erreur lors de l'utilisation des fonctions oci_connect() ou oci_pconnect(). L'erreur peut être une erreur purement PHP comme Call to undefined function oci_connect(), une erreur Oracle comme ORA-12705 ou encore un arrêt brutal d'Apache. Vérifiez le contenu des fichiers de log d'Apache lors de son démarrage et reportez-vous aux sections ci-dessus pour résoudre le problème.

Alors que les erreurs réseaux comme ORA-12154 ou ORA-12514 indiquent un problème quant au nommage du réseau ou un problème de configuration, bien souvent, la cause première est que l'environnement PHP n'est pas correctement défini et que les bibliothèques Oracle sont incapables de trouver le fichier de configuration tnsnames.ora.

Sous Windows, le fait d'avoir plusieurs versions d'Oracle sur la même machine peut facilement faire crasher l'installation tant que vous ne vous êtes pas assuré que PHP n'utilise pas uniquement la bonne version d'Oracle.

Un utilitaire permettent d'examiner les bibliothèques recherchées et chargées peut vous aider quant à la résolution de ce genre de problème, tout particulièrement sous Windows.

Note: Si le serveur Web ne démarre pas ou échoue au démarrage

Vérifiez qu'Apache est lié avec la bibliothèque pthread :

# ldd /www/apache/bin/httpd
  libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
  libm.so.6 => /lib/libm.so.6 (0x4002f000)
  libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
  libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
  libc.so.6 => /lib/libc.so.6 (0x4007e000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Si la bibliothèque libpthread n'est pas listé, réinstallez Apache :

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Notez que sous des systèmes comme UnixWare, la bibliothèque s'appelle libthread au lieu de libpthread. PHP et Apache doivent être configurés avec EXTRA_LIBS=-lthread.



Test

La suite permettant de tester OCI8 se trouve dans le dossier ext/oci8/tests. Après avoir effectués les tests OCI8, ce dossier contiendra, en plus, les fichiers d'historiques permettant de tracer l'ensemble des erreurs produites.

Avant d'effectuer les tests PHP, éditez le fichier details.inc et définissez les variables de connexion $user, $password et $dbase. Le test OCI8 a été developpé en utilisant le compte SYSTEM. Quelques tests échoueront si l'utilisateur choisi pour effectuer le test n'a pas des permissions équivalentes à ce compte.

Si la base de données est sur la même machine que PHP, définissez la variable $oracle_on_localhost à TRUE.

Si la file d'attente de connexion de la base de données Oracle 11g est testée, définissez la variable $test_drcp à TRUE et assurez-vous que la chaîne de connexion utilise un serveur de file d'attente DRCP approprié.

Une alternative à l'édition du fichier details.inc est de définir les variables d'environnement, par exemple :

    $ export PHP_OCI8_TEST_USER=system
    $ export PHP_OCI8_TEST_PASS=oracle
    $ export PHP_OCI8_TEST_DB=localhost/XE
    $ export PHP_OCI8_TEST_DB_ON_LOCALHOST=TRUE
    $ export PHP_OCI8_TEST_DRCP=FALSE
Notez que suivant les shells utilisés, ces variables ne seront pas forcément propagées jusqu'au processus PHP et le test échouera au niveau de la connexion si cette méthode est utilisée.

Puis, définissez tous les environnements nécessaires à la base de données Oracle. Avec Oracle 10g XE, faîtes :

    $ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Pour les autres versions de la base de données Oracle, faîtes :

    $ . /usr/local/bin/oraenv

Quelques shells nécessitent que le fichier php.ini ait un E dans le paramètre variables_order, par exemple :

    variables_order = "EGPCS"

Exécutez tous les tests PHP avec la commande :

    $ cd your_php_src_directory
    $ make test
ou exécutez uniquement les tests OCI8 avec la commande :
    $ cd your_php_src_directory
    $ make test TESTS=ext/oci8

Lorsque les tests sont terminés, vous pouvez alors investiguer sur les erreurs rencontrées. Sur les systèmes lents, quelques tests peuvent prendre plus de temps que le délai maximal d'exécution défini dans le fichier run-tests.php. Pour corriger ceci, définissez la variable d'environnement TEST_TIMEOUT à une valeur plus grande.

Sur les machines rapides dont la base de données locale est configurée pour une charge minimale (i.e. Oracle 10g XE), quelques tests peuvent échouer avec des erreurs ORA-12516 ou ORA-12520. Pour prévenir ce comportement, augmentez le paramètre PROCESSES de la base de données en utilisant les étapes suivantes :

Connexion avec l'utilisateur oracle :

    $ su - oracle

Définissez l'environnement nécessaire à Oracle grâce au fichier oracle_env.sh ou oraenv, tel que définit ci-dessus.

Exécutez la ligne de commande de l'utilitaire SQL*Plus et augmentez la valeur du paramètre PROCESSES

    $ sqlplus / as sysdba
    SQL> alter system set processes=100 scope=spfile

Redémarrez la base de données :

    SQL> startup force



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Oracle
Nom Défaut Modifiable Historique
oci8.connection_class "" PHP_INI_ALL Disponible depuis PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch "100" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.events Off PHP_INI_SYSTEM Disponible depuis PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent "-1" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.old_oci_close_semantics Off PHP_INI_SYSTEM Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.persistent_timeout "-1" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.ping_interval "60" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.privileged_connect Off PHP_INI_SYSTEM Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.statement_cache_size "20" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).

Voici un éclaircissement sur l'utilisation des directives de configuration.

oci8.connection_class string

Le texte défini par l'utilisateur est utilisé par les connexions du pool de connexions résidantes de la base de données Oracle 11g pour partitionner le pool. Cela permet aux connexions persistantes OCI8 d'une application de réutiliser les sessions à la base de données depuis un script précédent, permettant ainsi une meilleure efficacité. Lorsqu'une application utilise un processus de base de données précédemment utilisé avec une classe de connexion différente, les configurations de la session, comme le format de la date par défaut d'Oracle, seront réinitialisées. Ce comportement permet d'éviter de partager accidentellement des informations entre les différentes applications.

La valeur peut être définie au moment de l'exécution grâce à la fonction ini_set(), appelée avant la connexion.

Pour utiliser DRCP, OCI8 doit être lié avec les bibliothèques Oracle 11g et la base de données doit être Oracle 11g. Le pool de connexion doit être activé dans la base de données, l'option de configuration oci8.connection_class doit valoir la même chaîne pour tous les serveurs web utilisant la même application, et la chaîne de connexion OCI8 doit spécifier d'utiliser un serveur utilisant un pool.

oci8.default_prefetch int

Cette option définit le numbre par défaut de lignes supplémentaires qui seront récupérées et mises en cache automatiquement chaque fois qu'une requête de bas niveau récupérant des données depuis la base de données sera effectuée. Le fait de définir une valeur de 0 permet de désactiver cette fonctionnalité.

La valeur de pré-chargement n'altère pas le nombre de lignes que des fonctions comme oci_fetch_array() retourneront à l'utilisateur ; le pré-chargement et la mise en cache de lignes est géré en interne par OCI8.

La valeur peut être définie pour chaque requête, en exécutant la fonction oci_set_prefetch() avant l'exécution de la requête.

En PHP 5.3 (PECL OCI8 1.3.4), la valeur par défaut est passée de 10 à 100.

En PHP 5.3.2 (PECL OCI8 1.4), la valeur minimale autorisée a été réduite de 1 à 0, permettant ainsi la désactivation du pré-chargement.

Note: Si vous entrez une valeur trop important, cela peut conduire à une amélioration des performances, au détriment de l'utilisation mémoire. Pour des requêtes qui retournent un grand nombre de données, le gain de performance peut être vraiment significatif.

oci8.events boolean

Définir à On cette option permet à PHP d'être notifié des événements de base de données FAN (Fast Application Notification).

Sans FAN, lorsqu'une instance de la base de données ou bien un noeud de machines échoue brutalement, les applications PHP peuvent se bloquer en attendant une réponse de la base de données, jusqu'au bout du délai d'expiration TCP. Avec les événements FAN, les applications PHP sont notifiées rapidement des erreurs qui affectent les connexions à la base de données. L'extension OCI8 nettoiera les connexions inutilisables dans le cache des connexions persistantes.

Lorsque vous utilisez On comme valeur, la base de données doit également être configurée pour émettre les événements FAN.

Le support de FAN est disponible lorsque OCI8 est lié à des bibliothèques Oracle 10gR2 (et suivants) et connecté à une base de données Oracle 10gR2 (et suivants).

oci8.max_persistent int

Le nombre maximal de connexions persistantes OCI8 par processus PHP. Le fait de définir cette option à -1 signifie qu'il n'y a aucune limite.

oci8.old_oci_close_semantics boolean

Cette option contrôle le comportement de la fonction oci_close(). Activer cette option signifie que oci_close() ne fera rien du tout ; la connexion ne sera pas fermée tant que la fin du script ne sera pas atteinte. Ceci est uniquement pour assurer une compatibilité ascendante. Si vous pensez que vous devez activer cette option, vous êtes vivement encouragé à effacer les appels à la fonction oci_close() de votre application au lieu d'activer cette option.

oci8.persistent_timeout int

Le délai maximal (en secondes) q'un processus PHP donné est autorisé à maintenir une connexion persistante. Le fait de définir cette option à -1 signifie que les connexions persistantes seront toujours maintenues tant que le processus PHP ne se termine ou bien que la connexion est explicitement fermée à l'aide de la fonction oci_close().

Note: En PHP, l'expiration des ressources persistantes ne produit aucune alerte. Elle survient lorsque PHP termine un script et vérifie le timestamp de la dernière utilisation de la ressource. Aussi, le paradoxe veut que les connexions persistantes ne peuvent être closes que lors d'une quelconque activité (non nécessaire en OCI8) dans le processus PHP. L'introduction du pool de connexions persistantes (DRCP) en Oracle 11g résolve les problèmes de mémoire et de ressources, que les options oci8.max_persistent et oci8.persistent_timeout ont tenté précédemment de résoudre.

Note: En PHP 5.3 (PECL OCI8 1.3), les connexions persistantes peuvent être fermées avec la fonction oci_close().

oci8.ping_interval int

Le délai maximal (en secondes) à attendre avant d'envoyer un ping durant oci_pconnect(). Lorsque définie à 0, les connexions persistantes seront vérifiées à chaque réutilisation. Pour désactiver complètement les ping, définissez cette option à -1.

Note: Le fait de désactiver les pings rend les appels à oci_pconnect() hautement rentables, mais cela empêche PHP de détecter les problèmes de connexion, comme les problèmes de réseau, ou si le serveur Oracle a été éteint depuis la connexion de PHP, tant que la connexion n'est pas utilisée plus tard dans le script. Consultez la documentation de la fonction oci_pconnect() pour plus d'informations.

oci8.privileged_connect boolean

Cette option active les connexions privilégiées en utilisant les droits externes (OCI_SYSOPER, OCI_SYSDBA).

Note: Le fait de définir cette valeur à On permet aux scripts du serveur web exécutant les privilèges utilisateurs systèmes appropriés de se connecter à la base de données en utilisant ces privilèges, sans avoir besoin de fournir un mot de passe à la base de données. Ceci peut avoir des conséquences au niveau de la sécurité.

oci8.statement_cache_size int

Cette option active la mise en cache des requêtes, et spécifie le nombre de requêtes à mettre en cache. Pour désactiver la mise en cache des requêtes, définissez cette option à 0.

La mise en cache des requêtes permet de ne plus avoir besoin de transmettre le texte de la requête à la base de données, mais aussi, de ne plus avoir besoin de transmettre de méta-données sur la requête à PHP. Ceci permet d'accroître significativement les performances systèmes dans les applications, en ré-utilisant les requêtes durant toute la vie de la connexion. Des "curseurs" de base de données peuvent également aider si l'on part du principe que des requêtes seront ré-utilisées.

Définissez cette valeur à la taille de votre jeux de requêtes courantes utilisées par votre application. Le fait de définir une valeur trop petite peut faire que vos requêtes seront supprimées du cache avant qu'elles ne soient utilisées.

Cette option est la plus utilisée avec les connexions persistantes.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Méthodes et fonctions OCI8
Constante Description
OCI_ASSOC Utilisé avec oci_fetch_all() et oci_fetch_array() pour récupérer les résultats dans un tableau associatif.
OCI_BOTH Utilisé avec oci_fetch_all() et oci_fetch_array() pour récupérer les résultats dans un tableau associatif et indexé numériquement.
OCI_COMMIT_ON_SUCCESS Mode d'exécution des commandes pour oci_execute(). La commande est automatiquement validée après réussite de la requête.
OCI_CRED_EXT Utilisé avec oci_connect() pour identification sur un serveur Oracle externe ou sur le système d'exploitation. Introduit en PHP 5.3 et PECL OCI8 1.3.4.
OCI_DEFAULT Mode d'exécution des commandes pour oci_execute(). La transaction n'est pas automatiquement validée lors de l'utilisation de ce mode. Depuis PHP 5.3 (PECL OCI8 1.4), OCI_NO_AUTO_COMMIT est préféré à la place de OCI_DEFAULT.
OCI_DESCRIBE_ONLY Mode d'exécution des commandes pour oci_execute(). Utilisez ce mode si vous ne souhaitez pas exécuter la commande, mais obtenir des descriptions.
OCI_EXACT_FETCH Obsolète. Mode de lecture de résultats. Utilisé lorsque les applications savent à l'avance le nombre de ligne qu'il faudra lire. Ce mode désactive la lecture anticipée d'Oracle version 8 et plus récente. Le curseur est annulé une fois que le nombre de lignes à lire a été atteint, et cela réduit les ressources consommées côté serveur.
OCI_FETCHSTATEMENT_BY_COLUMN Mode par défaut de oci_fetch_all().
OCI_FETCHSTATEMENT_BY_ROW Mode alternatif pour oci_fetch_all().
OCI_LOB_BUFFER_FREE Utilisé avec OCI-Lob->flush pour libérer les buffers utilisés.
OCI_NO_AUTO_COMMIT Mode d'exécution de la requête pour oci_execute(). La requête n'est pas automatiquement validée lors de l'utilisation de ce mode. Pour plus de lisibilité dans votre code, utilisez cette valeur plutôt que l'ancienne valeur OCI_DEFAULT, devenue obsolète. Introduit en PHP 5.3.2 (PECL OCI8 1.4).
OCI_NUM Utilisé avec oci_fetch_all() et oci_fetch_array() pour lire un tableau énuméré.
OCI_RETURN_LOBS Utilisé avec oci_fetch_array() pour obtenir la valeur du LOB au lieu du pointeur.
OCI_RETURN_NULLS Utilisé avec oci_fetch_array() pour obtenir des éléments vides, si la valeur du champ est NULL.
OCI_SEEK_CUR Utilisé avec OCI-Lob->seek pour définir la position.
OCI_SEEK_END Utilisé avec OCI-Lob->seek pour définir la position.
OCI_SEEK_SET Utilisé avec OCI-Lob->seek pour définir la position.
OCI_SYSDATE Obsolète.
OCI_SYSDBA Utilisé avec oci_connect() pour se connecter comme SYSDBA utilisant des créances externes (oci8.privileged_connect doit être activé pour utiliser cette constante).
OCI_SYSOPER Utilisé avec oci_connect() pour se connecter comme SYSOPER utilisant des créances externes (oci8.privileged_connect doit être activé pour utiliser cette constante).
OCI_TEMP_BLOB Utilisé avec OCI-Lob->writeTemporary pour indiquer explicitement qu'un BLOB temporaire doit être créé.
OCI_TEMP_CLOB Utilisé avec OCI-Lob->writeTemporary pour indiquer explicitement qu'un CLOB temporaire doit être créé.
Types définis et liés OCI8
Constante Description
OCI_B_BFILE Utilisé avec oci_bind_by_name() pour relier des BFILEs.
OCI_B_BIN
OCI_B_BLOB Utilisé avec oci_bind_by_name() pour relier des BLOB.
OCI_B_CFILEE Utilisé avec oci_bind_by_name() pour relier des CFILEs.
OCI_B_CLOB Utilisé avec oci_bind_by_name() pour relier des CLOB.
OCI_B_CURSOR Utilisé avec oci_bind_by_name() pour relier des curseurs, précédemment alloués avec oci_new_descriptor().
OCI_B_INT Utilisé avec oci_bind_array_by_name() pour relier des tableaux d'entiers.
OCI_B_NTY Utilisé avec oci_bind_by_name() pour relier des noms de types de données. Note : En PHP < 5.0, il était nommé OCI_B_SQLT_NTY.
OCI_B_NUM Utilisé avec oci_bind_array_by_name() pour relier des tableaux de nombres.
OCI_B_ROWID Utilisé avec oci_bind_by_name() pour relier des ROWID.
SQLT_AFC Utilisé avec oci_bind_array_by_name() pour lier les tableaux de CHAR.
SQLT_AVC Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR2.
SQLT_BDOUBLE
SQLT_BFILEE Identique à OCI_B_BFILE.
SQLT_BFLOAT
SQLT_BIN Utilisé avec oci_bind_by_name() pour lier les valeurs RAW.
SQLT_BLOB Identique à OCI_B_BLOB.
SQLT_CFILEE Identique à OCI_B_CFILEE.
SQLT_CHR Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR2. Utilisé également avec oci_bind_by_name().
SQLT_CLOB Identique à OCI_B_CLOB.
SQLT_FLT Utilisé avec oci_bind_array_by_name() pour lier les tableaux de FLOAT.
SQLT_INT Identique à OCI_B_INT.
SQLT_LBI Utilisé avec oci_bind_by_name() pour lier les valeurs LONG RAW.
SQLT_LNG Utilisé avec oci_bind_by_name() pour lier les valeurs LONG.
SQLT_LVC Utilisé avec oci_bind_array_by_name() pour lier les tableaux de LONG VARCHAR.
SQLT_NTY Identique à OCI_B_NTY.
SQLT_NUM Identique à OCI_B_NUM.
SQLT_ODT Utilisé avec oci_bind_array_by_name() pour lier les tableaux de LONG.
SQLT_RDD Identique à OCI_B_ROWID.
SQLT_RSET Identique à OCI_B_CURSOR.
SQLT_STR Utilisé avec oci_bind_array_by_name() pour lier les tableaux de STRING.
SQLT_UIN
SQLT_VCS Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR.
Types des descripteurs OCI8
Constante Description
OCI_DTYPE_FILE Cette option indique à oci_new_descriptor() d'initialiser un nouveau pointeur FILE.
OCI_DTYPE_LOB This flag tells oci_new_descriptor() to initialize a new LOB descriptor.
OCI_DTYPE_ROWID Cette option indique à oci_new_descriptor() d'initialiser un nouveau pointeur LOB.
OCI_D_FILE Identique à OCI_DTYPE_FILE.
OCI_D_LOB Identique à OCI_DTYPE_LOB.
OCI_D_ROWID Identique à OCI_DTYPE_ROWID.


Exemples

Ces exemples utilisent, pour se connecter à la base de données, l'utilisateur HR qui est le schéma "Human Resources" fourni par la base de données Oracle. Ce compte doit avoir été déverrouillé et le mot de passe réinitialisé avant de pouvoir l'utiliser.

Ces exemples se connectent à la base de données XE de votre machine. Modifiez la chaîne de connection afin de correspondre à votre base de données avant d'exécuter les exemples de cette documentation.

Exemple #1 Requête simple

Cet exemple montre l'exécution d'une requête et l'affiche des résultats. Les requêtes OCI8 utilisent les étapes préparation/exécution/récupération des données.

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Préparation de la requête
$stid oci_parse($conn'SELECT * FROM departments');
if (!
$stid) {
    
$e oci_error($conn);
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Exécution de la logique de la requête
$r oci_execute($stid);
if (!
$r) {
    
$e oci_error($stid);
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Récupération des résultats de la requête
print "<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    print 
"<tr>\n";
    foreach (
$row as $item) {
        print 
"    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "") . "</td>\n";
    }
    print 
"</tr>\n";
}
print 
"</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Insertion de données en utilisant des variables liées

Les variables liées augmentent les performances en permettant la réutilisation du cache et du contexte d'exécution. Les variables liées augmentent également la sécurité en prévenant bons nombres d'injection SQL.

<?php

// Avant l'exécution, créez la table suivante :
//   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');

$id 60;
$data 'Some data';

oci_bind_by_name($stid':myid'$id);
oci_bind_by_name($stid':mydata'$data);

$r oci_execute($stid);  // exécution et validation

if ($r) {
    print 
"Une ligne insérée";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Insertion de données dans une colonne CLOB

Pour de lourdes données, utilisez un objet binaire long (BLOB) ou un objet de caractères long (CLOB). Cet exemple utilise les CLOB.

<?php

// Avant l'exécution, créez la table suivante :
//     CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$mykey 12343;  // clé arbitraire pour l'exemple

$sql "INSERT INTO mytable (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob"
;

$stid oci_parse($conn$sql);
$clob oci_new_descriptor($connOCI_D_LOB);
oci_bind_by_name($stid":mykey"$mykey5);
oci_bind_by_name($stid":myclob"$clob, -1OCI_B_CLOB);
oci_execute($stidOCI_NO_AUTO_COMMIT); // use OCI_DEFAULT for PHP <= 5.3.1
$clob->save("Une chaîne vraiment très longue");

oci_commit($conn);

// Récupération de données CLOB

$query 'SELECT myclob FROM mytable WHERE mykey = :mykey';

$stid oci_parse ($conn$query);
oci_bind_by_name($stid":mykey"$mykey5);
oci_execute($stid);

print 
'<table border="1">';
while (
$row oci_fetch_array($stidOCI_ASSOC)) {
    
$result $row['MYCLOB']->load();
    print 
'<tr><td>'.$result.'</td></tr>';
}
print 
'</table>';

?>

Exemple #4 Utilisation d'une procédure stockée PL/SQL

Vous devez lier une variable pour la valeur retournée et, optionnellement, pour tous les arguments de la fonction PL/SQL.

<?php

/*
  Avant d'exécuter le programme PHP, créez une fonction stockée
  en langage SQL*Plus ou SQL Developer :

  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
  BEGIN
      RETURN p * 3;
  END;

*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p 8;

$stid oci_parse($conn'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid':p'$p);
oci_bind_by_name($stid':r'$r40);

oci_execute($stid);

print 
"$r\n";   // Affiche 24

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #5 Utilisation d'une procédure stockée PL/SQL

Avec les procédures stockées, vous devez lier les variables pour tous les arguments.

<?php

/*
  Avant d'exécuter le programme PHP, créez une procédure stockée en
  langage SQL*Plus ou SQL Developer :

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 8;

$stid oci_parse($conn'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid':p1'$p1);
oci_bind_by_name($stid':p2'$p240);

oci_execute($stid);

print 
"$p2\n";   // affiche 16

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #6 Appel d'une fonction PL/SQL qui retourne un REF CURSOR

Chaque valeur retournée par la requête est un REF CURSOR à utiliser pour récupérer les données.

<?php
/*
  Créez une fonction stockée PL/SQL comme ceci :

  CREATE OR REPLACE FUNCTION myfunc(p1 IN NUMBER) RETURN SYS_REFCURSOR AS
      rc SYS_REFCURSOR;
  BEGIN
      OPEN rc FOR SELECT city FROM locations WHERE ROWNUM < p1;
      RETURN rc;
  END;
*/

$conn oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'SELECT myfunc(5) AS mfrc FROM dual');
oci_execute($stid);

echo 
"<table border='1'>\n";
while ((
$row oci_fetch_array($stidOCI_ASSOC))) {
    echo 
"<tr>\n";
    
$rc $row['MFRC'];
    
oci_execute($rc);  // La valeur de la colonne retournée depuis la requête est une référence de curseur
    
while (($rc_row oci_fetch_array($rcOCI_ASSOC))) {   
        echo 
"    <td>" $rc_row['CITY'] . "</td>\n";
    }
    
oci_free_statement($rc);
    echo 
"</tr>\n";
}
echo 
"</table>\n";

// Affiche :
//   Beijing
//   Bern
//   Bombay
//   Geneva

oci_free_statement($stid);
oci_close($conn);

?>


Gestion de la connexion

Fonctions de connexion

L'extension oci8 fournit trois fonctions différentes pour se connecter à Oracle. La fonction de connexion standard est la fonction oci_connect(). Cette fonction crée une connexion à la base de données Oracle et retourne une ressource utilisée par les futurs appels à la base de données.

La connexion à un serveur Oracle est une opération raisonnablement coûteuse en terme de temps que cela nécessite. La fonction oci_pconnect() utilise un cache persistant de connexions qui peut être réutilisé à travers différents scripts. Cela signifie qu'une seule connexion sera utilisée par processus PHP (ou un fils Apache).

Si votre application se connecte à Oracle en utilisant un jeu différent de droits pour chaque utilisateur web, le cache persistant utilisé par la fonction oci_pconnect() devient moins approprié car l'augmentation du nombre d'utilisateurs concurrents va affecter les performances de votre serveur Oracle, car il devra maintenir trop de connexions en cache. Si votre application est de ce type, il est recommandé d'optimiser votre application en utilisant les options de configuration oci8.max_persistent et oci8.persistent_timeout (elles vous donnent le contrôle sur la taille et la durée de vie du cache de connexions persistantes) ou utilisez le pool de connexions résidentes d'Oracle 11g, ou encore, utilisez plutôt la fonctionoci_connect().

Les fonctions oci_connect() et oci_pconnect() emploient un cache de connexions ; si vous faites des appels multiples à oci_connect(), en utilisant les mêmes paramètres dans un script donné, le second appel ainsi que les suivants retourneront le gestionnaire de connexion existant. Le cache utilisé par la fonction oci_connect() est nettoyé à la fin de l'exécution du script ou lorsque vous fermez explicitement le gestionnaire de connexion. oci_pconnect() a un comportement sensiblement identique, à la différence que le cache est maintenu séparément et est conservé entre les requêtes HTTP.

Il est important de se souvenir de cette fonctionnalité de cache, car il donne l'apparence que les deux gestionnaires ne sont pas isolés au niveau des transactions, (ils représentent en fait le même gestionnaire de connexion, ils ne sont donc absolument pas isolés). Si votre connexion a besoin de deux connexions séparées, isolées au niveau des transactions, vous devez utiliser la fonction oci_new_connect().

Le cache de la fonction oci_pconnect() est effacé et toutes les connexions à la base de données sont closes lorsque le processus PHP se termine, aussi, les connexions persistantes n'ont d'intérêts que lors de l'utilisation de PHP comme module Apache ou utilisé avec FGCI ou similaire. Les connexions persistantes n'ont aucun intérêts via oci_connect() lorsque PHP est utilisé comme CGI ou en ligne de commande.

oci_new_connect() crée toujours une nouvelle connexion au serveur Oracle, indépendamment de l'existence d'autres connexions. Les applications web à fort trafic doivent éviter d'utiliser oci_new_connect(), particulièrement dans les sections les plus chargées de l'application.

Pool de connexion DRCP

PHP 5.3 (PECL OCI8 1.3) supporte le pool de connexion résidentes Oracle 11g (DRCP). DRCP permet d'utiliser plus efficacement la mémoire de la base de données et permet une meilleure évolution. Peu ou pas de modifications sont nécessaires afin de profiter de DRCP.

DRCP est prévu pour les applications qui se connecte en utilisant peu de schéma de base de données, et qui conserve les connexions ouvertes sur une courte période de temps. Les autres applications doivent utiliser le processus dédié à la base de données Oracle, ou utiliser les serveurs partagés.

DRCP bénéfice des 3 fonctions de connexion, mais seule la fonction oci_pconnect() offre le plus de performance.

Pour rendre DRCP disponible avec OCI8, la version des bibliothèques clientes Oracle utilisées par PHP ainsi que la version de la base de données Oracle doivent être 11g.

La documentation sur DRCP peut être trouvé dans les différents manuels Oracle. Par exemple, reportez-vous à la » configuration du pool de connexions résidentes à la base de données de la documentation Oracle pour un exemple d'utilisation. Un » livre blanc sur DRCP contient plusieurs informations internes sur DRCP.

Pour utiliser DRCP, vous devez construire PHP avec l'extension OCI8 1.3 et les bibliothèques Oracle 11g, puis, suivre ces étapes :

  • En utilisant les privilèges d'administrateur de la base de données, utilisez un programme comme SQL*Plus pour commencer un pool de connexion à la base de données :

        SQL> execute dbms_connection_pool.start_pool;
    

  • Optionnellement, utilisez dbms_connection_pool.alter_param() pour configurer les options DRCP. Les options courantes du pool peuvent être trouvées en utilisant la vue DBA_CPOOL_INFO.

  • Mettre à jour les chaînes de connexion utilisées. Pour les applications PHP qui se connecte actuellement via un nom de connexion réseau comme MYDB:

        $c = oci_pconnect("myuser", "mypassword", "MYDB");
    

    modifiez le fichier tnsnames.ora file et ajoutez une clause (SERVER=POOLED), par exemple :

        MYDB = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=myhost.dom.com)
               (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales)
               (SERVER=POOLED)))
    

    Sinon, vous pouvez modifier la syntaxe de connexion facile en PHP et ajouter :POOLED après le nom du service :

        $c = oci_pconnect("myuser", "mypassword", "myhost.dom.com:1521/sales:POOLED");
    

  • Éditez php.ini et choisissez le nom de la classe de connexion. Ce nom indique une division logique du pool de connexion et peut être utilisé pour isoler le pool des différentes applications. Toutes applications PHP utilisant le même utilisateur ainsi que la même valeur de classe de connexion pourront se partager le pool de connexions, permettant ainsi d'obtenir une plus grande disponibilité.

        oci8.connection_class = "MY_APPLICATION_NAME"
    

  • Exécutez votre application, connectez-vous à la base de données 11g.

Note:

Les applications utilisant Oracle 10g qui ont besoin de la performance des connexions persistantes, peuvent réduire la quantité de mémoire allouée au serveur de la base de données en utilisant les serveurs partagés Oracle (connu auparavant comme serveurs multi-threadés). Reportez-vous à la documentation Oracle pour plus d'informations.

Recommandatation DRCP et limites connues

La modification d'un mot de passe lors de connexions DRCP échouera avec l'erreur "ORA-56609: Usage not supported with DRCP". Ceci est une restriction documentée de la base de données Oracle 11g.

Avec l'extension OCI8 1.3, les connexions persistantes peuvent désormais être fermées par l'utilisateur, permettant ainsi un meilleur contrôle des ressources de connexion. Les connexions persistantes peuvent maintenant être fermées automatiquement lorsqu'aucune variable PHP ne les références, comme ce pourrait être le cas à la fin d'un contexte d'une fonction utilisateur PHP. Ceci annulera toutes les transactions non validées. Ces changements dans les connexions persistantes font qu'elles fonctionnent comme les fonctions non-persistantes, simplifiant l'interface, permettant une plus grande cohérence de l'application et de prévisibilité. Définissez la directive oci8.old_oci_close_semantics à On pour retrouver l'ancien comportement.

Si la base de données Oracle est à la version 11.1.0.6, le patch 6474441 doit être appliqué à la base de données afin de pouvoir utiliser DRCP. Sans ce patch, les erreurs comme ORA-01000: maximum open cursors exceeded, ORA-01001 invalid cursor ou ORA-01002 fetch out of sequence peuvent survenir. Ce bogue a été corrigé à partir des versions 11.1.0.7.

Si ce patch ne peut être appliqué à votre base de données Oracle version 11.1.0.6, voici 3 façons de contourner ces problèmes :

  • Connexion en utilisant des serveurs dédiés ou partagés au lieu d'utiliser DRCP.
  • Définir la directive PHP oci8.statement_cache_size à 0.
  • Définir un événement dans le fichier des paramètres d'initialisation à la base de données : event="56699 trace name context forever, level 128".

Les bases de données Oracle 11.1.0.7 et 11.1.0.6 patché pour le bogue 6474441 permettent aux applications PHP utilisant les connexions DRCP d'utiliser un trigger LOGON pour définir les propriétés de session au moment de la création de la session, comme définir la langue ou le format de la date.

Si le patch à la base de données 11.1.0.6 n'a pu être appliqué, un des contournements suivants peut être utilisé à la place des triggers LOGON :

  • Après l'authentification, définissez explicitement les propriétés de session en utilisant du code PHP dans votre application.
  • Connexion en utilisant des serveurs dédiés ou partagés à la place de DRCP.

Le ré-établissement automatique des connexions persistantes PHP après une rupture des processus Apache ou FGCI fait que les triggers LOGON en PHP ne sont recommandés que pour définir les attributs de session et non les requêtes de connexions utilisateurs par applications. Ceci est d'autant plus vrai avec DRCP vu la taille automatique du pool ainsi que la façon dont les triggers LOGON sont émis avec l'authentification DRCP.

Support "Fast Application Notification" (FAN)

Le support de FAN permet un basculement rapide de connexions, permettant ainsi une grande disponibilité pour votre application. Ceci permet aux scripts PHP OCI8 d'être notifiés lorsqu'une base de données ou une instance de la base de données devient innaccessible. Sans FAN, OCI8 attendra jusqu'au dépassement du délai d'attente TCP et une erreur serait émise, ce qui peut prendre plusieurs minutes. Le fait d'activer FAN permet aux applications de détecter les erreurs et de se reconnecter à une instance de base de données disponible sans prendre en otage l'utilisateur web.

Le support de FAN est disponible lorsque la version des bibliothèques clientes d'Oracle utilisées par PHP ainsi que la version de la base de données Oracle sont 10gR2 ou 11g.

FAN bénéficie aux utilisateurs de la technologie Oracle pour les clusters (RAC) car les connexions à une instance de base de données disponibles peuvent être faites immédiatement. Les utilisateurs de l'application de surveillance de données Oracle verront l'événement FAN généré lorsque la base de données en attendre devient disponible. Les bases de données indépendantes émettront un événement FAN lorsque la base de données redémarrera.

Pour les connexions actives, lorsqu'une machine ou une instance de base de données devient indisponible, une erreur de connexion sera retourné par les fonctions de l'extension OCI8 en cours d'utilisation. Lors d'une re-connexion via le script PHP, une connexion à une base de données disponible sera établie. L'extension OCI8 permet également de nettoyer toutes les connexions perdues affectées par une erreur de l'instance ou de la machine de la base de données ; ainsi, la connexion PHP établira une nouvelle connexion sans que le script ne soit impacté par une quelconque rupture de service.

Lorsque la directive oci8.events vaut On, il est suggéré de définir la directive oci8.ping_interval à -1 pour désactiver le ping, sachant que le fait d'activer les événements FAN fournit une gestion active des connexions perdues lors d'une rupture de service.

Pour activer le support FAN en PHP, vous devez construire PHP avec les bibliothèques Oracle 10gR2 ou 11g et ensuite, suivre les étapes suivantes :

  • En utilisant les privilèges d'administrateur de la base de données, utilisez une programme comme SQL*Plus pour permettre au service de base de données d'émettre des événements FAN ; par exemple :

        SQL> execute dbms_service.modify_service(
                       SERVICE_NAME        => 'sales',
                       AQ_HA_NOTIFICATIONS => TRUE);
    

  • Éditez php.ini et ajoutez :

        oci8.events = On
    

  • Si l'application ne gère pas déjà les conditions d'erreurs OCI8, modifiez la pour détecter ces échecs et prendre les décisions appropriées. Ceci peut inclure des re-connexions et la ré-exécution de requêtes.
  • Lancez votre application, connectez-vous à votre base de données 10gR2 ou 11g.



Types de données supportées par le driver

Le driver supporte les types suivants lors du liage de paramètres en utilisant la fonction oci_bind_by_name() :
Type Liage
SQLT_NTY Lie une collection de types natifs depuis un objet de collection PHP comme ceux créés par oci_new_collection().
SQLT_BFILEE Lie une ressource native, telle que celles créées par la fonction oci_new_descriptor().
SQLT_CFILEE Lie une ressource native, telle que celles créées par la fonction oci_new_descriptor().
SQLT_CLOB Lie une ressource native, telle que celles créées par la fonction oci_new_descriptor().
SQLT_BLOB Lie une ressource native, comme celles créées par la fonction oci_new_descriptor().
SQLT_RDD Lie une ressource native, comme celles créées par la fonction oci_new_descriptor().
SQLT_NUM Convertit un paramètre PHP en un type long 'C', et le lie à cette valeur.
SQLT_RSET Lie un gestionnaire de requête natif, comme ceux créés par la fonction oci_parse() ou ceux récupérés depuis d'autres requêtes OCI.
SQLT_CHR et les autres types Convertit le paramètre PHP en un type chaîne de caractères et le lie en tant que chaîne de caractères.
Les types suivants sont supportés lors de la récupération de colonnes depuis un jeu de résultats :
Type Liage
SQLT_RSET Crée une ressource de requêtes OCI pour représenter le curseur.
SQLT_RDD Crée un objet ROWID.
SQLT_BLOB Crée un objet LOB.
SQLT_CLOB Crée un objet LOB.
SQLT_BFILE Crée un objet LOB.
SQLT_LNG Limite à SQLT_CHR, retourné sous la forme d'une chaîne de caractères
SQLT_LBI Limite à SQLT_BIN, retourné sous la forme d'une chaîne de caractères
Tous les autres types Limite à SQLT_CHR, retourné sous la forme d'une chaîne de caractères


Fonctions OCI8


oci_bind_array_by_name

(PHP 5 >= 5.1.2, PECL OCI8 >= 1.2.0)

oci_bind_array_by_nameLie un tableau PHP à un paramètre de tableau Oracle PL/SQL

Description

bool oci_bind_array_by_name ( resource $statement , string $name , array &$var_array , int $max_table_length [, int $max_item_length = -1 [, int $type = SQLT_AFC ]] )

Lie un tableau PHP var_array à un marqueur Oracle name, qui pointe vers un tableau PL/SQL. Il peut être utilisé pour l'entrée ou la sortie, suivant la configuration à l'exécution.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

name

Le marqueur Oracle.

var_array

Un tableau.

max_table_length

Spécifie la longueur maximale des tableaux d'entrées et de résultats.

max_item_length

Définit la longueur maximale pour les éléments du tableau. Si max_item_length n'est pas fourni ou s'il vaut -1, oci_bind_array_by_name() cherchera l'élément le plus long dans le tableau d'entrée et l'utilisera en tant que longueur maximale.

type

Devrait être utilisé pour définir le type des éléments PL/SQL. Voir la liste des types disponibles ci-dessous :

  • SQLT_NUM - pour les tableaux de NUMBER.

  • SQLT_INT - pour les tableaux INTEGER (Note : INTEGER c'est actuellement un synonyme pour NUMBER(38), mais le type SQLT_NUM ne fonctionnera pas dans ce cas même s'ils sont synonymes).

  • SQLT_FLT - pour les tableaux de FLOAT.

  • SQLT_AFC - pour les tableaux de CHAR.

  • SQLT_CHR - pour les tableaux de VARCHAR2.

  • SQLT_VCS - pour les tableaux de VARCHAR.

  • SQLT_AVC - pour les tableaux de CHARZ.

  • SQLT_STR - pour les tableaux de STRING.

  • SQLT_LVC - pour les tableaux de LONG VARCHAR.

  • SQLT_ODT - pour les tableaux de DATE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_bind_array_by_name()

<?php

$c 
oci_connect("scott""tiger");

$create "CREATE TABLE bind_example(name VARCHAR(20))";
$statement oci_parse($c$create);
oci_execute($statement);

$create_pkg "
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
  PROCEDURE iobind(c1 IN OUT ARRTYPE);
END ARRAYBINDPKG1;"
;
$statement oci_parse($c$create_pkg);
oci_execute($statement);

$create_pkg_body "
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
  CURSOR CUR IS SELECT name FROM bind_example;
  PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
    BEGIN
    FOR i IN 1..5 LOOP
      INSERT INTO bind_example VALUES (c1(i));
    END LOOP;
    IF NOT CUR%ISOPEN THEN
      OPEN CUR;
    END IF;
    FOR i IN REVERSE 1..5 LOOP
      FETCH CUR INTO c1(i);
      IF CUR%NOTFOUND THEN
        CLOSE CUR;
        EXIT;
      END IF;
    END LOOP;
  END iobind;
END ARRAYBINDPKG1;"
;
$statement oci_parse($c$create_pkg_body);
oci_execute($statement);

$statement oci_parse($c"BEGIN ARRAYBINDPKG1.iobind(:c1); END;");

$array = array("one""two""three""four""five");

oci_bind_array_by_name($statement":c1"$array5, -1SQLT_CHR);

oci_execute($statement);

var_dump($array);

?>

Notes

Note:

Cette fonction est disponible depuis OCI8 version 1.2.



oci_bind_by_name

(PHP 5, PECL OCI8 >= 1.1.0)

oci_bind_by_nameAssocie une variable PHP à un marqueur Oracle

Description

bool oci_bind_by_name ( resource $statement , string $bv_name , mixed &$variable [, int $maxlength = -1 [, int $type = SQLT_CHR ]] )

Lie une variable PHP variable au marqueur Oracle bv_name. Le fait de lier une variable est important en terme de performance de la base de données Oracle, mais aussi en terme de sécurité relative aux injections SQL.

Le liage permet aux bases de données de réutiliser le contexte d'exécution de la requête ainsi que le cache associé, y compris lorsqu'un autre utilisateur ou processus l'exécute. Le liage réduit le risque d'injection SQL car les données associées à une variable liée ne sont jamais traitées comme faisant partie de la requête SQL. Inutile donc d'ajouter des quotes ou d'échapper ces données.

Les variables PHP liées peuvent changées et la requête ré-exécutée sans avoir besoin d'analyser de nouveau la requête ou de lier de nouveau les variables.

Avec Oracle, les variables liées sont habituellement divisées en lien IN pour les valeurs passées à la base de données, et en lien OUT pour les valeurs à retourner à PHP. Une variable liée peut être à la fois en lien IN et OUT. Dans ce cas, le fait de savoir si la variable liée doit être utilisée pour l'entrée ou la sortie sera déterminé au moment de l'exécution.

Vous devez spécifier le paramètre maxlength lors de l'utilisation du lien OUT afin que PHP alloue assez de mémoire pour contenir la valeur de retour.

Pour les liens IN, il est recommandé de définir le paramètre maxlength si la requête est exécutée plusieurs fois avec des valeurs différentes pour les variables PHP. Sinon, Oracle peut tronquer les données à la longueur de la valeur initiale de la variable PHP. Si vous ne connaissez pas la valeur maximale dont vous avez besoin, alors appelez de nouveau la fonction oci_bind_by_name() avec les données courantes, avant chaque appel à la fonction oci_execute(). Le fait de l'associer une taille supérieure à ce dont vous avez besoin a un impact sur la mémoire associée au processus pour la base de données.

Un appel à la fonctionnalité d'association de variables donne à Oracle l'adresse mémoire à utiliser pour lire les données. Pour les liens IN, cette adresse doit contenir des données valides lors de l'appel à la fonction oci_execute(). Ceci signifie que la variable liée doit rester dans le contexte jusqu'à l'exécution. Si ce n'est pas le cas, des résultats non attendus peuvent survenir, ainsi que des erreurs de type "ORA-01460: unimplemented or unreasonable conversion requested". Pour les liens OUT, un symptôme peut être qu'aucune valeur n'a été définie dans la variable PHP.

Pour une requête qui est exécutée à plusieurs reprises, les valeurs liées qui ne changent jamais peuvent réduire la capacité de l'optimisateur d'Oracle à choisir le meilleur plan d'exécution. Pour les requêtes prenant du temps, qui sont rarement appelées plusieurs fois, l'association de variables n'apporte aucun bénéfice. Cependant, dans les 2 cas, l'association est plus sécurisée que de placer directement les chaînes de caractères dans la requête SQL, sachant qu'il y a un risque de mauvais filtrage de l'entrée utilisateur.

Liste de paramètres

statement

Un identifiant de requête OCI8 valide.

bv_name

Le marqueur, préfixé par une virgule, utilisé dans la requête. La virgule est optionnelle dans le paramètre bv_name.

variable

La variable PHP à associer avec le marqueur du paramètre bv_name.

maxlength

Spécifie la taille maximale pour les données. Si la valeur est -1, la fonction utilisera la longueur courante des données du paramètre variable pour définir la longueur maximale. Dans ce cas, le paramètre variable doit exister et contenir des données lors de l'appel à la fonction oci_bind_by_name().

type

Le type de données à utiliser par Oracle pour traiter les données. Par défaut, vaut SQLT_CHR. Oracle convertira les données entre ce type et la colonne de la base de données (ou des variables de type PL/SQL), lorsque c'est possible.

Si vous devez lier des types abstraits de données (LOB/ROWID/BFILE), vous devrez l'allouer dans un premier temps, avec oci_new_descriptor(). La longueur length ne sert pas pour ces types et devrait être fixée à -1.

Les valeurs possibles pour le paramètre type sont :

  • SQLT_FILE ou OCI_B_BFILE - pour les BFILEs ;

  • SQLT_CFILE ou OCI_B_CFILEE - pour les CFILEs ;

  • SQLT_CLOB ou OCI_B_CLOB - pour les CLOBs ;

  • SQLT_BLOB ou OCI_B_BLOB - pour les BLOBs ;

  • SQLT_RDD ou OCI_B_ROWID - pour les ROWIDs ;

  • SQLT_NTY ou OCI_B_NTY - pour les types de données nommés ;

  • SQLT_INT ou OCI_B_INT - pour les entiers ;

  • SQLT_CHR - pour les VARCHAR ;

  • SQLT_BIN ou OCI_B_BIN - pour les colonnes RAW ;

  • SQLT_LNG - pour les colonnes LONG ;

  • SQLT_LBI - pour les colonnes LONG RAW ;

  • SQLT_RSET - pour les curseurs créés avec la fonction oci_new_cursor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Insertion de données avec la fonction oci_bind_by_name()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, text VARCHAR2(40));

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid oci_parse($conn,"INSERT INTO mytab (id, text) VALUES(:id_bv, :text_bv)");

$id 1;
$text "Données à insérer     ";
oci_bind_by_name($stid":id_bv"$id);
oci_bind_by_name($stid":text_bv"$text);
oci_execute($stid);

// La table contient maintenant : 1, 'Données à insérer  

?>

Exemple #2 Une association avec de multiples appels

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER);

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$a = array(1,3,5,7,11);  // Données à insérer

$stid oci_parse($conn'INSERT INTO mytab (id) VALUES (:bv)');
oci_bind_by_name($stid':bv'$v20);
foreach (
$a as $v) {
    
$r oci_execute($stidOCI_DEFAULT);  // Ne pas valider automatiquement
}
oci_commit($conn); // Une seule validation

// La table contient maintenant 5 lignes : 1, 3, 5, 7, 11

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Association avec une boucle foreach()

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql 'SELECT * FROM departments WHERE department_name = :dname AND location_id = :loc';
$stid oci_parse($conn$sql);

$ba = array(':dname' => 'IT Support'':loc' => 1700);

foreach (
$ba as $key => $val) {

    
// oci_bind_by_name($stid, $key, $val) ne fonctionne pas car
    // elle associe chaque marqueur au même endroit : $val
    // au lieu d'utiliser l'endroit actuel de la donnée $ba[$key]
    
oci_bind_by_name($stid$key$ba[$key]);
}

oci_execute($stid);
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS);
foreach (
$row as $item) {
    print 
$item."<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Association dans une clause WHERE

<?php

$conn 
oci_connect("hr""hrpwd""localhost/XE");
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql 'SELECT last_name FROM employees WHERE employee_id = :eidbv';
$stid oci_parse($conn$sql);
$myeid 101;
oci_bind_by_name($stid':eidbv'$myeid);
oci_execute($stid);
$row oci_fetch_array($stidOCI_ASSOC);
echo 
$row['LAST_NAME'] ."<br>\n";

// Affiche : Kochhar

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #5 Association avec une clause LIKE

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Trouve tous les critères qui commencent par 'South'
$stid oci_parse($conn"SELECT city FROM locations WHERE city LIKE :bv");
$city 'South%';  // '%' is a wildcard in SQL
oci_bind_by_name($stid":bv"$city);
oci_execute($stid);
oci_fetch_all($stid$res);

foreach (
$res['CITY'] as $c) {
    print 
$c "<br>\n";
}
// Affiche :
//   South Brunswick
//   South San Francisco
//   Southlake

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #6 Association avec REGEXP_LIKE

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Trouve tous les critères qui contiennent 'ing'
$stid oci_parse($conn"SELECT city FROM locations WHERE REGEXP_LIKE(city, :bv)");
$city '.*ing.*';
oci_bind_by_name($stid":bv"$city);
oci_execute($stid);
oci_fetch_all($stid$res);

foreach (
$res['CITY'] as $c) {
    print 
$c "<br>\n";
}
// Affiche :
//   Beijing
//   Singapore

oci_free_statement($stid);
oci_close($conn);

?>

Pour quelques conditions utilisées dans les clauses IN, utilisez des variables liées individuelles. Les valeurs inconnues au moment de l'exécution pourront être définies à NULL. Ceci permet d'utiliser une seule requête pour l'ensemble des utilisateurs de l'application, maximisant ainsi l'efficacité du cache Oracle DB.

Exemple #7 Association de plusieurs valeurs dans une clause IN

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql 'SELECT last_name FROM employees WHERE employee_id in (:e1, :e2, :e3)';
$stid oci_parse($conn$sql);
$mye1 103;
$mye2 104;
$mye3 NULL// pretend we were not given this value
oci_bind_by_name($stid':e1'$mye1);
oci_bind_by_name($stid':e2'$mye2);
oci_bind_by_name($stid':e3'$mye3);
oci_execute($stid);
oci_fetch_all($stid$res);
foreach (
$res['LAST_NAME'] as $name) {
    print 
$name ."<br>\n";
}

// Affiche :
//   Ernst
//   Hunold

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #8 Association d'un ROWID retourné par une requête

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//   INSERT INTO mytab (id, salary, name) VALUES (1, 100, 'Chris');
//   COMMIT;

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT ROWID, name FROM mytab WHERE id = :id_bv FOR UPDATE');
$id 1;
oci_bind_by_name($stid':id_bv'$id);
oci_execute($stid);
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS);
$rid $row['ROWID'];
$name $row['NAME'];

// Modification du nom en lettre majuscule & sauvegarde de cette modification
$name strtoupper($name);
$stid oci_parse($conn'UPDATE mytab SET name = :n_bv WHERE ROWID = :r_bv');
oci_bind_by_name($stid':n_bv'$name);
oci_bind_by_name($stid':r_bv'$rid, -1OCI_B_ROWID);
oci_execute($stid);

// La table contient maintenant 1, 100, CHRIS

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #9 Association d'un ROWID dans un INSERT

<?php

// Cet exemple insère un id & un nom, puis, met à jour le salaire
// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//
// Basé sur l'exemple original de ROWID, fourni par thies at thieso dot net (980221)

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql "INSERT INTO mytab (id, name) VALUES(:id_bv, :name_bv)
        RETURNING ROWID INTO :rid"
;

$ins_stid oci_parse($conn$sql);

$rowid oci_new_descriptor($connOCI_D_ROWID);
oci_bind_by_name($ins_stid":id_bv",   $id,    10);
oci_bind_by_name($ins_stid":name_bv"$name,  32);
oci_bind_by_name($ins_stid":rid",     $rowid, -1OCI_B_ROWID);

$sql "UPDATE mytab SET salary = :salary WHERE ROWID = :rid";
$upd_stid oci_parse($conn$sql);
oci_bind_by_name($upd_stid":rid"$rowid, -1OCI_B_ROWID);
oci_bind_by_name($upd_stid":salary"$salary,   32);

// ids et noms à insérer
$data = array(1111 => "Larry",
              
2222 => "Bill",
              
3333 => "Jim");

// Salaire de chaque personne
$salary 10000;

// Insertion et mise à jour immédiate de chaque ligne
foreach ($data as $id => $name) {
    
oci_execute($ins_stid);
    
oci_execute($upd_stid);
}

$rowid->free();
oci_free_statement($upd_stid);
oci_free_statement($ins_stid);

// Affichage des nouvelles lignes
$stid oci_parse($conn"SELECT * FROM mytab");
oci_execute($stid);
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    
var_dump($row);
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #10 Association pour une fonction stockée PL/SQL

<?php

// Avant d'exécuter le programme PHP, une fonction stockée doit être créée
// au format SQL*Plus ou SQL Developer :
//
//  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
//  BEGIN
//      RETURN p * 3;
//  END;

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p 8;

$stid oci_parse($conn'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid':p'$p);

// La valeur retournée est un lien OUT. Le type par défaut devra être
// de type string, aussi, l'association sur une longueur de 40 signifie
// que la chaîne retournée fera au maximum 40 caractères.
oci_bind_by_name($stid':r'$r40);

oci_execute($stid);

print 
"$r\n";   // Affiche 24

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #11 Association de paramètres à une procédure stockée PL/SQL

<?php

// Avant d'exécuter le programme PHP, une procédure stockée doit être créée
// au format SQL*Plus ou SQL Developer :
//
//  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
//  BEGIN
//      p2 := p1 * 2;
//  END;

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p1 8;

$stid oci_parse($conn'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid':p1'$p1);

// Le second paramètre de la procédure stockée est un lien OUT.
// Le type par défaut devra être de type string, aussi,
// l'association sur une longueur de 40 signifie
// que la chaîne retournée fera au maximum 40 caractères.

oci_bind_by_name($stid':p2'$p240);

oci_execute($stid);

print 
"$p2\n";   // Affiche 16

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #12 Association sur une colonne CLOB

<?php

// Avant l'exécution, il est nécessaire de créer la table :
//     CREATE TABLE mytab (mykey NUMBER, myclob CLOB);

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$mykey 12343;  // Clé arbitraire pour l'exemple ;

$sql "INSERT INTO mytab (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob"
;

$stid oci_parse($conn$sql);
$clob oci_new_descriptor($connOCI_D_LOB);
oci_bind_by_name($stid":mykey"$mykey5);
oci_bind_by_name($stid":myclob"$clob, -1OCI_B_CLOB);
oci_execute($stidOCI_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Récupération des données CLOB

$query 'SELECT myclob FROM mytab WHERE mykey = :mykey';

$stid oci_parse ($conn$query);
oci_bind_by_name($stid":mykey"$mykey5);
oci_execute($stid);

print 
'<table border="1">';
while (
$row oci_fetch_array($stidOCI_ASSOC)) {
  
$result $row['MYCLOB']->load();
  print 
'<tr><td>'.$result.'</td></tr>';
}
print 
'</table>';

?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

N'utilisez pas la directive magic_quotes_gpc ou la fonction addslashes() associé à la fonction oci_bind_by_name() simultanément, car aucun ajout de guillemets n'est nécessaire. Si c'est le cas, alors les guillemets ajoutés seront écrits dans la base de données ; en effet, la fonction oci_bind_by_name() insère les données brutes et ne supprime ni les guillemets ajoutés, ni les caractères d'échappement.

Note:

Si vous associez une chaîne de caractères à une colonne de type CHAR dans une clause WHERE, souvenez-vous qu'Oracle utilise une comparaison en ajoutant des caractères vides pour les colonnes de type CHAR. Aussi, votre variable PHP doit être compléter par des caractères vides afin d'atteindre la même taille que la colonne pour que la clause WHERE fonctionne.

Note:

L'argument PHP variable est une référence. Aussi, quelques formats de boucle peuvent ne pas fonctionner comme prévu :

<?php
foreach ($myarray as $key => $value)  {
    
oci_bind_by_name($stid$key$value);
}
?>

Ceci associe chaque clé à la valeur pointée par $value, aussi, toutes les variables associées pointent vers la valeur de la dernière itération de la boucle. A la place, utilisez ceci :

<?php
foreach ($myarray as $key => $value) {
    
oci_bind_by_name($stid$key$myarray[$key]);
}
?>

Note:

Avant la version 5.0.0 de PHP, vous devez utiliser à la place la fonction ocibindbyname(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_cancel

(PHP 5, PECL OCI8 >= 1.1.0)

oci_cancelTermine la lecture de curseurs Oracle

Description

bool oci_cancel ( resource $statement )

Invalide un curseur, libère toutes les ressources associées et annule la possibilité de lecture depuis la ressource.

Liste de paramètres

statement

Une requête OCI.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



oci_close

(PHP 5, PECL OCI8 >= 1.1.0)

oci_closeFerme une connexion Oracle

Description

bool oci_close ( resource $connection )

Ferme une connexion connection Oracle. La connexion sera fermée si aucune ressource ne l'utilise et si elle a été créée avec la fonction oci_connect() ou la fonction oci_new_connect().

Il est recommandé de fermer les connexions qui ne vous sont plus nécessaires, rendant ainsi plus de ressources de disponible pour les autres utilisateurs.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect(), ou oci_new_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermeture d'une connexion

Les ressources associées avec une connexion doivent être fermée afin d'assurer à la base de données sous sous-jacente la fin des opération et ainsi, y libérer les ressources.

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM departments');
$r oci_execute($stid);
oci_fetch_all($stid$res);
var_dump($res);

// Libération de l'identifiant de requête lors de la fermeture de la connexion
oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Les connexions à la base de données sont fermées à partir du moment où les références le sont

L'identifiant interne comptant les connexions doit valoir zéro pour pouvoir fermer la connexion.

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM departments');  // ceci incrémente le compteur interne $conn
oci_execute($stid);
oci_fetch_all($stid$res);
var_dump($res);

oci_close($conn);

// $conn n'est plus utilisable dans le script mais la connexion sous-jacente à
// la base de données est toujours ouverte tant que $stid n'est pas libéré.
var_dump($conn);  // affiche NULL

// Pendant que PHP attend, le fait d'interroger la vue V$SESSION d'Oracle
// dans un terminal montrera qu'un utilisateur est toujours connecté.
sleep(10);

// Lorsque $stid est libéré, la connexion à la base de données sera physiquement fermée
oci_free_statement($stid);  

// Pendant que PHP attend, le fait d'interroger la vue V$SESSION d'Oracle
// dans un terminal montrera que l'utilisateur s'est déconnecté.
sleep(10);

?>

Exemple #3 Fermeture d'un connexion ouverte plus d'une fois

Lorsque des identifiants de base de données sont réutilisés, toutes les connexions doivent être fermées avant que la connexion à la base de données sous-jacente le soit réellement.

<?php

$conn1 
oci_connect('hr''welcome''localhost/XE');

// L'utilisation des mêmes identifiants réutilise la même connexion à la base de données sous-jacente.
// Toutes les modifications non validées effectuées sur $conn1 seront visibles sur $conn2.
$conn2 oci_connect('hr''welcome''localhost/XE');

// Pendant que PHP attend, le fait d'interroger la vue V$SESSION d'Oracle
// dans un terminal montrera qu'un seul utilisateur est connecté.
sleep(10);

oci_close($conn1); // ne ferme pas la connexion à la base de données sous-jacente
var_dump($conn1);  // affiche NULL car la variable $conn1 n'est plus utilisable
var_dump($conn2);  // affiche que $conn2 est toujours une ressource de connexion valide

?>

Exemple #4 Les connexions sont fermées lorsque les variables sortent du contexte

Lorsque toutes les variables référençant une connexion sortent du contexte et sont libérées par PHP, une annulation survient (si nécessaire) et la connexion sous-jacente à la base de données est fermée.

<?php

function myfunc() {
    
$conn oci_connect('hr''hrpwd''localhost/XE');
    if (!
$conn) {
        
$e oci_error();
        
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

    
$stid oci_parse($conn'UPDATE mytab SET id = 100');
    
oci_execute($stidOCI_NO_AUTO_COMMIT);
    return 
"Finished";
}

$r myfunc();
// À ce moment, une annulation survient et la connexion sous-jacente à la base de données est fermée.

print $r;  // affiche la valeur de retour de la fonction "Finished"

?>

Notes

Note:

Les variables ayant une dépendance à l'identifiant de connexion, comme les identifiants de requêtes retournés par la fonction oci_parse(), doivent être libérées avant de tenter de fermer la connexion sous-jacente à la base de données.

Note:

Avant la version PHP 5.1.2 (PECL OCI8 1.1) oci_close() ne fermait pas réellement la connexion Oracle. Dans les versions plus récentes, cette fonction ferme correctement la connexion Oracle. Utilisez l'option oci8.old_oci_close_semantics pour revenir à l'ancien comportement de cette fonction.

Note:

La fonction oci_close() ne ferme pas les connexions sous-jacentes à la base de données créées par la fonction oci_pconnect().

Note:

Dans les version de PHP avant 5.0.0, vous devez utiliser la fonction ocilogoff() à la place. Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



OCI-Collection->append

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->appendAjoute un élément à une collection Oracle

Description

bool OCI-Collection::append ( mixed $value )

Ajoute un élément à la fin d'une collection Oracle.

Liste de paramètres

value

La valeur à ajouter à la collection. Peut être une chaîne de caractères ou un nombre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Collection->assign

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->assignAssigne une valeur à une collection depuis une autre collection Oracle

Description

bool OCI-Collection::assign ( OCI-Collection $from )

Assigne une valeur à une collection, à partir de la collection from. Les deux collections doivent avoir été créées avec oci_new_collection() avant d'utiliser cette fonction.

Liste de paramètres

from

Une instance OCI-Collection.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Collection->assignElem

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->assignElemAssigne une valeur à un élément d'une collection Oracle

Description

bool OCI-Collection::assignElem ( int $index , mixed $value )

Assigne une valeur à l'élément dont l'index est index.

Liste de paramètres

index

L'index de l'élément. Le premier vaut 1.

value

Peut être soit une chaîne de caractères, soit un nombre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Collection->free

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->freeLibère les ressources associées avec un objet de collection

Description

bool OCI-Collection::free ( void )

Libère les ressources associées avec un objet de collection.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



OCI-Collection->getElem

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->getElemRetourne la valeur d'un élément d'une collection Oracle

Description

mixed OCI-Collection::getElem ( int $index )

Retourne la valeur de l'élément à l'index index (en commençant à 1).

Liste de paramètres

index

L'index de l'élément. Le premier vaut 1.

Valeurs de retour

Retournera FALSE si cet élément n'existe pas; NULL, si l'élément est NULL chaîne si la colonne est de type chaîne, et nombre si c'est un champs numérique.



OCI-Collection->max

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->maxRetourne le nombre maximal de valeurs d'une collection Oracle

Description

int OCI-Collection::max ( void )

Retourne le nombre maximal de valeurs d'une collection Oracle.

Valeurs de retour

Retourne le nombre maximal, sous la forme d'un entier, ou FALSE si une erreur survient.

Si la valeur retournée vaut 0, alors le nombre d'éléments n'est pas limité.



OCI-Collection->size

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->sizeRetourne la taille d'une collection Oracle

Description

int OCI-Collection::size ( void )

Retourne la taille d'une collection Oracle.

Valeurs de retour

Retourne le nombre d'éléments de la collection, ou FALSE si une erreur survient.

Voir aussi



OCI-Collection->trim

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Collection->trimSupprime les derniers éléments d'une collection Oracle

Description

bool OCI-Collection::trim ( int $num )

Supprime les num derniers éléments d'une collection.

Liste de paramètres

num

Le nombre d'éléments à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



oci_commit

(PHP 5, PECL OCI8 >= 1.1.0)

oci_commitValide les transactions Oracle en cours

Description

bool oci_commit ( resource $connection )

Valide toutes les transactions en cours sur la connexion Oracle connection. Une validation rend permanentes toutes les modifications, en libérant tous les verrous.

Une transaction commence lorsque la première requête SQL qui modifie des données est exécutée avec la fonction oci_execute() en utilisant le drapeau OCI_NO_AUTO_COMMIT. Les prochaines modifications faîtes par d'autres requêtes deviennent parties intégrantes de la même transaction. Les données modifiées par une transaction sont temporaires tant que la transaction n'est pas validée ou annulée. Les autres utilisateurs de la base de données ne verront ces modifications qu'une fois la transaction validée.

Lors de l'insertion ou de la mise à jour de données, l'utilisation des transactions est recommandé afin de garantir la consistence relationnelle des données, mais aussi afin d'augmenter les performances.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect(), ou oci_new_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_commit()

<?php

// Insertion dans plusieurs tables, avec une annulation des modifications si des erreurs surviennent

$conn oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn"INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Le drapeau OCI_NO_AUTO_COMMIT indique à Oracle de ne pas valider les insertions automatiquement.
/// Utilisez le drapeau OCI_DEFAULT pour PHP <= 5.3.1. Les 2 sont équivalents
$r oci_execute($stidOCI_NO_AUTO_COMMIT);
if (!
$r) {    
    
$e oci_error($stid);
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid oci_parse($conn'INSERT INTO myschedule (startday) VALUES (12)');
$r oci_execute($stidOCI_NO_AUTO_COMMIT);
if (!
$r) {    
    
$e oci_error($stid);
    
oci_rollback($conn);  // Annulation des modifications sur les 2 tables
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Valide les modifications sur les 2 tables
$r oci_commit($conn);
if (!
r) {
    
$e oci_error($conn);
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Notes

Note:

Les transactions sont automatiquement annulées lorsque vous fermez la connexion, ou lorsque le script se termine, un des deux arrivant le premier. Vous devez explicitement appeler la fonction oci_commit() pour valider la transaction.

Chaque appel à la fonction oci_execute() qui utilise le mode OCI_COMMIT_ON_SUCCESS explicitement ou par défaut, validera toutes les transactions précédentes non validées à ce stade.

Toutes les requêtes Oracle comme CREATE ou DROP validera également toutes les transactions non validées.

Note:

Dans les version PHP avant 5.0.0, vous devez utiliser la fonction ocicommit() à la place. Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_connect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_connectÉtablit une connexion avec un serveur Oracle

Description

resource oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Retourne un identifiant de connexion, nécessaire à la plupart des appels OCI8.

Voir la section sur la gestion des connexions pour des informations générales sur la façon dont sont gérées les connexions avec un serveur Oracle.

Depuis PHP 5.1.2 (PECL OCI8 1.1), la fonction oci_close() peut être utilisée pour fermer une connexion.

Les appels suivants (suivant un premier) à la fonction oci_connect() avec les mêmes paramètres retourneront le gestionnaire de connexion retourné lors du premier appel. Cela signifie que les transactions effectuées sur un gestionnaire seront actives sur les autres, sachant qu'elles utilisent la même connexion sous-jacente. Si 2 gestionnaires doivent avoir des transactions isolées, utilisez à la place la fonction oci_new_connect().

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe de l'utilisateur.

connection_string

Contient l'instance Oracle sur laquelle nous devons nous connecter. Ce peut être une » chaîne de connexion rapide, un nom de connexion issue du fichier tnsnames.ora, ou le nom d'une instance locale Oracle.

Si non spécifié, PHP utilise des variables d'environnement comme TWO_TASK (sous Linux) ou LOCAL (sous Windows) et ORACLE_SID pour déterminer l'instance Oracle sur laquelle nous devons nous connecter.

Pour utiliser la méthode de connexion rapide, PHP doit être lié avec la bibliothèque cliente Oracle 10g ou supérieur. La chaîne de connexion rapide pour Oracle 10g ou supérieur est de la forme : [//]host_name[:port][/service_name]. Avec Oracle 11g, la syntaxe est : [//]host_name[:port][/service_name][:server_type][/instance_name]. Les noms des services peuvent être trouvés en exécutant l'utilitaire Oracle lsnrctl status sur la machine exécutant la base de données.

Le fichier tnsnames.ora peut être dans le chemin de recherche d'Oracle Net, qui inclut $ORACLE_HOME/network/admin et /etc. Une solution alternative serait de définit TNS_ADMIN afin que le fichier $TNS_ADMIN/tnsnames.ora soit lu. Assurez-vous que le daemon exécutant le serveur web a accès en lecture à ce fichier.

charset

Détermine le jeu de caractères utilisé par la bibliothèque cliente Oracle. Le jeu de caractères n'a pas besoin d'être identique à celui utilisé par la base de données. S'il ne correspond pas, Oracle ferait de son mieux pour convertir les données depuis le jeu de caractères de la base de données. Suivant les jeux de caractères, il se peut que le résultat ne soit pas parfait. De plus, cette convertion nécessite un peu de temps système.

Si non spécifié, la bibliothèque cliente Oracle déterminera un jeu de caractères depuis la variable d'environnement NLS_LANG.

Le fait de passer ce paramètre peut réduire la durée de connexion.

session_mode

Ce paramètre est disponible depuis PHP 5 (PECL OCI8 1.1) et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si soit la constante OCI_SYSOPER, soit la constante OCI_SYSDBA est spécifiée, cette fonction tentera d'établir une connexion privilégiée en utilisant des identifiants externes. Les connexions privilégiées sont désactivées par défault. Pour les activer, vous devez définir l'option oci8.privileged_connect à On.

PHP 5.3 (PECL OCI8 1.3.4) introduisent la valeur de mode OCI_CRED_EXT. Ce mode demande à Oracle d'utiliser une identification externe ou bien issue du système d'exploitation, qui doit être configurée dans la base de données. Le drapeau OCI_CRED_EXT ne peut être utilisé qu'avec le nom d'utilisateur "/" associé à un mot de passe vide. L'option oci8.privileged_connect peut être définie à On ou Off.

OCI_CRED_EXT peut être combiné avec le mode OCI_SYSOPER ou le mode OCI_SYSDBA.

OCI_CRED_EXT n'est pas supporté sous Windows pour des raisons de sécurité.

Valeurs de retour

Retourne un identifiant de connexion ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_connect() en utilisant la syntaxe simplifiée

<?php

// Connexion au service XE (i.e. la base de données) sur la machine "localhost"
$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM employees');
oci_execute($stid);

echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "") . "</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

?>

Exemple #2 Exemple avec oci_connect() en utilisant un nom de connexion réseau

<?php

// Connexion à la base de données MYDB décrite dans le fichier tnsnames.ora,
// Un exemple d'entrée tnsnames.ora pour MYDB pourraît être :
//   MYDB =
//     (DESCRIPTION =
//       (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.oracle.com)(PORT = 1521))
//       (CONNECT_DATA =
//         (SERVER = DEDICATED)
//         (SERVICE_NAME = XE)
//       )
//     )

$conn oci_connect('hr''welcome''MYDB');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM employees');
oci_execute($stid);

echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "") . "</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

?>

Exemple #3 Exemple avec oci_connect() en utilisant un jeu de caractère spécifique

<?php

$conn 
oci_connect('hr''welcome''localhost/XE''AL32UTF8');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM employees');
oci_execute($stid);

echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "") . "</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

?>

Exemple #4 Exemple avec plusieurs appels à la fonction oci_connect()

<?php

$c1 
oci_connect("hr""welcome"'localhost/XE');
$c2 oci_connect("hr""welcome"'localhost/XE');

// À la fois $c1 et $c2 affichent le même identifiant de ressources PHP, ce qui signifie
// qu'il s'agit de la même connexion à la base de données
echo "c1 is $c1<br>\n";
echo 
"c2 is $c2<br>\n";

function 
create_table($conn)
{
    
$stmt oci_parse($conn"create table hallo (test varchar2(64))");
    
oci_execute($stmt);
    echo 
"Created table<br>\n";
}

function 
drop_table($conn)
{
    
$stmt oci_parse($conn"drop table hallo");
    
oci_execute($stmt);
    echo 
"Dropped table<br>\n";
}

function 
insert_data($connname$conn)
{
    
$stmt oci_parse($conn"insert into hallo
              values(to_char(sysdate,'DD-MON-YY HH24:MI:SS'))"
);
    
oci_execute($stmtOCI_DEFAULT);
    echo 
"$connname inserted row without committing<br>\n";
}

function 
rollback($connname$conn)
{
    
oci_rollback($conn);
    echo 
"$connname rollback<br>\n";
}

function 
select_data($connname$conn)
{
    
$stmt oci_parse($conn"select * from hallo");
    
oci_execute($stmtOCI_DEFAULT);
    echo 
"$connname ----selecting<br>\n";
    while (
oci_fetch($stmt)) {
        echo 
"    " oci_result($stmt"TEST") . "<br>\n";
    }
    echo 
"$connname ----done<br>\n";
}

create_table($c1);

insert_data('c1'$c1);   // Insère une ligne en utilisant c1
sleep(2);                 // On attend afin de voir un timestamp différent pour la seconde ligne
insert_data('c2'$c2);   // Insère une ligne en utilisant c2

select_data('c1'$c1);   // Les résultats des 2 insertions sont retournés
select_data('c2'$c2);   // Les résultats des 2 insertions sont retournés

rollback('c1'$c1);      // Annulation de la transaction en utilisant c1

select_data('c1'$c1);   // Les 2 insertions ont été annulées
select_data('c2'$c2);

drop_table($c1);

// La fermeture d'une connexion rend les variables PHP indisponibles, mais les autres
// peuvent être toujours utilisées
oci_close($c1);
echo 
"c1 is $c1<br>\n";
echo 
"c2 is $c2<br>\n";


// Affichage :
//    c1 is Resource id #5
//    c2 is Resource id #5
//    Created table
//    c1 inserted row without committing
//    c2 inserted row without committing
//    c1 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c1 ----done
//    c2 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c2 ----done
//    c1 rollback
//    c1 ----selecting
//    c1 ----done
//    c2 ----selecting
//    c2 ----done
//    Dropped table
//    c1 is 
//    c2 is Resource id #5

?>

Notes

Note:

Si un problème est survenu lors de l'installation de l'extension OCI8, une des manifestations sera un problème lors de la connexion. Reportez-vous à la section Installation/Configuration pour plus d'informations en cas d'erreurs.

Note:

Dans les versions de PHP avant 5.0.0, utilisez la fonction ocilogon() à la place. Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_define_by_name

(PHP 5, PECL OCI8 >= 1.1.0)

oci_define_by_nameAssocie une variable PHP avec une colonne pour une requête de récupération de données

Description

bool oci_define_by_name ( resource $statement , string $column_name , mixed &$variable [, int $type = SQLT_CHR ] )

Associe une variable PHP avec une colonne pour une requête de récupération de données utilisant la fonction oci_fetch().

L'appel à la fonction oci_define_by_name() doit s'effectuer avant l'exécution de la fonction oci_execute().

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

column_name

Le nom de la colonne utilisé dans la requête.

Utilisez un nom en majuscule, pour les noms de colonne non sensibles à la casse (par défaut sous Oracle). Utilisez la casse exacte du nom de la colonne pour les noms de colonne sensibles à la casse.

variable

La variable PHP qui contiendra la valeur retournée par la colonne.

type

Le type de données à retourner. En général, ce paramètre n'est pas nécessaire. Notez que le style Oracle de conversion de données n'est pas appliqué ici. Par exemple, SQLT_INT sera ignoré et le type de données retourné sera SQLT_CHR.

Vous pouvez utiliser, optionnellement, la fonction oci_new_descriptor() pour allouer des descripteurs LOB/ROWID/BFILE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_define_by_name()

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid oci_parse($conn$sql);

// Les définitions DOIVENT être faîtes avant l'exécution de la requête
oci_define_by_name($stid'LOCATION_ID'$locid);
oci_define_by_name($stid'CITY'$city);

oci_execute($stid);

// Chaque récupération peuple les variables précédemment définies avec les données de la prochaine ligne
while (oci_fetch($stid)) {
    echo 
"Location id $locid is $city<br>\n";
}

// Affiche :
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_define_by_name() et des noms de colonne sensibles à la casse

<?php

/*
  Avant exécution, créez la table suivant avec un nom de colonne sensible à la casse :
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM mytab');

// Utilisez des majuscules pour les noms de colonne insensibles à la casse
oci_define_by_name($stid'ID'$id);

// Utilisez la casse exacte pour les noms de colonnes sensibles à la casse
oci_define_by_name($stid'MyDescription'$mydesc);

oci_execute($stid);

while (
oci_fetch($stid)) {
    echo 
"id $id is $mydesc<br>\n";
}

// Affiche :
//   id 1 is Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_define_by_name() et des colonnes de type LOB

<?php

/*
  Avant exécution, créez la table suivante :
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM mytab');

// Les définitions DOIVENT être effectuées avant l'exécution
oci_define_by_name($stid'ID'$id);
oci_define_by_name($stid'FRUIT'$fruit);  // $fruit will become a LOB descriptor

oci_execute($stid);

while (
oci_fetch($stid)) {
    echo 
$id " is " $fruit->load(100) . "<br>\n";
}

// Affiche :
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Exemple avec oci_define_by_name() et un type explicite

<?php

/*
  Avant exécution, créez la table suivante :
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT * FROM mytab');

// Les définitions DOIVENT être faîtes avant exécution
oci_define_by_name($stid'ID'$id);

$fruit oci_new_descriptor($connOCI_D_LOB);
oci_define_by_name($stid'FRUIT'$fruitOCI_D_CLOB);

oci_execute($stid);

while (
oci_fetch($stid)) {
    echo 
$id " is " $fruit->load(100) . "<br>\n";
}

// Affiche :
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocidefinebyname(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_new_descriptor() - Initialise un nouveau pointeur vide de LOB/FILE Oracle



oci_error

(PHP 5, PECL OCI8 >= 1.1.0)

oci_errorRetourne la dernière erreur Oracle

Description

array oci_error ([ resource $resource ] )

Retourne la dernière erreur Oracle.

La fonction doit être appelée immédiatement après qu'une erreur survient. Les erreurs sont réinitialisées après une requête réussie.

Liste de paramètres

resource

Pour la plupart des erreurs, le paramètre resource représente une ressource de connexion. Pour les erreurs de connexion avec les fonctions oci_connect(), oci_new_connect() ou oci_pconnect(), ne passez aucun paramètre.

Valeurs de retour

Si aucune erreur n'est trouvée, oci_error() retourne FALSE. Sinon, oci_error() retourne l'information concernant l'erreur sous la forme d'un tableau associatif.

Description du tableau retourné par oci_error()
Clé du tableau Type Description
code integer Le numéro d'erreur Oracle.
message string Le texte de l'erreur Oracle.
offset integer L'octet de position de l'erreur dans la requête SQL. S'il n'y a pas de requête, 0 sera placé comme valeur.
sqltext string Le texte de la requête SQL. S'il n'y a pas de requête, ce sera une chaîne vide.

Historique

Version Description
PHP 4.3 Les entrées offset et sqltext ont été ajoutées.

Exemples

Exemple #1 Exemple d'affichage d'un message d'erreur Oracle après une erreur de connexion

<?php
$conn 
oci_connect("hr""welcome""localhost/XE");
if (!
$conn) {
    
$e oci_error();   // Pour les erreurs oci_connect, ne passez pas de gestionnaire de connexion
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Exemple #2 Exemple d'affichage d'un message d'erreur Oracle après une erreur d'analyse

<?php
$stid 
oci_parse($conn"select ' from dual");  // Notez l'erreur avec les guillemets
if (!$stid) {
    
$e oci_error($conn);  // Pour les erreurs oci_parse, passez le gestionnaire de connexion
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Exemple #3 Exemple d'affichage d'un message d'erreur Oracle après une erreur d'exécution rencontré dans une requête SQL

<?php
$stid 
oci_parse($conn"select does_not_exist from dual");
$r oci_execute($stid);
if (!
$r) {
    
$e oci_error($stid);  // Pour les erreurs oci_execute, passez le gestionnaire de connexion
    
print htmlentities($e['message']);
    print 
"\n<pre>\n";
    print 
htmlentities($e['sqltext']);
    
printf("\n%".($e['offset']+1)."s""^");
    print  
"\n</pre>\n";
}
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocierror(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.



oci_execute

(PHP 5, PECL OCI8 >= 1.1.0)

oci_executeExécute une commande SQL Oracle

Description

bool oci_execute ( resource $statement [, int $mode = OCI_COMMIT_ON_SUCCESS ] )

Exécute une requête statement précédemment retournée par la fonction oci_parse().

Après exécution, les requêtes comme INSERT auront des données à valider sur la base de données par défaut. Pour les requêtes comme SELECT, l'exécution effectue la logique de la requête. Les résultats de la requête peuvent être récupérés par PHP avec des fonctions comme oci_fetch_array().

Chaque requête analysé peut être exécutée plusieurs fois, inutile donc de les analyser de nouveau. Ceci est pratique pour des requêtes de type INSERT lorsque des données y sont liées grâce à la fonction oci_bind_by_name().

Liste de paramètres

statement

Un identifiant de requête OCI valide.

mode

Un second paramètre optionnel peut prendre une des constantes suivantes :

Modes d'exécution
Constante Description
OCI_COMMIT_ON_SUCCESS Validation automatique sur la connexion lorsque la requête a été exécutée avec succès. C'est le comportement par défaut.
OCI_DEFAULT Obsolète depuis PHP 5.3.2 (PECL OCI8 1.4) mais toujours disponible pour des raisons de compatibilité. Utilisez la constante équivalent OCI_NO_AUTO_COMMIT dans votre nouveau code.
OCI_DESCRIBE_ONLY Rend les méta-donnes de la requête disponible aux fonctions comme oci_field_name() mais ne crée pas de jeu de résultats. Tout appel à des fonctions de récupérer comme oci_fetch_array() échouera.
OCI_NO_AUTO_COMMIT Ne valide pas automatiquement les modifications. Avant PHP 5.3.2 (PECL OCI8 1.4), utilisez la constante OCI_DEFAULT qui est un alias de la constante OCI_NO_AUTO_COMMIT.

L'utilisation du mode OCI_NO_AUTO_COMMIT commence une nouvelle transaction. Les transactions sont automatiquement annulées lorsque la connexion est fermée ou lorsque le script se termine. Appelez explicitement la fonction oci_commit() pour valider la transaction ou la fonction oci_rollback() pour l'annuler.

Lors de l'insertion ou de la mise à jour de données, l'utilisation de transactions est fortement recommandée pour garantir la consistence relationnelle des données, mais aussi en raison d'un gain non négligeable de performance.

Si le mode OCI_NO_AUTO_COMMIT est utilisé pour toutes opérations y compris les requêtes, et que les fonctions oci_commit() et oci_rollback() ne sont jamais appelées, OCI8 effectuera une annulation à la fin du script même si les données ont changées. Pour éviter ce comportement, la plupart des scripts n'utilise pas le mode OCI_NO_AUTO_COMMIT pour les requêtes ou les procédures stockées PL/SQL. Assurez-vous de la consistance transactionnelle appropriée de vos applications lors de l'utilisation de la fonction oci_execute() avec différents modes dans le même script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_execute() pour des requêtes

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'SELECT * FROM employees');
oci_execute($stid);

echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "") . "</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

?>

Exemple #2 Exemple avec oci_execute() sans spécifier de mode

<?php

// Avant exécution, créez la table :
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'INSERT INTO mytab (col1) VALUES (123)');

oci_execute($stid); // La ligne est validée et est immédiatement visible par les autres utilisateurs

?>

Exemple #3 Exemple avec oci_execute() et OCI_NO_AUTO_COMMIT

<?php

// Avant exécution, créez la table :
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid':bv'$i10);
for (
$i 1$i <= 5; ++$i) {
    
oci_execute($stidOCI_NO_AUTO_COMMIT);  // utilisez OCI_DEFAULT pour PHP <= 5.3.1
}
oci_commit($conn);  // valide toutes les nouvelles valeurs : 1, 2, 3, 4, 5

?>

Exemple #4 Exemple avec oci_execute() et différents modes dans le même script

<?php

// Avant exécution, créez la table :
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stidOCI_NO_AUTO_COMMIT);  // data not committed

$stid oci_parse($conn'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid);  // valide à la fois les valeurs 123 et 456

?>

Exemple #5 Exemple avec oci_execute() et OCI_DESCRIBE_ONLY

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'SELECT * FROM locations');
oci_execute($sOCI_DESCRIBE_ONLY);
for (
$i 1$i <= oci_num_fields($stid); ++$i) {
    echo 
oci_field_name($stid$i) . "<br>\n";
}

?>

Notes

Note:

Les transactions sont automatiquement annulées lorsque les connexions sont fermées, ou lorsque le script se termine, le premier arrivant en premier. Appelez explicitement la fonction oci_commit() pour valider une transaction.

Tout appel à la fonction oci_execute() qui utilise le mode OCI_COMMIT_ON_SUCCESS explicitement ou par défaut validera toutes les transactions en cours.

Toutes les requêtes Oracle DDL comme CREATE ou DROP valideront toutes les transactions en cours.

Note:

À cause du fait que la fonction oci_execute() envoie généralement la requête à la base de données, la fonction oci_execute() peut identifier les erreurs de syntaxe de la requête que la fonction oci_parse() aurait pû ne pas détecter.

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociexecute(). oci.name.compat.note;

Voir aussi



oci_fetch_all

(PHP 5, PECL OCI8 >= 1.1.0)

oci_fetch_allLit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel

Description

int oci_fetch_all ( resource $statement , array &$output [, int $skip = 0 [, int $maxrows = -1 [, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC ]]] )

Lit toutes les lignes d'un résultat Oracle dans un tableau à 2 dimensions. Par défaut, toutes les lignes sont retournées.

Cette fonction peut être appelée une seule fois pour chaque requête exécutée via la fonction oci_execute().

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

output

La variable qui va contenir les lignes retournées.

Les colonnes LOB sont retournées sous la forme d'une chaîne lorsqu'Oracle supporte la conversion.

Voir la fonction oci_fetch_array() pour plus d'informations sur la façon dont les données et leurs types sont récupérés.

skip

Nombre de lignes initiales à ignorer lors de la lecture du résultat. Par défaut, ce paramètre vaut 0, pour commencer la lecture à la première ligne.

maxrows

Nombre de lignes maximal à retourner. Par défaut, vaut -1, ce qui signifie que toutes les lignes disponibles seront retournées depuis le paramètre skip + 1.

flags

Le paramètre flags indique la structure du tableau mais aussi si des tableaux associatifs doivent être utilisés.

Modes de structure des tableaux pour la fonction oci_fetch_all()
Constante Description
OCI_FETCHSTATEMENT_BY_ROW Le tableau retourné contiendra un seul sous tableau par lignes.
OCI_FETCHSTATEMENT_BY_COLUMN Le tableau retourné contiendra un seul sous tableau par colonnes. C'est le comportement par défaut.

Les tableaux peuvent être indexés par l'en-tête de colonne ou numériquement.

Modes d'index des tableaux pour la fonction oci_fetch_all()
Constante Description
OCI_NUM Des indexes numériques sont utilisés pour chaque tableau de colonnes.
OCI_ASSOC Des indexes associatifs sont utilisés pour chaque tableau de colonnes. C'est le comportement par défaut.

Utilisez l'opérateur d'addition "+" pour choisir une combinaison de structures de tableaux et de modes d'index.

Les noms de colonnes qui ne sont pas sensibles à la casse (par défaut sous Oracle), auront des noms d'attributs en majuscule. Les noms de colonnes qui sont sensibles à la casse, auront des noms d'attributs utilisant exactement la même casse de la colonne. Utilisez la fonction var_dump() sur l'objet de résultat pour vérifier la casse appropriée à utiliser pour chaque requête.

Les requêtes qui possèdent plus d'une colonne dont le nom est identique doivent utiliser des alias. Sinon, seulement une des colonnes apparaîtra dans le tableau associatif.

Valeurs de retour

Retourne le nombre de lignes récupérées dans le paramètre output qui peut être de 0 ou plus, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_fetch_all()

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows oci_fetch_all($stid$res);

echo 
"$nrows rows fetched<br>\n";
var_dump($res);

// var_dump affichera :
//    2 rows fetched
//    array(2) {
//      ["POSTAL_CODE"]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(6) "10934x"
//      }
//      ["CITY"]=>
//      array(2) {
//        [0]=>
//        string(4) "Roma"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

// Affichage des résultats
echo "<table border='1'>\n";
foreach (
$res as $col) {
    echo 
"<tr>\n";
    foreach (
$col as $item) {
        echo 
"    <td>".($item !== null htmlentities($itemENT_QUOTES) : "")."</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch_all() et OCI_FETCHSTATEMENT_BY_ROW

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows oci_fetch_all($stid$resnullnullOCI_FETCHSTATEMENT_BY_ROW);

echo 
"$nrows lignes récupérées<br>\n";
var_dump($res);

// Affiche :
//    2 lignes récupérées
//    array(2) {
//      [0]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "00989x"
//        ["CITY"]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "10934x"
//        ["CITY"]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_fetch_all() et OCI_NUM

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows oci_fetch_all($stid$resnullnullOCI_FETCHSTATEMENT_BY_ROW OCI_NUM);

echo 
"$nrows lignes récupérées<br>\n";
var_dump($res);

// Affiche :
//    2 lignes récupérées
//    array(2) {
//      [0]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        [0]=>
//        string(6) "10934x"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

L'utilisation du paramètre skip est vraiment inefficace. Toutes les lignes à éviter sont comprises dans le jeu de résultats retourné par la base de données à PHP. Puis, elles sont écartées. Il est plus efficace d'utiliser une requête SQL pour restreindre le champ des lignes désirées. Voir la fonction oci_fetch_array() pour un exemple concrêt.

Note:

Les requêtes qui retournent un très grand nombre de lignes peuvent gagner en économie de mémoire lors de l'utilisation de fonctions récupérant une seule ligne, comme le fait la fonction oci_fetch_array().

Note:

Pour les requêtes retournant un très grand nombre de lignes, les performances peuvent être très grandement accrues en augmentant la valeur de l'option oci8.default_prefetch ou en utilisant la fonction oci_set_prefetch().

Note:

En PHP 5.0.0 et antérieure, vous devez utiliser la fonction ocifetchstatement() à la place. Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_set_prefetch() - Indique le nombre de lignes qui doivent être lues à l'avance par Oracle



oci_fetch_array

(PHP 5, PECL OCI8 >= 1.1.0)

oci_fetch_arrayLit une ligne d'un résultat sous forme de tableau associatif ou numérique

Description

array oci_fetch_array ( resource $statement [, int $mode ] )

Retourne un tableau contenant la prochaine ligne d'une requête. Chaque entrée de ce tableau correspond à une colonne de la ligne. Cette fonction est appelée typiquement dans une boucle qui retourne FALSE lorsqu'il n'y a plus de ligne de disponible.

Pour plus de détails sur le mapping des types de données effectué par l'extension OCI8, lisez les types de données supportés par le driver.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

mode

Le paramètre optionnel mode peut être la combinaison des constantes suivantes :

Modes pour oci_fetch_array()
Constante Description
OCI_BOTH Retourne une tableau, indexé numériquement et avec les noms de colonnes. Identique à OCI_ASSOC + OCI_NUM). C'est le comportement par défaut.
OCI_ASSOC Retourne un tableau associatif.
OCI_NUM Retourne un tableau indexé numériquement.
OCI_RETURN_NULLS Crée des éléments vides pour les valeurs NULL. La valeur des éléments sera la valeur NULL PHP.
OCI_RETURN_LOBS Retourne le contenu du LOB au lieu de leur descripteur.

Le mode par défaut est OCI_BOTH.

Utilisez l'opérateur d'addition "+" pour spécifier plus d'un mode à la fois.

Valeurs de retour

Retourne un tableau avec des indices numériques ou associatifs. S'il n'y a plus de ligne de disponible pour la requête statement alors FALSE sera retourné.

Par défaut, les colonnes LOB sont retournées sous la forme de descripteurs LOB.

Les colonnes DATE sont retournées sous la forme d'une chaîne formattée avec le format de date courante. Le format par défaut peut être modifié grâce aux variables d'environnement Oracle, comme NLS_LANG ou par l'exécution de la commande ALTER SESSION SET NLS_DATE_FORMAT.

Les noms de colonnes qui ne sont pas sensibles à la casse (par défaut sous Oracle), auront des noms d'attributs en majuscule. Les noms de colonnes qui sont sensibles à la casse, auront des noms d'attributs utilisant exactement la même casse de la colonne. Utilisez la fonction var_dump() sur l'objet de résultat pour vérifier la casse appropriée à utiliser pour chaque requête.

Exemples

Exemple #1 Exemple avec oci_fetch_array() avec OCI_BOTH

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while ((
$row oci_fetch_array($stidOCI_BOTH))) {
    
// Utilisez des noms de colonne en majuscule pour les indices des tableau associatif
    
echo $row[0] . " and " $row['DEPARTMENT_ID']   . " are the same<br>\n";
    echo 
$row[1] . " and " $row['DEPARTMENT_NAME'] . " are the same<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch_array() avec OCI_NUM

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT id, description FROM mytab');
oci_execute($stid);

while ((
$row oci_fetch_array($stidOCI_NUM))) {
    echo 
$row[0] . "<br>\n";
    echo 
$row[1]->read(11) . "<br>\n"// ceci affichera les 11 premiers octets depuis DESCRIPTION
}

// Affiche :
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_fetch_array() avec OCI_ASSOC

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT id, description FROM mytab');
oci_execute($stid);

while ((
$row oci_fetch_array($stidOCI_ASSOC))) {
    echo 
$row['ID'] . "<br>\n";
    echo 
$row['DESCRIPTION']->read(11) . "<br>\n"// ceci affichera les 11 premiers octets depuis DESCRIPTION
}

// Affiche :
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Exemple avec oci_fetch_array() avec OCI_RETURN_NULLS

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT 1, null FROM dual');
oci_execute($stid);
while ((
$row oci_fetch_array ($stidOCI_ASSOC))) { // Ignore NULLs
    
var_dump($row);
}

/*
Le code ci-dessus affiche :
  array(1) {
    [1]=>
    string(1) "1"
  }
*/

$stid oci_parse($conn'SELECT 1, null FROM dual');
oci_execute($stid);
while ((
$row oci_fetch_array ($stidOCI_ASSOC+OCI_RETURN_NULLS))) { // Récupère NULLs
    
var_dump($row);
}

/*
Le code ci-dessus affiche :
  array(2) {
    [1]=>
    string(1) "1"
    ["NULL"]=>
    NULL
  }
*/

?>

Exemple #5 oci_fetch_array() with OCI_RETURN_LOBS

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT id, description FROM mytab');
oci_execute($stid);

while ((
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_LOBS))) {
    echo 
$row['ID'] . "<br>\n";
    echo 
$row['DESCRIPTION'] . "<br>\n"// contient la totalité de DESCRIPTION
}

// Affiche :
//    1
//    A very long string

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #6 Exemple avec oci_fetch_array() avec des noms de colonnes sensibles à la casse

<?php

/*
   Avant l'exécution, créez la table :
      CREATE TABLE mytab ("Name" VARCHAR2(20), city VARCHAR2(20));
      INSERT INTO mytab ("Name", city) values ('Chris', 'Melbourne');
      COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'select * from mytab');
oci_execute($stid);
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS);

// Vu que 'Name' a été créé comme une colonne sensible à la casse, la même casse
// est utilisé pour les index du tableau. Cependant, 'CITY' doit être utilisé
// pour les index de colonne non sensible à la casse
print $row['Name'] . "<br>\n";   //  affiche Chris
print $row['CITY'] . "<br>\n";   //  affiche Melbourne

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #7 Exemple avec oci_fetch_array() avec des colonnes possédant des noms dupliqués

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mycity (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycity (id, name) values (1, 'Melbourne');
      CREATE TABLE mycountry (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycountry (id, name) values (1, 'Australia');
      COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql 'SELECT mycity.name, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id'
;
$stid oci_parse($conn$sql);
oci_execute($stid);
$row oci_fetch_array($stidOCI_ASSOC);
var_dump($row);

// L'affiche ne contient que UNE entrée "NAME" :
//    array(1) {
//      ["NAME"]=>
//      string(9) "Australia"
//    }

// Pour interroger un nom de colonne dupliqué, utilisez un alias de colonne SQL
// comme "AS ctnm":
$sql 'SELECT mycity.name AS ctnm, mycountry.name 
        FROM mycity, mycountry 
        WHERE mycity.id = mycountry.id'
;
$stid oci_parse($conn$sql);
oci_execute($stid);
$row oci_fetch_array($stidOCI_ASSOC);
var_dump($row);

// L'affichage contient maintenant 2 colonnes :
//    array(2) {
//      ["CTNM"]=>
//      string(9) "Melbourne"
//      ["NAME"]=>
//      string(9) "Australia"
//    }


oci_free_statement($stid);
oci_close($conn);

?>

Exemple #8 Exemple avec oci_fetch_array() et des colonnes DATE

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Définit le format utilisé pour les dates sur cette connexion.
// Pour des raisons de performance, vous devriez modifier le format via un trigger ou
// en utilisant les variables d'environnement
$stid oci_parse($conn"ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'");
oci_execute($stid);

$stid oci_parse($conn'SELECT hire_date FROM employees WHERE employee_id = 188');
oci_execute($stid);
$row oci_fetch_array($stidOCI_ASSOC);
echo 
$row['HIRE_DATE'] . "<br>\n";  // Affiche 1997-06-14

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #9 Exemple avec oci_fetch_array() et REF CURSOR

<?php
/*
  Créez la procédure stockée PL/SQL suivante avant l'exécution :

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'BEGIN myproc(:rc); END;');
$refcur oci_new_cursor($conn);
oci_bind_by_name($stid':rc'$refcur, -1OCI_B_CURSOR);
oci_execute($stid);

// Exécute le REF CURSOR retourné et y récupère un identifiant de requête
oci_execute($refcur);  
echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($refcurOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>".($item !== null htmlentities($itemENT_QUOTES) : "")."</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Exemple #10 Exemple avec oci_fetch_array() et un paramètre LIMIT

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// This is the query you want to execute
$sql 'SELECT city, postal_code FROM locations ORDER BY city';

// Cette requête imbriquée sélectionne une sous partie du jeu de lignes depuis $sql.
// En environnement de production, assurez-vous de vous protéger des injections SQL
// en concaténant les requêtes SQL
$limit_sql 
   
'select *
    from ( select a.*, rownum as rnum
        from (' 
$sql ') a
        where rownum < :FIRST_ROW + :NUM_ROWS )
    where rnum >= :FIRST_ROW'
;

$first 1;  //commence à la première ligne
$num   5;  // retourne 5 lignes
$stid oci_parse($conn$limit_sql);
oci_bind_by_name($stid':FIRST_ROW'$first);
oci_bind_by_name($stid':NUM_ROWS'$num);
oci_execute($stid);

while ((
$row oci_fetch_array($stidOCI_ASSOC))) {
    echo 
$row['CITY'] . " " $row['POSTAL_CODE'] . "<br>\n";
}

// Affiche :
//    Beijing 190518x
//    Bern 3095x
//    Bombay 490231x
//    Geneva 1730x
//    Hiroshima 6823x

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Les indices des tableaux associatifs doivent être en majuscule pour les colonnes standards Oracle qui ont été créée avec des noms sensibles à la casse.

Note:

Pour les requêtes retournant un très grand nombre de lignes, les performances peuvent être très grandement accrues en augmentant la valeur de l'option oci8.default_prefetch ou en utilisant la fonction oci_set_prefetch().

Note:

La fonction oci_fetch_array() est significativement plus lente que la fonction oci_fetch_assoc() ou oci_fetch_row(), mais est plus flexible.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_set_prefetch() - Indique le nombre de lignes qui doivent être lues à l'avance par Oracle



oci_fetch_assoc

(PHP 5, PECL OCI8 >= 1.1.0)

oci_fetch_assocLit une ligne d'un résultat sous forme de tableau associatif

Description

array oci_fetch_assoc ( resource $statement )

Retourne un tableau associatif contenant la prochaine ligne de résultat d'une requête. Chaque élément du tableau correspond à une colonne de la ligne. Cette fonction est appelé typiquement dans une boucle tant qu'elle ne retourne pas FALSE, indiquant qu'il n'y a plus de ligne de disponible.

oci_fetch_assoc() est identique à la fonction oci_fetch_array() et le mode OCI_ASSOC + OCI_RETURN_NULLS.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne un tableau associatif ou FALSE s'il n'y a plus de ligne de diponible pour la requête statement.

Notes

Note:

Voir oci_fetch_array() pour des exemples sur la récupération de lignes.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique



oci_fetch_object

(PHP 5, PECL OCI8 >= 1.1.0)

oci_fetch_objectLit une ligne d'un résultat sous forme d'objet

Description

object oci_fetch_object ( resource $statement )

Retourne un objet contenant la prochaine ligne de résultat d'une requête. Chaque attribut de cet objet correspond à une colonne de la ligne. Cette fonction est appelé typiquement dans une boucle tant qu'elle ne retourne pas FALSE, indiquant qu'il n'y a plus de lignes de disponible.

Pour plus de détails sur le mapping des types de données effectué par l'extension OCI8, lisez les types de données supportés par le driver.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne un objet. Chaque attribut de cet objet correspond à une colonne de la ligne. Si'il n'y a plus de lignes de disponible dans la requête statement alors FALSE est retourné.

Toutes les colonnes LOB sont retournées sous la forme de descripteurs LOB.

Les colonnes DATE sont retournées sous forme de chaînes formattées avec le format de date courante. Le format par défaut peut être changé à l'aide des variables d'environnement Oracle, comme NLS_LANG ou en exécutant la commande ALTER SESSION SET NLS_DATE_FORMAT.

Les noms de colonnes qui ne sont pas sensibles à la casse (par défaut sous Oracle), auront des noms d'attributs en majuscule. Les noms de colonnes qui sont sensibles à la casse, auront des noms d'attributs utilisant exactement la même casse de la colonne. Utilisez la fonction var_dump() sur l'objet de résultat pour vérifier la casse appropriée à utiliser pour chaque requête.

Les valeurs d'attribut seront NULL pour chaque champ de données NULL.

Exemples

Exemple #1 Exemple avec oci_fetch_object()

<?php

/*
  Avant l'exécution, créez la table :
    CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
    INSERT INTO mytab (id, description) values (1, 'Fish and Chips');
    COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT id, description FROM mytab');
oci_execute($stid);

while ((
$row oci_fetch_object($stid))) {
    
// Utilisez des noms d'attributs sensibles à la casse pour chaque colonne standart Oracle
    
echo $row->ID "<br>\n";
    echo 
$row->DESCRIPTION "<br>\n"
}

// Affiche :
//    1
//    Fish and Chips

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch_object() avec des noms de colonne sensibles à la casse

<?php

/*
  Avant l'exécution, créez la tableau avec une colonne dont le nom est sensible à la casse :
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);

while ((
$row oci_fetch_object($stid))) {
    
// Utilisez des noms d'attributs en majuscule pour chaque colonne Oracle standart
    
echo $row->ID "<br>\n";
    
// Utilisez la casse exacte pour les noms de colonnes sensibles à la casse
    
echo $row->MyDescription "<br>\n";   
}

// Affiche :
//    1
//    Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_fetch_object() avec des LOBs

<?php

/*
  Avant l'exécution, créez la table :
    CREATE TABLE mytab (id NUMBER, description CLOB);
    INSERT INTO mytab (id, description) values (1, 'A very long string');
    COMMIT;
*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT id, description FROM mytab');
oci_execute($stid);

while ((
$row oci_fetch_object($stid))) {
    echo 
$row->ID "<br>\n";
    
// Ce qui suit affichera les 11 premiers octets depuis DESCRIPTION
    
echo $row->DESCRIPTION->read(11) . "<br>\n"
}

// Affiche :
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique



oci_fetch_row

(PHP 5, PECL OCI8 >= 1.1.0)

oci_fetch_rowLit la prochaine ligne d'une requête sous forme de tableau numérique

Description

array oci_fetch_row ( resource $statement )

Retourne un tableau indexé numériquement contenant la prochaine ligne d'une requête. Chaque élément de ce tableau correspond à une colonne de la ligne. Cette fonction est appelé typiquement dans une boucle tant qu'elle ne retourne pas FALSE, indiquant qu'il n'y a plus de lignes de disponible.

oci_fetch_row() est identique à la fonction oci_fetch_array() et le mode OCI_NUM + OCI_RETURN_NULLS.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne un tableau indexé numériquement. S'il n'y a plus de lignes de disponible pour la requête statement alors FALSE sera retourné.

Notes

Note:

Voir oci_fetch_array() pour des exemples sur la récupération de lignes.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet



oci_fetch

(PHP 5, PECL OCI8 >= 1.1.0)

oci_fetchLit la prochaine ligne d'un résultat Oracle dans un buffer interne

Description

bool oci_fetch ( resource $statement )

Lit la prochaine ligne d'une requête dans un buffer interne accessible soit via la fonction oci_result(), soit en utilisant les variables précédemment définies avec la fonction oci_define_by_name().

Voir la fonction oci_fetch_array() pour des informations génériques sur la récupération de données.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE s'il n'y a plus de lignes de disponible pour la requête statement.

Exemples

Exemple #1 Exemple avec oci_fetch() avec des variables définies

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid oci_parse($conn$sql);

// La définition doit s'effectuer AVANT l'exécution
oci_define_by_name($stid'LOCATION_ID'$locid);
oci_define_by_name($stid'CITY'$city);

oci_execute($stid);

// Chaque récupération utilise les variables précédemment définies avec les données de la prochaine ligne
while (oci_fetch($stid)) {
    echo 
"Location id $locid is $city<br>\n";
}

// Affiche :
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch() et oci_result()

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid oci_parse($conn$sql);
oci_execute($stid);

while (
oci_fetch($stid)) {
    echo 
oci_result($stid'LOCATION_ID') . " is ";
    echo 
oci_result($stid'CITY') . "<br>\n";
}

// Affiche :
//   1000 is Roma
//   1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocifetch(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi

  • oci_define_by_name() - Associe une variable PHP avec une colonne pour une requête de récupération de données
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_result() - Retourne la valeur d'une colonne dans un résultat Oracle



oci_field_is_null

(PHP 5, PECL OCI8 >= 1.1.0)

oci_field_is_nullTest si la valeur d'une colonne Oracle est NULL

Description

bool oci_field_is_null ( resource $statement , mixed $field )

Vérifie si le champ field donné, depuis la requête statement est NULL.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ ou le nom d'un champ (en majuscule).

Valeurs de retour

Retourne TRUE si field vaut NULL, FALSE sinon.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnisnull(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_is_null(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_field_name

(PHP 5, PECL OCI8 >= 1.1.0)

oci_field_nameRetourne le nom d'un champ Oracle

Description

string oci_field_name ( resource $statement , int $field )

Retourne le nom du champ field.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou un nom de champ.

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_name()

<?php
$conn 
oci_connect("scott""tiger");
$stmt oci_parse($conn"SELECT * FROM emp");
oci_execute($stmt);

echo 
"<table border=\"1\">";
echo 
"<tr>";
echo 
"<th>Nom</th>";
echo 
"<th>Type</th>";
echo 
"<th>Taille</th>";
echo 
"</tr>";

$ncols oci_num_fields($stmt);

for (
$i 1$i <= $ncols$i++) {
    
$column_name  oci_field_name($stmt$i);
    
$column_type  oci_field_type($stmt$i);
    
$column_size  oci_field_size($stmt$i);

    echo 
"<tr>";
    echo 
"<td>$column_name</td>";
    echo 
"<td>$column_type</td>";
    echo 
"<td>$column_size</td>";
    echo 
"</tr>";
}

echo 
"</table>\n";
oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnname(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_name(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi



oci_field_precision

(PHP 5, PECL OCI8 >= 1.1.0)

oci_field_precisionLit la précision d'un champ Oracle

Description

int oci_field_precision ( resource $statement , int $field )

Retourne la précision du champ field.

Pour les colonnes de type FLOAT, la précision et non nulle, et l'échelle est de -127. Si la précision est 0, alors la colonne est de type NUMBER. Sinon, elle est de type NUMBER(precision, scale).

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou un nom de champ.

Valeurs de retour

Retourne la précision, sous la forme d'un entier, ou FALSE si une erreur survient.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnprecision(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_precision(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi



oci_field_scale

(PHP 5, PECL OCI8 >= 1.1.0)

oci_field_scaleLit l'échelle d'une colonne Oracle

Description

int oci_field_scale ( resource $statement , int $field )

Lit l'échelle d'une colonne Oracle.

Pour les colonnes de type FLOAT, la précision et non nulle, et l'échelle est de -127. Si la précision est 0, alors la colonne est de type NUMBER. Sinon, elle est de type NUMBER(precision, scale).

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou le nom d'un champ.

Valeurs de retour

Retourne l'échelle, sous la forme d'un entier, ou FALSE si une erreur survient.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnscale(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_scale(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi



oci_field_size

(PHP 5, PECL OCI8 >= 1.1.0)

oci_field_sizeRetourne la taille d'un champ Oracle

Description

int oci_field_size ( resource $statement , mixed $field )

Retourne la taille du champ field Oracle .

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index du champ (l'indexation commence à 1) ou le nom du champ.

Valeurs de retour

Retourne la taille du champ field en octets, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_size()

<?php
$conn 
oci_connect("scott""tiger");
$stmt oci_parse($conn"SELECT * FROM emp");
oci_execute($stmt);

echo 
"<table border=\"1\">";
echo 
"<tr>";
echo 
"<th>Name</th>";
echo 
"<th>Type</th>";
echo 
"<th>Length</th>";
echo 
"</tr>";

$ncols oci_num_fields($stmt);

for (
$i 1$i <= $ncols$i++) {
    
$column_name  oci_field_name($stmt$i);
    
$column_type  oci_field_type($stmt$i);
    
$column_size  oci_field_size($stmt$i);
    echo 
"<tr>";
    echo 
"<td>$column_name</td>";
    echo 
"<td>$column_type</td>";
    echo 
"<td>$column_size</td>";
    echo 
"</tr>";
}

echo 
"</table>";

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnprecision(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_precision(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi



oci_field_type_raw

(PHP 5, PECL OCI8 >= 1.1.0)

oci_field_type_rawLit directement le type de colonne Oracle

Description

int oci_field_type_raw ( resource $statement , int $field )

Lit directement le type de colonne Oracle.

Cependant, si vous souhaitez avoir le type de colonne, oci_field_type() sera plus adapté.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index d'un champ (en commençant à 1) ou le nom d'un champ.

Valeurs de retour

Retourne le type brut de données Oracle, pour le champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumntyperaw(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_type_raw(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_field_type

(PHP 5, PECL OCI8 >= 1.1.0)

oci_field_typeRetourne le type de données d'un champ Oracle

Description

mixed oci_field_type ( resource $statement , int $field )

Retourne le type de données d'un champ.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index du champ (l'indexation commence à 1) ou le nom.

Valeurs de retour

Retourne le type de données d'un champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Valeurs de retour

Exemple #1 Exemple avec oci_field_type()

<?php
$conn 
oci_connect("scott""tiger");
$stmt oci_parse($conn"SELECT * FROM emp");
oci_execute($stmt);

echo 
"<table border=\"1\">";
echo 
"<tr>";
echo 
"<th>Name</th>";
echo 
"<th>Type</th>";
echo 
"<th>Length</th>";
echo 
"</tr>";

$ncols oci_num_fields($stmt);

for (
$i 1$i <= $ncols$i++) {
    
$column_name  oci_field_name($stmt$i);
    
$column_type  oci_field_type($stmt$i);
    
$column_size  oci_field_size($stmt$i);

    echo 
"<tr>";
    echo 
"<td>$column_name</td>";
    echo 
"<td>$column_type</td>";
    echo 
"<td>$column_size</td>";
    echo 
"</tr>";
}

echo 
"</table>\n";

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumntype(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_type(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi



oci_free_statement

(PHP 5, PECL OCI8 >= 1.1.0)

oci_free_statementLibère toutes les ressources réservées par un résultat Oracle

Description

bool oci_free_statement ( resource $statement )

Libère toutes les ressources réservées par le résultat ou curseur Oracle statement. Ce dernier a été obtenu de la fonction oci_parse(), ou directement de Oracle.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



oci_internal_debug

(PHP 5, PECL OCI8 >= 1.1.0)

oci_internal_debugActive ou désactive l'affichage des données de déboguage Oracle

Description

void oci_internal_debug ( bool $onoff )

Active ou désactive l'affichage des données de déboguage Oracle.

Liste de paramètres

onoff

Définissez ce paramètre à 0 pour désactiver l'affichage, ou à 1 pour l'activer.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociinternaldebug(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_internal_debug(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



OCI-Lob->append

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->appendAjoute des données à un LOB Oracle

Description

bool OCI-Lob::append ( OCI-Lob $lob_from )

Ajoute des données à un LOB Oracle.

L'écriture dans un LOB avec OCI-Lob->append() échouera si la bufferisation a été préalablement activée. Vous devez désactiver la bufferisation avant d'ajouter des données. Vous aurez peut être à vider les buffers avec la fonction OCI-Lob->flush avant de la désactiver.

Liste de paramètres

lob_from

Le LOB copié.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Lob->close

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->closeFerme un LOB Oracle

Description

bool OCI-Lob::close ( void )

Ferme un LOB Oracle. Cette fonction doit être utilisée uniquement avec OCI-Lob->writeTemporary.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



oci_lob_copy

(PHP 5, PECL OCI8 >= 1.1.0)

oci_lob_copyCopie un LOB Oracle

Description

bool oci_lob_copy ( OCI-Lob $lob_to , OCI-Lob $lob_from [, int $length = 0 ] )

Copie un LOB ou une partie d'un LOB vers un autre LOB.Les anciennes données du LOB de destination seront écrasées par les nouvelles.

Si vous devez copier une partie spécifique d'un LOB vers une position particulière d'un LOB, utilisez la fonction oci_lob_seek() pour déplacer le pointeur interne de LOB.

Liste de paramètres

lob_to

Le LOB de destination.

lob_from

Le LOB copié.

length

Indique la taille des données à copier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Lob->eof

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->eofTest la fin du LOB Oracle

Description

bool OCI-Lob::eof ( void )

Vérifie si le pointeur interne d'un LOB est à la fin.

Valeurs de retour

Retourne TRUE si le pointeur interne de LOB a atteint la fin du LOB, et FALSE sinon.

Voir aussi



OCI-Lob->erase

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->eraseÉcrase une partie d'un LOB Oracle

Description

int OCI-Lob::erase ([ int $offset [, int $length ]] )

Écrase la partie du LOB Oracle commençant à l'offset offset, sur la longueur de length octets.

Pour les BLOB, l'effacement signifie que la valeur existante du LOB est remplacée par le caractère 0. Pour les CLOB, ce sont des espaces.

Liste de paramètres

offset

length

Valeurs de retour

Retourne le nombre de caractères/octets effacés ou FALSE si une erreur survient.

Voir aussi



OCI-Lob->export

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->exportExporte un LOB Oracle dans un fichier

Description

bool OCI-Lob::export ( string $filename [, int $start [, int $length ]] )

Exporte un LOB Oracle dans un fichier.

Liste de paramètres

filename

Le chemin vers le fichier.

start

Indique la position à partir de laquelle l'on doit commencer à exporter.

length

Indique la taille des données à exporter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



OCI-Lob->flush

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->flushÉcrit les LOB Oracle sur le disque

Description

bool OCI-Lob::flush ([ int $flag ] )

Écrit les LOB Oracle sur le disque.

Liste de paramètres

flag

Par défaut, les ressources ne sont pas libérées, mais en utilisant l'option flag avec la valeur OCI_LOB_BUFFER_FREE, vous pouvez le faire explicitement. Assurez-vous de bien savoir ce que vous faites : la prochaine lecture ou écriture dans le même LOB demandera alors une requête au serveur, et la réinitialisation des ressources. Il est recommandé d'utiliser l'option OCI_LOB_BUFFER_FREE uniquement si vous n'avez plus besoin du LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Retourne FALSE si la bufferisation n'a pas été activée, ou si une erreur est survenue.



OCI-Lob->free

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->freeDétruit un pointeur de LOB Oracle

Description

bool OCI-Lob::free ( void )

Libère les ressources associées avec la ressource, précédemment alloué avec oci_new_descriptor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Lob->getBuffering

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->getBufferingRetourne l'état de bufferisation LOB d'Oracle

Description

bool OCI-Lob::getBuffering ( void )

Retourne l'état de bufferisation LOB d'Oracle.

Valeurs de retour

Retourne FALSE si la bufferisation des LOB est désactivée, et TRUE si elle l'est.



OCI-Lob->import

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->importImporte un fichier dans LOB Oracle

Description

bool OCI-Lob::import ( string $filename )

Écrit les données du fichier filename dans le LOB, à partir de la position courante.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



oci_lob_is_equal

(PHP 5, PECL OCI8 >= 1.1.0)

oci_lob_is_equalCompare deux LOB/FILE Oracle

Description

bool oci_lob_is_equal ( OCI-Lob $lob1 , OCI-Lob $lob2 )

Compare deux LOB/FILE Oracle.

Liste de paramètres

lob1

Un identifiant LOB.

lob2

Un identifiant LOB.

Valeurs de retour

Retourne TRUE si ces objets sont égaux, FALSE sinon.



OCI-Lob->load

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->loadRetourne le contenu d'un LOB

Description

string OCI-Lob::load ( void )

Lit le contenu d'un LOB Oracle. Le script peut être interrompu à cause de memory_limit, si ce dernier dépasse la limite. Dans la plupart des cas, il est recommandé d'utiliser la fonction OCI-Lob->read à la place. En cas d'erreur, OCI-Lob->load() retourne FALSE.

Valeurs de retour

Retourne le contenu de l'objet, ou FALSE si une erreur survient.

Voir aussi



OCI-Lob->read

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->readLit une partie d'un LOB Oracle

Description

string OCI-Lob::read ( int $length )

Lit length octets à partir de la position courante du LOB.

La lecture stoppe lorsque length ont été lus, ou que la fin du LOB a été atteinte. Le pointeur de LOB sera déplacé par cette lecture.

Liste de paramètres

length

La taille des données à lire, en octets.

Valeurs de retour

Retourne le contenu, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.



OCI-Lob->rewind

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->rewindRamène le pointeur interne d'un LOB Oracle au début

Description

bool OCI-Lob::rewind ( void )

Ramène le pointeur interne d'un LOB Oracle au début.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Lob->save

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->saveSauvegarde des données dans un LOB Oracle

Description

bool OCI-Lob::save ( string $data [, int $offset ] )

Sauvegarde des données dans un LOB Oracle.

Liste de paramètres

data

Les données à sauvegarder.

offset

Peut être utilisé pour indiquer la position depuis le début du LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Lob->saveFile

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->saveFileAlias de oci_lob_import()

Description

Cette fonction est un alias de : oci_lob_import().



OCI-Lob->seek

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->seekDéplace le pointeur interne d'un LOB Oracle

Description

bool OCI-Lob::seek ( int $offset [, int $whence = OCI_SEEK_SET ] )

Déplace le pointeur interne d'un LOB Oracle.

Liste de paramètres

offset

Indique la distance de déplacement. Le type de déplacement est spécifié avec whence.

whence

Peut être une constante parmi :

  • OCI_SEEK_SET - déplace le pointeur à la position offset.
  • OCI_SEEK_CUR - ajoute offset octets à la position courante.
  • OCI_SEEK_END - ajoute offset octets à la fin du LOB (utilisez une valeur négative pour obtenir une position avant la fin du LOB).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



OCI-Lob->setBuffering

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->setBufferingActive/désactive la bufferisation des LOB Oracle

Description

bool OCI-Lob::setBuffering ( bool $on_off )

Active ou désactive la bufferisation des LOB Oracle, en fonction du paramètre on_off.

Utiliser cette fonction apporte des améliorations de performances par bufferisation des petites lectures et écritures de LOB : le buffer limite les allers/retours avec le serveur. oci_lob_flush() doit être utilisé pour vider les buffers une fois que vous avez fini de travailler avec le LOB.

Liste de paramètres

on_off

TRUE pour l'activer, et FALSE pour le désactiver.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Des appels répétés à lob->setbuffering() avec la même valeur de paramètre renverra toujours TRUE.



OCI-Lob->size

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->sizeRetourne la taille d'un LOB Oracle

Description

int OCI-Lob::size ( void )

Retourne la taille d'un LOB Oracle.

Valeurs de retour

Retourne la taille du LOB ou FALSE si une erreur survient. Les objets vides ont une taille de 0.



OCI-Lob->tell

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->tellRetourne la position courante du pointeur de LOB

Description

int OCI-Lob::tell ( void )

Retourne la position courante du pointeur de LOB.

Valeurs de retour

Retourne la position courante du pointeur interne du LOB, ou bien FALSE si une erreur survient.



OCI-Lob->truncate

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->truncateTronque un LOB Oracle

Description

bool OCI-Lob::truncate ([ int $length = 0 ] )

Tronque un LOB Oracle.

Liste de paramètres

length

Si length est fourni, OCI-Lob->truncate() tronque le LOB à length octets. Sinon, OCI-Lob->truncate() va purger complètement le LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



OCI-Lob->write

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->writeÉcrit des données dans un LOB Oracle

Description

int OCI-Lob::write ( string $data [, int $length ] )

Écrit les données de la variable data à la position courante du LOB.

Liste de paramètres

data

Les données à écrire dans le LOB.

length

Si ce paramètre est fourni, l'écriture s'arrêtera après length octets, ou à la fin de la variable data.

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Voir aussi



OCI-Lob->writeTemporary

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->writeTemporaryÉcrit un LOB Oracle temporaire

Description

bool OCI-Lob::writeTemporary ( string $data [, int $lob_type = OCI_TEMP_CLOB ] )

Crée un LOB temporaire et y écrit les données data.

Il faut utiliser la fonction OCI-Lob->close lorsque vous avez fini de travailler avec le LOB.

Liste de paramètres

data

Les données à écrire.

lob_type

Peut prendre l'une des valeurs suivantes :

  • OCI_TEMP_BLOB sert à créer un BLOB temporaire.
  • OCI_TEMP_CLOB sert à créer un CLOB temporaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



OCI-Lob->writeToFile

(PHP 5, PECL OCI8 >= 1.1.0)

OCI-Lob->writeToFileAlias de oci_lob_export()

Description

Cette fonction est un alias de : oci_lob_export().



oci_new_collection

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_collectionInitialise une nouvelle collection Oracle

Description

OCI-Collection oci_new_collection ( resource $connection , string $tdo [, string $schema = NULL ] )

Initialise une nouvelle collection Oracle.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

tdo

Doit être un type nommé valide (en majuscule).

schema

Doit pointer sur le schéma de base de données, où le type a été créé. Le nom de l'utilisateur courant est la valeur par défaut.

Valeurs de retour

Retourne un nouvel objet OCICollection, ou FALSE si une erreur survient. error.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewcollection(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_collection(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_new_connect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_connectConnexion au serveur Oracle en utilisant une seule connexion

Description

resource oci_new_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Établit une nouvelle connexion au serveur Oracle et s'identifie.

Contrairement aux fonctions oci_connect() et oci_pconnect(), oci_new_connect() ne met pas en cache les connexions et retourne toujours un gestionnaire de connexion nouvellement ouvert. Ceci est très utile si votre application a besoin d'une isolation transactionnelle entre deux jeux de requêtes.

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe pour l'utilisateur.

connection_string

Contient l'instance Oracle sur laquelle nous devons nous connecter. Ce peut être une » chaîne de connexion rapide, un nom de connexion issue du fichier tnsnames.ora, ou le nom d'une instance locale Oracle.

Si non spécifié, PHP utilise des variables d'environnement comme TWO_TASK (sous Linux) ou LOCAL (sous Windows) et ORACLE_SID pour déterminer l'instance Oracle sur laquelle nous devons nous connecter.

Pour utiliser la méthode de connexion rapide, PHP doit être lié avec la bibliothèque cliente Oracle 10g ou supérieur. La chaîne de connexion rapide pour Oracle 10g ou supérieur est de la forme : [//]host_name[:port][/service_name]. Avec Oracle 11g, la syntaxe est : [//]host_name[:port][/service_name][:server_type][/instance_name]. Les noms des services peuvent être trouvés en exécutant l'utilitaire Oracle lsnrctl status sur la machine exécutant la base de données.

Le fichier tnsnames.ora peut être dans le chemin de recherche d'Oracle Net, qui inclut $ORACLE_HOME/network/admin et /etc. Une solution alternative serait de définit TNS_ADMIN afin que le fichier $TNS_ADMIN/tnsnames.ora soit lu. Assurez-vous que le daemon exécutant le serveur web a accès en lecture à ce fichier.

character_set

Détermine le jeu de caractères utilisé par la bibliothèque cliente Oracle. Le jeu de caractères n'a pas besoin d'être identique à celui utilisé par la base de données. S'il ne correspond pas, Oracle ferait de son mieux pour convertir les données depuis le jeu de caractères de la base de données. Suivant les jeux de caractères, il se peut que le résultat ne soit pas parfait. De plus, cette convertion nécessite un peu de temps système.

Si non spécifié, la bibliothèque cliente Oracle déterminera un jeu de caractères depuis la variable d'environnement NLS_LANG.

Le fait de passer ce paramètre peut réduire la durée de connexion.

session_mode

Ce paramètre est disponible depuis PHP 5 (PECL OCI8 1.1) et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si soit la constante OCI_SYSOPER, soit la constante OCI_SYSDBA est spécifiée, cette fonction tentera d'établir une connexion privilégiée en utilisant des identifiants externes. Les connexions privilégiées sont désactivées par défault. Pour les activer, vous devez définir l'option oci8.privileged_connect à On.

PHP 5.3 (PECL OCI8 1.3.4) introduisent la valeur de mode OCI_CRED_EXT. Ce mode demande à Oracle d'utiliser une identification externe ou bien issue du système d'exploitation, qui doit être configurée dans la base de données. Le drapeau OCI_CRED_EXT ne peut être utilisé qu'avec le nom d'utilisateur "/" associé à un mot de passe vide. L'option oci8.privileged_connect peut être définie à On ou Off.

OCI_CRED_EXT peut être combiné avec le mode OCI_SYSOPER ou le mode OCI_SYSDBA.

OCI_CRED_EXT n'est pas supporté sous Windows pour des raisons de sécurité.

Valeurs de retour

Retourne un identifiant de connexion, ou FALSE si une erreur survient.

Exemples

Voici comment séparer des transactions.

Exemple #1 Exemple avec oci_new_connect()

<?php
echo "<html><pre>";
$db "";

$c1 oci_connect("scott""tiger"$db);
$c2 oci_new_connect("scott""tiger"$db);

function 
create_table($conn)
{
  
$stmt oci_parse($conn"create table scott.hallo (test
varchar2(64))"
);
  
oci_execute($stmt);
  echo 
$conn " created table\n\n";
}

function 
drop_table($conn)
{
  
$stmt oci_parse($conn"drop table scott.hallo");
  
oci_execute($stmt);
  echo 
$conn " dropped table\n\n";
}

function 
insert_data($conn)
{
  
$stmt oci_parse($conn"insert into scott.hallo
            values('
$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  
oci_execute($stmtOCI_DEFAULT);
  echo 
$conn " inserted hallo\n\n";
}

function 
delete_data($conn)
{
  
$stmt oci_parse($conn"delete from scott.hallo");
  
oci_execute($stmtOCI_DEFAULT);
  echo 
$conn " deleted hallo\n\n";
}

function 
commit($conn)
{
  
oci_commit($conn);
  echo 
$conn " committed\n\n";
}

function 
rollback($conn)
{
  
oci_rollback($conn);
  echo 
$conn " rollback\n\n";
}

function 
select_data($conn)
{
  
$stmt oci_parse($conn"select * from scott.hallo");
  
oci_execute($stmtOCI_DEFAULT);
  echo 
$conn "----selecting\n\n";
  while (
oci_fetch($stmt)) {
    echo 
$conn " <" oci_result($stmt"TEST") . ">\n\n";
  }
  echo 
$conn "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo 
"</pre></html>";
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinlogon(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_new_cursor

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_cursorAlloue un nouveau curseur Oracle

Description

resource oci_new_cursor ( resource $connection )

Alloue un nouveau curseur Oracle sur la connexion spécifiée.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

Valeurs de retour

Retourne un nouveau gestionnaire de connexion, ou FALSE si une erreur survient.

Exemples

Exemple #1 Utiliser un REF CURSOR issu d'une procédure enregistrée

<?php
// supposons que votre procédure stockée info.output retourne un curseur de référence dans :data

$conn oci_connect("scott""tiger");
$curs oci_new_cursor($conn);
$stmt oci_parse($conn"begin info.output(:data); end;");

oci_bind_by_name($stmt"data"$curs, -1OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while (
$data oci_fetch_row($curs)) {
    
var_dump($data);
}

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>

Exemple #2 Utiliser un REF CURSOR issu d'une commande SELECT

<?php
echo "<html><body>";
$conn oci_connect("scott""tiger");
$count_cursor "CURSOR(select count(empno) num_emps from emp " .
                
"where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt oci_parse($conn"select deptno,dname,$count_cursor");

oci_execute($stmt);
echo 
"<table border=\"1\">";
echo 
"<tr>";
echo 
"<th>DEPT NAME</th>";
echo 
"<th>DEPT #</th>";
echo 
"<th># EMPLOYEES</th>";
echo 
"</tr>";

while (
$data oci_fetch_assoc($stmt)) {
    echo 
"<tr>";
    
$dname  $data["DNAME"];
    
$deptno $data["DEPTNO"];
    echo 
"<td>$dname</td>";
    echo 
"<td>$deptno</td>";
    
oci_execute($data["EMPCNT"]);
    while (
$subdata oci_fetch_assoc($data["EMPCNT"])) {
        
$num_emps $subdata["NUM_EMPS"];
        echo  
"<td>$num_emps</td>";
    }
    echo 
"</tr>";
}
echo 
"</table>";
echo 
"</body></html>";
oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewcursor(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_collection(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_new_descriptor

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_descriptorInitialise un nouveau pointeur vide de LOB/FILE Oracle

Description

OCI-Lob oci_new_descriptor ( resource $connection [, int $type = OCI_DTYPE_LOB ] )

Initialise un nouveau pointeur vide de LOB/FILE Oracle.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

type

Les valeurs acceptées pour type sont : OCI_D_FILE, OCI_D_LOB et OCI_D_ROWID.

Valeurs de retour

Retourne une nouvelle ressource LOB ou FILE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_new_descriptor()

<?php
/* Ce script est fait pour être appelé dans un formulaire HTML
 * Il attends les variables $user, $password, $table, $where, et $commitsize
 * Le script efface alors les lignes sélectionnées avec ROWID et valide
 * l'effacement après chaque groupe de $commitsize lignes.
 * (Utilisez avec prudence, car il n'y a pas d'annulation possible).
 */
$conn oci_connect($user$password);
$stmt oci_parse($conn"select rowid from $table $where");
$rowid oci_new_descriptor($connOCI_D_ROWID);
oci_define_by_name($stmt"ROWID"$rowid);
oci_execute($stmt);
while (
oci_fetch($stmt)) {
    
$nrows oci_num_rows($stmt);
    
$delete oci_parse($conn"delete from $table where ROWID = :rid");
    
oci_bind_by_name($delete":rid"$rowid, -1OCI_B_ROWID);
    
oci_execute($delete);
    echo 
"$nrows\n";
    if ((
$nrows $commitsize) == 0) {
        
oci_commit($conn);
    }
}
$nrows oci_num_rows($stmt);
echo 
"$nrows deleted...\n";
oci_free_statement($stmt);
oci_close($conn);
?>
<?php
/* Ce script illustre le chargement de LOB
 * Le formulaire utilisé dans cet exemple ressemble à ceci : 
 * <form action="upload.php" method="post" enctype="multipart/form-data">
 * <input type="file" name="lob_upload" />
 * ...
 */
  
if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  
} else {

     
// $lob_upload contient le fichier temporaire

     // Reportez-vous à la section sur le téléchargement de fichiers
     // pour sécuriser vos téléchargements

     
$conn oci_connect($user$password);
     
$lob oci_new_descriptor($connOCI_D_LOB);
     
$stmt oci_parse($conn"insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob"
);
     
oci_bind_by_name($stmt':the_blob'$lob, -1OCI_B_BLOB);
     
oci_execute($stmtOCI_DEFAULT);
     if (
$lob->savefile($lob_upload)){
        
oci_commit($conn);
        echo 
"BLOB chargé !\n";
     }else{
        echo 
"Impossible de charger le BLOB\n";
     }
     
oci_free_descriptor($lob);
     
oci_free_statement($stmt);
     
oci_close($conn);
  }
?>

Exemple #2 Exemple avec oci_new_descriptor()

<?php
/* Appel d'une procédure PL/SQL stockée qui prend un clobs
 * en entrée (PHP 4 >= 4.0.6). 
 * Exemple de signateure de procédure stockée PL/SQL :
 *
 * PROCEDURE save_data
 *   Argument Name                  Type                    In/Out Default?
 *   ------------------------------ ----------------------- ------ --------
 *   KEY                            NUMBER(38)              IN
 *   DATA                           CLOB                    IN
 *
 */

$conn oci_connect($user$password);
$stmt oci_parse($conn"begin save_data(:key, :data); end;");
$clob oci_new_descriptor($connOCI_D_LOB);
oci_bind_by_name($stmt':key'$key);
oci_bind_by_name($stmt':data'$clob, -1OCI_B_CLOB);
$clob->write($data);
oci_execute($stmtOCI_DEFAULT);
oci_commit($conn);
$clob->free();
oci_free_statement($stmt);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewdescriptor(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_descriptor(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi



oci_num_fields

(PHP 5, PECL OCI8 >= 1.1.0)

oci_num_fieldsRetourne le nombre de colonnes dans un résultat Oracle

Description

int oci_num_fields ( resource $statement )

Retourne le nombre de colonnes dans le résultat Oracle statement.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le nombre de colonnes, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_num_fields()

<?php
$conn 
oci_connect("scott""tiger");
$stmt oci_parse($conn"select * from emp");

oci_execute($stmt);

while (
oci_fetch($stmt)) {
    echo 
"\n";
    
$ncols oci_num_fields($stmt);
    for (
$i 1$i <= $ncols$i++) {
        
$column_name  oci_field_name($stmt$i);
        
$column_value oci_result($stmt$i);
        echo 
$column_name ': ' $column_value "\n";
    }
    echo 
"\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinumcols(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_num_fields(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_num_rows

(PHP 5, PECL OCI8 >= 1.1.0)

oci_num_rowsRetourne le nombre de lignes affectées durant la dernière commande Oracle

Description

int oci_num_rows ( resource $statement )

Retourne le nombre de lignes affectées durant la dernière commande Oracle.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le nombre de lignes affectées, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_num_rows()

<?php
$conn 
oci_connect("scott""tiger");

$stmt oci_parse($conn"create table emp2 as select * from emp");
oci_execute($stmt);
echo 
oci_num_rows($stmt) . " lignes insérées.<br />";
oci_free_statement($stmt);

$stmt oci_parse($conn"delete from emp2");
oci_execute($stmtOCI_DEFAULT);
echo 
oci_num_rows($stmt) . " lignes effacées.<br />";
oci_commit($conn);
oci_free_statement($stmt);

$stmt oci_parse($conn"drop table emp2");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

Notes

Note:

Cette fonction ne retourne pas le nombre de lignes sélectionnées. Pour les commandes de type SELECT, cette fonction va retourner le nombre de ligne qui ont été lues dans le buffer avec oci_fetch*().

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocirowcount(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_num_rows(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_parse

(PHP 5, PECL OCI8 >= 1.1.0)

oci_parsePrépare une requête SQL avec Oracle

Description

resource oci_parse ( resource $connection , string $sql_text )

Prépare la requête sql_text en utilisant la connexion connection et retourne l'identifiant de requête qui pourra être utilisé avec les fonctions oci_bind_by_name(), oci_execute(), etc..

Les identifiants de requête peuvent être libérés en utilisant la fonction oci_free_statement() ou en définissant la variable correspondante à la valeur null.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou oci_new_connect().

sql_text

La requête SQL ou PL/SQL.

Les requêtes SQL ne doivent pas se terminer par un point-virgule (";"). Les requêtes PL/SQL doivent se terminer par un point-virgule (";").

Valeurs de retour

Retourne un gestionnaire de requête en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_parse()

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');

// Analyse de la requête. Notez qu'il n'y a pas de point-virgule à la fin de la requête SQL
$stid oci_parse($conn'SELECT * FROM employees');
oci_execute($stid);

echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "") . "</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

?>

Exemple #2 Exemple avec oci_parse() et une requête PL/SQL

<?php

/*
  Avant d'exécuter ce code PHP, vous devez créer une procédure stockée en
  SQL*Plus ou SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 8;

// Lors de l'analyse PL/SQL, il doit y avoir un point-virgule à la fin de la chaîne
$stid oci_parse($conn'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid':p1'$p1);
oci_bind_by_name($stid':p2'$p240);

oci_execute($stid);

print 
"$p2\n";   // affiche 16

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Cette fonction ne valide pas la requête sql_text. La seule façon de savoir si la requête sql_text est valide est de l'exécuter.

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociparse(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_password_change

(PHP 5, PECL OCI8 >= 1.1.0)

oci_password_changeModifie le mot de passe d'un utilisateur Oracle

Description

bool oci_password_change ( resource $connection , string $username , string $old_password , string $new_password )
resource oci_password_change ( string $dbname , string $username , string $old_password , string $new_password )

Modifie le mot de passe de l'utilisateur username.

La fonction oci_password_change() est plus utile avec des scripts PHP en ligne de commandes, ou lorsque des connexions non persistantes sont utilisées dans l'application PHP.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

username

Le nom d'utilisateur Oracle.

old_password

L'ancien mot de passe.

new_password

Le nouveau mot de passe à définir.

dbname

Le nom de la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Changer le mot de passe, avec cette fonction, ou directement dans Oracle devrait être fait avec précaution. Ceci car les applications PHP pourraient continuer d'utiliser des connexions persistantes avec l'ancien mot de passe. La meilleure pratique est de redémarrer tous les serveurs webs dès lors que le mot de passe a été changé.

Note: La seconde syntaxe de oci_password_change() est disponible depuis la version de OCI8 1.1.

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocipasswordchange(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_password_change(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_pconnect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_pconnectOuvre une connexion persistante à un serveur Oracle

Description

resource oci_pconnect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Ouvre une connexion persistante à un serveur Oracle et s'identifie.

Les connexions persistantes sont mises en cache et sont réutilisées entre les requêtes, réduisant ainsi la charge à chaque chargement de la page ; une application PHP typique a une seule connexion persistante à un serveur Oracle par processus enfant Apache (ou processus PHP FastCGI/CGI). Voir la section sur les connexions persistantes aux bases de données pour plus d'informations.

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe de l'utilisateur.

connection_string

Contient l'instance Oracle sur laquelle nous devons nous connecter. Ce peut être une » chaîne de connexion rapide, un nom de connexion issue du fichier tnsnames.ora, ou le nom d'une instance locale Oracle.

Si non spécifié, PHP utilise des variables d'environnement comme TWO_TASK (sous Linux) ou LOCAL (sous Windows) et ORACLE_SID pour déterminer l'instance Oracle sur laquelle nous devons nous connecter.

Pour utiliser la méthode de connexion rapide, PHP doit être lié avec la bibliothèque cliente Oracle 10g ou supérieur. La chaîne de connexion rapide pour Oracle 10g ou supérieur est de la forme : [//]host_name[:port][/service_name]. Avec Oracle 11g, la syntaxe est : [//]host_name[:port][/service_name][:server_type][/instance_name]. Les noms des services peuvent être trouvés en exécutant l'utilitaire Oracle lsnrctl status sur la machine exécutant la base de données.

Le fichier tnsnames.ora peut être dans le chemin de recherche d'Oracle Net, qui inclut $ORACLE_HOME/network/admin et /etc. Une solution alternative serait de définit TNS_ADMIN afin que le fichier $TNS_ADMIN/tnsnames.ora soit lu. Assurez-vous que le daemon exécutant le serveur web a accès en lecture à ce fichier.

character_set

Détermine le jeu de caractères utilisé par la bibliothèque cliente Oracle. Le jeu de caractères n'a pas besoin d'être identique à celui utilisé par la base de données. S'il ne correspond pas, Oracle ferait de son mieux pour convertir les données depuis le jeu de caractères de la base de données. Suivant les jeux de caractères, il se peut que le résultat ne soit pas parfait. De plus, cette convertion nécessite un peu de temps système.

Si non spécifié, la bibliothèque cliente Oracle déterminera un jeu de caractères depuis la variable d'environnement NLS_LANG.

Le fait de passer ce paramètre peut réduire la durée de connexion.

session_mode

Ce paramètre est disponible depuis PHP 5 (PECL OCI8 1.1) et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si soit la constante OCI_SYSOPER, soit la constante OCI_SYSDBA est spécifiée, cette fonction tentera d'établir une connexion privilégiée en utilisant des identifiants externes. Les connexions privilégiées sont désactivées par défault. Pour les activer, vous devez définir l'option oci8.privileged_connect à On.

PHP 5.3 (PECL OCI8 1.3.4) introduisent la valeur de mode OCI_CRED_EXT. Ce mode demande à Oracle d'utiliser une identification externe ou bien issue du système d'exploitation, qui doit être configurée dans la base de données. Le drapeau OCI_CRED_EXT ne peut être utilisé qu'avec le nom d'utilisateur "/" associé à un mot de passe vide. L'option oci8.privileged_connect peut être définie à On ou Off.

OCI_CRED_EXT peut être combiné avec le mode OCI_SYSOPER ou le mode OCI_SYSDBA.

OCI_CRED_EXT n'est pas supporté sous Windows pour des raisons de sécurité.

Valeurs de retour

Retourne un identifiant de connexion, ou FALSE si une erreur survient.

Notes

Note: Depuis PHP 5.1.2 et PECL oci8 1.1, la durée de vie ainsi que le nombre maximal de connexions persistantes Oracle peuvent être affinés en définissant les valeurs de configuration suivantes : oci8.persistent_timeout, oci8.ping_interval et oci8.max_persistent.

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociplogon(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_result

(PHP 5, PECL OCI8 >= 1.1.0)

oci_resultRetourne la valeur d'une colonne dans un résultat Oracle

Description

mixed oci_result ( resource $statement , mixed $field )

Retourne les données de la colonne field dans la ligne courante du résultat statement.

Pour plus de détails sur le mapping des types de données effectué par l'extension OCI8, lisez les types de données supportés par le driver.

Liste de paramètres

statement

field

Peut être soit le numéro de la colonne (en commençant à 1), soit le nom de la colonne (en majuscule).

Valeurs de retour

Retourne tout les types, sauf les types abstraits (ROWIDs, LOBs et FILEs). Retourne FALSE en cas d'erreur.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociresult(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_result(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel



oci_rollback

(PHP 5, PECL OCI8 >= 1.1.0)

oci_rollbackAnnule les transactions Oracle en cours

Description

bool oci_rollback ( resource $connection )

Annule toutes les modifications non validées pour une connexion connection Oracle et met fin à la transaction courante. Tous les verrous seront également libérés. Tous les points de sauvegarde Oracle (SAVEPOINTS) seront supprimés.

Une transaction commence lorsque la première requête SQL qui modifie des données est exécuté avec la fonction oci_execute() en utilisant le drapeau OCI_NO_AUTO_COMMIT. Les modifications suivantes effectuées par d'autres requêtes deviennent partie intégrante de la même transaction. Les modifications effectuées lors d'une transaction sont temporaires tant que la transaction n'a pas été validée ou annulée. Les autres utilisateurs de la base de données ne verront ces modifications que lors de la validation de la transaction.

Lors de l'insertion ou de la mise à jour de données, l'utilisation des transactions est fortement recommandée afin de garantir la consistence relationnelle des données, mais aussi pour des raisons de performance.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou oci_new_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_rollback()

<?php

// Insertion dans plusieurs tables, puis, annulation des modifications si des erreurs surviennent

$conn oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn"INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Le drapeau OCI_NO_AUTO_COMMIT indique à Oracle de ne pas valider l'insertion immédiatement.
// Utilisez le drapeau OCI_DEFAULT en PHP <= 5.3.1. Les 2 sont identiques.
$r oci_execute($stidOCI_NO_AUTO_COMMIT);
if (!
$r) {    
    
$e oci_error($stid);
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid oci_parse($conn'INSERT INTO myschedule (startday) VALUES (12)');
$r oci_execute($stidOCI_NO_AUTO_COMMIT);
if (!
$r) {    
    
$e oci_error($stid);
    
oci_rollback($conn);  // Annulation des modifications sur les 2 tables
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Validation des modifications sur les 2 tables
$r oci_commit($conn);
if (!
r) {
    
$e oci_error($conn);
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Exemple #2 Exemple de retour à un point de sauvegarde (SAVEPOINT)

<?php
$stid 
oci_parse($conn'UPDATE mytab SET id = 1111');
oci_execute($stidOCI_NO_AUTO_COMMIT);

// création du point de sauvegarde
$stid oci_parse($conn'SAVEPOINT mysavepoint');
oci_execute($stidOCI_NO_AUTO_COMMIT);

$stid oci_parse($conn'UPDATE mytab SET id = 2222');
oci_execute($stidOCI_NO_AUTO_COMMIT);

// utilise une requête SQL explicite pour effectuer le retour au point de sauvegarde
$stid oci_parse($conn'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stidOCI_NO_AUTO_COMMIT);

oci_commit($conn);  // mytab a maintenant un id de 1111
?>

Notes

Note:

Les transactions sont automatiquement annulées lorsque vous fermez la connexion, ou lorsque le script se termine, un des deux arrivant le premier. Vous devez explicitement appeler la fonction oci_commit() pour valider la connexion.

Tous les appels à la fonction oci_execute() qui utilisent le mode OCI_COMMIT_ON_SUCCESS, qui se soit par défaut ou de façon explicite, valideront toutes les transactions en attente.

Toutes les requêtes Oracle comme CREATE ou DROP valideront également, automatiquement, toutes les transactions en attente.

Note:

Avant la version 5.0.0 de PHP, vous devez utiliser la fonction ocirollback() à la place. Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_server_version

(PHP 5, PECL OCI8 >= 1.1.0)

oci_server_versionRetourne une chaîne contenant les informations de version du serveur Oracle

Description

string oci_server_version ( resource $connection )

Retourne une chaîne contenant les informations de version du serveur Oracle, identifié par la connexion connection.

Liste de paramètres

connection

Valeurs de retour

Retourne les informations sur la version, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_server_version()

<?php
$conn 
oci_connect("scott""tiger");
echo 
"Version du serveur : " oci_server_version($conn);
oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociserverversion(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_server_version(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.



oci_set_action

(PHP 5.3.2, PECL OCI8 >= 1.4.0)

oci_set_actionDéfinit le nom de l'action

Description

bool oci_set_action ( resource $connection , string $action_name )

Définit le nom de l'action pour une traçage Oracle.

Le nom de l'action est enregistré avec la base de données lors du prochain 'roundtrip' depuis PHP vers la base de données ; typiquement, lorsqu'une requête SQL est exécutée.

Le nom de l'action peut être interrogé par la suite depuis la vue d'administration de la base de données V$SESSION. Il peut être utilisé pour tracer et surveiller d'autres vues comme V$SQLAREA et DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

La valeur peut être conservée aux travers des connexions persistantes.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

action_name

Chaîne choisie par l'utilisateur, supérieur à 32 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définition d'une action

<?php

$c 
oci_connect('hr''welcome''localhost/XE');

// Enregistre l'action
oci_set_action($c'Friend Lookup');

// Code générant un roundtrip, par exemple, une requête :
$s oci_parse($c'select * from dual');
oci_execute($s);
oci_fetch_all($s$res);

sleep(30);

?>
// Pendant l'exécution du script, l'administrateur peut voir les actions
// en cours d'exécution :

sqlplus system/welcome
SQL> select action from v$session;

Notes

Note: Requis par la version Oracle

Cette fonction est disponible si PHP est lié à partir de la version de la bibliothèque de la base de données Oracle .

Astuce

Performance

Avec les anciennes version OCI8 ou les anciennes bases de données Oracle, l'information quant au client peut être défini en utilisant le paquet Oracle DBMS_APPLICATION_INFO. Ceci est moins efficace que d'utiliser la fonction oci_set_client_info().

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi



oci_set_client_identifier

(PHP 5.3.2, PECL OCI8 >= 1.4.0)

oci_set_client_identifierDéfinit l'identifiant du client

Description

bool oci_set_client_identifier ( resource $connection , string $client_identifier )

Définit l'identifiant du client, utilisé par de nombreux composants de la base de données pour identifier les utilisateurs de l'application qui s'authentifie avec le même nom d'utilisateur de base de données.

L'identifiant du client est enregistrée avec la base de données lorsque le prochain 'roundtrip' depuis PHP vers la base de données est effectué ; typiquement, l'exécution d'une requête SQL.

L'identifiant peut par la suite être interrogé depuis une vue de l'administration de la base de données, comme la vue V$SESSION. Il peut être utilisé avec DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE dans le cadrage d'un tracage. Il peut également être utilisé dans le cadre d'un audit.

La valeur peut être conservée via le mécanisme des connexions persistantes.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

client_identifier

Chaîne choisie par l'utilisateur, supérieur à 64 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définit l'identifiant du client à l'utilisateur de l'application

<?php

// Retrouve le nom utilisé pour l'identification de l'utilisateur de l'application
session_start();
$un my_validate_session($_SESSION['username']);
$c oci_connect('myschema''welcome''localhost/XE');

// Demande à Oracle qui est cet utilisateur
oci_set_client_identifier($c$un);

// Le prochain roundtrip vers la base de données validera cet identifiant
$s oci_parse($c'select mydata from mytable');
oci_execute($s);

// ...

?>

Notes

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi



oci_set_client_info

(PHP 5.3.2, PECL OCI8 >= 1.4.0)

oci_set_client_infoDéfinit l'information concernant le client

Description

bool oci_set_client_info ( resource $connection , string $client_info )

Définit l'information concernant le client pour un traçage Oracle.

L'information du client est enregistré avec la base de données lorsque le prochain 'roundtrip' depuis PHP vers la base de données survient ; typiquement, lorsqu'une requête SQL est exécutée.

L'information du client peut par la suite être interrogée depuis la vue d'administration de la base de données V$SESSION.

La valeur sera conservée via le mécanisme des connexions persistantes.

Liste de paramètres

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

Chaîne utilisateur supérieure à 64 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définit l'information sur le client

<?php

$c 
oci_connect('hr''welcome''localhost/XE');

// Enregistre l'information sur le client
oci_set_client_info($c'My Application Version 2');

// On exécute un code permettant un aller-retour vers la base de données,
// par exemple, une requête :
$s oci_parse($c'select * from dual');
oci_execute($s);
oci_fetch_all($s$res);

sleep(30);

?>
// Pendant l'exécution de ce script, l'administrateur peut voir les informations
// du client :

sqlplus system/welcome
SQL> select client_info from v$session;

Notes

Note: Requis par la version Oracle

Cette fonction est disponible si PHP est lié à partir de la version de la bibliothèque de la base de données Oracle .

Astuce

Performance

Avec les anciennes version OCI8 ou les anciennes bases de données Oracle, l'information quant au client peut être défini en utilisant le paquet Oracle DBMS_APPLICATION_INFO. Ceci est moins efficace que d'utiliser la fonction oci_set_client_info().

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi



oci_set_edition

(PHP 5.3.2, PECL OCI8 >= 1.4.0)

oci_set_editionDéfinit l'édition de la base de données

Description

bool oci_set_edition ( string $edition )

Définit l'édition des objets de la base de données à utiliser par les connexions.

L'édition Oracle permet à des versions concurrentes des applications d'être exécutées en utilisant le même nom de schéma et d'objets. Ceci est pratique pour mettre à jour en direct les systèmes.

Appelez la fonction oci_set_edition() avant d'appeler une fonction comme oci_connect(), oci_pconnect() ou oci_new_connect().

Si une édition est définie mais n'est pas valide sur la base de données, toute tentative de connexion échouera même si la fonction oci_set_edition() retourne un statut de réussite.

Lors de l'utilisation des connexions persistantes, si une connexion avec l'édition demandée existe déjà, elle sera ré-utilisée. Sinon, une connexion persistante différente sera créée.

Liste de paramètres

edition

Nom de l'édition Oracle, précédemment créé avec la commande SQL "CREATE EDITION".

Notes

Note: Exigence de la version Oracle

Cette fonction est disponible pour Oracle 11gR2 et suivants.

Attention

Connexions persistantes

Pour éviter les inconsistances de données ou des erreurs inattendues, n'utilisez pas la requête ALTER SESSION SET EDITION pour changer une édition sur les connexions persistantes.

Attention

File d'attente de connexions DRCP

Pour éviter les inconsistances de données ou des erreurs inattendues lors de l'utilisation des éditions et de DRCP avec Oracle 11.2.0.1, conservez une correspondance un-à-un entre oci8.connection_class et le nom de l'édition utilisé par vos applications. Chaque serveur pour une classe de connexion donnée doit être utilisé avec une seule édition. Cette restriction a été supprimée dans Oracle 11.2.0.2.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 2 scripts peuvent utiliser différentes versions de myfunc() au même moment

<?php

// Fichier 1

echo "Version 1 de l'application\n";

oci_set_edition('ORA$BASE');
$c oci_connect('hr''welcome''localhost/XE');

$s oci_parse($c"begin :r := myfunc(); end;");
oci_bind_by_name($s":r"$r20);
oci_execute($s);
echo 
"Le résultat est $r\n";

?>
<?php

// Fichier 2

echo "Version 2 de l'application\n";

oci_set_edition('E1');
$c oci_connect('hr''welcome''localhost/XE');

$s oci_parse($c"begin :r := myfunc(); end;");
oci_bind_by_name($s":r"$r20);
oci_execute($s);
echo 
"Le résultat est $r\n";

?>



oci_set_module_name

(PHP 5.3.2, PECL OCI8 >= 1.4.0)

oci_set_module_nameDéfinit le nom du module

Description

bool oci_set_module_name ( resource $connection , string $module_name )

Définit le nom du module pour le tracage Oracle.

Le nom du module est enregistré avec la base de données lorsque le prochain 'roundtrip' depuis PHP vers la base de données survient ; typiquement, lorsqu'une requête SQL est exécutée.

Le nom pourra être ensuite interrogé depuis la vue d'administration de la base de données comme V$SESSION. Il pourra être également utilisé pour du traçage et de la surveillance, comme avec V$SQLAREA et DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

La valeur sera retenue via le mécanisme des connexions persistantes.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

module_name

Chaîne choisie par l'utilisateur, supérieure à 48 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Requis par la version Oracle

Cette fonction est disponible si PHP est lié à partir de la version de la bibliothèque de la base de données Oracle .

Astuce

Performance

Avec les anciennes version OCI8 ou les anciennes bases de données Oracle, l'information quant au client peut être défini en utilisant le paquet Oracle DBMS_APPLICATION_INFO. Ceci est moins efficace que d'utiliser la fonction oci_set_client_info().

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Exemples

Exemple #1 Définition du nom du module

<?php

$c 
oci_connect('hr''welcome''localhost/XE');

// Enregistrement du module
oci_set_module_name($c'Home Page');

// Code générant un roundtrip, par exemple, une requête :
$s oci_parse($c'select * from dual');
oci_execute($s);
oci_fetch_all($s$res);

sleep(30);
?>
// Pendant l'exécution du script, l'administrateur peut voir les
// modules enn utilisation :

sqlplus system/welcome
SQL> select module from v$session;

Voir aussi



oci_set_prefetch

(PHP 5, PECL OCI8 >= 1.1.0)

oci_set_prefetchIndique le nombre de lignes qui doivent être lues à l'avance par Oracle

Description

bool oci_set_prefetch ( resource $statement , int $rows )

Définit le nombre de lignes à précharger par les bibliothèques clientes Oracle après un appel réussi à la fonction oci_execute() mais aussi pour chaque appel aux fonctions internes de récupération de lignes à la base de données. Pour les requêtes retournant un grand nombre de lignes, les performances peuvent être significativement améliorées en augmentant le nombre de lignes à précharger par rapport à la valeur par défaut définie par l'option de configuration oci8.default_prefetch.

Le préchargement est une façon efficace de retourner plus d'une ligne de données depuis la base de données pour chaque envoi réseau. Il en retourne une meilleure utilisation du réseau mais aussi une meilleure utilisation du CPU. Le préchargement de lignes est interne à OCI8 et le comportement des fonctions de récupération de données reste inchangé suivant la valeur du compteur de préchargement. Par exemple, la fonction oci_fetch_row() retournera toujours une ligne. Le buffer de préchargement est propre à chaque requête et ne sera pas utilisé pour ré-exécuter des requêtes ou par les autres connexions.

Il convient d'appeler la fonction oci_set_prefetch() avant la fonction oci_execute().

Un des moyens de gagner en efficacité est de définir la valeur de préchargement à une valeur raisonnable en fonction du réseau et de la base de données à gérer. Pour les requêtes retournant un très grand nombre de lignes, il convient de récupérer l'ensemble des lignes par morceaux (i.e. définit la valeur de préchargement à une valeur en dessous du nombre total de lignes). Ceci permet à la base de données de gérer les requêtes des autres utilisateurs pendant que le script PHP gère le jeu de lignes courant.

Le préchargement a été introduit en Oracle 8i. Le préchargement REF CURSOR a été introduit en Oracle 11gR2 et est disponible lorsque PHP est lié avec les bibliothèques clientes Oracle 11gR2 et est connecté à une base de données version 11gR2 ou inférieure. Les curseurs imbriqués de préchargement ont été introduits en Oracle 11gR2 et nécessitent à la fois les bibliothèques clientes Oracle, et une base de données en version 11gR2.

Le préchargement n'est pas supporté lorsque les requêtes contiennent des colonnes de type LONG ou LOB. La valeur de préchargement sera utilisé dans toutes les situations où le préchargement est supporté.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

rows

Le nombre de lignes à précharger, >=0

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
PHP 5.3.2 (PECL OCI8 1.4) Avant cette version, rows doit être >= 1.
PHP 5.3 (PECL OCI8 1.3.4) Avant cette version, le préchargement était limité et devait être inférieur aux nombres de lignes définies par le paramètre rows ainsi qu'à 1024 * rows octets. La restriction sur la taille en octets a maintenant disparu.

Exemples

Exemple #1 Modification de la valeur de préchargement pour une requête

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'SELECT * FROM myverybigtable');
oci_set_prefetch($stid300);  // A définir avant l'appel à la fonction oci_execute()
oci_execute($stid);

echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>".($item !== null htmlentities($itemENT_QUOTES) : "")."</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Modification de la valeur de préchargement pour une récupération REF CURSOR

<?php
/*
  Création de la procédure stockée PL/SQL suivante :

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'BEGIN myproc(:rc); END;');
$refcur oci_new_cursor($conn);
oci_bind_by_name($stid':rc'$refcur, -1OCI_B_CURSOR);
oci_execute($stid);

// Modification de la valeur de préchargement avant l'exécution du curseur.
// Le préchargement REF CURSOR fonctionne lorsque PHP est lié avec les bibliothèques clientes
// Oracle 11gR2
oci_set_prefetch($refcur200);
oci_execute($refcur);

echo 
"<table border='1'>\n";
while (
$row oci_fetch_array($refcurOCI_ASSOC+OCI_RETURN_NULLS)) {
    echo 
"<tr>\n";
    foreach (
$row as $item) {
        echo 
"    <td>".($item !== null htmlentities($itemENT_QUOTES) : "")."</td>\n";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Si PHP OCI8 récupère des données depuis un curseur REF CURSOR puis, retourne le curseur REF CURSOR à une seconde procédure stockée pour traitement, alors il convient de définir le préchargement de REF CURSOR à 0 afin d'éviter de perdre des lignes du jeu de résultats. La valeur de préchargement est le nombre de lignes supplémentaire à récupérer pour chaque requête interne OCI8 à la base de données, aussi, le fait de la définir à 0 signifie uniquement que nous souhaitons récupérer une seule ligne à la fois.

Exemple #3 Définition de la valeur de préchargement lorsque l'on retourne un curseur REF CURSOR à Oracle

<?php

$conn 
oci_connect('hr''welcome''localhost/orcl');

// Récupération du curseur REF CURSOR
$stid oci_parse($conn'BEGIN myproc(:rc_out); END;');
$refcur oci_new_cursor($conn);
oci_bind_by_name($stid':rc_out'$refcur, -1OCI_B_CURSOR);
oci_execute($stid);

// Affiche 2 lignes, mais ne précharge pas de lignes supplémentaires
// sinon, ces lignes supplémentaires ne seront pas passées à myproc_use_rc().
// La valeur de préchargement à 0 est autorisée en PHP 5.3.2 et PECL OCI8 1.4
oci_set_prefetch($refcur0);
oci_execute($refcur);
$row oci_fetch_array($refcur);
var_dump($row);
$row oci_fetch_array($refcur);
var_dump($row);

// passe le curseur REF CURSOR à myproc_use_rc() afin d'effectuer d'autres
// traitement sur le jeu de résultats
$stid oci_parse($conn'begin myproc_use_rc(:rc_in); end;'); 
oci_bind_by_name($stid':rc_in'$refcur, -1OCI_B_CURSOR);
oci_execute($stid);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocisetprefetch(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.

Voir aussi



oci_statement_type

(PHP 5, PECL OCI8 >= 1.1.0)

oci_statement_typeRetourne le type de la requête Oracle

Description

string oci_statement_type ( resource $statement )

Retourne un mot clé identifiant le type de la requête statement OCI8.

Liste de paramètres

statement

Un identifiant de requête OCI valide, retourné par la fonction oci_parse().

Valeurs de retour

Retourne le type de requête statement sous la forme d'une des chaînes suivantes.

Type de requête
Chaîne retournée Notes
ALTER  
BEGIN  
CALL Introduit en PHP 5.2.1 (PECL OCI8 1.2.3)
CREATE  
DECLARE  
DELETE  
DROP  
INSERT  
SELECT  
UPDATE  
UNKNOWN  

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_statement_type()

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');

$stid oci_parse($conn'DELETE FROM departments WHERE department_id = 130;');
if (
oci_statement_type($stid) == "DELETE") {
    
trigger_error('Vous n\'êtes pas autorisé à effacer des lignes dans cette table'E_USER_ERROR);
}
else {
    
oci_execute($stid);  // efface la ligne
}

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocistatementtype(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.


Sommaire



Fonctions et alias OCI8 obsolètes


ocibindbyname

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocibindbynameAlias de oci_bind_by_name()

Description

Cette fonction est un alias de : oci_bind_by_name().



ocicancel

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicancelAlias de oci_cancel()

Description

Cette fonction est un alias de : oci_cancel().



ocicloselob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicloselobAlias de OCI-Lob->close

Description

Cette fonction est un alias de : OCI-Lob->close.



ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)

ocicollappendAlias de OCI-Collection->append

Description

Cette fonction est un alias de : OCI-Collection->append.



ocicollassign

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicollassignAlias de OCI-Collection->assign

Description

Cette fonction est un alias de : OCI-Collection->assign.



ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)

ocicollassignelemAlias de OCI-Collection->assignElem

Description

Cette fonction est un alias de : OCI-Collection->assignElem.



ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)

ocicollgetelemAlias de OCI-Collection->getElem

Description

Cette fonction est un alias de : OCI-Collection->getElem.



ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)

ocicollmaxAlias de OCI-Collection->max

Description

Cette fonction est un alias de : OCI-Collection->max.



ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)

ocicollsizeAlias de OCI-Collection->size

Description

Cette fonction est un alias de : OCI-Collection->size.



ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)

ocicolltrimAlias de OCI-Collection->trim

Description

Cette fonction est un alias de : OCI-Collection->trim.



ocicolumnisnull

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicolumnisnullAlias de oci_field_is_null()

Description

Cette fonction est un alias de : oci_field_is_null().



ocicolumnname

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicolumnnameAlias de oci_field_name()

Description

Cette fonction est un alias de : oci_field_name().



ocicolumnprecision

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicolumnprecisionAlias de oci_field_precision()

Description

Cette fonction est un alias de : oci_field_precision().



ocicolumnscale

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicolumnscaleAlias de oci_field_scale()

Description

Cette fonction est un alias de : oci_field_scale().



ocicolumnsize

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicolumnsizeAlias de oci_field_size()

Description

Cette fonction est un alias de : oci_field_size().



ocicolumntype

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicolumntypeAlias de oci_field_type()

Description

Cette fonction est un alias de : oci_field_type().



ocicolumntyperaw

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicolumntyperawAlias de oci_field_type_raw()

Description

Cette fonction est un alias de : oci_field_type_raw().



ocicommit

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocicommitAlias de oci_commit()

Description

Cette fonction est un alias de : oci_commit().



ocidefinebyname

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocidefinebynameAlias de oci_define_by_name()

Description

Cette fonction est un alias de : oci_define_by_name().



ocierror

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocierrorAlias de oci_error()

Description

Cette fonction est un alias de : oci_error().



ociexecute

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociexecuteAlias de oci_execute()

Description

Cette fonction est un alias de : oci_execute().



ocifetch

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocifetchAlias de oci_fetch()

Description

Cette fonction est un alias de : oci_fetch().



ocifetchinto

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocifetchintoFetches the next row into an array (deprecated)

Description

int ocifetchinto ( resource $statement , array &$result [, int $mode = OCI_ASSOC + OCI_NUM ] )

This function is deprecated. Recommended alternatives: oci_fetch_array(), oci_fetch_object(), oci_fetch_assoc() and oci_fetch_row().



ocifetchstatement

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocifetchstatementAlias de oci_fetch_all()

Description

Cette fonction est un alias de : oci_fetch_all().



ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PECL OCI8 >= 1.0.0)

ocifreecollectionAlias de OCI-Collection->free

Description

Cette fonction est un alias de : OCI-Collection->free.



ocifreecursor

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocifreecursorAlias de oci_free_statement()

Description

Cette fonction est un alias de : oci_free_statement().



ocifreedesc

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocifreedescAlias de OCI-Lob->free

Description

Cette fonction est un alias de : OCI-Lob->free.



ocifreestatement

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocifreestatementAlias de oci_free_statement()

Description

Cette fonction est un alias de : oci_free_statement().



ociinternaldebug

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociinternaldebugAlias de oci_internal_debug()

Description

Cette fonction est un alias de : oci_internal_debug().



ociloadlob

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociloadlobAlias de OCI-Lob->load

Description

Cette fonction est un alias de : OCI-Lob->load.



ocilogoff

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocilogoffAlias de oci_close()

Description

Cette fonction est un alias de : oci_close().



ocilogon

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocilogonAlias de oci_connect()

Description

Cette fonction est un alias de : oci_connect().



ocinewcollection

(PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)

ocinewcollectionAlias de oci_new_collection()

Description

Cette fonction est un alias de : oci_new_collection().



ocinewcursor

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocinewcursorAlias de oci_new_cursor()

Description

Cette fonction est un alias de : oci_new_cursor().



ocinewdescriptor

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocinewdescriptorAlias de oci_new_descriptor()

Description

Cette fonction est un alias de : oci_new_descriptor().



ocinlogon

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocinlogonAlias de oci_new_connect()

Description

Cette fonction est un alias de : oci_new_connect().



ocinumcols

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocinumcolsAlias de oci_num_fields()

Description

Cette fonction est un alias de : oci_num_fields().



ociparse

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociparseAlias de oci_parse()

Description

Cette fonction est un alias de : oci_parse().



ociplogon

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociplogonAlias de oci_pconnect()

Description

Cette fonction est un alias de : oci_pconnect().



ociresult

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociresultAlias de oci_result()

Description

Cette fonction est un alias de : oci_result().



ocirollback

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocirollbackAlias de oci_rollback()

Description

Cette fonction est un alias de : oci_rollback().



ocirowcount

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocirowcountAlias de oci_num_rows()

Description

Cette fonction est un alias de : oci_num_rows().



ocisavelob

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocisavelobAlias de OCI-Lob->save

Description

Cette fonction est un alias de : OCI-Lob->save.



ocisavelobfile

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocisavelobfileAlias de OCI-Lob->import

Description

Cette fonction est un alias de : OCI-Lob->import.



ociserverversion

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociserverversionAlias de oci_server_version()

Description

Cette fonction est un alias de : oci_server_version().



ocisetprefetch

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocisetprefetchAlias de oci_set_prefetch()

Description

Cette fonction est un alias de : oci_set_prefetch().



ocistatementtype

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ocistatementtypeAlias de oci_statement_type()

Description

Cette fonction est un alias de : oci_statement_type().



ociwritelobtofile

(PHP 4, PHP 5, PECL OCI8 >= 1.0.0)

ociwritelobtofileAlias de OCI-Lob->export

Description

Cette fonction est un alias de : OCI-Lob->export.



ociwritetemporarylob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ociwritetemporarylobAlias de OCI-Lob->writeTemporary

Description

Cette fonction est un alias de : OCI-Lob->writeTemporary.


Sommaire




SQL Ovrimos


Introduction

Ovrimos SQL Server est une base de données relationnelle client/serveur et transactionnelle, combinée avec des fonctionnalités web, et des transactions rapides.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 4.4.5 et PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Vous devez installer la bibliothèque sqlcli, qui est disponible dans la distribution de Ovrimos SQL Server.



Installation

Pour activer le support d'Ovrimos en PHP, vous devez compiler PHP avec l'option --with-ovrimos[=DIR] . DIR est le chemin jusqu'au dossier d'Ovrimos qui contient la bibliothèque libsqlcli.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemple #1 Connexion au serveur Ovrimos SQL Server et sélection d'une table système

<?php
$conn 
ovrimos_connect("server.domain.com""8001""admin""password");
if (
$conn != 0) {
    echo 
"Connexion établie !";
    
$res ovrimos_exec($conn"select table_id, table_name from sys.tables");
    if (
$res != 0) {
        echo 
"Requête effectuée !";
        
ovrimos_result_all($res);
        
ovrimos_free_result($res);
    }
    
ovrimos_close($conn);
}
?>




Fonctions Ovrimos SQL


ovrimos_close

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_closeFerme une connexion Ovrimos

Description

void ovrimos_close ( int $connection )

Ferme la connexion Ovrimos spécifiée. Toutes les transactions non validées sont annulées.

Liste de paramètres

connection

L'identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ovrimos_commit

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_commitValide une transaction Ovrimos

Description

bool ovrimos_commit ( int $connection_id )

Valide une transaction Ovrimos.

Liste de paramètres

connection_id

L'identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ovrimos_connect

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_connectConnexion à un serveur

Description

int ovrimos_connect ( string $host , string $dborport , string $user , string $password )

Connexion à un serveur spécifié.

Liste de paramètres

host

Le nom de l'hôte ou l'adresse IP.

dborport

Soit le nom de la base de données, soit le numéro du port de connexion.

user

Le nom d'utilisateur.

password

Le mot de passe associé à l'utilisateur user.

Valeurs de retour

Retourne un identifiant de connexion (supérieur à 0) en cas de succès, ou 0 si une erreur survient.

Exemples

Exemple #1 Exemple avec ovrimos_connect()

<?php
$conn 
ovrimos_connect("server.example.com""8001""admin""password");
if (
$conn != 0) {
    echo 
"Connexion ok!";
    
$res ovrimos_exec($conn"select table_id, table_name from sys.tables");
    if (
$res != 0) {
        echo 
"Requête ok!";
        
ovrimos_result_all($res);
        
ovrimos_free_result($res);
    }
    
ovrimos_close($conn);
}
?>

Voir aussi



ovrimos_cursor

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_cursorRetourne le nom du curseur Ovrimos

Description

string ovrimos_cursor ( int $result_id )

Retourne le nom du curseur Ovrimos. Pratique, lorsqu'on veut faire des modifications ou des effacements avec des curseurs déjà positionnés.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



ovrimos_exec

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_execExécute une requête SQL

Description

int ovrimos_exec ( int $connection_id , string $query )

Exécute une requête SQL (sélection ou modification), et retourne un identifiant de résultat.

Liste de paramètres

connection_id

Un identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

query

La requête SQL. Évidemment, la requête SQL ne doit pas contenir de paramètres. Utilisez la fonction ovrimos_prepare() pour les requêtes préparées.

Valeurs de retour

Retourne l'identifiant de résultat, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi



ovrimos_execute

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_executeExécute une requête Ovrimos préparée

Description

bool ovrimos_execute ( int $result_id [, array $parameters_array ] )

Exécute une requête Ovrimos préparée.

Liste de paramètres

result_id

Un identifiant de résultat Ovrimos, préparé par la fonction ovrimos_prepare().

parameters_array

Si la requête préparée contient des paramètres (des points d'interrogation dans la requête), un nombre correct de paramètres doit être passé dans le tableau.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ovrimos_fetch_into

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_fetch_intoLit une ligne dans un résultat Ovrimos

Description

bool ovrimos_fetch_into ( int $result_id , array &$result_array [, string $how [, int $rownumber ]] )

Lit une ligne depuis le jeu de résultats fourni, dans le tableau result_array.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

result_array

Vous devez passer un tableau par référence. Il sera complété par les valeurs récupérées.

how

Détermine la façon dont les lignes sont récupérées. Peut être une des chaînes suivantes (la casse n'est pas significatif) :

Option Notes
Next Suivant par rapport à la position courante. C'est la valeur par défaut.
Prev Précédent par rapport à la position courante.
First Premier.
Last Dernier.
Absolute Position absolue, par rapport au premier. Nécessite le paramètre rownumber.

rownumber

Le numéro de la ligne, en commençant à 0. Seulement nécessaire lorsque how est défini à Absolute.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de récupération

<?php
$conn
=ovrimos_connect("neptune""8001""admin""password");
if (
$conn!=0) {
    echo 
"Connexion ok!";
    
$res=ovrimos_exec($conn"select table_id, table_name from sys.tables");
    if (
$res != 0) {
        echo 
"Requête ok!";
        if (
ovrimos_fetch_into($res$row)) {
            list(
$table_id$table_name) = $row;
            echo 
"table_id=" $table_id ", table_name=" $table_name "\n";
            if (
ovrimos_fetch_into($res, &$row)) {
                list(
$table_id$table_name) = $row;
                echo 
"table_id=" $table_id ", table_name=" $table_name "\n";
            } else {
                echo 
"Suivant : erreur\n";
            }
        } else {
            echo 
"Premier : erreur\n";
        }
        
ovrimos_free_result($res);
    }
    
ovrimos_close($conn);
}
?>

Voir aussi



ovrimos_fetch_row

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_fetch_rowLit une ligne dans un résultat Ovrimos

Description

bool ovrimos_fetch_row ( int $result_id [, int $how [, int $row_number ]] )

Lit une ligne depuis un jeu de résultat. Les valeurs des colonnes peuvent récupérées avec d'autres appels.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

how

Détermine la façon dont les lignes sont récupérées. Peut être une des chaînes suivantes (la casse n'est pas significative) :

Option Notes
Next Suivant, par rapport à la position courante. C'est la valeur par défaut.
Prev Précédent, par rapport à la position courante.
First Premier.
Last Dernier.
Absolute Position absolue, par rapport au premier. Nécessite le paramètre rownumber.

rownumber

Le numéro de la ligne, en commençant à 0. Seulement nécessaire lorsque how est défini à Absolute.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de récupération d'une ligne

<?php
$conn 
ovrimos_connect("remote.host""8001""admin""password");
if (
$conn != 0) {
    echo 
"Connexion ok!";
    
$res=ovrimos_exec($conn"select table_id, table_name from sys.tables");
    if (
$res != 0) {
        echo 
"Requête ok!";
        if (
ovrimos_fetch_row($res"First")) {
            
$table_id ovrimos_result($res1);
            
$table_name ovrimos_result($res2);
            echo 
"table_id=" $table_id ", table_name=" $table_name "\n";
            if (
ovrimos_fetch_row($res"Next")) {
                
$table_id ovrimos_result($res"table_id");
                
$table_name ovrimos_result($res"table_name");
                echo 
"table_id=" $table_id ", table_name=" $table_name "\n";
            } else {
                echo 
"Suivant : erreur\n";
            }
        } else {
            echo 
"Premier : erreur\n";
        }
        
ovrimos_free_result($res);
    }
    
ovrimos_close($conn);
}
?>
Récupérera une ligne et affichera le résultat.

Voir aussi



ovrimos_field_len

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_lenRetourne la taille d'une colonne Ovrimos

Description

int ovrimos_field_len ( int $result_id , int $field_number )

Retourne la taille d'une colonne Ovrimos spécifiée.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne la taille, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi



ovrimos_field_name

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_nameRetourne le nom d'une colonne Ovrimos

Description

string ovrimos_field_name ( int $result_id , int $field_number )

Retourne le nom d'une colonne Ovrimos à un index spécifié.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne le nom du champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi



ovrimos_field_num

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_numRetourne le numéro de colonne Ovrimos

Description

int ovrimos_field_num ( int $result_id , string $field_name )

Retourne le numéro de colonne Ovrimos spécifiée.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_name

Le nom du champ.

Valeurs de retour

Retourne l'index, en commençant à 1, ou FALSE si une erreur survient.

Voir aussi



ovrimos_field_type

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_typeRetourne le type numérique d'une colonne Ovrimos

Description

int ovrimos_field_type ( int $result_id , int $field_number )

Retourne le type numérique d'une colonne Ovrimos.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_number

Un index, en commençant à 0.

Valeurs de retour

Retourne le type du champ, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi



ovrimos_free_result

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_free_resultLibère les ressources utilisées par un résultat Ovrimos

Description

bool ovrimos_free_result ( int $result_id )

Libère les ressources utilisées par un résultat Ovrimos.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne TRUE.



ovrimos_longreadlen

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_longreadlenIndique la taille des données à lire dans une colonne de grande taille

Description

bool ovrimos_longreadlen ( int $result_id , int $length )

Indique le nombre d'octets qui seront lus dans une colonne de grande taille (long varchar et long varbinary).

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

length

Le nombre d'octets à récupérer. Par défaut, 0.

Valeurs de retour

Retourne TRUE.



ovrimos_num_fields

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_num_fieldsRetourne le nombre de colonnes Ovrimos

Description

int ovrimos_num_fields ( int $result_id )

Retourne le nombre de colonnes dans l'identifiant de résultat spécifié.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne le nombre de colonnes, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

  • ovrimos_num_rows() - Retourne le nombre de lignes affectées par une modification Ovrimos



ovrimos_num_rows

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_num_rowsRetourne le nombre de lignes affectées par une modification Ovrimos

Description

int ovrimos_num_rows ( int $result_id )

Retourne le nombre de lignes affectées par une modification Ovrimos.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi



ovrimos_prepare

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_preparePrépare une requête SQL Ovrimos

Description

int ovrimos_prepare ( int $connection_id , string $query )

Prépare une requête SQL Ovrimos.

Liste de paramètres

connection_id

Un identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

query

La requête SQL.

Valeurs de retour

Retourne un identifiant de résultat en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ovrimos_prepare()

<?php
$conn
=ovrimos_connect("db_host""8001""admin""password");
if (
$conn!=0) {
    echo 
"Connexion ok!";

    
// Prepare the statement
    
$res=ovrimos_prepare($conn"select table_id, table_name
                                  from sys.tables where table_id=1"
);
    if (
$res != 0) {
        echo 
"Préparation ok!";
        
// Execute the prepared statement
        
if (ovrimos_execute($res)) {
            echo 
"Exécution ok!\n";
            
ovrimos_result_all($res);
        } else {
            echo 
"Erreur lors de l'exécution !";
        }
        
ovrimos_free_result($res);
    } else {
        echo 
"Erreur lors de la préparation !\n";
    }
    
ovrimos_close($conn);
}
?>



ovrimos_result_all

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_result_allAffiche un résultat Ovrimos sous forme de tableau HTML

Description

int ovrimos_result_all ( int $result_id [, string $format ] )

Affiche un résultat Ovrimos sous forme de tableau HTML.

Liste de paramètres

result_id

Une ressource de résultats, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

format

Attributs HTML optionnels pour les éléments du tableau généré.

Valeurs de retour

Retourne le nombre de lignes générées dans le tableau.

Exemples

Exemple #1 Prépare une requête, l'exécute sur Ovrimos et affiche le résultat

<?php
$conn 
ovrimos_connect("db_host""8001""admin""password");
if (
$conn != 0) {
    echo 
"Connexion ok!";
    
$res ovrimos_prepare($conn"select table_id, table_name
                                    from sys.tables where table_id = 7"
);
    if (
$res != 0) {
        echo 
"Préparation ok!";
        if (
ovrimos_execute($res, array(3))) {
            echo 
"Exécution ok!\n";
            
ovrimos_result_all($res);
        } else {
            echo 
"Erreur lors de l'exécution !";
        }
        
ovrimos_free_result($res);
    } else {
        echo 
"Erreur lors de la préparation !\n";
    }
    
ovrimos_close($conn);
}
?>

Exemple #2 ovrimos_result_all() avec meta-information

<?php
$conn 
ovrimos_connect("db_host""8001""admin""password");
if (
$conn != 0) {
    echo 
"Connexion ok!";
    
$res ovrimos_exec($conn"select table_id, table_name
                                 from sys.tables where table_id = 1"
);
    if (
$res != 0) {
        echo 
"Requête ok! curseur=" ovrimos_cursor($res) . "\n";
        
$colnb ovrimos_num_fields($res);
        echo 
"Colonnes affichées=" $colnb "\n";
        for (
$i=1$i <= $colnb$i++) {
            
$name ovrimos_field_name($res$i);
            
$type ovrimos_field_type($res$i);
            
$len ovrimos_field_len($res$i);
            echo 
"Colonne " $i " nom=" $name " type=" $type " taille=" $len "\n";
        }
        
ovrimos_result_all($res);
        
ovrimos_free_result($res);
    }
    
ovrimos_close($conn);
}
?>



ovrimos_result

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_resultLit le contenu d'une colonne Ovrimos

Description

string ovrimos_result ( int $result_id , mixed $field )

Lit le contenu de la colonne field.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field

Soit une chaîne de caractères représentant le nom du champ, soit son index (en commençant à 1).

Valeurs de retour

Retourne le nom de la colonne, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



ovrimos_rollback

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_rollbackAnnule une transaction

Description

bool ovrimos_rollback ( int $connection_id )

Annule la transaction courante.

Liste de paramètres

connection_id

Un identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




Paradox


Introduction

Ce module vous permet de lire des bases de données Paradox ainsi que des fichiers d'index primaires et des fichiers Blob. Il peut également créer des bases de données Paradox mais dû au manque de documentation sur le format des fichiers Paradox, il se peut que les bases créées ne soient pas lisibles avec toutes les autres applications. Les bases de données cryptées peuvent être lues sans pour autant spécifier de mot de passe si pxlib >= 0.5.0 est utilisé.

Note:

Ce module est toujours en cours de développement et peut changer, même si l'API ne sera sûrement pas modifié en profondeur.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Vous devez avoir au minimum PHP 5.0.0 et libpx >= 0.4.4 pour la plupart des fonctions. Quelques nouvelles fonctions ne sont disponibles que si pxlib >= 0.6.0 est utilisé. L'écriture et la lecture des bases de données cryptées nécessitent pxlib >= 0.5.0. La bibliothèque Paradox (libpx) est disponible sur » http://pxlib.sourceforge.net.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/paradox

Assurez-vous d'avoir installé pxlib avant. Si vous avez installé pxlib via rpm ou via un paquet Debian, n'oubliez pas d'installer également le paquet de développement.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

px_new() crée un nouvel objet Paradox, nécessaire à toutes les fonctions Paradox.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les deux tables suivantes listent toutes les constantes définies par l'extension Paradox.

Constantes pour les types de champs
Nom Signification
PX_FIELD_ALPHA Données sous forme de caractères avec une longueur fixe
PX_FIELD_DATE Date, nombre de jours depuis le 1.1.0000
PX_FIELD_SHORT Entier court (2 octets)
PX_FIELD_LONG Entier long (4 octets)
PX_FIELD_CURRENCY Identique à PX_FIELD_NUMBER
PX_FIELD_NUMBER Double
PX_FIELD_LOGICAL Booléen
PX_FIELD_MEMOBLOB Objet binaire large
PX_FIELD_BLOB Objet binaire large (non supporté)
PX_FIELD_FMTMEMOBLOB Objet binaire large
PX_FIELD_OLE Objet OLE (en fait un blob, non supporté)
PX_FIELD_GRAPHIC Graphique (en fait, un BLOB, non supporté)
PX_FIELD_TIME heure, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_TIMESTAMP timestamp, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_AUTOINC Entier auto-incrémenté (comme PX_FIELD_LONG)
PX_FIELD_BCD Nombre décimal stocké en format bcd (non supporté)
PX_FIELD_BYTES Tableau d'octets d'une longueur maximale de 255 octets (non supporté)
PX_KEYTOLOWER Convertit tous les noms de champs en minuscule
PX_KEYTOUPPER Convertit tous les noms de champs en majuscule
Constantes pour les types de fichiers
Nom Signification
PX_FILE_INDEX_DB Base de données indexée
PX_FILE_PRIM_INDEX Index primaire
PX_FILE_NON_INDEX_DB Base de données non indexée
PX_FILE_NON_INC_SEC_INDEX Non-indexé incrémentalement secondaire
PX_FILE_SEC_INDEX Index secondaire
PX_FILE_INC_SEC_INDEX Index secondaire incrémental
PX_FILE_NON_INC_SEC_INDEX_G Index secondaire non-incrémental
PX_FILE_SEC_INDEX_G Index secondaire
PX_FILE_INC_SEC_INDEX_G Index secondaire non-incrémental



Fonctions Paradox

API orientée objet

L'extension Paradox fournit également une API orientée objet. Elle consiste en une seule classe nommée paradox_db. Ses méthodes diffèrent uniquement des fonctions par leurs noms et, bien sûr, le premier paramètre. La table suivante liste toutes les méthodes avec les fonctions équivalentes.

Méthodes pour class paradox_db
Nom de la méthode Fonction équivalente
Constructeur px_new()
Destructeur px_delete()
open_fp() px_open_fp()
create_fp() px_create_fp()
close() px_close()
numrecords() px_numrecords()
numfields() px_numfields()
get_record() px_get_record()
put_record() px_put_record()
retrieve_record() px_retrieve_record()
delete_record() px_delete_record()
insert_record() px_insert_record()
update_record() px_update_record()
get_field() px_get_field()
get_schema() px_get_schema()
get_info() px_get_info()
set_parameter() px_set_parameter()
get_parameter() px_get_parameter()
set_value() px_set_value()
get_value() px_get_value()
get_info() px_get_info()
set_targetencoding() px_set_targetencoding()
set_tablename() px_set_tablename()
set_blob_file() px_set_blob_file()
date2string() px_date2string()
timestamp2string() px_timestamp2string()


px_close

(PECL paradox >= 1.0.0)

px_closeFerme une base de données Paradox

Description

bool px_close ( resource $pxdoc )

Ferme une base de données Paradox. Cette fonction ne ferme pas le fichier. Vous devez ensuite appeler la fonction fclose().

Liste de paramètres

pxdoc

Ressource identifiant la base de données Paradox telle que retournée par la fonction px_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • px_open_fp() - Ouvre une base de données Paradox
  • L'exemple de la fonction px_new() - Crée un nouvel objet Paradox



px_create_fp

(PECL paradox >= 1.0.0)

px_create_fpCrée une nouvelle base de données Paradox

Description

bool px_create_fp ( resource $pxdoc , resource $file , array $fielddesc )

Crée un nouveau fichier de base de données Paradox. Le fichier actuel doit avoir été ouvert avec la fonction fopen(). Assurez-vous que ce fichier est accessible en écriture.

Note:

L'appel à cette fonction émet une alerte à propos d'un nom de table vide qui peut être ignorée en toute sécurité. Définissez juste le nom de la table en suivant avec la fonction px_set_parameter().

Note:

Cette fonction est hautement expérimentale, à cause du manque de documentation du format de fichier Paradox. Les fichiers de base de données créés avec cette fonction peuvent être ouvert avec la fonction px_open_fp() et devraient s'ouvrir sans problème avec les logiciels Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

file

Ressource de fichier telle que retournée par la fonction fopen().

fielddesc

fielddesc est un tableau comprenant un élément pour chaque champ contenant ses spécifications. Une spécification de champ est un tableau avec deux ou trois éléments. Le premier élément est toujours une chaîne de caractères représentant le nom du champ. Il ne peut être plus grand que dix caractères. Le deuxième élément contient le type du champ qui peut être une des constantes listées dans la table "Constantes pour les types de champ". Dans le cas d'un champ sous la forme de caractères ou de bcd, vous devez fournir un troisième élément spécifiant la longueur du champ. Si votre spécification de champ contient des champs Blob, vous devez vous assurer de rendre le champ assez grand pour toutes les valeurs des champs ou bien spécifier un fichier Blob avec la fonction px_blob_file() pour y stocker les Blobs. Si vous ne faîtes pas cela, les données du champ seront tronquées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une base de données Paradox avec deux champs

<?php
if(!$pxdoc px_new()) {
  
/* Gestion d'erreurs */
}
$fp fopen("test.db""w+");
$fields = array(array("col1""S"), array("col2""I"));
if(!
px_create_fp($pxdoc$fp$fields)) {
  
/* Gestion d'erreurs */
}
px_set_parameter($pxdoc"tablename""testtable");
for(
$i=-50$i<50$i++) {
  
$rec = array($i, -$i);
  
px_put_record($pxdoc$rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Voir aussi

  • px_new() - Crée un nouvel objet Paradox
  • px_put_record() - Stock un enregistrement dans une base de données Paradox
  • fopen() - Ouvre un fichier ou une URL



px_date2string

(PECL paradox >= 1.4.0)

px_date2string Convertit une date en une chaîne de caractères

Description

string px_date2string ( resource $pxdoc , int $value , string $format )

Convertit une date stockée dans un fichier Paradox en un format humainement lisible. Les dates Paradox représentent le nombre de jours depuis le 1.1.0000. Cette fonction existe que pour une convenance technique. Elle peut être facilement remplacée par des fonctions mathématiques et relatives aux calendriers tel que montré dans l'exemple ci-dessous.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox tel que retourné par la fonction px_new().

value

Valeur comme stockée dans le champ de la base de données Paradox d'un type PX_FIELD_DATE.

format

Format similaire au format utilisé par la fonction date(). Les caractères spéciaux supportés par cette fonction est une partie de ceux utilisés par la fonction date() (Y, y, m, n, d, j, L).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertit une date Paradox en un format humainement lisible

<?php
$px 
px_new();

/* définition d'une date telle qu'elle peut être stockée dans */
/* un champ date dans une base de données Paradox. */
/* 700000 jours depuis le 1.1.0000. */
$days 700000;

/* Utilisation des fonctions de calendriers pour afficher */
/* la date en un format humainement lisible */
echo jdtogregorian($days+1721425)."\n";
/* px_date2string() affiche la même chose */
echo px_date2string($px$days"n/d/Y")."\n";

px_delete($px);
?>

L'exemple ci-dessus va afficher :

7/15/1917
7/15/1917

Voir aussi



px_delete_record

(PECL paradox >= 1.4.0)

px_delete_recordEfface une enregistrement depuis une base de données Paradox

Description

bool px_delete_record ( resource $pxdoc , int $num )

px_delete_record() efface un enregistrement dans une base de données Paradox. Elle ne libère pas l'espace dans la base de données, mais le marque comme effacé. L'insertion d'un nouvel enregistrement écrasera cet espace.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



px_delete

(PECL paradox >= 1.0.0)

px_deleteEfface la ressource d'une base de données Paradox

Description

bool px_delete ( resource $pxdoc )

Efface la ressource d'une base de données Paradox et libère toute la mémoire.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



px_get_field

(PECL paradox >= 1.0.0)

px_get_fieldRetourne les spécifications d'un champ

Description

array px_get_field ( resource $pxdoc , int $fieldno )

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

fieldno

Numéro du champ. Le premier champ a le numéro 0. Spécifier un numéro de champ inférieur à 0 ou plus grand ou égal au nombre de champs lancera une erreur.

Valeurs de retour

Retourne les spécifications du champ numéro fieldno de la base de données en tant que tableau associatif. Le tableau contient trois éléments nommés name, type et size.



px_get_info

(PECL paradox >= 1.0.0)

px_get_infoRetourne des informations sur un fichier Paradox

Description

array px_get_info ( resource $pxdoc )

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne un tableau associatif contenant des informations sur un fichier Paradox. Ce tableau est appelé à évoluer dans le futur.

fileversion

Version du fichier, multiplié par 10, e.g. 70.

tablename

Nom de la table stocké dans le fichier. Si la base de données a été créée par pxlib, alors ce sera la même chose que le nom du fichier sans l'extension.

numrecords

Nombre d'enregistrements dans cette table.

numfields

Nombre de champs dans cette table.

headersize

Nombre d'octets utilisés pour l'en-tête. Vaut habituellement 0x800.

recordsize

Nombre d'octets utilisé par chaque enregistrement. C'est la somme de la taille de tous les champs (disponible depuis la version 1.4.2).

maxtablesize

Cette valeur, multipliée par 0x400, est la taille du bloc de données en octets. Le nombre maximal d'enregistrements dans un bloc de données est un entier de l'intervalle (maxtablesize * 0x400 - 8) / taille de l'enregistrements.

numdatablocks

Le nombre de blocs de données dans le fichier. Chaque bloc de données contient un certain nombre d'enregistrements qui dépend de la taille de l'enregistrement et de la taille du bloc de données (maxtablesize). Les blocs de données ne doivent pas nécessairement être complètement remplis.

numindexfields

Nombre de champs utilisés pour l'index primaire. Le champ commence toujours au numéro 1.

codepage

La page de code DOS qui sera utilisé pour encoder les champs contenant des données sous forme de caractères. Si la cible d'encodage n'est pas définie avec la fonction px_set_targetencoding(), ceci sera l'encodage pour les champs sous forme de caractères lorsque les enregistrements seront récupérés avec la fonction px_get_record() ou px_retrieve_record().

Voir aussi

  • px_numfields() - Retourne le nombre de champs d'une base de données Paradox
  • px_numrecords() - Retourne le nombre d'enregistrements d'une base de données Paradox



px_get_parameter

(PECL paradox >= 1.1.0)

px_get_parameterRécupère un paramètre

Description

string px_get_parameter ( resource $pxdoc , string $name )

Récupère divers paramètres.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox tel que retourné par la fonction px_new().

name

Le nom name peut être un parmi la liste suivante :

tablename

Le nom de la table comme stocké dans l'en-tête de la base de données.

targetencoding

L'encodage pour la sortie. Les données qui seront lues depuis le champs de caractères avec la fonction px_get_record() ou la fonction px_retrieve_record() seront réencodées en utilisant l'encodage de sortie. S'il n'est pas défini, alors les données seront transmises tel que stockées dans la base de données.

inputencoding

L'encodage pour les données d'entrées qui seront stockées dans la base de données. Lors du stockage de données dans un champ de type chaîne de caractères, les données sont attendues dans cette encodage.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE si une erreur survient.



px_get_record

(PECL paradox >= 1.0.0)

px_get_recordRetourne un enregistrement d'une base de données Paradox

Description

array px_get_record ( resource $pxdoc , int $num [, int $mode = 0 ] )

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans le même ordre que celui de la base de données. Le premier enregistrement a le numéro 0.

mode

Le paramètre optionnel mode peut être PX_KEYTOLOWER ou PX_KEYTOUPPER pour convertir les clés du tableau retourné, en minuscule ou majuscule. Si mode n'est pas spécifié ou vaut 0, alors les clés seront exactement pareil que les noms des champs. Les valeurs des éléments seront les valeurs des champs. Les valeurs NULL seront maintenues et seront différentes de 0.0, 0 ou chaîne vide. Le type de champ PX_FIELD_TIME sera retourné en tant qu'entier contenant le nombre de millisecondes depuis minuit. Les timestamp (PX_FIELD_TIMESTAMP) et les dates (PX_FIELD_DATE) sont des entiers représentants respectivement les millisecondes et les jours depuis le début du calendrier Julien. Utilisez les fonctions px-timestamp2string() et px-date2string() pour les convertir en un format lisible.

Valeurs de retour

Retourne le numéro de l'enregistrement num depuis la base de données Paradox. L'enregistrement est retourné sous la forme d'un tableau associatif dont les clés représentent les noms de champs.

Voir aussi



px_get_schema

(PECL paradox >= 1.0.0)

px_get_schemaRetourne le schéma de la base de données

Description

array px_get_schema ( resource $pxdoc [, int $mode = 0 ] )

px_get_schema() retourne le schéma de la base de données.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

mode

Si le paramètre optionnel mode vaut PX_KEYTOLOWER ou PX_KEYTOUPPER, les clés du tableau retourné seront converties en minuscule ou en majuscule. Si mode n'est pas fourni ou s'il vaut 0, alors le nom de la clé sera identique au nom du champ.

Valeurs de retour

Retourne le schéma du fichier de base de données en tant que tableau associatif. Le nom de la clé sera le nom du champ. Chaque élément du tableau est lui-même un tableau associatif contenant deux champs : type et size. type est une des constantes listées dans la table "Les constants pour les types de champs". size est le nombre d'octets que ce champ représente dans l'enregistrement. Le total de toutes les tailles des champs est égal à la taille de l'enregistrement tel qu'elle peut être récupérée avec la fonction px-get-info().



px_get_value

(PECL paradox >= 1.1.0)

px_get_valueRécupère une valeur

Description

float px_get_value ( resource $pxdoc , string $name )

Récupère diverses valeurs.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

name

name peut être un parmi les suivants :

numprimkeys

Le nombre de clés primaires. Les base de données Paradox utilisent toujours les champs numprimkeys pour les index primaires.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE si une erreur survient.



px_insert_record

(PECL paradox >= 1.4.0)

px_insert_recordInsère un enregistrement dans une base de données Paradox

Description

int px_insert_record ( resource $pxdoc , array $data )

Insert un nouvel enregistrement dans une base de données. L'enregistrement n'est pas nécessairement inséré à la fin de la base de données mais peut être inséré à n'importe quelle position libre trouvée.

Les données à enregistrer sont passées via un tableau de valeurs. Les éléments du tableau doivent correspondre aux champs de la base de données. Si le tableau a moins d'éléments que de champs dans la base de données, les champs restants seront définis à NULL.

La plupart des valeurs des champs peut être passée en tant que leurs équivalents PHP, e.g. une valeur longue est utilisée pour les champs de type PX_FIELD_LONG, PX_FIELD_SHORT et PX_FIELD_AUTOINC, une valeur double est utilisée pour les champs de type PX_FIELD_CURRENCY et PX_FIELD_NUMBER. Les valeurs de champs Blob et alpha sont passées en tant que chaînes de caractères.

Les champs de type PX_FIELD_TIME et PX_FIELD_DATE nécessitent une valeur longue. Dans le premier cas, ce sera le nombre de millisecondes depuis minuit. Dans le second cas, ce sera le nombre de jours depuis le 1.1.0000. Ci-dessous, deux exemples pour convertir la date courante ou le timestamp en une valeur compréhensible par les champs Paradox date/heure.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé..

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

data

Un tableau associatif ou indexé contenant les valeurs des champs comme retournées par la fonction px_retrieve_record().

Valeurs de retour

Retourne le numéro de l'enregistrement inséré ou FALSE en cas d'erreur.

Exemples

Exemple #1 Définit les champs date/heure dans une base de données Paradox à la date/heure courant

<?php
$px 
px_new();
$fp fopen("test.db""w+");
px_create_fp($px$fp, array(array("timestamp""@"), array("time""T"), array("date""D")));

$curdate getdate();
$jd gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days $jd 1721425/* Number of days between 1.1.4714 b.c. and 1.1.0000 */
$secs $curdate["hours"]*3600 $curdate["minutes"]*60 $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 $secs*1000.0$secs*1000.0$days));

$curtimestamp microtime(true);
$days = (int) ($curtimestamp/86400);
$secs $curtimestamp - ($days 86400.0);
$days += 2440588/* Number of days between 1.1.4714 b.c. and 1.1.1970 */
$days -= 1721425/* Number of days between 1.1.4714 b.c. and 1.1.0000 */
px_insert_record($px, array($days*86400000.0 $secs*1000.0$secs*1000.0$days));
for(
$i=0$i<2$i++) {
   
$rec px_retrieve_record($px$i);
   echo 
px_timestamp2string($px$rec["timestamp"], "n/d/Y H:i:s")."\n";
   echo 
px_date2string($px$rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

L'exemple ci-dessus va afficher :

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

Le nombre de jours Julien tel que passé à la fonction jdtogregorian() a une base différente de 1.1.4714 b.c. et doit être calculé en ajoutant 1721425 au nombre de jours utilisé dans le fichier Paradox. Le fait de convertir le nombre de jours en timestamp est facile ; il suffit de multiplier ce nombre par 86400000.0 pour obtenir des millisecondes.

Voir aussi

px_update_record() - Met à jour les enregistrements dans une base de données Paradox



px_new

(PECL paradox >= 1.0.0)

px_newCrée un nouvel objet Paradox

Description

resource px_new ( void )

Crée un nouvel objet Paradox. Vous devez appeler cette fonction avant toute autre fonction. px_new() ne crée aucun fichier sur le disque, il crée juste une instance d'un objet Paradox. Cette fonction doit être appelée si l'interface orientée objet est utilisée. Utilisez new paradox_db() à la place.

Valeurs de retour

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Ouverture d'une base de données Paradox

<?php
if(!$pxdoc px_new()) {
  
/* Gestionnaire d'erreurs */
}
$fp fopen("test.db""r");
if(!
px_open_fp($pxdoc$fp)) {
  
/* Gestionnaire d'erreurs */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Si vous préférez l'API orientée objet, alors, l'exemple précédent ressemblera à ceci :

Exemple #2 Ouverture d'une base de données Paradox

<?php
$fp 
fopen("test.db""r");
$pxdoc = new paradox_db();
if(!
$pxdoc->open_fp($fp)) {
  
/*  Gestionnaire d'erreurs */
}
// ...
$pxdoc->close();
fclose($fp);
?>

Voir aussi

  • px_delete() - Efface la ressource d'une base de données Paradox
  • px_open_fp() - Ouvre une base de données Paradox



px_numfields

(PECL paradox >= 1.0.0)

px_numfieldsRetourne le nombre de champs d'une base de données Paradox

Description

int px_numfields ( resource $pxdoc )

Récupère le nombre de champs dans un fichier de base de données Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne le nombre de champs d'un fichier de base de données Paradox. La valeur retournée par cette fonction est identique à la valeur de l'élément numfields du tableau associatif retourné par la fonction px_get_info().



px_numrecords

(PECL paradox >= 1.0.0)

px_numrecordsRetourne le nombre d'enregistrements d'une base de données Paradox

Description

int px_numrecords ( resource $pxdoc )

Retourne le nombre d'enregistrements d'un fichier de base de données Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne le nombre d'enregistrements d'un fichier de base de données Paradox. La valeur retournée par cette fonction est identique à la valeur de l'élément numrecords du tableau retourné par la fonction px_get_info().



px_open_fp

(PECL paradox >= 1.0.0)

px_open_fpOuvre une base de données Paradox

Description

bool px_open_fp ( resource $pxdoc , resource $file )

Ouvre un fichier de base de données Paradox existant. Le fichier actuel doit avoir été ouvert avant par la fonction fopen(). Cette fonction peut également être utilisée pour ouvrir les fichiers d'index primaires et les traiter comme des bases de données Paradox. Ceci est supporté pour ceux qui veulent investisseur un index primaire. Il ne peut être utilisé pour accélérer l'accès à un fichier de base de données.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

file

file est la valeur retournée par la fonction fopen() avec le fichier de base de données actuelle en tant que paramètre. Assurez-vous que la base de données est accessible en écriture si vous devez mettre à jour des enregistrements ou en insérer de nouveaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • L'exemple de la fonction px_new() - Crée un nouvel objet Paradox



px_put_record

(PECL paradox >= 1.0.0)

px_put_recordStock un enregistrement dans une base de données Paradox

Description

bool px_put_record ( resource $pxdoc , array $record [, int $recpos = -1 ] )

Stock un enregistrement dans une base de données Paradox. L'enregistrement sera toujours ajouté à la fin de la base de données, indépendamment des slots libres. Utilisez la fonction px_insert_record() pour ajouter un nouvel enregistrement dans le premier slot libre trouvé dans la base de données.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

record

Tableau associatif ou indexé contenant les valeurs des champs tel que retourné par la fonction px_retrieve_record().

recpos

Ce paramètre optionnel peut être utilisé pour spécifier un nombre d'enregistrements supérieurs au nombre d'enregistrements actuellement en base de données. La fonction ajoutera autant d'enregistrements vides que nécessaires. Ce paramètre est inutile dans la plupart des cas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



px_retrieve_record

(PECL paradox >= 1.4.0)

px_retrieve_recordRetourne un enregistrement depuis une base de données Paradox

Description

array px_retrieve_record ( resource $pxdoc , int $num [, int $mode = 0 ] )

Cette fonction est très similaire à la fonction px_get_record() mais utilise en interne une approche différente pour récupérer les données. Elle utilise pxlib pour lire la valeur de chaque champ, permettant ainsi le support de plus de types de champs.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox comme retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

mode

Le paramètre optionnel mode peut être PX_KEYTOLOWER ou PX_KEYTOUPPER afin de convertir les clés en majuscule ou en minuscule. Si mode n'est pas fournie ou vaut 0, alors la clé sera exactement le nom du champ. Les valeurs des éléments contiendront les valeurs des champs. les valeurs NULL seront retenues et sont différentes de 0.0, 0 ou une chaîne vide. Les champs de type PX_FIELD_TIME seront retournés en tant qu'entiers représentant le nombre de secondes depuis minuit. Un timestamp est une valeur flottante comptant également les millisecondes depuis le début du calendrier julien.

Valeurs de retour

Retourne l'enregistrement numéro num depuis une base de données Paradox. L'enregistrement est retourné en tant que tableau associatif dont les clés sont les noms des champs.

Voir aussi

  • px_get_record() - Retourne un enregistrement d'une base de données Paradox



px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_fileDéfinit le fichier depuis lequel les blobs seront lus

Description

bool px_set_blob_file ( resource $pxdoc , string $filename )

Définit le nom du fichier depuis lequel les blobs seront lus. Sans l'appel à cette fonction, px_get_record() ou px_retrieve_record() retournera uniquement les données des champs blob si les données sont des parties des enregistrements et ne sont pas stockées dans un fichier blob. Les données blob sont stockées dans un enregistrement si elles sont suffisamment petites pour correspondre à la taille du champ blob.

L'appel aux fonctions px_put_record(), px_insert_record() ou px_update_record() sans appeler la fonction px_set_blob_file() fera que les champs Blobs seront tronqués à moins que les données rentrent juste dans le fichier de base de données.

Deux appels à cette fonction fermera le premier fichier blob et ouvrira le nouveau.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

filename

Le nom du fichier. Son extension doit être .MB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



px_set_parameter

(PECL paradox >= 1.1.0)

px_set_parameterDéfinit un paramètre

Description

bool px_set_parameter ( resource $pxdoc , string $name , string $value )

Définit divers paramètres.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

name

Suivant le paramètre que vous voulez définir, name peut prendre une des valeurs suivantes :

tablename

Le nom de la table comme il est stocké dans l'en-tête de la base de données.

targetencoding

L'encodage pour la sortie. Les données lues depuis les champs seront encodées avec ce paramètre.

inputencoding

L'encodage des données d'entrées qui seront stockées dans la base de données.

value

La valeur du paramètre à définir. Pour l'encodage de l'entrée et l'encodage de la sortie, cette valeur doit être le nom de l'encodage tel que reconnu par iconv ou recode, e.g. iso-8859-1, utf-8, cp850.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • px_get_info() - Retourne des informations sur un fichier Paradox pour déterminer le code de page DOS.



px_set_tablename

(PECL paradox >= 1.0.0)

px_set_tablenameDéfinit le nom de la table (obsolète)

Description

void px_set_tablename ( resource $pxdoc , string $name )

Définit le nom de la table d'une base de données Paradox, qui a été créé avec la fonction px_create_fp(). Cette fonction est obsolète, utilisez la fonction px_set_parameter() à la place.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

tablename

Le nom de la table. Si elle n'est pas nommée explicitement, le nom de la table correspondra au nom du fichier de base de données.

Valeurs de retour

Retourne NULL en cas de succès ou FALSE si une erreur survient.

Voir aussi

px_set_parameter() - Définit un paramètre



px_set_targetencoding

(PECL paradox >= 1.0.0)

px_set_targetencodingDéfinit l'encodage pour les caractères des champs (obsolète)

Description

bool px_set_targetencoding ( resource $pxdoc , string $encoding )

Définit l'encodage pour les données récupérées depuis les champs. Tous les caractères des champs seront réencodés par cette fonction. Si l'encodage n'est pas défini, les caractères des données seront retournés en utilisant l'encodage de page DOS comme spécifié dans la base de données. Le paramètre encoding peut être n'importe quel identifiant connu par iconv ou recode. Sous les systèmes Unix, exécutez la commande iconv -l pour obtenir une liste des encodages disponibles.

Cette fonction est obsolète et devrait être remplacée par la fonction px_set_parameter().

Voir aussi la fonction px_get_info() pour déterminer le code page DOS tel que stocké dans le fichier de base de données.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

encoding

L'encodage pour la sortie. Les données lues depuis des champs caractères seront encodées avec cet encodage.

Valeurs de retour

Retourne FALSE si l'encodage n'a pû être définie, e.g. l'encodage est inconnu ou pxlib ne supporte pas du tout le réencodage. Dans le deuxième cas, une alerte sera émise.

Voir aussi

px_set_parameter() - Définit un paramètre



px_set_value

(PECL paradox >= 1.1.0)

px_set_valueDéfinit une valeur

Description

bool px_set_value ( resource $pxdoc , string $name , float $value )

Définit diverses valeurs.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données comme retourné par la fonction px_new().

name

name peut être un des suivants :

numprimkeys

Le nombre de clés primaires. Les bases de données Paradox utilisent toujours le premier champ numprimkeys pour l'index primaire.

value

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

px_set_parameter() - Définit un paramètre



px_timestamp2string

(PECL paradox >= 1.4.0)

px_timestamp2string Convertit un timestamp en une chaîne de caractères

Description

string px_timestamp2string ( resource $pxdoc , float $value , string $format )

Convertit un timestamp tel que stocké dans un fichier Paradox en un format humainement lisible. Les timestamps Paradox sont le nombre de millisecondes depuis le 0001-01-02. Cette fonction peut facilement être remplacée par des fonctions mathématiques et de calendriers tel qu'utilisées dans l'exemple ci-dessous.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données.

value

Valeur comme stockée dans un champ de base de données Paradox de type PX_FIELD_TIME ou PX_FIELD_TIMESTAMP.

format

Format similaire au format utilisé par la fonction date(). Les caractères spéciaux supportés par cette fonction sont une partie de ceux supportés par la fonction date() (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertit un timestamp Paradox en un format humainement lisible

<?php
$px 
px_new();

/* assignement d'une date telle qu'elle peut être stockée dans */
/* un champ date d'une base de données Paradox. */
/* 700000 jours depuis le 1.1.0000. */
$days 700000;

/* Utilisation des fonctions de calendriers pour afficher */
/* un format humainement lisible de la date */
echo jdtogregorian($days+1721425)."\n";

/* Convertit en un timestamp tel que stocké dans une base de données Paradox */
/* Timestamps sont stockés en millisecondes depuis le 0001-01-02 */
$stamp $days 86400.0 1000.0;
/* Ajout d'une heure */
$stamp += 3600000.0;
/* Affichera : '7/15/1917 01:00:00'. */
echo px_timestamp2string($px$stamp"n/d/Y H:i:s")."\n";

px_delete($px);
?>

L'exemple ci-dessus va afficher :

7/15/1917
7/15/1917 01:00:00

Le nombre de jours Julien tel que passé à la fonction jdtogregorian() a une base différente de 1.1.4714 b.c. et doit être calculé en ajoutant 1721425 au nombre de jours utilisé dans le fichier Paradox. Le fait de convertir un nombre de jours en un timestamp est facile ; il suffit de le multiplier par 86400000.0 pour obtenir des millisecondes.

Voir aussi

  • px_date2string() - Convertit une date en une chaîne de caractères
  • jdtogregorian() - Convertit le nombre de jours du calendrier Julien en date grégorienne



px_update_record

(PECL paradox >= 1.4.0)

px_update_recordMet à jour les enregistrements dans une base de données Paradox

Description

bool px_update_record ( resource $pxdoc , array $data , int $num )

Cette fonction met à jour un enregistrement dans la base de données. L'enregistrement commence à 0.

Les données de l'enregistrement sont passées en tant que tableau de valeurs. Les éléments du tableau doivent correspondre aux champs de la base de données. Si le tableau a moins d'éléments que la base de données n'a de champs, les champs restants seront définis à NULL.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox comme retourné par la fonction px_new().

data

Tableau associatif contenant les valeurs des champs comme retournées par la fonction px_retrieve_record().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

px_insert_record() - Insère un enregistrement dans une base de données Paradox


Sommaire




PostgreSQL


Introduction

La base de données PostgreSQL est un produit Open Source, disponible sans frais. PostgreSQL, développé au département de Science informatique, à UC Berkeley, met en place la majorité des concepts des bases relationnelles actuellement disponibles sur le marché. PostgreSQL accepte le langage SQL92/SQL3, assure l'intégrité transactionnelle et l'extension de type. PostgreSQL est une évolution du code original de Berkeley.



Installation/Configuration

Sommaire


Pré-requis

Pour accéder au support PostgreSQL, vous avez besoin de PostgreSQL 6.5 ou plus récent ; PostgreSQL 7.0 ou plus récent pour activer toutes les fonctionnalités du module PostgreSQL. PostgreSQL supporte de nombreux jeux de caractères, y compris les jeux multioctets asiatiques. La version courante et plus de détails sur PostgreSQL sont accessibles sur le site » http://www.postgresql.org/ et la » Documentation PostgreSQL.



Installation

Afin d'activer le support PostgreSQL, l'option --with-pgsql[=DIR] est nécessaire lors de la compilation de PHP. DIR est le chemin du dossier d'installation de PostgreSQL, et par défaut il vaut /usr/local/pgsql. Si le module de chargement dynamique est disponible, le module PostgreSQL peut être chargé avec la directive extension du fichier php.ini ou via la fonction dl().



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PostGreSQL
Nom Défaut Modifiable Historique
pgsql.allow_persistent "1" PHP_INI_SYSTEM  
pgsql.max_persistent "-1" PHP_INI_SYSTEM  
pgsql.max_links "-1" PHP_INI_SYSTEM  
pgsql.auto_reset_persistent "0" PHP_INI_SYSTEM Disponible depuis PHP 4.2.0.
pgsql.ignore_notice "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
pgsql.log_notice "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pgsql.allow_persistent booléen

Autorise ou non les connexions persistantes Postgre.

pgsql.max_persistent entier

Le nombre maximum de connexions persistantes Postgre par processus.

Le nombre maximum de connexions Postgre par processus, y compris les connexions persistantes.

pgsql.auto_reset_persistent entier

Détecte les connexions persistantes (ouvertes avec pg_pconnect()) rompues.

pgsql.ignore_notice entier

Active ou non l'affichage des notices PostgreSQL.

pgsql.log_notice entier

Active ou non l'enregistrement en fichier log des messages notices PostgreSQL. La directive PHP pgsql.ignore_notice doit être désactivée pour pouvoir enregistrer les messages de notices en fichier log.



Types de ressources

Il y a deux types de ressource utilisé dans le module PostgreSQL. La première est l'identifiant pour la connexion à la base de données et le second est une ressource qui contient le résultat d'une requête.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PGSQL_ASSOC (entier)
Passée à pg_fetch_array(). Retourne un tableau associatif des noms et valeurs des champs.
PGSQL_NUM (entier)
Passée à pg_fetch_array(). Retourne un tableau à index numérique des numéros et valeurs des champs.
PGSQL_BOTH (entier)
Passée à pg_fetch_array(). Retourne un tableau des valeurs des champs qui est indexés numériquement (par le numéro des champs) et indexés littéralement (par le nom des champs).
PGSQL_CONNECT_FORCE_NEW (entier)
Passée à pg_connect() pour forcer la création d'une nouvelle connexion, plutôt que de réutiliser une connexion identique existante.
PGSQL_CONNECTION_BAD (entier)
Retournée par pg_connection_status() indiquant que la connexion à la base de données est invalide.
PGSQL_CONNECTION_OK (entier)
Retournée par pg_connection_status() indiquant que la connexion à la base de données est valide.
PGSQL_SEEK_SET (entier)
Passée à pg_lo_seek(). Le positionnement commencera au début de l'objet.
PGSQL_SEEK_CUR (entier)
Passée à pg_lo_seek(). Le positionnement commencera à la position courante.
PGSQL_SEEK_END (entier)
Passée à pg_lo_seek(). Le positionnement commencera à la fin de l'objet.
PGSQL_EMPTY_QUERY (entier)
Retournée par pg_result_status(). La chaîne de caractères envoyée au serveur était vide.
PGSQL_COMMAND_OK (entier)
Retournée par pg_result_status(). Commande correctement complétée ne retournant aucune donnée.
PGSQL_TUPLES_OK (entier)
Retournée par pg_result_status(). Commande correctement complétée retournant des données (comme SELECT ou SHOW).
PGSQL_COPY_OUT (entier)
Retournée par pg_result_status(). Copie (à partir du serveur) de transfert de données commencée.
PGSQL_COPY_IN (entier)
Retournée par pg_result_status(). Copie (vers le serveur) de transfert de données commencée.
PGSQL_BAD_RESPONSE (entier)
Retournée par pg_result_status(). La réponse du serveur n'a pas été comprise.
PGSQL_NONFATAL_ERROR (entier)
Retournée par pg_result_status(). Une erreur non fatale (de niveau notice ou warning) s'est produite.
PGSQL_FATAL_ERROR (entier)
Retournée par pg_result_status(). Une erreur fatale s'est produite.
PGSQL_TRANSACTION_IDLE (entier)
Retournée par pg_transaction_Status(). La connexion est actuellement libre, aucune transaction en cours.
PGSQL_TRANSACTION_ACTIVE (entier)
Retournée par pg_transaction_status(). Une commande est en cours sur la connexion. Une requête a été envoyée sur la connexion et n'a toujours pas été complétée.
PGSQL_TRANSACTION_INTRANS (entier)
Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction.
PGSQL_TRANSACTION_INERROR (entier)
Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction échoué.
PGSQL_TRANSACTION_UNKNOWN (entier)
Retournée par pg_transaction_status(). La connexion est mauvaise.
PGSQL_DIAG_SEVERITY (entier)
Passée à pg_result_error_field(). La sévérité; le contenu du champ est ERROR, FATAL ou PANIC (dans un message d'erreur) ou WARNING, NOTICE, DEBUG, INFO ou LOG (dans un message d'avertissement) ou une traduction localisée parmi celles-ci. Toujours présent.
PGSQL_DIAG_SQLSTATE (entier)
Passée à pg_result_error_field(). Le code SQLSTATE pour cette erreur. Le code SQLSTATE identifie le type d'erreur qui s'est produite; cela peut être utilisé par des applications d'entrée pour effectuer des opérations spécifiques (comme la gestion d'erreur) en réponse à une erreur de base de données particulière. Ce champ ne peut être localisé et est toujours présent.
PGSQL_DIAG_MESSAGE_PRIMARY (entier)
Passée à pg_result_error_field(). Le champ d'erreur primaire interprétable pour l'utilisateur (normalement une ligne). Toujours présent.
PGSQL_DIAG_MESSAGE_DETAIL (entier)
Passée à pg_result_error_field(). Détail : un second optionnel message d'erreur apportant plus de détails à propos du problème. Peut être sur plusieurs lignes.
PGSQL_DIAG_MESSAGE_HINT (entier)
Passée à pg_result_error_field(). Conseil : une suggestion optionnelle qui indique que faire à propos du problème. Ceci est prévu d'être différent de l'erreur puisqu'elle offre un conseil (potentiellement inadéquat) plutôt que les faits véridiques. Peut être sur plusieurs lignes.
PGSQL_DIAG_STATEMENT_POSITION (entier)
Passée à pg_result_error_field(). Une chaîne de caractères contenant une valeur entière décimale indiquant une erreur de position du curseur en tant qu'index dans la requête originale. Le premier caractère a l'index 1 et les positions sont mesurées en caractères, non en octets.
PGSQL_DIAG_INTERNAL_POSITION (entier)
Passée à pg_result_error_field(). Ceci est défini étant la même chose que le champ PG_DIAG_STATEMENT_POSITION, mais cela est utilisé lorsque la position du curseur réfère à une commande générée internement plutôt que d'une envoyée par le client. Le champ PG_DIAG_INTERNAL_QUERY apparaîtra toujours lorsque ce champ apparaît.
PGSQL_DIAG_INTERNAL_QUERY (entier)
Passée à pg_result_error_field(). Le texte d'une commande générée internement échouée. Cela peut être, par exemple, une requête SQL envoyée par une fonction PL/pgSQL.
PGSQL_DIAG_CONTEXT (entier)
Passée à pg_result_error_field(). Une indication du contexte dans lequel l'erreur s'est produit. Présentement, ceci inclut une pile d'appel des traceback des fonctions procédurales actives ainsi que des requête générées à l'interne. Le traçage est une entrée par ligne, les plus récentes en premier.
PGSQL_DIAG_SOURCE_FILE (entier)
Passée à pg_result_error_field(). Le nom du fichier de l'emplacement du code source PostgreSQL où l'erreur a été reportée.
PGSQL_DIAG_SOURCE_LINE (entier)
Passée à pg_result_error_field(). Le nombre de ligne de l'emplacement du code source PostgreSQL où l'erreur a été reportée.
PGSQL_DIAG_SOURCE_FUNCTION (entier)
Passée à pg_result_error_field(). Le nom de la fonction de source code PostgreSQL reportant l'erreur.
PGSQL_ERRORS_TERSE (entier)
Passée à pg_set_error_verbosity(). Spécifie que les messages retournés incluent la sévérité, le texte primaire ainsi que la position seulement; ceci devrait entrer sur une seule ligne.
PGSQL_ERRORS_DEFAULT (entier)
Passée à pg_set_error_verbosity(). Le mode par défaut produit des messages qui incluent ce qui est plus haut et des détails en plus, conseil ou des champs contextes (ceci peut être sur plusieurs lignes).
PGSQL_ERRORS_VERBOSE (entier)
Passée à pg_set_error_verbosity(). Le mode verbeux inclut tous les champs disponibles.
PGSQL_STATUS_LONG (entier)
Passée à pg_result_status(). Indique que le code résultat est désiré numérique.
PGSQL_STATUS_STRING (entier)
Passée à pg_result_status(). Indique que le tag de résultat de commande est désiré textuel.
PGSQL_CONV_IGNORE_DEFAULT (entier)
Passée à pg_convert(). Ignore les valeurs par défaut dans la table pendant la conversion.
PGSQL_CONV_FORCE_NULL (entier)
Passée à pg_convert(). Utilise NULL à la place d'une chaîne de caractères vide.
PGSQL_CONV_IGNORE_DEFAULT (entier)
Passée à pg_convert(). Ignore la conversion de NULL à l'intérieur des colonnes NOT NULL.


Exemples

Sommaire


Ce simple exemple montre comment se connecter, exécuter une requête et afficher les lignes résultantes et se déconnecter d'une base de données PostgreSQL.

Exemple #1 Exemple général de l'extension PostgreSQL

<?php
// Connexion, sélection de la base de données
$dbconn pg_connect("host=localhost dbname=publishing user=www password=foo")
    or die(
'Connexion impossible : ' pg_last_error());

// Exécution de la requête SQL
$query 'SELECT * FROM authors';
$result pg_query($query) or die('Échec de la requête : ' pg_last_error());

// Affichage des résultats en HTML
echo "<table>\n";
while (
$line pg_fetch_array($resultnullPGSQL_ASSOC)) {
    echo 
"\t<tr>\n";
    foreach (
$line as $col_value) {
        echo 
"\t\t<td>$col_value</td>\n";
    }
    echo 
"\t</tr>\n";
}
echo 
"</table>\n";

// Libère le résultat
pg_free_result($result);

// Ferme la connexion
pg_close($dbconn);
?>




Fonctions PostgreSQL

Notes

Note:

Les fonctions ne sont pas toutes supportées par toutes les versions. Cela dépend de votre version de libpq (la bibliothèque cliente de PostgreSQL C) et comment libpq est compilée. Si les extensions PHP PostGreSQL sont manquantes, alors c'est parce que votre version de libpq ne les supporte pas.

Note:

La plupart des fonctions PostgreSQL acceptent le paramètre connection comme premier paramètre optionnel. S'il n'est pas fourni, la dernière connexion ouverte est utilisée. Si elle n'existe pas, les fonctions retournent FALSE.

Note:

PostgreSQL transforme automatiquement tous les identifiants (par exemple, les noms de tables/colonnes) en minuscule à la création d'objet et lors de la requête. Pour forcer l'utilisation des caractères majuscules ou minuscules et majuscules des identifiants, vous devez échapper l'identifiant en utilisant des guillemets ("").

Note:

PostgreSQL n'a pas de commande spéciale pour récupérer les schémas des bases de données (par exemple, toutes les tables dans la base de données). À la place, il y a un schéma standard nommé information_schema dans PostgreSQL 7.4 et supérieure contenant les vues du système avec toutes les informations nécessaires, dans un format de requête facile. Voyez la » Documentation PostgreSQL pour tous les détails.


pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_affected_rows Retourne le nombre de lignes affectées

Description

int pg_affected_rows ( resource $result )

pg_affected_rows() retourne le nombre de lignes affectées par les requêtes de type INSERT, UPDATE et DELETE.

Note:

Auparavant, cette fonction s'appelait pg_cmdtuples().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de lignes affectées par la requête. S'il n'y a pas de ligne affecté, la fonction retournera 0.

Exemples

Exemple #1 Exemple avec pg_affected_rows()

<?php
$result 
pg_query($conn"INSERT INTO editeur VALUES ('Auteur')");

$cmdtuples pg_affected_rows($result);

echo 
$cmdtuples " lignes ont été affectées.\n";
?>

L'exemple ci-dessus va afficher :

1 lignes ont été affectées.

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_query_params() - Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
  • pg_execute() - Exécute une requête préparée PostGreSQL
  • pg_num_rows() - Retourne le nombre de lignes PostgreSQL



pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5)

pg_cancel_query Annule une requête asynchrone

Description

bool pg_cancel_query ( resource $connection )

pg_cancel_query() annule la requête asynchrone, démarrée avec pg_send_query(), pg_send_query_params() ou pg_send_execute(). Vous ne pouvez pas annuler une requête démarrée avec pg_query().

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_cancel_query()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!
pg_connection_busy($dbconn)) {
      
pg_send_query($dbconn"select * from auteurs; select count(*) from auteurs;");
  }
  
  
$res1 pg_get_result($dbconn);
  echo 
"Premier appel de pg_get_result() : $res1\n";
  
$rows1 pg_num_rows($res1);
  echo 
"$res1 a $rows1 enregistrements\n\n";
  
  
// Annule la requête en cours de fonctionnement. Ce sera la deuxième requête
  // elle fonctionne encore.
  
pg_cancel_query($dbconn);
?>

L'exemple ci-dessus va afficher :

Premier appel de pg_get_result() : Resource id #3
Resource id #3 a 3 enregistrements

Voir aussi



pg_client_encoding

(PHP 4 >= 4.0.3, PHP 5)

pg_client_encoding Lit l'encodage du client

Description

string pg_client_encoding ([ resource $connection ] )

PostgreSQL supporte la conversion automatique entre le serveur et le client pour certains jeux de caractères. pg_client_encoding() retourne l'encodage du client. La chaîne de retour sera un des encodages standards de PostgreSQL.

Note:

Cette fonction requiert PHP 4.0.3 ou plus récent et PostgreSQL version 7.0 ou plus récent. Si la bibliothèque libpq est compilée sans le support de l'encodage multioctets, pg_client_encoding() retournera toujours SQL_ASCII. Le support de l'encodage dépend de la version de PostgreSQL. Référez-vous à la documentation de PostgreSQL sur les encodages supportés.

Auparavant, cette fonction s'appelait pg_clientencoding().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

L'encodage du client ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_client_encoding()

<?php
// Assume $conn étant une connexion à une base de données ISO-8859-1
$encoding pg_client_encoding($conn);

echo 
"L'encodage du client est : "$encoding"\n";
?>

L'exemple ci-dessus va afficher :

L'encodage du client est : ISO-8859-1

Voir aussi



pg_close

(PHP 4, PHP 5)

pg_close Termine une connexion PostgreSQL

Description

bool pg_close ([ resource $connection ] )

pg_close() ferme la connexion au serveur PostgreSQL associé à connection.

Note:

Il n'est généralement pas nécessaire de fermer une connexion non persistante, car elles sont automatiquement fermées à la fin d'un script.

Si des objets de grande taille ont été ouverts avec cette connexion, ne fermez pas la connexion avant d'avoir refermé les objets.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_close()

<?php
$dbconn 
pg_connect("host=localhost port=5432 dbname=marie")
      or die(
"Connexion impossible");
echo 
'Connexion réussie';
pg_close($dbconn);
?>

L'exemple ci-dessus va afficher :

Connexion réussie

Voir aussi



pg_connect

(PHP 4, PHP 5)

pg_connect Établit une connexion PostgreSQL

Description

resource pg_connect ( string $connection_string [, int $connect_type ] )

pg_connect() ouvre une connexion à une base de données PostgreSQL grâce à la chaîne de connexion connection_string.

Si un deuxième appel à pg_connect() est fait avec les mêmes arguments, aucune nouvelle connexion ne sera établie à moins que vous passerez PGSQL_CONNECT_FORCE_NEW à connect_type, mais la connexion précédente sera retournée.

L'ancienne syntaxe $conn = pg_connect("host", "port", "options", "tty", "dbname") est obsolète.

Liste de paramètres

connection_string

La chaîne connection_string peut être vide pour utiliser tous les paramètres par défaut ou elle peut contenir un ou plusieurs paramètres de configuration séparés par des espaces. Chaque paramètre de configuration est sous la forme code = valeur. Les espaces autour du signe égal sont optionnels. Pour écrire une valeur vide ou une valeur contenant des espaces, entourez cette valeur avec des apostrophes, par exemple : code = 'une valeur'. Les apostrophes et les antislashs à l'intérieur de la valeur doivent être échappés par un antislash, c'est-à-dire \' et \\.

Les mots-clé actuellement reconnus sont : host, hostaddr, port, dbname (valeur par défaut: user), user, password, connect_timeout, options, tty (ignoré), sslmode, requiressl (obsolète, utilisez sslmode) et service. La liste de ces arguments dépend de la version de votre serveur PostgreSQL.

Le paramètre options peut être utilisé pour passer des paramètres pour la ligne de commande invoquant le serveur.

connect_type

Si PGSQL_CONNECT_FORCE_NEW est passé en argument, alors une nouvelle connexion sera créée, même si la chaîne connection_string est identique à celle de la connexion existante.

Valeurs de retour

Ressource de connexion PostgreSQL en cas de succès, FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_connect()

<?php
$dbconn 
pg_connect("dbname=marie");
// connexion à une base de données nommée "marie"

$dbconn2 pg_connect("host=localhost port=5432 dbname=marie");
// connexion à une base de données nommée "marie" sur l'hôte "localhost" sur le port "5432"

$dbconn3 pg_connect("host=mouton port=5432 dbname=marie user=agneau password=foo");
// connexion à une base de données nommée "marie" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe

$conn_string "host=mouton port=5432 dbname=test user=agneau password=bar";
$dbconn4 pg_connect($conn_string);
// connexion à une base de données nommée "test" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe

$dbconn5 pg_connect("host=localhost options='--client_encoding=UTF8'");
//connexion à la base sur "localhost" et passage d'un paramètre de la ligne de
// commande concernant l'encodage UTF-8
?>

Voir aussi



pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_busy Vérifie si la connexion PostgreSQL est occupée

Description

bool pg_connection_busy ( resource $connection )

pg_connection_busy() détermine si la connexion est occupée. Si elle est occupée, une requête a déjà été lancée, et est en cours. Si pg_get_result() est utilisée, elle sera alors bloquée.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Retourne TRUE si la connexion est occupée, sinon FALSE.

Exemples

Exemple #1 Exemple avec pg_connection_busy()

<?php
 $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");
 
$bs pg_connection_busy($dbconn);
 if (
$bs) {
     echo 
'La connexion est occupée';
 } else {
     echo 
'La connexion est libre';
 }
?>

Voir aussi



pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_reset Relance la connexion au serveur PostgreSQL

Description

bool pg_connection_reset ( resource $connection )

pg_connection_reset() effectue une reconnexion au serveur, avec les mêmes paramètres que lors de la connexion précédente avec connection. Cette fonction est pratique pour le traitement des erreurs.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_connection_reset()

<?php
 $dbconn 
pg_connect("dbname=publisher") or die ("Connexion impossible");
 
$dbconn2 pg_connection_reset($dbconn);
 if (
$dbconn2) {
     echo 
'Redémarrage réussi';
 } else {
     echo 
'Redémarrage échoué';
 }
?>

Voir aussi



pg_connection_status

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_status Lit le statut de la connexion PostgreSQL

Description

int pg_connection_status ( resource $connection )

pg_connection_status() retourne le statut de la connexion connection.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

PGSQL_CONNECTION_OK ou PGSQL_CONNECTION_BAD.

Exemples

Exemple #1 Exemple avec pg_connection_status()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");
  
$stat pg_connection_status($dbconn);
  if (
$stat === PGSQL_CONNECTION_OK) {
      echo 
'Connexion ok';
  } else {
      echo 
'Connexion erronée';
  } 
?>

Voir aussi



pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert Convertit des tableaux associatifs en une commande PostgreSQL

Description

array pg_convert ( resource $connection , string $table_name , array $assoc_array [, int $options = 0 ] )

pg_convert() vérifie et convertit le tableau associatif assoc_array en une requête SQL valide. Pour que pg_convert() fonctionne, il faut que la table table_name existe, et contienne au moins autant de colonnes que le tableau assoc_array a d'éléments. Les noms des champs de table_name doivent correspondre aux index du tableau dans assoc_array. Retourne un tableau avec les valeurs converties en cas de succès, et sinon, FALSE.

Note:

S'il y a des champs booléens dans table_name, n'utilisez pas la constante TRUE dans assoc_array. Elle sera convertie en chaîne de caractères "TRUE" qui ne sera pas une entrée valide pour un champ booléen en PostgreSQL. Utilisez une de ces valeurs à la place : "t", "true", "1", "y", "yes".

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table sur pour laquelle les types seront convertis.

assoc_array

Données à être converties.

options

Un nombre de PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL ou PGSQL_CONV_IGNORE_NOT_NULL, combiné.

Valeurs de retour

Un tableau des valeurs converties ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_convert()

<?php 
  $dbconn 
pg_connect('dbname=foo');
  
  
$tmp = array(
      
'auteur' => 'Joe Thackery',
      
'annee' => 2005,
      
'titre' => 'Ma Vie, par Joe Thackery'
  
);
  
  
$vals pg_convert($dbconn'auteurs'$tmp);
?>

Voir aussi



pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from Insère des lignes dans une table à partir d'un tableau

Description

bool pg_copy_from ( resource $connection , string $table_name , array $rows [, string $delimiter [, string $null_as ]] )

pg_copy_from() insère les éléments du tableau rows dans une table. Cette fonction utilise la commande SQL interne COPY FROM.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table dans laquelle rows sera copié.

rows

Un tableau de données à être copié à l'intérieur de table_name. Chaque valeur dans rows devient une ligne dans table_name. Chaque valeur dans rows devrait être une chaîne délimitée par des valeurs à insérer à l'intérieur de chaque champ. Les valeurs doivent être terminées par un saut à la ligne.

delimiter

Le marqueur qui sépare les valeurs pour chaque champ dans chaque élément de rows. La valeur par défaut est TAB.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. La valeur par défaut est \N ("\\N").

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_copy_from()

<?php
   $db 
pg_connect("dbname=publisher") or die("Connexion impossible");
   
   
$rows pg_copy_to($db$table_name);
   
   
pg_query($db"DELETE FROM $table_name");
   
   
pg_copy_from($db$table_name$rows);
?>

Voir aussi



pg_copy_to

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_to Copie une table dans un tableau

Description

array pg_copy_to ( resource $connection , string $table_name [, string $delimiter [, string $null_as ]] )

pg_copy_to() copie la table table_name dans un tableau. Cette fonction utilise la commande interne SQL COPY TO pour insérer les tableaux.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table à partir de laquelle les données dans rows seront copiées.

delimiter

Le marqueur qui sépare les valeurs pour chaque champ dans chaque élément de rows. La valeur par défaut est TAB.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. La valeur par défaut est \N ("\\N").

Valeurs de retour

Un tableau avec un élément pour chaque ligne de données COPY. La fonction retourne FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_copy_to()

<?php
   $db 
pg_connect("dbname=publisher") or die("Connexion impossible");
   
   
$rows pg_copy_to($db$table_name);
   
   
pg_query($db"DELETE FROM $table_name");
   
   
pg_copy_from($db$table_name$rows);
?>

Voir aussi

  • pg_copy_from() - Insère des lignes dans une table à partir d'un tableau



pg_dbname

(PHP 4, PHP 5)

pg_dbname Retourne le nom de la base de données PostgreSQL

Description

string pg_dbname ([ resource $connection ] )

pg_dbname() retourne le nom de la base de données PostgreSQL associée à l'index de connexion connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne de type string contenant le nom de la base de données associée à la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_dbname()

<?php
 error_reporting
(E_ALL);

 
pg_connect ("host=localhost port=5432 dbname=marie");
 echo 
pg_dbname(); // affiche marie
?>



pg_delete

(PHP 4 >= 4.3.0, PHP 5)

pg_delete Efface des lignes PostgreSQL

Description

mixed pg_delete ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_delete() efface les lignes de la table table_name, spécifiées par le tableau associatif assoc_array. Si option est spécifié, pg_convert() est appliqué à assoc_array avec cette option.

Liste de paramètres

connection

Ressource de connexion PostgreSQL.

table_name

Nom de la table depuis laquelle les lignes seront effacées.

assoc_array

Un tableau où les clés sont les noms des champs de la table table_name et où les valeurs sont les valeurs de ces champs qui sont à effacés.

options

Toute combinaison des valeurs suivantes : PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options alors, la requête sera retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé dans le paramètre options.

Exemples

Exemple #1 Exemple avec pg_delete()

<?php 
 $db 
pg_connect ('dbname=foo');
 
// C'est sans problème, car $_POST est convertit automatiquement
 
$res pg_delete($db'post_log'$_POST);
 if (
$res) {
     echo 
"Les données POSTées ont été effacées : $res\n";
 } else {
     echo 
"Les données d'entrées sont erronées.\n";
 }
?>

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL



pg_end_copy

(PHP 4 >= 4.0.3, PHP 5)

pg_end_copy Synchronise avec le serveur PostgreSQL

Description

bool pg_end_copy ([ resource $connection ] )

pg_end_copy() synchronise le client PostgreSQL (normalement un processus serveur web) avec le serveur PostgreSQL, après une opération de copie faite par pg_put_line(). pg_end_copy() doit être utilisé, autrement le serveur PostgreSQL ne sera plus synchronisé avec le client et émettra une erreur.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_end_copy()

<?php 
  $conn 
pg_pconnect("dbname=foo");
  
pg_query($conn"create table bar (a int4, b char(16), d float8)");
  
pg_query($conn"copy bar from stdin");
  
pg_put_line($conn"3\tBonjour le monde\t4.5\n");
  
pg_put_line($conn"4\tAurevoir le monde\t7.11\n");
  
pg_put_line($conn"\\.\n");
  
pg_end_copy($conn);
?>

Voir aussi



pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea Protège une chaîne pour insertion dans un champ bytea

Description

string pg_escape_bytea ([ resource $connection ], string $data )

pg_escape_bytea() protège les caractères de la chaîne data avec le mode bytea. La chaîne protégée est retournée.

Note:

Lorsque vous utilisez une commande SELECT avec des données de type bytea, PostgreSQL retourne des valeurs octales, préfixées avec des antislashs '\' (par exemple \032). Les utilisateurs doivent effectuer la conversion en format binaire manuellement.

pg_escape_bytea() requiert PostgreSQL 7.2 ou plus récent. Avec PostgreSQL 7.2.0 et 7.2.1, les données bytea doivent être transtypée lorsque vous activez le support des chaînes de caractères multioctets. C'est-à-dire INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. PostgreSQL 7.2.2 ou plus récent ne requiert pas cette manipulation. Toutefois, si le client et le serveur n'utilisent pas le même jeu de caractères, il peut arriver des erreurs. Il faut alors forcer le transtypage manuellement.

Liste de paramètres

connection

Ressource de connexion à une base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion créée par la fonction pg_connect() ou la fonction pg_pconnect().

data

Une chaîne de caractères contenant du texte ou des données binaires qui seront insérées dans la colonne bytea.

Valeurs de retour

Une chaîne de caractères contenant les données échappées.

Historique

Version Description
5.2.0 Le paramètre connection a été ajouté.

Exemples

Exemple #1 Exemple avec pg_escape_bytea()

<?php
// Connexion à la base de données
$dbconn pg_connect('dbname=foo');

// Lecture d'un fichier binaire
$data file_get_contents('image1.jpg');

// Échappement des données binaires
$escaped pg_escape_bytea($data);

// Insertion dans la base de données
pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

Voir aussi



pg_escape_string

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_string Protège une chaîne de caractères pour l'insérer dans un champ texte

Description

string pg_escape_string ([ resource $connection ], string $data )

pg_escape_string() protège une chaîne de caractères pour l'insérer dans la base de données. Elle retourne la chaîne ainsi protégée au format PostgreSQL. L'utilisation de cette fonction est recommandée, à la place de addslashes(). Si le type de la colonne est bytea, pg_escape_bytea() doit plutôt être utilisée.

Note:

Cette fonction requiert PostgreSQL 7.2 ou plus récent.

Liste de paramètres

connection

Ressource de connexion à une base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion créée par la fonction pg_connect() ou la fonction pg_pconnect().

data

Une chaîne de caractères contenant le texte à échapper.

Valeurs de retour

Une chaîne de caractères contenant les données échappées.

Historique

Version Description
5.2.0 Le paramètre connection a été ajouté.

Exemples

Exemple #1 Exemple avec pg_escape_string()

<?php
// Connexion à la base de données
$dbconn pg_connect('dbname=foo');

// Lecture d'un fichier texte (contenant des apostrophes et des antislashs)
$data file_get_contents('letter.txt');

// Protection des données
$escaped pg_escape_string($data);

// Insertion dans la base de données
pg_query("INSERT INTO correspondence (name, data) VALUES ('Ma lettre', '{$escaped}')");
?>

Voir aussi



pg_execute

(PHP 5 >= 5.1.0)

pg_execute Exécute une requête préparée PostGreSQL

Description

resource pg_execute ([ resource $connection ], string $stmtname , array $params )

Envoie une requête pour exécuter une requête préparée avec les paramètres donnés et attend le résultat.

pg_execute() est comme pg_query_params(), mais la commande qui sera exécutée est spécifiée en nommant une requête préalablement préparée, au lieu de donner une chaîne en tant que requête. Cette caractéristique permet aux commandes qui seront utilisées à plusieurs reprises d'être analysées et planifiées qu'une seule fois, plutôt que d'être exécutées chaque fois. La requête doit avoir été préalablement préparée dans la session courante. pg_execute() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

Les paramètres sont identiques à la fonction pg_query_params() à l'exception du nom de la requête préparée qui est donnée à la place de la requête sous forme de chaîne.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom de la requête préparée à exécuter. Si une chaîne vide est spécifiée (""), alors la requête qui n'est pas nommée est exécutée. Le nom doit avoir été précédemment préparé en utilisant pg_prepare(), pg_send_prepare() ou une commande SQL PREPARE.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Avertissement

Les éléments sont convertis en chaînes de caractères en appelant cette fonction.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_execute()

<?php
// Connexion à une base de données nommée "marie"
$dbconn pg_connect("dbname=marie");

// Prépare une requête pour l'exécution
$result pg_prepare($dbconn"my_query"'SELECT * FROM magasins WHERE nom = $1');

// Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
// la chaîne "Joe's Widgets"
$result pg_execute($dbconn"my_query", array("Joe's Widgets"));

// Exécute la même requête préparée, cette fois avec un paramètre différent
$result pg_execute($dbconn"my_query", array("Vêtements Vêtements Vêtements"));

?>

Voir aussi

  • pg_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
  • pg_send_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
  • pg_query_params() - Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL



pg_fetch_all_columns

(PHP 5 >= 5.1.0)

pg_fetch_all_columns Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau

Description

array pg_fetch_all_columns ( resource $result [, int $column = 0 ] )

pg_fetch_all_columns() retourne un tableau qui contient toutes les lignes (enregistrements) d'une colonne particulière d'une ressource de résultats.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource de résultats d'une requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

column

Numéro de la colonne, commençant à 0, à récupérer depuis la ressource de résultats. Par défaut, la première colonne si ce paramètre n'est pas spécifié.

Valeurs de retour

Un tableau contenant toutes les valeurs d'une colonne du résultat.

FALSE est retourné si column est plus grand que le nombre de colonnes du résultat ou si toutes autres erreurs surviennent.

Exemples

Exemple #1 Exemple avec pg_fetch_all_columns()

<?php 
$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

$result pg_query($conn"SELECT title, name, address FROM authors");
if (!
$result) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

// Récupère un tableau contenant tous les noms d'auteurs
$arr pg_fetch_all_columns($result1);

var_dump($arr);

?>

Voir aussi



pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all Lit toutes les lignes d'un résultat

Description

array pg_fetch_all ( resource $result )

pg_fetch_all() retourne un tableau qui contient toutes les lignes du résultat result.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Un tableau array de toutes les lignes dans le jeu de résultats. Chaque ligne est un tableau de valeurs des champs indexée par le nom des champs.

FALSE est retournée s'il n'y a pas de lignes dans le jeu de résultats ou si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_fetch_all()

<?php 
$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

$result pg_query($conn"SELECT * FROM auteurs");
if (!
$result) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

$arr pg_fetch_all($result);

print_r($arr);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Fred
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
        )

)

Voir aussi



pg_fetch_array

(PHP 4, PHP 5)

pg_fetch_array Lit une ligne de résultat PostgreSQL dans un tableau

Description

array pg_fetch_array ( resource $result [, int $row [, int $result_type ]] )

pg_fetch_array() retourne un tableau qui contient la ligne demandée.

pg_fetch_array() est une version évoluée de pg_fetch_row(). En plus de proposer un tableau à indice numérique, elle peut aussi enregistrer les données dans un tableau associatif, en utilisant les noms des champs comme clés. Ces deux fonctions utilisent le tableau associatif par défaut.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

pg_fetch_array() n'est pas significativement plus lente que pg_fetch_row() et elle apporte un confort d'utilisation appréciable.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre d'autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

result_type

Paramètre optionnel qui contrôle comment sera indexé le array retourné. pg_fetch_array() est une constante, qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. En utilisant PGSQL_NUM, pg_fetch_array() retourne un tableau avec des indices numériques, en utilisant PGSQL_ASSOC retourne uniquement des indices associatifs alors que, PGSQL_BOTH, la valeur par défaut, retourne à la fois des indices numériques et associatifs.

Valeurs de retour

Un tableau à indice numérique (commençant à 0), associatif (indexé avec le nom des champs) ou les deux. Chaque valeur dans le tableau est représentée comme une chaîne (string). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Historique

Version Description
4.1.0 Le paramètre row devient optionnel.

Exemples

Exemple #1 Exemple avec pg_fetch_array()

<?php 

$conn 
pg_pconnect ("dbname=publisher");
if (!
$conn) {
  echo 
"Erreur de connexion.\n";
  exit;
}

$result pg_query ($conn"SELECT auteur, email FROM auteurs");
if (!
$result) {
  echo 
"Erreur durant la requête.\n";
  exit;
}

$arr pg_fetch_array ($result0PGSQL_NUM);
echo 
$arr[0] . " <- Ligne 1 Auteurs\n";
echo 
$arr[1] . " <- Ligne 1 E-mail\n";

// Depuis PHP 4.1.0, le paramètre row est optionnel ; NULL peut être passé à la place,
// pour passer un result_type. Les appels successifs à pg_fetch_array 
// retournera la ligne suivante.
$arr pg_fetch_array($resultNULLPGSQL_ASSOC);
echo 
$arr["auteur"] . " <- Ligne 2 Auteur\n";
echo 
$arr["email"] . " <- Ligne 2 E-mail\n";

$arr pg_fetch_array($result);
echo 
$arr["auteur"] . " <- Ligne 3 Auteur\n";
echo 
$arr[1] . " <- Ligne 3 E-mail\n";

?>

Voir aussi



pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_assoc Lit une ligne de résultat PostgreSQL sous forme de tableau associatif

Description

array pg_fetch_assoc ( resource $result [, int $row ] )

pg_fetch_assoc() retourne un tableau associatif qui contient la ligne en cours dans le résultat result.

pg_fetch_assoc() est équivalent d'appeler pg_fetch_row() avec PGSQL_ASSOC comme troisième paramètre (qui est optionnel). Cela retournera seulement un tableau associatif. Si vous avez besoin d'indices numériques, utilisez pg_fetch_row().

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

pg_fetch_assoc() n'est pas significativement plus lente que pg_fetch_row() et elle apporte un confort d'utilisation appréciable.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

Valeurs de retour

Un tableau à indice associatif (par nom de champ). Chaque valeur dans le tableau est représentée comme une chaîne (string). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Historique

Version Description
4.1.0 Le paramètre row devient optionnel.

Exemples

Exemple #1 Exemple avec pg_fetch_assoc()

<?php 
$conn 
pg_pconnect ("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

$result pg_query ($conn"SELECT id, auteur, email FROM auteurs");
if (!
$result) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

while (
$row pg_fetch_assoc($result)) {
  echo 
$row['id'];
  echo 
$row['auteur'];
  echo 
$row['email'];
}
?>

Voir aussi



pg_fetch_object

(PHP 4, PHP 5)

pg_fetch_object Lit une ligne de résultat PostgreSQL dans un objet

Description

object pg_fetch_object ( resource $result [, int $row [, int $result_type = PGSQL_ASSOC ]] )
object pg_fetch_object ( resource $result [, int $row [, string $class_name [, array $params ]]] )

pg_fetch_object() retourne un objet ainsi que ses propriétés qui correspond aux noms des champs de la ligne. La fonction peut optionnellement instancier un objet d'une classe spécifique et passer les paramètres au constructeur de cette classe.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Du point de vue vitesse, la fonction est identique à pg_fetch_array() et est presque aussi rapide que pg_fetch_row() (la différence est insignifiante).

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

result_type

Ignoré et obsolète.

class_name

Le nom de la classe à instancier, fixe les propriétés de celles-ci et ses valeurs de retour. Si rien n'est spécifié, un objet de style stdClass est retourné.

params

Paramètre optionnel de type array pour passer des arguments au constructeur de la classe class_name.

Valeurs de retour

Un objet de type object avec les attributs pour chaque champ dans le jeu de résultats. Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Historique

Version Description
5.0.0 class_name et params ont été ajoutés. L'ancien format du paramètre result_type existe toujours pour des raisons de compatibilité avec les versions antérieures.
4.3.0 result_type ne vaut plus PGSQL_BOTH par défaut, mais PGSQL_ASSOC, depuis que l'index numérique est devenu illégal.
4.1.0 Le paramètre row devient optionnel.

Exemples

Exemple #1 Exemple avec pg_fetch_object()

<?php 

$database 
'store';

$db_conn pg_connect("host=localhost port=5432 dbname=$database");
if (!
$db_conn) {
  echo 
"La connexion a la base $database a échouée\n";
  exit;
}

$qu pg_query($db_conn"SELECT * FROM livres ORDER BY auteur");

while (
$data pg_fetch_object($qu)) {
  echo 
$data->auteur " (";
  echo 
$data->annee "): ";
  echo 
$data->titre "<br />";
}

pg_free_result($qu);
pg_close($db_conn);

?>

Voir aussi



pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5)

pg_fetch_result Retourne les valeurs d'un résultat

Description

string pg_fetch_result ( resource $result , int $row , mixed $field )
string pg_fetch_result ( resource $result , mixed $field )

pg_fetch_result() retourne la valeur d'une ligne et d'un champ (colonne) en particulier à partir d'un ressource de résultat PostgreSQL.

Note:

Cette fonction peut s'appeler pg_result().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

field

Une chaîne de type string représentant le nom du champ (colonne) à récupérer, sinon un entier de type int représentant le numéro du champ à récupérer. Les champs sont numérotés de 0 en montant.

Valeurs de retour

Les booléens sont retournés comme des "t" ou "f". Tous les autres types, y compris les tableaux, sont retournés sous forme de chaînes formatées, de la même manière que PostgreSQL vous les afficherait dans le client psql. Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_fetch_result()

<?php
$db 
pg_connect("dbname=users user=me") || die();

$res pg_query($db"SELECT 1 UNION ALL SELECT 2");

$val pg_fetch_result($res10);

echo 
"Premier champ dans la deuxième ligne est : "$val"\n";
?>

L'exemple ci-dessus va afficher :

Premier champ dans la deuxième ligne est : 2

Voir aussi



pg_fetch_row

(PHP 4, PHP 5)

pg_fetch_rowLit une ligne dans un tableau

Description

array pg_fetch_row ( resource $result [, int $row ] )

pg_fetch_row() lit une ligne dans le résultat associé à l'index result.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

Valeurs de retour

Un tableau de type array, indexé de 0 en montant, avec chaque valeur représentée comme une chaîne (string). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Historique

Version Description
4.1.0 Le paramètre row devient optionnel.

Exemples

Exemple #1 Exemple avec pg_fetch_row()

<?php 

$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

$result pg_query($conn"SELECT auteur, email FROM auteurs");
if (!
$result) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

while (
$row pg_fetch_row($result)) {
  echo 
"Auteur : $row[0]  E-mail : $row[1]";
  echo 
"<br />\n";
}
 
?>

Voir aussi



pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5)

pg_field_is_null Teste si un champ PostgreSQL est à NULL

Description

int pg_field_is_null ( resource $result , int $row , mixed $field )
int pg_field_is_null ( resource $result , mixed $field )

pg_field_is_null() teste si un champ dans une ressource de résultat est NULL.

Note:

Auparavant, cette fonction s'appelait pg_fieldisnull().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

field

Numéro du champ (commençant à 0) de type int ou le nom du champ de type string.

Valeurs de retour

Retourne 1 si le champ de la ligne donnée est NULL, 0 s'il n'est pas NULL. FALSE est retournée si la ligne n'est pas dans le tableau ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_field_is_null()

<?php
    $dbconn 
pg_connect("dbname=publisher") or die ("Connexion impossible");
    
$res pg_query($dbconn"select * from auteurs where auteur = 'Orwell'");
    if (
$res) {
        if (
pg_field_is_null($res0"annee") == 1) {
            echo 
"La valeur du champ \"annee\" est null.\n";
        }
        if (
pg_field_is_null($res0"annee") == 0) {
            echo 
"La valeur du champ \"annee\" n'est pas null.\n";
        }
    }
?>



pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_name Retourne le nom d'un champ PostgreSQL

Description

string pg_field_name ( resource $result , int $field_number )

pg_field_name() retourne le nom du champ qui occupe la colonne numéro field_number dans le résultat result. La numérotation des champs commence à 0.

Note:

Auparavant, cette fonction s'appelait pg_fieldname().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Le nom du champ ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
 $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

 
$res pg_query($dbconn"select * from auteurs where auteur = 'Orwell'");
 
$i pg_num_fields($res);
 for (
$j 0$j $i$j++) {
     echo 
"colonne $j\n";
     
$fieldname pg_field_name($res$j);
     echo 
"Champ : $fieldname\n";
     echo 
"Taille affichée : ".pg_field_prtlen($res$fieldname)." caractères\n";
     echo 
"Taille de stockage : ".pg_field_size($res$j)." octets\n";
     echo 
"Type de champ : ".pg_field_type($res$j)." \n\n";
 }
?>

L'exemple ci-dessus va afficher :

colonne 0
Champ : auteur
Taille affichée : 6 caractères
Taille de stockage : -1 octets
Type de champ : varchar 

colonne 1
Champ : annee
Taille affichée : 4 caractère
Taille de stockage : 2 octets
Type de champ : int2 

colonne 2
Champ : titre
Taille affichée : 24 caractères
Taille de stockage : -1 octets
Type de champ : varchar 

Voir aussi



pg_field_num

(PHP 4 >= 4.2.0, PHP 5)

pg_field_num Retourne le numéro d'une colonne

Description

int pg_field_num ( resource $result , string $field_name )

pg_field_num() retourne le numéro de la colonne, dont le nom est field_name, dans le résultat result.

Note:

Auparavant, cette fonction s'appelait pg_fieldnum().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_name

Le nom du champ.

Valeurs de retour

Le numéro du champ (commençant à 0) ou -1 en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
$res pg_query($dbconn"select auteur, annee, titre from auteurs where auteur = 'Orwell'");
  
  echo 
"Le numéro de la colonne 'titre' est : "pg_field_num($res'titre');
?>

L'exemple ci-dessus va afficher :

Le numéro de la colonne 'titre' est : 2

Voir aussi



pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5)

pg_field_prtlen Retourne la taille imprimée

Description

int pg_field_prtlen ( resource $result , int $row_number , mixed $field_name_or_number )
int pg_field_prtlen ( resource $result , mixed $field_name_or_number )

pg_field_prtlen() retourne la taille imprimée (nombre de caractères) d'une valeur donnée dans un résultat PostgreSQL. La numérotation des lignes commence à 0. pg_field_prtlen() retourne -1 en cas d'erreur.

Le paramètre field_name_or_number peut être passé soit en tant qu'entier, soit en tant que chaîne de caractères. S'il est passé en tant qu'entier, PHP l'identifie comme le numéro d'un champ, sinon, comme le nom d'un champ.

Voir l'exemple donné à la page de la documentation de la fonction pg_field_name().

Note:

Auparavant, cette fonction s'appelait pg_fieldprtlen().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne dans le résultat. Les lignes sont numérotées à partir de 0 en montant. Si ce paramètre n'est pas fourni, la ligne en cours est récupérée.

Valeurs de retour

Le nombre de caractères imprimés ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations à propos des champs

<?php
  $dbconn 
pg_connect("dbname=editeur") or die("Connexion impossible");

  
$res pg_query($dbconn"select * from auteurs where auteur = 'Orwell'");
  
$i pg_num_fields($res);
  for (
$j 0$j $i$j++) {
      echo 
"colonne $j\n";
      
$fieldname pg_field_name($res$j);
      echo 
"nom champ : $fieldname\n";
      echo 
"taille affichage : " pg_field_prtlen($res$fieldname) . " caractères\n";
      echo 
"taille enregistrement : " pg_field_size($res$j) . " octets\n";
      echo 
"type champ : " pg_field_type($res$j) . " \n\n";
  }
?>

L'exemple ci-dessus va afficher :

colonne 0
nom champ : auteur
taille affichage : 6 caractères
taille enregistrement : -1 octets
type champ : varchar 

colonne 1
nom champ : annee
taille affichage : 4 caractères
taille enregistrement : 2 octets
type champ : int2 

colonne 2
nom champ : titre
taille affichage : 24 caractères
taille enregistrement : -1 octets
type champ : varchar 

Voir aussi

  • pg_field_size() - Retourne la taille interne de stockage d'un champ donné



pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size Retourne la taille interne de stockage d'un champ donné

Description

int pg_field_size ( resource $result , int $field_number )

pg_field_size() retourne la taille interne de stockage d'un champ donné, en octets.

Note:

Auparavant, cette fonction s'appelait pg_fieldsize().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

La taille du stockage interne d'un champ (en octets). -1 signifie un champ à grandeur variable. FALSE est retourné en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
$res pg_query($dbconn"select * from auteurs where auteur = 'Orwell'");
  
$i pg_num_fields($res);
  for (
$j 0$j $i$j++) {
      echo 
"colonne $j\n";
      
$fieldname pg_field_name($res$j);
      echo 
"Nom du champ : $fieldname\n";
      echo 
"Taille pour l'affichage : " pg_field_prtlen($res$fieldname) . " caractères\n";
      echo 
"Taille pour le stockage : " pg_field_size($res$j) . " octets\n";
      echo 
"Type du champ : " pg_field_type($res$j) . " \n\n";
  }
?>

L'exemple ci-dessus va afficher :

colonne 0
Nom du champ : auteur
Taille pour l'affichage : 6 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar 

colonne 1
Nom du champ : annee
Taille pour l'affichage : 4 caractères
Taille pour le stockage : 2 octets
Type du champ : int2 

colonne 2
Nom du champ : titre
Taille pour l'affichage : 24 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar 

Voir aussi



pg_field_table

(PHP 5 >= 5.2.0)

pg_field_tableRetourne le nom ou l'oid d'une table

Description

mixed pg_field_table ( resource $result , int $field_number [, bool $oid_only = false ] )

pg_field_table() retourne le nom de la table à laquelle le champ appartient ou l'oid de la table si le paramètre oid_only vaut TRUE.

Liste de paramètres

result

Ressource du résultat d'une requête PostgreSQL, retournée par la fonction pg_query(), pg_query_params() ou pg_execute() (et d'autres).

field_number

Numéro du champ, commençant à 0.

oid_only

Par défaut, le nom de la table à laquelle le champ appartient est retourné mais si le paramètre oid_only est défini à TRUE, alors, ce sera l'oid qui sera retourné.

Valeurs de retour

En cas de succès, le nom de la table ou l'oid, FALSE en cas d'échec.

Exemples

Exemple #1 Récupération des informations d'une table à partir d'un champ

<?php
$dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

$res pg_query($dbconn"SELECT bar FROM foo");

echo 
pg_field_table($res0);
echo 
pg_field_table($res0true);

$res pg_query($dbconn"SELECT version()");
var_dump(pg_field_table($res0));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foo
14379580

bool(false)

Notes

Note:

Retourner l'oid est plus rapide que de retourner le nom de la table, car la récupération du nom de la table nécessite une requête sur la table système de la base de données.

Voir aussi



pg_field_type_oid

(PHP 5 >= 5.1.0)

pg_field_type_oid Retourne le type ID (OID) pour le numéro du champ correspondant

Description

int pg_field_type_oid ( resource $result , int $field_number )

pg_field_type_oid() retourne un entier contenant le OID du type de base du champ field_number donné dans la ressource PostgreSQL result.

Vous pouvez obtenir plus d'informations à propos du type de champ en interrogeant la table système de PostgreSQL pg_type() avec le OID obtenu par cette fonction.

Note:

Si le champ utilise un domaine PostgreSQL (plutôt que d'un type basic), c'est le OID du domaine sous-jacent qui est retourné, plutôt que le OID du domaine en tant que tel.

Liste de paramètres

result

Ressource de résultats de PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Le OID du type de base du champ ou FALSE est retourné en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
// On assume que 'titre' est un type varchar
  
$res pg_query($dbconn"select titre from auteurs where auteur = 'Orwell'");

  echo 
"Type du champ titre OID : "pg_field_type_oid($res0);
?>

L'exemple ci-dessus va afficher :

Type du champ titre OID : 1043

Voir aussi



pg_field_type

(PHP 4 >= 4.2.0, PHP 5)

pg_field_type Retourne le type d'un champ PostgreSQL donné par index

Description

string pg_field_type ( resource $result , int $field_number )

pg_field_type() retourne une chaîne contenant le type de base du champ donné par son index field_number.

Note:

Si le champ utilise un domaine PostgreSQL (plutôt que d'un type basic), c'est le nom du domaine sous-jacent qui est retourné, plutôt que le nom du domaine en tant que tel.

Note:

Auparavant, cette fonction s'appelait pg_fieldtype().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Une chaîne de type string contenant le nom de base du type de champ ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
// On assume que 'titre' est un type varchar
  
$res pg_query($dbconn"select titre from auteurs where auteur = 'Orwell'");

  echo 
"Type du champ titre : "pg_field_type($res0);
?>

L'exemple ci-dessus va afficher :

Type du champ titre : varchar

Voir aussi



pg_free_result

(PHP 4 >= 4.2.0, PHP 5)

pg_free_result Libère la mémoire

Description

bool pg_free_result ( resource $result )

pg_free_result() libère la mémoire et les données associées avec le jeu de résultats PostgreSQL associé.

pg_free_result() n'est vraiment utile que si vous risquez d'utiliser trop de mémoire durant votre script. La mémoire occupée par les résultats est automatiquement libérée à la fin du script.

Note:

Auparavant, cette fonction s'appelait pg_freeresult().

Liste de paramètres

result

Ressource de résultats PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (et quelques autres).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_free_result()

<?php
$db 
pg_connect("dbname=users user=me") || die();

$res pg_query($db"SELECT 1 UNION ALL SELECT 2");

$val pg_fetch_result($res10);

echo 
"Le premier champ de la seconde ligne est : "$val"\n";

pg_free_result($res);
?>

L'exemple ci-dessus va afficher :

Le premier champ de la seconde ligne est : 2

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_query_params() - Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
  • pg_execute() - Exécute une requête préparée PostGreSQL



pg_get_notify

(PHP 4 >= 4.3.0, PHP 5)

pg_get_notify Lit le message SQL NOTIFY

Description

array pg_get_notify ( resource $connection [, int $result_type ] )

pg_get_notify() reçoit le message de NOTIFY envoyé par une commande SQL NOTIFY. Pour lire le message associé, utilisez la commande LISTEN.

Liste de paramètres

connection

Ressource de connexion PostgreSQL.

result_type

Un paramètre optionnel qui contrôle la façon dont le tableau sera indexé. result_type est une constante et peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. L'utilisation de PGSQL_NUM, pg_get_notify() retournera un tableau avec des indices numériques, l'utilisation de PGSQL_ASSOC retournera un tableau associatif tandis que PGSQL_BOTH, la valeur par défaut, retournera des indices numériques et associatifs.

Valeurs de retour

Un tableau contenant le nom du message NOTIFY. Sinon, si aucun NOTIFY n'est en attente, alors FALSE sera retourné.

Exemples

Exemple #1 Exemple avec pg_get_notify()

<?php 
$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

// ecoute le message 'author_updated' des autres processus
pg_query($conn'LISTEN author_updated;');
$notify pg_get_notify($conn);
if (!
$notify) {
  echo 
"Aucun message\n";
} else {
  
print_r($notify);
}
?>

Voir aussi

  • pg_get_pid() - Lit l'identifiant de processus du serveur PostgreSQL



pg_get_pid

(PHP 4 >= 4.3.0, PHP 5)

pg_get_pid Lit l'identifiant de processus du serveur PostgreSQL

Description

int pg_get_pid ( resource $connection )

pg_get_pid() lit l'identifiant de processus du serveur PostgreSQL. L'identifiant de processus est pratique pour vérifier si un message de NOTIFY a été envoyé via pg_get_notify() par un autre processus ou pas.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL

Valeurs de retour

L'identifiant du processus du serveur.

Exemples

Exemple #1 Exemple avec pg_get_pid()

<?php 
$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

// PID du serveur. Utilisez alors le PID avec pg_get_notify()
$pid pg_get_pid($conn);
?>

Voir aussi



pg_get_result

(PHP 4 >= 4.2.0, PHP 5)

pg_get_result Lit un résultat PostgreSQL asynchrone

Description

resource pg_get_result ([ resource $connection ] )

pg_get_result() lit la ressource de résultat d'une requête asynchrone exécutée par pg_send_query(), pg_send_query_params() ou pg_send_execute().

pg_send_query() et les autres fonctions de requête asynchrone peuvent envoyer plusieurs requêtes à un serveur PostgreSQL et pg_get_result() est utilisé pour obtenir chaque résultat de requête, un par un.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

La resource de résultat ou FALSE s'il n'y a plus de résultat disponible.

Exemples

Exemple #1 Exemple avec pg_get_result()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!
pg_connection_busy($dbconn)) {
      
pg_send_query($dbconn"select * from auteurs; select count(*) from auteurs;");
  }
  
  
$res1 pg_get_result($dbconn);
  echo 
"Premier appel à pg_get_result(): $res1\n";
  
$rows1 pg_num_rows($res1);
  echo 
"$res1 a $rows1 enregistrements\n\n";
  
  
$res2 pg_get_result($dbconn);
  echo 
"Second appel à pg_get_result(): $res2\n";
  
$rows2 pg_num_rows($res2);
  echo 
"$res2 a $rows2 enregistrements\n";
?>

L'exemple ci-dessus va afficher :

Premier appel à pg_get_result(): Resource id #3
Resource id #3 a 3 enregistrements

Second appel à pg_get_result(): Resource id #4
Resource id #4 a 1 enregistrements

Voir aussi



pg_host

(PHP 4, PHP 5)

pg_host Retourne le nom d'hôte

Description

string pg_host ([ resource $connection ] )

pg_host() retourne le nom d'hôte associé à l'index de connexion PostgreSQL.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant le nom de l'ordinateur hôte de connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_host()

<?php
$pgsql_conn 
pg_connect("dbname=mark host=localhost");

if (
$pgsql_conn) {
   print 
"Correctement connecté à : " pg_host($pgsql_conn) . "<br/>\n";
} else {
   print 
pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi



pg_insert

(PHP 4 >= 4.3.0, PHP 5)

pg_insert Insère un tableau dans une table

Description

mixed pg_insert ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_insert() insère le tableau assoc_array dans la table table_name. Si options est spécifiée, pg_convert() s'applique à assoc_array avec l'option spécifiée.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL.

table_name

Nom de la table dans laquelle les lignes seront insérées. La table table_name doit avoir au moins autant de colonnes que assoc_array a d'éléments.

assoc_array

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les valeurs de ces champs qui seront insérés.

options

Toutes combinaisons de constantes parmi PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options, alors la requête sera retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via le paramètre options.

Exemples

Exemple #1 Exemple avec pg_insert()

<?php 
  $db 
pg_connect ('dbname=foo');
  
// C'est sécuritaire, car $_POST est convertit automatiquement
  
$res pg_insert($db'post_log'$_POST);
  if (
$res) {
      echo 
"Les données POSTées ont pu être enregistrées avec succès.\n";
  } else {
      echo 
"Il y a un problème avec les données.\n";
  }
?>

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL



pg_last_error

(PHP 4 >= 4.2.0, PHP 5)

pg_last_error Lit le dernier message d'erreur sur la connexion

Description

string pg_last_error ([ resource $connection ] )

pg_last_error() retourne le dernier message d'erreur pour une connexion connection.

Les messages d'erreur peuvent être écrasés par des appels internes à l'extension PostgreSQL (libpq) : il se peut que le message retourné ne soit pas approprié, notamment si plusieurs erreurs ont eu lieu dans le module.

Utilisez pg_result_error(), pg_result_error_field(), pg_result_status() et pg_connection_status() pour améliorer la gestion des erreurs.

Note:

Auparavant, cette fonction s'appelait pg_errormessage().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne de caractères contenant le dernier message d'erreur sur la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_last_error()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
// Requête qui échoue
  
$res pg_query($dbconn"select * from doesnotexist");
  
  echo 
pg_last_error($dbconn);
?>

Voir aussi



pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice Retourne la dernière note du serveur PostgreSQL

Description

string pg_last_notice ( resource $connection )

pg_last_notice() retourne la dernière note du serveur PostgreSQL sur la connexion connection spécifiée. Le serveur PostgreSQL envoie des notes dans plusieurs cas, par exemple lors de création d'une colonne SERIAL dans une table.

Avec pg_last_notice(), vous pouvez éviter des requêtes inutiles en vérifiant si des notes sont liées ou pas à votre transaction.

Le suivi des notes peut être rendu optionnel en mettant à 1 la directive de configuration pgsql.ignore_notice du fichier php.ini.

L'enregistrement des notes peut être rendu optionnel en mettant la directive de configuration pgsql.log_notice du php.ini à 0. À moins que pgsql.ignore_notice ne soit à 0, les notes ne seront pas enregistrées.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Une chaîne de caractères contenant la dernière note sur la connexion connection ou FALSE en cas d'erreur.

Historique

Version Description
4.3.0 Cette fonction est maintenant pleinement implémentée. Les anciennes versions ignoraient les paramètres de connexion à la base de données.
4.3.0 Les directives pgsql.ignore_notice et pgsql.log_notice du php.ini ont été ajoutées.
4.0.6 PHP 4.0.6 a un problème avec la gestion des messages d'avertissement. Utiliser le module PostgreSQL avec PHP 4.0.6 n'est pas recommandé, même si vous n'utilisez pas la fonction pg_last_notice().

Exemples

Exemple #1 Exemple avec pg_last_notice()

<?php
$pgsql_conn 
pg_connect("dbname=mark host=localhost");

$res pg_query("CREATE TABLE test (id SERIAL)");

$notice pg_last_notice($pgsql_conn);

echo 
$notice;
?>

L'exemple ci-dessus va afficher :

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"

Voir aussi



pg_last_oid

(PHP 4 >= 4.2.0, PHP 5)

pg_last_oid Retourne l'identifiant de la dernière ligne

Description

string pg_last_oid ( resource $result )

pg_last_oid() sert à récupérer le OID assigné à une ligne insérée.

Le champ OID est devenu optionnel depuis PostgreSQL 7.2 et ne sera plus présent par défaut dans PostgreSQL 8.1. Lorsque le champ OID n'est pas présent dans la table, le programmeur doit utiliser pg_result_status() pour vérifier si la ligne a été correctement insérée.

Pour obtenir la valeur d'un champ SERIAL dans une ligne insérée, il est nécessaire d'utiliser la fonction CURRVAL de PostgreSQL en nommant la séquence à qui la dernière valeur est requise. Si le nom de la séquence est inconnu, la fonction PostgreSQL 8.0 pg_get_serial_sequence est nécessaire.

PostgreSQL 8.1 a une fonction LASTVAL qui retourne la valeur de la séquence la plus récemment utilisée de la session. Ceci permet d'éviter de nommer la séquence, la table ou la colonne.

Note:

Auparavant, cette fonction s'appelait pg_getlastoid().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Une chaîne de caractères contenant le OID assigné à la plus récente ligne insérée dans la connexion connection spécifiée ou FALSE en cas d'erreur ou de OID indisponible.

Exemples

Exemple #1 Exemple avec pg_last_oid()

<?php
$pgsql_conn 
pg_connect("dbname=mark host=localhost");

$res1 pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

$res2 pg_query("INSERT INTO test VALUES (1)");

$oid pg_last_oid($res2);
?>

Voir aussi



pg_lo_close

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_close Ferme un objet de grande taille PostgreSQL

Description

bool pg_lo_close ( resource $large_object )

pg_lo_close() ferme un objet de type Inversion Large Object. large_object est un pointeur de fichier, obtenu avec pg_lo_open().

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loclose().

Liste de paramètres

result

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_close()

<?php
   $database 
pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$oid pg_lo_create($database);
   echo 
"$oid\n";
   
$handle pg_lo_open($database$oid"w");
   echo 
"$handle\n";
   
pg_lo_write($handle"données objet de grande taille");
   
pg_lo_close($handle);
   
pg_query($database"commit");
?>

Voir aussi



pg_lo_create

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_create Crée un objet de grande taille PostgreSQL

Description

int pg_lo_create ([ resource $connection [, mixed $object_id ]] )
int pg_lo_create ( mixed $object_id )

pg_lo_create() crée un objet de grande taille et retourne son OID. Les modes d'accès PostgreSQL INV_READ, INV_WRITE et INV_ARCHIVE ne sont pas supportés : l'objet peut toujours être créé avec des droits d'accès en lecture et écriture. Le mode INV_ARCHIVE a été supprimé des bases PostgreSQL (version 6.3 et ultérieur).

Pour utiliser un objet de grande taille, il est nécessaire de le faire dans une transaction.

Au lieu d'utiliser l'interface d'objet de grande taille ((qui n'a aucun contrôle d'accès et qui est encombrant à utiliser), essayez la colonne de type bytea de PostgreSQL et pg_escape_bytea().

Note:

Auparavant, cette fonction s'appelait pg_locreate().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

object_id

Si le paramètre object_id est fourni, la fonction essayera de créer un objet large avec cet identifiant, sinon, un identifiant d'objet disponible sera assigné par le serveur. Ce paramètre a été ajouté en PHP 5.3 et cette fonctionnalité est apparue avec PostgreSQL 8.1.

Valeurs de retour

Un objet large OID ou FALSE en cas d'erreur.

Historique

Version Description
5.3.0

Le paramètre optionnel object_id a été ajouté.

Exemples

Exemple #1 Exemple avec pg_lo_create()

<?php
   $database 
pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$oid pg_lo_create($database);
   echo 
"$oid\n";
   
$handle pg_lo_open($database$oid"w");
   echo 
"$handle\n";
   
pg_lo_write($handle"données objet de grande taille");
   
pg_lo_close($handle);
   
pg_query($database"commit");
?>



pg_lo_export

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_export Exporte un objet de grande taille vers un fichier

Description

bool pg_lo_export ([ resource $connection ], int $oid , string $pathname )

pg_lo_export() prend un objet de grande taille de la base de données PostgreSQL et sauvegarde son contenu dans un fichier local au système.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loexport().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

pathname

Le chemin d'accès complet ainsi que le fichier dans lequel il sera écrit l'objet de grande taille sur le système du client.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_export()

<?php
   $database 
pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$oid pg_lo_create($database);
   
$handle pg_lo_open($database$oid"w");
   
pg_lo_write($handle"données objet de grande taille");
   
pg_lo_close($handle);
   
pg_lo_export($database$oid'/tmp/lob.dat');
   
pg_query($database"commit");
?>

Voir aussi

  • pg_lo_import() - Importe un objet de grande taille depuis un fichier



pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import Importe un objet de grande taille depuis un fichier

Description

int pg_lo_import ([ resource $connection ], string $pathname [, mixed $object_id ] )

pg_lo_import() crée un nouvel objet de grande taille dans la base de données en utilisant un fichier dans le système de fichier en tant que données sources.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note:

Auparavant, cette fonction s'appelait pg_loimport().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

pathname

Le chemin d'accès complet ainsi que le fichier dans lequel il sera lu l'objet de grande taille sur le système du client.

object_id

Si le paramètre object_id est fourni, la fonction essayera de créer un objet large avec cette identifiant, sinon, un identifiant d'objet disponible sera assigné par le serveur. Ce paramètre a été ajouté en PHP 5.3 et cette fonctionnalité est apparue avec PostgreSQL 8.1.

Valeurs de retour

Le OID du nouvel objet de grande taille créé ou FALSE en cas d'échec.

Historique

Version Description
5.3.0

Le paramètre optionnel object_id a été ajouté.

4.2.0

La syntaxe de cette fonction a changé. Avant PHP 4.2.0, la syntaxe était :

int pg_lo_import ( string $pathname [, resource $connection ] )

Exemples

Exemple #1 Exemple avec pg_lo_import()

<?php
   $database 
pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$oid pg_lo_import($database'/tmp/lob.dat');
   
pg_query($database"commit");
?>

Voir aussi



pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open Ouvre un objet de grande taille PostgreSQL

Description

resource pg_lo_open ( resource $connection , int $oid , string $mode )

pg_lo_open() ouvre un objet de type Inversion Large Object et retourne un pointeur de fichier pour cet objet permettant ainsi d'être manipulé.

Avertissement

Ne fermer pas la connexion à la base de données avant de fermer la ressource de l'objet de grande taille.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loopen().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

mode

Peut être "r" pour lecture seule, "w" pour écriture seule ou "rw" pour lecture et écriture.

Valeurs de retour

Une ressource d'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_open()

<?php
   $database 
pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$oid pg_lo_create($database);
   echo 
"$oid\n";
   
$handle pg_lo_open($database$oid"w");
   echo 
"$handle\n";
   
pg_lo_write($handle"données objet de grande taille");
   
pg_lo_close($handle);
   
pg_query($database"commit");
?>

Voir aussi



pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read_all Lit un objet de grande taille en totalité

Description

int pg_lo_read_all ( resource $large_object )

pg_lo_read_all() lit un objet de grande taille en totalité et le passe directement au client, après les en-têtes adéquates. Cette fonction est prévue pour transmettre des sons ou des images.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loreadall().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

Nombre d'octets lu ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_read_all()

<?php
   header
('Content-type: image/jpeg');
   
$image_oid 189762345;
   
$database pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$handle pg_lo_open($database$image_oid"r");
   
pg_lo_read_all($handle);
   
pg_query($database"commit");
?>

Voir aussi



pg_lo_read

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read Lit un objet de grande taille

Description

string pg_lo_read ( resource $large_object [, int $len = 8192 ] )

pg_lo_read() lit au plus len octets d'un objet de grande taille, et retourne les données sous la forme d'une chaîne.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loread().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

len

Un nombre maximal d'octets à retourner. Cet argument est optionnel.

Valeurs de retour

Une chaîne contenant len octets de l'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_read()

<?php
   $doc_oid 
189762345;
   
$database pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$handle pg_lo_open($database$doc_oid"r");
   
$data pg_lo_read($handle50000);
   
pg_query($database"commit");
   echo 
$data;
?>

Voir aussi



pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_seek Modifie la position dans un objet de grande taille

Description

bool pg_lo_seek ( resource $large_object , int $offset [, int $whence = PGSQL_SEEK_CUR ] )

pg_lo_seek() modifie la position du pointeur dans l'objet de grande taille large_object.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

offset

Le nombre d'octets de déplacement.

whence

Une de ces constantes PGSQL_SEEK_SET (positionne à partir du début de l'objet), PGSQL_SEEK_CUR (positionne à partir de la position courante) ou PGSQL_SEEK_END (positionne à partir de la fin de l'objet).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_seek()

<?php
   $doc_oid 
189762345;
   
$database pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$handle pg_lo_open($database$doc_oid"r");
   
// Saute les 50000 premiers octets
   
pg_lo_seek($handle50000PGSQL_SEEK_SET);
   
// Lit les prochains 10000 octetss
   
$data pg_lo_read($handle10000);
   
pg_query($database"commit");
   echo 
$data;
?>

Voir aussi

  • pg_lo_tell() - Retourne la position courante dans un objet de grande taille PostgreSQL



pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_tell Retourne la position courante dans un objet de grande taille PostgreSQL

Description

int pg_lo_tell ( resource $large_object )

pg_lo_tell() retourne la position courante (à partir du début) du pointeur de lecture sur l'objet de grande taille large_object.

Pour utiliser une interface avec un objet de grande taille, il est nécessaire de l'inclure dans un bloc de transaction.

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

La position courante du pointeur (en nombre d'octets) à partir du début de l'objet de grande taille. S'il y a une erreur, la valeur retournée sera négative.

Exemples

Exemple #1 Exemple avec pg_lo_tell()

<?php
   $doc_oid 
189762345;
   
$database pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$handle pg_lo_open($database$doc_oid"r");
   
// Saute les 50000 premiers octets
   
pg_lo_seek($handle50000PGSQL_SEEK_SET);
   
// On vérifie combien d'octets nous avons sauté
   
$offset pg_lo_tell($handle);
   echo 
"Position du pointeur est : $offset";
   
pg_query($database"commit");
?>

L'exemple ci-dessus va afficher :

Position du pointeur est : 50000

Voir aussi

  • pg_lo_seek() - Modifie la position dans un objet de grande taille




pg_lo_write

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_writeÉcrit un objet de grande taille PostgreSQL

Description

int pg_lo_write ( resource $large_object , string $data [, int $len ] )

pg_lo_write() écrit des données à l'intérieur d'un objet de grande taille à la position courante.

Pour manipuler un objet de grande taille (lo), il est nécessaire de placer les opérations dans un bloc de transaction.

Note:

Auparavant, cette fonction s'appelait pg_lowrite().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

data

Les données à être écrites dans l'objet de grande taille. Si len est spécifié et est inférieur à la grandeur de data, seul les len octets y seront écrits.

len

Un nombre maximal d'octets à écrire. Il doit être supérieur à zéro et inférieur à la grandeur de data. Cet argument est optionnel, s'il est omis, il prendra par défaut la grandeur de data.

Valeurs de retour

Le nombre d'octets écrit dans l'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_write()

<?php
   $doc_oid 
189762345;
   
$data "Ceci écrasera le début de l'objet de grande taille.";
   
$database pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$handle pg_lo_open($database$doc_oid"w");
   
$data pg_lo_write($handle$data);
   
pg_query($database"commit");
?>

Voir aussi



pg_meta_data

(PHP 4 >= 4.3.0, PHP 5)

pg_meta_data Lit les métadonnées de la table PostgreSQL

Description

array pg_meta_data ( resource $connection , string $table_name )

pg_meta_data() retourne la définition de la table table_name sous forme de tableau.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Le nom de la table.

Valeurs de retour

Un tableau de la table de définition ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération des métadonnées d'une table

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
$meta pg_meta_data($dbconn,'auteurs');
  if (
is_array ($meta)) {
       echo 
'<pre>';
       
var_dump ($meta);
       echo 
'</pre>';
  }
?>

L'exemple ci-dessus va afficher :

array(3) {
["auteur"]=>
array(5) {
  ["num"]=>
  int(1)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["annee"]=>
array(5) {
  ["num"]=>
  int(2)
  ["type"]=>
  string(4) "int2"
  ["len"]=>
  int(2)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["titre"]=>
array(5) {
  ["num"]=>
  int(3)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
}

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL



pg_num_fields

(PHP 4 >= 4.2.0, PHP 5)

pg_num_fields Retourne le nombre de champ

Description

int pg_num_fields ( resource $result )

pg_num_fields() retourne le nombre de champs (ou colonnes) d'un résultat PostgreSQL.

Note:

Auparavant, cette fonction s'appelait pg_numfields().

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de champs (ou colonne) dans le jeu de résultats. En cas d'erreur, -1 est retourné.

Exemples

Exemple #1 Exemple avec pg_num_fields()

<?php
$result 
pg_query($conn"SELECT 1, 2");

$num pg_num_fields($result);

echo 
$num " champ(s) retourné(s).\n";
?>

L'exemple ci-dessus va afficher :

2 champ(s) retourné(s).

Voir aussi



pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rows Retourne le nombre de lignes PostgreSQL

Description

int pg_num_rows ( resource $result )

pg_num_rows() retourne le nombre de lignes d'un résultat PostgreSQL.

Note:

Auparavant, cette fonction s'appelait pg_numrows().

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de lignes dans le jeu de résultats. En cas d'erreur, -1 est retourné.

Exemples

Exemple #1 Exemple avec pg_num_rows()

<?php
$result 
pg_query($conn"SELECT 1");

$rows pg_num_rows($result);

echo 
$rows " ligne(s) retournée(s).\n";
?>

L'exemple ci-dessus va afficher :

1 ligne(s) retournée(s).

Voir aussi



pg_options

(PHP 4, PHP 5)

pg_options Retourne les options PostgreSQL

Description

string pg_options ([ resource $connection ] )

pg_options() retourne une chaîne contenant les options de la connexion PostgreSQL connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant les options de connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_options()

<?php
   $pgsql_conn 
pg_connect("dbname=mark host=localhost");
   echo 
pg_options($pgsql_conn);
?>

Voir aussi



pg_parameter_status

(PHP 5)

pg_parameter_status Consulte un paramètre de configuration courant du serveur

Description

string pg_parameter_status ([ resource $connection ], string $param_name )

Consulte un paramètre de configuration courant du serveur.

Certaines valeurs de paramètres sont retournées par le serveur automatiquement lors du démarrage de la connexion ou lorsqu'une valeur change. pg_parameter_status() peut être utilisée pour interroger ces configurations. La fonction retourne la valeur courante du paramètre s'il et connu ou FALSE si le paramètre est inconnu.

Les paramètres retournés par PostgreSQL 8.0 sont server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone et integer_datetimes. (server_encoding, TimeZone et integer_datetimes n'étaient pas retournés dans les versions antérieures à 8.0.) Notez que server_version, server_encoding et integer_datetimes ne peuvent changer après le démarrage de PostgreSQL.

Les serveurs PostgreSQL 7.3 ou de versions inférieures ne retournent pas de paramètres de configurations, pg_parameter_status() inclut une logique pour obtenir des valeurs pour server_version et client_encoding quand même. Les applications devraient utiliser pg_parameter_status() au lieu du code ad hoc pour déterminer ces valeurs.

Attention

Sur les versions des serveurs PostgreSQL 7.4 et antérieures, le changement de client_encoding avec SET après le démarrage de la connexion ne sera pas réfléchie par pg_parameter_status().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

param_name

Les valeurs possibles de param_name sont server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone et integer_datetimes.

Valeurs de retour

Une chaîne contenant la valeur du paramètre, FALSE en cas d'échec ou du paramètre param_name invalide.

Exemples

Exemple #1 Exemple avec pg_parameter_status()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  echo 
"Encodage du serveur : "pg_parameter_status($dbconn"server_encoding");
?>

L'exemple ci-dessus va afficher :

Encodage du serveur : SQL_ASCII



pg_pconnect

(PHP 4, PHP 5)

pg_pconnect Établit une connexion PostgreSQL persistante

Description

resource pg_pconnect ( string $connection_string [, int $connect_type ] )

pg_pconnect() retourne une ressource de connexion persistante en cas de succès, ou FALSE en cas d'erreur.

Si un second appel est fait à pg_pconenct() avec le même connection_string comme étant une connexion existante, la connexion existante sera retournée à moins que vous ne passez PGSQL_CONNECT_FORCE_NEW à connect_type.

Pour activer les connexions persistantes, la directive de configuration pgsql.allow_persistent du php.ini doit être mise à "On" (ce qui est sa valeur par défaut). Le nombre maximal de connexions peut être limité grâce à la directive de configuration pgsql.max_persistent dans le fichier php.ini (par défaut, elle vaut -1, c'est à dire pas de limite). Le nombre total de connexions peut être configuré avec la directive pgsql.max_links du fichier php.ini.

pg_close() ne refermera pas les connexions persistantes générées par pg_pconnect().

Liste de paramètres

connection_string

La chaîne connection_string peut être vide pour utiliser tous les paramètres par défaut ou elle peut contenir un ou plusieurs paramètres de configuration séparés par des espaces. Chaque paramètre de configuration est sous la forme code = valeur. Les espaces autour du signe égal sont optionnels. Pour écrire une valeur vide ou une valeur contenant des espaces, entourez cette valeur avec des apostrophes, par exemple : code = 'une valeur'. Les apostrophes et les antislashs à l'intérieur de la valeur doivent être échappés par un antislash, c'est-à-dire \' et \\.

Les mots-clé actuellement reconnus sont : host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (ignoré), sslmode, requiressl (obsolète, utilisez sslmode) et service. La liste de ces arguments dépend de la version de votre serveur PostgreSQL.

connect_type

Si PGSQL_CONNECT_FORCE_NEW est passé en argument, alors une nouvelle connexion sera créée, même si la chaîne connection_string est identique à celle de la connexion existante.

Valeurs de retour

Ressource de connexion PostgreSQL en cas de succès, FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_pconnect()

<?php
$dbconn 
pg_pconnect("dbname=marie");
// connexion à une base de données nommée "marie"

$dbconn2 pg_pconnect("host=localhost port=5432 dbname=marie");
// connexion à une base de données nommée "marie" sur l'hôte "localhost" sur le port "5432"

$dbconn3 pg_pconnect("host=mouton port=5432 dbname=marie user=agneau password=foo");
// connexion à une base de données nommée "marie" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe

$conn_string "host=mouton port=5432 dbname=test user=agneau password=bar";
$dbconn4 pg_pconnect($conn_string);
// connexion à une base de données nommée "test" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe
?>

Voir aussi



pg_ping

(PHP 4 >= 4.3.0, PHP 5)

pg_ping Ping la connexion à la base

Description

bool pg_ping ([ resource $connection ] )

pg_ping() ping la connexion à la base de données et essaie de se reconnecter si la connexion est perdue.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_ping()

<?php 
$conn 
pg_pconnect ("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

if (!
pg_ping($conn))
  die(
"La connexion est perdue\n");
?>

Voir aussi



pg_port

(PHP 4, PHP 5)

pg_port Retourne le numéro de port

Description

int pg_port ([ resource $connection ] )

pg_port() retourne le numéro de port de la connexion identifiée connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Un entier contenant le numéro du port du serveur de base de données identifié par connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_port()

<?php
$pgsql_conn 
pg_connect("dbname=mark host=localhost");

if (
$pgsql_conn) {
   print 
"Connecté correctement au port : " pg_port($pgsql_conn) . "<br/>\n";
} else {
   print 
pg_last_error($pgsql_conn);
   exit;
}
?>



pg_prepare

(PHP 5 >= 5.1.0)

pg_prepare Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution

Description

resource pg_prepare ([ resource $connection ], string $stmtname , string $query )

pg_prepare() crée une requête préparée pour une exécution ultérieure avec pg_execute() ou pg_send_execute(). Cette caractéristique permet aux commandes qui seront utilisées à plusieurs reprises d'être analysées et planifiées qu'une seule fois, plutôt que d'être exécutées chaque fois. pg_prepare() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

La fonction crée une requête préparée nommée stmtname à partir de la chaîne query, celle-ci doit contenir qu'une seule commande SQL. stmtname peut être vide ("") pour créer une requête qui n'est pas nommée. Dans ce cas, les requêtes qui existaient et qui se trouvaient sans noms sont automatiquement remplacées; autrement, il y aura une erreur si le nom de la requête est déjà défini dans la session courante. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc. dans query.

Des requêtes préparées à utiliser avec pg_prepare() peuvent être aussi créées en exécutant la requête SQL PREPARE. (Par contre, pg_prepare() est plus flexible puisqu'elle ne nécessite pas que les types des paramètres soit préspécifiés.) De plus, bien qu'il n'y a pas de fonction PHP pour supprimer une requête préparée, la requête SQL DEALLOCATE peut être utilisé pour ce motif.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom à donner à la requête préparée. Il doit être unique à chaque session. Si une chaîne vide est spécifiée ("") alors une requête sans nom est créée, écrasant les requêtes sans noms précédemment définies.

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_prepare()

<?php
// Connexion à une base de données nommée "marie"
$dbconn pg_connect("dbname=marie");

// Prépare une requête pour l'exécution
$result pg_prepare($dbconn"my_query"'SELECT * FROM magasins WHERE nom = $1');

// Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
// la chaîne "Joe's Widgets"
$result pg_execute($dbconn"my_query", array("Joe's Widgets"));

// Exécute la même requête préparée, cette fois avec un paramètre différent
$result pg_execute($dbconn"my_query", array("Vêtements Vêtements Vêtements"));

?>

Voir aussi

  • pg_execute() - Exécute une requête préparée PostGreSQL
  • pg_send_execute() - Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)



pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line Envoie une chaîne au serveur PostgreSQL

Description

bool pg_put_line ([ resource $connection ], string $data )

pg_put_line() envoie une chaîne (terminée par NULL) au serveur PostgreSQL. Ceci est nécessaire en conjonction avec une commande COPY FROM PostgreSQL.

COPY est un chargement très rapide des données supporté par PostgreSQL. Les données sont passées sans être analysées et dans une simple transaction.

Une alternative plutôt que d'utiliser la commande brute pg_put_line() est d'utiliser pg_copy_from(). C'est une interface bien plus simple.

Note:

Notez que l'application doit explicitement ajouter les deux caractères "\." à la fin de la chaîne pour indiquer au serveur qu'elle a finit d'envoyer des données, avant d'appeler pg_end_copy().

Avertissement

L'utilisation de pg_put_line() cause sur la plupart des objets de grande taille à échouer, incluant pg_lo_read() et pg_lo_tell(). Vous pouvez utiliser pg_copy_from() et pg_copy_to() à la place.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

data

Une ligne de texte à envoyer directement au serveur PostgreSQL. Un caractère d'arrêt NULL est automatiquement ajouté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_put_line()

<?php
  $conn 
pg_pconnect("dbname=foo");
  
pg_query($conn"create table bar (a int4, b char(16), d float8)");
  
pg_query($conn"copy bar from stdin");
  
pg_put_line($conn"3\tBonjour le monde\t4.5\n");
  
pg_put_line($conn"4\tAurevoir le monde\t7.11\n");
  
pg_put_line($conn"\\.\n");
  
pg_end_copy($conn);
?>

Voir aussi



pg_query_params

(PHP 5 >= 5.1.0)

pg_query_params Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL

Description

resource pg_query_params ([ resource $connection ], string $query , array $params )

Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL.

pg_query_params() est comme pg_query(), mais offre des fonctionnalités additionnelles : les valeurs des paramètres peuvent être spécifiées séparément de la ligne de commande propre. pg_query_params() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

Si des paramètres sont utilisés, ils sont référés à $1, $2, etc. dans query. params spécifie les valeurs actuelles des paramètres. Une valeur NULL dans ce tableau signifie que le paramètre correspondant est SQL NULL.

Le principal avantage de pg_query_params() sur pg_query() est que les valeurs des paramètres peuvent être séparées de la requête query, par conséquent, on invite les échappements de caractères ennuyeux et source d'erreurs. Contrairement à pg_query(), pg_query_params() permet seulement une seule commande SQL dans la chaîne donnée. (Il peut y avoir des points-virgules à l'intérieur mais pas plus d'une seule commande.)

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_query_params()

<?php
// Connexion à une base de données nommée "marie"
$dbconn pg_connect("dbname=marie");

// Cherche tous les magasins nommés Joe's Widgets. Notez qu'il n'est pas
// nécessaire d'échapper la chaîne "Joe's Widgets"
$result pg_query_params($dbconn'SELECT * FROM magasins WHERE nom = $1', array("Joe's Widgets"));

// Compare en utilisant pg_query
$str pg_escape_string("Joe's Widgets");
$result pg_query($dbconn"SELECT * FROM magasins WHERE nom = '{$str}'");

?>

Voir aussi



pg_query

(PHP 4 >= 4.2.0, PHP 5)

pg_query Exécute une requête PostgreSQL

Description

resource pg_query ([ resource $connection ], string $query )

pg_query() exécute la requête query sur la base de données spécifiée connection.

Si une erreur se produit et FALSE est retourné, les détails de l'erreur peuvent être récupérés en utilisant la fonction pg_last_error() si la connexion est valide.

Note: Bien que connection puisse être omis, il n'est pas recommandé de le faire, car il peut se révéler difficile de retrouver les bogues dans les scripts.

Note:

Auparavant, cette fonction s'appelait pg_exec(). pg_exec() est toujours disponible pour des raisons de compatibilité, mais les utilisateurs sont encouragés à utiliser le nouveau nom.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

query

La requête ou les requêtes SQL à être exécutées. Lorsque plusieurs requêtes sont passées à la fonction, elles sont automatiquement exécutées comme étant une transaction, à moins qu'il y aille les commandes BEGIN/COMMIT incluses dans la requête. Cependant, l'utilisation de transactions multiples dans un seul appel de fonction n'est pas recommandée.

Les données contenues dans la requête doivent être échappées proprement.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_query()

<?php

$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur s'est produite.\n";
  exit;
}

$result pg_query($conn"SELECT auteur, email FROM auteurs");
if (!
$result) {
  echo 
"Une erreur s'est produite.\n";
  exit;
}

while (
$row pg_fetch_row($result)) {
  echo 
"Auteur: $row[0]  E-mail: $row[1]";
  echo 
"<br />\n";
}
 
?>

Exemple #2 Utilisation de pg_query() avec plusieurs requêtes

<?php

$conn 
pg_pconnect("dbname=publisher");

// ces requêtes seront exécutées en tant qu'une seule transaction

$query "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";

pg_query($conn$query);

?>

Voir aussi



pg_result_error_field

(PHP 5 >= 5.1.0)

pg_result_error_field Retourne un champ individuel d'un rapport d'erreur

Description

string pg_result_error_field ( resource $result , int $fieldcode )

pg_result_error_field() retourne un des champs détaillés de message d'erreur qui sont associés à la ressource result. Cette fonction est disponible seulement sur les serveurs PostgreSQL 7.4 ou supérieurs. Le champ d'erreur est spécifié par fieldcode.

Puisque pg_query() et pg_query_params() retourne FALSE si la requête échoue, vous devez utiliser pg_send_query() et pg_get_result() pour obtenir le jeu de résultats.

Si vous avez besoin d'obtenir plus d'informations sur l'erreur lors de l'échec des requêtes avec pg_query(), utilisez pg_set_error_verbosity() et pg_last_error() et analyser ensuite le résultat.

Liste de paramètres

result

Une ressource requête PostgreSQL provenant d'une requête précédemment exécutée.

fieldcode

Les valeurs possibles de fieldcode sont : PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ seulement), PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ seulement), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE ou PGSQL_DIAG_SOURCE_FUNCTION.

Valeurs de retour

Retourne une chaîne contenant le contenu du champ d'erreur, NULL si le champ n'existe pas ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_result_error_field()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!
pg_connection_busy($dbconn)) {
      
pg_send_query($dbconn"select * from nexistepas;");
  }
  
  
$res1 pg_get_result($dbconn);
  echo 
pg_result_error_field($res1PGSQL_DIAG_SQLSTATE);
?>

Voir aussi



pg_result_error

(PHP 4 >= 4.2.0, PHP 5)

pg_result_error Lit le message d'erreur associé à un résultat

Description

string pg_result_error ( resource $result )

pg_result_error() retourne le message d'erreur associé au résultat result. Par conséquent, l'utilisateur a des chances d'obtenir un message d'erreur plus approprié que via pg_last_error().

La fonction pg_result_error_field() peut donner bien plus de détails sur les erreurs que pg_result_error().

Comme pg_query() retourne FALSE si la requête échoue, vous devez utiliser pg_send_query() et pg_get_result() pour récupérer la ressource de résultat.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Retourne une chaîne de caractères s'il y a une erreur associée avec le paramètre result, FALSE autrement.

Exemples

Exemple #1 Exemple avec pg_result_error()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!
pg_connection_busy($dbconn)) {
      
pg_send_query($dbconn"select * from nexistepas;");
  }
  
  
$res1 pg_get_result($dbconn);
  echo 
pg_result_error($res1);
?>

Voir aussi



pg_result_seek

(PHP 4 >= 4.3.0, PHP 5)

pg_result_seek Modifie la ligne courant dans un résultat

Description

bool pg_result_seek ( resource $result , int $offset )

pg_result_seek() choisit la ligne offset comme ligne courante dans le résultat result.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

offset

Ligne à déplacer la position interne dans le jeu de résultats result. Les lignes sont numérotées à partir de zéro.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_result_seek()

<?php

// Connexion à la base de données
$conn pg_pconnect("dbname=publisher");

// Exécution de la requête
$result pg_query($conn"SELECT auteur, email FROM auteurs");

// Déplacement à la troisième ligne (on assume qu'il y a 3 lignes)
pg_result_seek($result2);

// Récupération de la troisième ligne
$row pg_fetch_row($result);
 
?>

Voir aussi



pg_result_status

(PHP 4 >= 4.2.0, PHP 5)

pg_result_statusLit le statut du résultat

Description

mixed pg_result_status ( resource $result [, int $type ] )

pg_result_status() retourne le statut du résultat result ou la commande d'exécution de PostgreSQL associée au résultat.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

type

Soit PGSQL_STATUS_LONG pour retourner un statut numérique de result ou PGSQL_STATUS_STRING pour retourner le tag de la commande de result. Si l'argument n'est pas spécifié, PGSQL_STATUS_LONG est la valeur par défaut.

Valeurs de retour

Les valeurs de retour possibles sont PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR et PGSQL_FATAL_ERROR si PGSQL_STATUS_LONG est spécifié. Autrement, une chaîne contenant le tag de la commande PostgreSQL est retourné.

Historique

Version Description
4.3.0 Le paramètre type a été ajouté.

Exemples

Exemple #1 Exemple avec pg_result_status()

<?php

// Connexion à la base de données
$conn pg_pconnect("dbname=publisher");

// Exécution de COPY
$result pg_query($conn"COPY auteurs FROM STDIN;");

// Récupération du statut
$status pg_result_status($result);

// Détermination du statut
if ($status == PGSQL_COPY_IN)
   echo 
"Le copiage a eu lieu.";
else
   echo 
"Le copiage a échoué.";

?>

L'exemple ci-dessus va afficher :

Le copiage a eu lieu.

Voir aussi



pg_select

(PHP 4 >= 4.3.0, PHP 5)

pg_select Effectue une sélection PostgreSQL

Description

mixed pg_select ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_select() sélectionne les enregistrements par assoc_array qui est au format champ=>valeur. Lorsque la requête réussit, elle retourne un tableau contenant tous les enregistrements et champs qui vérifient la condition spécifiée par assoc_array.

Si options est spécifiée, pg_convert() est appliquée à assoc_array avec les drapeaux spécifiés.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table dans laquelle on sélectionne les lignes.

assoc_array

Un tableau à qui les clés sont les noms des champs dans la table table_name et à qui les valeurs sont les conditions que la ligne doit vérifier pour être récupérée.

options

N'importe quelle de PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING combinée. Si PGSQL_DML_STRING fait partie de options alors la requête est retournée sous forme de chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via options.

Exemples

Exemple #1 Exemple avec pg_select()

<?php 
  $db 
pg_connect ('dbname=foo');
  
// C'est sécuritaire, car $_POST est convertit automatiquement
  
$rec pg_select($db'post_log'$_POST);
  if (
$rec) {
    echo 
"Lignes lues\n";
    
var_dump($rec);
  } else {
    echo 
"Problème dans les données utilisateur\n";
  }
?>

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL



pg_send_execute

(PHP 5 >= 5.1.0)

pg_send_execute Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)

Description

bool pg_send_execute ( resource $connection , string $stmtname , array $params )

Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s).

Cette fonction est similaire à pg_send_query_params(), mais la commande qui sera exécutée est spécifiée en nommant une requête préalablement préparée, au lieu de donner une chaîne en tant que requête. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom de la requête préparée à exécuter. Si une chaîne vide est spécifiée (""), alors la requête qui n'est pas nommée est exécutée. Le nom doit avoir été précédemment préparé en utilisant pg_prepare(), pg_send_prepare() ou une commande SQL PREPARE.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple #1 Exemple avec pg_send_execute()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
// Prépare une requête pour l'exécution
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_prepare($dbconn"my_query"'SELECT * FROM magasins WHERE nom = $1');
    
$res1 pg_get_result($dbconn);
  }

  
// Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
  // la chaîne "Joe's Widgets"
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_execute($dbconn"my_query", array("Joe's Widgets"));
    
$res2 pg_get_result($dbconn);
  }
  
  
// Exécute la même requête préparée, cette fois avec un paramètre différent
  
if (!pg_connection_busy($dbconn)) {
    
pg_execute($dbconn"my_query", array("Vêtements Vêtements Vêtements"));
    
$res3 pg_get_result($dbconn);
  }
  
?>

Voir aussi

  • pg_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
  • pg_send_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
  • pg_execute() - Exécute une requête préparée PostGreSQL



pg_send_prepare

(PHP 5 >= 5.1.0)

pg_send_prepare Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution

Description

bool pg_send_prepare ( resource $connection , string $stmtname , string $query )

Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution.

Cette fonction est la version asynchrone de pg_prepare() : elle retourne TRUE si elle a été capable de répartir la requête et FALSE si elle n'a pas été capable. Après un appel réussi, appelez pg_get_result() pour déterminer si le serveur a créé correctement la requête préparée. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom à donner à la requête préparée. Il doit être unique à chaque session. Si une chaîne vide est spécifiée ("") alors une requête sans nom est créée, écrasant les requêtes sans nom précédemment définies.

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple #1 Exemple pg_send_prepare()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
// Prépare une requête pour l'exécution
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_prepare($dbconn"my_query"'SELECT * FROM magasins WHERE nom = $1');
    
$res1 pg_get_result($dbconn);
  }

  
// Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
  // la chaîne "Joe's Widgets"
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_execute($dbconn"my_query", array("Joe's Widgets"));
    
$res2 pg_get_result($dbconn);
  }
  
  
// Exécute la même requête préparée, cette fois avec un paramètre différent
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_execute($dbconn"my_query", array("Vêtements Vêtements Vêtements"));
    
$res3 pg_get_result($dbconn);
  }
  
?>

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL
  • pg_pconnect() - Établit une connexion PostgreSQL persistante
  • pg_execute() - Exécute une requête préparée PostGreSQL
  • pg_send_execute() - Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)
  • pg_send_query_params() - Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)



pg_send_query_params

(PHP 5 >= 5.1.0)

pg_send_query_params Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)

Description

bool pg_send_query_params ( resource $connection , string $query , array $params )

Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s).

Cette fonction est équivalente à pg_send_query() à l'exception que les paramètres de la requête peuvent être spécifiés séparément de la chaîne de requête query. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4 et elle n'autorise qu'une seule commande par requête.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple #1 Exemple avec pg_send_query_params()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  
// Avec les paramètres. Notez qu'il n'est pas nécessaire d'échapper la
  // chaîne du paramètre.
  
pg_send_query_params($dbconn'select count(*) from auteurs where ville = $1', array('Perth'));
  
  
// Compare avec l'utilisation basique de pg_send_query
  
$str pg_escape_string('Perth');
  
pg_send_query($dbconn"select count(*) from auteurs where ville = '${str}'");
?>

Voir aussi



pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query Exécute une requête PostgreSQL asynchrone

Description

bool pg_send_query ( resource $connection , string $query )

pg_send_query() envoie une requête ou des requêtes de manière asynchrone à la connexion connection. Contrairement à pg_query(), elle peut envoyer plusieurs requêtes à la fois au serveur PostgreSQL et obtenir les résultats un par un en utilisant pg_get_result().

L'exécution du script n'est pas bloquée durant l'exécution des requêtes. Utilisez pg_connection_busy() pour vérifier si la connexion est occupée (c'est-à-dire la requête est en train d'être exécutée). Les requêtes peuvent être annulées avec pg_cancel_query().

Bien que l'on puisse envoyer plusieurs requêtes en même temps, il n'est pas possible d'envoyer plusieurs requêtes sur une connexion occupée. Si une requête est envoyée alors que la connexion est occupée, elle attendra que la requête précédente soit terminée et perdra tous ses résultats.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL.

query

La requête ou les requêtes SQL à être exécutées.

Les données contenues dans la requête doivent être échappées proprement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Utilisez pg_get_result() pour déterminer les résultats de requête.

Exemples

Exemple #1 Exemple avec pg_send_query()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!
pg_connection_busy($dbconn)) {
      
pg_send_query($dbconn,"select * from auteurs; select count(*) from auteurs;");
  }
    
  
$res1 pg_get_result($dbconn);
  echo 
"Premier appel de pg_get_result() : $res1\n";
  
$rows1 pg_num_rows($res1);
  echo 
"$res1 a $rows1 enregistrements\n\n";
    
  
$res2 pg_get_result($dbconn);
  echo 
"Second appel de pg_get_result() : $res2\n";
  
$rows2 pg_num_rows($res2);
  echo 
"$res2 a $rows2 enregistrements\n";
?>

L'exemple ci-dessus va afficher :

Premier appel de pg_get_result() : Resource id #3
Resource id #3 a 3 enregistrements

Second appel de pg_get_result() : Resource id #4
Resource id #4 a 1 enregistrements

Voir aussi



pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5)

pg_set_client_encoding Choisit l'encodage du client PostgreSQL

Description

int pg_set_client_encoding ([ resource $connection ], string $encoding )

pg_set_client_encoding() fixe l'encodage du client. Elle retourne 0 en cas de succès et -1 en cas d'erreur.

PostgreSQL convertira automatiquement les données dans l'encodage de la base de données vers l'encodage du client.

Note:

Auparavant, cette fonction s'appelait pg_setclientencoding().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

encoding

L'encodage client demandé. Un de ces constantes : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 ou WIN1250.

La liste exacte des encodages disponibles dépend de votre version PostgreSQL, alors vérifiez votre manuel PostgreSQL pour une liste plus spécifique.

Valeurs de retour

Retourne 0 en cas de succès ou -1 en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_set_client_encoding()

<?php

$conn 
pg_pconnect("dbname=editeur");
if (!
$conn) {
  echo 
"Une erreur s'est produite.\n";
  exit;
}

// Fixe l'encodage du client à UNICODE. Les données seront automatiquement
// converties de l'encodage serveur à l'encodage client.
pg_set_client_encoding($conn"UNICODE");

$result pg_query($conn"SELECT auteur, email FROM auteurs");
if (!
$result) {
  echo 
"Une erreur s'est produite.\n";
  exit;
}

// Écriture de données UTF-8
while ($row pg_fetch_row($result)) {
  echo 
"Auteur: $row[0]  E-mail: $row[1]";
  echo 
"<br />\n";
}
 
?>

Voir aussi



pg_set_error_verbosity

(PHP 5 >= 5.1.0)

pg_set_error_verbosity Détermine la le degré des messages retournés par pg_last_error() et pg_result_error()

Description

int pg_set_error_verbosity ([ resource $connection ], int $verbosity )

Détermine la le degré des messages retournés par pg_last_error() et pg_result_error().

pg_set_error_verbosity() fixe le degré d'erreur et retourne le paramètre précédant de la connexion. Avec le mode PGSQL_ERRORS_TERSE, les messages retournés inclus la sévérité, le texte primaire et la position seulement; normalement, cela va entrer sur une seule ligne. Le mode par défaut (PGSQL_ERRORS_DEFAULT) produit des messages qui incluent les messages ci-dessus et des détails, des astuces ou les champs en contexte (ces messages peuvent être étendus sur plusieurs lignes). Le mode PGSQL_ERRORS_VERBOSE tous les champs disponibles. Le changement du degré des messages n'affecte pas les messages disponibles qui proviennent des résultats déjà existants, mais seulement les messages des résultats créés par la suite.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

verbosity

Le degré de message d'erreur : PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT ou PGSQL_ERRORS_VERBOSE.

Valeurs de retour

Le degré de message d'erreur précédant : PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT ou PGSQL_ERRORS_VERBOSE.

Exemples

Exemple #1 Exemple avec pg_set_error_verbosity()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!
pg_connection_busy($dbconn)) {
      
pg_send_query($dbconn"select * from nexistepas;");
  }
  
  
pg_set_error_verbosity($dbconnPGSQL_ERRORS_VERBOSE);
  
$res1 pg_get_result($dbconn);
  echo 
pg_result_error($res1);
?>

Voir aussi



pg_trace

(PHP 4 >= 4.0.1, PHP 5)

pg_trace Active le suivi d'une connexion PostgreSQL

Description

bool pg_trace ( string $pathname [, string $mode = "w" [, resource $connection ]] )

pg_trace() active le suivi des communications entre PHP et le serveur PostgreSQL. Cet historique sera enregistré dans un fichier. Pour comprendre ces lignes, il faut être familier avec le protocole de communication interne à PostgreSQL.

Pour ceux qui le ne sont pas, elles peuvent être utiles pour suivre les requêtes et les erreurs : avec la commande grep '^To backend' trace.log, vous pourrez voir les requêtes réellement envoyées au serveur PostgreSQL. Pour plus d'informations, référez-vous à la » Documentation PostgreSQL.

Liste de paramètres

pathname

Le chemin complet et le nom du fichier dans lequel le suivi sera enregistré. Comme fopen().

pathname

Le mode d'accès optionnel, comme fopen().

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_trace()

<?php
$pgsql_conn 
pg_connect("dbname=mark host=localhost");

if (
$pgsql_conn) {
   
pg_trace('/tmp/trace.log''w'$pgsql_conn);
   
pg_query("SELECT 1");
   
pg_untrace($pgsql_conn);
   
// Maintenant /tmp/trace.log contiendra le suivi des communications
} else {
   print 
pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • pg_untrace() - Termine le suivi d'une connexion PostgreSQL



pg_transaction_status

(PHP 5 >= 5.1.0)

pg_transaction_status Retourne le statut de la transaction en cours du serveur

Description

int pg_transaction_status ( resource $connection )

Retourne le statut de la transaction en cours du serveur.

Attention

pg_transaction_status() donnera de mauvais résultats lorsque vous l'utiliserez avec un serveur PostgreSQL 7.3 qui a le paramètre autocommit désactivé. La fonctionnalité de autocommit est obsolète et n'existe plus dans les versions de serveur plus récentes.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Le statut peut être PGSQL_TRANSACTION_IDLE (actuellement inactif), PGSQL_TRANSACTION_ACTIVE (une commande est en cours), PGSQL_TRANSACTION_INTRANS (inactif, dans un bloc de transaction valide), ou PGSQL_TRANSACTION_INERROR (inactif, dans un bloc de transaction en échec). PGSQL_TRANSACTION_UNKNOWN est retourné si la connexion est mauvaise. PGSQL_TRANSACTION_ACTIVE est retourné seulement si la requête a été envoyée au serveur et que celle-ci n'a pas été encore complétée.

Exemples

Exemple #1 Exemple avec pg_transaction_status()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Connexion impossible");
  
$stat pg_transaction_status($dbconn);
  if (
$stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 
'Connexion mauvaise';
  } else if (
$stat === PGSQL_TRANSACTION_IDLE) {
      echo 
'Connexion actuellement inactive';
  } else {
      echo 
'Connexion est en cours de transaction';
  }    
?>



pg_tty

(PHP 4, PHP 5)

pg_tty Retourne le nom de TTY associé à la connexion

Description

string pg_tty ([ resource $connection ] )

pg_tty() retourne le nom de TTY de la connexion associée à connection.

Note:

pg_tty() est obsolète, depuis le serveur ne fait plus attention à la configuration TTY, mais demeure pour des raisons de compatibilités.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant le débogue TTY de la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_tty()

<?php
$pgsql_conn 
pg_connect("dbname=mark host=localhost");

if (
$pgsql_conn) {
   print 
"Débogue TTY serveur est : " pg_tty($pgsql_conn) . "<br/>\n";
} else {
   print 
pg_last_error($pgsql_conn);
   exit;
}
?>



pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5)

pg_unescape_bytea Supprime la protection d'une chaîne de type bytea

Description

string pg_unescape_bytea ( string $data )

pg_unescape_bytea() supprime la protection des caractères de type bytea. Elle retourne la chaîne de caractères protégée, pouvant contenir des données binaires.

Note:

Lorsque vous utilisez une commande SELECT avec des données de type bytea, PostgreSQL retourne des valeurs octales, préfixées avec des antislashs \ (e.g. \032). Les utilisateurs doivent effectuer la conversion en format binaire eux-mêmes.

pg_escape_bytea() requiert PostgreSQL 7.2 ou plus récent. Avec PostgreSQL 7.2.0 et 7.2.1, les données de type bytea doivent être transtypée lorsque vous activez le support des chaînes de caractères multioctets. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. PostgreSQL 7.2.2 ou plus récent ne requiert pas cette manipulation. Toutefois, si le client et le serveur n'utilisent pas le même jeu de caractères, il peut arriver des erreurs. Il faut alors forcer le transtypage manuellement pour éviter cette erreur.

Liste de paramètres

data

Une chaîne de caractères contenant les données bytea PostgreSQL à être converties en chaîne de caractères binaire PHP.

Valeurs de retour

Une chaîne de caractères contenant les données protégées.

Exemples

Exemple #1 Exemple avec pg_unescape_bytea()

<?php 
  
// Connexion à la base de données
  
$dbconn pg_connect('dbname=foo');
  
  
// Récupération des données bytea
  
$res pg_query("SELECT data FROM galerie WHERE nom='Arbres Pin'");  
  
$raw pg_fetch_result($res'data');
  
  
// Convertit en binaire et envoie au navigateur
  
header('Content-type: image/jpeg');
  echo 
pg_unescape_bytea($raw);
?>

Voir aussi



pg_untrace

(PHP 4 >= 4.0.1, PHP 5)

pg_untrace Termine le suivi d'une connexion PostgreSQL

Description

bool pg_untrace ([ resource $connection ] )

pg_untrace() termine le suivi d'une connexion PostgreSQL, initiée avec pg_trace().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec pg_untrace()

<?php
$pgsql_conn 
pg_connect("dbname=mark host=localhost");

if (
$pgsql_conn) {
   
pg_trace('/tmp/trace.log''w'$pgsql_conn);
   
pg_query("SELECT 1");
   
pg_untrace($pgsql_conn);
   
// Maintenant le suivi des communications est désactivé
} else {
   print 
pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi

  • pg_trace() - Active le suivi d'une connexion PostgreSQL



pg_update

(PHP 4 >= 4.3.0, PHP 5)

pg_update Modifie les lignes d'une table

Description

mixed pg_update ( resource $connection , string $table_name , array $data , array $condition [, int $options = PGSQL_DML_EXEC ] )

pg_update() modifie les lignes de la table table_name, qui vérifient la condition condition, et leur donne la valeur de data. Si options est spécifié, pg_convert() est appliqué à data avec les options spécifiées.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL.

table_name

Le nom de la table dans laquelle les lignes seront mises à jour.

data

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les lignes correspondantes qui seront mises à jour.

condition

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les conditions à remplir par les lignes pour être mises à jour.

options

Toutes combinaisons de constantes parmi PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options, alors la requête sera retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via le paramètre options.

Exemples

Exemple #1 Exemple avec pg_update()

<?php 
  $db 
pg_connect ('dbname=foo');
  
$data = array('field1'=>'AA''field2'=>'BB');

  
// C'est sécuritaire, car $_POST est convertit automatiquement
  
$res pg_update($db'post_log'$_POST$data);
  if (
$res) {
      echo 
"Les données ont été modifiées : $res\n";
  } else {
      echo 
"Problème dans les données utilisateur\n";
  }
?>

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL



pg_version

(PHP 5)

pg_version Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)

Description

array pg_version ([ resource $connection ] )

pg_version() retourne un tableau avec les versions du client, du protocole et du serveur. Les versions du protocole et du serveur ne sont disponibles que si PHP a été compilé avec PostgreSQL 7.4 ou supérieur.

Pour plus d'informations sur le serveur, utilisez pg_parameter_status().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Retourne un tableau avec les clés client, protocol et server et valeurs (si disponibles). Retourne FALSE en cas d'erreur ou de connexion invalide.

Exemples

Exemple #1 Exemple avec pg_version()

<?php
$dbconn 
pg_connect("host=localhost port=5432 dbname=marie")
   or die(
"Connexion impossible");

$v pg_version($dbconn);

echo 
$v['client'];
?>

L'exemple ci-dessus va afficher :

7.4

Voir aussi


Sommaire

  • pg_affected_rows — Retourne le nombre de lignes affectées
  • pg_cancel_query — Annule une requête asynchrone
  • pg_client_encoding — Lit l'encodage du client
  • pg_close — Termine une connexion PostgreSQL
  • pg_connect — Établit une connexion PostgreSQL
  • pg_connection_busy — Vérifie si la connexion PostgreSQL est occupée
  • pg_connection_reset — Relance la connexion au serveur PostgreSQL
  • pg_connection_status — Lit le statut de la connexion PostgreSQL
  • pg_convert — Convertit des tableaux associatifs en une commande PostgreSQL
  • pg_copy_from — Insère des lignes dans une table à partir d'un tableau
  • pg_copy_to — Copie une table dans un tableau
  • pg_dbname — Retourne le nom de la base de données PostgreSQL
  • pg_delete — Efface des lignes PostgreSQL
  • pg_end_copy — Synchronise avec le serveur PostgreSQL
  • pg_escape_bytea — Protège une chaîne pour insertion dans un champ bytea
  • pg_escape_string — Protège une chaîne de caractères pour l'insérer dans un champ texte
  • pg_execute — Exécute une requête préparée PostGreSQL
  • pg_fetch_all_columns — Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau
  • pg_fetch_all — Lit toutes les lignes d'un résultat
  • pg_fetch_array — Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_assoc — Lit une ligne de résultat PostgreSQL sous forme de tableau associatif
  • pg_fetch_object — Lit une ligne de résultat PostgreSQL dans un objet
  • pg_fetch_result — Retourne les valeurs d'un résultat
  • pg_fetch_row — Lit une ligne dans un tableau
  • pg_field_is_null — Teste si un champ PostgreSQL est à NULL
  • pg_field_name — Retourne le nom d'un champ PostgreSQL
  • pg_field_num — Retourne le numéro d'une colonne
  • pg_field_prtlen — Retourne la taille imprimée
  • pg_field_size — Retourne la taille interne de stockage d'un champ donné
  • pg_field_table — Retourne le nom ou l'oid d'une table
  • pg_field_type_oid — Retourne le type ID (OID) pour le numéro du champ correspondant
  • pg_field_type — Retourne le type d'un champ PostgreSQL donné par index
  • pg_free_result — Libère la mémoire
  • pg_get_notify — Lit le message SQL NOTIFY
  • pg_get_pid — Lit l'identifiant de processus du serveur PostgreSQL
  • pg_get_result — Lit un résultat PostgreSQL asynchrone
  • pg_host — Retourne le nom d'hôte
  • pg_insert — Insère un tableau dans une table
  • pg_last_error — Lit le dernier message d'erreur sur la connexion
  • pg_last_notice — Retourne la dernière note du serveur PostgreSQL
  • pg_last_oid — Retourne l'identifiant de la dernière ligne
  • pg_lo_close — Ferme un objet de grande taille PostgreSQL
  • pg_lo_create — Crée un objet de grande taille PostgreSQL
  • pg_lo_export — Exporte un objet de grande taille vers un fichier
  • pg_lo_import — Importe un objet de grande taille depuis un fichier
  • pg_lo_open — Ouvre un objet de grande taille PostgreSQL
  • pg_lo_read_all — Lit un objet de grande taille en totalité
  • pg_lo_read — Lit un objet de grande taille
  • pg_lo_seek — Modifie la position dans un objet de grande taille
  • pg_lo_tell — Retourne la position courante dans un objet de grande taille PostgreSQL
  • pg_lo_unlink — Efface un objet de grande taille PostgreSQL
  • pg_lo_write — Écrit un objet de grande taille PostgreSQL
  • pg_meta_data — Lit les métadonnées de la table PostgreSQL
  • pg_num_fields — Retourne le nombre de champ
  • pg_num_rows — Retourne le nombre de lignes PostgreSQL
  • pg_options — Retourne les options PostgreSQL
  • pg_parameter_status — Consulte un paramètre de configuration courant du serveur
  • pg_pconnect — Établit une connexion PostgreSQL persistante
  • pg_ping — Ping la connexion à la base
  • pg_port — Retourne le numéro de port
  • pg_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
  • pg_put_line — Envoie une chaîne au serveur PostgreSQL
  • pg_query_params — Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
  • pg_query — Exécute une requête PostgreSQL
  • pg_result_error_field — Retourne un champ individuel d'un rapport d'erreur
  • pg_result_error — Lit le message d'erreur associé à un résultat
  • pg_result_seek — Modifie la ligne courant dans un résultat
  • pg_result_status — Lit le statut du résultat
  • pg_select — Effectue une sélection PostgreSQL
  • pg_send_execute — Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)
  • pg_send_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
  • pg_send_query_params — Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)
  • pg_send_query — Exécute une requête PostgreSQL asynchrone
  • pg_set_client_encoding — Choisit l'encodage du client PostgreSQL
  • pg_set_error_verbosity — Détermine la le degré des messages retournés par pg_last_error et pg_result_error
  • pg_trace — Active le suivi d'une connexion PostgreSQL
  • pg_transaction_status — Retourne le statut de la transaction en cours du serveur
  • pg_tty — Retourne le nom de TTY associé à la connexion
  • pg_unescape_bytea — Supprime la protection d'une chaîne de type bytea
  • pg_untrace — Termine le suivi d'une connexion PostgreSQL
  • pg_update — Modifie les lignes d'une table
  • pg_version — Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)



SQLite


Introduction

SQLite est une bibliothèque C qui implémente un moteur de base de données embarqué. Les programmes qui utilisent la bibliothèque SQLite peuvent avoir accès à une base de données SQL sans avoir de processus RDBMS séparé.

SQLite n'est pas une bibliothèque cliente permettant de se connexion à un gros serveur de base de données. La bibliothèque SQLite lit et écrit directement dans des fichiers de base de données sur le disque.

Note:

Pour plus d'informations, voir le site web de SQLite sur : (» http://sqlite.org/).



Installation/Configuration

Sommaire


Pré-requis

L'extension SQLite est activée par défaut depuis PHP 5. Avant cela, il fallait installer la bibliothèque SQLite.



Installation

Depuis PHP 5, cette extension est activée par défaut, alors ne la désactivez pas, et elle sera disponible.

Attention

N'utilisez pas la version PECL de cette extension, car elle n'est plus entretenue. Utilisez toujours la version SQLite qui est livrée avec les source PHP, même si vous la compilez comme ressource partagée. Dans ce cas, les sources sont dans php-src-dir/ext/sqlite et phpize est la méthode pour la compiler.

Les utilisateurs de Windows doivent activer la bibliothèque php_sqlite.dll dans le fichier php.ini afin d'utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Les versions Windows doivent aussi activer PDO car depuis PHP 5.1.0, il en dépend. Ainsi, le php.ini doit ressembler à ceci :

extension=php_pdo.dll
extension=php_sqlite.dll
Sur les systèmes Unix ou Linux, si vous compilez PDO en tant qu'extension partagée, vous devez compilez également SQLite comme extension partagée, en utilisant l'option de configuration --with-sqlite=shared.

La série PHP 5.0.x pour Windows activait cette extension par défaut, et il n'y avait pas de DLL nécessaire.

SQLite 3 est supporté via PDO SQLite.

Note: Installation sous Windows pour les comptes sans privilèges

Sur les systèmes Windows, les comptes sans privilèges n'ont pas de variable d'environnement TMP de définie par défaut. Ceci aura pour effet que sqlite créera des fichiers temporaires dans le dossier Windows, ce qui n'est pas un bon comportement. Donc, vous devriez définir la variable d'environnement TMP pour le serveur Web ou le compte utilisateur, utilisé par le serveur Web. Si Apache est votre serveur Web, vous pouvez réaliser cela via la directive SetEnv de votre fichier httpd.conf. Par exemple :

SetEnv TMP c:/temp
Si vous n'arrivez pas à établir cette configuration au niveau de votre serveur, vous pouvez l'implémenter directement dans votre script, comme ceci :
<?php
putenv
('TMP=C:/temp');
?>
Cette configuration doit pointer vers un dossier dont le serveur Web a les permissions nécessaire à la création de fichiers, mais aussi à l'écriture et à l'effacement. Sinon, vous recevrez le message suivant : malformed database schema - unable to open a temporary database file for storing temporary tables



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Sqlite
Nom Défaut Modifiable Historique
sqlite.assoc_case "0" PHP_INI_ALL Disponible depuis PHP 5.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sqlite.assoc_case int

Utilise des index à casse libre (0), majuscule (1) ou minuscule (2).

Cette option sert principalement lorsque vous avez besoin de la compatibilité avec d'autres systèmes de bases de données, où les noms des colonnes sont toujours retournés en majuscule ou en minuscule, indépendamment de la casse réelle de la colonne dans la base.

La bibliothèque SQLite retourne le nom de la colonne sans y toucher (c'est la casse qui sera utilisée dans votre base). Lorsque sqlite.assoc_case vaut 0 cette casse sera conservée. Lorsque cette option vaut 1 ou 2, PHP va modifier la casse des noms, et mettre le nom de la colonne respectivement en majuscules ou minuscules.

Utiliser cette option implique une légère perte de performances, mais c'est BEAUCOUP plus rapide que de faire la gestion des caractères vous-même.



Types de ressources

Il y a deux ressources utilisées par l'interface SQLite. La première est la connexion à la base de données, et la seconde, le jeu de résultats.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les fonctions sqlite_fetch_array() et sqlite_current() utilisent des constantes pour spécifier les différents types de résultats. Les constantes sont les suivantes :

Constantes de résultats SQLite
SQLITE_ASSOC (entier)
Les colonnes sont retournées dans le tableau, en utilisant le nom de la colonne comme nom d'index.
SQLITE_BOTH (entier)
Les colonnes sont retournées dans le tableau, en utilisant simultanément le nom de la colonne comme nom d'index et un index numérique.
SQLITE_NUM (entier)
Les colonnes sont retournées dans le tableau, en utilisant une indexation numérique. L'index commence à 0, pour identifier le premier champ.

Un certain nombre de fonctions peuvent retourner des codes d'état. Les constantes suivantes sont définies :

Constantes codes d'état SQLite
SQLITE_OK (entier)
Résultat réussi.
SQLITE_ERROR (entier)
Erreur SQL ou base de données manquante.
SQLITE_INTERNAL (entier)
Une erreur interne de logique dans SQLite.
SQLITE_PERM (entier)
Permission d'accès refusée.
SQLITE_ABORT (entier)
Routine de procédure de rappel a demandé un abandon.
SQLITE_BUSY (entier)
Le fichier de base de données est verrouillé.
SQLITE_LOCKED (entier)
Une table dans la base de données est verrouillée.
SQLITE_NOMEM (entier)
Allocation de mémoire échouée.
SQLITE_READONLY (entier)
Essai d'écrire dans une base de données en lecture seule.
SQLITE_INTERRUPT (entier)
Opération terminée de manière interne.
SQLITE_IOERR (entier)
Erreur disque I/O s'est produite.
SQLITE_NOTADB (int)
Le fichier ouvert n'est pas une base de données.
SQLITE_CORRUPT (entier)
L'image disque de la base de données est malformée.
SQLITE_FORMAT (int)
Erreur auxiliaire de format de base de données.
SQLITE_NOTFOUND (entier)
(Interne) Table ou enregistrement non trouvé.
SQLITE_FULL (entier)
Insertion échouée car la base de données est pleine.
SQLITE_CANTOPEN (entier)
Impossible d'ouvrir le fichier de base de données.
SQLITE_PROTOCOL (entier)
Erreur du protocole de verrou de base de données.
SQLITE_EMPTY (entier)
(Interne) Une table de la base de données est vide.
SQLITE_SCHEMA (entier)
Le schéma de base de données a changé.
SQLITE_TOOBIG (entier)
Trop de données pour une ligne de la table.
SQLITE_CONSTRAINT (entier)
Arrêt dû à une violation de contrainte.
SQLITE_MISMATCH (entier)
Type de données incorrect.
SQLITE_MISUSE (entier)
Bibliothèque utilisée incorrectement.
SQLITE_NOLFS (entier)
Utilisation de fonctionnalités de l'OS non supportées sur l'hôte.
SQLITE_AUTH (entier)
Autorisation échouée.
SQLITE_ROW (entier)
Processus interne a une autre ligne prête.
SQLITE_DONE (entier)
Processus interne a terminé l'exécution.


Fonctions SQLite

Classes pré-définies

SQLiteDatabase

Représente une base de données SQLite ouverte.

Constructeur

  • __construct : construit un nouvel objet SQLiteDatabase

Méthodes

  • query : exécute une requête
  • queryExec : exécute une requête de résultat
  • arrayQuery : exécute une requête et retourne les résultats dans un tableau
  • singleQuery : exécute une requête et retourne soit un tableau pour une seule colonne, soit la valeur de la première ligne
  • unbufferedQuery : exécute une requête non bufferisée
  • lastInsertRowid : retourne l'identifiant de la dernière ligne insérée
  • changes : retourne le nombre de lignes modifiées par la dernière requête
  • createAggregate : enregistre une UDF de groupement pour les requêtes SQLite
  • createFunction : enregistre une fonction utilisateur "classique" UDF pour SQLite
  • busyTimeout : configure ou désactive le délai d'attente d'une base SQLite occupée
  • lastErorr : retourne le dernier code erreur de la dernière erreur rencontrée
  • fetchColumnTypes : retourne un tableau de types de colonnes depuis une table particulière

SQLiteResult

Représente un jeu de résultats SQLite bufferisé.

Méthodes

  • fetch : récupère la ligne suivante depuis un jeu de résultats en tant que tableau
  • fetchObject : récupère la ligne suivante depuis un jeu de résultats en tant qu'objet
  • fetchSingle : récupère la première ligne depuis le jeu de résultats en tant que chaîne de caractères
  • fetchAll : récupère toutes les lignes depuis le jeu de résultats en tant que tableau de tableaux
  • column : récupère une colonne depuis la ligne courante du jeu de résultats
  • numFields : retourne le numéro du champ depuis un jeu de résultats
  • fieldName : retourne le nom d'un champ particulier depuis le jeu de résultats
  • current : récupère la ligne courante depuis le jeu de résultat en tant que tableau
  • key : retourne l'index de la ligne courante
  • next : déplace le pointeur sur le numéro de ligne suivante
  • valid : retourne si oui ou non il reste des lignes de disponibles
  • rewind : déplace le pointeur sur le numéro de la première ligne d'un jeu de résultats
  • prev : déplace le pointeur sur le numéro de ligne précédent du jeu de résultats
  • hasPrev : retourne si oui ou non une ligne précédente est disponible
  • numRows : retourne le nombre de lignes dans le jeu de résultats
  • seek : déplace le pointeur vers un numéro de ligne précis

SQLiteUnbuffered

Représente un jeu de résultats SQLite non-bufferisé. Les jeux de résultats non-bufferisés sont séquentiels, déplacement du pointeur uniquement vers le numéro suivant.

Méthodes

  • fetch : récupère la ligne suivante depuis un jeu de résultats en tant que tableau
  • fetchObject : récupère la ligne suivante depuis un jeu de résultats en tant qu'objet
  • fetchSingle : récupère la première colonne depuis un jeu de résultats en tant que chaîne de caractères
  • fetchAll : récupère toutes les lignes depuis le jeu de résultats en tant que tableau de tableaux
  • column : récupère une colonne depuis la ligne courante d'un jeu de résultats
  • numFields : retourne le nombre de champs dans le jeu de résultats
  • fieldName : retourne le nom d'un champ en particulier depuis le jeu de résultats
  • current : récupère la ligne courante depuis le jeu de résultats en tant que tableau
  • next: déplace le pointeur vers un numéro de ligne suivant
  • valid : retourne si oui ou non il reste des lignes de disponibles

sqlite_array_query

SQLiteDatabase->arrayQuery

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_array_query -- SQLiteDatabase->arrayQuery Exécute une requête SQL avec SQLite et retourne un tableau

Description

array sqlite_array_query ( resource $dbhandle , string $query [, int $result_type [, bool $decode_binary ]] )
array sqlite_array_query ( string $query , resource $dbhandle [, int $result_type [, bool $decode_binary ]] )

Style orienté objet

array SQLiteDatabase::arrayQuery ( string $query [, int $result_type [, bool $decode_binary ]] )

sqlite_array_query() exécute la requête donnée et retourne un tableau du jeu de résultats entier. Il est équivalent d'appeler sqlite_query() et ensuite sqlite_fetch_array() pour chaque ligne dans le jeu de résultats. sqlite_array_query() est de manière significative plus rapide que les fonctions mentionnées ci-dessus.

Astuce

sqlite_array_query() est plus convenable pour les requêtes retournant 45 lignes ou moins. Si vous attendez plus de données que cela, il est recommandé d'écrire les scripts avec la fonction sqlite_unbuffered_query() pour des performances optimales.

Liste de paramètres

query

La requête qui sera exécutée.

Les données contenues dans la requête doivent être échappées.

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne un tableau du jeu de résultats entier; sinon FALSE

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle 
sqlite_open('sqlitedb');
$result sqlite_array_query($dbhandle'SELECT name, email FROM users LIMIT 25'SQLITE_ASSOC);
foreach (
$result as $entry) {
    echo 
'Name: ' $entry['name'] . '  E-mail: ' $entry['email'];
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle 
= new SQLiteDatabase('sqlitedb');
$result $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25'SQLITE_ASSOC);
foreach (
$result as $entry) {
    echo 
'Nom : ' $entry['name'] . '  E-mail : ' $entry['email'];
}
?>

Voir aussi



sqlite_busy_timeout

SQLiteDatabase->busyTimeout

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_busy_timeout -- SQLiteDatabase->busyTimeoutConfigure le délai d'attente d'une base SQLite occupée

Description

void sqlite_busy_timeout ( resource $dbhandle , int $milliseconds )

Style orienté objet

void SQLiteDatabase::busyTimeout ( int $milliseconds )

Spécifie la durée maximale, en millisecondes, que SQLite attendra pour qu'une base de données dbhandle soit utilisable.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

milliseconds

Le nombre de millisecondes. Lorsque mis à 0, les gestionnaires d'occupation seront désactivés et SQLite retournera immédiatement un code d'état SQLITE_BUSY si un autre processus/thread a verrouillé la base de données pour une mise à jour.

PHP initialise la durée maximale d'utilisation à 60 secondes lorsque la base de données est ouverte.

Note:

Il y a mille (1000) millisecondes dans une seconde.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle 
sqlite_open('sqlitedb');
sqlite_busy_timeout($dbhandle10000); // fixe le timeout à 10 secondes
sqlite_busy_timeout($dbhandle0); // désactive le gestionnaire
?>

Exemple #2 Style orienté objet

<?php
$dbhandle 
= new SQLiteDatabase('sqlitedb');
$dbhandle->busyTimeout(10000); // 10 secondes
$dbhandle->busyTimeout(0); // désactive
?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas



sqlite_changes

SQLiteDatabase->changes

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_changes -- SQLiteDatabase->changes Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite

Description

int sqlite_changes ( resource $dbhandle )

Style orienté objet

int SQLiteDatabase::changes ( void )

sqlite_changes() retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite, exécutée dans la base db.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne le nombre de lignes modifiées.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle 
sqlite_open('mysqlitedb');
$query sqlite_query($dbhandle"UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!
$query) {
    exit(
'Erreur dans la requête.');
} else {
    echo 
'Nombre de lignes modifiées : 'sqlite_changes($dbhandle);
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle 
= new SQLiteDatabase('mysqlitedb');
$query $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!
$query) {
    exit(
'Erreur dans la requête.');
} else {
    echo 
'Nombre de lignes modifiées : '$dbhandle->changes();
}
?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas



sqlite_close

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_closeFerme la connexion à SQLite

Description

void sqlite_close ( resource $dbhandle )

sqlite_close() referme la connexion à la base SQLite, identifiée par la ressource db_handle. Si la connexion à la base était persistante, elle sera fermée et supprimée de la liste des connexions persistantes.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec sqlite_close()

<?php
$dbhandle 
sqlite_open('sqlitedb');
sqlite_close($dbhandle);
?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas
  • sqlite_popen() - Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas



sqlite_column

SQLiteResult->column

SQLiteUnbuffered->column

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_column -- SQLiteResult->column -- SQLiteUnbuffered->columnLit la valeur d'une colonne dans un résultat SQLite

Description

mixed sqlite_column ( resource $result , mixed $index_or_name [, bool $decode_binary = true ] )
mixed SQLiteResult::column ( mixed $index_or_name [, bool $decode_binary = true ] )
mixed SQLiteUnbuffered::column ( mixed $index_or_name [, bool $decode_binary = true ] )

sqlite_column() lit la valeur de la colonne nommée index_or_name (si c'est une chaîne), ou d'index index_or_name (si c'est un entier), dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

index_or_name

L'index de la colonne ou le nom à récupérer.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne la valeur de la colonne.

Notes

Note:

Utilisez cette fonction lorsque vous manipulez un grand résultat avec de nombreuses colonnes, ou des colonnes qui contiennent de grandes quantités de données.

Voir aussi



sqlite_create_aggregate

SQLiteDatabase->createAggregate

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_create_aggregate -- SQLiteDatabase->createAggregateEnregistre une UDF agrégeante pour les requêtes SQLite

Description

void sqlite_create_aggregate ( resource $dbhandle , string $function_name , callback $step_func , callback $finalize_func [, int $num_args = -1 ] )

Style orienté objet

void SQLiteDatabase::createAggregate ( string $function_name , callback $step_func , callback $finalize_func [, int $num_args = -1 ] )

sqlite_create_aggregate() est similaire à sqlite_create_function(), car elle enregistre une fonction qui sera utilisée pour calculer un résultat agrégé sur plusieurs lignes d'une requête.

La différence principale entre cette fonction et sqlite_create_function() est que deux fonctions sont nécessaires pour gérer les agrégations : step_func est appelée pour chaque ligne du résultat. Votre fonction PHP doit accumuler le résultat, et le stocker dans le contexte d'agrégation. Une fois que toutes les lignes ont été appelées, finalize_func sera appelée, et elle doit alors lire les données dans ce contexte d'agrégation, et en retourner le résultat. Les fonctions de rappel doivent retourner un type compréhensible par SQLite (i.e. type scalaire).

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

step_func

Fonction de procédure de rappel appelée pour chaque ligne du jeu de résultats. Les paramètres de la fonction sont &$context, $value, ....

finalize_func

Fonction de procédure de rappel pour le contexte d'agrégation des données de chaque ligne. Le paramètre de la fonction est &$context et la fonction doit renvoyer le résultat final de l'agrégation.

num_args

Conseil à l'analyseur SQLite si la fonction de procédure de rappel accepte un nombre prédéterminé d'arguments.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple d'UDF SQLite : taille maximale de chaîne

<?php
$data 
= array(
   
'one',
   
'two',
   
'three',
   
'four',
   
'five',
   
'six',
   
'seven',
   
'eight',
   
'nine',
   
'ten'
   
);
$db sqlite_open(':memory:');
sqlite_query($db"CREATE TABLE strings(a)");
foreach (
$data as $str) {
    
$str sqlite_escape_string($str);
    
sqlite_query($db"INSERT INTO strings VALUES('$str')");
}

function 
max_len_step(&$context$string)
{
  if (
strlen($string) > $context) {
    
$context strlen($string);
  }
}

function 
max_len_finalize(&$context)
{
  return 
$context;
}

sqlite_create_aggregate($db'max_len''max_len_step''max_len_finalize');

var_dump(sqlite_array_query($db'SELECT max_len(a) from strings'));

?>

Dans cet exemple, nous créons une fonction d'agrégation qui va calculer la taille de la plus longue chaîne dans l'une des colonnes de la table. Pour chaque ligne, la fonction max_len_step est appelée, et reçoit le paramètre context. Le contexte est une autre variable PHP, et il peut contenir un tableau ou même un objet. Dans notre exemple, nous l'utilisons pour stocker la taille maximale de la colonne courante. Si string est plus grand que la valeur maximale que nous avons enregistrée, nous modifions notre contexte en conséquence.

Une fois que toutes les lignes ont été traitées, SQLite appelle la fonction max_len_finalize pour déterminer le résultat de l'agrégation. Nous pourrions alors effectuer plusieurs calculs en fonction des données que nous avons récoltées dans context. Dans notre exemple simple, nous avons calculé le résultat au fur et à mesure de la progression de la requête, ce qui nous permet de n'avoir qu'à retourner la valeur de notre contexte.

Note:

L'exemple ci-dessus ne fonctionnera pas correctement si une colonne contient une donnée binaire. Reportez-vous à la fonction sqlite_udf_decode_binary() pour plus de détails, et d'un exemple pour travailler avec des chaînes binaires.

Astuce

Il n'est pas recommandé de stocker une copie des valeurs dans le contexte, puis de les traiter à la fin, car cela conduirait SQLite à consommer beaucoup de mémoire : imaginez simplement la quantité de mémoire que prendrons vos millions de lignes de 32 caractères en fin de requête.

Astuce

Vous pouvez utiliser sqlite_create_function() et sqlite_create_aggregate() pour remplacer des fonctions natives SQLite.

Voir aussi



sqlite_create_function

SQLiteDatabase->createFunction

(PHP 5, sqlite >= 1.0.0)

sqlite_create_function -- SQLiteDatabase->createFunction Enregistre une fonction utilisateur "classique" UDF pour SQLite

Description

void sqlite_create_function ( resource $dbhandle , string $function_name , callback $callback [, int $num_args = -1 ] )

Style orienté objet

void SQLiteDatabase::createFunction ( string $function_name , callback $callback [, int $num_args = -1 ] )

sqlite_create_function() vous permet d'enregistrer une fonction PHP dans SQLite comme UDF (Fonction Définie par l'Utilisateur, User Defined Function), pour qu'elle soit accessible depuis les requêtes SQL.

Les UDF peuvent être utilisées dans n'importe quelle requête SQL qui peut appeler des fonctions, telles que SELECT et UPDATE, ou même des déclencheurs.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

callback

Fonction de procédure de rappel pour gérer les fonctions SQL définies.

Note: Les fonctions de procédure de rappel devraient retourner un type compris par SQLite (c'est-à-dire, voir type scalaire).

num_args

Conseil à l'analyseur SQLite si la fonction de procédure de rappel accepte un nombre prédéterminé d'arguments.

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec sqlite_create_function()

<?php
function md5_and_reverse($string)
{
    return 
strrev(md5($string));
}

if (
$dbhandle sqlite_open('mysqlitedb'0666$sqliteerror)) {

    
sqlite_create_function($dbhandle'md5rev''md5_and_reverse'1);

    
$sql  'SELECT md5rev(filename) FROM files';
    
$rows sqlite_array_query($dbhandle$sql);
} else {
    echo 
'Erreur pendant l\'ouverture de la base db : ' $sqliteerror;
    exit;
}
?>

Dans cet exemple, nous avons une fonction qui calcule la somme de contrôle MD5 d'une chaîne, et l'inverse. Lorsque la requête SQL s'exécute, elle retourne le nom du fichier, transformé par cette opération. Les données retournées dans $rows contiennent le résultat.

La beauté de cette technique est que vous n'avez pas à traiter vous-même les données avec une boucle, une fois que vous avez lu les données.

PHP enregistre une fonction spéciale appelée PHP lorsque la base est ouverte. Cette fonction est utilisée pour appeler toute fonction PHP sans avoir à l'enregistrer au préalable.

Exemple #2 Exemple d'utilisation d'une fonction PHP dans SQLite

<?php
$rows 
sqlite_array_query($db"SELECT php('md5', filename) from files");
?>

Cet exemple va appeler la fonction md5() sur chaque colonne filename dans la base, et retourner le contenu dans le tableau $rows.

Note:

Pour des raisons de performances, PHP ne va pas automatiquement coder ou décoder les données binaires passées à votre UDF. Vous devez le faire manuellement. Voyez les fonctions sqlite_udf_encode_binary() et sqlite_udf_decode_binary() pour plus de détails.

Astuce

Il n'est pas recommandé d'utiliser des UDF pour traiter des données binaires, à moins que les performances ne soient pas un problème pour votre application.

Astuce

Vous pouvez utiliser sqlite_create_function() et sqlite_create_aggregate() pour remplacer des fonctions natives SQLite.

Voir aussi



sqlite_current

SQLiteResult->current

SQLiteUnbuffered->current

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_current -- SQLiteResult->current -- SQLiteUnbuffered->currentLit une ligne de résultat SQLite dans un tableau

Description

array sqlite_current ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Style orienté objet

array SQLiteResult::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_current() est identique à sqlite_fetch_array() hormis le fait qu'elle ne fait pas progresser le pointeur de résultat avant de lire des données. Elle ne fait que retourner les données qui sont disponibles à la position courante.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne courante du jeu de résultats: FALSE si la position courante est au-delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Voir aussi



sqlite_error_string

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_error_stringRetourne le message d'erreur SQLite

Description

string sqlite_error_string ( int $error_code )

sqlite_error_string() retourne un message d'erreur lisible, pour le numéro d'erreur error_code, retourné par sqlite_last_error().

Liste de paramètres

error_code

Le code erreur à utiliser, qui peut être passé depuis la fonction sqlite_last_error().

Valeurs de retour

Retourne une description du code erreur error_code, sous la forme d'une chaîne de caractères.

Voir aussi



sqlite_escape_string

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_escape_stringProtège une chaîne de caractères pour utilisation avec SQLite

Description

string sqlite_escape_string ( string $item )

sqlite_escape_string() va ajouter des guillemets dans la chaîne item, pour qu'elle puisse être utilisée correctement dans une requête SQL. Cela inclut notamment le doublement des guillemets simples ('), et la vérification des caractères binaires non sécuritaires, de la chaîne de requête.

Bien que ce codage sécurise l'insertion des données, il va rendre la recherche de texte par simple comparaison, ou en utilisant la clause LIKE, inutilisable dans vos requêtes pour les colonnes qui contiennent ces données binaires. En pratique, cela ne devrait pas être un problème, car votre utilisation de la base devrait faire que vous n'utiliserez pas ces colonnes (en fait, il est mieux de stocker des données binaires dans d'autres systèmes, comme des fichiers).

Liste de paramètres

item

La chaîne de caractères à échapper.

Si item contient le caractère NUL et qu'il commence avec un caractère dont la valeur ordinale est 0x01, PHP va appliquer un schéma de codage, pour que vous puissiez stocker puis relire correctement ces données.

Valeurs de retour

Retourne une chaîne de caractères échappée afin de l'utiliser dans des requêtes SQLite SQL.

Notes

Note: N'utilisez pas cette fonction pour coder les valeurs retournées par des fonctions utilisateurs, créées avec les fonctions sqlite_create_function() ou sqlite_create_aggregate() : utilisez plutôt sqlite_udf_encode_binary().

Avertissement

addslashes() NE doit PAS être utilisée pour protéger vos requêtes dans SQLite. Cela va conduire à d'étranges résultats lors de la lecture de vos données.

Voir aussi



sqlite_exec

SQLiteDatabase->exec

(PHP 5, PECL sqlite >= 1.0.3)

sqlite_exec -- SQLiteDatabase->exec Exécute une requête sans résultats sur une base de données

Description

bool sqlite_exec ( resource $dbhandle , string $query [, string &$error_msg ] )
bool sqlite_exec ( string $query , resource $dbhandle )

Style orienté objet

bool SQLiteDatabase::queryExec ( string $query [, string &$error_msg ] )

sqlite_exec() exécute une requête SQL query sur une base de données spécifiée par la ressource dbhandle.

Avertissement

SQLite doit exécuter de multiples requêtes séparées par des points-virgules ; vous pouvez donc l'utiliser pour exécuter un script SQL que vous avez chargé depuis un fichier ou que vous avez intégré dans un script.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsque utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

Les données contenues dans la requête doivent être échappées.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Cette fonction retourne un résultat booléen; TRUE en cas de succès, FALSE en cas d'erreur. Si vous avez besoin d'exécuter une requête qui doit retourner des lignes, reportez-vous à la fonction sqlite_query().

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Historique

Version Description
5.1.0 Ajout du paramètre error_msg

Exemples

Exemple #1 Style procédural

<?php
$dbhandle 
sqlite_open('mysqlitedb');
$query sqlite_exec($dbhandle"UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'"$error);
if (!
$query) {
    exit(
"Erreur dans la requête : '$error'");
} else {
    echo 
'Nombre de lignes modifiées : 'sqlite_changes($dbhandle);
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle 
= new SQLiteDatabase('mysqlitedb');
$query $dbhandle->exec("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'"$error);
if (!
$query) {
    exit(
"Erreur dans la requête : '$error'");
} else {
    echo 
'Nombre de lignes modifiées : '$dbhandle->changes();
}
?>

Voir aussi



sqlite_factory

(PHP 5)

sqlite_factory Ouvre une base SQLite et crée un objet pour elle

Description

SQLiteDatabase sqlite_factory ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

sqlite_factory() fonctionne de la même façon que sqlite_open() dans le fait qu'il ouvre une base de données SQLite ou tente de la créer si elle n'existe pas. Cependant, un objet SQLiteDatabase est retourné plutôt qu'une ressource. Lisez la page de référence sur sqlite_open() pour son utilisation.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal et cela est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne un objet SQLiteDatabase en cas de succès, NULL en cas d'erreur.

Exemples

Exemple #1 Exemple avec sqlite_factory()

<?php
$dbhandle 
sqlite_factory('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

/* équivalent dans les fonctionnalités à : */

$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas
  • sqlite_popen() - Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas



sqlite_fetch_all

SQLiteResult->fetchAll

SQLiteUnbuffered->fetchAll

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_fetch_all -- SQLiteResult->fetchAll -- SQLiteUnbuffered->fetchAll Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux

Description

array sqlite_fetch_all ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Style orienté objet

array SQLiteResult::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Retourne un tableau des lignes restantes dans le jeu de résultats. Si appelée juste après sqlite_query(), elle retourne toutes les lignes. Si appelée après sqlite_fetch_array(), elle retourne le reste. S'il n'y a plus de lignes disponibles dans le jeu de résultats, elle retourne un tableau vide.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne courante du jeu de résultats : FALSE si la position courante est au-delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle 
sqlite_open('sqlitedb');
$query sqlite_query($dbhandle'SELECT name, email FROM users LIMIT 25');
$result sqlite_fetch_all($querySQLITE_ASSOC);
foreach (
$result as $entry) {
    echo 
'Nom : ' $entry['name'] . '  E-mail : ' $entry['email'];
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle 
= new SQLiteDatabase('sqlitedb');

$query $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // jeu de résultats bufférisé
$query $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultats non bufférisé

$result $query->fetchAll(SQLITE_ASSOC);
foreach (
$result as $entry) {
    echo 
'Nom : ' $entry['name'] . '  E-mail : ' $entry['email'];
}
?>

Voir aussi



sqlite_fetch_array

SQLiteResult->fetch

SQLiteUnbuffered->fetch

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_fetch_array -- SQLiteResult->fetch -- SQLiteUnbuffered->fetchLit la prochaine ligne de résultat SQLite dans un tableau

Description

array sqlite_fetch_array ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Style orienté objet

array SQLiteResult::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_fetch_array() lit la prochaine ligne dans le résultat result. S'il n'y a pas d'autres lignes, sqlite_fetch_array() retourne FALSE et, sinon, elle retourne un tableau représentant les données lues.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne suivante du jeu de résultats: FALSE si la position suivante est au-delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle 
sqlite_open('sqlitedb');
$query sqlite_query($dbhandle'SELECT name, email FROM users LIMIT 25');
while (
$entry sqlite_fetch_array($querySQLITE_ASSOC)) {
    echo 
'Name: ' $entry['name'] . '  E-mail: ' $entry['email'];
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle 
= new SQLiteDatabase('sqlitedb');

$query $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // jeu de résultat bufférisé
$query $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultat non bufférisé

while ($entry $query->fetch(SQLITE_ASSOC)) {
    echo 
'Name: ' $entry['name'] . '  E-mail: ' $entry['email'];
}
?>

Voir aussi



sqlite_fetch_column_types

SQLiteDatabase->fetchColumnTypes

(PHP 5)

sqlite_fetch_column_types -- SQLiteDatabase->fetchColumnTypes Retourne un tableau des types de colonnes d'une certaine table

Description

array sqlite_fetch_column_types ( string $table_name , resource $dbhandle [, int $result_type ] )

Style orienté objet

array SQLiteDatabase::fetchColumnTypes ( string $table_name [, int $result_type ] )

sqlite_fetch_column_types() retourne un tableau de types de colonnes depuis la table table_name spécifiée.

Liste de paramètres

table_name

Le nom de la table à interroger.

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_ASSOC est la valeur par défaut pour cette fonction.

Valeurs de retour

Retourne un tableau des types de données des colonnes; FALSE en cas d'erreur.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Historique

Version Description
5.1.0 Ajout de result_type

Exemples

Exemple #1 Style procédural

<?php
$db 
sqlite_open('mysqlitedb');
sqlite_query($db'CREATE TABLE foo (bar varchar(10), arf text)');
$cols sqlite_fetch_column_types('foo'$dbSQLITE_ASSOC);

foreach (
$cols as $column => $type) {
    echo 
"Colonne : $column  Type : $type\n";
}
?>

Exemple #2 Style orienté objet

<?php
$db 
= new SQLiteDatabase('mysqlitedb');
$db->query('CREATE TABLE foo (bar varchar(10), arf text)');
$cols $db->fetchColumnTypes('foo'SQLITE_ASSOC);

foreach (
$cols as $column => $type) {
    echo 
"Colonne : $column  Type : $type\n";
}
?>

L'exemple ci-dessus va afficher :

Colonne : bar  Type : VARCHAR
Colonne : arf  Type : TEXT



sqlite_fetch_object

SQLiteResult->fetchObject

SQLiteUnbuffered->fetchObject

(PHP 5)

sqlite_fetch_object -- SQLiteResult->fetchObject -- SQLiteUnbuffered->fetchObject Retourne la ligne suivante du jeu de résultats en tant qu'objet

Description

object sqlite_fetch_object ( resource $result [, string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )

Style orienté objet

object SQLiteResult::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )
object SQLiteUnbuffered::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



sqlite_fetch_single

SQLiteResult->fetchSingle

SQLiteUnbuffered->fetchSingle

(PHP 5, PECL sqlite >= 1.0.1)

sqlite_fetch_single -- SQLiteResult->fetchSingle -- SQLiteUnbuffered->fetchSingleLit la première ligne d'un résultat SQLite sous forme de chaîne

Description

string sqlite_fetch_single ( resource $result [, bool $decode_binary = true ] )

Style orienté objet

string SQLiteResult::fetchSingle ([ bool $decode_binary = true ] )
string SQLiteUnbuffered::fetchSingle ([ bool $decode_binary = true ] )

sqlite_fetch_single() est identique à sqlite_fetch_array() hormis le fait qu'elle retourne uniquement la valeur de la première colonne du résultat.

C'est la méthode optimale pour lire des données, si vous n'êtes intéressé que par les valeurs de la première colonne.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne la valeur de la première colonne, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec sqlite_fetch_single()

<?php
if ($db sqlite_open('mysqlitedb'0666$sqliteerror)) {

    
$sql 'SELECT id FROM sometable WHERE id = 42';
    
$res sqlite_query($db$sql);

    if (
sqlite_num_rows($res) > 0) {
        echo 
sqlite_fetch_single($res); // 42
    
}

    
sqlite_close($db);
}
?>

Voir aussi



sqlite_fetch_string

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_fetch_stringAlias de sqlite_fetch_single()

Description

Cette fonction est un alias de : sqlite_fetch_single().



sqlite_field_name

SQLiteResult->fieldName

SQLiteUnbuffered->fieldName

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_field_name -- SQLiteResult->fieldName -- SQLiteUnbuffered->fieldNameRetourne le nom du champ SQLite

Description

string sqlite_field_name ( resource $result , int $field_index )

Style orienté objet

string SQLiteResult::fieldName ( int $field_index )
string SQLiteUnbuffered::fieldName ( int $field_index )

sqlite_field_name() retourne le nom du champ identifié par son index numérique field_index, dans le résultat result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

field_index

Nombre ordinal de la colonne dans le jeu de résultats.

Valeurs de retour

Retourne le nom du champ dans un jeu de résultats SQLite, donné par le nombre ordinal de la colonne; FALSE en cas d'erreur.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.



sqlite_has_more

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_has_moreIndique s'il reste des lignes SQLite à lire

Description

bool sqlite_has_more ( resource $result )

Recherche si d'autres lignes sont disponibles dans le jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite.

Valeurs de retour

Retourne TRUE s'il y a d'autres lignes de résultat à lire dans la ressource result ou FALSE sinon.

Voir aussi

  • sqlite_num_rows() - Retourne le nombre de lignes d'un résultat SQLite
  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite



sqlite_has_prev

SQLiteResult->hasPrev

(PHP 5)

sqlite_has_prev -- SQLiteResult->hasPrevRetourne si oui ou non une ligne précédente est disponible

Description

bool sqlite_has_prev ( resource $result )

Style orienté objet

bool SQLiteResult::hasPrev ( void )

Recherche si d'autres lignes précédentes sont disponibles dans le jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE s'il y a d'autres lignes précédentes de résultat à lire dans la ressource result ou FALSE sinon.

Voir aussi



sqlite_key

SQLiteResult->key

(PHP 5 >= 5.1.0)

sqlite_key -- SQLiteResult->keyRetourne l'index de la ligne courante

Description

int sqlite_key ( resource $result )

Style orienté objet

int SQLiteResult::key ( void )

sqlite_key() retourne l'index de la ligne courante d'un jeu de résultats bufferisé result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne l'index de la ligne courante du jeu de résultats bufferisé result.

Historique

Version Description
5.0.4 Dans les versions antérieures à PHP 5.0.4, sqlite_key() était uniquement capable d'être appelé en tant que méthode de l'objet SQLiteResult et non de façon procédurale.

Voir aussi



sqlite_last_error

SQLiteDatabase->lastError

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_last_error -- SQLiteDatabase->lastErrorRetourne le dernier code d'erreur SQLite

Description

int sqlite_last_error ( resource $dbhandle )

Style orienté objet

int SQLiteDatabase::lastError ( void )

Retourne le code d'erreur de la dernière opération SQL effectuée sur la base dbhandle (l'identifiant de base de données) ou 0 lorsque aucune erreur n'est survenue. Une description lisible de cette erreur peut être obtenue avec la fonction sqlite_error_string().

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne le code erreur, ou 0 si une erreur survient.

Voir aussi



sqlite_last_insert_rowid

SQLiteDatabase->lastInsertRowid

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_last_insert_rowid -- SQLiteDatabase->lastInsertRowidRetourne le numéro de ligne de la dernière ligne insérée

Description

int sqlite_last_insert_rowid ( resource $dbhandle )

Style orienté objet

int SQLiteDatabase::lastInsertRowid ( void )

sqlite_last_insert_rowid() retourne le numéro de ligne inséré dans la base dbhandle, si elle a été créée avec un champ auto-incrémenté.

Astuce

Vous pouvez créer des champs auto-incrémentés en SQLite, en utilisant l'attribut INTEGER PRIMARY KEY dans vos tables.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne l'identifiant de la ligne, sous la forme d'un entier.



sqlite_libencoding

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_libencodingRetourne l'encodage utilisé par la bibliothèque SQLite

Description

string sqlite_libencoding ( void )

La libraire SQLite peut être compilée avec le support de ISO-8859-1 ou UTF-8. sqlite_libencoding() vous permet de savoir quel encodage est utilisé.

Avertissement

La distribution par défaut de PHP compile libsqlite avec l'encodage ISO-8859-1. Cependant, c'est un leurre. Au lieu d'utiliser ISO-8859-1, elle va utiliser votre configuration locale pour les comparaisons et les tris. Il vaut donc mieux penser que ce n'est pas ISO-8859-1, mais plutôt '8-bit'.

Lorsqu'elle est compilée avec le support UTF-8, SQLite gère le codage et l'encodage des séquences multioctets UTF-8, mais ne fait pas totalement le travail lorsqu'elle opère avec les données (aucune normalisation n'est faite, par exemple), et certaines comparaisons peuvent être erronées.

Avertissement

Il n'est pas recommandé d'utiliser PHP en configuration de serveur web avec une version de SQLite qui utilise l'encodage UTF-8, car libsqlite va interrompre le processus si elle détecte un problème avec l'encodage UTF-8.

Valeurs de retour

Retourne l'encodage de la bibliothèque.

Voir aussi

  • sqlite_lib_version()



sqlite_libversion

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_libversionRetourne la version de la bibliothèque SQLite

Description

string sqlite_libversion ( void )

Retourne la version de la bibliothèque SQLite.

Valeurs de retour

Retourne la version de la bibliothèque, sous la forme d'une chaîne de caractères.

Voir aussi



sqlite_next

SQLiteResult->next

SQLiteUnbuffered->next

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_next -- SQLiteResult->next -- SQLiteUnbuffered->nextDéplace le pointeur SQLite vers la prochaine ligne

Description

bool sqlite_next ( resource $result )

Style orienté objet

bool SQLiteResult::next ( void )
bool SQLiteUnbuffered::next ( void )

sqlite_next() avance le pointeur de résultat à la prochaine ligne du résultat result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE s'il n'y a plus de lignes.

Voir aussi



sqlite_num_fields

SQLiteResult->numFields

SQLiteUnbuffered->numFields

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_num_fields -- SQLiteResult->numFields -- SQLiteUnbuffered->numFieldsRetourne le nombre de champs dans un résultat SQLite

Description

int sqlite_num_fields ( resource $result )

Style orienté objet

int SQLiteResult::numFields ( void )
int SQLiteUnbuffered::numFields ( void )

Retourne le nombre de champs dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi

  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
  • sqlite_num_rows() - Retourne le nombre de lignes d'un résultat SQLite



sqlite_num_rows

SQLiteResult->numRows

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_num_rows -- SQLiteResult->numRowsRetourne le nombre de lignes d'un résultat SQLite

Description

int sqlite_num_rows ( resource $result )

Style orienté objet

int SQLiteResult::numRows ( void )

sqlite_num_rows() retourne le nombre de lignes dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Exemples

Exemple #1 Style procédural

<?php
$db 
sqlite_open('mysqlitedb');
$result sqlite_query($db"SELECT * FROM mytable WHERE name='John Doe'");
$rows sqlite_num_rows($result);

echo 
"Nombre de lignes : $rows";
?>

Exemple #2 Style orienté objet

<?php
$db 
= new SQLiteDatabase('mysqlitedb');
$result $db->query("SELECT * FROM mytable WHERE name='John Doe'");
$rows $result->numRows();

echo 
"Nombre de lignes : $rows";
?>

Voir aussi

  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
  • sqlite_query() - Exécute une requête SQLite et lit le résultat
  • sqlite_num_fields() - Retourne le nombre de champs dans un résultat SQLite



sqlite_open

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_openOuvre une base SQLite et la crée si elle n'existe pas

Description

resource sqlite_open ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Style orienté objet (constructeur)

SQLiteDatabase::__construct ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Ouvre une base de données SQLite ou crée la base de données si elle n'existe pas.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite. Si le fichier n'existe pas, SQLite tentera de le créer. PHP doit avoir les permissions d'écriture du fichier si des données y sont insérées, le schéma de la base de données est modifié ou pour créer une base de données si elle n'existe pas.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal et cela est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne une ressource (de base de données) en cas de succès, FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec sqlite_open()

<?php
if ($db sqlite_open('mysqlitedb'0666$sqliteerror)) {
  
sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
  
sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
  
$result sqlite_query($db,'select bar from foo');
  
var_dump(sqlite_fetch_array($result));
} else {
  die (
$sqliteerror);
}
?>

Notes

Astuce

Sur les plates-formes Unix, SQLite est sensible aux scripts qui utilisent la fonction système fork(). Si vous avez un tel script, il est recommandé que vous refermiez la ressource avant de faire le fork, et de l'ouvrir à nouveau dans le processus fils. Pour plus d'informations sur ce problème, voyez » The C language interface to the SQLite library dans la section intitulée Multi-Threading And SQLite (en anglais).

Astuce

Il n'est pas recommandé d'utiliser des bases de données SQLite montées sur des partitions NFS. Comme NFS est très mauvais pour assurer le verrouillage des fichiers, vous pourriez ne pas ouvrir les bases, et, si vous réussissez, le verrouillage de la base sera indéfini.

Note: Depuis SQLite version 2.8.2, vous pouvez spécifier :memory: comme valeur de filename pour créer une base qui sera installée en mémoire vive, sur le serveur. C'est très pratique pour des traitements temporaires, car la base en mémoire sera détruire dès que le script sera terminé. Cela peut aussi être utile, lorsqu'utilisé conjointement avec la commande SQL ATTACH DATABASE, pour charger d'autres bases, et faire des requêtes liées.

Note: SQLite prend en compte le safe mode et l'option open_basedir.

Voir aussi



sqlite_popen

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_popen Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas

Description

resource sqlite_popen ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

sqlite_popen() fonctionne exactement comme sqlite_open(), hormis le fait qu'elle utilise le mécanisme de ressources persistantes de PHP. Pour des détails sur la signification des paramètres, voyez la fonction sqlite_open().

sqlite_popen() va d'abord vérifier qu'il reste une connexion persistante déjà ouverte pour le fichier filename. Si elle peut en trouver une, elle l'utilisera et, sinon, elle ouvrira une nouvelle connexion.

L'intérêt de cette méthode est que vous évitez de relire la base, les schémas de tables et d'index, pour chaque page exécutée par un serveur web SAPI persistant (tous les SAPI, sauf les CGI et CLI).

Note: Si vous utilisez une connexion persistante et que la base de données est modifiée par un autre processus (via une table de cron, par exemple), et que le processus recrée la base en l'écrasant, soit par effacement et reconstruction, ou par déplacement d'une nouvelle version à la place de l'ancienne, vous pourriez obtenir des comportements inattendus lorsque vous utiliserez une vielle connexion persistante sur une nouvelle base. Pour éviter cette situation, faites en sorte que vos processus parallèles ouvrent les bases et fassent leurs modifications dans une transaction.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite. Si le fichier n'existe pas, SQLite tentera de le créer. PHP doit avoir les permissions d'écriture du fichier si des données y sont insérées, le schéma de la base de données est modifié, ou pour créer une base de données si elle n'existe pas.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal : c'est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne une ressource (de base de données) en cas de succès, FALSE en cas d'erreur.

Voir aussi



sqlite_prev

SQLiteResult->prev

(PHP 5)

sqlite_prev -- SQLiteResult->prevSe positionne sur le numéro de ligne précédent du jeu de résultats

Description

bool sqlite_prev ( resource $result )

Style orienté objet

bool SQLiteResult::prev ( void )

sqlite_prev() se positionne sur la ligne précédente du jeu de résultats result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE s'il n'y a plus de ligne précédente.

Voir aussi



sqlite_query

SQLiteDatabase->query

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_query -- SQLiteDatabase->queryExécute une requête SQLite et lit le résultat

Description

resource sqlite_query ( resource $dbhandle , string $query [, int $result_type [, string &$error_msg ]] )
resource sqlite_query ( string $query , resource $dbhandle [, int $result_type [, string &$error_msg ]] )

Style orienté objet

SQLiteResult SQLiteDatabase::query ( string $query [, int $result_type [, string &$error_msg ]] )

Exécute la requête SQL query dans une base SQLite.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

Les données contenues dans la requête doivent être échappées.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne une ressource de résultat ou FALSE si une erreur survient. Pour les requêtes qui retournent des lignes, la ressource de résultat peut être utilisée avec les fonctions comme sqlite_fetch_array() et sqlite_seek().

Indépendamment du type, cette fonction retournera FALSE si la requête échoue.

sqlite_query() retourne un résultat bufferisé. C'est très pratique pour des résultats de petite taille, où vous aurez besoin d'accéder aléatoirement aux lignes. Les résultats bufferisés allouent la mémoire nécessaire pour stocker tout le résultat, et ne se termineront qu'une fois toutes ces données lues. Si vous n'avez besoin que d'un accès séquentiel aux données, il est recommandé d'utiliser sqlite_unbuffered_query().

Historique

Version Description
5.1.0 Ajout du paramètre error_msg

Notes

Avertissement

SQLite va exécute les requêtes multiples, séparées par des points-virgules, ce qui vous permet d'exécuter plusieurs requêtes SQL en une seule fois.

Lorsque vous exécutez des requêtes multiples, la valeur retournée par cette fonction sera FALSE si une erreur s'est produite, mais indéfini dans les autres cas (cela peut être TRUE en cas de succès, ou bien elle peut retourner un résultat).

Voir aussi



sqlite_rewind

SQLiteResult->rewind

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_rewind -- SQLiteResult->rewindPlace le pointeur de résultat SQLite au début

Description

bool sqlite_rewind ( resource $result )

Style orienté objet

bool SQLiteResult::rewind ( void )

sqlite_rewind() replace le pointeur à la première ligne du jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne FALSE s'il n'y a plus de ligne dans le jeu de résultats, TRUE sinon.

Voir aussi

  • sqlite_next() - Déplace le pointeur SQLite vers la prochaine ligne
  • sqlite_current() - Lit une ligne de résultat SQLite dans un tableau
  • sqlite_seek() - Déplace le pointeur de résultat SQLite vers une ligne



sqlite_seek

SQLiteResult->seek

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_seek -- SQLiteResult->seekDéplace le pointeur de résultat SQLite vers une ligne

Description

bool sqlite_seek ( resource $result , int $rownum )

Style orienté objet

bool SQLiteResult::seek ( int $rownum )

sqlite_seek() déplace le pointeur de résultat à la ligne rownum.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

rownum

Nombre ordinal de la ligne où se déplacer. Le numéro de la première ligne est 0

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne FALSE si la ligne n'existe pas, TRUE sinon.

Voir aussi



sqlite_single_query

SQLiteDatabase->singleQuery

(PHP 5, PECL sqlite >= 1.0.1)

sqlite_single_query -- SQLiteDatabase->singleQuery Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne

Description

array sqlite_single_query ( resource $db , string $query [, bool $first_row_only [, bool $decode_binary ]] )

Style orienté objet

array SQLiteDatabase::singleQuery ( string $query [, bool $first_row_only [, bool $decode_binary ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



sqlite_udf_decode_binary

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_udf_decode_binaryDécode des données binaires, passées à une UDF SQLite

Description

string sqlite_udf_decode_binary ( string $data )

Décode des données binaires.

Vous devez appeler cette fonction sur les paramètres passés à votre UDF, si vous devez manipuler des données binaires, car le codage binaire de PHP va masquer le contenu original de la donnée.

PHP ne fait pas cette opération de codage/décodage automatiquement, car cela réduirait considérablement les performances.

Liste de paramètres

data

Les données encodées avec les fonctions sqlite_udf_encode_binary() ou sqlite_escape_string() et qui doivent être décodées

Valeurs de retour

La chaîne de caractères décodée.

Exemples

Exemple #1 Exemple de fonction d'agrégation SQLite, compatible avec les données binaires

<?php
$data 
= array(
   
'one',
   
'two',
   
'three',
   
'four',
   
'five',
   
'six',
   
'seven',
   
'eight',
   
'nine',
   
'ten'
   
);
$db sqlite_open(':memory:');
sqlite_query($db"CREATE TABLE strings(a)");
foreach (
$data as $str) {
    
$str sqlite_escape_string($str);
    
sqlite_query($db"INSERT INTO strings VALUES ('$str')");
}

function 
max_len_step(&$context$string)
{
  
$string sqlite_udf_decode_binary($string);
  if (
strlen($string) > $context) {
    
$context strlen($string);
  }
}

function 
max_len_finalize(&$context)
{
  return 
$context;
}

sqlite_create_aggregate($db'max_len''max_len_step''max_len_finalize');

var_dump(sqlite_array_query($db'SELECT max_len(a) from strings'));

?>

Voir aussi



sqlite_udf_encode_binary

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_udf_encode_binaryEncode les données binaires d'une UDF SQLite avant de les retourner

Description

string sqlite_udf_encode_binary ( string $data )

sqlite_udf_encode_binary() applique le codage aux données binaires data pour qu'elles puissent être correctement retournées depuis la requête (car la bibliothèque libsqlite n'est pas compatible avec les données binaires).

S'il y a des chances que vos données ne soient pas compatibles, (par exemple, si elles contiennent le caractère NUL au milieu de la chaîne, et non pas seulement à la fin, ou si le premier caractère est un caractère 0x01) alors vous devrez appeler cette fonction pour protéger vos données.

PHP ne fait pas cette opération de codage/décodage automatiquement, pour des raisons de performances.

Note:

N'utilisez pas la fonction sqlite_escape_string() pour protéger les données dans vos UDF, car cela conduira à doubler la protection. Utilisez plutôt cette fonction à la place.

Liste de paramètres

data

La chaîne de caractères à encoder.

Valeurs de retour

La chaîne de caractères encodée.

Voir aussi



sqlite_unbuffered_query

SQLiteDatabase->unbufferedQuery

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_unbuffered_query -- SQLiteDatabase->unbufferedQueryExécute une requête SQLite non bufferisée

Description

resource sqlite_unbuffered_query ( resource $dbhandle , string $query [, int $result_type [, string &$error_msg ]] )
resource sqlite_unbuffered_query ( string $query , resource $dbhandle [, int $result_type [, string &$error_msg ]] )

Style orienté objet

SQLiteUnbuffered SQLiteDatabase::unbufferedQuery ( string $query [, int $result_type [, string &$error_msg ]] )

sqlite_unbuffered_query() est identique à sqlite_query() hormis le fait que le résultat retourné est une séquence croissante, qui ne peut être lue que dans un seul sens.

Cette fonction est idéale pour générer des tables HTML, où vous n'avez besoin que d'une ligne en même temps, et que vous n'avez pas à faire d'accès aléatoire aux lignes.

Note:

Les fonctions telles que sqlite_seek() et sqlite_rewind() ne fonctionnent pas avec les résultats non bufferisés de cette fonction.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

Les données contenues dans la requête doivent être échappées.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne une ressource de résultat ou FALSE si une erreur survient.

sqlite_unbuffered_query() retourne un jeu de résultats séquentiel d'avancement seul qui ne peut être utilisé que pour lire chaque ligne, l'une après l'autre.

Historique

Version Description
5.1.0 Ajout du paramètre error_msg

Voir aussi



sqlite_valid

SQLiteResult->valid

SQLiteUnbuffered->valid

(PHP 5)

sqlite_valid -- SQLiteResult->valid -- SQLiteUnbuffered->validRetourne si oui ou non il reste des lignes disponibles

Description

bool sqlite_valid ( resource $result )

Style orienté objet

bool SQLiteResult::valid ( void )
bool SQLiteUnbuffered::valid ( void )

Recherche si d'autres lignes sont disponibles à partir de la ressource de résultat donnée.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE s'il y a encore des lignes disponibles de la ressource result ou FALSE autrement.

Voir aussi

  • sqlite_num_rows() - Retourne le nombre de lignes d'un résultat SQLite
  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite


Sommaire




SQLite3


Introduction

Support des bases de données SQLite version 3.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Le support de SQLite3 est activé par défaut depuisPHP 5.3.0. Il est possible de la désactiver en utilisant l'option --without-sqlite3 au moment de la compilation.

Les utilisateurs Windows doivent activer la bibliothèque php_sqlite3.dll pour utiliser cette extension. Cette DLL est inclue avec les distributions de PHP pour Windows à partir de la version 5.3.0.

Note:

Cette extension a été brièvement une extension PECL, mais cette version n'est recommandée que pour des expérimentations.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Sqlite3
Nom Défaut Modifiable Changelog
sqlite3.extension_dir NULL PHP_INI_SYSTEM  

Voici un éclaircissement sur l'utilisation des directives de configuration.

sqlite3.extension_dir string

Chemin vers le dossier où se trouve les extensions chargeables pour SQLite.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SQLITE3_ASSOC (integer)
Spécifie que la méthode Sqlite3Result::fetchArray() doit retourner un tableau indexé par le nom de la colonne dans le jeu de résultats correspondant.
SQLITE3_NUM (integer)
Spécifie que la méthode Sqlite3Result::fetchArray() doit retourner un tableau indexé par le numéro de la colonne dans le jeu de résultats correspondant, en commençant à la colonne 0.
SQLITE3_BOTH (integer)
Spécifie que la méthode Sqlite3Result::fetchArray() doit retourner un tableau indexé par le nom et le numéro de la colonne dans le jeu de résultats correspondant, en commençant à la colonne 0.
SQLITE3_INTEGER (integer)
Représente la classe de stockage INTEGER de SQLite3.
SQLITE3_FLOAT (integer)
Représente la classe de stockage REAL (FLOAT) de SQLite3.
SQLITE3_TEXT (integer)
Représente la classe de stockage TEXT de SQLite3.
SQLITE3_BLOB (integer)
Représente la classe de stockage BLOB de SQLite3.
SQLITE3_NULL (integer)
Représente la classe de stockage NULL de SQLite3.
SQLITE3_OPEN_READONLY (integer)
Spécifie que la base de données SQLite3 doit être ouverte en lecture seule.
SQLITE3_OPEN_READWRITE (integer)
Spécifie que la base de données SQLite3 doit être ouverte en lecture et en écriture.
SQLITE3_OPEN_CREATE (integer)
Spécifie que la base de données SQLite3 doit être créée si elle n'existe pas déjà.



La classe SQLite3

Introduction

Une classe d'interface avec les bases de données SQLite3.

Synopsis de la classe

SQLite3 {
/* Méthodes */
public bool busyTimeout ( int $msecs )
public int changes ( void )
public bool close ( void )
__construct ( string $filename [, int $flags [, string $encryption_key ]] )
public bool createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] )
public bool createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )
public string escapeString ( string $value )
public bool exec ( string $query )
public int lastErrorCode ( void )
public string lastErrorMsg ( void )
public int lastInsertRowID ( void )
public bool loadExtension ( string $shared_library )
public bool open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key ]] )
public SQLite3Stmt prepare ( string $query )
public SQLite3Result query ( string $query )
public mixed querySingle ( string $query [, bool $entire_row = false ] )
public array version ( void )
}

SQLite3::busyTimeout

(PHP 5 >= 5.3.3)

SQLite3::busyTimeoutDéfinit le gestionnaire d'attente de la connexion

Description

public bool SQLite3::busyTimeout ( int $msecs )

Définit le gestionnaire d'attente qui patientera tant que la base de données n'est pas verrouillée ou que le délai d'attente ne soit atteint.

Liste de paramètres

msecs

Les millisecondes à attendre. Le fait de définir cette valeur à une valeur inférieure ou égale à zéro désactivera un gestionnaire d'attente précédemment défini.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.



SQLite3::changes

(PHP 5 >= 5.3.0)

SQLite3::changes Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL

Description

public int SQLite3::changes ( void )

Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier correspondant au nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL.

Exemples

Exemple #1 Exemple avec SQLite3::changes()

<?php
$db 
= new SQLite3('mysqlitedb.db');

$query $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if (
$query) {
    echo 
'Nombre de lignes modifiées : '$db->changes();
}
?>



SQLite3::close

(PHP 5 >= 5.3.0)

SQLite3::closeFerme la connexion avec la base de données

Description

public bool SQLite3::close ( void )

Ferme la connexion avec la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::close()

<?php
$db 
= new SQLite3('mysqlitedb.db');
$db->close();
?>



SQLite3::__construct

(PHP 5 >= 5.3.0)

SQLite3::__construct Instantie un objet SQLite3 et ouvre la base de données SQLite 3

Description

SQLite3::__construct ( string $filename [, int $flags [, string $encryption_key ]] )

Instantie un objet SQLite3 et ouvre une connexion à la base de données SQLite 3. Si le crytage a été inclu durant la compilation, alors cette fonction tentera d'utiliser la clé correspondante.

Liste de paramètres

filename

Chemin vers la base de données SQLite.

flags

Drapeaux optionnels utilisés pour déterminir la manière d'ouverture de la base de données SQLite. Par défaut, l'ouverture s'effectue en utilisant SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY : Ouvre la base de données en lecture seule.

  • SQLITE3_OPEN_READWRITE : Ouvre la base de données en lecture et en écriture.

  • SQLITE3_OPEN_CREATE : Crée la base de données si elle n'existe pas.

encryption_key

Un clé de cryptage optionnel, à utiliser lors du cryptage/décryptage de la base de données SQLite.

Valeurs de retour

Retourne un objet SQLite3 en cas de succès.

Exemples

Exemple #1 Exemple avec SQLite3::__construct()

<?php
$db 
= new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>



SQLite3::createAggregate

(PHP 5 >= 5.3.0)

SQLite3::createAggregateEnregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite

Description

public bool SQLite3::createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] )

Enregistre une fonction PHP ou une fonction définie par l'utilisateur à utiliser comme fonction d'aggrégation SQL, qui sera utilisée dans les requêtes SQL.

Liste de paramètres

name

Nom de la fonction d'aggrégation SQL à créer ou à redéfinir.

step_callback

Le nom de la fonction PHP ou de la fonction utilisateur à appliquer comme callback sur tous les éléments de l'aggrégation.

final_callback

Le nom de la fonction PHP ou de la fonction utilisateur à appliquer comme callback à la fin des données de l'aggrégation.

argument_count

Le nombre d'arguments pris par la fonction d'aggrégation SQL. Si ce nombre est négatif, alors la fonction d'aggrégation SQL pourra prendre un nombre non défini d'arguments.

Valeurs de retour

Retourne TRUE si la création réussie, FALSE si une erreur survient.



SQLite3::createFunction

(PHP 5 >= 5.3.0)

SQLite3::createFunctionEnregistre une fonction PHP à utiliser comme function scalaire SQL

Description

public bool SQLite3::createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )

Enregistre une fonction PHP ou une fonction utilisateur à utiliser comme fonction scalaire SQL, pour utilisation dans les requête SQL.

Liste de paramètres

name

Nom de la fonction SQL à créer ou à redéfinir.

callback

Le nom de la fonction PHP ou la fonction utilisateur à appliquer comme callback, définissant le comportement de la fonction SQL.

argument_count

Le nombre d'arguments que la fonction SQL prend. Si ce paramètre est négatif, la fonction SQL pourra prendre un nombre non défini d'arguments.

Valeurs de retour

Retourne TRUE si la fonction a été créée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::createFunction()

<?php
function my_udf_md5($string) {
    return 
md5($string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5''my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(32) "098f6bcd4621d373cade4e832627b4f6"



SQLite3::escapeString

(PHP 5 >= 5.3.0)

SQLite3::escapeStringRetourne une chaîne nettoyée

Description

public string SQLite3::escapeString ( string $value )

Retourne une chaîne qui a été nettoyée afin de l'inclure sans risque dans les requêtes SQL.

Liste de paramètres

value

La chaîne à nettoyer.

Valeurs de retour

Retourne une chaîne nettoyée, qui pourra être utilisée sans risque dans une requête SQL.

Notes

Avertissement

La fonction addslashes() ne doit PAS être utilisée pour protéger votre chaîne dans vos requêtes SQL ; vous pourriez observer d'étranges résultats lorsque vous récupérerez vos données.



SQLite3::exec

(PHP 5 >= 5.3.0)

SQLite3::execExécute une requête sur une base de données

Description

public bool SQLite3::exec ( string $query )

Exécute une requête sur une base de données.

Liste de paramètres

query

La requête SQL à exécuter (typiquement, une requête de type INSERT, UPDATE ou DELETE).

Valeurs de retour

Retourne TRUE si la requête a été exécutée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::exec()

<?php
$db 
= new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar STRING)');
?>



SQLite3::lastErrorCode

(PHP 5 >= 5.3.0)

SQLite3::lastErrorCode Retourne le code erreur de la dernière requête SQL ayant échouée

Description

public int SQLite3::lastErrorCode ( void )

Retourne le code erreur de la dernière requête SQL ayant échouée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant le code erreur de la dernière requête ayant échouée.



SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0)

SQLite3::lastErrorMsg Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée

Description

public string SQLite3::lastErrorMsg ( void )

Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée.



SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0)

SQLite3::lastInsertRowIDRetourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT

Description

public int SQLite3::lastInsertRowID ( void )

Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT effectuée sur la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT effectuée sur la base de données.



SQLite3::loadExtension

(PHP 5 >= 5.3.0)

SQLite3::loadExtensionTente de charger une extension de la bibliothèque SQLite

Description

public bool SQLite3::loadExtension ( string $shared_library )

Tente de charger une extension de la bibliothèque SQLite.

Liste de paramètres

shared_library

Le nom de l'extension à charger. L'extension doit se trouver dans le dossier spécifié par l'option de configuration sqlite3.extension_dir.

Valeurs de retour

Retourne TRUE si l'extension a été chargée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::loadExtension()

<?php
$db 
= new SQLite3('mysqlitedb.db');
$db->loadExtension('libagg.so');
?>



SQLite3::open

(PHP 5 >= 5.3.0)

SQLite3::openOuvre une base de données SQLite

Description

public bool SQLite3::open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key ]] )

Ouvre une base de données SQLite 3. Si le cryptage a été inclu lors de la construction de la base de données, la clé correspondante sera utilisée.

Liste de paramètres

filename

Chemin vers la base de données SQLite.

flags

Drapeaux optionnels à utiliser pour déterminer la manière d'ouverture de la base de données SQLite. Par défaut, ce sera SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY : Ouvre la base de données en lecture seule.

  • SQLITE3_OPEN_READWRITE : Ouvre la base de données en lecture et écriture.

  • SQLITE3_OPEN_CREATE : Crée la base de données si elle n'existe pas.

encryption_key

La clé optionnelle de cryptage utilisée lors du cryptage/décryptage de la base de données SQLite.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::open()

<?php
/**
 * Exemple simple qui étend la classe SQLite3 et change les paramètres
 * __construct, puis, utilise la méthode de connexion pour initialiser la
 * base de données.
 */
class MyDB extends SQLite3
{
    function 
__construct()
    {
        
$this->open('mysqlitedb.db');
    }
}

$db = new MyDB();

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('Ceci est un test')");

$result $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>



SQLite3::prepare

(PHP 5 >= 5.3.0)

SQLite3::preparePrépare une requête SQL pour exécution

Description

public SQLite3Stmt SQLite3::prepare ( string $query )

Prépare une requête SQL pour exécution et retourne un objet SQLite3Stmt.

Liste de paramètres

query

La requête SQL à préparer.

Valeurs de retour

Retourne un objet SQLite3Stmt en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::prepare()

<?php
unlink
('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'Ceci est un test')");

$stmt $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id'1SQLITE3_INTEGER);

$result $stmt->execute();
var_dump($result->fetchArray());
?>



SQLite3::query

(PHP 5 >= 5.3.0)

SQLite3::queryExécute une requête SQL

Description

public SQLite3Result SQLite3::query ( string $query )

Exécute une requête SQL, et retourne un objet SQLite3Result si la requête retourne des résultats.

Liste de paramètres

query

La requête SQL à exécuter.

Valeurs de retour

Retourne un objet SQLite3Result si la requête retourne des résultats. Sinon, la fonction retourne TRUE si la requête est exécutée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::query()

<?php
$db 
= new SQLite3('mysqlitedb.db');

$results $db->query('SELECT bar FROM foo');
while (
$row $results->fetchArray()) {
    
var_dump($row);
}
?>



SQLite3::querySingle

(PHP 5 >= 5.3.0)

SQLite3::querySingleExécute une requête et retourne un seul résultat

Description

public mixed SQLite3::querySingle ( string $query [, bool $entire_row = false ] )

Exécute une requête et retourne un seul résultat.

Liste de paramètres

query

La requête SQL à exécuter.

entire_row

Par défaut, cette fonction retourne la valeur de la première colonne retournée par la requête. Si ce paramètre vaut TRUE, alors la fonction retournera un tableau contenant toute la première ligne.

Valeurs de retour

Retourne la valeur de la première colonne du résultats, ou une tableau contenant toute la première ligne (si le paramètre entire_row vaut TRUE).

Si la requête est valide mais ne retourne aucun résultat, NULL sera retourné si entire_row est FALSE, sinon un tableau vide est retourné.

Les requêtes invalides retourneront FALSE.

Exemples

Exemple #1 Exemple avec SQLite3::querySingle()

<?php
$db 
= new SQLite3('mysqlitedb.db');

var_dump($db->querySingle('SELECT username FROM user WHERE userid=1'));
print_r($db->querySingle('SELECT username, email FROM user WHERE userid=1'true));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)



SQLite3::version

(PHP 5 >= 5.3.0)

SQLite3::version Retourne la version de la bibliothèque SQLite3

Description

public array SQLite3::version ( void )

Retourne la version de la bibliothèque SQLite3.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant les clés "versionString" et "versionNumber".

Exemples

Exemple #1 Exemple avec SQLite3::version()

<?php
print_r
(SQLite3::version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)


Sommaire



La classe SQLite3Stmt

Introduction

La classe qui représnte les commandes préparées pour une base de données SQLite3.

Synopsis de la classe

SQLite3Stmt {
/* Méthodes */
public bool bindParam ( string $sql_param , mixed &$param [, int $type ] )
public bool bindValue ( string $sql_param , mixed $value [, int $type ] )
public bool clear ( void )
public bool close ( void )
public SQLite3Result execute ( void )
public int paramCount ( void )
public bool reset ( void )
}

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0)

SQLite3Stmt::bindParamLie un paramètre à une variable de requête

Description

public bool SQLite3Stmt::bindParam ( string $sql_param , mixed &$param [, int $type ] )

Lie un paramètre à une variable de requête.

Liste de paramètres

sql_param

Une chaîne de caractères identifiant la variable de requête sur laquelle le paramètre doit être lié.

param

Le paramètre à lier à la variable de requête.

type

Le type de données du paramètre à lier.

  • SQLITE3_INTEGER : La valeur est un entier signé, stocké sur 1, 2, 3, 4, 6, ou 8 octets, suivant la grandeur de la valeur.

  • SQLITE3_FLOAT : La valeur est un nombre à virgule flottante, stocké sur 8 octets.

  • SQLITE3_TEXT : La valeur est un texte, stocké en utilisant l'encodage de la base de données (UTF-8, UTF-16BE ou UTF-16-LE).

  • SQLITE3_BLOB : La valeur est un BLOB, stocké exactement de la façon dont il a été fourni.

  • SQLITE3_NULL : La valeur est la valeur NULL.

Valeurs de retour

Retourne TRUE si le paramètre est lié à la variable de requête, FALSE si une erreur survient.



SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0)

SQLite3Stmt::bindValueLie la valeur d'un paramètre à une variable de requête

Description

public bool SQLite3Stmt::bindValue ( string $sql_param , mixed $value [, int $type ] )

Lie la valeur d'un paramètre à une variable de requête.

Liste de paramètres

sql_param

Un chaîne de caractères identifiant la variable de requête sur laquelle la valeur doit être liée.

value

La valeur à lier à la variable de requête.

type

Le type de données de la valeur à lier.

  • SQLITE3_INTEGER : La valeur est un entier signé, stocké sur 1, 2, 3, 4, 6, ou 8 octets, suivant la grandeur de la valeur.

  • SQLITE3_FLOAT : La valeur est un nombre à virgule flottante, stocké sur 8 octets.

  • SQLITE3_TEXT : La valeur est un texte, stocké en utilisant l'encodage de la base de données (UTF-8, UTF-16BE ou UTF-16-LE).

  • SQLITE3_BLOB : La valeur est un BLOB, stocké exactement de la façon dont il a été fourni.

  • SQLITE3_NULL : La valeur est la valeur NULL.

Valeurs de retour

Retourne TRUE si la valeur a été liée à la variable de requête, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3Stmt::bindValue()

<?php
unlink
('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id'1SQLITE3_INTEGER);

$result $stmt->execute();
var_dump($result->fetchArray());
?>



SQLite3Stmt::clear

(PHP 5 >= 5.3.0)

SQLite3Stmt::clearSupprime tous les paramètres actuellement liés

Description

public bool SQLite3Stmt::clear ( void )

Supprime tous les paramètres actuellement liés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si tous les paramètres actuellement liés ont été supprimés, FALSE si une erreur survient.



SQLite3Stmt::close

(PHP 5 >= 5.3.0)

SQLite3Stmt::closeFerme une requête préparée

Description

public bool SQLite3Stmt::close ( void )

Ferme une requête préparée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE



SQLite3Stmt::execute

(PHP 5 >= 5.3.0)

SQLite3Stmt::executeExécute une requête préparée

Description

public SQLite3Result SQLite3Stmt::execute ( void )

Exécute une requête préparée et retourne un objet représentant le jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SQLite3Result si la requête préparée a été exécutée avec succès, ou FALSE si une erreur survient.



SQLite3Stmt::paramCount

(PHP 5 >= 5.3.0)

SQLite3Stmt::paramCountRetourne le nombre de paramètres d'une requête préparée

Description

public int SQLite3Stmt::paramCount ( void )

Retourne le nombre de paramètres d'une requête préparée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de paramètres d'une requête préparée.



SQLite3Stmt::reset

(PHP 5 >= 5.3.0)

SQLite3Stmt::resetRéinitialise une requête préparée

Description

public bool SQLite3Stmt::reset ( void )

Réinitialise une requête préparée, de tel sorte à retrouver son état initial, avant exécution. Tous les marqueurs resteront intacts après cette opération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la requête préaprée a été correctement réinitialisée, ou FALSE on si une erreur survient.


Sommaire



La classe SQLite3Result

Introduction

Une classe qui représente les résultats d'une base de données SQLite 3.

Synopsis de la classe

SQLite3Result {
/* Méthodes */
public string columnName ( int $column_number )
public int columnType ( int $column_number )
public array fetchArray ([ int $mode = SQLITE3_BOTH ] )
public bool finalize ( void )
public int numColumns ( void )
public bool reset ( void )
}

SQLite3Result::columnName

(PHP 5 >= 5.3.0)

SQLite3Result::columnNameRetourne le nom d'une colonne

Description

public string SQLite3Result::columnName ( int $column_number )

Retourne le nom de la colonne identifiée par le paramètre column_number.

Liste de paramètres

column_number

Le numéro de la colonne, en commençant par 0.

Valeurs de retour

Retourne le nom de la colonne identifiée par le paramètre column_number.



SQLite3Result::columnType

(PHP 5 >= 5.3.0)

SQLite3Result::columnTypeRetourne le type d'une colonne

Description

public int SQLite3Result::columnType ( int $column_number )

Retourne le type de la colonne identifiée par le paramètre column_number.

Liste de paramètres

column_number

Le numéro de la colonne, en commançant par 0.

Valeurs de retour

Retourne le type de données de la colonne identifiée par column_number (cela peut être une des constantes suivantes : SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB, ou SQLITE3_NULL).



SQLite3Result::fetchArray

(PHP 5 >= 5.3.0)

SQLite3Result::fetchArray Récupère un jeu de résultats sous la forme d'un tableau associatif

Description

public array SQLite3Result::fetchArray ([ int $mode = SQLITE3_BOTH ] )

Récupère un jeu de résultats sous la forme d'un tableau associatif ou indexé numériquement, ou les deux. Par défaut, ce sera les deux.

Liste de paramètres

mode

Contrôle la façon dont la prochaine ligne doit être retournée à la fonction appelante. Cette valeur peut être SQLITE3_ASSOC, SQLITE3_NUM, ou SQLITE3_BOTH.

  • SQLITE3_ASSOC : Retourne un tableau indexé par le nom de la colonne, tel que retourné dans le jeu de résultats correspondant.

  • SQLITE3_NUM : Retourne un tableau indexé par le numéro de la colonne, tel que retourné dans le jeu de résultats, en commençant par la colonne 0.

  • SQLITE3_BOTH : Retourne un tableau indexé par le nom et le numéro de la colonne, tel que retourné par le jeu de résultats, en commençant par la colonne 0.

Valeurs de retour

Retourne une ligne du jeu de résultats, sous la forme d'un tableau associatif, ou sous la forme d'un tableau indexé, ou les deux.



SQLite3Result::finalize

(PHP 5 >= 5.3.0)

SQLite3Result::finalizeFerme un jeu de résultats

Description

public bool SQLite3Result::finalize ( void )

Ferme un jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE.



SQLite3Result::numColumns

(PHP 5 >= 5.3.0)

SQLite3Result::numColumnsRetourne le nombre de colonnes du jeu de résultats

Description

public int SQLite3Result::numColumns ( void )

Retourne le nombre de colonnes du jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de colonnes du jeu de résultats.



SQLite3Result::reset

(PHP 5 >= 5.3.0)

SQLite3Result::resetRepositionne le pointeur sur la première ligne du jeu de résultats

Description

public bool SQLite3Result::reset ( void )

Repositionne le pointeur sur la première ligne du jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le jeu de résultats a été réinitialisé avec succès, FALSE si une erreur survient.


Sommaire




Sybase


Introduction



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour activer le support des bases de données Sybase-DB, vous devez compiler PHP avec l'option --with-sybase[=DIR] . DIR est le dossier d'installation de Sybase et, par défaut, il vaut /home/sybase. Pour activer le support de Sybase-CT, vous devez compiler PHP avec l'option --with-sybase-ct[=DIR] . DIR est le dossier d'installation de Sybase et, par défaut, il vaut /home/sybase.

Note:

Depuis PHP 5.3.0, l'extension Sybase a été remplacé par l'extension sybase_ct et n'est plus maintenue. Pour continuer à utiliser sybase vous devez utiliser l'extension sybase_ct.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Sybase

Options de configuration Sybase
Nom Défaut Modifiable Historique
sybase.allow_persistent "1" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.max_persistent "-1" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.max_links "-1" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.interface_file "/usr/sybase/interfaces" PHP_INI_SYSTEM  
sybase.min_error_severity "10" PHP_INI_ALL  
sybase.min_message_severity "10" PHP_INI_ALL  
sybase.compatability_mode "0" PHP_INI_ALL  
magic_quotes_sybase "0" PHP_INI_ALL Obsolète en PHP 5.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sybase.allow_persistent booléen

Activation ou non des connexions persistantes.

sybase.max_persistent entier

Le nombre maximum de connexions Sybase persistantes par processus. -1 signifie illimité.

Le nombre maximum de connexions Sybase par processus. -1 signifie illimité.

sybase.min_error_severity entier

Le niveau minimal d'erreur à afficher.

sybase.min_message_severity entier

Le niveau minimal de message d'erreur à afficher.

magic_quotes_sybase booléen

Si magic_quotes_sybase est aussi activé, un guillemets simple est échappé avec un guillemet simple au lieu d'un antislash, si magic_quotes_gpc ou magic_quotes_runtime est activé. Cette directive est aussi respectée par les fonctions addslashes() et stripslashes().

Note:

Si la directive magic_quotes_sybase est activée, elle remplacera complètement magic_quotes_gpc. Ce qui fait que même si magic_quotes_gpc retourne TRUE, les guillemets doubles, les antislashs ou les caractères NULL ne seront pas protégés.

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Sybase-CT

Options de configuration
Nom Par défaut Modifiable Historique
sybct.allow_persistent "1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.0.2. Disponible depuis PHP 4.0.2. Supprimé depuis PHP 4.0.3.
sybct.max_persistent "-1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.0.2. Disponible depuis PHP 4.0.2. Supprimé depuis PHP 4.0.3.
sybct.max_links "-1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.0.2. Disponible depuis PHP 4.0.2. Supprimé depuis PHP 4.0.3.
sybct.min_server_severity "10" PHP_INI_ALL Disponible depuis PHP 4.0.2. Supprimé depuis PHP 4.0.3.
sybct.min_client_severity "10" PHP_INI_ALL Disponible depuis PHP 4.0.2. Supprimé depuis PHP 4.0.3.
sybct.hostname NULL PHP_INI_ALL Disponible depuis PHP 4.0.2. Supprimé depuis PHP 4.0.3.
sybct.deadlock_retry_count "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sybct.allow_persistent booléen

Autorise ou pas les connexions persistantes Sybase-CT. Par défaut vaut On.

sybct.max_persistent entier

Le nombre maximum de connexions Sybase-CT persistantes par processus. -1 signifie illimité. C'est aussi la valeur par défaut.

Le nombre maximum de connexions Sybase-CT par processus, y compris les connexions persistantes. -1 signifie illimité.

sybct.min_server_severity entier

Les messages du serveur ayant une criticité supérieure ou égale à la valeur de cette option seront rapportés comme alertes. Cette valeur peut aussi être modifiée depuis les scripts en appelant la fonction sybase_min_server_severity(). Par défaut, cette option vaut 10.

sybct.min_client_severity entier

Les messages de la bibliothèque cliente ayant une criticité supérieure ou égale à la valeur de cette option seront rapportés comme alertes. Cette valeur peut aussi être modifiée depuis les scripts en appelant la fonction sybase_min_client_severity(). Par défaut, cette option vaut 10.

sybct.login_timeout entier

Le nombre maximal de secondes à attendre pour effectuer avec succès une connexion avant d'échouer. Notez que si max_execution_time est dépassé avant que ce nombre de secondes, votre script se terminera avant de pouvoir exécuter une action sur l'échec de connexion. Par défaut, ce nombre vaut une minute.

sybct.timeout entier

Le nombre maximal de secondes à attendre pour effectuer avec succès une requête avant d'échouer. Notez que si max_execution_time est dépassé avant que ce nombre de secondes, votre script se terminera avant de pouvoir exécuter une action sur l'échec de connexion. Par défaut, aucune limite n'est fixé.

sybct.hostname chaîne de caractères

Le nom de l'hôte à partir duquel vous prétendez être connecté, afin qu'il soit affiché par sp_who. Par défaut, il n'y a pas de valeur.

sybct.deadlock_retry_count int

Permet de définir le nombre de tentatives de résolution des blocages. La valeur par défaut est 0, et la valeur -1 signifie forever, c'est à dire indéfiniment.

Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Sybase


sybase_affected_rows

(PHP 4, PHP 5)

sybase_affected_rowsRetourne le nombre de lignes affectées par la dernière requête Sybase

Description

int sybase_affected_rows ([ resource $link_identifier ] )

sybase_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE sur le serveur associé à l'identifiant de connexion link_identifier.

Cette commande ne sert à rien sur les requêtes SELECT : uniquement sur des requêtes qui modifient les lignes. Pour connaître le nombre de lignes retournées par un SELECT, utilisez sybase_num_rows().

Liste de paramètres

link_identifier

Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Retourne le nombre de lignes affectées, sous la forme d'un entier.

Exemples

Exemple #1 Requête d'effacement

<?php
/* connexion à la base */
sybase_connect('SYBASE''''') or
die(
"Impossible de se connecter");
sybase_select_db("db");

sybase_query("DELETE FROM sometable WHERE id < 10");
printf("Nombre de lignes effacées : %d\n"sybase_affected_rows());
?>

L'exemple ci-dessus va afficher :

Nombre de lignes effacées : 10

Voir aussi



sybase_close

(PHP 4, PHP 5)

sybase_closeFerme une connexion Sybase

Description

bool sybase_close ([ resource $link_identifier ] )

sybase_close() termine la connexion avec le serveur Sybase associé à l'identifiant de connexion link_identifier.

Notez qu'il n'est pas utile de fermer les connexions non persistantes, car elles seront terminées à la fin du script.

sybase_close() ne ferme pas les connexions persistantes générées par sybase_pconnect().

Liste de paramètres

link_identifier

Si l'identifiant de connexion n'est pas spécifié, la dernière connexion sera utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



sybase_connect

(PHP 4, PHP 5)

sybase_connectOuvre une connexion à un serveur Sybase

Description

resource sybase_connect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname [, bool $new = false ]]]]]] )

sybase_connect() établit une connexion à un serveur Sybase.

Si un deuxième appel à sybase_connect() est fait avec les mêmes arguments, une nouvelle connexion ne sera pas établie, mais ce sera l'identifiant de la connexion déjà ouverte qui sera retourné.

La connexion sera fermée dès la fin du script, à moins qu'elle ne soit pas explicitement fermée avec sybase_close().

Liste de paramètres

servername

Le nom de serveur servername doit être valide, défini dans le fichier d'interface.

username

Nom d'utilisateur Sybase

password

Mot de passe associé à l'utilisateur username.

charset

Spécifie le charset pour la connexion

appname

Spécifie un appname pour la connexion Sybase. Cela permet d'établir des connexions distinctes dans le même script, avec la même base de données. Cela peut être pratique quand vous avez démarré une connexion et que vous devez lancer une requête séparée, qui ne peut pas être exécutée dans la transaction courante.

new

Si l'on doit ouvrir une nouvelle connexion ou utiliser l'existante.

Valeurs de retour

Retourne un identifiant de connexion Sybase positif en cas de succès, ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Le paramètre new a été ajouté.
4.2.0 Le paramètre appname a été ajouté.
4.0.2 Le paramètre charset a été ajouté.

Exemples

Exemple #1 Exemple avec sybase_connect()

<?php
$link 
sybase_connect('SYBASE''''')
        or die(
"Impossible de se connecter !");
echo 
"Connexion établie";
sybase_close($link);
?>

Voir aussi



sybase_data_seek

(PHP 4, PHP 5)

sybase_data_seekDéplace le pointeur interne de lignes Sybase

Description

bool sybase_data_seek ( resource $result_identifier , int $row_number )

sybase_data_seek() déplace le pointeur interne de lignes du résultat Sybase associé à result_identifier jusqu'à la ligne row_number. Le prochain appel à sybase_fetch_row() sans préciser la ligne, retournera la ligne row_number.

Liste de paramètres

result_identifier

row_number

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_countConfigure le nombre de tentatives lors de blocages

Description

void sybase_deadlock_retry_count ( int $retry_count )

Permet de configurer à retry_count le nombre d'essais que Sybase va tenter lorsqu'il rencontre un blocage de verrou (deadlocks). Par défaut, tous les blocages sont testés un nombre infini de fois, ou bien jusqu'à ce que le script soit interrompu (par exemple, par la fonction set_time_limit()) ou que la requête réussisse.

Liste de paramètres

retry_count

Valeurs pour le paramètre retry_count
-1 Essai jusqu'à réussir (par défaut)
0 Ne pas réessayer
n Réessaye n fois

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.



sybase_fetch_array

(PHP 4, PHP 5)

sybase_fetch_arrayRetourne une ligne Sybase sous la forme d'un tableau

Description

array sybase_fetch_array ( resource $result )

sybase_fetch_array() est une version évoluée de sybase_fetch_row(). En plus d'enregistrer les données dans un tableau à index numérique, cette fonction peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme clés.

Il est très important de noter que sybase_fetch_array() N'est PAS nettement plus lente que sybase_fetch_row(), tandis qu'elle fournit un confort d'utilisation notable.

Liste de paramètres

result

Valeurs de retour

Retourne un tableau qui contient la ligne demandée, ou FALSE s'il ne reste plus de ligne.

Note:

Lors de sélection de champs avec des noms identiques (par exemple, dans un join), les index associatifs auront un nombre séquentiel ajouté au début. Voir l'exemple pour plus de détails.

Exemples

Exemple #1 Cas des colonnes de noms identiques avec Sybase

<?php

$dbh 
sybase_connect('SYBASE''''');
$q sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
var_dump(sybase_fetch_array($q));
sybase_close($dbh);
?>

L'exemple ci-dessus va produire l'affichage suivant (en supposant que les tables ont toutes les deux des colonnes appelées person_id) :

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

Voir aussi



sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assocLit une ligne de résultat Sybase sous forme de tableau associatif

Description

array sybase_fetch_assoc ( resource $result )

sybase_fetch_assoc() est une alternative de sybase_fetch_row() qui utilise les noms de colonnes plutôt que des entiers comme index dans le tableau de résultats. Les colonnes de différentes tables ayant le même nom sont retournées sous la forme name, name1, name2, ..., nameN.

Il est important de noter qu'utiliser sybase_fetch_assoc() n'est pas significativement plus lent que sybase_fetch_row(), tout en procurant un niveau de confort accru.

Liste de paramètres

result

Valeurs de retour

Retourne un tableau contenant la ligne lue, ou bien FALSE s'il n'y a plus de lignes.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi



sybase_fetch_field

(PHP 4, PHP 5)

sybase_fetch_fieldLit les informations d'un champ Sybase

Description

object sybase_fetch_field ( resource $result [, int $field_offset = -1 ] )

Obtient des informations à propos des champs dans le résultat result.

Liste de paramètres

result

field_offset

Si l'offset du champ n'est pas précisé, le champ suivant est traité.

Valeurs de retour

Retourne un objet contenant les informations du champ.

Les propriétés des objets sont :

  • "name" : nom de la colonne. Si la colonne est un résultat de fonction, le nom de cette fonction devient computed#N, où #N est un numéro de série.
  • "column_source" : la table d'origine de la colonne
  • "max_length" : taille maximale de la colonne
  • "numeric" : 1 si la colonne est de type numérique
  • "type" : type de données de la colonne

Voir aussi



sybase_fetch_object

(PHP 4, PHP 5)

sybase_fetch_objectRetourne une ligne Sybase sous la forme d'un objet

Description

object sybase_fetch_object ( resource $result [, mixed $object ] )

sybase_fetch_object() est similaire à sybase_fetch_array(), avec une différence : c'est un objet qui est retourné à la place d'un tableau.

Au niveau de la vitesse, cette fonction est identique à sybase_fetch_array(), et presque aussi rapide que sybase_fetch_row() (la différence est insignifiante).

Liste de paramètres

result

object

Utilisez le second paramètre object pour spécifier le type d'objet que vous voulez retourner. Si ce paramètre est omis, l'objet résultant sera de classe stdClass.

Valeurs de retour

retourne un objet qui contient la ligne demandée, en cas de succès, et FALSE s'il n'y a plus de ligne.

Historique

Version Description
4.3.0

cette fonction ne retourne plus les membres numériques. Ancien comportement :

object(stdclass)(3) {
  [0]=>
  string(3) "foo"
  ["foo"]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
}
Nouveau comportement :
object(stdclass)(3) {
  ["foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
}

Exemples

Exemple #1 Exemple avec sybase_fetch_object()

<?php
    
class Foo {
        var 
$foo$bar$baz;
    }

    
// {...]
    
$qrhsybase_query('SELECT foo, bar, baz FROM example');
    
$foosybase_fetch_object($qrh'Foo');
    
$barsybase_fetch_object($qrh, new Foo());
    
// {...]
?>

Voir aussi



sybase_fetch_row

(PHP 4, PHP 5)

sybase_fetch_rowRetourne une ligne Sybase sous la forme d'un tableau numérique

Description

array sybase_fetch_row ( resource $result )

sybase_fetch_row() lit une ligne dans le résultat associé à l'identifiant de résultat result.

Les prochains appels à sybase_fetch_row() retourneront la ligne suivante du résultat, ou FALSE, s'il ne reste plus de ligne.

Liste de paramètres

result

Valeurs de retour

Retourne un tableau qui contient la ligne demandée, en cas de succès, et FALSE s'il n'y a plus de ligne. Chaque colonne du résultat est stocké dans un élément du tableau, en commençant à la position 0.

Types de données
PHP Sybase
string VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int NUMERIC (sans précision), DECIMAL (sans précision), INT, BIT, TINYINT, SMALLINT
float NUMERIC (avec précision), DECIMAL (avec précision), REAL, FLOAT, MONEY
NULL NULL

Voir aussi



sybase_field_seek

(PHP 4, PHP 5)

sybase_field_seekModifie l'index d'un champ Sybase

Description

bool sybase_field_seek ( resource $result , int $field_offset )

sybase_field_seek() modifie l'index d'un champ. Le prochain appel à la fonction sybase_fetch_field() sans préciser l'index du champ retournera ce champ.

Liste de paramètres

result

field_offset

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



sybase_free_result

(PHP 4, PHP 5)

sybase_free_resultLibère un résultat Sybase de la mémoire

Description

bool sybase_free_result ( resource $result )

sybase_free_result() n'est vraiment utile que si vous risquez d'utiliser trop de mémoire durant votre script. La mémoire occupée par les résultats est automatiquement libérée à la fin du script. Vous devez utiliser sybase_free_result() avec un identifiant de résultat et la mémoire utilisée par celui-ci sera libérée.

Liste de paramètres

result

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



sybase_get_last_message

(PHP 4, PHP 5)

sybase_get_last_messageRetourne le dernier message du serveur

Description

string sybase_get_last_message ( void )

sybase_get_last_message() retourne le dernier message rapporté par le serveur.

Valeurs de retour

Retourne le message, sous la forme d'une chaîne de caractères.

Voir aussi



sybase_min_client_severity

(PHP 4, PHP 5)

sybase_min_client_severityFixe la sévérité minimale du client Sybase

Description

void sybase_min_client_severity ( int $severity )

sybase_min_client_severity() fixe la sévérité minimale du client.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi



sybase_min_error_severity

(PHP 4, PHP 5)

sybase_min_error_severityFixe la sévérité minimale du client pour les erreurs

Description

void sybase_min_error_severity ( int $severity )

sybase_min_error_severity() fixe la sévérité minimale du client pour les erreurs.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi



sybase_min_message_severity

(PHP 4, PHP 5)

sybase_min_message_severityFixe la sévérité minimale du client pour les messages

Description

void sybase_min_message_severity ( int $severity )

sybase_min_message_severity() fixe la sévérité minimale du client pour les messages.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque DB Sybase, et non pas avec la bibliothèque CT.

Voir aussi



sybase_min_server_severity

(PHP 4, PHP 5)

sybase_min_server_severityFixe la sévérité minimale du client pour le serveur Sybase

Description

void sybase_min_server_severity ( int $severity )

sybase_min_server_severity() fixe la sévérité minimale du client pour le serveur.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi



sybase_num_fields

(PHP 4, PHP 5)

sybase_num_fieldsRetourne le nombre de champs dans un résultat Sybase

Description

int sybase_num_fields ( resource $result )

sybase_num_fields() retourne le nombre de champs du résultat result.

Liste de paramètres

result

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi



sybase_num_rows

(PHP 4, PHP 5)

sybase_num_rowsRetourne le nombre de lignes dans un résultat Sybase

Description

int sybase_num_rows ( resource $result )

sybase_num_rows() retourne le nombre de lignes du résultat result.

Liste de paramètres

result

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Voir aussi



sybase_pconnect

(PHP 4, PHP 5)

sybase_pconnectOuvre une connexion persistante à un serveur Sybase

Description

resource sybase_pconnect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname ]]]]] )

sybase_connect() se comporte comme sybase_connect() avec deux différences majeures.

Premièrement, lors de la connexion, la fonction va chercher une connexion, persistante, déjà ouverte, avec le même hôte, nom de compte et mot de passe. Si une telle connexion est trouvée, un identifiant de cette connexion est retourné, plutôt que d'en ouvrir une nouvelle.

Deuxièmement, la connexion au serveur Sybase ne sera pas terminée lors de la fin du script. Au contraire, le lien sera maintenu pour des connexions ultérieures. sybase_close() ne fermera pas un lien créé par sybase_pconnect().

Ce type de lien est dit 'persistant'.

Liste de paramètres

servername

Doit être un nom de serveur valide, défini dans le fichier 'interfaces'.

username

Le nom d'utilisateur Sybase

password

Le mot de passe, associé avec l'utilisateur username.

charset

Spécifie le jeu de caractères pour la connexion

appname

Spécifie un appname pour la connexion Sybase. Cela permet d'établir des connexions distinctes dans le même script, avec la même base de données. Cela peut être pratique quand vous avez démarré une connexion et que vous devez lancer une requête séparée, qui ne peut pas être exécutée dans la transaction courante.

Valeurs de retour

Retourne un identifiant de connexion persistant Sybase en cas de succès, ou FALSE si une erreur survient.

Historique

Version Description
4.2.0 Le paramètre appname a été ajouté.
4.0.2 Le paramètre charset a été ajouté.

Voir aussi



sybase_query

(PHP 4, PHP 5)

sybase_queryEnvoie une requête à une base Sybase

Description

mixed sybase_query ( string $query [, resource $link_identifier ] )

sybase_query() envoie une requête à la base de données courante, sur le serveur associé à l'identifiant de connexion.

Liste de paramètres

query

link_identifier

Si l'identifiant de connexion n'est pas précisé, la fonction essaiera d'utiliser la dernière connexion ouverte. Si aucune connexion n'a été ouverte, la fonction va tenter d'ouvrir une connexion avec la fonction sybase_connect().

Valeurs de retour

Retourne un identifiant de résultat positif en cas de succès, FALSE si une erreur survient, ou TRUE si la requête a été effectuée avec succès, mais n'a retourné aucune colonne.

Voir aussi



sybase_result

(PHP 4, PHP 5)

sybase_resultLit une valeur dans un résultat

Description

string sybase_result ( resource $result , int $row , mixed $field )

Retourne le contenu d'une cellule de la ligne et à la position spécifiées depuis le jeu de résultat Sybase.

Lorsque vous travaillez sur des résultats de grande taille, vous devriez utiliser les autres fonctions qui lisent une ligne entière (voir plus loin). Étant donné que ces fonctions lisent une ligne entière, elles sont BEAUCOUP plus rapide que sybase_result(). De plus, l'utilisation d'index numérique est beaucoup plus rapide que les noms des champs, ou les noms des tables et des champs.

Fonctions de substitution, à haute efficacité : sybase_fetch_row(), sybase_fetch_array() et sybase_fetch_object().

Liste de paramètres

result

row

field

Peut être la position du champ, le nom du champ ou la table suivie d'un point, puis du nom du champ (nom_table.nom_champ). Si le nom de la colonne est un alias ('select foo as bar from...'), utilisez l'alias au lieu du nom de la colonne.

Valeurs de retour

sybase_result() retourne le contenu d'une cellule, depuis le jeu de résultat Sybase.



sybase_select_db

(PHP 4, PHP 5)

sybase_select_dbSélectionne une base de données Sybase

Description

bool sybase_select_db ( string $database_name [, resource $link_identifier ] )

sybase_select_db() change la base de données courante et active sur le serveur associé avec l'identifiant de connexion link_identifier.

Tous les prochains appels à sybase_query() seront faits dans la base de données courante et active.

Liste de paramètres

database_name

link_identifier

Si link_identifier n'est pas précisé, le dernier lien ouvert est utilisé. Si aucun lien n'a été ouvert, la fonction va tenter d'en établir un en appelant sybase_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handlerConfigure le gestionnaire de messages Sybase

Description

bool sybase_set_message_handler ( callback $handler [, resource $connection ] )

sybase_set_message_handler() configure la fonction handler pour qu'il soit le gestionnaire des messages générés par le serveur Sybase. Vous pouvez spécifier le nom d'une fonction globale, ou bien utiliser un tableau pour spécifier un objet et un nom de méthode.

Liste de paramètres

handler

Le gestionnaire attend 5 arguments, dans l'ordre suivant : numéro de message, sévérité, état, numéro de ligne et description. Les 4 premiers paramètres sont des entiers et le dernier est une chaîne de caractères. Si ce gestionnaire retourne la valeur FALSE, PHP retournera un message d'erreur classique.

connection

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.5 Le paramètre connection a été ajouté.

Exemples

Exemple #1 Exemple avec sybase_set_message_handler()

<?php
function msg_handler($msgnumber$severity$state$line$text) {
  
var_dump($msgnumber$severity$state$line$text);
}

sybase_set_message_handler('msg_handler');
?>

Exemple #2 Exemple avec sybase_set_message_handler()

<?php
class Sybase {
  function 
handler($msgnumber$severity$state$line$text) {
    
var_dump($msgnumber$severity$state$line$text);
  }
}

$sybase= new Sybase();
sybase_set_message_handler(array($sybase'handler'));
?>

Exemple #3 Exemple avec sybase_set_message_handler()

<?php
// Retournez FALSE si vous voulez indiquer que vous ne savez pas
// traiter ce message. Cette erreur est alors affichée sous la forme
// d'une alerte, comme s'il n'y avait pas de gestionnaire installé.
function msg_handler($msgnumber$severity$state$line$text) {
  if (
257 == $msgnumber) {
    return 
false;
  }
  
var_dump($msgnumber$severity$state$line$text);
}

sybase_set_message_handler('msg_handler');
?>

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.



sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_queryEnvoie une requête à Sybase et ne bloque pas

Description

resource sybase_unbuffered_query ( string $query , resource $link_identifier [, bool $store_result ] )

sybase_unbuffered_query() envoie la requête query au serveur Sybase actif, représenté par link_identifier. Si link_identifier n'est pas spécifié, la dernière connexion ouverte sera utilisée. Si aucune connexion n'a été ouverte, la fonction essaiera d'établir un lien avec sybase_connect(), et de l'utiliser.

Contrairement à sybase_query(), sybase_unbuffered_query() lit uniquement la première ligne lue. sybase_fetch_array() et les fonctions similaires lisent les lignes nécessaires. sybase_data_seek() lit jusqu'à la prochaine ligne. Ce comportement fournit des performances accrues pour les résultats de grande taille.

sybase_num_rows() ne retournera le nombre de lignes correct que si toutes les lignes du résultat ont été lues. Pour Sybase, le nombre de ligne n'est pas connu, et doit être calculé par le programme client.

Note:

Si vous ne lisez pas toutes les lignes du résultat avant d'exécuter une nouvelle requête, PHP va générer une alerte, et annuler toutes les lignes qui restent à lire. Pour éviter cela, utilise la fonction sybase_free_result() qui va annuler les lignes restantes.

Liste de paramètres

query

link_identifier

store_result

Le paramètre optionnel store_result peut valoir FALSE pour indiquer que les lignes ne doivent pas être ramenées en mémoire, afin de réduire la consommation, surtout dans le cas de très grands résultats.

Valeurs de retour

Retourne un identifiant de résultat Sybase en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sybase_unbuffered_query()

<?php

$dbh 
sybase_connect('SYBASE''''');
$q sybase_unbuffered_query('select firstname, lastname from huge_table'$dbhfalse);
sybase_data_seek($q10000);
$i 0;

while (
$row sybase_fetch_row($q)) {
    echo 
$row[0], ' '$row[1], '<br />';
    if (
$i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi


Sommaire




tokyo_tyrant


Introduction

L'extension tokyo_tyrant fournit un gestionnaire aux librairies clientes Tokyo Tyrant. L'extension contient l'API clé-valeur ainsi que l'API table.

"Tokyo Tyrant est un paquet d'interface réseau au DBM appelé Tokyo Cabinet. Bien que ce DBM fournit de hautes performances, vous pouvez avoir des problèmes dans le cas où de multiples processus partagent la même base de données, ou lorsque des processus distants accèdent à la base de données. Ainsi, Tokyo Tyrant a été conçu pour gérer les connexions concurentes ainsi que les connexions distantes à Tokyo Cabinet. Il est composé d'un processus serveur gérant la base de données ainsi qu'une bibliothèque pour les applications clientes." --Documentation Tokyo Tyrant

Tokyo Tyrant est écrit par Mikio Hirabayashi et est sous license GNU Lesser General Public.



Installation/Configuration

Sommaire


Pré-requis

Avant d'utiliser cette extension, Tokyo Cabinet et Tokyo Tyrant doivent être installés.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/tokyo_tyrant

Options de configuration

  • --with-tokyo-tyrant[=DIR] DIR est le chemin vers l'installation de Tokyo Tyrant
  • --with-tokyo-cabinet-dir[=DIR] DIR est le chemin vers l'installation de Tokyo Cabinet
  • --disable-tokyo-tyrant-session Désactive le support du gestionnaire de session Tokyo Tyrant

Activation de l'extension

L'extension peut être activée en ajoutant extension=tokyo_tyrant.so au fichier de configuration INI.

Exécution de Tokyo Tyrant pour le gestionnaire de session

ttserver -port 2000 -ext /path/to/expire.lua -extpc expire 30.0 '/tmp/sessions.tct#idx=ts:dec'

Note: Le fichier expire.lua est inclus dans les sources de la distribution de l'extension tokyo_tyrant.

Configuration du gestionnaire de session

  • tokyo_tyrant.session_salt="randomlongstring"
  • session.save_handler=tokyo_tyrant
  • session.save_path="tcp://hostname1:2000,tcp://hostname2:2000"

Note: Il est important de s'assurer que tokyo_tyrant.session_salt est identique sur tous les serveurs.

Comment cela fonctionne-t-il ?

Le gestionnaire de session crée un identifiant de session comme ceci : 8b0e27a823fa4a6cf7246945b82c1d51-a5eadbbed1f2075952900628456bfd6830541629-0-5460

Voici la signification, de gauche à droite :

  • Session id - Identifiant de session
  • Checksum - Somme de contrôle du salt de session, de l'identifiant de session, de l'identifiant du nœud et de la clé primaire
  • Node id - L'identifiant du nœud en relation avec la session
  • Primary key - La clé primaire de la ligne stockant la session

La somme de contrôle contient la somme SHA1 de l'identifiant du nœud, de la clé primaire, de l'identifiant de session ; le salt est connu uniquement côté serveur. Ceci permet de faire correspondre rapidement l'identifiant de session et le nœud ansi que la clé primaire sans avoir besoin de faire des recherches supplémentaires. Lors de la regénération de l'identifiant de session, seules les parties 1 et 2 sont modifiées, le lien avec le nœud et la clé primaire reste constant.

Lors d'un échec du nœud, les configurations INI tokyo_tyrant.allow_failover, tokyo_tyrant.fail_threshold et tokyo_tyrant.health_check_divisor contrôlent le comportement de l'extension. Si l'échec est autorisée, le gestionnaire de session liera la session à un nœud valide et créera une nouvelle session vide.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration tokyo_tyrant
Nom Défaut Modifiable Historique
tokyo_tyrant.default_timeout 2.0 PHP_INI_ALL
tokyo_tyrant.session_salt NULL PHP_INI_ALL
tokyo_tyrant.key_prefix NULL PHP_INI_ALL
tokyo_tyrant.allow_failover 1 PHP_INI_ALL
tokyo_tyrant.fail_threshold 5 PHP_INI_ALL
tokyo_tyrant.health_check_divisor 1000 PHP_INI_ALL
tokyo_tyrant.php_expiration 0 PHP_INI_ALL

Voici un éclaircissement sur l'utilisation des directives de configuration.

tokyo_tyrant.default_timeout integer

Délai d'attente par défaut lors de la connexion à la base de données

tokyo_tyrant.session_salt string

Le secret utilisé pour le salt de l'identifiant de session

tokyo_tyrant.key_prefix string

Préfixe à utiliser pour toutes les chaînes. Le préfixe est transparent pour le développeur, et aide à s'assurer que les clés ne rentrent pas en conflit lorsque plusieurs applications utilisent la même base de données.

tokyo_tyrant.allow_failover integer

Si la session peut échouer lorsqu'un serveur devient indisponible.

tokyo_tyrant.fail_threshold integer

Nombre d'échecs autorisés lors de lecture/écriture/connexion avant de marquer le serveur comme non disponible.

tokyo_tyrant.health_check_divisor integer

Définit le diviseur pour le calcul de la probabilité de santé. Si un serveur n'est plus disponible et que sa probabilité augmente, il sera à nouveau vérifié et dans le cas où sa santé redevient normal, il sera de nouveau ajouté à la liste des serveurs disponibles.

tokyo_tyrant.php_expiration integer

Si l'on doit ou non utiliser le mécanisme d'expiration de session ou déléguer l'expiration au script lua côté serveur.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Les constantes TokyoTyrant



Exemples

Utilisation simple

Exemple #1 Insertion et récupération d'une paire clé-valeur

<?php
$tt 
= new TokyoTyrant("localhost");
$tt->put("key""value");
echo 
$tt->get("key");
?>

L'exemple ci-dessus va afficher :

value


La classe TokyoTyrant

Introduction

La classe principale Tokyo Tyrant

Synopsis de la classe

TokyoTyrant {
/* Constantes */
const integer TokyoTyrant::RDBDEF_PORT = 1978 ;
const integer TokyoTyrant::RDBQC_STREQ = 0 ;
const integer TokyoTyrant::RDBQC_STRINC = 1 ;
const integer TokyoTyrant::RDBQC_STRBW = 2 ;
const integer TokyoTyrant::RDBQC_STREW = 3 ;
const integer TokyoTyrant::RDBQC_STRAND = 4 ;
const integer TokyoTyrant::RDBQC_STROR = 5 ;
const integer TokyoTyrant::RDBQC_STROREQ = 6 ;
const integer TokyoTyrant::RDBQC_STRRX = 7 ;
const integer TokyoTyrant::RDBQC_NUMEQ = 8 ;
const integer TokyoTyrant::RDBQC_NUMGT = 9 ;
const integer TokyoTyrant::RDBQC_NUMGE = 10 ;
const integer TokyoTyrant::RDBQC_NUMLT = 11 ;
const integer TokyoTyrant::RDBQC_NUMLE = 12 ;
const integer TokyoTyrant::RDBQC_NUMBT = 13 ;
const integer TokyoTyrant::RDBQC_NUMOREQ = 14 ;
const integer TokyoTyrant::RDBQC_NEGATE = 16777216 ;
const integer TokyoTyrant::RDBQC_NOIDX = 33554432 ;
const integer TokyoTyrant::RDBQO_STRASC = 0 ;
const integer TokyoTyrant::RDBQO_STRDESC = 1 ;
const integer TokyoTyrant::RDBQO_NUMASC = 2 ;
const integer TokyoTyrant::RDBQO_NUMDESC = 3 ;
const integer TokyoTyrant::RDBIT_LEXICAL = 0 ;
const integer TokyoTyrant::RDBIT_DECIMAL = 1 ;
const integer TokyoTyrant::RDBIT_TOKEN = 2 ;
const integer TokyoTyrant::RDBIT_QGRAM = 3 ;
const integer TokyoTyrant::RDBIT_OPT = 9998 ;
const integer TokyoTyrant::RDBIT_VOID = 9999 ;
const integer TokyoTyrant::RDBIT_KEEP = 16777216 ;
const integer TokyoTyrant::RDBQCFTS_PH = 15 ;
const integer TokyoTyrant::RDBQCFTS_AND = 16 ;
const integer TokyoTyrant::RDBQCFTS_OR = 17 ;
const integer TokyoTyrant::RDBQCFTS_EX = 18 ;
const integer TokyoTyrant::RDBXO_LCKREC = 1 ;
const integer TokyoTyrant::RDBXOLCK_GLB = 2 ;
const integer TokyoTyrant::RDBREC_INT = 1 ;
const integer TokyoTyrant::RDBREC_DBL = 2 ;
const integer TokyoTyrant::RDBMS_UNION = 0 ;
const integer TokyoTyrant::RDBMS_ISECT = 1 ;
const integer TokyoTyrant::RDBMS_DIFF = 2 ;
const integer TokyoTyrant::RDBT_RECON = 1 ;
/* Méthodes */
public number add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant connectUri ( string $uri )
__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant copy ( string $path )
public string ext ( string $name , int $options , string $key , string $value )
public array fwmKeys ( string $prefix , int $max_recs )
public mixed get ( mixed $keys )
public TokyoTyrantIterator getIterator ( void )
public int num ( void )
public TokyoTyrant out ( mixed $keys )
public TokyoTyrant put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant putCat ( mixed $keys [, string $value ] )
public TokyoTyrant putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant putNr ( mixed $keys [, string $value = NULL ] )
public mixed putShl ( string $key , string $value , int $width )
public mixed restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int size ( string $key )
public array stat ( void )
public mixed sync ( void )
public TokyoTyrant tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed vanish ( void )
}

Constantes pré-définies

Constantes TokyoTyrant

TokyoTyrant::RDBDEF_PORT

Le port par défaut de la base de données Tokyo Tyrant

TokyoTyrant::RDBQC_STREQ

La chaîne est égale à

TokyoTyrant::RDBQC_STRINC

La chaîne est inclue dans

TokyoTyrant::RDBQC_STRBW

La chaîne commence par

TokyoTyrant::RDBQC_STREW

La chaîne termine par

TokyoTyrant::RDBQC_STRAND

La chaîne inclut tous les motifs dans

TokyoTyrant::RDBQC_STROR

La chaîne inclut au moins un motif dans

TokyoTyrant::RDBQC_STROREQ

La chaîne est égale à au moins un motif dans

TokyoTyrant::RDBQC_STRRX

La chaîne correspond à l'expression rationnelle suivante

TokyoTyrant::RDBQC_NUMEQ

Le nombre est égale à

TokyoTyrant::RDBQC_NUMGT

Le nombre est plus grand que

TokyoTyrant::RDBQC_NUMGE

Le nombre est supérieur ou égal à

TokyoTyrant::RDBQC_NUMLT

Le nombre est plus petit que

TokyoTyrant::RDBQC_NUMLE

Le nombre est inférieur ou égal à

TokyoTyrant::RDBQC_NUMBT

Le nombre est entre les 2 motifs suivants

TokyoTyrant::RDBQC_NUMOREQ

Le nombre est égal à au moins un motif dans

TokyoTyrant::RDBQC_NEGATE

Drapeau négatif

TokyoTyrant::RDBQC_NOIDX

Drapeau correspondant à aucun index

TokyoTyrant::RDBQO_STRASC

Chaîne ascendante

TokyoTyrant::RDBQO_STRDESC

Chaîne descendante

TokyoTyrant::RDBQO_NUMASC

Nombre ascendant

TokyoTyrant::RDBQO_NUMDESC

Nombre descendant

TokyoTyrant::RDBIT_LEXICAL

Chaîne lexicale

TokyoTyrant::RDBIT_DECIMAL

Chaîne décimale

TokyoTyrant::RDBIT_TOKEN

Motif d'index inversé (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_QGRAM

Index QGRAM inversé (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_OPT

optimisation

TokyoTyrant::RDBIT_VOID

void

TokyoTyrant::RDBIT_KEEP

Conservation de l'index existant

TokyoTyrant::RDBQCFTS_PH

Recherche full-text avec la phrase suivante (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

Recherche full-text contenant tous les motifs suivants (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_OR

Recherche full-text contenant au moins un motif dans (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_EX

Recherche full-text contenant l'expression composée suivante (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

Recherche méta en union entre des enregistrements (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_OR

Recherche méta en intersection entre des enregistrements (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_EX

Recherche méta en différence entre des enregistrements (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBT_RECON

Si l'on doit se reconnecter en cas d'échec de la connexion. Il est recommandé d'utiliser ce paramètre pour les connexions persistantes

TokyoTyrant::RDBXOLCK_REC

Verrouillage d'enregistrement

TokyoTyrant::RDBXOLCK_GLB

Verrouillage globale

TokyoTyrant::RDBREC_INT

Enregistrement de type entier

TokyoTyrant::RDBREC_DBL

Enregistrement de type double

TokyoTyrant::TTE_SUCCESS

succès

TokyoTyrant::TTE_INVALID

Opération invalide

TokyoTyrant::TTE_NOHOST

L'hôte n'a pas été trouvé

TokyoTyrant::TTE_REFUSED

Connexion refusée

TokyoTyrant::TTE_SEND

Erreur émise

TokyoTyrant::TTE_RECV

Erreur reçue

TokyoTyrant::TTE_KEEP

L'enregistrement existe

TokyoTyrant::TTE_NOREC

Aucun enregistrement trouvé

TokyoTyrant::TTE_MISC

Erreur diverse


TokyoTyrant::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::addAjoute une clé numérique

Description

public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )

Ajoute une valeur entière ou double. La valeur sera incrémentée par le nombre donné et la nouvelle valeur sera retournée. Si la clé n'existe pas, une nouvelle clé sera créée avec comme valeur initiale le paramètre increment.

Liste de paramètres

key

La clé

increment

L'incrément

type

La constante TokyoTyrant::RDBREC_INT ou la constante TokyoTyrant::RDBREC_DBL. Si ce paramètre est omis, le type sera deviné depuis le type du paramètre increment.

Valeurs de retour

Retourne la nouvelle valeur en cas de succès.

Exemples

Exemple #1 Exemple avec TokyoTyrant::add()

<?php
$tt 
= new TokyoTyrant("localhost"TokyoTyrant::RDBDEF_PORT);
/* Ajoute l'entier 3 à la clé et crée une nouvelle clé */
$tt->add("test"3);

/* La valeur est convertie en double */
echo $tt->add("test""3.5"TokyoTyrant::RDBREC_DBL);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

6.5

Voir aussi



TokyoTyrant::connect

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connectConnexion à une base de données

Description

public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )

Connexion à une base de données.

Liste de paramètres

host

Le nom d'hôte

port

Le port. Par défaut, vaut 1978

options

Les options de connexion : délai d'expiration (par défaut, 5.0), la reconnexion (par défaut, TRUE), et la persistance (par défaut, TRUE).

Valeurs de retour

Retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::connect()

<?php
$tt 
= new TokyoTyrant();
$tt->connect("localhost"TokyoTyrant::RDBDEF_PORT)->put("test""value");
?>

Voir aussi



TokyoTyrant::connectUri

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connectUriConnexion à une base de données en utilisant une URI

Description

public TokyoTyrant TokyoTyrant::connectUri ( string $uri )

Connexion à une base de données en utilisant une URI.

Liste de paramètres

uri

L'URI vers la base de données. Par exemple, tcp://localhost:1979/

Valeurs de retour

Retourne l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::connectUri()

<?php
$tt 
= new TokyoTyrant();
$tt->connectUri("tcp://localhost:1978/")->put("test""hi");
?>

Voir aussi



TokyoTyrant::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::__constructConstruit un nouvel objet TokyoTyrant

Description

TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )

Construit un nouvel objet TokyoTyrant et, optionnellement, se connecte à la base de données.

Liste de paramètres

host

Le nom d'hôte. Par défaut, vaut NULL

port

Le numéro du port. Par défaut, vaut 1978

options

Options de connexion : délai d'expiration (par défaut, 5.0), la reconnexion (par défaut, TRUE) et la persistance (par défaut, TRUE)

Valeurs de retour

Lance une exception TokyoTyrantException si la connexion à la base de données échoue.

Voir aussi



TokyoTyrant::copy

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::copyCopie la base de données

Description

public TokyoTyrant TokyoTyrant::copy ( string $path )

Réalise une copie de la base de données courante.

Liste de paramètres

path

Chemin vers le dossier où sera copiée la base de données. L'utilisateur exécutant la base de données distante doit avoir un accès en écriture sur ce dossier.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::copy()

<?php
$tt 
= new TokyoTyrant("localhost"1978);
$tt->copy("/tmp/foobar.tct");
?>

Voir aussi



TokyoTyrant::ext

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::extExécute un script distant

Description

public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )

Exécute un script distant.

Liste de paramètres

name

Nom de la fonction à exécuter

options

Soit la constante TokyoTyrant::RDBXO_LCKREC pour poser un verrou sur l'enregistrement, soit la constante TokyoTyrant::RDBXO_LCKGLB pour poser un verrou global.

key

La clé à passer à la fonction

value

La valeur à passer à la fonction

Valeurs de retour

Retourne le résultat de l'exécution du script.

Exemples

Exemple #1 Exemple avec TokyoTyrant::ext()

<?php
$tt 
= new TokyoTyrant("localhost"1978);
echo 
$tt->ext("somefunc"TokyoTyrant::RDBXO_LCKREC"some_key""some_value");
?>



TokyoTyrant::fwmKeys

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::fwmKeysRetourne la clé correspondante précédente

Description

public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )

Retourne la clé correspondante précédente de la base de données.

Liste de paramètres

prefix

Préfixe de la clé

max_recs

Nombre maximal d'enregistrements à retourner

Valeurs de retour

Retourne un tableau de clés correspondantes. Les valeurs ne sont pas retournées.

Exemples

Exemple #1 Exemple avec TokyoTyrant::fwmKeys()

<?php

$tt 
= new TokyoTyrant("localhost");

/* Crée 20 clés correspondantes */
for ($i 0$i 20$i++) {
    
$tt->put("key_" $i"value_" $i);
}

/* Crée 20 clés ne correspondants pas */
for ($i 0$i 20$i++) {
    
$tt->put("something_" $i"data_" $i);
}

/* Récupère 5 clés correspondantes */
var_dump($tt->fwmKeys("key_"5));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(5) {
  [0]=>
  string(5) "key_5"
  [1]=>
  string(6) "key_14"
  [2]=>
  string(5) "key_6"
  [3]=>
  string(6) "key_15"
  [4]=>
  string(5) "key_7"
}



TokyoTyrant::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::getLe but de get

Description

public mixed TokyoTyrant::get ( mixed $keys )

Cette méthode est utilisée pour retourner une ou plusieurs valeurs. Cette méthode accepte une chaîne de caractères ou un tableau comme valeur.

Liste de paramètres

keys

Une clé ou un tableau de clés

Valeurs de retour

Retourne une chaîne de caractères ou un tableau basé sur les paramètres fournis. Lance une exception TokyoTyrantException si une erreur survient. Si une chaîne est passée, NULL sera retourné si la clé correspondante n'a pu être trouvée. Si un tableau est passé, seules les clés existantes seront retournées. Ce n'est pas une erreur que de passer une clé qui n'existe pas.

Exemples

Exemple #1 Exemple avec TokyoTyrant::get()

<?php
$tt 
= new TokyoTyrant("localhost"1978);
$tt->put("key1""value1");
$tt->put("key2""value2");
var_dump($tt->get(array("key1""key2")));
var_dump($tt->get("key1"));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key2"]=>
  string(6) "value2"
}
string(6) "value1"

Voir aussi



TokyoTyrant::getIterator

(No version information available, might only be in SVN)

TokyoTyrant::getIteratorRécupère un itérateur

Description

public TokyoTyrantIterator TokyoTyrant::getIterator ( void )

Récupère un itérateur pour parcourir toutes les clés / valeurs de la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne un objet TokyoTyrantIterator et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::getIterator()

<?php
$tt 
= new TokyoTyrant("localhost");
$it $tt->getIterator();

foreach (
$it as $k => $v) {

}
?>

Voir aussi



TokyoTyrant::num

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::numNombre d'enregistrements contenus dans la base de données

Description

public int TokyoTyrant::num ( void )

Retourne le nombre d'enregistrements contenus dans la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'enregistrements contenus dans la base de données.

Exemples

Exemple #1 Exemple avec TokyoTyrant::num()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Récupère le nombre d'enregistrements */
echo $tt->num();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1234

Voir aussi



TokyoTyrant::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::outSupprime des enregistrements

Description

public TokyoTyrant TokyoTyrant::out ( mixed $keys )

Supprime un ou plusieurs enregistrements. Cette méthode accepte une chaîne de caractères pour une seule clé, ou un tableau de clés pour plusieurs enregistrements.

Liste de paramètres

keys

Une clé ou un tableau de clés

Valeurs de retour

Cette méthode retourne l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::out()

<?php
/* Connexion à la base de données, sur le port par défaut */
$tt = new TokyoTyrant("localhost");

$tt->put("test1""value1");
$tt->put("test2""value2");

$tt->out(array("test1""test2"));
?>

Voir aussi



TokyoTyrant::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putInsère des valeurs

Description

public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )

Insère une ou plusieurs paires clé-valeur dans la base de données. Si le paramètre keys est une chaîne de caractères, alors le second paramètre définira la valeur. Le second paramètre est le mandataire si le paramètre keys est une chaîne de caractères. Si la clé existe, la valeur sera écrasée.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur

value

La valeur lorsqu'une seule clé est utilisée

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::put()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Insère une seule paire clé-valeur */
$tt->put("key""value");

/* Insère plusieurs paires clé-valeur, la nouvelle valeur écrasera l'ancienne */
$tt->put(array("key1" => "value1""key" => "value2"));

/* Récupère une clé */
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

value2

Voir aussi



TokyoTyrant::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putCatConcatène un enregistrement

Description

public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )

Ajoute une ou plusieurs valeurs à une clé existante suivant si le paramètre keys est une chaîne de caractères ou un tableau. Le second paramètre est obligatoire si le paramètre keys est une chaîne de caractères. Si l'enregistrement n'existe pas, un nouvel enregistrement sera créé.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur.

value

La valeur, si une seule clé est fournie.

Valeurs de retour

Cette méthode retourne une référence à l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::putCat()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Crée une nouvelle clé */
$tt->put("key""la valeur");

/* Concatène une paire clé-valeur */
$tt->putCat("key"" contient plus de données");

/* Affichage de la clé */
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

la valeur contient plus de données

Voir aussi



TokyoTyrant::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putKeepEnregistre un nouvel enregistrement

Description

public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )

Enregistre une ou plusieurs paires clé-valeur dans la base de données. Si le paramètre keys est une chaîne de caractères, alors le second paramètre définit la valeur. Le second paramètre n'est obligatoire que si le paramètre keys est une chaîne de caractères. Si la clé existe déjà, la méthode lancera une exception indiquant que l'enregistrement existe déjà.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur.

value

La valeur sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec tokyotyrant::putKeep()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Crée une nouvelle clé */
$tt->put("key""valeur");

try {
    
$tt->putKeep("key""new value");
} catch (
TokyoTyrantException $e) {
    if (
$e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo 
"Enregistrement existant ! Aucune modification\n";
    } else {
        echo 
"Erreur : " $e->getMessage() , "\n"
    }
}
echo 
$tt->get("key");
?>

L'exemple ci-dessus va afficher :

Enregistrement existant ! Aucune modification
valeur

Voir aussi



TokyoTyrant::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putNrEnregistre une valeur

Description

public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )

Enregistre une ou plusieurs paires clé-valeur dans la base de données. Si le paramètre keys est une chaîne de caractères, le second paramètre définira la valeur. Le second paramètre n'est obligatoire que si le paramètre keys est une chaîne de caractères. Cette méthode n'attend pas la réponse du serveur.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur.

value

La valeur si une seule clé est fournie

Valeurs de retour

Cette méthode retourne une référence à l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::putNr()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Enregistre une paire clé-valeur */
$tt->putNr("key""value");

/* Enregistre plusieurs paires clé-valeur */
$tt->putNr(array("key1" => "value1""key2" => "value2"));

/* Récupération d'une clé */
echo $tt->get("key1");
?>

L'exemple ci-dessus va afficher :

value1

Voir aussi



TokyoTyrant::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putShlConcatène un enregistrement

Description

public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )

Concatène un enregistrement et se repositionne sur la gauche.

Liste de paramètres

key

Une clé

value

La valeur à concaténer

width

La taille de l'enregistrement

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::putShl()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Crée une nouvelle clé */
$tt->put("key""just a long piece of data");

/* Concatène et se repositionne sur la gauche */
$tt->putShl("key"" and string"15);

/* Affiche la clé */
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

data and string

Voir aussi



TokyoTyrant::restore

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::restoreRestaure la base de données

Description

public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )

Restaure la base de données à partir d'un fichier log.

Avertissement

Cette méthode n'est pas supportée sur les plateformes 32 bits.

Liste de paramètres

log_dir

Dossier dans lequel se trouve le fichier log

timestamp

Timestamp de départ, en microsecondes

check_consistency

Si la consistance doit être vérifiée. Par défaut, vaut TRUE.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.



TokyoTyrant::setMaster

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::setMasterDéfinit le maître de réplication

Description

public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )

Définit le maître de réplication de la base de données.

Avertissement

Cette méthode n'est pas supportée sur les plateformes 32 bits.

Liste de paramètres

host

Nom d'hôte du maître de réplication. Si vaut NULL, la réplication est désactivée.

port

Le port du maître de réplication.

timestamp

Timestamp de départ, en microsecondes.

check_consistency

Si la consistance doit être vérifiée.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::setMaster()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrant("tokyotyrant.example.com");

/* Désactive la réplication */
$tt->setMaster(NULL00);
?>

Voir aussi

  • Classname::Method()



TokyoTyrant::size

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::sizeRetourne la taille de la valeur

Description

public int TokyoTyrant::size ( string $key )

Retourne la taille d'une valeur.

Liste de paramètres

key

La clé correspondant à la valeur à vérifier.

Valeurs de retour

Retourne la taille de la valeur ou lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::size()

<?php
$tt 
= new TokyoTyrant("localhost");

$tt->put("test_key""12345");

echo 
$tt->size("test_key");
?>

L'exemple ci-dessus va afficher :

5



TokyoTyrant::stat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::statRécupère des statistiques

Description

public array TokyoTyrant::stat ( void )

Récupère des statistiques de la base de données distante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de paires clé-valeur représentant les statistiques.

Exemples

Exemple #1 Exemple avec TokyoTyrant::stat()

<?php
$tt 
= new TokyoTyrant("localhost");

var_dump($tt->stat());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(19) {
  ["version"]=>
  string(6) "1.1.28"
  ["libver"]=>
  string(3) "311"
  ["protver"]=>
  string(4) "0.91"
  ["os"]=>
  string(5) "Linux"
  ["time"]=>
  string(17) "1247358357.665630"
  ["pid"]=>
  string(5) "14348"
  ["sid"]=>
  string(8) "59025947"
  ["type"]=>
  string(9) "on-memory"
  ["path"]=>
  string(1) "*"
  ["rnum"]=>
  string(1) "4"
  ["size"]=>
  string(6) "262856"
  ["bigend"]=>
  string(1) "0"
  ["fd"]=>
  string(1) "5"
  ["loadavg"]=>
  string(8) "0.000000"
  ["memsize"]=>
  string(8) "77328384"
  ["memrss"]=>
  string(7) "1183744"
  ["ru_real"]=>
  string(13) "162776.042152"
  ["ru_user"]=>
  string(8) "0.476029"
  ["ru_sys"]=>
  string(8) "8.652540"
}

Voir aussi

  • Classname::Method()



TokyoTyrant::sync

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::syncSynchronise la base de données

Description

public mixed TokyoTyrant::sync ( void )

Synchronise la base de données sur le périphérique physique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.



TokyoTyrant::tune

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrant::tuneRègle les valeurs de connexion

Description

public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )

Règle les valeurs de connexion à la base de données.

Liste de paramètres

timeout

La valeur du délai d'expiration. Par défaut, vaut 5.0.

options

Masque d'options à régler. Peut être soit 0, soit la constante TokyoTyrant::RDBT_RECON. Il est recommandé de ne pas modifier ce second paramètre.

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.



TokyoTyrant::vanish

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::vanishVide la base de données

Description

public mixed TokyoTyrant::vanish ( void )

Vide la base de données distante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::vanish()

<?php
$tt 
= new TokyoTyrant("localhost");
$tt->vanish();
?>

Voir aussi


Sommaire



La classe TokyoTyrantTable

Introduction

Fournit une API aux tables de la base de données. Une table de base de données peut être créée en utilisant la commande suivante : ttserver -port 1979 /tmp/tt_table.tct. Avec Tokyo Tyrant, l'API de la table est un schéma de base de données qui peut stocker arbitrairement plusieurs paires clé-valeur sous une seule clé primaire.

Synopsis de la classe

TokyoTyrantTable extends TokyoTyrant {
/* Méthodes */
public void add ( string $key , mixed $increment [, string $type ] )
public int genUid ( void )
public void get ( mixed $keys )
public TokyoTyrantIterator getIterator ( void )
public TokyoTyrantQuery getQuery ( void )
public void out ( mixed $keys )
public int put ( string $key , array $columns )
public void putCat ( string $key , array $columns )
public void putKeep ( string $key , array $columns )
public void putNr ( mixed $keys [, string $value ] )
public void putShl ( string $key , string $value , int $width )
public mixed setIndex ( string $column , int $type )
/* Méthodes héritées */
public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant TokyoTyrant::connectUri ( string $uri )
TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant TokyoTyrant::copy ( string $path )
public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )
public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )
public mixed TokyoTyrant::get ( mixed $keys )
public TokyoTyrantIterator TokyoTyrant::getIterator ( void )
public int TokyoTyrant::num ( void )
public TokyoTyrant TokyoTyrant::out ( mixed $keys )
public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )
public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )
public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int TokyoTyrant::size ( string $key )
public array TokyoTyrant::stat ( void )
public mixed TokyoTyrant::sync ( void )
public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed TokyoTyrant::vanish ( void )
}

TokyoTyrantTable::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::addAjoute un enregistrement

Description

public void TokyoTyrantTable::add ( string $key , mixed $increment [, string $type ] )

Cette méthode n'est pas supportée avec les bases de données table.

Liste de paramètres

key

La clé.

increment

L'incrément.

type

Soit la constante TokyoTyrant::RDB_RECINT, soit la constante TokyoTyrant::RDB_RECDBL. Si ce paramètre est omis, le type sera deviné depuis le type du paramètre increment.

Valeurs de retour

Cette méthode lance une exception TokyoTyrantException si elle est utilisée via cette classe.

Voir aussi



TokyoTyrantTable::genUid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::genUidGénère un identifiant unique

Description

public int TokyoTyrantTable::genUid ( void )

Génère un identifiant unique dans la base de données. Dans celle-ci, les lignes sont référencées en utilisant une clé primaire numérique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un identifiant unique et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::genUid()

<?php
$tt 
= new TokyoTyrantTable("localhost"1122);

echo 
$tt->genUid();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

4

Voir aussi



TokyoTyrantTable::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::getRécupère une ligne

Description

public void TokyoTyrantTable::get ( mixed $keys )

Récupère une ligne depuis la base de données. Le paramètre keys est un entier représentant la clé primaire pour une ligne ou un tableau d'entiers pour plusieurs lignes.

Liste de paramètres

keys

La clé primaire, soit une chaîne de caractères, soit un entier.

Valeurs de retour

Retourne la ligne, sous la forme d'un tableau.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::get()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index $tt->put(null, array("column1" => "some data""column2" => "more data"));

/* Récupère la ligne précédemment insérée */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Notes

Note:

Depuis la version 0.3.0, cette méthode accepte un tableau comme paramètre. Notez que lors de la récupération de plusieurs lignes, les données binaires ne seront pas préservées.

Voir aussi



TokyoTyrantTable::getIterator

(No version information available, might only be in SVN)

TokyoTyrantTable::getIteratorRécupère un itérateur

Description

public TokyoTyrantIterator TokyoTyrantTable::getIterator ( void )

Récupère un itérateur pour parcourir toutes les clés/valeurs d'une base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne un objet TokyoTyrantIterator et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::getIterator()

<?php
$tt 
= new TokyoTyrantTable("localhost");
$it $tt->getIterator();

foreach (
$it as $k => $v) {
  
var_dump($k$v);
}
?>

Voir aussi



TokyoTyrantTable::getQuery

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::getQueryRécupère un objet de requête

Description

public TokyoTyrantQuery TokyoTyrantTable::getQuery ( void )

Récupère un objet de requête à exécuter sur la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet TokyoTyrantQuery en cas de succès, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::getQuery()

<?php
/* Connexion à la base de données */
$table = new TokyoTyrantTable("localhost"1979);

/* Insertion de quelques lignes */
$table->put(null, array("column1" => "some data""column2" => "more data"));
$table->put(null, array("something" => "value""data" => "good data"));

/* Récupère l'objet de requête */
$query $table->getQuery();

/* Ajoute une condition de requête */
$query->addCond('data'TokyoTyrant::RDBQC_STREQ'good data');

/* Récupère les lignes correspondantes */
var_dump($query->search());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [11]=>
  array(2) {
    ["something"]=>
    string(5) "value"
    ["data"]=>
    string(9) "good data"
  }
}

Voir aussi



TokyoTyrantTable::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::outSupprime un enregistement

Description

public void TokyoTyrantTable::out ( mixed $keys )

Supprime un ou plusieurs enregistrements de la base de données.

Liste de paramètres

keys

Une clé ou un tableau de clés

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::out()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index $tt->put(null, array("column1" => "some data""column2" => "more data"));

/* Supprime la ligne */
$tt->out($index);
?>

Voir aussi



TokyoTyrantTable::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putEnregistre une ligne

Description

public int TokyoTyrantTable::put ( string $key , array $columns )

Enregistre une nouvelle ligne dans la base de données. Le paramètre key est la clé primaire de la ligne, et le fait d'y passer la valeur NULL génèrera un nouvel identifiant unique. Le paramètre value est un tableau contenant les données de la ligne, qui sont habituellement des paires clé/valeur.

Liste de paramètres

key

La clé primaire de la ligne

columns

Le contenu de la ligne

Valeurs de retour

Retourne la clé primaire en cas de succès, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::put()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index $tt->put(null, array("column1" => "some data""column2" => "more data"));

/* Récupère la ligne précédemment insérée */
var_dump($tt->get($index));

/* Modification d'une ligne existante */
$tt->put($index, array("column1" => "other data""column2" => "better data"));

/* Récupère la ligne précédante */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(2) {
  ["column1"]=>
  string(10) "other data"
  ["column2"]=>
  string(11) "better data"
}

Voir aussi



TokyoTyrantTable::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putCatConcatène une ligne

Description

public void TokyoTyrantTable::putCat ( string $key , array $columns )

Cette méthode peut être utilisée pour ajouter de nouvelles colonnes à des enregistrements existantes. Les clés existantes ne seront pas modifiées mais les nouvelles colonnes seront ajoutées à la ligne. Le fait de passer la valeur NULL comme clé génèrera une nouvelle ligne.

Liste de paramètres

key

La clé primaire de la ligne, ou NULL.

columns

Tableau contenant les données des lignes

Valeurs de retour

Retourne la clé primaire et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::putCat()

<?php
/* Connexion à une base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index $tt->put(null, array("column1" => "some data""column2" => "more data"));

/* Récupère la ligne précédente */
var_dump($tt->get($index));

/* Modification de la ligne existante */
$tt->putcat($index, array("column1" => "something new""new_column" => "other data"));

/* Récupération de la ligne précédente */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(3) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
  ["new_column"]=>
  string(10) "other data"
}

Voir aussi



TokyoTyrantTable::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putKeepEnregistre un nouvel enregistrement

Description

public void TokyoTyrantTable::putKeep ( string $key , array $columns )

Enregistre un nouvel enregistrement dans la base de données. Si la clé existe déjà, la méthode lancera une exception indiquant qu'un enregistrement référencé sous cette clé existe déjà dans la base de données.

Liste de paramètres

key

La clé primaire de la ligne, ou NULL.

columns

Tableau contenant les données de la ligne.

Valeurs de retour

Retourne la clé primaire et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::putKeep()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index $tt->put(null, array("column1" => "some data""column2" => "more data"));

/* Récupère la ligne précédente */
var_dump($tt->get($index));

try {
    
$tt->putKeep($index, array("column1" => "something new""new_column" => "other data"));
} catch (
TokyoTyrantException $e) {
    if (
$e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo 
"Existing record! Not modified\n";
    } else {
        echo 
"Error: " $e->getMessage() , "\n"
    }
}

/* Récupère la ligne précédente */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
Existing record! Not modified
array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Voir aussi



TokyoTyrantTable::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putNrEnregistre une valeur

Description

public void TokyoTyrantTable::putNr ( mixed $keys [, string $value ] )

Cette méthode n'est pas supportée sur ce type de base de données. L'appel à cette méthode sur la classe TokyoTyrantTable sera considérée comme une erreur, et une exception TokyoTyrantException sera lancée.

Liste de paramètres

keys

Une clé ou un tableau de paires clé/valeur

value

La valeur si une seule clé est utilisée

Valeurs de retour

Cette méthode n'est pas supportée sur ce type de base de données. L'appel à cette méthode sur la classe TokyoTyrantTable sera considérée comme une erreur, et une exception TokyoTyrantException sera lancée.

Voir aussi



TokyoTyrantTable::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putShlConcatène un enregistrement

Description

public void TokyoTyrantTable::putShl ( string $key , string $value , int $width )

Cette méthode n'est pas supportée sur ce type de base de données. L'appel à cette méthode via la classe TokyoTyrantTable est considérée comme une erreur et une exception TokyoTyrantException sera émise.

Liste de paramètres

key

La clé

value

La valeur à concaténer

width

La taille de l'enregistrement

Valeurs de retour

Cette méthode n'est pas supportée sur ce type de base de données.

Voir aussi



TokyoTyrantTable::setIndex

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::setIndexDéfinit l'index

Description

public mixed TokyoTyrantTable::setIndex ( string $column , int $type )

Définit un index sur une colonne spécifique. Le type de l'index est une constante parmi les constantes TokyoTyrant::RDBIT_*. Le fait de passer la constante TokyoTyrant::RDBIT_VOID supprimera l'index.

Liste de paramètres

column

Le nom de la colonne

type

Le type de l'index

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.


Sommaire



La classe TokyoTyrantQuery

Introduction

Cette classe est utilisée pour interroger la base de données

Synopsis de la classe

TokyoTyrantQuery implements Iterator , Traversable {
/* Méthodes */
public mixed addCond ( string $name , int $op , string $expr )
public int count ( void )
public array current ( void )
public string hint ( void )
public string key ( void )
public array metaSearch ( array $queries , int $type )
public array next ( void )
public TokyoTyrantQuery out ( void )
public bool rewind ( void )
public array search ( void )
public mixed setLimit ([ int $max [, int $skip ]] )
public mixed setOrder ( string $name , int $type )
public bool valid ( void )
}

TokyoTyrantQuery::addCond

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::addCondAjoute une condition à la requête

Description

public mixed TokyoTyrantQuery::addCond ( string $name , int $op , string $expr )

Ajoute une condition à la requête. La condition peut être quelques choses comme : récupérer toutes les clés dont la valeur correspond à une expression.

Liste de paramètres

name

Nom de la colonne dans la condition

op

L'opérateur. Une constante parmi les constantes TokyoTyrant::RDBQC_*.

expr

L'expression.

Valeurs de retour

La méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::addCond()

<?php
/* Connexion à une base de données de table */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "not here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Affiche les résultats de la recherche */
var_dump($query->search());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Voir aussi

  • Classname::Method()



TokyoTyrantQuery::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::__constructConstruit une nouvelle requête

Description

TokyoTyrantQuery::__construct ( TokyoTyrantTable $table )

Construit un nouvel objet de requête.

Liste de paramètres

table

Un objet TokyoTyrantTable avec une connexion active à une base de données.

Valeurs de retour

Retourne un nouvel objet TokyoTyrantQuery et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::__construct()

<?php
$tt 
= new TokyoTyrantTable("localhost"1979);

$query = new TokyoTyrantQuery($tt);

/* Travaux avec $query */
?>

Voir aussi



TokyoTyrantQuery::count

(No version information available, might only be in SVN)

TokyoTyrantQuery::countCompte les enregistrements

Description

public int TokyoTyrantQuery::count ( void )

Retourne le nombre d'enregistrements qu'une requête retourne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'enregistrements qu'une requête retourne, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::count()

<?php
/* Connexion à une base de données table */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "not here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Compte les résultats */
var_dump($query->count());
?>

L'exemple ci-dessus va afficher :

int(2)

Voir aussi



TokyoTyrantQuery::current

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::currentRetourne l'élément courant

Description

public array TokyoTyrantQuery::current ( void )

Retourne l'élément courant. Fait partie de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la ligne courante.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à une base de données table */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "foobar here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo 
"pk: $key, columns: "count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi



TokyoTyrantQuery::hint

(No version information available, might only be in SVN)

TokyoTyrantQuery::hintRécupère les informations sur une requête

Description

public string TokyoTyrantQuery::hint ( void )

Récupère les informations sur une requête. Ils contiennent des informations sur la requête exécutée ; cette méthode pourrait être comparée à la requête MySQL EXPLAIN.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne toujours une chaîne de caractères.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::hint

<?php
$tt 
= new TokyoTyrantTable("localhost"1979);
$tt->vanish();

for (
$i 0$i 11$i++) {
     
$tt->put(null, array('a_col' => 'a' $i'b_col' => 'b' $i));
}

$query $tt->getQuery();
$query->addCond('a_col'TokyoTyrant::RDBQC_STRBW'a');

$query->search();
var_dump($query->hint());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(72) "
scanning the whole table
result set size: 11
leaving the natural order
"

Voir aussi



TokyoTyrantQuery::key

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::keyRetourne la clé courante

Description

public string TokyoTyrantQuery::key ( void )

Retourne la clé courante. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé courante, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à une base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "foobar here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo 
"pk: $key, columns: "count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi



TokyoTyrantQuery::metaSearch

(No version information available, might only be in SVN)

TokyoTyrantQuery::metaSearchRécupère des enregistrements avec plusieurs requêtes

Description

public array TokyoTyrantQuery::metaSearch ( array $queries , int $type )

Exécute plusieurs requêtes sur une base de données et retourne les enregistrements correspondants. L'objet courant sera toujours l'objet le plus à gauche de la recherche.

Liste de paramètres

queries

Un tableau d'objets TokyoTyrantQuery

type

Une constante parmi les constantes TokyoTyrant::RDBMS_*

Valeurs de retour

Retourne les lignes correspondantes et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::metaSearch()

<?php
/* Connexion à une base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajout de données de test */
$tt->put('cherry',     array('color' => 'red'));
$tt->put('strawberry', array('color' => 'red'));
$tt->put('apple',      array('color' => 'green'));
$tt->put('lemon',      array('color' => 'yellow'));

/* Première requête */
$query $tt->getQuery();
$query->addCond('color'TokyoTyrant::RDBQC_STREQ'red')->setOrder('color'TokyoTyrant::RDBQO_STRASC);

/* Seconde requête */
$query1 $tt->getQuery();
$query1->addCond('color'TokyoTyrant::RDBQC_STREQ'yellow');

/* Récupère l'union entre les requêtes */
var_dump($query->metaSearch(array($query1), TokyoTyrant::RDBMS_UNION));
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["cherry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["strawberry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["lemon"]=>
  array(1) {
    ["color"]=>
    string(6) "yellow"
  }
}

Voir aussi



TokyoTyrantQuery::next

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::nextDéplace l'itérateur sur la prochaine entrée

Description

public array TokyoTyrantQuery::next ( void )

Retourne le prochain résultat du jeu de résultats. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la prochaine ligne et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "foobar here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo 
"pk: $key, columns: "count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi



TokyoTyrantQuery::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::outSupprime des enregistrements en se basant sur une requête

Description

public TokyoTyrantQuery TokyoTyrantQuery::out ( void )

Supprime tous les enregistrements correspondant à la requête. Fonctionne exactement comme une recherche, mais supprime les enregistrements au lieu de les retourner.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::out()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajout quelques enregistrements */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "foobar here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Supprime les enregistrements correspondant */
$query->out();
?>

Voir aussi



TokyoTyrantQuery::rewind

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::rewindRéinitialise l'itérateur

Description

public bool TokyoTyrantQuery::rewind ( void )

Réinitialise le jeu de résultats et exécute la requête si elle n'a pas encore été exécutée. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajoute quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "foobar here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo 
"pk: $key, columns: "count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi



TokyoTyrantQuery::search

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::searchCherche des enregistrements

Description

public array TokyoTyrantQuery::search ( void )

Effectue une recherche sur la base de données. Retourne un tableau de tableaux, contenant les enregistrements correspondant. Dans le tableau retourné, le premier niveau correspond aux clés primaires des données, et le second, les données des lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les lignes correspondantes et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::search()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajoute quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "not here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Affiche les résultats de la recherche */
var_dump($query->search());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Voir aussi



TokyoTyrantQuery::setLimit

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setLimitLimite les résultats

Description

public mixed TokyoTyrantQuery::setLimit ([ int $max [, int $skip ]] )

Définie le nombre maximal d'enregistrements que la requête doit retourner.

Liste de paramètres

max

Nombre maximal d'enregistrements. Par défaut, vaut -1.

skip

Nombre d'enregistrements de début à ignorer. Par défaut, vaut -1.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.



TokyoTyrantQuery::setOrder

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setOrderDéfinit l'ordre des résultats

Description

public mixed TokyoTyrantQuery::setOrder ( string $name , int $type )

Définit l'ordre des résultats d'une requête.

Liste de paramètres

name

Le nom de la colonne à utiliser pour définir l'ordre.

type

Le paramètre type peut être une des constantes suivantes :

Valeurs de retour

Cette méthode retourne l'objet courant.



TokyoTyrantQuery::valid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::validVérifie la validité de l'élément courant

Description

public bool TokyoTyrantQuery::valid ( void )

Vérifie si l'élément courant est valide. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'élément courant est valide, FALSE sinon.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost"1979);

/* Ajoute quelques lignes */
$tt->put(null, array("column1" => "some data""column2" => "something here"));
$tt->put(null, array("column1" => "more data""column2" => "best data this far"));
$tt->put(null, array("column1" => "again data""column3" => "foobar here"));
$tt->put(null, array("column45" => "random data""column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data""column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data""column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2"TokyoTyrant::RDBQC_STROR"something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo 
"pk: $key, columns: "count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi


Sommaire






Extensions relatives aux systèmes de fichiers


Direct IO


Introduction

PHP support les fonctions Direct IO, telle que décrit dans le standard Posix (Section 6) pour effectuer des fonctions I/O de bas niveau par rapport aux fonctions C-Language stream I/O (fopen(), fread(),..). L'utilisation des fonctions DIO doit être considérée uniquement lorsqu'un contrôle direct d'un périphérique est nécessaire. Dans tous les autres cas, les fonctions standards de système de fichiers sont plus adéquates.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Cette extension n'est disponible que sous les systèmes Windows depuis PHP 5.0.0.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/dio.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Un type de ressource est définit par cette extension : un pointeur de fichier, retourné par la fonction dio_open().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

F_DUPFD (entier)

F_GETFD (entier)

F_GETFL (entier)

F_GETLK (entier)

F_GETOWN (entier)

F_RDLCK (entier)

F_SETFL (entier)

F_SETLK (entier)

F_SETLKW (entier)

F_SETOWN (entier)

F_UNLCK (entier)

F_WRLCK (entier)

O_APPEND (entier)

O_ASYNC (entier)

O_CREAT (entier)

O_EXCL (entier)

O_NDELAY (entier)

O_NOCTTY (entier)

O_NONBLOCK (entier)

O_RDONLY (entier)

O_RDWR (entier)

O_SYNC (entier)

O_TRUNC (entier)

O_WRONLY (entier)

S_IRGRP (entier)

S_IROTH (entier)

S_IRUSR (entier)

S_IRWXG (entier)

S_IRWXO (entier)

S_IRWXU (entier)

S_IWGRP (entier)

S_IWOTH (entier)

S_IWUSR (entier)

S_IXGRP (entier)

S_IXOTH (entier)

S_IXUSR (entier)



Fonctions Direct IO


dio_close

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_closeFerme l'accès au fichier

Description

void dio_close ( resource $fd )

dio_close() ferme l'accès au fichier représenté par la ressource fd.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Fermeture d'une ressource de fichier

<?php
$fd 
dio_open('/dev/ttyS0'O_RDWR);

dio_close($fd);
?>

Voir aussi

  • dio_open() - Ouvre un nouveau fichier avec les permissions spécifiés



dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_fcntlExécute une fonction fichier de langage C

Description

mixed dio_fcntl ( resource $fd , int $cmd [, mixed $args ] )

dio_fcntl() exécute l'opération cmd sur le fichier représenté par la ressource fd. Certaines commandes demandent des arguments supplémentaires qui sont fournis dans l'argument args.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

cmd

Peut être une de ces opérations suivantes :

  • F_SETLK : le verrou est posé ou levé. Si le verrou appartient à un autre utilisateur, dio_fcntl() retourne -1.

  • F_SETLKW : identique à F_SETLK, mais si le verrou appartient à quelqu'un d'autre, dio_fcntl() attend la levée du verrou.

  • F_GETLK : dio_fcntl() retourne un tableau associatif (comme décrit ci-dessus) si un autre utilisateur empêche la poste d'un verrou. S'il n'y a aucun empêchement, l'entrée "type" prendra la valeur F_UNLCK.

  • F_DUPFD : trouve les numéros de ressource de fichier les plus petits, disponibles, inférieurs ou égales à args et les retourne.

  • F_SETFL : configure les descripteurs de fichier à la valeur spécifiée par args, qui peut être O_APPEND, O_NONBLOCK ou O_ASYNC. Pour utiliser O_ASYNC vous aurez besoin de l'extension PCNTL.

args

args est un tableau associatif lorsque cmd vaut F_SETLK ou F_SETLLW, avec les entrées suivantes :

  • "start" : offset de début de verrou

  • "length" : taille de la surface verrouillée. Zéro indique la fin du fichier

  • "wenth" : l_start est relatif à : peut être SEEK_SET, SEEK_END et SEEK_CUR

  • "type" : type de verrou. peut être F_RDLCK (verrou en lecture), F_WRLCK (verrou en écriture) ou F_UNLCK (déverrouillage)

Valeurs de retour

Retourne le résultat d'un appel en C.

Exemples

Exemple #1 Positionnement et suppression d'un verrou

<?php

$fd 
dio_open('/dev/ttyS0'O_RDWR);

if (
dio_fcntl($fdF_SETLK, Array("type"=>F_WRLCK)) == -1) {
   
// le descripteur de fichier semble verrouillé
   
echo "Le verrou n'a pu être effacé. Il a été posé par quelqu'un d'autre.";
} else {
   echo 
"Le verrou a été défini/verrouillé avec succès";
}

dio_close($fd);
?>

Notes

Note: Cette fonction n'est pas implémentée sous Windows.



dio_open

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_openOuvre un nouveau fichier avec les permissions spécifiés

Description

resource dio_open ( string $filename , int $flags [, int $mode = 0 ] )

Ouvre un accès à un fichier et retourne une ressource de fichier.

Liste de paramètres

filename

Le chemin vers le fichier à ouvrir.

flags

Le paramètre flags est une valeur comprenant des drapeaux depuis la liste suivante. Cette valeur doit inclure une constante parmi O_RDONLY, O_WRONLY, ou O_RDWR. À cette constante, vous pouvez y ajouter n'importe quel drapeaux depuis cette liste.

  • O_RDONLY : ouvre le fichier en lecture seule.

  • O_WRONLY : ouvre le fichier en écriture.

  • O_RDWR : ouvre le fichier en lecture et écriture.

  • O_CREAT : crée le fichier, s'il n'existe pas.

  • O_EXCL : si O_CREAT et O_EXCL sont utilisés et que le fichier existe, dio_open() échouera.

  • O_TRUNC : si le fichier existe et qu'il est ouvert en écriture, le fichier sera réduit à la taille nulle.

  • O_APPEND : les écritures se font à partir de la fin du fichier.

  • O_NONBLOCK : active le mode non-bloquant.

  • O_NOCTTY : évite que le système d'exploitation n'assigne au fichier ouvert un processus contrôlant le terminal lorsque ce fichier est un fichier TTY.

mode

Si flags contient O_CREAT, mode définira les permissions du fichier (permissions de création). Mode est requis pour une opération correcte lorsque O_CREAT est spécifié dans le mode et est ignoré sinon.

Les permissions assignées au fichier créé seront affectées par la configuration du processus umask.

Valeurs de retour

Une ressource de fichier ou FALSE en cas d'erreur.

Exemples

Exemple #1 Ouverture d'un fichier

<?php

$fd 
dio_open('/dev/ttyS0'O_RDWR O_NOCTTY O_NONBLOCK);

dio_close($fd);
?>

Voir aussi



dio_read

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_read Lit les octets dans un fichier

Description

string dio_read ( resource $fd [, int $len = 1024 ] )

dio_read() lit et retourne len octets dans le fichier représenté par la ressource fd.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

len

Le nombre d'octets à lire. Si le paramètre n'est pas spécifié, dio_read() lit un bloc de 1 ko.

Valeurs de retour

Les octets lus de fd.

Voir aussi

  • dio_write() - Écrit des données dans le fichier avec la possibilité de tronquer sa longueur



dio_seek

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_seekDéplace le pointeur interne de fichier

Description

int dio_seek ( resource $fd , int $pos [, int $whence = SEEK_SET ] )

dio_seek() sert à modifier la position du pointeur de fichier dans le fichier.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

pos

La nouvelle position.

whence

Spécifie comment la position pos devrait être interprétée :

  • SEEK_SET (défaut) : spécifie que pos est spécifié à partir du début du fichier.

  • SEEK_CUR : spécifie que pos est un nombre de caractères à partir de la position courante dans le fichier. Ce nombre peut être positif ou négatif.

  • SEEK_END : spécifie que pos est un nombre de caractères à partir de la fin du fichier. Une valeur négative spécifie une position à l'intérieur du domaine courant du fichier; une valeur positive spécifie une position passée de la fin courante. Si vous spécifiez une position après la fin et que vous y écriviez des données, vous allez agrandir le fichier avec des zéros jusqu'à cette position.

Valeurs de retour

Exemples

Exemple #1 Positionnement dans un fichier

<?php

$fd 
dio_open('/dev/ttyS0'O_RDWR);

dio_seek($fd10SEEK_SET);
// la position est maintenant à 10 caractères depuis le début du fichier

dio_seek($fd, -2SEEK_CUR);
// la position est maintenant à 8 caractères depuis le début du fichier

dio_seek($fd, -5SEEK_END);
// la position est maintenant à 5 caractères depuis la fin du fichier

dio_seek($fd10SEEK_END);
// la position est maintenant à 10 caractères après la fin du fichier.
// Les 10 caractères entre la fin du fichier et la position courante sont
// complétés par des zéros.

dio_close($fd);
?>



dio_stat

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_stat Lit des informations sur le fichier

Description

array dio_stat ( resource $fd )

dio_stat() retourne les informations sur le fichier.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

Valeurs de retour

Retourne un tableau associatif avec les clés suivantes :

  • "device" : device

  • "inode" : inode

  • "mode" : mode

  • "nlink" : nombre de liens

  • "uid" : user id

  • "gid" : group id

  • "device_type" : type de device (si inode device)

  • "size" : taille totale en octets

  • "blocksize" : taille du bloc

  • "blocks" : nombre de blocs alloués

  • "atime" : date du dernier accès

  • "mtime" : date de dernière modification

  • "ctime" : date de dernier changement

En cas d'erreur, dio_stat() retourne NULL.



dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.5)

dio_tcsetattr Modifie les attributs du terminal et le taux de baud du port série

Description

bool dio_tcsetattr ( resource $fd , array $options )

dio_tcsetattr() modifie les attributs du terminal et le taux de baud du port série de ressource.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

options

Les options actuellement disponibles sont :

  • 'baud' : taux de baud du port : peut être 38400,19200,9600,4800, 2400,1800,1200,600,300,200,150,134,110,75 ou 50. Par défaut, c'est 9600.

  • 'bits' : bits de données : peut être 8,7,6 ou 5. Par défaut, c'est 8.

  • 'stop' : bits de stop : peut être 1 ou 2. Par défaut, c'est 1.

  • 'parity' : peut être 0, 1 ou 2. Par défaut, c'est 0.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Définition du débit des bauds sur un port série

<?php

$fd 
dio_open('/dev/ttyS0'O_RDWR O_NOCTTY O_NONBLOCK);

dio_fcntl($fd,F_SETFLO_SYNC );

dio_tcsetattr($fd, array(
  
'baud' => 9600,
  
'bits' => 8,
  
'stop'  =>1,
  
'parity' => 0
));

while (
1) {

  
$data dio_read($fd,256);

  if (
$data) {
      echo 
$data;
  }
}

?>

Notes

Note: Cette fonction n'est pas implémentée sous Windows.



dio_truncate

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_truncateTronque un fichier

Description

bool dio_truncate ( resource $fd , int $offset )

dio_truncate() tronque un fichier d'au moins offset octets, en taille.

Si auparavant le fichier était plus grand que cette taille, les données en plus seront perdues. Si par contre le fichier était plus petit, il n'est pas spécifié si le fichier est gardé intact ou agrandi. Dans le dernier cas, la partie étendue devient des octets zéros.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

offset

La position en octets.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est pas implémentée sous Windows.



dio_write

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_write Écrit des données dans le fichier avec la possibilité de tronquer sa longueur

Description

int dio_write ( resource $fd , string $data [, int $len = 0 ] )

dio_write() écrit jusqu'à len octets issus de la variable data, dans le fichier représenté par la ressource fd.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

data

Les données à écrire.

len

La grandeur des données à écrire en octets. S'il n'est pas spécifié, la fonction écrit toutes les données au fichier spécifié.

Valeurs de retour

Retourne le nombre d'octets écrits dans fd.

Voir aussi


Sommaire

  • dio_close — Ferme l'accès au fichier
  • dio_fcntl — Exécute une fonction fichier de langage C
  • dio_open — Ouvre un nouveau fichier avec les permissions spécifiés
  • dio_read — Lit les octets dans un fichier
  • dio_seek — Déplace le pointeur interne de fichier
  • dio_stat — Lit des informations sur le fichier
  • dio_tcsetattr — Modifie les attributs du terminal et le taux de baud du port série
  • dio_truncate — Tronque un fichier
  • dio_write — Écrit des données dans le fichier avec la possibilité de tronquer sa longueur



Les dossiers


Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)

Note: La constante PATH_SEPARATOR a été introduite en PHP 4.3.0-RC2.



Fonctions sur les dossiers

Voir aussi

Pour des fonctions connexes telles que dirname(), is_dir(), mkdir() et rmdir(), voyez donc la section système de fichiers.


chdir

(PHP 4, PHP 5)

chdirChange de dossier

Description

bool chdir ( string $directory )

chdir() change le dossier courant de PHP en directory.

Liste de paramètres

directory

Le nouveau répertoire courant

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec chdir()

<?php

// dossier courant
echo getcwd() . "\n";

chdir('public_html');

// dossier courant
echo getcwd() . "\n";

?>

L'exemple ci-dessus va afficher :

/home/vincent
/home/vincent/public_html

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • getcwd() - Retourne le dossier de travail courant



chroot

(PHP 4 >= 4.0.5, PHP 5)

chrootChange le dossier racine

Description

bool chroot ( string $directory )

chroot() change la racine du script en cours, et la remplace par directory, puis change le dossier courant de travail en "/".

Cette fonction n'est disponible que sur les systèmes GNU et BSD et que si vous utilisez la SAPI CLI, CGI ou Embed. De plus, cette fonction nécessite les privilèges d'administrateur.

Liste de paramètres

directory

Le répertoire vers lequel changer la racine.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec chroot()

<?php
chroot
("/path/to/your/chroot/");
echo 
getcwd();
?>

L'exemple ci-dessus va afficher :

/

Notes

Note: Cette fonction n'est pas implémentée sous Windows.



dir

(PHP 4, PHP 5)

dirRetourne une instance de la classe Directory

Description

Directory {
string $path ;
resource $handle ;
string read ( void )
void rewind ( void )
void close ( void )
}

Un mécanisme pseudo-objet permet la lecture d'un dossier. L'argument directory est ouvert. Deux propriétés sont disponibles une fois le dossier ouvert : le pointeur peut être utilisé avec d'autres fonctions telles que readdir(), rewinddir() et closedir(). Le chemin du dossier est le chemin fourni lors de la construction de l'objet. Trois méthodes sont disponibles : la lecture, la remise à zéro et la fermeture de dossier.

Exemples

Exemple #1 Exemple avec dir()

Notez la façon dont la valeur de retour de dir::read() est vérifiée dans l'exemple suivant. Nous testons si la valeur est identique (égale et de même type que -- voyez opérateurs de comparaison pour plus de détails) FALSE sinon, toute entrée dans le nom serait évalué à FALSE causera l'arrêt de la boucle (exemple, un répertoire nommé 0).

<?php
$d 
dir("/etc/php5");
echo 
"Pointeur : " $d->handle "\n";
echo 
"Chemin : " $d->path "\n";
while (
false !== ($entry $d->read())) {
   echo 
$entry "\n";
}
$d->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Pointeur : Resource id #2
Chemin : /etc/php5
.
..
apache
cgi
cli

Notes

Note:

L'ordre dans lequel les entrées du dossier sont retournées avec la méthode read dépend de votre système.



closedir

(PHP 4, PHP 5)

closedirFerme le pointeur sur le dossier

Description

void closedir ([ resource $dir_handle ] )

closedir() ferme le pointeur de dossier dir_handle. Le dossier devait avoir été ouvert auparavant avec opendir().

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir().

Exemples

Exemple #1 Exemple avec closedir()

<?php
$dir 
"/etc/php5/";

// Ouverture d'un dossier connu, lecture du dossier et assignation à
// une variable, ensuite fermeture du dossier
if (is_dir($dir)) {
    if (
$dh opendir($dir)) {
        
$directory readdir($dh);
        
closedir($dh);
    }
}
?>



getcwd

(PHP 4, PHP 5)

getcwdRetourne le dossier de travail courant

Description

string getcwd ( void )

Retourne le dossier de travail courant.

Valeurs de retour

Retourne le dossier de travail courant en cas de réussite ou FALSE en cas d'échec.

Sur quelques versions d'Unix, getcwd() peut retourner FALSE si tous les dossiers parents n'ont pas le mode écriture ou le mode recherche de défini, même si le dossier courant les a. Voir la fonction chmod() pour plus d'informations sur les modes de permissions.

Exemples

Exemple #1 Exemple avec getcwd()

<?php

// dossier courant
echo getcwd() . "\n";

chdir('cvs');

// dossier courant
echo getcwd() . "\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/didou
/home/didou/cvs

Voir aussi



opendir

(PHP 4, PHP 5)

opendir Ouvre un dossier, et récupère un pointeur dessus

Description

resource opendir ( string $path [, resource $context ] )

opendir() retourne un pointeur sur un dossier qui pour être utilisé avec les fonctions closedir(), readdir() et rewinddir().

Liste de paramètres

path

Le chemin du répertoire à ouvrir

context

Pour la description du paramètre context, référez-vous à la section des flux du manuel.

Valeurs de retour

Retourne la ressource de dossier en cas de succès ou FALSE en cas d'échec.

Si le paramètre path n'est pas un dossier valide, ou si le dossier ne peut être accédé pour des raisons de permissions ou des erreurs liées au système de fichiers, opendir() retourne FALSE et génère une erreur PHP de niveau E_WARNING. Vous pouvez supprimer cette erreur en ajoutant '@' avant le nom de la fonction.

Historique

Version Description
5.0.0 path supporte l'enveloppe URL ftp://
4.3.0 path peut aussi être n'importe quel URL qui supporte le listage de dossiers, par contre, seul l'enveloppe URL file:// supporte ceci en PHP 4.

Exemples

Exemple #1 Exemple avec opendir()

<?php
$dir 
"/tmp/php5";

// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($dir)) {
    if (
$dh opendir($dir)) {
        while ((
$file readdir($dh)) !== false) {
            echo 
"fichier : $file : type : " filetype($dir $file) . "\n";
        }
        
closedir($dh);
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

fichier : . : type : dir
fichier : .. : type : dir
fichier : apache : type : dir
fichier : cgi : type : dir
fichier : cli : type : dir

Voir aussi



readdir

(PHP 4, PHP 5)

readdirLit une entrée du dossier

Description

string readdir ([ resource $dir_handle ] )

readdir() retourne le nom du fichier suivant dans le dossier identifié par dir_handle. Les noms sont retournés dans l'ordre dans lequel ils sont enregistrés dans le système de fichiers.

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir(). Si la ressource de dossier n'est pas spécifiée, la dernière ressource ouverte avec la fonction opendir() sera utilisée.

Valeurs de retour

Retourne le nom du fichier en cas de réussite ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Liste de tous les fichiers dans le répertoire

Notez la façon dont la valeur de retour de dir() est vérifiée dans l'exemple suivant. Nous testons si la valeur est identique (égale et de même type que -- voyez opérateurs de comparaison pour plus de détails) FALSE sinon, toute entrée dans le nom serait évalué à FALSE causera l'arrêt de la boucle (exemple, un répertoire nommé 0).

<?php

if ($handle opendir('/chemin/vers/fichiers')) {
    echo 
"Directory handle: $handle\n";
    echo 
"Files:\n";

    
/* Ceci est la façon correcte de traverser un dossier. */
    
while (false !== ($file readdir($handle))) {
        echo 
"$file\n";
    }

    
/* Ceci est la MAUVAISE façon de traverser un dossier. */
    
while ($file readdir($handle)) {
        echo 
"$file\n";
    }

    
closedir($handle);
}
?>

Exemple #2 Liste de tous les fichiers dans le répertoire courant et enlève les . et ..

<?php
if ($handle opendir('.')) {
    while (
false !== ($file readdir($handle))) {
        if (
$file != "." && $file != "..") {
            echo 
"$file\n";
        }
    }
    
closedir($handle);
}
?>

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • glob() - Recherche des chemins qui vérifient un masque
  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • scandir() - Liste les fichiers et dossiers dans un dossier



rewinddir

(PHP 4, PHP 5)

rewinddirRetourne à la première entrée du dossier

Description

void rewinddir ([ resource $dir_handle ] )

rewinddir() retourne à la première entrée du dossier identifiée par dir_handle.

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir(). Si la ressource de dossier n'est pas fournie, la dernière ressource ouverte avec la fonction opendir() sera utilisée.



scandir

(PHP 5)

scandir Liste les fichiers et dossiers dans un dossier

Description

array scandir ( string $directory [, int $sorting_order = 0 [, resource $context ]] )

Retourne un tableau de fichier et dossier, issus de directory.

Liste de paramètres

directory

Le dossier qui sera analysé.

sorting_order

Par défaut, le tri est en ordre alphabétique. Si le paramètre optionnel sorting_order est utilisé (mis à 1), alors le tri sera en ordre alphabétique inverse.

context

Pour une description du paramètre context, référez-vous à la section flux de données du manuel.

Valeurs de retour

Retourne un tableau des fichiers en cas de succès ou FALSE en cas d'échec. Si directory n'est pas un dossier, alors une valeur booléenne FALSE est retournée et une erreur de niveau E_WARNING est générée.

Exemples

Exemple #1 Un simple exemple avec scandir()

<?php
$dir    
'/tmp';
$files1 scandir($dir);
$files2 scandir($dir1);

print_r($files1);
print_r($files2);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Exemple #2 Remplacement à scandir() pour PHP 4

<?php
$dir 
"/tmp";
$dh  opendir($dir);
while (
false !== ($filename readdir($dh))) {
    
$files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Notes

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Voir aussi

  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • readdir() - Lit une entrée du dossier
  • glob() - Recherche des chemins qui vérifient un masque
  • is_dir() - Indique si le fichier est un dossier
  • sort() - Trie un tableau


Sommaire

  • chdir — Change de dossier
  • chroot — Change le dossier racine
  • dir — Retourne une instance de la classe Directory
  • closedir — Ferme le pointeur sur le dossier
  • getcwd — Retourne le dossier de travail courant
  • opendir — Ouvre un dossier, et récupère un pointeur dessus
  • readdir — Lit une entrée du dossier
  • rewinddir — Retourne à la première entrée du dossier
  • scandir — Liste les fichiers et dossiers dans un dossier



Informations sur les fichiers


Introduction

Les fonctions dans ce module essaient de savoir le type de contenu et l'encodage d'un fichier en regardant certaines séquences d'octet magique à des positions spécifiques à l'intérieur du fichier. Bien qu'il ne s'agit pas d'une approche infaillible, la méthode heuristique effectue un très bon travail.



Installation/Configuration

Sommaire


Pré-requis

Avant PHP 5.3.0, la bibliothèque magic_open est requise pour bâtir cette extension.



Installation

Cette extension est activée par défaut depuis PHP 5.3.0. Avant cette version, fileinfo était une extension PECL mais n'est plus maintenue en tant que tel. Cependant, les versions avant 5.3+ peuvent toujours utiliser » l'extension PECL non maintenue.

Les utilisateurs Windows doivent inclure la bibliothèque DLL fournie php_fileinfo.dll dans leur php.ini pour activer cette extension.

La bibliothèque libmagic est fournie avec PHP, mais embarque des changements propres pour PHP. Un patch de libmagic nommé libmagic.patch est maintenu et peut être trouvé dans la source de l'extension fileinfo de PHP.

Historique des mises à jour de la bibliothèque embarquée libmagic
Version PHP Version libmagic Notes
5.3.2 5.03  
5.3.0 5.02  



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Il y a une ressource utilisée avec l'extension Fileinfo : un descripteur magique de base de données retourné par finfo_open().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FILEINFO_NONE (entier)
Aucun traitement spécial.
FILEINFO_SYMLINK (entier)
Suit les symlinks.
FILEINFO_MIME_TYPE (entier)
Retourne le type mime. Disponible depuis PHP 5.3.0.
FILEINFO_MIME_ENCODING (entier)
Retourne l'encodage mime du fichier. Disponible depuis PHP 5.3.0.
FILEINFO_MIME (entier)
Retourne le type mime et l'encodage mime, tel que décrit par la RFC 2045.
FILEINFO_COMPRESS (entier)
Décompresse les fichiers compressés. Désactivé depuis PHP 5.3.0 en raison des conséquences sur la sécurité des threads.
FILEINFO_DEVICES (entier)
Regarde les contenus des blocs ou les dispositifs spéciaux de caractères.
FILEINFO_CONTINUE (entier)
Retourne toutes les données trouvées, pas seulement la première.
FILEINFO_PRESERVE_ATIME (entier)
Si possible, conserve le temps d'accès au fichier original.
FILEINFO_RAW (entier)
Ne traduit pas les caractères non imprimables en représentation octale \ooo.


Fonctions Fileinfo


finfo_buffer

(PHP 5 >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_bufferRetourne des informations à propos une chaîne de caractères tampon

Description

Style procédural

string finfo_buffer ( resource $finfo , string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Style orienté objet

string finfo::buffer ( string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Cette fonction est utilisée pour récupérer des informations à propos de données binaires dans une chaîne de caractères.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

string

Contenu d'un fichier à être vérifié.

options

Une ou une union de plusieurs constantes Fileinfo.

context

Valeurs de retour

Retourne une description textuelle de l'argument string ou FALSE si une erreur s'est produite.

Exemples

Exemple #1 Exemple avec finfo_buffer()

<?php
$finfo 
= new finfo(FILEINFO_MIME);
echo 
$finfo->buffer($_POST["script"]) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

application/x-sh; charset=us-ascii

Voir aussi

  • finfo_file() - Retourne des informations à propos d'un fichier



finfo_close

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_closeFerme une ressource fileinfo

Description

Style procédural

bool finfo_close ( resource $finfo )

Style orienté objet

finfo::__destruct ( void )

Cette fonction ferme la ressource ouverte par finfo_open().

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



finfo_file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_fileRetourne des informations à propos d'un fichier

Description

Style procédural

string finfo_file ( resource $finfo , string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Style orienté objet

string finfo::file ( string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Cette fonction est utilisée pour récupérer des informations à propos d'un fichier.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

file_name

Nom d'un fichier à être vérifié.

options

Une ou une union de plusieurs constantes Fileinfo.

context

Pour une description de contexts, référez-vous à Fonctions sur les flux.

Valeurs de retour

Retourne une description textuelle du contenu de l'argument filename ou FALSE si une erreur s'est produite.

Exemples

Exemple #1 Exemple avec finfo_file()

<?php
$finfo 
finfo_open(FILEINFO_MIME_TYPE); // Retourne le type mime à la extension mimetype
foreach (glob("*") as $filename) {
    echo 
finfo_file($finfo$filename) . "\n";
}
finfo_close($finfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

text/html
image/gif
application/vnd.ms-excel

Voir aussi

  • finfo_buffer() - Retourne des informations à propos une chaîne de caractères tampon



finfo_open

finfo->__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_open -- finfo->__constructCrée une nouvelle ressource fileinfo

Description

Style procédural

resource finfo_open ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Style orienté objet (constructeur) :

finfo::__construct ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Cette fonction ouvre une base de données magique et retourne sa ressource.

Liste de paramètres

options

Une ou une union de plusieurs constantes Fileinfo.

magic_file

Nom de fichier d'une base de données magique, normalement quelque chose comme /path/to/magic.mime. Si non spécifié, la variable d'environnement MAGIC est utilisée. Si cette variable n'est pas fixée non plus, /usr/share/misc/magic est utilisé. L'extension .mime et/ou .mgc est ajoutée si approprié.

Le fait de passer NULL ou une chaîne de caractères vide équivaut à utiliser la valeur par défaut.

Valeurs de retour

Retourne une ressource de base de données magique en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$finfo 
= new finfo(FILEINFO_MIME"/usr/share/misc/magic"); // Retourne le type mime

if (!$finfo) {
    echo 
"Échec de l'ouverture de la base de données fileinfo";
    exit();
}

/* Récupère le mime-type d'un fichier spécifique */
$filename "/usr/local/something.txt";
echo 
$finfo->file($filename);

?>

Exemple #2 Style procédural

<?php
$finfo 
finfo_open(FILEINFO_MIME"/usr/share/misc/magic"); // Retourne le type mime

if (!$finfo) {
    echo 
"Échec de l'ouverture de la base de données fileinfo";
    exit();
}

/* Récupère le mime-type d'un fichier spécifique */
$filename "/usr/local/something.txt";
echo 
finfo_file($finfo$filename);

/* Fermeture de la connexion */
finfo_close($finfo);
?>

L'exemple ci-dessus va afficher :

text/plain; charset=us-ascii

Voir aussi



finfo_set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_set_flagsFixe des options de configuration libmagic

Description

Style procédural

bool finfo_set_flags ( resource $finfo , int $options )

Style orienté objet

bool finfo::set_flags ( int $options )

Cette fonction fixe diverses options de Fileinfo. Les options peuvent être aussi fixées directement dans finfo_open() ou par d'autres fonctions Fileinfo.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

options

Une ou une union de plusieurs constantes Fileinfo.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



mime_content_type

(PHP 4 >= 4.3.0, PHP 5)

mime_content_typeDétecte le type de contenu d'un fichier (obsolète)

Description

string mime_content_type ( string $filename )

Retourne le content MIME d'un fichier en utilisant les informations depuis le fichier magic.mime.

Liste de paramètres

filename

Chemin vers le fichier à tester.

Valeurs de retour

Retourne le type de contenu au format MIME, comme text/plain ou application/octet-stream.

Notes

Avertissement

Cette fonction est obsolète, vu que l'extension PECL Fileinfo fournit la même fonctionnalité (et bien plus) de façon plus claire.

Exemples

Exemple #1 Exemple avec mime_content_type()

<?php
echo mime_content_type('php.gif') . "\n";
echo 
mime_content_type('test.php');
?>

L'exemple ci-dessus va afficher :

image/gif
text/plain

Voir aussi


Sommaire

  • finfo_buffer — Retourne des informations à propos une chaîne de caractères tampon
  • finfo_close — Ferme une ressource fileinfo
  • finfo_file — Retourne des informations à propos d'un fichier
  • finfo_open — Crée une nouvelle ressource fileinfo
  • finfo_set_flags — Fixe des options de configuration libmagic
  • mime_content_type — Détecte le type de contenu d'un fichier (obsolète)



Système de fichiers


Introduction

Aucune bibliothèque externe n'est requise pour avoir cette extension, mais si vous voulez le support des grands fichiers LFS sur Linux, vous devez avoir une version récente de gclib et vous devrez compiler PHP avec les options suivantes : -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration le système de fichiers
Nom Défaut Modifiable Historique
allow_url_fopen "1" PHP_INI_ALL PHP_INI_ALL dans PHP <= 4.3.4. PHP_INI_SYSTEM en PHP < 6. Disponible depuis PHP 4.0.4.
allow_url_include "0" PHP_INI_ALL PHP_INI_SYSTEM en PHP 5. Disponible depuis PHP 5.2.0.
user_agent NULL PHP_INI_ALL Disponible depuis PHP 4.3.0.
default_socket_timeout "60" PHP_INI_ALL Disponible depuis PHP 4.3.0.
from "" PHP_INI_ALL  
auto_detect_line_endings "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

allow_url_fopen booléen

Cette option active les versions étendues des fonctions d'accès aux fichiers, qui savent exploiter les URL. Les extensions par défaut permettent d'accéder aux fichiers distants avec les protocoles FTP ou HTTP. Certaines extensions comme zlib, peuvent ajouter d'autres fonctionnalités.

Note:

Cette option peut seulement être définie dans le php.ini pour des raisons de sécurité.

Note:

Cette option a été introduite immédiatement après la publication de la version 4.0.3. Pour les versions jusqu'à la, vous ne pouvez désactiver cette fonctionnalité qu'au moment de la compilation, avec l'option --disable-url-fopen-wrapper .

Avertissement

Sous Windows, dans les versions antérieures à la version 4.3, les fonctions suivantes ne supportent pas l'accès aux fichiers distants : include(), include_once(), require(), require_once() et les fonctions imagecreate() de l'extension Fonctions GD et images.

allow_url_include booléen

Cette option permet l'utilisation des gestionnaires d'URL avec les fonctions suivantes : include(), include_once(), require(), require_once().

Note:

Ce paramètre nécessite que le paramètre allow_url_fopen soit activé avec "on".

user_agent string

Définit le type d'"user agent" (Définition du navigateur web) utilisé par PHP.

default_socket_timeout entier

Durée d'expiration (en secondes) pour les flots basés sur les sockets.

Note: Cette option de configuration a été introduite en PHP 4.3.

from string

L'adresse mail à utiliser pour les connections FTP non-autorisées ou encore pour fournir une valeur au champ "From" sur une connection HTTP.

auto_detect_line_endings booléen

Lorsque cette option est activée, PHP va examiner les données lues par fgets() et file() pour voir si le fichier utilise les conventions de ligne de Unix, MS-Dos ou Macintosh.

Cela permet à PHP de fonctionner avec des systèmes Macintosh, mais par défaut, cette option est désactivée, car cette détection impose un légère pénalité en temps de traitement, mais aussi parce que ceux qui utilisent les retours chariots comme séparateurs auront des soucis de compatibilité.

Note: Cette option de configuration a été introduite en PHP 4.3.



Types de ressources

Le système de fichiers utilise des flux pour leur type de ressource. Les flux sont documentés dans leur propre chapitre.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GLOB_BRACE (entier)
GLOB_ONLYDIR (entier)
GLOB_MARK (entier)
GLOB_NOSORT (entier)
GLOB_NOCHECK (entier)
GLOB_NOESCAPE (entier)
GLOB_AVAILABLE_FLAGS (entier)
PATHINFO_DIRNAME (entier)
PATHINFO_BASENAME (entier)
PATHINFO_EXTENSION (entier)
PATHINFO_FILENAME (entier)
Depuis PHP 5.2.0.
FILE_USE_INCLUDE_PATH (entier)
Cherche filename dans include_path (depuis PHP 5).
FILE_NO_DEFAULT_CONTEXT (entier)
FILE_APPEND (entier)
FILE_IGNORE_NEW_LINES (entier)
Enlève les caractères EOL. Depuis PHP 5.0.0.
FILE_SKIP_EMPTY_LINES (entier)
Enlève les lignes vides. Depuis PHP 5.0.0.
FILE_BINARY (entier)

Mode binaire (depuis PHP 5.2.7).

Note:

Cette constante n'a aucun effet et n'est présente que pour assurer une compatibilité ascendante.

FILE_TEXT (entier)

Mode texte (depuis PHP 5.2.7).

Note:

Cette constante n'a aucun effet et n'est présente que pour assurer une compatibilité ascendante.

INI_SCANNER_NORMAL (entier)
Mode d'analyse normale des directives INI (depuis PHP 5.3).
INI_SCANNER_RAW (entier)
Mode d'analyse brut des directives INI (depuis PHP 5.3).
FNM_NOESCAPE (entier)
Désactive la protection des antislash.
FNM_PATHNAME (entier)
Un slash dans la chaîne ne correspond qu'au slash final du motif.
FNM_PERIOD (entier)
Le point initial dans la chaîne doit correspondre exactement au point dans le motif.
FNM_CASEFOLD (entier)
Recherche sans casse. Une partie de l'extension GNU.


Fonctions sur les systèmes de fichiers

Voir aussi

Pour les fonctions connexes, voyez aussi la section sur les accès aux Dossiers et sur les exécutions de programme.

Pour une liste et une explication sur les différents outils d'accès aux fichiers distants, voyez aussi Liste des protocoles et des gestionnaires supportés.


basename

(PHP 4, PHP 5)

basenameRetourne le nom du fichier dans un chemin

Description

string basename ( string $path [, string $suffix ] )

Prend en paramètre path, le chemin complet d'un fichier et en extrait le nom du fichier.

Liste de paramètres

path

Un chemin.

Sous Windows, les caractères (/) et antislash (\) sont utilisés comme séparateurs de dossier. Sous les autres OS, seul le caractère slash (/) est utilisé.

suffix

Si suffix est fourni, le suffixe sera aussi supprimé.

Valeurs de retour

Retourne le nom de base du chemin path.

Historique

Version Description
4.1.0 Le paramètre suffix a été ajouté.

Exemples

Exemple #1 Exemple avec basename()

<?php
echo "1) ".basename("/etc/sudoers.d"".d").PHP_EOL;
echo 
"2) ".basename("/etc/passwd").PHP_EOL;
echo 
"3) ".basename("/etc/").PHP_EOL;
echo 
"4) ".basename(".").PHP_EOL;
echo 
"5) ".basename("/");
?>

L'exemple ci-dessus va afficher :

1) sudoers
2) passwd
3) etc
4) .
5) 

Notes

Note:

basename() agit de manière naïve et n'est pas au courant du système de fichiers sous-jascent ou des composantes d'un chemin telles que "..".

Note:

basename() est sensible à la locale, donc si le chemin possède des caractères multi-octets, la locale qui convient doit être enregistrée au moyen de la fonction setlocale().

Voir aussi

  • dirname() - Renvoie le nom du dossier parent
  • pathinfo() - Retourne des informations sur un chemin système



chgrp

(PHP 4, PHP 5)

chgrpChange le groupe d'un fichier

Description

bool chgrp ( string $filename , mixed $group )

Essaie de remplacer le groupe propriétaire courant du fichier filename par group.

Seul le super-utilisateur (root) peut changer le groupe propriétaire d'un fichier arbitrairement; les utilisateurs classiques ne peuvent changer le groupe propriétaire d'un fichier que si l'utilisateur propriétaire du fichier est membre du groupe.

Liste de paramètres

filename

Chemin vers le fichier.

group

Un nom ou un numéro de groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification de groupe d'un fichier

<?php
$filename 
'shared_file.txt';
$format "%s's Group ID @ %s: %d\n";
printf($format$filenamedate('r'), filegroup($filename));
chgrp($filename8);
clearstatcache(); // ne pas mettre en cache le résultat de filegroup()
printf($format$filenamedate('r'), filegroup($filename));
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • chown() - Change le propriétaire du fichier
  • chmod() - Change le mode du fichier



chmod

(PHP 4, PHP 5)

chmodChange le mode du fichier

Description

bool chmod ( string $filename , int $mode )

Remplace le mode du fichier filename par le mode mode.

Liste de paramètres

filename

Chemin vers le fichier.

mode

Il est à noter que le mode mode est considéré comme un nombre en notation octale. Afin de vous en assurer, vous pouvez préfixer cette valeur par un zéro (mode) :

<?php
chmod
("/somedir/somefile"755);   // notation décimale : probablement faux
chmod("/somedir/somefile""u+rwx,go+rx"); // chaîne : incorrect
chmod("/somedir/somefile"0755);  // notation octale : valeur du mode correcte
?>

Le paramètre mode est constitué de trois valeurs octales qui spécifient les droits pour le propriétaire, le groupe du propriétaire et les autres, respectivement. Chaque composant peut être calculé en ajoutant les droits désirés. Le chiffre 1 donne les droits d'exécution, le chiffre 2 les droits d'écriture et le chiffre 4 les droits de lecture. Ajoutez simplement ces nombres pour spécifier les droits voulus. Vous pouvez aussi lire le manuel des systèmes Unix avec man 1 chmod et man 2 chmod.

<?php
// Lecture et écriture pour le propriétaire, rien pour les autres
chmod("/somedir/somefile"0600);

// Lecture et écriture pour le propriétaire, lecture pour les autres
chmod("/somedir/somefile"0644);

// Tout pour le propriétaire, lecture et exécution pour les autres
chmod("/somedir/somefile"0755);

// Tout pour le propriétaire, lecture exécution pour le groupe, rien pour les autres
chmod("/somedir/somefile"0750);
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'utilisateur courant est l'utilisateur avec lequel PHP fonctionne. Il est probablement différent de l'utilisateur que vous utilisez en mode Shell ou FTP. Le mode ne peut être modifié que par l'utilisateur à qui appartient le fichier sur la plupart des systèmes.

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note:

Lorsque le safe mode est activé, PHP vérifie si les fichiers et dossiers que vous allez utiliser ont le même UID (propriétaire) que le script qui est en cours d'exécution. De plus, vous ne pouvez pas modifier les SUID, SGID et sticky bits.

Voir aussi

  • chown() - Change le propriétaire du fichier
  • chgrp() - Change le groupe d'un fichier
  • fileperms() - Lit les droits d'un fichier
  • stat() - Renvoie les informations à propos d'un fichier



chown

(PHP 4, PHP 5)

chownChange le propriétaire du fichier

Description

bool chown ( string $filename , mixed $user )

Change le propriétaire du fichier filename en user. Seul le super-utilisateur (root) peut changer arbitrairement le propriétaire d'un fichier.

Liste de paramètres

filename

Chemin vers le fichier.

user

Un nom ou un numéro d'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec chown()

<?php

// Nom du fichier et nom d'utilisateur à utiliser
$file_name"foo.php";
$path "/home/sites/php.net/public_html/sandbox/" $file_name ;
$user_name "root";

// Définit l'utilisateur
chown($path$user_name);

// Vérification du résultat
$stat stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • chmod() - Change le mode du fichier



clearstatcache

(PHP 4, PHP 5)

clearstatcacheEfface le cache de stat()

Description

void clearstatcache ([ bool $clear_realpath_cache = false [, string $filename ]] )

L'appel à la fonction stat() ou lstat() est relativement coûteux en termes de temps d'exécution. Pour cela, le résultat du dernier appel à l'une des fonctions de statut, (voir la liste ci-dessous), est sauvegardé pour réutilisation ultérieure. Si vous voulez forcer la vérification du statut d'un fichier, dans le cas où le fichier aurait pu être modifié ou aurait disparu, vous devez utiliser la fonction clearstatcache() afin d'effacer de la mémoire les résultats du dernier appel à la fonction.

Sachez que PHP ne met pas en cache les informations concernant un fichier inexistant. Si vous appelez file_exists() sur un fichier qui n'existe pas, la fonction retournera FALSE jusqu'à ce que vous créiez le fichier. Si vous créez le fichier, la fonction retournera TRUE même si vous effacez le fichier.

Note:

Cette fonction met en cache des informations sur les fichiers. Vous n'avez donc besoin d'appeler clearstatcache() que si vous faites des opérations multiples sur le dossier, et que vous voulez avoir une version récente des informations.

Les fonctions affectées sont : stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype(), et fileperms().

Liste de paramètres

clear_realpath_cache

Si l'on doit ou non vider le cache réel.

filename

Nettoie le cache réel d'un fichier spécifique. Ne peut être utilisé que si le paramètre clear_realpath_cache vaut TRUE.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
5.3.0 Ajout des paramètres optionnels clear_realpath_cache et filename.

Exemples

Exemple #1 Exemple avec clearstatcache()

<?php
$file 
'output_log.txt';

function 
get_owner($file)
{
    
$stat stat($file);
    
$user posix_getpwuid($stat['uid']);
    return 
$user['name'];
}

$format "UID @ %s: %s\n";

printf($formatdate('r'), get_owner($file));

chown($file'ross');
printf($formatdate('r'), get_owner($file));

clearstatcache();
printf($formatdate('r'), get_owner($file));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross



copy

(PHP 4, PHP 5)

copyCopie un fichier

Description

bool copy ( string $source , string $dest [, resource $context ] )

Fait une copie du fichier source vers le fichier dest.

Si vous souhaitez déplacer un fichier, utilisez la fonction rename().

Liste de paramètres

source

Chemin vers le fichier source.

dest

Le chemin de destination. Si dest est une URL, la copie peut échouer si ce protocole ne supporte pas l'écrasement de fichiers existants.

Avertissement

Si le fichier de destination dest existe déjà, il sera écrasé.

context

Une ressource de contexte valide, créée par la fonction stream_context_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Ajout du support du contexte.
4.3.0 Les paramètres source et dest peuvent désormais être des URL si le gestionnaire de fichiers distants a été activé. Voir la fonction fopen() pour plus de détails.

Exemples

Exemple #1 Exemple avec copy()

<?php
$file 
'example.txt';
$newfile 'example.txt.bak';

if (!
copy($file$newfile)) {
    echo 
"La copie $file du fichier a échoué...\n";
}
?>

Voir aussi



delete

deleteVoir unlink() ou unset()

Description

void delete ( void )

Ceci est une page d'entrée du manuel pour ceux qui recherchent la fonction unlink() ou unset().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



dirname

(PHP 4, PHP 5)

dirnameRenvoie le nom du dossier parent

Description

string dirname ( string $path )

Renvoie le chemin parent d'un chemin représentant un fichier ou un dossier.

Liste de paramètres

path

Un chemin.

Sous Windows, les slash (/) et antislash (\) sont utilisés comme séparateurs de dossier. Dans les autres environnements, seul le slash (/) est utilisé.

Valeurs de retour

Retourne le dossier parent du chemin. S'il n'y a pas de slash dans le chemin path, un point ('.') sera retourné, indiquant le dossier courant. Sinon, la chaîne retournée sera le chemin path dont on aura supprimé tous les /component.

Historique

Version Description
5.0.0 dirname() gère maintenant les données binaires.
4.0.3 dirname() respecte désormais la norme POSIX.

Exemples

Exemple #1 Exemple avec dirname()

<?php
echo "1) " dirname("/etc/passwd") . PHP_EOL// 1) /etc
echo "2) " dirname("/etc/") . PHP_EOL// 2) / (ou \ sous Windows)
echo "3) " dirname("."); // 3) .
?>

Notes

Note:

dirname() agit naïvement sur la chaine en entrée et n'est pas au courant du système de fichiers courant ou d'éventuels composantes comme "..".

Note:

dirname() est sensible à la locale, donc si le chemin possède des caractères multi-octets, la locale qui convient doit être enregistrée au moyen de la fonction setlocale().

Note:

Depuis PHP 4.3.0, cette fonction retournera toujours un slash ou un point dans les cas où l'ancienne version retournait une chaîne vide.

Voici des exemples exposant ce comportement :

<?php

//Avant PHP 4.3.0
dirname('c:/'); // Retourné : '.'

//Après PHP 4.3.0
dirname('c:/x'); // Retourné : 'c:\'
dirname('c:/Temp/x'); // Retourné : 'c:/Temp'
dirname('/x'); // Retourné : '\'

?>

Voir aussi

  • basename() - Retourne le nom du fichier dans un chemin
  • pathinfo() - Retourne des informations sur un chemin système
  • realpath() - Retourne le chemin canonique absolu



disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_spaceRenvoie l'espace disque disponible sur le système de fichiers ou la partition

Description

float disk_free_space ( string $directory )

Renvoie l'espace disque disponible dans le répertoire ou la partition.

Liste de paramètres

directory

Un dossier du système de fichier ou une partition d'un disque.

Note:

Si vous fournissez un fichier au lieu d'un dossier, le comportement de cette fonction peut être aléatoire, suivant le système d'exploitation et les versions de PHP.

Valeurs de retour

Retourne le nombre d'octets disponible, sous la forme d'un nombre décimal ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec disk_free_space()

<?php
// $df contient le nombre d'octets libres sur "/"
$df disk_free_space("/");

// Sous Windows:
$df_c disk_free_space("C:");
$df_d disk_free_space("D:");
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voir aussi



disk_total_space

(PHP 4 >= 4.1.0, PHP 5)

disk_total_spaceRetourne la taille d'un dossier ou d'une partition

Description

float disk_total_space ( string $directory )

Lit récursivement toutes les tailles du dossier directory et retourne la somme en octets.

Liste de paramètres

directory

Un dossier du système de fichier ou la partition d'un disque.

Valeurs de retour

Retourne la taille en octets, sous la forme d'un nombre décimal ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec disk_total_space()

<?php
// $ds contient le nombre d'octets du dossier "/"
$ds disk_total_space("/");

// Sous Windows :
$ds disk_total_space("C:");
$ds disk_total_space("D:");
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voir aussi

  • disk_free_space() - Renvoie l'espace disque disponible sur le système de fichiers ou la partition



diskfreespace

(PHP 4, PHP 5)

diskfreespaceAlias de disk_free_space()

Description

Cette fonction est un alias de : disk_free_space().



fclose

(PHP 4, PHP 5)

fcloseFerme un fichier

Description

bool fclose ( resource $handle )

Ferme le fichier représenté par le pointeur handle.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et doit avoir été correctement ouvert par la fonction fopen() ou la fonction fsockopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fclose()

<?php

$handle 
fopen('somefile.txt''r');

fclose($handle);

?>

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre une socket de connexion Internet ou Unix



feof

(PHP 4, PHP 5)

feofTeste la fin du fichier

Description

bool feof ( resource $handle )

Teste la fin du fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Retourne TRUE si le pointeur handle est à la fin du fichier ou si une erreur survient, sinon, retourne FALSE.

Notes

Avertissement

Si une connexion ouverte avec fsockopen() n'est pas fermée par le serveur, feof() se bloquera. Pour contourner ce comportement, reportez-vous à l'exemple ci-dessous :

Exemple #1 Gestion des délais d'attente dépassés feof()

<?php
function safe_feof($fp, &$start NULL) {
 
$start microtime(true);

 return 
feof($fp);
}

/* Assumons que $fp a été précédemment ouvert par fsockopen() */

$start NULL;
$timeout ini_get('default_socket_timeout');

while(!
safe_feof($fp$start) && (microtime(true) - $start) < $timeout)
{
 
/* Gestion */
}
?>

Avertissement

Si le pointeur de fichier passé n'est pas valide, vous obtiendrez une boucle infinie car feof() échouera à retourner TRUE.

Exemple #2 Exemple avec feof() et un pointeur de fichier invalide

<?php
// Si le fichier ne peut être lu ou n'existe pas, la fonction fopen retourne FALSE
$file = @fopen("no_such_file""r");

// FALSE issu de fopen emmetra une alerte et fera quel'on aura une boucle infinie ici
while (!feof($file)) {
}

fclose($file);
?>



fflush

(PHP 4 >= 4.0.1, PHP 5)

fflushEnvoie tout le contenu généré dans un fichier

Description

bool fflush ( resource $handle )

Force l'écriture de toutes les données bufferisées dans le fichier désigné par handle.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Écriture d'un fichier en utilisant fflush()

<?php
$filename 
'bar.txt';

$file fopen($filename'r+');
rewind($file);
fwrite($file'Foo');
fflush($file);
ftruncate($fileftell($file));
fclose($file);
?>

Voir aussi



fgetc

(PHP 4, PHP 5)

fgetcLit un caractère dans un fichier

Description

string fgetc ( resource $handle )

Lit un caractère dans un fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Retourne une chaîne contenant un seul caractère, lu depuis le fichier pointé par handle. Retourne FALSE à la fin du fichier.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec fgetc()

<?php
$fp 
fopen('somefile.txt''r');
if (!
$fp) {
    echo 
'Impossible d'ouvrir le fichier somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre une socket de connexion Internet ou Unix
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier



fgetcsv

(PHP 4, PHP 5)

fgetcsvRenvoie la ligne courante et cherche les champs CSV

Description

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = ',' [, string $enclosure = '"' [, string $escape = '\\' ]]]] )

Similaire à fgets() mais fgetcsv() analyse la ligne qu'il lit et recherche les champs CSV, qu'il va retourner dans un tableau les contenant.

Liste de paramètres

handle

Un pointeur valide sur un fichier ouvert avec fopen(), popen() ou fsockopen().

length

Doit être plus grand que la plus grande ligne (en terme de caractères) à lire dans le fichier (y compris le caractère de fin de ligne). Ce paramètre est optionnel depuis PHP 5. Omettre ce paramètre (ou le définir à 0 en PHP 5.0.4 et suivant) fait que la longueur maximale de la ligne n'est pas limitée, ce qui est légèrement plus lent.

delimiter

Spécifie le séparateur (un seul caractère).

enclosure

Spécifie le caractère de délimitation (un seul caractère).

escape

Définit le caractère d'échappement (un seul caractère). Par défaut, c'est un antislash.

Valeurs de retour

Retourne un tableau indexé contenant les champs lus.

Note:

Une ligne vide dans un fichier CSV sera retournée sous la forme d'un tableau contenant la valeur NULL et ne sera pas traitée comme une erreur.

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

fgetcsv() retourne NULL si un paramètre handle invalide est fourni ou FALSE en cas d'autres erreurs, y compris la fin du fichier.

Historique

Version Description
5.3.0 Le paramètre escape a été ajouté.
4.3.5 fgetcsv() gère désormais les données binaires.
4.3.0 Le paramètre enclosure a été ajouté.

Exemples

Exemple #1 Lit et affiche le contenu d'un fichier CSV

<?php
$row 
1;
if ((
$handle fopen("test.csv""r")) !== FALSE) {
    while ((
$data fgetcsv($handle1000",")) !== FALSE) {
        
$num count($data);
        echo 
"<p> $num champs à la ligne $row: <br /></p>\n";
        
$row++;
        for (
$c=0$c $num$c++) {
            echo 
$data[$c] . "<br />\n";
        }
    }
    
fclose($handle);
}
?>

Notes

Note:

La définition des locales entre en jeux avec cette fonction. Si LANG vaut, e.g. en_US.UTF-8, les fichiers encodés sur un octet sont mal lus par cette fonction.

Voir aussi

  • str_getcsv() - Analyse une chaîne de caractères CSV dans un tableau
  • explode() - Coupe une chaîne en segments
  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • pack() - Compacte des données dans une chaîne binaire
  • fputcsv() - Formate une ligne en CSV et l'écrit dans un fichier



fgets

(PHP 4, PHP 5)

fgetsRécupère la ligne courante sur laquelle se trouve le pointeur du fichier

Description

string fgets ( resource $handle [, int $length ] )

Récupère la ligne courante sur laquelle se trouve le pointeur du fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

length

Lit jusqu'à la taille length - 1 octet depuis le pointeur de fichier handle, ou bien la fin du fichier, ou une nouvelle ligne (qui est inclue dans la valeur retournée), ou encore un EOF (celui qui arrive en premier). Si aucune longueur n'est fournie, la fonction lira le flux jusqu'à la fin de la ligne.

Note:

Jusqu'en PHP 4.3.0, le fait d'omettre ce paramètre fait que la fonction lira 1024 octets de la ligne. Si la majorité des lignes du fichier dépassent les 8 ko, il est plus efficace pour votre script de spécifier ce paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant les length premiers caractères, moins 1 octet depuis le pointeur de fichier handle. FALSE est retourné s'il n'y a plus de données à lire.

Si une erreur survient, la fonction retourne FALSE.

Historique

Version Description
4.3.0 fgets() est compatible avec les données binaires.
4.2.0 Le paramètre length devient optionnel.

Exemples

Exemple #1 Lecture d'un fichier ligne par ligne

<?php
$handle 
= @fopen("/tmp/inputfile.txt""r");
if (
$handle) {
    while ((
$buffer fgets($handle4096)) !== false) {
        echo 
$buffer;
    }
    if (!
feof($handle)) {
        echo 
"Erreur: fgets() a échoué\n";
    }
    
fclose($handle);
}
?>

Notes

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Note:

Les programmeurs habitués à la programmation 'C' noteront que fgets() ne se comporte pas comme son équivalent C lors de la rencontre de la fin du fichier.

Voir aussi

  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fread() - Lecture du fichier en mode binaire
  • fgetc() - Lit un caractère dans un fichier
  • stream_get_line() - Lit une ligne dans un flux
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre une socket de connexion Internet ou Unix
  • stream_set_timeout() - Configure la durée d'expiration d'un flux



fgetss

(PHP 4, PHP 5)

fgetssRenvoie la ligne courante du fichier et élimine les balises HTML

Description

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

Identique à fgets(), sauf que la fonction fgetss() supprime tous les octets nuls, toutes les balises HTML et PHP qu'il trouve dans le texte lu.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

length

Taille des données à récupérer.

allowable_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées.

Valeurs de retour

Retourne une chaîne de taille length - 1 octet lu depuis le fichier pointé par handle, dont les balises HTML et PHP ont été échappées.

Si une erreur survient, la fonction retourne FALSE.

Historique

Version Description
5.0.0 Le paramètre length devient optionnel.

Exemple #1 Lecture d'un fichier PHP ligne par ligne

<?php
$str 
= <<<EOD
<html><body>
 <p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents('sample.php'$str);

$handle = @fopen("sample.php""r");
if (
$handle) {
    while (!
feof($handle)) {
        
$buffer fgetss($handle4096);
        echo 
$buffer;
    }
    
fclose($handle);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

 Welcome! Today is the  of .

Text outside of the HTML block.

Notes

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Voir aussi

  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre une socket de connexion Internet ou Unix
  • strip_tags() - Supprime les balises HTML et PHP d'une chaîne



file_exists

(PHP 4, PHP 5)

file_existsVérifie si un fichier ou un dossier existe

Description

bool file_exists ( string $filename )

Vérifie si un fichier ou un dossier existe.

Liste de paramètres

filename

Chemin vers le fichier ou le dossier.

Sous Windows, utilisez le format de chemin //computername/share/filename ou \\\\computername\share\filename pour vérifier qu'un fichier est disponible sur le partage réseau.

Valeurs de retour

Retourne TRUE si le fichier ou le dossier spécifié par le paramètre filename existe ; FALSE sinon.

Note:

Retourne FALSE pour les liens symboliques pointant vers un fichier qui n'existe pas.

Avertissement

Cette fonction retourne FALSE pour les fichiers non accessibles en raison des restrictions du safe mode. Cependant, ces fichiers peuvent toujours être inclus s'ils sont dans le dossier safe_mode_include_dir.

Note:

La vérification est effectuée en utilisant l'UID/GID réel au lieu de l'effectif.

Exemples

Exemple #1 Teste l'existence d'un fichier

<?php
$filename 
'/path/to/foo.txt';

if (
file_exists($filename)) {
    echo 
"Le fichier $filename existe.";
} else {
    echo 
"Le fichier $filename n'existe pas.";
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • is_writable() - Indique si un fichier est accessible en écriture
  • is_file() - Indique si le fichier est un véritable fichier
  • file() - Lit le fichier et renvoie le résultat dans un tableau



file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contentsLit tout un fichier dans une chaîne

Description

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )

Identique à la fonction file(), hormis le fait que file_get_contents() retourne le fichier filename dans une chaîne, à partir de la position offset, et jusqu'à maxlen octets. En cas d'erreur, file_get_contents() retourne FALSE.

file_get_contents() est la façon recommandée pour lire le contenu d'un fichier dans une chaîne de caractères. Elle utilisera un buffer en mémoire si ce mécanisme est supporté par votre système, afin d'améliorer les performances.

Note:

Si vous ouvrez une URI avec des caractères spéciaux, comme des espaces, vous devez encoder cette URI avec la fonction urlencode().

Liste de paramètres

filename

Nom du fichier à lire.

use_include_path

Note:

Depuis PHP 5, la constante FILE_USE_INCLUDE_PATH peut être utilisée pour déclencher la recherche dans le chemin d'inclusion.

context

Une ressource de contexte valide, créée avec la fonction stream_context_create(). Si vous n'avez pas besoin d'utiliser un contexte particulier, vous pouvez ignorer ce paramètre en affectant la valeur NULL.

offset

La position à partir de laquelle on commence à lire dans le flux original.

Le déplacement dans le fichier (offset) n'est pas supporté sur des fichiers distants. Si vous tentez de vous déplacer dans un fichier qui n'est pas un fichier local peut fonctionner sur les petits déplacements, mais le comportement peut ne pas être attendu car le processus utilise le flux du buffer.

maxlen

La taille maximale des données à lire. Le comportement par défaut est de lire jusqu'à la fin du fichier. Ce paramètre s'applique sur le flux traité par les filtres.

Valeurs de retour

Retourne les données lues ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si, soit le paramètre maxlength est plus petit que zéro, soit le paramètre offset est supérieur à la longueur du flux.

Exemples

Exemple #1 Lit et affiche le code HTML d'un site Web

<?php
$homepage 
file_get_contents('http://www.example.com/');
echo 
$homepage;
?>

Exemple #2 Recherche un fichier dans le include_path

<?php
// avant PHP 5
$file file_get_contents('./people.txt'true);
// depuis PHP 5
$file file_get_contents('./people.txt'FILE_USE_INCLUDE_PATH);
?>

Exemple #3 Lit une section d'un fichier

<?php
// Lit 14 caractères à partir du 20ème
$section file_get_contents('./people.txt'NULLNULL2014);
var_dump($section);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(14) "lle Bjori Ro" 

Exemple #4 Utilisation des contextes de flux

<?php
// Création d'un flux
$opts = array(
  
'http'=>array(
    
'method'=>"GET",
    
'header'=>"Accept-language: en\r\n" .
              
"Cookie: foo=bar\r\n"
  
)
);

$context stream_context_create($opts);

// Accès à un fichier HTTP avec les entêtes HTTP indiqués ci-dessus
$file file_get_contents('http://www.example.com/'false$context);
?>

Historique

Version Description
5.1.0 Ajout des paramètres offset et maxlen.
5.0.0 Ajout du support du contexte.

Notes

Note: Cette fonction gère les chaînes binaires.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Voir aussi



file_put_contents

(PHP 5)

file_put_contentsÉcrit un contenu dans un fichier

Description

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

Revient à appeler les fonctions fopen(), fwrite() et fclose() successivement.

Si le fichier filename n'existe pas, il sera créé. Sinon, le fichier existant sera écrasé, si l'option FILE_APPEND n'est pas définie.

Liste de paramètres

filename

Chemin vers le fichier dans lequel on doit écrire les données.

data

Les données à écrire. Peut être soit une chaîne de caractères, un tableau ou une ressource de flux (explication plus bas).

Si data est une ressource de type stream, le buffer restant de ce flux sera copié dans le fichier spécifié. Cela revient à utiliser la fonction stream_copy_to_stream().

Vous pouvez également spécifier le paramètre data en tant qu'un tableau à une seule dimension. C'est l'équivalent à file_put_contents($filename, implode('', $array)).

flags

La valeur du paramètre flags peut être n'importe quelle combinaison des drapeaux suivants, liés par l'opérateur binaire OU (|).

Drapeaux disponibles
Drapeau Description
FILE_USE_INCLUDE_PATH Recherche le fichier filename dans le dossier d'inclusion. Voir include_path pour plus d'informations.
FILE_APPEND Si le fichier filename existe déjà, cette option permet d'ajouter les données au fichier au lieu de l'écraser.
LOCK_EX Acquiert un verrou exclusif sur le fichier lors de l'opération d'écriture.

context

Une ressource de contexte valide créée avec la fonction stream_context_create().

Valeurs de retour

Retourne le nombre d'octets qui ont été écrits au fichier, ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Utilisation simple de file_put_contents

<?php
$file 
'people.txt';
// Ouvre un fichier pour lire un contenu existant
$current file_get_contents($file);
// Ajoute une personne
$current .= "Jean Dupond\n";
// Écrit le résultat dans le fichier
file_put_contents($file$current);
?>

Exemple #2 Utilisation d'options pour file_put_contents

<?php
$file 
'people.txt';
// Une nouvelle personne à ajouter
$person "Jean Dupond\n";
// Ecrit le contenu dans le fichier, en utilisant le drapeau
// FILE_APPEND pour rajouter à la suite du fichier et
// LOCK_EX pour empêcher quiconque d'autre d'écrire dans le fichier
// en même temps
file_put_contents($file$personFILE_APPEND LOCK_EX);
?>

Historique

Version Description
5.0.0 Ajout du support du contexte.
5.1.0 Ajout du support de LOCK_EX et la possibilité de passer une ressource de flux dans le paramètre data.

Notes

Note: Cette fonction gère les chaînes binaires.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Voir aussi



file

(PHP 4, PHP 5)

fileLit le fichier et renvoie le résultat dans un tableau

Description

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

Lit le fichier et renvoie le résultat dans un tableau.

Note:

Vous pouvez utiliser la fonction file_get_contents() pour retourner le contenu d'un fichier dans une chaîne de caractères.

Liste de paramètres

filename

Chemin vers le fichier.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

flags

Le paramètre optionnel flags peut être une ou plusieurs des constantes suivantes :

FILE_USE_INCLUDE_PATH
Recherche le fichier dans l'include_path.
FILE_IGNORE_NEW_LINES
N'ajoute pas de nouvelle ligne à la fin de chaque élément du tableau.
FILE_SKIP_EMPTY_LINES
Ignore les lignes vides.

context

Une ressource de contexte valide, créée avec la fonction stream_context_create().

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Fonctions sur les flux.

Valeurs de retour

Retourne le fichier dans un tableau. Chaque élément du tableau correspond à une ligne du fichier, et les retours-chariot sont placés en fin de ligne. Si une erreur survient, file() retournera FALSE.

Note:

Chaque ligne du tableau résultant inclura la fin de ligne, à moins que FILE_IGNORE_NEW_LINES ne soit utilisé, donc, vous avez toujours besoin d'utiliser la fonction rtrim() si vous ne voulez pas de fin de lignes.

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Historique

Version Description
5.0.0 Le paramètre context a été ajouté.
5.0.0 Avant PHP 5.0.0, le paramètreflags ne couvre que l'include_path et est activé s'il vaut 1.
4.3.0 file() devient compatible avec les données binaires.

Exemples

Exemple #1 Exemple avec file()

<?php
// Lit une page web dans un tableau.
$lines file('http://www.example.com/');

// Affiche toutes les lignes du tableau comme code HTML, avec les numéros de ligne
foreach ($lines as $line_num => $line) {
    echo 
"Line #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br />\n";
}

// Un autre exemple, pour obtenir une page web dans une chaîne. Voir aussi la fonction file_get_contents().
$html implode(''file('http://www.example.com/'));

// Utilisation de drapeau, depuis PHP 5
$trimmed file('somefile.txt'FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
?>

Notes

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Voir aussi



fileatime

(PHP 4, PHP 5)

fileatimeRenvoie la date à laquelle le fichier a été accédé pour la dernière fois

Description

int fileatime ( string $filename )

Renvoie la date à laquelle le fichier a été accédé pour la dernière fois.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la date à laquelle le fichier a été accédé pour la dernière fois ou FALSE si une erreur survient. La date est retournée sous la forme d'un timestamp Unix.

Exemples

Exemple #1 Exemple avec fileatime()

<?php

// Affiche : somefile.txt a été accédé le : December 29 2002 22:16:23.

$filename 'somefile.txt';
if (
file_exists($filename)) {
    echo 
"$filename a été accédé le : " date("F d Y H:i:s."fileatime($filename));
}

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note:

La date de dernière modification d'un fichier est supposé changer à chaque fois que les blocs de données du fichier ont commencés à être lus. Cela peut être très coûteux en terme de performance lorsqu'une application accède régulièrement à beaucoup de fichiers ou de répertoires.

La plupart des systèmes de fichiers Unix peuvent être montés en ayant désactivés cette information pour accroître les performances d'une telle application ; les nouvelles USENET sont un bon exemple. Sur de telles systèmes de fichiers, cette fonction devient totalement inutile.

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier
  • fileinode() - Lit le numéro d'inode du fichier
  • date() - Formate une date/heure locale



filectime

(PHP 4, PHP 5)

filectimeRenvoie la date de dernier accès à un inode

Description

int filectime ( string $filename )

Renvoie la date de dernier accès à un inode d'un fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la date à laquelle l'inode a été accédé pour la dernière fois ou FALSE si une erreur survient. L'heure est retournée sous la forme d'un timestamp Unix.

Exemples

Exemple #1 Exemple avec filectime()

<?php

// Affiche : somefile.txt a été modifié le : December 29 2002 22:16:23.

$filename 'somefile.txt';
if (
file_exists($filename)) {
    echo 
"$filename a été modifié le : " date("F d Y H:i:s."filectime($filename));
}

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note:

Sur la plupart des serveurs UNIX, un fichier est considéré comme modifié si les données de son inode sont modifiées. C'est-à-dire lorsque les permissions (utilisateur, groupe ou autre) ont été modifiées. Voyez aussi filemtime() (que vous pourrez utiliser lorsque vous créerez des indications telles que "Dernière modification : " sur les pages web) et fileatime().

Note:

Notez aussi que sur certains systèmes UNIX, le ctime d'un fichier texte est considéré comme sa date de création. Cela est faux ! Il n'y a pas de date de création de fichier sous la plupart des systèmes UNIX.

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier



filegroup

(PHP 4, PHP 5)

filegroupLire le nom du groupe

Description

int filegroup ( string $filename )

Lit le nom du groupe. L'identifiant de groupe est retourné au format numérique, utilisez posix_getgrgid() pour retrouver le nom du groupe.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne le groupe qui possède le fichier filename, ou FALSE en cas d'erreur. L'identifiant de groupe est retourné au format numérique, utilisez posix_getgrgid() pour retrouver le nom du groupe. En cas d'erreur, FALSE est retourné.

Exemples

Exemple #1 Recherche le groupe d'un fichier

<?php
$filename 
'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Erreurs / Exceptions

Si une erreur survient, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi



fileinode

(PHP 4, PHP 5)

fileinodeLit le numéro d'inode du fichier

Description

int fileinode ( string $filename )

Lit le numéro d'inode du fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne le numéro d'inode du fichier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Comparaison de l'inode d'un fichier avec le fichier courant

<?php
$filename 
'index.php';
if (
getmyinode() == fileinode($filename)) {
    echo 
'Vous vérifiez le fichier courant.';
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • getmyinode() - Retourne l'inode du script
  • stat() - Renvoie les informations à propos d'un fichier



filemtime

(PHP 4, PHP 5)

filemtimeLit la date de dernière modification du fichier

Description

int filemtime ( string $filename )

Lit la date à laquelle le fichier a été modifié pour la dernière fois.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la date de dernière modification du fichier filename ou FALSE si une erreur survient. Utilisez date() sur ce résultat pour obtenir une date de modification humainement lisible.

Exemples

Exemple #1 Exemple avec filemtime()

<?php
// Affichera : somefile.txt a été modifié le : December 29 2002 22:16:23.

$filename 'somefile.txt';
if (
file_exists($filename)) {
    echo 
"$filename a été modifié le : " date ("F d Y H:i:s."filemtime($filename));
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filectime() - Renvoie la date de dernier accès à un inode
  • stat() - Renvoie les informations à propos d'un fichier
  • touch() - Modifie la date de modification et de dernier accès d'un fichier
  • getlastmod() - Retourne la date de dernière modification de la page



fileowner

(PHP 4, PHP 5)

fileownerLit l'identifiant du propriétaire d'un fichier

Description

int fileowner ( string $filename )

Lit l'identifiant du propriétaire d'un fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie l'identifiant du propriétaire du fichier filename, ou FALSE si une erreur survient. L'identifiant du propriétaire est numérique : il faut utiliser posix_getpwuid() pour retrouver le nom d'utilisateur.

Exemples

Exemple #1 Recherche du propriétaire d'un fichier

<?php
$filename 
'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi



fileperms

(PHP 4, PHP 5)

filepermsLit les droits d'un fichier

Description

int fileperms ( string $filename )

Lit les droits du fichier donné.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne les droits du fichier ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage des droits en valeur octale

<?php
echo substr(sprintf('%o'fileperms('/tmp')), -4);
echo 
substr(sprintf('%o'fileperms('/etc/passwd')), -4);
?>

L'exemple ci-dessus va afficher :

1777
0644

Exemple #2 Affichage de tous les droits

<?php
$perms 
fileperms('/etc/passwd');

if ((
$perms 0xC000) == 0xC000) {
    
// Socket
    
$info 's';
} elseif ((
$perms 0xA000) == 0xA000) {
    
// Lien symbolique
    
$info 'l';
} elseif ((
$perms 0x8000) == 0x8000) {
    
// Régulier
    
$info '-';
} elseif ((
$perms 0x6000) == 0x6000) {
    
// Block special
    
$info 'b';
} elseif ((
$perms 0x4000) == 0x4000) {
    
// Dossier
    
$info 'd';
} elseif ((
$perms 0x2000) == 0x2000) {
    
// Caractère spécial
    
$info 'c';
} elseif ((
$perms 0x1000) == 0x1000) {
    
// pipe FIFO
    
$info 'p';
} else {
    
// Inconnu
    
$info 'u';
}

// Autres
$info .= (($perms 0x0100) ? 'r' '-');
$info .= (($perms 0x0080) ? 'w' '-');
$info .= (($perms 0x0040) ?
            ((
$perms 0x0800) ? 's' 'x' ) :
            ((
$perms 0x0800) ? 'S' '-'));

// Groupe
$info .= (($perms 0x0020) ? 'r' '-');
$info .= (($perms 0x0010) ? 'w' '-');
$info .= (($perms 0x0008) ?
            ((
$perms 0x0400) ? 's' 'x' ) :
            ((
$perms 0x0400) ? 'S' '-'));

// Tout le monde
$info .= (($perms 0x0004) ? 'r' '-');
$info .= (($perms 0x0002) ? 'w' '-');
$info .= (($perms 0x0001) ?
            ((
$perms 0x0200) ? 't' 'x' ) :
            ((
$perms 0x0200) ? 'T' '-'));

echo 
$info;
?>

L'exemple ci-dessus va afficher :

-rw-r--r--

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • chmod() - Change le mode du fichier
  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • stat() - Renvoie les informations à propos d'un fichier



filesize

(PHP 4, PHP 5)

filesizeLit la taille d'un fichier

Description

int filesize ( string $filename )

Lit la taille du fichier donné.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la taille du fichier filename, ou FALSE (et génère une erreur de niveau E_WARNING) en cas d'erreur.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, filesize() peut retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go. Pour les fichiers entre 2 et 4 Go, cela peut être contourné avec sprintf("%u", filesize($file)).

Exemples

Exemple #1 Exemple avec filesize()

<?php

// Affiche e.g.  somefile.txt: 1024 bytes

$filename 'somefile.txt';
echo 
$filename ': ' filesize($filename) . ' bytes';

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi



filetype

(PHP 4, PHP 5)

filetypeRetourne le type de fichier

Description

string filetype ( string $filename )

Retourne le type d'un fichier donné.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne le type du fichier. Les réponses possibles sont : fifo, char, dir, block, link, file socket et unknown.

Retourne FALSE en cas d'erreur. filetype() va aussi émettre une erreur E_NOTICE si l'appel stat échoue, ou si le type de fichier est inconnu.

Exemples

Exemple #1 Exemple avec filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • is_file() - Indique si le fichier est un véritable fichier
  • is_link() - Indique si le fichier est un lien symbolique
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • stat() - Renvoie les informations à propos d'un fichier
  • mime_content_type() - Détecte le type de contenu d'un fichier (obsolète)



flock

(PHP 4, PHP 5)

flockVerrouille le fichier

Description

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

flock() permet de réaliser un système simple de verrous écriture/lecture, qui peut être utilisé sur n'importe quelle plate-forme (Unix et Windows compris).

Avant PHP 5.3.2, le verrou est également levé avec la fonction fclose() (qui est également automatiquement appelée lors de la fin du script).

PHP dispose d'un système complet de verrouillage de fichiers. Tous les programmes qui accèdent au fichier doivent utiliser la même méthode de verrouillage pour qu'il soit efficace. Par défaut, cette fonction se bloquera tant que le verrou demandé ne sera pas acquis ; ce comportement peut être contrôlé (sur les systèmes différents de Windows) avec l'option LOCK_NB dont vous trouverez la documentation ci-dessous.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

operation

operation peut prendre une des valeurs suivantes :

  • LOCK_SH pour acquérir un verrou partagé (lecture).
  • LOCK_EX pour acquérir un verrou exclusif (écriture).
  • LOCK_UN pour libérer un verrou (partagé ou exclusif).

Il est également possible d'ajouter LOCK_NB comme masque d'une des opérations précédentes si vous ne voulez pas que la fonction flock() bloque durant le verrouillage. (non supporté sous Windows)

wouldblock

Ce troisième argument optionnel est défini à TRUE si le verrou doit bloquer le script (condition d'erreur EWOULDBLOCK) (non supporté sous Windows).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.2 Le déverrouillage automatique lorsque la ressource de fichiers est fermée a été supprimée. Le déverrouillage doit maintenant être effectuée manuellement.
4.0.1 Les constantes LOCK_XXX ont été ajoutées. Avant, vous deviez utiliser 1 pour LOCK_SH, 2 pour LOCK_EX, 3 pour LOCK_UN et 4 pour LOCK_NB

Exemples

Exemple #1 Exemple avec flock()

<?php

$fp 
fopen("/tmp/lock.txt""r+");

if (
flock($fpLOCK_EX)) { // pose un verrou exclusif
    
ftruncate($fp0);     // effacement du contenu
    
fwrite($fp"Écrire dans un fichier\n");
    
flock($fpLOCK_UN);   // libère le verrou
} else {
    echo 
"Impossible de verrouiller le fichier !";
}

fclose($fp);

?>

Exemple #2 Exemple avec flock() en utilisant l'option LOCK_NB

<?php
$fp 
fopen('/tmp/lock.txt''r+');

/* Activation de l'option LOCK_NB lors d'une opération LOCK_EX */
if(!flock($fpLOCK_EX LOCK_NB)) {
    echo 
'Impossible d\'obtenir le verrou';
    exit(-
1);
}

/* ... */

fclose($fp);
?>

Notes

Note:

flock() utilise les verrous obligatoires sous Windows, qui sont aussi supportés sur Linux et les systèmes dérivés de System V au moyen de l'appel système fcntl(): si le fichier en question a le bit setgid positionné et le bit de groupe vide. Sur Linux, le système de fichier devra être monté avec l'option mand pour que cela fonctionne.

Note:

Comme flock() requiert un pointeur de fichier, vous aurez peut être à utiliser un verrou spécial pour protéger l'accès au fichier que vous voulez tronquer en l'ouvrant en mode d'écriture (avec "w" ou "w+" comme argument de fopen()).

Note:

Ne devrait être utilisé que sur des ressources issues de fopen() pour des fichiers locaux ou via le gestionnaire de flux personnalisé en définissant streamWrapper::stream_lock().

Avertissement

Assigner une autre valeur à l'argument handle dans ce code libèrera le verrou.

Avertissement

Sur certains systèmes d'exploitation, flock() est implémenté au niveau processus. Lorsque vous utilisez une API multithread comme ISAPI, vous risquez de ne pas pouvoir avoir confiance en flock() pour protéger vos fichiers contre d'autres scripts PHP qui fonctionnent en parallèle sur d'autres threads du même serveur.

flock() n'est pas supporté sur les vieux systèmes de fichiers comme FAT et ses dérivés, et elle retournera forcément FALSE sous ces environnements (ceci est particulièrement vrai pour les utilisateurs de Windows 98).



fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatchRepère un fichier à partir d'un masque de recherche

Description

bool fnmatch ( string $pattern , string $string [, int $flags = 0 ] )

fnmatch() vérifie si la chaîne string va passer le masque Shell pattern.

Liste de paramètres

pattern

Le masque Shell.

string

La chaîne testée. Cette fonction est particulièrement utile pour les noms de fichier, mais peut également être utilisée sur des chaînes régulières.

L'utilisateur moyen de Shell peut être familier avec les masques Shell, ou tout au moins, leurs expressions les plus simples, comme '?' et '*'. De cette façon, utiliser fnmatch() au lieu de preg_match() pour des recherches peut être plus pratique pour les non-initiés.

flags

La valeur de flags peut être une combinaison des drapeaux suivants, joins avec l' opérateur binaire OR (|).

Liste des drapeaux possibles pour fnmatch()
Flag Description
FNM_NOESCAPE Désactive l'échappement des anti-slashes.
FNM_PATHNAME Un slash dans une chaîne correspond uniquement à un slash dans le masque fourni.
FNM_PERIOD Un point en début de chaîne doit correspondre exactement à un point dans le masque fourni.
FNM_CASEFOLD Les correspondances tiennent compte de la casse. Fait parti de l'extension GNU.

Valeurs de retour

Retourne TRUE s'il y a des résultats, FALSE sinon.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows.

Exemples

Exemple #1 Vérifier le nom d'une couleur avec un masque Shell

<?php
if (fnmatch("*gr[ae]y"$color)) {
  echo 
"des formes de gris ...";
}
?>

Notes

Avertissement

Actuellement, cette fonction n'est pas disponible pour les systèmes non-POSIX.

Voir aussi

  • glob() - Recherche des chemins qui vérifient un masque
  • preg_match() - Expression rationnelle standard
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée



fopen

(PHP 4, PHP 5)

fopenOuvre un fichier ou une URL

Description

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

fopen() crée une ressource nommée, spécifiée par le paramètre filename, sous la forme d'un flux.

Liste de paramètres

filename

Si filename est de la forme "protocole://", filename est supposé être une URL, et PHP va rechercher un gestionnaire de protocole adapté pour lire ce fichier. Si aucun gestionnaire pour ce protocole n'est disponible, PHP va émettre une alerte qui vous permettra de savoir que vous avez des problèmes dans votre script, et il tentera d'exploiter filename comme un fichier classique.

Si PHP décide que le fichier filename est un fichier local, il va essayer d'ouvrir un flux avec ce fichier. Le fichier doit être accessible à PHP. Il vous faut donc vous assurer que vous avez les droits d'accès à ce fichier. Si vous activez le safe mode, ou la directive open_basedir, d'autres conditions peuvent aussi s'appliquer.

Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.

Note:

La liste des protocoles supportés est disponible sur Liste des protocoles et des gestionnaires supportés. Certains protocoles (appelés aussi wrappers ou gestionnaires) supportent des context et/ou des options dans le fichier php.ini. Référez-vous aux pages du manuel traitant le protocole, pour connaître la liste des options qui sont disponibles. ( e.g. l'option de php.ini user_agent est utilisée par le gestionnaire http).

Sous Windows, assurez-vous de bien protéger les antislash utilisés dans le chemin du fichier, ou bien utilisez des slashs.

<?php
$handle 
fopen("c:\\folder\\resource.txt""r");
?>

mode

Le paramètre mode spécifie le type d'accès désiré au flux. Il peut prendre les valeurs suivantes :

Liste des modes possibles pour la fonction fopen() en utilisant le paramètre mode
mode Description
'r' Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.
'r+' Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
'w' Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
'w+' Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
'a' Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.
'a+' Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.
'x' Crée et ouvre le fichier en lecture seule ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2 et fonctionne uniquement avec des fichiers locaux.
'x+' Crée et ouvre le fichier pour lecture et écriture; le comportement est le même que pour 'x'.
'c' Ouvre le fichier pour écriture seulement. Si le fichier n'existe pas, il sera crée, s'il existe, il n'est pas tronqué (contrairement à 'w') et l'appel à la fonction n'échoue pas (comme dans le cas de 'x'). Le pointeur du fichier est positionné au début. Ce mode peut être utile pour obtenir un verrou (voyez flock()) avant de tenter de modifier le fichier, utiliser 'w' pourrait tronquer le fichier avant d'obtenir le verrou (vous pouvez toujours tronquer grâce à ftruncate()).
'c+' Ouvre le fichier pour lecture et écriture, le comportement est le même que pour le mode 'c'.

Note:

Les systèmes d'exploitation utilisent différents caractères pour les nouvelles lignes. Lorsque vous écrivez un fichier texte, et insérez une nouvelle ligne, vous devez utiliser le bon caractère pour votre système d'exploitation. Les systèmes Unix utilisent \n comme nouvelle ligne, les systèmes Windows utilisent \r\n, et les systèmes Macintosh utilisent \r.

Si vous n'utilisez pas le bon caractère de nouvelle ligne lors de l'écriture de vos fichiers, vous risquez d'ouvrir vos fichiers avec des applications qui donneront un aspect 'bizarre' au texte.

Windows propose un mode de traduction ('t'), qui va traduire automatiquement les caractères \n en \r\n lorsque vous travaillez sur le fichier. À l'inverse, vous pouvez utiliser l'option 'b' pour forcer le fichier a être écrit en mode binaire, sans traduction des données. Pour utiliser ces options, ajoutez 'b' ou 't' comme dernier caractère du paramètre mode.

Le mode de traduction par défaut dépend de l'interface SAPI et de la version de PHP que vous utilisez. Nous vous recommandons de toujours spécifier les options de traductions pour des raisons de portabilité. Vous devriez utiliser 't' lorsque vous écrivez des fichiers de texte, et le caractère \n pour définir vos fin de ligne, dans les scripts, mais que vous vous attendez à ce que le fichier soit relu par une application comme Notepad. Vous devriez toujours utiliser l'option 'b' dans les autres cas.

Si vous ne précisez pas 'b' lorsque vous travaillez avec des fichiers binaires, vous pourriez rencontrer des problèmes avec vos données, comme des images corrompues ou des caractères \r\n inopinés.

Note:

Pour des raisons de portabilité, il est recommandé de toujours utiliser l'option 'b' lorsque vous ouvrez des fichiers avec fopen().

Note:

À nouveau, pour des raisons de portabilité, il est fortement recommandé de réécrire les scripts qui utilisent l'option 't', pour qu'ils utilisent le bon caractère de nouvelle ligne, et le mode 'b'.

use_include_path

Le troisième paramètre optionnel use_include_path peut être défini à 1 ou à TRUE pour chercher le fichier dans l'include_path.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Fonctions sur les flux.

Valeurs de retour

Retourne une ressource représentant le pointeur de fichier, ou FALSE si une erreur survient.

Erreurs / Exceptions

Si l'ouverture échoue, une alerte E_WARNING sera générée. Vous pouvez utiliser le caractère @ pour supprimer cette alerte.

Historique

Version Description
4.3.2 Depuis PHP 4.3.2, le mode par défaut est le mode binaire pour toutes les plates-formes qui font la distinction entre les modes binaire et texte. Si vous rencontrez des problèmes dans vos scripts après une mise à jour, essayez d'utiliser le flag 't' en attendant que vous rendiez votre script plus portable comme mentionné ci-dessus.
4.3.2 Les options 'x' et 'x+' ont été ajoutées.
5.2.6 Les options 'c' et 'c+' ont été ajoutées.

Exemples

Exemple #1 Exemple avec fopen()

<?php
$handle 
fopen("/home/rasmus/file.txt""r");
$handle fopen("/home/rasmus/file.gif""wb");
$handle fopen("http://www.example.com/""r");
$handle fopen("ftp://user:password@example.com/somefile.txt""w");
?>

Notes

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Si vous rencontrez des problèmes en lecture ou écriture de fichier et que vous utilisez PHP en version module de serveur, n'oubliez pas que les fichiers auxquels vous accédez ne sont pas nécessairement accessibles au processus serveur.

Voir aussi



fpassthru

(PHP 4, PHP 5)

fpassthruAffiche le reste du fichier

Description

int fpassthru ( resource $handle )

Lit tout le reste d'un fichier jusqu'à la fin et dirige le résultat vers la sortie standard.

Vous devez appeler la fonction rewind() pour réinitialiser le pointeur de fichier au début si vous avez déjà écrit des données dans le fichier.

Si vous voulez uniquement copier le contenu d'un fichier dans le buffer de sortie, sans le modifier auparavant ou placer le pointeur à un endroit particulier, vous devriez utiliser la fonction readfile(), ce qui vous évite d'appeler la fonction fopen() call.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Si une erreur survient, fpassthru() retourne FALSE. Sinon, fpassthru() retourne le nombre de caractères lus dans handle et passés à la sortie standard.

Exemples

Exemple #1 Utilisation de fpassthru() avec un fichier binaire

<?php

// ouvre un fichier en mode binaire
$name './img/ok.png';
$fp fopen($name'rb');

// envoie les bons en-têtes
header("Content-Type: image/png");
header("Content-Length: " filesize($name));

// envoie le contenu du fichier, puis stoppe le script
fpassthru($fp);
exit;

?>

Notes

Note:

Lorsque vous utilisez la fonction fpassthru() sur un fichier binaire sous Windows, assurez-vous d'avoir ouvert le fichier en mode binaire en ajoutant la lettre b au mode d'accès utilisé dans fopen().

Vous êtes encouragé à utiliser l'option b lorsque vous traitez des fichiers binaires, même si votre système ne le requiert pas, de façon à rendre vos scripts portables.

Voir aussi

  • readfile() - Affiche un fichier
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre une socket de connexion Internet ou Unix



fputcsv

(PHP 5 >= 5.1.0)

fputcsvFormate une ligne en CSV et l'écrit dans un fichier

Description

int fputcsv ( resource $handle , array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]] )

fputcsv() formate la ligne passée sous forme de tableau fields, puis écrit le résultat dans le fichier handle.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

fields

Un tableau de valeurs.

delimiter

Le paramètre optionnel delimiter spécifie le délimiteur (un seul caractère).

enclosure

Le paramètre enclosure spécifie le caractère d'encadrement (un seul caractère).

Valeurs de retour

Retourne la taille de la chaîne écrite ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fputcsv()

<?php

$list 
= array (
   array(
'aaa''bbb''ccc''dddd'),
   array(
'123''456''789'),
   array(
'"aaa"''"bbb"')
);

$fp fopen('file.csv''w');

foreach (
$list as $fields) {
    
fputcsv($fp$fields);
}

fclose($fp);
?>

L'exemple ci-dessus va écrire ce qui suit vers file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Notes

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Voir aussi

  • fgetcsv() - Renvoie la ligne courante et cherche les champs CSV



fputs

(PHP 4, PHP 5)

fputsAlias de fwrite()

Description

Cette fonction est un alias de : fwrite().



fread

(PHP 4, PHP 5)

freadLecture du fichier en mode binaire

Description

string fread ( resource $handle , int $length )

fread() lit jusqu'à length octets dans le fichier référencé par handle. La lecture s'arrête lorsqu'une des conditions suivantes apparaît :

  • length octets ont été lus
  • la fin du fichier est atteinte
  • un paquet devient disponible ou le temps socket timeout est passé (pour les flux réseau)
  • si le flux est lu depuis le buffer, et qu'il ne représente pas un fichier plein, alors au moins une lecture d'un nombre d'octets équivalent à la taille du bloc (habituellement 8192) est réalisée ; suivants les données du buffer précédent, la taille des données retournées peut être supérieure à la taille du bloc.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

length

Taille length d'octets à lire.

Valeurs de retour

Retourne la chaîne lue, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fread()

<?php
// Lit un fichier, et le place dans une chaîne
$filename "/usr/local/something.txt";
$handle fopen($filename"r");
$contents fread($handlefilesize($filename));
fclose($handle);
?>

Exemple #2 Exemple avec fread() et un fichier binaire

Avertissement

Sur les systèmes qui différencient les fichiers textes et binaires (i.e. Windows) le fichier doit être ouvert avec la lettre 'b' ajoutée au paramètre de mode de la fonction fopen().

<?php
$filename 
"c:\\files\\somepic.gif";
$handle fopen($filename"rb");
$contents fread($handlefilesize($filename));
fclose($handle);
?>

Exemple #3 Exemple avec fread() et un fichier distant

Avertissement

Lorsque vous lisez depuis n'importe quelle source qui n'est pas un fichier local, comme des flux retournés lors de la lecture de fichiers distants ou depuis popen() et fsockopen(), la lecture s'arrête après la réception d'un paquet. Il faut donc faire des boucles pour collecter les données par paquet, comme présenté ci-dessous.

<?php
// Pour PHP 5 et suivant
$handle fopen("http://www.example.com/""rb");
$contents stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle 
fopen("http://www.example.com/""rb");
$contents '';
while (!
feof($handle)) {
  
$contents .= fread($handle8192);
}
fclose($handle);
?>

Notes

Note:

Si vous voulez lire le contenu d'un fichier dans une chaîne de caractères, utilisez plutôt file_get_contents() qui est bien plus rapide que le code ci-dessus.

Note:

Noter que la fonction fread() lit la position courante du pointeur de fichier. Utilisez la fonction ftell() pour trouver la position courante du pointeur et la fonction rewind() pour réinitiliaser la position du pointeur.

Voir aussi

  • fwrite() - Écrit un fichier en mode binaire
  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre une socket de connexion Internet ou Unix
  • popen() - Crée un processus de pointeur de fichier
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fscanf() - Analyse un fichier en fonction d'un format
  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • fpassthru() - Affiche le reste du fichier
  • ftell() - Renvoie la position courant du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début



fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanfAnalyse un fichier en fonction d'un format

Description

mixed fscanf ( resource $handle , string $format [, mixed &$... ] )

La fonction fscanf() est similaire à la fonction sscanf(), sauf qu'elle prend un fichier en entrée, représentée par la ressource handle et interprète l'entrée en fonction du format format spécifié, qui est décrit dans la documentation de la fonction sprintf().

Tous les caractères blancs de la chaîne de formatage correspondent à autant d'espaces dans le flux d'entrée. Cela signifie qu'une tabulation \t dans la chaîne de format peut remplacer un espace simple dans le flux d'entrée.

Chaque appel à la fonction fscanf() lit une ligne du fichier.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

format

Le format spécifié, tel que décrit dans la documentation de la fonction sprintf().

...

Les valeurs optionnelles à assigner.

Valeurs de retour

Si seulement 2 paramètres sont passés à la fonction, la valeur analysée sera retourné sous la forme d'un tableau. Si des paramètres optionnels sont passés, la fonction retournera le nombre de valeurs assignées. Les paramètres optionnels doivent être passés par référence.

Historique

Version Description
4.3.0 Avant PHP 4.3.0, le nombre maximum de caractères lus dans le fichier était de 512, ou bien jusqu'à la première nouvelle ligne "\n" : en fait, le premier des deux. Depuis PHP 4.3.0, des lignes de n'importe quelle taille peuvent être lues.

Exemples

Exemple #1 Exemple avec fscanf()

<?php
$handle 
fopen("users.txt""r");
while (
$userinfo fscanf($handle"%s\t%s\t%s\n")) {
    list (
$name$profession$countrycode) = $userinfo;
    
//... traitement des données
}
fclose($handle);
?>

Exemple #2 Contenu du fichier users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée



fseek

(PHP 4, PHP 5)

fseekModifie la position du pointeur de fichier

Description

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )

Modifie le curseur de position dans le fichier handle. La nouvelle position, mesurée en octets, à partir du début du fichier, est obtenue en additionnant la distance offset à la position whence.

En général, il est possible de se déplacer au delà de la fin du flux (eof); si des données sont écrites dans ce cas, l'espace entre la fin du flux et la position courante sera rempli d'octets nuls. Cependant, certains flux ne supportent pas ce comportement, en particulier lorsque l'espace de stockage sous-jascent est de taille fixe.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

offset

La position.

Pour se déplacer à une position avant la fin du fichier, vous devez passer une valeur négative à offset et définir le paramètre whence à la valeur SEEK_END.

whence

Les valeurs possibles pour whence sont :

  • SEEK_SET : la position finale vaut offset octets.
  • SEEK_CUR : la position finale sera la position courante, ajoutée à offset octets.
  • SEEK_END : la position finale vaut la position courante par rapport à la fin du fichier, ajoutée de offset octets.

Valeurs de retour

Retourne 0 en cas de succès, et sinon -1.

Exemples

Exemple #1 Exemple avec fseek()

<?php

$fp 
fopen('somefile.txt''r');

// lit quelques données
$data fgets($fp4096);

// retourne au début du fichier
// identique à rewind($fp);
fseek($fp0);

?>

Notes

Note:

Si vous ouvrez le fichier avec le mode a ou a+, toutes les données que vous écrirez dans le fichier seront toujours ajoutées, sans se soucier de la position dans le fichier.

Note:

Tous les flux ne supportent pas le déplacement. Pour ceux qui ne le supportent pas, le déplacement en avant se fera en lisant et libérant les octets; les autres formes de déplacements échoueront.

Voir aussi

  • ftell() - Renvoie la position courant du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début



fstat

(PHP 4, PHP 5)

fstatLit les informations sur un fichier à partir d'un pointeur de fichier

Description

array fstat ( resource $handle )

Rassemble les informations sur le fichier dont on connaît le pointeur handle. fstat() est similaire à la fonction stat(), hormis le fait qu'elle utilise un pointeur de fichier, au lieu d'un nom de fichier.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

Valeurs de retour

Retourne un tableau contenant les statistiques pour le fichier ; le format de ce tableau est décrit en détail sur la page de documentation de la fonction stat().

Exemples

Exemple #1 Exemple avec fstat()

<?php

// ouvre un fichier
$fp fopen("/etc/passwd""r");

// lit des informations
$fstat fstat($fp);

// ferme le fichier
fclose($fp);

// affiche le résultat
print_r(array_slice($fstat13));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.



ftell

(PHP 4, PHP 5)

ftellRenvoie la position courant du pointeur de fichier

Description

int ftell ( resource $handle )

Renvoie la position du pointeur courante du pointeur de fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide, et avoir été correctement ouvert par fopen() ou popen(). ftell() donne des résultats non définis pour les flux "append-only" (ouvert avec le flag "a").

Valeurs de retour

Retourne la position courante du pointeur dans le fichier repéré par le pointeur handle sous la forme d'un entier, i.e., sa position dans le flux du fichier.

Si une erreur survient, la fonction retournera FALSE.

Exemples

Exemple #1 Exemple avec ftell()

<?php

// Ouvre un fichier et y lit quelques données
$fp fopen("/etc/passwd""r");
$data fgets($fp12);

// Où en sommes-nous ?
echo ftell($fp); // 11

fclose($fp);

?>

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fseek() - Modifie la position du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début



ftruncate

(PHP 4, PHP 5)

ftruncateTronque un fichier

Description

bool ftruncate ( resource $handle , int $size )

Prend le pointeur de fichier handle et le tronque à la taille de size.

Liste de paramètres

handle

Le pointeur de fichier.

Note:

Le pointeur handle doit avoir été ouvert en écriture.

size

La taille que l'on doit enlever.

Note:

Si size est plus grand que la taille du fichier, ce dernier sera étendu par des octets nuls.

Si size est plus petit que la taille du fichier, le reste des données sera perdu.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
PHP 4.3.3 Avant PHP 4.3.3, ftruncate() retournait un entier de valeur 1, en cas de succès, au lieu de la valeur boolean TRUE.

Exemples

Exemple #1 Exemple avec ftruncate()

<?php
$filename 
'lorem_ipsum.txt';

$handle fopen($filename'r+');
ftruncate($handlerand(1filesize($filename)));
rewind($handle);
echo 
fread($handlefilesize($filename));
fclose($handle);
?>

Notes

Note:

Le pointeur de fichier n'est pas modifié.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • fseek() - Modifie la position du pointeur de fichier



fwrite

(PHP 4, PHP 5)

fwriteÉcrit un fichier en mode binaire

Description

int fwrite ( resource $handle , string $string [, int $length ] )

fwrite() écrit le contenu de la chaîne string dans le fichier pointé par handle.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

string

La chaîne à écrire.

length

Si la longueur length est fournie, l'écriture s'arrêtera après length octets, ou à la fin de la chaîne (le premier des deux).

Notez que si length est fourni, alors l'option de configuration magic_quotes_runtime sera ignorée, et les slash seront conservés.

Valeurs de retour

fwrite() retourne le nombre d'octets écrits, ou FALSE si une erreur survient.

Notes

Note:

Le fait d'écrire dans un flux peut se termine avant que la chaîne complète ne soit écrite. La valeur retournée par la fonction fwrite() peut être vérifiée comme ceci :

<?php
function fwrite_stream($fp$string) {
    for (
$written 0$written strlen($string); $written += $fwrite) {
        
$fwrite fwrite($fpsubstr($string$written));
        if (
$fwrite === false) {
            return 
$fwrite;
        }
    }
    return 
$written;
}
?>

Note:

Sur les systèmes qui font la différence entre les fichiers binaires et les fichiers textes (par exemple, Windows), le fichier doit être ouvert avec l'option 'b' inclus dans le paramètre de mode de fopen().

Note:

Si handle est ouvert en mode ajout (append), fwrite() sera atomique (sauf si la taille de string excède la taille du bloc du système de fichiers, sur quelques plates-formes, et tant que le fichier se trouve sur le système de fichiers local). Ainsi, il n'est pas nécessaire d'utiliser la fonction flock() sur une ressource avant d'appeler la fonction fwrite() ; toutes les données seront écrites sans interruption.

Note:

Si l'on écrit 2 fois dans le fichier, les données seront ajoutées à la fin du fichier ; cela signifie que l'exemple suivant ne donnera pas le résultat attendu :

<?php
$fp 
fopen('data.txt''w');
fwrite($fp'1');
fwrite($fp'23');
fclose($fp);

// le contenu de 'data.txt' est maintenant 123 et non 23 !
?>

Exemples

Exemple #1 Exemple avec fwrite()

<?php
$filename 
'test.txt';
$somecontent "Ajout de chaîne dans le fichier\n";

// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {

    
// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
    // Le pointeur de fichier est placé à la fin du fichier
    // c'est là que $somecontent sera placé
    
if (!$handle fopen($filename'a')) {
         echo 
"Impossible d'ouvrir le fichier ($filename)";
         exit;
    }

    
// Ecrivons quelque chose dans notre fichier.
    
if (fwrite($handle$somecontent) === FALSE) {
        echo 
"Impossible d'écrire dans le fichier ($filename)";
        exit;
    }

    echo 
"L'écriture de ($somecontent) dans le fichier ($filename) a réussi";

    
fclose($handle);

} else {
    echo 
"Le fichier $filename n'est pas accessible en écriture.";
}
?>

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre une socket de connexion Internet ou Unix
  • popen() - Crée un processus de pointeur de fichier
  • file_get_contents() - Lit tout un fichier dans une chaîne



glob

(PHP 4 >= 4.3.0, PHP 5)

globRecherche des chemins qui vérifient un masque

Description

array glob ( string $pattern [, int $flags = 0 ] )

glob() recherche tous les chemins qui vérifient le masque pattern, en suivant les règles utilisées par la fonction glob() de la libc, qui sont les mêmes que celles utilisées par le Shell en général.

Liste de paramètres

pattern

Le masque. Aucun remplacement de tilde (~) ou de paramètre n'est fait.

flags

Les drapeaux valides sont :

  • GLOB_MARK : Ajoute un slash final à chaque dossier retourné
  • GLOB_NOSORT : Retourne les fichiers tant l'ordre d'apparence (pas de tri)
  • GLOB_NOCHECK : Retourne le masque de recherche si aucun fichier n'a été trouvé
  • GLOB_NOESCAPE : Ne protège aucun métacaractère d'un antislash
  • GLOB_BRACE : Remplace {a,b,c} par 'a', 'b' ou 'c'
  • GLOB_ONLYDIR : Ne retourne que les dossiers qui vérifient le masque
  • GLOB_ERR : Stop lors d'une erreur (comme des dossiers non lisibles), par défaut, les erreurs sont ignorées.

Valeurs de retour

Retourne un tableau contenant les fichiers et dossiers correspondant au masque, un tableau vide s'il n'y a aucune correspondance, ou FALSE si une erreur survient.

Note:

Sous certains systèmes, il est impossible de distinguer un masque vide d'une erreur.

Historique

Version Description
5.1.0 GLOB_ERR a été ajouté
4.3.3 GLOB_ONLYDIR devient disponible sous Windows ainsi que sur les autres systèmes n'utilisant pas la bibliothèque GNU C.

Exemples

Exemple #1 Un moyen pratique pour remplacer opendir() par glob()

<?php
foreach (glob("*.txt") as $filename) {
    echo 
"$filename occupe " filesize($filename) . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

funclist.txt occupe 44686
funcsummary.txt occupe 267625
quickref.txt occupe 137820

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Cette fonction n'est pas disponible sur quelques systèmes (e.g. vieux Sun OS).

Note: Le drapeau GLOB_BRACE n'est pas disponible sur quelques systèmes non GNU, comme Solaris.

Voir aussi

  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • readdir() - Lit une entrée du dossier
  • closedir() - Ferme le pointeur sur le dossier
  • fnmatch() - Repère un fichier à partir d'un masque de recherche



is_dir

(PHP 4, PHP 5)

is_dirIndique si le fichier est un dossier

Description

bool is_dir ( string $filename )

Indique si le fichier est un dossier.

Liste de paramètres

filename

Chemin vers le fichier. Si filename est un fichier relatif, il sera vérifié relativement au dossier de travail courant. Si filename est un lien symbolique ou un lien conventionnel, le lien sera résolu et vérifié. Si vous avez activé le safe mode, ou open_basedir, plus de restrictions peuvent être appliquées.

Valeurs de retour

Retourne TRUE si le nom de fichier existe et que c'est un dossier, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_dir()

<?php
var_dump
(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));

var_dump(is_dir('..')); // un dossier au dessus
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • chdir() - Change de dossier
  • dir
  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • is_file() - Indique si le fichier est un véritable fichier
  • is_link() - Indique si le fichier est un lien symbolique



is_executable

(PHP 4, PHP 5)

is_executableIndique si le fichier est exécutable

Description

bool is_executable ( string $filename )

Indique si le fichier est exécutable.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le fichier existe et qu'il est exécutable, FALSE sinon.

Historique

Version Description
5.0.0 is_executable() devient disponible sous Windows

Exemples

Exemple #1 Exemple avec is_executable()

<?php

$file 
'/home/vincent/somefile.sh';

if (
is_executable($file)) {
    echo 
$file.' est exécutable';
} else {
    echo 
$file.' n\'est pas exécutable';
}

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_file() - Indique si le fichier est un véritable fichier
  • is_link() - Indique si le fichier est un lien symbolique



is_file

(PHP 4, PHP 5)

is_fileIndique si le fichier est un véritable fichier

Description

bool is_file ( string $filename )

Indique si le fichier est un véritable fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le nom de fichier existe et que c'est un fichier régulier, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_file()

<?php
var_dump
(is_file('a_file.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • is_link() - Indique si le fichier est un lien symbolique




is_readable

(PHP 4, PHP 5)

is_readableIndique si un fichier existe et est accessible en lecture

Description

bool is_readable ( string $filename )

Indique si un fichier existe et est accessible en lecture.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le fichier ou le dossier spécifié par filename existe et est accessible en lecture, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_readable()

<?php
$filename 
'test.txt';
if (
is_readable($filename)) {
    echo 
'Le fichier est accessible en lecture';
} else {
    echo 
'Le fichier n\'est pas accessible en lecture !';
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

N'oubliez pas que PHP accède aux fichiers avec les mêmes autorisations que l'utilisateur qui fait tourner le serveur web (souvent, c'est 'nobody', personne). Les limitations du safe mode ne sont prises en compte qu'à partir de PHP 5.1.5.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Note:

La vérification est effectuée en utilisant l'UID/GID réel au lieu de l'effectif.

Voir aussi

  • is_writable() - Indique si un fichier est accessible en écriture
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier



is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

is_uploaded_fileIndique si le fichier a été téléchargé par HTTP POST

Description

bool is_uploaded_file ( string $filename )

Retourne TRUE si le fichier filename a été téléchargé par HTTP POST. Cela est très utile pour vous assurer qu'un utilisateur n'essaie pas d'accéder intentionnellement à un fichier auquel il n'a pas droit (comme /etc/passwd).

Ce type de vérification est spécialement important s'il est possible que les fichiers téléchargés révèlent leur contenu à l'utilisateur, ou même aux utilisateurs du même système.

Pour un fonctionnement correct, la fonction is_uploaded_file() nécessite un argument comme $_FILES['userfile']['tmp_name'], - le nom du fichier téléchargé sur la machine cliente $_FILES['userfile']['name'] ne fonctionne pas.

Liste de paramètres

filename

Le nom de fichier à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo 
"File "$_FILES['userfile']['name'] ." téléchargé avec succès.\n";
   echo 
"Affichage du contenu\n";
   
readfile($_FILES['userfile']['tmp_name']);
} else {
   echo 
"Attaque possible par téléchargement de fichier : ";
   echo 
"Nom du fichier : '"$_FILES['userfile']['tmp_name'] . "'.";
}

?>

Voir aussi



is_writable

(PHP 4, PHP 5)

is_writableIndique si un fichier est accessible en écriture

Description

bool is_writable ( string $filename )

retourne TRUE si filename existe et est accessible en écriture. L'argument peut être le nom d'un dossier, vous permettant ainsi de vérifier si le dossier est accessible en écriture.

N'oubliez pas que PHP accède aux fichiers avec les mêmes autorisations que l'utilisateur qui fait tourner le serveur web (souvent, c'est 'nobody', personne). Les limitations du safe mode ne sont pas prises en compte.

Liste de paramètres

filename

Le nom du fichier à vérifier.

Valeurs de retour

Retourne TRUE si le fichier filename existe et est accessible en écriture.

Exemples

Exemple #1 Exemple avec is_writable()

<?php
$filename 
'test.txt';
if (
is_writable($filename)) {
    echo 
'Le fichier est accessible en écriture.';
} else {
    echo 
'Le fichier n\'est pas accessible en écriture !';
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • fwrite() - Écrit un fichier en mode binaire



is_writeable

(PHP 4, PHP 5)

is_writeableAlias de is_writable()

Description

Cette fonction est un alias de : is_writable().



lchgrp

(PHP 5 >= 5.1.2)

lchgrpChange l'appartenance du groupe d'un lien symbolique

Description

bool lchgrp ( string $filename , mixed $group )

Essaie de remplacer le groupe du lien symbolique filename par le groupe group.

Seul le super-utilisateur peut changer le groupe d'un lien symbolique arbitrairement; les autres utilisateurs peuvent changer le groupe d'un lien symbolique vers un groupe auquel cet utilisateur est membre.

Liste de paramètres

filename

chemin vers le lien symbolique.

group

Le groupe, spécifié par son nom ou son numéro.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification du groupe d'un lien symbolique

<?php
$target 
'output.php';
$link 'output.html';
symlink($target$link);

lchgrp($link8);
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • chgrp() - Change le groupe d'un fichier
  • lchown() - Change le propriétaire d'un lien symbolique
  • chown() - Change le propriétaire du fichier
  • chmod() - Change le mode du fichier



lchown

(PHP 5 >= 5.1.2)

lchownChange le propriétaire d'un lien symbolique

Description

bool lchown ( string $filename , mixed $user )

Essaie de remplacer le propriétaire du lien symbolique filename par l'utilisateur user

Seul le super-utilisateur peut changer le propriétaire d'un lien symbolique.

Liste de paramètres

filename

Chemin vers le fichier.

user

L'utilisateur, par son nom ou son numéro.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification du propriétaire d'un lien symbolique

<?php
$target 
'output.php';
$link 'output.html';
symlink($target$link);

lchown($link8);
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • chown() - Change le propriétaire du fichier
  • lchgrp() - Change l'appartenance du groupe d'un lien symbolique
  • chgrp() - Change le groupe d'un fichier
  • chmod() - Change le mode du fichier




linkinfo

(PHP 4, PHP 5)

linkinfoRenvoie les informations d'un lien

Description

int linkinfo ( string $path )

Renvoie les informations d'un lien.

Cette fonction est utilisée pour vérifier si un lien (pointé par le chemin path) existe réellement (en utilisant la même méthode que la macro S_ISLNK, définie dans stat.h).

Liste de paramètres

path

Chemin vers le lien.

Valeurs de retour

linkinfo() retourne le champ st_dev de la structure stat Unix C, retourné par l'appel système lstat. Si une erreur survient, la fonction retournera 0 ou FALSE.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).

Exemples

Exemple #1 Exemple avec linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Voir aussi



lstat

(PHP 4, PHP 5)

lstatRetourne les informations sur un fichier ou un lien symbolique

Description

array lstat ( string $filename )

Retourne les informations sur un fichier ou un lien symbolique.

Liste de paramètres

filename

Chemin vers un fichier ou un lien symbolique.

Valeurs de retour

Voyez la page de manuel de stat() pour plus d'informations sur la structure du tableau retourné par lstat(). Cette fonction est identique à la fonction stat() hormis le fait que si filename est un lien symbolique, les informations seront alors basées sur le lien symbolique.

Exemples

Exemple #1 Comparaison entre stat() et lstat()

<?php
symlink
('uploads.php''uploads');

// On met en évidence la différence d'informations
array_diff(stat('uploads'), lstat('uploads'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations qui diffèrent entre les 2 fichiers.

Array
(
    [ino] => 97236376
    [mode] => 33188
    [size] => 34
    [atime] => 1223580003
    [mtime] => 1223581848
    [ctime] => 1223581848
    [blocks] => 8
)

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • stat() - Renvoie les informations à propos d'un fichier



mkdir

(PHP 4, PHP 5)

mkdirCrée un dossier

Description

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

Tente de créer un dossier.

Liste de paramètres

pathname

Le chemin du dossier.

mode

Le mode par défaut est le mode 0777, ce qui correspond au maximum de droits possible. Pour plus d'informations sur les modes, lisez en détail la documentation de la fonction chmod().

Note:

mode est ignoré sous Windows.

Notez que vous aurez à préciser le mode en base octale, ce qui signifie que vous aurez probablement un 0 comme premier chiffre. Le mode sera aussi modifié par le umask courant, que vous pouvez modifier avec la fonction umask().

recursive

Permet la création de répertoires imbriqués spécifiés dans le pathname. Par défaut, vaut FALSE.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Fonctions sur les flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.0.0 Le paramètre recursive a été ajouté
5.0.0 Depuis PHP 5.0.0, la fonction mkdir() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez-vous à Liste des protocoles et des gestionnaires supportés, pour une liste des gestionnaires qui supportent mkdir().
4.2.0 Le paramètre mode est devenu.

Exemples

Exemple #1 Exemple avec mkdir()

<?php
mkdir
("/path/to/my/dir"0700);
?>

Exemple #2 mkdir() utilisant le paramètre recursive

<?php
// Structure de répertoire désirée
$structure './depth1/depth2/depth3/';

// Pour créer une stucture imbriquée, le paramètre $recursive 
// doit être spécifié.

if (!mkdir($structure0true)) {
    die(
'Echec lors de la création des répertoires...');
}

// ...
?>

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • rmdir() - Efface un dossier



move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

move_uploaded_fileDéplace un fichier téléchargé

Description

bool move_uploaded_file ( string $filename , string $destination )

S'assure que le fichier filename est un fichier téléchargé par HTTP POST. Si le fichier est valide, il est déplacé jusqu'à destination.

Ce type de vérification est spécialement important s'il est possible que les fichiers téléchargés révèlent leur contenu à l'utilisateur, ou même aux utilisateurs du même système.

Liste de paramètres

filename

Le nom du fichier téléchargé.

destination

La destination du fichier déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Si filename n'est pas valide, rien ne se passe, et move_uploaded_file() retournera FALSE.

Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.

Exemples

Exemple #1 Téléchargement de plusieurs fichiers

<?php
$uploads_dir 
'/uploads';
foreach (
$_FILES["pictures"]["error"] as $key => $error) {
    if (
$error == UPLOAD_ERR_OK) {
        
$tmp_name $_FILES["pictures"]["tmp_name"][$key];
        
$name $_FILES["pictures"]["name"][$key];
        
move_uploaded_file($tmp_name"$uploads_dir/$name");
    }
}
?>

Notes

Note:

move_uploaded_file() n'est pas affectée par les restrictions liées au safe mode et à l'open_basedir. Cependant, les restrictions sont placées uniquement sur le paramètre destination qui permet le déplacement des fichiers chargés dans lesquels filename peut entrer en conflit avec ces restrictions. move_uploaded_file() permet de s'assurer de la sécurité de cette opération en autorisant le déplacement des seuls fichiers chargés via PHP.

Avertissement

Si le fichier de destination existe déjà, il sera écrasé.

Voir aussi



parse_ini_file

(PHP 4, PHP 5)

parse_ini_fileAnalyse un fichier de configuration

Description

array parse_ini_file ( string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )

parse_ini_file() charge le fichier filename et retourne les configurations qui s'y trouvent sous forme d'un tableau associatif.

La structure des fichiers de configuration lus est similaire à celle de php.ini.

Liste de paramètres

filename

Le nom du fichier de configuration à analyser.

process_sections

En passant le deuxième paramètre optionnel à process_sections, vous obtiendrez un tableau multidimensionnel avec les noms des sections. La valeur par défaut de ce paramètre est FALSE

scanner_mode

Peut être INI_SCANNER_NORMAL (défaut) ou INI_SCANNER_RAW. Si INI_SCANNER_RAW est fourni, alors les valeurs en option ne seront pas analysées.

Valeurs de retour

La configuration est retournée sous la forme d'un tableau associatif en cas de succès, et FALSE si une erreur survient.

Historique

Version Description
5.3.0 Ajout du paramètre optionnel scanner_mode. Les guillemets simples doivent maintenant être utilisés autour des assignements de variables. Le caractère dièse (#) ne peut plus être utilisé comme commentaire, et émettra une alerte si vous l'utilisez.
5.2.7 En cas d'erreur de syntaxe, la fonction retourne maintenant FALSE au lieu d'un tableau vide.
5.2.4 Les noms de section et les clés, composés de numéros, sont maintenant évalués comme des entiers, ceux commençant par un 0 seront évalués comme des octales, et ceux commençant par 0x, comme des hexadécimaux.
5.0.0 Les valeurs entourées par des guillemets, peuvent contenir des nouvelles lignes.
4.2.1 Cette fonction est maintenant affectée par le safe mode et l'open_basedir.

Exemples

Exemple #1 Contenu du fichier sample.ini

; Ceci est un fichier de configuration
; Les commentaires commencent par ';', comme dans php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"

Exemple #2 Exemple avec parse_ini_file()

Les constantes peuvent aussi être utilisées dans le fichier .ini, ce qui fait que si vous définissez une constante avant d'exécuter parse_ini_file(), elle sera intégrée dans les résultats. Seules les valeurs de configuration sont remplacées par leur équivalent en constantes. Par exemple :

<?php

define
('BIRD''Dodo bird');

// Analyse sans sections
$ini_array parse_ini_file("sample.ini");
print_r($ini_array);

// Analyse avec sections
$ini_array parse_ini_file("sample.ini"true);
print_r($ini_array);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [phpversion] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] => Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

    [third_section] => Array
        (
            [phpversion] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )

)

Exemple #3 parse_ini_file() pour analyser un fichier php.ini

<?php
// Une fonction simple pour comparer les résultats ci-dessous
function yesno($expression)
{
    return(
$expression 'Yes' 'No');
}

// Lit le chemin du php.ini en utilisant php_ini_loaded_file() 
// cette fonction est disponible depuis PHP 5.2.4
$ini_path php_ini_loaded_file();

// Analyse de php.ini
$ini parse_ini_file($ini_path);

// Affichage et comparatif des valeurs. Notez que get_cfg_var()
// va donner les mêmes résultats entre les résultats analysés et chargés
echo '(analysé) magic_quotes_gpc = ' yesno($ini['magic_quotes_gpc']) . PHP_EOL;
echo 
'(chargé ) magic_quotes_gpc = ' yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

(analysé) magic_quotes_gpc = Yes
(chargé ) magic_quotes_gpc = Yes

Notes

Note:

Cette fonction n'a rien a voir avec le fichier php.ini. Ce dernier a déjà était traité lorsque vous commencez à exécuter votre script. Cette fonction peut vous permettre de lire vos propres fichiers de configuration.

Note:

Si une valeur du fichier ini contient des données non-alphanumériques, il faut la protéger en la plaçant entre guillemets doubles (").

Note: Il existe des mots réservés qui ne doivent pas être utilisés en tant que clés dans les fichiers ini. Cela inclut : null, yes, no, true, false, on et off. Les valeurs null, no et false donnent "", yes et true donnent "1". Les caractères ?{}|&~![()^" ne doivent pas être utilisés n'importe où dans la clé et ont une signification spéciale dans la valeur.

Voir aussi



parse_ini_string

(PHP 5 >= 5.3.0)

parse_ini_stringAnalyse une chaîne de configuration

Description

array parse_ini_string ( string $ini [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )

parse_ini_string() retourne la configuration dans une chaîne de type ini dans un tableau associatif.

La structure de la chaîne doit être la même que celle du fichier php.ini.

Liste de paramètres

ini

Le contenu de type ini à analyser.

process_sections

En activant le paramètre process_sections avec TRUE, vous obtiendrez un tableau multidimensionnel, avec les noms de sections et de directives. La valeur par défaut du paramètre process_sections est FALSE

scanner_mode

Peut prendre les valeurs des constantes INI_SCANNER_NORMAL (par défaut) ou INI_SCANNER_RAW. Si INI_SCANNER_RAW est utilisé, les valeurs des options ne seront pas analysées.

Valeurs de retour

Les directives sont retournées sous forme de tableau array en cas de succès, et FALSE en cas d'erreur.

Notes

Note: Il y a plusieurs mots réservés que ne doivent pas être utilisés comme clé dans les fichiers .ini. Cela inclut : null, yes, no, true, false, on, off, none. Les valeurs null, no et false sont retournées comme "" (chaîne vide); les valeurs yes, true, on sont retournées comme "1". Les caractères ?{}|&~![()^" ne doivent être utilisés nulle part dans les clés, et ont une signification spéciale dans les valeurs.

Voir aussi



pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfoRetourne des informations sur un chemin système

Description

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

pathinfo() retourne un tableau associatif, contenant les informations sur le chemin path.

Liste de paramètres

path

Le chemin à vérifier.

options

Vous pouvez spécifier quels seront les éléments retournés avec le paramètre optionnel options. Il est composé des constantes PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION et PATHINFO_FILENAME. Par défaut, tous les éléments sont retournés.

Valeurs de retour

Le tableau associatif contenant les éléments suivants est retourné : dirname, basename, extension (s'il y en a), et filename.

Si options est utilisé, cette fonction retournera une chaîne de caractères si tous les éléments ne sont pas demandés.

Historique

Version Description
5.2.0 La constante PATHINFO_FILENAME a été ajoutée.

Exemples

Exemple #1 Exemple avec pathinfo()

<?php
$path_parts 
pathinfo('/www/htdocs/inc/lib.inc.php');

echo 
$path_parts['dirname'], "\n";
echo 
$path_parts['basename'], "\n";
echo 
$path_parts['extension'], "\n";
echo 
$path_parts['filename'], "\n"// depuis PHP 5.2.0
?>

L'exemple ci-dessus va afficher :

/www/htdocs/inc
lib.inc.php
php
lib.inc

Notes

Note:

Pour plus d'informations sur la lecture du chemin courant, lisez la section sur les variables prédéfinies.

Note:

La fonction pathinfo() est sensible à la configuration locale, aussi, si vous voulez qu'elle analyse correctement un chemin contenant les caractères sur plusieurs octets, la locale correspondante doit être définie en utilisant la fonction setlocale().

Voir aussi

  • dirname() - Renvoie le nom du dossier parent
  • basename() - Retourne le nom du fichier dans un chemin
  • parse_url() - Analyse une URL et retourne ses composants
  • realpath() - Retourne le chemin canonique absolu



pclose

(PHP 4, PHP 5)

pcloseFerme un processus de pointeur de fichier

Description

int pclose ( resource $handle )

Ferme un processus de pointeur de fichier ouvert avec la fonction popen().

Liste de paramètres

handle

Le pointeur de fichier doit être valide, et avoir été ouvert correctement par popen().

Valeurs de retour

Retourne le statut final du processus exécuté ou -1 en cas d'echec.

Exemples

Exemple #1 Exemple avec pclose()

<?php
$handle 
popen('/bin/ls''r');
pclose($handle);
?>

Notes

Note: Unix seulement:

proc_close() est implémenté en interne en utilisant l'appel système waitpid(3). Pour obtenir le code de statut réel de sortie, la fonction pcntl_wexitstatus() devrait être utilisée.

Voir aussi

  • popen() - Crée un processus de pointeur de fichier



popen

(PHP 4, PHP 5)

popenCrée un processus de pointeur de fichier

Description

resource popen ( string $command , string $mode )

Crée un processus de pointeur de fichier, exécuté en effectuant un fork de la commande fournie par le paramètre command.

Liste de paramètres

command

La commande

mode

Le mode

Valeurs de retour

Retourne un pointeur de fichier identique à celui retourné par fopen(), hormis le fait qu'il sera unidirectionnel (lecture seule, ou écriture seule), et doit être terminé par pclose(). Ce pointeur peut être utilisé avec fgets(), fgetss() et fwrite(). Lorsque le mode est 'r', le pointeur de fichier retourné équivaut au STDOUT de la commande, et lorsque le mode est 'w', le pointeur de fichier retourné équivaut au STDIN de la commande.

Si une erreur survient, la fonction retournera FALSE.

Exemples

Exemple #1 Exemple avec popen()

<?php
$handle 
popen("/bin/ls""r");
?>

Si la commande à exécuter n'a pu être trouvée, une ressource valide sera retournée. Cela semble étrange, mais c'est pratique. cela vous permet d'accéder aux messages d'erreur qui ont été retournés par le Shell :

Exemple #2 Exemple avec popen()

<?php
error_reporting
(E_ALL);

/* Ajoute une redirection pour que vous puissiez lire stderr. */
$handle popen('/path/to/executable 2>&1''r');
echo 
"'$handle'; " gettype($handle) . "\n";
$read fread($handle2096);
echo 
$read;
pclose($handle);
?>

Notes

Note:

Si vous souhaitez un support bidirectionnel (two-way), utilisez la fonction proc_open().

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

  • pclose() - Ferme un processus de pointeur de fichier
  • fopen() - Ouvre un fichier ou une URL
  • proc_open() - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties



readfile

(PHP 4, PHP 5)

readfileAffiche un fichier

Description

int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

Lit un fichier et l'envoie dans le buffer de sortie.

Liste de paramètres

filename

Le fichier à lire.

use_include_path

Vous pouvez utiliser le deuxième paramètre optionnel pour explorer le dossier include_path, en passant la valeur de TRUE.

context

Une ressource de contexte.

Valeurs de retour

Retourne le nombre d'octets lus depuis le fichier. Si une erreur survient, retourne FALSE, et à moins que la fonction n'ait été appelée avec @readfile(), un message d'erreur est affiché.

Exemples

Exemple #1 Forcer le téléchargement en utilisant readfile()

<?php
$file 
'monkey.gif';

if (
file_exists($file)) {
    
header('Content-Description: File Transfer');
    
header('Content-Type: application/octet-stream');
    
header('Content-Disposition: attachment; filename='.basename($file));
    
header('Content-Transfer-Encoding: binary');
    
header('Expires: 0');
    
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    
header('Pragma: public');
    
header('Content-Length: ' filesize($file));
    
ob_clean();
    
flush();
    
readfile($file);
    exit;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fenêtre d'ouverture / de sauvegarde

Notes

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Fonctions sur les flux.

Voir aussi




realpath_cache_get

(PHP 5 >= 5.3.2)

realpath_cache_getRécupère les entrées du cache realpath

Description

array realpath_cache_get ( void )

Récupère les entrées du cache realpath.

Valeurs de retour

Retourne un tableaux d'entrées du cache realpath. Les clés sont les chemins originaux et les valeurs sont des tableaux de données contenant le chemin résolu, la date d'expiration et d'autres param-tres gardés en cache.

Exemples

Exemple #1 Exemple avec realpath_cache_get()

<?php
var_dump
(realpath_cache_get());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["/test"]=>
  array(4) {
    ["key"]=>
    int(123456789)
    ["is_dir"]=>
    bool(true)
    ["realpath"]=>
    string(5) "/test"
    ["expires"]=>
    int(1260318939)
  }
  ["/test/test.php"]=>
  array(4) {
    ["key"]=>
    int(987654321)
    ["is_dir"]=>
    bool(false)
    ["realpath"]=>
    string(12) "/root/test.php"
    ["expires"]=>
    int(1260318939)
  }
}

Voir aussi



realpath_cache_size

(PHP 5 >= 5.3.2)

realpath_cache_sizeRécupère la taille du cache realpath

Description

int realpath_cache_size ( void )

Récupère la quantité de mémoire utilisée par le cache realpath.

Valeurs de retour

Retourne la quantité de mémoire utilisée par le cache realpath.

Exemples

Exemple #1 Exemple avec realpath_cache_size()

<?php
var_dump
(realpath_cache_size());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(412)

Voir aussi



realpath

(PHP 4, PHP 5)

realpathRetourne le chemin canonique absolu

Description

string realpath ( string $path )

realpath() résout tous les liens symboliques, et remplace toutes les références /./, /../ et / de path puis retourne le chemin canonique absolu ainsi trouvé.

Liste de paramètres

path

Le chemin à vérifier.

Valeurs de retour

Retourne le chemin canonique absolu ainsi trouvé. Le résultat ne contient aucun lien symbolique, /./ ou /../.

realpath() retourne FALSE si une erreur survient, e.g. si le fichier n'existe pas.

Note:

Le script qui s'exécute doit avoir les permissions en exécution sur tous les dossiers de la structure, sinon, la fonction realpath() retournera FALSE.

Historique

Version Description
5.3.0 Avant cette version, realpath() n'échouera pas sous les systèmes *BSD que si le dernier path n'existe pas.

Exemples

Exemple #1 Exemple avec realpath()

<?php
chdir
('/var/www/');
echo 
realpath('./../../etc/passwd');
?>

L'exemple ci-dessus va afficher :

/etc/passwd

Exemple #2 Exemple avec realpath() sous Windows

Sous Windows, realpath() changera les chemins de style Unix e, chemins de style Windows.

<?php
echo realpath('/windows/system32');
?>

L'exemple ci-dessus va afficher :

C:\WINDOWS\System32

Voir aussi

  • basename() - Retourne le nom du fichier dans un chemin
  • dirname() - Renvoie le nom du dossier parent
  • pathinfo() - Retourne des informations sur un chemin système



rename

(PHP 4, PHP 5)

renameRenomme un fichier ou un dossier

Description

bool rename ( string $oldname , string $newname [, resource $context ] )

Tente de renommer oldname en newname.

Liste de paramètres

oldname

Note:

L'ancien nom. Le gestionnaire utilisé dans le paramètre oldname DOIT être le même que celui utilisé dans newname.

newname

Le nouveau nom.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Fonctions sur les flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.1 rename() peut maintenant renommer des fichiers sous Windows.
5.0.0 rename() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à Liste des protocoles et des gestionnaires supportés pour une liste des gestionnaires qui supportent rename().
4.3.3 rename() peut maintenant renommer des fichiers entre différentes partitions Unix, si les permissions le permettent. Des Warnings peuvent être émis si la destination ne supporte pas les appels systèmes chown() ou chmod() sur les fichiers; par exemple les systèmes de fichier FAT.

Exemples

Exemple #1 Exemple avec rename()

<?php
rename
("/tmp/tmp_file.txt""/home/user/login/docs/my_file.txt");
?>

Voir aussi



rewind

(PHP 4, PHP 5)

rewindReplace le pointeur de fichier au début

Description

bool rewind ( resource $handle )

Replace le pointeur de fichier handle au début du flux.

Note:

Si vous avez ouvert le fichier en mode d'ajout ("a" ou "a+"), toutes les données que vous écrirez dans ce fichier seront toujours ajoutées, sans se soucier de la position du pointeur de fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide, et avoir été correctement ouvert par fopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rewind()

<?php
$handle 
fopen('output.txt''r+');

fwrite($handle'Really long sentence.');
rewind($handle);
fwrite($handle'Foo');
rewind($handle);

echo 
fread($handlefilesize('output.txt'));

fclose($handle);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Foolly long sentence.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fseek() - Modifie la position du pointeur de fichier
  • ftell() - Renvoie la position courant du pointeur de fichier
  • fwrite() - Écrit un fichier en mode binaire



rmdir

(PHP 4, PHP 5)

rmdirEfface un dossier

Description

bool rmdir ( string $dirname [, resource $context ] )

Tente d'effacer le dossier dont le chemin est dirname. Le dossier doit être vide, et le script doit avoir les autorisations adéquates. Une alerte de niveau E_WARNING sera générée en cas d'échec.

Liste de paramètres

dirname

Le chemin vers le dossier.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Fonctions sur les flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.0.0 Depuis PHP 5.0.0, rmdir() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à Liste des protocoles et des gestionnaires supportés pour une liste des gestionnaires qui supportent rmdir().

Exemples

Exemple #1 Exemple avec rmdir()

<?php
if (!is_dir('examples')) {
    
mkdir('examples');
}

rmdir('examples');
?>

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi



set_file_buffer

(PHP 4, PHP 5)

set_file_bufferAlias de stream_set_write_buffer()

Description

Cette fonction est un alias de : stream_set_write_buffer().



stat

(PHP 4, PHP 5)

statRenvoie les informations à propos d'un fichier

Description

array stat ( string $filename )

Renvoie les informations à propos du fichier filename. Si filename est un lien symbolique, les informations proviennent du fichier lui-même, et non du lien symbolique.

lstat() est identique à stat() sauf que les informations seront alors basées sur le lien symbolique.

Liste de paramètres

filename

Le chemin vers le fichier.

Valeurs de retour

Format du résultat de stat() et fstat()
Numéro Nom (depuis PHP 4.0.6) Description
0 dev volume
1 ino Numéro d'inode (*)
2 mode droit d'accès à l'inode
3 nlink nombre de liens
4 uid userid du propriétaire (*)
5 gid groupid du propriétaire (*)
6 rdev type du volume, si le volume est une inode
7 size taille en octets
8 atime date de dernier accès (Unix timestamp)
9 mtime date de dernière modification (Unix timestamp)
10 ctime date de dernier changement d'inode (Unix timestamp)
11 blksize taille de bloc (**)
12 blocks nombre de blocs de 512 octets alloués (**)
* - Sous Windows, vaut toujours 0.

** - uniquement sur les systèmes qui supportent le type st_blksize. Les autres systèmes (e.g. Windows) retournent -1.

En cas d'erreur, stat() retourne FALSE.

Erreurs / Exceptions

Si une erreur survient, une alerte de type E_WARNING est émise.

Historique

Version Description
4.0.6 En plus de retourner ces attributs dans un tableau numérique, ils peuvent être lus à l'aide de leurs indices, tels que notés près de chacun des paramètres

Exemples

Exemple #1 Exemple avec stat()

<?php
/* Récupération des informations */
$stat stat('C:\php\php.exe');

/*
 * Affichage de la date et heure de l'accès à ce fichier,
 * identique à l'appel à la fonction fileatime()
 */
echo 'Date et heure d\'accès : ' $stat['atime'];

/*
 * Affiche de la date et heure de modification du fichier,
 * identique à l'appel à la fonction filemtime()
 */
echo 'Date et heure de modification : ' $stat['mtime'];

/* Affichage du numéro du device */
echo 'Numéro du Device : ' $stat['dev'];
?>

Exemple #2 Utilisation des informations issues de stat() conjointement avec la fonction touch()

<?php
/* Récupération des informations issues de la fonction stat */
$stat stat('C:\php\php.exe');

/* L'accès aux informations a-t-il échoué ? */
if (!$stat) {
    echo 
'L\'appel à stat() a échoué...';
} else {
    
/*
     * Nous voulons que la date et heure d'accès soit d'une
     * semaine après la date courante.
     */
    
$atime $stat['atime'] + 604800;

    
/* Touchons le fichier ! */
    
if(!touch('some_file.txt'time(), $atime)) {
        echo 
'Échec lors de l\'appel à la fonction touch()...';
    } else {
        echo 
'L\'appel à touch() a réussi...';
    }
}
?>

Notes

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • lstat() - Retourne les informations sur un fichier ou un lien symbolique
  • fstat() - Lit les informations sur un fichier à partir d'un pointeur de fichier
  • filemtime() - Lit la date de dernière modification du fichier
  • filegroup() - Lire le nom du groupe




tempnam

(PHP 4, PHP 5)

tempnamCrée un fichier avec un nom unique

Description

string tempnam ( string $dir , string $prefix )

Crée un fichier dont le nom est unique, ayant comme permissions d'accès 0600, dans le dossier spécifié. Si le dossier n'existe pas, tempnam() tentera de créer un fichier dans le dossier temporaire système, et retournera son nom.

Liste de paramètres

dir

Le dossier dans lequel le fichier temporaire sera créé.

prefix

Le préfixe du fichier temporaire généré.

Note: Windows utilise seulement les 3 premiers caractères du préfixe.

Valeurs de retour

Retourne un nouveau fichier temporaire, ou FALSE si une erreur survient.

Historique

Version Description
4.0.6 Avant PHP 4.0.6, le comportement de tempnam() dépendait du système sous-jacent. Sous Windows, la variable d'environnement TMP remplace le paramètre dir ; sous Linux, la variable d'environnement TMPDIR a la priorité, tandis que pour les OS en système SVR4, le paramètre dir sera toujours utilisé, si le dossier qu'il représente existe. Consultez votre documentation sur tempnam(3) pour plus de détails.
4.0.3 Le comportement de cette fonction a été modifié en PHP 4.0.3. Le fichier temporaire est aussi créé pour éviter des conflits si le fichier apparaît dans le système de fichiers entre le moment où la chaîne est générée et avant que le script n'ait terminé la création du fichier. Notez que vous devez effacer le fichier si vous n'en avez plus besoin, car cela n'est pas fait automatiquement.

Exemples

Exemple #1 Exemple avec tempnam()

<?php
$tmpfname 
tempnam("/tmp""FOO");

$handle fopen($tmpfname"w");
fwrite($handle"Écriture dans le fichier temporaire");
fclose($handle);

// traitement

unlink($tmpfname);
?>

Notes

Note: Si PHP ne peut pas créer un fichier dans le dossier spécifié par le paramètre dir, il tentera dans le dossier par défaut du système. Sous les systèmes de fichiers NTFS, ceci arrive également si le dossier dir contient plus de 65534 fichiers.

Voir aussi



tmpfile

(PHP 4, PHP 5)

tmpfileCrée un fichier temporaire

Description

resource tmpfile ( void )

Crée un fichier temporaire avec un nom unique, ouvert en écriture et lecture (w+), et retourne un pointeur de fichier.

Ce fichier sera automatiquement effacé lorsqu'il sera fermé (avec fclose()), ou lorsque le script sera terminé.

Pour plus de détails, consultez votre documentation système sur la fonction tmpfile(3), et sur stdio.h.

Valeurs de retour

Retourne un pointeur de fichier, identique à celui retourné par la fonction fopen(), pour le nouveau fichier ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tmpfile()

<?php
$temp 
tmpfile();
fwrite($temp"Écriture dans le fichier temporaire");
fseek($temp0);
echo 
fread($temp1024);
fclose($temp); // ceci va effacer le fichier
?>

L'exemple ci-dessus va afficher :

writing to tempfile

Voir aussi

  • tempnam() - Crée un fichier avec un nom unique
  • sys_get_temp_dir() - Retourne le chemin du répertoire utilisé pour les fichiers temporaires



touch

(PHP 4, PHP 5)

touchModifie la date de modification et de dernier accès d'un fichier

Description

bool touch ( string $filename [, int $time = time() [, int $atime ]] )

Tente de forcer la date de modification du fichier désigné par le paramètre filename à la date de spécifiée par le paramètre time. Notez bien que la date de dernier accès est modifiée, quelque soit le nombre de paramètres.

Si le fichier n'existe pas, PHP tentera de le créer.

Liste de paramètres

filename

Le nom du fichier à créer.

time

La date de création. Si time est omis, c'est l'heure courante qui est utilisée.

atime

Si le troisième paramètre atime est fourni, il est utilisé comme date de dernier accès.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Il devient possible de changer la date et heure de modification d'un dossier sous Windows.

Exemples

Exemple #1 Exemple avec touch()

<?php
if (touch($FileName)) {
    echo 
"La date de modification de $FileName a été modifié à la date courante";
} else {
    echo 
"Désolé, il est impossible de changer la date de modification de $FileName";
}
?>

Exemple #2 Exemple avec touch() en utilisant le paramètre time

<?php
/*
 * Ceci est la date et heure du dernier accès, nous y ajoutons 1 heure
 * dans le passé.
 */
$time time() - 3600;

/* Touchons le fichier ! */
if (!touch('some_file.txt'$time)) {
    echo 
'Whoops, une erreur est survenue...';
} else {
    echo 
'L\'appel à la fonction touch() a réussi';
}
?>

Notes

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Avertissement

Avant la version 5.3.0 de PHP, il n'était pas possible de changer la date et heure de modification d'un dossier avec cette fonction sous Windows.



umask

(PHP 4, PHP 5)

umaskChange le "umask" courant

Description

int umask ([ int $mask ] )

umask() change le umask de PHP et le remplace par mask : mask & 0777 puis, retourne le vieux umask. Lorsque PHP est utilisé comme module de serveur, le umask reprend sa valeur à la fin de chaque script.

Liste de paramètres

mask

Le nouvel umask.

Valeurs de retour

umask(), appelée sans arguments, retourne simplement le umask courant, sinon, ce sera l'ancien umask qui sera retourné.

Exemples

Exemple #1 Exemple avec umask()

<?php
$old 
umask(0);
chmod("/path/some_dir/some_file.txt"0755);
umask($old);

// Vérification
if ($old != umask()) {
    die(
'Une erreur est survenue lors de la modification des droits');
}
?>

Notes

Note:

Évitez d'utiliser cette fonction sur un serveur Web multithreadé. Il vaut mieux changer les droits d'un dossier avec la fonction chmod(), après la création du dossier. En utilisant umask(), vous risquez de rencontrer des comportements indéfinis au niveau des autres scripts et du serveur, car ils utilisent tous le même umask.



Sommaire

  • basename — Retourne le nom du fichier dans un chemin
  • chgrp — Change le groupe d'un fichier
  • chmod — Change le mode du fichier
  • chown — Change le propriétaire du fichier
  • clearstatcache — Efface le cache de stat
  • copy — Copie un fichier
  • delete — Voir unlink ou unset
  • dirname — Renvoie le nom du dossier parent
  • disk_free_space — Renvoie l'espace disque disponible sur le système de fichiers ou la partition
  • disk_total_space — Retourne la taille d'un dossier ou d'une partition
  • diskfreespace — Alias de disk_free_space
  • fclose — Ferme un fichier
  • feof — Teste la fin du fichier
  • fflush — Envoie tout le contenu généré dans un fichier
  • fgetc — Lit un caractère dans un fichier
  • fgetcsv — Renvoie la ligne courante et cherche les champs CSV
  • fgets — Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss — Renvoie la ligne courante du fichier et élimine les balises HTML
  • file_exists — Vérifie si un fichier ou un dossier existe
  • file_get_contents — Lit tout un fichier dans une chaîne
  • file_put_contents — Écrit un contenu dans un fichier
  • file — Lit le fichier et renvoie le résultat dans un tableau
  • fileatime — Renvoie la date à laquelle le fichier a été accédé pour la dernière fois
  • filectime — Renvoie la date de dernier accès à un inode
  • filegroup — Lire le nom du groupe
  • fileinode — Lit le numéro d'inode du fichier
  • filemtime — Lit la date de dernière modification du fichier
  • fileowner — Lit l'identifiant du propriétaire d'un fichier
  • fileperms — Lit les droits d'un fichier
  • filesize — Lit la taille d'un fichier
  • filetype — Retourne le type de fichier
  • flock — Verrouille le fichier
  • fnmatch — Repère un fichier à partir d'un masque de recherche
  • fopen — Ouvre un fichier ou une URL
  • fpassthru — Affiche le reste du fichier
  • fputcsv — Formate une ligne en CSV et l'écrit dans un fichier
  • fputs — Alias de fwrite
  • fread — Lecture du fichier en mode binaire
  • fscanf — Analyse un fichier en fonction d'un format
  • fseek — Modifie la position du pointeur de fichier
  • fstat — Lit les informations sur un fichier à partir d'un pointeur de fichier
  • ftell — Renvoie la position courant du pointeur de fichier
  • ftruncate — Tronque un fichier
  • fwrite — Écrit un fichier en mode binaire
  • glob — Recherche des chemins qui vérifient un masque
  • is_dir — Indique si le fichier est un dossier
  • is_executable — Indique si le fichier est exécutable
  • is_file — Indique si le fichier est un véritable fichier
  • is_link — Indique si le fichier est un lien symbolique
  • is_readable — Indique si un fichier existe et est accessible en lecture
  • is_uploaded_file — Indique si le fichier a été téléchargé par HTTP POST
  • is_writable — Indique si un fichier est accessible en écriture
  • is_writeable — Alias de is_writable
  • lchgrp — Change l'appartenance du groupe d'un lien symbolique
  • lchown — Change le propriétaire d'un lien symbolique
  • link — Crée un lien
  • linkinfo — Renvoie les informations d'un lien
  • lstat — Retourne les informations sur un fichier ou un lien symbolique
  • mkdir — Crée un dossier
  • move_uploaded_file — Déplace un fichier téléchargé
  • parse_ini_file — Analyse un fichier de configuration
  • parse_ini_string — Analyse une chaîne de configuration
  • pathinfo — Retourne des informations sur un chemin système
  • pclose — Ferme un processus de pointeur de fichier
  • popen — Crée un processus de pointeur de fichier
  • readfile — Affiche un fichier
  • readlink — Renvoie le contenu d'un lien symbolique
  • realpath_cache_get — Récupère les entrées du cache realpath
  • realpath_cache_size — Récupère la taille du cache realpath
  • realpath — Retourne le chemin canonique absolu
  • rename — Renomme un fichier ou un dossier
  • rewind — Replace le pointeur de fichier au début
  • rmdir — Efface un dossier
  • set_file_buffer — Alias de stream_set_write_buffer
  • stat — Renvoie les informations à propos d'un fichier
  • symlink — Crée un lien symbolique
  • tempnam — Crée un fichier avec un nom unique
  • tmpfile — Crée un fichier temporaire
  • touch — Modifie la date de modification et de dernier accès d'un fichier
  • umask — Change le "umask" courant
  • unlink — Efface un fichier

  • Introduction
  • Installation/Configuration
  • Constantes pré-définies
  • Fonctions sur les systèmes de fichiers
    • basename — Retourne le nom du fichier dans un chemin
    • chgrp — Change le groupe d'un fichier
    • chmod — Change le mode du fichier
    • chown — Change le propriétaire du fichier
    • clearstatcache — Efface le cache de stat
    • copy — Copie un fichier
    • delete — Voir unlink ou unset
    • dirname — Renvoie le nom du dossier parent
    • disk_free_space — Renvoie l'espace disque disponible sur le système de fichiers ou la partition
    • disk_total_space — Retourne la taille d'un dossier ou d'une partition
    • diskfreespace — Alias de disk_free_space
    • fclose — Ferme un fichier
    • feof — Teste la fin du fichier
    • fflush — Envoie tout le contenu généré dans un fichier
    • fgetc — Lit un caractère dans un fichier
    • fgetcsv — Renvoie la ligne courante et cherche les champs CSV
    • fgets — Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
    • fgetss — Renvoie la ligne courante du fichier et élimine les balises HTML
    • file_exists — Vérifie si un fichier ou un dossier existe
    • file_get_contents — Lit tout un fichier dans une chaîne
    • file_put_contents — Écrit un contenu dans un fichier
    • file — Lit le fichier et renvoie le résultat dans un tableau
    • fileatime — Renvoie la date à laquelle le fichier a été accédé pour la dernière fois
    • filectime — Renvoie la date de dernier accès à un inode
    • filegroup — Lire le nom du groupe
    • fileinode — Lit le numéro d'inode du fichier
    • filemtime — Lit la date de dernière modification du fichier
    • fileowner — Lit l'identifiant du propriétaire d'un fichier
    • fileperms — Lit les droits d'un fichier
    • filesize — Lit la taille d'un fichier
    • filetype — Retourne le type de fichier
    • flock — Verrouille le fichier
    • fnmatch — Repère un fichier à partir d'un masque de recherche
    • fopen — Ouvre un fichier ou une URL
    • fpassthru — Affiche le reste du fichier
    • fputcsv — Formate une ligne en CSV et l'écrit dans un fichier
    • fputs — Alias de fwrite
    • fread — Lecture du fichier en mode binaire
    • fscanf — Analyse un fichier en fonction d'un format
    • fseek — Modifie la position du pointeur de fichier
    • fstat — Lit les informations sur un fichier à partir d'un pointeur de fichier
    • ftell — Renvoie la position courant du pointeur de fichier
    • ftruncate — Tronque un fichier
    • fwrite — Écrit un fichier en mode binaire
    • glob — Recherche des chemins qui vérifient un masque
    • is_dir — Indique si le fichier est un dossier
    • is_executable — Indique si le fichier est exécutable
    • is_file — Indique si le fichier est un véritable fichier
    • is_link — Indique si le fichier est un lien symbolique
    • is_readable — Indique si un fichier existe et est accessible en lecture
    • is_uploaded_file — Indique si le fichier a été téléchargé par HTTP POST
    • is_writable — Indique si un fichier est accessible en écriture
    • is_writeable — Alias de is_writable
    • lchgrp — Change l'appartenance du groupe d'un lien symbolique
    • lchown — Change le propriétaire d'un lien symbolique
    • link — Crée un lien
    • linkinfo — Renvoie les informations d'un lien
    • lstat — Retourne les informations sur un fichier ou un lien symbolique
    • mkdir — Crée un dossier
    • move_uploaded_file — Déplace un fichier téléchargé
    • parse_ini_file — Analyse un fichier de configuration
    • parse_ini_string — Analyse une chaîne de configuration
    • pathinfo — Retourne des informations sur un chemin système
    • pclose — Ferme un processus de pointeur de fichier
    • popen — Crée un processus de pointeur de fichier
    • readfile — Affiche un fichier
    • readlink — Renvoie le contenu d'un lien symbolique
    • realpath_cache_get — Récupère les entrées du cache realpath
    • realpath_cache_size — Récupère la taille du cache realpath
    • realpath — Retourne le chemin canonique absolu
    • rename — Renomme un fichier ou un dossier
    • rewind — Replace le pointeur de fichier au début
    • rmdir — Efface un dossier
    • set_file_buffer — Alias de stream_set_write_buffer
    • stat — Renvoie les informations à propos d'un fichier
    • symlink — Crée un lien symbolique
    • tempnam — Crée un fichier avec un nom unique
    • tmpfile — Crée un fichier temporaire
    • touch — Modifie la date de modification et de dernier accès d'un fichier
    • umask — Change le "umask" courant
    • unlink — Efface un fichier


Inotify


Introduction

L'extension inotify fait l'interface avec les fonctions inotify_init(), inotify_add_watch() et inotify_rm_watch().

Comme la fonction C inotify_init() retourne un pointeur de fichier, la fonction PHP inotify_init() retourne un flux, à utiliser avec les fonctions standard de flux, telle que stream_select(), stream_set_blocking() et fclose(). inotify_read() remplace l'approche en langage C de lecture des événements.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requiert Linux 2.6.13 ou plus récent, et une version récente de libC.



Installation/Configuration

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/inotify.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit un flux de données, retourné par inotify_init().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes Inotify sont utilisables avec les fonctions inotify_add_watch() et/ou retournées par la fonction inotify_read()
IN_ACCESS (integer)
Le fichier a été accédé (lu) (*)
IN_MODIFY (integer)
Le fichier a été modifié (*)
IN_ATTRIB (integer)
Les métadonnées ont changé (e.g. les permissions, la date de modification, etc.) (*)
IN_CLOSE_WRITE (integer)
Le fichier ouvert en écriture a été refermé (*)
IN_CLOSE_NOWRITE (integer)
Le fichier non-ouvert en écriture a été refermé (*)
IN_OPEN (integer)
Le fichier a été ouvert (*)
IN_MOVED_TO (integer)
Fichier déplacé dans un dossier surveillé (*)
IN_MOVED_FROM (integer)
Fichier déplacé depuis un dossier surveillé (*)
IN_CREATE (integer)
Fichier ou dossier créé dans un dossier surveillé (*)
IN_DELETE (integer)
Fichier ou dossier supprimé dans un dossier surveillé (*)
IN_DELETE_SELF (integer)
Les fichiers ou dossiers surveillés ont été supprimés
IN_MOVE_SELF (integer)
Les fichiers ou dossiers surveillés ont été déplacés
IN_CLOSE (integer)
Égal à IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (integer)
Égal à IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (integer)
Composition de toutes les constantes précédentes
IN_UNMOUNT (integer)
Le système de fichiers contenant les objets surveillés a été démonté
IN_Q_OVERFLOW (integer)
Queue d'événements en dépassement de capacité (wd vaut -1 pour cet événement)
IN_IGNORED (integer)
La surveillance a été retirée (explicitement par inotify_rm_watch() ou par ce que le fichier a été supprimé, ou que le système de fichiers a été démonté)
IN_ISDIR (integer)
Le sujet de cet événement est un dossier
IN_ONLYDIR (integer)
Ne surveille que le chemin, si c'est un dossier (Depuis Linux 2.6.15)
IN_DONT_FOLLOW (integer)
Ne déréférence pas le chemin si c'est un lien symbolique (Depuis Linux 2.6.15)
IN_MASK_ADD (integer)
Ajoute les événements au masque de surveillance pour ce chemin, s'il existe déjà (au lieu de remplacer).
IN_ONESHOT (integer)
Surveille le chemin de cet événement, puis le supprime de la liste de surveillance.

Note: Les événements marqués par un astérisque (*) ci-dessus peuvent survenir pour des fichiers dans des dossiers sous surveillance.



Fonctions Inotify


inotify_add_watch

(PECL inotify >= 0.1.2)

inotify_add_watchAjoute un point de surveillance à une instance inotify

Description

int inotify_add_watch ( resource $inotify_instance , string $pathname , int $mask )

inotify_add_watch() ajoute un point de surveillance à une instance inotify ou modifie un point de surveillnace en cours vers un nouveau fichier ou dossier spécifié par le chemin pathname.

Utiliser inotify_add_watch() sur un objet déjà en surveillance modifie la configuration. Utiliser la constante IN_MASK_ADD ajoute les événements (OR logique).

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

pathname

Fichier ou dossier à surveiller.

mask

Événements à surveiller. Voyez Constantes pré-définies.

Valeurs de retour

La valeur retournée est un pointeur inotify unique (inotify instance wide).

Voir aussi



inotify_init

(PECL inotify >= 0.1.2)

inotify_initInitialise une instance inotify

Description

resource inotify_init ( void )

Initialise une instance inotify pour utiliser avec la fonction inotify_add_watch()

Valeurs de retour

Un flux ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple d'utilisatio d'inotify

<?php
// Crée une instance inotify
$fd inotify_init();

// Surveille les modifications des métadonées du fichier __FILE__ (e.g. mtime)
$watch_descriptor inotify_add_watch($fd__FILE__IN_ATTRIB);

// Génère un événement
touch(__FILE__);

// Lit les événements
$events inotify_read($fd);
print_r($events);

// Les méthodes suivantes permettent d'utiliser les fonctions inotify sans bloquer sur inotify_read():

// - Utiliser stream_select() sur $fd:
$read = array($fd);
$write null;
$except null;
stream_select($read,$write,$except,0);

// - Utiliser stream_set_blocking() sur $fd
stream_set_blocking($fd0);
inotify_read($fd); // Does no block, and return false if no events are pending

// - Utiliser inotify_queue_len() pour vérifier la taille de la file d'attente
$queue_len inotify_queue_len($fd); // If > 0, inotify_read() will not block

// Arrêt de la surveillance de __FILE__
inotify_rm_watch($fd$watch_descriptor);

// Destruction de l'instance inotify
// Cela aurait arrêté toutes les surveillance si ce n'était pas déjà fait
fclose($fd);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(
  array(
    'wd' => 1,     // Egale le $watch_descriptor
    'mask' => 4,   // Le bit IN_ATTRIB est activé
    'cookie' => 0, // identifiant uique pour relier des événements (e.g. 
                   // IN_MOVE_FROM et IN_MOVE_TO)
    'name' => '',  // Le nom du fichier (e.g. si un dossier était sous surveillance)
  ),
);

Voir aussi



inotify_queue_len

(PECL inotify >= 0.1.2)

inotify_queue_lenRetourne le nombre d'événements qui sont survenus

Description

int inotify_queue_len ( resource $inotify_instance )

Cette fonction permet de savoir si inotify_read() va bloquer ou non. Si un nombre supérieur à 0 est retourné, il y a des événements en attente, et inotify_read() ne va pas bloquer.

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

Valeurs de retour

Retourne le nombre d'événements qui sont survenus.

Voir aussi



inotify_read

(PECL inotify >= 0.1.2)

inotify_readLit les événements dans une instance inotify

Description

array inotify_read ( resource $inotify_instance )

Lit les événements dans une instance inotify.

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

Valeurs de retour

Un tableau d'événements inotify ou FALSE si aucun événement n'était dans la liste, et que inotify_instance était non-bloquant. Chaque événement dans le tableau dispose des index suivants :

  • wd, le pointeur retourné par la fonction inotify_add_watch()
  • mask est un champ de bits de constantes inotify
  • cookie iest un identifiant unique pour relier des événements communs (e.g. IN_MOVE_FROM and IN_MOVE_TO)
  • name est le nom du fichier (e.g. si un fichier a été modifié dans le dossier de surveillance)

Voir aussi



inotify_rm_watch

(PECL inotify >= 0.1.2)

inotify_rm_watchSupprime un point de surveillance d'une instance inotify

Description

bool inotify_rm_watch ( resource $inotify_instance , int $watch_descriptor )

inotify_rm_watch() retire le point de surveillance watch_descriptor de l'instance inotify inotify_instance.

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

watch_descriptor

Point de surveillance à retirer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




Mimetype


Introduction

Avertissement

Cette extension est à présent déconseillée étant donné que l'extension PECL Fileinfo fournit les mêmes fonctionnalités (et même plus) de façon plus propre.

Ces fonctions essaient de définir le type de contenu et l'encodage d'un fichier en recherchant certaines séquences magiques, à certaines positions dans le fichier. Même si ce n'est pas une approche imparable, les heuristiques réalisent un bon travail.

Cette extension est dérivée du module Apache mod_mime_magic, qui est lui-même basé sur la commande file, entretenue par Ian F. Darwin. Voyez le code source pour plus de détails sur les heuristiques et les informations de copyright.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Avertissement

L'extension Mimetype a été supprimée en PHP 5.3.0 en faveur de l'extension Fileinfo.

Vous devez compiler PHP avec l'option --enable-mime-magic pour obtenir le support des fonctions mime-type. L'extension nécessite une copie simplifiée de magic qui est distribuée avec le serveur httpd Apache.

Note:

L'option de configuration a été changée de --enable-mime-magic en --with-mime-magic depuis PHP 4.3.2

Note:

Cette extension n'est pas capable d'utiliser le fichier magic complet, qui est généralement livré avec les distributions Linux, et il est supposé fonctionner avec les plus récentes versions de la commande file.

Note: Note aux utilisateurs Windows

Afin de pouvoir utiliser ce module en environnement Windows, vous devez activer le chemin jusqu'au fichier magic.mime de votre php.ini.

Exemple #1 Configuration Windows de magic.mime

mime_magic.magicfile ="$PHP_INSTALL_DIR\magic.mime"

N'oubliez pas de remplacer la valeur de $PHP_INSTALL_DIR par votre chemin jusqu'à l'exécutable PHP, dans l'exemple ci-dessus. Par exemple, c:\php.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MIME
Nom Défaut Modifiable Historique
mime_magic.debug "0" PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
mime_magic.magicfile "/path/to/php/magic.mime" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mime_magic.debug booléen

Active ou désactive le déboguage.

mime_magic.magicfile chaîne de caractères

Le chemin vers le fichier magic.mime.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.




xattr


Introduction

L'extension xattr permet la manipulation des attributs étendus d'un système de fichiers.



Installation/Configuration

Sommaire


Pré-requis

Pour utiliser xattr, vous devez installer la bibliothèque libattr. Elle est disponible sur » http://oss.sgi.com/projects/xfs/.

Note:

Ces fonctions ne fonctionnent que sur les systèmes de fichiers qui supportent les attributs étendus, et qu'ils les ont activés lors du montage du périphérique. Parmi les exemples de systèmes de fichiers qui supportent les attributs étendus, on peut noter ext2, ext3, reiserfs, jfs, et xfs.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/xattr.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XATTR_ROOT (entier)
Définit un attribut dans l'espace de noms racine. Nécessite les privilèges d'administrateur.
XATTR_DONTFOLLOW (entier)
Ne pas suivre un lien symbolique mais opérer directement sur le lien symbolique.
XATTR_CREATE (entier)
La fonction échouera si l'attribut étendu existe déjà.
XATTR_REPLACE (entier)
La fonction échouera si l'attribut étendu n'existe pas.


Fonctions xattr


xattr_get

(PECL xattr >= 0.9.0)

xattr_get Récupère un attribut étendu

Description

string xattr_get ( string $filename , string $name [, int $flags = 0 ] )

xattr_get() récupère la valeur de l'attribut étendu nommé name du fichier path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le fichier depuis lequel on récupère l'attribut.

name

Le nom de l'attribut.

flags

FLags xattr supportés
XATTR_DONTFOLLOW Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Retourne une chaîne contenant la valeur ou FALSE si l'attribut n'existe pas.

Exemples

Exemple #1 Vérifie si l'administrateur système a signé le fichier

<?php
$file 
'/usr/local/sbin/some_binary';
$signature xattr_get($file'Root signature'XATTR_ROOT);

/* ... vérifie si $signature est valide ... */

?>

Voir aussi



xattr_list

(PECL xattr >= 0.9.0)

xattr_list Récupère une liste d'attributs étendus

Description

array xattr_list ( string $filename [, int $flags = 0 ] )

xattr_list() récupère une liste de noms d'attributs étendus d'un fichier désigné par le paramètre path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le chemin vers le fichier.

flags

FLags xattr supportés
XATTR_DONTFOLLOW Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Cette fonction retourne un tableau contenant les noms des attributs étendus.

Exemples

Exemple #1 Affiche les noms de tous les attributs étendus d'un fichier

<?php
$file 
'un_fichier';
$root_attributes xattr_list($fileXATTR_ROOT);
$user_attributes xattr_list($file);

echo 
"Root attributes: \n";
foreach (
$root_attributes as $attr_name) {
    
printf("%s\n"$attr_name);
}

echo 
"\n Attributs utilisateur : \n";
foreach (
$attributes as $attr_name) {
    
printf("%s\n"$attr_name);
}

?>

Voir aussi



xattr_remove

(PECL xattr >= 0.9.0)

xattr_remove Efface un attribut étendu

Description

bool xattr_remove ( string $filename , string $name [, int $flags = 0 ] )

xattr_remove() efface un attribut étendu nommé name d'un fichier désigné par le paramètre path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le fichier depuis lequel nous effaçons l'attribut.

name

Le nom de l'attribut à effacer.

flags

Options xattr disponibles
XATTR_DONTFOLLOW Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Efface tous les attributs étendus d'un fichier

<?php
$file 
'un_fichier';
$attributes xattr_list($file);

foreach (
$attributes as $attr_name) {
    
xattr_remove($file$attr_name);
}
?>

Voir aussi



xattr_set

(PECL xattr >= 0.9.0)

xattr_set Définit un attribut étendu

Description

bool xattr_set ( string $filename , string $name , string $value [, int $flags = 0 ] )

xattr_set() définie la valeur d'un attribut étendu nommé name à la valeur value d'un fichier désigné par le paramètre path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le fichier dans lequel nous devons définir l'attribut.

name

Le nom de l'attribut étendu. Cet attribut sera créé s'il n'existe pas encore ou remplacé sinon. Vous pouvez modifier ce comportement en utilisant le paramètre flags.

value

La valeur de l'attribut.

flags

Flags xattr supportés
XATTR_CREATE La fonction échouera si l'attribut étendu existe déjà.
XATTR_REPLACE La fonction échouera si l'attribut étendu n'existe pas.
XATTR_DONTFOLLOW Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définition des attributs étendus dans un fichier .wav

<?php
$file 
'ma_chanson_favorite.wav';
xattr_set($file'Artist''Someone');
xattr_set($file'My ranking''Good');
xattr_set($file'Listen count''34');

/* ... autres codes ... */

printf("Vous avez écouté cette chanson %d fois"xattr_get($file'Listen count'));
?>

Voir aussi



xattr_supported

(PECL xattr >= 1.0.0)

xattr_supported Vérifie si un système de fichier supporte les attributs étendus

Description

bool xattr_supported ( string $filename [, int $flags = 0 ] )

xattr_supported() vérifie si le système de fichier contenant le fichier path supporte les attributs étendus. Un accès en lecture au fichier path est nécessaire.

Liste de paramètres

filename

Le chemin du fichier à tester.

flags

Flags xattr supportés
XATTR_DONTFOLLOW Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.

Valeurs de retour

Cette fonction retourne TRUE si le système de fichiers supporte les attributs étendus, FALSE sinon et NULL si l'on ne peut pas le déterminer (par exemple, mauvais chemin vers le fichier ou lorsqu'il manque des permissions sur le fichier).

Exemples

Exemple #1 Exemple avec xattr_supported()

Le code suivant vérifie si nous pouvons utiliser les attributs étendus.

<?php
$file 
'un_fichier';

if (
xattr_supported($file)) {
    
/* ... utilisez les fonctions xattr_* ... */
}

?>

Voir aussi


Sommaire




xdiff


Introduction

L'extension xdiff permet la création et l'application de patchs, contenant les différences entre différentes versions d'un même fichier.

Cette extension supporte deux modes d'opération : sur les chaînes et sur les fichiers, ainsi que deux formats de patch : unifié et binaire. Les patches unifiés sont parfaits pour les fichiers textes, car ils sont lisibles et faciles à passer en revue. Les fichiers binaires comme les archives compressées ou les images sont plus adaptés aux patches binaires, car ils sont compatibles avec les données binaires, et gère les caractères qui ne s'impriment pas.

Depuis la version 1.5.0, il y a deux jeux de fonctions pour générer les fichiers binaires. Les nouvelles fonctions, xdiff_string_rabdiff() et xdiff_file_rabdiff() génère un résultat compatible avec les anciennes fonctions, mais généralement plus rapidement, et avec des résultats plus compacts. Pour plus de détails sur la génération de patchs binaires, et leur différence, voyez le site Web de » libxdiff.

Cette extension utilise la bibliothèque libxdiff pour implémenter ces fonctions. Reportez-vous à » http://www.xmailserver.org/xdiff-lib.html pour plus d'informations.



Installation/Configuration

Sommaire


Pré-requis

Pour utiliser xdiff, vous devez avoir installé libxdiff, disponible sur la page d'accueil de » http://www.xmailserver.org/xdiff-lib.html.

Note:

Vous avez besoin au minimum de la version libxdiff 0.7 pour ces fonctions.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/xdiff.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XDIFF_PATCH_NORMAL (entier)
Cette option indique que les fonctions xdiff_string_patch() et xdiff_file_patch() doivent créer un résultat en appliquant le patch au contenu original, et créer ainsi une nouvelle version du fichier. C'est le mode d'opération par défaut.
XDIFF_PATCH_REVERSE (entier)
Cette option indique que les fonctions xdiff_string_patch() et xdiff_file_patch() doivent créer un résultat en annulant un patch depuis une version de fichier pour retrouver la version originale.


Fonctions xdiff


xdiff_file_bdiff_size

(PECL xdiff >= 0.2.0)

xdiff_file_bdiff_sizeLit la taille d'un fichier créé lors de l'application d'un diff binaire

Description

int xdiff_file_bdiff_size ( string $file )

Retourne la taille d'un fichier résultat créé après l'application d'un patch binaire depuis le fichier file sur le fichier original.

Liste de paramètres

file

Le patch du patch binaire créé par la fonction xdiff_string_bdiff() ou la fonction xdiff_string_rabdiff().

Valeurs de retour

Retourne la taille du fichier créé.

Exemples

Exemple #1 Exemple avec xdiff_file_bdiff_size()

Le code suivant lit la taille d'un fichier créé après l'application d'un diff binaire.

<?php
$length 
xdiff_string_bdiff_size('file.bdiff');
echo 
"Le fichier résultat a une taille de $length octets";
?>

Voir aussi



xdiff_file_bdiff

(PECL xdiff >= 0.2.0)

xdiff_file_bdiffCrée un diff binaire de 2 fichiers

Description

bool xdiff_file_bdiff ( string $old_file , string $new_file , string $dest )

Crée un diff binaire de 2 fichiers et enregistre le résultat dans un fichier patch. Cette fonction fonctionne avec des fichiers textes mais aussi des fichiers binaires. Le fichier patch résultant peut être ensuite appliqué en utilisant les fonctions xdiff_file_bpatch() et xdiff_string_bpatch().

Liste de paramètres

old_file

Chemin vers le premier fichier. C'est l'ancien fichier.

new_file

Chemin vers le second fichier. C'est le nouveau fichier.

dest

Chemin vers le fichier patch résultant. Ce patch contient les différences entre l'ancien et le nouveau fichier.Il est au format binaire et est humainement illisible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_bdiff()

Le code suivant crée un diff binaire de 2 archives.

<?php
$old_version 
'my_script_1.0.tgz';
$new_version 'my_script_1.1.tgz';

xdiff_file_bdiff($old_version$new_version'my_script.bdiff');
?>

Notes

Note:

Les 2 fichiers seront chargés en mémoire ; aussi, assurez-vous que votre paramètre memory_limit est défini à valeur assez élevée.

Voir aussi



xdiff_file_bpatch

(PECL xdiff >= 0.2.0)

xdiff_file_bpatchPatche un fichier avec un diff binaire

Description

bool xdiff_file_bpatch ( string $file , string $patch , string $dest )

Patche le fichier file avec le patch binaire et enregistre le résultat dans le fichier dest. Cette fonction accepte les patchs créés via les fonction xdiff_file_bdiff() et xdiff_file_rabdiff() ou leur équivalent sous forme de chaînes.

Liste de paramètres

file

Le fichier original.

patch

Le fichier patch binaire.

dest

Chemin vers le fichier résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_bpatch()

Le code suivant applique un diff binaire à un fichier.

<?php
$old_version 
'archive-1.0.tgz';
$patch 'archive.bpatch';

$result xdiff_file_bpatch($old_version$patch'archive-1.1.tgz');
if (
$result) {
   echo 
"Fichier patché";
} else {
   echo 
"Le fichier ne peut être patché";
}

?>

Notes

Note:

Les 2 fichiers (file et patch) seront chargés en mémoire ; aussi, assurez-vous que votre paramétrage de memory_limit est suffisamment élevé.

Voir aussi



xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binaryCréé un diff binaire de deux fichier

Description

bool xdiff_file_diff_binary ( string $old_file , string $new_file , string $dest )

Créé un diff binaire entre les deux fichiers et stocke le résultat dans dest. Cette fonction fonctionne avec les fichiers texte, mais aussi avec les fichiers binaires. Le patch résultant peut être appliqué à l'aide de la fonction xdiff_file_bpatch().

Depuis la version 1.5.0, cette fonction est un alias de xdiff_file_bdiff().

Liste de paramètres

old_file

Chemin jusqu'au premier fichier. Ce fichier est le "vieux" fichier.

new_file

Chemin jusqu'au deuxième fichier. Ce fichier est le "nouveau" fichier.

dest

Chemin vers le fichier résultat. Ce fichier contient les différences entre l'ancien et le nouveau fichier. C'est un format binaire, et il est lisible par un humain.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_diff_binary()

Le code suivant crée une différence binaire de deux archives.

<?php
$old_version 
'my_script_1.0.tgz';
$new_version 'my_script_1.1.tgz';

xdiff_file_diff_binary($old_version$new_version'my_script.bdiff');
?>

Notes

Note:

Les deux fichiers seront chargés en mémoire ; assurez-vous d'avoir défini memory_limit à une valeur assez grande.

Voir aussi



xdiff_file_diff

(PECL xdiff >= 0.2.0)

xdiff_file_diffCréé un diff unifié entre deux fichiers

Description

bool xdiff_file_diff ( string $old_file , string $new_file , string $dest [, int $context = 3 [, bool $minimal = false ]] )

Crée un diff unifié contenant les différences entre le fichier old_file et new_file et les enregistre dans le fichier dest. Le fichier résultant est humainement lisible. Le paramètre optionnel context spécifie le nombre de lignes du contexte qui doit être ajouté autour de chaque modification. Si le paramètre minimal vaut TRUE, alors le fichier de sortie sera le plus patit possible (peut prendre beaucoup de temps).

Liste de paramètres

old_file

Chemin vers le premier fichier. Ce fichier représente l'ancien fichier.

new_file

Chemin vers le second fichier. Ce fichier représente le nouveau fichier.

dest

Chemin vers le fichier contenant la différence.

context

Indique le nombre de lignes de contexte que vous voulez inclure dans le résultat de diff.

minimal

Configurez minimal à TRUE si vous voulez minimaliser la taille du fichier des différences (peut prendre beaucoup de temps).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_diff()

Le code suivant crée un diff de deux fichiers php avec une longueur de contexte de 2.

<?php
$old_version 
'my_script.php';
$new_version 'my_new_script.php';

xdiff_file_diff($old_version$new_version'my_script.diff'2);
?>

Notes

Note:

Cette fonction ne fonctionne pas correctement avec les fichiers binaires. Pour effectuer un diff sur des fichiers binaires, utilisez la fonction xdiff_file_bdiff()/xdiff_file_rabdiff().

Voir aussi



xdiff_file_merge3

(PECL xdiff >= 0.2.0)

xdiff_file_merge3Fusionne trois fichiers en un seul

Description

mixed xdiff_file_merge3 ( string $old_file , string $new_file1 , string $new_file2 , string $dest )

Fusionne les fichiers file1, file2 et file3 en un seul et le stocke dans dest. Le fichier old_file est la version originale, tandis que les fichiers new_file1 et new_file2 sont les versions modifiées de l'original.

Liste de paramètres

old_file

Chemin vers le premier fichier. C'est l'ancien fichier.

new_file1

Chemin vers le second fichier. C'est la verion modifiée de old_file.

new_file2

Chemin vers le troisième fichier. C'est la version modifiée de old_file.

dest

Chemin vers le fichier résultant, contenant la fusion des modifications des fichiers new_file1 et new_file2.

Valeurs de retour

Retourne TRUE si la fusion a réussi, une chaîne avec les parties rejetées s'il y en a, ou FALSE si une erreur interne s'est produite.

Exemples

Exemple #1 Exemple avec xdiff_file_merge3()

Le code suivant fusionne trois fichiers en un.

<?php
$old_version 
'original_script.php';
$fix1 'script_with_fix1.php';
$fix2 'script_with_fix2.php';

$errors xdiff_file_merge3($old_version$fix1$fix2'fixed_script.php');
if (
is_string($errors)) {
    echo 
"Rejets :\n";
    echo 
$errors;
}
?>

Voir aussi



xdiff_file_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_file_patch_binaryAlias de xdiff_file_bpatch

Description

bool xdiff_file_patch_binary ( string $file , string $patch , string $dest )

Patche le fichier file avec un patch binaire et enregistre le résultat dans le fichier dest. Cette fonction accepte les patchs créés avec la fonction xdiff_file_bdiff() ou la fonction xdiff_file_rabdiff() ou leur équivalent sous forme de chaînes.

Depuis la version 1.5.0, cette fonction est un alias de la fonction xdiff_file_bpatch().

Liste de paramètres

file

Le fichier original.

patch

Le Patch binaire.

dest

Le chemin vers le fichier résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_patch_binary()

Le code suivant applique un diff binaire à un fichier.

<?php
$old_version 
'archive-1.0.tgz';
$patch 'archive.bpatch';

$result xdiff_file_patch_binary($old_version$patch'archive-1.1.tgz');
if (
$result) {
   echo 
"File patched";
} else {
   echo 
"File couldn't be patched";
}

?>

Notes

Note:

Les deux fichiers (le fichier et le patch) seront chargés en mémoire ; assurez-vous d'avoir défini memory_limit à une valeur assez élevée.

Voir aussi



xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patchPatche un fichier avec un diff unifié

Description

mixed xdiff_file_patch ( string $file , string $patch , string $dest [, int $flags = DIFF_PATCH_NORMAL ] )

Patche le fichier file avec le patch fourni par le paramètre patch et enregistre le résultat dans un fichier. patch doit être un diff unifié créé par la fonction xdiff_file_diff()/xdiff_string_diff(). Un paramètre optionnel flags spécifie le mode de l'opération.

Liste de paramètres

file

Le fichier original.

patch

Le fichier contenant le patch unifié. Il doit avoir été créé en utilisant les fonctions xdiff_string_diff(), xdiff_file_diff() ou par des outils compatibles.

dest

Le chemin vers le fichier résultat.

flags

Peut être soit XDIFF_PATCH_NORMAL (mode par défaut, patch normal) ou XDIFF_PATCH_REVERSE (patch inversé).

Depuis la version 1.5.0, vous pouvez également utiliser l'opérateur binaire OR pour activer le drapeau XDIFF_PATCH_IGNORESPACE.

Valeurs de retour

Retourne FALSE si une erreur interne s'est produite, une chaîne avec les parties rejetées du patch si c'est le cas ou TRUE si le patch a été appliqué avec succès.

Exemples

Exemple #1 Exemple avec xdiff_file_patch()

Le code suivant applique un diff à un fichier.

<?php
$old_version 
'my_script-1.0.php';
$patch 'my_script.patch';

$errors xdiff_file_patch($old_version$patch'my_script-1.1.php');
if (
is_string($errors)) {
   echo 
"Rejets :\n";
   echo 
$errors;
}

?>

Exemple #2 Exemple de retour à l'état initial après l'application d'un patch

Le code suivant annule un patch.

<?php
$new_version 
'my_script-1.1.php';
$patch 'my_script.patch';

$errors xdiff_file_patch($new_version$patch'my_script-1.0.php'XDIFF_PATCH_REVERSE);
if (
is_string($errors)) {
   echo 
"Rejets :\n";
   echo 
$errors;
}

?>

Voir aussi



xdiff_file_rabdiff

(PECL xdiff >= 0.2.0)

xdiff_file_rabdiffCrée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales

Description

bool xdiff_file_rabdiff ( string $old_file , string $new_file , string $dest )

Crée un diff binaire de 2 fichiers et enregistre le résultat dans un fichier patch. La différence entre cette fonction et la fonction xdiff_file_bdiff() se situe au niveau de l'algorithme utilisé. Aussi, cette fonction devrait être plus rapide et devrait produire un diff plus petit. Cette fonction fonctionne avec des fichiers textes, comme avec des fichiers binaires. Le fichier patch résultant pourra ensuite être appliqué avec les fonctions xdiff_file_bpatch() et xdiff_string_bpatch().

Pour plus de détails concernant les différences d'algorithme, reportez-vous au site web de la bibliothèque » libxdiff.

Liste de paramètres

old_file

Chemin vers le premier fichier. C'est l'ancien fichier.

new_file

Chemin vers le second fichier. C'est le nouveau fichier.

dest

Chemin vers le fichier résultant. Le fichier résultant contient les différences entre l'ancien et le nouveau fichier. Il est au format binaire, aussi, il ne sera pas humainement lisible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_rabdiff()

Le code suivant crée un diff binaire de 2 archives.

<?php
$old_version 
'my_script_1.0.tgz';
$new_version 'my_script_1.1.tgz';

xdiff_file_rabdiff($old_version$new_version'my_script.bdiff');
?>

Notes

Note:

Les 2 fichiers seront chargés en mémoire ; aussi, assurez-vous que votre paramétrage de memory_limit est suffisamment élevé.

Voir aussi



xdiff_string_bdiff_size

(PECL xdiff >= 0.2.0)

xdiff_string_bdiff_sizeLit la taille d'un fichier créé en appliquant un diff binaire

Description

int xdiff_string_bdiff_size ( string $patch )

Retourne la taille d'un fichie résultat créé après l'application d'un patch binaure sur un fichier original.

Liste de paramètres

patch

Le patch binaire créé par la fonction xdiff_string_bdiff() ou la fonction xdiff_string_rabdiff().

Valeurs de retour

Retourne la taille du fichier créé.

Exemples

Exemple #1 Exemple avec xdiff_string_bdiff_size()

Le code suivant lit la taille d'un fichier créé après l'application d'un diff binaire.

<?php
$binary_patch 
file_get_contents('file.bdiff');
$length xdiff_string_bdiff_size($binary_patch);
echo 
"La taille du fichier résultant est de $length octets.";
?>

Voir aussi



xdiff_string_bdiff

(PECL xdiff >= 0.2.0)

xdiff_string_bdiffCrée un diff binaire de 2 chaînes

Description

string xdiff_string_bdiff ( string $old_data , string $new_data )

Crée un diff binaire de 2 chaînes et retourne le résultat. Cette fonction fonctionne aussi bien avec des données textes qu'avec des données binaires. Le patch résultant pourra ensuite être appliqué en utilisant les fonctions xdiff_string_bpatch() et xdiff_file_bpatch().

Liste de paramètres

old_data

Première chaîne contenant des données binaires. Ce sont les anciennes données.

new_data

Seconde chaîne contenant des données binaires. Ce sont les nouvelles données.

Valeurs de retour

Retourne un diff binaire contenant les différences entre les anciennes et les nouvelles données, ou FALSE si une erreur interne survient.

Voir aussi



xdiff_string_bpatch

(PECL xdiff >= 0.2.0)

xdiff_string_bpatchPatche une chaîne avec un diff binaire

Description

string xdiff_string_bpatch ( string $str , string $patch )

Patche une chaîne str avec un patch binaire. Cette fonction accepte les patchs créés via les fonctions xdiff_string_bdiff() et xdiff_string_rabdiff(), ou leur équivalent sous forme de fichier.

Liste de paramètres

str

La chaîne binaire originale.

patch

Le patch binaire sous forme d'une chaîne de caractères.

Valeurs de retour

Retourne la chaîne patchée, ou FALSE si une erreur survient.

Voir aussi



xdiff_string_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_string_diff_binaryAlias de xdiff_string_bdiff

Description

string xdiff_string_bdiff ( string $old_data , string $new_data )

Crée un diff binaire de 2 chaînes et retourne le résultat. Cette fonction fonctionne avec du texte mais aussi avec des données binaires. Le patch résultant peut être appliqué ultérieurement en utilisant la fonction xdiff_string_bpatch()/xdiff_file_bpatch().

Depuis la version 1.5.0, cette fonction est un alias de la fonction xdiff_string_bdiff().

Liste de paramètres

old_data

Première chaîne avec des données binaires. Ce sont les anciennes données.

new_data

Seconde chaîne avec des données binaires. Ce sont les nouvelles données.

Valeurs de retour

Retourne une chaîne avec le résultat ou FALSE si une erreur interne est survenue.

Voir aussi



xdiff_string_diff

(PECL xdiff >= 0.2.0)

xdiff_string_diffCréé un diff unifié entre deux chaînes

Description

string xdiff_string_diff ( string $old_data , string $new_data [, int $context = 3 [, bool $minimal = false ]] )

Crée un diff unifié contenant les différences entre la chaîne old_data et la chaîne new_data et retourne le diff ainsi créé. Le diff résultant est humainement lisible. Le paramètre optionnel context spécifie le nombre de lignes de contexte à ajouter autour de chaque modification. Le fait de définir le paramètre minimal à TRUE fera que le diff sera le plus petit possible (peut prendre du temps).

Liste de paramètres

old_data

Première chaîne de données. Ce sont les anciennes données.

new_data

Seconde chaîne de données. Ce sont les nouvelles données.

context

Indique le nombre de lignes de contexte que vous voulez inclure dans le diff résultant.

minimal

Configurez minimal à TRUE si vous voulez minimaliser la taille du diff (peut prendre beaucoup de temps).

Valeurs de retour

Retourne une chaîne représentant le diff résultant, ou FALSE si une erreur interne survient.

Exemples

Exemple #1 Exemple avec xdiff_string_diff()

Le code suivant effectue un diff de deux articles.

<?php
$old_article 
file_get_contents('./old_article.txt');
$new_article $_REQUEST['article']; /* disons que quelqu'un a posté un nouvel article via un formulaire html */

$diff xdiff_string_diff($old_article$new_article1);
if (
is_string($diff)) {
    echo 
"Différences entre les deux articles :\n";
    echo 
$diff;
}

?>

Notes

Note:

Cette fonction ne fonctionne pas correctement avec des chaînes binaires. Pour effectuer un diff de chaînes binaires, utilisez la fonction xdiff_string_bdiff()/xdiff_string_rabdiff().

Voir aussi



xdiff_string_merge3

(PECL xdiff >= 0.2.0)

xdiff_string_merge3Fusionne trois chaînes en une seule

Description

mixed xdiff_string_merge3 ( string $old_data , string $new_data1 , string $new_data2 [, string &$error ] )

Fusionne 3 chaînes en une et retourne le résultat. Le paramètre old_data est la version originale des données tandis que new_file1 et new_file2 sont les versions modifiées de l'original. Le paramètre optionnel error est utilisé pour stocker toutes les parties rejetées lors de la fusion.

Liste de paramètres

old_data

Première chaîne de données. Ce sont les anciennes données.

new_data1

Seconde chaîne de données. Ce sont les versions modifiées de old_data.

new_data2

Troisième chaîne de données. Ce sont les versions modifiées de old_data.

error

Si error est fourni, alors les parties rejetées y seront stockées.

Valeurs de retour

Retourne la chaîne fusionnée, FALSE si une erreur interne survient ou TRUE si la chaîne fusionnée est vide.

Voir aussi



xdiff_string_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_string_patch_binaryAlias de xdiff_string_bpatch

Description

string xdiff_string_patch_binary ( string $str , string $patch )

Patche une chaîne str avec un patch binaire. Cette fonction accepte les patchs créés avec les fonctions xdiff_string_bdiff() et xdiff_string_rabdiff() ou leur équivalent en fichiers.

Depuis la version 1.5.0, cette fonction est un alias de la fonction xdiff_string_bpatch().

Liste de paramètres

str

La chaîne binaire originale.

patch

Le patch binaire.

Valeurs de retour

Retourne la chaîne patchée, ou FALSE si une erreur survient.

Voir aussi



xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patchPatche une chaîne avec un diff unifié

Description

string xdiff_string_patch ( string $str , string $patch [, int $flags [, string &$error ]] )

Patche la chaîne str avec un patch unifié et retourne le résultat. patch doit être un patch unifié créé par les fonctions xdiff_file_diff() et xdiff_string_diff(). Un paramètre optionnel flags spécifie le mode de l'opération. Toutes les parties rejetées seront stockées dans la variable error si elle est fournie.

Liste de paramètres

str

La chaîne originale.

patch

Le patch unifié. Il doit avoir été créé en utilisant les fonctions xdiff_string_diff(), xdiff_file_diff() ou tout autre outil compatible.

flags

flags peut être soit XDIFF_PATCH_NORMAL (mode par défaut, patch normal), soit XDIFF_PATCH_REVERSE (patch inversé).

Depuis la version 1.5.0, vous pouvez également utiliser l'opérateur binaire OR pour activer le drapeau XDIFF_PATCH_IGNORESPACE.

error

Si error est fourni, les parties rejetées y seront stockées.

Valeurs de retour

Retourne la chaîne patchée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_string_patch()

Le code suivant applique les changements à des articles.

<?php
$old_article 
file_get_contents('./old_article.txt');
$diff $_SERVER['patch']; /* disons que quelqu'un a passé un patch via un formulaire html */

$errors '';

$new_article xdiff_string_patch($old_article$diffXDIFF_PATCH_NORMAL$errors);
if (
is_string($new_article)) {
    echo 
"Nouvel article :\n";
    echo 
$new_article;
}

if (
strlen($errors)) {
    echo 
"Rejets : \n";
    echo 
$errors;
}

?>

Voir aussi



xdiff_string_rabdiff

(PECL xdiff >= 0.2.0)

xdiff_string_rabdiffCrée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales

Description

string xdiff_string_bdiff ( string $old_data , string $new_data )

Crée un diff binaire de 2 chaînes et retourne le résultat. La différence entre cette fonction et la fonction xdiff_string_bdiff() se situe au niveau de l'algorithme utilisé ; cette fonction devrait être plus rapide et produire un diff plus petit. Cette fonction est utilisable aussi bien sur des données textes que binaires. Le patch résultant pourra être appliqué par la suite grâce aux fonctions xdiff_string_bpatch() et xdiff_file_bpatch().

Pour plus de détails concernant la différence d'algorithme, reportez-vous au site web de la bibliothèque » libxdiff.

Liste de paramètres

old_data

Première chaîne de données binaires. Ce sont les anciennes données.

new_data

Seconde chaîne de données binaires. Ce sont les nouvelles données.

Valeurs de retour

Retourne un diff binaire contenant les différences entre les anciennes et les nouvelles données, ou FALSE si une erreur interne survient.

Voir aussi


Sommaire





Support du langage humain et de l'encodage de caractères


Bibliothèque d'orthographe Enchant


Introduction

Enchant est une utilisation PHP de la » bibliothèque Enchant. Enchant fournit une uniformité et une conformité pour toutes les bibliothèques d'orthographe, et implémente certaines fonctionnalités qui peuvent faire défaut dans une bibliothèque. Tout doit "juste fonctionner".

Enchant supporte les bibliothèques suivantes :

  • Aspell/Pspell (prévu pour remplacer Ispell)

  • Ispell (très ancien, peut être considéré comme un standard)

  • MySpell/Hunspell (un projet orienté objet, également utilisé par Mozilla)

  • Uspell (originellement prévu pour les langages Yiddish, hébreu et les langages de l'Europe de l'Est - hébergé dans le CVS d'AbiWord sous la module "uspell")

  • Hspell (Hébreu)

  • AppleSpell (Mac OSX)



Installation/Configuration

Sommaire


Pré-requis

Cette version utilise les fonctions de la » bibliothèque Enchant par Dom Lachowicz. Vous devez utiliser Enchant 1.2.4 ou supérieur.

Enchant requiert également » Glib 2.6 ou supérieur. Les bibliothèques Windows pré-compilées sont disponibles depuis » http://ftp.gnome.org/pub/gnome/binaries/win32/glib/.



Installation

Cette extension est fournie avec PHP depuis la version 5.3.0. Avant cette version, Enchant était une extension PECL. Les utilisateurs de versions antérieures à 5.3.0 peuvent utiliser l'» extension PECL.

En partant du principe que les bibliothèques requises sont installées, les utilisateurs de PHP 5.3.0 et suivants peuvent activer Enchant en ajoutant l'option --with-enchant[=dir] lors de la compilation de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Il y a deux types de ressources dans cette extension. La première est le broker (gestionnaire de backends) et la seconde est pour le dictionnaire.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Exemple #1 Exemple d'utilisation d'Enchant

<?php
$tag 
'en_US';
$r enchant_broker_init();
$bprovides enchant_broker_describe($r);
echo 
"Current broker provides the following backend(s):\n";
print_r($bprovides);

$dicts enchant_broker_list_dicts($r);
print_r($dicts);
if (
enchant_broker_dict_exists($r,$tag)) {
    
$d enchant_broker_request_dict($r$tag);
    
$dprovides enchant_dict_describe($d);
    echo 
"dictionary $tag provides:\n";
    
$wordcorrect enchant_dict_check($d"soong");
    
print_r($dprovides);
    if (!
$wordcorrect) {
        
$suggs enchant_dict_suggest($d"soong");
        echo 
"Suggestions for 'soong':";
        
print_r($suggs);
    }
    
enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>


Fonctions Enchant


enchant_broker_describe

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0)

enchant_broker_describeÉnumère les fournisseurs Enchant

Description

array enchant_broker_describe ( resource $broker )

Énumère les fournisseurs Enchant et affiche quelques informations sur eux. Les mêmes informations sont fournis via la fonction phpinfo().

Liste de paramètres

broker

Ressource d'un sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Liste les interfaces fournies par un sponsor donné

<?php
$r 
enchant_broker_init();
$bprovides enchant_broker_describe($r);
echo 
"Le sponsor courant fournit les interfaces suivantes :\n";
print_r($bprovides);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le sponsor courant fournit les interfaces suivantes :
Array
(
    [0] => Array
        (
            [name] => aspell
            [desc] => Aspell Provider
            [file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [name] => hspell
            [desc] => Hspell Provider
            [file] => /usr/lib/enchant/libenchant_hspell.so
        )

    [2] => Array
        (
            [name] => ispell
            [desc] => Ispell Provider
            [file] => /usr/lib/enchant/libenchant_ispell.so
        )

    [3] => Array
        (
            [name] => myspell
            [desc] => Myspell Provider
            [file] => /usr/lib/enchant/libenchant_myspell.so
        )

)



enchant_broker_dict_exists

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_dict_existsVérifie si un dictionnaire existe

Description

bool enchant_broker_dict_exists ( resource $broker , string $tag )

Vérifie si un dictionnaire existe.

Liste de paramètres

broker

Ressource de sponsor

tag

langage, dans un format comme us_US, ch_DE, etc.

Valeurs de retour

Retourne TRUE si le langage existe, FALSE sinon.

Exemples

Exemple #1 Exemple avec enchant_broker_dict_exists()

<?php
$tag 
'en_US';
$r enchant_broker_init();
if (
enchant_broker_dict_exists($r,$tag)) {
    echo 
$tag " dictionary found.\n";
}
?>

Voir aussi



enchant_broker_free_dict

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_free_dictLibère une ressource de dictionnaire

Description

bool enchant_broker_free_dict ( resource $dict )

Libère une ressource de dictionnaire.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



enchant_broker_free

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_freeLibère la ressource de sponsor ainsi que ses dictionnaires

Description

bool enchant_broker_free ( resource $broker )

Libère une ressource de sponsor ainsi que tous ses dictionnaires.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



enchant_broker_get_error

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_get_errorRetourne la dernière erreur d'un sponsor

Description

string enchant_broker_get_error ( resource $broker )

Retourne la dernière erreur survenue pour ce sponsor.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Retourne le message si une erreur a été trouvée, ou FALSE sinon.



enchant_broker_init

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_initCrée un nouvel objet sponsor

Description

resource enchant_broker_init ( void )

Liste de paramètres

Valeurs de retour

Retourne une ressource de sponsor en cas de succès, FALSE sinon.

Voir aussi



enchant_broker_list_dicts

(PHP 5 >= 5.3.0, PECL enchant >= 1.0.1)

enchant_broker_list_dictsRetourne une liste de tous les dictionnaires disponibles

Description

mixed enchant_broker_list_dicts ( resource $broker )

Retourne une liste de tous les dictionnaires disponibles ainsi que leurs détails.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Liste tous les dictionnaires disponibles pour un sponsor

<?php
$r 
enchant_broker_init();
$dicts enchant_broker_list_dicts($r);
print_r($dicts);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [lang_tag] => de
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [lang_tag] => de_DE
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [3] => Array
        (
            [lang_tag] => en
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [4] => Array
        (
            [lang_tag] => en_GB
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [5] => Array
        (
            [lang_tag] => en_US
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [6] => Array
        (
            [lang_tag] => hi_IN
            [provider_name] => myspell
            [provider_desc] => Myspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Voir aussi



enchant_broker_request_dict

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_request_dictCrée un nouveau dictionnaire

Description

resource enchant_broker_request_dict ( resource $broker , string $tag )

Crée un nouveau dictionnaire en utilisant le paramètre tag, représentant le langage dont vous voulez associer le dictionnaire ("en_US", "de_DE", ...).

Liste de paramètres

broker

Ressource de sponsor

tag

Une balise décrivant le langage, par exemple, en_US, de_DE

Valeurs de retour

Retourne une ressource de dictionnaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec enchant_broker_request_dict()

Vérifie si un dictionnaire existe en utilisant la fonction enchant_broker_dict_exists() et le demande.

<?php
$tag 
'en_US';
$broker enchant_broker_init();
if (
enchant_broker_dict_exists($broker,$tag)) {
    
$dict enchant_broker_request_dict($r$tag);
}
?>

Voir aussi



enchant_broker_request_pwl_dict

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dictCrée un dictionnaire en utilisant un fichier PWL

Description

resource enchant_broker_request_pwl_dict ( resource $broker , string $filename )

Crée un dictionnaire en utilisant un fichier PWL. Un fichier PWL est un fichier de mots personnels contenant un mot par ligne.

Liste de paramètres

broker

Ressource de sponsor

filename

Chemin vers le fichier PWL

Valeurs de retour

Retourne une ressource de dictionnaire en cas de succès ou FALSE si une erreur survient.

Voir aussi



enchant_broker_set_ordering

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_broker_set_orderingDéclare une préférence pour un dictionnaire d'une langue

Description

bool enchant_broker_set_ordering ( resource $broker , string $tag , string $ordering )

Déclare une préférence pour un dictionnaire à utiliser pour la langue spécifiée par le paramètre tag. L'ordre des langues est une liste séparée par une virgule. Le caractère spécial "*" peut être utilisé comme langue pour déclarer un ordre par défaut pour tous les langages qui ne déclarent pas explicitement un ordre.

Liste de paramètres

broker

Ressource de sponsor

tag

La langue. Le caractère "*" peut être utilisé en tant que langage pour déclarer un ordre par défaut pour tous les langages qui ne déclarent pas explicitement un ordre.

ordering

Liste de noms de fournisseurs séparée par une virgule

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personalAjoute un mot à la liste des mots personnelle

Description

void enchant_dict_add_to_personal ( resource $dict , string $word )

Ajoute le mot word à la liste des mots personnelle du dictionnaire dict.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_add_to_sessionAjoute un mot à la session courante

Description

void enchant_dict_add_to_session ( resource $dict , string $word )

Ajoute le mot word au dictionnaire fourni. Il ne sera ajouté que pour la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



enchant_dict_check

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_checkVérifie si un mot est correctement orthographié

Description

bool enchant_dict_check ( resource $dict , string $word )

Retourne TRUE si le mot word est correctement orthographié, FALSE sinon.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

Valeurs de retour

Retourne TRUE si le mot est correctement orthographié, FALSE sinon.



enchant_dict_describe

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_describeDécrit un dictionnaire

Description

mixed enchant_dict_describe ( resource $dict )

Retourne les détails d'un dictionnaire.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec enchant_dict_describe()

Vérifie si un dictionnaire existe en utilisant la fonction enchant_broker_dict_exists() et affiche tous les détails concernant ce dictionnaire.

<?php
$tag 
'en_US';
$broker enchant_broker_init();
if (
enchant_broker_dict_exists($broker,$tag)) {
    
$dict enchant_broker_request_dict($r$tag);
    
$dict_details enchant_dict_describe($dict);
    
print_r($dict_details);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [lang] => en_US
    [name] => aspell
    [desc] => Aspell Provider
    [file] => /usr/lib/enchant/libenchant_aspell.so
)



enchant_dict_get_error

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_get_errorRetourne la dernière erreur de la session courante

Description

string enchant_dict_get_error ( resource $dict )

Retourne la dernière erreur de la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Retourne le message d'erreur sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.



enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_is_in_sessionVérifie si un mot existe dans une session de vérification

Description

bool enchant_dict_is_in_session ( resource $dict , string $word )

Vérifie si un mot existe ou non dans la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

Valeurs de retour

Retourne TRUE si le mot existe, FALSE sinon.

Voir aussi



enchant_dict_quick_check

(PHP 5 >= 5.3.0, PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_checkVérifie si le mot est correctement orthographié et fournit des suggestions

Description

bool enchant_dict_quick_check ( resource $dict , string $word [, array &$suggestions ] )

Retourne TRUE si le mot est correctement orthographié, FALSE si la variable des suggestions est fournie, et la remplit des suggestions possibles.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

suggestions

Si le mot n'est pas correctement orthographié, cette variable contiendra un tableau de suggestions.

Valeurs de retour

Retourne TRUE si le mot est correctement orthographié, FALSE sinon.

Exemples

Exemple #1 Exemple avec enchant_dict_quick_check()

<?php
$tag 
'en_US';
$r enchant_broker_init();

if (
enchant_broker_dict_exists($r,$tag)) {
    
$d enchant_broker_request_dict($r$tag);
    
enchant_dict_quick_check($d'soong'$suggs);
    
print_r($suggs);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => song
    [1] => snog
    [2] => soon
    [3] => Sang
    [4] => Sung
    [5] => sang
    [6] => sung
    [7] => sponge
    [8] => spongy
    [9] => snag
    [10] => snug
    [11] => sonic
    [12] => sing
    [13] => songs
    [14] => Son
    [15] => Sonja
    [16] => Synge
    [17] => son
    [18] => Sejong
    [19] => sarong
    [20] => sooner
    [21] => Sony
    [22] => sown
    [23] => scone
    [24] => song's
)

Voir aussi



enchant_dict_store_replacement

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_store_replacementAjoute une orthographe pour un mot

Description

void enchant_dict_store_replacement ( resource $dict , string $mis , string $cor )

Ajoute une orthographe pour mis en utilisant cor. Notez que si vous remplacez @mis par @cor, alors il est probable que les futures occurrences den@mis seront remplacées par @cor. Ainsi, @cor sera ajouté à la liste des suggestions.

Liste de paramètres

dict

Ressource de dictionnaire

mis

Le mot à traiter

cor

Le mot correct

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



enchant_dict_suggest

(PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )

enchant_dict_suggestRetourne une liste de valeurs si aucunes des conditions ne sont réunies

Description

array enchant_dict_suggest ( resource $dict , string $word )

Liste de paramètres

dict

Ressource de dictionnaire

word

Mot à utiliser pour les suggestions

Valeurs de retour

Retourne un tableau de suggestions si le mot est mal orthographié.

Exemples

Exemple #1 Exemple avec enchant_dict_suggest()

<?php
$tag 
'en_US';
$r enchant_broker_init();
if (
enchant_broker_dict_exists($r,$tag)) {
    
$d enchant_broker_request_dict($r$tag);

    
$wordcorrect enchant_dict_check($d"soong");
    if (!
$wordcorrect) {
        
$suggs enchant_dict_suggest($d"soong");
        echo 
"Suggestions pour 'soong' : ";
        
print_r($suggs);
    }
    
enchant_broker_free_dict($d);
}
enchant_broker_free($r);
?>

Voir aussi


Sommaire




FriBiDi


Introduction

FriBiDi est une implémentation libre de l'» Algorithme Unicode Bidirectionnel.



Installation/Configuration

Sommaire


Pré-requis

Vous devez télécharger et installer le paquet » FriBiDi.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/fribidi.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Fribidi en utilisant l'option de configuration --with-fribidi[=DIR] .

Les utilisateurs de Windows doivent activer la bibliothèque php_fribidi.dll dans le php.ini pour pouvoir utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FRIBIDI_CHARSET_UTF8 (entier)
Unicode
FRIBIDI_CHARSET_8859_6 (entier)
Arabe
FRIBIDI_CHARSET_8859_8 (entier)
Hébreu
FRIBIDI_CHARSET_CP1255 (entier)
Hébreu / Yiddish
FRIBIDI_CHARSET_CP1256 (entier)
Arabe
FRIBIDI_CHARSET_ISIRI_3342 (entier)
Persan
FRIBIDI_CHARSET_CAP_RTL (entier)
Utilisé à des fins de tests ; traite les CAPS comme des lettres non anglaises
FRIBIDI_RTL (entier)
De droite à gauche
FRIBIDI_LTR (entier)
De gauche à droite
FRIBIDI_AUTO (entier)
Autodétection de la direction


Fonctions FriBiDi


fribidi_log2vis

(PHP 4 >= 4.0.4 and PHP 4 <= 4.1.0, PECL fribidi >= 1.0)

fribidi_log2visConvertit une chaîne logique en chaîne visuelle

Description

string fribidi_log2vis ( string $str , string $direction , int $charset )

Convertit une chaîne logique en chaîne visuelle.

Liste de paramètres

str

La chaîne logique.

direction

Une constante parmi FRIBIDI_RTL, FRIBIDI_LTR ou FRIBIDI_AUTO.

charset

Une constante parmi les constantes FRIBIDI_CHARSET_XXX.

Valeurs de retour

Retourne la chaîne visuelle en cas de succès ou FALSE si une erreur survient.


Sommaire




Gettext


Introduction

Les fonctions gettext implémentent l'API NLS (Native Language Support) qui peut servir à internationaliser vos scripts PHP. Lisez la documentation GNU sur le site » http://www.gnu.org/software/gettext/manual/gettext.html, ou bien sur votre système pour plus d'explications sur ces fonctions.



Installation/Configuration

Sommaire


Pré-requis

Pour utiliser ces fonctions, vous devez télécharger et installer les bibliothèques GNU gettext depuis » http://www.gnu.org/software/gettext/gettext.html.



Installation

Pour inclure le module GNU gettext dans PHP, vous le compilez avec l'option --with-gettext[=DIR] , où DIR est le dossier d'installation de gettext. Par défaut, c'est /usr/local.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Gettext


bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5)

bind_textdomain_codesetSpécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN

Description

string bind_textdomain_codeset ( string $domain , string $codeset )

Spécifie l'encodage à utiliser pour les messages du domaine domain retourné par l'ensemble des fonctions gettext().

Liste de paramètres

domain

Le domaine

codeset

Le jeu de caractères

Valeurs de retour

Une chaîne de caractères en cas de succès.



bindtextdomain

(PHP 4, PHP 5)

bindtextdomainFixe le chemin d'un domaine

Description

string bindtextdomain ( string $domain , string $directory )

Fixe le chemin du domaine.

Liste de paramètres

domain

Le domaine

directory

Le chemin vers le dossier

Valeurs de retour

Le chemin complet vers le domaine.

Exemples

Exemple #1 Exemple avec bindtextdomain()

<?php

$domain 
'myapp';
echo 
bindtextdomain($domain'/usr/share/myapp/locale');

?>

L'exemple ci-dessus va afficher :

/usr/share/myapp/locale



dcgettext

(PHP 4, PHP 5)

dcgettextRemplace le domaine lors d'une recherche

Description

string dcgettext ( string $domain , string $message , int $category )

Permet de remplacer le domaine courant lors de la recherche d'un message.

Liste de paramètres

domain

Le domaine

message

Le message

category

La catégorie

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

  • gettext() - Recherche un message dans le domaine courant



dcngettext

(PHP 4 >= 4.2.0, PHP 5)

dcngettextVersion plurielle de dcgettext

Description

string dcngettext ( string $domain , string $msgid1 , string $msgid2 , int $n , int $category )

Vous permet de remplacer le domaine courant pour une recherche simple au pluriel d'un message.

Liste de paramètres

domain

Le domaine

msgid1

msgid2

n

category

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi



dgettext

(PHP 4, PHP 5)

dgettextRemplace le domaine courant

Description

string dgettext ( string $domain , string $message )

dgettext() remplace le domaine courant domain pour une recherche simple dans message.

Liste de paramètres

domain

Le domaine

message

Le message

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

  • gettext() - Recherche un message dans le domaine courant



dngettext

(PHP 4 >= 4.2.0, PHP 5)

dngettextVersion plurielle de dgettext

Description

string dngettext ( string $domain , string $msgid1 , string $msgid2 , int $n )

dngettext() vous permet de remplacer le domaine courant domain pour une recherche simple au pluriel d'un message.

Liste de paramètres

domain

Le domaine

msgid1

msgid2

n

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi



gettext

(PHP 4, PHP 5)

gettextRecherche un message dans le domaine courant

Description

string gettext ( string $message )

Recherche un message dans le domaine courant.

Liste de paramètres

message

Le message à traduire.

Valeurs de retour

Retourne une chaîne traduite, si elle en a trouvé une dans la table de traduction, ou bien le message message, s'il n'a pas été trouvé.

Exemples

Exemple #1 Exemple avec gettext()

<?php
// Choix de l'allemand
putenv('LC_ALL=de_DE');
setlocale(LC_ALL'de_DE');

// Spécifie la localisation des tables de traduction
bindtextdomain("myPHPApp""./locale");

// Choisit le domaine
textdomain("myPHPApp");

// La traduction est cherché dans ./locale/de_DE/LC_MESSAGES/myPHPApp.mo

// Affichage d'un message de test
echo gettext("Bienvenue dans mon application PHP");

// Or use the alias _() for gettext()
echo _("Passer une bonne journée");
?>

Notes

Note:

Vous pouvez utiliser le caractère souligné (_) comme alias de cette fonction.

Note:

Le fait de définir une langue n'est pas suffisant pour certains systèmes d'exploitation et l'utilisation de la fonction putenv() est nécessaire afin de définir la locale courante.

Voir aussi

  • setlocale() - Modifie les informations de localisation



ngettext

(PHP 4 >= 4.2.0, PHP 5)

ngettextVersion plurielle de gettext

Description

string ngettext ( string $msgid1 , string $msgid2 , int $n )

Version plurielle de gettext(). Quelques langues ont plus d'une forme de messages pluriels dépendant du compteur.

Liste de paramètres

msgid1

msgid2

n

Valeurs de retour

Retourne un message au pluriel identifié par msgid1 et msgid2 pour le compteur n.

Exemples

Exemple #1 Exemple avec ngettext()

<?php

setlocale
(LC_ALL'cs_CZ');
printf(ngettext("%d window""%d windows"1), 1); // 1 okno
printf(ngettext("%d window""%d windows"2), 2); // 2 okna
printf(ngettext("%d window""%d windows"5), 5); // 5 oken

?>



textdomain

(PHP 4, PHP 5)

textdomainFixe le domaine par défaut

Description

string textdomain ( string $text_domain )

textdomain() fixe le domaine text_domain à utiliser lors des recherches avec gettext(). Ce domaine dépend généralement de l'application.

Liste de paramètres

text_domain

Le nouveau domaine des messages, ou NULL pour récupérer la configuration courante sans la modifier.

Valeurs de retour

Cette fonction retourne le message courant du domaine en cas de succès, après une possible modification.


Sommaire




iconv


Introduction

Ce module est une interface vers la bibliothèque iconv. L'extension iconv convertit des fichiers entre divers jeux de caractères. Les jeux supportés dépendent de l'implémentation de la fonction iconv() sur votre système. Notez que cette fonction ne fonctionne pas toujours bien sur tous les systèmes. Dans ce cas, ce serait une bonne idée d'installer la bibliothèque » GNU libiconv.

Depuis PHP 5.0.0, cette extension dispose de beaucoup de fonctions utiles pour vous aider à écrire des scripts multilingues. Regardez les sections suivantes pour découvrir les nouvelles fonctionnalités.



Installation/Configuration

Sommaire


Pré-requis

Vous n'avez besoin de rien de spécial si votre système est conforme au standard POSIX, car la bibliothèque standard C fournie iconv. Dans le cas contraire, vous devez installer la bibliothèque » libiconv sur votre système.



Installation

Cette extension est activée par défaut, cependant, elle peut être désactivée en compilant PHP avec l'option --without-iconv .

La directive optionnelle --with-iconv-dir est utilisée pour spécifier l'emplacement de iconv sur le système sur lequel PHP est compilé. Si cette directive n'est pas spécifiée, seuls les emplacements par défaut seront scannés.

Note: Note aux utilisateurs de PHP4
L'activation de cette extension nécessite la compilation de PHP avec --with-iconv=[DIR] , ou les utilisateurs de Windows peuvent l'activer en ayant le fichier iconv.dll disponible dans le PATH système ainsi que php_iconv.dll activé dans php.ini.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration iconv
Nom Défaut Modifiable Historique
iconv.input_encoding "ISO-8859-1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
iconv.output_encoding "ISO-8859-1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
iconv.internal_encoding "ISO-8859-1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Avertissement

Quelques systèmes (comme IBM AIX) utilisent "ISO8859-1" au lieu de "ISO-8859-1", cette valeur doit donc être utilisée dans les options de configuration ainsi que dans les paramètres des fonctions.

Note:

L'option de configuration iconv.input_encoding n'est actuellement pas utilisée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Depuis PHP 4.3.0, il est possible d'identifier durant l'exécution, la version de la bibliothèque iconv que vous utilisez.

Constantes iconv
Constante Type Description
ICONV_IMPL string Le nom de la bibliothèque
ICONV_VERSION string La version de la bibliothèque

Note:

La programmation de scripts dépendant de versions spécifiques, avec ces constantes, est fortement déconseillée.

Depuis PHP 5.0.0, les constantes suivantes sont également disponibles :

Constantes iconv disponibles depuis PHP 5.0.0
Constante Type Description
ICONV_MIME_DECODE_STRICT entier Un masque utilisé par iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR entier Un masque utilisé pour iconv_mime_decode()



Fonctions iconv

Voir aussi

Voir aussi les GNU Recode.


iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_get_encodingLit le jeu de caractères courant

Description

mixed iconv_get_encoding ([ string $type = "all" ] )

Retourne le paramétrage courant du gestionnaire ob_iconv_handler().

Liste de paramètres

type

Les valeurs possibles pour le paramètre optionnel type sont :

  • all
  • input_encoding
  • output_encoding
  • internal_encoding

Valeurs de retour

Retourne la valeur courante de la variable de configuration en cas de succès ou FALSE si une erreur survient.

Si type est omis ou différent de all (c'est-à-dire "tous"), iconv_get_encoding() retourne un tableau contenant toutes les valeurs de ces constantes.

Exemples

Exemple #1 Exemple avec iconv_get_encoding()

<pre>
<?php
iconv_set_encoding
("internal_encoding""UTF-8");
iconv_set_encoding("output_encoding""ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

Voir aussi



iconv_mime_decode_headers

(PHP 5)

iconv_mime_decode_headersDécode des entêtes MIME multiples

Description

array iconv_mime_decode_headers ( string $encoded_headers [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

iconv_mime_decode_headers() décode les entêtes MIME multiples.

Liste de paramètres

encoded_headers

Les entêtes encodés, sous la forme d'une chaîne de caractères.

mode

mode détermine le comportement de la fonction, si iconv_mime_decode_headers() rencontre un entête MIME malformé.

Masques acceptés par la fonction iconv_mime_decode_headers()
Valeur Constante Description
1 ICONV_MIME_DECODE_STRICT Si utilisés, les entêtes sont décodés en respectant scrupuleusement le standard de la » RFC2047. Cette option est désactivée par défaut, car il y a de nombreux clients mails qui ne suivent pas ces spécifications et qui ne produisent pas d'entêtes MIME corrects.
2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR Si cette option est activée, iconv_mime_decode_headers() tente d'ignorer les erreurs de syntaxe et continue de traiter l'entête donné.

charset

Le paramètre optionnel charset spécifie le jeu de caractères utilisé pour représenter le résultat. S'il est omis, le jeu définit dans le fichier php.ini iconv.internal_encoding est utilisé.

Valeurs de retour

Retourne un tableau associatif qui contient les entêtes MIME spécifiés par le paramètre encoded_headers, ou bien FALSE si une erreur survient durant le décodage.

Chaque clé du tableau retourné contient un nom d'entête distinct, et sa valeur correspondante. Si plusieurs champs ont le même nom, iconv_mime_decode_headers() fera de ce champ un tableau indexé, avec les valeurs dans leur ordre d'apparence.

Exemples

Exemple #1 Exemple avec iconv_mime_decode_headers()

<?php
$headers_string 
= <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>;
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string0"ISO-8859-1");
print_r($headers);
?>

L'exemple ci-dessus va afficher :

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

Voir aussi



iconv_mime_decode

(PHP 5)

iconv_mime_decodeDécode un champ d'en-tête MIME

Description

string iconv_mime_decode ( string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

iconv_mime_decode() décode un champ d'en-tête MIME.

Liste de paramètres

encoded_header

L'en-tête encodé, sous la forme d'une chaîne de caractères.

mode

mode détermine une alternative dans le cas où iconv_mime_decode() rencontre un champ d'en-tête MIME mal formé.

Masques acceptables pour la fonction iconv_mime_decode()
Valeur Constante Description
1 ICONV_MIME_DECODE_STRICT Si défini, l'en-tête correspondant sera décodé en suivant strictement le standard » RFC2047. Cette option est désactivée par défaut, car il existe beaucoup de mauvais clients mails qui ne suivent pas ce standard et donc, produisent de mauvaises en-têtes MIME.
2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR Si défini, iconv_mime_decode() essaie de continuer à décoder l'en-tête passée, même si des erreurs apparaissent.

charset

Le paramètre par défaut charset spécifie le jeu de caractères à utiliser pour représenter le résultat. S'il est omis, iconv.internal_encoding sera utilisé.

Valeurs de retour

Retourne un champs MIME en cas de succès, ou FALSE si une erreur survient durant le décodage.

Exemples

Exemple #1 Exemple avec iconv_mime_decode()

<?php
// Ceci affichera : "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       
0"ISO-8859-1");
?>

Voir aussi



iconv_mime_encode

(PHP 5)

iconv_mime_encodeConstruit un en-tête MIME avec les champs field_name et field_value

Description

string iconv_mime_encode ( string $field_name , string $field_value [, array $preferences = NULL ] )

iconv_mime_encode() compose et retourne une chaîne de caractères qui représente un champ en-tête MIME qui ressemble à :

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
Dans l'exemple ci-dessus, "Subject" est le nom du champ et la portion qui commence par "=?ISO-8859-1?..." est la valeur du champ.

Liste de paramètres

field_name

Le nom du champs.

field_value

La valeur du champs.

preferences

Vous pouvez contrôler le comportement de la fonction iconv_mime_encode() en spécifiant un tableau associatif contenant la configuration des éléments dans le paramètre preferences. La liste des éléments supportés par iconv_mime_encode() figure ci-dessous. Notez que les noms des éléments sont sensibles à la casse.

Liste des éléments supportés par iconv_mime_encode()
Élément Type Description Valeur par défaut Exemple
scheme string Spécifie la méthode d'encodage d'un champ. Les valeurs possibles sont "B" ou "Q", où "B" signifie que le schéma d'encodage sera base64 et "Q", quoted-printable. B B
input-charset string Spécifie le jeux de caractères pour représenter le premier paramètre field_name et le second paramètre field_value. S'il est omis, iconv_mime_encode() utilisera la directive de configuration iconv.internal_encoding de votre php.ini pour les représenter. iconv.internal_encoding ISO-8859-1
output-charset string Spécifie le jeux de caractères à utiliser pour composer l'en-tête MIME. iconv.internal_encoding UTF-8
line-length integer Spécifie la longueur maximale de chaque en-tête. Si l'en-tête est plus grande que la longueur défini par ce paramètre, l'en-tête résultant sera un en-tête composée de plusieurs lignes conformément au standard » RFC2822 - Internet Message Format. S'il est omis, la longueur maximale sera fixée à 76 caractères. 76 996
line-break-chars string Spécifie les caractères de fin de ligne. S'il est omis, la valeur par défaut sera "\r\n" (CR LF). Notez que ce paramètre est toujours représenté comme une chaîne ASCII au regard de la valeur du paramètre input-charset. \r\n \n

Valeurs de retour

Retourne un champs MIME en cas de succès, ou FALSE si une erreur survient durant l'encodage.

Exemples

Exemple #1 Exemple avec iconv_mime_encode()

<?php
$preferences 
= array(
    
"input-charset" => "ISO-8859-1",
    
"output-charset" => "UTF-8",
    
"line-length" => 76,
    
"line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?="
echo iconv_mime_encode("Subject""Prüfung Prüfung"$preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject""Prüfung Prüfung"$preferences);
?>

Voir aussi



iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_set_encodingModifie le jeu courant de caractères d'encodage

Description

bool iconv_set_encoding ( string $type , string $charset )

Modifie le jeu de caractères courant, et remplace la valeur courante du paramètre type par charset.

Liste de paramètres

type

Les valeurs possibles de type sont :

  • input_encoding
  • output_encoding
  • internal_encoding

charset

Le jeu de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec iconv_set_encoding()

<?php
iconv_set_encoding
("internal_encoding""UTF-8");
iconv_set_encoding("output_encoding""ISO-8859-1");
?>

Voir aussi



iconv_strlen

(PHP 5)

iconv_strlenRetourne le nombre de caractères d'une chaîne

Description

int iconv_strlen ( string $str [, string $charset = ini_get("iconv.internal_encoding") ] )

À l'opposée de strlen(), la valeur de retour de iconv_strlen() est le nombre de caractères faisant partie de la séquence d'octets str, ce qui n'est pas toujours la même chose que la taille en octets de la chaîne de caractères.

Liste de paramètres

str

La chaîne de caractères.

charset

Si charset n'est pas passé en paramètre, str est supposée être encodée en iconv.internal_encoding.

Valeurs de retour

Retourne le nombre de caractères de la chaîne str, sous la forme d'un entier.

Voir aussi



iconv_strpos

(PHP 5)

iconv_strposTrouve la position de la première occurrence d'une chaîne dans une autre

Description

int iconv_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

Trouve la position de la première occurrence de needle dans haystack.

À l'opposé de strpos(), la valeur retournée par iconv_strpos() est le nombre de caractères se trouvant avant needle, plutôt que la position en octets où needle a été trouvé. Les caractères sont comptés en se basant sur le jeux de caractères spécifié par charset.

Liste de paramètres

haystack

La chaîne de caractères entière.

needle

La chaîne de caractères à chercher.

offset

Le paramètre optionnel offset spécifie la position à partir de laquelle la recherche doit commencer.

charset

Si le paramètre charset est omis, string sera encodé en accord avec iconv.internal_encoding.

Si haystack ou needle ne sont pas des chaînes de caractères, ils sont convertis en entiers et appliqués en tant que valeur ordinale d'un caractère.

Valeurs de retour

Retourne la position numérique de la première occurrence de needle dans haystack.

Si needle n'est pas trouvé, iconv_strpos() retournera FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • strpos() - Trouve la position d'un caractère dans une chaîne
  • iconv_strrpos() - Trouve la position de la dernière occurrence d'un élément dans une chaîne
  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne



iconv_strrpos

(PHP 5)

iconv_strrposTrouve la position de la dernière occurrence d'un élément dans une chaîne

Description

int iconv_strrpos ( string $haystack , string $needle [, string $charset = ini_get("iconv.internal_encoding") ] )

À l'opposé de la fonction strpos(), la valeur retournée par iconv_strrpos() est le nombre de caractères avant needle, plutôt que la position en octets de needle. Les caractères sont comptés en se basant sur le jeux de caractères charset.

Liste de paramètres

haystack

La chaîne de caractères entière.

needle

La chaîne de caractères cherchée.

charset

Si le paramètre optionnel charset est omis, string est supposé être encodé en iconv.internal_encoding.

Si haystack ou needle ne sont pas des chaînes de caractères, ils seront convertis en chaîne de caractères et reconnus comme code ASCII de chaque caractères.

Valeurs de retour

Retourne la position numérique de la dernière occurrence de needle dans haystack. Les caractères sont comptés en tenant compte du jeu de caractères spécifié charset.

Si needle n'est pas trouvé, iconv_strrpos() retournera FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • strrpos() - Trouve la position de la dernière occurrence d'une sous-chaine dans une chaîne
  • iconv_strpos() - Trouve la position de la première occurrence d'une chaîne dans une autre
  • mb_strrpos() - Repère la dernière occurrence d'un caractère dans une chaîne



iconv_substr

(PHP 5)

iconv_substrCoupe une partie de chaîne

Description

string iconv_substr ( string $str , int $offset [, int $length = iconv_strlen($str, $charset) [, string $charset = ini_get("iconv.internal_encoding") ]] )

Coupe une partie de la chaîne str à partir de la position offset et d'une longueur de length.

Liste de paramètres

str

La chaîne de caractères originale.

offset

Si offset n'est pas négatif, iconv_substr() retourne le segment de str en commençant au caractère numéro offset, en comptant à partir de zéro.

Si offset est négatif, iconv_substr() retourne le segment en commençant à la position offset caractères et en allant vers la fin de la chaîne de caractères str.

length

Si le paramètre length est donné et positif, la valeur retournée contiendra au plus length caractères de la portion de chaîne qui commence à offset (en fonction de la taille de la chaîne string).

Si length est passé et négatif, iconv_substr() coupe la portion externe de str depuis le caractère numéro offset jusqu'au caractère numéro length, compté depuis la fin de la chaîne de caractères. Dans le cas où offset est également négatif, la position de départ est calculée en amont, suivant la règle expliquée plus haut.

charset

Si charset est omis, string est supposé avoir été encodée en iconv.internal_encoding.

Notez que offset et length sont toujours considérés comme représentant une position calculée sur la représentation ASCII des caractères déterminés par charset, contrairement à substr() qui se base toujours sur la position par octet.

Valeurs de retour

Retourne la portion de str spécifié par les paramètres offset et length.

Si str est plus petit que offset, FALSE sera retourné.

Voir aussi



iconv

(PHP 4 >= 4.0.5, PHP 5)

iconvConvertit une chaîne dans un jeu de caractères

Description

string iconv ( string $in_charset , string $out_charset , string $str )

Convertit la chaîne str depuis le jeu de caractères in_charset vers le jeu de caractères out_charset.

Liste de paramètres

in_charset

Le jeu de caractères d'entrée.

out_charset

Le jeu de caractères de sortie.

Si vous ajoutez la chaîne //TRANSLIT au paramètre out_charset, la translittération est activée. Cela signifie que lorsqu'un caractère ne peut être représenté dans le jeu de caractères cible, il peut être représenté approximativement à partir d'un ou plusieurs caractères représentant le même caractère. Si vous ajoutez la chaîne //IGNORE, les caractères qui ne peuvent être représentés dans le jeu de caractères cible sont tout simplement ignorés. Sinon, str sera coupé à partir du premier caractère illégal rencontré et une erreur E_NOTICE sera générée.

str

La chaîne de caractères à convertir.

Valeurs de retour

Retourne la chaîne de caractères convertie ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec iconv()

<?php
$text 
"Ceci est le symbole de l'Euro '€'.";

echo 
'Original : '$textPHP_EOL;
echo 
'TRANSLIT : 'iconv("UTF-8""ISO-8859-1//TRANSLIT"$text), PHP_EOL;
echo 
'IGNORE   : 'iconv("UTF-8""ISO-8859-1//IGNORE"$text), PHP_EOL;
echo 
'Brut     : 'iconv("UTF-8""ISO-8859-1"$text), PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Original : Ceci est le symbole de l'Euro '€'.
TRANSLIT : Ceci est le symbole de l'Euro 'EUR'.
IGNORE   : Ceci est le symbole de l'Euro ''.
Brut     : Ceci est le symbole de l'Euro '
Notice: iconv(): Detected an illegal character in input string in /Users/macbook/Desktop/- on line 8
Ceci est le symbole de l'Euro '



ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5)

ob_iconv_handlerGestionnaire de sortie pour maîtriser le jeu de caractères de sortie

Description

string ob_iconv_handler ( string $contents , int $status )

Convertit la chaîne utilisant le jeu de caractères internal_encoding en une chaîne utilisant celui de output_encoding.

internal_encoding et output_encoding doivent être définis par iconv_set_encoding() ou dans le fichier de configuration php.ini.

Liste de paramètres

Voir la documentation sur la fonction ob_start() pour plus d'informations sur les paramètres de cette fonction.

Valeurs de retour

Voir la documentation sur la fonction ob_start() pour plus d'informations sur les valeurs retournées par cette fonction.

Exemples

Exemple #1 Exemple avec ob_iconv_handler()

<?php
iconv_set_encoding
("internal_encoding""UTF-8");
iconv_set_encoding("output_encoding""ISO-8859-1");
ob_start("ob_iconv_handler"); // Commence la mise en buffer de l'affichage
?>

Voir aussi


Sommaire




Fonctions d'internationalisation


Introduction

L'extension d'Internationalization (qui est aussi appelée Intl) est une interface pour la bibliothèque » ICU, qui permet aux développeurs PHP d'effectuer des manipulations de nombres dates et heures avec des conventions locales, dans leurs scripts.

Cette extension tend à suivre de près l'API ICU, ce qui fait que ceux qui ont l'expérience de cette bibliothèque en C, C++ ou Java pourront facilement s'y retrouver dans l'API PHP. De plus, la documentation ICU peut être très utile pour comprendre les fonctions ICU.

Intl est constitué de plusieurs modules, chacun exposant des API d'ICU :

  • Collator : fournit des outils de comparaison de chaînes, qui supporte les tris en fonction des conventions locales.
  • Number Formatter : permet d'afficher des nombres en fonction des conventions locales, ou de modèles particuliers, ou encore de règles d'affichages.
  • Message Formatter : permet de créer des message en incorporant des données (comme des dates ou des nombres) formattés en fonction des conventions locale ou particulières; permet aussi d'analyser des textes pour extraire ces informations.
  • Normalizer : fournit une fonction pour normaliser un texte dans l'une des normalisation Unicode, et des méthodes pour tester si une chaîne est déjà normalisée.
  • Locale : fournit des outils d'interaction avec les identifiants locaux : analyse, compose, recherche et filtre des identifiants locaux.


Installation/Configuration

Sommaire


Pré-requis

Pour compiler cette extension, vous devez installer la bibliothèque » ICU version 3.6 ou plus récent.

Cette extension peut être compilée avec PHP 5.3.0. De plus, la version PECL de cette extension peut être utilisée avec toutes les versions PHP supérieures à la version 5.2.0 (5.2.4+ recommandée).



Installation

Cette extension est disponible pour PHP 5.2.0 dans PECL ou nativement pour PHP 5.3. Il y a donc 2 méthodes pour installer cette extension.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/intl.

Aussi, --enable-intl activera l'extension de manière embarquée à la compilation.

Si votre bibliothèque ICU est installée dans un dossier non-standard, vous aurez peut-être à spécifier sa localisation via la variable d'environnement LD_LIBRARY_PATH, afin que le compilateur dynamique puisse la trouver :

$ export LD_LIBRARY_PATH=/opt/icu/lib

Autrement, si PHP et ICU sont installés dans leurs dossiers par défaut, alors aucune option particulière ne sont nécessaire pour `configure'.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration d'internationalisation
Nom Défaut Modifiable Historique
intl.default_locale   PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

intl.default_locale string



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

INTL_MAX_LOCALE_LEN (integer)
Limite la taille locale, par défaut à 80 en PHP. Les noms de locales plus grand que cette taille seront interdits.
IDNA_DEFAULT (integer)
Interdire le traitement des codepoints non affectés dans l'entrée pour les fonctions IDN et ne vérifient pas si l'entrée est conforme aux règles de noms de domaine ASCII.
IDNA_ALLOW_UNASSIGNED (integer)
Autoriser le traitement des codepoints non affectés dans l'entrée pour les fonctions IDN.
IDNA_USE_STD3_RULES (integer)
Vérifiez si l'entrée pour les fonctions IDN est conforme aux règles de noms de domaine ASCII.



Exemples

Sommaire


Utilisation simple de l'extension

Chaque module dispose de deux type d'API : une version procédurale, et une version objet. Les deux sont en fait identiques, et décrites dans le document correspondant.

Note:

Toutes les chaînes doivent être en UTF-8. Tous les résultats sont aussi en UTF-8.

Exemple #1 Exemple d'API procédurale pour intl

<?php
$coll  
collator_create('en_US');
$result collator_compare($coll"string#1""string#2");
?>

Exemple #2 Exemple d'API orientée objet pour intl

<?php
$coll 
= new Collator('en_US');
$al   $coll->getLocale(Locale::ACTUAL_LOCALE);
echo 
"Actual locale: $al\n";

$formatter = new NumberFormatter('en_US'NumberFormatter::DECIMAL);
echo 
$formatter->format(1234567);
?>



La classe Collator

Introduction

Fournit des outils de comparaisons de chaînes, avec le support des conventions locales pour les tris.

Synopsis de la classe

Collator {
/* Méthodes */
__construct ( string $locale )
bool asort ( array &$arr [, int $sort_flag ] )
int compare ( string $str1 , string $str2 )
static Collator create ( string $locale )
int getAttribute ( int $attr )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ([ int $type ] )
string getSortKey ( string $str )
int getStrength ( void )
bool setAttribute ( int $attr , int $val )
bool setStrength ( int $strength )
bool sortWithSortKeys ( array &$arr )
bool sort ( array &$arr [, int $sort_flag ] )
}

Constantes pré-définies

Collator::FRENCH_COLLATION (entier)

Trie les chaînes avec différents accents, sur la fin de la chaîne. Cet attribut est automatiquement configuré à On pour les locales françaises, et quelques autres. Les utilisateurs n'ont pas besoin de configurer explicitement cet attribut. Il y a un coût de performances lors de la comparaison des chaînes quand cet attribut est à On, mais la taille des clés de tris est inchangée. Les valeurs possibles sont :

  • Collator::ON
  • Collator::OFF(par défaut)
  • Collator::DEFAULT_VALUE

Exemple #3 Règles de FRENCH_COLLATION

  • F=OFF cote < coté < côte < côté
  • F=ON cote < côte < coté < côté

Collator::ALTERNATE_HANDLING (entier)

L'attribut alterné est utilisé pour contrôler la gestion des caractères variables de UCA : les espaces blancs, la ponctuation et les symboles. Si Alternate est configuré à NonIgnorable (N), alors les différences entre ces caractères sont de la même importance que les différences entre les lettres. Si Alternate est configuré à Shifted (S), alors ces caractères seront d'importance mineur. La valeur Shifted est souvent utilisée conjointement avec Quaternary qui vaut Strength. Dans ce cas, les espaces blancs, la ponctuation et les symboles sont considérés lors de la comparaison, mais uniquement si les autres aspects de la chaînes (lettres de base, accents et casse) sont tous identiques. Si Alternate n'est pas configuré à Shifted, il n'y a alors pas de différence entre une Strength de 3 et une Strength de 4. Pour plus d'information et d'exemples, voyez Variable_Weighting dans » UCA. La raison qui fait que les valeurs de Alternate ne sont pas seulement On et Off est que des valeurs supplémentaires pour Alternate pourraient être ajoutées à l'avenir. L'option UCA Blanked est exprimée avec une valeur de Strength à 3, et Alternate configuré à Shifted. La valeur par défaut pour la majorité des locales est NonIgnorable. Si Shifted est sélectionné, il peut être plus lent s'il y a de nombreuses chaînes qui sont identiques, sauf pour la ponctuation : la taille de la clé de tri sera inchangée, à mois que le niveau de Strength ne soit élevé.

Les valeurs possibles sont :

  • Collator::NON_IGNORABLE(par défaut)
  • Collator::SHIFTED
  • Collator::DEFAULT_VALUE

Exemple #4 Règles ALTERNATE_HANDLING

  • S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
  • S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
  • S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA

Collator::CASE_FIRST (entier)

L'attribut Case_First est utilisé pour contrôler le fait que les majuscules doivent être considérées comme avant les minuscules, et vice-versa, en l'absence d'autres discriminant. Les valeurs possibles sont Uppercase_First (U) et Lowercase_First (L), plus les valeurs standards Default et Off. Il n'y a presque pas de différence entre Off et Lowercase_First en termes de résultats, ce qui fait que les utilisateurs typiques n'utiliseront pas Lowercase_First : uniquement Off ou Uppercase_First. (ceux qui sont intéressés par les différences entre X et L devront consulter la section Collation Customization). Spécifier L ou U ne va pas changer les performances de comparaison, mais va affecter la taille de la clé de tri.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::LOWER_FIRST
  • Collator::UPPER_FIRST
  • Collator:DEFAULT

Exemple #5 Règles CASE_FIRST

  • C=X or C=L "china" < "China" < "denmark" < "Denmark"
  • C=U "China" < "china" < "Denmark" < "denmark"

Collator::CASE_LEVEL (entier)

L'attribut Case_Level est utilisé pour ignorer les accents, mais pas la casse. Dans ces situations, mettez l'attribut Strength à Primary, et Case_Level à On. Dans la plupart des locales, cet attribut est à Off par défaut. Il y a un petit coût de performances pour la comparaison des chaînes, un un impact sur la taille des index de tri si cet attribut est à On.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Exemple #6 Règles CASE_LEVEL

  • S=1, E=X role = Role = rôle
  • S=1, E=O role = rôle < Role

Collator::NORMALIZATION_MODE (entier)

L'attribut Normalization détermine s'il faut normaliser totalement le texte ou non, pour la comparaison. Même si cet attribut à Off (ce qui set le cas par défaut pour de nombreuses locales), les textes comparés pour un usage ordinaire seront corrects (pour des détails, voyez UTN #5). Il n'y aura un problème que si les marques d'accent ne sont pas canoniques. Si cet attribut est à On, alors les meilleurs résultats sont garantis pour tous les textes. Il y a un coût de comparaison moyen si cet attribut vaut On, en fonction de la fréquence des séquences qui requièrent de la normalisation. Il n'y a pas d'effet significatif sur la taille des index de tri. Si le texte est réputé dans les formes de normalisation NFD ou NFKD, il n'y a pas besoin d'activer l'option de Normalization.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH (entier)

Le service de collation ICU supporte de nombreux niveaux de comparaison (appelés "Levels", mais aussi connus sous le nom de "Strengths"). Avec ces catégories, ICU peut trier les chaînes avec précision, en fonction des conventions locales. Cependant, en permettant l'utilisation sélective des niveaux, la recherche d'une chaîne dans un texte peut être réalisées, à partir de différentes conditions. Pour plus d'informations, voyez le chapitre collator_set_strength().

Les valeurs possibles sont :

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY(par défaut)
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_VALUE

Collator::HIRAGANA_QUATERNARY_MODE (entier)

La compatibilité avec JIS x 4061 requiert l'introduction d'un niveau supplémentaire pour distinguer les caractères Hiragana et Katakana. Si la compatibilité avec le standard est nécessaire, alors cet attribut doit être utilisé à On, et la Strength doit prendre la valeur de Quaternary. Cela va affecter la taille des index de tri, et les performances de comparaisons des chaînes.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION (entier)

Lorsqu'activé, cet attribut génère une clé de collation pour les valeurs numériques de sous-chaînes. C'est une méthode pour que '100' soit trié après '2'.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE (entier)
Collator::PRIMARY (entier)
Collator::SECONDARY (entier)
Collator::TERTIARY (entier)
Collator::DEFAULT_STRENGTH (entier)
Collator::QUATERNARY (entier)
Collator::IDENTICAL (entier)
Collator::OFF (entier)
Collator::ON (entier)
Collator::SHIFTED (entier)
Collator::NON_IGNORABLE (entier)
Collator::LOWER_FIRST (entier)
Collator::UPPER_FIRST (entier)


Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::asort -- collator_asortTri un tableau en conservant les clés, avec une collation

Description

Style orienté objet

bool Collator::asort ( array &$arr [, int $sort_flag ] )

Style procédural

bool collator_asort ( Collator $coll , array &$arr [, int $sort_flag ] )

Cette fonction trie un tableau en maintenant l'association entre les clés et les valeurs. Elle sert surtout à trier des tableaux associatifs, où l'ordre des éléments est important. Les éléments seront triés en fonction des conventions locales.

Équivalent de la fonction PHP standard asort().

Liste de paramètres

coll

Objet Collator.

arr

tableau de chaînes à trier.

sort_flag

Type de tri, optionnel, choisi parmi les constantes suivantes :

  • Collator::SORT_REGULAR : compare les éléments normalement (pas de changement de type).

  • Collator::SORT_NUMERIC : compare les éléments numériquement.

  • Collator::SORT_STRING : compare les éléments littéralement.

Le type de tri par défaut est Collator::SORT_REGULAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_asort()

<?php
$coll 
collator_create'en_US' );
$arr = array(
     
'a' => '100',
     
'b' => '50',
     
'c' => '7'
);
collator_asort$coll$arrCollator::SORT_NUMERIC );
var_export$arr );

collator_asort$coll$arrCollator::SORT_STRING );
var_export$arr );
?>

L'exemple ci-dessus va afficher :

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

Voir aussi



Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::compare -- collator_compareCompare deux chaînes Unicode

Description

Style orienté objet

int Collator::compare ( string $str1 , string $str2 )

Style procédural

int collator_compare ( Collator $coll , string $str1 , string $str2 )

Compare deux chaînes Unicode en fonction des règles de collation.

Liste de paramètres

coll

Objet Collator.

str1

La première chaîne à comparer.

str2

La deuxième chaîne à comparer.

Valeurs de retour

Résultats de comparaison

  • 1 si str1 est plus grand que str2 ;

  • 0 si str1 est égal à str2;

  • -1 si str1 est plus petit que str2 .

En cas d'erreur, un booléen FALSE est retourné.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec collator_compare()

<?php
$s1 
'Hello';
$s2 'hello';

$coll collator_create'en_US' );
$res  collator_compare$coll$s1$s2 );

if (
$res === false) {
    echo 
collator_get_error_message$coll );
} else if( 
$res ) {
    echo 
"s1 est plus grand que s2\n";
} else if( 
$res ) {
    echo 
"s1 est plus petit que s2\n";
} else {
    echo 
"s1 est égal à s2\n";
}
?>

L'exemple ci-dessus va afficher :


s1 est plus grand que s2

Voir aussi



Collator::__construct

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::__constructCréatin d'un collator

Description

Collator::__construct() ( string $locale )

Création d'une nouvelle instance d'un objet Collator.

Liste de paramètres

locale

La locale dont les règles de collation doivent être respectés. Des valeurs spéciales peuvent être passées dans cet argument : si NULL est passé, la locale par défaut sera utilisée. Si une chaîne vide ou le mot clé "root", les règles UCA seront utilisées.

L'attribut Locale est généralement l'attribut le plus important pour assurer des tris et comparaisons valides, en fonction des attentes des utilisateurs. L'ordre par défaut » UCA va trier uniquement quelques langues, telles que hollandais ou portugais (correctement signifie que le résultat sera conforme aux attentes des utilisateurs de ces langues). Autrement, vous devez fournir une locale adaptée à vos utilisateurs. Par conséquent, une valeur spécifique de locale doit être fournie pour assurer un service correct. Le choix de la locale va configurer les valeurs de tous ses attributs qui sont les plus pertinentes pour une locale. Par conséquent, la plupart du temps, les attributs n'ont pas besoin d'être d'être explicitement attribués. Dans le même temps, le choix de la locale aura un impact sur les performances de comparaison et de tris.

Valeurs de retour

Retourne un objet Collator.

Erreurs / Exceptions

Retourne un objet vide en cas d'erreur. Vous pouvez alors utiliser la méthode intl_get_error_code() et / ou intl_get_error_message() pour en savoir faire.

Exemples

Exemple #1 Exemple avec Collator::__construct()

<?php
$coll 
= new Collator'en_CA' );
?>

Voir aussi



Collator::create

collator_create

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::create -- collator_createCréation d'un collator

Description

Style orienté objet

static Collator Collator::create ( string $locale )

Style procédural

Collator collator_create ( string $locale )

Les chaînes seront comparées et triées avec des conventions locales.

Liste de paramètres

locale

La locale dont les règles de collation doivent être respectés. Des valeurs spéciales peuvent être passées dans cet argument : si NULL est passé, la locale par défaut sera utilisée. Si une chaîne vide ou le mot clé "root", les règles UCA seront utilisées.

Valeurs de retour

Retourne une nouvelle instance de la classe Collator, ou NULL en cas d'erreur.

Exemples

Exemple #1 Exmple avec collator_create()

<?php
$coll 
collator_create'en_US' );

if( !isset( 
$coll ) ) {
    
printf"Echec de création de collator : %s\n"intl_get_error_message() );
    exit( 
);
}
?>

Voir aussi



Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attributeLit un attribut de collation

Description

Style orienté objet

int Collator::getAttribute ( int $attr )

Style procédural

int collator_get_attribute ( Collator $coll , int $attr )

Lit un attribut de collation.

Liste de paramètres

coll

Objet Collator.

attr

L'attribut à lire.

Valeurs de retour

La valeur de l'attribut, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec collator_get_attribute()

<?php
$coll 
collator_create'en_CA' );
$val collator_get_attribute$collCollator::NUMERIC_COLLATION );
if( 
$val === false )
{
    
// Gestion d'erreur
}
?>

Voir aussi



Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_codeLit la dernière erreur du collator

Description

Style orienté objet

int Collator::getErrorCode ( void )

Style procédural

int collator_get_error_code ( Collator $coll )

Liste de paramètres

coll

Objet Collator.

Valeurs de retour

Le code d'erreur retourné par le dernier appel à un objet de l'API Collator.

Exemples

Exemple #1 Exemple avec collator_get_error_code()

<?php
$coll 
collator_create'en_US' );
if( 
collator_get_attribute$collCollator::FRENCH_COLLATION ) === false )
        
handle_errorcollator_get_error_code() );
?>

Voir aussi



Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_messageLit le dernier message d'erreur du collator

Description

Style orienté objet

string Collator::getErrorMessage ( void )

Style procédural

string collator_get_error_message ( Collator $coll )

Lit le dernier message d'erreur.

Liste de paramètres

coll

Object Collator.

Valeurs de retour

La description d'une erreur survenue lors du dernier appel à une méthode de l'API Collator.

Exemples

Exemple #1 Exemple avec collator_get_error_message()

<?php
$coll 
collator_create'lt' );
if( 
collator_compare$coll'y''k' ) === false ) {
    echo 
collator_get_error_message$coll );
}
?>

Voir aussi



Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_localeLit le nom de la locale d'un collator

Description

Style orienté objet

string Collator::getLocale ([ int $type ] )

Style procédural

string collator_get_locale ( Collator $coll , int $type )

Lit le nom de la locale d'un collator

Liste de paramètres

coll

Objet Collator.

type

Vous pouvez choisir entre une valeur valide ou une valeur littérale de la locale (à l'aide des constantes Locale::VALID_LOCALE et Locale::ACTUAL_LOCALE, respectivement). La valeur par défaut est la valeur littérale.

Valeurs de retour

Le nom de la locale pour laquelle le collator est configuré. Si le collator a été configuré à partir de règles, ou qu'une erreur est survenue, la méthode retourne FALSE.

Exemples

Exemple #1 Exemple avec collator_get_locale()

<?php
$coll    
collator_create'en_US_California' );
$res_val collator_get_locale$collLocale::VALID_LOCALE );
$res_act collator_get_locale$collLocale::ACTUAL_LOCALE );
printf"Valid locale name: %s\nActual locale name: %s\n",
         
$res_req$res_val$res_act );
?>

L'exemple ci-dessus va afficher :

Requested locale name: en_US_California
Valid locale name: en_US
Actual locale name: en

Voir aussi



Collator::getSortKey

collator_get_sort_key

(No version information available, might only be in SVN)

Collator::getSortKey -- collator_get_sort_keyRecupère la clé de tri pour une chaine

Description

Style orienté objet

string Collator::getSortKey ( string $str )

Style procédural

string collator_get_sort_key ( Collator $coll , string $str )

Retourne la clé de la collation pour une chaine.

Liste de paramètres

coll

Objet Collator.

str

La chaine depuis laquelle produire la clé.

Valeurs de retour

Retourne la clé de collation pour la chaine. Les clés de collation peuvent être comparées directement contrairement aux chaines.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple collator_get_sort_key()

<?php
$s1 
'Hello';

$coll collator_create'en_US' );
$res  collator_get_sort_key$coll$s1);

echo 
urlencode($res);
?>

L'exemple ci-dessus va afficher :


71%3F%3FE%01%09%01%8F%08%00

Voir aussi



Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strengthGet current collation strength

Description

Style orienté objet

int Collator::getStrength ( void )

Style procédural

int collator_get_strength ( Collator $coll )

Liste de paramètres

coll

Objet Collator.

Valeurs de retour

Retourne la Strength de la collation, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec collator_get_strength()

<?php
$coll     
collator_create'en_US' );
$strength collator_get_strength$coll );
?>

Voir aussi



Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attributeConfigure l'attribut de collation

Description

Style orienté objet

bool Collator::setAttribute ( int $attr , int $val )

Style procédural

bool collator_set_attribute ( Collator $coll , int $attr , int $val )

Liste de paramètres

coll

Objet Collator.

attr

L'attribut.

val

La valeur de l'attribute.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_set_attribute()

<?php
$coll 
collator_create'en_CA' );
$val  collator_get_attribute$collCollator::NUMERIC_COLLATION );
if (
$val === false) {
    
// Gestion d'erreur.
} elseif ($val === Collator::ON) {
    
// Quelque chose d'utile
}
?>

Voir aussi



Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strengthSet collation strength

Description

Style orienté objet

bool Collator::setStrength ( int $strength )

Style procédural

bool collator_set_strength ( Collator $coll , int $strength )

Le service de collation » ICU suporte de nombreux niveaux de comparaison (appelés "Levels", mais aussi connus sous le nom de "Strengths"). Avec ces categories, ICU peut trier les chaînes avec précision, en fonction des conventions locales. Cependant, en permettant l'utilisation selective des niveaux, la recherche d'une chaîne dans un texte peut être réalisées, à partir de différentes conditions. Pour plus d'informations, voyez le chapitre collator_set_strength().

  1. Niveau primaire : Typiquement, ceci est utilisé pour faire la différence entre des caractères de bases, comme "a" < "b"). C'est la différence la plus importante. Par exemple, les dictionnaires sont divisées en sections avec les caractères de base. C'est le niveau 1.

  2. Niveau secondaire : Les accents sur les caractères sont considérés comme des différences secondaires. Par exemple, "as" < "às" < "at". D'autres différences entre les caractères peuvent être considérées comme secondaires, en fonction des langues. Une différence secondaire sont toujours ignorées quand une différence primaire est présente. C'est le niveau 2.

    Note:

    Note : dans certaines langues, comme le danois, certains caractères accentués sont considérés comme des caractères de bases. Dans la plupart des langues, un caractère accentué est simplement une différence secondaire avec les versions simple de la lettre.

  3. Niveau tertiaire : les majuscules et les minuscules sont distinguées au niveau tertiaire. par exemple, "ao" < "Ao" < "aò". De plus, une variante d'une lettre est différente de la forme de base, au niveau ternaire. Par exemple, "A" et " ". Un autre exemple de différente tertiaire est le grand et le petit Kana. Une différence tertiaire est ignorée quand une différence primaire ou secondaire est présente. C'est le niveau 3.

  4. Niveau quaternaire : Lorsque le ponctuation est ignorée, au niveau 13, un niveau supplémentaire peut être utilisé pour distinguer des mots avec ou sans ponctuation. Par exemple, "ab" < "a-b" < "aB". Cette différence est ignorée lorsqu'il y a une différence de niveau primaire, secondaire ou tertiaire. Le niveau quaternaire ne doit être utilisé que lorsqu'il faut ignorer la ponctuation ou traiter des mots japonais (traitement Hiragana).

  5. Niveau identique : Lorsque tous les autres niveaux sont égaux, le niveau identique est utilisé pour départager les caractères. Le code Unicode point sur une forme NFD de chaque caractère, et sont comparés à ce niveau, au cas où il n'y aurait pas de différence au niveau 14. Par exemple, les cantilliation de l'hébreux ne sont distingués qu'à ce niveau. Ce niveau ne doit être utilisé qu'avec beaucoup de parcimonie, car il fait substantiellement décroitre les performances. Il est connu sous le nom de niveau 5.

Par exemple, on peut choisir d'ignorer les accents, les accents et les majuscules dans un texte. Presque tous les caractères sont distingués par les trois premiers niveaux, et la plupart des locales s'arrêtent au niveau trois. Cependant, si l'attribut Alternate prend la valeur de Shifted, alors le quatrième niveau sert à départager les égalités entre les espaces, la ponctuation et les symboles, qui seraient ignorés autrement. Si des différentes très subtiles sont nécessaires entre les caractères, le niveau identique peut être utilisée (par exemple, le niveau identique fait la différence entre un A mathématique petit et gras avec un A mathématique italique et petit. Cependant, utiliser ces niveaux implique une dégradation significative des performances lors de la comparaison et le tri des chaînes proches ou égales.

Liste de paramètres

coll

Objet Collator.

strength

Le niveau à choisir.

Les valeurs possibles sont :

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_set_strength()

<?php
$arr  
= array( 'aò''Ao''ao' );
$coll collator_create'en_US' );

// Trie un tableau avec le niveau par défaut
collator_sort$coll$arr ); 
var_export$arr );

// Tri un tableau avec le niveau primaire
collator_set_strength$collCollator::PRIMARY );
collator_sort$coll$arr );
var_export$arr );
?>

L'exemple ci-dessus va afficher :

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'aò',
)
array (
  0 => 'aò',
  1 => 'Ao',
  2 => 'ao',
)

Voir aussi



Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keysTri un tableau et ses clés avec une collation

Description

Style orienté objet

bool Collator::sortWithSortKeys ( array &$arr )

Style procédural

bool collator_sort_with_sort_keys ( Collator $coll , array &$arr )

Similaire à collator_sort(), mais utilise le tri de clé ICU de ucol_getSortKey() pour obtenir plus de vitesse sur les grands tableaux.

Liste de paramètres

coll

Objet Collator.

arr

tableau de chaîne à trier

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_sort_with_sort_keys()

<?php
$arr  
= array( 'Köpfe''Kypper''Kopfe' );
$coll collator_create'sv' );

collator_sort_with_sort_keys$coll$arr );
var_export$arr );
?>

L'exemple ci-dessus va afficher :

array (
  0 => 'Kopfe',
  1 => 'Kypper',
  2 => 'Köpfe',
)

Voir aussi



Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::sort -- collator_sortTri un tableau avec une collation

Description

Style orienté objet

bool Collator::sort ( array &$arr [, int $sort_flag ] )

Style procédural

bool collator_sort ( Collator $coll , array &$arr [, int $sort_flag ] )

Cette fonction trie un tableau en fonction des conventions locales.

Équivalent à la fonction standard PHP sort().

Liste de paramètres

coll

Objet Collator.

arr

tableau de chaînes à trier.

sort_flag

Type de tri, optionnel, choisi parmi les constantes suivantes :

  • Collator::SORT_REGULAR : compare les éléments normalement (pas de changement de type).

  • Collator::SORT_NUMERIC : compare les éléments numériquement.

  • Collator::SORT_STRING : compare les éléments littéralement.

Le type de tri par défaut est Collator::SORT_REGULAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_sort()

<?php
$coll 
collator_create'en_US' );
$arr  = array( 'at''às''as' );

var_export$arr );
collator_sort$coll$arr );
var_export$arr );
?>

L'exemple ci-dessus va afficher :

array (
  0 => 'at',
  1 => 'às',
  2 => 'as',
)array (
  0 => 'as',
  1 => 'às',
  2 => 'at',
)

Voir aussi


Sommaire



La classe NumberFormatter

Introduction

Les programmes stockent et manipulent des nombres en utilisant une représentation locale, binaire et indépendante. Lors de l'affichage d'un nombre, il est converti en une version particulière. Par exemple, un nombre tel que 12345.67 s'écrit "12,345.67" aux USA, "12 345,67" en France et "12.345,67" en Allemagne.

En appelant les méthodes fournies par NumberFormatter, vous pouvez formatter les nombres, les montants de devises et les pourcentages, en fonctions des conventions locales. NumberFormatter prend en compte les conventions, ce qui fait que vous devez créer un nouvel objet NumberFormatter, pour chaque convention. Les méthodes de NumberFormatter, formattent des types primitifs comme des nombres décimaux, et produit une chaîne de caractères.

Pour les monnaies, vous pouvez utiliser le format monétaire pour créer un formatteur qui retourne une chaîne, avec le symbole de devise approprié. Bien entendu, NumberFormatter ne connait pas les taux de changes, ce qui fait que l'affichage sera fait, qulelque soit la devise demandée. Cela signifie que le même nombre aura différente valeur monétaires en fonction de la configuration locale. Par exemple, le nombre 9988776.65 s'affichera :

  • 9 988 776,65 € en France
  • 9.988.776,65 € en Allemagne
  • $9,988,776.65 aux USA

Pour formatter des pourcentages, vous devez créer un formatteur locale, avec un type de format pourcentage. Avec ce formatteur, une fraction décimal telle que 0.75 sera affichée 75%.

Pour des formattages plus complexes, comme des nombres écrits litéralement, des formatteurs à règles sont utilisés.

Synopsis de la classe

NumberFormatter {
/* Méthodes */
__construct ( string $locale , int $style [, string $pattern ] )
static NumberFormatter create ( string $locale , int $style [, string $pattern ] )
string formatCurrency ( float $value , string $currency )
string format ( number $value [, int $type ] )
int getAttribute ( int $attr )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ([ int $type ] )
string getPattern ( void )
string getSymbol ( int $attr )
string getTextAttribute ( int $attr )
float parseCurrency ( string $value , string &$currency [, int &$position ] )
mixed parse ( string $value [, int $type [, int &$position ]] )
bool setAttribute ( int $attr , int $value )
bool setPattern ( string $pattern )
bool setSymbol ( int $attr , string $value )
bool setTextAttribute ( int $attr , string $value )
}

Constantes pré-définies

Ces styles sont utilisés par numfmt_create() pour définir le type de formatteur.

NumberFormatter::PATTERN_DECIMAL (entier)
Format décimal défini par un modèle
NumberFormatter::DECIMAL (entier)
Format décimal
NumberFormatter::CURRENCY (entier)
Format monétaire
NumberFormatter::PERCENT (entier)
Format pourcentage
NumberFormatter::SCIENTIFIC (entier)
Format scientifique
NumberFormatter::SPELLOUT (entier)
Format littéral, basé sur des règles
NumberFormatter::ORDINAL (entier)
Format ordinal, basé sur des règles
NumberFormatter::DURATION (entier)
Format de durée, , basé sur des règles
NumberFormatter::PATTERN_RULEBASED (entier)
Format de modèle, , basé sur des règles
NumberFormatter::DEFAULT_STYLE (entier)
Format par défaut pour les conventions locales
NumberFormatter::IGNORE (entier)
Alias de PATTERN_DECIMAL

Ces constantes définissent la méthode d'analyse et de formattage des nombres. Ils doivent être utilisés comme arguments des fonctions numfmt_format() et numfmt_parse().

NumberFormatter::TYPE_DEFAULT (entier)
Dérive le type depuis le type de variable
NumberFormatter::TYPE_INT32 (entier)
Formate / analyse un entier 32 bits
NumberFormatter::TYPE_INT64 (entier)
Formate / analyse un entier 64 bits
NumberFormatter::TYPE_DOUBLE (entier)
Formate / analyse un nombre décimal
NumberFormatter::TYPE_CURRENCY (entier)
Formate / analyse une valeur monétaire

Attributs de formats de nombre utilisés par numfmt_get_attribute() et numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY (entier)
Analyse uniquement les entiers.
NumberFormatter::GROUPING_USED (entier)
Séparateur de groupes.
NumberFormatter::DECIMAL_ALWAYS_SHOWN (entier)
Affiche toujours une virgule décimale.
NumberFormatter::MAX_INTEGER_DIGITS (entier)
Nombre maximal de chiffres.
NumberFormatter::MIN_INTEGER_DIGITS (entier)
Nombre minimale de chiffres.
NumberFormatter::INTEGER_DIGITS (entier)
Nombre de chiffres.
NumberFormatter::MAX_FRACTION_DIGITS (entier)
Nombre maximal de décimales.
NumberFormatter::MIN_FRACTION_DIGITS (entier)
Nombre minimal de décimales.
NumberFormatter::FRACTION_DIGITS (entier)
Nombre de décimales.
NumberFormatter::MULTIPLIER (entier)
Multiplicateur.
NumberFormatter::GROUPING_SIZE (entier)
Taille de regroupement.
NumberFormatter::ROUNDING_MODE (entier)
Mode d'arrondi.
NumberFormatter::ROUNDING_INCREMENT (entier)
Incrément d'arrondi.
NumberFormatter::FORMAT_WIDTH (entier)
La largeur de complément pour le formattage d'un nombre.
NumberFormatter::PADDING_POSITION (entier)
La position à laquelle le complément se fait. Voyez les constantes de complément pour avoir les différentes valeurs possibles.
NumberFormatter::SECONDARY_GROUPING_SIZE (entier)
Taille secondaire de groupement.
NumberFormatter::SIGNIFICANT_DIGITS_USED (entier)
Utilise les chiffres significatifs.
NumberFormatter::MIN_SIGNIFICANT_DIGITS (entier)
Nombre minimum de chiffres significatifs.
NumberFormatter::MAX_SIGNIFICANT_DIGITS (entier)
Nombre maximum de chiffres significatifs.
NumberFormatter::LENIENT_PARSE (entier)
Mode d'analyse utilisé par les formats à règles.

Attributs de texte pour les formats de nombres, utilisés par numfmt_get_text_attribute() et numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX (entier)
Préfixe positif.
NumberFormatter::POSITIVE_SUFFIX (entier)
Suffise positif.
NumberFormatter::NEGATIVE_PREFIX (entier)
Préfixe négatif.
NumberFormatter::NEGATIVE_SUFFIX (entier)
Suffixe négatif.
NumberFormatter::PADDING_CHARACTER (entier)
Le caractère à utiliser pour compléter les formats jusqu'à la taille.
NumberFormatter::CURRENCY_CODE (entier)
Le code de devise ISO.
NumberFormatter::DEFAULT_RULESET (entier)
Le jeu de règles par défaut. Il est uniquement utilisable avec les formatteurs à règles.
NumberFormatter::PUBLIC_RULESETS (entier)
Le jeu de règles publiques. Ceci est uniquement disponible avec les formatteurs à règles. C'est un attribut en lecture seule. Les règles publiques sont retournées sous forme d'une seule chaîne, et chaque règle est délimitée par un point-virgule ';'.

Les symboles de format utilisés par numfmt_get_symbol() et numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL (entier)
Le séparateur décimal.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL (entier)
Le séparateur de groupes.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL (entier)
Le modèle de séparateur.
NumberFormatter::PERCENT_SYMBOL (entier)
Le signe de pourcentage.
NumberFormatter::ZERO_DIGIT_SYMBOL (entier)
Zéro.
NumberFormatter::DIGIT_SYMBOL (entier)
Un caractère représentant un chiffre dans un modèle.
NumberFormatter::MINUS_SIGN_SYMBOL (entier)
Le signe moins.
NumberFormatter::PLUS_SIGN_SYMBOL (entier)
Le signe plus.
NumberFormatter::CURRENCY_SYMBOL (entier)
Le symbole de devise.
NumberFormatter::INTL_CURRENCY_SYMBOL (entier)
Le symbole international de devise.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL (entier)
Le séparateur monétaire.
NumberFormatter::EXPONENTIAL_SYMBOL (entier)
Le symbole d'exponentiel.
NumberFormatter::PERMILL_SYMBOL (entier)
Le symbol par mille.
NumberFormatter::PAD_ESCAPE_SYMBOL (entier)
Le caractère de protection des symboles.
NumberFormatter::INFINITY_SYMBOL (entier)
Le symbole de l'infini.
NumberFormatter::NAN_SYMBOL (entier)
Le symbole "n'est pas un nombre".
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL (entier)
Le symbole des chiffres significatifs.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL (entier)
Le séparateur de groupes monétaires.

Les modes d'arrondi utilisés par les fonctions numfmt_get_attribute() et numfmt_set_attribute() avec l'attribut NumberFormatter::ROUNDING_MODE.

NumberFormatter::ROUND_CEILING (entier)
Mode d'arrondi vers l'infini positif.
NumberFormatter::ROUND_DOWN (entier)
Mode d'arrondi vers zéro.
NumberFormatter::ROUND_FLOOR (entier)
Mode d'arrondi vers l'infini négatif.
NumberFormatter::ROUND_HALFDOWN (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi inférieur dans ce cas.
NumberFormatter::ROUND_HALFEVEN (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi vers le nombre pair dans ce cas.
NumberFormatter::ROUND_HALFUP (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi supérieur dans ce cas.
NumberFormatter::ROUND_UP (entier)
Mode d'arrondi qui éloigne de zéro.

Valeurs de compléments utilisés par numfmt_get_attribute() et numfmt_set_attribute() avec l'attribut NumberFormatter::PADDING_POSITION.

NumberFormatter::PAD_AFTER_PREFIX (entier)
Caractères de compléments ajoutés après le préfixe.
NumberFormatter::PAD_AFTER_SUFFIX (entier)
Caractères de compléments ajoutés après le suffixe.
NumberFormatter::PAD_BEFORE_PREFIX (entier)
Caractères de compléments ajoutés avant le préfixe.
NumberFormatter::PAD_BEFORE_SUFFIX (entier)
Caractères de compléments ajoutés avant le suffixe.


NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__constructCrée un formateur de nombre

Description

Style orienté objet (méthode)

static NumberFormatter NumberFormatter::create ( string $locale , int $style [, string $pattern ] )

Style procédural

NumberFormatter numfmt_create ( string $locale , int $style [, string $pattern ] )

Style orienté objet (constructeur)

NumberFormatter::__construct() ( string $locale , int $style [, string $pattern ] )

Crée un formateur de nombre

Liste de paramètres

locale

La locale avec laquelle les nombres seront formatés. e.g. en_CA.

style

Le style de format, une des constantes de style de format. Si NumberFormatter::PATTERN_DECIMAL ou NumberFormatter::PATTERN_RULEBASED est utilisé alors le format de nombre est ouvert avec le modèle fourni, qui doit être compatible avec la syntaxe décrite par la » documentation ICU DecimalFormat ou » documentation ICU RuleBasedNumberFormat, respectivement.

pattern

La chaîne de modèle, en fonction du style de format choisi.

Valeurs de retour

Retourne un objet NumberFormatter ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_create::create(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
$fmt numfmt_create'it'NumberFormatter::SPELLOUT );
echo 
numfmt_format($fmt1142)."\n";
?>

Exemple #2 Exemple avec numfmt_create::create(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter'it'NumberFormatter::SPELLOUT );
echo 
$fmt->format(1142)."\n";
?>

L'exemple ci-dessus va afficher :

1.234.567,891
millicentoquarantadue

Voir aussi



NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currencyFormate une valeur monétaire

Description

Style orienté objet

string NumberFormatter::formatCurrency ( float $value , string $currency )

Style procédural

string numfmt_format_currency ( NumberFormatter $fmt , float $value , string $currency )

Formate une valeur monétaire, en fonction des règles du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

value

La valeur numérique.

currency

Le code à trois lettres ISO 4217 de la devise à utiliser.

Valeurs de retour

La chaîne représentant la valeur formatée.

Exemples

Exemple #1 Exemple avec numfmt_format_currency(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::CURRENCY );
echo 
numfmt_format_currency($fmt1234567.891234567890000"EUR")."\n";
echo 
numfmt_format_currency($fmt1234567.891234567890000"RUR")."\n";
$fmt numfmt_create'ru_RU'NumberFormatter::CURRENCY );
echo 
numfmt_format_currency($fmt1234567.891234567890000"EUR")."\n";
echo 
numfmt_format_currency($fmt1234567.891234567890000"RUR")."\n";
?>

Exemple #2 Exemple avec numfmt_format_currency(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::CURRENCY );
echo 
$fmt->formatCurrency(1234567.891234567890000"EUR")."\n";
echo 
$fmt->formatCurrency(1234567.891234567890000"RUR")."\n";
$fmt = new NumberFormatter'ru_RU'NumberFormatter::CURRENCY );
echo 
$fmt->formatCurrency(1234567.891234567890000"EUR")."\n";
echo 
$fmt->formatCurrency(1234567.891234567890000"RUR")."\n";
?>

L'exemple ci-dessus va afficher :

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.

Voir aussi



NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_formatFormate un nombre

Description

Style orienté objet

string NumberFormatter::format ( number $value [, int $type ] )

Style procédural

string numfmt_format ( NumberFormatter $fmt , number $value [, int $type ] )

Formate une valeur numérique, selon les règles du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

value

La valeur à formater. cela peut être un integer ou double. Les autres valeurs seront converties en valeur numérique avant le formatage.

type

Le type de format.

Valeurs de retour

Retourne la chaîne contenant la valeur formatée, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_format(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
$data numfmt_format($fmt1234567.891234567890000);
if(
intl_is_failure(numfmt_format($fmt))) {
    
report_error("Erreur de formateur");
}
?>

Exemple #2 Exemple avec numfmt_format(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(
intl_is_failure($fmt->getErrorCode())) {
    
report_error("Erreur de formateur");
}
?>

L'exemple ci-dessus va afficher :

1.234.567,891

Voir aussi



NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attributeLit un attribut

Description

Style orienté objet

int NumberFormatter::getAttribute ( int $attr )

Style procédural

int numfmt_get_attribute ( NumberFormatter $fmt , int $attr )

Lit un attribut numérique du formateur. Un exemple d'attribut numérique est le nombre de décimal que le formateur va utiliser.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

La constante d'attribut, l'une de la liste des attributs numériques.

Valeurs de retour

Retourne la valeur de l'attribut, en cas de succès, et FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_get_attribute(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Décimales :  ".numfmt_get_attribute($fmtNumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
numfmt_set_attribute($fmtNumberFormatter::MAX_FRACTION_DIGITS2);
echo 
"Décimales :  ".numfmt_get_attribute($fmtNumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_attribute(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Décimales :  ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS2);
echo 
"Décimales :  ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Décimales :  3
1.234.567,891
Décimales :  2
1.234.567,89

Voir aussi



NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_codeLit le dernier code d'erreur du formateur

Description

Style orienté objet

int NumberFormatter::getErrorCode ( void )

Style procédural

int numfmt_get_error_code ( NumberFormatter $fmt )

Lit le code d'erreur généré par la dernière fonction du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

Valeurs de retour

Retourne le code d'erreur du dernier appel au formateur.

Exemples

Exemple #1 Exemple avec numfmt_get_error_code(), Style procédural

<?php
$fmt  
numfmt_create'de_DE'NumberFormatter::DECIMAL );
$data numfmt_format($fmt1234567.891234567890000);
if(
intl_is_failure(numfmt_get_error_code($fmt))) {
    
report_error("Erreur de formateur");
}
?>

Exemple #2 Exemple avec numfmt_get_error_code(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(
intl_is_failure($fmt->getErrorCode())) {
    
report_error("Erreur de formateur");
}
?>

Voir aussi



NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_messageLit le dernier message d'erreur du formateur

Description

Style orienté objet

string NumberFormatter::getErrorMessage ( void )

Style procédural

string numfmt_get_error_message ( NumberFormatter $fmt )

Lit le message d'erreur généré par la dernière fonction du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

Valeurs de retour

Retourne le message d'erreur du dernier appel au formateur.

Exemples

Exemple #1 Exemple avec numfmt_get_error_message(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
$data numfmt_format($fmt1234567.891234567890000);
if(
intl_is_failure(numfmt_get_error_code($fmt))) {
    
report_error("Erreur de formateur");
}
?>

Exemple #2 Exemple avec numfmt_get_error_code(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(
intl_is_failure($fmt->getErrorCode())) {
    
report_error("Erreur de formateur");
}
?>

Voir aussi



NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_localeLit la locale du formateur

Description

Style orienté objet

string NumberFormatter::getLocale ([ int $type ] )

Style procédural

string numfmt_get_locale ( NumberFormatter $fmt [, int $type ] )

Lit le nom de la locale du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

type

Vous pouvez choisir entre une valeur valide ou un valeur littérale Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectivement). La valeur par défaut est la valeur littérale.

Valeurs de retour

Le nom de la locale utilisée pour créer le formateur.

Exemples

Exemple #1 Exemple avec numfmt_get_error_code(), Style procédural

<?php
$req     
'fr_FR_PARIS';
$fmt     numfmt_create$req,  NumberFormatter::DECIMAL);
$res_val numfmt_get_locale$fmtLocale::VALID_LOCALE );
$res_act numfmt_get_locale$fmtLocale::ACTUAL_LOCALE );
printf"Nom de la locale demandée : %s\nNom valide de la locale : %s\nValeur littérale de la locale : %s\n",
         
$req$res_val$res_act );
?>

L'exemple ci-dessus va afficher :

Nom de la locale demandée : fr_FR_PARIS
Nom valide de la locale: fr_FR
Valeur littérale de la locale : fr

Voir aussi



NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_patternLit le modèle du formateur

Description

Style orienté objet

string NumberFormatter::getPattern ( void )

Style procédural

string numfmt_get_pattern ( NumberFormatter $fmt )

Extrait le modèle utilisé par le formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

Valeurs de retour

La chaîne de caractères de modèle, qui est utilisé par le formateur, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_get_pattern(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Modèle : ".numfmt_get_pattern($fmt)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
numfmt_set_pattern($fmt"#0.# kg");
echo 
"Modèle : ".numfmt_get_pattern($fmt)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_pattern(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Modèle : ".$fmt->getPattern()."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo 
"Modèle : ".$fmt->getPattern()."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Modèle : #,##0.###
1.234.567,891
Modèle : #0.# kg
1234567,9 kg

Voir aussi



NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbolLit la valeur du symbole

Description

Style orienté objet

string NumberFormatter::getSymbol ( int $attr )

Style procédural

string numfmt_get_symbol ( NumberFormatter $fmt , int $attr )

Lit le symbole associé au formateur. Le formateur utilise des symboles pour représenter des caractères dépendant des conventions locales, comme le signe de pourcentage. Cette API n'est pas supportée par les formateurs à base de règles.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

La constante de symbole, une dans la liste des constantes de symboles de formats.

Valeurs de retour

La chaîne de symbole ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_get_symbol(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Séparateur : ".numfmt_get_symbol($fmtNumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
numfmt_set_symbol($fmtNumberFormatter::GROUPING_SEPARATOR_SYMBOL"*");
echo 
"Séparateur : ".numfmt_get_symbol($fmtNumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_symbol(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Séparateur : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL"*");
echo 
"Séparateur : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Séparateur : .
1.234.567,891
Séparateur : *
1*234*567,891

Voir aussi



NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attributeLit un attribut textuel

Description

Style orienté objet

string NumberFormatter::getTextAttribute ( int $attr )

Style procédural

string numfmt_get_text_attribute ( NumberFormatter $fmt , int $attr )

Lit un attribut textuel associé à un formateur. Un exemple d'attribut textuel est le suffixe pour les nombres positifs. Si le formateur ne comprend pas cet attribut, une erreur U_UNSUPPORTED_ERROR est produite. Les formateurs à règles ne comprennent que NumberFormatter::DEFAULT_RULESET et NumberFormatter::PUBLIC_RULESETS.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

L'identifiant de l'attribut : une des constantes d'attribut textuel.

Valeurs de retour

Retourne la valeur de l'attribut en cas de succès, et FALSE sinon.

Exemples

Exemple #1 Exemple avec numfmt_get_text_attribute(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Préfixe : ".numfmt_get_text_attribute($fmtNumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmtNumberFormatter::NEGATIVE_PREFIX"MINUS");
echo 
"Préfixe : ".numfmt_get_text_attribute($fmtNumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_text_attribute(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Préfixe : ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
$fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX"MINUS");
echo 
"Préfixe : ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
$fmt->format(-1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Préfixe : -
-1.234.567,891
Préfixe : MINUS
MINUS1.234.567,891

Voir aussi



NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currencyAnalyse un nombre monétaire

Description

Style orienté objet

float NumberFormatter::parseCurrency ( string $value , string &$currency [, int &$position ] )

Style procédural

float numfmt_parse_currency ( NumberFormatter $fmt , string $value , string &$currency [, int &$position ] )

Analyse une chaîne dans un nombre décimal, et une devise, à l'aide du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

currency

Le nom de la devise (le code 3 lettres ISO 4217).

position

La position de début d'analyse dans la chaîne. En retour, cette valeur contiendra la position de fin d'analyse.

Valeurs de retour

Le nombre décimal ainsi lu, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_parse_currency(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::CURRENCY );
$num "1.234.567,89 $";
echo 
"We have ".numfmt_parse_currency($fmt$num$curr)." in $curr\n";
?>

Exemple #2 Exemple avec numfmt_parse_currency(), Style procédural

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::CURRENCY );
$num "1.234.567,89 $";
echo 
"We have ".$fmt->parseCurrency($num$curr)." in $curr\n";
?>

L'exemple ci-dessus va afficher :

We have 1234567.89 in USD

Voir aussi



NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parseAnalyse un nombre

Description

Style orienté objet

mixed NumberFormatter::parse ( string $value [, int $type [, int &$position ]] )

Style procédural

mixed numfmt_parse ( NumberFormatter $fmt , string $value [, int $type [, int &$position ]] )

Analyse une chaîne et extrait un nombre, à l'aide des régles du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

type

Le type de format à utiliser. Par défaut, NumberFormatter::TYPE_DOUBLE est utilisée.

position

La position de début d'analyse dans la chaîne. En retour, cette valeur contiendra la position de fin d'analyse.

Valeurs de retour

La valeur de nombre analysé, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_parse(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
$num "1.234.567,891";
echo 
numfmt_parse($fmt$num)."\n";
echo 
numfmt_parse($fmt$numNumberFormatter::TYPE_INT32)."\n";
?>

Exemple #2 Exemple avec numfmt_parse(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
$num "1.234.567,891";
echo 
$fmt->parse($num)."\n";
echo 
$fmt->parse($numNumberFormatter::TYPE_INT32)."\n";
?>

L'exemple ci-dessus va afficher :

1234567.891
1234567

Voir aussi



NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attributeAffecte un attribut du formateur

Description

Style orienté objet

bool NumberFormatter::setAttribute ( int $attr , int $value )

Style procédural

bool numfmt_set_attribute ( NumberFormatter $fmt , int $attr , int $value )

Affecte un attribut numérique du formateur. Un exemple d'attribut numérique est le nombre de décimal à afficher par le formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

L'identifiant d'attribut : une des constantes attributs numériques.

value

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_attribute(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Digits: ".numfmt_get_attribute($fmtNumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
numfmt_set_attribute($fmtNumberFormatter::MAX_FRACTION_DIGITS2);
echo 
"Digits: ".numfmt_get_attribute($fmtNumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_attribute(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS2);
echo 
"Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Voir aussi



NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_patternConfigure le modèle du formateur

Description

Style orienté objet

bool NumberFormatter::setPattern ( string $pattern )

Style procédural

bool numfmt_set_pattern ( NumberFormatter $fmt , string $pattern )

Configure le modèle utilisé par le formateur. Ne peut pas être utilisé avec un formateur basé sur les règles.

Liste de paramètres

fmt

L'objet NumberFormatter.

pattern

Le modèle, dans la syntaxe décrite dans la » documentation ICU DecimalFormat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_pattern(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Modèle : ".numfmt_get_pattern($fmt)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
numfmt_set_pattern($fmt"#0.# kg");
echo 
"Modèle : ".numfmt_get_pattern($fmt)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_pattern(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Modèle : ".$fmt->getPattern()."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo 
"Modèle : ".$fmt->getPattern()."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Modèle : #,##0.###
1.234.567,891
Modèle : #0.# kg
1234567,9 kg

Voir aussi



NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbolConfigure le symbole du formateur

Description

Style orienté objet

bool NumberFormatter::setSymbol ( int $attr , string $value )

Style procédural

bool numfmt_set_symbol ( NumberFormatter $fmt , int $attr , string $value )

Configure le symbole du formateur. Le formateur utilise le symbole pour caractériser des nombres, comme le pourcentage. Cette API n'est pas supportée pour les formateurs à base de règles.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

L'identifiant de symbole, parmi les constantes de symboles.

value

Le texte du symbole.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_symbol(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Séparateur décimal : ".numfmt_get_symbol($fmtNumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
numfmt_set_symbol($fmtNumberFormatter::GROUPING_SEPARATOR_SYMBOL"*");
echo 
"Séparateur décimal : ".numfmt_get_symbol($fmtNumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_symbol(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Séparateur décimal : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL"*");
echo 
"Séparateur décimal : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo 
$fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Séparateur décimal : .
1.234.567,891
Séparateur décimal : *
1*234*567,891

Voir aussi



NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attributeModifie un attribut texte

Description

Style orienté objet

bool NumberFormatter::setTextAttribute ( int $attr , string $value )

Style procédural

bool numfmt_set_text_attribute ( NumberFormatter $fmt , int $attr , string $value )

Modifie l'attribut du texte associé au formateur. Un exemple d'attribut de texte est le suffixe des nombres positifs. Si le formateur ne comprend pas l'attribut, une erreur U_UNSUPPORTED_ERROR est produite. Les formateurs à base de règles ne comprennent que NumberFormatter::DEFAULT_RULESET et NumberFormatter::PUBLIC_RULESETS.

Liste de paramètres

fmt

Un objet NumberFormatter.

attr

Un spécificateur d'attribut : une dex constantes d' attribut de texte.

value

La valeur de l'attribut du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_text_attribute(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
"Prefix: ".numfmt_get_text_attribute($fmtNumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmtNumberFormatter::NEGATIVE_PREFIX"MINUS");
echo 
"Prefix: ".numfmt_get_text_attribute($fmtNumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_text_attribute(), Style procédural

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
"Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
$fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX"MINUS");
echo 
"Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo 
$fmt->format(-1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Voir aussi


Sommaire



La classe Locale

Introduction

Une "Locale" est un identifiant utilisé pour représenter les comportements régionaux d'uneAPI. Les locales PHP sont organisées et identifiées de la même manière que les CLDR de ICU (et que de nombreux autres éditeurs de système Unix, tels que Mac, Java, etc.). Les locales sont identifiées par les libellés de langage de la RFC 4646 (qui utilise des tirets et pas des soulignés) en plus de la notation traditionnelle avec des soulignés. Suf contre-indication, les fonctions de cette classe sont capables d'utiliser les deux notations.

Exemple d'identifiants :

  • en-US (Anglais, USA)
  • zh-Hant-TW (Chinois, traditionnel, Taiwan)
  • fr-CA, fr-FR (French pour le Canada et la France, respectivement)

La classe Locale et les méthodes associées, sont utilisées pour interagir avec les identifiants locaux : pour vérifier qu'un identifiant est bien formé, valide, etc. Les extensions utilisées par CDR dans UAX #35 et hérité par ICU sont valides, et utilisés à chaque fois qu'elles peuvent l'être dans ICU.

Les locales ne peuvent pas être instanciées. Ce sont toutes des fonctions statiques.

La chaîne NULL ou vide permet d'obtenir la locale racine. La racine est l'équivalent de "en_US_POSIX" en CLDR. Les libellé de langage (et donc, les identifiants) sont insensibles à la casse. Il existe une fonction de canonalisation qui permet d'obtenir la spécification exacte.

Synopsis de la classe

Locale {
/* Méthodes */
static string acceptFromHttp ( string $header )
static string composeLocale ( array $subtags )
static bool filterMatches ( string $langtag , string $locale [, bool $canonicalize = false ] )
static array getAllVariants ( string $locale )
static string getDefault ( void )
static string getDisplayLanguage ( string $locale [, string $in_locale ] )
static string getDisplayName ( string $locale [, string $in_locale ] )
static string getDisplayRegion ( string $locale [, string $in_locale ] )
static string getDisplayScript ( string $locale [, string $in_locale ] )
static string getDisplayVariant ( string $locale [, string $in_locale ] )
static array getKeywords ( string $locale )
static string getPrimaryLanguage ( string $locale )
static string getRegion ( string $locale )
static string getScript ( string $locale )
static string lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )
static array parseLocale ( string $locale )
static bool setDefault ( string $locale )
}

Constantes pré-définies

Ces constantes définissent le comportement de Locale

Locale::DEFAULT_LOCALE (NULL)
Utilisée comme paramètre de locale avec les méthodes des différences classes affectées, telles que NumberFormatter. Cette constante fait qu'on utilise les valeurs par défaut.

Ces constantes décrivent le choix de la locale pour la méthode getLocale de différentes classes.

Locale::ACTUAL_LOCALE (chaîne de caractères)
La locale utilisée par les données entrante.
Locale::VALID_LOCALE (chaîne de caractères)
C'est la locale la plus spécifique supportée par ICU.

Ces constantes définissent comment les Locales sont analysées ou composées. Elles doivent être utilisées comme clés dans un tableau d'arguments passé à locale_compose() et sont retournées par locale_parse() comme clés d'un array associatif.

Locale::LANG_TAG (chaîne de caractères)
Sous-libellé de langue
Locale::EXTLANG_TAG (chaîne de caractères)
Sous-libellé de langue étendu
Locale::SCRIPT_TAG (chaîne de caractères)
Sous-libellé de script
Locale::REGION_TAG (chaîne de caractères)
Sous-libelleé de région
Locale::VARIANT_TAG (chaîne de caractères)
Sous-libellé de variante
Locale::GRANDFATHERED_LANG_TAG (chaîne de caractères)
Sous-libellé d'ascendant de lanagage
Locale::PRIVATE_TAG (chaîne de caractères)
Sous-libellé privé


Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_httpDevine la meilleure locale à partir de l'entête HTTP "Accept-Language"

Description

Style orienté objet

static string Locale::acceptFromHttp ( string $header )

Style procédural

string locale_accept_from_http ( string $header )

Essaie de trouver une locale qui peut satisfaire la liste de langue qui est demandée par l'entête HTTP "Accept-Language".

Liste de paramètres

header

La chaîne contenant l'entête "Accept-Language", au format de la RFC 2616.

Valeurs de retour

L'identifiant de locale correspondant.

Exemples

Exemple #1 Exemple avec locale_accept_from_http(), procédural

<?php
$locale 
locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo 
$locale;
?>

Exemple #2 Exemple avec locale_accept_from_http(), POO

<?php
$locale 
Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo 
$locale;
?>

L'exemple ci-dessus va afficher :

en_US

Voir aussi



Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_composeRetourne un identifiant de locale correct

Description

Style orienté objet

static string Locale::composeLocale ( array $subtags )

Style procédural

string locale_compose ( array $subtags )

Retourne un identifiant de locale correct, ordonné et délimité, avec les clés pour identifier les particularités régionales, et les valeurs associées à ces sous-locales.

Liste de paramètres

subtags

Un tableau contenant la liste des paires clé-valeurs, où les clés représentent les identifiants de sous-locales, et leur valeur associées.

Note:

Les sous-tags 'variant' et 'private' peuvent prendre jusqu'à 15 valeurs alors que 'extlang' ne peut prendre qu'un maximum de 3 valeurs. Les variantes sont autorisées avec un suffixe allant de 0 à 14. Par conséquent, les clés du tableau sont variant0, variant1, ...,variant14. Dans l'identifiant de locale retourné, les sous-tags sont ordonnés par suffixe, avec variant0 suivi de variant1 suivi de variant2, etc.

Les valeurs multiples de 'variant', 'private' et 'extlang' peuvent être spécifiées sous forme de tableau avec leur clé spécifique (e.g. 'variant') ou bien sous forme de clé multiples (e.g. 'variant0', 'variant1', etc.).

Valeurs de retour

The corresponding locale identifier.

Exemples

Exemple #1 Exemple avec locale_compose(), procédural

<?php
$arr 
= array(
    
'language'=>'en' ,
    
'script'  =>'Hans' ,
    
'region'  =>'CN',
    
'variant2'=>'rozaj' ,
    
'variant1'=>'nedis' ,
    
'private1'=>'prv1' ,
    
'private2'=>'prv2'
);
echo 
locale_compose$arr );
?>

Exemple #2 Exemple avec locale_compose(), POO

<?php
$arr 
= array(
    
'language'=>'en' ,
    
'script'  =>'Hans' ,
    
'region'  =>'CN',
    
'variant2'=>'rozaj' ,
    
'variant1'=>'nedis' ,
    
'private1'=>'prv1' ,
    
'private2'=>'prv2'
);
echo 
Locale::composeLocale$arr );
?>

L'exemple ci-dessus va afficher :

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

Voir aussi



Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matchesVérifie si le tag de langue correspond à une locale

Description

Style orienté objet

static bool Locale::filterMatches ( string $langtag , string $locale [, bool $canonicalize = false ] )

Style procédural

bool locale_filter_matches ( string $langtag , string $locale [, bool $canonicalize = false ] )

Vérifie si le filtre $langtag correspond à la locale $locale selon la RFC 4647, et son algorithme de filtrage simple.

Liste de paramètres

langtag

Le tag de langue à vérifier

locale

L'intervalle de langue cible

canonicalize

Si TRUE, les arguments seront convertis dans leur forme canonique avant la recherche.

Valeurs de retour

TRUE si $locale accepte $langtag, et FALSE otherwise.

Exemples

Exemple #1 Exemple avec locale_filter_Correspond(), procédural

<?php
echo (locale_filter_matches('de-DEVA','de-DE'false)) ? "Correspond" "Ne correspond pas"
echo 
'; ';
echo (
locale_filter_matches('de-DE_1996','de-DE'false)) ? "Correspond" "Ne correspond pas"
?>

Exemple #2 Exemple avec locale_filter_Correspond(), POO

<?php
echo (Locale::filterMatches('de-DEVA','de-DE'false)) ? "Correspond" "Ne correspond pas"
echo 
'; ';
echo (
Locale::filterMatches('de-DE-1996','de-DE'false)) ? "Correspond" "Ne correspond pas"
?>

L'exemple ci-dessus va afficher :

Ne correspond pas; Correspond

Voir aussi



Locale::getAllVariants

locale_get_all_variants

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variantsListe toutes les variantes d'une locale

Description

Style orienté objet

static array Locale::getAllVariants ( string $locale )

Style procédural

array locale_get_all_variants ( string $locale )

Liste toutes les variantes d'une locale

Liste de paramètres

locale

La locale dont il faut extraire les variantes

Valeurs de retour

Un tableau contenant la liste de toutes les variantes d'une locale, ou bien NULL si inexistant.

Exemples

Exemple #1 Exemple avec locale_get_all_variants(), procédural

<?php
$arr 
locale_get_all_variants('sl_IT_NEDIS_ROJAZ_1901');
var_export$arr );
?>

Exemple #2 Exemple avec locale_get_all_variants(), POO

<?php
$arr 
Locale::getAllVariants('sl_IT_NEDIS_ROJAZ_1901');
var_export$arr );
?>

L'exemple ci-dessus va afficher :

array (
    0 => 'NEDIS',
    1 => 'ROJAZ',
    2 => '1901', 
)

Voir aussi



Locale::getDefault

locale_get_default

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_defaultLit la valeur par défaut d'une locale pour la variable globale 'default_locale'

Description

Style orienté objet

static string Locale::getDefault ( void )

Style procédural

string locale_get_default ( void )

Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'. Au moment de l'initialisation de PHP, cette valeur est extraite de la directive 'intl.default_locale' dans php.ini, si cette valeur existe, et de la fonction ICU uloc_getDefault() autrement.

Liste de paramètres

Valeurs de retour

La locale par défaut pour l'exécution.

Exemples

Exemple #1 Exemple avec locale_get_default(), procédural

<?php
ini_set
('intl.default_locale''de-DE');
echo 
locale_get_default();
echo 
'; ';
locale_set_default('fr');
echo 
locale_get_default();
?>

Exemple #2 Exemple avec locale_get_default(), POO

<?php
ini_set
('intl.default_locale''de-DE');
echo 
Locale::getDefault();
echo 
'; ';
Locale::setDefault('fr');
echo 
Locale::getDefault();
?>

L'exemple ci-dessus va afficher :

de-DE; fr

Voir aussi



Locale::getDisplayLanguage

locale_get_display_language

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_languageRetourne un nom approprié pour l'affichage d'un nom de langue

Description

Style orienté objet

static string Locale::getDisplayLanguage ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_language ( string $locale [, string $in_locale ] )

Retourne un nom approprié pour l'affichage d'un nom de langue. Si la valeur NULL est passée en argument, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut retourner le nom de langue

in_locale

Un format optionnel pour l'affichage du nom de langue.

Valeurs de retour

Le nom de la langue à afficher pour la locale $locale, dans le format défini par $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_language(), procédural

<?php
echo locale_get_display_language('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
locale_get_display_language('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
locale_get_display_language('sl-Latn-IT-nedis''de');
?>

Exemple #2 Exemple avec locale_get_display_language(), POO

<?php
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
Locale::getDisplayLanguage('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
Locale::getDisplayLanguage('sl-Latn-IT-nedis''de');
?>

L'exemple ci-dessus va afficher :

Slovenian;
slov\xc3\xa8ne;
Slowenisch

Voir aussi



Locale::getDisplayName

locale_get_display_name

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_nameRetourne un nom d'affichage correct pour une locale

Description

Style orienté objet

static string Locale::getDisplayName ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_name ( string $locale [, string $in_locale ] )

Retourne un nom d'affichage correct pour une locale. Si NULL est passé, c'est la locale par défaut qui est utilisée.

Liste de paramètres

locale

La locale dont if faut retourner un nom d'affichage.

in_locale

Un format d'affichage optionnel

Valeurs de retour

Le nom d'affichage de la locale, au format donné par $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_name(), procédural

<?php
echo locale_get_display_name('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
locale_get_display_name('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
locale_get_display_name('sl-Latn-IT-nedis''de');
?>

Exemple #2 Exemple avec locale_get_display_name(), POO

<?php
echo Locale::getDisplayName('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
Locale::getDisplayName('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
Locale::getDisplayName('sl-Latn-IT-nedis''de');
?>

L'exemple ci-dessus va afficher :

Slovenian (Latin, Italy, Natisone dialect);
slov\xc3\xa8ne (latin, Italie, dialecte de Natisone);
Slowenisch (Lateinisch, Italien, NEDIS)
  

Voir aussi



Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_regionRetourne un nom pour la région de la locale

Description

Style orienté objet

static string Locale::getDisplayRegion ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_region ( string $locale [, string $in_locale ] )

Retourne un nom pour la région de la locale. Si NULL est passé, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut extraire le nom de la région.

in_locale

Un formation optionnel pour afficher le nom de la région.

Valeurs de retour

Le nom de la région de la locale $locale, au format $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_region(), procédural

<?php
echo locale_get_display_region('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
locale_get_display_region('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
locale_get_display_region('sl-Latn-IT-nedis''de');
?>

Exemple #2 Exemple avec locale_get_display_region(), POO

<?php
echo Locale::getDisplayRegion('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
Locale::getDisplayRegion('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
Locale::getDisplayRegion('sl-Latn-IT-nedis''de');
?>

L'exemple ci-dessus va afficher :

Italy;
Italie;
Italien

Voir aussi



Locale::getDisplayScript

locale_get_display_script

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_scriptRetourne le nom du script de la locale

Description

Style orienté objet

static string Locale::getDisplayScript ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_script ( string $locale [, string $in_locale ] )

Retourne le nom du script de la locale. Si NULL est passé, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut retourner le script.

in_locale

Un format optionnel pour afficher le nom du script.

Valeurs de retour

Affiche le nom du script de la locale $locale au format indiqué par $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_script(), procédural

<?php
echo locale_get_display_script('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
locale_get_display_script('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
locale_get_display_script('sl-Latn-IT-nedis''de');
?>

Exemple #2 Exemple avec locale_get_display_script(), POO

<?php
echo Locale::getDisplayScript('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
Locale::getDisplayScript('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
Locale::getDisplayScript('sl-Latn-IT-nedis''de');
?>

L'exemple ci-dessus va afficher :

Latin;
latin;
Lateinisch

Voir aussi



Locale::getDisplayVariant

locale_get_display_variant

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variantRetourne un nom pour la variante de la locale

Description

Style orienté objet

static string Locale::getDisplayVariant ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_variant ( string $locale [, string $in_locale ] )

Retourne un nom pour la variante de la locale. Si NULL est passé, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut extraire le nom de la région.

in_locale

Un formation optionnel pour afficher le nom de la région.

Valeurs de retour

Le nom de la variante de la locale $locale, au format $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_variant(), procédural

<?php
echo locale_get_display_variant('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
locale_get_display_variant('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
locale_get_display_variant('sl-Latn-IT-nedis''de');
?>

Exemple #2 Exemple avec locale_get_display_variant(), POO

<?php
echo Locale::getDisplayVariant('sl-Latn-IT-nedis''en');
echo 
";\n";
echo 
Locale::getDisplayVariant('sl-Latn-IT-nedis''fr');
echo 
";\n";
echo 
Locale::getDisplayVariant('sl-Latn-IT-nedis''de');
?>

L'exemple ci-dessus va afficher :

Natisone dialect;
dialecte de Natisone;
NEDIS
  

Voir aussi



Locale::getKeywords

locale_get_keywords

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywordsLit les mots-clé de la locale

Description

Style orienté objet

static array Locale::getKeywords ( string $locale )

Style procédural

array locale_get_keywords ( string $locale )

Lit les mots-clé de la locale.

Liste de paramètres

locale

La locale dont il faut extraire les mots-clé.

Valeurs de retour

Un tableau associatif contenant les paires clé-valeur pour cette locale.

Exemples

Exemple #1 Exemple avec locale_get_keywords(), procédural

<?php
$keywords_arr 
locale_get_keywords'de_DE@currency=EUR;collation=PHONEBOOK' );
if (
$keywords_arr) {
    foreach (
$keywords_arr as $key => $value) {
        echo 
"$key = $value\n"
    }
}
?>

Exemple #2 Exemple avec locale_get_keywords(), POO

<?php
$keywords_arr 
Locale::getKeywords'de_DE@currency=EUR;collation=PHONEBOOK' );
if (
$keywords_arr) {
    foreach( 
$keywords_arr as $key => $value){
        echo 
"$key = $value\n"
    }
}
?>

L'exemple ci-dessus va afficher :

collation = PHONEBOOK
currency = EUR

Voir aussi



Locale::getPrimaryLanguage

locale_get_primary_language

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_languageLit la langue principale de la locale

Description

Style orienté objet

static string Locale::getPrimaryLanguage ( string $locale )

Style procédural

string locale_get_primary_language ( string $locale )

Lit la langue principale de la locale.

Liste de paramètres

locale

La locale dont il faut extraire la langue principale.

Valeurs de retour

Le code de langue, associé à la langue, ou bien NULL en cas d'erreur.

Exemples

Exemple #1 Exemple avec locale_get_primary_language(), procédural

<?php
echo locale_get_primary_language('zh-Hant');
?>

Exemple #2 Exemple avec locale_get_primary_language(), POO

<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>

L'exemple ci-dessus va afficher :

zh

Voir aussi



Locale::getRegion

locale_get_region

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getRegion -- locale_get_regionRetourne un code pour la région de la locale

Description

Style orienté objet

static string Locale::getRegion ( string $locale )

Style procédural

string locale_get_region ( string $locale )

Retourne un code pour la région de la locale.

Liste de paramètres

locale

La locale dont il faut extraire le code de région.

Valeurs de retour

Le code de région pour la locale, ou bien NULL en cas d'erreur.

Exemples

Exemple #1 Exemple avec locale_get_region(), procédural

<?php
echo locale_get_region('de-CH-1901');
?>

Exemple #2 Exemple avec locale_get_region(), POO

<?php
echo Locale::getRegion('de-CH-1901');
?>

L'exemple ci-dessus va afficher :

CH

Voir aussi



Locale::getScript

locale_get_script

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getScript -- locale_get_scriptRetourne un code pour le script de la locale

Description

Style orienté objet

static string Locale::getScript ( string $locale )

Style procédural

string locale_get_script ( string $locale )

Retourne un code pour le script de la locale

Liste de paramètres

locale

La locale dont il faut extraire le code du script.

Valeurs de retour

Le code de script pour la locale ou NULL si absent.

Exemples

Exemple #1 Exemple avec locale_get_script(), procédural

<?php
echo locale_get_script('sr-Cyrl');
?>

Exemple #2 Exemple avec locale_get_script(), POO

<?php
echo Locale::getScript('sr-Cyrl');
?>

L'exemple ci-dessus va afficher :

Cyrl

Voir aussi



Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookupRecherche dans la liste la meilleure langue

Description

Style orienté objet

static string Locale::lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )

Style procédural

string locale_lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )

Recherche dans la liste langtag la mailleure langue, pour la locale spécifiée par locale, en fonction de l'algorithme de la RFC 4647.

Liste de paramètres

langtag

Un tableau contenant une liste de langues à comparer à la locale locale. Un maximum de 100 éléments est autorisé.

locale

La locale à utiliser pour effectuer la recherche.

canonicalize

Si TRUE les arguments seront convertis en leur forme canonique avant leur recherche.

default

La locale à utiliser si aucune solution n'est trouvée.

Valeurs de retour

La langue la plus proche qui ait été trouvée dans la liste, ou bien la valeur par défaut.

Exemples

Exemple #1 Exemple avec locale_lookup(), procédural

<?php
$arr 
= array(
    
'de-DEVA',
    
'de-DE-1996',
    
'de',
    
'de-De'
);
echo 
locale_lookup($arr'de-DE-1996-x-prv1-prv2''en_US');
?>

Exemple #2 Exemple avec Locale::lookup(), POO

<?php
$arr 
= array(
    
'de-DEVA',
    
'de-DE-1996',
    
'de',
    
'de-De'
);
echo 
Locale::lookup($arr'de-DE-1996-x-prv1-prv2''en_US');
?>

L'exemple ci-dessus va afficher :

de_de_1996

Voir aussi



Locale::parseLocale

locale_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parseRetourne les sous-éléments de la locale

Description

Style orienté objet

static array Locale::parseLocale ( string $locale )

Style procédural

array locale_parse ( string $locale )

Retourne un tableau de paires clé-valeur pour les éléments du sous-tag de la locale.

Liste de paramètres

locale

La locale dont il faut extraire le tableau. Notez que 'variant' et 'private' peuvent prendre jusqu'à 15 valeurs au maximum, alors que 'extlang' peut prendre jusqu'à 3 valeurs.

Valeurs de retour

Retourne un tableau contenant la liste des paires clé-valeur, où les clés sont les noms des éléments, et les valeurs sont leur valeur associée. Le tableau est ordonné de la même manière que les éléments dans la locale, e.g. si les variantes sont '-varX-varY-varZ' alors le tableau retournée contiendra variant0=>varX , variant1=>varY , variant2=>varZ, etc.

Exemples

Exemple #1 Exemple avec locale_parse(), procédural

<?php
$arr 
locale_parse('sl-Latn-IT-nedis');
if (
$arr) {
    foreach (
$arr as $key => $value) {
        echo 
"$key : $value , ";
    }
}
?>

Exemple #2 Exemple avec locale_parse(), POO

<?php
$arr 
Locale::parseLocale('sl-Latn-IT-nedis');
if (
$arr) {
    foreach (
$arr as $key => $value) {
        echo 
"$key : $value , ";
    }
}
?>

L'exemple ci-dessus va afficher :

language : sl , script : Latn , region : IT , variant0 : NEDIS ,

Voir aussi



Locale::setDefault

locale_set_default

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_defaultConfigure la locale par défaut

Description

Style orienté objet

static bool Locale::setDefault ( string $locale )

Style procédural

bool locale_set_default ( string $locale )

Configure la locale par défaut à $locale. Cela change la valeur de la globale INTL 'default_locale'. Les extensions UAX #35 sont aussi acceptées.

Liste de paramètres

locale

Une langue au format BCP 47.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec locale_set_default(), procédural

<?php
locale_set_default
('de-DE');
echo 
locale_get_default();
?>

Exemple #2 Exemple avec locale_set_default(), POO

<?php
Locale
::setDefault('de-DE');
echo 
Locale::getDefault();
?>

L'exemple ci-dessus va afficher :

de-DE

Voir aussi

  • locale_get_default() - Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'


Sommaire



La classe Normalizer

Introduction

La normalisation est un processus qui implique la transformation de caractères et de séquences de caractères dans une représentation formelle. Ce processus est important quand des textes doivent être comparés à des fins de tri et de recherche, mais il est aussi important pour le stockage des données, afin que les documents soient cohérents.

Le consortium Unicode Consortium a défini un nombre de formes de normalisations pour refléter les différents besoins des applications :

  • Normalization Form D (NFD) : décomposition canonique
  • Normalization Form C (NFC) : décomposition canonique, suivie d'une composition canonique
  • Normalization Form KD (NFKD) : décomposition compatible
  • Normalization Form KC (NFKC) : décomposition compatible suivi d'une composition canonique
Les différentes formes sont définies en terme de transformations de texte, transformations qui sont exprimées avec des algorithmes et des fichiers de données.

Synopsis de la classe

Normalizer {
/* Méthodes */
static bool isNormalized ( string $input [, string $form = Normalizer::FORM_C ] )
static string normalize ( string $input [, string $form = Normalizer::FORM_C ] )
}

Constantes pré-définies

Les constantes suivantes définissent les formes de normalisation à appliquer par le normalizer :

Normalizer::FORM_C (string)
Normalization Form C (NFC) : décomposition canonique suivie d'une composition canonique
Normalizer::FORM_D (string)
Normalization Form D (NFD) : décomposition canonique
Normalizer::FORM_KC (string)
Normalization Form KC (NFKC) : décomposition compatible, suivie d'une composition canonique
Normalizer::FORM_KD (string)
Normalization Form KD (NFKD) : décomposition compatible
Normalizer::NONE (string)
Pas de décomposition/composition
Normalizer::OPTION_DEFAULT (string)
Options par défaut de normalisation


Normalizer::isNormalized

normalizer_is_normalized

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalizedVérifie si une chaîne est normalisée

Description

Object oriented style

static bool Normalizer::isNormalized ( string $input [, string $form = Normalizer::FORM_C ] )

Procedural style

bool normalizer_is_normalized ( string $input [, string $form = Normalizer::FORM_C ] )

Vérifie si une chaîne est normalisée.

Liste de paramètres

input

La chaîne à normaliser.

form

Une des formes de normalisation.

Valeurs de retour

TRUE si la chaîne est normalisée, et FALSE sinon ou s'il y a une erreur.

Exemples

Exemple #1 Exemple avec normalizer_is_normalized(), en style procédural

<?php
$char_A_ring 
"\xC3\x85"// 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)
 
$char_orig 'A' $char_combining_ring_above;
$char_norm normalizer_normalize'A' $char_combining_ring_aboveNormalizer::FORM_C );
 
echo ( 
normalizer_is_normalized($char_origNormalizer::FORM_C) ) ? "normalized" "not normalized";
echo 
'; ';
echo ( 
normalizer_is_normalized($char_normNormalizer::FORM_C) ) ? "normalized" "not normalized";
?>

Exemple #2 Exemple avec normalizer_is_normalized(), en style orienté objet

<?php
$char_A_ring 
"\xC3\x85"// 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)
 
$char_orig 'A' $char_combining_ring_above;
$char_norm Normalizer::normalize'A' $char_combining_ring_aboveNormalizer::FORM_C );
 
echo ( 
Normalizer::isNormalized($char_origNormalizer::FORM_C) ) ? "normalized" "not normalized";
echo 
'; ';
echo ( 
Normalizer::isNormalized($char_normNormalizer::FORM_C) ) ? "normalized" "not normalized";
?>

L'exemple ci-dessus va afficher :

not normalized; normalized

Voir aussi



Normalizer::normalize

normalizer_normalize

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize Normalise une chaîne en entrée

Description

Style orienté objet

static string Normalizer::normalize ( string $input [, string $form = Normalizer::FORM_C ] )

Style procédural

string normalizer_normalize ( string $input [, string $form = Normalizer::FORM_C ] )

Normalise la chaîne en entrée et retourne une chaîne normalisée.

Liste de paramètres

input

La chaîne à normaliser

form

Une des formes de normalisation.

Valeurs de retour

La chaîne normalisée, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec normalizer_normalize(), procédural

<?php
$char_A_ring 
"\xC3\x85"// 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)
 
$char_1 normalizer_normalize$char_A_ringNormalizer::FORM_C );
$char_2 normalizer_normalize'A' $char_combining_ring_aboveNormalizer::FORM_C );
 
echo 
urlencode($char_1);
echo 
' ';
echo 
urlencode($char_2);
?>

Exemple #2 Exemple avec normalizer_normalize(), POO

<?php
$char_A_ring 
"\xC3\x85"// 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)
 
$char_1 Normalizer::normalize$char_A_ringNormalizer::FORM_C );
$char_2 Normalizer::normalize'A' $char_combining_ring_aboveNormalizer::FORM_C );
 
echo 
urlencode($char_1);
echo 
' ';
echo 
urlencode($char_2);
?>

L'exemple ci-dessus va afficher :

%C3%85 %C3%85

Voir aussi


Sommaire



La classe MessageFormatter

Introduction

MessageFormatter est une classe concrète qui permet de produire des messages concaténés, et indépendants de la langue. La méthode fournit dans cette classe sont utilisées pour construire des messages qui sont destinés aux utilisateurs finaux.

La classe MessageFormatter assemble les messages à partir de différents fragments (textes, nombres et dates), fournis par le programme. Grace à la classe MessageFormatter, le programme n'a pas besoin de connaître l'ordre des fragments. La classe utilise des spécifications de formatage pour assembler les fragments en un seul message. Par exemple, MessageFormatter vous permet d'afficher la phrase "Fini d'imprimer x fichier sur y..." d'une manière qui reste souple pour la traduction.

Avant, un message était créé sous forme de phrase, et géré comme une chaîne. Cette procédure créait des problèmes pour les traductions, car la structure de la phrase, l'ordre des mots, le format des nombres, etc. était très différents d'une langue à l'autre. L'approche de création des messages, indépendante de la langue, permet de séparer le message et les variables. Avec ces variables, MessageFormatter peut concaténer les différentes parties du message, les formater aux conventions correctes, et fournir un message bien formé.

MessageFormatter prend une série d'objet, formate les textes, et les insert dans les chaînes formatées dans les emplacements corrects. Un grand choix de formats peut être utilisé en conjonction avec MessageFormatter pour gérer le pluriel, les nombres, etc. Typiquement, le message est fourni par une ressource, et les arguments sont préparés dynamiquement.

Synopsis de la classe

MessageFormatter {
/* Méthodes */
__construct ( string $locale , string $pattern )
MessageFormatter create ( string $locale , string $pattern )
static string formatMessage ( string $locale , string $pattern , array $args )
string format ( array $args )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ( void )
string getPattern ( void )
static array parseMessage ( string $locale , string $pattern , string $source )
array parse ( string $value )
bool setPattern ( string $pattern )
}

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_createConstruit un nouveau formateur de messages

Description

Style orienté objet (méthode)

MessageFormatter MessageFormatter::create ( string $locale , string $pattern )

Style orienté objet (constructeur)

MessageFormatter::__construct() ( string $locale , string $pattern )

Style procédural

MessageFormatter msgfmt_create ( string $locale , string $pattern )

Construit un nouveau formateur de messages.

Liste de paramètres

locale

La locale à utiliser pour le formatage des arguments

pattern

La chaîne dans laquelle il faut insérer les données. Le modèle utilise une syntaxe qui accepte les apostrophes. Elle est passée à » umsg_autoQuoteApostrophe avant d'être interprétée.

Valeurs de retour

Un objet de formateur de message MessageFormatter

Exemples

Exemple #1 Exemple avec msgfmt_create(), style procédural

<?php
$fmt 
msgfmt_create("en_US""{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo 
msgfmt_format($fmt, array(45601234560/123));
$fmt msgfmt_create("de""{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo 
msgfmt_format($fmt, array(45601234560/123));
?>

Exemple #2 Exemple avec msgfmt_create(), style procédural

<?php
$fmt 
= new MessageFormatter("en_US""{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo 
$fmt->format(array(45601234560/123));
$fmt = new MessageFormatter("de""{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo 
$fmt->format(array(45601234560/123));
?>

L'exemple ci-dessus va afficher :

4,560 singes sur 123 arbres font 37.073 singes par arbre
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

Voir aussi



MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_messageFormate rapidement un message

Description

Style orienté objet

static string MessageFormatter::formatMessage ( string $locale , string $pattern , array $args )

Style procédural

string msgfmt_format_message ( string $locale , string $pattern , array $args )

Fonction de formatage rapide, qui formate une chaîne sans avoir à créer explicitement un objet de formatage. Utilisez cette fonction lorsque l'opération est faite une seule fois et n'a pas besoin de paramètre particuliers ou d'états internes.

Liste de paramètres

locale

La locale à utiliser pour le formatage

pattern

La chaîne de caractères dans laquelle il faut insérer les données. Le modèle utilise une syntaxe qui accepte les apostrophes; Elle est passée à » umsg_autoQuoteApostrophe avant d'être interprétée.

args

Le tableau de valeurs à insérer dans la chaîne de format.

Valeurs de retour

La chaîne formatée, ou bien FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msgfmt_format_message(), style procédural

<?php
echo msgfmt_format_message("en_US""{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre", array(45601234560/123));
echo 
msgfmt_format_message("de""{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum", array(45601234560/123));
?>

Exemple #2 Exemple avec msgfmt_format_message(), style procédural

<?php
echo msgfmt_format_message("en_US""{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre", array(45601234560/123));
echo 
msgfmt_format_message("de""{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum", array(45601234560/123));
?>

L'exemple ci-dessus va afficher :

4,560 singes sur 123 arbres font 37.073 singes par arbre
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

Voir aussi



MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_formatFormate un message

Description

Style orienté objet

string MessageFormatter::format ( array $args )

Style procédural

string msgfmt_format ( MessageFormatter $fmt , array $args )

Formate un message en substituant les données dans la chaînes de modèle, en fonction des conventions locales.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

args

Les arguments à insérer dans les chaînes

Valeurs de retour

La chaîne formatée, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msgfmt_format(), style procédural

<?php
$fmt 
msgfmt_create("en_US""{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo 
msgfmt_format($fmt, array(45601234560/123));
$fmt msgfmt_create("de""{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo 
msgfmt_format($fmt, array(45601234560/123));
?>

Exemple #2 Exemple avec msgfmt_format(), style POO

<?php
$fmt 
= new MessageFormatter("en_US""{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo 
$fmt->format(array(45601234560/123));
$fmt = new MessageFormatter("de""{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo 
$fmt->format(array(45601234560/123));
?>

L'exemple ci-dessus va afficher :

4,560 singes sur 123 arbres font 37.073 singes par arbre
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

Voir aussi



MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_codeLit le dernier code d'erreur de la dernière opération

Description

Style orienté objet

int MessageFormatter::getErrorCode ( void )

Style procédural

int msgfmt_get_error_code ( MessageFormatter $fmt )

Lit le dernier code d'erreur de la dernière opération.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

Valeurs de retour

Le code d'erreur, une des valeurs UErrorCode. La valeur initiale est U_ZERO_ERROR.

Exemples

Exemple #1 Exemple avec msgfmt_get_error_code(), style procédural

<?php
$fmt 
msgfmt_create("en_US""{0, number} singes sur {1, number} arbres");
$str msgfmt_format($fmt, array());
if(!
$str) {
    echo 
"Erreur : ".msgfmt_get_error_message($fmt) . " (" msgfmt_get_error_code($fmt) . ")\n";
}
?>

Exemple #2 Exemple avec msgfmt_get_error_code(), style POO

<?php
$fmt 
= new MessageFormatter("en_US""{0, number} singes sur {1, number} arbres");
$str $fmt->format(array());
if(!
$str) {
    echo 
"Erreur : ".$fmt->getErrorMessage() . " (" $fmt->getErrorCode() . ")\n";
}
?>

L'exemple ci-dessus va afficher :

Erreur : msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Voir aussi



MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_messageLit le message d'erreur de la dernière opération

Description

Style orienté objet

string MessageFormatter::getErrorMessage ( void )

Style procédural

string msgfmt_get_error_message ( MessageFormatter $fmt )

Lit le message d'erreur de la dernière opération du formateur de messages.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

Valeurs de retour

La descrpitiond e la dernière erreur.

Exemples

Exemple #1 Exemple avec msgfmt_get_error_message(), style procédural

<?php
$fmt 
msgfmt_create("en_US""{0, number} singes sur {1, number} arbres");
$str msgfmt_format($fmt, array());
if(!
$str) {
    echo 
"Erreur : ".msgfmt_get_error_message($fmt) . " (" msgfmt_get_error_code($fmt) . ")\n";
}
?>

Exemple #2 Exemple avec msgfmt_get_error_message(), style POO

<?php
$fmt 
= new MessageFormatter("en_US""{0, number} singes sur {1, number} arbres");
$str $fmt->format(array());
if(!
$str) {
    echo 
"Erreur : ".$fmt->getErrorMessage() . " (" $fmt->getErrorCode() . ")\n";
}
?>

L'exemple ci-dessus va afficher :

Erreur : msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Voir aussi



MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_localeLit la locale avec la quelle le formateur a été créé

Description

Style orienté objet

string MessageFormatter::getLocale ( void )

Style procédural

string msgfmt_get_locale ( NumberFormatter $formatter )

Lit la locale avec la quelle le formateur a été créé.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

Valeurs de retour

Le nom de la locale

Exemples

Exemple #1 Exemple avec msgfmt_get_locale(), style procédural

<?php
$fmt 
msgfmt_create('en_US'"Nombre {0,number}");
echo 
msgfmt_get_locale($fmt);
?>

Exemple #2 Exemple avec msgfmt_get_locale(), style POO

<?php
$fmt 
= new MessageFormatter('en_US'"Nombre {0,number}");
echo 
$fmt->getLocale();
?>

L'exemple ci-dessus va afficher :

en_US

Voir aussi



MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_patternLit le modèle utilisé par le formateur de messages

Description

Style orienté objet

string MessageFormatter::getPattern ( void )

Style procédural

string msgfmt_get_pattern ( MessageFormatter $fmt )

Lit le modèle utilisé par le formateur de messages.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

Valeurs de retour

La chaîne de caractères de modèle du formateur de messages

Exemples

Exemple #1 Exemple avec msgfmt_get_pattern(), style procédural

<?php
$fmt 
msgfmt_create"en_US""{0, number} singes sur {1, number} arbres" );
echo 
"Modèle par défaut : '" msgfmt_get_pattern$fmt ) . "'\n";
echo 
"Résultat de formatage :  " msgfmt_format$fmt, array(123456) ) . "\n";

msgfmt_set_pattern$fmt"{0, number} arbres hosting {1, number} singes" );
echo 
"Nouveau modèle :  '" msgfmt_get_pattern$fmt ) . "'\n";
echo 
"Résultat de formatage : " msgfmt_format$fmt, array(123456) ) . "\n";
?>

Exemple #2 Exemple avec msgfmt_get_pattern(), style POO

<?php
$fmt 
= new MessageFormatter"en_US""{0, number} singes sur {1, number} arbres" );
echo 
"Modèle par défaut : '" $fmt->getPattern() . "'\n";
echo 
"Résultat de formatage :  " $fmt->format(array(123456)) . "\n";

$fmt->setPattern("{0, number} arbres hosting {1, number} singes" );
echo 
"Nouveau modèle :  '" $fmt->getPattern() . "'\n";
echo 
"Résultat de formatage : " $fmt->format(array(123456)) . "\n";
?>

L'exemple ci-dessus va afficher :

Modèle par défaut : '{0,number} singes sur {1,number} arbres'
Résultat de formatage :  123 singes sur 456 arbres
Nouveau modèle :  '{0,number} arbres hosting {1,number} singes'
Résultat de formatage : 123 arbres hosting 456 singes

Voir aussi



MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_messageAnalyse rapidement une chaîne

Description

Style orienté objet

static array MessageFormatter::parseMessage ( string $locale , string $pattern , string $source )

Style procédural

array msgfmt_parse_message ( string $locale , string $pattern , string $value )

Analyse la chaîne d'entrée sans créer explicitement d'objet formateur. Utilisez cette fonction lorsque l'opération de formatage est fait une seule fois, et n'a pas besoin de paramètres ou d'état.

Liste de paramètres

locale

La locale à utiliser pour analyser les parties de la chaîne

pattern

Le motif à utiliser pour analyser value.

source

La string à analyser, conformément à pattern.

Valeurs de retour

Un tableau contenant les éléments extraits, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec msgfmt_parse_message(), style procédural

<?php
$fmt 
msgfmt_parse_message('en_US'"{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre",
                            
"4,560 singes sur 123 arbres font 37.073 signes par arbre");
var_export($fmt);

$fmt msgfmt_parse_message('de'"{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum"
                            
"4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($fmt);
?>

Exemple #2 Exemple avec msgfmt_parse_message(), style POO

<?php
$fmt 
MessageFormatter::parseMessage('en_US'"{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre",
                            
"4,560 singes sur 123 arbres font 37.073 signes par arbre");
var_export($fmt);

$fmt MessageFormatter::parseMessage('de'"{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum"
                            
"4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($fmt);
?>

L'exemple ci-dessus va afficher :

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Voir aussi



MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parseAnalyse une chaîne en fonction du modèle

Description

Style orienté objet

array MessageFormatter::parse ( string $value )

Style procédural

array msgfmt_parse ( MessageFormatter $fmt , string $value )

Analyse la chaîne value et retourne les éléments extraits sous forme de tableau.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

value

La chaîne de caractères à analyser.

Valeurs de retour

Un tableau contenant les éléments extraits, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec msgfmt_parse(), style procédural

<?php
$fmt 
msgfmt_create('en_US'"{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre");
$res msgfmt_parse($fmt"4,560 singes sur 123 arbres font 37.073 singes par arbre");
var_export($res);

$fmt msgfmt_create('de'"{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
$res msgfmt_parse($fmt"4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($res);
?>

Exemple #2 Exemple avec msgfmt_parse(), style POO

<?php
$fmt 
= new MessageFormatter('en_US'"{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre");
$res $fmt->parse("4,560 singes sur 123 arbres font 37.073 singes par arbre");
var_export($res);

$fmt = new MessageFormatter('de'"{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
$res $fmt->parse("4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($res);
?>

L'exemple ci-dessus va afficher :

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Voir aussi



MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_patternConfigure le modèle utilisé par le formateur

Description

Style orienté objet

bool MessageFormatter::setPattern ( string $pattern )

Style procédural

bool msgfmt_set_pattern ( MessageFormatter $fmt , string $pattern )

Configure le modèle utilisé par le formateur.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

pattern

La chaîne de modèle utilisé par le formateur de messages. Le modèle utilise la syntaxe qui gère correctement les apostrophes : il est passé à » umsg_autoQuoteApostrophe avant d'être interprété.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msgfmt_set_pattern(), style procédural

<?php
$fmt 
msgfmt_create"en_US""{0, number} singes sur {1, number} arbres" );
echo 
"Modèle par défaut : '" msgfmt_get_pattern$fmt ) . "'\n";
echo 
"Résultat formaté : " msgfmt_format$fmt, array(123456) ) . "\n";

msgfmt_set_pattern$fmt"{0, number} arbres accueillant {1, number} singes" );
echo 
"Nouveau modèle :'" msgfmt_get_pattern$fmt ) . "'\n";
echo 
"Nombre formaté : " msgfmt_format$fmt, array(123456) ) . "\n";
?>

Exemple #2 Exemple avec msgfmt_set_pattern(), style POO

<?php
$fmt 
= new MessageFormatter"en_US""{0, number} singes sur {1, number} arbres" );
echo 
"Modèle par défaut : '" $fmt->getPattern() . "'\n";
echo 
"Résultat formaté : " $fmt->format(array(123456)) . "\n";

$fmt->setPattern("{0, number} arbres accueillant {1, number} singes" );
echo 
"Nouveau modèle :'" $fmt->getPattern() . "'\n";
echo 
"Nombre formaté : " $fmt->format(array(123456)) . "\n";
?>

L'exemple ci-dessus va afficher :

Modèle par défaut : '{0,number} singes sur {1,number} arbres'
Résultat formaté : 123 singes sur 456 arbres
Nouveau modèle :'{0,number} arbres accueillant {1,number} singes'
Nombre formaté : 123 arbres accueillant 456 singes

Voir aussi


Sommaire



La classe IntlDateFormatter

Introduction

La classe DateFormatter est une classe concrète, qui active l'analyse et le formatage de dates, basé sur des chaînes modèles, ou des règles.

Cette classe représente les fonctionnalités de formatage des dates ICU. Elle permet aux utilisateurs d'afficher des dates dans un format localisé, ou d'analyser des chaînes PHP pour extraire des dates.

Class synopsis

IntlDateFormatter {
/* Méthodes */
__construct ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )
static IntlDateFormatter create ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )
string format ( mixed $value )
int getCalendar ( void )
int getDateType ( void )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ([ int $which ] )
string getPattern ( void )
int getTimeType ( void )
string getTimeZoneId ( void )
bool isLenient ( void )
array localtime ( string $value [, int &$position ] )
int parse ( string $value [, int &$position ] )
bool setCalendar ( int $which )
bool setLenient ( bool $lenient )
bool setPattern ( string $pattern )
bool setTimeZoneId ( string $zone )
}

Constantes pré-définies

Ces constantes sont utilisées pour spécifier différents formats dans le constructeur des classes DateType et TimeType.

IntlDateFormatter::NONE (entier)
N'inclut pas cet élément
IntlDateFormatter::FULL (entier)
Style complètement spécifié (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG (entier)
Style long(January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM (entier)
Style intermédiaire (Jan 12, 1952)
IntlDateFormatter::SHORT (entier)
Style abrégé, uniquement les informations essentielles (12/13/52 ou 3:30pm)

Les constantes entières suivantes sont utilisées pour spécifier des calendriers. Ces calendriers sont basés directement sur le calendrier grégorien. Les calendriers non-grégoriens doivent être spécifiés dans une locale. Les exemples peuvent inclure locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL (entier)
Calendrier non-grégorien
IntlDateFormatter::GREGORIAN (entier)
Calendrier grégorien


IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__constructCrée un formateur de date

Description

Style orienté objet

static IntlDateFormatter IntlDateFormatter::create ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )

Style orienté objet (constructeur)

IntlDateFormatter::__construct() ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )

Style procédural

IntlDateFormatter datefmt_create ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )

Crée un formateur de date

Liste de paramètres

locale

La locale à utiliser pour formater et analyser.

datetype

Le type de date à utiliser (none, short, medium, long, full). C'est l'une des constantes IntlDateFormatter.

timetype

Le type d'heure à utiliser (none, short, medium, long, full). C'est l'une des IntlDateFormatter constants.

timezone

L'identifiant du fuseau horaire, et celui du système par défaut.

calendar

Le calendrier à utiliser pour formater ou analyser. Par défaut, c'est l'une des constantes IntlDateFormatter.

pattern

Le modèle à utiliser pour le formatage ou l'analyse. Les modèles disponibles sont documentés sur » http://userguide.icu-project.org/formatparse/datetime.

Valeurs de retour

Exemples

Exemple #1 Exemple avec datefmt_create(), procédural

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles'IntlDateFormatter::GREGORIAN  );
echo 
"Le premier format affiché est ".datefmt_format$fmt 0);
$fmt datefmt_create"de-DE" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le deuxième format affiché est  ".datefmt_format$fmt 0);

$fmt datefmt_create"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
     
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le premier format est affiché avec le modèle : ".datefmt_format$fmt 0);
$fmt datefmt_create"de-DE" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
     
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le deuxième format est affiché avec le modèle : ".datefmt_format$fmt 0);
?>

Exemple #2 Exemple avec datefmt_create(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le premier format affiché est ".$fmt->format(0);
$fmt = new IntlDateFormatter"de-DE" ,IntlDateFormatter::FULLIntlDateFormatter::FULL
    
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le deuxième format affiché est ".$fmt->format(0);

$fmt = new IntlDateFormatter"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::FULL
     
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le premier format est affiché avec le modèle : ".$fmt->format(0);
$fmt = new IntlDateFormatter"de-DE" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
      
'America/Los_Angeles',IntlDateFormatter::GREGORIAN "MM/dd/yyyy");
echo 
"Le deuxième format est affiché avec le modèle : ".$fmt->format(0);
?>

L'exemple ci-dessus va afficher :

Le premier format affiché est Wednesday, December 31, 1969 4:00:00 PM PT
Le deuxième format affiché est Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
Le premier format est affiché avec le modèle : 12/31/1969
Le deuxième format est affiché avec le modèle : 12/31/1969
         

Voir aussi



IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_formatFormate la date et l'heure sous forme de chaîne

Description

Style orienté objet

string IntlDateFormatter::format ( mixed $value )

Style procédural

string datefmt_format ( IntlDateFormatter $fmt , mixed $value )

Formate l'heure sous forme de chaîne.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

value

La valeur à formater. Ce peut être un objet DateTime, un entier représentant un timestamp Unix (nombre de secondes depuis l'époque UTC), ou un tableau au format de sortie de la fonction localtime().

Valeurs de retour

La chaîne formatée, ou, si une erreur survient, FALSE.

Historique

Version Description
5.3.4 Le support des objets DateTime dans le paramètre value a été ajouté.

Exemples

Exemple #1 Exemple avec datefmt_format(), procédural

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le premier format affiché est ".datefmt_format$fmt 0);
$fmt datefmt_create"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le deuxième format affiché est  ".datefmt_format$fmt 0);

$fmt datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le premier format est affiché avec le modèle : ".datefmt_format$fmt 0);
$fmt datefmt_create"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le deuxième format est affiché avec le modèle : ".datefmt_format$fmt 0);
?>

Exemple #2 Exemple avec datefmt_format(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le premier format affiché est ".$fmt->format(0);
$fmt = new IntlDateFormatter"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le deuxième format affiché est ".$fmt->format(0);

$fmt = new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le premier format est affiché avec le modèle : ".$fmt->format(0);
$fmt = new IntlDateFormatter"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN "MM/dd/yyyy");
echo 
"Le deuxième format est affiché avec le modèle : ".$fmt->format(0);
?>

L'exemple ci-dessus va afficher :

Le premier format affiché est Wednesday, December 31, 1969 4:00:00 PM PT
Le deuxième format affiché est Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
Le premier format est affiché avec le modèle : 12/31/1969
Le deuxième format est affiché avec le modèle : 12/31/1969
         

Voir aussi



IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendarLit le calendrier utilisé par l'objet IntlDateFormatter

Description

Style orienté objet

int IntlDateFormatter::getCalendar ( void )

Style procédural

int datefmt_get_calendar ( IntlDateFormatter $fmt )

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

Le calendrier utilisé par le formateur.

Exemples

Exemple #1 Exemple avec datefmt_get_calendar(), procédural

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le calendrier du formateur est : ".datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt,IntlDateFormatter::TRADITIONAL);
echo 
"Le calendrier est maintenant : ".datefmt_get_calendar($fmt);
?>

Exemple #2 Exemple avec datefmt_get_calendar(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"calendar of the formatter is : ".$fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 
"Le calendrier est maintenant : ".$fmt->getCalendar();

?>

L'exemple ci-dessus va afficher :

Le calendrier du formateur est : 1
Le calendrier est maintenant : 0

Voir aussi



IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetypeLit le type de date utilisé par IntlDateFormatter

Description

Style orienté objet

int IntlDateFormatter::getDateType ( void )

Style procédural

int datefmt_get_datetype ( IntlDateFormatter $fmt )

Retourne le type de date utilisé par le formateur IntlDateFormatter.

Liste de paramètres

fmt

La ressource de formatteur IntlDateFormatter.

Valeurs de retour

Le type de date courant du formateur.

Exemples

Exemple #1 Exemple avec datefmt_get_datetype()

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le type de date du formateur est  : ".datefmt_get_datetype($fmt);
echo 
"L'affichage avec le premier type de date est  ".datefmt_format$fmt 0);
$fmt datefmt_create(  "en_US" ,IntlDateFormatter::SHORT,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Maintenant, le type de date du formateur est  : ".datefmt_get_datetype($fmt);
echo 
"L'affichage avec le second type de date est ".datefmt_format$fmt 0);

?>

Exemple #2 Exemple orienté objet

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo 
"Le type de date du formateur est  : ".$fmt->getDateType();
echo 
"L'affichage avec le premier type de date est ".datefmt_format$fmt 0);
$fmt = new IntlDateFormatter"en_US" ,IntlDateFormatter::SHORT,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo 
"Maintenant, le type de date du formateur est  : ".$fmt->getDateType();
echo 
"L'affichage avec le second type de date est ".datefmt_format$fmt 0);

?>

L'exemple ci-dessus va afficher :

Le type de date du formateur est  : 0
L'affichage avec le premier type de date est Wednesday, December 31, 1969 4:00:00 PM PT
Maintenant, le type de date du formateur est : 2
L'affichage avec le premier type de date est 12/31/69 4:00:00 PM PT

Voir aussi



IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_codeLit le code d'erreur de la dernière opération

Description

Style orienté objet

int IntlDateFormatter::getErrorCode ( void )

Style procédural

int datefmt_get_error_code ( IntlDateFormatter $fmt )

Lit le code d'erreur de la dernière opération.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

Le code d'erreur, une des valeurs UErrorCode. La valeur initiale est U_ZERO_ERROR.

Exemples

Exemple #1 Exemple avec datefmt_get_error_code(), procédural

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str datefmt_format($fmt);
if(!
$str) {
    echo 
"Erreur : ".datefmt_get_error_message($fmt) . " (" datefmt_get_error_code($fmt) . ")\n";
}
?>

Exemple #2 Exemple avec datefmt_get_error_code(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str $fmt->format();
if(!
$str) {
    echo 
"Erreur : ".$fmt->getErrorMessage() . " (" $fmt->getErrorCode() . ")\n";
}
?>

L'exemple ci-dessus va afficher :

Erreur : U_ZERO_ERROR (0)

Voir aussi



IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_messageLit le dernier message d'erreur

Description

Style orienté objet

string IntlDateFormatter::getErrorMessage ( void )

Style procédural

string datefmt_get_error_message ( IntlDateFormatter $fmt )

Lit le message d'erreur de la dernière opération.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

La description de la dernière erreur.

Exemples

Exemple #1 Exemple avec datefmt_get_error_message()

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str datefmt_format($fmt);
if(!
$str) {
    echo 
"Erreur : ".datefmt_get_error_message($fmt) . " (" datefmt_get_error_code($fmt) . ")\n";
}
?>

Exemple #2 Exemple orienté objet

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str $fmt->format();
if(!
$str) {
    echo 
"Erreur : ".$fmt->getErrorMessage() . " (" $fmt->getErrorCode() . ")\n";
}

?>

L'exemple ci-dessus va afficher :

Erreur : U_ZERO_ERROR (0)

Voir aussi



IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_localeLit la locale utilisée par le formateur

Description

Style orienté objet

string IntlDateFormatter::getLocale ([ int $which ] )

Style procédural

string datefmt_get_locale ( IntlDateFormatter $fmt [, int $which ] )

Lit la locale utilisée par le formateur.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

hich

Vous pouvez choisir entre une valeur valide ou une valeur littérale de la locale (à l'aide des constantes Locale::VALID_LOCALE et Locale::ACTUAL_LOCALE, respectivement). La valeur par défaut est la valeur littérale.

Valeurs de retour

La locale de ce formateur, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec datefmt_get_locale(), procédural

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"La locale du formateur est : ".datefmt_get_locale($fmt);
echo 
"Le premier format utilisé est ".datefmt_format$fmt 0);
echo 
"La locale du formateur est : ".datefmt_get_locale($fmt);
$fmt datefmt_create"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le second format utilisé est  ".datefmt_format$fmt 0);

?>

Exemple #2 Exemple avec datefmt_get_locale(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"La locale du formateur est : ".$fmt->getLocale();
echo 
"Le premier format utilisé est  ".$fmt->format(0);
$fmt = new IntlDateFormatter"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"La locale du formateur est : ".$fmt->getLocale();
echo 
"Le second format utilisé est  ".$fmt->format(0);

?>

L'exemple ci-dessus va afficher :

La locale du formateur est : en
Le premier format utilisé est Wednesday, December 31, 1969 4:00:00 PM PT
La locale du formateur est : de
Le deuxième format utilisé est Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00

Voir aussi



IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_patternLit le modèle utilisé par IntlDateFormatter

Description

Style orienté objet

string IntlDateFormatter::getPattern ( void )

Style procédural

string datefmt_get_pattern ( IntlDateFormatter $fmt )

Lit le modèle utilisé par le formateur.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

Le modèle utilisé pour analyser et former.

Exemples

Exemple #1 Exemple avec datefmt_get_pattern(), procédural

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le modèle du formateur est : ".datefmt_get_pattern($fmt);
echo 
"Le premier résultat avec le modèle est ".datefmt_format$fmt 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 
"Maintenant le modèle du formateur est : ".datefmt_get_pattern($fmt);
echo 
"Le deuxième résultat avec le modèle est ".datefmt_format$fmt 0);

?>

Exemple #2 Exemple avec datefmt_get_pattern(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN,"MM/dd/yyyy"  );
echo 
"Le modèle du formateur est : ".$fmt->getPattern();
echo 
"Le premier résultat avec le modèle est ".datefmt_format$fmt 0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 
"Maintenant le modèle du formateur est : ".$fmt->getPattern();
echo 
"Le deuxième résultat avec le modèle est ".datefmt_format$fmt 0);
?>

L'exemple ci-dessus va afficher :

Le modèle du formateur est : MM/dd/yyyy
Le premier résultat avec le modèle est 12/31/1969
Maintenant le modèle du formateur est : yyyymmdd hh:mm:ss z
Le deuxième résultat avec le modèle est 19690031 04:00:00 PST

Voir aussi



IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetypeLit le type de temps pour IntlDateFormatter

Description

Style orienté objet

int IntlDateFormatter::getTimeType ( void )

Style procédural

int datefmt_get_timetype ( IntlDateFormatter $fmt )

Retourne le type de temps utilisé par le formateur.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

La valeur courante de type de date utilisé par le formateur.

Exemples

Exemple #1 Exemple avec datefmt_get_timetype(), procédural

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le type de temps du formateur est : ".datefmt_get_timetype($fmt);
echo 
"Le premier résultat avec timetype est ".datefmt_format$fmt 0);
$fmt datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::SHORT,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Maintenant, le timetype du formateur est : ".datefmt_get_timetype($fmt);
echo 
"Le second résultat avec timetype est ".datefmt_format$fmt 0);

?>

Exemple #2 Exemple avec datefmt_get_timetype(), procédural

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo 
"Le type de temps du formateur est : ".$fmt->getTimeType();
echo 
"Le premier résultat avec timetype est ".datefmt_format$fmt 0);
$fmt = new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::SHORT,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo 
"Maintenant, le timetype du formateur est : ".$fmt->getTimeType();
echo 
"Le second résultat avec timetype est ".datefmt_format$fmt 0);

?>

L'exemple ci-dessus va afficher :

Le type de temps du formateur est : 0
Le premier résultat avec timetype est Wednesday, December 31, 1969 4:00:00 PM PT
Maintenant, le timetype du formateur est : 3
Le second résultat avec timetype est Wednesday, December 31, 1969 4:00 PM

Voir aussi



IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_idLit le fuseau horaire de IntlDateFormatter

Description

Style orienté objet

string IntlDateFormatter::getTimeZoneId ( void )

Style procédural

string datefmt_get_timezone_id ( IntlDateFormatter $fmt )

Lit le fuseau horaire utilisé par IntlDateFormatter.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

L'identifiant du fuseau horaire utilisé par ce formateur.

Exemples

Exemple #1 Exemple avec datefmt_set_timezone_id(), procédural

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le timezone_id du formateur est  : ".datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt,'CN');
echo 
"Maintenant, le timezone_id du formateur est : ".datefmt_get_timezone_id($fmt);
?>

Exemple #2 Exemple avec datefmt_set_timezone_id(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le timezone_id du formateur est : ".$fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 
"Maintenant, le timezone_id du formateur est : ".$fmt->getTimezoneId();

?>

L'exemple ci-dessus va afficher :

Le timezone_id du formateur est : America/Los_Angeles
Maintenant, le timezone_id du formateur est : CN

Voir aussi



IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenientRetourne la sévérité utilisée pour IntlDateFormatter

Description

Style orienté objet

bool IntlDateFormatter::isLenient ( void )

Style procédural

bool datefmt_is_lenient ( IntlDateFormatter $fmt )

Vérifie si l'analyseur est strict ou souple lors de l'interprétation des chaînes qui ne correspondent pas exactement au modèle recherché.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

TRUE si l'analyseur est souple, FALSE si l'analyseur est strict. Par défaut, l'analyseur est strict.

Exemples

Exemple #1 Exemple avec datefmt_is_lenient(), procédural

<?php
$fmt 
datefmt_create"en_US"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN"dd/mm/yyyy");
echo 
"Le formateur est strict : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
}else{
        echo(
'Non');
}
datefmt_parse($fmt,"35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo 
"Maintenant, le formateur est strict : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
}else{
        echo(
'Non');
}
datefmt_parse($fmt,"35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}

?>

Exemple #2 Exemple avec datefmt_is_lenient(), POO

<?php
$fmt 
= new IntlDateFormatter("en_US"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN"dd/mm/yyyy" );
echo 
"Le formateur est strict : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
}else{
        echo(
'Nom');
}
$fmt->parse("35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .$fmt->parse("35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo 
"Maintenant, la sévérité du formateur est : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
}else{
        echo(
'Non');
}
$fmt->parse("35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .$fmt->parse("35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}

?>

L'exemple ci-dessus va afficher :

Le formateur est strict : Oui
Tentative d'analyse de la date '35/13/1971'. 
Le résultat est : 34503180
Maintenant, le formateur est strict : Non
Tentative d'analyse de la date '35/13/1971'. 
Le résultat est : 
Error_msg est : Date parsing failed: U_PARSE_ERROR
Error_code est : 9
 

Voir aussi



IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtimeAnalyse une chaîne et la converti en temps

Description

Style orienté objet

array IntlDateFormatter::localtime ( string $value [, int &$position ] )

Style procédural

array datefmt_localtime ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Convertit la chaîne $value en une date décomposée (un tableau de champs), en commençant à la position $parse_pos et en consommant autant de caractères que possible.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

value

La chaîne à convertir.

position

La position à partir de laquelle commencer l'analyse dans la valeur $value. Les positions commencent à 0. Si aucune erreur ne survient durant l'analyse de $value, $parse_pos contiendra -1, et sinon, il va contenir la position à laquelle l'analyse s'est terminée (et l'erreur est survenue). Cette variable va contenir la position de fin si l'analyse échoue. Si $parse_pos est supérieur à la taille de la chaîne, l'analyse échoue immédiatement.

Valeurs de retour

Un tableau d'entier compatible avec localtime : il contient l'heure sur 24 heures dans le champ tm_hour.

Exemples

Exemple #1 Exemple avec datefmt_localtime(), procédural

<?php

$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$date "Wednesday, December 31, 1969 4:00:00 PM PT";
$position 0;
$arr datefmt_localtime$fmt$date ,$position);
echo 
"Résultat de l'analyse : \n";
if (
$arr) {
    foreach (
$arr as $key => $value) {
        echo 
"$key : $value \n";
    }
}

?>

Exemple #2 Exemple avec datefmt_localtime(), POO

<?php

$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$date "Wednesday, December 31, 1969 4:00:00 PM PT";
$position 0;
$arr $fmt->localtime$fmt$date ,$position);
echo 
"Résultat de l'analyse : \n";
if (
$arr) {
    foreach (
$arr as $key => $value) {
        echo 
"$key : $value \n";
    }
}

?>

L'exemple ci-dessus va afficher :

tm_sec : 0 
tm_min : 0 
tm_hour : 16 
tm_year : 69 
tm_mday : 31 
tm_wday : 3 
tm_yday : 365 
tm_mon : 11 
tm_isdst : 0 

Voir aussi



IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parseAnalyse une chaîne vers un timestamp

Description

Style orienté objet

int IntlDateFormatter::parse ( string $value [, int &$position ] )

Style procédural

int datefmt_parse ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Converti la chaîne $value en une valeur de temps, en commençant à $parse_pos et en lisant autant de caractères que possible.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

value

La chaîne à convertir en temps.

position

La position à partir de laquelle commencer l'analyse dans la valeur $value. Les positions commencent à 0. Si aucune erreur ne survient durant l'analyse de $value, $parse_pos contiendra -1, et sinon, il va contenir la position à laquelle l'analyse s'est terminée (et l'errur est survenue). Cette variable va contenir la position de fin si l'analyse échoue. Si $parse_pos est supérieur à la taille de la chaîne, l'analyse échoue immédiatement.

Valeurs de retour

La valeur du timestamp analysé.

Exemples

Exemple #1 Exemple avec datefmt_parse()

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Premier format analysé est ".$fmt->parse("Wednesday, December 31, 1969 4:00:00 PM PT");
$fmt = new IntlDateFormatter"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Deuxième format analysé est ".$fmt->parse("Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00");
?>

Exemple #2 Exemple orienté objet

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Premier format analysé est ".datefmt_parse$fmt ,  "Wednesday, December 20, 1989 4:00:00 PM PT");
$fmt datefmt_create"de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Deuxième format analysé est ".datefmt_parse$fmt "Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00");
?>

L'exemple ci-dessus va afficher :

Premier format analysé est 630201600
Deuxième format analysé est 630201600

Voir aussi



IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendarsets the calendar used to the appropriate calendar, which must be

Description

Style orienté objet

bool IntlDateFormatter::setCalendar ( int $which )

Style procédural

bool datefmt_set_calendar ( IntlDateFormatter $fmt , int $which )

Configure le calendrier à utiliser.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

which

Le calendrier à utiliser. Par défaut, c'est IntlDateFormatter::GREGORIAN.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec datefmt_set_calendar(), procédural

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le calendrier du formateur est : ".datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt,IntlDateFormatter::TRADITIONAL);
echo 
"Le calendrier est maintenant : ".datefmt_get_calendar($fmt);
?>

Exemple #2 Exemple avec datefmt_set_calendar(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"calendar of the formatter is : ".$fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 
"Le calendrier est maintenant : ".$fmt->getCalendar();

?>

L'exemple ci-dessus va afficher :

Le calendrier du formateur est : 1
Le calendrier est maintenant : 0

Voir aussi



IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenientConfigure la souplesse de l'analyseur

Description

Style orienté objet

bool IntlDateFormatter::setLenient ( bool $lenient )

Style procédural

bool datefmt_set_lenient ( IntlDateFormatter $fmt , bool $lenient )

Définit si l'analyseur est strict ou souple lors de l'interprétation des chaînes qui ne correspondent pas exactement au modèle recherché. Activer la souplesse da l'analyseur permet d'accepter des valeurs qui pourraient être considérées comme erronées par l'analyseur strict. Les espaces, les caractères inconnus ou les dates invalides ne sont pas acceptées.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

lenient

TRUE si l'analyseur est souple, FALSE si l'analyseur est strict. Par défaut, l'analyseur est strict.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec datefmt_set_lenient(), procédural

<?php
$fmt 
datefmt_create("en_US"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN"dd/mm/yyyy");
echo 
"Le formateur est strict : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
} else {
        echo(
'Non');
}
datefmt_parse($fmt,"35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo 
"Maintenant, le formateur est strict : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
}else{
        echo(
'Non');
}
datefmt_parse($fmt,"35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}

?>

Exemple #2 Exemple avec datefmt_set_lenient(), procédural

<?php
$fmt 
= new IntlDateFormatter("en_US"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN"dd/mm/yyyy");
echo 
"Le formateur est strict : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
} else {
        echo(
'Nom');
}
$fmt->parse("35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo 
"Maintenant, le formateur est strict : ";
if( 
$fmt->isLenient() ){
        echo(
'Oui');
} else {
        echo(
'Non');
}
$fmt->parse("35/13/1971");
echo 
"\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .$fmt->parse("35/13/1971");
if( 
intl_get_error_code() !=){
        echo 
"Error_msg est : ".intl_get_error_message();
        echo 
"Error_code est : ".intl_get_error_code();
}

?>

L'exemple ci-dessus va afficher :

Le formateur est strict : Non
Tentative d'analyse de la date '35/13/1971'. 
Le résultat est : -2147483
Maintenant, le formateur est strict : Oui
Tentative d'analyse de la date '35/13/1971'. 
Le résultat est : Error_msg est : Date parsing failed: U_PARSE_ERROR Error_code est : 9

Voir aussi



IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_patternConfigure le modèle utilisé par le IntlDateFormatter

Description

Style orienté objet

bool IntlDateFormatter::setPattern ( string $pattern )

Style procédural

bool datefmt_set_pattern ( IntlDateFormatter $fmt , string $pattern )

Configure le modèle utilisé par le IntlDateFormatter.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

pattern

Le nouveau masque à utiliser. Les masques possibles sont documentés sur » http://userguide.icu-project.org/formatparse/datetime.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Un mauvaise formattage de la chaîne est généralement la cause de l'échec de cette fonction.

Exemples

Exemple #1 Exemple avec datefmt_get_pattern(), procédural

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo 
"Le modèle du formateur est : ".datefmt_get_pattern($fmt);
echo 
"Le premier résultat avec le modèle est ".datefmt_format$fmt 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 
"Maintenant le modèle du formateur est : ".datefmt_get_pattern($fmt);
echo 
"Le deuxième résultat avec le modèle est ".datefmt_format$fmt 0);

?>

Exemple #2 Exemple avec datefmt_get_pattern(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN,"MM/dd/yyyy"  );
echo 
"Le modèle du formateur est : ".$fmt->getPattern();
echo 
"Le premier résultat avec le modèle est ".datefmt_format$fmt 0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 
"Maintenant le modèle du formateur est : ".$fmt->getPattern();
echo 
"Le deuxième résultat avec le modèle est ".datefmt_format$fmt 0);
?>

L'exemple ci-dessus va afficher :

Le modèle du formateur est : MM/dd/yyyy
Le premier résultat avec le modèle est 12/31/1969
Maintenant le modèle du formateur est : yyyymmdd hh:mm:ss z
Le deuxième résultat avec le modèle est 19690031 04:00:00 PST

Voir aussi



IntlDateFormatter::setTimeZoneId

datefmt_set_timezone_id

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setTimeZoneId -- datefmt_set_timezone_idConfigure le fuseau horaire à utiliser

Description

Style orienté objet

bool IntlDateFormatter::setTimeZoneId ( string $zone )

Style procédural

bool datefmt_set_timezone_id ( IntlDateFormatter $fmt , string $zone )

Configure le fuseau horaire à utiliser.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

zone

La chaîne d'identifiant du fuseau horaire à utiliser. Si NULL vide, le fuseau horaire par défaut sera utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec datefmt_set_timezone_id(), procédural

<?php
$fmt 
datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le timezone_id du formateur est  : ".datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt,'CN');
echo 
"Maintenant, le timezone_id du formateur est : ".datefmt_get_timezone_id($fmt);
?>

Exemple #2 Exemple avec datefmt_set_timezone_id(), POO

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Le timezone_id du formateur est : ".$fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 
"Maintenant, le timezone_id du formateur est : ".$fmt->getTimezoneId();

?>

L'exemple ci-dessus va afficher :

Le timezone_id du formateur est : America/Los_Angeles
Maintenant, le timezone_id du formateur est : CN

Voir aussi


Sommaire



La classe ResourceBundle

Introduction

Les application localisées ont souvent besoin de manipuler des données devant être personnalisées en fonction d'une locale considérée, e.g.: messages, libélés, chaines de formatage. ICU permet de définir des ressources que l'application pourra charger avec une locale une fois pour toutes : tous les accès ultérieurs se feront au moyen d'une interface unique non dépendante de la locale considérée.

Cette classe permet l'accès aux fichiers de données de ICU. Ces fichiers représentent des tableaux binaires que ICU utilise pour stocker les données localisées.

Les bundle de ressource ICU supportent les ressources simples et complexes. Les ressources complexes sont des conteneurs aui peuvent être indéxés numériquement ou litéralement (comme les tableaux PHP). Les ressources simples, elles, peuvent être de type chaine, entier, binaire ou tableau numérique.

ResourceBundle supporte l'accès direct aux données via la syntaxe des tableaux ainsi que l'itération grâce à foreach. Ces possibilités existent aussi via les méthodes. Le résultat sera une valeur PHP pour les ressources simples, ou un objet ResourceBundle pour les ressources complexes. Les ressources sont en lecture seule.

Synopsis de la classe

ResourceBundle {
/* Methods */
__construct ( string $locale , string $bundlename [, bool $fallback ] )
int count ( void )
static ResourceBundle create ( string $locale , string $bundlename [, bool $fallback ] )
int getErrorCode ( void )
string getErrorMessage ( void )
mixed get ( string|int $index )
array getLocales ( void )
}

ResourceBundle::count

resourcebundle_count

(No version information available, might only be in SVN)

ResourceBundle::count -- resourcebundle_countRécupère le nombre d'éléments dans le faisceau

Description

Style orienté objet

int ResourceBundle::count ( void )

Style procédural

int resourcebundle_count ( ResourceBundle $r )

Récupère le nombre d'éléments dans le faisceau.

Liste de paramètres

r

Un objet ResourceBundle.

Valeurs de retour

Retourne le nombre d'éléments du faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_count()

<?php
$r 
resourcebundle_create'es'"/usr/share/data/myapp");
echo 
resourcebundle_count($r);
?>

Exemple #2 Exemple orienté objet

<?php
$r 
= new ResourceBundle'es'"/usr/share/data/myapp");
echo 
$r->count();
?>

L'exemple ci-dessus va afficher :

42

Voir aussi



ResourceBundle::create

resourcebundle_create

ResourceBundle::__construct

(No version information available, might only be in SVN)

ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__constructCrée une ressource représentant un faisceau

Description

Style orienté objet (méthode)

static ResourceBundle ResourceBundle::create ( string $locale , string $bundlename [, bool $fallback ] )

Style procédural

ResourceBundle resourcebundle_create ( string $locale , string $bundlename [, bool $fallback ] )

Style orienté objet (constructeur) :

ResourceBundle::__construct() ( string $locale , string $bundlename [, bool $fallback ] )

Crée une ressource représentant un faisceau.

Liste de paramètres

locale

Locale depuis laquelle les ressources doivent être chargées (nom de la locale, i.e. en_CA).

bundlename

Le dossier où les données sont stockées ou le nom du fichier .dat.

fallback

Si la locale doit correspondre exactement ou si le fallback vers la locale parent est autorisé.

Valeurs de retour

Retourne un objet ResourceBundle ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec resourcebundle_create()

<?php
$r 
resourcebundle_create'es'"/usr/share/data/myapp");
echo 
$r['teststring'];
?>

Exemple #2 Exemple avec ResourceBundle::create()

<?php
$r 
ResourceBundle::create'es'"/usr/share/data/myapp");
echo 
$r['teststring'];
?>

L'exemple ci-dessus va afficher :

¡Hola, mundo!

Voir aussi



ResourceBundle::getErrorCode

resourcebundle_get_error_code

(No version information available, might only be in SVN)

ResourceBundle::getErrorCode -- resourcebundle_get_error_codeRécupère le dernier code erreur du faisceau

Description

Style orienté objet

int ResourceBundle::getErrorCode ( void )

Style procédural

int resourcebundle_get_error_code ( ResourceBundle $r )

Récupère le dernier code erreur depuis la dernière fonction exécutée sur l'objet représentant le faisceau.

Liste de paramètres

r

Un objet ResourceBundle.

Valeurs de retour

Retourne le code erreur depuis le dernier appel à l'objet représentant le faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_get_error_code()

<?php
$r 
resourcebundle_create'es'"/usr/share/data/myapp");
echo 
$r['somestring'];
if(
intl_is_failure(resourcebundle_get_error_code($r))) {
    
report_error("Erreur sur le faisceau");
}
?>

Exemple #2 Exemple orienté objet

<?php
$r 
= new ResourceBundle'es'"/usr/share/data/myapp");
echo 
$r['somestring'];
if(
intl_is_failure(ResourceBundle::getErrorCode($r))) {
    
report_error("Erreur sur le faisceau");
}
?>

Voir aussi



ResourceBundle::getErrorMessage

resourcebundle_get_error_message

(No version information available, might only be in SVN)

ResourceBundle::getErrorMessage -- resourcebundle_get_error_messageRécupère le dernier message d'erreur depuis le faisceau

Description

Style orienté objet

string ResourceBundle::getErrorMessage ( void )

Style procédural

string resourcebundle_get_error_message ( ResourceBundle $r )

Récupère le message d'erreur depuis la dernière fonction exécutée sur l'objet du faisceau.

Liste de paramètres

r

Un objet ResourceBundle.

Valeurs de retour

Retourne le message d'erreur depuis le dernier appel sur l'objet du faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_get_error_message()

<?php
$r 
resourcebundle_create'es'"/usr/share/data/myapp");
echo 
$r['somestring'];
if(
intl_is_failure(resourcebundle_get_error_code($r))) {
    
report_error("Erreur sur le faisceau : ".resourcebundle_get_error_message($r));
}
?>

Exemple #2 Exemple orienté objet

<?php
$r 
= new ResourceBundle'es'"/usr/share/data/myapp");
echo 
$r['somestring'];
if(
intl_is_failure(ResourceBundle::getErrorCode($r))) {
    
report_error("Erreur sur le faisceau : ".ResourceBundle::getErrorMessage($r));
}
?>

Voir aussi



ResourceBundle::get

resourcebundle_get

(No version information available, might only be in SVN)

ResourceBundle::get -- resourcebundle_getRécupère les données depuis le faisceau

Description

Style orienté objet

mixed ResourceBundle::get ( string|int $index )

Style procédural

mixed resourcebundle_get ( ResourceBundle $r , string|int $index )

Récupère les données depuis le faisceau par l'index ou la clé.

Liste de paramètres

r

Un objet ResourceBundle.

index

L'index des données ; peut être une chaîne de caractères ou un entier.

Valeurs de retour

Retourne les données situées à un index donné ou NULL si une erreur survient. Les chaînes de caractères, les entiers et les données binaires sont retournés sous leurs formes correspondantes en types PHP ; les tableaux d'entiers sont retournés sous la forme de tableau PHP. Les types complexes sont retournés sous la forme d'objet ResourceBundle.

Exemples

Exemple #1 Exemple avec resourcebundle_get()

<?php
$r 
resourcebundle_create'es'"/usr/share/data/myapp");
echo 
resourcebundle_get($r'somestring');
?>

Exemple #2 Exemple orienté objet

<?php
$r 
= new ResourceBundle'es'"/usr/share/data/myapp");
echo 
$r->get('somestring');
?>

L'exemple ci-dessus va afficher :

?Hola, mundo!

Voir aussi



ResourceBundle::getLocales

resourcebundle_locales

(No version information available, might only be in SVN)

ResourceBundle::getLocales -- resourcebundle_localesRécupère les locales supportées

Description

Style orienté objet

array ResourceBundle::getLocales ( void )

Style procédural

array resourcebundle_locales ( ResourceBundle $r )

Récupère la liste des locales supportées par le faisceau. La liste est récupérée depuis la table du faisceau nommée res_index qui doit contenir une table nommée InstalledLocales, qui contient les locales comme clés. Le faisceau doit être soit un dossier de données sous la forme d'un fichier .res ou une partie de fichier .dat pour que cette fonction fonctionne.

Liste de paramètres

r

Un objet ResourceBundle.

Valeurs de retour

Retourne la liste des locales supportées par ce faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_locales()

<?php
$r 
resourcebundle_create'es'"/usr/share/data/myapp");
echo 
join("\n"resourcebundle_locales($r));
?>

Exemple #2 Exemple orienté objet

<?php
$r 
= new ResourceBundle'es'"/usr/share/data/myapp");
echo 
join("\n"$r->getLocales());
?>

L'exemple ci-dessus va afficher :

es
root

Voir aussi


Sommaire



La classe Transliterator

Introduction

Transliterator fournit la translittération des chaînes de caractères.

Synopsis de la classe

Transliterator {
/* Constantes */
const integer Transliterator::FORWARD = 0 ;
const integer Transliterator::REVERSE = 1 ;
/* Propriétés */
public $id ;
/* Méthodes */
__construct ( void )
public static Transliterator create ( string $id [, int $direction ] )
public static Transliterator createFromRules ( string $rules [, string $direction ] )
public Transliterator createInverse ( void )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public static array listIDs ( void )
public void transliterate ( string $subject [, string $start [, string $end ]] )
}

Propriétés

id

Constantes pré-définies

Types de nœud Transliterator

Transliterator::FORWARD

Transliterator::REVERSE


Transliterator::__construct

(No version information available, might only be in SVN)

Transliterator::__constructConstruit un objet Transliterator

Description

Transliterator::__construct() ( void )

Construit un objet Transliterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet Transliterator.

Voir aussi



Transliterator::create

transliterator_create

(No version information available, might only be in SVN)

Transliterator::create -- transliterator_createCrée un Transliterator

Description

Style orienté objet

public static Transliterator Transliterator::create ( string $id [, int $direction ] )

Style procédural

Transliterator transliterator_create ( string $id [, int $direction ] )

Ouvre un Transliterator par son identifiant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

id

L'identifiant.

direction

La direction, par défaut >Transliterator::FORWARD. Peut également être défini à Transliterator::REVERSE.

Valeurs de retour

Retourne un objet Transliterator en cas de succès, ou NULL si une erreur survient.

Voir aussi



Transliterator::createFromRules

transliterator_create_from_rules

(No version information available, might only be in SVN)

Transliterator::createFromRules -- transliterator_create_from_rulesCrée un translittérateur depuis des règles

Description

Style orienté objet

public static Transliterator Transliterator::createFromRules ( string $rules [, string $direction ] )

Style procédural

Transliterator transliterator_create_from_rules ( string $id [, int $direction ] )

Crée un translittérateur depuis des règles.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

rules

Les règles.

direction

La direction, par défaut >Transliterator::FORWARD. Peut également être défini à Transliterator::REVERSE.

Valeurs de retour

Retourne un objet Transliterator en cas de succès, ou NULL si une erreur survient.

Voir aussi



Transliterator::createInverse

transliterator_create_inverse

(No version information available, might only be in SVN)

Transliterator::createInverse -- transliterator_create_inverseCrée un translittérateur inverse

Description

Style orienté objet

public Transliterator Transliterator::createInverse ( void )

Style procédural

Transliterator transliterator_create_inverse ( void )

Crée un translittérateur inverse.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet Transliterator en cas de succès, ou NULL si une erreur survient.

Voir aussi



Transliterator::getErrorCode

transliterator_get_error_code

(No version information available, might only be in SVN)

Transliterator::getErrorCode -- transliterator_get_error_codeRécupère le dernier code erreur

Description

Style orienté objet

public int Transliterator::getErrorCode ( void )

Style procédural

int transliterator_get_error_code ( void )

Récupère le dernier code erreur depuis ce translittérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code erreur en cas de succès, ou FALSE s'il n'en existe pas ou si une erreur survient.

Voir aussi



Transliterator::getErrorMessage

transliterator_get_error_message

(No version information available, might only be in SVN)

Transliterator::getErrorMessage -- transliterator_get_error_messageRécupère le dernier message d'erreur

Description

Style orienté objet

public string Transliterator::getErrorMessage ( void )

Style procédural

string transliterator_get_error_message ( void )

Récupère le dernier message d'erreur depuis ce translittérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code erreur en cas de succès, ou FALSE si aucune erreur n'existe, ou si une erreur survient.

Voir aussi



Transliterator::listIDs

transliterator_list_ids

(No version information available, might only be in SVN)

Transliterator::listIDs -- transliterator_list_idsRécupère les identifiants de ce translittérateur

Description

Style orienté objet

public static array Transliterator::listIDs ( void )

Style procédural

array transliterator_list_ids ( void )

Retourne un tableau contenant tous les identifiants enregistrés pour ce translittérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant tous les identifiants enregistrés pour ce translittérateur en cas de succès ou FALSE si une erreur survient.

Voir aussi



Transliterator::transliterate

transliterator_transliterate

(No version information available, might only be in SVN)

Transliterator::transliterate -- transliterator_transliterateTranslittère une chaîne de caractères

Description

Style orienté objet

public void Transliterator::transliterate ( string $subject [, string $start [, string $end ]] )

Style procédural

transliterator_transliterate ( string $subject [, string $start [, string $end ]] )

Translittère une chaîne de caractères.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

subject

La chaîne de caractères à translittérer.

start

end

Valeurs de retour

La chaîne de caractères translittérée en cas de succès, ou FALSE si une erreur survient.

Voir aussi


Sommaire



Fonctions Grapheme


grapheme_extract

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_extractExtrait un groupe de graphème d'une chaîne UTF-8

Description

Procedural style

string grapheme_extract ( string $haystack , int $size [, int $extract_type [, int $start = 0 [, int &$next ]]] )

Cette fonction extrait une séquence de groupes de graphèmes par défaut d'un texte en UTF-8.

Liste de paramètres

haystack

La chaîne à étudier.

size

Le nombre maximal d'élément, en fonction de $extract_type, à retourner.

extract_type

Défini le type d'unités indiquées par le paramètre $size :

  • GRAPHEME_EXTR_COUNT (par défaut) : $size est le nombre de groupe de graphèmes à extraire.
  • GRAPHEME_EXTR_MAXBYTES : $size est le nombre d'octets à retourner.
  • GRAPHEME_EXTR_MAXCHARS : $size est le nombre de caractères UTF-8 à retourner.

start

La position de début dans $haystack, exprimée en octets. Elle doit être positive, nulle ou inférieure à la taille de $haystack en octets. Si $start ne correspond pas au premier octets d'un caractère UTF-8 valide, la position de démarrage sera déplacée au prochain octet valide.

next

Référence à une variable qui recevra la prochaine position de début valide. Lorsque la fonction se termine, cela peut être une position qui est au dela de la taille de la chaîne.

Valeurs de retour

Une chaîne qui débute à la position $start et se termine à la limite valide d'un graphème, et qui se conformen aux conditions $size et $extract_type.

Exemples

Exemple #1 Exemple avec grapheme_extract()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract$char_a_ring_nfd $char_o_diaeresis_nfd1GRAPHEME_EXTR_COUNT2));

?>

L'exemple ci-dessus va afficher :

o%CC%88


grapheme_stripos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_striposTrouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse

Description

Procedural style

int grapheme_stripos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position en graphème de la première occurrence dans une chaîne, en effectuant une recherche insensible à la casse.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à rechercher. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne la position, sous forme d'un entier. Si $needle n'est pas trouvé, grapheme_stripos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_stripos()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"
$char_O_diaeresis_nfd "O\xCC\x88"// 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) forme normalisée "D"

print grapheme_stripos$char_a_ring_nfd $char_a_ring_nfd $char_o_diaeresis_nfd$char_O_diaeresis_nfd);

?>

L'exemple ci-dessus va afficher :

2

Voir aussi



grapheme_stristr

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_stristrRetourne la partie d'une chaîne à partir d'une occurrence

Description

Procedural style

string grapheme_stristr ( string $haystack , string $needle [, bool $before_needle = false ] )

Retourne la partie d'une chaîne à partir de la première occurrence de needle (insensible à la casse), et jusqu'à la fin de la chaîne.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être valide UTF-8.

needle

La chaîne à rechercher. Elle doit être valide UTF-8.

before_needle

Si TRUE, grapheme_stristr() retourne la partie de $haystack avant la première occurrence.

Valeurs de retour

Retourne une portion de $haystack, ou FALSE si $needle n'est pas trouvé.

Exemples

Exemple #1 Exemple avec grapheme_stristr()

<?php

$char_a_ring_nfd  
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5)  forme normalisée "D"
$char_o_diaeresis_nfd  "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme  normalisée "D"
$char_O_diaeresis_nfd =  "O\xCC\x88"// 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) forme  normalisée "D"

print  urlencode(grapheme_stristr$char_a_ring_nfd $char_o_diaeresis_nfd .  $char_a_ring_nfd$char_O_diaeresis_nfd));

?>

L'exemple ci-dessus va afficher :

o%CC%88a%CC%8A

Voir aussi



grapheme_strlen

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strlenLit la taille d'une chaîne en nombre de graphème

Description

Procedural style

int grapheme_strlen ( string $input )

Lit la taille d'une chaîne en nombre de graphème (et non pas en octets ou caractères).

Liste de paramètres

input

La chaîne à mesurer. Elle doit être une chaîne UTF-8 valide.

Valeurs de retour

La taille de la chaîne, et 0 si la chaîne est vide.

Exemples

Exemple #1 Exemple avec grapheme_strlen()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"

print grapheme_strlen'abc' $char_a_ring_nfd $char_o_diaeresis_nfd $char_a_ring_nfd);

?>

L'exemple ci-dessus va afficher :

6


grapheme_strpos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strposTrouve la position du premier graphème

Description

Procedural style

int grapheme_strpos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position du permier graphème dans une chaîne.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à étudier. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne l position sous forme d'entier. Si $needle n'est pas trouvé, grapheme_strripos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_strpos()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"

print grapheme_strpos$char_a_ring_nfd $char_a_ring_nfd $char_o_diaeresis_nfd$char_o_diaeresis_nfd);

?>

L'exemple ci-dessus va afficher :

2

Voir aussi



grapheme_strripos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strriposTrouve la position du dernier graphème, insensible à la casse

Description

Procedural style

int grapheme_strripos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position du dernier graphème, en effectuant une recherche insensible à la casse.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à rechercher. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne l position sous forme d'entier. Si $needle n'est pas trouvé, grapheme_strripos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_strripos()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée form "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"
$char_O_diaeresis_nfd "O\xCC\x88"// 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) forme normalisée "D"

print grapheme_strripos$char_a_ring_nfd $char_o_diaeresis_nfd $char_o_diaeresis_nfd$char_O_diaeresis_nfd);

?>

L'exemple ci-dessus va afficher :

2

Voir aussi



grapheme_strrpos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strrposTrouve la position du dernier graphème

Description

Procedural style

int grapheme_strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position du dernier graphème, en effectuant une recherche sensible à la casse.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à rechercher. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne la position sous forme d'un entier. Si $needle n'est pas trouvé, grapheme_strrpos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_strrpos()

<?php
$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"

print grapheme_strrpos$char_a_ring_nfd $char_o_diaeresis_nfd $char_o_diaeresis_nfd$char_o_diaeresis_nfd);
?>

L'exemple ci-dessus va afficher :

2

Voir aussi



grapheme_strstr

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strstrRetourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse

Description

Procedural style

string grapheme_strstr ( string $haystack , string $needle [, bool $before_needle = false ] )

Retourne la partie d'une chaîne à partir de la première occurrence de needle (sensible à la casse), et jusqu'à la fin de la chaîne.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être valide UTF-8.

needle

La chaîne à rechercher. Elle doit être valide UTF-8.

before_needle

Si TRUE, grapheme_strstr() retourne la partie de $haystack avant la première occurrence.

Valeurs de retour

Retourne la portion de la chaîne de caractères ou FALSE si $needle n'est pas trouvé.

Exemples

Exemple #1 Exemple avec grapheme_strstr()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_stristr$char_a_ring_nfd $char_o_diaeresis_nfd $char_a_ring_nfd$char_o_diaeresis_nfd));

?>

L'exemple ci-dessus va afficher :

o%CC%88a%CC%8A

Voir aussi



grapheme_substr

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_substrRetourne une partie d'une chaîne

Description

Procedural style

int grapheme_substr ( string $string , int $start [, int $length ] )

Retourne une partie d'une chaîne.

Liste de paramètres

string

La chaîne à couper. Doit être UTF-8 et valide.

start

La position de début, en unité par de graphèmes. Si $start est non-négatif, la chaîne retournée va commencer à la position $start dans la chaîne, en comptant à partir de 0. Si $start est négatif, la chaîne retournée va commencer à la position $start en comptant depuis la fin de la chaîne.

length

La taille de la sous-chaîne à extraire, en unités de graphème. Si $length est donné et positif, la chaîne retournée va contenir au plus $length graphèmes, commençant à $start (en fonction de la taille de la chaîne). Si $string est inférieur ou égal à $start graphèmes de long, FALSE sera retourné. Si $length a une valeur négative, alors autant de graphème seront omis à partir de la fin de la chaîne (après que la position de début ait été calculé, lorsque $start est aussi négatif). Si $start dénote une position au-delà de la fin de la chaîne, une chaîne vide sera retournée.

Valeurs de retour

Retourne la partie de chaîne extraite de $string.

Exemples

Exemple #1 Exemple avec grapheme_substr()

<?php

$char_a_ring_nfd 
"a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd "o\xCC\x88"// 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_substr"ao" $char_a_ring_nfd "bc" $char_o_diaeresis_nfd "O"2, -));
?>

L'exemple ci-dessus va afficher :

a%CC%8Abco%CC%88

Voir aussi


Sommaire



Fonctions IDN


idn_to_ascii

(PHP 5 >= 5.3.0, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_asciiConvertie un nom de domaine au format IDNA ASCII

Description

Style procédural

string idn_to_ascii ( string $domain [, int $options ] )

Cette fonction convertit un nom de domaine Unicode au format IDNA ASCII-compatible.

Liste de paramètres

domain

Domaine à convertir. En PHP 5, il doit être encodé UTF-8.

options

Options de conversion - combinaison de constantes IDNA_*.

Valeurs de retour

Le nom de domaine encodé au format ASCII-compatible. ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple avec idn_to_ascii()

<?php

echo idn_to_ascii('täst.de'); 

?>

L'exemple ci-dessus va afficher :

xn--tst-qla.de

Voir aussi



idn_to_unicode

(No version information available, might only be in SVN)

idn_to_unicodeAlias de idn_to_utf8()

Description

Cette fonction est un alias de : idn_to_utf8().



idn_to_utf8

(PHP 5 >= 5.3.0, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8Convertit le nom de domaine IDNA ASCII en Unicode

Description

Style procédural

string idn_to_utf8 ( string $domain [, int $options ] )

Convertit le nom de domaine au format IDNA ASCII-compatible en Unicode.

Liste de paramètres

domain

Domaine à convertir depuis le format IDNA ASCII-compatible.

options

Options de conversion - une combinaison des constantes IDNA_*.

Valeurs de retour

Nom de domaine en Unicode. En PHP5, le nom de domaine sera en UTF-8. ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple avec idn_to_utf8()

<?php

echo idn_to_utf8('xn--tst-qla.de'); 

?>

L'exemple ci-dessus va afficher :

täst.de

Voir aussi


Sommaire



Fonctions intl


intl_error_name

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_error_nameLit le nom symbolique d'un code d'erreur donné

Description

string intl_error_name ( int $error_code )

Retourne le nom du code d'erreur ICU.

Liste de paramètres

error_code

Le code d'erreur ICU.

Valeurs de retour

La chaîne retournée sera celui du nom de la constante équivalente.

Exemples

Exemple #1 Exemple avec intl_error_name()

<?php
$coll     
collator_create'en_RU' );
$err_code collator_get_error_code$coll );

printf"Le nom symbolique de  %d est %s\n."$err_codeintl_error_name$err_code ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Symbolic name for -128 is U_USING_FALLBACK_WARNING.

Voir aussi



intl_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_get_error_codeLit le dernier code d'erreur

Description

int intl_get_error_code ( void )

Pratique pour gérer les erreurs qui surviennent dans les méthodes statiques quand il n'y a pas d'objet dont on peut obtenir le message d'erreur.

Valeurs de retour

Le code d'erreur retourné par le dernier appel à l'API.

Exemples

Exemple #1 Exemple avec intl_get_error_code()

<?php
$coll 
collator_create'<bad_param>' );
if( !
$coll ) {
    
handle_errorintl_get_error_code() );
}
?>

Voir aussi



intl_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_get_error_messageLit la description de la dernière erreur

Description

string intl_get_error_message ( void )

Lit le message d'erreur de la dernière fonction d'internationalisation appelée.

Valeurs de retour

La description de l'erreur qui est survenue durant le dernier appel de l'API.

Exemples

Exemple #1 Exemple avec intl_get_error_message()

<?php
if( Collator::getAvailableLocales() === false ) {
    
show_errorintl_get_error_message() );
}
?>

Voir aussi



intl_is_failure

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_is_failureVérifie si un code d'erreur indique un échec

Description

bool intl_is_failure ( int $error_code )

Liste de paramètres

error_code

une valeur retournée par une des fonctions intl_get_error_code(), collator_get_error_code() .

Valeurs de retour

TRUE si le code indique un échec, et FALSE dans le cas d'une réussite ou d'une alerte.

Exemples

Exemple #1 Exemple avec intl_is_failure()

<?php
function check$err_code )
{
    
var_exportintl_is_failure$err_code ) );
    echo 
"\n";
}
 
checkU_ZERO_ERROR );
checkU_USING_FALLBACK_WARNING );
checkU_ILLEGAL_ARGUMENT_ERROR );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

false
false
true

Voir aussi


Sommaire




Chaînes de caractères multi-octets


Introduction

Même si la plupart des langues peuvent être représentées grâce à un jeu de 128 caractères, il y a d'autres langues qui requièrent des jeux de caractères bien plus grands. Des méthodes de caractères multi-octets ont été développées pour résoudre ce type de problème.

Lorsque vous manipulez des chaînes de caractères multi-octets, pour couper, rechercher ou nettoyer une chaîne, vous devez utiliser deux octets consécutifs, qui représentent un seul caractère. Si vous n'y prenez pas garde, vous allez obtenir une chaîne corrompue et invalide, avec une représentation totalement incompréhensible.

mbstring fournit les fonctions spécifiques de manipulations de chaînes qui vous permet de travailler avec les encodages multi-octets en PHP. En plus de cela, mbstring gère la traduction entre les jeux de caractères disponibles. mbstring est également connu pour gérer l'Unicode, comme UTF-8 et UCS-2 ainsi que de nombreux autres jeux mono-octets.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

mbstring est un module PHP. Vous devez activer le module avec le script de configuration configure. Reportez-vous à la section installation pour plus de détails.

Les options de configurations suivantes sont liées au module mbstring.

  • --enable-mbstring : Active les fonctions mbstring. Cette option est nécessaire pour utiliser les fonctions mbstring.

    libmbfl est nécessaire pour mbstring. libmbfl est inclus avec mbstring. Si libmbfl est déjà installé sur le système, --with-libmbfl[=DIR] peut être spécifié pour utiliser la bibliothèque installée.

    À partir de PHP 4.3.0, l'extension mbstring fournit le support pour le chinois simplifié, le chinois traditionnel, le coréen et le russe en plus du japonais.

    Pour PHP 4.3.3 ou inférieur, pour activer cette fonctionnalité, vous devez fournir une des options suivantes dans le paramètres LANG de --with-mbstring=LANG : --with-mbstring=cn pour le support du chinois simplifié, --with-mbstring=tw pour le support du chinois traditionnel, --with-mbstring=kr pour le support du coréen, --with-mbstring=ru pour le support du russe et --enable-mbstring=ja pour le support du japonais (par défaut). Pour activer le support de tous ces encodages, utilisez --enable-mbstring=all .

    Note:

    Depuis PHP 4.3.4, tous les encodages supportés par libmbfl sont activables avec l'option --enable-mbstring .

  • --enable-mbstr-enc-trans : Active la conversion automatique des données par HTTP, avec le moteur de conversion de mbstring. Si cette option est activée, les données venant du web via HTTP seront converties dans le jeu de caractères mbstring.internal_encoding, automatiquement.

    Note:

    Depuis PHP 4.3.0, l'option --enable-mbstr-enc-trans sera éliminée, et remplacée par mbstring.encoding_translation. La conversion de jeu de caractères d'entrée HTTP sera activée lorsque cette option sera à On (par défaut, cette option vautOff).

  • --disable-mbregex : Désactive les fonctions d'expressions rationnelles, compatibles avec les caractères multi-octets.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mbstring
Nom Défaut Modifiable Historique
mbstring.language "neutral" PHP_INI_ALL Disponible depuis PHP 4.3.0; PHP_INI_PERDIR en PHP <= 5.2.6
mbstring.detect_order NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.http_input "pass" PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.http_output "pass" PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.internal_encoding NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.script_encoding NULL PHP_INI_ALL Disponible depuis PHP 4.3.0.
mbstring.substitute_character NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.func_overload "0" PHP_INI_SYSTEM PHP_INI_SYSTEM en PHP <= 4.2.3; PHP_INI_SYSTEM | PHP_INI_PERDIR depuis PHP 4.3 jusqu'à 5.2.6. Disponible depuis PHP 4.2.0.
mbstring.encoding_translation "0" PHP_INI_PERDIR Disponible depuis PHP 4.3.0.
mbstring.strict_detection "0" PHP_INI_ALL Disponible depuis PHP 5.1.2.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mbstring.language chaîne de caractères

Définit le langage utilisé par mbstring. Notez que cette option définit mbstring.internal_encoding mbstring.internal_encoding doit être placé après mbstring.language dans le fichier php.ini

mbstring.encoding_translation booléen

Active la détection et la traduction des données d'entrées HTTP vers le codage interne mbstring.

mbstring.internal_encoding chaîne de caractères

Définit l'encodage interne par défaut.

mbstring.http_input chaîne de caractères

Définit l'encodage de réception HTTP par défaut.

mbstring.http_output chaîne de caractères

Définit l'encodage d'affichage HTTP par défaut.

mbstring.detect_order chaîne de caractères

Définit l'ordre de détection des encodages par défaut. Voir aussi mb_detect_order().

mbstring.substitute_character chaîne de caractères

Définit l'encodage de substitution par défaut : il est utilisé pour les caractères invalides.

mbstring.func_overload chaîne de caractères

Remplace les fonctions de traitement des chaînes par les fonctions mbstring. Voir les fonctions de remplacement pour plus d'informations.

mbstring.strict_detection booléen

Active la détection stricte de l'encodage.

En accord avec » HTML 4.01 specification, les navigateurs sont supposés utiliser le même jeu de caractères lorsqu'ils soumettent un formulaire. Mais, tous les navigateurs ne le font pas. Reportez-vous à la fonction mb_http_input() pour détecter les jeux de caractères utilisés par les navigateurs.

En général, les navigateurs sont suffisamment intelligents pour détecter les jeux de caractères dans le HTML. Néanmoins, il convient de définir le paramètre charset de l'en-tête HTTP Content-Type à la valeur fournie par la fonction header() ou par l'option de configuration default_charset.

Exemple #1 Configuration de php.ini pour mbstring

; Langage par défaut
mbstring.language        = Neutral; (UTF-8) (par défaut)
mbstring.language        = English; Anglais
mbstring.language        = Japanese; Japonais

;; Jeu de caractère interne
;; Note : assurez-vous que ce jeu fonctionne avec PHP
mbstring.internal_encoding    = UTF-8

;; Activation de la conversion automatique des entrées HTTP
mbstring.encoding_translation = On

;; Jeu de caractères par défaut pour les données d'entrée HTTP
;; Note : le script ne peux pas changer cette configuration
mbstring.http_input           = pass    ; Aucune conversion.
mbstring.http_input           = auto    ; Utilise auto
                                ; "auto" est remplacé suivant mbstring.language
mbstring.http_input           = SJIS    ; Utilise SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

;;Jeu de caractères par défaut pour les données de sortie HTTP
mbstring.http_output          = pass    ; Aucune conversion
mbstring.http_output          = UTF-8   ; Utilise UTF-8

;; Ordre de détection des jeux de caractères
mbstring.detect_order         = auto    ; Utilise la détection automatique
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

;; Déterminer le jeu de caractères de substitution par défaut
mbstring.substitute_character = 12307   ; Spécifie une valeur Unicode
mbstring.substitute_character = none    ; Ne pas afficher de caractères
mbstring.substitute_character = long    ; Exemple complet : U+3000,JIS+7E7E

Exemple #2 Configuration de php.ini pour les utilisateurs de EUC-JP

;; Désactive la bufferisation de sortie
output_buffering      = Off

;; Choisit le jeu de caractères
default_charset       = EUC-JP

;; Le langage par défaut est le japonais
mbstring.language = Japanese

;; Activation de la traduction automatique des données d'entrée HTTP
mbstring.encoding_translation = On

;; Activation de la conversion automatique
mbstring.http_input   = auto

;; Convertit les sorties en EUC-JP
mbstring.http_output  = EUC-JP

;; Utilise le jeu de caractères interne EUC-JP
mbstring.internal_encoding = EUC-JP

;; Ne pas afficher les caractères invalides
mbstring.substitute_character = none

Exemple #3 Configuration de php.ini pour les utilisateurs de SJIS

;; Active la bufferisation de sortie
output_buffering     = On

;; Utilise le gestionnaire mb_output_handler pour la conversion de sortie
output_handler       = mb_output_handler

;; Choisit le jeu de caractères
default_charset      = Shift_JIS

;; Le langage par défaut est le japonais
mbstring.language = Japanese

;; Activation de la traduction automatique des données d'entrée HTTP
mbstring.http_input  = auto

;; Convertit en SJIS
mbstring.http_output = SJIS

;;Utilise le jeu de caractères interne EUC-JP
mbstring.internal_encoding = EUC-JP

;; Ne pas afficher les caractères invalides
mbstring.substitute_character = none



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MB_OVERLOAD_MAIL (entier)
MB_OVERLOAD_STRING (entier)
MB_OVERLOAD_REGEX (entier)
MB_CASE_UPPER (entier)
MB_CASE_LOWER (entier)
MB_CASE_TITLE (entier)


Jeux de caractères supportés

Jeux de caractères supportés
Nom dans le registre IANA:ISO-10646-UCS-4
Jeux de caractères:ISO 10646
Description: Le jeu de caractères universel (Universal Character Set), avec 31 bits par caractère, au standard UCS-4 par ISO/IEC 10646. Il est synchronisé avec la dernière version d'Unicode.
Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
Nom dans le registre IANA:ISO-10646-UCS-4
Jeux de caractères:UCS-4
Description: Voir ci-dessus.
Notes: Contrairement à UCS-4, les chaînes sont supposées être au format big endian.
Nom dans le registre IANA:ISO-10646-UCS-4
Jeux de caractères:UCS-4
Description: Voir ci-dessus.
Notes: Contrairement à UCS-2, les chaînes sont supposées être au format little endian.
Nom dans le registre IANA:ISO-10646-UCS-2
Jeux de caractères:UCS-2
Description: Le jeu de caractères universel (Universal Character Set), avec 16 bits par caractère, au standard UCS-2 par ISO/IEC 10646. Il est synchronisé avec la dernière version d'Unicode.
Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
Nom dans le registre IANA:ISO-10646-UCS-2
Jeux de caractères:UCS-2
Description: Voir ci-dessus.
Notes: Contrairement à UCS-4, les chaînes sont supposées être au format big endian.
Nom dans le registre IANA:UTF-32
Jeux de caractères:Unicode
Description: Format de transformation d'Unicode, de 32 bits, dont les cartes correspondent au jeu stantder Unicode. Ce jeu n'est pas identique à UCS-4 car les caractères Unicode étaient limités à des valeurs de 21 bits.
Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
Nom dans le registre IANA:UTF-32BE
Jeux de caractères:Unicode
Description: Voir ci-dessus.
Notes: Contrairement à UTF-32, les chaînes sont supposées être au format big endian.
Nom dans le registre IANA:UTF-32LE
Jeux de caractères:Unicode
Description: Voir ci-dessus.
Notes: Contrairement à UTF-32, les chaînes sont supposées être au format little endian.
Nom dans le registre IANA:UTF-16
Jeux de caractères:Unicode
Description: Format de transformation d'Unicode sur 16 bits. Il faut noter que UTF-16 n'est plus identique à UCS-2 car un mécanisme a été introduit en Unicode 2.0 et UTF-16 fait maintenant référence à un codage de 21 bits.
Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
Nom dans le registre IANA:UTF-16BE
Jeux de caractères:Unicode
Description: Voir ci-dessus.
Notes: Contrairement à UTF-16, les chaînes sont supposées être au format little endian.
Nom dans le registre IANA:UTF-16LE
Jeux de caractères:Unicode
Description: Voir ci-dessus.
Notes: Contrairement à UTF-16, les chaînes sont supposées être au format big endian.
Nom dans le registre IANA:UTF-8
Jeux de caractères:Unicode / UCS
Description: Format de transformation Unicode de 8 bits.
Notes:none
Nom dans le registre IANA:UTF-7
Jeux de caractères:Unicode
Description: Un format compatible avec le courrier électronique d'Unicode, spécifié dans » RFC2152.
Notes:none
Nom dans le registre IANA:aucun
Jeux de caractères:Unicode
Description: Une variante d'UTF-7 qui est spécialement utilisée dans le » protocole IMAP.
Notes:none
Nom dans le registre IANA: US-ASCII (recommandé) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII
Jeux de caractères:ASCII / ISO 646
Description: ASCII, American Standard Code for Information Interchange est un format classique de 7 bits. Il est aussi normalisé internationalement, sous le nom ISO 646.
Notes:(none)
Nom dans le registre IANA: EUC-JP (recommandé) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese
Jeux de caractères: Composé de US-ASCII / JIS X0201:1997 (hankaku kana) / JIS X0208:1990 / JIS X0212:1990
Description: Comme vous le voyez, le nom est dérivé de l'abréviation de Extended UNIX Code Packed Format for Japanese, ce jeu est essentiellement utilisé sur les plates-formes Unix. Le jeu original, Extended UNIX Code, est conçu sur la base de ISO 2022.
Notes: Le jeu identifié par EUC-JP est différent de IBM932 / CP932, qui est utilisé par OS/2® et Microsoft® Windows®. Pour échanger des informations avec ces plates-formes, utilisez EUCJP-WIN.
Nom dans le registre IANA:Shift_JIS (recommandé) / MS_Kanji / csShift_JIS
Jeux de caractères:Composé de JIS X0201:1997 / JIS X0208:1997
Description: Shift_JIS a été développé au début des années 80, et, au même moment, les premiers traitements de textes étaient mis sur le marché. Il a été fait pour conserver la compatibilité avec le jeu JIS X 0201:1976. Selon la définition de l'IANA, le jeu de caractères Shift_JIS est légèrement différent de IBM932 / CP932. Cependant, les noms "SJIS" et "Shift_JIS" sont souvent utilisés à tort, pour ces jeux.
Notes:Pour CP932, utilisez SJIS-WIN.
Nom dans le registre IANA:(none)
Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions
Description: Même si ce "jeu de caractères" utilise le même jeu que EUC-JP, il est en fait différent. Il a juste quelques caractères de différence.
Notes:none
Nom dans le registre IANA:Windows-31J / csWindows31J
Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions
Description: Même si ce "jeu de caractères" utilise le même jeu que Shift_JIS, il est en fait différent. Il a juste quelques caractères de différence.
Notes:(none)
Nom dans le registre IANA:ISO-2022-JP (recommandé) / csISO2022JP
Jeux de caractères: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983
Description:» RFC1468
Notes:aucun
Nom dans le registre IANA:JIS
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-1
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-2
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-3
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-4
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-5
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-6
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-7
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-8
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-9
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-10
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-13
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-14
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-8859-15
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:byte2be
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:byte2le
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:byte4be
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:byte4le
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:BASE64
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:HTML-ENTITIES
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:7bit
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:8bit
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:EUC-CN
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:CP936
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:HZ
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:EUC-TW
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:CP950
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:BIG-5
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:EUC-KR
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:UHC (CP949)
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:ISO-2022-KR
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:Windows-1251 (CP1251)
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:Windows-1252 (CP1252)
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:CP866 (IBM866)
Jeux de caractères:
Description:
Notes:
Nom dans le registre IANA:KOI8-R
Jeux de caractères:
Description:
Notes:


Cas des caractères japonais

Les caractères japonais ne peuvent être représentés qu'avec des encodages multi-octets et les standards d'encodage multiple sont utilisés suivant la plate-forme et le texte de référence. Pour facilité les choses, ces standards d'encodages diffèrent légèrement les uns des autres. Pour développer des applications Web en environnement japonais, le développeur devra garder à l'esprit ces complexités afin de s'assurer que l'encodage de caractères correct est utilisé.

  • La taille nécessaire à un caractère peut aller jusqu'à 4 octets.
  • Un caractère japonais multi-octets occupe généralement deux octets, à comparer avec les caractères mono-octet traditionnellement utilisés. Ces caractères sont appelés "zen-kaku", ce qui signifie "grande largeur". Les plus petits sont appelés "han-kaku", ce qui signifie "demi-largeur".
  • Certains encodages de caractères utilisent des séquences "shift" (escape) définies dans la référence ISO-2022 pour basculer vers la carte d'encodage du code spécifique (00h à 7fh).
  • ISO-2022-JP doit être utilisé pour les protocoles SMTP/NNTP, et les en-têtes ainsi que les entités devraient être réencodés en accord avec la RFC correspondante. Bien que cela ne soit pas requis, ça reste une bonne idée car beaucoup de user-agent (agents utilisateurs) populaires ne peuvent pas reconnaître d'autre méthode d'encodage.
  • Les pages Web créées pour les téléphones portables comme » i-mode, ou » EZweb sont supposées utiliser l'encodage Shift_JIS.



Entrées/Sorties HTTP

La conversion automatique des entrées/sorties HTTP peut aussi convertir des données binaires. Les utilisateurs doivent contrôler les conversions, si des données binaires doivent être utilisées via HTTP.

Note:

Depuis la version 4.3.2 de PHP, il y a une limitation dans l'utilisation des fonctionnalités mbstring : l'encodage ne sera pas effectué dans les données transmises en méthode POST si l'attribut enctype de la balise form vaut multipart/form-data. Donc, vous devrez convertir les données entrantes vous-même dans ce cas, si nécessaire.

Depuis la version 4.3.3 de PHP, si l'attribut enctype de la balise form vaut multipart/form-data et que la directive du php.ini est positionnée à On, les variables et les noms de fichiers téléchargés en méthode POST seront convertis avec l'encodage interne. Sinon, la conversion ne sera pas faite.

  • Entrée HTTP

    Il n'y a pas de moyens de contrôler la conversion des caractères HTTP en entrée, depuis un script PHP. Pour désactiver cette conversion, il faut le faire dès le fichier php.ini.

    Exemple #1 Désactive la conversion HTTP dans le php.ini

    ;; Disable HTTP Input conversion
    mbstring.http_input = pass
    ;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
    mbstring.encoding_translation = Off

    Lorsque vous utilisez PHP comme module Apache, il est possible d'annuler la configuration du php.ini pour chaque Virtual Host dans le fichier httpd.conf ou par dossier avec le fichier .htaccess. Reportez-vous à la section de configuration ainsi qu'au manuel Apache.

  • Sorties HTTP

    Il y a plusieurs moyens d'activer la conversion en sortie de script PHP. L'un d'entre eux utilise php.ini, un autre utilise ob_start() avec la fonction mb_output_handler() comme fonction de rappel.

Exemple #2 Exemple de configuration de mbstring dans php.ini

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Exemple #3 Exemple de script avec mbstring

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>



Jeux de caractères supportés

Actuellement, les jeux de caractères suivants sont supportés par mbstring. L'encodage de caractère peut être spécifié par les paramètres encoding dans les fonctions mbstring.

Les jeux de caractères suivants sont supportés par mbstring :

  • UCS-4*
  • UCS-4BE
  • UCS-4LE*
  • UCS-2
  • UCS-2BE
  • UCS-2LE
  • UTF-32*
  • UTF-32BE*
  • UTF-32LE*
  • UTF-16*
  • UTF-16BE*
  • UTF-16LE*
  • UTF-7
  • UTF7-IMAP
  • UTF-8*
  • ASCII*
  • EUC-JP*
  • SJIS*
  • eucJP-win*
  • SJIS-win*
  • ISO-2022-JP
  • JIS
  • ISO-8859-1*
  • ISO-8859-2*
  • ISO-8859-3*
  • ISO-8859-4*
  • ISO-8859-5*
  • ISO-8859-6*
  • ISO-8859-7*
  • ISO-8859-8*
  • ISO-8859-9*
  • ISO-8859-10*
  • ISO-8859-13*
  • ISO-8859-14*
  • ISO-8859-15*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC (CP949)
  • ISO-2022-KR
  • Windows-1251 (CP1251)
  • Windows-1252 (CP1252)
  • CP866 (IBM866)
  • KOI8-R*

* : encodages également utilisables dans les expressions rationnelles.

Toutes les entrées du php.ini qui acceptent un nom d'encodage peuvent également utiliser les valeurs "auto" et "pass". Les fonctions mbstring, qui acceptent des noms de jeux de caractères, peuvent également utiliser la valeur "auto".

Si "pass" est utilisée, aucune conversion n'est effectuée.

Si "auto" est défini, la liste sera étendue à la liste des encodages définis par NLS. Par exemple, si NLS vaut Japanese, les valeurs seront "ASCII,JIS,UTF-8,EUC-JP,SJIS".

Voir aussi mb_detect_order().



Exploitation des chaînes multi-octets en PHP

Vous pourriez trouver difficile de faire fonctionner une application PHP existante dans un environnement multi-octets. Ceci est dû au fait que la plupart des applications PHP sont écrites avec des fonctions de chaînes de caractères standards comme la fonction substr(), qui est connue pour ne pas gérer proprement les chaînes multi-octets.

Mbstring supporte aussi la surcharge de fonctions, pour permettre le support des chaînes multi-octets sans modifier les scripts PHP. En utilisant ce système de surcharge de fonctions, certaines fonctions PHP seront remplacées par leur équivalent de mbstring. Par exemple mb_substr() remplacera substr(). Ce système de remplacement transparent, permet un portage simple et efficace des applications.

Pour utiliser la surcharge de fonctions, définissez mbstring.func_overload, dans le php.ini, à une valeur positive qui représente une combinaison de masques d'octets spécifiant les catégories de fonctions à surcharger. Il doit être définit à 1 pour surcharger la fonction mail(), 2 pour les fonction de chaînes, 4 pour les fonctions d'expression rationnelles. Par exemple, avec la valeur 7, toutes les fonctions précédentes seront surchargées. Voici la liste complète des fonctions surchargées, avec leur fonction de remplacement.

Fonctions de remplacement
Valeur de mbstring.func_overload Fonction originale Fonction de remplacement
1 mail() mb_send_mail()
2 strlen() mb_strlen()
2 strpos() mb_strpos()
2 strrpos() mb_strrpos()
2 substr() mb_substr()
2 strtolower() mb_strtolower()
2 strtoupper() mb_strtoupper()
2 stripos() mb_stripos()
2 strripos() mb_strripos()
2 strstr() mb_strstr()
2 stristr() mb_stristr()
2 strrchr() mb_strrchr()
2 substr_count() mb_substr_count()
4 ereg() mb_ereg()
4 eregi() mb_eregi()
4 ereg_replace() mb_ereg_replace()
4 eregi_replace() mb_eregi_replace()
4 split() mb_split()

Note:

Il n'est pas recommandé d'utiliser le remplacement des fonctions mbstring dans un contexte de per-directory, car il n'est pas confirmé encore qu'elles sont suffisamment stables dans un environnement de production et peuvent conduire à des résultats incohérents.



Prérequis de l'encodage en PHP

Les jeux de caractères suivants sont bien supportés par PHP.

  • Jeux de caractères mono-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.

  • Jeux de caractères multi-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.
    • qui n'utilisent pas les séquences de type ISO2022.
    • qui n'utilisent pas de valeur dans l'intervalle 00h à 7fh dans les séquences composées, qui représentent un caractère unique.

Les jeux de caractères suivants risquent de ne pas fonctionner en PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Même si aucun script PHP écrit avec ces jeux de caractères ne fonctionne, notamment si des chaînes encodées sont utilisées comme identifiants, ou valeurs littérales dans le script, vous pouvez éviter d'utiliser ces jeux en activant le filtre transparent mbstring pour les données d'entrées HTTP.

Note:

Il est déconseillé d'utiliser les jeux SJIS, BIG5, CP936, CP949 et GB18030 pour l'encodage interne, à moins que vous ne soyez très familiers avec l'analyseur, l'exécuteur et le jeu de caractère lui-même.

Note:

Si vous vous connectez à une base de données avec PHP, il est recommandé d'utiliser le même jeu de caractères pour la base de données et pour le jeu interne pour améliorer le confort d'utilisation mais aussi les performances.

Si vous utilisez PostGreSQL, le jeu de caractères utilisé dans la base de données et celui de PHP peuvent différer car cette base supporte la traduction automatique de jeu de caractères.



Fonctions sur les chaînes de caractères multi-octets

Références

Les jeux de caractères multi-octets et leurs techniques sont très complexes et ne peuvent être traités totalement dans cette documentation. Reportez-vous aux URL suivantes pour d'autres ressources complémentaires :


mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3)

mb_check_encodingVérifie si une chaîne est valide pour un encodage spécifique

Description

bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )

Vérifie si le flux d'octets est valide pour l'encodage spécifique.

Liste de paramètres

var

Le flux d'octets à vérifier. Si elle est omise, cette fonction vérifie toutes les entrées depuis le début de la requête.

encoding

Encodage attendu.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_caseModifie la casse d'une chaîne

Description

string mb_convert_case ( string $str , int $mode = MB_CASE_UPPER [, string $encoding = mb_internal_encoding() ] )

Effectue la modification de la casse de la chaîne spécifiée, suivant le mode spécifié.

Liste de paramètres

str

La chaîne à convertir.

mode

Le mode de conversion. Peut être un parmi : MB_CASE_UPPER, MB_CASE_LOWER, ou MB_CASE_TITLE.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne dont la casse a été changée, suivant le mode fourni.

Unicode

Contrairement aux fonctions standards comme strtolower() et strtoupper(), la modification est réalisée en se basant sur le dictionnaire Unicode. Par conséquent, le comportement de cette fonction n'est pas modifié par des configurations locales, et il peut convertir n'importe quelle caractère qui a des propriétés alphabétiques, comme le a majuscule tréma (A-umlaut, Ä).

Pour plus d'informations sur les propriétés de l'Unicode, visitez le site de » http://www.unicode.org/unicode/reports/tr21/.

Exemples

Exemple #1 Exemple avec mb_convert_case()

<?php
$str 
"mary had a Little lamb and she loved it so";
$str mb_convert_case($strMB_CASE_UPPER"UTF-8");
echo 
$str// Affiche : MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str mb_convert_case($strMB_CASE_TITLE"UTF-8");
echo 
$str// Affiche : Mary Had A Little Lamb And She Loved It So
?>

Exemple #2 Exemple avec mb_convert_case() avec du texte UTF-8 non latin

<?php
$str 
"Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str mb_convert_case($strMB_CASE_UPPER"UTF-8");
echo 
$str// Affiche ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ
$str mb_convert_case($strMB_CASE_TITLE"UTF-8");
echo 
$str// Affiche Τάχιστη Αλώπηξ Βαφήσ Ψημένη Γη, Δρασκελίζει Υπέρ Νωθρού Κυνόσ
?>

Voir aussi



mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encodingConversion d'encodage

Description

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )

Convertit la chaîne str depuis l'encodage from_encoding vers l'encodage to_encoding.

Liste de paramètres

str

La chaîne à encoder.

to_encoding

Le type d'encodage utilisé pour la conversion de la chaîne str.

from_encoding

Spécifié par le nom de code des caractères, avant la conversion. Il est soit un tableau, ou une liste séparée par une virgule. Si from_encoding n'est pas spécifié, l'encodage interne sera utilisé.

Voir les encodages supportés.

Valeurs de retour

La chaîne encodée.

Exemples

Exemple #1 Exemple avec mb_convert_encoding()

<?php
/* Convertit l'encodage interne vers SJIS */
$str mb_convert_encoding($str"SJIS");

/* Convertit EUC-JP en UTF-7 */
$str mb_convert_encoding($str"UTF-7""EUC-JP");

/* Détecte automatiquement un encodage entre JIS, eucjp-win ou sjis-win,
   Puis convertit en UCS-2LE */
$str mb_convert_encoding($str"UCS-2LE""JIS, eucjp-win, sjis-win");

/* "auto" signifie "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str mb_convert_encoding($str"EUC-JP""auto");
?>

Voir aussi



mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kanaConvertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)

Description

string mb_convert_kana ( string $str [, string $option = "KV" [, string $encoding ]] )

Effectue une conversion "han-kaku" - "zen-kaku" sur la chaîne str. Cette fonction est uniquement utile pour les japonais.

Liste de paramètres

str

La chaîne à convertir.

option

L'option de conversion.

Spécifiez les conversions en combinant les valeurs suivantes.

Options de conversions disponibles
Option Signification
r Convertit l'alphabet "zen-kaku" en "han-kaku"
R Convertit l'alphabet "han-kaku" en "zen-kaku"
n Convertit les nombres "zen-kaku" en "han-kaku"
N Convertit les nombres "han-kaku" en "zen-kaku"
a Convertit les nombres et alphabet "zen-kaku" en "han-kaku"
A Convertit les nombres et alphabet "zen-kaku" en "han-kaku". (Les caractères inclus dans les options "a", "A" sont U+0021 - U+007E en excluant U+0022, U+0027, U+005C, U+007E)
s Convertit "zen-kaku" en "han-kaku" (U+3000 -> U+0020)
S Convertit "han-kaku" en "zen-kaku" (U+0020 -> U+3000)
k Convertit "zen-kaku kata-kana" en "han-kaku kata-kana"
K Convertit "han-kaku kata-kana" en "zen-kaku kata-kana"
h Convertit "zen-kaku hira-gana" en "han-kaku kata-kana"
H Convertit "han-kaku kata-kana" en "zen-kaku hira-gana"
c Convertit "zen-kaku kata-kana" en "zen-kaku hira-gana"
C Convertit "zen-kaku hira-gana" en "zen-kaku kata-kana"
V Supprime les notations vocales, et les convertit en caractères. À utiliser avec "K","H"

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne convertie.

Exemples

Exemple #1 Exemple avec mb_convert_kana()

<?php
/* Convertit tous les "kana" en "zen-kaku" "kata-kana" */
$str mb_convert_kana($str"KVC");

/* Convertit "han-kaku" "kata-kana" en "zen-kaku" "kata-kana"
   et "zen-kaku" alpha-numeric en "han-kaku" */
$str mb_convert_kana($str"KVa");
?>



mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_variablesConvertit l'encodage de variables

Description

string mb_convert_variables ( string $to_encoding , mixed $from_encoding , mixed &$vars [, mixed &$... ] )

Convertit l'encodage des variables vars depuis l'encodage from_encoding vers l'encodage to_encoding

mb_convert_variables() place les chaînes dans un tableau ou un objet pour détecter l'encodage, mais la détection a tendance à échouer pour les chaînes de caractères de petites tailles. De ce fait, il est impossible de mixer les encodages dans un tableau ou un objet "simple".

Liste de paramètres

to_encoding

L'encodage dans lequel la chaîne doit être convertie.

from_encoding

from-encoding est une liste d'encodages possibles pour les variables vars, fourni sous forme d'un tableau ou d'une liste d'encodages, séparés par des virgules. Si from_encoding est omis, les encodages fournis dans mb_detect_order() sont utilisés.

vars

vars est une référence sur une variable à convertir. Les chaînes, tableaux et objets sont aussi supportés. mb_convert_variables() prend tous ces paramètres avec le même encodage.

...

Variables additionnelles.

Valeurs de retour

L'encodage avant conversion en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mb_convert_variables()

<?php
/* Convertit les variables $post1, $post2 en encodage interne */
$interenc mb_internal_encoding();
$inputenc mb_convert_variables($interenc"ASCII,UTF-8,SJIS-win"$post1$post2);
?>



mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_mimeheaderDécode un en-tête MIME

Description

string mb_decode_mimeheader ( string $str )

Décode la chaîne encodée str dans l'en-tête MIME.

Liste de paramètres

str

La chaîne à décoder.

Valeurs de retour

La chaîne décodée, avec un encodage interne.

Voir aussi



mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_numericentityDécode les entités HTML en caractères

Description

string mb_decode_numericentity ( string $str , array $convmap , string $encoding )

Convertit la chaîne d'entités HTML str en chaîne.

Liste de paramètres

str

La chaîne à décoder.

convmap

convmapest un tableau qui spécifie les codes à convertir.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne convertie.

Exemples

Exemple #1 Exemple avec convmap

$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Spécifie les valeurs Unicode de début (start_codeN) et fin (end_codeN)
// Ajoutez offsetN à la valeur, et faites un ET bit-à-bit avec maskN, puis
// il convertit la valeur obtenue en entité numérique

Voir aussi



mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_encodingDétecte un encodage

Description

string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] )

Détecte l'encodage utilisé par la chaîne str.

Liste de paramètres

str

La chaîne à analyser.

encoding_list

encoding_list est une liste d'encodages, sous forme de tableau, ou bien de chaîne, les valeurs étant séparées par des virgules.

Si encoding_list est omis, l'ordre spécifié par mb_detect_order() est utilisé.

strict

strict spécifie si l'on doit utiliser une détection de l'encodage strict ou non. Par défaut, vaut FALSE.

Valeurs de retour

L'encodage détecté ou FALSE si l'encodage ne peut être détecté pour la chaîne de caractères donnée.

Exemples

Exemple #1 Exemple avec mb_detect_encoding()

<?php
/* Détecte l'encodage avec les valeurs par défaut */
echo mb_detect_encoding($str);

/* "auto" est modifié suivant mbstring.language */
echo mb_detect_encoding($str"auto");

/* Spécifie une liste d'encodages possibles avec une liste à virgules */
echo mb_detect_encoding($str"JIS, eucjp-win, sjis-win");

/* Spécifie une liste d'encodages possibles avec un tableau  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo 
mb_detect_encoding($str$ary);
?>

Voir aussi



mb_detect_order

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_orderLit/modifie l'ordre de détection des encodages

Description

mixed mb_detect_order ([ mixed $encoding_list ] )

Remplace l'ordre de détection des encodages courant par encoding_list.

Liste de paramètres

encoding_list

encoding_list est un tableau, ou une liste d'encodages séparés par une virgule. Voir les encodages supportés.

Si encoding_list est omis, mb_detect_order() retourne l'ordre de détection courant des encodages dans un tableau.

Ce paramétrage affecte les fonctions mb_detect_encoding() et mb_send_mail().

Actuellement, mbstring supporte les filtres de détections ci-dessous. Si une séquence d'octets est invalide pour l'un des filtres suivants, la détection échouera.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

Pour ISO-8859-*, mbstring détecte toujours ISO-8859-*.

Pour UTF-16, UTF-32, UCS2 et UCS4 la détection échouera toujours.

Exemple #1 Exemple d'ordre de détection inutile

; Toujours détecté comme ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Toujours détecté comme UTF-8, depuis que les valeurs ASCII/UTF-7
; sont valides pour UTF-8
detect_order = UTF-8, ASCII, UTF-7

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #2 Exemple avec mb_detect_order()

<?php
/* Remplace l'ordre de détection par une liste énumérée */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Remplace l'ordre de détection par un tableau */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Affiche l'ordre de détection courant */
echo implode(", "mb_detect_order());
?>

Voir aussi



mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_mimeheaderEncode une chaîne pour un en-tête MIM

Description

string mb_encode_mimeheader ( string $str [, string $charset [, string $transfer_encoding [, string $linefeed [, int $indent ]]]] )

Encode la chaîne str en un en-tête MIME.

Liste de paramètres

str

La chaîne à encoder.

charset

charset est le nom de l'encodage utilisé par la chaîne str. La valeur par défaut est déterminée par les paramètres courants du NLS (mbstring.language). mb_internal_encoding() doit être le même encodage.

transfer_encoding

transfer_encoding est l'encodage de transfert. Il peut être "B" (Base64) ou "Q" (Quoted-Printable). Par défaut, c'est "B".

linefeed

linefeed spécifie les fins de lignes (EOF : end-of-line) utilisées par mb_encode_mimeheader() pour formater la chaîne (une » RFC définie la longueur d'une chaîne à partir de laquelle on doit ajouter une fin de ligne. La longueur courante est 74 caractères). La valeur par défaut est "\r\n" (CRLF).

indent

Indentation de la première ligne (nombre de caractères dans l'en-tête avant la chaîne str).

Valeurs de retour

Une version convertie de la chaîne en ASCII.

Historique

Version Description
5.0.0 Le paramètre indent a été ajouté.

Exemples

Exemple #1 Exemple avec mb_encode_mimeheader()

<?php
$name 
""// kanji
$mbox "kru";
$doma "gtinn.mon";
$addr mb_encode_mimeheader($name"UTF-7""Q") . " <" $mbox "@" $doma ">";
echo 
$addr;
?>

Notes

Note:

Cette fonction n'est pas faite pour couper les lignes en milieu de mots. Ce comportement peut ajouter des espaces non désirées dans un mot de la chaîne originale.

Voir aussi



mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_numericentityEncode des entités HTML

Description

string mb_encode_numericentity ( string $str , array $convmap , string $encoding )

Convertit la chaîne str depuis l'encodage interne en codes numériques HTML

Liste de paramètres

str

La chaîne à encoder.

convmap

convmap est un tableau qui spécifie les codes à convertir.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne convertie.

Exemples

Exemple #1 Exemple avec convmap

$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Spécifie les valeurs Unicode de début (start_codeN) et fin (end_codeN)
// Ajoutez offsetN à la valeur, et faites un ET bit-à-bit avec maskN, puis
// il convertit la valeur obtenue en entité numérique

Exemples

Exemple #2 Exemple avec mb_encode_numericentity()

<?php
/* Convertit du ISO-8859-1 en entités HTML */
$convmap = array(0x800xff00xff);
$str mb_encode_numericentity($str$convmap"ISO-8859-1");

/* Convertit du code SJIS-win (uniquement le bloc 95-104) en entités numériques */
$convmap = array(
       
0xe0000xe03e0x10400xffff,
       
0xe03f0xe0bb0x10410xffff,
       
0xe0bc0xe0fa0x10840xffff,
       
0xe0fb0xe1770x10850xffff,
       
0xe1780xe1b60x10c80xffff,
       
0xe1b70xe2330x10c90xffff,
       
0xe2340xe2720x110c0xffff,
       
0xe2730xe2ef0x110d0xffff,
       
0xe2f00xe32e0x11500xffff,
       
0xe32f0xe3ab0x11510xffff );
$str mb_encode_numericentity($str$convmap"sjis-win");
?>

Voir aussi



mb_encoding_aliases

(PHP 5 >= 5.3.0)

mb_encoding_aliasesRécupère les aliases d'un type d'encodage connu

Description

array mb_encoding_aliases ( string $encoding )

Retourne un tableau d'aliases pour un type connu d'encodage.

Liste de paramètres

encoding

Le type d'encodage à vérifier, pour les aliases.

Valeurs de retour

Retourne un tableau indexé numériquement contenant les aliases de l'encodage en cas de succès, ou FALSE si une erreur survient

Erreurs / Exceptions

Emits an E_WARNING level error if encoding is unknown.

Exemples

Exemple #1 Exemple avec mb_encoding_aliases()

<?php
$encoding        
'ASCII';
$known_encodings mb_list_encodings();

if (
in_array($encoding$known_encodings)) {

    
$aliases mb_encoding_aliases($encoding);
    
print_r($aliases);

} else {

    echo 
"Encodage ($encoding) inconnu.\n";

}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => ANSI_X3.4-1968
    [1] => iso-ir-6
    [2] => ANSI_X3.4-1986
    [3] => ISO_646.irv:1991
    [4] => US-ASCII
    [5] => ISO646-US
    [6] => us
    [7] => IBM367
    [8] => cp367
    [9] => csASCII
)

Voir aussi



mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_matchExpression rationnelle POSIX pour les chaînes multi-octets

Description

bool mb_ereg_match ( string $pattern , string $string [, string $option = "msr" ] )

Exécute l'expression rationnelle POSIX pour les chaînes multi-octets.

Liste de paramètres

pattern

L'expression rationnelle.

string

La chaîne à évaluer.

option

Valeurs de retour

string retourne TRUE si string vérifie l'expression rationnelle pattern, FALSE sinon.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets



mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_replaceRemplace des segments de chaîne à l'aide des expressions rationnelles

Description

string mb_ereg_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )

Recherche dans la chaîne string des occurrences correspondant au motif pattern, puis, les remplace avec le texte de remplacement replacement.

Liste de paramètres

pattern

L'expression rationnelle.

Les caractères multioctets peuvent être utilisés dans pattern.

replacement

Le texte de remplacement.

string

La chaîne à analyser.

option
Des options de recherches peuvent être configurées avec le paramètre option. Si i est spécifié, la casse sera ignorée. Si x est spécifié, les espaces blancs seront ignorés. Si m est spécifié, la recherche se fera en mode multiligne, et les nouvelles lignes seront incluses dans le joker .. Si p est spécifié, la recherche se fera en mode POSIX, les nouvelles lignes seront considérées comme des caractères normaux. Si e est spécifiée, replacement sera évaluée comme une expression PHP.

Valeurs de retour

La chaîne résultante en cas de succès, ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Avertissement

N'utilisez jamais l'option e lorsque vous travaillez avec des données entrantes. Aucune protection automatique n'est appliquée (sous la forme de la fonction preg_replace()). Si vous omettez cette étape, vous allez certainement crée des failles dans votre application.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_eregi_replace() - Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse



mb_ereg_search_getpos

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_getposRetourne la position du début du prochain segment repéré par une expression rationnelle

Description

int mb_ereg_search_getpos ( void )

Retourne la position du début du prochain segment repéré par une expression rationnelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

mb_ereg_search_getpos() retourne la position du prochain segment de code qui correspond au masque utilisé dans mb_ereg_search(), mb_ereg_search_pos() et mb_ereg_search_regs(). La position est le nombre de caractères depuis le début de la chaîne.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi



mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_getregsLit le dernier segment de chaîne multi-octets qui correspond au masque

Description

array mb_ereg_search_getregs ( void )

Lit le dernier segment de chaîne multi-octets qui correspond au masque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

un tableau incluant toutes les sous-chaînes qui ont été trouvées par mb_ereg_search(), mb_ereg_search_pos() et mb_ereg_search_regs(). S'il y a une solution qui a été trouvée, le premier élément sera la sous-chaîne trouvée, le second représentera la première parenthèse capturante, le troisième représentera la deuxième parenthèse capturante, etc. Cette fonction retourne FALSE en cas d'erreur.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets



mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_initConfigure les chaînes et les expressions rationnelles pour le support des caractères multi-octets

Description

bool mb_ereg_search_init ( string $string [, string $pattern [, string $option = "msr" ]] )

mb_ereg_search_init() configure string et pattern pour supporter les expressions rationnelles multi-octets. Ces valeurs sont utilisées par mb_ereg_search(), mb_ereg_search_pos() et mb_ereg_search_regs().

Liste de paramètres

string

La chaîne à chercher.

pattern

Le masque de recherche.

option

L'option de recherche.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg_search_regs() - Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets



mb_ereg_search_pos

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_posRetourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle

Description

array mb_ereg_search_pos ([ string $pattern [, string $option = "ms" ]] )

Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle.

La chaîne à utiliser est spécifiée par mb_ereg_search_init(). Si elle n'est pas spécifiée, la précédente sera utilisée.

Liste de paramètres

pattern

Le masque de recherche.

option

Les options de recherche.

Valeurs de retour

Un tableau contenant la position et la taille du segment repéré grâce à l'expression rationnelle. Le premier élément du tableau retourné doit être le début du segment, et le second est la taille du segment, exprimée en octets. Cette fonction retourne FALSE en cas d'erreur.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets



mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_regsRetourne le segment de chaîne trouvé par une expression rationnelle multi-octets

Description

array mb_ereg_search_regs ([ string $pattern [, string $option = "ms" ]] )

Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets.

Liste de paramètres

pattern

Le masque de recherche.

option

Les options de recherche.

Valeurs de retour

mb_ereg_search_regs() exécute l'expression rationnelle pattern, et, si un segment de chaîne correspond, elle le retourne dans un tableau, dont le premier élément est le segment de chaîne trouvé, le deuxième le contenu de la première parenthèse capturante, le troisième le contenu de la seconde parenthèse capturante, etc. La fonction retourne FALSE en cas d'erreur.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets



mb_ereg_search_setpos

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_setposChoisit le point de départ de la recherche par expression rationnelle

Description

bool mb_ereg_search_setpos ( int $position )

mb_ereg_search_setpos() choisit le point de départ de la recherche que va effectuer la fonction mb_ereg_search().

Liste de paramètres

position

La position à définir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets




mb_ereg

(PHP 4 >= 4.2.0, PHP 5)

mb_eregRecherche par expression rationnelle avec support des caractères multi-octets

Description

int mb_ereg ( string $pattern , string $string [, array $regs ] )

Recherche par expression rationnelle avec support des caractères multi-octets.

Liste de paramètres

pattern

Le masque de recherche.

string

La chaîne sur laquelle porte la recherche.

regs

Contient une sous-chaîne de la chaîne string.

Valeurs de retour

Exécute l'expression rationnelle pattern avec le support des caractères multi-octets sur la chaîne string. mb_ereg() retourne 1 si des segments de chaîne qui vérifient le masque ont été trouvés. Le troisième paramètre est optionnel. S'il est fourni, mb_ereg() retournera la taille du segment de chaîne identifié, regs contient les sous-chaînes. Si rien n'est trouvé, la fonction retourne FALSE.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_eregi() - Expression rationnelle insensible à la casse avec le support des caractères multi-octets



mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5)

mb_eregi_replaceExpression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse

Description

string mb_eregi_replace ( string $pattern , string $replace , string $string [, string $option = "msri" ] )

Analyse la chaîne string avec le masque d'expression rationnelle pattern, puis remplace le texte trouvé par replacement.

Liste de paramètres

pattern

L'expression rationnelle. Les caractères multioctets peuvent être utilisés. La casse sera ignorée.

replace

Le texte de substitution.

string

La chaîne recherchée.

option
option a la même signification que pour la fonction mb_ereg_replace().

Valeurs de retour

La chaîne résultante, ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Avertissement

N'utilisez jamais l'option e lorsque vous travaillez avec des données entrantes. Aucune protection automatique n'est appliquée (sous la forme de la fonction preg_replace()). Si vous omettez cette étape, vous allez certainement crée des failles dans votre application.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg_replace() - Remplace des segments de chaîne à l'aide des expressions rationnelles



mb_eregi

(PHP 4 >= 4.2.0, PHP 5)

mb_eregiExpression rationnelle insensible à la casse avec le support des caractères multi-octets

Description

int mb_eregi ( string $pattern , string $string [, array $regs ] )

Exécute l'expression rationnelle insensible à la casse avec le support des caractères multi-octets.

Liste de paramètres

pattern

L'expression rationnelle.

string

La chaîne à chercher.

regs

Contient une sous-chaîne à chercher.

Valeurs de retour

Exécute l'expression rationnelle pattern avec le support des caractères multi-octets sur la chaîne string. mb_eregi() ignore la casse dans ses recherches. mb_ereg() retourne 1 si des segments de chaîne qui vérifient le masque ont été trouvé. Le troisième paramètre est optionnel. S'il est fournit, mb_ereg() retournera la taille du segment de chaîne identifié, regs contient les sous-chaînes. Si rien n'est trouvé, la fonction retourne FALSE.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets



mb_get_info

(PHP 4 >= 4.2.0, PHP 5)

mb_get_infoLit la configuration interne de l'extension mbstring

Description

mixed mb_get_info ([ string $type = "all" ] )

mb_get_info() lit la configuration interne de l'extension mbstring.

Liste de paramètres

type

Si type n'est pas demandé explicitement, ou s'il vaut "all", un tableau contenant les éléments "internal_encoding", "http_output", "http_input" et "func_overload", "mail_charset", "mail_header_encoding", "mail_body_encoding" sera retourné.

Si type est spécifié, et s'il vaut "http_output", "http_input", "internal_encoding" ou "func_overload", la paramètre demandé sera retourné.

Valeurs de retour

Un tableau d'informations si type n'est pas spécifié, sinon, un type spécifique.

Historique

Version Description
5.1.3 Les types d'élément "mail_charset", "mail_header_encoding", et "mail_body_encoding" sont maintenant disponibles.
5.3.0 L'élément "http_output_conv_mimetypes" a été ajouté.

Voir aussi



mb_http_input

(PHP 4 >= 4.0.6, PHP 5)

mb_http_inputDétecte le type d'encodage d'un caractère HTTP

Description

mixed mb_http_input ([ string $type = "" ] )

Détecte le type d'encodage d'un caractère HTTP.

Liste de paramètres

type

Le paramètre type spécifie le type d'entrée HTTP. Il peut prendre l'une des valeurs suivantes : "G" pour GET, "P" pour POST, "C" pour COOKIE, "S" pour chaîne de caractères, "L" pour la liste, "l" pour la liste complète (retournera un tableau). Si type est omis, il prend la valeur du dernier type utilisé.

Valeurs de retour

Le nom de l'encodage des caractères. Si mb_http_input() ne traite pas l'entrée HTTP spécifiée, elle retournera FALSE.

Voir aussi



mb_http_output

(PHP 4 >= 4.0.6, PHP 5)

mb_http_outputLit/modifie l'encodage d'affichage

Description

mixed mb_http_output ([ string $encoding ] )

Lit/modifie l'encodage d'affichage. La sortie de cette fonction sera convertie dans l'encodage spécifié par le paramètre encoding.

Liste de paramètres

encoding

Si encoding est fourni, mb_http_output() utilisera dorénavant l'encodage encoding pour les affichages HTTP : les caractères qui seront envoyés aux clients web seront convertis dans le jeu de caractères encoding.

Si encoding est omis, mb_http_output() retourne l'encodage d'affichage courant.

Valeurs de retour

Si le paramètre encoding est omis, mb_http_output() retourne l'encodage courant HTTP. Sinon, Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encodingLit/modifie l'encodage interne

Description

mixed mb_internal_encoding ([ string $encoding = mb_internal_encoding() ] )

Lit/modifie l'encodage interne.

Liste de paramètres

encoding

encoding sert lors des conversions des chaînes en provenance et en direction du web, ainsi que lors de la création de chaînes avec le module mbstring.

Valeurs de retour

Si encoding est fourni, Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si encoding est omis, mb_internal_encoding() retourne le nom de l'encodage courant.

Exemples

Exemple #1 Exemple avec mb_internal_encoding()

<?php
/* Utilise l'encodage interne UTF-8 */
mb_internal_encoding("UTF-8");

/* Affiche l'encodage interne courant */
echo mb_internal_encoding();
?>

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi



mb_language

(PHP 4 >= 4.0.6, PHP 5)

mb_languageLit/modifie le langage courant

Description

mixed mb_language ([ string $language ] )

Lit/modifie le langage courant.

Liste de paramètres

language

Sert à encoder les messages électroniques. Les langages valides sont : "Japanese" (japonais), "ja" (japonais), "English" (anglais), "en" (anglais) et "uni" (UTF-8). mb_send_mail() utilise cette option pour encoder les emails.

Le langage et sa configuration valent ISO-2022-JP/Base64 pour le japonais, UTF-8/Base64 pour l'UTF-8 et ISO-8859-1/quoted printable pour l'anglais.

Valeurs de retour

Si language est fourni et est valide, mb_language() retourne TRUE. Sinon, elle retourne FALSE. Lorsque le paramètre language est omis, mb_language() retourne le nom du langage courant, sous forme de chaîne. Si aucun langage n'a été configuré, mb_language() retourne FALSE.

Voir aussi



mb_list_encodings

(PHP 5)

mb_list_encodingsRetourne un tableau contenant tous les encodages supportés

Description

array mb_list_encodings ( void )

Retourne un tableau contenant tous les encodages supportés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé numériquement.

Erreurs / Exceptions

Cette fonction n'émet aucune erreur.

Exemples

Exemple #1 Exemple avec mb_list_encodings()

<?php

print_r
(mb_list_encodings());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => pass
    [1] => auto
    [2] => wchar
    [3] => byte2be
    [4] => byte2le
    [5] => byte4be
    [6] => byte4le
    [7] => BASE64
    [8] => UUENCODE
    [9] => HTML-ENTITIES
    [10] => Quoted-Printable
    [11] => 7bit
    [12] => 8bit
    [13] => UCS-4
    [14] => UCS-4BE
    [15] => UCS-4LE
    [16] => UCS-2
    [17] => UCS-2BE
    [18] => UCS-2LE
    [19] => UTF-32
    [20] => UTF-32BE
    [21] => UTF-32LE
    [22] => UTF-16
    [23] => UTF-16BE
    [24] => UTF-16LE
    [25] => UTF-8
    [26] => UTF-7
    [27] => UTF7-IMAP
    [28] => ASCII
    [29] => EUC-JP
    [30] => SJIS
    [31] => eucJP-win
    [32] => SJIS-win
    [33] => JIS
    [34] => ISO-2022-JP
    [35] => Windows-1252
    [36] => ISO-8859-1
    [37] => ISO-8859-2
    [38] => ISO-8859-3
    [39] => ISO-8859-4
    [40] => ISO-8859-5
    [41] => ISO-8859-6
    [42] => ISO-8859-7
    [43] => ISO-8859-8
    [44] => ISO-8859-9
    [45] => ISO-8859-10
    [46] => ISO-8859-13
    [47] => ISO-8859-14
    [48] => ISO-8859-15
    [49] => EUC-CN
    [50] => CP936
    [51] => HZ
    [52] => EUC-TW
    [53] => BIG-5
    [54] => EUC-KR
    [55] => UHC
    [56] => ISO-2022-KR
    [57] => Windows-1251
    [58] => CP866
    [59] => KOI8-R
)



mb_output_handler

(PHP 4 >= 4.0.6, PHP 5)

mb_output_handlerFonction de traitement des affichages

Description

string mb_output_handler ( string $contents , int $status )

mb_output_handler() est la fonction à fournir à ob_start(). mb_output_handler() convertit les caractères envoyés au client dans l'encodage paramétré avec mb_http_output().

Liste de paramètres

contents

Le contenu du buffer de sortie.

status

Le statut du buffer de sortie.

Valeurs de retour

La chaîne convertie.

Historique

Version Description
4.1.0

Ajoute un en-tête HTTP de jeu de caractères, en suivant ces conditions :

  • Content-Type n'a pas été défini par la fonction header().
  • Le type MIME par défaut commence alors par text/.
  • La configuration mbstring.http_input est différente de pass.

Exemples

Exemple #1 Exemple avec mb_output_handler()

<?php
mb_http_output
("UTF-8");
ob_start("mb_output_handler");
?>

Notes

Note:

Si vous souhaitez envoyer des données binaires telles des images issues d'un script PHP 4.3.0 ou suivante, Content-Type: header doit être envoyé en utilisant la fonction header() avant d'envoyer les données binaires au client (e.g. header("Content-Type: image/png")). Si Content-Type: header est envoyé, la conversion de l'encodage de sortie ne sera pas effectuée.

Notez que si Content-Type: text/* est envoyé en utilisant la fonction header(), les données envoyées seront considérées comme du texte, et la conversion sera effectuée en utilisant le jeu de caractères associé.

Si vous souhaitez envoyer des données binaires telles des images issues d'un script PHP, vous devez spécifier l'encodage spécial "pass", avec la fonction mb_http_output().

Voir aussi

  • ob_start() - Enclenche la tamporisation de sortie



mb_parse_str

(PHP 4 >= 4.0.6, PHP 5)

mb_parse_strAnalyse les données HTTP GET/POST/COOKIE et assigne les variables globales

Description

bool mb_parse_str ( string $encoded_string [, array &$result ] )

Analyse les données d'entrées HTTP GET/POST/COOKIE et assigne les variables globales. Étant donné que PHP ne fournit pas de valeurs brutes de POST/COOKIE, cette fonction n'est utilisable que sur les données en méthode GET. mb_parse_str() prend les données de l'URL appelante, détecte le jeu de caractères, convertit les données en jeu de caractères interne, et affecte les valeurs au tableau de variables globales.

Liste de paramètres

encoded_string

Les données encodées URL.

result

Un tableau contenant les valeurs décodées, et les noms des jeux de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5)

mb_preferred_mime_nameDétecte l'encodage MIME

Description

string mb_preferred_mime_name ( string $encoding )

Récupère le nom de l'encodage MIME d'une chaîne.

Liste de paramètres

encoding

L'encodage à vérifier.

Valeurs de retour

Le nom de l'encodage MIME pour l'encodage encoding.

Exemples

Exemple #1 Exemple avec mb_preferred_mime_name()

<?php
$outputenc 
"sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" mb_preferred_mime_name($outputenc));
?>



mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5)

mb_regex_encodingRetourne le jeu de caractères courant pour les expressions rationnelles

Description

mixed mb_regex_encoding ([ string $encoding ] )

Retourne le jeu de caractères courant pour les expressions rationnelles.

Liste de paramètres

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne le jeu de caractères courant pour les expressions rationnelles.

Voir aussi



mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5)

mb_regex_set_optionsLit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets

Description

string mb_regex_set_options ([ string $options = "msr" ] )

Configure les options par défaut avec les nouvelles valeurs contenues dans options, pour les fonctions d'expression rationnelle à support de caractères multi-octets.

Liste de paramètres

options

Les options à définir, sous la forme d'une chaîne dont chaque caractère est une option. Pour définir un mode, vous devez placer le caractère représentant ce mode en dernier, le reste des caractères sera les options. Vous ne pouvez définir qu'un seul mode, alors que vous pouvez définir plusieurs options.

Options pour l'expression
Option Signification
i Active l'ambiguïté
x Active les masques étendus
m Le caractère '.' correspond également à de nouvelles lignes
s '^' -> '\A', '$' -> '\Z'
p Identique aux options m et s
l Trouve la plus longue correspondance
n Ignore les correspondances vides
e Utilise la fonction eval() sur le résultat
Modes de syntaxe de l'expression rationnelle
Mode Signification
j Java (Sun java.util.regex)
u GNU regex
g grep
c Emacs
r Ruby
z Perl
b POSIX Basic regex
d POSIX Extended regex

Valeurs de retour

Retourne la configuration précédente. Si options est omise, la fonction retourne la chaîne qui décrit les options courantes.

Voir aussi

  • mb_split() - Scinde une chaîne en tableau avec une expression rationnelle multi-octets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets
  • mb_eregi() - Expression rationnelle insensible à la casse avec le support des caractères multi-octets



mb_send_mail

(PHP 4 >= 4.0.6, PHP 5)

mb_send_mailEnvoie un mail encodé

Description

bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL ]] )

Envoie un courrier électronique. Les en-têtes et le corps du message sont convertis et encodés en accord avec mb_language(). mb_send_mail() est une version adaptée de mail(). Voir la fonction mail() pour plus de détails.

Liste de paramètres

to

to est l'adresse de destination du mail. Les adresses multiples peuvent être spécifiées en les séparant par des virgules. Ce paramètre n'est pas encodé automatiquement.

subject

Le sujet du mail.

message

Le message du mail.

additional_headers

La chaîne additional_headers est insérée à la fin de l'en-tête mail. Elle sert à ajouter d'autres en-têtes email. N'oubliez pas de les séparer par des nouvelles lignes ("\n").

additional_parameter

additional_parameter est une ligne de paramètres MTA. Il est pratique lorsque vous voulez définir un Return-Path correct lorsque vous utilisez sendmail.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.0.0 Les en-têtes Content-Type et Content-Transfer-Encoding peuvent être redéfinis depuis PHP 5.0.0. Avant, les valeurs définies par la fonction mb_language() sont toujours utilisées.

Voir aussi



mb_split

(PHP 4 >= 4.2.0, PHP 5)

mb_splitScinde une chaîne en tableau avec une expression rationnelle multi-octets

Description

array mb_split ( string $pattern , string $string [, int $limit = -1 ] )

Scinde la chaîne multi-octets string en utilisant l'expression rationnelle pattern puis en retournant le résultat sous forme de tableau.

Liste de paramètres

pattern

Le masque de l'expression rationnelle.

string

La chaîne à scinder.

limit
Si le paramètre optionnel limit est spécifié, la chaîne sera scindée en limit éléments au plus.

Valeurs de retour

Le résultat, sous la forme d'un tableau.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets



mb_strcut

(PHP 4 >= 4.0.6, PHP 5)

mb_strcutCoupe une partie de chaîne

Description

string mb_strcut ( string $str , int $start [, int $length [, string $encoding ]] )

mb_strcut() effectue une opération équivalente à mb_substr() avec des méthodes différentes. Si la position start est un caractère multi-octets ou plus, il débutera à partir du premier octet ou du premier caractère multi-octets.

Il soustrait la chaîne str qui est plus courte que length ET caractères qui ne font pas partis d'une chaîne multi-octets et qui ne commence pas au milieu de la séquence.

Liste de paramètres

str

La chaîne à couper.

start

La position à partir de laquelle on commence à couper.

length

Le nombre d'octets à couper.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

mb_strcut() retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.

Voir aussi



mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidthTronque une chaîne

Description

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encoding ]] )

Tronque la chaîne str à la longueur width.

Liste de paramètres

str

La chaîne à tronquer.

start

start est l'offset de départ, en nombre de caractères depuis le début de la chaîne (cela commence à 0).

width

La taille à tronquer.

trimmarker

trimmarker est la chaîne ajoutée à la fin de la chaîne tronquée.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne tronquée. Si trimmarker est défini, trimmarker sera ajouté à la valeur retournée.

Exemples

Exemple #1 Exemple avec mb_strimwidth()

<?php
echo mb_strimwidth("Hello World"010"...");
// Affiche : Hello W...
?>

Voir aussi



mb_stripos

(PHP 5 >= 5.2.0)

mb_striposTrouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

Description

int mb_stripos ( string $haystack , string $needle [, int $offset [, string $encoding ]] )

mb_stripos() retourne la position numérique de la première occurrence de needle dans la chaîne haystack. Contrairement à mb_strpos(), mb_stripos() est insensible à la casse. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la position de la première occurrence de needle

needle

La chaîne à chercher dans haystack

offset

La position dans haystack où l'on doit commencer à chercher

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la position numérique de la première occurrence de needle dans la chaîne haystack ou FALSE si needle n'est pas trouvé.

Voir aussi

  • stripos() - Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
  • strpos() - Trouve la position d'un caractère dans une chaîne
  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne



mb_stristr

(PHP 5 >= 5.2.0)

mb_stristrTrouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

Description

string mb_stristr ( string $haystack , string $needle [, bool $part = false [, string $encoding ]] )

mb_stristr() trouve la première occurrence de needle dans haystack et retourne la portion de haystack. Contrairement à mb_strstr(), mb_stristr() est insensible à la casse. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la première occurrence de needle

needle

La chaîne à chercher dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retournera toute la chaîne haystack depuis le début jusqu'à la première occurrence de needle. Si défini à FALSE, la fonction retournera toute la chaîne haystack depuis la première occurrence de needle jusqu'à la fin.

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la portion de haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne
  • mb_strstr() - Trouve la première occurrence d'une chaîne dans une autre



mb_strlen

(PHP 4 >= 4.0.6, PHP 5)

mb_strlenRetourne la taille d'une chaîne

Description

int mb_strlen ( string $str [, string $encoding ] )

Récupère la taille de la chaîne fournie.

Liste de paramètres

str

La chaîne à analyser.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne le nombre de caractères dans la chaîne str, avec l'encodage encoding. Un caractère multi-octets est alors compté pour 1.

Voir aussi



mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strposRepère la première occurrence d'un caractère dans une chaîne

Description

int mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding ]] )

Repère la position de la première occurrence d'un caractère dans la chaîne fournie.

Effectue une recherche de type strpos(), en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.

Liste de paramètres

haystack

La chaîne à analyser.

needle

La chaîne de caractères à trouver dans le paramètre haystack. A contrario de la fonction strpos(), les valeurs numériques ne sont pas appliquées comme valeur ordinale d'un caractère.

offset

La position de début de recherche. S'il est omis, zéro sera utilisé (début de la chaîne).

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la position numérique de la première occurrence du caractère needle dans la chaîne haystack. Si needle est introuvable, mb_strpos() retourne FALSE.

Voir aussi



mb_strrchr

(PHP 5 >= 5.2.0)

mb_strrchrTrouve la dernière occurrence d'un caractère d'une chaîne dans une autre

Description

string mb_strrchr ( string $haystack , string $needle [, bool $part = false [, string $encoding ]] )

mb_strrchr() trouve la dernière occurrence de needle dans haystack et retourne la portion de haystack. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on doit récupérer la dernière occurrence de needle

needle

La chaîne à trouver dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retourne toute la chaîne haystack depuis le début jusqu'à la dernière occurrence de needle. Si défini à FALSE, la fonction retourne toute la chaîne haystack depuis la dernière occurrence de needle jusqu'à la fin.

encoding

Nom de l'encodage à utiliser.Si ce paramètre est omis, l'encodage interne sera utilisé.

Valeurs de retour

Retourne la portion de haystack. ou FALSE si needle n'est pas trouvé.

Voir aussi

  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • mb_strstr() - Trouve la première occurrence d'une chaîne dans une autre
  • mb_strrichr() - Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse



mb_strrichr

(PHP 5 >= 5.2.0)

mb_strrichrTrouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse

Description

string mb_strrichr ( string $haystack , string $needle [, bool $part = false [, string $encoding ]] )

mb_strrichr() trouve la dernière occurrence de needle dans haystack et retourne la portion de haystack. Contrairement à mb_strrchr(), mb_strrichr() n'est pas sensible à la casse. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on doit chercher la dernière occurrence de needle

needle

La chaîne à chercher dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retourne toute la chaîne haystack depuis le début jusqu'à la dernière occurrence de needle. Si défini à FALSE, la fonction retourne toute la chaîne haystack depuis la dernière occurrence de needle jusqu'à la fin.

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne sera utilisé.

Valeurs de retour

Retourne la portion de haystack. ou FALSE si needle n'est pas trouvé.

Voir aussi

  • mb_stristr() - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • mb_strrchr() - Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre



mb_strripos

(PHP 5 >= 5.2.0)

mb_strriposTrouve la position de la dernière occurrence d'une chaîne dans une autre, en tenant compte de la casse

Description

int mb_strripos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding ]] )

mb_strripos() effectue une opération strripos() basée sur le nombre de caractères. La position needle est comptée depuis le début de haystack. La position du premier caractère est 0. Le second a comme position 1, etc.. Contrairement à mb_strrpos(), mb_strripos() est sensible à la casse.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la position de la dernière occurrence de needle

needle

La chaîne à chercher dans haystack

offset

La position dans haystack à partir de laquelle on doit commencer à chercher

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la position numérique de la dernière occurrence de needle dans la chaîne haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

  • strripos() - Trouve la position de la dernière occurrence d'une chaîne dans une autre, de façon insensible à la casse
  • strrpos() - Trouve la position de la dernière occurrence d'une sous-chaine dans une chaîne
  • mb_strrpos() - Repère la dernière occurrence d'un caractère dans une chaîne



mb_strrpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strrposRepère la dernière occurrence d'un caractère dans une chaîne

Description

int mb_strrpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding ]] )

mb_strrpos() effectue une recherche de type strpos(), en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.

Liste de paramètres

haystack

La chaîne à analyser.

needle

La chaîne à chercher dans la chaîne haystack.

offset
Doit être spécifié pour commencer à recherche un nombre arbitraire de nombre de caractères dans une chaîne. Les valeurs négatives stoppent la recherche à un point arbitraire avant la fin de la chaîne.
encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la position numérique de la dernière occurrence du caractère needle dans la chaîne haystack. Si needle est introuvable, mb_strrpos() retourne FALSE.

Historique

Version Description
5.2.0 Ajout du paramètre optionnel offset.

Notes

Note: Le paramètre encoding a été déplacé de la troisième position à la quatrième position depuis PHP 5.2.0. Pour des raisons de compatibilité ascendante, encoding peut être spécifié en tant que troisième paramètre, mais ce comportement est obsolète et peut être supprimé prochainement.

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne
  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • strrpos() - Trouve la position de la dernière occurrence d'une sous-chaine dans une chaîne



mb_strstr

(PHP 5 >= 5.2.0)

mb_strstrTrouve la première occurrence d'une chaîne dans une autre

Description

string mb_strstr ( string $haystack , string $needle [, bool $part = false [, string $encoding ]] )

mb_strstr() trouve la première occurrence de needle dans haystack et retourne la portion de haystack. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher la première occurrence de needle

needle

La chaîne à chercher dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retournera toute la chaîne haystack depuis le début jusqu'à la première occurrence de needle. Si défini à FALSE, la fonction retournera toute la chaîne haystack depuis la première occurrence de needle jusqu'à la fin.

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la portion de haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne
  • mb_stristr() - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse



mb_strtolower

(PHP 4 >= 4.3.0, PHP 5)

mb_strtolowerMet tous les caractères en minuscules

Description

string mb_strtolower ( string $str [, string $encoding = mb_internal_encoding() ] )

Retourne la chaîne str après avoir converti tous les caractères alphabétiques en minuscules.

Liste de paramètres

str

La chaîne à mettre en minuscule.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la chaîne str dont tous les caractères alphabétiques ont été mis en minuscule.

Unicode

Pour plus d'informations sur les propriétés de l'Unicode, voyez » http://www.unicode.org/unicode/reports/tr21/.

Contrairement à strtolower(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode. De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (Ç).

Exemples

Exemple #1 Exemple avec mb_strtolower()

<?php
$str 
"Marie A Un Petit Agneau Et Elle L'Aime BEAUCOUP.";
$str mb_strtolower($str);
echo 
$str// marie a un petit agneau et elle l'aime beaucoup
?>

Exemple #2 Exemple avec mb_strtolower() avec du texte UTF-8 non latin

<?php
$str 
"Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str mb_strtolower($str'UTF-8');
echo 
$str// Affiche τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός
?>

Voir aussi



mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupperMet tous les caractères en majuscules

Description

string mb_strtoupper ( string $str [, string $encoding = mb_internal_encoding() ] )

Retourne la chaîne str après avoir converti tous les caractères alphabétiques en majuscules.

Liste de paramètres

str

La chaîne à mettre en majuscule.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la chaîne str dont tous les caractères ont été mis en majuscule.

Unicode

Pour plus d'informations sur les propriétés de l'Unicode, voyez » http://www.unicode.org/unicode/reports/tr21/.

Contrairement à strtoupper(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode. De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (ç).

Exemples

Exemple #1 Exemple avec mb_strtoupper()

<?php
$str 
"Marie A Un Petit Agneau Et Elle L'Aime BEAUCOUP.";
$str mb_strtoupper($str);
echo 
$str// MARIE A UN PETIT AGNEAU ET ELLE L'AIME BEAUCOUP.
?>

Exemple #2 Exemple avec mb_strtoupper() et du texte UTF-8 non latin

<?php
$str 
"Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str mb_strtoupper($str'UTF-8');
echo 
$str// Affiche ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ
?>

Voir aussi



mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidthRetourne la taille d'une chaîne

Description

int mb_strwidth ( string $str [, string $encoding ] )

Retourne la taille de la chaîne str.

Les chaînes à encodage multi-octets sont généralement deux fois plus grandes que les chaînes mono-octet.

Largeur des caractères
Caractères Taille
U+0000 - U+0019 0
U+0020 - U+1FFF 1
U+2000 - U+FF60 2
U+FF61 - U+FF9F 1
U+FFA0 - 2

Liste de paramètres

str

La chaîne à analyser.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La taille de la chaîne.

Voir aussi



mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5)

mb_substitute_characterLit/modifie les caractères de substitution

Description

mixed mb_substitute_character ([ mixed $substrchar ] )

Spécifie le caractère de substitution des caractères invalides, ou des encodages invalides. Les caractères invalides peuvent être remplacés par NULL (pas d'affichage, ils sont supprimés), une chaîne ou un code hexadécimal.

Ce paramétrage affecte mb_convert_encoding(), mb_convert_variables(), mb_output_handler(), et mb_send_mail().

Liste de paramètres

substrchar

Spécifie une valeur Unicode sous la forme d'un entier, ou bien une chaîne sous ces formes :

  • "none" : pas d'affichage
  • "long" : affiche la valeur hexadécimale (par exemple : U+3000, JIS+7E7E)
  • "entity" : affiche l'entité du caractère (Example: Ȁ)

Valeurs de retour

Si substchar est fourni, mb_substitute_character() retourne TRUE en cas de succès, et FALSE en cas d'erreur. Si substchar est omis, mb_substitute_character() retourne une valeur Unicode, ou bien "none"/"long".

Exemples

Exemple #1 Exemple avec mb_substitute_character()

<?php
/* Configure le caractère de substitution avec U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Configure le caractère de substitution avec un format hexadécimal */
mb_substitute_character("long");

/* Affiche la configuration courante */
echo mb_substitute_character();
?>



mb_substr_count

(PHP 4 >= 4.3.0, PHP 5)

mb_substr_countCompte le nombre d'occurrences d'une sous-chaîne

Description

int mb_substr_count ( string $haystack , string $needle [, string $encoding ] )

Compte le nombre d'occurrences de la chaîne needle dans la chaîne haystack.

Liste de paramètres

haystack

La chaîne à analyser.

needle

La chaîne à chercher.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne le nombre de fois où la chaîne needle apparaît dans la chaîne haystack.

Exemples

Exemple #1 Exemple avec mb_substr_count()

<?php
echo mb_substr_count("Ceci est un test""es"); // affiche 2
?>

Voir aussi

  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne
  • mb_substr() - Lit une sous-chaîne
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne



mb_substr

(PHP 4 >= 4.0.6, PHP 5)

mb_substrLit une sous-chaîne

Description

string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

Effectue une opération de type substr() basée sur le nombre de caractères. La position est celle depuis le début de la chaîne de caractères str. La position du premier caractère est 0, le second, un, etc...

Liste de paramètres

str

La chaîne à analyser.

start

La première position utilisée dans str.

length

La taille maximale de la chaîne retournée.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

mb_substr() retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.

Voir aussi


Sommaire

  • mb_check_encoding — Vérifie si une chaîne est valide pour un encodage spécifique
  • mb_convert_case — Modifie la casse d'une chaîne
  • mb_convert_encoding — Conversion d'encodage
  • mb_convert_kana — Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)
  • mb_convert_variables — Convertit l'encodage de variables
  • mb_decode_mimeheader — Décode un en-tête MIME
  • mb_decode_numericentity — Décode les entités HTML en caractères
  • mb_detect_encoding — Détecte un encodage
  • mb_detect_order — Lit/modifie l'ordre de détection des encodages
  • mb_encode_mimeheader — Encode une chaîne pour un en-tête MIM
  • mb_encode_numericentity — Encode des entités HTML
  • mb_encoding_aliases — Récupère les aliases d'un type d'encodage connu
  • mb_ereg_match — Expression rationnelle POSIX pour les chaînes multi-octets
  • mb_ereg_replace — Remplace des segments de chaîne à l'aide des expressions rationnelles
  • mb_ereg_search_getpos — Retourne la position du début du prochain segment repéré par une expression rationnelle
  • mb_ereg_search_getregs — Lit le dernier segment de chaîne multi-octets qui correspond au masque
  • mb_ereg_search_init — Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets
  • mb_ereg_search_pos — Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle
  • mb_ereg_search_regs — Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets
  • mb_ereg_search_setpos — Choisit le point de départ de la recherche par expression rationnelle
  • mb_ereg_search — Recherche par expression rationnelle multi-octets
  • mb_ereg — Recherche par expression rationnelle avec support des caractères multi-octets
  • mb_eregi_replace — Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse
  • mb_eregi — Expression rationnelle insensible à la casse avec le support des caractères multi-octets
  • mb_get_info — Lit la configuration interne de l'extension mbstring
  • mb_http_input — Détecte le type d'encodage d'un caractère HTTP
  • mb_http_output — Lit/modifie l'encodage d'affichage
  • mb_internal_encoding — Lit/modifie l'encodage interne
  • mb_language — Lit/modifie le langage courant
  • mb_list_encodings — Retourne un tableau contenant tous les encodages supportés
  • mb_output_handler — Fonction de traitement des affichages
  • mb_parse_str — Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales
  • mb_preferred_mime_name — Détecte l'encodage MIME
  • mb_regex_encoding — Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_regex_set_options — Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets
  • mb_send_mail — Envoie un mail encodé
  • mb_split — Scinde une chaîne en tableau avec une expression rationnelle multi-octets
  • mb_strcut — Coupe une partie de chaîne
  • mb_strimwidth — Tronque une chaîne
  • mb_stripos — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • mb_stristr — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • mb_strlen — Retourne la taille d'une chaîne
  • mb_strpos — Repère la première occurrence d'un caractère dans une chaîne
  • mb_strrchr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre
  • mb_strrichr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse
  • mb_strripos — Trouve la position de la dernière occurrence d'une chaîne dans une autre, en tenant compte de la casse
  • mb_strrpos — Repère la dernière occurrence d'un caractère dans une chaîne
  • mb_strstr — Trouve la première occurrence d'une chaîne dans une autre
  • mb_strtolower — Met tous les caractères en minuscules
  • mb_strtoupper — Met tous les caractères en majuscules
  • mb_strwidth — Retourne la taille d'une chaîne
  • mb_substitute_character — Lit/modifie les caractères de substitution
  • mb_substr_count — Compte le nombre d'occurrences d'une sous-chaîne
  • mb_substr — Lit une sous-chaîne



Pspell


Introduction

La bibliothèque pspell vous permet de vérifier l'orthographe d'un mot, et suggérer des corrections.



Installation/Configuration

Sommaire


Pré-requis

Pour compiler PHP avec le support pspell, vous aurez besoin de la bibliothèque aspell, disponible à » http://aspell.net/.



Installation

Si vous avez installé les bibliothèques PSPELL, vous devez simplement ajouter l'option --with-pspell[=dir] , lors de la compilation de PHP.

Note: Note pour les utilisateurs de Microsoft Windows

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : aspell-15.dll depuis le dossier bin de l'installation aspell.

Le support Win32 est disponible uniquement dans les versions 4.3.3 et supérieures de PHP. De plus, la version 0.50, au minimum, est nécessaire.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PSPELL_FAST (entier)
PSPELL_NORMAL (entier)
PSPELL_BAD_SPELLERS (entier)
PSPELL_RUN_TOGETHER (entier)


Fonctions Pspell


pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_personalAjoute le mot au dictionnaire personnel

Description

bool pspell_add_to_personal ( int $dictionary_link , string $word )

pspell_add_to_personal() ajoute un mot au dictionnaire personnel. Si vous utilisez pspell_new_config() avec pspell_config_personal() pour ouvrir le dictionnaire, vous pourrez sauver le dictionnaire personnel ultérieurement avec pspell_save_wordlist().

Liste de paramètres

dictionary_link

word

Le Mot ajouté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_add_to_personal()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_personal($pspell_config"/var/dictionaries/custom.pws");
$pspell_link pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link"Vlad");
pspell_save_wordlist($pspell_link);
?>

Notes

Note:

Cette fonction ne marchera que si vous avez pspell .11.2 et aspell .32.5 ou ultérieurs.



pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_sessionAjoute le mot au dictionnaire personnel de la session courante

Description

bool pspell_add_to_session ( int $dictionary_link , string $word )

pspell_add_to_session() ajoute un mot au dictionnaire personnel associé à la version courante. C'est une fonction similaire à pspell_add_to_personal().

Liste de paramètres

dictionary_link

word

Le mot ajouté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



pspell_check

(PHP 4 >= 4.0.2, PHP 5)

pspell_checkVérifie un mot

Description

bool pspell_check ( int $dictionary_link , string $word )

pspell_check() vérifie l'orthographe d'un mot.

Liste de paramètres

dictionary_link

word

Le mot testé.

Valeurs de retour

Retourne TRUE si l'orthographe est correcte, FALSE sinon.

Exemples

Exemple #1 Exemple avec pspell_check()

<?php
$pspell_link 
pspell_new ("fr");

if (
pspell_check($pspell_link"testt")) {
    echo 
'L\'orthographe est exacte';
} else {
    echo 
'Désolé, mauvaise orthographe';
}
?>



pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_clear_sessionRemet à zéro la session courante

Description

bool pspell_clear_session ( int $dictionary_link )

pspell_clear_session() remet à zéro la session courante. Le dictionnaire personnel est vidé et, par exemple, si vous tentez de l'enregistrer avec pspell_save_wordlist(), rien ne se passera.

Liste de paramètres

dictionary_link

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pspell_add_to_personal()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_personal($pspell_config"/var/dictionaries/custom.pws");
$pspell_link pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link"Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);  //"Vlad" ne sera pas sauvé
?>



pspell_config_create

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_createCrée une configuration utilisée pour ouvrir un dictionnaire

Description

int pspell_config_create ( string $language [, string $spelling [, string $jargon [, string $encoding ]]] )

Crée une configuration utilisée pour ouvrir un dictionnaire.

pspell_config_create() a une syntaxe similaire à celle de pspell_new(). En fait, utiliser pspell_config_create() suivi immédiatement par pspell_new_config() produira exactement le même résultat. Cependant, après avoir créé une nouvelle configuration, vous pouvez aussi utiliser les fonctions pspell_config_*() avant d'appeler pspell_new_config() pour tirer profit des fonctionnalités avancées.

Pour davantage d'information et d'exemples, jetez un oeil au manuel en ligne sur le site de pspell : » http://aspell.net/.

Liste de paramètres

language

Le paramètre de langage language est le code de langue en deux lettres, défini dans la norme ISO 639, et deux lettres optionnelles ISO 3166, après un tiret ou un souligné (_).

spelling

Le paramètre d'orthographe spelling est nécessaire pour les langues qui ont plus d'une orthographe, comme l'anglais. Les valeurs reconnues sont alors 'american' (américain) , 'british' (anglais), et 'canadian' (canadien).

jargon

Le paramètre de jargon jargon contient des informations supplémentaires pour distinguer deux dictionnaires distincts pour la même langue et le même paramètre d'orthographe spelling.

encoding

Le paramètre d'encodage encoding indique l'encodage attendu pour la réponse. Les valeurs valides sont : 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Ce paramètre n'a pas été testé de manière exhaustive, alors soyez prudent.

Valeurs de retour

Retourne une ressource pspell config, ou FALSE en cas d'erreur.

Exemples

Exemple #1 pspell_config_create()

<?php
$pspell_config 
pspell_config_create("fr");
pspell_config_personal($pspell_config"/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config"/var/dictionaries/custom.repl");
$pspell_link pspell_new_personal($pspell_config"fr");
?>



pspell_config_data_dir

(PHP 5)

pspell_config_data_dirDossier qui contient les fichiers de données linguistiques

Description

bool pspell_config_data_dir ( int $conf , string $directory )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



pspell_config_dict_dir

(PHP 5)

pspell_config_dict_dirEndroit où se trouve le fichier global des mots

Description

bool pspell_config_dict_dir ( int $conf , string $directory )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_ignoreIgnore les mots de moins de N caractères

Description

bool pspell_config_ignore ( int $dictionary_link , int $n )

pspell_config_ignore() doit être utilisée avec une configuration avant d'appeler pspell_new_config(). Cette fonction permet au vérificateur d'ignorer les mots courts.

Liste de paramètres

dictionary_link

n

Les mots de moins de n caractères seront ignorés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_ignore()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_ignore($pspell_config5);
$pspell_link pspell_new_config($pspell_config);
pspell_check($pspell_link"abcd");  // Ce mot ne provoquera pas d'erreur
?>



pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_modeChange le mode de suggestion

Description

bool pspell_config_mode ( int $dictionary_link , int $mode )

pspell_config_mode() doit être appelée dans une configuration avant pspell_new_config(). Cette fonction détermine le nombre de suggestions qui seront retournées par pspell_suggest().

Liste de paramètres

dictionary_link

mode

Le paramètre de mode est le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :

  • PSPELL_FAST - Mode rapide (moins de suggestions)
  • PSPELL_NORMAL - Mode normal (plus de suggestions)
  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pspell_config_mode()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_mode($pspell_configPSPELL_FAST);
$pspell_link pspell_new_config($pspell_config);
pspell_check($pspell_link"thecat");
?>



pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_personalChoisit le fichier qui contient le dictionnaire personnel

Description

bool pspell_config_personal ( int $dictionary_link , string $file )

Choisit le fichier qui contient le dictionnaire personnel. Le dictionnaire personnel sera chargé et utilisé en plus du dictionnaire standard, une fois que vous aurez appelé pspell_new_config(). Le fichier est aussi là où pspell_save_wordlist() sauvegardera le dictionnaire personnel.

pspell_config_personal() doit être appelée dans une configuration avant d'appeler pspell_new_config().

Liste de paramètres

dictionary_link

file

Le dictionnaire personnel. Si le fichier n'existe pas, il sera créé. Le fichier doit être accessible en écriture pour l'utilisateur invoquant PHP (ex. nobody).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_personal()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_personal($pspell_config"/var/dictionaries/custom.pws");
$pspell_link pspell_new_config($pspell_config);
pspell_check($pspell_link"thecat");
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.



pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_replChoisit le fichier qui contient les paires de remplacement

Description

bool pspell_config_repl ( int $dictionary_link , string $file )

Choisit le fichier qui contient les paires de remplacement.

Les paires de remplacement améliorent la qualité du vérificateur. Lorsqu'un mot est mal orthographié et qu'aucune suggestion valable n'est trouvée dans le dictionnaire, pspell_store_replacement() sera utilisée pour enregistrer une paire de remplacement et pspell_save_wordlist() pour sauver le dictionnaire avec les paires de remplacement.

pspell_config_repl() doit être utilisé avec une configuration avant d'appeler pspell_new_config().

Liste de paramètres

dictionary_link

file

Le fichier doit être accessible en écriture pour l'utilisateur invoquant PHP (ex. nobody).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_repl()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_personal($pspell_config"/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config"/var/dictionaries/custom.repl");
$pspell_link pspell_new_config($pspell_config);
pspell_check($pspell_link"thecat");
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.



pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_runtogetherConsidère deux mots accolés comme un composé

Description

bool pspell_config_runtogether ( int $dictionary_link , bool $flag )

Cette fonction indique si deux mots accolés doivent être traités comme un composé valide. Ainsi "lechat" sera traité comme un composé valide bien qu'il devrait y avoir un espace entre ces deux mots. Modifier cette configuration n'affecte que les résultats retournés par pspell_check(); pspell_suggest() retournera toujours des suggestions.

pspell_config_runtogether() doit être appelée dans une configuration avant pspell_new_config().

Liste de paramètres

dictionary_link

flag

TRUE si deux mots accolés doivent être traités comme un composé valide, FALSE sinon.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_runtogether()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_runtogether($pspell_configtrue);
$pspell_link pspell_new_config($pspell_config);
pspell_check($pspell_link"thecat");
?>



pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_save_replDétermine s'il faut sauver les paires de remplacement avec le dictionnaire

Description

bool pspell_config_save_repl ( int $dictionary_link , bool $flag )

pspell_config_save_repl() détermine si pspell_save_wordlist() doit sauver les paires de remplacement avec le dictionnaire. Généralement, il n'y a pas besoin d'utiliser cette fonction car, si pspell_config_repl() est utilisée, les paires de remplacement seront sauvées de toute façon par pspell_save_wordlist(), et, si ce n'est pas le cas, elles ne le seront pas.

pspell_config_save_repl() doit être appelée dans une configuration avant d'appeler pspell_new_config().

Liste de paramètres

dictionary_link

flag

TRUE si les paires de remplacement doivent être sauvées, FALSE sinon.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.



pspell_new_config

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_configCharge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration

Description

int pspell_new_config ( int $config )

pspell_new_config() ouvre un nouveau dictionnaire avec les paramétrages de la configuration config, créée avec pspell_config_create() et modifiée avec les fonctions pspell_config_*(). Cette méthode vous donne le maximum de flexibilité, et dispose de toutes les fonctionnalités fournies par pspell_new() et pspell_new_personal().

Liste de paramètres

config

Le config est celui qui est retourné par pspell_config_create() lorsque la configuration est créée.

Valeurs de retour

Retourne un identifiant de dictionnaire en cas de succès.

Exemples

Exemple #1 pspell_new_config()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_personal($pspell_config"/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config"/var/dictionaries/custom.repl");
$pspell_link pspell_new_config($pspell_config);
?>



pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_personalCharge un nouveau dictionnaire avec un dictionnaire personnel

Description

int pspell_new_personal ( string $personal , string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] )

pspell_new_personal() charge un nouveau dictionnaire avec un dictionnaire personnel. Ce dernier peut être modifié et sauvé avec pspell_save_wordlist(). Cependant, les paires de remplacement ne seront pas sauvées. Pour ce faire, vous devez créer une configuration qui utilise pspell_config_create(), choisir le fichier de destination du dictionnaire personnel avec pspell_config_personal(), choisir le fichier de paires de remplacement avec pspell_config_repl() et ouvrir un nouveau dictionnaire avec pspell_new_config().

Pour davantage d'information et d'exemples, jetez un oeil sur le manuel en ligne sur le site web de pspell : » http://aspell.net/.

Liste de paramètres

personal

Le fichier où seront ajoutés les mots du dictionnaire personnel. Ce doit être un chemin absolu, qui commence par '/' car, sinon, il sera relatif à $HOME, qui est "/root" sur la plupart des systèmes, et probablement pas ce que vous souhaitez.

language

Le paramètre de langage language est le code de langue ISO 639 en deux lettres, suivi de deux lettres optionnelles ISO 3166, après un tiret ou un souligné (_).

spelling

Le paramètre d'orthographe spelling est nécessaire pour les langues qui ont plus d'une orthographe, comme l'anglais. Les valeurs reconnues sont alors 'american' (américain) , 'british' (anglais), et 'canadian' (canadien).

jargon

Informations supplémentaires pour distinguer deux dictionnaires distincts pour la même langue et le même paramètre d'orthographe spelling.

encoding

L'encodage attendu pour la réponse. Les valeurs valides sont : utf-8, iso8859-*, koi8-r, viscii, cp1252, machine unsigned 16, machine unsigned 32.

mode

Le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :

  • PSPELL_FAST - Mode rapide (moins de suggestions)
  • PSPELL_NORMAL - Mode normal (plus de suggestions)
  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions)
  • PSPELL_RUN_TOGETHER - Considère les mots attachés comme légaux. De ce fait, "lechat" sera un mot composé légal, bien qu'il devrait y avoir un espace entre les deux mots. Changer cette configuration n'affecte que le résultat retourné par pspell_check(); pspell_suggest() continuera de retourner les suggestions.
Le mode est un masque construit depuis les différentes constantes listées ci-dessous. Cependant, les constantes PSPELL_FAST, PSPELL_NORMAL et PSPELL_BAD_SPELLERS sont mutuellement exclusives, donc vous ne devez sélectionner qu'une seule d'entre elles.

Valeurs de retour

Retourne l'identifiant de dictionnaire à utiliser avec les autres fonctions pspell.

Exemples

Exemple #1 pspell_new_personal()

<?php
$pspell_link 
pspell_new_personal ("/var/dictionaries/custom.pws",
        
"en"""""""PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>



pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_newCharge un nouveau dictionnaire

Description

int pspell_new ( string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] )

pspell_new() ouvre un nouveau dictionnaire et retourne un identifiant de dictionnaire, pour être utilisé avec d'autres fonctions pspell.

Pour plus d'informations et d'exemples, reportez-vous au site » http://aspell.net/.

Liste de paramètres

language

Le paramètre de langue spelling est constitué des deux lettres du codage de langue ISO 639, et du codage optionnel de pays ISO 3166, séparés par un '_'.

spelling

Ce paramètre est nécessaire pour les langues qui ont plus d'une orthographe, comme l'anglais ou le français. Les valeurs reconnues sont 'american', 'british', et 'canadian'.

jargon

Le paramètre jargon contient des informations supplémentaires pour distinguer deux listes de mots qui ont le même marquage de langue et d'orthographe.

encoding

Le paramètre encoding est le type d'encodage des mots. Les valeurs valides sont 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Ce paramètre n'ayant pas été testé de façon exhaustive, il convient d'être prudent lors de son utilisation.

mode

Le paramètre mode est le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :

  • PSPELL_FAST - Mode rapide (moins de suggestions)
  • PSPELL_NORMAL - Mode normal (plus de suggestions)
  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions)
  • PSPELL_RUN_TOGETHER - Considère que des mots accolés forment un composé autorisé. Ainsi, "lechat" sera un composé valide. Cette option ne modifie que les résultats retournés par pspell_check(); pspell_suggest() retournera toujours des suggestions.
mode est un masque construit à partir des constantes listées ci-dessus. Cependant, PSPELL_FAST, PSPELL_NORMAL et PSPELL_BAD_SPELLERS sont mutuellement exclusives : vous ne devez en utiliser à la fois.

Valeurs de retour

Retourne l'identifiant de dictionnaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_new()

<?php
$pspell_link 
pspell_new("en""""""",
                           (
PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>



pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5)

pspell_save_wordlistSauve le dictionnaire personnel dans un fichier

Description

bool pspell_save_wordlist ( int $dictionary_link )

pspell_save_wordlist() sauve le dictionnaire personnel de la session courante. La localisation des fichiers doit avoir été spécifiée avec pspell_config_personal() et (éventuellement) pspell_config_repl().

Liste de paramètres

dictionary_link

Un identifiant de dictionnaire ouvert avec pspell_new_personal().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_add_to_personal()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_personal($pspell_config"/tmp/dicts/newdict");
$pspell_link pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link"Vlad");
pspell_save_wordlist($pspell_link);
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.



pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5)

pspell_store_replacementEnregistre une paire de remplacement pour un mot

Description

bool pspell_store_replacement ( int $dictionary_link , string $misspelled , string $correct )

pspell_store_replacement() enregistre une paire de remplacement pour un mot de façon à ce que cette suggestion soit retournée par pspell_suggest() plus tard. Pour pouvoir utiliser cette fonction, vous devez utiliser pspell_new_personal() pour ouvrir le dictionnaire. Pour pouvoir sauver tout le temps les paires de remplacement, vous devez utiliser pspell_config_personal() et pspell_config_repl() pour indiquer le lieu de sauvegarde des dictionnaires personnels, et pspell_save_wordlist() pour enregistrer les modifications sur le disque.

Liste de paramètres

dictionary_link

Un identifiant de dictionnaire, ouvert avec pspell_new_personal()

misspelled

Le mot mal orthographié.

correct

La bonne orthographe du mot misspelled.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_store_replacement()

<?php
$pspell_config 
pspell_config_create("en");
pspell_config_personal($pspell_config"/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config"/var/dictionaries/custom.repl");
$pspell_link pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link$misspelled$correct);
pspell_save_wordlist($pspell_link);
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.



pspell_suggest

(PHP 4 >= 4.0.2, PHP 5)

pspell_suggestSuggère l'orthographe d'un mot

Description

array pspell_suggest ( int $dictionary_link , string $word )

pspell_suggest() retourne un tableau de suggestions pour le mot word.

Liste de paramètres

dictionary_link

word

Le mot testé.

Valeurs de retour

Retourne un tableau de suggestions pour le mot word.

Exemples

Exemple #1 Exemple avec pspell_suggest()

<?php
$pspell_link 
pspell_new("en");

if (!
pspell_check($pspell_link"testt")) {
    
$suggestions pspell_suggest($pspell_link"testt");

    foreach (
$suggestions as $suggestion) {
        echo 
"Orthographes suggérées : $suggestion<br />"
    }
}
?>


Sommaire




GNU Recode


Introduction

Ce module contient une interface à la bibliothèque GNU Recode. La bibliothèque GNU Recode convertit les fichiers entre divers codages. Lorsque cette conversion n'a pu être effectuée de manière précise, des approximations sont effectuées. La bibliothèque reconnait environs 150 jeux de caractères différents et est capable de convertir des fichiers en les utilisant. La plupart des jeux de caractères » RFC 1345 sont supportés.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Vous devez avoir GNU Recode 3.5 ou supérieur installé sur votre système. Vous pouvez télécharger le paquet depuis » http://directory.fsf.org/All_GNU_Packages/recode.html.

Avertissement

La version 3.6 de la bibliothèque Recode ajoute des caractères étranges à la suite des chaînes converties sous certaines circonstances. Aussi, il est préférable d'utiliser Recode v3.5 ou une bibliothèque alternative disponible, comme l'extension iconv ou l'extension mbstring.



Installation

Pour utiliser ces fonctions, vous devez compiler PHP avec l'option--with-recode[=DIR] .

Avertissement

Des crashs et des problèmes de démarrage de PHP peuvent être rencontrés lorsque l'extension recode est chargée APRES les extensions MySQL ou imap. Charger l'extension recode avant ces deux extensions corrige le problème. Ceci est dû à un problème technique car la bibliothèque c-client de IMAP et recode ont toutes les deux leur propre fonction hash_lookup() et les extensions mysql et recode ont toutes les deux leur fonction hash_insert.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Recode Fonctions


recode_file

(PHP 4, PHP 5)

recode_fileRecodage de fichier à fichier, en fonction de la demande

Description

bool recode_file ( string $request , resource $input , resource $output )

Recode le fichier identifié par input dans le fichier identifié par output en fonction de la requête de recodage request.

Liste de paramètres

request

Le type de requête recode désiré

input

Un gestionnaire de fichier local pour le paramètre input

output

Un gestionnaire de fichier local pour le paramètre output

Valeurs de retour

Retourne FALSE, en cas d'échec, et TRUE sinon.

Exemples

Exemple #1 Exemple avec recode_file()

<?php
$input 
fopen('input.txt''r');
$output fopen('output.txt''w');
recode_file("us..flat"$input$output);
?>

Notes

Cette fonction ne gère pas encore les fichiers distants (URL). Les deux fichiers doivent faire référence à des fichiers locaux.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL



recode_string

(PHP 4, PHP 5)

recode_stringRecode une chaîne en fonction de la requête

Description

string recode_string ( string $request , string $string )

Recode la chaîne string en fonction de la requête request.

Liste de paramètres

request

Le type de requête recode désiré

string

La chaîne de caractères à recoder

Valeurs de retour

Retourne la chaîne recodée en cas de succès et FALSE sinon.

Exemples

Exemple #1 Exemple avec recode_string()

<?php
echo recode_string("us..flat""Le caractère suivant est diacritique : &aacute;");
?>

Notes

Une requête simple de recodage peut être "lat1..iso646-de".

Voir aussi

  • Reportez-vous à la documentation GNU Recode de votre installation pour plus de détails sur les requêtes.



recode

(PHP 4, PHP 5)

recodeAlias de recode_string()

Description

Cette fonction est un alias de : recode_string().


Sommaire

  • recode_file — Recodage de fichier à fichier, en fonction de la demande
  • recode_string — Recode une chaîne en fonction de la requête
  • recode — Alias de recode_string




Génération et traitement des images


Informations Exif


Introduction

Avec l'extension exif, vous pouvez travailler sur les données méta des images. Par exemple, vous devez utiliser les fonctions exif pour lire les données méta des images prises par des appareils numériques, stockées dans l'en-tête des images JPEG et TIFF.



Installation/Configuration

Sommaire


Pré-requis

Votre PHP doit être compilé avec l'option --enable-exif. PHP n'a besoin d'aucune bibliothèque additionnelle pour faire fonctionner le module exif. Les utilisateurs de Windows doivent également activer l'extension mbstring.



Installation

Pour activer le support EXIF en PHP, il suffit d'ajouter l'option de compilation --enable-exif .

Les utilisateurs Windows doivent s'assurer que les bibliothèques DLL php_mbstring.dll et php_exif.dll sont spécifiées dans le fichier php.ini. La bibliothèque php_mbstring.dll doit être chargée avant la bibliothèque php_exif.dll : pensez à ajuster votre php.ini.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

EXIF supporte automatiquement la conversion depuis Unicode et JIS, lorsque le module mbstring est compilé avec PHP. Cela se fait en décodant le commentaire avec le jeu de caractères spécifié. Le résultat est ensuite codé avec un autre jeu de caractères, compatible avec la sortie HTTP.

Options de configuration Exif
Nom Défaut Modifiable Historique
exif.encode_unicode "ISO-8859-15" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.decode_unicode_motorola "UCS-2BE" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.decode_unicode_intel "UCS-2LE" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.encode_jis "" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.decode_jis_motorola "JIS" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.decode_jis_intel "JIS" PHP_INI_ALL Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

exif.encode_unicode string

exif.encode_unicode définit la méthode de gestion des commentaires écrits en Unicode. La valeur par défaut est ISO-8859-15, qui devrait fonctionner dans tous les pays non-asiatiques. Cette directive peut être laissée vide, ou prendre un des jeux de caractères supporté par mbstring. Si elle est vide, le jeu de caractères interne de mbstring sera utilisé.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en Unicode, si l'ordre des bits est celui de Motorola (big-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en Unicode, si l'ordre des bits est celui de Intel (little-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est UCS-2LE.

exif.encode_jis string

exif.encode_jis définit la méthode de gestion des commentaires écrits en caractères JIS. La valeur par défaut est une chaîne vide, qui fait que le jeu de caractères interne de mbstring est utilisé.

exif.decode_jis_motorola string

exif.decode_jis_motorola définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en JIS, si l'ordre des bits est celui de Motorola (big-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est JIS.

exif.decode_jis_intel string

exif.decode_jis_intel définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en JIS, si l'ordre des bits est celui de Intel (little-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est JIS.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

EXIF_USE_MBSTRING (entier)

La fonction exif_imagetype() liste plusieurs constantes connexes.



Fonctions Exif


exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetypeDétermine le type d'une image

Description

int exif_imagetype ( string $filename )

exif_imagetype() lit les premiers octets du fichier d'image filename, et vérifie sa signature.

exif_imagetype() peut être utilisée pour éviter les appels aux autres fonctions exif pour les formats de fichiers qui ne sont pas supportés, ou en conjonction avec $_SERVER['HTTP_ACCEPT'] pour vérifier si l'utilisateur pourra voir cette image dans son navigateur.

Liste de paramètres

filename
L'image à vérifier.

Valeurs de retour

Lorsqu'une valeur valide est trouvée, la constante appropriée est retournée, et sinon, FALSE. La valeur retournée est la même que la fonction getimagesize() à l'index 2, mais cette fonction est bien plus rapide.

Historique

Version Description
5.3.0 Ajout du support icon.
4.3.2 Support pour JPC, JP2, JPX, JB2, XBM et WBMP
4.3.0 Support pour SWC

Constantes pré-définies

Les constantes suivantes sont définies et représentent les valeurs possibles de retour de la fonction exif_imagetype() :

Constantes de type d'images
Valeur Constante
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (ordre d'octets d'Intel)
8 IMAGETYPE_TIFF_MM (ordre d'octets Motorola)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM
17 IMAGETYPE_ICO

Exemples

Exemple #1 Exemple avec exif_imagetype()

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 
'Cette image n\'est pas un gif';
}
?>

Voir aussi



exif_read_data

(PHP 4 >= 4.2.0, PHP 5)

exif_read_dataLit les en-têtes EXIF dans les images JPEG ou TIFF

Description

array exif_read_data ( string $filename [, string $sections = NULL [, bool $arrays = false [, bool $thumbnail = false ]]] )

exif_read_data() lit les en-têtes EXIF des images JPEG et TIFF. Avec cette fonction, vous pouvez lire les données méta générées par les appareils photos numériques.

Les en-têtes EXIF tendent à être présents dans les images JPEG/TIFF générées par les appareils photos numériques, mais malheureusement, chaque appareil photo numérique a une idée différente de la façon dont leurs images doivent être marquées, donc, vous ne pouvez pas toujours compter sur un en-tête EXIF spécifique, bien que présent.

Les paramètres Height et Width sont calculés de la même façon que pour la fonction getimagesize(), donc leurs valeurs ne feront parties d'aucun en-tête retourné. De même, l'index html est la représentation textuelle de la hauteur/largeur utilisée dans une balise image HTML classique.

Lorsqu'un en-tête EXIF contient une note de Copyright, cet en-tête peut alors contenir lui-même deux valeurs. Comme cette solution est incohérente avec les standards EXIF 2.10, la section COMPUTED retournera les deux en-têtes, Copyright.Photographer et Copyright.Editor, tandis que les sections IFD0 contiennent le tableau d'octets avec des caractères NULL pour séparer les deux entrées ; ou bien, juste la première entrée si le type de données était erroné (comportement par défaut de EXIF). La section COMPUTED va aussi contenir une entrée Copyright, qui sera soit la chaîne originale de copyright, soit une liste de valeurs séparées par des virgules de photos et de copyright de l'auteur.

La balise UserComment présente le même problème que la balise Copyright. Elle peut stocker deux valeurs : en premier, le jeu de caractères utilisé, puis la valeur elle-même. Si c'est le cas, la section IFD contiendra uniquement le jeu de caractères, ou bien un tableau d'octets. La section COMPUTED va stocker les deux entrées UserCommentEncoding et UserComment. L'index UserComment est disponible dans les deux cas, et il est préférable de l'utiliser, plutôt que la valeur de la section IFD0.

exif_read_data() valide les données des balises EXIF en accord avec la spécification EXIF (» http://exif.org/Exif2-2.PDF, page 20).

Note:

Windows Me/XP peuvent endommager les en-têtes EXIF lors de la connexion à la caméra.

Liste de paramètres

filename

Le nom du fichier image à lire. Il ne peut pas être une URL.

sections

Liste de valeur séparées par des virgules des sections qui devront être présentées dans le tableau de résultat. Si aucune des sections demandées n'est trouvée, la valeur retournée est FALSE.

FILE FileName (nom du ficher), FileSize (taille du fichier), FileDateTime (date de modification du fichier), SectionsFound (sections trouvées)
COMPUTED Attribut Html, largeur, hauteur, couleur ou noir et blanc et plus si disponible. La largeur et la hauteur sont calculées de la même façon que la fonction getimagesize(), donc, leurs valeurs ne devraient jamais différer. De même, l'index html est la représentation textuelle de la hauteur/largeur utilisée dans une balise image HTML classique.
ANY_TAG Toutes les informations concernant cette balise, comme IFD0, EXIF, ...
IFD0 Toutes les balises IFD0. Dans les images normales, ils contiennent les dimensions de l'image, etc.
THUMBNAIL Un fichier qui contient une miniature, s'il y a un second IFD. Toutes les informations mises en balises à propos de cette miniature seront stockées dans cette section.
COMMENT En-tête de commentaire des images JPEG.
EXIF La section EXIF est une sous section de la section IFD0. Elle contient des informations plus détaillées sur les images. La plupart de ces index sont reliés aux appareils numériques.

arrays

Spécifie si chaque section doit être un tableau ou non. Les sections COMPUTED, THUMBNAIL et COMMENT seront toujours transformées en tableau, car elle contiennent des noms qui risquent d'être en conflit.

thumbnail

Lorsque défini à TRUE, la miniature elle-même est lue. Sinon, seules les données contenues dans le taf seront lues.

Valeurs de retour

Retourne un tableau associatif où les indexes sont les noms des en-têtes et les valeurs sont les valeurs associées à ces en-têtes. Si aucune donnée ne peut être retournée, exif_read_data() retournera FALSE.

Historique

Version Description
4.3.0 Peut aussi lire les sections IFD incluses dans les tableaux, et retournées sous cette forme. De plus, la taille d'une miniature intégrée est retournée dans le sous tableau THUMBNAIL et la fonction exif_read_data() peut retourner les miniatures au format TIFF. Enfin, il n'y a plus de longueur maximale pour les valeurs renvoyées (hormis la place en mémoire).
4.3.0 Si PHP a été compilé avec le support mbstring, les commentaires utilisateurs peuvent changés automatiquement de jeu de caractères. De plus, si les commentaires utilisateurs utilisent l'encodage Unicode ou JIS, cet encodage sera automatiquement modifié en accord avec le paramètre de configuration exif du php.ini.
4.3.0 Si l'image contient des données IFD0, alors la section COMPUTED contient l'entrée ByteOrderMotorola qui vaut 0 pour little-endian (Intel) et 1 pour big-endian (Motorola). En outre, les sections COMPUTED et UserComment ne contiennent as seulement la première entrée de l'index copyright si les données sont fausses.

Exemples

Exemple #1 Exemple avec exif_read_data()

<?php
echo "test1.jpg:<br />\n";
$exif exif_read_data('tests/test1.jpg''IFD0');
echo 
$exif===false "Aucun en-tête de donnés n'a été trouvé.<br />\n" "L'image contient des en-têtes<br />\n";

$exif exif_read_data('tests/test2.jpg'0true);
echo 
"test2.jpg:<br />\n";
foreach (
$exif as $key => $section) {
    foreach (
$section as $name => $val) {
        echo 
"$key.$name$val<br />\n";
    }
}
?>

Le premier appel échoue car l'image n'a pas d'en-tête d'information.

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1.jpg:
Aucun en-tête de donnés n'a été trouvé.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Voir aussi



exif_tagname

(PHP 4 >= 4.2.0, PHP 5)

exif_tagnameLit le nom d'en-tête EXIF d'un index

Description

string exif_tagname ( int $index )

Liste de paramètres

index

L'id de Tag pour lequel un nom sera recherché.

Valeurs de retour

exif_tagname() retourne FALSE si index n'est pas un id de tag EXIF défini, sinon elle retourne le nom de l'en-tête.

Exemples

Exemple #1 Exemple pour exif_tagname()

<?php
echo "256: ".exif_tagname(256).PHP_EOL;
echo 
"257: ".exif_tagname(257).PHP_EOL;
?>

L'exemple ci-dessus va afficher :

256: ImageWidth
257: ImageLength

Voir aussi



exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnailRécupère la miniature d'une image TIFF ou JPEG

Description

string exif_thumbnail ( string $filename [, int &$width [, int &$height [, int &$imagetype ]]] )

exif_thumbnail() lit la miniature de l'image TIFF ou JPEG dans le fichier filename.

Si vous voulez afficher des miniatures avec cette fonction, vous devez envoyer le bon type MIME avec la fonction header().

Il est possible que la fonction exif_thumbnail() n'arrive pas à créer l'image mais peut déterminer sa taille. Dans ce cas, la fonction retourne FALSE mais les paramètres width et height sont définis.

Liste de paramètres

filename

Le nom du fichier image à lire. Cette image contient une miniature.

width

La largeur retournée de la miniature retournée.

height

La hauteur retournée de la miniature retournée.

imagetype

Le type de l'image retourné de la miniature retournée. Peut être soit TIFF, soit JPEG.

Valeurs de retour

Retourne la miniature embarquée ou FALSE si l'image ne contient pas de miniature.

Historique

Version Description
4.3.0 Les paramètres optionnels width, height et imagetype deviennent disponibles.
4.3.0 Les miniatures peuvent être retournées dans le format TIFF.

Exemples

Exemple #1 Exemple avec exif_thumbnail()

<?php
if (array_key_exists('file'$_REQUEST)) {
    
$image exif_thumbnail($_REQUEST['file'], $width$height$type);
} else {
    
$image false;
}
if (
$image!==false) {
    
header('Content-type: ' .image_type_to_mime_type($type));
    echo 
$image;
    exit;
} else {
    
// aucune miniature de disponible, traitement de l'erreur ici
    
echo 'No thumbnail available';
}
?>

Voir aussi



read_exif_data

(PHP 4 >= 4.0.1, PHP 5)

read_exif_dataAlias de exif_read_data()

Description

Cette fonction est un alias de : exif_read_data().


Sommaire




Traitement des images et GD


Introduction

PHP ne se limite pas à la génération de pages HTML. Il peut aussi servir à créer et manipuler des images, dans un grand choix de formats, comme GIF, PNG, JPEG, WBMP et XPM. Et PHP peut même générer directement des images pour le navigateur, avec la bibliothèque GD. GD et PHP auront aussi besoin d'autres bibliothèques, en fonction des formats que vous souhaitez utiliser.

Vous pouvez utiliser les fonctions PHP pour obtenir les tailles des images aux formats JPEG, GIF, PNG, SWF, TIFF et JPEG2000.

Avec l'extension exif, vous pourrez travailler avec les informations stockées dans les en-têtes des images JPEG et TIFF. De cette façon, vous pourrez lire les métadonnées générées par les appareils numériques. Les fonctions exif ne nécessitent pas la bibliothèque GD.

Note: Lisez la section sur les besoins pour savoir comment étendre les capacités des fonctions sur les images pour lire, écrire et modifier les images. Pour lire les métadonnées des photos prises avec des appareils numériques, vous devez utiliser l'extension exif mentionnée ci-dessus.

Note: La fonction getimagesize() ne nécessite pas l'extension GD.



Installation/Configuration

Sommaire


Pré-requis

Si vous disposez de la bibliothèque GD (disponible à » http://www.libgd.org/) vous pourrez aussi créer et manipuler des images.

Les formats des images que vous pourrez manipuler dépendent de la version de GD que vous installerez, et de toutes autres bibliothèques dont GD a besoin pour traiter ces images. Les versions antérieures à la version 1.6 supportent le GIF, mais pas le PNG. À partir des version de GD supérieures à 1.6 et inférieures à 2.0.28, c'est le contraire. Le support du GIF a été rajouté à partir de la version 2.0.28.

Note: Depuis PHP 4.3, il existe une version de GD qui est distribuée avec PHP. Cette version contient des fonctionnalités supplémentaires, comme les canaux alpha, et il est recommandé de l'utiliser de préférence à la bibliothèque externe, car elle est mieux supportée, et bien plus stable.

Vous pouvez aussi améliorer GD en lui ajoutant des formats d'images supplémentaires.

Formats d'images supportés
Format d'image Bibliothèque à télécharger Notes
gif   Uniquement supporté en versions de GD antérieures à la version 1.6 et supérieures ou égales à la version 2.0.28. Le support des images GIF est disponible en lecture seule depuis PHP 4.3.0, et dans la version de la bibliothèque qui est fournie avec la distribution de PHP. L'écriture est supportée depuis PHP 4.3.9 et PHP 5.0.1.
jpeg » http://pecl2.php.net/downloads/php-windows-builds/source/ Lors de la compilation de la bibliothèque jpeg (avant celle de PHP), vous devez utiliser l'option de configuration --enable-shared . Dans le cas contraire, vous recevrez une erreur disant que libjpeg.(a|so) not found lorsque vous tenterez de configurer PHP avant de le compiler.
png » http://www.libpng.org/pub/png/libpng.html Uniquement supporté avec GD plus récente que la version 1.6.
xpm » ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html Il est probable que vous ayez déjà cette bibliothèque disponible si votre système dispose d'un environnement X.

Vous pouvez aussi améliorer GD en lui ajoutant des fonctionnalités de manipulation de polices. Les bibliothèques suivantes sont supportées :

Bibliothèques de polices supportées
Bibliothèque de police Téléchargement Notes
FreeType 1.x » http://www.freetype.org/ Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
FreeType 2 » http://www.freetype.org/  
T1lib » ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) Support pour les police Postscript Type 1.



Installation

Pour activer le support de GD, vous devez compiler PHP avec l'option --with-gd[=DIR] , où DIR est le dossier d'installation de GD. Il est recommandé d'utiliser la version de GD qui est distribuée avec PHP, en utilisant simplement l'option --with-gd . La bibliothèque GD requiert libpng et libjpeg pour compiler.

Sous Windows, vous devez inclure la bibliothèque php_gd2.dll comme extension dans le fichier php.ini. La bibliothèque php_gd.dll a été supprimée de PHP 4.3.2. Notez aussi que les fonctions conseillées truecolor, comme imagecreatetruecolor(), requièrent GD2.

Augmentez les possibilités des GD de gérer d'autres formats d'images en spécifiant les options --with-XXXX de compilation suivantes :

Formats d'image supportés
Format d'image Option de compilation
jpeg Pour activer le support de la bibliothèque JPEG, ajouter l'option --with-jpeg-dir=DIR . Jpeg 6b, 7 ou 8 est supporté.
png Pour activer le support de la bibliothèque PNG, ajouter l'option --with-png-dir=DIR . Notez que libpng requiert la bibliothèque zlib et, donc, il vous faudra ajouter aussi --with-zlib-dir[=DIR] dans votre ligne de compilation.
xpm Pour activer le support de la bibliothèque XPM, ajoutez l'option --with-xpm-dir=DIR . Si le script de compilation n'est pas capable de trouver les bibliothèques nécessaires, il vous faudra ajouter le chemin vers les bibliothèques X11.

Note: Lorsque vous compilez PHP avec libpng, vous devez utiliser la même version que celle liée à la bibliothèque GD.

Augmentez les possibilités de GD pour qu'elle manipule différents types de polices de caractères en ajoutant les options --with-XXXX de compilation suivantes :

Bibliothèques des polices de caractères supportées
Bibliothèque Option de configuration
FreeType 1.x Pour activer le support de FreeType 1.x, ajoutez l'option --with-ttf[=DIR] .
FreeType 2 Pour activer le support de FreeType 2, ajoutez l'option --with-freetype-dir=DIR .
T1lib Pour activer le support de T1lib (Postscript Type 1 fonts), ajoutez l'option --with-t1lib[=DIR] .
Chaînes TrueType Pour activer le support des chaînes de caractères TrueType, ajoutez l'option --enable-gd-native-ttf .



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration image
Nom Défaut Modifiable Historique
gd.jpeg_ignore_warning "0" PHP_INI_ALL Disponible depuis PHP 5.1.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

gd.jpeg_ignore_warning bool

Ignore les alertes créées par la fonction jpeg2wbmp() et la fonction imagecreatefromjpeg()

Voir aussi les directives de configuration exif.

Avertissement

Les fonctions sur les images sont très gourmandes en terme de mémoire. Assurez-vous de définir une valeur assez importante pour memory_limit.



Types de ressources

Cette extension définit deux types de ressources : un identifiant d'image et un identifiant de police.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GD_VERSION (chaîne de caractères)
La version GD de PHP. (Disponible depuis PHP 5.2.4)
GD_MAJOR_VERSION (entier)
La version majeur GD de PHP. (Disponible depuis PHP 5.2.4)
GD_MINOR_VERSION (entier)
La version mineure GD de PHP. (Disponible depuis PHP 5.2.4)
GD_RELEASE_VERSION (entier)
La version GD fourni avec PHP. (Disponible depuis PHP 5.2.4)
GD_EXTRA_VERSION (chaîne de caractères)
La version "extra" GD (beta/rc..) de PHP. (Disponible depuis PHP 5.2.4)
GD_BUNDLED (entier)
Lorsque la version interne de GD est utilisée, cette constante vaut 1, sinon, elle vaut 0.
IMG_GIF (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_JPG (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_JPEG (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()

Note:

Cette constante à la même valeur que IMG_JPG

IMG_PNG (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_WBMP (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_XPM (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_COLOR_TILED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_STYLED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_BRUSHED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_STYLEDBRUSHED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_TRANSPARENT (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_ARC_ROUNDED (entier)
Une constante de style utilisée par la fonction imagefilledarc().

Note:

Cette constante à la même valeur que IMG_ARC_PIE

IMG_ARC_PIE (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_CHORD (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_NOFILL (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_EDGED (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_GD2_RAW (entier)
Une constante de type utilisée par la fonction imagegd2().
IMG_GD2_COMPRESSED (entier)
Une constante de type utilisée par la fonction imagegd2().
IMG_EFFECT_REPLACE (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_EFFECT_ALPHABLEND (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_EFFECT_NORMAL (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_EFFECT_OVERLAY (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_FILTER_NEGATE (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_GRAYSCALE (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_BRIGHTNESS (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_CONTRAST (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_COLORIZE (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_EDGEDETECT (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_GAUSSIAN_BLUR (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_SELECTIVE_BLUR (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_EMBOSS (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_MEAN_REMOVAL (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_SMOOTH (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMAGETYPE_GIF (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPEG (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPEG2000 (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_PNG (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_SWF (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_PSD (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_BMP (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_WBMP (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_XBM (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_TIFF_II (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_TIFF_MM (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_IFF (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JB2 (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPC (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JP2 (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPX (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_SWC (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_ICO (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension(). (Disponible depuis PHP 5.3.0)
PNG_NO_FILTER (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_NONE (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_SUB (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_UP (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_AVG (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_PAETH (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_ALL_FILTERS (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
IMG_FILTER_PIXELATE (entier)
Filtre GD spécial, utilisé par la fonction imagefilter(). Disponible depuis PHP 5.3.0


Exemples

Sommaire


Exemple #1 Création d'une image PNG avec PHP

<?php

header
("Content-type: image/png");
$string $_GET['text'];
$im     imagecreatefrompng("images/button1.png");
$orange imagecolorallocate($im22021060);
$px     = (imagesx($im) - 7.5 strlen($string)) / 2;
imagestring($im3$px9$string$orange);
imagepng($im);
imagedestroy($im);

?>
Cet exemple doit être appelé depuis une page HTML avec une balise image telle que : <img src="button.php?text">. Le script ci-dessus, button.php, prend la chaîne "texte" et l'inscrit sur le fond d'image appelé "images/button1.png", puis l'affiche. C'est une méthode très pratique pour éviter de redessiner un nouveau bouton, dès que vous changez son texte. De cette façon, ils sont générés dynamiquement.



Exemple #1 Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha

<?php
// Charge le cachet et la photo afin d'y appliquer le tatouage numérique
$stamp imagecreatefrompng('stamp.png');
$im imagecreatefromjpeg('photo.jpeg');

// Définit les marges pour le cachet et récupère la hauteur et la largeur de celui-ci
$marge_right 10;
$marge_bottom 10;
$sx imagesx($stamp);
$sy imagesy($stamp);

// Copie le cachet sur la photo en utilisant les marges et la largeur de la
// photo originale  afin de calculer la position du cachet 
imagecopy($im$stampimagesx($im) - $sx $marge_rightimagesy($im) - $sy $marge_bottom00imagesx($stamp), imagesy($stamp));

// Affichage et libération de la mémoire
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Ajout d'un tatouage numérique à l'image en utilisant un canal alpha
Cet exemple montre un moyen simple d'appliquer un tatouage numérique et un cachet à vos photos et vos images sous licence. Notez la présence d'un canal Alpha dans le cachet ainsi que du texte anti-aliasé. Ces 2 éléments seront préservés lors de la copie.



Exemple #1 Exemple avec imagecopymerge() pour créer un tatouage numérique translucide

<?php
// Charge le cachet et la photo afin d'y appliquer le tatouage numérique
$im imagecreatefromjpeg('photo.jpeg');

// Tout d'abord, nous créons un cachet manuellement grâce à GD
$stamp imagecreatetruecolor(10070);
imagefilledrectangle($stamp0099690x0000FF);
imagefilledrectangle($stamp9990600xFFFFFF);
$im imagecreatefromjpeg('photo.jpeg');
imagestring($stamp52020'libGD'0x0000FF);
imagestring($stamp32040'(c) 2007-9'0x0000FF);

// Définit les marges du cachet et récupère la largeur et la hauteur du cachet
$marge_right 10;
$marge_bottom 10;
$sx imagesx($stamp);
$sy imagesy($stamp);

// Fusionne le cachet dans notre photo avec une opacité (transparence) de 50%
imagecopymerge($im$stampimagesx($im) - $sx $marge_rightimagesy($im) - $sy $marge_bottom00imagesx($stamp), imagesy($stamp), 50);

// Sauvegarde l'image dans un fichier et libère la mémoire
imagepng($im'photo_stamp.png');
imagedestroy($im);

?>
Utilisation d'imagecopymerge() pour créer un tatouage translucide
Cet exemple utilise la fonction imagecopymerge() pour fusionner le cachet avec notre image original. En utilisant cette fonction, nous pouvons définir l'opacité de notre cachet - dans notre exemple, nous l'avons défini à 50%. En pratique, il est plus judicieux de rendre notre protection semi-transparente, la rendant plus difficile à enlever mais permettant également aux visionneuses d'images de la lire sans problème.




Fonctions GD et images


gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_infoRetourne des informations à propos de la bibliothèque GD installée

Description

array gd_info ( void )

Retourne des informations à propos de la bibliothèque GD installée.

Valeurs de retour

Retourne un tableau associatif.

Éléments du tableau retournés par gd_info()
Attribut Signification
GD Version chaîne de caractères décrivant la version de libgd qui est installée.
Freetype Support booléen. TRUE si le support Freetype est installé.
Freetype Linkage chaîne de caractères décrivant la façon avec laquelle Freetype a été lié. Les valeurs attendues sont : 'with freetype', 'with TTF library' et 'with unknown library'. Cet élément ne sera défini que si Freetype Support est évalué TRUE.
T1Lib Support booléen. TRUE si le support T1Lib est inclus.
GIF Read Support booléen. TRUE si le support pour la lecture des images GIF est inclus.
GIF Create Support booléen. TRUE si le support pour la création des images GIF est inclus.
JPEG Support booléen. TRUE si le support de JPEG est inclus.
PNG Support booléen. TRUE si le support de PNG est inclus.
WBMP Support booléen. TRUE si le support de WBMP est inclus.
XBM Support booléen. TRUE si le support de XBM est inclus.

Note:

Avant PHP 5.3.0, l'attribut JPEG Support était nommé JPG Support.

Exemples

Exemple #1 Exemple avec gd_info()

<?php
var_dump
(gd_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPEG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

Historique

Version Description
5.3.0 L'attribut JPG Support est renommé en JPEG Support.

Voir aussi

  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP



getimagesize

(PHP 4, PHP 5)

getimagesizeRetourne la taille d'une image

Description

array getimagesize ( string $filename [, array &$imageinfo ] )

getimagesize() détermine la taille de l'image fournie et en retourner les dimensions, le type d'image et une chaîne type height/width à placer dans une balise HTML IMG normale et le type de contenu HTTP correspondant.

getimagesize() peut également retourner plus d'informations dans la paramètre imageinfo.

Note: Notez que JPC et JP2 sont capables d'avoir des composants avec une profondeur de bit différente. Dans ce cas, la valeur de "bits" est la plus grande profondeur de bit rencontrée. De même, les fichiers JP2 disposent du support de multiple JPEG 2000 codestreams. Dans ce cas, getimagesize() retourne les valeurs pour le premier codestream rencontré à la racine du fichier.

Note: Les informations sur les icônes sont récupérées depuis l'icône possédant le plus haut débit.

Liste de paramètres

filename

Ce paramètre spécifie le fichier dont vous voulez récupérer les informations. Il peut être un fichier local ou (suivant la configuration), un fichier distant en utilisant un des flux supportés.

imageinfo

Ce paramètre optionnel permet d'extraire des informations supplémentaires du fichier image. Actuellement, cette option va retourner différents marqueurs JPG APP dans un tableau associatif. Certains programmes utilisent ces marqueur APP pour préciser les informations dans les balises HTML. Un marqueur commun est le marqueur APP13, décrit à » IPTC. Vous pouvez utiliser la fonction iptcparse() pour analyser ce marqueur, et obtenir des informations intelligibles.

Valeurs de retour

Retourne un tableau contenant 7 éléments.

L'index 0 contient la largeur. L'index 1 contient la hauteur.

Note:

Certains formats peuvent ne contenir aucune image, ou bien plusieurs. Dans ces cas-là, getimagesize() peut ne pas être capable de déterminer correctement la taille de l'image. getimagesize() retourne alors zéro comme taille de hauteur et largeur.

L'index 2 est une constante parmi IMAGETYPE_XXX, indiquant le type de l'image.

L'index 3 contient la chaîne à placer dans les balises IMG : height="xxx" width="yyy".

mime correspond au type MIME d'une image. Cette information peut être utilisée pour envoyer l'en-tête HTTP Content-type correct :

Exemple #1 getimagesize() et types MIME

<?php
$size 
getimagesize($filename);
$fp fopen($filename"rb");
if (
$size && $fp) {
    
header("Content-type: {$size['mime']}");
    
fpassthru($fp);
    exit;
} else {
    
// error
}
?>

channels sera 3 pour des images RGB et 4 pour des images CMYK.

bits est le nombre d'octets pour chaque couleur.

Cependant, la présence des valeurs de channels et de bits peut mener à la confusion. Par exemple, une image GIF utilise toujours trois canaux par pixel, mais le nombre de bits par pixel ne peut être calculé dans le cas d'une image animée GIF ayant une table de couleur globale.

Si une erreur survient, FALSE est retourné.

Erreurs / Exceptions

Si l'accès à filename est impossible ou bien si filename n'est pas une image valide, getimagesize() générera une erreur de niveau E_WARNING. Si une erreur survient lors de la lecture, getimagesize() générera une erreur de niveau E_NOTICE.

Historique

Version Description
5.3.0 Ajout du support des icônes.
5.2.3 Les erreurs de lecture générées par cette fonction passe de niveau E_WARNING à E_NOTICE.
4.3.2 Le support de JPC, JP2, JPX, JB2, XBM, et WBMP devient disponible.
4.3.2 Le support JPEG 2000 a été ajouté pour le paramètre imageinfo.
4.3.0 bits et channels sont présents pour les autres types d'images.
4.3.0 mime a été ajouté.
4.3.0 Le support de SWC et IFF a été ajouté.
4.2.0 Le support de TIFF a été ajouté.
4.0.6 Le support des BMP et PSD a été ajouté.
4.0.5 Le support d'URL a été ajouté.

Exemples

Exemple #2 Exemple avec getimagesize()

<?php
list($width$height$type$attr) = getimagesize("img/flag.jpg");
echo 
"<img src=\"img/flag.jpg\" $attr alt=\"Exemple avec getimagesize()\" />";
?>

Exemple #3 getimagesize() avec une URL

<?php
$size 
getimagesize("http://www.example.com/gifs/logo.gif");

// Si le nom du fichier comporte des espaces, encodez-le !
$size getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Exemple #4 getimagesize() qui retourne IPTC

<?php
$size 
getimagesize("testimg.jpg"$info);
if (isset(
$info["APP13"])) {
    
$iptc iptcparse($info["APP13"]);
    
var_dump($iptc);
}
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.

Voir aussi



image_type_to_extension

(PHP 5)

image_type_to_extensionRetourne l'extension du fichier pour le type d'image

Description

string image_type_to_extension ( int $imagetype [, bool $include_dot ] )

image_type_to_extension() retourne l'extension pour la constante IMAGETYPE_XXX fournie.

Liste de paramètres

imagetype

Une des constantes IMAGETYPE_XXX.

include_dot

Si l'on doit ajouter un point à l'extension ou non. Par défaut, vaut TRUE.

Valeurs de retour

Une chaîne de caractères avec l'extension, correspondant au type de l'image fournie.

Exemples

Exemple #1 Exemple avec image_type_to_extension()

<?php
// Création d'une instance d'image
$im imagecreatetruecolor(100100);

// Sauvegarde de l'image
imagepng($im'./test' image_type_to_extension(IMAGETYPE_PNG));
imagedestroy($im);
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.



image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5)

image_type_to_mime_typeLit le Mime-Type d'un type d'image

Description

string image_type_to_mime_type ( int $imagetype )

Détermine le type MIME (Mime-Type), à utiliser dans l'en-tête HTTP Content-type.

Liste de paramètres

imagetype

Une des constantes IMAGETYPE_XXX.

Valeurs de retour

Les valeurs retournées sont les suivantes

Valeurs des constantes retournées
imagetype Valeur retournée
IMAGETYPE_GIF image/gif
IMAGETYPE_JPEG image/jpeg
IMAGETYPE_PNG image/png
IMAGETYPE_SWF application/x-shockwave-flash
IMAGETYPE_PSD image/psd
IMAGETYPE_BMP image/bmp
IMAGETYPE_TIFF_II (ordre intel) image/tiff
IMAGETYPE_TIFF_MM (ordre motorola) image/tiff
IMAGETYPE_JPC application/octet-stream
IMAGETYPE_JP2 image/jp2
IMAGETYPE_JPX application/octet-stream
IMAGETYPE_JB2 application/octet-stream
IMAGETYPE_SWC application/x-shockwave-flash
IMAGETYPE_IFF image/iff
IMAGETYPE_WBMP image/vnd.wap.wbmp
IMAGETYPE_XBM image/xbm
IMAGETYPE_ICO image/vnd.microsoft.icon

Exemples

Exemple #1 Exemple avec image_type_to_mime_type()

<?php
header
("Content-type: " image_type_to_mime_type(IMAGETYPE_PNG));
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.

Voir aussi



image2wbmp

(PHP 4 >= 4.0.5, PHP 5)

image2wbmpAffichage de l'image vers le navigateur ou dans un fichier

Description

bool image2wbmp ( resource $image [, string $filename [, int $threshold ]] )

image2wbmp() affiche ou enregistre une version WBMP de l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Chemin vers le fichier de sauvegarde. S'il n'est pas fourni, le flux de l'image sera directement affiché.

threshold

Valeur du seuil, entre 0 et 255 inclus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec image2wbmp()

<?php

$file 
'php.png';
$image imagecreatefrompng($file);

header('Content-Type: ' image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // Affichage direct
imagedestroy($image);

?>

Notes

Note:

Le support WBMP n'est disponible qu'avec GD-1.8 ou plus récent.

Voir aussi

  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier



imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablendingModifie le mode de blending d'une image

Description

bool imagealphablending ( resource $image , bool $blendmode )

imagealphablending() fournit deux modes de dessin des images en vraies couleurs (truecolors). En mode "blending", le canal alpha de chaque couleur est fournie à chaque fonction de dessin, tel que imagesetpixel() peut déterminer sa transparence. GD va alors automatiquement mixer la couleur à ce point, et stocker le résultat dans l'image. Le pixel résultant est alors opaque. En mode non-mixant, la couleur est copiée littéralement avec ses informations de canal alpha, et remplace le pixel de destination. Le mixage n'est pas disponible avec les images à palette.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

blendmode

Si l'on doit activer le mode blending ou non. Sur les images à couleurs vraies, la valeur par défaut est TRUE, sinon, la valeur par défaut est FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagealphablending()

<?php
// Création d'une image
$im imagecreatetruecolor(100100);

// Définit l'alphablending à on
imagealphablending($imtrue);

// Dessine un carré
imagefilledrectangle($im30307070imagecolorallocate($im25500));

// Affichage
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).



imageantialias

(PHP 4 >= 4.3.2, PHP 5)

imageantialiasUtiliser ou non les fonctions d'antialias

Description

bool imageantialias ( resource $image , bool $enabled )

Active les méthodes de schéma rapide d'antialias et de polygones câblés. Il ne supporte pas les composants alpha. Il fonctionne en utilisant une opération directe de mélange. Il ne fonctionne qu'avec les images truecolor.

L'épaisseur et le style ne sont pas supporté.

L'utilisation des primitives antialias avec des arrière-plans transparents peut se terminer avec des résultats imprévus. La méthode de mélange utilise la couleur d'arrière-plan comme tout autre couleur. Les faiblesses du support du composant alpha font qu'il n'est pas autorisé de méthode d'antialias basée sur l'alpha.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

enabled

Si l'on doit activer l'antialias ou non.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Comparaison de 2 lignes, dont l'une est anti-aliasé

<?php
// Définit une image anti-aliasé et une normale
$aa imagecreatetruecolor(400100);
$normal imagecreatetruecolor(200100);

// Active l'antialiasing pour une image
imageantialias($aatrue);

// Alloue les couleurs
$red imagecolorallocate($normal25500);
$red_aa imagecolorallocate($aa25500);

// Dessine 2 lignes, dont l'une avec l'antialiasing
imageline($normal00200100$red);
imageline($aa00200100$red_aa);

// Fusionne les 2 images, côté par côté pour l'affichage
// (AA: gauche, Normal: Droit)
imagecopymerge($aa$normal200000200100100);

// Affichage de l'image
header('Content-type: image/png');

imagepng($aa);
imagedestroy($aa);
imagedestroy($normal);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Une comparaison de 2 lignes, dont une avec un anti-aliasing

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Voir aussi



imagearc

(PHP 4, PHP 5)

imagearcDessine une ellipse partielle

Description

bool imagearc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color )

imagearc() dessine une ellipse partielle, centrée sur les coordonnées fournies.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

start

L'angle de début de l'ellipse, en degrés.

end

L'angle de fin de l'ellipse, en degrés. 0° correspond à la position "trois heures" et l'ellipse est dessiné dans le sens des aiguilles d'une montre.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Dessine d'un cercle avec imagearc()

<?php

// Création d'une image 200*200
$img imagecreatetruecolor(200200);

// Allocation de couleurs
$white imagecolorallocate($img255255255);
$red   imagecolorallocate($img255,   0,   0);
$green imagecolorallocate($img,   0255,   0);
$blue  imagecolorallocate($img,   0,   0255);

// Dessine la tête
imagearc($img100100200200,  0360$white);
// La bouche
imagearc($img10010015015025155$red);
// les yeux gauche et droit
imagearc($img,  60,  75,  50,  50,  0360$green);
imagearc($img140,  75,  50,  50,  0360$blue);

// Affichage au navigateur
header("Content-type: image/png");
imagepng($img);

// Libération de la mémoire
imagedestroy($img);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Desinne un cercle avec imagearc()

Voir aussi



imagechar

(PHP 4, PHP 5)

imagecharDessine un caractère horizontalement

Description

bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )

imagechar() dessine le premier caractère de la chaîne c dans l'image image avec le coin supérieur gauche placé à la position x,y (le coin en haut à gauche est l'origine (0,0)) avec la couleur color.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée de départ.

y

Y : coordonnée de départ.

c

Le caractère à dessiner.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagechar()

<?php

$im 
imagecreate(100100);

$string 'PHP';

$bg imagecolorallocate($im255255255);
$black imagecolorallocate($im000);

// affiche un "P" noir dans le coin gauche en haut
imagechar($im100$string$black);

header('Content-type: image/png');
imagepng($im);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagechar()

Voir aussi



imagecharup

(PHP 4, PHP 5)

imagecharupDessine un caractère verticalement

Description

bool imagecharup ( resource $image , int $font , int $x , int $y , string $c , int $color )

Dessine le premier caractère de la chaîne c verticalement dans l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée de départ.

y

Y : coordonnée de départ.

c

Le caractère à dessiner.

color

Un identifiant de couleur, créé avec la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecharup()

<?php

$im 
imagecreate(100100);

$string 'Notez que la première lettre est un N';

$bg imagecolorallocate($im255255255);
$black imagecolorallocate($im000);

// affiche un "Z" noir sur un fond blanc
imagecharup($im31010$string$black);

header('Content-type: image/png');
imagepng($im);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecharup()

Voir aussi



imagecolorallocate

(PHP 4, PHP 5)

imagecolorallocateAlloue une couleur pour une image

Description

int imagecolorallocate ( resource $image , int $red , int $green , int $blue )

Retourne un identifiant de couleur, représentant la couleur composée avec les couleurs RGB.

imagecolorallocate() doit être appelée pour créer chaque couleur qui sera représentée par image.

Note:

Le premier appel à imagecolorallocate() remplit la couleur de fond avec la palette des images - images créées en utilisant imagecreate().

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Ces paramètres sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 and 0xFF.

Valeurs de retour

Un identifiant de couleur ou FALSE si l'allocation échoue.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version Description
Avant la version 5.1.3 Retourne -1 si l'allocation échoue.

Exemples

Exemple #1 Exemple avec imagecolorallocate()

<?php

$im 
imagecreate(100100);

// Le fond de l'image est en rouge
$background imagecolorallocate($im25500);

// On définit des couleurs avec des entiers ..
$white imagecolorallocate($im255255255);
$black imagecolorallocate($im000);

// .. ou des hexadécimaux
$white imagecolorallocate($im0xFF0xFF0xFF);
$black imagecolorallocate($im0x000x000x00);

?>

Voir aussi



imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5)

imagecolorallocatealphaAlloue une couleur à une image

Description

int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

imagecolorallocatealpha() se comporte comme imagecolorallocate() avec en plus le paramètre de transparence alpha.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres de couleurs sont des entiers compris entre 0 et 255, ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Un identifiant de couleur ou FALSE si l'allocation échoue.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version Description
Avant la version 5.1.3 Retourne -1 si l'allocation échoue.

Exemples

Exemple #1 Exemple avec imagecolorallocatealpha()

<?php
$size 
300;
$image=imagecreatetruecolor($size$size);

// quelque chose pour obtenir un fond blanc avec une bordure noire
$back imagecolorallocate($image255255255);
$border imagecolorallocate($image000);
imagefilledrectangle($image00$size 1$size 1$back);
imagerectangle($image00$size 1$size 1$border);

$yellow_x 100;
$yellow_y 75;
$red_x    120;
$red_y    165;
$blue_x   187;
$blue_y   125;
$radius   150;

// alloue des couleurs avec des valeurs alpha
$yellow imagecolorallocatealpha($image255255075);
$red    imagecolorallocatealpha($image2550075);
$blue   imagecolorallocatealpha($image0025575);

// Dessine 3 ellipses
imagefilledellipse($image$yellow_x$yellow_y$radius$radius$yellow);
imagefilledellipse($image$red_x$red_y$radius$radius$red);
imagefilledellipse($image$blue_x$blue_y$radius$radius$blue);

// Ne pas oublier d'envoyer un header correct
header('Content-Type: image/png');

// et finallement, afficher le résultat
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecolorallocatealpha()

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagecolorat

(PHP 4, PHP 5)

imagecoloratRetourne l'index de la couleur d'un pixel donné

Description

int imagecolorat ( resource $image , int $x , int $y )

Retourne l'index de la couleur du pixel situé aux coordonnées spécifiées, dans l'image image.

Si PHP supporte la bibliothèque GD version 2.0 ou plus récent, et que l'image est une image en TrueColor, cette fonction retourne la valeur RGB du pixel, sous forme d'un entier. Utiliser les opérateurs de bits et les masques pour distinguer le rouge, du vert et du bleu :

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée du point.

y

Y : coordonnée du point.

Valeurs de retour

Retourne l'index de la couleur.

Exemples

Exemple #1 Accès aux valeurs RGB

<?php
$im 
imagecreatefrompng("php.png");
$rgb imagecolorat($im1015);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b $rgb 0xFF;
var_dump($r$g$b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(119)
int(123)
int(180)

Exemple #2 Valeurs RVB lisibles en utilisant la fonction imagecolorsforindex()

<?php
$im 
imagecreatefrompng("php.png");
$rgb imagecolorat($im1015);

$colors imagecolorsforindex($im$rgb);

var_dump($colors);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  ["red"]=>
  int(119)
  ["green"]=>
  int(123)
  ["blue"]=>
  int(180)
  ["alpha"]=>
  int(127)
}

Voir aussi



imagecolorclosest

(PHP 4, PHP 5)

imagecolorclosestRetourne l'index de la couleur la plus proche d'une couleur donnée

Description

int imagecolorclosest ( resource $image , int $red , int $green , int $blue )

Retourne l'index de la couleur de la palette qui est la plus proche de la valeur RGB passée.

La "distance" entre la couleur souhaitée et les couleurs de la palette est calculée en considérant l'espace RGB comme un espace à 3 dimensions.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Les paramètres sur les couleurs sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Retourne l'index de la couleur la plus proche, dans la palette de l'image, de celle donnée.

Exemples

Exemple #1 Recherche d'un jeu de couleur dans une image

<?php
// On commence avec une image et on la convertie en une palette de couleurs
$im imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($imfalse255);

// Couleurs recherchées (RVB)
$colors = array(
    array(
254145154),
    array(
153145188),
    array(
15390145),
    array(
25513792)
);

// On boucle sur chaque recherche et on trouve la couleur de la palette la plus proche.
// Retourne le numéro de la recherche, le RVB cherché et la correspondance en RVB
foreach($colors as $id => $rgb)
{
    
$result imagecolorclosest($im$rgb[0], $rgb[1], $rgb[2]);
    
$result imagecolorsforindex($im$result);
    
$result "({$result['red']}{$result['green']}{$result['blue']})";

    echo 
"#$id: Recherche ($rgb[0]$rgb[1]$rgb[2]); Correspondance : $result.\n";
}

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0: Recherche (254, 145, 154); Correspondance : (252, 150, 148).
#1: Recherche (153, 145, 188); Correspondance : (148, 150, 196).
#2: Recherche (153, 90, 145); Correspondance : (148, 90, 156).
#3: Recherche (255, 137, 92); Correspondance : (252, 150, 92).

Voir aussi



imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorclosestalphaRetourne la couleur la plus proche, en tenant compte du canal alpha

Description

int imagecolorclosestalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Retourne l'index de la couleur, dans la palette de l'image image, la plus proche de la couleur spécifiée par les autres paramètres, au format RGB et de canal alpha alpha.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur comprise entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres sur les couleurs sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Retourne l'index de la couleur la plus proche dans la palette.

Exemples

Exemple #1 Cherche un jeu de couleurs dans une image

<?php
// On commence avec une image et on la convertie en palette
$im imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($imfalse255);

// Recherche des couleurs (RVB)
$colors = array(
    array(
25414515450),
    array(
153145188127),
    array(
153901450),
    array(
2551379284)
);

// On boucle sur chaque recherche et on trouve la couleur la plus proche de la palette.
// Retourne le numéro de la recherche, la recherche RVB et le résultat converti en RVB
foreach($colors as $id => $rgb)
{
    
$result imagecolorclosestalpha($im$rgb[0], $rgb[1], $rgb[2], $rgb[3]);
    
$result imagecolorsforindex($im$result);
    
$result "({$result['red']}{$result['green']}{$result['blue']}{$result['alpha']})";

    echo 
"#$id: Recherche ($rgb[0]$rgb[1]$rgb[2]$rgb[3]); Résultat le plus proche : $result.\n";
}

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0: Recherche (254, 145, 154, 50); Résultat le plus proche : (252, 150, 148, 0).
#1: Recherche (153, 145, 188, 127); Résultat le plus proche : (148, 150, 196, 0).
#2: Recherche (153, 90, 145, 0); Résultat le plus proche : (148, 90, 156, 0).
#3: Recherche (255, 137, 92, 84); Résultat le plus proche : (252, 150, 92, 0).

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5)

imagecolorclosesthwbLit l'index de la couleur spécifiée avec sa teinte, blanc et noir

Description

int imagecolorclosesthwb ( resource $image , int $red , int $green , int $blue )

Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Valeurs de retour

Retourne un entier représentant d'index de la couleur.

Exemples

Exemple #1 Exemple avec imagecolorclosesthwb()

<?php
$im 
imagecreatefromgif('php.gif');

echo 
'HWB : ' imagecolorclosesthwb($im116115152);

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

HWB: 33

Historique

Version Description
5.3.0 Cette fonction est désormais disponible sous Windows

Voir aussi



imagecolordeallocate

(PHP 4, PHP 5)

imagecolordeallocateSupprime une couleur d'une image

Description

bool imagecolordeallocate ( resource $image , int $color )

Supprime la couleur color précédemment allouée avec la fonction imagecolorallocate(), pour l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

color

L'identifiant de la couleur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecolordeallocate()

<?php
$white 
imagecolorallocate($im255255255);
imagecolordeallocate($im$white);
?>

Voir aussi



imagecolorexact

(PHP 4, PHP 5)

imagecolorexactRetourne l'index de la couleur donnée

Description

int imagecolorexact ( resource $image , int $red , int $green , int $blue )

Retourne l'index de la couleur spécifiée dans la palette de l'image image.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Valeurs de retour

Retourne l'index de la couleur spécifié dans la palette, ou -1 si la couleur n'existe pas.

Exemples

Exemple #1 Récupération des couleurs composant le logo GD

<?php
// Définit l'image
$im imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexact($im25500);
$colors[] = imagecolorexact($im000);
$colors[] = imagecolorexact($im255255255);
$colors[] = imagecolorexact($im10025552);

print_r($colors);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

Voir aussi



imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorexactalphaRetourne l'index d'une couleur avec son canal alpha

Description

int imagecolorexactalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Retourne l'index d'une couleur avec son canal alpha.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur comprise entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres sur les couleurs sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 and 0xFF.

Valeurs de retour

Retourne l'index de la couleur fournie et son canal alpha dans la palette de l'image, ou -1 si la couleur n'existe pas dans la palette de l'image.

Exemples

Exemple #1 Récupération des couleurs composant le logo GD

<?php

// Définit l'image
$im imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexactalpha($im255000);
$colors[] = imagecolorexactalpha($im000127);
$colors[] = imagecolorexactalpha($im25525525555);
$colors[] = imagecolorexactalpha($im1002555220);

print_r($colors);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagecolormatch

(PHP 4 >= 4.3.0, PHP 5)

imagecolormatchFait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor

Description

bool imagecolormatch ( resource $image1 , resource $image2 )

Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor.

Liste de paramètres

image1

Une ressource d'image truecolor.

image2

Une ressource de palette d'image pointant sur une image qui a la même taille que image1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecolormatch()

<?php
// Définit l'images true color et la palette
$im1 imagecreatefrompng('./gdlogo.png');
$im2 imagecreate(imagesx($im1), imagesy($im1));

// Ajout de quelques couleurs à $im2
$colors   = Array();
$colors[] = imagecolorallocate($im22553674);
$colors[] = imagecolorallocate($im2400240);
$colors[] = imagecolorallocate($im282100255);
$colors[] = imagecolorallocate($im2846344);

// Fait correspondre ces couleurs avec l'image true color
imagecolormatch($im1$im2);

// Libération de la mémoire
imagedestroy($im1);
imagedestroy($im2);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagecolorresolve

(PHP 4, PHP 5)

imagecolorresolveRetourne l'index de la couleur donnée, ou la plus proche possible

Description

int imagecolorresolve ( resource $image , int $red , int $green , int $blue )

imagecolorresolve() retourne un index de couleur à tous les coups. Soit il arrive à trouver la couleur demandée dans la palette, soit il trouve la couleur la plus proche.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Valeurs de retour

Retourne un index de couleur.

Exemples

Exemple #1 Exemple avec imagecoloresolve() pour récupérer les couleurs d'une image

<?php
// Chargement d'une image
$im imagecreatefromgif('phplogo.gif');

// Récupération des couleurs les plus proches de l'image
$colors = array();
$colors[] = imagecolorresolve($im255255255);
$colors[] = imagecolorresolve($im00200)

// Affichage
print_r($colors);

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 89
    [1] => 85
)

Voir aussi



imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorresolvealpha Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha

Description

int imagecolorresolvealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

imagecolorresolvealpha() retourne toujours un index de couleur, disponible dans la palette de l'image image : soit c'est la couleur exacte, soit c'est la meilleure approximation.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur comprise entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres sur les couleurs sont des entiers entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Retourne un index de couleur.

Exemples

Exemple #1 Exemple avec imagecoloresolve() pour récupérer les couleurs d'une image

<?php
// Chargement de l'image
$im imagecreatefromgif('phplogo.gif');

// Récupération des couleurs les plus proches de l'image
$colors = array();
$colors[] = imagecolorresolvealpha($im2552552550);
$colors[] = imagecolorresolvealpha($im00200127);

// Affichage
print_r($colors);

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 89
    [1] => 85
)

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagecolorset

(PHP 4, PHP 5)

imagecolorsetChange la couleur dans une palette à l'index donné

Description

void imagecolorset ( resource $image , int $index , int $red , int $green , int $blue [, int $alpha = 0 ] )

Permet d'attribuer à un index d'une palette une couleur spécifique. C'est une fonction très pratique pour effectuer du remplissage de couleur sans le faire réellement.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

index

Un index de la palette.

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Valeur du composant alpha.

Cette modification existe dans la version de développement de PHP, et existera probablement après la version 5.3.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
Futur Le paramètre alpha a été ajouté.

Exemples

Exemple #1 Exemple avec imagecolorset()

<?php
// Création d'une image de 300x100 pixels
$im imagecreate(300100);

// Définit la couleur d'arrière-plan à rouge
imagecolorallocate($im25500);

// Récupération de l'index de la couleur d'arrière-plan
$bg imagecolorat($im00);

// Définit la couleur d'arrière-plan à bleu
imagecolorset($im$bg00255);

// Affiche l'image dans le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Voir aussi



imagecolorsforindex

(PHP 4, PHP 5)

imagecolorsforindexRetourne la couleur associée à un index

Description

array imagecolorsforindex ( resource $image , int $index )

Retourne la couleur associée à un index spécifié.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

index

L'index de la couleur.

Valeurs de retour

Retourne un tableau associatif avec les clés "red", "green", "blue" et "alpha" qui contiennent les valeurs pour l'index de la couleur spécifiée.

Exemples

Exemple #1 Exemple avec imagecolorsforindex()

<?php

// on ouvre une image
$im imagecreatefrompng('nexen.png');

// on obtient une couleur
$start_x 40;
$start_y 50;
$color_index imagecolorat($im$start_x$start_y);

// on la rend lisible
$color_tran imagecolorsforindex($im$color_index);

// quelle est-elle ?
print_r($color_tran);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [red] => 226
   [green] => 222
   [blue] => 252
   [alpha] => 0
)

Voir aussi



imagecolorstotal

(PHP 4, PHP 5)

imagecolorstotalCalcule le nombre de couleurs d'une palette

Description

int imagecolorstotal ( resource $image )

Retourne le nombre de couleurs de la palette de l'image.

Liste de paramètres

image

Une ressource représentant une image, retournée par une des fonctions de création d'images, comme la fonction imagecreatefromgif().

Valeurs de retour

Retourne le nombre de couleurs de la palette pour l'image image ou 0 pour les images truecolor.

Exemples

Exemple #1 Récupération du nombre total de couleurs dans une image en utilisant la fonction imagecolorstotal()

<?php
// Création d'une instance d'image
$im imagecreatefromgif('php.gif');

echo 
'Nombre total de couleurs dans l\'image : ' imagecolorstotal($im);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre total de couleurs dans l'image : 128

Voir aussi



imagecolortransparent

(PHP 4, PHP 5)

imagecolortransparentDéfinit la couleur transparente

Description

int imagecolortransparent ( resource $image [, int $color ] )

imagecolortransparent() définit la couleur transparente pour l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

L'identifiant de la nouvelle couleur transparente (ou l'actuelle, si aucune n'est spécifiée) est retourné.

Exemples

Exemple #1 Exemple avec imagecolortransparent()

<?php
// Création d'une image de 55x30
$im imagecreatetruecolor(5530);
$red imagecolorallocate($im25500);
$black imagecolorallocate($im000);

// On rend l'arrière-plan transparent
imagecolortransparent($im$black);

// On dessine un rectangle rouge
imagefilledrectangle($im445025$red);

// On sauvegarde l'image
imagepng($im'./imagecolortransparent.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecolortransparent()

Notes

Note:

La transparence est copiée uniquement avec la fonction imagecopymerge() et les images en couleur vraies, non pas avec la fonction imagecopy() ou les images de palette.

Note:

La couleur de transparence est une propriété de l'image, elle n'est pas une propriété de la couleur. Une fois que vous avez défini la couleur de transparence, chaque région de l'image de cette couleur que vous avez dessiné précédemment sera transparente.



imageconvolution

(PHP 5 >= 5.1.0)

imageconvolutionApplique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage

Description

bool imageconvolution ( resource $image , array $matrix , float $div , float $offset )

imageconvolution() applique une matrice de la convolution 3x3, en utilisant le coefficient div et l'excentrage offset.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

matrix

Une matrice 3x3 : un tableau contenant trois tableaux de trois nombres à virgules flottantes.

div

Le diviseur du résultat de la convolution, utilisé pour la normalisation.

offset

La position de la couleur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Impression du logo PHP.net avec imageconvolution()

<?php
$image 
imagecreatefromgif('http://www.php.net/images/php.gif');

$emboss = array(array(200), array(0, -10), array(00, -1));
imageconvolution($image$emboss1127);

header('Content-Type: image/png');
imagepng($imagenull9);
?>

L'exemple ci-dessus va afficher :

imageconvolution_emboss.png

Exemple #2 Flou gaussien avec imageconvolution()

<?php
$image 
imagecreatetruecolor(180,40);

// Écrit le texte et applique un floue gaussien sur l'image
imagestring($image5108'Texte floue goussien'0x00ff00);
$gaussian = array(array(1.02.01.0), array(2.04.02.0), array(1.02.01.0));
imageconvolution($image$gaussian160);

// Récrit le texte pour la comparaison
imagestring($image51018'Texte floue goussien'0x00ff00);

header('Content-Type: image/png');
imagepng($imagenull9);
?>

L'exemple ci-dessus va afficher :

Affichage de l'exemple : Floue gaussien

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Voir aussi



imagecopy

(PHP 4, PHP 5)

imagecopyCopie une partie d'une image

Description

bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

Copie une partie de l'image src_im sur l'image de destination dst_im, en commençant aux coordonnées src_x, src_y et sur la largeur de src_w et la hauteur de src_h. La portion ainsi définie sera copiée et placée aux coordonnées dst_x et dst_y.

Liste de paramètres

dst_im

Lien vers la ressource cible de l'image.

src_im

Lien vers la ressource source de l'image.

dst_x

X : coordonnées du point de destination.

dst_y

Y : coordonnées du point de destination.

src_x

X : coordonnées du point source.

src_y

Y : coordonnées du point source.

src_w

Largeur de la source.

src_h

Hauteur de la source.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 On coupe le logo PHP.net

<?php
// Création des instances d'image
$src imagecreatefromgif('php.gif');
$dest imagecreatetruecolor(8040);

// Copie
imagecopy($dest$src0020138040);

// Affichage et libération de la mémoire
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Copie une partie du logo PHP.net



imagecopymerge

(PHP 4 >= 4.0.1, PHP 5)

imagecopymergeCopie et fusionne une partie d'une image

Description

bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

Copie une partie de l'image src_im dans l'image de destination dst_im en commençant aux coordonnées (src_x, src_y), avec la largeur src_w et la hauteur src_h. La zone de l'image ainsi définie sera copiée aux coordonnées (dst_x, dst_y), dans l'image de destination.

Liste de paramètres

dst_im

Lien vers la ressource cible de l'image.

src_im

Lien vers la ressource source de l'image.

dst_x

X : coordonnée du point de destination.

dst_y

Y : coordonnée du point de destination.

src_x

X : coordonnée du point source.

src_y

Y : coordonnée du point source.

src_w

Largeur de la source.

src_h

Hauteur de la source.

pct

Les deux images seront fusionnées suivant le paramètre pct, qui peut valoir de 0 à 100. Si pct = 0, aucune action n'est faite, alors que si pct = 100, imagecopymerge() se comporte exactement comme imagecopy() pour les images de palette, tandis qu'il implémente la transparence alpha pour les images en couleur vraies.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fusionne 2 copies du logo PHP.net avec 75% de transparence

<?php
// Création des instances d'image
$dest imagecreatefromgif('php.gif');
$src imagecreatefromgif('php.gif');

// Copie et fusionne
imagecopymerge($dest$src1010001004775);

// Affichage et libération de la mémoire
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>



imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5)

imagecopymergegrayCopie et fusionne une partie d'une image en niveaux de gris

Description

bool imagecopymergegray ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

imagecopymergegray() copie une partie de l'image src_im dans l'image de destination dst_im commençant aux coordonnées (src_x, src_y), avec la largeur src_w et la hauteur src_h. La zone de l'image ainsi définie sera copiée aux coordonnées (dst_x, dst_y), dans l'image de destination.

imagecopymergegray() est identique à la fonction imagecopymerge(), hormis le fait que lors de la fusion, le "hue" de l'image sera conservé grâce à la conversion de la zone dans l'image de destination en gris, avant l'opération de copie.

Liste de paramètres

dst_im

Lien vers la ressource cible de l'image.

src_im

Lien vers la ressource source de l'image.

dst_x

X : coordonnée du point de destination.

dst_y

Y : coordonnée du point de destination.

src_x

X : coordonnée du point source.

src_y

Y : coordonnée du point source.

src_w

Largeur de la source.

src_h

Hauteur de la source.

pct

Le paramètre src_im sera changé en niveaux de gris en accord avec le paramètre pct où 0 correspond à une convertion totale en niveaux de gris et 100 ne modifie rien. Lorsque pct = 100, cette fonction se comporte de la même façon que la fonction imagecopy() pour les palettes, alors qu'elle implémente la transparene alpha pour les images true colour.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecopymergegray()

<?php
// Création des instances d'image
$dest imagecreatefromgif('php.gif');
$src imagecreatefromgif('php.gif');

// Copie et fusionne - Gris = 20%
imagecopymergegray($dest$src1010001004720);

// Affichage et libère la mémoire
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>



imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5)

imagecopyresampledCopie, redimensionne, rééchantillonne une image

Description

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresampled() copie une zone rectangulaire de l'image src_im vers l'image dst_im. Durant la copie, la zone est rééchantillonnée de manière à conserver la clarté de l'image durant une réduction.

En d'autres termes, imagecopyresampled() prendra une forme rectangulaire src_image d'une largeur de src_w et d'une hauteur src_h à la position (src_x,src_y) et le placera dans une zone rectangulaire dst_image d'une largeur de dst_w et d'une hauteur de dst_h à la position (dst_x,dst_y).

Si les hauteurs et largeurs des source et destination diffèrent, l'image copiée sera étirée de manière appropriée. Les coordonnées sont celles du coin supérieur gauche. imagecopyresampled() peut servir à copier des zones d'une image vers elle-même, (si dst_image est la même que src_image) mais si les régions se chevauchent, les résultats sont imprévisibles.

Liste de paramètres

dst_image

Lien vers la ressource cible de l'image.

src_image

Lien vers la ressource source de l'image.

dst_x

X : coordonnées du point de destination.

dst_y

Y : coordonnées du point de destination.

src_x

X : coordonnées du point source.

src_y

Y : coordonnées du point source.

dst_w

Largeur de la destination.

dst_h

Hauteur de la destination.

src_w

Largeur de la source.

src_h

Hauteur de la source.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple simple

Cet exemple redimensionne une image à la moitié de sa taille originale.

<?php
// Le fichier
$filename 'test.jpg';
$percent 0.5;

// Content type
header('Content-Type: image/jpeg');

// Calcul des nouvelles dimensions
list($width$height) = getimagesize($filename);
$new_width $width $percent;
$new_height $height $percent;

// Redimensionnement
$image_p imagecreatetruecolor($new_width$new_height);
$image imagecreatefromjpeg($filename);
imagecopyresampled($image_p$image0000$new_width$new_height$width$height);

// Affichage
imagejpeg($image_pnull100);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

imagecopyresampled.jpg

Exemple #2 Redimensionnement proportionnel d'une image

Cet exemple affichera une image avec une largeur ou une hauteur maximale de 200 pixels.

<?php
// Le fichier
$filename 'test.jpg';

// Définition de la largeur et de la hauteur maximale
$width 200;
$height 200;

// Content type
header('Content-Type: image/jpeg');

// Cacul des nouvelles dimensions
list($width_orig$height_orig) = getimagesize($filename);

$ratio_orig $width_orig/$height_orig;

if (
$width/$height $ratio_orig) {
   
$width $height*$ratio_orig;
} else {
   
$height $width/$ratio_orig;
}

// Redimensionnement
$image_p imagecreatetruecolor($width$height);
$image imagecreatefromjpeg($filename);
imagecopyresampled($image_p$image0000$width$height$width_orig$height_orig);

// Affichage
imagejpeg($image_pnull100);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Réchantillone une image proportionnellement

Notes

Note:

Il y a un problème dû aux limitations de la taille de la palette (255 + 1 couleurs différentes). Filtrer ou rééchantillonner une image demande plus de 255 couleurs, une approximation est alors utilisée pour calculer le nouveau nombre de couleurs. Avec une palette, si une nouvelle couleur ne peut être allouée, la couleur la plus proche (en théorie) est utilisée. Ce n'est pas toujours la couleur la plus proche visuellement. Cela peut générer des problèmes étranges, comme des images blanches. Pour éviter ce problème, passez en image TrueColor, comme celles générée par la fonction imagecreatetruecolor().

Voir aussi

imagecopyresized() - Copie et redimensionne une partie d'une image



imagecopyresized

(PHP 4, PHP 5)

imagecopyresizedCopie et redimensionne une partie d'une image

Description

bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresized() copie une partie rectangulaire d'une image dans une autre image de destination. dst_image est l'image de destination, src_image est l'image source.

En d'autres termes, imagecopyresized() prendra une forme rectangulaire src_image d'une largeur de src_w et d'une hauteur src_h à la position (src_x,src_y) et le placera dans une zone rectangulaire dst_image d'une largeur de dst_w et d'une hauteur de dst_h à la position (dst_x,dst_y).

Si les dimensions de la source et de la destination ne sont pas égales, un étirement adéquat est effectué pour faire correspondre les deux. Les coordonnées fournies sont définies par rapport au coin supérieur gauche. Cette fonction peut être utilisée pour recopier des régions à l'intérieur d'une même image (si dst_image et src_image sont identiques), mais si les régions se chevauchent, le résultat risque d'être incohérent.

Liste de paramètres

dst_image

Lien vers la ressource cible de l'image.

src_image

Lien vers la ressource source de l'image.

dst_x

X : coordonnée du point de destination.

dst_y

Y : coordonnée du point de destination.

src_x

X : coordonnée du point source.

src_y

Y : coordonnée du point source.

dst_w

Largeur de la destination.

dst_h

Hauteur de la destination.

src_w

Largeur de la source.

src_h

Hauteur de la source.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Redimensionnement d'une image

Cet exemple affichera l'image redimensionné à la moitié de sa taille d'origine.

<?php
// Fichier et nouvelle taille
$filename 'test.jpg';
$percent 0.5;

// Content type
header('Content-Type: image/jpeg');

// Calcul des nouvelles dimensions
list($width$height) = getimagesize($filename);
$newwidth $width $percent;
$newheight $height $percent;

// Chargement
$thumb imagecreatetruecolor($newwidth$newheight);
$source imagecreatefromjpeg($filename);

// Redimensionnement
imagecopyresized($thumb$source0000$newwidth$newheight$width$height);

// Affichage
imagejpeg($thumb);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecopyresized()

L'image affiché aura une taille de moitié moins que l'image d'origine, mais une meilleur qualité peut être obtenue en utilisant la fonction imagecopyresampled().

Notes

Note:

Il y a un problème dû aux limitations de la taille de la palette (255 + 1 couleurs différentes). Filtrer ou rééchantillonner une image demande plus de 255 couleurs, une approximation est alors utilisée pour calculer le nouveau nombre de couleurs. Avec une palette, si une nouvelle couleur ne peut être allouée, la couleur la plus proche (en théorie) est utilisée ; ce n'est pas toujours celle qui est la plus proche visuellement. Cela peut générer des problèmes étranges, comme des images blanches. Pour éviter ce problème, passez en image TrueColor, comme celles générée par la fonction imagecreatetruecolor().

Voir aussi

imagecopyresampled() - Copie, redimensionne, rééchantillonne une image



imagecreate

(PHP 4, PHP 5)

imagecreateCrée une nouvelle image à palette

Description

resource imagecreate ( int $width , int $height )

imagecreate() retourne un identifiant d'image représentant une image vide.

Nous recommandons l'utilisation de imagecreatetruecolor() à la place de imagecreate().

Liste de paramètres

width

La largeur de l'image.

height

La hauteur de l'image.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une image GD et affichage de cette image

<?php
header
("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Impossible d'initialiser la bibliothèque GD");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecreate()

Voir aussi



imagecreatefromgd2

(PHP 4 >= 4.0.7, PHP 5)

imagecreatefromgd2Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL

Description

resource imagecreatefromgd2 ( string $filename )

Crée une nouvelle image depuis un fichier GD2 ou une URL.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image GD2.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecreatefromgd2()

<?php
// Charge l'image gd2
$im imagecreatefromgd2('./test.gd2');

// Applique un effet sur l'image : on applique ici un filtre négatif si nous
// utilisons PHP5+
if(function_exists('imagefilter'))
{
    
imagefilter($imIMG_FILTER_NEGATE);
}

// Sauvegarde de l'image
imagegd2($im'./test_updated.gd2');
imagedestroy($im);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5)

imagecreatefromgd2partCrée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL

Description

resource imagecreatefromgd2part ( string $filename , int $srcX , int $srcY , int $width , int $height )

Crée une nouvelle image depuis une partie d'un fichier GD2 ou d'une URL.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image GD2.

srcX

Coordonnée en X du point source.

srcY

Coordonnée en Y du point source.

width

Largeur de la source.

height

Hauteur de la source.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecreatefromgd2part()

<?php
// Pour cet exemple, nous avons tout d'abord besoin des dimensions de l'image
$image getimagesize('./test.gd2');

// Création de l'instance d'image maintenant que nous avons les dimensions
$im imagecreatefromgd2part('./test.gd2'44, ($image[0] / 2) - 6, ($image[1] / 2) - 6);

// Opération sur l'image : ici, nous imprimons l'image si nous utilisons PHP5+
if(function_exists('imagefilter'))
{
    
imagefilter($imIMG_FILTER_EMBOSS);
}

// Sauvegarde de l'image optimisée
imagegd2($im'./test_emboss.gd2');
imagedestroy($im);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5)

imagecreatefromgdCrée une nouvelle image à partir d'un fichier GD ou d'une URL

Description

resource imagecreatefromgd ( string $filename )

Crée une nouvelle image depuis un fichier GD ou une URL.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers un fichier GD.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecreatefromgd()

<?php
// Charge une image GD
$im = @imagecreatefromgd('./test.gd');

// Vérifie si l'image est bien chargée
if(!is_resource($im))
{
     die(
'Impossible de charger l\'image GD');
}

// Des opérations sur l'image ici

// Sauvegarde de l'image
imagegd($im'./test_updated.gd');
imagedestroy($im);
?>

Notes

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefromgif

(PHP 4, PHP 5)

imagecreatefromgifCrée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromgif ( string $filename )

imagecreatefromgif() retourne un identifiant d'image qui représente l'image obtenue à partir du fichier dont le nom est donné par filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image GIF.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de prise en charge d'une erreur lors du chargement d'une image GIF

<?php
function LoadGif($imgname)
{
    
/* Tente d'ouvrir l'image */
    
$im = @imagecreatefromgif($imgname);

    
/* Traitement si l'ouverture à échouer */
    
if(!$im)
    {
        
/* Création d'une image vide */
        
$im imagecreatetruecolor (15030);
        
$bgc imagecolorallocate ($im255255255);
        
$tc imagecolorallocate ($im000);

        
imagefilledrectangle ($im0015030$bgc);

        
/* Affiche un message d'erreur dans l'image */
        
imagestring ($im155'Error loading ' $imgname$tc);
    }

    return 
$im;
}

header('Content-Type: image/gif');

$img LoadGif('bogus.image');

imagegif($img);
imagedestroy($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecreatefromgif()

Notes

Note:

Le support du GIF a été supprimé de la bibliothèque GD dans sa version 1.6 et a été rajouté depuis la version 2.0.28. Cette fonction n'est donc pas disponible entre ces deux versions.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefromjpeg

(PHP 4, PHP 5)

imagecreatefromjpegCrée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromjpeg ( string $filename )

imagecreatefromjpeg() retourne un identifiant d'image représentant une image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image JPEG.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de gestion d'une erreur lors du chargement d'une image JPEG

<?php
function LoadJpeg($imgname)
{
    
/* Tente d'ouvrir l'image */
    
$im = @imagecreatefromjpeg($imgname);

    
/* Traitement en cas d'échec */
    
if(!$im)
    {
        
/* Création d'une image vide */
        
$im  imagecreatetruecolor(15030);
        
$bgc imagecolorallocate($im255255255);
        
$tc  imagecolorallocate($im000);

        
imagefilledrectangle($im0015030$bgc);

        
/* On y affiche un message d'erreur */
        
imagestring($im155'Erreur de chargement ' $imgname$tc);
    }

    return 
$im;
}

header('Content-Type: image/jpeg');

$img LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Exemple de gestion d'une erreur durant le chargement d'un JPEG

Notes

Note: Le support JPEG n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefrompng

(PHP 4, PHP 5)

imagecreatefrompngCrée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefrompng ( string $filename )

imagecreatefrompng() retourne un identifiant d'image représentant une image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image PNG.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de gestion d'une erreur lors du chargement d'une image PNG

<?php
function LoadPNG($imgname)
{
    
/* Tente d'ouvrir l'image */
    
$im = @imagecreatefrompng($imgname);

    
/* Traitement en cas d'échec */
    
if(!$im)
    {
        
/* Création d'une image vide */
        
$im  imagecreatetruecolor(15030);
        
$bgc imagecolorallocate($im255255255);
        
$tc  imagecolorallocate($im000);

        
imagefilledrectangle($im0015030$bgc);

        
/* On y affiche un message d'erreur */
        
imagestring($im155'Erreur de chargement ' $imgname$tc);
    }

    return 
$im;
}

header('Content-Type: image/png');

$img LoadPNG('bogus.image');

imagepng($img);
imagedestroy($img);
?>

Notes

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstringCrée une image à partir d'une chaîne

Description

resource imagecreatefromstring ( string $data )

imagecreatefromstring() retourne un identifiant d'image représentant l'image obtenu depuis la chaîne image. Le type de l'image sera automatiquement détecté si vous avez compilé PHP avec les supports : JPEG, PNG, GIF, WBMP et GD2.

Liste de paramètres

image

Une chaîne contenant les données de l'image.

Valeurs de retour

Une ressource d'image sera retourné en cas de succès. FALSE est retourné si le type de l'image n'est pas supporté, si les données ne sont pas dans un format reconnu ou si l'image est corrompue et donc ne peut être chargée.

Exemples

Exemple #1 Exemple avec imagecreatefromstring()

<?php
$data 
'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       
'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       
'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       
'8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data base64_decode($data);

$im imagecreatefromstring($data);
if (
$im !== false) {
    
header('Content-Type: image/png');
    
imagepng($im);
    
imagedestroy($im);
}
else {
    echo 
'An error occurred.';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecreatefromstring()

Voir aussi



imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmpCrée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromwbmp ( string $filename )

imagecreatefromwbmp() retourne une ressource d'image PHP, représentant l'image filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image WBMP.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de gestion d'une erreur lors du chargement d'une image WBMP

<?php
function LoadWBMP($imgname)
{
    
/* Tente d'ouvrir l'image */
    
$im = @imagecreatefromwbmp($imgname);

    
/* Traitement en cas d'échec */
    
if(!$im)
    {
        
/* Création d'une image vide */
        
$im  imagecreatetruecolor(15030);
        
$bgc imagecolorallocate($im255255255);
        
$tc  imagecolorallocate($im000);

        
imagefilledrectangle($im0015030$bgc);

        
/* On y affiche un message d'erreur */
        
imagestring($im155'Erreur de chargement ' $imgname$tc);
    }

    return 
$im;
}

header('Content-Type: image/vnd.wap.wbmp');

$img LoadWBMP('bogus.image');

imagewbmp($img);
imagedestroy($img);
?>

Notes

Note: Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxbmCrée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromxbm ( string $filename )

imagecreatefromxbm() retourne un identifiant d'image représentant l'image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image XBM.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertie une image XBM en une image PNG en utilisant la fonction imagecreatefromxbm()

<?php
// Chargement du fichier XBM
$xbm imagecreatefromxbm('./example.xbm');

// On la convertie en fichier PNG
imagepng($xbm'./example.png');
imagedestroy($xbm);
?>

Notes

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.



imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxpmCrée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromxpm ( string $filename )

imagecreatefromxpm() retourne un identifiant d'image représentant l'image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image XPM.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une instance d'image en utilisant la fonction imagecreatefromxpm()

<?php
// Vérifie le support XPM
if(!(imagetypes() & IMG_XPM))
{
    die(
'Le support XPM n\'a pu être vérifié !');
}

// Création de l'instance d'une image
$xpm imagecreatefromxpm('./example.xpm');

// Quelques opérations sur l'image ici

// PHP n'a pas le support pour l'écriture des images XPM
// aussi, dans ce cas, nous sauvegardons l'image dans un fichier JPEG
// avec une qualité de 100%
imagejpeg($xpm'./example.jpg'100);
imagedestroy($xpm);
?>

Valeurs de retour

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Note: Cette fonction n'est pas implémentée sous Windows.



imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5)

imagecreatetruecolorCrée une nouvelle image en couleurs vraies

Description

resource imagecreatetruecolor ( int $width , int $height )

imagecreatetruecolor() retourne une ressource représentant une image noire.

Suivant votre version de PHP et de GD, cette fonction est définie ou non. De PHP version 4.0.6 à la version 4.1.x, cette fonction existe toujours si le module GD est chargé, mais l'appeler sans avoir GD2 d'installé fera que PHP lancera une erreur fatale et sortira. Avec PHP 4.2.x, ce comportement est différent et PHP lancera une alerte au lieu d'une erreur. Pour les autres versions de PHP, cette fonction n'est définie que si une version correcte de GD est installée.

Liste de paramètres

width

Largeur de l'image.

height

Hauteur de l'image.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un flux d'image GD, et affichage

<?php
header 
('Content-Type: image/png');
$im = @imagecreatetruecolor(12020)
      or die(
'Impossible de crée un flux d\'image GD');
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Une simple chaîne de texte'$text_color);
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Creating a new GD image stream and outputting an image.

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagedashedline

(PHP 4, PHP 5)

imagedashedlineDessine une ligne pointillée

Description

bool imagedashedline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imagedashedline() est obsolète. Utilisez plutôt une combinaison des fonctions imagesetstyle() et imageline().

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

Coordonnée en X : En haut, à gauche.

y1

Coordonnée en Y : En haut, à gauche. 0 est le coin en haut à gauche de l'image.

x2

Coordonnée en X : En bas, à droite.

y2

Coordonnée en Y : En bas, à droite.

color

La couleur de remplissage. Un identifiant de couleur retourné par la fonction imagecolorallocate().

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec imagedashedline()

<?php
// Crée une image de 100x100 pixels
$im imagecreatetruecolor(100100);
$white imagecolorallocate($im0xFF0xFF0xFF);

// Dessine une ligne verticale en pointillé
imagedashedline($im50255075$white);

// Sauvegarde l'image
imagepng($im'./dashedline.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagedashedline()

Exemple #2 Alternative à la fonction imagedashedline()

<?php
// Crée une image de 100x100 pixels
$im imagecreatetruecolor(100100);
$white imagecolorallocate($im0xFF0xFF0xFF);

// Définit le style : Les 4 premiers pixels sont blancs et les 4 suivants
// sont transparents. Ceci va créer l'effet de pointillé
$style = Array(
                
$white,
                
$white,
                
$white,
                
$white,
                
IMG_COLOR_TRANSPARENT,
                
IMG_COLOR_TRANSPARENT,
                
IMG_COLOR_TRANSPARENT,
                
IMG_COLOR_TRANSPARENT
                
);

imagesetstyle($im$style);

// Dessine la ligne pointillée
imageline($im50255075IMG_COLOR_STYLED);

// Sauvegarde de l'image
imagepng($im'./imageline.png');
imagedestroy($im);
?>

Voir aussi



imagedestroy

(PHP 4, PHP 5)

imagedestroyDétruit une image

Description

bool imagedestroy ( resource $image )

imagedestroy() libère toute la mémoire associée à l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagedestroy()

<?php
// Crée une image de 100 x 100 pixels
$im imagecreatetruecolor(100100);

// Modification et/ou sauvegarde de l'image

// Libération de la mémoire associée
imagedestroy($im);
?>



imageellipse

(PHP 4 >= 4.0.6, PHP 5)

imageellipseDessine une ellipse

Description

bool imageellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color )

Dessine une ellipse centrée sur le point spécifié.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

color

La couleur de l'ellipse. Un identifiant de couleur créé avec la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imageellipse()

<?php
// Création d'une image vide
$image imagecreatetruecolor(400300);

// Choix de la couleur d'arrière-plan
$bg imagecolorallocate($image000);

// Remplit l'arrière-plan avec la couleur sélectionnée
imagefill($image00$bg);

// Choix de la couleur de l'ellipse
$col_ellipse imagecolorallocate($image255255255);

// On dessine l'ellipse
imageellipse($image200150300200$col_ellipse);

// On affiche l'image
header("Content-type: image/png");
imagepng($image);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imageellipse()

Notes

Note:

Cette fonction nécessite GD 2.0.2 ou une version supérieure.

Voir aussi



imagefill

(PHP 4, PHP 5)

imagefillRemplissage

Description

bool imagefill ( resource $image , int $x , int $y , int $color )

Effectue un remplissage avec la couleur color, dans l'image image, à partir du point de coordonnées (x, y) (le coin supérieur gauche est l'origine (0,0)).

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée du point de départ.

y

Y : coordonnée du point de départ.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefill()

<?php

$im 
imagecreatetruecolor(100100);

// Fixe le fond rouge
$red imagecolorallocate($im25500);
imagefill($im00$red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefill()

Voir aussi



imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarcDessine un arc partiel et le remplit

Description

bool imagefilledarc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color , int $style )

Dessine un arc partiel, centré aux coordonnées spécifiées dans l'image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'arc.

height

La hauteur de l'arc.

start

L'angle de début de l'arc, en degrés.

end

L'angle de fin de l'arc, en degrés. 0° est situé à une position de 3 heures sur un cadran horaire, et l'arc est dessiné dans le sens des aiguilles d'une montre.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate().

style

Un champ d'octets, combiné avec l'opérateur OR :

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE et IMG_ARC_CHORD sont mutuellement exclusives; IMG_ARC_CHORD ne fait que connecter les angles de début et de fin avec une ligne droite, tandis que IMG_ARC_PIE produit une ligne courbe. IMG_ARC_NOFILL indique que l'arc (ou corde) doit être dessiné mais pas rempli. IMG_ARC_EDGED, utilisé conjointement avec IMG_ARC_NOFILL, indique que les angles de début et de fin doivent être connectés au centre. Cette fonction est recommandée pour faire les graphiques de type camembert.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un camembert en 3D

<?php

// Création de l'image
$image imagecreatetruecolor(100100);

// Allocation de quelques couleurs
$white    imagecolorallocate($image0xFF0xFF0xFF);
$gray     imagecolorallocate($image0xC00xC00xC0);
$darkgray imagecolorallocate($image0x900x900x90);
$navy     imagecolorallocate($image0x000x000x80);
$darknavy imagecolorallocate($image0x000x000x50);
$red      imagecolorallocate($image0xFF0x000x00);
$darkred  imagecolorallocate($image0x900x000x00);

// Création de l'effet 3D
for ($i 60$i 50$i--) {
   
imagefilledarc($image50$i10050045$darknavyIMG_ARC_PIE);
   
imagefilledarc($image50$i100504575 $darkgrayIMG_ARC_PIE);
   
imagefilledarc($image50$i1005075360 $darkredIMG_ARC_PIE);
}

imagefilledarc($image505010050045$navyIMG_ARC_PIE);
imagefilledarc($image5050100504575 $grayIMG_ARC_PIE);
imagefilledarc($image50501005075360 $redIMG_ARC_PIE);


// Affichage de l'image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Création d'un graphique 3D

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).



imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5)

imagefilledellipseDessine une ellipse pleine

Description

bool imagefilledellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color )

Dessine une ellipse centrée sur les coordonnées spécifiées sur l'image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefilledellipse()

<?php

// Nouvelle image
$image imagecreatetruecolor(400300);

// Couleur de fond
$bg imagecolorallocate($image000);

// Couleur de remplissage de l'ellipse
$col_ellipse imagecolorallocate($image255255255);

// On dessine l'ellipse blanche
imagefilledellipse($image200150300200$col_ellipse);

// On affiche l'image
header("Content-type: image/png");
imagepng($image);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilledellipse()

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagefilledpolygon

(PHP 4, PHP 5)

imagefilledpolygonDessine un polygone rempli

Description

bool imagefilledpolygon ( resource $image , array $points , int $num_points , int $color )

imagefilledpolygon() dessine un polygone rempli dans l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

points

Un tableau qui contient les coordonnées x et y du sommet des polygones.

num_points

Le nombre total de sommets, et doit être d'au moins 3.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefilledpolygon()

<?php
// Définition du tablau de points pour le polygone
$values = array(
            
40,  50,  // Point 1 (x, y)
            
20,  240// Point 2 (x, y)
            
60,  60,  // Point 3 (x, y)
            
24020,  // Point 4 (x, y)
            
50,  40,  // Point 5 (x, y)
            
10,  10   // Point 6 (x, y)
            
);

// Création d'une image
$image imagecreatetruecolor(250250);

// Alloue quelques couleurs
$bg   imagecolorallocate($image000);
$blue imagecolorallocate($image00255);

// Remplit l'arrière-plan
imagefilledrectangle($image00249249$bg);

// Dessine le polygone
imagefilledpolygon($image$values6$blue);

// Affichage de l'image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilledpolygon()



imagefilledrectangle

(PHP 4, PHP 5)

imagefilledrectangleDessine un rectangle rempli

Description

bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

Dessine un rectangle de couleur color dans l'image image, en commençant par le sommet supérieur gauche (1) et finissant au sommet inférieur droit (2). Le coin supérieur gauche est l'origine (0, 0).

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonné du point 1.

y1

Y : coordonné du point 1.

x2

X : coordonné du point 2.

y2

Y : coordonné du point 2.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefilledrectangle()

<?php
// Création d'une image de 55x30 pixels
$im imagecreatetruecolor(5530);
$white imagecolorallocate($im255255255);

// Dessine un rectangle blanc
imagefilledrectangle($im445025$white);

// Sauvegarde l'image
imagepng($im'./imagefilledrectangle.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilledrectangle()



imagefilltoborder

(PHP 4, PHP 5)

imagefilltoborderRemplit une région avec une couleur spécifique

Description

bool imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color )

imagefilltoborder() remplit avec la couleur color toute la région à l'intérieur de la région limitée par la couleur border. Le point de départ est (x, y) (le coin supérieur gauche est l'origine (0,0)) et la couleur de la région est color.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonné de départ.

y

Y : coordonné de départ.

border

La couleur de la bordure. Un identifiant de couleur créé par la fonction imagecolorallocate().

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Remplissage d'un ellipse avec une couleur

<?php
// Création d'un gestionnaire d'image, puis définit la couleur d'arrière-plan
// à blanc
$im imagecreatetruecolor(100100);
imagefilledrectangle($im00100100imagecolorallocate($im255255255));

// Dessine une ellipse dont les bordures seront noires
imageellipse($im50505050imagecolorallocate($im000));

// Définit la bordure et remplit l'ellipse de la couleur choisie
$border imagecolorallocate($im000);
$fill imagecolorallocate($im25500);

// Remplit la sélection
imagefilltoborder($im5050$border$fill);

// Affichage et libération de la mémoire
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilltoborder()



imagefilter

(PHP 5)

imagefilterApplique un filtre à une image

Description

bool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] )

imagefilter() applique le filtre filtertype à l'image en utilisant les paramètres args1, args2 et args3 lorsque cela est nécessaire.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filtertype

Le paramètre filtertype peut prendre l'une des valeurs suivantes :

  • IMG_FILTER_NEGATE : renverse toutes les couleurs de l'image.
  • IMG_FILTER_GRAYSCALE : convertit l'image en grayscale.
  • IMG_FILTER_BRIGHTNESS : modifie la luminosité de l'image. Utilisez le paramètre args1 pour définir la luminosité.
  • IMG_FILTER_CONTRAST : modifie le contraste de l'image. Utilisez le paramètre args1 pour définir le contraste.
  • IMG_FILTER_COLORIZE : identique au paramètre IMG_FILTER_GRAYSCALE excepté que vous pouvez spécifier une couleur. Utilisez trois arguments séparés dans les paramètres args1, args2 et args3 sous la forme red, blue, green et arg4 pour le canal alpha. L'intervalle pour chaque couleur est 0 - 255.
  • IMG_FILTER_EDGEDETECT : utilise la détection des bords pour les mettre en évidence dans l'image.
  • IMG_FILTER_EMBOSS : grave l'image en relief.
  • IMG_FILTER_GAUSSIAN_BLUR : brouille l'image en utilisant la méthode gaussienne.
  • IMG_FILTER_SELECTIVE_BLUR : brouille l'image.
  • IMG_FILTER_MEAN_REMOVAL : son utilisation signifie le déplacement pour réaliser un effet "peu précis".
  • IMG_FILTER_SMOOTH : rend l'image lissée (smooth). Utilisez le paramètre args1 pour définir le degré de lissoir.
  • IMG_FILTER_PIXELATE : applique un effet de pixelisation à l'image; utilise arg1 pour indiquer la taille de bloc, et arg2 pour indiquer le mode de pixelisation.

arg1

  • IMG_FILTER_BRIGHTNESS : degré de luminosité.
  • IMG_FILTER_CONTRAST : degré du contraste.
  • IMG_FILTER_COLORIZE : Valeur du composant rouge.
  • IMG_FILTER_SMOOTH : degré du lissé.
  • IMG_FILTER_PIXELATE: taille de bloc en pixels.

arg2

  • IMG_FILTER_COLORIZE : Valeur du composant vert.

arg3

  • IMG_FILTER_COLORIZE : Valeur du composant bleu.

arg4

  • IMG_FILTER_COLORIZE : canal Alpha. Une valeur entre 0 et 127. 0 signifie totalement opaque, tandis que 127 signifie totalement transparent.
  • IMG_FILTER_PIXELATE: s'il faut utiliser un effet de pixelisation avancé ou non (par défaut, FALSE).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Support de la pixelisation (IMG_FILTER_PIXELATE) ajouté.
5.2.5 Le support du canal Alpha pour la constante IMG_FILTER_COLORIZE a été ajouté.

Exemples

Exemple #1 Exemple avec imagefilter()

<?php
$im 
imagecreatefrompng('dave.png');

if(
$im && imagefilter($imIMG_FILTER_GRAYSCALE))
{
    echo 
'Image convertie en grayscale.';

    
imagepng($im'dave.png');
}
else
{
    echo 
'La convertion en grayscale a échoué.';
}

imagedestroy($im);
?>

Exemple #2 Exemple avec imagefilter()

<?php
$im 
imagecreatefrompng('sean.png');

if(
$im && imagefilter($imIMG_FILTER_BRIGHTNESS20))
{
    echo 
'La luminosité de l\'image a été modifiée.';
    
imagepng($im'sean.png');
    
imagedestroy($im);
}
else
{
    echo 
'Echec lors de la modification de la luminosité.';
}
?>

Exemple #3 Exemple avec imagefilter()

<?php
$im 
imagecreatefrompng('philip.png');

/* R, G, B, donc 0, 255, 0 correspond au vert */
if($im && imagefilter($imIMG_FILTER_COLORIZE02550))
{
    echo 
'L\'image a été ombragée en vert avec succès.';
    
imagepng($im'philip.png');
    
imagedestroy($im);
}
else
{
    echo 
'Echec lors de la modification de l\'ombrage.';
}
?>

Exemple #4 Exemple d'image en négatif avec imagefilter()

<?php
// Définission de notre fonction "négatif" afin qu'elle soit portable
// également sur les versions de PHP qui n'ont pas la fonction imagefilter()
function negate($im)
{
    if(
function_exists('imagefilter'))
    {
        return 
imagefilter($imIMG_FILTER_NEGATE);
    }

    for(
$x 0$x imagesx($im); ++$x)
    {
        for(
$y 0$y imagesy($im); ++$y)
        {
            
$index imagecolorat($im$x$y);
            
$rgb imagecolorsforindex($index);
            
$color imagecolorallocate($im255 $rgb['red'], 255 $rgb['green'], 255 $rgb['blue']);

            
imagesetpixel($im$x$y$color);
        }
    }

    return(
true);
}

$im imagecreatefromjpeg('kalle.jpg');

if(
$im && negate($im))
{
    echo 
'Image convertie avec succès en couleur négative.';

    
imagejpeg($im'kalle.jpg'100);
    
imagedestroy($im);
}
else
{
    echo 
'Echec lors de la conversion en couleur négative.';
}
?>

Exemple #5 Exemple de pixelisation avec imagefilter()

<?php
// Chargement du logo PH, nous avons besoin de deux instances.
$logo1 imagecreatefrompng('./php.png');
$logo2 imagecreatefrompng('./php.png');

// Crée une image sur laquelle nous voulons montrer les différences
$output imagecreatetruecolor(imagesx($logo1) * 2imagesy($logo1));

// Applique la pixelation à chaque instances, avec un bloc de 3
imagefilter($logo1IMG_FILTER_PIXELATE3);
imagefilter($logo2IMG_FILTER_PIXELATE3true);

// Fusion des différences dans l'image finale
imagecopy($output$logo10000imagesx($logo1) - 1imagesy($logo1) - 1);
imagecopy($output$logo2imagesx($logo2), 000imagesx($logo2) - 1imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);

// Affichage des différences
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilter()

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Voir aussi

  • imageconvolution() - Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage



imagefontheight

(PHP 4, PHP 5)

imagefontheightRetourne la hauteur de la police

Description

int imagefontheight ( int $font )

Retourne la hauteur de la police font en pixels.

Liste de paramètres

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

Valeurs de retour

Retourne la hauteur de la police, en pixels.

Exemples

Exemple #1 Exemple avec imagefontheight() et des polices internes

<?php
echo 'Hauteur de la police : ' imagefontheight(4);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hauteur de la police : 16

Exemple #2 Exemple avec imagefontheight() et imageloadfont()

<?php
// Chargement d'une police .gdf
$font imageloadfont('anonymous.gdf');

echo 
'Hauteur de la police : ' imagefontheight($font);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hauteur de la police : 43

Voir aussi



imagefontwidth

(PHP 4, PHP 5)

imagefontwidthRetourne la largeur de la police

Description

int imagefontwidth ( int $font )

Retourne la largeur de la police font en pixels.

Liste de paramètres

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

Valeurs de retour

Retourne la largeur de la police.

Exemples

Exemple #1 Exemple avec imagefontwidth() et les polices internes

<?php
echo 'Largeur de la police : ' imagefontwidth(4);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Largeur de la police : 8

Exemple #2 Exemple avec imagefontwidth() et imageloadfont()

<?php
// Chargement d'une police .gdf
$font imageloadfont('anonymous.gdf');

echo 
'Largeur de la police : ' imagefontwidth($font);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Largeur de la police : 23

Voir aussi



imageftbbox

(PHP 4 >= 4.0.7, PHP 5)

imageftbboxCalcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2

Description

array imageftbbox ( float $size , float $angle , string $fontfile , string $text [, array $extrainfo ] )

imageftbbox() calcule le rectangle d'encadrement pour le texte text, en utilisant la police courante et freetype2.

Liste de paramètres

size

La taille de la police de caractères. Suivant votre version de GD, elle doit être exprimée en pixel (GD1) ou en point (GD2).

angle

Angle, en degrés, dans lequel le paramètre text sera mesuré.

fontfile

Le nom du fichier de la police TrueType (peut être une URL). Suivant la version de GD utilisée par PHP, il sera recherché les fichiers qui ne commencent pas par un '/', en y ajoutant l'extension '.ttf', et suivant le chemin des polices défini par la bibliothèque.

text

La chaîne à mesurer.

extrainfo

Index possibles pour le tableau extrainfo
Clé Type Signification
linespacing float Représente l'espacement entre les lignes lors du dessin

Valeurs de retour

imageftbbox() retourne un tableau contenant 8 éléments représentant les 4 points du rectangle entourant le texte :

0 Coin en bas, à gauche, position en X
1 Coin en bas, à gauche, position en Y
2 Coin en bas, à droite, position en X
3 Coin en bas, à droite, position en Y
4 Coin en haut, à droite, position en X
5 Coin en haut, à droite, position en Y
6 Coin en haut, à gauche, position en X
7 Coin en haut, à gauche, position en Y

Les points sont relatifs au texte suivant le paramètre angle, aussi, "en haut à gauche" signifie le coin en haut à gauche lorsque l'on regarde le texte horizontalement.

Exemples

Exemple #1 Exemple avec imageftbbox()

<?php
// Création d'une image de 300x150 pixels
$im imagecreatetruecolor(300150);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im00299299$white);

// Chemin vers notre fichier de police
$font './arial.ttf';

// D'abord, nous créons un rectangle contenant notre texte
$bbox imageftbbox(100$font'The PHP Documentation Group');

// Nos coordonnées en X et en Y
$x $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
$y $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

imagefttext($im100$x$y$black$font'The PHP Documentation Group');

// Affichage vers le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR )

Historique

Version Description
4.3.5 Le paramètre extrainfo est maintenant optionnel.



imagefttext

(PHP 4 >= 4.0.7, PHP 5)

imagefttextÉcrit du texte dans une image avec la police courante FreeType 2

Description

array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] )

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

size

La taille de la police à utiliser, en nombre de points.

angle

L'angle, en degrés ; 0 degré pour une lecture du texte de gauche à droite. Les grandes valeurs représentent une rotation dans le sens des aiguilles d'une montre. Par exemple, une valeur de 90 aura pour effet de lire le texte du bas vers le haut.

x

Les coordonnées, fournies par x et y définissent le point de départ du premier caractère (et plus précisément, le coin en bas à gauche du caractère). C'est un comportement différent de la fonction imagestring(), où x et y définissent le coin en haut, à gauche du premier caractère. Par exemple, en haut à gauche vaut 0, 0.

y

L'ordonnée y-ordinate. Ce paramètre configure la position de base de la police, et non pas le bas de cette dernière.

color

L'index de la couleur désirée pour le texte, voir la fonction imagecolorexact().

fontfile

Le chemin vers la police TrueType à utiliser.

Suivant la version de GD utilisée par PHP, il sera recherché les fichiers qui ne commencent pas par un '/', en y ajoutant l'extension '.ttf', et suivant le chemin des polices défini par la bibliothèque.

Lors de l'utilisation d'une version de GD inférieure à 2.0.18, un caractère d'espacement (plutôt qu'un point-virgule) était utilisé comment séparateur dans le chemin pour les différents fichiers de police. Si vous utilisez toujours cette notation, vous obtiendrez le message d'erreur suivant : Warning: Could not find/open font. Pour ces anciennes versions, la seule solution est de déplacer la police dans un dossier qui ne contient pas d'espace.

Dans la plupart des cas, lorsque la police se trouve dans le même dossier que le script qui cherche à l'utiliser, la solution suivante permet de s'affranchir de tous les problèmes relatifs à l'inclusion.

<?php
// Définit la variable d'environnement pour GD
putenv('GDFONTPATH=' realpath('.'));

// Nom de la police à utiliser (note qu'il n'y a pas d'extension .ttf)
$font 'SomeFont';
?>

text

Le texte à insérer dans l'image.

extrainfo

Indexes possibles pour le tableau extrainfo
Clé Type Signification
linespacing float Définit l'espacement entre les lignes lors du dessin

Valeurs de retour

Cette fonction retourne un tableau définissant les 4 points d'une boîte, en commençant par le coin en bas, à gauche, puis, les suivants, dans le sens des aiguilles d'une montre :

0 x : coordonnée en bas, à gauche
1 y : coordonnée en bas, à gauche
2 x : coordonnée en haut, à droite
3 y : coordonnée en bas, à droite
4 x : coordonnée en haut, à droite
5 y : coordonnée en haut, à droite
6 x : coordonnée en haut, à gauche
7 y : coordonnée en haut, à gauche

Exemples

Exemple #1 Exemple avec imagefttext()

<?php
// Création d'une image de 300x100 pixels
$im imagecreatetruecolor(300100);
$red imagecolorallocate($im0xFF0x000x00);
$black imagecolorallocate($im0x000x000x00);

// Définit l'arrière-plan en rouge
imagefilledrectangle($im0029999$red);

// Chemin vers notre fichier de police ttf
$font_file './arial.ttf';

// Dessine le texte 'PHP Manual' en utilisant une police de taille 13
imagefttext($im13010555$black$font_file'PHP Manual');

// Affichage de l'image sur le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR )

Historique

Version Description
4.3.5 Le paramètre extrainfo est devenu optionnel.



imagegammacorrect

(PHP 4, PHP 5)

imagegammacorrectApplique une correction gamma à l'image GD

Description

bool imagegammacorrect ( resource $image , float $inputgamma , float $outputgamma )

Applique une correction gamma à l'image GD image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

inputgamma

Le facteur gamma d'entrée.

outputgamma

Le facteur gamma de sortie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagegammacorrect()

<?php
// Création d'une image
$im imagecreatefromgif('php.gif');

// Correction gamma, sortie à 1.537
imagegammacorrect($im1.01.537);

// Sauvegarde et libération de la mémoire
imagegif($im'./php_gamma_corrected.gif');
imagedestroy($im);
?>



imagegd2

(PHP 4 >= 4.0.7, PHP 5)

imagegd2Génère une image au format GD2, vers le navigateur ou un fichier

Description

bool imagegd2 ( resource $image [, string $filename [, int $chunk_size [, int $type ]]] )

Génère une image au format GD2, vers le fichier filename.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin d'enregistrement du fichier. S'il n'est définit pas ou vaut NULL, le flux d'image brute sera affiché directement.

chunk_size

Taille de la pièce.

type

Soit IMG_GD2_RAW, soit IMG_GD2_COMPRESSED. Par défaut, vaut IMG_GD2_RAW.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image GD2

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "Un texte simple"$text_color);

// Affichage de l'image
imagegd2($im);

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde d'une image GD2

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "Un texte simple"$text_color);

// Sauvegarde de l'image GD2
// Le format de fichier pour les images GD2 est .gd2, voir http://www.libgd.org/GdFileFormats
imagegd2($im'simple.gd2');

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Note:

Le format GD2 est communément utilisé pour charger rapidement les parties d'une image. Notez que le format GD2 est uniquement utilisable dans les applications compatibles GD2.

Historique

Version Description
4.3.2 Les paramètres chunk_size et type ont été ajoutés.

Voir aussi

  • imagegd() - Génère une image au format GD, vers le navigateur ou un fichier



imagegd

(PHP 4 >= 4.0.7, PHP 5)

imagegdGénère une image au format GD, vers le navigateur ou un fichier

Description

bool imagegd ( resource $image [, string $filename ] )

Génère une image GD vers le fichier filename.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin d'enregistrement du fichier. S'il n'est définit pas ou vaut NULL, le flux d'image brute sera affiché directement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image GD

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "Un texte simple"$text_color);

// Affichage de l'image
imagegd($im);

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde d'une image GD

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "Un texte simple"$text_color);

// Sauvegarde de l'image GD
// Le format de fichier pour les images GD est .gd, voir http://www.libgd.org/GdFileFormats
imagegd($im'simple.gd');

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note:

Le format GD est communément utilisé pour autoriser le chargement rapide des parties d'un image. Notez que le format GD est uniquement utilisable dans les applications compatibles GD.

Voir aussi

  • imagegd2() - Génère une image au format GD2, vers le navigateur ou un fichier



imagegif

(PHP 4, PHP 5)

imagegifAffichage de l'image vers le navigateur ou dans un fichier

Description

bool imagegif ( resource $image [, string $filename ] )

imagegif() crée un fichier image GIF avec le nom filename d'après l'image image. L'argument image est un identifiant valide retourné par la fonction imagecreate() ou les fonctions imagecreatefrom*.

Le format de l'image sera GIF87a, à moins que l'image n'ait une couleur transparente (mise en place grâce à la fonction imagecolortransparent())), ce qui fera qu'elle sera au format GIF89a.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin d'enregistrement du fichier. S'il n'est définit pas ou vaut NULL, le flux d'image brute sera affiché directement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image en utilisant imagegif()

<?php
// Création d'une image
$im imagecreatetruecolor(100100);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im0099990xFFFFFF);

// Dessine un texte dans l'image
imagestring($im34020'GD Library'0xFFBA00);

// Affiche l'image sur le navigateur
header('Content-Type: image/gif');

imagegif($im);
imagedestroy($im);
?>

Exemple #2 Conversion d'une image PNG en GIF, en utilisant imagegif()

<?php
// Chargement de l'image PNG
$png imagecreatefrompng('./php.png');

// Sauvegarde de l'image en GIF
imagegif($png'./php.gif');

// Libération de la mémoire
imagedestroy($png);

// C'est fait !
echo 'Convertion avec succès de l'image PNG en GIF !';
?>

Notes

Note:

Le support GIF a été supprimé de la bibliothèque GD en version 1.6 et rajouté en version 2.0.28. Cette fonction n'est donc pas disponible entre des 2 versions. Pour plus d'informations, reportez-vous au site web du » projet GD.

Le code suivant vous permet d'écrire des scripts PHP plus portables : le type de GD est automatiquement détecté. Il remplace la séquence header ("Content-Type: image/gif"); ImageGif($im); par un code plus souple :

<?php
// Création d'une image
$im imagecreatetruecolor(100100);

// On fait quelques opérations sur l'image ici...

// Gestion de l'affichage
if(function_exists('imagegif'))
{
    
// Pour GIF
    
header('Content-Type: image/gif');

    
imagegif($im);
}
elseif(
function_exists('imagejpeg'))
{
    
// Pour JPEG
    
header('Content-Type: image/jpeg');

    
imagejpeg($imNULL100);
}
elseif(
function_exists('imagepng'))
{
    
// Pour PNG
    
header('Content-Type: image/png');

    
imagepng($im);
}
elseif(
function_exists('imagewbmp'))
{
    
// Pour WBMP
    
header('Content-Type: image/vnd.wap.wbmp');

    
imagewbmp($im);
}
else
{
    
imagedestroy($im);

    die(
'Aucun support sur ce serveur PHP n\'a été trouvé');
}

// Si un support a été trouvé pour un de ces formats,
// nous libérons la mémoire
if($im)
{
    
imagedestroy($im);
}
?>

Note:

Depuis les versions 4.0.2 de PHP, vous pouvez utiliser la fonction imagetypes() au lieu de function_exists() pour vérifier la présence des différents formats d'images supportés.:

<?php
if(imagetypes() & IMG_GIF)
{
    
header('Content-Type: image/gif');
    
imagegif($im);
}
elseif(
imagetypes() & IMG_JPG)
{
    
/* ... etc. */
}
?>

Voir aussi

  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP



imagegrabscreen

(PHP 5 >= 5.2.2)

imagegrabscreenCapture l'écran complet

Description

resource imagegrabscreen ( void )

imagegrabscreen() effectue une capture de la totalité de l'écran.

Valeurs de retour

Retourne une ressource image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagegrabscreen()

Cet exemple montre comment effectuer une capture d'écran et la sauvegarder dans une image png.

<?php
$im 
imagegrabscreen();
imagepng($im"myscreenshot.png");
imagedestroy($im);
?>

Notes

Note:

Cette fonction n'est disponible que sous Windows.

Voir aussi



imagegrabwindow

(PHP 5 >= 5.2.2)

imagegrabwindowCapture une fenêtre

Description

resource imagegrabwindow ( int $window_handle [, int $client_area = 0 ] )

Capture une fenêtre ou l'espace de son client, en utilisant un gestionnaire de fenêtre (propriété HWND de l'instance COM).

Liste de paramètres

window_handle

L'identifiant HWND de la fenêtre.

client_area

Inclure ou non l'espace du client de la fenêtre de l'application.

Valeurs de retour

Retourne une ressource image en cas de succès, ou FALSE si une erreur survient.

Erreurs / Exceptions

Une alerte de type E_NOTICE est émise si window_handle est un gestionnaire de fenêtre invalide. Une alerte de type E_WARNING est émise si l'API Windows est trop ancienne.

Exemples

Exemple #1 Exemple avec imagegrabwindow()

Capture une fenêtre (IE par exemple).

<?php
$browser 
= new COM("InternetExplorer.Application");
$handle $browser->HWND;
$browser->Visible true;
$im imagegrabwindow($handle);
$browser->Quit();
imagepng($im"iesnap.png");
imagedestroy($im);
?>

Capture une fenêtre (IE par exemple) mais avec son contenu.

<?php
$browser 
= new COM("InternetExplorer.Application");
$handle $browser->HWND;
$browser->Visible true;
$browser->Navigate("http://www.libgd.org");

/* Fonctionne toujours ? */
while ($browser->Busy) {
    
com_message_pump(4000);
}
$im imagegrabwindow($handle0);
$browser->Quit();
imagepng($im"iesnap.png");
imagedestroy($im);
?>

Notes

Note:

Cette fonction n'est disponible que sous Windows.

Voir aussi



imageinterlace

(PHP 4, PHP 5)

imageinterlaceActive ou désactive l'entrelacement

Description

int imageinterlace ( resource $image [, int $interlace = 0 ] )

imageinterlace() active ou désactive le bit d'entrelacement.

Si l'entrelacement est à 1 et l'image est JPEG, l'image créée sera un JPEG progressif.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

interlace

Si différent de zéro, l'image sera entrelacée, sinon, l'entrelacement sera désactivé.

Valeurs de retour

Retourne 1 si l'entrelacement est activé pour l'image, 0 sinon.

Exemples

Exemple #1 Activation de l'entrelacement en utilisant la fonction imageinterlace()

<?php
// Création d'une image
$im imagecreatefromgif('php.gif');

// Activation de l'entrelacement
imageinterlace($imtrue);

// Sauvegarde de l'image
imagegif($im'./php_interlaced.gif');
imagedestroy($im);
?>



imageistruecolor

(PHP 4 >= 4.3.2, PHP 5)

imageistruecolorDétermine si une image est une image truecolor

Description

bool imageistruecolor ( resource $image )

imageistruecolor()détermine si l'image image est une image truecolor.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne TRUE si l'image est truecolor, FALSE sinon.

Exemples

Exemple #1 Détection simple d'une image en truecolor avec imageistruecolor()

<?php
// $im est une instance d'image

// Vérife sir l'image est en truecolor ou non
if(!imageistruecolor($im))
{
    
// Création d'une nouvelle image en truecolor
    
$tc imagecreatetruecolor(imagesx($im), imagesy($im));

    
imagecopy($tc$im0000imagesx($im), imagesy($im));
    
imagedestroy($im);

    
$im $tc;
    
$tc NULL;
}

// On continue de travailler avec l'instance de l'image
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagejpeg

(PHP 4, PHP 5)

imagejpegAffichage de l'image vers le navigateur ou dans un fichier

Description

bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )

imagejpeg() crée un fichier JPEG depuis l'image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin d'enregistrement du fichier. S'il n'est définit pas ou vaut NULL, le flux d'image brute sera affiché directement.

Pour éviter de fournir cet argument afin de fournir l'argument quality, utilisez une valeur NULL.

quality

quality est optionnel, et prend des valeurs entières de 0 (pire qualité, petit fichier) et 100 (meilleure qualité, gros fichier). Par défaut, la valeur est celle de la qualité IJG (75).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image JPEG

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'A Simple Text String'$text_color);

// Définit le contenu de l'en-tête - dans ce cas, image/jpeg
header('Content-Type: image/jpeg');

// Affichage de l'image
imagejpeg($im);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagejpeg()

Exemple #2 Sauvegarde d'une image JPEG

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Un texte simple'$text_color);

// Sauvegarde de l'image sous le nom 'simpletext.jpg'
imagejpeg($im'simpletext.jpg');

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #3 Affichage de l'image avec une qualité de 75%

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Un texte simple'$text_color);

// Définit le contenu de l'en-tête - dans ce cas,  image/jpeg
header('Content-Type: image/jpeg');

// On ne fournit pas le nom du fichier (utilisation de la valeur NULL),
// puis, on définit la qualité à 75%
imagejpeg($imNULL75);

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note: Le support JPEG n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Note:

Si vous voulez générer des images JPEG progressives, vous devez activer l'entrelacement à l'aide de la fonction imageinterlace().

Voir aussi

  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imageinterlace() - Active ou désactive l'entrelacement
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP



imagelayereffect

(PHP 4 >= 4.3.0, PHP 5)

imagelayereffectActive l'option d'alpha blending, pour utiliser les effets de libgd

Description

bool imagelayereffect ( resource $image , int $effect )

Active l'option d'alpha blending, pour utiliser les effets libgd.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

effect

Une des constantes suivantes :

IMG_EFFECT_REPLACE
Utilise le remplacement de pixels (équivalent à passer TRUE à la fonction imagealphablending())
IMG_EFFECT_ALPHABLEND
Utilise le blending normal de pixels (équivalent à passer FALSE à la fonction imagealphablending())
IMG_EFFECT_NORMAL
Identique à la constante IMG_EFFECT_ALPHABLEND.
IMG_EFFECT_OVERLAY
L'overlay a pour effet que les pixels noirs du fond resteront noirs, les blancs du fond resteront blancs, mais les gris du fond prendront la couleur du pixel de premier plan.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagelayereffect()

<?php
// Création d'une image
$im imagecreatetruecolor(100100);

// Définit l'arrière-plan
imagefilledrectangle($im00100100imagecolorallocate($im220220220));

// Applique l'overlay
imagelayereffect($imIMG_EFFECT_OVERLAY);

// Dessine 2 élipses grises
imagefilledellipse($im50504040imagecolorallocate($im100255100));
imagefilledellipse($im50505080imagecolorallocate($im100100255));
imagefilledellipse($im50508050imagecolorallocate($im255100100));

// Affichage
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagelayereffect()

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).



imageline

(PHP 4, PHP 5)

imagelineDessine une ligne

Description

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

Dessine une ligne entre deux points fournis.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonnée du premier point.

y1

Y : coordonnée du premier point.

x2

X : coordonnée du second point.

y2

Y : coordonnée du second point.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Trace une ligne fine

<?php

function imagelinethick($image$x1$y1$x2$y2$color$thick 1)
{
    
/* de cette manière, ca ne marche bien que pour les lignes orthogonales
    imagesetthickness($image, $thick);
    return imageline($image, $x1, $y1, $x2, $y2, $color);
    */
    
if ($thick == 1) {
        return 
imageline($image$x1$y1$x2$y2$color);
    }
    
$t $thick 0.5;
    if (
$x1 == $x2 || $y1 == $y2) {
        return 
imagefilledrectangle($imageround(min($x1$x2) - $t), round(min($y1$y2) - $t), round(max($x1$x2) + $t), round(max($y1$y2) + $t), $color);
    }
    
$k = ($y2 $y1) / ($x2 $x1); //y = kx + q
    
$a $t sqrt(pow($k2));
    
$points = array(
        
round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
        
round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
        
round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
        
round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
    );
    
imagefilledpolygon($image$points4$color);
    return 
imagepolygon($image$points4$color);
}

?>

Voir aussi



imageloadfont

(PHP 4, PHP 5)

imageloadfontCharge une nouvelle police

Description

int imageloadfont ( string $file )

imageloadfont() charge une nouvelle police utilisateur et retourne son identifiant.

Liste de paramètres

file

Le format des polices dépend actuellement du système d'exploitation. Ce qui signifie qu'il vous faut générer des fichiers de polices pour la machine qui fait tourner PHP.

Format de fichier de police
Position Type de données C Description
Octets 0-3 int Nombre de caractères de la police
Octets 4-7 int Valeur du premier caractère de la police (souvent 32 pour espace)
Octets 8-11 int Largeur en pixels des caractères
Octets 12-15 int Hauteur en pixels des caractères
Octets 16- char Tableau avec les données des caractères, un octet par pixel pour chaque caractère, avec un total de (nombre de caractères * largeur * hauteur) octets.

Valeurs de retour

L'identifiant de la police qui sera toujours supérieur à 5 afin d'éviter les conflits avec les polices internes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imageloadfont()

<?php
// Création d'une nouvelle image
$im imagecreatetruecolor(5020);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im004919$white);

// Charge la police GD et écrit 'Bonjour !'
$font imageloadfont('./04b.gdf');
imagestring($im$font00'Bonjour !'$black);

// Affichage sur le navigateur
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Voir aussi



imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5)

imagepalettecopyCopie la palette d'une image à l'autre

Description

void imagepalettecopy ( resource $destination , resource $source )

imagepalettecopy() copie la palette de l'image source dans l'image destination.

Liste de paramètres

destination

La ressource de l'image de destination.

source

La ressource de l'image source.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec imagepalettecopy()

<?php
// Création de 2 palettes
$palette1 imagecreate(100100);
$palette2 imagecreate(100100);

// Définit l'arrière-plan en vert
// pour la première
$green imagecolorallocate($palette102550);

// Copie la première palette dans la deuxième
imagepalettecopy($palette2$palette1);

// Sachant que la palette est maintenant copiée, nous pouvons
// utiliser la couleur verte allouée à la première palette
// sans pour autant utiliser de nouveau la fonction imagecolorallocate()
imagefilledrectangle($palette2009999$green);

// Affichage de l'image sur le navigateur
header('Content-type: image/png');

imagepng($palette2);
imagedestroy($palette1);
imagedestroy($palette2);
?>



imagepng

(PHP 4, PHP 5)

imagepngEnvoie une image PNG vers un navigateur ou un fichier

Description

bool imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )

imagepng() affiche ou sauvegarde une image au format PNG en utilisant l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin d'enregistrement du fichier. S'il n'est définit pas ou vaut NULL, le flux d'image brute sera affiché directement.

Note:

La valeur NULL est invalide si le paramètre quality et le paramètre filters ne sont pas utilisés.

quality

Degré de compression : depuis 0 (aucune compression) à 9.

filters

Permet la réduction de la taille du fichier PNG. C'est un masque qui peut être défini par une combinaison des constantes PNG_FILTER_XXX. PNG_NO_FILTER ou PNG_ALL_FILTERS peuvent également être utilisé pour, respectivement, désactiver ou activer tous les filtres.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.1.3 Ajout du paramètre filters.
5.1.2 Ajout du paramètre quality.

Exemples

<?php
$im 
imagecreatefrompng("test.png");

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Voir aussi

  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP
  • imagesavealpha() - Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG



imagepolygon

(PHP 4, PHP 5)

imagepolygonDessine un polygone

Description

bool imagepolygon ( resource $image , array $points , int $num_points , int $color )

imagepolygon() dessine un polygone dans l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

points

Un tableau contenant les sommets du polygone, e.g. :

points[0] = x0
points[1] = y0
points[2] = x1
points[3] = y1

num_points

Le nombre de points (sommets).

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepolygon()

<?php
// Création d'une image vide
$image imagecreatetruecolor(400300);

// Alloue une couleur pour le polygone
$col_poly imagecolorallocate($image255255255);

// Dessine le polygone
imagepolygon($image, array(
        
0,   0,
        
100200,
        
300200
    
),
    
3,
    
$col_poly);

// Affichage de l'image sur le navigateur
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagepolygon()

Voir aussi



imagepsbbox

(PHP 4, PHP 5)

imagepsbboxRetourne le rectangle entourant un texte et dessiné avec une police PostScript Type1

Description

array imagepsbbox ( string $text , resource $font , int $size )
array imagepsbbox ( string $text , resource $font , int $size , int $space , int $tightness , float $angle )

Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1.

Le rectangle entourant est calculé en utilisant les informations disponibles sur les tailles de caractères, et, malheureusement, il a tendance à être légèrement différent du résultat réel final. Si l'angle est de 0 degré, vous pouvez-vous attendre à avoir besoin d'un rectangle d'au moins un pixel plus grand dans toutes les directions.

Liste de paramètres

text

Le texte à écrire.

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

size

size est exprimé en pixels.

space

permet de changer la valeur par défaut du caractère espace. Cette valeur est ajoutée lors des dessins et, donc, peut être négative. Exprimé en unité d'espacement de caractères, avec 1 unité vaut 1/1000 d'un em carré (un em : unité de mesure représentée par un carré dont la dimension horizontale est la même que le corps du caractère).

tightness

tightness permet de contrôler la quantité d'espace entre les caractères. Cette quantité est ajoutée lors des dessins, et peut donc être négative. Exprimé en unité d'espacement de caractères, avec 1 unité vaut 1/1000 d'un em carré.

angle

angle est exprimé en pixels.

Valeurs de retour

Retourne un tableau contenant les éléments suivants :

0 Abscisse gauche
1 Ordonnée supérieure
2 Abscisse droite
3 Ordonnée inférieure

Exemples

Exemple #1 Exemple avec imagepsbbox()

<?php
// Création d'une image
$im imagecreatetruecolor(200200);

// Alloue les couleurs
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Charge une police PostScript
$font imagepsloadfont('font.pfm');

// Crée un rectangle autour de la police
$bbox imagepsbbox('Un texte simple'$font12);

// Définit les coordonnées en X et en Y
$x = ($bbox[2] / 2) - 10;
$y = ($bbox[3] / 2) - 10;

// Dessine un texte sur l'image
imagepstext($im'Un texte simple'$font12$black$white$x$y);

// Affichage et libération de la mémoire
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi

  • imagepstext() - Dessine un texte sur une image avec une police PostScript Type1



imagepsencodefont

(PHP 4, PHP 5)

imagepsencodefontChange le codage vectoriel d'un caractère dans une police

Description

bool imagepsencodefont ( resource $font_index , string $encodingfile )

Charge le codage vectoriel d'un caractère depuis un fichier et change le codage vectoriel de la police correspondante. Étant donné que les polices PostScript ne disposent pas des caractères au-delà de 127, vous aurez sûrement besoin de les changer si vous utilisez une autre langue que l'anglais.

Si vous commencez à utiliser cette fonction régulièrement, une meilleure solution est de définir un encodage, et de l'utiliser avec ps.default_encoding dans le fichier de configuration pour utiliser par défaut l'encodage correct.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

encodingfile

Le format exact de ce fichier est décrit dans la documentation T1libs. T1lib est fourni avec deux fichiers prêt à l'emploi : IsoLatin1.enc et IsoLatin2.enc.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsencodefont()

<?php
// Charge un fichier de police .pfb
$font imagepsloadfont('./px3l.pfb');

// Demande à la bibliothèque T1lib d'utiliser l'encodage ISO Latin 1
imagepsencode($font'./IsoLatin1.enc');

// On fait ici les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .



imagepsextendfont

(PHP 4, PHP 5)

imagepsextendfontÉtend ou condense une police de caractères

Description

bool imagepsextendfont ( resource $font_index , float $extend )

imagepsextendfont() étend ou condense la police de caractères font. Si la valeur de extend est inférieure à 1, ce sera une condensation.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

extend

Extension de la valeur ; doit être supérieure à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsextendfont()

<?php
// Charge un fichier de police .pfb
$font imagepsloadfont('./px3l.pfb');

// Etend la police par 2.5
imagepsextendfont($font2.5);

// On fait ici toutes les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .



imagepsfreefont

(PHP 4, PHP 5)

imagepsfreefontLibère la mémoire occupée par une police PostScript Type 1

Description

bool imagepsfreefont ( resource $font_index )

imagepsfreefont() libère la mémoire occupée par une police PostScript Type 1.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsfreefont()

<?php
// Charge un fichier de police .pfb
$font imagepsloadfont('./bchbi.pfb');

// On fait ici toutes les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi



imagepsloadfont

(PHP 4, PHP 5)

imagepsloadfontCharge une police PostScript Type 1 depuis un fichier

Description

resource imagepsloadfont ( string $filename )

Charge une police PostScript Type 1 depuis le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier de police Postscript.

Valeurs de retour

En cas de succès, imagepsloadfont() retourne un index de police, qui pourra être utilisé pour des opérations ultérieures. Sinon, imagepsloadfont() retournera FALSE.

Exemples

Exemple #1 Exemple avec imagepsloadfont()

<?php
// Création d'une nouvelle image
$im imagecreatetruecolor(35045);

// Alloue les couleurs et remplit l'arrière-plan
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);
imagefilledrectangle($im0034944$white);

// Charge une police, écrite dans l'image et libère la mémoire
$font imagepsloadfont("bchbi.pfb");
imagepstext($im"Test... Ca marche !"$font32$white$black3232);
imagepsfreefont($font);

// Affichage de l'image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi



imagepsslantfont

(PHP 4, PHP 5)

imagepsslantfontIncline une police de caractères PostScript

Description

bool imagepsslantfont ( resource $font_index , float $slant )

Met en italique la police de caractères font avec le coefficient slant.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

slant

Niveau de l'italique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsslantfont()

<?php
// Chargement d'un fichier de police .pfb
$font imagepsloadfont('./px3l.pfb');

// On met la police en italique par 22.5
imagepsslantfont($font22.5);

// On fait ici toutes les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .



imagepstext

(PHP 4, PHP 5)

imagepstextDessine un texte sur une image avec une police PostScript Type1

Description

array imagepstext ( resource $image , string $text , resource $font_index , int $size , int $foreground , int $background , int $x , int $y [, int $space = 0 [, int $tightness = 0 [, float $angle = 0.0 [, int $antialias_steps = 4 ]]]] )

Dessine un texte sur une image avec une police PostScript Type1.

Reportez-vous à la documentation PostScript pour avoir des détails à propos des polices et de leurs tailles.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

text

Le texte à écrire.

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

size

size est exprimé en pixels.

foreground

La couleur avec laquelle le texte va être dessiné.

background

La couleur d'antialiasing. Aucun pixel avec la couleur background n'est dessiné, ce qui fait que l'arrière-plan n'a pas besoin d'être dans une couleur fixe.

x

X : coordonnée du coin en bas, à gauche du premier caractère.

y

Y : coordonnée du coin en bas, à gauche du premier caractère.

space

Permet de changer la taille par défaut du caractère d'espacement. Cette valeur peut être négative. Exprimé en unité d'espaces caractère, ce qui vaut 1/1000ème d'un em-carré (un em : unité de mesure représentée par un carré dont la dimension horizontale est la même que le corps du caractère).

tightness

Permet de contrôler la quantité d'espace entre deux caractères. Cette valeur peut être négative. Exprimé en unité d'espaces caractère, ce qui vaut 1/1000ème d'un em-carré.

angle

angle est en degrés.

antialias_steps

Permet de contrôler le nombre de couleurs du texte antialiasé. Les valeurs autorisées sont 4 et 16. 16 est recommandée pour les polices de moins de 20 pixels, car l'effet est alors visible. Avec les tailles plus grandes, utilisez de préférence 4, qui est moins gourmande en ressources.

Valeurs de retour

Cette fonction retourne un tableau contenant les éléments suivants :

0 Abscisse inférieure gauche
1 Ordonnée inférieure gauche
2 Abscisse supérieure droite
3 Ordonnée supérieure droite

Exemples

Exemple #1 Exemple avec imagepstext()

<?php
// Création d'une nouvelle image
$im imagecreatetruecolor(200200);

// Alloue les couleurs
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Charge la police PostScript
$font imagepsloadfont('font.pfm');

// Dessine un texte dans l'image
imagepstext($im'Un texte simple'$font12$black$white5050);

// Affichage et libération de la mémoire
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi

  • imagepsbbox() - Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1



imagerectangle

(PHP 4, PHP 5)

imagerectangleDessine un rectangle

Description

bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imagerectangle() dessine un rectangle aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonnée du coin en haut, à gauche.

y1

Y : coordonnée du coin en haut, à gauche. 0, 0 est le coin en haut à gauche de l'image.

x2

X : coordonnée du point en bas, à droite.

y2

Y : coordonnée du point en bas, à droite.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagerectangle()

<?php
// Création d'une image de 200 x 200 pixels
$canvas imagecreatetruecolor(200200);

// Alloue les couleurs
$pink imagecolorallocate($canvas255105180);
$white imagecolorallocate($canvas255255255);
$green imagecolorallocate($canvas13213528);

// Dessine 3 rectangles, chacun avec sa couleur
imagerectangle($canvas5050150150$pink);
imagerectangle($canvas4560120100$white);
imagerectangle($canvas10012075160$green);

// Affichage et libération de la mémoire
header('Content-Type: image/jpeg');

imagejpeg($canvas);
imagedestroy($canvas);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagerectangle()



imagerotate

(PHP 4 >= 4.3.0, PHP 5)

imagerotateFait tourner une image d'un angle

Description

resource imagerotate ( resource $image , float $angle , int $bgd_color [, int $ignore_transparent = 0 ] )

imagerotate() fait tourner l'image image d'un angle de angle, en degrés.

Le centre de rotation est le centre de l'image, et l'image tournée peut avoir des dimensions différentes de l'image originale.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

angle

L'angle de rotation, en degrés. L'angle de rotation est interprété comme étant le nombre de degrés à tourner l'image dans le sens inverse des aiguilles d'une montre.

bgd_color

Spécifie la couleur des zones qui seront découvertes après la rotation.

ignore_transparent

Si ce paramètre est défini et ne vaut pas zéro, les couleurs transparentes seront ignorées.

Valeurs de retour

Retourne une ressource d'image correspondant à l'image après rotation, ou FALSE si une erreur survient.

Historique

Version Description
5.1.0 Le paramètre ignore_transparent a été ajouté.

Exemples

Exemple #1 Rotation d'une image de 180 degrés

Cet exemple tourne une image de 180 degrés - à l'envers.

<?php
// Fichier et degrés de rotation
$filename 'test.jpg';
$degrees 180;

// Content type
header('Content-type: image/jpeg');

// Chargement
$source imagecreatefromjpeg($filename);

// Rotation
$rotate imagerotate($source$degrees0);

// Affichage
imagejpeg($rotate);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Rotation d'une image de 180 degrés

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.



imagesavealpha

(PHP 4 >= 4.3.2, PHP 5)

imagesavealphaConfigure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG

Description

bool imagesavealpha ( resource $image , bool $saveflag )

imagesavealpha() définit l'option pour essayer de sauvegarder toutes les informations du canal alpha (en opposition à la transparence à couleur unique) lors de la sauvegarde d'images PNG.

Vous devez désactiver le alphablending (imagealphablending($im, false)) pour l'utiliser.

Le canal alpha n'est pas supporté par tous les navigateurs ; si vous avez des problèmes avec le vôtre, essayez de charger le script avec un navigateur compatible avec les canaux alpha, c'est à dire le dernier Mozilla.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

saveflag

Si l'on doit ou non sauvegarder le canal Alpha. Par défaut, FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesavealpha()

<?php
// Charge une image PNG avec un canal Alpha
$png imagecreatefrompng('./alphachannel_example.png');

// On fait ici les opérations que l'on souhaite...

// Désactive l'Alpha blending et définit le drapeau Alpha
imagealphablending($pngfalse);
imagesavealpha($pngtrue);

// Affiche l'image au navigateur
header('Content-Type: image/png');

imagepng($png);
imagedestroy($png);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).

Voir aussi



imagesetbrush

(PHP 4 >= 4.0.6, PHP 5)

imagesetbrushModifie la brosse pour le dessin des lignes

Description

bool imagesetbrush ( resource $image , resource $brush )

imagesetbrush() remplace la brosse courante pour le dessin des lignes par brush. Cette brosse sera alors utilisée avec des fonctions comme imageline() ou imagepolygon() et avec les couleurs spéciales IMG_COLOR_BRUSHED ou IMG_COLOR_STYLEDBRUSHED.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

brush

Une ressource d'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesetbrush()

<?php
// Charge un mini-logo PHP
$php imagecreatefrompng('./php.png');

// Création de l'image principale, 100x100
$im imagecreatetruecolor(100100);

// Définit l'arrière-plan en blanc
$white imagecolorallocate($im255255255);
imagefilledrectangle($im0029999$white);

// Définit la brosse
imagesetbrush($im$php);

// Dessine quelques brosses
imageline($im50505060IMG_COLOR_BRUSHED);

// Affichage de l'image au navigateur
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($php);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetbrush()

Notes

Note:

Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse, vous ne DEVEZ plus utiliser les options IMG_COLOR_BRUSHED et IMG_COLOR_STYLEDBRUSHED avant d'avoir créé une nouvelle brosse.



imagesetpixel

(PHP 4, PHP 5)

imagesetpixelDessine un pixel

Description

bool imagesetpixel ( resource $image , int $x , int $y , int $color )

imagesetpixel() dessine un pixel aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée.

y

Y : coordonnée.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesetpixel()

Un dessin aléatoire qui se termine par une image régulière.

<?php

$x 
200;
$y 200;

$gd imagecreatetruecolor($x$y);

$corners[0] = array('x' => 100'y' =>  10);
$corners[1] = array('x' =>   0'y' => 190);
$corners[2] = array('x' => 200'y' => 190);

$red imagecolorallocate($gd25500); 

for (
$i 0$i 100000$i++) {
  
imagesetpixel($gdround($x),round($y), $red);
  
$a rand(02);
  
$x = ($x $corners[$a]['x']) / 2;
  
$y = ($y $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetpixel()

Voir aussi



imagesetstyle

(PHP 4 >= 4.0.6, PHP 5)

imagesetstyleConfigure le style pour le dessin des lignes

Description

bool imagesetstyle ( resource $image , array $style )

imagesetstyle() permet de choisir le style à utiliser lors du dessin des lignes (comme avec les fonctions imageline() et imagepolygon()) lors de l'utilisation de la couleur spéciale IMG_COLOR_STYLED ou bien lors du dessin de lignes avec la couleur IMG_COLOR_STYLEDBRUSHED.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

style

Un tableau de couleurs de pixels. Vous pouvez utiliser la constante IMG_COLOR_TRANSPARENT pour ajouter un pixel transparent.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

L'exemple suivant dessine une ligne pointillée depuis le coin supérieur gauche vers le coin inférieur droit de l'image :

Exemple #1 Exemple pour imagesetstyle()

<?php
header
("Content-type: image/jpeg");
$im  imagecreatetruecolor(100100);
$w   imagecolorallocate($im255255255);
$red imagecolorallocate($im25500);

/* Dessine une ligne pointillée de 5 pixels rouges, 5 pixels blancs */
$style = array($red$red$red$red$red$w$w$w$w$w);
imagesetstyle($im$style);
imageline($im00100100IMG_COLOR_STYLED);

/* Dessine une ligne avec des smileys, en utilisant imagesetbrush() et imagesetstyle */
$style = array($w$w$w$w$w$w$w$w$w$w$w$w$red);
imagesetstyle($im$style);

$brush imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 imagecolorallocate($brush255255255);
imagecolortransparent($brush$w2);
imagesetbrush($im$brush);
imageline($im10000100IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetstyle()

Voir aussi



imagesetthickness

(PHP 4 >= 4.0.6, PHP 5)

imagesetthicknessModifie l'épaisseur d'un trait

Description

bool imagesetthickness ( resource $image , int $thickness )

imagesetthickness() modifie l'épaisseur du trait des lignes de l'image image. Cette épaisseur intervient dans les dessins de polygones, ellipses, cercles, rectangles, etc. thickness est en pixels.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

thickness

L'épaisseur, en pixels.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesetthickness()

<?php
// Création d'une image en 200x100
$im imagecreatetruecolor(200100);
$white imagecolorallocate($im0xFF0xFF0xFF);
$black imagecolorallocate($im0x000x000x00);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im0029999$white);

// Définit l'épaisseur de la ligne à 5
imagesetthickness($im5);

// Dessine le rectangle
imagerectangle($im141418585$black);

// Affichage de l'image sur le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetthickness()

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).



imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettileModifie l'image utilisée pour le carrelage

Description

bool imagesettile ( resource $image , resource $tile )

imagesettile() remplace l'image de pavement courante par l'image tile, à utiliser dans tous les remplissages (comme avec les fonctions imagefill() et imagefilledpolygon()) lors des remplissages avec l'option IMG_COLOR_TILED.

Une image de carrelage est une image utilisée pour remplir une zone, de manière répétitive. N'importe quelle image GD peut servir d'image de remplissage. L'utilisation de la couleur transparente (gérée avec la fonction imagecolortransparent()) permet à certaines zones d'apparaître à travers le carrelage.

Note:

Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse, vous ne DEVEZ plus utiliser l'option IMG_COLOR_TILED des fonctions imagefill() et imagefilledpolygon(), avant d'avoir créé une nouvelle brosse.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

tile

La ressource de l'image à utiliser en tant que carrelage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesettile()

<?php
// Chargement d'une image externe
$zend imagecreatefromgif('./zend.gif');

// Création d'une image de 200x200 pixels
$im imagecreatetruecolor(200200);

// Définition du carrelage
imagesettile($im$zend);

// Répétition de l'image
imagefilledrectangle($im00199199IMG_COLOR_TILED);

// Affichage vers le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesettile()



imagestring

(PHP 4, PHP 5)

imagestringDessine une chaîne horizontale

Description

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

Dessine une chaîne aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée du coin en haut, à gauche.

y

Y : coordonnée du coin en haut, à gauche.

string

La chaîne de caractères à écrire.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagestring()

<?php
// Nouvelle image 100*30
$im imagecreate(10030);

// Fond blanc et texte bleu
$bg imagecolorallocate($im255255255);
$textcolor imagecolorallocate($im00255);

// Ajout de la phrase en haut à gauche
imagestring($im500'Hello world!'$textcolor);

// Affichage de l'image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagestring()

Voir aussi



imagestringup

(PHP 4, PHP 5)

imagestringupDessine une chaîne verticale

Description

bool imagestringup ( resource $image , int $font , int $x , int $y , string $string , int $color )

Dessine une chaîne sur une ligne verticale dans l'image image aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

Coordonnée X du coin en haut, à gauche.

y

Coordonnée Y du coin en haut, à gauche.

string

La chaîne de caractères à écrire.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagestringup()

<?php
// Création d'une image de 100*100 pixels
$im imagecreatetruecolor(100100);

// Dessine un texte
$textcolor imagecolorallocate($im0xFF0xFF0xFF);
imagestringup($im34080'gd library'$textcolor);

// Sauvegarde l'image
imagepng($im'./stringup.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagestringup()

Voir aussi



imagesx

(PHP 4, PHP 5)

imagesxRetourne la largeur d'une image

Description

int imagesx ( resource $image )

Retourne la largeur de l'image référencée par image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la largeur de l'image image ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesx()

<?php

// Création d'une image 300*200 image
$img imagecreatetruecolor(300200);

echo 
imagesx($img); // 300

?>

Voir aussi



imagesy

(PHP 4, PHP 5)

imagesyRetourne la hauteur de l'image

Description

int imagesy ( resource $image )

Retourne la hauteur de l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la hauteur de l'image image ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesy()

<?php

// Création d'une image 300*200
$img imagecreatetruecolor(300200);

echo 
imagesy($img); // 200

?>

Voir aussi



imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5)

imagetruecolortopaletteConvertit une image en couleurs vraies en image à palette

Description

bool imagetruecolortopalette ( resource $image , bool $dither , int $ncolors )

imagetruecolortopalette() convertit l'image en vraies couleurs image en image à palette. Le code de cette fonction est directement tiré de la bibliothèque du Independent JPEG Group, qui est tout simplement génial. Le code a été modifié pour préserver l'essentiel du canal alpha dans la nouvelle palette, en plus de conserver les couleurs du mieux possible. Mais cela ne fonctionne pas toujours comme voulu. Il est alors préférable de générer un résultat en vraies couleurs, ce qui donne toujours le meilleur rendu.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

dither

Indique si l'image doit être granuleuse - si défini à TRUE, alors l'image sera un peu plus granuleuse mais l'approximation des couleurs sera meilleure.

ncolors

Le nombre maximal de couleurs dans la palette finale.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertion d'une image truecolor en une palette

<?php
// Création d'une image truecolor
$im imagecreatetruecolor(100100);

// Convertion en palette de 255 couleurs
imagetruecolortopalette($imfalse255);

// Sauvegarde de l'image
imagepng($im'./paletteimage.png');
imagedestroy($im);
?>

Notes

Note: Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommandée).



imagettfbbox

(PHP 4, PHP 5)

imagettfbboxRetourne le rectangle entourant un texte et dessiné avec une police TrueType

Description

array imagettfbbox ( float $size , float $angle , string $fontfile , string $text )

Calcule et retourne le rectangle entourant le texte text, écrit avec une police truetype.

Liste de paramètres

size

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.

angle

L'angle, en degrés, dans lequel le paramètre text sera mesuré.

fontfile

Le nom de la police TrueType (peut être une URL). Suivant la version de la bibliothèque GD utilisée par PHP, ce paramètre peut chercher des fichiers qui ne commence pas par un slash ("/") de fin mais plutôt .ttf et cherchera tout le long des chemins de fonts définis.

text

La chaîne à mesurer.

Valeurs de retour

imagettfbbox() retourne un tableau avec 8 éléments représentant les 4 sommets du rectangle en cas de succès, FALSE si une erreur survient.

Clé Signification
0 Coin inférieur gauche, abscisse
1 Coin inférieur gauche, ordonnée
2 Coin inférieur droit, abscisse
3 Coin inférieur droit, ordonnée
4 Coin supérieur droit, abscisse
5 Coin supérieur droit, ordonnée
6 Coin supérieur gauche, abscisse
7 Coin supérieur gauche, ordonnée

Les positions des points sont relatives au texte text, indépendamment de l'angle : coin supérieur gauche faire référence au coin supérieur gauche du texte écrit horizontalement.

Exemples

Exemple #1 Exemple avec imagettfbbox()

<?php
// Création d'une image de 300x150 pixels
$im imagecreatetruecolor(300150);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im00299299$white);

// Chemin vers le fichier de police
$font './arial.ttf';

// Tout d'abord, nous créons notre rectangle entourant notre premier texte
$bbox imagettfbbox(1045$font'Powered by PHP ' phpversion());

// Nos coordonnées en X et en Y
$x $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Dessin du texte
imagettftext($im1045$x$y$black$font'Powered by PHP ' phpversion());

// Nous créons notre rectangle entourant notre second texte
$bbox imagettfbbox(1045$font'and Zend Engine ' zend_version());

// Définit les coordonnées afin que le second text suive le premier
$x $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Dessin du texte
imagettftext($im1045$x$y$black$font'and Zend Engine ' zend_version());

// Affichage vers le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note:

Cette fonction nécessite la bibliothèque GD et la bibliothèque » FreeType.

Voir aussi



imagettftext

(PHP 4, PHP 5)

imagettftextDessine un texte avec une police TrueType

Description

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

imagettftext() dessine le texte text avec la police TrueType fontfile.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

size

La taille de la police de caractères. Suivant votre version de GD, elle doit être exprimée en pixel (GD1) ou en point (GD2).

angle

L'angle, en degrés ; 0 degré correspond à la lecture du texte de gauche à droite. Les valeurs positives représentent une rotation dans le sens contraire des aiguilles d'une montre. Par exemple, une valeur de 90 correspondra à une lecture du texte de bas en haut.

x

Les coordonnées données par x et y définiront la position du premier caractère (le coin bas-gauche du caractère). Cela est différent de la fonction imagestring(), où x et y définissent le coin haut-gauche du premier caractère. Par exemple, "haut gauche" correspond à 0, 0.

y

L'ordonnée Y. Cela définit la position de la ligne de base de la police, et non pas le bas des caractères.

color

L'index de la couleur. Utiliser un index de couleur négatif désactivera l'antialiasing. Voir la fonction imagecolorallocate().

fontfile

Le chemin vers la police TrueType que vous souhaitez utiliser.

Dépendant de la version de la bibliothèque GD utilisée par PHP, lorsque fontfile ne commence pas par un caractère / alors .ttf sera ajouté au nom du fichier et la bibliothèque recherchera ce nom de fichier dans les dossiers de police, définis par la bibliothèque.

Lorsque vous utilisez une version de la bibliothèque GD inférieure à 2.0.18, un caractère espace, plutôt qu'un point-virgule, est utilisé pour définir des chemins alternatifs pour les fichiers de police. Si vous utilisez involontairement cette fonctionnalité, vous aurez ce message d'erreur : Warning: Could not find/open font. Pour ces versions affectées, la seule solution est de déplacée la police à un endroit qui ne contient pas d'espaces dans les noms de dossier.

Dans le cas fréquent où une police réside dans le même dossier que le script l'utilisant, l'astuce suivante vous épargnera tous les problèmes.

<?php
// Définition de la variable d'environnement pour GD
putenv('GDFONTPATH=' realpath('.'));

// Nom de la police à utiliser (notez l'absence de l'extension .ttf)
$font 'SomeFont';
?>

text

La chaîne de texte, en UTF-8.

Peut inclure des références à des caractères numériques, décimales (sous la forme : &#8364; ) pour accéder aux caractères d'une police au delà du premier 127. Les chaînes de caractères encodées en UTF-8 peuvent être passées directement.

Les entités nommées, comme &copy;, ne sont pas supportées. Utilisez la fonction html_entity_decode() pour encoder ces entités nommées en chaîne UTF-8 (la fonction html_entity_decode() supporte ceci depuis PHP 5.0.0.).

Si un caractère est utilisé dans une chaîne qui n'est pas supportée par la police, un rectangle creux remplacera le caractère.

Valeurs de retour

Retourne un tableau de 8 éléments représentant quatre points marquants les limites du texte. L'ordre des points est : inférieur gauche, inférieur droit, supérieur droit, supérieur gauche. Les points sont relatifs au texte par rapport à l'angle, donc, "supérieur gauche" signifie dans le coin en haut à gauche lorsque vous regardez le texte horizontalement. Retourne FALSE si une erreur survient.

Historique

Version Description
5.2.0 Il est maintenant possible de spécifier une entitée hexadécimal dans text.

Exemples

Exemple #1 Exemple avec imagettftext()

Cet exemple produira une image PNG blanche de 400x30 pixels, avec le texte "Test..." en noir, avec une ombre grise, utilisant la police Arial.

<?php
// Définition du content-type
header('Content-Type: image/png');

// Création de l'image
$im imagecreatetruecolor(40030);

// Création de quelques couleurs
$white imagecolorallocate($im255255255);
$grey imagecolorallocate($im128128128);
$black imagecolorallocate($im000);
imagefilledrectangle($im0039929$white);

// Le texte à dessiner
$text 'Test...';
// Remplacez le chemin par votre propre chemin de police
$font 'arial.ttf';

// Ajout d'ombres au texte
imagettftext($im2001121$grey$font$text);

// Ajout du texte
imagettftext($im2001020$black$font$text);

// Utiliser imagepng() donnera un texte plus claire,
// comparé à l'utilisation de la fonction imagejpeg()
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagettftext()

Notes

Note:

Cette fonction requiert la bibliothèque GD ainsi que la bibliothèque » FreeType.

Voir aussi

  • imagettfbbox() - Retourne le rectangle entourant un texte et dessiné avec une police TrueType



imagetypes

(PHP 4 >= 4.0.2, PHP 5)

imagetypesRetourne les types d'images supportés par la version courante de PHP

Description

int imagetypes ( void )

Retourne un champ d'octets correspondant aux formats d'images supportés par la version PHP utilisée.

Valeurs de retour

Retourne un champ d'octets correspondant aux formats d'images supportés par la version de GD utilisée. Les valeurs suivantes sont possibles : IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM.

Exemples

Exemple #1 Exemple avec imagetypes()

<?php
if (imagetypes() & IMG_PNG) {
    echo 
"Le type PNG est supporté";
}
?>



imagewbmp

(PHP 4 >= 4.0.1, PHP 5)

imagewbmpAffichage de l'image vers le navigateur ou dans un fichier

Description

bool imagewbmp ( resource $image [, string $filename [, int $foreground ]] )

imagewbmp() affiche ou sauvegarde une version WBMP de l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin d'enregistrement du fichier. S'il n'est définit pas ou vaut NULL, le flux d'image brute sera affiché directement.

foreground

Vous pouvez choisir la couleur de fond avec ce paramètre. Utilisez l'identifiant retourné par imagecolorallocate() comme valeur de ce paramètre. La couleur de fond par défaut est noire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image WBMP

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Un texte simple'$text_color);

// Définit le contenu de l'en-tête - dans ce cas, image/vnd.wap.wbmp
// Hint: see image_type_to_mime_type() for content-types
header('Content-Type: image/vnd.wap.wbmp');

// Affichage de l'image
imagewbmp($im);

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde de l'image WBMP

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Un texte simple'$text_color);

// Sauvegarde de l'image
imagewbmp($im'simpletext.wbmp');

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #3 Affichage de l'image avec un premier-plan différent

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Un texte simple'$text_color);

// Définit le contenu de l'en-tête - dans ce cas, image/vnd.wap.wbmp
// Astuce : voir la fonction image_type_to_mime_type() pour les types de contenu
header('Content-type: image/vnd.wap.wbmp');

// Définit un premier-plan
$foreground_color imagecolorallocate($im25500);

imagewbmp($imNULL$foreground_color);

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note:

Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou plus récent.

Voir aussi

  • image2wbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP



imagexbm

(PHP 5)

imagexbmGénère une image au format XBM

Description

bool imagexbm ( resource $image , string $filename [, int $foreground ] )

Affiche ou sauvegarde une version XBM de l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin d'enregistrement du fichier. S'il n'est définit pas ou vaut NULL, le flux d'image brute sera affiché directement.

foreground

Vous pouvez définir le premier plan avec ce paramètre en définissant un identifiant obtenu depuis la fonction imagecolorallocate(). Par défaut, la couleur du premier plan est noir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Sauvegarde d'un fichier XBM

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Un texte simple'$text_color);

// Sauvegarde de l'image
imagexbm($im'simpletext.xbm');

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde d'un fichier XBM avec une couleur de premier-plan différente

<?php
// Création d'une image vide et ajout d'un texte
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'Un texte simple'$text_color);

// Définit la couleur de premier-plan
$foreground_color imagecolorallocate($im25500);

// Sauvegarde de l'image
imagexbm($imNULL$foreground_color);

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.



iptcembed

(PHP 4, PHP 5)

iptcembedIntègre des données binaires IPTC dans une image JPEG

Description

mixed iptcembed ( string $iptcdata , string $jpeg_file_name [, int $spool ] )

iptcembed() intègre des données binaires IPTC dans une image JPEG.

Liste de paramètres

iptcdata

Les données à écrire.

jpeg_file_name

Chemin vers le fichier JPEG.

spool

La bobine. Si la bobine est supérieure à 2, alors le fichier JPEG sera retourné sous la forme d'une chaîne de caractères.

Valeurs de retour

En cas de succès et si la bobine est supérieure à 2, alors le fichier JPEG sera retourné sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec iptcembed()

<?php

// Fonction iptc_make_tag() par Thies C. Arntzen
function iptc_make_tag($rec$data$value)
{
    
$length strlen($value);
    
$retval chr(0x1C) . chr($rec) . chr($data);

    if(
$length 0x8000)
    {
        
$retval .= chr($length >> 8) .  chr($length 0xFF);
    }
    else
    {
        
$retval .= chr(0x80) . 
                   
chr(0x04) . 
                   
chr(($length >> 24) & 0xFF) . 
                   
chr(($length >> 16) & 0xFF) . 
                   
chr(($length >> 8) & 0xFF) . 
                   
chr($length 0xFF);
    }

    return 
$retval $value;
}

// Chemin vers le fichier JPEG
$path './phplogo.jpg';

// Nous devons vérifier s'il y a des données IPTC dans l'image JPEG. S'il y en
// a, alors nous stoppons le script car nous ne pouvons intégrer une image
// contenant déjà des données IPTC !
$image getimagesize($path$info);

if(isset(
$info['APP13']))
{
    die(
'Erreur : Données IPTC trouvées dans l\'image, nous ne pouvons continuer');
}

// Définit le drapeau IPTC
$iptc = array(
    
'2#120' => 'Test image',
    
'2#116' => 'Copyright 2008-2009, The PHP Group'
);

// Convertion du drapeau IPTC en code binaire
$data '';

foreach(
$iptc as $tag => $string)
{
    
$tag substr($tag2);
    
$data .= iptc_make_tag(2$tag$string);
}

// Intégration des données IPTC
$content iptcembed($data$path);

// Écrit les données de la nouvelle image dans un fichier.
$fp fopen($path"wb");
fwrite($fp$content);
fclose($fp);
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.



iptcparse

(PHP 4, PHP 5)

iptcparseAnalyse un bloc binaire IPTC et recherche les balises simples

Description

array iptcparse ( string $iptcblock )

Analyse un bloc binaire » IPTC et recherche les balises simples.

Liste de paramètres

iptcblock

Un bloc binaire IPTC.

Valeurs de retour

Retourne un tableau avec les balises comme index et les valeurs de ces balises IPTC dans les valeurs de tableau correspondantes. En cas d'erreur, ou si aucune balise IPTC n'a été trouvée, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec iptcparse() et getimagesize()

<?php
$size 
getimagesize('./test.jpg'$info);
if(isset(
$info['APP13']))
{
    
$iptc iptcparse($info['APP13']);
    
var_dump($iptc);
}
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.



jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5)

jpeg2wbmpConvertit une image JPEG en image WBMP

Description

bool jpeg2wbmp ( string $jpegname , string $wbmpname , int $dest_height , int $dest_width , int $threshold )

Convertit une image JPEG en image WBMP.

Liste de paramètres

jpegname

Le chemin vers le fichier JPEG.

wbmpname

Chemin vers le fichier final WBMP.

dest_height

Hauteur de l'image de destination.

dest_width

Largeur de l'image de destination.

threshold

Valeur du seuil, entre 0 et 8 inclus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec jpeg2wbmp()

<?php
// Chemin vers la cible jpeg
$path './test.jpg';

// Récupération de la taille de l'image
$image getimagesize($path);

// Convertion de l'image
jpeg2wbmp($path'./test.wbmp'$image[1], $image[0], 5);
?>

Notes

Note: Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Note: Le support JPEG n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Voir aussi

  • png2wbmp() - Convertit une image PNG en image WBMP



png2wbmp

(PHP 4 >= 4.0.5, PHP 5)

png2wbmpConvertit une image PNG en image WBMP

Description

bool png2wbmp ( string $pngname , string $wbmpname , int $dest_height , int $dest_width , int $threshold )

Convertit une image PNG en image WBMP.

Liste de paramètres

pngname

Chemin vers le fichier PNG.

wbmpname

Chemin vers le fichier final WBMP.

dest_height

Hauteur de l'image de destination.

dest_width

Largeur de l'image de destination.

threshold

Valeur du seuil, entre 0 et 8 inclus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec png2wbmp()

<?php
// Chemin vers la cible png
$path './test.png';

// Récupération de la taille de l'image
$image getimagesize($path);

// Convertion de l'image
png2wbmp($path'./test.wbmp'$image[1], $image[0], 7);
?>

Notes

Note: Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Voir aussi


Sommaire




Traitement des images (ImageMagick)


Introduction

Imagick est une extension PHP native pour créer et modifier les images, en utilisant l'API ImageMagick.

ImageMagick (marque déposée) est une suite de logiciels permettant la création, l'édition et la composition d'images bitmap. Elle peut lire, convertir et écrire les images dans divers formats (une centaine) dont DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG et TIFF.

Copyright 1999-2007 ImageMagick Studio LLC, une organisation à but non-lucratif dont le but est de rendre la création de logiciel relatif à la manipulation d'images librement disponible.



Installation/Configuration

Sommaire


Pré-requis

Configuration nécessaire pour l'installation sous Windows

Les binaires sont disponibles depuis http://www.imagemagick.org/ ; vous pouvez ainsi charger cette extension sous Windows sans devoir compiler quoi que ce soit.

Configuration nécessaire pour l'installation sous les autres plates-formes

PHP >= 5.1.3 et ImageMagick >= 6.2.4 sont nécessaires. Le nombre de formats supportés par Imagick est totalement dépendant de ceux supportés par votre installation ImageMagick. Par exemple, Imagemagick a besoin de ghostscript pour effectuer les opérations relatives aux PDF.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/imagick.

Note: Le nom officiel de cette extension est imagick.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Imagick
Nom Défaut Modifiable Historique de version
imagick.locale_fix FALSE PHP_INI_ALL Disponible depuis 2.1.0
imagick.progress_monitor FALSE PHP_INI_SYSTEM Disponible depuis Imagick 2.2.2
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

imagick.locale_fix boolean

Fixes un bogue sur le dessin lorsque les locales utilisent le caractère ',' comme séparateurs.

imagick.progress_monitor boolean

Utilisé pour activer la surveillance de la progression de l'image.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes COLOR_*

Constantes sur les type de couleur. Ces constantes sont surtout utilisées avec la classe ImagickPixel.

imagick::COLOR_BLACK (entier)
Couleur noire
imagick::COLOR_BLUE (entier)
Couleur bleue
imagick::COLOR_CYAN (entier)
Couleur cyan
imagick::COLOR_GREEN (entier)
Couleur verte
imagick::COLOR_RED (entier)
Couleur rouge
imagick::COLOR_YELLOW (entier)
Couleur jaune
imagick::COLOR_MAGENTA (entier)
Couleur magenta
imagick::COLOR_OPACITY (entier)
Couleur de l'opacité
imagick::COLOR_ALPHA (entier)
Couleur de l'alpha
imagick::COLOR_FUZZ (entier)
Couleur du fuzz
Constantes de disposition

Constantes relatvies aux type de disposition

imagick::DISPOSE_UNRECOGNIZED (entier)
Type de disposition non reconnu
imagick::DISPOSE_UNDEFINED (entier)
Type de disposition non défini
imagick::DISPOSE_NONE (entier)
Aucun type de disposition
imagick::DISPOSE_BACKGROUND (entier)
Disposition du fond
imagick::DISPOSE_PREVIOUS (entier)
Disposition précédente
Constantes d'opérateur de composition
imagick::COMPOSITE_DEFAULT (entier)
L'opérateur de composition par défaut.
imagick::COMPOSITE_UNDEFINED (entier)
Opérateur de composition indéfini
imagick::COMPOSITE_NO (entier)
Pas d'opérateur de composition défini
imagick::COMPOSITE_ADD (entier)
Le résultat de image + image
imagick::COMPOSITE_ATOP (entier)
Le résultat a la même forme que l'image, avec l'image composée qui remplit l'image là où la forme d'image chevauche l'image
imagick::COMPOSITE_BLEND (entier)
Combine les images image (blending)
imagick::COMPOSITE_BUMPMAP (entier)
La même chose que COMPOSITE_MULTIPLY, hormis le fait que la source est d'abord convertie en niveaux de gris
imagick::COMPOSITE_CLEAR (entier)
Rend l'image cible transparent
imagick::COMPOSITE_COLORBURN (entier)
Assombrit l'image de destination pour refléter l'image source
imagick::COMPOSITE_COLORDODGE (entier)
Éclaire l'image de destination pour refléter l'image source
imagick::COMPOSITE_COLORIZE (entier)
Colorie l'image cible avec l'image composée
imagick::COMPOSITE_COPYBLACK (entier)
Copie le noir de la source vers la cible
imagick::COMPOSITE_COPYBLUE (entier)
Copie le bleu de la source vers la cible
imagick::COMPOSITE_COPY (entier)
Copie la source vers la cible
imagick::COMPOSITE_COPYCYAN (entier)
Copie le Cyan de la source vers la cible
imagick::COMPOSITE_COPYGREEN (entier)
Copie le vert de la source vers la cible
imagick::COMPOSITE_COPYMAGENTA (entier)
Copie le magenta de la source vers la cible
imagick::COMPOSITE_COPYOPACITY (entier)
Copie l'opacité de la source vers la cible
imagick::COMPOSITE_COPYRED (entier)
Copie le rouge de la source vers la cible
imagick::COMPOSITE_COPYYELLOW (entier)
Copie le jaune de la source vers la cible
imagick::COMPOSITE_DARKEN (entier)
Assombrit l'image cible
imagick::COMPOSITE_DSTATOP (entier)
La partie de l'image de destination qui est a l'intérieur de la source est composée avec la source, et placée dans la destination.
imagick::COMPOSITE_DST (entier)
La cible est laissée intacte
imagick::COMPOSITE_DSTIN (entier)
La partie à l'intérieur de la source remplace la cible
imagick::COMPOSITE_DSTOUT (entier)
La partie à l'extérieur de la source remplace la cible
imagick::COMPOSITE_DSTOVER (entier)
La cible remplace la source
imagick::COMPOSITE_DIFFERENCE (entier)
Soustrait la couleur sombre de la couleur claire
imagick::COMPOSITE_DISPLACE (entier)
Décale les pixels de la cible tel que défini par la source
imagick::COMPOSITE_DISSOLVE (entier)
Dissous la source dans la cible
imagick::COMPOSITE_EXCLUSION (entier)
Produit un effet similaire à imagick::COMPOSITE_DIFFERENCE, mais avec un contraste plus faible
imagick::COMPOSITE_HARDLIGHT (entier)
Multiplie ou screene les couleurs, dépendemment de la valeur de la couleur source
imagick::COMPOSITE_HUE (entier)
Modifie la hue de la cible, tel que défini par la source
imagick::COMPOSITE_IN (entier)
Compose la source dans la cible
imagick::COMPOSITE_LIGHTEN (entier)
Éclaircit la cible, tel que défini par la source
imagick::COMPOSITE_LUMINIZE (entier)
Illumine la cible tel que défini par la source
imagick::COMPOSITE_MINUS (entier)
Soustrait la source de la cible
imagick::COMPOSITE_MODULATE (entier)
Module la clarté de la cible, sa saturation et sa hue tel que défini par la cible
imagick::COMPOSITE_MULTIPLY (entier)
Multiplie la cible avec la source
imagick::COMPOSITE_OUT (entier)
Compose l'extérieur de la source dans la cible
imagick::COMPOSITE_OVER (entier)
Compose la source sur la cible
imagick::COMPOSITE_OVERLAY (entier)
Surimprime la source sur la cible
imagick::COMPOSITE_PLUS (entier)
Ajoute la source sur la cible
imagick::COMPOSITE_REPLACE (entier)
Remplace la cible avec la source
imagick::COMPOSITE_SATURATE (entier)
Sature la cible tel que défini par la source
imagick::COMPOSITE_SCREEN (entier)
La source et cible sont complétées puis multipliées et finalement elles remplacent la cible
imagick::COMPOSITE_SOFTLIGHT (entier)
Assombrit ou éclaire les couleurs, en fonction de la source
imagick::COMPOSITE_SRCATOP (entier)
La partie de la source qui est dans la cible et composée sur la cible
imagick::COMPOSITE_SRC (entier)
La source est copiée sur la destination
imagick::COMPOSITE_SRCIN (entier)
La partie de la source qui est dans la destination, remplace la destination.
imagick::COMPOSITE_SRCOUT (entier)
La partie de la source qui est hors de la destination remplace la destination
imagick::COMPOSITE_SRCOVER (entier)
La source remplaces la cible
imagick::COMPOSITE_SUBTRACT (entier)
Soustrait les couleurs dans la source dans la cible
imagick::COMPOSITE_THRESHOLD (entier)
La source est composée sur la cible, tel que défini par les seuils de la source
imagick::COMPOSITE_XOR (entier)
La partie de la source qui est hors de la destination et combinée avec la partie de la destination qui est hors de la source
Constantes de mode de montage Mode

imagick::MONTAGEMODE_FRAME (entier)
imagick::MONTAGEMODE_UNFRAME (entier)
imagick::MONTAGEMODE_CONCATENATE (entier)
Constantes de style

imagick::STYLE_NORMAL (entier)
imagick::STYLE_ITALIC (entier)
imagick::STYLE_OBLIQUE (entier)
imagick::STYLE_ANY (entier)
Constantes de filtres

imagick::FILTER_UNDEFINED (entier)
imagick::FILTER_POINT (entier)
imagick::FILTER_BOX (entier)
imagick::FILTER_TRIANGLE (entier)
imagick::FILTER_HERMITE (entier)
imagick::FILTER_HANNING (entier)
imagick::FILTER_HAMMING (entier)
imagick::FILTER_BLACKMAN (entier)
imagick::FILTER_GAUSSIAN (entier)
imagick::FILTER_QUADRATIC (entier)
imagick::FILTER_CUBIC (entier)
imagick::FILTER_CATROM (entier)
imagick::FILTER_MITCHELL (entier)
imagick::FILTER_LANCZOS (entier)
imagick::FILTER_BESSEL (entier)
imagick::FILTER_SINC (entier)
Constantes de type d'images

imagick::IMGTYPE_UNDEFINED (entier)
imagick::IMGTYPE_BILEVEL (entier)
imagick::IMGTYPE_GRAYSCALE (entier)
imagick::IMGTYPE_GRAYSCALEMATTE (entier)
imagick::IMGTYPE_PALETTE (entier)
imagick::IMGTYPE_PALETTEMATTE (entier)
imagick::IMGTYPE_TRUECOLOR (entier)
imagick::IMGTYPE_TRUECOLORMATTE (entier)
imagick::IMGTYPE_COLORSEPARATION (entier)
imagick::IMGTYPE_COLORSEPARATIONMATTE (entier)
imagick::IMGTYPE_OPTIMIZE (entier)
Constantes de résolution

imagick::RESOLUTION_UNDEFINED (entier)
imagick::RESOLUTION_PIXELSPERINCH (entier)
imagick::RESOLUTION_PIXELSPERCENTIMETER (entier)
Constantes de compression

imagick::COMPRESSION_UNDEFINED (entier)
imagick::COMPRESSION_NO (entier)
imagick::COMPRESSION_BZIP (entier)
imagick::COMPRESSION_FAX (entier)
imagick::COMPRESSION_GROUP4 (entier)
imagick::COMPRESSION_JPEG (entier)
imagick::COMPRESSION_JPEG2000 (entier)
imagick::COMPRESSION_LOSSLESSJPEG (entier)
imagick::COMPRESSION_LZW (entier)
imagick::COMPRESSION_RLE (entier)
imagick::COMPRESSION_ZIP (entier)
imagick::COMPRESSION_DXT1 (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
imagick::COMPRESSION_DXT3 (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
imagick::COMPRESSION_DXT5 (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
Constantes de colorisation

imagick::PAINT_POINT (entier)
imagick::PAINT_REPLACE (entier)
imagick::PAINT_FLOODFILL (entier)
imagick::PAINT_FILLTOBORDER (entier)
imagick::PAINT_RESET (entier)
Constantes de gravité

imagick::GRAVITY_NORTHWEST (entier)
imagick::GRAVITY_NORTH (entier)
imagick::GRAVITY_NORTHEAST (entier)
imagick::GRAVITY_WEST (entier)
imagick::GRAVITY_CENTER (entier)
imagick::GRAVITY_EAST (entier)
imagick::GRAVITY_SOUTHWEST (entier)
imagick::GRAVITY_SOUTH (entier)
imagick::GRAVITY_SOUTHEAST (entier)
Constantes d'étirement

imagick::STRETCH_NORMAL (entier)
imagick::STRETCH_ULTRACONDENSED (entier)
imagick::STRETCH_CONDENSED (entier)
imagick::STRETCH_SEMICONDENSED (entier)
imagick::STRETCH_SEMIEXPANDED (entier)
imagick::STRETCH_EXPANDED (entier)
imagick::STRETCH_EXTRAEXPANDED (entier)
imagick::STRETCH_ULTRAEXPANDED (entier)
imagick::STRETCH_ANY (entier)
Constantes d'alignement

imagick::ALIGN_UNDEFINED (entier)
imagick::ALIGN_LEFT (entier)
imagick::ALIGN_CENTER (entier)
imagick::ALIGN_RIGHT (entier)
Constantes de décoration

imagick::DECORATION_NO (entier)
imagick::DECORATION_UNDERLINE (entier)
imagick::DECORATION_OVERLINE (entier)
imagick::DECORATION_LINETROUGH (entier)
Constantes de bruit

imagick::NOISE_UNIFORM (entier)
imagick::NOISE_GAUSSIAN (entier)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (entier)
imagick::NOISE_IMPULSE (entier)
imagick::NOISE_LAPLACIAN (entier)
imagick::NOISE_POISSON (entier)
imagick::NOISE_RANDOM (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
Constantes de canal

imagick::CHANNEL_UNDEFINED (entier)
imagick::CHANNEL_RED (entier)
imagick::CHANNEL_GRAY (entier)
imagick::CHANNEL_CYAN (entier)
imagick::CHANNEL_GREEN (entier)
imagick::CHANNEL_MAGENTA (entier)
imagick::CHANNEL_BLUE (entier)
imagick::CHANNEL_YELLOW (entier)
imagick::CHANNEL_ALPHA (entier)
imagick::CHANNEL_OPACITY (entier)
imagick::CHANNEL_MATTE (entier)
imagick::CHANNEL_BLACK (entier)
imagick::CHANNEL_INDEX (entier)
imagick::CHANNEL_ALL (entier)
imagick::CHANNEL_DEFAULT (entier)
Constantes de métriques

imagick::METRIC_UNDEFINED (entier)
imagick::METRIC_MEANABSOLUTEERROR (entier)
imagick::METRIC_MEANSQUAREERROR (entier)
imagick::METRIC_PEAKABSOLUTEERROR (entier)
imagick::METRIC_PEAKSIGNALTONOISERATIO (entier)
imagick::METRIC_ROOTMEANSQUAREDERROR (entier)
Constantes de pixels

imagick::PIXEL_CHAR (entier)
imagick::PIXEL_DOUBLE (entier)
imagick::PIXEL_FLOAT (entier)
imagick::PIXEL_INTEGER (entier)
imagick::PIXEL_LONG (entier)
imagick::PIXEL_QUANTUM (entier)
imagick::PIXEL_SHORT (entier)
Constantes d'opérateurs d'évaluation

imagick::EVALUATE_UNDEFINED (entier)
imagick::EVALUATE_ADD (entier)
imagick::EVALUATE_AND (entier)
imagick::EVALUATE_DIVIDE (entier)
imagick::EVALUATE_LEFTSHIFT (entier)
imagick::EVALUATE_MAX (entier)
imagick::EVALUATE_MIN (entier)
imagick::EVALUATE_MULTIPLY (entier)
imagick::EVALUATE_OR (entier)
imagick::EVALUATE_RIGHTSHIFT (entier)
imagick::EVALUATE_SET (entier)
imagick::EVALUATE_SUBTRACT (entier)
imagick::EVALUATE_XOR (entier)
imagick::EVALUATE_POW (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_LOG (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLD (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLDBLACK (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLDWHITE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_GAUSSIANNOISE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_IMPULSENOISE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_LAPLACIANNOISE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_MULTIPLICATIVENOISE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_POISSONNOISE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_UNIFORMNOISE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_COSINE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_SINE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_ADDMODULUS (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
Constantes d'espaces de couleurs

imagick::COLORSPACE_UNDEFINED (entier)
imagick::COLORSPACE_RGB (entier)
imagick::COLORSPACE_GRAY (entier)
imagick::COLORSPACE_TRANSPARENT (entier)
imagick::COLORSPACE_OHTA (entier)
imagick::COLORSPACE_LAB (entier)
imagick::COLORSPACE_XYZ (entier)
imagick::COLORSPACE_YCBCR (entier)
imagick::COLORSPACE_YCC (entier)
imagick::COLORSPACE_YIQ (entier)
imagick::COLORSPACE_YPBPR (entier)
imagick::COLORSPACE_YUV (entier)
imagick::COLORSPACE_CMYK (entier)
imagick::COLORSPACE_SRGB (entier)
imagick::COLORSPACE_HSB (entier)
imagick::COLORSPACE_HSL (entier)
imagick::COLORSPACE_HWB (entier)
imagick::COLORSPACE_REC601LUMA (entier)
imagick::COLORSPACE_REC709LUMA (entier)
imagick::COLORSPACE_LOG (entier)
imagick::COLORSPACE_CMY (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
Constantes de méthode de pixel virtuel

imagick::VIRTUALPIXELMETHOD_UNDEFINED (entier)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (entier)
imagick::VIRTUALPIXELMETHOD_CONSTANT (entier)
imagick::VIRTUALPIXELMETHOD_EDGE (entier)
imagick::VIRTUALPIXELMETHOD_MIRROR (entier)
imagick::VIRTUALPIXELMETHOD_TILE (entier)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (entier)
imagick::VIRTUALPIXELMETHOD_MASK (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_BLACK (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_GRAY (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_WHITE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.3 ou supérieur.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.3 ou supérieur.
Constantes de prévisualisation

imagick::PREVIEW_UNDEFINED (entier)
imagick::PREVIEW_ROTATE (entier)
imagick::PREVIEW_SHEAR (entier)
imagick::PREVIEW_ROLL (entier)
imagick::PREVIEW_HUE (entier)
imagick::PREVIEW_SATURATION (entier)
imagick::PREVIEW_BRIGHTNESS (entier)
imagick::PREVIEW_GAMMA (entier)
imagick::PREVIEW_SPIFF (entier)
imagick::PREVIEW_DULL (entier)
imagick::PREVIEW_GRAYSCALE (entier)
imagick::PREVIEW_QUANTIZE (entier)
imagick::PREVIEW_DESPECKLE (entier)
imagick::PREVIEW_REDUCENOISE (entier)
imagick::PREVIEW_ADDNOISE (entier)
imagick::PREVIEW_SHARPEN (entier)
imagick::PREVIEW_BLUR (entier)
imagick::PREVIEW_THRESHOLD (entier)
imagick::PREVIEW_EDGEDETECT (entier)
imagick::PREVIEW_SPREAD (entier)
imagick::PREVIEW_SOLARIZE (entier)
imagick::PREVIEW_SHADE (entier)
imagick::PREVIEW_RAISE (entier)
imagick::PREVIEW_SEGMENT (entier)
imagick::PREVIEW_SWIRL (entier)
imagick::PREVIEW_IMPLODE (entier)
imagick::PREVIEW_WAVE (entier)
imagick::PREVIEW_OILPAINT (entier)
imagick::PREVIEW_CHARCOALDRAWING (entier)
imagick::PREVIEW_JPEG (entier)
Constantes de rendu

imagick::RENDERINGINTENT_UNDEFINED (entier)
imagick::RENDERINGINTENT_SATURATION (entier)
imagick::RENDERINGINTENT_PERCEPTUAL (entier)
imagick::RENDERINGINTENT_ABSOLUTE (entier)
imagick::RENDERINGINTENT_RELATIVE (entier)
Constantes d'entrelacement

imagick::INTERLACE_UNDEFINED (entier)
imagick::INTERLACE_NO (entier)
imagick::INTERLACE_LINE (entier)
imagick::INTERLACE_PLANE (entier)
imagick::INTERLACE_PARTITION (entier)
imagick::INTERLACE_GIF (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.4 ou supérieur.
imagick::INTERLACE_JPEG (entier)
imagick::INTERLACE_PNG (entier)
Constantes de remplissage

imagick::FILLRULE_UNDEFINED (entier)
imagick::FILLRULE_EVENODD (entier)
imagick::FILLRULE_NONZERO (entier)
Constantes de chemin de dessin

imagick::PATHUNITS_UNDEFINED (entier)
imagick::PATHUNITS_USERSPACE (entier)
imagick::PATHUNITS_USERSPACEONUSE (entier)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (entier)
Constantes de bout de lignes

imagick::LINECAP_UNDEFINED (entier)
imagick::LINECAP_BUTT (entier)
imagick::LINECAP_ROUND (entier)
imagick::LINECAP_SQUARE (entier)
Constantes de jointures de lignes

imagick::LINEJOIN_UNDEFINED (entier)
imagick::LINEJOIN_MITER (entier)
imagick::LINEJOIN_ROUND (entier)
imagick::LINEJOIN_BEVEL (entier)
Constantes de type de ressource

imagick::RESOURCETYPE_UNDEFINED (entier)
imagick::RESOURCETYPE_AREA (entier)
imagick::RESOURCETYPE_DISK (entier)
imagick::RESOURCETYPE_FILE (entier)
imagick::RESOURCETYPE_MAP (entier)
imagick::RESOURCETYPE_MEMORY (entier)
Constantes de méthode de calque

imagick::LAYERMETHOD_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COALESCE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPAREANY (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPARECLEAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPAREOVERLAY (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_DISPOSE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZEPLUS (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZETRANS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_REMOVEDUPS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_REMOVEZERO (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_COMPOSITE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_MERGE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
imagick::LAYERMETHOD_FLATTEN (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
imagick::LAYERMETHOD_MOSAIC (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
Constantes d'orientation

imagick::ORIENTATION_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_TOPLEFT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_TOPRIGHT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_BOTTOMRIGHT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_BOTTOMLEFT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_LEFTTOP (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_RIGHTTOP (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_RIGHTBOTTOM (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_LEFTBOTTOM (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
Constantes de distorsion

imagick::DISTORTION_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_AFFINE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_AFFINEPROJECTION (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_ARC (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_BILINEAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_PERSPECTIVE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_PERSPECTIVEPROJECTION (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_SCALEROTATETRANSLATE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_POLYNOMIAL (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_POLAR (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_DEPOLAR (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_BARREL (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_BARRELINVERSE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_SHEPARDS (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_SENTINEL (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
Constantes ALPHACHANNEL

imagick::ALPHACHANNEL_ACTIVATE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_DEACTIVATE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_RESET (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_SET (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_UNDEFINED (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_COPY (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_EXTRACT (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_OPAQUE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_SHAPE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_TRANSPARENT (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
Constantes SPARSECOLORMETHOD

imagick::SPARSECOLORMETHOD_UNDEFINED (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_BILINEAR (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_SPEPARDS (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_VORONOI (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
Constantes FUNCTION

imagick::FUNCTION_UNDEFINED (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
imagick::FUNCTION_POLYNOMIAL (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
imagick::FUNCTION_SINUSOID (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
Constantes INTERPOLATE

imagick::INTERPOLATE_UNDEFINED (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_AVERAGE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_BICUBIC (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_BILINEAR (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_FILTER (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_INTEGER (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_MESH (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_NEARESTNEIGHBOR (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_SPLINE (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.4 ou supérieur.
Constantes DITHERMETHOD

imagick::DITHERMETHOD_UNDEFINED (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_NO (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_RIEMERSMA (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_FLOYDSTEINBERG (integer)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.


Exemples

Sommaire


Exemples

Imagick rend la manipulation des images via PHP extrêmement facile grâce à une interface orientée objet. Voici un exemple rapide illustrant la création d'une miniature :

Exemple #1 Création d'une miniature avec Imagick

<?php

header
('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// Si 0 est fourni comme paramètre de hauteur ou de largeur,
// les proportions seront conservées
$image->thumbnailImage(1000);

echo 
$image;

?>

En utilisant SPL ou tout autre fonctionnalité orientée objet supportée par Imagick, il devient simple de redimensionner tous les fichiers d'un dossier (utile pour des scripts batch redimensionnant des images issues d'un appareil photo numérique afin de les rendre lisibles sur le web). Voici un exemple de redimensionnement de toutes les images JPG d'un dossier, tout en conservant les métadonnées :

Exemple #2 Création de miniature de toutes les images JPG d'un dossier

<?php

$images 
= new Imagick(glob('images/*.JPG'));

foreach(
$images as $image) {

    
// On fournit 0 en guise de paramètre afin de conserver les proportions
    
$image->thumbnailImage(1024,0);

}

$images->writeImages();

?>

Voici un exemple permettant de créer le reflet d'une image. Ce reflet est créé en retournant l'image et en y ajoutant un dégradé. Ensuite, l'image original et son reflet sont ajoutés dans une nouvelle image.

Exemple #3 Création d'un reflet sur une image

<?php
/* Lecture de l'image */
$im = new Imagick("test.png");

/* Création d'une miniature de l'image */
$im->thumbnailImage(200null);

/* Création d'une bordure */
$im->borderImage(new ImagickPixel("white"), 55);

/* Clône l'image et on la retourne */
$reflection $im->clone();
$reflection->flipImage();

/* Création du dégradé. Il sera ajouté à l'image retournée */
$gradient = new Imagick();

/* Le dégradé doit être assez large pour l'image et ses bordures */
$gradient->newPseudoImage($reflection->getImageWidth() + 10$reflection->getImageHeight() + 10"gradient:transparent-black");

/* Ajout du dégradé sur l'image retournée */
$reflection->compositeImage($gradientimagick::COMPOSITE_OVER00);

/* Ajout d'un peu d'opacité. Nécessite ImageMagick 6.2.9 ou supérieur */
$reflection->setImageOpacity0.3 );

/* Création d'une image vide */
$canvas = new Imagick();

/* L'image vide doit être assez large pour contenir les 2 images */
$width $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width$height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Ajout de l'image originale et de l'image retournée dans notre nouvelle image */
$canvas->compositeImage($imimagick::COMPOSITE_OVER2010);
$canvas->compositeImage($reflectionimagick::COMPOSITE_OVER20$im->getImageHeight() + 10);

/* Affichage de l'image */
header("Content-Type: image/png");
echo 
$canvas;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Création d'un reflet sur une image

Voici un exemple montrant comment remplir un masque lors du dessin de l'image.

Exemple #4 Remplissage d'un texte avec un dégradé

<?php

/* Création d'un nouvel objet imagick */
$im = new Imagick();

/* Création d'une nouvelle image. Elle sera utilisée comme masque de remplissage */
$im->newPseudoImage(5050"gradient:red-black");

/* Création d'un nouvel objet imagickdraw */
$draw = new ImagickDraw();

/* On commence un nouveau masque nommé "gradient" */
$draw->pushPattern('gradient'005050);

/* Ajout du dégradé sur le masque */
$draw->composite(Imagick::COMPOSITE_OVER005050$im);

/* Fermeture du masque */
$draw->popPattern();

/* Utilisation du masque nommé "gradient" comme remplissage */
$draw->setFillPatternURL('#gradient');

/* Définition de la taille du texte à 52 */
$draw->setFontSize(52);

/* Ajout d'un texte */
$draw->annotation(2050"Bonjour le monde !");

/* Création d'un nouvel objet et d'une image blanche */
$canvas = new Imagick();
$canvas->newImage(35070"white");

/* Dessine le ImagickDraw sur la nouvelle image */
$canvas->drawImage($draw);

/* Une bordure noire d'un pixel autour de l'image */
$canvas->borderImage('black'11);

/* Définition du format à PNG */
$canvas->setImageFormat('png');

/* Affiche l'image */
header("Content-Type: image/png");
echo 
$canvas;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Remplissage d'un texte avec un dégradé

Exemple avec des images GIF animées

Exemple #5 Lit une image GIF et redimensionne toutes les frames

<?php

/* Crée un nouvel objet imagick et lit une image GIF */
$im = new Imagick("example.gif");

/* Redimensionne toutes les frames */
foreach ($im as $frame) {
    
/* 50x50 frames */
    
$frame->thumbnailImage(5050);

    
/* Définit le canevas virtuel à la bonne taille */
    
$frame->setImagePage(505000);
}

/* Notez l'utilisation de writeImages au lieu de writeImage */
$im->writeImages("example_small.gif"true);
?>




La classe Imagick

Synopsis de la classe

Imagick implements Iterator , Traversable {
bool adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = false ] )
bool adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool adaptiveThresholdImage ( int $width , int $height , int $offset )
bool addImage ( Imagick $source )
bool addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool animateImages ( string $x_server )
bool annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )
Imagick appendImages ( bool $stack )
Imagick averageImages ( void )
bool blackThresholdImage ( mixed $threshold )
bool blurImage ( float $radius , float $sigma [, int $channel ] )
bool borderImage ( mixed $bordercolor , int $width , int $height )
bool charcoalImage ( float $radius , float $sigma )
bool chopImage ( int $width , int $height , int $x , int $y )
bool clear ( void )
bool clipImage ( void )
bool clipPathImage ( string $pathname , bool $inside )
Imagick clone ( void )
bool clutImage ( Imagick $lookup_table [, float $channel = Imagick::CHANNEL_DEFAULT ] )
Imagick coalesceImages ( void )
bool colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )
bool colorizeImage ( mixed $colorize , mixed $opacity )
Imagick combineImages ( int $channelType )
bool commentImage ( string $comment )
array compareImageChannels ( Imagick $image , int $channelType , int $metricType )
Imagick compareImageLayers ( int $method )
array compareImages ( Imagick $compare , int $metric )
bool compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
Imagick __construct ([ mixed $files ] )
bool contrastImage ( bool $sharpen )
bool contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_ALL ] )
bool convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_ALL ] )
bool cropImage ( int $width , int $height , int $x , int $y )
bool cropThumbnailImage ( int $width , int $height )
Imagick current ( void )
bool cycleColormapImage ( int $displace )
bool decipherImage ( string $passphrase )
Imagick deconstructImages ( void )
bool deleteImageArtifact ( string $artifact )
public bool deskewImage ( float $threshold )
bool despeckleImage ( void )
bool destroy ( void )
bool displayImage ( string $servername )
bool displayImages ( string $servername )
bool distortImage ( int $method , array $arguments , bool $bestfit )
bool drawImage ( ImagickDraw $draw )
bool edgeImage ( float $radius )
bool embossImage ( float $radius , float $sigma )
bool encipherImage ( string $passphrase )
bool enhanceImage ( void )
bool equalizeImage ( void )
bool evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_ALL ] )
public array exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE )
bool extentImage ( int $width , int $height , int $x , int $y )
Imagick flattenImages ( void )
bool flipImage ( void )
bool floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool flopImage ( void )
bool frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )
public bool functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )
Imagick fxImage ( string $expression [, int $channel = Imagick::CHANNEL_ALL ] )
bool gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_ALL ] )
bool gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
int getColorspace ( void )
int getCompression ( void )
int getCompressionQuality ( void )
string getCopyright ( void )
string getFilename ( void )
string getFont ( void )
string getFormat ( void )
int getGravity ( void )
string getHomeURL ( void )
Imagick getImage ( void )
int getImageAlphaChannel ( void )
string getImageArtifact ( string $artifact )
ImagickPixel getImageBackgroundColor ( void )
string getImageBlob ( void )
array getImageBluePrimary ( void )
ImagickPixel getImageBorderColor ( void )
int getImageChannelDepth ( int $channel )
float getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )
float getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] )
array getImageChannelExtrema ( int $channel )
public array getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] )
array getImageChannelMean ( int $channel )
array getImageChannelRange ( int $channel )
Imagick getImageClipMask ( void )
ImagickPixel getImageColormapColor ( int $index )
int getImageColors ( void )
int getImageColorspace ( void )
int getImageCompose ( void )
int getImageCompression ( void )
int getCompressionQuality ( void )
int getImageDelay ( void )
int getImageDepth ( void )
int getImageDispose ( void )
float getImageDistortion ( MagickWand $reference , int $metric )
array getImageExtrema ( void )
string getImageFilename ( void )
string getImageFormat ( void )
float getImageGamma ( void )
array getImageGeometry ( void )
int getImageGravity ( void )
array getImageGreenPrimary ( void )
int getImageHeight ( void )
array getImageHistogram ( void )
int getImageIndex ( void )
int getImageIterations ( void )
int getImageLength ( void )
string getImageMagickLicense ( void )
bool getImageMatte ( void )
ImagickPixel getImageMatteColor ( void )
int getImageOrientation ( void )
array getImagePage ( void )
ImagickPixel getImagePixelColor ( int $x , int $y )
string getImageProfile ( string $name )
array getImageProfiles ([ string $pattern = "*" [, bool $only_names = true ]] )
array getImageProperties ([ string $pattern = "*" [, bool $only_names = true ]] )
string getImageProperty ( string $name )
array getImageRedPrimary ( void )
Imagick getImageRegion ( int $width , int $height , int $x , int $y )
array getImageResolution ( void )
string getImagesBlob ( void )
int getImageScene ( void )
string getImageSignature ( void )
int getImageSize ( void )
float getImageTotalInkDensity ( void )
int getImageType ( void )
int getImageUnits ( void )
array getImageWhitePoint ( void )
int getImageWidth ( void )
int getInterlaceScheme ( void )
int getIteratorIndex ( void )
int getNumberImages ( void )
string getOption ( string $key )
string getPackageName ( void )
array getPage ( void )
ImagickPixelIterator getPixelIterator ( void )
ImagickPixelIterator getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )
float getPointSize ( void )
array getQuantumDepth ( void )
array getQuantumRange ( void )
string getReleaseDate ( void )
int getResource ( int $type )
int getResourceLimit ( int $type )
array getSamplingFactors ( void )
array getSize ( void )
int getSizeOffset ( void )
array getVersion ( void )
public bool haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool hasNextImage ( void )
bool hasPreviousImage ( void )
array identifyImage ([ bool $appendRawOutput = false ] )
bool implodeImage ( float $radius )
public bool importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels )
bool labelImage ( string $label )
bool levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_ALL ] )
bool linearStretchImage ( float $blackPoint , float $whitePoint )
bool liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity )
bool magnifyImage ( void )
bool mapImage ( Imagick $map , bool $dither )
bool matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )
bool medianFilterImage ( float $radius )
bool mergeImageLayers ( int $layer_method )
bool minifyImage ( void )
bool modulateImage ( float $brightness , float $saturation , float $hue )
Imagick montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )
Imagick morphImages ( int $number_frames )
Imagick mosaicImages ( void )
bool motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_ALL ] )
bool newImage ( int $cols , int $rows , mixed $background [, string $format ] )
bool newPseudoImage ( int $columns , int $rows , string $pseudoString )
bool nextImage ( void )
bool normalizeImage ([ int $channel = Imagick::CHANNEL_ALL ] )
bool oilPaintImage ( float $radius )
bool opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool optimizeImageLayers ( void )
bool orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintTransparentImage ( mixed $target , float $alpha , float $fuzz )
bool pingImage ( string $filename )
bool pingImageBlob ( string $image )
bool pingImageFile ( resource $filehandle [, string $fileName ] )
bool polaroidImage ( ImagickDraw $properties , float $angle )
bool posterizeImage ( int $levels , bool $dither )
bool previewImages ( int $preview )
bool previousImage ( void )
bool profileImage ( string $name , string $profile )
bool quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
bool quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
array queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )
array queryFonts ([ string $pattern = "*" ] )
array queryFormats ([ string $pattern = "*" ] )
bool radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_ALL ] )
bool raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
bool randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_ALL ] )
bool readImage ( string $filename )
bool readImageBlob ( string $image [, string $filename ] )
bool readImageFile ( resource $filehandle [, string $fileName = null ] )
bool recolorImage ( array $matrix )
bool reduceNoiseImage ( float $radius )
public bool remapImage ( Imagick $replacement , int $DITHER )
bool removeImage ( void )
string removeImageProfile ( string $name )
bool render ( void )
bool resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )
bool resetImagePage ( string $page )
bool resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ] )
bool rollImage ( int $x , int $y )
bool rotateImage ( mixed $background , float $degrees )
bool roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] )
bool sampleImage ( int $columns , int $rows )
bool scaleImage ( int $cols , int $rows [, bool $bestfit = false ] )
public bool segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = false ] )
bool separateImageChannel ( int $channel )
bool sepiaToneImage ( float $threshold )
bool setBackgroundColor ( mixed $background )
bool setColorspace ( int $COLORSPACE )
bool setCompression ( int $compression )
bool setCompressionQuality ( int $quality )
bool setFilename ( string $filename )
bool setFirstIterator ( void )
bool setFont ( string $font )
bool setFormat ( string $format )
bool setGravity ( int $gravity )
bool setImage ( Imagick $replace )
bool setImageAlphaChannel ( int $mode )
bool setImageArtifact ( string $artifact , string $value )
bool setImageBackgroundColor ( mixed $background )
bool setImageBias ( float $bias )
bool setImageBluePrimary ( float $x , float $y )
bool setImageBorderColor ( mixed $border )
bool setImageChannelDepth ( int $channel , int $depth )
bool setImageClipMask ( Imagick $clip_mask )
bool setImageColormapColor ( int $index , ImagickPixel $color )
bool setImageColorspace ( int $colorspace )
bool setImageCompose ( int $compose )
bool setImageCompression ( int $compression )
bool setImageCompressionQuality ( int $quality )
bool setImageDelay ( int $delay )
bool setImageDepth ( int $depth )
bool setImageDispose ( int $dispose )
bool setImageExtent ( int $columns , int $rows )
bool setImageFilename ( string $filename )
bool setImageFormat ( string $format )
bool setImageGamma ( float $gamma )
bool setImageGravity ( int $gravity )
bool setImageGreenPrimary ( float $x , float $y )
bool setImageIndex ( int $index )
bool setImageInterlaceScheme ( int $interlace_scheme )
bool setImageInterpolateMethod ( int $method )
bool setImageIterations ( int $iterations )
bool setImageMatte ( bool $matte )
bool setImageMatteColor ( mixed $matte )
bool setImageOpacity ( float $opacity )
bool setImageOrientation ( int $orientation )
bool setImagePage ( int $width , int $height , int $x , int $y )
bool setImageProfile ( string $name , string $profile )
bool setImageProperty ( string $name , string $value )
bool setImageRedPrimary ( float $x , float $y )
bool setImageRenderingIntent ( int $rendering_intent )
bool setImageResolution ( float $x_resolution , float $y_resolution )
bool setImageScene ( int $scene )
bool setImageTicksPerSecond ( int $ticks_per-second )
bool setImageType ( int $image_type )
bool setImageUnits ( int $units )
bool setImageVirtualPixelMethod ( int $method )
bool setImageWhitePoint ( float $x , float $y )
bool setInterlaceScheme ( int $interlace_scheme )
bool setIteratorIndex ( int $index )
bool setLastIterator ( void )
bool setOption ( string $key , string $value )
bool setPage ( int $width , int $height , int $x , int $y )
bool setPointSize ( float $point_size )
bool setResolution ( float $x_resolution , float $y_resolution )
bool setResourceLimit ( int $type , int $limit )
bool setSamplingFactors ( array $factors )
bool setSize ( int $columns , int $rows )
bool setSizeOffset ( int $columns , int $rows , int $offset )
bool setType ( int $image_type )
bool shadeImage ( bool $gray , float $azimuth , float $elevation )
bool shadowImage ( float $opacity , float $sigma , int $x , int $y )
bool sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
bool shaveImage ( int $columns , int $rows )
bool shearImage ( mixed $background , float $x_shear , float $y_shear )
bool sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_ALL ] )
bool sketchImage ( float $radius , float $sigma , float $angle )
bool solarizeImage ( int $threshold )
public bool sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool spliceImage ( int $width , int $height , int $x , int $y )
bool spreadImage ( float $radius )
Imagick steganoImage ( Imagick $watermark_wand , int $offset )
bool stereoImage ( Imagick $offset_wand )
bool stripImage ( void )
bool swirlImage ( float $degrees )
bool textureImage ( Imagick $texture_wand )
bool thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
bool thumbnailImage ( int $columns , int $rows [, bool $bestfit = false [, bool $fill = false ]] )
bool tintImage ( mixed $tint , mixed $opacity )
Imagick transformImage ( string $crop , string $geometry )
bool transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert )
bool transposeImage ( void )
bool transverseImage ( void )
bool trimImage ( float $fuzz )
bool uniqueImageColors ( void )
bool unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
bool valid ( void )
bool vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )
bool waveImage ( float $amplitude , float $length )
bool whiteThresholdImage ( mixed $threshold )
bool writeImage ([ string $filename ] )
bool writeImageFile ( resource $filehandle )
bool writeImages ( string $filename , bool $adjoin )
bool writeImagesFile ( resource $filehandle )
}

Méthodes Image et méthodes globales

La classe Imagick permet d'agir sur plusieurs images simultanément et ce, grâce à une pile interne. Il y a toujours un pointeur interne, pointant sur l'image courante. Quelques fonctions agissent sur toutes les images d'une classe Imagick, mais la plupart uniquement sur l'image courante au regard de cette pile. Tout comme les conversions, les noms des méthodes peuvent contenir le nom de l'image, relatant uniquement l'effet sur l'image de la pile.

Méthodes de la classe

Vu le nombre de méthodes, voici une liste les présentant de façon générale :

Méthodes de la classe
Effets sur l'image Méthodes de récupération Méthodes de définition Lecture/écriture de l'image Autres
Imagick::adaptiveBlurImage() Imagick::getCompression() Imagick::setBackgroundColor() Imagick::__construct() Imagick::clear()
Imagick::adaptiveResizeImage() Imagick::getFilename() Imagick::setCompressionQuality() Imagick::addImage() Imagick::clone()
Imagick::adaptiveSharpenImage() Imagick::getFormat() Imagick::setCompression() Imagick::appendImages() Imagick::current()
Imagick::adaptiveTresholdImage() Imagick::getImageBackgroundColor() Imagick::setFilename() Imagick::getFilename() Imagick::destroy()
Imagick::addNoiseImage() Imagick::getImageBlob() Imagick::getImagesBlob() Imagick::setFormat() Imagick::getFormat() Imagick::getCopyright()
Imagick::affinetransformimage() Imagick::getImageBluePrimary() Imagick::setImageBackgroundColor() Imagick::getImageFilename() Imagick::getHomeURL()
Imagick::annotateImage() Imagick::getImageBorderColor() Imagick::setFirstIterator() Imagick::getImageFormat() Imagick::commentImage()
Imagick::averageImages() Imagick::getImageChannelDepth() Imagick::setImageBias() Imagick::getImage() Imagick::getNumberImages()
Imagick::blackThresholdImage() Imagick::getImageChannelDistortion() Imagick::setImageBluePrimary() Imagick::setImageFilename() Imagick::getReleaseDate()
Imagick::blurImage() Imagick::getImageChannelExtrema() Imagick::setImageBorderColor() Imagick::setImageFormat() Imagick::getVersion()
Imagick::borderImage() Imagick::getImageChannelMean() Imagick::setImageChannelDepth() Imagick::readImageFile() Imagick::hasNextImage()
Imagick::charcoalImage() Imagick::getImageChannelStatistics() Imagick::setImageColormapColor() Imagick::readImage() Imagick::hasPreviousImage()
Imagick::chopImage() Imagick::getImageColormapColor() Imagick::setImageColorSpace() Imagick::writeImages() Imagick::labelImage()
Imagick::clipImage() Imagick::getImageColorspace() Imagick::setImageCompose() Imagick::writeImage() Imagick::newImage()
Imagick::clipPathImage() Imagick::getImageColors() Imagick::setImageCompression()   Imagick::newPseudoImage()
Imagick::coalesceImages() Imagick::getImageCompose() Imagick::setImageDelay()   Imagick::nextImage()
Imagick::colorFloodFillImage() Imagick::getImageDelay() Imagick::setImageDepth()   Imagick::pingImageBlob()
Imagick::colorizeImage() Imagick::getImageDepth() Imagick::setImageDispose()   Imagick::pingImageFile()
Imagick::combineImages() Imagick::getImageDispose() Imagick::setImageDispose()   Imagick::pingImage()
Imagick::compareImageChannels() Imagick::getImageDistortion() Imagick::setImageExtent()   Imagick::previousImage()
Imagick::compareImageLayers() Imagick::getImageExtrema() Imagick::setImageFilename()   Imagick::profileImage()
Imagick::compositeImage() Imagick::getImageFilename() Imagick::setImageFormat()   Imagick::queryFormats()
Imagick::contrastImage() Imagick::getImageFormat() Imagick::setImageGamma()   Imagick::removeImageProfile()
Imagick::constrastStretchImage() Imagick::getImageGamma() Imagick::setImageGreenPrimary()   Imagick::removeImage()
Imagick::convolveImage() Imagick::getImageGeometry() Imagick::setImageIndex()   Imagick::setFirstIterator()
Imagick::cropImage() Imagick::getImageGreenPrimary() Imagick::setImageInterpolateMethod()   Imagick::setImageIndex()
Imagick::cycleColormapImage() Imagick::getImageHeight() Imagick::setImageIterations()   Imagick::valid()
Imagick::deconstructImages() Imagick::getImageHistogram() Imagick::setImageMatteColor()    
Imagick::drawImage() Imagick::getImageIndex() Imagick::setImageMatte()    
Imagick::edgeImage() Imagick::getImageInterlaceScheme() Imagick::setImagePage()    
Imagick::embossImage() Imagick::getImageInterpolateMethod() Imagick::setImageProfile()    
Imagick::enhanceImage() Imagick::getImageIterations() Imagick::setImageProperty()    
Imagick::equalizeImage() Imagick::getImageMatteColor() Imagick::setImageRedPrimary()    
Imagick::evaluateImage() Imagick::getImageMatte() Imagick::setImageRenderingIntent()    
Imagick::flattenImages() Imagick::getImagePage() Imagick::setImageResolution()    
Imagick::flipImage() Imagick::getImagePixelColor() Imagick::setImageScene()    
Imagick::flopImage() Imagick::getImageProfile() Imagick::setImageTicksPerSecond()    
Imagick::imageImage() Imagick::getImageProperty() Imagick::setImageType()    
Imagick::fxImage() Imagick::getImageRedPrimary() Imagick::setImageUnits()    
Imagick::gammaImage() Imagick::getImageRegion() Imagick::setImageVirtualPixelMethod()    
Imagick::gaussianBlurImage() Imagick::getImageRenderingIntent() Imagick::setImageWhitepoint()    
Imagick::implodeImage() Imagick::getImageResolution() Imagick::setInterlaceScheme()    
Imagick::levelImage() Imagick::getImageScene() Imagick::setOption()    
Imagick::linearStretchImage() Imagick::getImageSignature() Imagick::setPage()    
Imagick::magnifyImage() Imagick::getImageTicksPerSecond() Imagick::setResolution()    
Imagick::matteFloodFilleImage() Imagick::getImageTotalInkDensity() Imagick::setResourceLimit()    
Imagick::medianFilterImage() Imagick::getImageType() Imagick::setSamplingFactors()    
Imagick::minifyImage() Imagick::getImageUnits() Imagick::setSizeOffset()    
Imagick::modulateImage() Imagick::getImageVirtualPixelMethod() Imagick::setSize()    
Imagick::montageImage() Imagick::getImageWhitepoint() Imagick::setType()    
Imagick::morphImages() Imagick::getImageWidth()      
Imagick::mosaicImages() Imagick::getImage()      
Imagick::motionBlurImage() Imagick::getInterlaceScheme()      
Imagick::negateImage() Imagick::getNumberImages()      
Imagick::normalizeImage() Imagick::getOption()      
Imagick::oilPaintImage() Imagick::getPackageName()      
Imagick::optimizeImageLayers() Imagick::getPage()      
Imagick::paintOpaqueImage() Imagick::getPixelIterator()      
Imagick::paintTransparentImage() Imagick::getPixelRegionIterator()      
Imagick::posterizeImage() Imagick::getQuantumDepth()      
Imagick::radialBlurImage() Imagick::getQuantumRange()      
Imagick::raiseImage() Imagick::getResourceLimit()      
Imagick::randomThresholdImage() Imagick::getResource()      
Imagick::reduceNoiseImage() Imagick::getSamplingFactors()      
Imagick::render() Imagick::getSizeOffset()      
Imagick::resampleImage() Imagick::getSize()      
Imagick::resizeImage() Imagick::identifyImage()      
Imagick::rollImage() Imagick::getImageSize()      
Imagick::rotateImage()        
Imagick::sampleImage()        
Imagick::scaleImage()        
Imagick::separateImageChannel()        
Imagick::sepiaToneImage()        
Imagick::shadeImage()        
Imagick::shadowImage()        
Imagick::sharpenImage()        
Imagick::shaveImage()        
Imagick::shearImage()        
Imagick::sigmoidalContrastImage()        
Imagick::sketchImage()        
Imagick::solarizeImage()        
Imagick::spliceImage()        
Imagick::spreadImage()        
Imagick::steganoImage()        
Imagick::stereoImage()        
Imagick::stripImage()        
Imagick::swirlImage()        
Imagick::textureImage()        
Imagick::thresholdImage()        
Imagick::thumbnailImage()        
Imagick::tintImage()        
Imagick::transverseImage()        
Imagick::trimImage()        
Imagick::uniqueImageColors()        
Imagick::unsharpMaskImage()        
Imagick::vignetteImage()        
Imagick::waveImage()        
Imagick::whiteThresholdImage()        

Imagick::adaptiveBlurImage

(PECL imagick 2.0.0)

Imagick::adaptiveBlurImageAjout un flou adaptatif à l'image

Description

bool Imagick::adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Ajout un flou adaptatif à l'image. L'intensité du flou est diminué aux bords de l'image, mais uniforme au centre. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le centre. Avec une valeur de 0 et le rayon sera choisi automatiquement.

sigma

La déviation standard de la gaussienne, en pixel.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::adaptiveBlurImage()

Flou adaptative d'une image, puis affichage au navigateur.

<?php

header
('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->adaptiveBlurImage(5,3);
echo 
$image;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Utilisation de Imagick::adaptiveBlurImage()

Voir aussi



Imagick::adaptiveResizeImage

(PECL imagick 2.0.0)

Imagick::adaptiveResizeImageRedimensionne adaptativement une image par triangulation

Description

bool Imagick::adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = false ] )

Redimensionne une image adaptativement par triangulation. Cette fonction évite les effets de flou dans les images à contraste fort. Elle fonctionne au mieux avec des images qu'il faut réduire légèrement à une taille Web standard; ne fonctionne pas toujours quand il faut réduire une grosse image à une miniature. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

columns

Le nombre de colonnes dans l'image cible.

rows

Le nombre de lignes dans l'image cible.

bestfit

Indique s'il faut conserver l'image dans le rectangle de délimitation.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Ajout d'un paramètre optionnel de fit.
2.1.0 Cette méthode supporte maintenant la mise à l'échelle proportionnelle. Utilisez la valeur zéro comme paramètre pour une mise à l'échelle proportionnelle.

Exemples

Exemple #1 Exemple avec Imagick::adaptiveResizeImage()

Redimensionne un image à une taille standard pour le Web. Cette méthode fonctionne au mieux lorsqu'il faut redimensionner à une taille légèrement inférieur à l'image précédente.

<?php
header
('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo 
$image;
?>

Voir aussi



Imagick::adaptiveSharpenImage

(PECL imagick 2.0.0)

Imagick::adaptiveSharpenImageAugmente le contraste de l'image

Description

bool Imagick::adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Augment le contraste adaptativement, en l'augmentant au niveau des bords, et en le diminuant dans le coeur. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre. Utilisez 0 pour l'auto-sélection.

sigma

La déviation standard de la gaussienne, en pixel.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::adaptiveSharpenImage()

Augmente le contraste de l'image d'un rayon de 2 et un sigma de 1

<?php
try {
    
$image = new Imagick('image.png');
    
$image->adaptiveSharpenImage(2,1);
} catch(
ImagickException $e) {
    echo 
'Erreur : ' $e->getMessage();
    die();
}
header('Content-type: image/png');
echo 
$image;
?>

Voir aussi



Imagick::adaptiveThresholdImage

(PECL imagick 2.0.0)

Imagick::adaptiveThresholdImageSélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité

Description

bool Imagick::adaptiveThresholdImage ( int $width , int $height , int $offset )

Sélectionne le niveau individuel de chaque pixel, en se basant sur un intervalle d'intensité, dans le voisinage. Cela permet d'applique une fonction de seuil à une image dont l'histogramme ne contient pas de pic distinct.

Liste de paramètres

width

La largeur du voisinage.

height

La hauteur du voisinage.

offset

La moyenne de la position.

Valeurs de retour

Returns TRUE on success.



Imagick::addImage

(PECL imagick 2.0.0)

Imagick::addImageAjoute une nouvelle image à la liste d'image Imagick

Description

bool Imagick::addImage ( Imagick $source )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute une nouvelle image à la liste d'image Imagick, à partir de la position courante de l'objet source. Après cette opération, l'itérateur est placé à la fin de la liste.

Liste de paramètres

source

L'objet source Imagick.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::addNoiseImage

(PECL imagick 2.0.0)

Imagick::addNoiseImageAjoute un bruit blanc à une image

Description

bool Imagick::addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un bruit blanc à une image.

Liste de paramètres

noise_type

Le type de bruit, dans la liste des constantes de bruit.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.



Imagick::affineTransformImage

(PECL imagick 2.0.0)

Imagick::affineTransformImageTransforme une image

Description

bool Imagick::affineTransformImage ( ImagickDraw $matrix )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Transforme une image, à l'aide d'une matrice affine.

Liste de paramètres

matrix

La matrice affine.

Valeurs de retour

Returns TRUE on success.



Imagick::animateImages

(No version information available, might only be in SVN)

Imagick::animateImagesAnime une ou plusieurs images

Description

bool Imagick::animateImages ( string $x_server )

Cette méthode anime l'image sur un serveur X local ou distant. Cette méthode n'est pas disponible sur Windows. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

x_server

Adresse du serveur X.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::annotateImage

(PECL imagick 2.0.0)

Imagick::annotateImageAnnote une image avec un texte

Description

bool Imagick::annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )

Annote une image avec un texte.

Liste de paramètres

draw_settings

L'objet ImagickDraw qui contient les directives pour dessiner le texte

x

La position horizontale du texte, en pixel depuis la gauche du texte

y

La position verticale du texte, en pixel depuis la ligne de base du texte

angle

L'angle auquel écrire le texte

text

La chaîne à dessiner

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::annotateImage()

Annote un texte dans une image vide

<?php
/* Création de quelques objets */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel'gray' );

/* Nouvelle image */
$image->newImage(80075$pixel);

/* Texte noir */
$pixel->setFillColor('black');

/* Propriétées du texte */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize30 );

/* Création du texte */
$image->annotateImage($draw10450'The quick brown fox jumps over the lazy dog');

/* Format de l'image */
$image->setImageFormat('png');

/* Affichage de l'image avec les entêtes */
header('Content-type: image/png');
echo 
$image;

?>

Voir aussi



Imagick::appendImages

(PECL imagick 2.0.0)

Imagick::appendImagesAjoute un jeu d'images

Description

Imagick Imagick::appendImages ( bool $stack )

Ajoute un jeu d'images dans une image plus large.

Liste de paramètres

stack

La direction de la pile (du haut vers le bas, ou bien le bas vers le haut).

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès. Émet une exception ImagickException en cas d'échec.

Exemples

Exemple #1 Exemple avec Imagick::appendImages()

<?php

/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Crée des images rouges, vertes et bleues */
$im->newImage(10050"red");
$im->newImage(10050"green");
$im->newImage(10050"blue");

/* Ajoute les images dans une autre */
$im->resetIterator();
$combined $im->appendImages(true);

/* Affiche l'image */
$combined->setImageFormat("png");
header("Content-Type: image/png");
echo 
$combined;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Imagick::appendImages()



Imagick::averageImages

(PECL imagick 2.0.0)

Imagick::averageImagesMoyenne d'un jeu d'images

Description

Imagick Imagick::averageImages ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Fait la moyenne d'un jeu d'images.

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::blackThresholdImage

(PECL imagick 2.0.0)

Imagick::blackThresholdImageForce tous les pixels au-delà d'un seuil à noir

Description

bool Imagick::blackThresholdImage ( mixed $threshold )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Équivalent de la fonction Imagick::thresholdImage(), mais force tous les pixels au-delà du seuil threshold en noir, et laisse les autres pixels inchangés.

Liste de paramètres

threshold

Le seuil en dessous duquel tout doit devenir noir

Valeurs de retour

Returns TRUE on success.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::blurImage

(PECL imagick 2.0.0)

Imagick::blurImageAjoute un filtre de flou à une image

Description

bool Imagick::blurImage ( float $radius , float $sigma [, int $channel ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un filtre de flou à une image. Le troisième paramètre channel, optionnel, ajoute le flou à un canal particulier.

Liste de paramètres

radius

Le rayon du flou

sigma

La déviation standard

channel

La constante de type de canal. Si elle n'est pas fournie, tous les canaux sont utilisés.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::blurImage()

Ajoute du flou à une image, puis affiche dans le navigateur.

<?php

header
('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo 
$image;

?>

Voir aussi



Imagick::borderImage

(PECL imagick 2.0.0)

Imagick::borderImageEncadre une image avec un bord

Description

bool Imagick::borderImage ( mixed $bordercolor , int $width , int $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Encadre une image avec un bord de couleur, défini par l'attribut bordercolor d'un objet ImagickPixel.

Liste de paramètres

bordercolor

Objet ImagickPixel ou une chaîne contenant la couleur du bord

width

La largeur du bord

height

La hauteur du bord

Valeurs de retour

Returns TRUE on success.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::charcoalImage

(PECL imagick 2.0.0)

Imagick::charcoalImageSimule un dessin au fusain

Description

bool Imagick::charcoalImage ( float $radius , float $sigma )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Simule un dessin au fusain

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre

sigma

La déviation standard de la gaussienne, en pixel

Valeurs de retour

Returns TRUE on success.



Imagick::chopImage

(PECL imagick 2.0.0)

Imagick::chopImageSupprime une région d'une image et retaille

Description

bool Imagick::chopImage ( int $width , int $height , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime une région d'une image et retaille et déplace le reste de l'image pour occuper la portion coupée.

Liste de paramètres

width

La largeur de la région à retirer

height

La hauteur de la région à retirer

x

L'abscisse de la région retirée

y

L'ordonnée de la région retirée

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::chopImage()

Exemple avec Imagick::chopImage

<?php
/* Crée un objet */
$image = new Imagick();
$pixel = new ImagickPixel'gray' );

/* Nouvelle image */
$image->newImage(400200$pixel);

/* Découpe l'image */
$image->chopImage(20020000);

/* Donne un format à l'image */
$image->setImageFormat('png');

/* Envoie l'image */
header('Content-type: image/png');
echo 
$image;

?>

Voir aussi



Imagick::clear

(PECL imagick 2.0.0)

Imagick::clearLibère toutes les ressources associées à un objet Imagick

Description

bool Imagick::clear ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Libère toutes les ressources associées à un objet Imagick.

Valeurs de retour

Returns TRUE on success.



Imagick::clipImage

(PECL imagick 2.0.0)

Imagick::clipImageS'aligne sur le premier chemin d'un profil 8BIM

Description

bool Imagick::clipImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

S'aligne sur le premier chemin d'un profil 8BIM, si présent.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::clipPathImage

(PECL imagick 2.0.0)

Imagick::clipPathImageSuit le chemin d'un profil 8BIM

Description

bool Imagick::clipPathImage ( string $pathname , bool $inside )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Suit le chemin d'un profil 8BIM, s'il est présent. Les opérations suivantes auront lieux dans ce chemin. Cela peut être un nombre, s'il est précédé par #, pour utiliser un chemin numéroté, e.g., "#1" pour utiliser le premier chemin.

Liste de paramètres

pathname

Le nom du chemin

inside

Si TRUE les prochaines opérations auront lieu dans le chemin. Sinon, les prochaines opérations auront lieux hors du chemin.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::clone

(PECL imagick 2.0.0)

Imagick::cloneFait une copie exacte d'un objet Imagick

Description

Imagick Imagick::clone ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Fait une copie exacte d'un objet Imagick.

Valeurs de retour

Aucune valeur n'est retournée.



Imagick::clutImage

(PECL imagick 2.0.0)

Imagick::clutImageRemplace les couleurs d'une image

Description

bool Imagick::clutImage ( Imagick $lookup_table [, float $channel = Imagick::CHANNEL_DEFAULT ] )

Remplace les couleurs dans l'image à l'aide d'une table de correspondance. Un second paramètre optionnel remplace les couleurs dans un canal particulier. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

lookup_table

Un objet Imagick contenant la table de correspondance

channel

La constante de type de canal. S'il n'est pas fourni, les canaux par défaut sont utilisés.

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::clutImage()

Remplace les couleurs dans une image à partir d'une table de correspondance

<?php
$image 
= new Imagick('test.jpg');
$clut = new Imagick();
$clut->newImage(11, new ImagickPixel('black'));
$image->clutImage($clut);
$image->writeImage('test_out.jpg');
?>

Voir aussi



Imagick::coalesceImages

(PECL imagick 2.0.0)

Imagick::coalesceImagesCompose un jeu d'images

Description

Imagick Imagick::coalesceImages ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compose un jeu d'image en respectant toutes les positions et les méthodes de dispositions. Les séquences d'animations GIF, MIFF, et MNG, commencent typiquement par une image une fond, puis toutes les images suivantes varient en taille et position. Retourne un nouvel objet Imagick où chaque image de la séquence est de la même taille que la première, et composée avec la suivante dans la séquence.

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImageChange la couleur d'un pixel

Description

bool Imagick::colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Change la couleur d'un pixel qui correspond à une cible, et ses voisins immédiats.

Liste de paramètres

fill

L'objet ImagickPixel contenant la couleur de remplissage

fuzz

La quantité de bruit. Par exemple, un bruit de 10 et la couleur rouge à l'intensité de 100 et 102, respectivement, sont maintenant interprété comme la même couleur, dans le cadre de ce remplissage.

bordercolor

L'objet ImagickPixel contenant la couleur de frontière

x

L'abscisse de début de remplissage

y

L'ordonnée de début de remplissage

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet maintenant à une chaîne représentant la couleur comme premier argument et troisième paramètre. Les versions précédentes n'autorisaient que les objets ImagickPixel.



Imagick::colorizeImage

(PECL imagick 2.0.0)

Imagick::colorizeImageMélange la couleur de remplissage avec l'image

Description

bool Imagick::colorizeImage ( mixed $colorize , mixed $opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Mélange la couleur de remplissage avec l'image.

Liste de paramètres

colorize

L'objet ImagickPixel ou une chaîne contenant la couleur de colorisation

opacity

L'objet ImagickPixel ou un nombre décimal contenant la valeur de l'opacité. 1.0 est totalement opaque, et 0.0 est totalement transparent.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Maintenant, permet à une chaîne représentant la couleur comme premier argument et un décimal représentant l'opacité comme second paramètre. Les version précédentes ne permettait que l'utilisation d'objet ImagickPixel.



Imagick::combineImages

(PECL imagick 2.0.0)

Imagick::combineImagesCombine plusieurs images en une seule

Description

Imagick Imagick::combineImages ( int $channelType )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Combine une ou plusieurs images en une seule. Les niveaux de gris des pixels de chaque images en séquence sont assignés en ordre à des canaux spécifiés de l'image combiné. L'ordre typique serait image 1 => Rouge, 2 => Vert, 3 => Bleu, etc.

Liste de paramètres

channelType

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::commentImage

(PECL imagick 2.0.0)

Imagick::commentImageAjoute un commentaire à une image

Description

bool Imagick::commentImage ( string $comment )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un commentaire à une image.

Liste de paramètres

comment

Le commentaire à ajouter.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::commentImage()

Ajout d'un commentaire d'image et lecture du commentaire

<?php

/* Crée un nouvel objet Imagick */
$im = new imagick();

/* Création d'une image vide */
$im->newImage(100100, new ImagickPixel("red"));

/* Ajoute un commentaire à une image */
$im->commentImage("Bonjour le monde!");

/* Affichage du commentaire */
echo $im->getImageProperty("commentaire");

?>



Imagick::compareImageChannels

(PECL imagick 2.0.0)

Imagick::compareImageChannelsRetourne la différence entre plusieurs images

Description

array Imagick::compareImageChannels ( Imagick $image , int $channelType , int $metricType )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compare une ou plusieurs images et retourne la différence.

Liste de paramètres

image

un objet Imagick contenant l'image à comparer

channelType

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

metricType

Une des constantes de type de métrique.

Valeurs de retour

Un tableau contenant new_wand et distortion.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::compareImageLayers

(PECL imagick 2.0.0)

Imagick::compareImageLayersRetourne la région d'encadrement maximale entre deux images

Description

Imagick Imagick::compareImageLayers ( int $method )

Compare chaque image avec la suivante, dans la séquence, et retourne la région d'encadrement maximale de chaque pixel différent entre les images. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

method

Une des constantes de méthode de couche.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::compareImageLayers()

Comparaison de deux calques d'image

<?php
/* création d'un nouvel objet imagick */
$im = new Imagick("test.gif");

/* optimisation des calques */
$result $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* Travail sur le résultat */
?>

Voir aussi



Imagick::compareImages

(PECL imagick 2.0.0)

Imagick::compareImagesCompare une image avec une image reconstituée

Description

array Imagick::compareImages ( Imagick $compare , int $metric )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un tableau contenant l'image reconstituée et les différences entre les images.

Liste de paramètres

compare

Une image à comparer.

metric

Une constante de type de métrique. Voyez la liste des constantes de métriques.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::compareImages()

Compare des images et affiche l'image reconstituée

<?php

$image1 
= new imagick("image1.png");
$image2 = new imagick("image2.png");

$result $image1->compareImages($image2Imagick::METRIC_MEANSQUAREERROR);
$result[0]->setImageFormat("png");

header("Content-Type: image/png");
echo 
$result[0];

?>



Imagick::compositeImage

(PECL imagick 2.0.0)

Imagick::compositeImageCompose une image avec une autre

Description

bool Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compose une image dans une autre, à la position donné.

Liste de paramètres

composite_object

Objet Imagick qui contient l'image composite

compose

L'opérateur de composition. Voyez la liste des constantes d'opérateurs de composition

x

La colonne de position dans l'image composée

y

La ligne de position dans l'image composée

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.



Imagick::__construct

(PECL imagick 2.0.0)

Imagick::__constructLe constructeur Imagick

Description

Imagick Imagick::__construct ([ mixed $files ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Le constructeur Imagick

Liste de paramètres

files

Le chemin jusqu'à l'image à charger, ou un tableau de chemins.

Valeurs de retour

Retourne un nouvel objet Imagick, en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::contrastImage

(PECL imagick 2.0.0)

Imagick::contrastImageChange le contraste de l'image

Description

bool Imagick::contrastImage ( bool $sharpen )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Améliore l'intensité des différences entre les éléments clairs et sombres de l'image. Donnez une valeur différente de zéro si vous voulez améliorer le contraste, et sinon, il sera réduit.

Liste de paramètres

sharpen

La valeur de contraste.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::contrastStretchImage

(PECL imagick 2.0.0)

Imagick::contrastStretchImageAméliore le contraste d'une image

Description

bool Imagick::contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_ALL ] )

Améliore le contraste d'une image en ajustant les couleurs des des pixels sur l'ensemble de la gamme des couleurs. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

black_point

Le point noir.

white_point

Le point blanc.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Par défaut, c'est Imagick::CHANNEL_ALL. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.



Imagick::convolveImage

(PECL imagick 2.0.0)

Imagick::convolveImageApplique un noyau de convolution à une image

Description

bool Imagick::convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique un noyau de convolution à une image.

Liste de paramètres

kernel

Le noyau de convolution

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::cropImage

(PECL imagick 2.0.0)

Imagick::cropImageExtrait une région d'une image

Description

bool Imagick::cropImage ( int $width , int $height , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Extrait une région d'une image.

Liste de paramètres

width

La largeur du retaillage

height

La hauteur du retaillage

x

L'abscisse, coordonnée X, de la région retaillée, coin haut gauche

y

L'ordonnée, coordonnée Y, de la région retaillée, coin haut gauche

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::cropThumbnailImage

(PECL imagick 2.0.0)

Imagick::cropThumbnailImageCrée une miniature par retaillage

Description

bool Imagick::cropThumbnailImage ( int $width , int $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une miniature de taille fixe, en réduisant sa taille de haut en bas, en recadrant l'image autour du centre.

Liste de paramètres

width

La largeur de la miniature

height

La hauteur de la miniature

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::current

(PECL imagick 2.0.0)

Imagick::currentRetourne une référence sur l'objet imagick courant

Description

Imagick Imagick::current ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une référence sur l'objet courant, à partir d'une référence de séquence.

Valeurs de retour

Retourne self en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::cycleColormapImage

(PECL imagick 2.0.0)

Imagick::cycleColormapImageDéplace la carte des couleurs d'une image

Description

bool Imagick::cycleColormapImage ( int $displace )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Déplace la carte de couleurs, d'un nombre donné de positions. Si vous faites tourner la cartes des couleurs plusieurs fois, vous pouvez produire des effets psychédéliques.

Liste de paramètres

displace

Le déplacement de la carte des couleurs.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::decipherImage

(No version information available, might only be in SVN)

Imagick::decipherImageDéchiffre une image

Description

bool Imagick::decipherImage ( string $passphrase )

Déchiffre une image. L'image doit être chiffré à l'aide de la fonction Imagick:: encipherImage () . Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.9 ou supérieur.

Liste de paramètres

passphrase

Le mot de passe.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::deconstructImages

(PECL imagick 2.0.0)

Imagick::deconstructImagesRetourne les différences de certains pixels entre deux images

Description

Imagick Imagick::deconstructImages ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compare chaque image avec la suivante dans la séquence, et retourne la région maximale d'encadrement des pixels différents qu'il découvre.

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::deleteImageArtifact

(No version information available, might only be in SVN)

Imagick::deleteImageArtifactSupprime l'artefact d'une image

Description

bool Imagick::deleteImageArtifact ( string $artifact )

Supprime un artefact associé à l'image. La différence entre les propriétés de l'image et les artefacts de l'image est que les propriétés sont publiques, alors que les artefacts sont privés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

artifact

Le nom de l'artefact.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi



Imagick::deskewImage

(No version information available, might only be in SVN)

Imagick::deskewImageSupprime le biais de l'image

Description

public bool Imagick::deskewImage ( float $threshold )

Cette méthode peut être utilisée pour supprimer le biais depuis, par exemple, les images scannées où le papier n'a pas été placé correctement sur la surface. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

threshold

Seuil de redressement.

Valeurs de retour



Imagick::despeckleImage

(PECL imagick 2.0.0)

Imagick::despeckleImageRéduit le bruit speckle d'une image

Description

bool Imagick::despeckleImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Réduit le bruit speckle d'une image, en préservant les bords de l'image original.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::destroy

(PECL imagick 2.0.0)

Imagick::destroyDétruit un objet Imagick

Description

bool Imagick::destroy ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Détruit l'objet Imagick et libère toutes les ressources associées.

Valeurs de retour

Returns TRUE on success.



Imagick::displayImage

(PECL imagick 2.0.0)

Imagick::displayImageAffiche une image

Description

bool Imagick::displayImage ( string $servername )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Cette méthode affiche une image sur un serveur X.

Liste de paramètres

servername

Le nom du serveur X

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::displayImages

(PECL imagick 2.0.0)

Imagick::displayImagesAffiche une image ou une séquence

Description

bool Imagick::displayImages ( string $servername )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Affiche une image ou une séquence sur un serveur X.

Liste de paramètres

servername

Le nom du serveur X

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::distortImage

(PECL imagick 2.0.1)

Imagick::distortImageDéforme une image avec différentes méthodes

Description

bool Imagick::distortImage ( int $method , array $arguments , bool $bestfit )

Déforme une image en utilisant différentes méthodes, en associant des couleurs de l'image source à celle d'une image de destination, généralement de la même taille, à moins que l'argument bestfit soit configuré à TRUE.

Si bestfit est activé, et que la déformation le permet, l'image de destination est ajusté pour s'assurer que toute l'image source va tenir dans l'image de destination, qui sera redimensionnée et repositionnée en fonction. De plus, dans de nombreux cas, la position virtuelle de l'image sera prise en compte dans l'association.

Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

method

La méthode de déformation de l'image. Voyez les constantes de déformation

arguments

Les arguments de cette méthode de déformation

bestfit

Tentative de redimensionnement de l'image de destination pour s'assurer de la taille

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::distortImage()

Déformation d'une image, et affichage sur le navigateur.

<?php
/* Crée un nouvel objet */
$im = new Imagick();

/* Crée un nouveau motif d'échiquier */
$im->newPseudoImage(100100"pattern:checkerboard");

/* Configure l'image en PNG */
$im->setImageFormat('png');

/* Remplit la nouvelle zone visible à transparent */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Active le mate */
$im->setImageMatte(true);

/* Contrôle les points de déformation */
$controlPoints = array( 1010
                        
105,

                        
10$im->getImageHeight() - 20,
                        
10$im->getImageHeight() - 5,

                        
$im->getImageWidth() - 1010,
                        
$im->getImageWidth() - 1020,

                        
$im->getImageWidth() - 10$im->getImageHeight() - 10,
                        
$im->getImageWidth() - 10$im->getImageHeight() - 30);

/* Effectue la déformation */                       
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE$controlPointstrue);

/* Envoie l'image */
header("Content-Type: image/png");
echo 
$im;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Utilisation de Imagick::distortImage()

Voir aussi



Imagick::drawImage

(PECL imagick 2.0.0)

Imagick::drawImageAffiche un objet ImagickDraw dans l'image courante

Description

bool Imagick::drawImage ( ImagickDraw $draw )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Affiche un objet ImagickDraw dans l'image courante.

Liste de paramètres

draw

Les opérations de dessins pour dessiner l'image.

Valeurs de retour

Returns TRUE on success.



Imagick::edgeImage

(PECL imagick 2.0.0)

Imagick::edgeImageRenforce les bords dans l'image

Description

bool Imagick::edgeImage ( float $radius )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Renforce les bords dans l'image, avec un filtre de convolution, pour un rayon donné. Avec un rayon de zéro, Imagick va choisir lui-même la valeur du rayon.

Liste de paramètres

radius

Le rayon de l'opération.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::embossImage

(PECL imagick 2.0.0)

Imagick::embossImageRetourne une image en niveau de gris, avec un effet 3D

Description

bool Imagick::embossImage ( float $radius , float $sigma )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une image en niveau de gris, avec un effet 3D. Une convolution d'image avec opérateur gaussien est appliqué, avec un rayon et une déviation standard donnée. Pour des résultats raisonnables, le rayon doit être plus grand que sigma (la déviation standard). Un rayon de zéro conduit à laisser Imagick choisir sa valeur.

Liste de paramètres

radius

Le rayon de l'effet

sigma

Le sigma de l'effet

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::encipherImage

(No version information available, might only be in SVN)

Imagick::encipherImageChiffre une image

Description

bool Imagick::encipherImage ( string $passphrase )

Convertie les pixels en pixels encryptés. L'image n'est plus lisible jusqu'à ce qu'elle ait été déchiffrée à l'aide Imagick::decipherImage() Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.9 ou supérieur.

Liste de paramètres

passphrase

Le mot de passe.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::enhanceImage

(PECL imagick 2.0.0)

Imagick::enhanceImageAméliore la qualité d'une image bruitée

Description

bool Imagick::enhanceImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Améliore la qualité d'une image bruitée avec un filtre numérique.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::equalizeImage

(PECL imagick 2.0.0)

Imagick::equalizeImageÉgalise l'histogramme d'une image

Description

bool Imagick::equalizeImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Égalise l'histogramme d'une image.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::evaluateImage

(PECL imagick 2.0.0)

Imagick::evaluateImageApplique une expression à une image

Description

bool Imagick::evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique une expression arithmétique, relationnelle ou logique à une image. Utilisez ces opérateurs pour éclaircir ou assombrir une image, pour augmenter ou réduire le contraste, ou encore, produire une image inversée.

Liste de paramètres

op

L'opérateur

constant

La valeur de l'opérateur

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::exportImagePixels

(No version information available, might only be in SVN)

Imagick::exportImagePixelsExporte les pixels bruts de l'image

Description

public array Imagick::exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE )

Exporte les pixels de l'image dans un tableau. La carte définit l'ordre d'exportation des pixels. La taille du tableau retourné correspond à width * height * strlen(map). Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.7 ou supérieur.

Liste de paramètres

x

Coordonnée en X de l'espace exporté.

y

Coordonnée en Y de l'espace exporté.

width

Largeur de l'espace exporté.

height

Hauteur de l'espace exporté.

map

Ordre des pixels exportés. Par exemple, "RGB". Les caractères valides pour la carte sont R, G, B, A, O, C, Y, M, K, I et P.

STORAGE

Référez-vous à la liste des constantes de type pixel

Exemples

Exemple #1 Exemple avec Imagick::exportImagePixels()

Exportation des pixels de l'image dans un tableau.

<?php

/* Crée un nouvel objet */
$im = new Imagick();

/* Crée une nouvelle image */
$im->newPseudoImage(00"magick:rose");

/* Exporte les pixels de l'image */
$pixels $im->exportImagePixels(101022"RGB"Imagick::PIXEL_CHAR);

/* Affichage */
var_dump($pixels);
?>

L'exemple ci-dessus va afficher :

array(12) {
  [0]=>
  int(72)
  [1]=>
  int(64)
  [2]=>
  int(57)
  [3]=>
  int(69)
  [4]=>
  int(59)
  [5]=>
  int(43)
  [6]=>
  int(124)
  [7]=>
  int(120)
  [8]=>
  int(-96)
  [9]=>
  int(91)
  [10]=>
  int(84)
  [11]=>
  int(111)
}

Valeurs de retour

Retourne un tableau contenant les valeurs des pixels.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::extentImage

(No version information available, might only be in SVN)

Imagick::extentImageDéfinit la taille de l'image

Description

bool Imagick::extentImage ( int $width , int $height , int $x , int $y )

Cette méthode est utile pour définir la taille de l'image. La méthode définit la taille de l'image et autorise la configuration des coordonnées x, y définissant le début du nouvel espace. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.1 ou supérieur.

Liste de paramètres

width

La nouvelle largeur.

height

La nouvelle hauteur.

x

La position en X pour la nouvelle taille.

y

La position en Y pour la nouvelle taille.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::flattenImages

(PECL imagick 2.0.0)

Imagick::flattenImagesFusionne une séquence d'images

Description

Imagick Imagick::flattenImages ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Fusionne une séquence d'images. Ceci est pratique pour combiner une série de couches Photoshop en une seule image.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::flipImage

(PECL imagick 2.0.0)

Imagick::flipImageCrée une image par miroir vertical

Description

bool Imagick::flipImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une image par miroir vertical, à l'aide d'une symétrie autour de l'axe des abscisses.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::floodFillPaintImage

(No version information available, might only be in SVN)

Imagick::floodFillPaintImageModifie la valeur de la couleur de chaque pixel correspondant à la cible

Description

bool Imagick::floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Modifie la valeur de la couleur de chaque pixel correspondant à la cible et qui se trouve dans le voisinage immédiat. Cette méthode est un remplacement de la méthode obsolète Imagick::paintFloodFillImage(). Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

fill

Objet ImagickPixel ou une chaîne contenant la couleur de remplissage.

fuzz

La quantité de poussière de papier. Par exemple, le fait de définir la poussière de papier à 10 et la couleur rouge à une intensité de 100 et de 102 ne sera pas interprété comme la même couleur.

target

Objet ImagickPixel ou une chaîne contenant la couleur cible à peindre.

x

Position de départ en X du pot de peinture.

y

Position de départ en Y du pot de peinture.

invert

Si vaut TRUE, peint chaque pixel qui ne correspond pas à la couleur cible.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::floodfillPaintImage()

<?php

/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Crée les images bleus, vertes et rouges */
$im->newImage(10050"red");
$im->newImage(10050"green");
$im->newImage(10050"blue");

/* Ajoute l'image dans une autre */
$im->resetIterator();
$combined $im->appendImages(true);

/* Sauvegarde de l'image intermédiaire pour comparaison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* Le pixel cible à peindre */
$x 1;
$y 1;

/* Récupère la couleur à utiliser pour peindre */
$target $combined->getImagePixelColor($x$y);

/* Peint le pixel à la position 1,1 en noir, ainsi que tous les pixels voisins
   qui correspondent à la couleur cible */
$combined->floodfillPaintImage("black"1$target$x$yfalse);

/* Sauvegarde le résultat */
$combined->writeImage("floodfillpaint_result.png");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Imagick::floodfillPaintImage()
Affichage de l'exemple : Imagick::floodfillPaintImage()



Imagick::flopImage

(PECL imagick 2.0.0)

Imagick::flopImageCrée une image par miroir horizontal

Description

bool Imagick::flopImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une image par miroir horizontal, à l'aide d'une symétrie autour de l'axe des ordonnées.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::frameImage

(PECL imagick 2.0.0)

Imagick::frameImageAjoute un bord 3D

Description

bool Imagick::frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un bord 3D. La largeur et la hauteur configurent la largeur et la hauteur de la bordure du cadre. Le chanfrein intérieur et extérieur indique la largeur de l'ombre interne et externe.

Liste de paramètres

matte_color

Un objet ImagickPixel ou une chaîne représentant la couleur

width

La largeur de la bordure

height

La hauteur de la bordure

inner_bevel

La largeur du chanfrein intérieur

outer_bevel

La largeur du chanfrein extérieur

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::functionImage

(No version information available, might only be in SVN)

Imagick::functionImageApplique une fonction sur l'image

Description

public bool Imagick::functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Applique une expression arithmétique, relationnelle ou logique à une image. Utilisez ces opérateurs pour créer une version plus claire ou plus sombre de l'image, pour augmenter ou diminuer le contraste de l'image ou pour renverser les couleurs (négative) de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.

Liste de paramètres

function

Référez-vous à la liste des constantes de fonction.

arguments

Tableau d'arguments à passer à la fonction.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::fxImage

(PECL imagick 2.0.0)

Imagick::fxImageÉvalue une expression pour chaque pixel d'une image

Description

Imagick Imagick::fxImage ( string $expression [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Évalue une expression pour chaque pixel d'une image. Consultez » The Fx Special Effects Image Operator pour plus de détails (en anglais).

Liste de paramètres

expression

L'expression.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::gammaImage

(PECL imagick 2.0.0)

Imagick::gammaImageApplique une correction gamma à l'image

Description

bool Imagick::gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique une correction gamma à l'image. La même image est vue sur différents écran vont avoir des différences de perceptions dans la représentation des intensités. Spécifiez des corrections gamma individuelles pour les différentes couleurs, ou bien ajustez les trois corrections gamma d'un seul coup. Les valeurs typiques vont de 0.8 à 2.3.

Liste de paramètres

gamma

La correction gamma.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::gaussianBlurImage

(PECL imagick 2.0.0)

Imagick::gaussianBlurImageAjoute du flou à image

Description

bool Imagick::gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute du flou à une image. Une convolution est appliquée avec un rayon et une déviation standard données. Pour des résultats raisonnables, il est recommandé d'utiliser une taille de rayon supérieure à sigma. Un rayon de zéro force la fonction à choisir les valeurs.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre.

sigma

La déviation standard de la gaussienne, en pixel.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getColorspace

(PECL imagick 0.9.10-0.9.9)

Imagick::getColorspaceRécupère l'espace de couleurs

Description

int Imagick::getColorspace ( void )

Récupère la valeur globale de l'espace de couleurs. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Valeurs de retour

Retourne un entier qui peut être comparé avec les constantes COLORSPACE.



Imagick::getCompression

(PECL imagick 2.0.0)

Imagick::getCompressionLit le type de compression

Description

int Imagick::getCompression ( void )

Lit le type de compression.

Valeurs de retour

Retourne la constante de compression.



Imagick::getCompressionQuality

(PECL imagick 2.0.0)

Imagick::getCompressionQualityLit la qualité de la compression

Description

int Imagick::getCompressionQuality ( void )

Lit la qualité de la compression.

Valeurs de retour

Retourne un entier décrivant la qualité de la compression.



Imagick::getCopyright

(PECL imagick 2.0.0)

Imagick::getCopyrightRetourne le copyright de l'API ImageMagick API

Description

string Imagick::getCopyright ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le copyright de l'API ImageMagick API.

Valeurs de retour

Retourne une chaîne, en cas de succès.



Imagick::getFilename

(PECL imagick 2.0.0)

Imagick::getFilenameLit le nom du fichier associé à une séquence

Description

string Imagick::getFilename ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le nom du fichier associé à une séquence.

Valeurs de retour

Retourne une chaîne en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::getFont

(PECL imagick 2.1.0)

Imagick::getFontRécupère la police de caractères

Description

string Imagick::getFont ( void )

Retourne la propriété de la police de caractères de l'objet. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Valeurs de retour

Retourne une chaîne de caractères contenant le nom de la police de caractères ou FALSE si la police n'est pas définie.

Voir aussi



Imagick::getFormat

(PECL imagick 2.0.0)

Imagick::getFormatRetourne le format de l'image Imagick

Description

string Imagick::getFormat ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le format de l'image Imagick.

Valeurs de retour

Retourne le format de l'image Imagick. Émet une exception ImagickException en cas d'échec.



Imagick::getGravity

(No version information available, might only be in SVN)

Imagick::getGravityRécupère la gravité

Description

int Imagick::getGravity ( void )

Récupère la propriété globale de la gravité pour l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Valeurs de retour

Retourne la propriété de gravité. Référez-vous à la liste des constantes de gravité.



Imagick::getHomeURL

(PECL imagick 2.0.0)

Imagick::getHomeURLRetourne l'URL de ImageMagick

Description

string Imagick::getHomeURL ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'URL de ImageMagick.

Valeurs de retour

Retourne l'URL de ImageMagick.



Imagick::getImage

(PECL imagick 2.0.0)

Imagick::getImageRetourne un nouvel objet Imagick

Description

Imagick Imagick::getImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un nouvel objet Imagick.

Valeurs de retour

Retourne un nouvel objet Imagick. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageAlphaChannel

(No version information available, might only be in SVN)

Imagick::getImageAlphaChannelRécupère le canal alpha de l'image

Description

int Imagick::getImageAlphaChannel ( void )

Récupère la valeur du canal alpha de l'image. La valeur retournée est une constante parmi les constantes de canal alpha. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Valeurs de retour

Retourne une constante définissant la valeur du canal alpha courant. Référez-vous à la liste des constantes de canal alpha.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageArtifact

(No version information available, might only be in SVN)

Imagick::getImageArtifactRécupère l'artefact de l'image

Description

string Imagick::getImageArtifact ( string $artifact )

Récupère l'artefact associé à l'image. La différence entre les propriétés de l'image et les artefacts de l'image est que les propriétés sont publiques, alors que les artefacts sont privés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

artifact

Le nom de l'artefact.

Valeurs de retour

Retourne la valeur de l'artefact en cas de succès. Émet une exception ImagickException en cas d'échec.

Voir aussi



Imagick::getImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::getImageBackgroundColorRetourne la couleur de fond

Description

ImagickPixel Imagick::getImageBackgroundColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur de fond.

Valeurs de retour

Retourne la couleur de fond sous forme d'objet ImagickPixel. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageBlob

(PECL imagick 2.0.0)

Imagick::getImageBlobRetourne la séquence d'images comme un blob

Description

string Imagick::getImageBlob ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Implémente un formatage directe en mémoire. Il retourne la séquence d'images sous forme de chaîne. Le format de l'image détermine le format du BLOB retourné (GIF, JPEG, PNG, etc.). Pour retourner un format différent, utilisez la fonction Imagick::setImageFormat().

Valeurs de retour

Retourne une chaîne contenant les images. Émet une exception ImagickException en cas d'échec.



Imagick::getImageBluePrimary

(PECL imagick 2.0.0)

Imagick::getImageBluePrimaryRetourne la chromacité de la couleur bleue

Description

array Imagick::getImageBluePrimary ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la chromacité de la couleur bleue. Retourne un tableau avec les clés "x" et "y".

Liste de paramètres

x

L'abscisse du point.

y

L'ordonnée du point.

Valeurs de retour

Retourne un tableau avec les clés "x" et "y", en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageBorderColor

(PECL imagick 2.0.0)

Imagick::getImageBorderColorRetourne la couleur de bordure de l'image

Description

ImagickPixel Imagick::getImageBorderColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur de bordure de l'image.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageChannelDepth

(PECL imagick 2.0.0)

Imagick::getImageChannelDepthLit la profondeur d'un des canaux de l'image

Description

int Imagick::getImageChannelDepth ( int $channel )

Lit la profondeur d'un des canaux de l'image.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.



Imagick::getImageChannelDistortion

(PECL imagick 2.0.0)

Imagick::getImageChannelDistortionCompare les canaux d'une image reconstituée

Description

float Imagick::getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compare un ou plusieurs canaux d'une image reconstituée et retourne la métrique de déformation demandée.

Liste de paramètres

reference

L'objet Imagick avec lequel se comparer.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

metric

Une des constantes de type de métrique.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageChannelDistortions

(No version information available, might only be in SVN)

Imagick::getImageChannelDistortionsRécupère les distorsions d'un canal

Description

float Imagick::getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Compare un ou plusieurs canaux d'une image avec une image reconstruite, et retourne les mesures de la distorsion spécifiée. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.

Liste de paramètres

reference

Objet Imagick contenant la référence de l'image.

metric

Référez-vous à la liste des constantes de type de mesures.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne un double, décrivant la distorsion du canal.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageChannelExtrema

(PECL imagick 2.0.0)

Imagick::getImageChannelExtremaLit les extrêmes pour les canaux de l'image

Description

array Imagick::getImageChannelExtrema ( int $channel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit les extrêmes pour l'un ou plusieurs canaux de l'image. La valeur retournée est un tableau associatif avec les clés "minima" et "maxima".

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageChannelKurtosis

(No version information available, might only be in SVN)

Imagick::getImageChannelKurtosisLe but de getImageChannelKurtosis

Description

public array Imagick::getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] )

Récupère le kurtosis et l'asymétrie d'un canal spécifique. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne un tableau avec les membres kurtosis et skewness.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageChannelMean

(PECL imagick 2.0.0)

Imagick::getImageChannelMeanLit la moyenne et la déviation standard

Description

array Imagick::getImageChannelMean ( int $channel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit la moyenne et la déviation standard d'un ou plusieurs des canaux de l'image. La valeur retournée est un tableau associatif avec les clés "mean" et "standardDeviation".

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageChannelRange

(PECL imagick 2.2.1)

Imagick::getImageChannelRangeRécupère l'intervalle du canal

Description

array Imagick::getImageChannelRange ( int $channel )

Récupère l'intervalle pour un ou plusieurs canaux de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne un tableau contenant les valeurs minimales et maximales du ou des canaux.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageChannelStatistics

(PECL imagick 2.0.0)

Imagick::getImageChannelStatisticsRetourne des statistiques sur chaque canal de l'image

Description

array Imagick::getImageChannelStatistics ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne des statistiques sur chaque canal de l'image. Les statistiques incluent la profondeur du canal, ses minima et maxima, la moyenne, et la déviation standard.

Valeurs de retour

Returns TRUE on success.



Imagick::getImageClipMask

(No version information available, might only be in SVN)

Imagick::getImageClipMaskRécupère le masque du clip de l'image

Description

Imagick Imagick::getImageClipMask ( void )

Retourne le masque du clip de l'image. Le masque du clip est un objet Imagick contenant le masque du clip. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Valeurs de retour

Retourne un objet Imagick contenant le masque du clip. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageColormapColor

(PECL imagick 2.0.0)

Imagick::getImageColormapColorRetourne la couleur à l'index de la carte de couleurs

Description

ImagickPixel Imagick::getImageColormapColor ( int $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur à l'index de la carte de couleurs.

Liste de paramètres

index

La position dans la carte des couleurs.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageColors

(PECL imagick 2.0.0)

Imagick::getImageColorsLit le nombre de couleurs uniques de l'image

Description

int Imagick::getImageColors ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le nombre de couleurs uniques de l'image.

Valeurs de retour

Returns TRUE on success.



Imagick::getImageColorspace

(PECL imagick 2.0.0)

Imagick::getImageColorspaceLit l'espace de couleurs de l'image

Description

int Imagick::getImageColorspace ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit l'espace de couleurs de l'image.

Valeurs de retour

Returns TRUE on success.



Imagick::getImageCompose

(PECL imagick 2.0.0)

Imagick::getImageComposeRetourne l'opérateur de composition associé à une image

Description

int Imagick::getImageCompose ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'opérateur de composition associé à une image.

Valeurs de retour

Returns TRUE on success.



Imagick::getImageCompression

(PECL imagick 2.2.2)

Imagick::getImageCompressionLit le type de compression de l'image

Description

int Imagick::getImageCompression ( void )

Lit le type de compression de l'image.

Valeurs de retour

Retourne une constante de compression.



Imagick::getImageCompressionQuality

(PECL imagick 2.2.2)

Imagick::getImageCompressionQualityLit la qualité de compression de l'image

Description

Lit la qualité de compression de l'image.

Valeurs de retour

Retourne un entier qui décrit la qualité de la compression de l'image.



Imagick::getImageDelay

(PECL imagick 2.0.0)

Imagick::getImageDelayLit le délai de l'image

Description

int Imagick::getImageDelay ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le délai de l'image.

Valeurs de retour

Retourne le délai de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageDepth

(PECL imagick 0.9.1-0.9.9)

Imagick::getImageDepthLit la profondeur de l'image

Description

int Imagick::getImageDepth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit la profondeur de l'image.

Valeurs de retour

La profondeur de l'image.



Imagick::getImageDispose

(PECL imagick 2.0.0)

Imagick::getImageDisposeLit la méthode de récupération

Description

int Imagick::getImageDispose ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit la méthode de récupération.

Valeurs de retour

Retourne la méthode de récupération en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::getImageDistortion

(PECL imagick 2.0.0)

Imagick::getImageDistortionCompare une image à une image reconstituée

Description

float Imagick::getImageDistortion ( MagickWand $reference , int $metric )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compare une image à une image reconstituée et retourne une métrique.

Liste de paramètres

reference

L'objet Imagick avec lequel se comparer.

metric

Une des constantes de type de métrique.

Valeurs de retour

Retourne la métrique de déformation (ou la meilleure évaluation possible). Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageExtrema

(PECL imagick 2.0.0)

Imagick::getImageExtremaLit les extrêmes d'une image

Description

array Imagick::getImageExtrema ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit les extrêmes d'une image. Retourne un tableau associatif, avec les clés "min" et "max".

Valeurs de retour

Retourne un tableau associatif, avec les clés "min" et "max". Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageFilename

(PECL imagick 2.0.0)

Imagick::getImageFilenameRetourne le nom d'un fichier pour une image dans une séquence

Description

string Imagick::getImageFilename ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le nom d'un fichier pour une image dans une séquence.

Valeurs de retour

Retourne une chaîne avec le nom du fichier de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageFormat

(PECL imagick 2.0.0)

Imagick::getImageFormatRetourne le format d'une image dans une séquence

Description

string Imagick::getImageFormat ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le format d'une image dans une séquence.

Valeurs de retour

Retourne le format d'une image dans une séquence. Émet une exception ImagickException en cas d'échec.



Imagick::getImageGamma

(PECL imagick 2.0.0)

Imagick::getImageGammaLit le gamma de l'image

Description

float Imagick::getImageGamma ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le gamma de l'image.

Valeurs de retour

Retourne le gamma de l'image en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::getImageGeometry

(PECL imagick 2.0.0)

Imagick::getImageGeometryLit les dimensions de l'image dans un tableau

Description

array Imagick::getImageGeometry ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la largeur et la hauteur de l'image sous forme de tableau associatif.

Valeurs de retour

Retourne un tableau avec les dimensions de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageGravity

(No version information available, might only be in SVN)

Imagick::getImageGravityRécupère la gravité de l'image

Description

int Imagick::getImageGravity ( void )

Récupère la valeur de la gravité courante de l'image. Contrairement à la méthode Imagick::getGravity(), cette méthode retourne la gravité définie pour la séquence courante de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.

Valeurs de retour

Retourne la propriété de la gravité de l'image. Référez-vous à la liste des constantes de gravité.



Imagick::getImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::getImageGreenPrimaryRetourne la chromacité de la couleur verte

Description

array Imagick::getImageGreenPrimary ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la chromacité de la couleur verte. Retourne un tableau avec les clés "x" et "y".

Valeurs de retour

Retourne un tableau avec les clés "x" et "y", en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageHeight

(PECL imagick 2.0.0)

Imagick::getImageHeightRetourne la hauteur de l'image

Description

int Imagick::getImageHeight ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la hauteur de l'image.

Valeurs de retour

Retourne la hauteur de l'image en pixels. Émet une exception ImagickException en cas d'échec.



Imagick::getImageHistogram

(PECL imagick 2.0.0)

Imagick::getImageHistogramRetourne l'histogramme de l'image

Description

array Imagick::getImageHistogram ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'histogramme de l'image, sous forme d'un tableau d'objets ImagickPixel.

Valeurs de retour

Retourne un tableau d'objets ImagickPixel. Émet une exception ImagickException en cas d'échec.



Imagick::getImageIndex

(PECL imagick 2.0.0)

Imagick::getImageIndexLit l'index de l'image courante

Description

int Imagick::getImageIndex ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'index de l'image courante dans la séquence Imagick. Cette méthode est obsolète. Voyez Imagick::getIteratorIndex

Valeurs de retour

Retourne un entier en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::getImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getImageInterlaceSchemeLit le schéma d'entrelacement de l'image

Description

int Imagick::getImageInterlaceScheme ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le schéma d'entrelacement de l'image.

Valeurs de retour

Retourne le schéma d'entrelacement de l'image en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::getImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::getImageInterpolateMethodRetourne la méthode d'interpolation

Description

int Imagick::getImageInterpolateMethod ( void )

Retourne la méthode d'interpolation de l'image spécifiée. La méthode est une des constantes Imagick::INTERPOLATE_*.

Valeurs de retour

Retourne la méthode d'interpolation en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::getImageIterations

(PECL imagick 2.0.0)

Imagick::getImageIterationsLit les itérations de l'image

Description

int Imagick::getImageIterations ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit les itérations de l'image.

Valeurs de retour

Retourne les itérations de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageLength

(PECL imagick 2.0.0)

Imagick::getImageLengthRetourne la taille de l'image en octets

Description

int Imagick::getImageLength ( void )

Retourne la taille de l'image en octets.

Valeurs de retour

Retourne un entier.

Exemples

Exemple #1 Exemple avec Imagick::getImageLength():

Récupère la taille de l'image, en octets

<?php
$image 
= new Imagick('test.jpg');
echo 
$image->getImageLength() . ' octets';
?>



Imagick::getImageMagickLicense

(PECL imagick 2.0.0)

Imagick::getImageMagickLicenseRetourne une chaîne avec la licence ImageMagick

Description

string Imagick::getImageMagickLicense ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une chaîne avec la licence ImageMagick.

Valeurs de retour

Retourne une chaîne.



Imagick::getImageMatte

(PECL imagick 2.0.0)

Imagick::getImageMatteIndique si l'image a un canal mat

Description

bool Imagick::getImageMatte ( void )

Retourne TRUE si l'image a un canal mat, et sinon, FALSE Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



Imagick::getImageMatteColor

(PECL imagick 2.0.0)

Imagick::getImageMatteColorRetourne la couleur mate de l'image

Description

ImagickPixel Imagick::getImageMatteColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur mate de l'image.

Valeurs de retour

Retourne un objet ImagickPixel en cas de succès. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageOrientation

(PECL imagick 2.0.0)

Imagick::getImageOrientationLit l'orientation de l'image

Description

int Imagick::getImageOrientation ( void )

Lit l'orientation de l'image. La valeur retournée est une des constantes d'orientation.

Valeurs de retour

Retourne un entier en cas de succès. Émet une exception ImagickException en cas d'échec.



Imagick::getImagePage

(PECL imagick 2.0.0)

Imagick::getImagePageRetourne la géométrie de la page

Description

array Imagick::getImagePage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la géométrie de la page d'une image, sous la forme d'un tableau avec les clés "width", "height", "x" et "y".

Valeurs de retour

Retourne la géométrie de la page d'une image, sous la forme d'un tableau avec les clés "width", "height", "x" et "y".

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImagePixelColor

(PECL imagick 2.0.0)

Imagick::getImagePixelColorRetourne la couleur d'un pixel

Description

ImagickPixel Imagick::getImagePixelColor ( int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur d'un pixel.

Liste de paramètres

x

L'abscisse du pixel

y

L'ordonnée du pixel

Valeurs de retour

Retourne un objet ImagickPixel qui représente la couleur, pour ces coordonnées. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageProfile

(PECL imagick 2.0.0)

Imagick::getImageProfileRetourne un profil d'une image

Description

string Imagick::getImageProfile ( string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un profil d'une image, à partir de son nom.

Liste de paramètres

name

Le nom du profil à lire.

Valeurs de retour

Retourne une chaîne contenant le profile de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageProfiles

(PECL imagick 2.0.0)

Imagick::getImageProfilesRetourne les profils de l'image

Description

array Imagick::getImageProfiles ([ string $pattern = "*" [, bool $only_names = true ]] )

Retourne les profils de l'image qui correspondent à un modèle. Si TRUE est passé comme second paramètre, seul les noms des profils sont retournés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

pattern

Le modèle de profile à lire.

only_names

S'il faut retourner seulement les noms des profils. Si FALSE est fourni, les valeurs seront également retournées.

Valeurs de retour

Retourne un tableau avec les profils de l'image, ou bien seulement les noms des profils.



Imagick::getImageProperties

(PECL imagick 2.0.0)

Imagick::getImagePropertiesRetourne les propriétés EXIF de l'image

Description

array Imagick::getImageProperties ([ string $pattern = "*" [, bool $only_names = true ]] )

Retourne toutes les propriétés de l'image, qui satisfont un modèle. Si TRUE est passé comme second paramètre, seul les noms des propriétés sont retournés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

pattern

Le modèle pour les noms de propriétés.

only_names

S'il faut retourner uniquement les noms des propriétés. Si FALSE est fourni, alors les valeurs seront aussi retournées.

Valeurs de retour

Retourne un tableau contenant les propriétés de l'image, ou leurs noms.

Exemples

Exemple #1 Exemple avec Imagick::getImageProperties()

Exemple d'extraction d'informations EXIF.

<?php

/* Crée un objet */
$im = new imagick("/path/to/example.jpg");

/* Lit les informations EXIF */
$exifArray $im->getImageProperties("exif:*");

/* Passe en revue les propriétés EXIF */
foreach ($exifArray as $name => $property)
{
    echo 
"{$name} => {$property}<br />\n"
}

?>



Imagick::getImageProperty

(PECL imagick 2.0.0)

Imagick::getImagePropertyRetourne une propriété d'une image

Description

string Imagick::getImageProperty ( string $name )

Retourne une propriété d'une image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.

Liste de paramètres

name

Le nom de la propriété (par exemple, Exif:DateTime)

Exemples

Exemple #1 Exemple avec Imagick::getImageProperty()

Définition et récupération des propriétés de l'image.

<?php
$image 
= new Imagick();
$image->newImage(300200"black");

$image->setImageProperty('Exif:Make''Imagick');
echo 
$image->getImageProperty('Exif:Make');
?>

Voir aussi

Valeurs de retour

Retourne une propriété d'une image, ou FALSE si le nom demandé n'existe pas.



Imagick::getImageRedPrimary

(PECL imagick 2.0.0)

Imagick::getImageRedPrimaryRetourne la chromacité du point rouge

Description

array Imagick::getImageRedPrimary ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la chromacité du point rouge sous la forme d'un tableau avec les clés "x" et "y".

Valeurs de retour

Retourne la chromacité du point rouge sous la forme d'un tableau avec les clés "x" et "y". Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageRegion

(PECL imagick 2.0.0)

Imagick::getImageRegionExtrait une région d'une image

Description

Imagick Imagick::getImageRegion ( int $width , int $height , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Extrait une région d'une image et la retourne sous la forme d'un nouvel objet Imagick.

Liste de paramètres

width

La largeur de la région extraite.

height

La hauteur de la région extraite.

x

L'abscisse du coin supérieur gauche de la région extraite.

y

L'ordonnée du coin supérieur gauche de la région extraite.

Valeurs de retour

Extrait une région d'une image et la retourne sous la forme d'un nouvel objet Imagick. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::getImageRenderingIntentLit la méthode de rendu de l'image

Description

int Imagick::getImageRenderingIntent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit la méthode de rendu de l'image.

Valeurs de retour

Retourne la constante de rendu. Émet une exception ImagickException en cas d'échec.



Imagick::getImageResolution

(PECL imagick 2.0.0)

Imagick::getImageResolutionLit les résolutions en X et Y d'une image

Description

array Imagick::getImageResolution ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit les résolutions en X et Y d'une image.

Valeurs de retour

Lit les résolutions en X et Y d'une image. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImagesBlob

(PECL imagick 2.0.0)

Imagick::getImagesBlobRetourne toutes les images de la séquence en un BLOB

Description

string Imagick::getImagesBlob ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Implémente le formatage direct en mémoire. Il retourne toutes les images de la séquence sous forme de chaîne. Le format de l'image détermine le format du BLOB retourné (GIF, JPEG, PNG, etc.). Pour retourner un format d'image différent, utilisez Imagick::setImageFormat().

Valeurs de retour

Retourne une chaîne contenant toutes les images. Émet une exception ImagickException en cas d'échec.



Imagick::getImageScene

(PECL imagick 2.0.0)

Imagick::getImageSceneRetourne la scène de l'image

Description

int Imagick::getImageScene ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la scène de l'image.

Valeurs de retour

Retourne la scène de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageSignature

(PECL imagick 2.0.0)

Imagick::getImageSignatureGénère une signature SHA-256

Description

string Imagick::getImageSignature ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Génère une signature SHA-256 de l'image.

Valeurs de retour

Retourne une chaîne contenant la signature SHA-256 de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageSize

(PECL imagick 2.0.0)

Imagick::getImageSizeRetourne la taille de l'image en octets

Description

int Imagick::getImageSize ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la taille de l'image en octets.

Valeurs de retour

Retourne un entier représentant la taille de l'image en octets.



Imagick::getImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::getImageTicksPerSecondLit les ticks-par-seconde de l'image

Description

int Imagick::getImageTicksPerSecond ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit les ticks-par-seconde de l'image.

Valeurs de retour

Lit les ticks-par-seconde de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageTotalInkDensity

(PECL imagick 2.0.0)

Imagick::getImageTotalInkDensityLit la densité totale d'encre de l'image

Description

float Imagick::getImageTotalInkDensity ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit la densité totale d'encre de l'image.

Valeurs de retour

Lit la densité totale d'encre de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageType

(PECL imagick 0.9.10-0.9.9)

Imagick::getImageTypeLit le type possible d'image

Description

int Imagick::getImageType ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le type possible d'image.

Valeurs de retour

Lit le type possible d'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageUnits

(PECL imagick 2.0.0)

Imagick::getImageUnitsRetourne les unités de résolution de l'image

Description

int Imagick::getImageUnits ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne les unités de résolution de l'image.

Valeurs de retour

Retourne les unités de résolution de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::getImageVirtualPixelMethodRetourne la méthode du pixel virtuel

Description

int Imagick::getImageVirtualPixelMethod ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la méthode du pixel virtuel pour l'image spécifiée.

Valeurs de retour

Retourne la méthode du pixel virtuel pour l'image spécifiée. Émet une exception ImagickException en cas d'échec.



Imagick::getImageWhitePoint

(PECL imagick 2.0.0)

Imagick::getImageWhitePointRetourne la chromacité du point blanc

Description

array Imagick::getImageWhitePoint ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la chromacité du point blanc, sous la forme d'un tableau associatif avec les clés "x" et "y".

Valeurs de retour

Retourne la chromacité du point blanc, sous la forme d'un tableau associatif avec les clés "x" et "y". Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::getImageWidth

(PECL imagick 2.0.0)

Imagick::getImageWidthRetourne la largeur de l'image

Description

int Imagick::getImageWidth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la largeur de l'image.

Valeurs de retour

Retourne la largeur de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::getInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getInterlaceSchemeLit le schéma d'entrelacement de l'objet

Description

int Imagick::getInterlaceScheme ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le schéma d'entrelacement de l'objet.

Valeurs de retour

Lit la constante d'entrelacement. Émet une exception ImagickException en cas d'échec.



Imagick::getIteratorIndex

(PECL imagick 2.0.0)

Imagick::getIteratorIndexLit l'index de l'image active courante

Description

int Imagick::getIteratorIndex ( void )

Lit l'index de l'image active courante dans l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne un entier représentant l'index de l'image dans la file d'attente. Émet une exception ImagickException en cas d'échec.

Exemples

Exemple #1 Exemple avec Imagick::getIteratorIndex()

Crée des images, définit et récupère l'index de l'itérateur.

<?php
$im 
= new Imagick();
$im->newImage(100100, new ImagickPixel("red"));
$im->newImage(100100, new ImagickPixel("green"));
$im->newImage(100100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo 
$im->getIteratorIndex();
?>

Voir aussi



Imagick::getNumberImages

(PECL imagick 2.0.0)

Imagick::getNumberImagesRetourne le nombre d'images d'un objet

Description

int Imagick::getNumberImages ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le nombre d'image d'un objet Imagick.

Valeurs de retour

Retourne le nombre d'image d'un objet Imagick. Émet une exception ImagickException en cas d'échec.



Imagick::getOption

(PECL imagick 2.0.0)

Imagick::getOptionRetourne la valeur d'une option

Description

string Imagick::getOption ( string $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la valeur d'une option pour l'objet Imagick.

Liste de paramètres

key

Le nom de l'option

Valeurs de retour

Retourne la valeur associée à l'option. Émet une exception ImagickException en cas d'échec.



Imagick::getPackageName

(PECL imagick 2.0.0)

Imagick::getPackageNameRetourne le nom du paquet ImageMagick

Description

string Imagick::getPackageName ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le nom du paquet ImageMagick.

Valeurs de retour

Retourne le nom du paquet ImageMagick. Émet une exception ImagickException en cas d'échec.



Imagick::getPage

(PECL imagick 2.0.0)

Imagick::getPageRetourne la géométrie de la page

Description

array Imagick::getPage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la géométrie de l'objet Imagick, sous forme d'un tableau associatif, avec les clés "width", "height", "x" et "y".

Valeurs de retour

Retourne la géométrie de l'objet Imagick, sous forme d'un tableau associatif, avec les clés "width", "height", "x" et "y". Émet une exception ImagickException en cas d'échec.



Imagick::getPixelIterator

(PECL imagick 2.0.0)

Imagick::getPixelIteratorRetourne un MagickPixelIterator

Description

ImagickPixelIterator Imagick::getPixelIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un MagickPixelIterator.

Valeurs de retour

Retourne un objet MagickPixelIterator. Émet une exception ImagickException en cas d'échec.



Imagick::getPixelRegionIterator

(PECL imagick 2.0.0)

Imagick::getPixelRegionIteratorLit un objet ImagickPixelIterator pour une section d'image

Description

ImagickPixelIterator Imagick::getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit un objet ImagickPixelIterator pour une section d'image.

Liste de paramètres

x

L'abscisse de la région.

y

L'ordonnée de la région.

columns

La largeur de la région.

rows

La hauteur de la région.

Valeurs de retour

Retourne un objet ImagickPixelIterator pour une section d'image. Émet une exception ImagickException en cas d'échec.



Imagick::getPointSize

(No version information available, might only be in SVN)

Imagick::getPointSizeRécupère la taille du point

Description

float Imagick::getPointSize ( void )

Retourne la propriété de la taille du point de l'objet. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Valeurs de retour

Retourne un nombre décimal contenant la taille du point.

Voir aussi



Imagick::getQuantumDepth

(PECL imagick 2.0.0)

Imagick::getQuantumDepthLit la profondeur quantique

Description

array Imagick::getQuantumDepth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la profondeur quantique, sous forme de chaîne.

Valeurs de retour

Retourne la profondeur quantique, sous forme de chaîne. Émet une exception ImagickException en cas d'échec.



Imagick::getQuantumRange

(PECL imagick 2.0.0)

Imagick::getQuantumRangeRetourne l'intervalle quantique de Imagick

Description

array Imagick::getQuantumRange ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'intervalle quantique de Imagick, sous forme de chaîne.

Valeurs de retour

Retourne l'intervalle quantique de Imagick, sous forme de chaîne. Émet une exception ImagickException en cas d'échec.



Imagick::getReleaseDate

(PECL imagick 2.0.0)

Imagick::getReleaseDateRetourne la date de publication de ImageMagick

Description

string Imagick::getReleaseDate ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la date de publication de ImageMagick, sous forme de chaîne.

Valeurs de retour

Retourne la date de publication de ImageMagick, sous forme de chaîne. Émet une exception ImagickException en cas d'échec.



Imagick::getResource

(PECL imagick 2.0.0)

Imagick::getResourceRetourne la consommation de mémoire de la ressource

Description

int Imagick::getResource ( int $type )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la consommation de mémoire de la ressource, en megaoctets.

Liste de paramètres

type

Voyez la liste des constantes de type de ressources.

Valeurs de retour

Retourne la consommation de mémoire de la ressource, en megaoctets. Émet une exception ImagickException en cas d'échec.



Imagick::getResourceLimit

(PECL imagick 2.0.0)

Imagick::getResourceLimitRetourne la limite de la ressource

Description

int Imagick::getResourceLimit ( int $type )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la limite de la ressource, en megaoctets.

Liste de paramètres

type

Voyez la liste des constantes de type de ressources.

Valeurs de retour

Retourne la limite de la ressource spécifiée, en megaoctets. Émet une exception ImagickException en cas d'échec.



Imagick::getSamplingFactors

(PECL imagick 2.0.0)

Imagick::getSamplingFactorsLit le facteur d'échantillonnage horizontal et vertical

Description

array Imagick::getSamplingFactors ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le facteur d'échantillonnage horizontal et vertical.

Valeurs de retour

Retourne un tableau associatif avec les facteurs d'échantillonnage horizontal et vertical de limage. Émet une exception ImagickException en cas d'échec.



Imagick::getSize

(PECL imagick 2.0.0)

Imagick::getSizeRetourne la taille associée avec un objet Imagick

Description

array Imagick::getSize ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la taille associée avec un objet Imagick, sous forme de tableau, avec les clés "columns" (colonnes) et "rows" (lignes).

Valeurs de retour

Retourne la taille associée avec un objet Imagick, sous forme de tableau, avec les clés "columns" (colonnes) et "rows" (lignes).



Imagick::getSizeOffset

(PECL imagick 2.0.0)

Imagick::getSizeOffsetRetourne la taille de la position

Description

int Imagick::getSizeOffset ( void )

Retourne la taille de la position associée avec l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne la taille de la position associée avec l'objet Imagick. Émet une exception ImagickException en cas d'échec.



Imagick::getVersion

(PECL imagick 2.0.0)

Imagick::getVersionRetourne l'API de ImageMagick API

Description

array Imagick::getVersion ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la version de l'APIImageMagick API, sous forme de chaîne et de nombre.

Valeurs de retour

Retourne la version de l'APIImageMagick API, sous forme de chaîne et de nombre. Émet une exception ImagickException en cas d'échec.



Imagick::haldClutImage

(No version information available, might only be in SVN)

Imagick::haldClutImageRemplace les couleurs de l'image

Description

public bool Imagick::haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Remplace les couleurs de l'image en utilisant la table de correspondance Hald. Les images Hald peuvent être créée en utilisant le codeur de couleur HALD.

Liste de paramètres

clut

Objet Imagick contenant l'image de correspondance Hald.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::hasNextImage

(PECL imagick 2.0.0)

Imagick::hasNextImageVérifie si un objet a une image suivante

Description

bool Imagick::hasNextImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si l'objet a encore des images, pour passer en revue la liste.

Valeurs de retour

Retourne TRUE si l'objet a une image suivante, et FALSE sinon.



Imagick::hasPreviousImage

(PECL imagick 2.0.0)

Imagick::hasPreviousImageVérifie si un objet a une image précédente

Description

bool Imagick::hasPreviousImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si l'objet a une image précédente, pour pouvoir passer en revue la liste en ordre inverse.

Valeurs de retour

Retourne TRUE si l'objet a une image précédente, et FALSE sinon.



Imagick::identifyImage

(PECL imagick 2.0.0)

Imagick::identifyImageIdentifie une image et lit ses attributs

Description

array Imagick::identifyImage ([ bool $appendRawOutput = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Identifie une image et retourne ses attributs. Les attributs sont sa largeur, hauteur, taille et d'autres.

Liste de paramètres

appendRawOutput

Valeurs de retour

Identifie une image et retourne ses attributs. Les attributs sont sa largeur, hauteur, taille et d'autres. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::implodeImage

(PECL imagick 2.0.0)

Imagick::implodeImageCrée une nouvelle copie d'image

Description

bool Imagick::implodeImage ( float $radius )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une nouvelle copie d'image, avec chaque pixels "implosé" par un pourcentage spécifique.

Liste de paramètres

radius

Le rayon de l'implosion

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::importImagePixels

(No version information available, might only be in SVN)

Imagick::importImagePixelsImporte des pixels dans une image

Description

public bool Imagick::importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels )

Importe des pixels depuis un tableau dans une image. Le paramètre map vaut générallement 'RGB'. Cette méthode impose les contraintes suivantes pour les paramètres : le nombre de pixels du tableau doit correspondre à la longueur width x height x de la carte. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

x

La position en X de l'image.

y

La position en Y de l'image.

width

La largeur de l'image.

height

La hauteur de l'image.

map

La carte de l'ordre des pixels, sous la forme d'une chaîne de caractères. Par exemple RGB. La valeur peut être une combinaison ou un ordre de R = rouge, G = vert, B = bleu, A = alpha (0 correspond à transparent), O = opacité (0 correspond à opaque), C = cyan, Y = jaune, M = magenta, K = noir, I = intensité (pour les niveaux de gris), P = pad.

storage

La méthode de stockage des pixels. Référez-vous à la liste des constantes de pixels.

pixels

Le tableau de pixels.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::importImagePixels()

<?php

/* Génère un tableau de pixels. 2000 pixels par bande de couleurs */
$count 2000 3;

$pixels 
   
array_merge(array_pad(array(), $count0),
               
array_pad(array(), $count255), 
               
array_pad(array(), $count0),
               
array_pad(array(), $count255),
               
array_pad(array(), $count0));

/* Largeur et hauteur. L'espace correspond aux pixels, divisés
   par 3. 3 provient de 'RGB', 3 valeurs par pixel */
$width $height pow((count($pixels) / 3), 0.5);

/* Crée une image vide */
$im = new Imagick();
$im->newImage($width$height'gray');

/* Importe les pixels dans l'image.
   width * height * strlen("RGB") doit correspondre à count($pixels) */
$im->importImagePixels(00$width$height"RGB"Imagick::PIXEL_CHAR$pixels);

/* Affiche l'image sous la forme d'une image jpeg */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo 
$im;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Sortie de l'exemple : Imagick::importImagePixels()



Imagick::labelImage

(PECL imagick 2.0.0)

Imagick::labelImageAjoute un libelle à une image

Description

bool Imagick::labelImage ( string $label )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un libelle à une image.

Liste de paramètres

label

Le libellé à ajouter

Valeurs de retour

Returns TRUE on success.



Imagick::levelImage

(PECL imagick 2.0.0)

Imagick::levelImageAjuste les niveaux de l'image

Description

bool Imagick::levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajuste les niveaux d'une image en modifiant les couleurs qui sont entre deux couleurs données. Les paramètres représentent le noir, le gris et le blanc. Le noir est la couleur la plus sombre dans l'image. Les couleurs qui sont plus sombres que la couleur noire sont alors mises à zéro. La couleur grise spécifie une correction gamma à appliquer à l'image. La couleur blanche spécifie la couleur la plus claire. Les couleurs plus claires sont alors mises à l'intensité maximale.

Liste de paramètres

blackPoint

Le point noir de l'image

gamma

La correction gamma

whitePoint

Le point blanc de l'image

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::linearStretchImage

(PECL imagick 2.0.0)

Imagick::linearStretchImageÉtire la saturation de l'intensité de l'image

Description

bool Imagick::linearStretchImage ( float $blackPoint , float $whitePoint )

Étire la saturation de l'intensité de l'image.

Liste de paramètres

blackPoint

Le point noir de l'image.

whitePoint

Le point blanc de l'image.

Valeurs de retour

Returns TRUE on success.



Imagick::liquidRescaleImage

(No version information available, might only be in SVN)

Imagick::liquidRescaleImageAnime une ou plusieurs images

Description

bool Imagick::liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity )

Cette méthode met à l'échelle les images en utilisant la méthode de mise à l'échelle liquide. Cette méthode est une implémentation d'un technique appelée "seam carving". Pour que cette méthode fonctionne telle que convenue, ImageMagick doit avoir été compilé avec le support liblqr. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.9 ou supérieur.

Liste de paramètres

width

La largeur de la taille cible.

height

La hauteur de la taille cible.

delta_x

Le nombre de coutures pouvant traverser l'axe X. Le fait de passer 0 signifie que la couture se fera sur la droite.

rigidity

Introduit une rigidité pour les coutures non droites. Ce paramètre est habituellement à 0.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::magnifyImage

(PECL imagick 2.0.0)

Imagick::magnifyImageDouble la taille d'une image, proportionnellement

Description

bool Imagick::magnifyImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Cette méthode est un raccourci pour doubler la taille d'une image.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::mapImage

(PECL imagick 2.0.0)

Imagick::mapImageRemplace la couleur d'une image par celle d'une image de référence

Description

bool Imagick::mapImage ( Imagick $map , bool $dither )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

map

dither

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::matteFloodfillImage

(PECL imagick 2.0.0)

Imagick::matteFloodfillImageChange la transparence d'une couleur

Description

bool Imagick::matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Change la transparence d'un pixel cible, et ses voisins immédiats. Si la méthode FillToBorderMethod est spécifiée, la valeur de la transparence est modifiée pour tous les pixels voisins qui ne correspondent pas à une couleur de bordercolor.

Liste de paramètres

alpha

Le niveau de transparence : 1.0 représente une couleur opaque, alors que 0.0 est totalement transparent.

fuzz

Cet argument représente la tolérance acceptable pour que deux couleurs soient considérées comme identiques.

bordercolor

Un objet ImagickPixel ou une chaîne représentant la couleur de bordure.

x

L'abscisse d'origine de l'opération.

y

L'ordonnée d'origine de l'opération.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::medianFilterImage

(PECL imagick 2.0.0)

Imagick::medianFilterImageApplique un filtre numérique

Description

bool Imagick::medianFilterImage ( float $radius )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique un filtre numérique qui améliore la qualité d'une image avec du bruit. Chaque pixel est remplacé par la médian de son voisinage. Le voisinage est définit par un rayon.

Liste de paramètres

radius

Le rayon du voisinage.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::mergeImageLayers

(PECL imagick 2.1.0)

Imagick::mergeImageLayersFusionne les calques de l'image

Description

bool Imagick::mergeImageLayers ( int $layer_method )

Fusionne les calques de l'image en un seul. Cette méthode est utile lors de l'utilisation de formats d'image qui utilisent plusieurs calques, comme les PSD. La fusion est contrôlée en utilisant le paramètre layer_method qui définit la façon dont les calques doivent fusionner. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Liste de paramètres

layer_method

Une constante parmi les constantes Imagick::LAYERMETHOD_*.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi



Imagick::minifyImage

(PECL imagick 2.0.0)

Imagick::minifyImageMet à l'échelle une image proportionnellement pour la réduire de moitié de taille

Description

bool Imagick::minifyImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Cette fonction est un raccourci pratique pour mettre à l'échelle une image proportionnellement pour la réduire de moitié de taille.

Valeurs de retour

Returns TRUE on success.



Imagick::modulateImage

(PECL imagick 2.0.0)

Imagick::modulateImageContrôle la saturation, l'intensité et la teinte

Description

bool Imagick::modulateImage ( float $brightness , float $saturation , float $hue )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Contrôle l'intensité, la saturation et la teinte d'une image. La couleur est le pourcentage de rotation absolue depuis la position courante. Par exemple, la valeur 50 engendre une rotation anti-horaire de 90 degrés, 150 produit une rotation horaire de 90 degrés, tandis que 0 et 200 produisent des rotations de 180 degrés.

Liste de paramètres

brightness

saturation

hue

Valeurs de retour

Returns TRUE on success.



Imagick::montageImage

(PECL imagick 2.0.0)

Imagick::montageImageCrée une image composite

Description

Imagick Imagick::montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une image composite en combinant plusieurs images. Les images sont utilisés comme carreaux dans l'image composite, avec leur nom optionnellement en dessous.

Liste de paramètres

draw

Le nom de la police, la taille et la couleur sont demandés à cet objet.

tile_geometry

Le nombre de carreaux par lignes et par page (e.g. 6x4+0+0).

thumbnail_geometry

La taille demandée pour l'image et sa bordure pour chaque miniature (e.g. 120x120+4+3).

mode

Le mode de cadrage des miniatures. Voyez la liste des constantes de mode de montage.

frame

Encadre l'image avec un bord d'ornement (e.g. 15x15+3+3). La couleur du bord est la couleur mate de la miniature.

Valeurs de retour

Returns TRUE on success.



Imagick::morphImages

(PECL imagick 2.0.0)

Imagick::morphImagesRéalise un morphing entre deux images

Description

Imagick Imagick::morphImages ( int $number_frames )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Réalise un morphing d'images. La taille et la couleur des pixels sont linéairement interpolés pour donner l'apparence d'une métamorphose d'une image à l'autre.

Liste de paramètres

number_frames

Le nombre d'images à générer entre les deux images.

Valeurs de retour

Cette méthode retourne un nouvel objet Imagick. Émet une exception ImagickException en cas d'échec.



Imagick::mosaicImages

(PECL imagick 2.0.0)

Imagick::mosaicImagesForme une mosaïque d'images

Description

Imagick Imagick::mosaicImages ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Aligne les images d'une séquence pour former une seule image cohérente. La fonction retourne une baguette avec chaque image de la séquence, à l'endroit du décalage de l'image.

Valeurs de retour

Returns TRUE on success.



Imagick::motionBlurImage

(PECL imagick 2.0.0)

Imagick::motionBlurImageAjout un flou de déplacement

Description

bool Imagick::motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un flou de déplacement. Une convolution de l'image avec un opérateur gaussien, pour un rayon et une déviation donnée est utilisé. Pour des résultats raisonnables, le rayon doit être plus grand que la déviation. Utilisez un rayon de zéro, et Imagick va choisir sa valeur pour vous. L'angle donne la direction du flou de déplacement.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre.

sigma

La déviation standard de la gaussienne, en pixels.

angle

L'angle du flou.

channel

Une constante de canal, valide pour votre mode de canal. Pour spécifier un ou plusieurs canaux, combinez les constantes de canaux avec les opérateurs logiques. Voyez la liste de constantes de canaux. L'argument de canal est disponible uniquement si Imagick est compilé avec ImageMagick, version 6.4.4 ou plus récent.

Valeurs de retour

Returns TRUE on success.



Imagick::negateImage

(PECL imagick 2.0.0)

Imagick::negateImageEffectue la négation des couleurs d'une image de référence

Description

bool Imagick::negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Effectue la négation des couleurs d'une image de référence. L'option de niveau de gris signifie que seul les valeurs en niveau de gris de l'image sont soumises à la transformation.

Liste de paramètres

gray

S'il faut effectuer la négation sur les niveaux de gris.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::newImage

(PECL imagick 2.0.0)

Imagick::newImageCrée une nouvelle image

Description

bool Imagick::newImage ( int $cols , int $rows , mixed $background [, string $format ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une nouvelle image et lui associe un objet ImagickPixel pour la couleur de fond

Liste de paramètres

cols

Le nombre de colonnes de la nouvelle image

rows

Le nombre de lignes de la nouvelle image

background

La couleur de fond utilisée pour cette image

format

Le format de l'image. Ce paramètre a été ajouté en Imagick version 2.0.1.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::newImage()

Crée une nouvelle image et l'affiche.

<?php

$image 
= new Imagick();
$image->newImage(100100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo 
$image;

?>



Imagick::newPseudoImage

(PECL imagick 2.0.0)

Imagick::newPseudoImageCrée une nouvelle image

Description

bool Imagick::newPseudoImage ( int $columns , int $rows , string $pseudoString )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une nouvelle image en utilisant les pseudoformats ImageMagick.

Liste de paramètres

columns

Le nombre de colonnes dans la nouvelle image

rows

Le nombre de lignes dans la nouvelle image

pseudoString

Une chaîne contenant une pseudodéfinition d'image.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::nextImage

(PECL imagick 2.0.0)

Imagick::nextImagePasse à la prochaine image

Description

bool Imagick::nextImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Passe à la prochaine image dans la liste de l'objet Imagick.

Valeurs de retour

Returns TRUE on success.



Imagick::normalizeImage

(PECL imagick 2.0.0)

Imagick::normalizeImageAméliore le contraste de l'image

Description

bool Imagick::normalizeImage ([ int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Améliore le contraste de l'image en ajustant la couleur des pixels à travers toute la gamme des couleurs de l'image.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.



Imagick::oilPaintImage

(PECL imagick 2.0.0)

Imagick::oilPaintImageSimule une peinture à l'huile

Description

bool Imagick::oilPaintImage ( float $radius )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique un filtre spéciale qui simule une peinture à l'huile. Chaque pixel est remplacé par la couleur la plus fréquente dans son voisinage.

Liste de paramètres

radius

Le rayon du voisinage circulaire.

Valeurs de retour

Returns TRUE on success.



Imagick::opaquePaintImage

(No version information available, might only be in SVN)

Imagick::opaquePaintImageModifie la valeur de la couleur de tous les pixels correspondant à la cible

Description

bool Imagick::opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Modifie tous les pixels correspondant à la couleur avec la couleur définie par le paramètre fill. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

target

Un objet ImagickPixel ou une chaîne de caractères contenant la couleur à modifier.

fill

La couleur de remplacement.

fuzz

La quantité de poussière de papier. Par exemple, le fait de définir la poussière de papier à 10 et la couleur rouge à une intensité de 100 et de 102 ne sera pas interprété comme la même couleur.

invert

Si vaut TRUE, colorise tous les pixels qui ne correspondent pas à la couleur cible.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.



Imagick::optimizeImageLayers

(PECL imagick 2.0.0)

Imagick::optimizeImageLayersSupprime les portions récurrents d'images à optimiser

Description

bool Imagick::optimizeImageLayers ( void )

Compare chaque image GIF à la précédente dans la séquence. A partir de là, la méthode tente de sélectionner la plus petite partie d'image à remplacer à chaque image, tout en préservant les résultats de l'animation. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::optimizeImageLayers()

Lecture, optimisation et écriture d'une image GIF

<?php
/* création d'un nouvel objet imagick */
$im = new Imagick("test.gif");

/* optimisation des calques */
$im->optimizeImageLayers();

/* écriture de l'image */
$im->writeImages("test_optimized.gif"true);
?>

Voir aussi



Imagick::orderedPosterizeImage

(PECL imagick 2.2.2)

Imagick::orderedPosterizeImageEffectue un dither ordonné

Description

bool Imagick::orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_ALL ] )

Effectue un dither ordonné, basé sur un nombre prédéfini de cartes de seuil de dither, mais avec plusieurs niveaux d'intensité, qui peuvent être différents sur différents canaux, suivant les arguments. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.1 ou supérieur.

Liste de paramètres

threshold_map

Une chaîne contenant le nom de la carte de seuils de dither

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImageChange les pixels qui sont d'une couleur

Description

bool Imagick::paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )

Change les pixels qui correspondent à une couleur en une couleur de remplissage, et qui sont un voisin immédiat. Depuis ImageMagick 6.3.8, cette méthode est obsolète et la méthode Imagick::floodfillPaintImage() dot être utilisée à la place.

Liste de paramètres

fill

L'objet ImagickPixel ou une chaîne de caractères contenant la couleur de remplissage.

fuzz

La quantité de bruit. Par exemple, un bruit de 10 et la couleur rouge à l'intensité de 100 et 102, respectivement, sont maintenant interprété comme la même couleur, dans le cadre de ce remplissage.

bordercolor

Un objet ImagickPixel ou une chaîne de caractères contenant la couleur de la bordure

x

L'abscisse position d'origine du remplissage

y

L'ordonnée position d'origine du remplissage

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.



Imagick::paintOpaqueImage

(PECL imagick 2.0.0)

Imagick::paintOpaqueImageChange les pixels qui sont d'une couleur

Description

bool Imagick::paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Change les pixels qui correspondent à une couleur en une couleur de remplissage.

Liste de paramètres

target

La couleur cible, avec son opacité. Un objet ImagickPixel ou bien une chaîne représentant la couleur cible.

fill

Un objet ImagickPixel ou une chaîne représentant une couleur de remplissage.

fuzz

Ce paramètre indique la tolérance qui permet de considérer que deux couleurs sont identiques.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::paintTransparentImage

(PECL imagick 2.0.0)

Imagick::paintTransparentImageRemplit les pixels avec une couleur

Description

bool Imagick::paintTransparentImage ( mixed $target , float $alpha , float $fuzz )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Change les pixels qui correspondent à une couleur en une couleur de remplissage.

Liste de paramètres

target

La couleur cible, avec son opacité.

alpha

Le niveau de transparence : 1.0 est totalement opaque, et 0 est totalement transparent.

fuzz

Ce paramètre indique la tolérance qui permet de considérer que deux couleurs sont identiques.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::pingImage

(PECL imagick 2.0.0)

Imagick::pingImageLit des attributs simples sans ouvrir une image

Description

bool Imagick::pingImage ( string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Cette méthode peut être utilisée pour obtenir les dimensions de l'image sans lire toute l'image en mémoire.

Liste de paramètres

filename

Le nom du fichier qui contient l'image.

Valeurs de retour

Returns TRUE on success.



Imagick::pingImageBlob

(PECL imagick 2.0.0)

Imagick::pingImageBlobLit rapidement les attributs

Description

bool Imagick::pingImageBlob ( string $image )

Cette méthode peut être utilisée pour obtenir les dimensions de l'image sans lire toute l'image en mémoire. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

image

Une chaîne contenant l'image.

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::pingImageBlob()

Récupère une image depuis une chaîne

<?php
/* Lit le contenu de l'image */
$image file_get_contents("test.jpg");

/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Passe la chaîne à l'objet imagick */
$im->pingImageBlob($image);

/* Affiche les dimensions de l'image */
echo $im->getImageWidth() . 'x' $im->getImageHeight();
?>

Voir aussi



Imagick::pingImageFile

(PECL imagick 2.0.0)

Imagick::pingImageFileLit les attributs simples d'une image

Description

bool Imagick::pingImageFile ( resource $filehandle [, string $fileName ] )

Cette méthode peut être utilisée pour connaître les dimensions d'une image, sans lire toute l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

filehandle

Un flux ouvert sur une image.

fileName

Le nom du fichier d'image, optionnellement.

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::pingImageFile()

Ouverture d'une image distante.

<?php
/* Ouverture d'une image distante */
$fp fopen("http://example.com/test.jpg");

/* Création d'un nouvel objet imagick */
$im = new Imagick();

/* Passe le gestionnaire à imagick */
$im->pingImageFile($fp);
?>

Voir aussi



Imagick::polaroidImage

(PECL imagick 2.0.0)

Imagick::polaroidImageSimule une photo Polaroid

Description

bool Imagick::polaroidImage ( ImagickDraw $properties , float $angle )

Simule une photo Polaroid. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.

Liste de paramètres

properties

Les propriétés Polaroid

angle

L'angle Polaroid

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::polaroidImage()

Un exemple d'utilisation de Imagick::polaroidImage()

<?php
/* Création de l'objet */
$image = new Imagick('source.png');

/* Définit l'opacité */
$image->polaroidImage(new ImagickDraw(), 25);

/* Affiche l'image */
header('Content-type: image/png');
echo 
$image;

?>



Imagick::posterizeImage

(PECL imagick 2.0.0)

Imagick::posterizeImageRéduit une image à un nombre limité de couleurs

Description

bool Imagick::posterizeImage ( int $levels , bool $dither )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Réduit une image à un nombre limité de couleurs.

Liste de paramètres

levels

dither

Valeurs de retour

Returns TRUE on success.



Imagick::previewImages

(PECL imagick 2.0.0)

Imagick::previewImagesTeste rapidement différents paramètres pour un traitement d'images

Description

bool Imagick::previewImages ( int $preview )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un panorama de 9 miniatures de l'image spécifiée avec un traitement appliqué à différents niveaux. Cela est pratique pour tester rapidement différents paramètres d'un filtre.

Liste de paramètres

preview

Type de prévisualisation. Voyez la liste des constantes de prévisualisation

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::previousImage

(PECL imagick 2.0.0)

Imagick::previousImagePasse à l'image précédente dans une séquence d'images

Description

bool Imagick::previousImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Passe à l'image précédente dans une séquence d'images Imagick.

Valeurs de retour

Returns TRUE on success.



Imagick::profileImage

(PECL imagick 2.0.0)

Imagick::profileImageAjoute ou retire un profil d'une image

Description

bool Imagick::profileImage ( string $name , string $profile )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute ou retire un profil ICC, IPTC ou générique d'une image. Si le profil est NULL il est retiré de l'image, et sinon, ajouté. Utilisez le nom de '*' et un profil NULL pour retirer tous les profils d'une image.

Liste de paramètres

name

profile

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::quantizeImage

(PECL imagick 2.0.0)

Imagick::quantizeImageAnalyse les couleurs dans une référence d'image

Description

bool Imagick::quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

numberColors

colorspace

treedepth

dither

measureError

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::quantizeImages

(PECL imagick 2.0.0)

Imagick::quantizeImagesAnalyse les couleurs d'une séquence d'images

Description

bool Imagick::quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

numberColors

colorspace

treedepth

dither

measureError

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::queryFontMetrics

(PECL imagick 2.0.0)

Imagick::queryFontMetricsRetourne un tableau représentant les dimensions de la police

Description

array Imagick::queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un tableau multi-dimensionnel représentant les dimensions de la police.

Liste de paramètres

properties

Un objet ImagickDraw contenant des attributs de police

text

Le texte

multiline

Un paramètre multiligne. S'il est laissé vide, il est auto-détecté.

Valeurs de retour

Retourne un tableau de plusieurs dimensions contenant les dimensions de la police. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::queryFontMetrics()

Demande les dimensions du texte, et affiche les valeurs à l'écran

<?php
/* Crée un nouvel objet Imagick */
$im = new Imagick();

/* Crée un objet ImagickDraw */
$draw = new ImagickDraw();

/* Configure la police */
$draw->setFont('/path/to/font.ttf');

/* Affiche les dimensions de la police, auto-détecte le multiligne */
var_dump($im->queryFontMetrics($draw"Hello World!"));
?>



Imagick::queryFonts

(PECL imagick 2.0.0)

Imagick::queryFontsRetourne la liste de polices configurés

Description

array Imagick::queryFonts ([ string $pattern = "*" ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la liste de polices configurés pour Imagick.

Liste de paramètres

pattern

Le modèle de recherche

Valeurs de retour

Retourne un tableau contenant les polices configurées. Émet une exception ImagickException en cas d'échec.



Imagick::queryFormats

(PECL imagick 2.0.0)

Imagick::queryFormatsRetourne les formats supportés par Imagick

Description

array Imagick::queryFormats ([ string $pattern = "*" ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne les formats supportés par Imagick.

Liste de paramètres

pattern

Valeurs de retour

Retourne un tableau contenant les formats supportés par Imagick. Émet une exception ImagickException en cas d'échec.



Imagick::radialBlurImage

(PECL imagick 2.0.0)

Imagick::radialBlurImageFlou radial d'une image

Description

bool Imagick::radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Flou radial d'une image.

Liste de paramètres

angle

channel

Valeurs de retour

Returns TRUE on success.



Imagick::raiseImage

(PECL imagick 2.0.0)

Imagick::raiseImageCrée un effet 3D de bouton

Description

bool Imagick::raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un effet 3D de bouton, en éclairant et assombrissant les bords de l'image. Les membres width et height de raise_info définissent la largeur et la hauteur de l'effet vertical.

Liste de paramètres

width

height

x

y

raise

Valeurs de retour

Returns TRUE on success.



Imagick::randomThresholdImage

(PECL imagick 2.0.0)

Imagick::randomThresholdImageCrée une image en deux couleurs, à haut contraste

Description

bool Imagick::randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_ALL ] )

Change la valeur de chaque pixel en fonction de l'intensité de la couleur, et la compare à un seuil. Le résultat est une image en deux couleurs, à haut contraste. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

low

Le point inférieur.

high

Le point supérieur.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Returns TRUE on success.



Imagick::readImage

(PECL imagick 0.9.0-0.9.9)

Imagick::readImageLit une image depuis un fichier

Description

bool Imagick::readImage ( string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit une image depuis un fichier.

Liste de paramètres

filename

Valeurs de retour

Returns TRUE on success.



Imagick::readImageBlob

(PECL imagick 2.0.0)

Imagick::readImageBlobLit une image depuis une chaîne binaire

Description

bool Imagick::readImageBlob ( string $image [, string $filename ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit une image depuis une chaîne binaire.

Liste de paramètres

image

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::readImageFile

(PECL imagick 2.0.0)

Imagick::readImageFileLit une image à partir d'une ressource fichier

Description

bool Imagick::readImageFile ( resource $filehandle [, string $fileName = null ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit une image à partir d'une ressource fichier.

Liste de paramètres

filehandle

fileName

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::recolorImage

(No version information available, might only be in SVN)

Imagick::recolorImageRecolore l'image

Description

bool Imagick::recolorImage ( array $matrix )

Traduit, met à l'échelle, cisaille et fait pivoter les couleurs de l'image. Cette méthode supporte les matrices variables de mise à l'échelle, mais normalement, la matrice 5x5 est utilisée pour RGBA et une matrice 6x6 est utilisée pour CMYK. La dernière ligne doit contenir les valeurs normalisées. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

matrix

La matrice contenant les valeurs des couleurs.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::reduceNoiseImage

(PECL imagick 2.0.0)

Imagick::reduceNoiseImageAdoucit les contours d'une image

Description

bool Imagick::reduceNoiseImage ( float $radius )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Adoucit les contours d'une image, tout en préservant les informations de bords. L'algorithme fonctionne en remplaçant chaque pixel avec la valeur la plus proche de ses voisins. Un voisin est défini par un rayon. En utilisant un rayon de 0, Imagick::reduceNoiseImage() sélectionne un rayon automatiquement.

Liste de paramètres

radius

Le rayon de définition d'un voisin.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::remapImage

(No version information available, might only be in SVN)

Imagick::remapImageReconfigure les couleurs de l'image

Description

public bool Imagick::remapImage ( Imagick $replacement , int $DITHER )

Remplace les couleurs de l'image avec celles définies par le paramètre replacement. Les couleurs sont remplacées avec les couleurs les plus proches possibles. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

replacement

Un objet Imagick contenant les couleurs de remplacement.

DITHER

Référez-vous à la liste des constantes de la méthode dither.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::removeImage

(PECL imagick 2.0.0)

Imagick::removeImageRetire une image de la liste

Description

bool Imagick::removeImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retire une image de la liste.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::removeImageProfile

(PECL imagick 2.0.0)

Imagick::removeImageProfileSupprime le profil de l'image et le retourne

Description

string Imagick::removeImageProfile ( string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime le profil de l'image et le retourne.

Liste de paramètres

name

Valeurs de retour

Retourne une chaîne contenant le profil de l'image. Émet une exception ImagickException en cas d'échec.



Imagick::render

(PECL imagick 2.0.0)

Imagick::renderAffiche toute les commandes de dessins précédentes

Description

bool Imagick::render ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Affiche toute les commandes de dessins précédentes.

Valeurs de retour

Returns TRUE on success.



Imagick::resampleImage

(PECL imagick 2.0.0)

Imagick::resampleImageRééchantillonne l'image

Description

bool Imagick::resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Rééchantillonne l'image à la résolution désirée.

Liste de paramètres

x_resolution

y_resolution

filter

blur

Valeurs de retour

Returns TRUE on success.



Imagick::resetImagePage

(No version information available, might only be in SVN)

Imagick::resetImagePageRéinitialise la page de l'image

Description

bool Imagick::resetImagePage ( string $page )

La définition de la page sous la forme d'une chaîne de caractères. La chaîne est au format WxH+x+y. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

page

La définition de la page. Par exemple, 7168x5147+0+0.

Valeurs de retour

Returns TRUE on success.



Imagick::resizeImage

(PECL imagick 2.0.0)

Imagick::resizeImageRedimensionne une image

Description

bool Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Redimensionne une image aux dimensions désirées, avec un filtre.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

columns

La largeur de l'image cible.

rows

La hauteur de l'image cible.

filter

Une constante de filtre.

blur

Le facteur de flou, où > 1 est flou, et < 1 est net.

bestfit

Paramètre optionnel de fit.

Valeurs de retour

Returns TRUE on success.

Historique

Version Description
2.1.0 Ajout d'un paramètre optionnel de fit. Cette méthode supporte maintenant la mise à l'échelle proportionnelle. Passez zéro comme valeur de paramètre pour une mise à l'échelle proportionnelle.



Imagick::rollImage

(PECL imagick 2.0.0)

Imagick::rollImageDécale une image

Description

bool Imagick::rollImage ( int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Décale une image, d'un vecteur x, y.

Liste de paramètres

x

Le décalage en abscisse.

y

Le décalage en ordonnée.

Valeurs de retour

Returns TRUE on success.



Imagick::rotateImage

(PECL imagick 2.0.0)

Imagick::rotateImageTourne une image

Description

bool Imagick::rotateImage ( mixed $background , float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Tourne une image d'un nombre de degrés spécifié par degrees. Les triangles vides ainsi créés sont remplis avec la couleur de fond.

Liste de paramètres

background

La couleur de fond

degrees

Les degrés de rotation

Valeurs de retour

Returns TRUE on success.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::roundCorners

(PECL imagick 2.0.0)

Imagick::roundCornersArrondit les coins d'un image

Description

bool Imagick::roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] )

Arrondit les coins d'une image. Les deux premiers paramètres contrôlent le niveau d'arrondi, et le troisième peut être utilisé pour affiner ce processus. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

x_rounding

Arrondi en x

y_rounding

Arrondi en y

stroke_width

Largeur du trait

displace

Déplacement de l'image

size_correction

Correction de taille

Exemples

Exemple #1 Exemple avec Imagick::roundCorners():

Arrondit les coins d'une image.

<?php

$image 
= new Imagick();
$image->newPseudoImage(100100"magick:rose");
$image->setImageFormat("png");

$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>

Valeurs de retour

Returns TRUE on success.



Imagick::sampleImage

(PECL imagick 2.0.0)

Imagick::sampleImageMet à l'échelle une image avec échantillonnage de pixels

Description

bool Imagick::sampleImage ( int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Met à l'échelle une image aux dimensions désirée, à l'aide de la méthode d'échantillonnage de pixels. Contrairement aux autres méthodes, cette méthode n'introduit pas de nouvelle couleur dans l'image.

Liste de paramètres

columns

rows

Valeurs de retour

Returns TRUE on success.



Imagick::scaleImage

(PECL imagick 2.0.0)

Imagick::scaleImageMet à l'échelle la taille de l'image

Description

bool Imagick::scaleImage ( int $cols , int $rows [, bool $bestfit = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Met à l'échelle la taille de l'image, aux dimensions voulues. Les autres paramètres seront calculés si 0 est pas dans l'un d'entre eux.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

cols

rows

bestfit

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Ajout d'un paramètre optionnel de fit. Cette méthode supporte désormais la mise à l'échelle proportionnelle. Passez zéro dans l'un des paramètres pour activer cette option.



Imagick::segmentImage

(No version information available, might only be in SVN)

Imagick::segmentImageSegmente une image

Description

public bool Imagick::segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = false ] )

Analyse l'image et identifie les unités similaires. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

COLORSPACE

Une constante parmi les constantes COLORSPACE.

cluster_threshold

Un pourcentage décrivant le nombre minimal de pixels contenus dans l'hexedra avant qu'il ne soit considéré comme valide.

smooth_threshold

Élimine le bruit depuis l'histogramme.

verbose

Si l'on doit ou non afficher les informations détaillées sur la reconnaissance des classes.

Valeurs de retour



Imagick::separateImageChannel

(PECL imagick 2.0.0)

Imagick::separateImageChannelSépare un canal d'une image

Description

bool Imagick::separateImageChannel ( int $channel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Sépare un canal d'une image, et retourne une image en niveaux de gris. Un canal est un composant de couleur particulier, de chaque pixel de l'image.

Liste de paramètres

channel

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::sepiaToneImage

(PECL imagick 2.0.0)

Imagick::sepiaToneImagePasse une image en tons sépia

Description

bool Imagick::sepiaToneImage ( float $threshold )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique un effet spécial à une image, similaire à l'effet de tons sépia, obtenus dans les chambres noires de photographie. Le seuil va de 0 jusqu'à QuantumRange et est une mesure de l'intervalle de tons sépia. Une valeur raisonnable est 80.

Liste de paramètres

threshold

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setBackgroundColor

(PECL imagick 2.0.0)

Imagick::setBackgroundColorConfigure la couleur de fond par défaut

Description

bool Imagick::setBackgroundColor ( mixed $background )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur de fond par défaut.

Liste de paramètres

background

Valeurs de retour

Returns TRUE on success.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::setColorspace

(No version information available, might only be in SVN)

Imagick::setColorspaceDéfinit l'espace de couleurs

Description

bool Imagick::setColorspace ( int $COLORSPACE )

Définit la valeur globale de l'espace de couleurs pour l'objet. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

COLORSPACE

Une constante parmi les constantes COLORSPACE.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setCompression

(PECL imagick 2.0.0)

Imagick::setCompressionConfigure le type de compression de l'objet

Description

bool Imagick::setCompression ( int $compression )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le type de compression de l'objet.

Liste de paramètres

compression

Valeurs de retour

Returns TRUE on success.



Imagick::setCompressionQuality

(PECL imagick 0.9.10-0.9.9)

Imagick::setCompressionQualityConfigure la compression par défaut de l'objet

Description

bool Imagick::setCompressionQuality ( int $quality )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la compression par défaut de l'objet.

Liste de paramètres

quality

Valeurs de retour

Returns TRUE on success.



Imagick::setFilename

(PECL imagick 2.0.0)

Imagick::setFilenameConfigure le nom du fichier d'image avant d'y accéder

Description

bool Imagick::setFilename ( string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le nom du fichier d'image avant d'y accéder.

Liste de paramètres

filename

Valeurs de retour

Returns TRUE on success.



Imagick::setFirstIterator

(PECL imagick 2.0.0)

Imagick::setFirstIteratorPlace l'itérateur de Imagick sur la première image

Description

bool Imagick::setFirstIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Place l'itérateur de Imagick sur la première image.

Valeurs de retour

Returns TRUE on success.



Imagick::setFont

(PECL imagick 2.1.0)

Imagick::setFontConfigure la police

Description

bool Imagick::setFont ( string $font )

Configure la police de l'image. Cette méthode est utilisée pour configurer la police utilisée par le pseudoformat : caption. La police doit être configurée dans la configuration d'ImageMagick ou bien, un fichier portant le nom de la police font doit exister. Cette méthode ne doit pas être confondue avec la méthode ImagickDraw::setFont() qui définit la police pour une objet ImagickDraw spécifique. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Liste de paramètres

font

Le nom de la police ou le nom du fichier

Valeurs de retour

Returns TRUE on success.

Voir aussi

Exemples

Exemple #1 Exemple avec Imagick::setFont()

Exemple d'utilisation de Imagick::setFont().

<?php
/* Crée un nouvel objet Imagick */
$im = new Imagick();

/* Configure la police de l'objet */
$im->setFont("example.ttf");

/* Crée un nouveau message */
$im->newPseudoImage(100100"caption:Hello");

/* Suite du traitement de l'image */
?>



Imagick::setFormat

(PECL imagick 2.0.0)

Imagick::setFormatConfigure le format de l'objet Imagick

Description

bool Imagick::setFormat ( string $format )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le format de l'objet Imagick.

Liste de paramètres

format

Valeurs de retour

Returns TRUE on success.



Imagick::setGravity

(No version information available, might only be in SVN)

Imagick::setGravityDéfinit la gravité

Description

bool Imagick::setGravity ( int $gravity )

Définit la propriété globale de gravité pour l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Liste de paramètres

gravity

La propriété de gravité. Referez-vous à la liste des constantes de gravité.

Valeurs de retour

Aucune valeur n'est retournée.



Imagick::setImage

(PECL imagick 2.0.0)

Imagick::setImageRemplace l'image dans l'objet

Description

bool Imagick::setImage ( Imagick $replace )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Remplace l'image dans la séquence d'images de l'objet.

Liste de paramètres

replace

L'objet Imagick de remplacement

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::setImage()

Un exemple avec Imagick::setImage()

<?php
/* Crée les objets */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg est remplacé par replace.jpg */
$image->setImage($replace);

/* Affichage de l'image */
header('Content-type: image/jpeg');
echo 
$image;

?>



Imagick::setImageAlphaChannel

(No version information available, might only be in SVN)

Imagick::setImageAlphaChannelDéfinit le canal alpha de l'image

Description

bool Imagick::setImageAlphaChannel ( int $mode )

Active ou désactive le canal alpha de l'image. Le mode est un parmi les constantes Imagick::ALPHACHANNEL_*. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

mode

Une constante parmi les constantes Imagick::ALPHACHANNEL_*.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi



Imagick::setImageArtifact

(No version information available, might only be in SVN)

Imagick::setImageArtifactDéfinit l'artefact de l'image

Description

bool Imagick::setImageArtifact ( string $artifact , string $value )

Associe un artefact avec l'image. La différence entre les propriétés de l'image et l'artefact de l'image est que les propriétés sont publiques alors que les artefacts sont privées. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

artifact

Le nom de l'artefact.

value

La valeur de l'artefact.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi



Imagick::setImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::setImageBackgroundColorConfigure la couleur de fond d'image

Description

bool Imagick::setImageBackgroundColor ( mixed $background )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur de fond d'image.

Liste de paramètres

background

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::setImageBias

(PECL imagick 2.0.0)

Imagick::setImageBiasConfigure le biais pour les convolutions

Description

bool Imagick::setImageBias ( float $bias )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le biais pour les convolutions, utilisées avec la fonction Imagick::ConvolveImage().

Liste de paramètres

bias

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageBluePrimary

(PECL imagick 2.0.0)

Imagick::setImageBluePrimaryConfigure la chromacité du point bleu

Description

bool Imagick::setImageBluePrimary ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la chromacité du point bleu.

Liste de paramètres

x

y

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageBorderColor

(PECL imagick 2.0.0)

Imagick::setImageBorderColorConfigure la couleur de bordure

Description

bool Imagick::setImageBorderColor ( mixed $border )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur de bordure.

Liste de paramètres

border

La couleur de bordure

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::setImageChannelDepth

(PECL imagick 2.0.0)

Imagick::setImageChannelDepthConfigure la profondeur d'un canal

Description

bool Imagick::setImageChannelDepth ( int $channel , int $depth )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la profondeur d'un canal.

Liste de paramètres

channel

depth

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageClipMask

(No version information available, might only be in SVN)

Imagick::setImageClipMaskDéfinit le masque du clip de l'image

Description

bool Imagick::setImageClipMask ( Imagick $clip_mask )

Définit le masque du clip de l'image depuis un autre objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

clip_mask

L'objet Imagick contenant le masque du clip.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageColormapColor

(PECL imagick 2.0.0)

Imagick::setImageColormapColorConfigure une couleur de la carte

Description

bool Imagick::setImageColormapColor ( int $index , ImagickPixel $color )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure une couleur de la carte de couleurs de l'image.

Liste de paramètres

index

color

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageColorspace

(PECL imagick 2.0.0)

Imagick::setImageColorspaceConfigure l'espace de couleurs de l'image

Description

bool Imagick::setImageColorspace ( int $colorspace )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'espace de couleurs de l'image.

Liste de paramètres

colorspace

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageCompose

(PECL imagick 2.0.0)

Imagick::setImageComposeConfigure l'opérateur de composition de l'image

Description

bool Imagick::setImageCompose ( int $compose )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'opérateur de composition de l'image. Cette fonction est pratique pour spécifier la méthode de composition des miniatures, lors de l'utilisation de la méthode Imagick::montageImage().

Liste de paramètres

compose

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageCompression

(PECL imagick 2.0.0)

Imagick::setImageCompressionConfigure la compression de l'image

Description

bool Imagick::setImageCompression ( int $compression )

Configure la compression de l'image.

Liste de paramètres

compression

Une des constantes COMPRESSION.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageCompressionQuality

(No version information available, might only be in SVN)

Imagick::setImageCompressionQualitySpécifie la qualité de compression de l'image

Description

bool Imagick::setImageCompressionQuality ( int $quality )

Spécifie la qualité de compression de l'image.

Liste de paramètres

quality

La qualité de compression de l'image sous forme d'entier.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageDelay

(PECL imagick 2.0.0)

Imagick::setImageDelayConfigure le délai de l'image

Description

bool Imagick::setImageDelay ( int $delay )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le délai de l'image.

Liste de paramètres

delay

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageDepth

(PECL imagick 2.0.0)

Imagick::setImageDepthConfigure la profondeur de l'image

Description

bool Imagick::setImageDepth ( int $depth )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la profondeur de l'image.

Liste de paramètres

depth

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageDispose

(PECL imagick 2.0.0)

Imagick::setImageDisposeConfigure la méthode de récupération

Description

bool Imagick::setImageDispose ( int $dispose )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la méthode de récupération.

Liste de paramètres

dispose

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageExtent

(PECL imagick 2.0.0)

Imagick::setImageExtentConfigure la taille d'une image

Description

bool Imagick::setImageExtent ( int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille d'une image (le nombre de colonnes et de lignes).

Liste de paramètres

columns

rows

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageFilename

(PECL imagick 2.0.0)

Imagick::setImageFilenameConfigure le nom de fichier d'une image dans une séquence

Description

bool Imagick::setImageFilename ( string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le nom de fichier d'une image dans une séquence.

Liste de paramètres

filename

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageFormat

(PECL imagick 2.0.0)

Imagick::setImageFormatConfigure le format d'une image dans une séquence

Description

bool Imagick::setImageFormat ( string $format )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le format d'une image dans une séquence.

Liste de paramètres

format

La représentation en chaîne du format d'image. Les formats supportés dépendent de l'installation ImageMagick.

Valeurs de retour

Returns TRUE on success.



Imagick::setImageGamma

(PECL imagick 2.0.0)

Imagick::setImageGammaConfigure la correction gamma

Description

bool Imagick::setImageGamma ( float $gamma )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la correction gamma.

Liste de paramètres

gamma

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageGravity

(No version information available, might only be in SVN)

Imagick::setImageGravityDéfinit la gravité de l'image

Description

bool Imagick::setImageGravity ( int $gravity )

Définit la propriété de gravité pour l'image courante. Cette méthode peut être utilisée pour définir la propriété de gravité pour une seule image d'une séquence. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.

Liste de paramètres

gravity

La propriété de gravité. Referez-vous à la liste des constantes de gravité.

Valeurs de retour

Aucune valeur n'est retournée.



Imagick::setImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::setImageGreenPrimaryConfigure la chromacité du point vert

Description

bool Imagick::setImageGreenPrimary ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la chromacité du point vert.

Liste de paramètres

x

y

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageIndex

(PECL imagick 2.0.0)

Imagick::setImageIndexModifie la position de l'itérateur

Description

bool Imagick::setImageIndex ( int $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Modifie la position de l'itérateur à l'index index.

Cette méthode est obsolète. Voyez Imagick::setIteratorIndex

Liste de paramètres

index

La position à laquelle mettre l'itérateur

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setImageInterlaceSchemeConfigure la méthode d'entrelacement de l'image

Description

bool Imagick::setImageInterlaceScheme ( int $interlace_scheme )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la méthode d'entrelacement de l'image.

Liste de paramètres

interlace_scheme

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::setImageInterpolateMethodConfigure la méthode d'interpolation de l'image

Description

bool Imagick::setImageInterpolateMethod ( int $method )

Configure la méthode d'interpolation de l'image.

Liste de paramètres

method

Une constante Imagick::INTERPOLATE_*.

Valeurs de retour

Returns TRUE on success.



Imagick::setImageIterations

(PECL imagick 2.0.0)

Imagick::setImageIterationsConfigure les itérations de l'image

Description

bool Imagick::setImageIterations ( int $iterations )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure les itérations de l'image.

Liste de paramètres

iterations

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageMatte

(PECL imagick 2.0.0)

Imagick::setImageMatteConfigure le canal mate de l'image

Description

bool Imagick::setImageMatte ( bool $matte )

Configure le canal mate de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

matte

TRUE active le canal mate, et FALSE le désactive.

Valeurs de retour

Returns TRUE on success.



Imagick::setImageMatteColor

(PECL imagick 2.0.0)

Imagick::setImageMatteColorConfigure la couleur mate

Description

bool Imagick::setImageMatteColor ( mixed $matte )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur mate.

Liste de paramètres

matte

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



Imagick::setImageOpacity

(PECL imagick 2.0.0)

Imagick::setImageOpacityConfigure le niveau d'opacité de l'image

Description

bool Imagick::setImageOpacity ( float $opacity )

Configure le niveau d'opacité de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.1 ou supérieur.

Liste de paramètres

opacity

Le niveau de transparence : 1.0 est totalement opaque, et 0.0 est totalement transparent.

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::setImageOpacity()

Un exemple avec Imagick::setImageOpacity()

<?php
/* Crée un objet  */
$image = new Imagick('source.png');

/* Configure l'opacité */
$image->setImageOpacity(0.7);

/* Affiche l'image */
header('Content-type: image/png');
echo 
$image;

?>



Imagick::setImageOrientation

(PECL imagick 2.0.0)

Imagick::setImageOrientationConfigure l'orientation de l'image

Description

bool Imagick::setImageOrientation ( int $orientation )

Configure l'orientation de l'image.

Liste de paramètres

orientation

Une des constantes d'orientation

Valeurs de retour

Returns TRUE on success.



Imagick::setImagePage

(PECL imagick 2.0.0)

Imagick::setImagePageConfigure la géométrie de la page de l'image

Description

bool Imagick::setImagePage ( int $width , int $height , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la géométrie de la page de l'image.

Liste de paramètres

width

height

x

y

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageProfile

(PECL imagick 2.0.0)

Imagick::setImageProfileAjoute un profil à un objet Imagick

Description

bool Imagick::setImageProfile ( string $name , string $profile )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un nouveau profile à un objet Imagick. Si un profil ajouté a le même nom qu'un profil déjà ajouté, il sera remplacé. Cette méthode diffère de Imagick::ProfileImage(), car elle n'applique aucun profil CMS.

Liste de paramètres

name

profile

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageProperty

(PECL imagick 2.0.0)

Imagick::setImagePropertyConfigure une propriété d'image

Description

bool Imagick::setImageProperty ( string $name , string $value )

Configure la propriété d'image name à la valeur value. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.

Liste de paramètres

name

value

Exemples

Exemple #1 Exemple avec Imagick::setImageProperty()

Définit et récupère les propriétés d'une image.

<?php
$image 
= new Imagick();
$image->newImage(300200"black");

$image->setImageProperty('Exif:Make''Imagick');
echo 
$image->getImageProperty('Exif:Make');
?>

Voir aussi

Valeurs de retour

Returns TRUE on success.



Imagick::setImageRedPrimary

(PECL imagick 2.0.0)

Imagick::setImageRedPrimaryConfigure la chromacité du point rouge

Description

bool Imagick::setImageRedPrimary ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la chromacité du point rouge.

Liste de paramètres

x

y

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::setImageRenderingIntentConfigure le type de rendu de l'image

Description

bool Imagick::setImageRenderingIntent ( int $rendering_intent )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le type de rendu de l'image.

Liste de paramètres

rendering_intent

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageResolution

(PECL imagick 2.0.0)

Imagick::setImageResolutionConfigure la résolution de l'image

Description

bool Imagick::setImageResolution ( float $x_resolution , float $y_resolution )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la résolution de l'image.

Liste de paramètres

x_resolution

y_resolution

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageScene

(PECL imagick 2.0.0)

Imagick::setImageSceneConfigure la scène de l'image

Description

bool Imagick::setImageScene ( int $scene )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la scène de l'image.

Liste de paramètres

scene

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::setImageTicksPerSecondConfigure le nombre e tick par seconde de l'image

Description

bool Imagick::setImageTicksPerSecond ( int $ticks_per-second )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le nombre e tick par seconde de l'image.

Liste de paramètres

ticks_per-second

Valeurs de retour

Returns TRUE on success.



Imagick::setImageType

(PECL imagick 2.0.0)

Imagick::setImageTypeConfigure le type d'image

Description

bool Imagick::setImageType ( int $image_type )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le type d'image.

Liste de paramètres

image_type

Valeurs de retour

Returns TRUE on success.



Imagick::setImageUnits

(PECL imagick 2.0.0)

Imagick::setImageUnitsConfigure les unités de résolutions de l'image

Description

bool Imagick::setImageUnits ( int $units )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure les unités de résolutions de l'image.

Liste de paramètres

units

Valeurs de retour

Returns TRUE on success.



Imagick::setImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::setImageVirtualPixelMethodConfigure la méthode du point virtuel de l'image

Description

bool Imagick::setImageVirtualPixelMethod ( int $method )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la méthode du point virtuel de l'image.

Liste de paramètres

method

Valeurs de retour

Returns TRUE on success.



Imagick::setImageWhitePoint

(PECL imagick 2.0.0)

Imagick::setImageWhitePointConfigure la chromacité du point blanc

Description

bool Imagick::setImageWhitePoint ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la chromacité du point blanc.

Liste de paramètres

x

y

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::setInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setInterlaceSchemeConfigure la compression de l'image

Description

bool Imagick::setInterlaceScheme ( int $interlace_scheme )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la compression de l'image.

Liste de paramètres

interlace_scheme

Valeurs de retour

Returns TRUE on success.



Imagick::setIteratorIndex

(PECL imagick 2.0.0)

Imagick::setIteratorIndexDéplace l'itérateur

Description

bool Imagick::setIteratorIndex ( int $index )

Déplace l'itérateur à la position index dans la séquence d'images. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

index

La position finale de l'itérateur

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::setIteratorIndex()

Crée des images, définit et récupère l'index de l'itérateur.

<?php
$im 
= new Imagick();
$im->newImage(100100, new ImagickPixel("red"));
$im->newImage(100100, new ImagickPixel("green"));
$im->newImage(100100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo 
$im->getIteratorIndex();
?>

Voir aussi



Imagick::setLastIterator

(PECL imagick 2.0.1)

Imagick::setLastIteratorPositionne l'itérateur Imagick à la dernière image

Description

bool Imagick::setLastIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Positionne l'itérateur Imagick à la dernière image.

Valeurs de retour

Returns TRUE on success.



Imagick::setOption

(PECL imagick 2.0.0)

Imagick::setOptionConfigure une option d'un objet Imagick

Description

bool Imagick::setOption ( string $key , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure une ou plusieurs options de l'objet Imagick.

Liste de paramètres

key

value

Valeurs de retour

Returns TRUE on success.



Imagick::setPage

(PECL imagick 2.0.0)

Imagick::setPageConfigure la géométrie de la page de l'objet Imagick

Description

bool Imagick::setPage ( int $width , int $height , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la géométrie de la page de l'objet Imagick.

Liste de paramètres

width

height

x

y

Valeurs de retour

Returns TRUE on success.



Imagick::setPointSize

(PECL imagick 2.1.0)

Imagick::setPointSizeDéfinit la taille du point

Description

bool Imagick::setPointSize ( float $point_size )

Définit la propriété de la taille du point de l'objet. Cette méthode peut être utilisée pour, par exemple, définir la taille de la police de caractères pour la légende : pseudo-format. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Liste de paramètres

point_size

La taille du point.

Valeurs de retour

Returns TRUE on success.

Voir aussi

Exemples

Exemple #1 Exemple avec Imagick::setPointSize()

Exemple d'utilisation de la méthode Imagick::setPointSize

<?php
/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Définit la police de caractères pour l'objet */
$im->setFont("example.ttf");

/* Définit la taille du point */
$im->setPointSize(12);

/* Crée une nouvelle légende */
$im->newPseudoImage(100100"caption:Hello");

/* Faites quelques choses avec votre nouvelle image */
?>



Imagick::setResolution

(PECL imagick 2.0.0)

Imagick::setResolutionConfigure la résolution de l'image

Description

bool Imagick::setResolution ( float $x_resolution , float $y_resolution )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la résolution de l'image.

Liste de paramètres

x_resolution

y_resolution

Valeurs de retour

Returns TRUE on success.



Imagick::setResourceLimit

(PECL imagick 2.0.0)

Imagick::setResourceLimitConfigure la taille limite d'une ressource

Description

bool Imagick::setResourceLimit ( int $type , int $limit )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille limite d'une ressource, en megaoctets.

Liste de paramètres

type

limit

Valeurs de retour

Returns TRUE on success.



Imagick::setSamplingFactors

(PECL imagick 2.0.0)

Imagick::setSamplingFactorsConfigure les facteurs d'échantillonnage de l'image

Description

bool Imagick::setSamplingFactors ( array $factors )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure les facteurs d'échantillonnage de l'image.

Liste de paramètres

factors

Valeurs de retour

Returns TRUE on success.



Imagick::setSize

(PECL imagick 2.0.0)

Imagick::setSizeConfigure la taille de l'objet Imagick

Description

bool Imagick::setSize ( int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille de l'objet Imagick. Configurez cet attribut avant d'ouvrir une image brute, aux formats RGB, GRAY ou CMYK.

Liste de paramètres

columns

rows

Valeurs de retour

Returns TRUE on success.



Imagick::setSizeOffset

(PECL imagick 2.0.0)

Imagick::setSizeOffsetConfigure la taille et la position de l'objet Imagick

Description

bool Imagick::setSizeOffset ( int $columns , int $rows , int $offset )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille et la position de l'objet Imagick. Configurez ces attributs avant de lire une image brute, aux formats RGB, GRAY ou CMYK. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

columns

rows

offset

Valeurs de retour

Returns TRUE on success.



Imagick::setType

(PECL imagick 2.0.0)

Imagick::setTypeConfigure l'attribut de l'image

Description

bool Imagick::setType ( int $image_type )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'attribut de l'image.

Liste de paramètres

image_type

Valeurs de retour

Returns TRUE on success.



Imagick::shadeImage

(PECL imagick 2.0.0)

Imagick::shadeImageCrée un effet 3D

Description

bool Imagick::shadeImage ( bool $gray , float $azimuth , float $elevation )

Récupère une lumière distante de l'image pour créer un effet 3D. Vous pouvez contrôler le positionnement de la lumière avec l'azimut et l'élévation ; l'azimut est mesuré en degré de l'axe X et l'élévation est mesuré sur l'axe Z. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

gray

azimuth

elevation

Valeurs de retour

Returns TRUE on success.



Imagick::shadowImage

(PECL imagick 2.0.0)

Imagick::shadowImageSimule une ombre sur l'image

Description

bool Imagick::shadowImage ( float $opacity , float $sigma , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Simule une ombre sur l'image.

Liste de paramètres

opacity

sigma

x

y

Valeurs de retour

Returns TRUE on success.



Imagick::sharpenImage

(PECL imagick 2.0.0)

Imagick::sharpenImageAiguise une image

Description

bool Imagick::sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Aiguise une image. Nous modifions l'image avec un opérateur Gaussien utilisant le paramètre radius et la déviation standard sigma. Pour de bons résultats, le paramètre radius doit être plus élevé que le paramètre sigma. Utilisez un radius de 0 et la méthode choisira un bon radius à votre place.

Liste de paramètres

radius

sigma

channel

Valeurs de retour

Returns TRUE on success.



Imagick::shaveImage

(PECL imagick 2.0.0)

Imagick::shaveImageSupprime les pixels du bord de l'image

Description

bool Imagick::shaveImage ( int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime les pixels du bord de l'image. Alloue la mémoire nécessaire pour la structure de la nouvelle image et retourne un pointeur vers la nouvelle image.

Liste de paramètres

columns

rows

Valeurs de retour

Returns TRUE on success.



Imagick::shearImage

(PECL imagick 2.0.0)

Imagick::shearImageCrée un parallélogramme

Description

bool Imagick::shearImage ( mixed $background , float $x_shear , float $y_shear )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Bouge le côté d'une image le long des axes X ou Y, créant un parallélogramme. Une direction X coupe le côté le long de l'axe X, tandis qu'une direction Y coupe le côté le long de l'axe Y. La coupe est contrôlée par l'angle de coupe. Pour une coupe de direction X, x_shear sera mesuré relativement à l'axe Y, et similiairement, pour une coupe de direction Y, y_shear est mesuré relativement à l'axe X. Les triangles vides laissés après la coupe seront remplis avec la couleur d'arrière plan.

Liste de paramètres

background

La couleur d'arrière plan

x_shear

Le nombre de degrés à couper suivant l'axe X

y_shear

Le nombre de degrés à couper suivant l'axe Y

Valeurs de retour

Returns TRUE on success.

Historique

Version Description
2.1.0 Autorise maintenant une chaîne représentant la couleur comme troisième paramètre. Les anciennes versions n'autorisent que des objets ImagickPixel.



Imagick::sigmoidalContrastImage

(PECL imagick 2.0.0)

Imagick::sigmoidalContrastImageAjuste le contraste de l'image

Description

bool Imagick::sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajuste le contraste de l'image avec un algorithme de contraste sigmoïde non linéaire. Augmenter le contraste de l'image en utilisant une fonction de transfert sigmoïde sans saturer les lumières hautes et les ombres. Le contraste indique de combien il faut augmenter le contraste (0 pour ne rien faire, 3 est une valeur typique, 20 est une valeur élevée) ; le point du milieu indique où les tons moyens seront dans l'image résultante (0 correspond à blanc, 50 correspond à gris, 100 correspond à noir). Définissez le paramètre sharpen à TRUE pour augmenter le contraste de l'image, sinon, le contraste sera réduit.

Liste de paramètres

sharpen

alpha

beta

channel

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::sketchImage

(PECL imagick 2.0.0)

Imagick::sketchImageSimule un crayon à main levée

Description

bool Imagick::sketchImage ( float $radius , float $sigma , float $angle )

Simule un crayon à main levée. Nous modifions l'image en utilisant un opérateur Gaussien avec le paramètre radius et la déviation standard sigma. Pour de bons résultats, le paramètre radius doit être plus élevé que le paramètre sigma. Utilisez un sigma de 0 et Imagick::sketchImage() sélectionnera automatiquement un bon radius à votre place. Le paramètre angle fournit l'angle du flou du mouvement. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

radius

sigma

angle

Valeurs de retour

Returns TRUE on success.



Imagick::solarizeImage

(PECL imagick 2.0.0)

Imagick::solarizeImageApplique un effet de solarisation à l'image

Description

bool Imagick::solarizeImage ( int $threshold )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique un effet de solarisation à l'image, similaire à l'effet effectué dans une chambre noire en exposant des zones du papier photo sensitive à la lumière. Le seuil threshold peut aller de 0 à QuantumRange et mesure la densité de la solarisation.

Liste de paramètres

threshold

Valeurs de retour

Returns TRUE on success.



Imagick::sparseColorImage

(No version information available, might only be in SVN)

Imagick::sparseColorImageInterpole les couleurs

Description

public bool Imagick::sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Le tableau fourni par le paramètre arguments contient les valeurs numériques utilisées par cette méthode pour interpoler les couleurs trouvées aux coordonnées de l'image entière en utilisant le paramètre sparse_method. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

SPARSE_METHOD

Référez-vous à la liste des constantes pour la méthode sparse.

arguments

Un tableau contenant les coordonnées. Le tableau est au format array(1,1, 2,45).

CHANNEL

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Repportez-vous à la liste des constantes de canaux

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::spliceImage

(PECL imagick 2.0.0)

Imagick::spliceImageJoint une couleur solide dans l'image

Description

bool Imagick::spliceImage ( int $width , int $height , int $x , int $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Joint une couleur solide dans l'image.

Liste de paramètres

width

height

x

y

Valeurs de retour

Returns TRUE on success.



Imagick::spreadImage

(PECL imagick 2.0.0)

Imagick::spreadImageBouge aléatoirement chaque pixel d'un bloc

Description

bool Imagick::spreadImage ( float $radius )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Effet spécial qui bouge aléatoirement chaque pixel d'un bloc, défini par le paramètre radius.

Liste de paramètres

radius

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::steganoImage

(PECL imagick 2.0.0)

Imagick::steganoImageCache un filigrane digital dans l'image

Description

Imagick Imagick::steganoImage ( Imagick $watermark_wand , int $offset )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Cache un filigrane digital dans l'image. Récupérez le filigrane plus tard pour prouver l'authenticité de l'image. Le paramètre offset définit la position de départ à partir de laquelle on cache le filigrane.

Liste de paramètres

watermark_wand

offset

Valeurs de retour

Returns TRUE on success.



Imagick::stereoImage

(PECL imagick 2.0.0)

Imagick::stereoImageFusionne 2 images

Description

bool Imagick::stereoImage ( Imagick $offset_wand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Fusionne 2 images et produit une seule image représentant la fusion de l'image de gauche et de droite d'une paire stéréo.

Liste de paramètres

offset_wand

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::stripImage

(PECL imagick 2.0.0)

Imagick::stripImageSupprime d'une image tous les profiles et les commentaires

Description

bool Imagick::stripImage ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime d'une image tous les profiles et les commentaires.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::swirlImage

(PECL imagick 2.0.0)

Imagick::swirlImageTourbillonne les pixels du centre de l'image

Description

bool Imagick::swirlImage ( float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Tourbillonne les pixels du centre de l'image, où le paramètre degrees indique le degré du tourbillon de l'arc autour duquel les pixels sont bougés. Vous obtiendrez des effets différents suivant le degré choisi, entre 1 et 360.

Liste de paramètres

degrees

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::textureImage

(PECL imagick 2.0.0)

Imagick::textureImageRépète les carreaux de la texture d'une image

Description

bool Imagick::textureImage ( Imagick $texture_wand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Répète les carreaux de la texture d'une image via le canevas de l'image.

Liste de paramètres

texture_wand

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::thresholdImage

(PECL imagick 2.0.0)

Imagick::thresholdImageModifie la valeur des pixels individuels, basée sur un seuil

Description

bool Imagick::thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Modifie la valeur des pixels individuels, basée sur l'intensité de chaque pixel, comparée au seuil. Le résultat sera une image d'un contraste élevé comprenant 2 couleurs.

Liste de paramètres

threshold

channel

Valeurs de retour

Returns TRUE on success.



Imagick::thumbnailImage

(PECL imagick 2.0.0)

Imagick::thumbnailImageModifie la taille d'une image

Description

bool Imagick::thumbnailImage ( int $columns , int $rows [, bool $bestfit = false [, bool $fill = false ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Modifie la taille d'une image dans les dimensions données et supprime tous les profiles associés. Le but est de produire une miniature à faible coût pour l'afficher sur le web. Si TRUE est fourni comme troisième paramètre, alors les paramètres columns et rows seront utilisés comme maximum de chacun des côtés. Chaque côté sera abaissé tant que la taille désirée ne sera pas atteinte.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

columns

Largeur de l'image

rows

Hauteur de l'image

bestfit

Si l'on doit forcer les valeurs maximales

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::tintImage

(PECL imagick 2.0.0)

Imagick::tintImageApplique un vecteur de couleur à chaque pixel de l'image

Description

bool Imagick::tintImage ( mixed $tint , mixed $opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique un vecteur de couleur à chaque pixel de l'image. La longueur du vecteur est 0 pour noir et blanc et à son maximum pour des tons moyens. La fonction de vecteur est f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

Liste de paramètres

tint

opacity

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Autorise maintenant une chaîne représentant la couleur en tant que premier paramètre et un nombre décimal représentant la valeur d'opacité comme deuxième paramètre. Les anciennes versions autorisent uniquement des objets ImagickPixel.



Imagick::transformImage

(PECL imagick 2.0.0)

Imagick::transformImageMéthode de convenance pour définir la taille de rognage et la géométrie de l'image

Description

Imagick Imagick::transformImage ( string $crop , string $geometry )

Méthode de convenance pour définir la taille de rognage et la géométrie de l'image depuis des chaînes de caractères. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

crop

Une géométrie de rognage. Cette géométrie définit une sous-région de l'image à rogner.

geometry

Une géométrie. Cette géométrie définit la taille finale de l'image.

Valeurs de retour

Returns TRUE on success.

Exemples

Exemple #1 Exemple avec Imagick::transformImage():

L'exemple crée une image noire 100x100.

<?php
$image 
= new Imagick();
$image->newImage(300200"black");
$new_image $image->transformImage("100x100""100x100");
$new_image->writeImage('test_out.jpg');
?>

Voir aussi



Imagick::transparentPaintImage

(No version information available, might only be in SVN)

Imagick::transparentPaintImageColorise les pixels transparents

Description

bool Imagick::transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert )

Colorise les pixels correspondant à la couleur transparente. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

target

La couleur cible à coloriser.

alpha

Le degré de transparence : 1.0 correspond à totalement opaque et 0.0 à totalement transparent.

fuzz

La quantité de poussière de papier. Par exemple, le fait de définir la poussière de papier à 10 et la couleur rouge à une intensité de 100 et de 102 ne sera pas interprété comme la même couleur.

invert

Si TRUE, colorise tous les pixels qui ne correspondent pas à la couleur cible.

Valeurs de retour

Returns TRUE on success.



Imagick::transposeImage

(PECL imagick 2.0.0)

Imagick::transposeImageApplique une symétrie verticale

Description

bool Imagick::transposeImage ( void )

Applique une symétrie verticale, en créant la réflexion de chaque pixel autour d'un axe horizontal, avec une rotation de 90 degrés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::transverseImage

(PECL imagick 2.0.0)

Imagick::transverseImageCrée un miroir horizontal de l'image

Description

bool Imagick::transverseImage ( void )

Crée un miroir horizontal de l'image en reflétant les pixels autour d'un axe Y central, et en effectuant une rotation de 270 degrés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::trimImage

(PECL imagick 2.0.0)

Imagick::trimImageSupprime les bords de l'image

Description

bool Imagick::trimImage ( float $fuzz )

Supprime les bords qui correspondent à la couleur d'arrière-plan de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

fuzz

Par défaut, la cible doit correspondre à une couleur particulière de pixel. Cependant, dans la plupart des cas, 2 couleurs peuvent différer légèrement. Le paramètre fuzz de l'image définit la tolérance acceptée afin de considérer deux couleurs comme couleurs identiques. Ce paramètre représente les variations d'intervalle quantique.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::trimImage():

Tronque l'image, puis l'affiche au navigateur.

<?php
/* Crée l'objet et lit l'image */
$im = new Imagick("image.jpg");

/* Tronque l'image. */
$im->trimImage(0);

/* Affiche l'image */
header("Content-Type: image/" $im->getImageFormat());
echo 
$im;
?>

Voir aussi



Imagick::uniqueImageColors

(PECL imagick 2.0.0)

Imagick::uniqueImageColorsNe conserve qu'une couleur de pixel

Description

bool Imagick::uniqueImageColors ( void )

Ne conserve qu'une couleur de pixel et supprime les autres. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Returns TRUE on success.



Imagick::unsharpMaskImage

(PECL imagick 2.0.0)

Imagick::unsharpMaskImageRend une image plus nette

Description

bool Imagick::unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Rend une image plus nette. Nous traitons l'image avec un opérateur Gaussien d'un radius donné et d'une déviation standard (sigma). Pour de bons résultats, le radius doit être supérieur au sigma. L'utilisation d'un radius de 0 et Imagick::UnsharpMaskImage() sélectionne un bon radius pour vous.

Liste de paramètres

radius

sigma

amount

threshold

channel

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.



Imagick::valid

(PECL imagick 2.0.0)

Imagick::validVérifie si l'élément courant est valide

Description

bool Imagick::valid ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si l'élément courant est valide.

Valeurs de retour

Returns TRUE on success.



Imagick::vignetteImage

(PECL imagick 2.0.0)

Imagick::vignetteImageAjout un filtre vignette à l'image

Description

bool Imagick::vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )

Adoucit les contours de l'image, à la mode des vignettes. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

blackPoint

Le point noir.

whitePoint

Le point blanc.

x

L'abscisse de l'ellipse.

y

L'ordonnée de l'ellipse.

Valeurs de retour

Returns TRUE on success.

Voir aussi



Imagick::waveImage

(PECL imagick 2.0.0)

Imagick::waveImageAjoute un filtre de vagues à l'image

Description

bool Imagick::waveImage ( float $amplitude , float $length )

Ajoute un filtre de vagues à l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

amplitude

Amplitude de la vague.

length

Longueur de la vague.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi



Imagick::whiteThresholdImage

(PECL imagick 2.0.0)

Imagick::whiteThresholdImageForce tous les pixels en dessous du seuil en blanc

Description

bool Imagick::whiteThresholdImage ( mixed $threshold )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Identique à Imagick::ThresholdImage() mais force tous les pixels en dessous du seuil en blanc, laissant tous les autres pixels inchangés.

Liste de paramètres

threshold

Valeurs de retour

Returns TRUE on success.

Historique

Version Description
2.1.0 Autorise désormais une chaîne représentant la couleur comme paramètre. Les anciennes versions ne permettaient qu'un objet ImagickPixel.



Imagick::writeImage

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImageÉcrit une image dans le fichier spécifié

Description

bool Imagick::writeImage ([ string $filename ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Écrit une image dans un fichier spécifié. Si le paramètre filename vaut NULL, l'image sera écrite dans le fichier défini par Imagick::ReadImage() ou Imagick::SetImageFilename().

Liste de paramètres

filename

Valeurs de retour

Returns TRUE on success.



Imagick::writeImageFile

(No version information available, might only be in SVN)

Imagick::writeImageFileÉcrit une image dans un descripteur de fichier

Description

bool Imagick::writeImageFile ( resource $filehandle )

Écrit la séquence de l'image dans un descripteur de fichier ouvert. Le descripteur doit avoir été ouvert avec, par exemple, la fonction fopen. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

filehandle

Descripteur de fichier dans lequel l'image sera écrite.

Valeurs de retour

Returns TRUE on success.



Imagick::writeImages

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImagesÉcrit une image ou une séquence d'images

Description

bool Imagick::writeImages ( string $filename , bool $adjoin )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Écrit une image ou une séquence d'images.

Liste de paramètres

filename

adjoin

Valeurs de retour

Returns TRUE on success.



Imagick::writeImagesFile

(No version information available, might only be in SVN)

Imagick::writeImagesFileÉcrits des frames dans un descripteur de fichiers

Description

bool Imagick::writeImagesFile ( resource $filehandle )

Écrits toutes les frames d'un image dans un descripteur de fichier. Cette méthode peut être utilisée pour écrire des gifs animés ou d'autres images composées de plusieurs frames dans un descripteur de fichier ouvert. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

filehandle

Descripteur de fichier dans lequel les frames seront écrites.

Valeurs de retour

Returns TRUE on success.


Sommaire



La classe ImagickDraw

Synopsis de la classe

ImagickDraw {
bool affine ( array $affine )
bool annotation ( float $x , float $y , string $text )
bool arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
bool bezier ( array $coordinates )
bool circle ( float $ox , float $oy , float $px , float $py )
bool clear ( void )
ImagickDraw clone ( void )
bool color ( float $x , float $y , int $paintMethod )
bool comment ( string $comment )
bool composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
ImagickDraw __construct ( void )
bool destroy ( void )
bool ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
string getClipPath ( void )
int getClipRule ( void )
int getClipUnits ( void )
ImagickPixel getFillColor ( void )
float getFillOpacity ( void )
int getFillRule ( void )
string getFont ( void )
string getFontFamily ( void )
float getFontSize ( void )
int getFontStyle ( void )
int getFontWeight ( void )
int getGravity ( void )
bool getStrokeAntialias ( void )
ImagickPixel getStrokeColor ( void )
array getStrokeDashArray ( void )
float getStrokeDashOffset ( void )
int getStrokeLineCap ( void )
int getStrokeLineJoin ( void )
int getStrokeMiterLimit ( void )
float getStrokeOpacity ( void )
float getStrokeWidth ( void )
int getTextAlignment ( void )
bool getTextAntialias ( void )
int getTextDecoration ( void )
string getTextEncoding ( void )
ImagickPixel getTextUnderColor ( void )
string getVectorGraphics ( void )
bool line ( float $sx , float $sy , float $ex , float $ey )
bool matte ( float $x , float $y , int $paintMethod )
bool pathClose ( void )
bool pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )
bool pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
bool pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
bool pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathFinish ( void )
bool pathLineToAbsolute ( float $x , float $y )
bool pathLineToHorizontalAbsolute ( float $x )
bool pathLineToHorizontalRelative ( float $x )
bool pathLineToRelative ( float $x , float $y )
bool pathLineToVerticalAbsolute ( float $y )
bool pathLineToVerticalRelative ( float $y )
bool pathMoveToAbsolute ( float $x , float $y )
bool pathMoveToRelative ( float $x , float $y )
bool pathStart ( void )
bool point ( float $x , float $y )
bool polygon ( array $coordinates )
bool polyline ( array $coordinates )
bool pop ( void )
bool popClipPath ( void )
bool popDefs ( void )
bool popPattern ( void )
bool push ( void )
bool pushClipPath ( string $clip_mask_id )
bool pushDefs ( void )
bool pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
bool rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
bool render ( void )
bool rotate ( float $degrees )
bool roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
bool scale ( float $x , float $y )
bool setClipPath ( string $clip_mask )
bool setClipRule ( int $fill_rule )
bool setClipUnits ( int $clip_units )
bool setFillAlpha ( float $opacity )
bool setFillColor ( ImagickPixel $fill_pixel )
bool setFillOpacity ( float $fillOpacity )
bool setFillPatternURL ( string $fill_url )
bool setFillRule ( int $fill_rule )
bool setFont ( string $font_name )
bool setFontFamily ( string $font_family )
bool setFontSize ( float $pointsize )
bool setFontStretch ( int $fontStretch )
bool setFontStyle ( int $style )
bool setFontWeight ( int $font_weight )
bool setGravity ( int $gravity )
bool setStrokeAlpha ( float $opacity )
bool setStrokeAntialias ( bool $stroke_antialias )
bool setStrokeColor ( ImagickPixel $stroke_pixel )
bool setStrokeDashArray ( array $dashArray )
bool setStrokeDashOffset ( float $dash_offset )
bool setStrokeLineCap ( int $linecap )
bool setStrokeLineJoin ( int $linejoin )
bool setStrokeMiterLimit ( int $miterlimit )
bool setStrokeOpacity ( float $stroke_opacity )
bool setStrokePatternURL ( string $stroke_url )
bool setStrokeWidth ( float $stroke_width )
bool setTextAlignment ( int $alignment )
bool setTextAntialias ( bool $antiAlias )
bool setTextDecoration ( int $decoration )
bool setTextEncoding ( string $encoding )
bool setTextUnderColor ( ImagickPixel $under_color )
bool setVectorGraphics ( string $xml )
bool setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
bool skewX ( float $degrees )
bool skewY ( float $degrees )
bool translate ( float $x , float $y )
}

ImagickDraw::affine

(PECL imagick 2.0.0)

ImagickDraw::affineAjuste la matrice de transformation affine courante

Description

bool ImagickDraw::affine ( array $affine )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajuste la matrice de transformation affine courante, avec la nouvelle matrice de transformation.

Liste de paramètres

affine

Paramètres de matrice de transformation affine.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::annotation

(PECL imagick 2.0.0)

ImagickDraw::annotationDessine un texte sur une image

Description

bool ImagickDraw::annotation ( float $x , float $y , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un texte sur une image.

Liste de paramètres

x

L'abscisse du texte à dessiner.

y

L'ordonnée du texte à dessiner.

text

Le texte à dessiner.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::arc

(PECL imagick 2.0.0)

ImagickDraw::arcDessine un arc

Description

bool ImagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un arc, placé à l'intérieur d'un rectangle.

Liste de paramètres

sx

Abscisse du point de début d'arc dans le rectangle d'encadrement

sy

Ordonnée du point de début d'arc dans le rectangle d'encadrement

ex

Abscisse du point de fin d'arc dans le rectangle d'encadrement

ey

Ordonnée du point de fin d'arc dans le rectangle d'encadrement

sd

Degré de rotation initial

ed

Degré de rotation final

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::bezier

(PECL imagick 2.0.0)

ImagickDraw::bezierDessine une courbe de Bézier

Description

bool ImagickDraw::bezier ( array $coordinates )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier, à l'ait d'une série de point de contrôle.

Liste de paramètres

coordinates

Tableau multidimensionnel tel que array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::circle

(PECL imagick 2.0.0)

ImagickDraw::circleDessine un cercle

Description

bool ImagickDraw::circle ( float $ox , float $oy , float $px , float $py )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un cercle.

Liste de paramètres

ox

abscisse de l'origine

oy

ordonnée de l'origine

px

abscisse du périmètre

py

ordonnée du périmètre

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::clear

(PECL imagick 2.0.0)

ImagickDraw::clearEfface tout l'objet ImagickDraw

Description

bool ImagickDraw::clear ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Efface tout l'objet ImagickDraw et toutes les commandes accumulées, puis remet les directives à leur valeur par défaut.

Valeurs de retour

Retourne un objet ImagickDraw.



ImagickDraw::clone

(PECL imagick 2.0.0)

ImagickDraw::cloneFait une copie exacte de l'objet ImagickDraw

Description

ImagickDraw ImagickDraw::clone ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Fait une copie exacte de l'objet ImagickDraw.

Valeurs de retour



ImagickDraw::color

(PECL imagick 2.0.0)

ImagickDraw::colorDessine une couleur sur une image

Description

bool ImagickDraw::color ( float $x , float $y , int $paintMethod )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une couleur sur une image, avec la couleur de remplissage courante, en commençant à une position donnée, et en utilisant la méthode de coloration indiquée.

Liste de paramètres

x

abscisse du point de peinture

y

ordonnée du point de peinture

paintMethod

une des constantes de PAINT_

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::comment

(PECL imagick 2.0.0)

ImagickDraw::commentAjoute un commentaire

Description

bool ImagickDraw::comment ( string $comment )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un commentaire au flux de sortie.

Liste de paramètres

comment

La chaîne de commentaire

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::composite

(PECL imagick 2.0.0)

ImagickDraw::compositeCompose une image avec une autre

Description

bool ImagickDraw::composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compose une image avec une autre an image, en utilisant l'opérateur de composition, à la position et à la taille indiquées.

Liste de paramètres

compose

l'opérateur de composition. Une des constantes COMPOSITE_

x

abscisse du coin supérieur gauche

y

ordonnée du coin supérieur gauche

width

largeur de l'image de composition

height

hauteur de l'image de composition

compositeWand

L'objet Imagick où la composition est prise

Valeurs de retour

Returns TRUE on success.



ImagickDraw::__construct

(PECL imagick 2.0.0)

ImagickDraw::__constructLe constructeur ImagickDraw

Description

ImagickDraw ImagickDraw::__construct ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Le constructeur ImagickDraw

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::destroy

(PECL imagick 2.0.0)

ImagickDraw::destroyLibère toutes les ressources associées à un objet ImageDraw

Description

bool ImagickDraw::destroy ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Libère toutes les ressources associées à un objet ImageDraw.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::ellipse

(PECL imagick 2.0.0)

ImagickDraw::ellipseDessine une ellipse sur une image

Description

bool ImagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ellipse sur une image.

Liste de paramètres

ox

oy

rx

ry

start

end

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::getClipPath

(PECL imagick 2.0.0)

ImagickDraw::getClipPathRetourne l'identifiant du chemin courant

Description

string ImagickDraw::getClipPath ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'identifiant du chemin courant.

Valeurs de retour

Retourne une chaîne, ou FALSE si aucun chemin n'existe.



ImagickDraw::getClipRule

(PECL imagick 2.0.0)

ImagickDraw::getClipRuleRetourne la règle de remplissage courante pour les polygones

Description

int ImagickDraw::getClipRule ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la règle de remplissage courante pour les polygones.

Valeurs de retour

Retourne une des constantes FILLRULE_.



ImagickDraw::getClipUnits

(PECL imagick 2.0.0)

ImagickDraw::getClipUnitsRetourne l'unité d'interprétation des chemins

Description

int ImagickDraw::getClipUnits ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'unité d'interprétation des chemins.

Valeurs de retour

Retourne un entier en cas de succès.



ImagickDraw::getFillColor

(PECL imagick 2.0.0)

ImagickDraw::getFillColorRetourne la couleur de remplissage

Description

ImagickPixel ImagickDraw::getFillColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur de remplissage utilisé pour les objets pleins.

Valeurs de retour

Retourne un objet ImagickPixel.



ImagickDraw::getFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::getFillOpacityRetourne l'opacité de dessin

Description

float ImagickDraw::getFillOpacity ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'opacité de dessin. 1.0 représente l'opacité totale.

Valeurs de retour

L'opacité.



ImagickDraw::getFillRule

(PECL imagick 2.0.0)

ImagickDraw::getFillRuleRetourne la règle de remplissage

Description

int ImagickDraw::getFillRule ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la règle de remplissage utilisée lors du dessin des polygones.

Valeurs de retour

Retourne une constante FILLRULE_



ImagickDraw::getFont

(PECL imagick 2.0.0)

ImagickDraw::getFontRetourne la police

Description

string ImagickDraw::getFont ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une chaîne spécifiant la police utilisée pour les annotations.

Valeurs de retour

Retourne une chaîne en cas de succès, et FALSE sinon.



ImagickDraw::getFontFamily

(PECL imagick 2.0.0)

ImagickDraw::getFontFamilyRetourne la famille de police

Description

string ImagickDraw::getFontFamily ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la famille de police des annotations.

Valeurs de retour

Retourne la famille de police des annotations, ou FALSE si la famille de police n'est pas configurée.



ImagickDraw::getFontSize

(PECL imagick 2.0.0)

ImagickDraw::getFontSizeRetourne la taille de la police

Description

float ImagickDraw::getFontSize ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la taille de la police.

Valeurs de retour

Retourne la taille de la police utilisée par l'objet ImagickDraw.



ImagickDraw::getFontStyle

(PECL imagick 2.0.0)

ImagickDraw::getFontStyleRetourne le style de la police

Description

int ImagickDraw::getFontStyle ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le style de la police.

Valeurs de retour

Retourne la constante de style STYLE_, associée à l'objet ImagickDraw, ou 0 si le style n'est pas fait.



ImagickDraw::getFontWeight

(PECL imagick 2.0.0)

ImagickDraw::getFontWeightRetourne le poids de la police

Description

int ImagickDraw::getFontWeight ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le poids de la police.

Valeurs de retour

Retourne un entier en cas de succès, et 0 si le poids n'est pas configuré.



ImagickDraw::getGravity

(PECL imagick 2.0.0)

ImagickDraw::getGravityRetourne la gravité de placement de texte

Description

int ImagickDraw::getGravity ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la gravité de placement de texte, utilisée lors de l'annotation.

Valeurs de retour

Retourne une constante GRAVITY_ en cas de succès, et 0 si la gravité n'est pas configurée.



ImagickDraw::getStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::getStrokeAntialiasRetourne la configuration d'anti-aliasing de trait

Description

bool ImagickDraw::getStrokeAntialias ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la configuration d'anti-aliasing de trait. Les traits de dessins sont anti-aliasés par défaut. Lorsque l'anti-aliasing est désactivé, les pixels sont évalués à partir d'un seuil, pour déterminer si la couleur de trait ou de fond doit être utilisée.

Valeurs de retour

Retourne TRUE si l'anti-aliasing est activé, ou FALSE sinon.



ImagickDraw::getStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::getStrokeColorRetourne la couleur des contours d'objets

Description

ImagickPixel ImagickDraw::getStrokeColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur des contours d'objets.

Liste de paramètres

stroke_color

Valeurs de retour

Retourne un objet ImagickPixel qui décrit la couleur.



ImagickDraw::getStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashArrayRetourne un tableau représentant le motif de pointillés

Description

array ImagickDraw::getStrokeDashArray ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un tableau représentant le motif de pointillés, les vides et les pleins.

Valeurs de retour

Retourne un tableau en cas de succès, et un tableau vide sinon.



ImagickDraw::getStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashOffsetRetourne l'offset du pointillé dans le motif

Description

float ImagickDraw::getStrokeDashOffset ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'offset du pointillé dans le motif.

Valeurs de retour

Retourne un nombre décimal représentant, le début du pointillé dans le motif.



ImagickDraw::getStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineCapRetourne la forme à utiliser pour dessiner les bouts de sous-chemins

Description

int ImagickDraw::getStrokeLineCap ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la forme à utiliser pour dessiner les bouts de sous-chemins.

Valeurs de retour

Retourne une des constantes LINECAP_, ou 0 si les bouts de lignes ne sont pas configurés.



ImagickDraw::getStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineJoinRetourne la forme à utiliser pour dessiner les coins d'un chemin

Description

int ImagickDraw::getStrokeLineJoin ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la forme à utiliser pour dessiner les coins d'un chemin (ou d'autres formes vectorielles), quand ils sont dessinés.

Valeurs de retour

Retourne une constante de jointure de lignes, ou 0 si les coins ne sont pas configurés.



ImagickDraw::getStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::getStrokeMiterLimitRetourne la 'miterLimit'

Description

int ImagickDraw::getStrokeMiterLimit ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la 'miterLimit'. Lorsque deux segments se rencontrent à angle aigu, que les des jointures miter ont été spécifier pour 'lineJoin', il est possible pour le miter de dépasser l'épaisseur du trait du chemin. La 'miterLimit' impose une limite au ratio entre la longueur du miter et 'lineWidth'.

Valeurs de retour

Retourne un entier décrivant la 'miterLimit', et 0 si la 'miterLimit' n'est pas configurée.



ImagickDraw::getStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::getStrokeOpacityRetourne l'opacité des contours d'un objet

Description

float ImagickDraw::getStrokeOpacity ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'opacité des contours d'un objet.

Valeurs de retour

Retourne un nombre décimal décrivant l'opacité des contours d'un objet.



ImagickDraw::getStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::getStrokeWidthRetourne la largeur du trait utilisé

Description

float ImagickDraw::getStrokeWidth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la largeur du trait utilisé.

Valeurs de retour

Retourne un nombre décimal qui décrit la largeur du trait.



ImagickDraw::getTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::getTextAlignmentRetourne l'alignement du texte

Description

int ImagickDraw::getTextAlignment ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'alignement du texte.

Valeurs de retour

Retourne une des constantes ALIGN_, et 0 si l'alignement n'est pas configuré.



ImagickDraw::getTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::getTextAntialiasRetourne la configuration de l'anti-aliasing de texte

Description

bool ImagickDraw::getTextAntialias ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la configuration de l'anti-aliasing de texte, qui détermine si le texte est anti-aliasé ou pas. Les textes sont anti-aliasés par défaut.

Valeurs de retour

Retourne TRUE si le texte est anti-aliasé, et FALSE sinon.



ImagickDraw::getTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::getTextDecorationRetourne la décoration du texte

Description

int ImagickDraw::getTextDecoration ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la décoration du texte d'annotation.

Valeurs de retour

Retourne une des constantes DECORATION_, ou bien 0 si aucune décoration n'est configurée.



ImagickDraw::getTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::getTextEncodingRetourne le jeu de caractères utilisé pour les annotations de texte

Description

string ImagickDraw::getTextEncoding ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le jeu de caractères utilisé pour les annotations de texte.

Valeurs de retour

Retourne une chaîne spécifiant le jeu de caractères, ou bien FALSE si le jeu de caractères n'est pas configuré.



ImagickDraw::getTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::getTextUnderColorRetourne la couleur sous le texte

Description

ImagickPixel ImagickDraw::getTextUnderColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur du rectangle placé sous le texte des annotations.

Valeurs de retour

Retourne un objet ImagickPixel, qui décrit la couleur.



ImagickDraw::getVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::getVectorGraphicsRetourne une chaîne contenant le vecteur graphique

Description

string ImagickDraw::getVectorGraphics ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une chaîne contenant le vecteur graphique, généré par les appels graphiques depuis que l'objet ImagickDraw a été créé.

Valeurs de retour

Retourne une chaîne contenant les vecteurs graphiques.



ImagickDraw::line

(PECL imagick 2.0.0)

ImagickDraw::lineDessine une ligne

Description

bool ImagickDraw::line ( float $sx , float $sy , float $ex , float $ey )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne en utilisant la couleur de trait courante, son opacité, et sa largeur.

Liste de paramètres

sx

L'abscisse de début

sy

L'ordonnée de début

ex

L'abscisse de fin

ey

L'ordonnée de fin

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::matte

(PECL imagick 2.0.0)

ImagickDraw::matteDessine sur le canal d'opacité de l'image

Description

bool ImagickDraw::matte ( float $x , float $y , int $paintMethod )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine sur le canal d'opacité de l'image, afin de rendre transparent les pixels indiqués.

Liste de paramètres

x

abscisse du mate

y

ordonnée du mate

paintMethod

Constante PAINT

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::pathClose

(PECL imagick 2.0.0)

ImagickDraw::pathCloseAjoute un élément de chemin au chemin courant

Description

bool ImagickDraw::pathClose ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un élément de chemin au chemin courant, qui va clore le sous-chemin en dessinant une ligne droit depuis le point courant jusqu'au point de démarrage le plus récent (généralement, le dernier point de déplacement).

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToAbsoluteDessine une courbe de Bézier cubique, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier cubique, à partir du point courant (x,y) en utilisant le point (x1,y1) comme point de contrôle au début de la courbe et (x2,y2) comme point de contrôle à la fin de la courbe, en utilisant des coordonnées absolues. À la fin de la commande, le nouveau point courant est le point final (x,y), utilisé par le polybezier.

Liste de paramètres

x1

abscisse du premier point de contrôle

y1

ordonnée du premier point de contrôle

x2

abscisse du second point de contrôle

y2

ordonnée du second point de contrôle

x

abscisse de la fin de la courbe

y

ordonnée de la fin de la courbe

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierAbsoluteDessine une courbe de Bézier quadratique, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier quadratique, en coordonnées relatives, par rapport au point courant (x,y), en utilisant le point (x1,y1) comme point de contrôle. A la fin du dessin, le nouveau point courant devient le point final (x,y) utilisé par le polybezier.

Liste de paramètres

x1

abscisse du point de contrôle

y1

ordonnée du point de contrôle

x

abscisse du point final

y

ordonnée du point final

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierRelativeDessine une courbe de Bézier quadratique, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier quadratique, en coordonnées relatives, par rapport au point courant (x,y), en utilisant le point (x1,y1) comme point de contrôle. A la fin du dessin, le nouveau point courant devient le point final (x,y) utilisé par le polybezier.

Liste de paramètres

x1

abscisse de départ

y1

ordonnée de départ

x

abscisse de fin

y

ordonnée de fin

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsoluteDessine une courbe de Bézier de puissance 4, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier de puissance 4, en coordonnées relatives, à partir du point courant (x, y). Le point de contrôle est la réflexion du point de contrôle sur la commande de dessin en coordonnées absolues. S'il n'y a pas eu de commande précédente ou si la commande précédente n'était pas ImagickDraw::DrawPathCurveToQuadraticBezierAbsolute(), ImagickDraw::DrawPathCurveToQuadraticBezierRelative() ou ImagickDraw::DrawPathCurveToQuadraticBezierSmoothRelative(), on suppose que le point de contrôle coïncide avec le point courant. À la fin de la commande, le nouveau point courant devient le point final (x, y), utilisé par le polybezier.

Liste de paramètres

x

L'abscisse du point de fin

y

L'ordonnée du point de fin

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelativeDessine une courbe de Bézier de puissance 4, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier de puissance 4, en coordonnées relatives, à partir du point courant (x, y). Le point de contrôle est la réflexion du point de contrôle sur la commande de dessin en coordonnées relatives. S'il n'y a pas eu de commande précédente ou si la commande précédente n'était pas ImagickDraw::DrawPathCurveToQuadraticBezierAbsolute(), ImagickDraw::DrawPathCurveToQuadraticBezierRelative(), ImagickDraw::DrawPathCurveToQuadraticBezierSmoothAbsolut() ou ImagickDraw::DrawPathCurveToQuadraticBezierSmoothRelative() on suppose que le point de contrôle coïncide avec le point courant. A la fin de la commande, le nouveau point courant devient le point final (x, y), utilisé par le polybezier.

Liste de paramètres

x

L'abscisse du point de fin

y

L'ordonnée du point de fin

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToRelativeDessine une courbe de Bézier cubique, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier cubique, à partir du point courant (x,y) en utilisant le point (x1,y1) comme point de contrôle au début de la courbe et (x2,y2) comme point de contrôle à la fin de la courbe, en utilisant des coordonnées relatives. À la fin de la commande, le nouveau point courant est le point final (x,y), utilisé par le polybezier.

Liste de paramètres

x1

abscisse du point de départ

y1

ordonnée du point de départ

x2

abscisse du point de contrôle final

y2

ordonnée du point de contrôle final

x

abscisse du point final

y

ordonnée du point final

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothAbsoluteDessine une courbe de Bézier, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier, en coordonnées absolues, à partir du point courant (x,y). Le premier point de contrôle est la réflexion du second point de contrôle de la commande précédente, relative au point courant. S'il n'y a pas eu de commande précédente, ou que la commande précédente n'était pas DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute ou DrawPathCurveToSmoothRelative, on suppose alors que le premier point de contrôle coïncide avec le point courant. (x2,y2) est le second point de contrôle (i.e., le point de contrôle à la fin de la ligne. À la fin de la commande, le nouveau point courant est le point final, de coordonnées (x,y), dans le polybezier.

Liste de paramètres

x2

abscisse du deuxième point de contrôle

y2

ordonnée du deuxième point de contrôle

x

abscisse du point de contrôle final

y

ordonnée du point de contrôle final

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothRelativeDessine une courbe de Bézier, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier, en coordonnées relatives, à partir du point courant (x,y). Le premier point de contrôle est la réflexion du second point de contrôle de la commande précédente, relative au point courant. S'il n'y a pas eu de commande précédente, ou que la commande précédente n'était pas DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute ou DrawPathCurveToSmoothRelative, on suppose alors que le premier point de contrôle coïncide avec le point courant. (x2,y2) est le second point de contrôle (i.e., le point de contrôle à la fin de la ligne. A la fin de la commande, le nouveau point courant est le point final, de coordonnées (x,y), dans le polybezier.

Liste de paramètres

x2

abscisse du deuxième point de contrôle

y2

ordonnée du deuxième point de contrôle

x

abscisse du point de contrôle final

y

ordonnée du point de contrôle final

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcAbsoluteDessine un arc d'ellipse, en coordonnées absolues

Description

bool ImagickDraw::pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un arc d'ellipse à partir du point courant (x, y), en utilisant des coordonnées relatives. La taille et l'orientation de l'ellipse sont définies par deux rayons, (rx, ry) et une rotation xAxisRotation, qui indique comment l'ellipse, dans son ensemble, est située dans le système de coordonnées. Le centre (cx, cy) de l'ellipse est calculée automatiquement pour satisfaire aux contraintes des autres paramètres. Si large_arc_flag vaut TRUE, alors c'est l'arc le plus grand qui est dessiné. Si sweep_flag vaut TRUE, alors le dessin de l'arc se fait dans le sens horaire.

Liste de paramètres

rx

Rayon X

ry

Rayon Y

x_axis_rotation

Rotation sur l'axe des X

large_arc_flag

option d'large_arc_flag

sweep_flag

Option sweep_flag

x

L'abscisse

y

L'ordonnée

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathEllipticArcRelative

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcRelativeDessine un arc d'ellipse, en coordonnées relatives

Description

bool ImagickDraw::pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un arc d'ellipse à partir du point courant (x, y), en utilisant des coordonnées relatives. La taille et l'orientation de l'ellipse sont définies par deux rayons, (rx, ry) et une rotation xAxisRotation, qui indique comment l'ellipse, dans son ensemble, est située dans le système de coordonnées. Le centre (cx, cy) de l'ellipse est calculée automatiquement pour satisfaire aux contraintes des autres paramètres. Si large_arc_flag vaut TRUE, alors c'est l'arc le plus grand qui est dessiné. Si sweep_flag vaut TRUE, alors le dessin de l'arc se fait dans le sens horaire.

Liste de paramètres

rx

Rayon X

ry

Rayon Y

x_axis_rotation

Rotation sur l'axe des X

large_arc_flag

L'option d'large_arc_flag

sweep_flag

L'option d'sweep_flag

x

L'abscisse

y

L'ordonnée

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathFinish

(PECL imagick 2.0.0)

ImagickDraw::pathFinishTermine le chemin courant

Description

bool ImagickDraw::pathFinish ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine le chemin courant.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathLineToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToAbsoluteDessine une ligne de chemin, en coordonnées absolues

Description

bool ImagickDraw::pathLineToAbsolute ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne à partir du point courant, jusqu'au point cible, en utilisant des coordonnées absolues. Le point cible devient alors le point courant.

Liste de paramètres

x

L'abscisse de départ

y

L'abscisse de fin

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalAbsoluteDessine une ligne de chemin horizontale, en coordonnées absolues

Description

bool ImagickDraw::pathLineToHorizontalAbsolute ( float $x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne verticale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

x

L'abscisse

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalRelativeDessine une ligne de chemin horizontale, en coordonnées relatives

Description

bool ImagickDraw::pathLineToHorizontalRelative ( float $x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne horizontale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

x

L'abscisse

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathLineToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToRelativeDessine une ligne de chemin, en coordonnées relatives

Description

bool ImagickDraw::pathLineToRelative ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

x

abscisse de départ

y

ordonnée de départ

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalAbsoluteDessine une ligne de chemin verticale, en coordonnées absolues

Description

bool ImagickDraw::pathLineToVerticalAbsolute ( float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne verticale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées absolues. Le point cible devient alors le point courant.

Liste de paramètres

y

Ordonnée

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalRelativeDessine une ligne de chemin verticale, en coordonnées relatives

Description

bool ImagickDraw::pathLineToVerticalRelative ( float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne verticale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

y

ordonnée cible

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathMoveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToAbsoluteCommence un nouveau sous-chemin, en coordonnées absolues

Description

bool ImagickDraw::pathMoveToAbsolute ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Commence un nouveau sous-chemin à partir des coordonnées indiquées, en utilisant des coordonnées absolues. Le point courant devient alors les coordonnées spécifiées.

Liste de paramètres

x

L'abscisse cible

y

L'ordonnée cible

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathMoveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToRelativeCommence un nouveau sous-chemin, en coordonnées relatives

Description

bool ImagickDraw::pathMoveToRelative ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Commence un nouveau sous-chemin à partir des coordonnées indiquées, en utilisant des coordonnées relatives. Le point courant devient alors les coordonnées spécifiées.

Liste de paramètres

x

L'abscisse cible

y

L'ordonnée cible

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pathStart

(PECL imagick 2.0.0)

ImagickDraw::pathStartDéclare le début d'une chemin de dessin

Description

bool ImagickDraw::pathStart ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Déclare le début d'une chemin de dessin, qui sera terminé par la commande soeur ImagickDraw::DrawPathFinish(). Toutes les commandes autres que ImagickDraw::DrawPath() doivent être encadrée par ImagickDraw::pathStart() et ImagickDraw::DrawPathFinish(). Ceci est lié au fait que les commandes suivantes sont des commandes subordonnées.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::point

(PECL imagick 2.0.0)

ImagickDraw::pointDessine un point

Description

bool ImagickDraw::point ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un point en utilisant la couleur de trait courante, ainsi que l'épaisseur, dans les coordonnées spécifiées.

Liste de paramètres

x

L'abscisse du point

y

L'ordonnée du point

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::polygon

(PECL imagick 2.0.0)

ImagickDraw::polygonDessine un polygone

Description

bool ImagickDraw::polygon ( array $coordinates )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un polygone, en utilisant le trait courant, sa largeur, sa couleur de remplissage, ainsi que le tableau de coordonnées indiqué.

Liste de paramètres

coordinates

Tableau multidimensionnel de coordonnées, tel que array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );

Valeurs de retour

Returns TRUE on success.



ImagickDraw::polyline

(PECL imagick 2.0.0)

ImagickDraw::polylineDessine une ligne brisée

Description

bool ImagickDraw::polyline ( array $coordinates )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne brisée, en utilisant le trait courant, sa largeur et son motif, ainsi que sa ligne de remplissage ou sa texture, en utilisant les coordonnés spécifiées.

Liste de paramètres

coordinates

Tableau avec les coordonnées "x" et "y" array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

Valeurs de retour

Returns TRUE on success.



ImagickDraw::pop

(PECL imagick 2.0.0)

ImagickDraw::popDétruit l'objet ImagickDraw courant dans la pile, et retourne son précédent

Description

bool ImagickDraw::pop ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent. Plusieurs objets ImagickDraw peuvent exister. C'est une erreur que de tenter d'extrait plus d'objets ImagickDraw qu'il n'y en a, et il est recommandé d'en extraire juste le bon nombre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::popClipPath

(PECL imagick 2.0.0)

ImagickDraw::popClipPathTermine la définition d'un chemin

Description

bool ImagickDraw::popClipPath ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine la définition d'un chemin.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::popDefs

(PECL imagick 2.0.0)

ImagickDraw::popDefsTermine une définition de liste

Description

bool ImagickDraw::popDefs ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine une définition de liste.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::popPattern

(PECL imagick 2.0.0)

ImagickDraw::popPatternTermine une définition de motif

Description

bool ImagickDraw::popPattern ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine une définition de motif.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::push

(PECL imagick 2.0.0)

ImagickDraw::pushClone l'objet ImagickDraw courant et le pousse dans la pile

Description

bool ImagickDraw::push ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Clone l'objet ImagickDraw courant et le pousse dans la pile, en l'ajoutant à la fin. L'objet ImagickDraw original peut être retrouvé en appliquant la méthode pop à la pile. Les objets ImagickDraws sont stockés dans une pile ImagickDraw. Pour chaque pop, il qu'il y ait eu un push équivalent.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::pushClipPath

(PECL imagick 2.0.0)

ImagickDraw::pushClipPathCommence la définition d'un chemin

Description

bool ImagickDraw::pushClipPath ( string $clip_mask_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Commence la définition d'un chemin, qui est constitué de n'importe quel nombre de commandes de dessins, et terminé par une commande ImagickDraw::popClipPath().

Liste de paramètres

clip_mask_id

L'identifiant du masque de clip

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pushDefs

(PECL imagick 2.0.0)

ImagickDraw::pushDefsIndique que la commande suivante créée des éléments nommés pour pré-traitement

Description

bool ImagickDraw::pushDefs ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Indique que les commandes jusqu'à la commande terminante de ImagickDraw::popDefs() crée des éléments nommés (e.g., des chemins, des textures, etc.), qui peuvent être traités au plus tôt par simple souci d'efficacité.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::pushPattern

(PECL imagick 2.0.0)

ImagickDraw::pushPatternConfigure un espace de dessin

Description

bool ImagickDraw::pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure ImagickDraw pour que les commandes jusqu'à la fonction DrawPopPattern() incluent la définition d'un nom de motif. L'espace de motif reçoit les coordonnées du coin supérieur gauche, de la hauteur et largeur, et devient un espace de dessin en lui-même. Tout ce qui peut être dessiné peut être dessiné dans un motif. Des motifs peuvent aussi définir des traits ou des brosses.

Liste de paramètres

pattern_id

L'identifiant du motif

x

L'abscisse du coin supérieur gauche

y

L'ordonnée du coin supérieur gauche

width

La largeur du motif

height

La hauteur du motif

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::rectangle

(PECL imagick 2.0.0)

ImagickDraw::rectangleDessine un rectangle

Description

bool ImagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un rectangle à partir de ses coordonnées et en utilisant le trait courant, sa largeur et son motif.

Liste de paramètres

x1

y1

ordonnée du coin supérieur gauche

x2

abscisse du coin inférieur droit

y2

ordonnée du coin inférieur droit

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::render

(PECL imagick 2.0.0)

ImagickDraw::renderEffectue le rendu de tous les dessins à l'image

Description

bool ImagickDraw::render ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Effectue le rendu de tous les dessins à l'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::rotate

(PECL imagick 2.0.0)

ImagickDraw::rotateApplique une rotation

Description

bool ImagickDraw::rotate ( float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique une rotation d'un angle donnée aux coordonnées de l'espace courant.

Liste de paramètres

degrees

Angle de rotation, en degrés.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::roundRectangle

(PECL imagick 2.0.0)

ImagickDraw::roundRectangleDessine un rectangle aux coins arrondis

Description

bool ImagickDraw::roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un rectangle aux coins arrondis, à partir de deux coordonnées, x & y, du rayon de coin et en utilisant le trait courant, son épaisseur et sa couleur de remplissage.

Liste de paramètres

x1

L'abscisse du coin supérieur gauche

y1

L'ordonnée du coin supérieur gauche

x2

L'abscisse du coin inférieur droit

y2

L'ordonnée du coin inférieur droit

rx

Le rayon en x

ry

Le rayon en y

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::scale

(PECL imagick 2.0.0)

ImagickDraw::scaleAjuste le facteur de mise à l'échelle

Description

bool ImagickDraw::scale ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajuste le facteur de mise à l'échelle à appliquer aux directions verticales et horizontales de l'espace de coordonnées courant.

Liste de paramètres

x

facteur horizontal

y

facteur vertical

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setClipPath

(PECL imagick 2.0.0)

ImagickDraw::setClipPathAssocie un chemin avec une image

Description

bool ImagickDraw::setClipPath ( string $clip_mask )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Associe un chemin avec une image. Seule les surfaces dessinées sur le chemin seront modifiée tant qu'il reste actif.

Liste de paramètres

clip_mask

Le nom du chemin

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setClipRule

(PECL imagick 2.0.0)

ImagickDraw::setClipRuleConfigure la règle de remplissage du polygone à utiliser avec les chemins

Description

bool ImagickDraw::setClipRule ( int $fill_rule )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la règle de remplissage du polygone à utiliser avec les chemins.

Liste de paramètres

fill_rule

Une constante FILLRULE

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setClipUnits

(PECL imagick 2.0.0)

ImagickDraw::setClipUnitsConfigure le mode d'interprétation des unités de chemin

Description

bool ImagickDraw::setClipUnits ( int $clip_units )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le mode d'interprétation des unités de chemin.

Liste de paramètres

clip_units

Le nombre d'unités de clip

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFillAlpha

(PECL imagick 2.0.0)

ImagickDraw::setFillAlphaConfigure l'opacité de la couleur de remplissage

Description

bool ImagickDraw::setFillAlpha ( float $opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'opacité à utiliser quand la couleur de remplissage est utilisée. 1.0 est totalement opaque.

Liste de paramètres

opacity

Canal alpha de la couleur de remplissage

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFillColor

(PECL imagick 2.0.0)

ImagickDraw::setFillColorConfigure la couleur de dessin des objets remplis

Description

bool ImagickDraw::setFillColor ( ImagickPixel $fill_pixel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur de dessin des objets remplis.

Liste de paramètres

fill_pixel

L'objet ImagickPixel à utiliser pour la couleur.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::setFillOpacityConfigure l'opacité à utiliser pour le remplissage

Description

bool ImagickDraw::setFillOpacity ( float $fillOpacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'opacité à utiliser pour le remplissage. Totalement opaque est 1.0.

Liste de paramètres

fillOpacity

L'opacité de remplissage.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFillPatternURL

(PECL imagick 2.0.0)

ImagickDraw::setFillPatternURLConfigure l'URL du motif de remplissage des surfaces

Description

bool ImagickDraw::setFillPatternURL ( string $fill_url )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'URL du motif de remplissage des surfaces. Seules les URL locales ("#identifier") sont supportés actuellement. Ces URL sont normalement créée en définissant un nom de motif de remplissage avec DrawPushPattern/DrawPopPattern.

Liste de paramètres

fill_url

L'URL à utiliser pour accéder au motif.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::setFillRule

(PECL imagick 2.0.0)

ImagickDraw::setFillRuleConfigure la règle de remplissage des polygones

Description

bool ImagickDraw::setFillRule ( int $fill_rule )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la règle de remplissage des polygones.

Liste de paramètres

fill_rule

Une constante FILLRULE

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFont

(PECL imagick 2.0.0)

ImagickDraw::setFontConfigure la police complète pour les textes

Description

bool ImagickDraw::setFont ( string $font_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la police complète pour les textes.

Liste de paramètres

font_name

Valeurs de retour

Returns TRUE on success.



ImagickDraw::setFontFamily

(PECL imagick 2.0.0)

ImagickDraw::setFontFamilyConfigure la famille de police pour les textes

Description

bool ImagickDraw::setFontFamily ( string $font_family )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la famille de police pour les textes.

Liste de paramètres

font_family

La famille de police

Valeurs de retour

Returns TRUE on success.



ImagickDraw::setFontSize

(PECL imagick 2.0.0)

ImagickDraw::setFontSizeConfigure la taille de point pour les textes

Description

bool ImagickDraw::setFontSize ( float $pointsize )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille de point pour les textes.

Liste de paramètres

pointsize

La taille de point.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFontStretch

(PECL imagick 2.0.0)

ImagickDraw::setFontStretchConfigure l'étirement du texte

Description

bool ImagickDraw::setFontStretch ( int $fontStretch )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'étirement du texte pour le dessin des annotations. L'énumération AnyStretch sert de joker et signifie "peu importe".

Liste de paramètres

fontStretch

Une constante STRETCH_

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFontStyle

(PECL imagick 2.0.0)

ImagickDraw::setFontStyleConfigure le style de police

Description

bool ImagickDraw::setFontStyle ( int $style )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le style de police utilisée pour dessiner les annotations. L'énumération AnyStyle joue le rôle de joker, et signifie "peu importe".

Liste de paramètres

style

Une constante de style.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setFontWeight

(PECL imagick 2.0.0)

ImagickDraw::setFontWeightConfigure le poids de la police

Description

bool ImagickDraw::setFontWeight ( int $font_weight )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le poids de la police pour dessiner les annotations.

Liste de paramètres

font_weight

Valeurs de retour



ImagickDraw::setGravity

(PECL imagick 2.0.0)

ImagickDraw::setGravityConfigure la gravité de placement de texte

Description

bool ImagickDraw::setGravity ( int $gravity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la gravité de placement de texte, à utiliser pour dessiner les annotations.

Liste de paramètres

gravity

Une constant GRAVITY_.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeAlpha

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAlphaSpécifie l'opacité des contours d'objets

Description

bool ImagickDraw::setStrokeAlpha ( float $opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie l'opacité des contours d'objets.

Liste de paramètres

opacity

L'opacité

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAntialiasContrôle l'anti-aliasing des pointillés

Description

bool ImagickDraw::setStrokeAntialias ( bool $stroke_antialias )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Contrôle l'anti-aliasing des pointillés. Les contours à traits sont anti-aliasés par défaut. Lorsque l'anti-aliasing est désactivé, les pointillés utilisent une valeur de seuil pour définir si le pixel sous-jacent doit être coloré ou pas.

Liste de paramètres

stroke_antialias

La configuration d'utilisation de l'anti-aliasing

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::setStrokeColorConfigure la couleur utilisée pour dessiner les objets

Description

bool ImagickDraw::setStrokeColor ( ImagickPixel $stroke_pixel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur utilisée pour dessiner les objets.

Liste de paramètres

stroke_pixel

La couleur du trait.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashArraySpécifie le motif de pointillé

Description

bool ImagickDraw::setStrokeDashArray ( array $dashArray )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie le motif de pointillé, les pleins et vides. L'objet strokeDashArray représente un tableau de nombre qui spécifie les longueurs des pleins et vides, en pixels. Si un nombre impair de valeurs est fourni, alors la liste est répétée pour obtenir un nombre pair de valeurs. Pour retirer un tableau de motif existant, passez un nombre d'éléments à zéro, et NULL comme deuxième valeur. Un tableau strokeDashArray typique contient les membres 5 3 2.

Liste de paramètres

dashArray

Un tableau de nombre décimaux

Valeurs de retour

Returns TRUE on success.



ImagickDraw::setStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashOffsetSpécifie la position dans le motif pour commencer le pointillé

Description

bool ImagickDraw::setStrokeDashOffset ( float $dash_offset )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la position dans le motif pour commencer le pointillé.

Liste de paramètres

dash_offset

La position de début du pointillé

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineCapSpécifie la forme à utiliser à la fin des sous-chemins

Description

bool ImagickDraw::setStrokeLineCap ( int $linecap )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la forme à utiliser à la fin des sous-chemins.

Liste de paramètres

linecap

Une constante LINECAP_

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineJoinSpécifie la forme à utiliser pour dessiner les fins de lignes

Description

bool ImagickDraw::setStrokeLineJoin ( int $linejoin )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la forme à utiliser pour dessiner les fins de lignes et les autres formes vectorielles, quand elles utilisent un trait.

Liste de paramètres

linejoin

Une constante de jointure de lignes.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::setStrokeMiterLimitSpécifie la limiter miter

Description

bool ImagickDraw::setStrokeMiterLimit ( int $miterlimit )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la limiter miter. Lorsque deux lignes se rejoignent à angle aigu, et que la limite miter a été configuré à "lineJoin", il est possible que le miter dépasse l'épaisseur de la ligne. La limite miter impose un ratio entre la longueur de miter et l'épaisseur de la ligne "lineWidth".

Liste de paramètres

miterlimit

La limiter miter

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::setStrokeOpacitySpécifie l'opacité pour dessiner les contours

Description

bool ImagickDraw::setStrokeOpacity ( float $stroke_opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie l'opacité pour dessiner les contours.

Liste de paramètres

stroke_opacity

L'opacité du trait. 1.0 est totalement opaque.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setStrokePatternURL

(PECL imagick 2.0.0)

ImagickDraw::setStrokePatternURLConfigure le motif utilisé pour dessiner les contours

Description

bool ImagickDraw::setStrokePatternURL ( string $stroke_url )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le motif utilisé pour dessiner les contours.

Liste de paramètres

stroke_url

L'URL du motif du trait

Valeurs de retour

imagick.imagickdraw.return.success;



ImagickDraw::setStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::setStrokeWidthConfigure la largeur du trait pour dessiner les contours

Description

bool ImagickDraw::setStrokeWidth ( float $stroke_width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la largeur du trait pour dessiner les contours.

Liste de paramètres

stroke_width

La largeur du trait

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::setTextAlignmentSpécifie l'alignement du texte

Description

bool ImagickDraw::setTextAlignment ( int $alignment )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie l'alignement du texte à appliquer au texte d'une annotation.

Liste de paramètres

alignment

Une constante ALIGN_

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::setTextAntialiasContrôle l'anti-alisasing du texte

Description

bool ImagickDraw::setTextAntialias ( bool $antiAlias )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Contrôle l'anti-alisasing du texte. Les textes sont anti-aliasés par défaut.

Liste de paramètres

antiAlias

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::setTextDecorationSpécifie les ornements de texte

Description

bool ImagickDraw::setTextDecoration ( int $decoration )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie les ornements de texte utilisé pour les annotations.

Liste de paramètres

decoration

Une constante de DECORATION_.

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::setTextEncodingSpécifie le jeu de caractères

Description

bool ImagickDraw::setTextEncoding ( string $encoding )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie le jeu de caractères à utiliser pour les annotations de texte. Le seul jeu de caractères qui peut être spécifié actuellement est "UTF-8", qui représente l'Unicode sous forme d'une séquence d'octets. Spécifiez une chaîne vide pour utiliser le jeu de caractères du système. Le dessin des textes peut avoir besoin d'une police qui supporte Unicode.

Liste de paramètres

encoding

Le jeu de caractères

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::setTextUnderColorSpécifie la couleur de fond d'une rectangle

Description

bool ImagickDraw::setTextUnderColor ( ImagickPixel $under_color )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la couleur de fond d'une rectangle à placer sous les textes.

Liste de paramètres

under_color

La couleur de fond

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::setVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::setVectorGraphicsConfigure le vecteur graphique

Description

bool ImagickDraw::setVectorGraphics ( string $xml )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le vecteur graphique associé à l'objet ImagickDraw. Utilisez cette méthode avec ImagickDraw::getVectorGraphics, pour faire persister l'état du vecteur graphique.

Liste de paramètres

xml

Code XML contenant le vecteur graphique

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ImagickDraw::setViewbox

(PECL imagick 2.0.0)

ImagickDraw::setViewboxConfigure la taille du canevas

Description

bool ImagickDraw::setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille du canevas général, à enregistrer avec les données vectorielles. Généralement, on configure cette valeur avec la même taille que l'image. Lorsque les données vectorielles sont sauvées en SVG ou MVG, la boîte de vue est utilisée pour spécifier la taille de l'image dans laquelle le lecteur vidéo va dessiner les données.

Liste de paramètres

x1

Abscisse gauche

y1

Ordonnée gauche

x2

Abscisse droite

y2

Ordonnée droite

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::skewX

(PECL imagick 2.0.0)

ImagickDraw::skewXBiaise les coordonnées dans la direction horizontale

Description

bool ImagickDraw::skewX ( float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Biaise les coordonnées dans la direction horizontale.

Liste de paramètres

degrees

Degré de biaisage

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::skewY

(PECL imagick 2.0.0)

ImagickDraw::skewYIncline les coordonnées dans la direction verticale

Description

bool ImagickDraw::skewY ( float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Incline les coordonnées dans la direction verticale.

Liste de paramètres

degrees

Le nombre de degrés d'inclinaison

Valeurs de retour

Aucune valeur n'est retournée.



ImagickDraw::translate

(PECL imagick 2.0.0)

ImagickDraw::translateApplique une translation

Description

bool ImagickDraw::translate ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique une translation au système de coordonnées actuel, qui déplace l'origine de ce système.

Liste de paramètres

x

Translation horizontale

y

Translation verticale

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe ImagickPixel

Synopsis de la classe

ImagickPixel {
bool clear ( void )
ImagickPixel __construct ([ string $color ] )
bool destroy ( void )
array getColor ([ bool $normalized = false ] )
string getColorAsString ( void )
int getColorCount ( void )
float getColorValue ( int $color )
array getHSL ( void )
bool isSimilar ( ImagickPixel $color , float $fuzz )
bool setColor ( string $color )
bool setColorValue ( int $color , float $value )
bool setHSL ( float $hue , float $saturation , float $luminosity )
}

ImagickPixel::clear

(PECL imagick 2.0.0)

ImagickPixel::clearSupprime toutes les ressources associées avec l'objet

Description

bool ImagickPixel::clear ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime l'objet ImagickPixel, le laissant dans un statut initial. Supprime également toutes les couleurs associées avec l'objet.

Valeurs de retour

Returns TRUE on success.



ImagickPixel::__construct

(PECL imagick 2.0.0)

ImagickPixel::__constructLe constructeur ImagickPixel

Description

ImagickPixel ImagickPixel::__construct ([ string $color ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Construit un objet ImagickPixel. Si une couleur est spécifiée, l'objet est construit, puis initialisé avec cette couleur avant d'être retourné.

Liste de paramètres

color

Une chaîne représentant la couleur optionnelle à utiliser comme valeur initiale de l'objet.

Valeurs de retour

Retourne un objet ImagickPixel en cas de succès ou lance une exception ImagickPixelException si une erreur survient.



ImagickPixel::destroy

(PECL imagick 2.0.0)

ImagickPixel::destroyLibère les ressources associées avec l'objet

Description

bool ImagickPixel::destroy ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Libère toutes les ressources utilisées par l'objet ImagickPixel et supprime toutes les couleurs associées. L'objet ne doit pas être utilisé par l'appel de cette fonction.

Valeurs de retour

Returns TRUE on success.



ImagickPixel::getColor

(PECL imagick 2.0.0)

ImagickPixel::getColorRetourne la couleur

Description

array ImagickPixel::getColor ([ bool $normalized = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur décrite par l'objet ImagickPixel, sous la forme d'un tableau. Si la couleur contient un canal d'opacité, il sera fourni comme quatrième valeur de la liste.

Liste de paramètres

normalized

Valeurs normalisées de la couleur

Valeurs de retour

Un tableau de valeurs de canaux, chacun normalisé si TRUE est fourni comme argument. Lance une exception ImagickPixelException si une erreur survient.



ImagickPixel::getColorAsString

(PECL imagick 2.1.0)

ImagickPixel::getColorAsStringRetourne une couleur

Description

string ImagickPixel::getColorAsString ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur de l'objet ImagickPixel, sous la forme d'une chaîne de caractères.

Liste de paramètres

Valeurs de retour

Retourne la couleur de l'objet ImagickPixel, sous la forme d'une chaîne de caractères.



ImagickPixel::getColorCount

(PECL imagick 2.0.0)

ImagickPixel::getColorCountRetourne le nombre de couleurs associé avec une couleur

Description

int ImagickPixel::getColorCount ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le nombre de couleurs associé avec la couleur.

Valeurs de retour

Retourne le nombre de couleurs, sous la forme d'un entier en cas de succès ou lance une exception ImagickPixelException si une erreur survient.



ImagickPixel::getColorValue

(PECL imagick 2.0.0)

ImagickPixel::getColorValueRécupère la valeur normalisée du canal de la couleur fournie

Description

float ImagickPixel::getColorValue ( int $color )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère la valeur du canal de la couleur spécifiée, sous la forme d'un nombre à virgule flottante compris entre 0 et 1.

Liste de paramètres

color

Le canal à vérifier, spécifié sous la forme d'une constante de canal Imagick.

Valeurs de retour

La valeur du canal, sous la forme d'un nombre à virgule flottante normalisé, ou lance une exception ImagickPixelException si une erreur survient.



ImagickPixel::getHSL

(PECL imagick 2.0.0)

ImagickPixel::getHSLRetourne la couleur HSL normalisée de l'objet ImagickPixel

Description

array ImagickPixel::getHSL ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur HSL normalisée, décrite par l'objet ImagickPixel, dont chacune des trois valeurs sera un nombre décimal, compris entre 0.0 et 1.0.

Valeurs de retour

Retourne la valeur HSL dans un tableau contenant les clés "hue", "saturation" et "luminosity". Lance une exception ImagickPixelException si une erreur survient.

Notes

Note:

Disponible avec la version 6.2.9 et supérieure de la bibliothèque ImageMagick.



ImagickPixel::isSimilar

(PECL imagick 2.0.0)

ImagickPixel::isSimilarVérifie la distance entre 2 couleurs

Description

bool ImagickPixel::isSimilar ( ImagickPixel $color , float $fuzz )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie la distance entre la couleur décrite par l'objet ImagickPixel et celle de l'objet fourni, en plaçant leurs valeurs RGB sur le cube de couleur. Si la distance entre les 2 points est inférieure à la valeur du paramètre fuzz, la couleur est similaire.

Liste de paramètres

color

L'objet ImagickPixel utilisé pour la comparaison.

fuzz

La distance maximale utilisée pour considérer que les couleurs sont similaires. La valeur maximale théorique est la racine carré de 3 (1.732).

Valeurs de retour

Returns TRUE on success.



ImagickPixel::setColor

(PECL imagick 2.0.0)

ImagickPixel::setColorDéfinit la couleur

Description

bool ImagickPixel::setColor ( string $color )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit la couleur, décrite par l'objet ImagickPixel, avec une chaîne de caractères (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Liste de paramètres

color

La définition de la couleur à utiliser afin d'initialiser l'objet ImagickPixel.

Valeurs de retour

Retourne TRUE si la couleur spécifiée a été définie ou FALSE sinon.



ImagickPixel::setColorValue

(PECL imagick 2.0.0)

ImagickPixel::setColorValueDéfinit la valeur normalisée d'un des canaux

Description

bool ImagickPixel::setColorValue ( int $color , float $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit la valeur du canal spécifié de l'objet à la valeur spécifiée, qui doit être comprise entre 0 et 1. Cette fonction peut être utilisée pour fournir un canal d'opacité à l'objet ImagickPixel.

Liste de paramètres

color

Une constante de couleur de canal Imagick.

value

La valeur à définir pour ce canal, comprise entre 0 et 1.

Valeurs de retour

Returns TRUE on success.



ImagickPixel::setHSL

(PECL imagick 2.0.0)

ImagickPixel::setHSLDéfinit la couleur HSL normalisée

Description

bool ImagickPixel::setHSL ( float $hue , float $saturation , float $luminosity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit la couleur décrite par l'objet ImagickPixel en utilisant les valeurs normalisées pour la densité, la saturation et la luminosité.

Liste de paramètres

hue

La valeur normalisée pour la densité, décrite par un arc fractionnel (entre 0 et 1) du cercle de densité, dont la valeur zéro correspond à rouge.

saturation

La valeur normalisée pour la saturation, dont 1 correspond à une saturation complète.

luminosity

La valeur normalisée pour la luminosité, compris entre 0 (noir) et 1 (blanc), avec la valeur HS complète à 0.5 de luminosité.

Valeurs de retour

Returns TRUE on success.

Notes

Note:

Disponible avec la version 6.2.9 et supérieure de la bibliothèque ImageMagick.


Sommaire



La classe ImagickPixelIterator

Synopsis de la classe

ImagickPixelIterator {
bool clear ( void )
ImagickPixelIterator __construct ( Imagick $wand )
bool destroy ( void )
array getCurrentIteratorRow ( void )
int getIteratorRow ( void )
array getNextIteratorRow ( void )
array getPreviousIteratorRow ( void )
bool newPixelIterator ( Imagick $wand )
bool newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
bool resetIterator ( void )
bool setIteratorFirstRow ( void )
bool setIteratorLastRow ( void )
bool setIteratorRow ( int $row )
bool syncIterator ( void )
}

ImagickPixelIterator::clear

(PECL imagick 2.0.0)

ImagickPixelIterator::clearEfface toutes les ressources associées à PixelIterator

Description

bool ImagickPixelIterator::clear ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Efface toutes les ressources associées à PixelIterator.

Valeurs de retour

Returns TRUE on success.



ImagickPixelIterator::__construct

(PECL imagick 2.0.0)

ImagickPixelIterator::__constructLe constructeur ImagickPixelIterator

Description

ImagickPixelIterator ImagickPixelIterator::__construct ( Imagick $wand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Le constructeur ImagickPixelIterator.

Valeurs de retour

Returns TRUE on success.



ImagickPixelIterator::destroy

(PECL imagick 2.0.0)

ImagickPixelIterator::destroyLibère les ressources associées à PixelIterator

Description

bool ImagickPixelIterator::destroy ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Libère les ressources associées à PixelIterator.

Valeurs de retour

Returns TRUE on success.



ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getCurrentIteratorRowRetourne la ligne courante des objets ImagickPixel

Description

array ImagickPixelIterator::getCurrentIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la ligne courante, en tant que tableau, des objets ImagickPixel depuis l'itérateur de pixel.

Valeurs de retour

Retourne une ligne, en tant que tableau, des objets ImagickPixel, qui peut être elle-même itérée.



ImagickPixelIterator::getIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getIteratorRowRetourne la ligne courante de l'itérateur de pixel

Description

int ImagickPixelIterator::getIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la ligne courante de l'itérateur de pixel.

Valeurs de retour

Retourne la position, sous la forme d'un entier de la ligne ou lance une exception ImagickPixelIteratorException si une erreur survient.



ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getNextIteratorRowRetourne la prochaine ligne de l'itérateur de pixel

Description

array ImagickPixelIterator::getNextIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la prochaine ligne, sous la forme d'un tableau, depuis l'itérateur de pixel.

Valeurs de retour

Retourne la prochaine ligne, sous la forme d'un tableau d'objets ImagickPixel, ou lance une exception ImagickPixelIteratorException si une erreur survient.



ImagickPixelIterator::getPreviousIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getPreviousIteratorRowRetourne la ligne précédente

Description

array ImagickPixelIterator::getPreviousIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la ligne précédente, sous la forme d'un tableau, depuis l'itérateur de pixel.

Valeurs de retour

Retourne la ligne précédente, sous la forme d'un tableau d'objets ImagickPixelWand, ou lance une exception ImagickPixelIteratorException si une erreur survient.



ImagickPixelIterator::newPixelIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelIteratorRetourne un nouveau pixel de l'itérateur

Description

bool ImagickPixelIterator::newPixelIterator ( Imagick $wand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un nouveau pixel de l'itérateur.

Valeurs de retour

Returns TRUE on success.. Lance une exception ImagickPixelIteratorException si une erreur survient.



ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelRegionIteratorRetourne un nouveau pixel de l'itérateur

Description

bool ImagickPixelIterator::newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un nouveau pixel de l'itérateur.

Liste de paramètres

wand

x

y

columns

rows

Valeurs de retour

Retourne un nouveau ImagickPixelIterator en cas de succès ou lance une exception ImagickPixelIteratorException si une erreur survient.



ImagickPixelIterator::resetIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::resetIteratorRéinitialise l'itérateur de pixel

Description

bool ImagickPixelIterator::resetIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Réinitialise l'itérateur de pixel. Utilisez cette méthode avec ImagickPixelIterator::getNextIteratorRow() pour itérer sur tous les pixels d'un conteneur de pixels.

Valeurs de retour

Returns TRUE on success.



ImagickPixelIterator::setIteratorFirstRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorFirstRowDéfinit l'itérateur de pixel sur la première ligne de pixels

Description

bool ImagickPixelIterator::setIteratorFirstRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit l'itérateur de pixel sur la première ligne de pixels.

Valeurs de retour

Returns TRUE on success.



ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorLastRowDéfinit l'itérateur de pixel sur la dernière ligne de pixels

Description

bool ImagickPixelIterator::setIteratorLastRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit l'itérateur de pixel sur la dernière ligne de pixels.

Valeurs de retour

Returns TRUE on success.



ImagickPixelIterator::setIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorRowDéfinit la ligne de l'itérateur de pixel

Description

bool ImagickPixelIterator::setIteratorRow ( int $row )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit la ligne de l'itérateur de pixel.

Liste de paramètres

row

Valeurs de retour

Returns TRUE on success.



ImagickPixelIterator::syncIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::syncIteratorSynchronise l'itérateur de pixel

Description

bool ImagickPixelIterator::syncIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Synchronise l'itérateur de pixel.

Valeurs de retour

Returns TRUE on success.


Sommaire




Gmagick


Introduction

Gmagick est une extension PHP pour créer, modifier et obtenir des informations méta sur des images en utilisant l'API GraphicsMagick.

GraphicsMagick s'enorgueillit d'être le couteau suisse du traitement de l'image. Il fonctionne avec quelques 88 formats majeurs, incluant des formats importants comme DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM, et TIFF.

Gmagick est composé d'une classe principale Gmagick, d'une classe GmagickDraw qui s'occupe du dessin et une classe GmagickPixel dont les instances représentent un seul pixiel d'une image (couleur, opacité).



Installation/Configuration

Sommaire


Pré-requis

Cette extension fonctionne parfaitement avec GraphicsMagick version 1.4+ et PHP 5.1.3+. Gmagick devrait fonctionner avec les anciennes versions et ce, depuis la version 1.2.6 de GraphicsMagick 1.2.6 mais quelques fonctionnalités et formats n'y sont pas supportés. La version Windows de GraphicsMagick est disponible depuis le site web de GraphicsMagick. Pour connaître les différences entre ImageMagick et GraphicsMagick, lisez ceci : » FAQ .



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gmagick.

Note: Le nom officiel de cette extension est gmagick.

Pour Windows, l'extension Gmagick est disponible depuis » cette page.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes relatives aux types de couleur
Gmagick::COLOR_BLACK (integer)
Noir
Gmagick::COLOR_BLUE (integer)
Bleu
Gmagick::COLOR_CYAN (integer)
Cyan
Gmagick::COLOR_GREEN (integer)
Vert
Gmagick::COLOR_RED (integer)
Rouge
Gmagick::COLOR_YELLOW (integer)
Jaune
Gmagick::COLOR_MAGENTA (integer)
Magenta
Gmagick::COLOR_OPACITY (integer)
Opacité
Gmagick::COLOR_ALPHA (integer)
Alpha
Gmagick::COLOR_FUZZ (integer)
Fuzz
Constantes relatives aux opérateurs composite
Gmagick::COMPOSITE_DEFAULT (integer)
L'opérateur composite par défaut
Gmagick::COMPOSITE_UNDEFINED (integer)
Opérateur composite indéfini
Gmagick::COMPOSITE_NO (integer)
Aucun opérateur composite de défini
Gmagick::COMPOSITE_ADD (integer)
Le résultat d'une image + une image
Gmagick::COMPOSITE_ATOP (integer)
Le résultat est la même forme qu'une image ; là où l'image composite obscurcie l'image, l'image de la forme la superpose.
Gmagick::COMPOSITE_BLEND (integer)
Mélange l'image
Gmagick::COMPOSITE_BUMPMAP (integer)
Identique à COMPOSITE_MULTIPLY, mise à part que le source est converti d'abord en niveau de gris.
Gmagick::COMPOSITE_CLEAR (integer)
Rend la cible de l'image transparent
Gmagick::COMPOSITE_COLORBURN (integer)
Noircit l'image de destination pour refléter l'image source
Gmagick::COMPOSITE_COLORDODGE (integer)
Éclaircit l'image de destination pour refléter l'image source
Gmagick::COMPOSITE_COLORIZE (integer)
Colorise l'image cible en utilisant l'image composite
Gmagick::COMPOSITE_COPYBLACK (integer)
Copie les noirs depuis la source vers la cible
Gmagick::COMPOSITE_COPYBLUE (integer)
Copie les bleus depuis la source vers la cible
Gmagick::COMPOSITE_COPY (integer)
Copie l'image source sur l'image cible
Gmagick::COMPOSITE_COPYCYAN (integer)
Copie le cyan depuis la source vers la cible
Gmagick::COMPOSITE_COPYGREEN (integer)
Copie le vert depuis la source vers la cible
Gmagick::COMPOSITE_COPYMAGENTA (integer)
Copies magenta from the source to target
Gmagick::COMPOSITE_COPYOPACITY (integer)
Copies opacity from the source to target
Gmagick::COMPOSITE_COPYRED (integer)
Copies red from the source to target
Gmagick::COMPOSITE_COPYYELLOW (integer)
Copies yellow from the source to target
Gmagick::COMPOSITE_DARKEN (integer)
Darkens the target image
Gmagick::COMPOSITE_DSTATOP (integer)
The part of the destination lying inside of the source is composited over the source and replaces the destination
Gmagick::COMPOSITE_DST (integer)
The target is left untouched
Gmagick::COMPOSITE_DSTIN (integer)
The parts inside the source replace the target
Gmagick::COMPOSITE_DSTOUT (integer)
The parts outside the source replace the target
Gmagick::COMPOSITE_DSTOVER (integer)
Target replaces the source
Gmagick::COMPOSITE_DIFFERENCE (integer)
Subtracts the darker of the two constituent colors from the lighter
Gmagick::COMPOSITE_DISPLACE (integer)
Shifts target image pixels as defined by the source
Gmagick::COMPOSITE_DISSOLVE (integer)
Dissolves the source in to the target
Gmagick::COMPOSITE_EXCLUSION (integer)
Produces an effect similar to that of Gmagick::COMPOSITE_DIFFERENCE, but appears as lower contrast
Gmagick::COMPOSITE_HARDLIGHT (integer)
Multiplies or screens the colors, dependent on the source color value
Gmagick::COMPOSITE_HUE (integer)
Modifies the hue of the target as defined by source
Gmagick::COMPOSITE_IN (integer)
Composites source into the target
Gmagick::COMPOSITE_LIGHTEN (integer)
Lightens the target as defined by source
Gmagick::COMPOSITE_LUMINIZE (integer)
Luminizes the target as defined by source
Gmagick::COMPOSITE_MINUS (integer)
Substracts the source from the target
Gmagick::COMPOSITE_MODULATE (integer)
Modulates the target brightness, saturation and hue as defined by source
Gmagick::COMPOSITE_MULTIPLY (integer)
Multiplies the target to the source
Gmagick::COMPOSITE_OUT (integer)
Composites outer parts of the source on the target
Gmagick::COMPOSITE_OVER (integer)
Composites source over the target
Gmagick::COMPOSITE_OVERLAY (integer)
Overlays the source on the target
Gmagick::COMPOSITE_PLUS (integer)
Adds the source to the target
Gmagick::COMPOSITE_REPLACE (integer)
Replaces the target with the source
Gmagick::COMPOSITE_SATURATE (integer)
Saturates the target as defined by the source
Gmagick::COMPOSITE_SCREEN (integer)
The source and destination are complemented and then multiplied and then replace the destination
Gmagick::COMPOSITE_SOFTLIGHT (integer)
Darkens or lightens the colors, dependent on the source
Gmagick::COMPOSITE_SRCATOP (integer)
The part of the source lying inside of the destination is composited onto the destination
Gmagick::COMPOSITE_SRC (integer)
The source is copied to the destination
Gmagick::COMPOSITE_SRCIN (integer)
The part of the source lying inside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOUT (integer)
The part of the source lying outside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOVER (integer)
The source replaces the destination
Gmagick::COMPOSITE_SUBTRACT (integer)
Subtract the colors in the source image from the destination image
Gmagick::COMPOSITE_THRESHOLD (integer)
The source is composited on the target as defined by source threshold
Gmagick::COMPOSITE_XOR (integer)
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source
Montage Mode constants
Gmagick::MONTAGEMODE_FRAME (integer)
Gmagick::MONTAGEMODE_UNFRAME (integer)
Gmagick::MONTAGEMODE_CONCATENATE (integer)
Style constants
Gmagick::STYLE_NORMAL (integer)
Gmagick::STYLE_ITALIC (integer)
Gmagick::STYLE_OBLIQUE (integer)
Gmagick::STYLE_ANY (integer)
Filter constants
Gmagick::FILTER_UNDEFINED (integer)
Gmagick::FILTER_POINT (integer)
Gmagick::FILTER_BOX (integer)
Gmagick::FILTER_TRIANGLE (integer)
Gmagick::FILTER_HERMITE (integer)
Gmagick::FILTER_HANNING (integer)
Gmagick::FILTER_HAMMING (integer)
Gmagick::FILTER_BLACKMAN (integer)
Gmagick::FILTER_GAUSSIAN (integer)
Gmagick::FILTER_QUADRATIC (integer)
Gmagick::FILTER_CUBIC (integer)
Gmagick::FILTER_CATROM (integer)
Gmagick::FILTER_MITCHELL (integer)
Gmagick::FILTER_LANCZOS (integer)
Gmagick::FILTER_BESSEL (integer)
Gmagick::FILTER_SINC (integer)
Image type constants
Gmagick::IMGTYPE_UNDEFINED (integer)
Gmagick::IMGTYPE_BILEVEL (integer)
Gmagick::IMGTYPE_GRAYSCALE (integer)
Gmagick::IMGTYPE_GRAYSCALEMATTE (integer)
Gmagick::IMGTYPE_PALETTE (integer)
Gmagick::IMGTYPE_PALETTEMATTE (integer)
Gmagick::IMGTYPE_TRUECOLOR (integer)
Gmagick::IMGTYPE_TRUECOLORMATTE (integer)
Gmagick::IMGTYPE_COLORSEPARATION (integer)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (integer)
Gmagick::IMGTYPE_OPTIMIZE (integer)
Resolution constants
Gmagick::RESOLUTION_UNDEFINED (integer)
Gmagick::RESOLUTION_PIXELSPERINCH (integer)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (integer)
Compression constants
Gmagick::COMPRESSION_UNDEFINED (integer)
Gmagick::COMPRESSION_NO (integer)
Gmagick::COMPRESSION_BZIP (integer)
Gmagick::COMPRESSION_FAX (integer)
Gmagick::COMPRESSION_GROUP4 (integer)
Gmagick::COMPRESSION_JPEG (integer)
Gmagick::COMPRESSION_JPEG2000 (integer)
Gmagick::COMPRESSION_LOSSLESSJPEG (integer)
Gmagick::COMPRESSION_LZW (integer)
Gmagick::COMPRESSION_RLE (integer)
Gmagick::COMPRESSION_ZIP (integer)
Paint constants
Gmagick::PAINT_POINT (integer)
Gmagick::PAINT_REPLACE (integer)
Gmagick::PAINT_FLOODFILL (integer)
Gmagick::PAINT_FILLTOBORDER (integer)
Gmagick::PAINT_RESET (integer)
Gravity constants
Gmagick::GRAVITY_NORTHWEST (integer)
Gmagick::GRAVITY_NORTH (integer)
Gmagick::GRAVITY_NORTHEAST (integer)
Gmagick::GRAVITY_WEST (integer)
Gmagick::GRAVITY_CENTER (integer)
Gmagick::GRAVITY_EAST (integer)
Gmagick::GRAVITY_SOUTHWEST (integer)
Gmagick::GRAVITY_SOUTH (integer)
Gmagick::GRAVITY_SOUTHEAST (integer)
Stretch constants
Gmagick::STRETCH_NORMAL (integer)
Gmagick::STRETCH_ULTRACONDENSED (integer)
Gmagick::STRETCH_CONDENSED (integer)
Gmagick::STRETCH_SEMICONDENSED (integer)
Gmagick::STRETCH_SEMIEXPANDED (integer)
Gmagick::STRETCH_EXPANDED (integer)
Gmagick::STRETCH_EXTRAEXPANDED (integer)
Gmagick::STRETCH_ULTRAEXPANDED (integer)
Gmagick::STRETCH_ANY (integer)
Align constants
Gmagick::ALIGN_UNDEFINED (integer)
Gmagick::ALIGN_LEFT (integer)
Gmagick::ALIGN_CENTER (integer)
Gmagick::ALIGN_RIGHT (integer)
Decoration constants
Gmagick::DECORATION_NO (integer)
Gmagick::DECORATION_UNDERLINE (integer)
Gmagick::DECORATION_OVERLINE (integer)
Gmagick::DECORATION_LINETROUGH (integer)
Noise constants
Gmagick::NOISE_UNIFORM (integer)
Gmagick::NOISE_GAUSSIAN (integer)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer)
Gmagick::NOISE_IMPULSE (integer)
Gmagick::NOISE_LAPLACIAN (integer)
Gmagick::NOISE_POISSON (integer)
Channel constants
Gmagick::CHANNEL_UNDEFINED (integer)
Gmagick::CHANNEL_RED (integer)
Gmagick::CHANNEL_GRAY (integer)
Gmagick::CHANNEL_CYAN (integer)
Gmagick::CHANNEL_GREEN (integer)
Gmagick::CHANNEL_MAGENTA (integer)
Gmagick::CHANNEL_BLUE (integer)
Gmagick::CHANNEL_YELLOW (integer)
Gmagick::CHANNEL_ALPHA (integer)
Gmagick::CHANNEL_OPACITY (integer)
Gmagick::CHANNEL_MATTE (integer)
Gmagick::CHANNEL_BLACK (integer)
Gmagick::CHANNEL_INDEX (integer)
Gmagick::CHANNEL_ALL (integer)
Metric constants
Gmagick::METRIC_UNDEFINED (integer)
Gmagick::METRIC_MEANABSOLUTEERROR (integer)
Gmagick::METRIC_MEANSQUAREERROR (integer)
Gmagick::METRIC_PEAKABSOLUTEERROR (integer)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (integer)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (integer)
Pixel constants
Gmagick::PIXEL_CHAR (integer)
Gmagick::PIXEL_DOUBLE (integer)
Gmagick::PIXEL_FLOAT (integer)
Gmagick::PIXEL_INTEGER (integer)
Gmagick::PIXEL_LONG (integer)
Gmagick::PIXEL_QUANTUM (integer)
Gmagick::PIXEL_SHORT (integer)
Colorspace constants
Gmagick::COLORSPACE_UNDEFINED (integer)
Gmagick::COLORSPACE_RGB (integer)
Gmagick::COLORSPACE_GRAY (integer)
Gmagick::COLORSPACE_TRANSPARENT (integer)
Gmagick::COLORSPACE_OHTA (integer)
Gmagick::COLORSPACE_LAB (integer)
Gmagick::COLORSPACE_XYZ (integer)
Gmagick::COLORSPACE_YCBCR (integer)
Gmagick::COLORSPACE_YCC (integer)
Gmagick::COLORSPACE_YIQ (integer)
Gmagick::COLORSPACE_YPBPR (integer)
Gmagick::COLORSPACE_YUV (integer)
Gmagick::COLORSPACE_CMYK (integer)
Gmagick::COLORSPACE_SRGB (integer)
Gmagick::COLORSPACE_HSB (integer)
Gmagick::COLORSPACE_HSL (integer)
Gmagick::COLORSPACE_HWB (integer)
Gmagick::COLORSPACE_REC601LUMA (integer)
Gmagick::COLORSPACE_REC709LUMA (integer)
Gmagick::COLORSPACE_LOG (integer)
Virtual Pixel Method constants
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (integer)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (integer)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (integer)
Gmagick::VIRTUALPIXELMETHOD_EDGE (integer)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (integer)
Gmagick::VIRTUALPIXELMETHOD_TILE (integer)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (integer)
Constantes de prévisualisation
Gmagick::PREVIEW_UNDEFINED (integer)
Gmagick::PREVIEW_ROTATE (integer)
Gmagick::PREVIEW_SHEAR (integer)
Gmagick::PREVIEW_ROLL (integer)
Gmagick::PREVIEW_HUE (integer)
Gmagick::PREVIEW_SATURATION (integer)
Gmagick::PREVIEW_BRIGHTNESS (integer)
Gmagick::PREVIEW_GAMMA (integer)
Gmagick::PREVIEW_SPIFF (integer)
Gmagick::PREVIEW_DULL (integer)
Gmagick::PREVIEW_GRAYSCALE (integer)
Gmagick::PREVIEW_QUANTIZE (integer)
Gmagick::PREVIEW_DESPECKLE (integer)
Gmagick::PREVIEW_REDUCENOISE (integer)
Gmagick::PREVIEW_ADDNOISE (integer)
Gmagick::PREVIEW_SHARPEN (integer)
Gmagick::PREVIEW_BLUR (integer)
Gmagick::PREVIEW_THRESHOLD (integer)
Gmagick::PREVIEW_EDGEDETECT (integer)
Gmagick::PREVIEW_SPREAD (integer)
Gmagick::PREVIEW_SOLARIZE (integer)
Gmagick::PREVIEW_SHADE (integer)
Gmagick::PREVIEW_RAISE (integer)
Gmagick::PREVIEW_SEGMENT (integer)
Gmagick::PREVIEW_SWIRL (integer)
Gmagick::PREVIEW_IMPLODE (integer)
Gmagick::PREVIEW_WAVE (integer)
Gmagick::PREVIEW_OILPAINT (integer)
Gmagick::PREVIEW_CHARCOALDRAWING (integer)
Gmagick::PREVIEW_JPEG (integer)
Constantes de rendu
Gmagick::RENDERINGINTENT_UNDEFINED (integer)
Gmagick::RENDERINGINTENT_SATURATION (integer)
Gmagick::RENDERINGINTENT_PERCEPTUAL (integer)
Gmagick::RENDERINGINTENT_ABSOLUTE (integer)
Gmagick::RENDERINGINTENT_RELATIVE (integer)
Constantes Fillrule
Gmagick::FILLRULE_UNDEFINED (integer)
Gmagick::FILLRULE_EVENODD (integer)
Gmagick::FILLRULE_NONZERO (integer)
Constantes Pathunit
Gmagick::PATHUNITS_UNDEFINED (integer)
Gmagick::PATHUNITS_USERSPACE (integer)
Gmagick::PATHUNITS_USERSPACEONUSE (integer)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (integer)
Constantes Linecap
Gmagick::LINECAP_UNDEFINED (integer)
Gmagick::LINECAP_BUTT (integer)
Gmagick::LINECAP_ROUND (integer)
Gmagick::LINECAP_SQUARE (integer)
Constantes de jointure de lignes
Gmagick::LINEJOIN_UNDEFINED (integer)
Gmagick::LINEJOIN_MITER (integer)
Gmagick::LINEJOIN_ROUND (integer)
Gmagick::LINEJOIN_BEVEL (integer)
Constantes de type de ressources
Gmagick::RESOURCETYPE_UNDEFINED (integer)
Gmagick::RESOURCETYPE_AREA (integer)
Gmagick::RESOURCETYPE_DISK (integer)
Gmagick::RESOURCETYPE_FILE (integer)
Gmagick::RESOURCETYPE_MAP (integer)
Gmagick::RESOURCETYPE_MEMORY (integer)
Constantes d'orientation
Gmagick::ORIENTATION_UNDEFINED (integer)
Gmagick::ORIENTATION_TOPLEFT (integer)
Gmagick::ORIENTATION_TOPRIGHT (integer)
Gmagick::ORIENTATION_BOTTOMRIGHT (integer)
Gmagick::ORIENTATION_BOTTOMLEFT (integer)
Gmagick::ORIENTATION_LEFTTOP (integer)
Gmagick::ORIENTATION_RIGHTTOP (integer)
Gmagick::ORIENTATION_RIGHTBOTTOM (integer)
Gmagick::ORIENTATION_LEFTBOTTOM (integer)


Exemples

Ce qui suit montre quelques opérations communes avec Gmagick.

Exemple #1 Gmagick Example

<?php
//Instantiation d'un nouvel objet Gmagick
$image = new Gmagick('example.jpg');

// Crée une miniature depuis l'image chargée. 0 pour un des axes préservera le ratio
$image->thumbnailImage(1000);

// Crée une bordure autour de l'image, puis, simule la façon dont sera rendue l'image
// après un rendu à la peinture à l'huile.
// Notez le chaînage des méthodes supporté par Gmagick
$image->borderImage("yellow"88)->oilPaintImage(0.3);

// Ecrit l'image courante dans un fichier
$image->write('example_thumbnail.jpg');
?>


La classe Gmagick

Introduction

Description de la classe.

Synopsis de la classe

Gmagick {
/* Méthodes */
public Gmagick addimage ( Gmagick $Gmagick )
public Gmagick addnoiseimage ( int $NOISE )
public Gmagick annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text )
public Gmagick blurimage ( float $radius , float $sigma [, int $channel ] )
public Gmagick borderimage ( GmagickPixel $color , int $width , int $height )
public Gmagick charcoalimage ( float $radius , float $sigma )
public Gmagick chopimage ( int $width , int $height , int $x , int $y )
public Gmagick clear ( void )
public Gmagick commentimage ( string $comment )
public Gmagick compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y )
__construct ([ string $filename ] )
public Gmagick cropimage ( int $width , int $height , int $x , int $y )
public Gmagick cropthumbnailimage ( int $width , int $height )
public Gmagick current ( void )
public Gmagick cyclecolormapimage ( int $displace )
public void deconstructimages ( void )
public Gmagick despeckleimage ( void )
public Gmagick destroy ( void )
public Gmagick drawimage ( GmagickDraw $GmagickDraw )
public Gmagick edgeimage ( float $radius )
public Gmagick embossimage ( float $radius , float $sigma )
public Gmagick enhanceimage ( void )
public Gmagick equalizeimage ( void )
public Gmagick flipimage ( void )
public Gmagick flopimage ( void )
public Gmagick frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel )
public Gmagick gammaimage ( float $gamma )
public string getcopyright ( void )
public string getfilename ( void )
public void getimagebackgroundcolor ( void )
public array getimageblueprimary ( void )
public void getimagebordercolor ( void )
public int getimagechanneldepth ( int $channel_type )
public int getimagecolors ( void )
public int getimagecolorspace ( void )
public int getimagecompose ( void )
public int getimagedelay ( void )
public int getimagedepth ( void )
public int getimagedispose ( void )
public array getimageextrema ( void )
public string getimagefilename ( void )
public string getimageformat ( void )
public float getimagegamma ( void )
public array getimagegreenprimary ( void )
public int getimageheight ( void )
public array getimagehistogram ( void )
public int getimageindex ( void )
public int getimageinterlacescheme ( void )
public int getimageiterations ( void )
public int getimagematte ( void )
public void getimagemattecolor ( void )
public string getimageprofile ( string $name )
public array getimageredprimary ( void )
public int getimagerenderingintent ( void )
public array getimageresolution ( void )
public int getimagescene ( void )
public string getimagesignature ( void )
public int getimagetype ( void )
public int getimageunits ( void )
public array getimagewhitepoint ( void )
public int getimagewidth ( void )
public string getpackagename ( void )
public array getquantumdepth ( void )
public string getreleasedate ( void )
public array getsamplingfactors ( void )
public array getsize ( void )
public array getversion ( void )
public mixed hasnextimage ( void )
public mixed haspreviousimage ( void )
public mixed implodeimage ( float $radius )
public mixed labelimage ( string $label )
public mixed levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] )
public mixed magnifyimage ( void )
public Gmagick mapimage ( gmagick $gmagick , bool $dither )
public void medianfilterimage ( float $radius )
public void minifyimage ( void )
public void modulateimage ( float $brightness , float $saturation , float $hue )
public void motionblurimage ( float $radius , float $sigma , float $angle )
public void newimage ( int $width , int $height , string $background [, string $format ] )
public bool nextimage ( void )
public void normalizeimage ([ int $channel ] )
public void oilpaintimage ( float $radius )
public bool previousimage ( void )
public void profileimage ( string $name , string $profile )
public void quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )
public void quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )
public array queryfontmetrics ( GmagickDraw $draw , string $text )
public array queryfonts ([ string $pattern = "*" ] )
public array queryformats ([ string $pattern = "*" ] )
public void radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] )
public void raiseimage ( int $width , int $height , int $x , int $y , bool $raise )
public void read ( string $filename )
public void readimage ( string $filename )
public void readimageblob ( string $imageContents [, string $filename ] )
public void readimagefile ( resource $fp [, string $filename ] )
public void reducenoiseimage ( float $radius )
public void removeimage ( void )
public string removeimageprofile ( string $name )
public void resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur )
public void resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = false ] )
public void rollimage ( int $x , int $y )
public Gmagick rotateimage ( mixed $color , float $degrees )
public Gmagick scaleimage ( int $width , int $height [, bool $fit = false ] )
public Gmagick separateimagechannel ( int $channel )
public Gmagick setfilename ( string $filename )
public Gmagick setimagebackgroundcolor ( GmagickPixel $color )
public Gmagick setimageblueprimary ( float $x , float $y )
public Gmagick setimagebordercolor ( GmagickPixel $color )
public Gmagick setimagechanneldepth ( int $channel , int $depth )
public Gmagick setimagecolorspace ( int $colorspace )
public Gmagick setimagecompose ( int $composite )
public Gmagick setimagedelay ( int $delay )
public Gmagick setimagedepth ( int $depth )
public Gmagick setimagedispose ( int $disposeType )
public Gmagick setimagefilename ( string $filename )
public Gmagick setimageformat ( string $imageFormat )
public Gmagick setimagegamma ( float $gamma )
public Gmagick setimagegreenprimary ( float $x , float $y )
public Gmagick setimageindex ( int $index )
public Gmagick setimageinterlacescheme ( int $interlace )
public Gmagick setimageiterations ( int $iterations )
public Gmagick setimageprofile ( string $name , string $profile )
public Gmagick setimageredprimary ( float $x , float $y )
public Gmagick setimagerenderingintent ( int $rendering_intent )
public Gmagick setimageresolution ( float $xResolution , float $yResolution )
public Gmagick setimagescene ( int $scene )
public Gmagick setimagetype ( int $imgType )
public Gmagick setimageunits ( int $resolution )
public Gmagick setimagewhitepoint ( float $x , float $y )
public Gmagick setsamplingfactors ( array $factors )
public Gmagick setsize ( int $columns , int $rows )
public Gmagick shearimage ( mixed $color , float $xShear , float $yShear )
public Gmagick solarizeimage ( int $threshold )
public Gmagick spreadimage ( float $radius )
public Gmagick stripimage ( void )
public Gmagick swirlimage ( float $degrees )
public Gmagick thumbnailimage ( int $width , int $height [, bool $fit = false ] )
public Gmagick trimimage ( float $fuzz )
public void write ( string $filename )
public Gmagick writeimage ( string $filename [, bool $all_frames = false ] )
}

Gmagick::addimage

(PECL gmagick >= Unknown)

Gmagick::addimageAjoute une nouvelle image à la liste des images de l'objet Gmagick

Description

public Gmagick Gmagick::addimage ( Gmagick $Gmagick )

Ajoute une nouvelle image à l'objet Gmagick depuis la position courante de l'objet source. Après l'opération, l'itérateur de position est déplacé à la fin de la liste.

Liste de paramètres

source

L'objet Gmagick source

Valeurs de retour

L'objet Gmagick contenant la nouvelle image chargé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::addnoiseimage

(PECL gmagick >= Unknown)

Gmagick::addnoiseimageAjoute du bruit aléatoirement dans l'image

Description

public Gmagick Gmagick::addnoiseimage ( int $NOISE )

Ajoute du bruit aléatoirement dans l'image.

Liste de paramètres

noise_type

Le type de bruit. Reportez-vous à la liste des constantes relatives au bruit.

Valeurs de retour

L'objet Gmagick dont le bruit a été ajouté.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::annotateimage

(PECL gmagick >= Unknown)

Gmagick::annotateimageAnnote une image avec du texte

Description

public Gmagick Gmagick::annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text )

Annote une image avec du texte.

Liste de paramètres

GmagickDraw

L'objet GmagickDraw contenant la configuration afin de dessiner le texte

x

Position horizontale, en pixels, du bord gauche du texte

y

Position verticale, en pixels, du bas du texte

angle

L'angle utilisé pour écrire le texte

text

Le texte à dessiner

Valeurs de retour

L'objet Gmagick contenant l'annotation.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::blurimage

(PECL gmagick >= Unknown)

Gmagick::blurimageAjoute un filtre flou à l'image

Description

public Gmagick Gmagick::blurimage ( float $radius , float $sigma [, int $channel ] )

Ajoute un filtre flou à l'image.

Liste de paramètres

radius

Rayon utilisé pour le flou

sigma

Déviation standard

Valeurs de retour

L'objet Gmagick flouté.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::borderimage

(PECL gmagick >= Unknown)

Gmagick::borderimageAjoute une bordure à l'image

Description

public Gmagick Gmagick::borderimage ( GmagickPixel $color , int $width , int $height )

Ajoute une bordure à l'image dont la couleur sera définie par l'objet GmagickPixel ou une couleur sous forme de chaîne de caractères.

Liste de paramètres

color

Objet GmagickPixel ou une chaîne de caractères contenant la couleur de la bordure.

width

Épaisseur de la bordure

height

Hauteur de la bordure

Valeurs de retour

L'objet Gmagick dont la bordure a été ajoutée

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::charcoalimage

(PECL gmagick >= Unknown)

Gmagick::charcoalimageSimule un dessin au fusain

Description

public Gmagick Gmagick::charcoalimage ( float $radius , float $sigma )

Simule un dessin au fusain.

Liste de paramètres

radius

Le rayon du Gaussien, en pixels, sans compter le pixel central

sigma

La déviation standard du Gaussien, en pixels

Valeurs de retour

L'objet Gmagick contenant la simulation du dessin au fusain.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::chopimage

(PECL gmagick >= Unknown)

Gmagick::chopimageSupprime une région de l'image

Description

public Gmagick Gmagick::chopimage ( int $width , int $height , int $x , int $y )

Supprime une région de l'image et la repositionne afin d'occuper la portion effacée.

Liste de paramètres

width

Longueur de la région à supprimer

height

Hauteur de la région à supprimer

x

Origine en X de la région à supprimer

y

Origine en Y de la région à supprimer

Valeurs de retour

L'objet Gmagick dont la région a été supprimée.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::clear

(PECL gmagick >= Unknown)

Gmagick::clearEfface toutes les ressources associées à l'objet Gmagick

Description

public Gmagick Gmagick::clear ( void )

Efface toutes les ressources associées à l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick nettoyé

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::commentimage

(PECL gmagick >= Unknown)

Gmagick::commentimageAjoute un commentaire à l'image

Description

public Gmagick Gmagick::commentimage ( string $comment )

Ajoute un commentaire à l'image.

Liste de paramètres

comment

Le commentaire à ajouter

Valeurs de retour

L'objet Gmagick contenant le commentaire.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::compositeimage

(PECL gmagick >= Unknown)

Gmagick::compositeimageAssemble 2 images

Description

public Gmagick Gmagick::compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y )

Assemble 2 images à une position spécifique.

Liste de paramètres

source

L'objet Gmagick qui contient l'image à assembler

compose

L'opérateur d'assemblage.

x

La position de la colonne de l'image assemblée

y

La position de la ligne de l'image assemblée

Valeurs de retour

L'objet Gmagick contenant l'assemblage.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::__construct

(PECL gmagick >= Unknown)

Gmagick::__constructLe constructeur Gmagick

Description

Gmagick::__construct ([ string $filename ] )

Le constructeur Gmagick.

Liste de paramètres

filename

Le chemin vers une image à charger ou un tableau de chemins

Valeurs de retour

Retourne un nouvel objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::cropimage

(PECL gmagick >= Unknown)

Gmagick::cropimageExtrait une portion d'une image

Description

public Gmagick Gmagick::cropimage ( int $width , int $height , int $x , int $y )

Extrait une portion de l'image.

Liste de paramètres

width

La longueur de la portion

height

La hauteur de la région

x

La coordonnée en X de la portion à extraire, en commençant par le coin en haut, à gauche

y

La coordonnée en Y de la portion à extraire, en commençant par le coin en haut, à gauche

Valeurs de retour

L'objet Gmagick représentant la portion extraite

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::cropthumbnailimage

(PECL gmagick >= Unknown)

Gmagick::cropthumbnailimageCrée une miniature recadrée

Description

public Gmagick Gmagick::cropthumbnailimage ( int $width , int $height )

Crée une miniature de taille fixe en commençant par une mise à l'échelle de l'image, puis, en recadrant la région spécifique depuis le centre.

Liste de paramètres

width

La longueur de la miniature

height

La hauteur de la miniature

Valeurs de retour

L'objet Gmagick recadré

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::current

(PECL gmagick >= Unknown)

Gmagick::currentLe contexte courante

Description

public Gmagick Gmagick::current ( void )

Retourne une référence vers l'objet Gmagick courant avec le pointeur de l'image à la bonne séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contexte en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::cyclecolormapimage

(PECL gmagick >= Unknown)

Gmagick::cyclecolormapimageDéplace la carte des couleurs d'une image

Description

public Gmagick Gmagick::cyclecolormapimage ( int $displace )

Déplace la carte des couleurs d'une image d'un nombre de positions donné. Si vous déplacez plusieurs fois la carte des couleurs, vous pouvez produire un effet psychédélique.

Liste de paramètres

displace

Le nombre de positions dont on doit déplacer la carte des couleurs.

Valeurs de retour

Retourne le contexte en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::deconstructimages

(PECL gmagick >= Unknown)

Gmagick::deconstructimagesRetourne les pixels différents entre des images

Description

public void Gmagick::deconstructimages ( void )

Compares chaque image avec la suivante de la séquence et retourne les pixels différents découverts.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::despeckleimage

(PECL gmagick >= Unknown)

Gmagick::despeckleimageLe but de despeckleimage

Description

public Gmagick Gmagick::despeckleimage ( void )

Réduit le bruit speckle d'une image tout en préservant les bords de l'image original.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick sans bruit en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.

Exemples

Exemple #1 Exemple avec Gmagick::despeckleimage()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



Gmagick::destroy

(PECL gmagick >= Unknown)

Gmagick::destroyLe but de la méthode destroy

Description

public Gmagick Gmagick::destroy ( void )

Détruit l'objet Gmagick et libère toutes les ressources associées.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimageEnvoi l'objet GmagickDraw dans l'image courante

Description

public Gmagick Gmagick::drawimage ( GmagickDraw $GmagickDraw )

Envoi l'objet GmagickDraw dans l'image courante.

Liste de paramètres

GmagickDraw

L'objet GmagickDraw à envoyer dans l'image courante.

Valeurs de retour

L'objet Gmagick contenant les modifications réalisées dans l'objet GmagickDraw.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::edgeimage

(PECL gmagick >= Unknown)

Gmagick::edgeimageAméliore les bords intérieurs de l'image

Description

public Gmagick Gmagick::edgeimage ( float $radius )

Améliore les bords intérieurs de l'image avec un filter de convolution utilisant le rayon fourni. Utilisez un rayon de 0 et la méthode le choisira pour vous.

Liste de paramètres

radius

Le rayon utilisé pour l'opération.

Valeurs de retour

L'objet Gmagick dont les bords intérieurs ont été améliorés.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::embossimage

(PECL gmagick >= Unknown)

Gmagick::embossimageRetourne une image en niveau de gris avec un effet à 3 dimensions

Description

public Gmagick Gmagick::embossimage ( float $radius , float $sigma )

Retourne une image en niveau de gris avec un effet à 3 dimensions. L'image est transformée avec un opérateur Gaussien utilisant le rayon donné, et une déviation standard (sigma). Pour obtenir un résultat convenable, le rayon doit être supérieur au sigma. Si vous spécifiez un rayon de 0, la méthode choisira le meilleur rayon à votre place.

Liste de paramètres

radius

Le rayon de l'effect

sigma

Le sigma de l'effet

Valeurs de retour

L'objet Gmagick en relief.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::enhanceimage

(PECL gmagick >= Unknown)

Gmagick::enhanceimageAméliore la qualité d'une image contenant du bruit

Description

public Gmagick Gmagick::enhanceimage ( void )

Applique un filtre digital qui améliore la qualité d'une image contenant du bruit.

Valeurs de retour

L'objet Gmagick amélioré.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::equalizeimage

(PECL gmagick >= Unknown)

Gmagick::equalizeimageÉgalise l'histogramme de l'image

Description

public Gmagick Gmagick::equalizeimage ( void )

Égalise l'histogramme de l'image.

Valeurs de retour

L'objet Gmagick égalisé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::flipimage

(PECL gmagick >= Unknown)

Gmagick::flipimageCrée une image miroir verticale

Description

public Gmagick Gmagick::flipimage ( void )

Crée une image miroir verticale en reflétant les pixels autour du centre de l'axe X.

Valeurs de retour

L'objet Gmagick reflété.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimageLe but de la méthode flopimage

Description

public Gmagick Gmagick::flopimage ( void )

Crée une image miroir horizontale en reflétant les pixels autour du centre de l'axe Y.

Valeurs de retour

L'objet Gmagick reflété.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::frameimage

(PECL gmagick >= Unknown)

Gmagick::frameimageAjoute une bordure afin de simuler un effet 3D

Description

public Gmagick Gmagick::frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel )

Ajoute une bordure simulant un effet 3D à l'image. La largeur et la hauteur spécifiés la largeur de la bordure verticale et horizontale de la frame. Les paramètres inner_bevel et outer_bevel indiquent la largeur interne et externe de l'ombre de la frame.

Liste de paramètres

color

Un objet GmagickPixel ou un nombre à virgule flottante représentant la couleur mate.

width

La largeur de la bordure

height

La hauteur de la bordure

inner_bevel

La largeur du bevel interne

outer_bevel

La largeur du bevel externe

Valeurs de retour

L'objet Gmagick dont la bordure 3D a été ajoutée.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::gammaimage

(PECL gmagick >= Unknown)

Gmagick::gammaimageCorrige le gamma d'une image

Description

public Gmagick Gmagick::gammaimage ( float $gamma )

Corrige le gamma d'une image. La même image vue sur différents médias aura plusieurs différences suivant l'intensité représentée sur l'écran. Vous pouvez ainsi jouer sur le niveau de gamma pour les canaux rouges, verts et bleus, ou ajuster les 3 avec le paramètres gamma. Les valeurs sont typiquement dans l'intervalle 0.8 à 2.3.

Liste de paramètres

gamma

La quantité de correction gamma.

Valeurs de retour

L'objet Gmagick dont le gamma a été corrigé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getcopyright

(PECL gmagick >= Unknown)

Gmagick::getcopyrightRetourne le copyright de l'API GraphicsMagick

Description

public string Gmagick::getcopyright ( void )

Retourne le copyright de l'API GraphicsMagick.

Valeurs de retour

Retourne une chaîne de caractères contenant le copyright de l'API GraphicsMagick ainsi que celui de l'API Magickwand.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getfilename

(PECL gmagick >= Unknown)

Gmagick::getfilenameRetourne le nom du fichier associé avec une séquence d'image

Description

public string Gmagick::getfilename ( void )

Retourne le nom du fichier associé avec une séquence d'image.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::getimagebackgroundcolorRetourne la couleur d'arrière plan de l'image

Description

public void Gmagick::getimagebackgroundcolor ( void )

Retourne la couleur d'arrière plan de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet GmagickPixel défini à la couleur d'arrière plan de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::getimageblueprimaryRetourne le point bleu primaire chromatique

Description

public array Gmagick::getimageblueprimary ( void )

Retourne le point bleu primaire chromatique de l'image.

Liste de paramètres

x

Coordonnée en X du point bleu primaire chromatique.

y

Coordonnée en Y du point bleu primaire chromatique.

Valeurs de retour

Un tableau contenant les coordonnées en X et en Y du point.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::getimagebordercolorRetourne la couleur du bord de l'image

Description

public void Gmagick::getimagebordercolor ( void )

Retourne la couleur du bord de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet GmagickPixel représentant la couleur du bord de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::getimagechanneldepthRécupère la profondeur d'un canal particulier de l'image

Description

public int Gmagick::getimagechanneldepth ( int $channel_type )

Récupère la profondeur d'un canal particulier de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur du canal de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagecolors

(PECL gmagick >= Unknown)

Gmagick::getimagecolorsRetourne la couleur de l'indice de la carte des couleurs spécifiée

Description

public int Gmagick::getimagecolors ( void )

Retourne la couleur de l'indice de la carte des couleurs spécifiée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de couleurs dans l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::getimagecolorspaceRécupère l'espace colorimétrique de l'image

Description

public int Gmagick::getimagecolorspace ( void )

Récupère l'espace colorimétrique de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'espace colorimétrique.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagecompose

(PECL gmagick >= Unknown)

Gmagick::getimagecomposeRetourne l'opérateur de composition associé avec l'image

Description

public int Gmagick::getimagecompose ( void )

Retourne l'opérateur de composition associé avec l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'opérateur de composition associé avec l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagedelay

(PECL gmagick >= Unknown)

Gmagick::getimagedelayRécupère le délai de l'image

Description

public int Gmagick::getimagedelay ( void )

Récupère le délai de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'opérateur de composition associé avec l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagedepth

(PECL gmagick >= Unknown)

Gmagick::getimagedepthRécupère la profondeur de l'image

Description

public int Gmagick::getimagedepth ( void )

Récupère la profondeur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagedispose

(PECL gmagick >= Unknown)

Gmagick::getimagedisposeRécupère la méthode de disposition de l'image

Description

public int Gmagick::getimagedispose ( void )

Récupère la méthode de disposition de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la méthode de disposition de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageextrema

(PECL gmagick >= Unknown)

Gmagick::getimageextremaRécupère les extrémités de l'image

Description

public array Gmagick::getimageextrema ( void )

Retourne un tableau associatif contenant les clés "min" et "max". Émet une exception GmagickException en cas d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant les clés "min" et "max".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagefilename

(PECL gmagick >= Unknown)

Gmagick::getimagefilenameRécupère le nom du fichier d'une image particulière dans une séquence

Description

public string Gmagick::getimagefilename ( void )

Récupère le nom du fichier d'une image particulière dans une séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le nom du fichier image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageformat

(PECL gmagick >= Unknown)

Gmagick::getimageformatRécupère le format d'une image particulière dans une séquence

Description

public string Gmagick::getimageformat ( void )

Récupère le format d'une image particulière dans une séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant le format de l'image en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagegamma

(PECL gmagick >= Unknown)

Gmagick::getimagegammaRécupère le gamma de l'image

Description

public float Gmagick::getimagegamma ( void )

Récupère le gamma de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le gamma de l'image en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::getimagegreenprimaryRécupère le point chromatique primaire vert

Description

public array Gmagick::getimagegreenprimary ( void )

Récupère le point chromatique primaire vert.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les clés "x" and "y" en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageheight

(PECL gmagick >= Unknown)

Gmagick::getimageheightRécupère la hauteur de l'image

Description

public int Gmagick::getimageheight ( void )

Récupère la hauteur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la hauteur de l'image, en pixels.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagehistogram

(PECL gmagick >= Unknown)

Gmagick::getimagehistogramRécupère l'histogramme de l'image

Description

public array Gmagick::getimagehistogram ( void )

Récupère l'histogramme de l'image. Lance une exception GmagickException en cas d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'histogramme de l'image sous la forme d'un tableau d'objets GmagickPixel.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageindex

(PECL gmagick >= Unknown)

Gmagick::getimageindexRécupère l'indice de l'image active courante

Description

public int Gmagick::getimageindex ( void )

Récupère l'indice de l'image active courante dans l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'indice de l'image courante active.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::getimageinterlaceschemeRécupère le schéma d'entrelacement de l'image

Description

public int Gmagick::getimageinterlacescheme ( void )

Récupère le schéma d'entrelacement de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le schéma d'entrelacement de l'image, sous la forme d'un entier en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageiterations

(PECL gmagick >= Unknown)

Gmagick::getimageiterationsRécupère les itérations de l'image

Description

public int Gmagick::getimageiterations ( void )

Récupère les itérations de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les itérations de l'image, sous la forme d'un entier.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagematte

(PECL gmagick >= Unknown)

Gmagick::getimagematteVérifie si l'image a un canal mate

Description

public int Gmagick::getimagematte ( void )

Retourne TRUE si l'image a un canal mate, FALSE sinon.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'image a un canal mate, FALSE sinon.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagemattecolor

(PECL gmagick >= Unknown)

Gmagick::getimagemattecolorRécupère la couleur mate de l'image

Description

public void Gmagick::getimagemattecolor ( void )

Retourne un objet GmagickPixel en cas de succès. Lance une exception GmagickException en cas d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet GmagickPixel.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageprofile

(PECL gmagick >= Unknown)

Gmagick::getimageprofileRécupère le nom du profile de l'image

Description

public string Gmagick::getimageprofile ( string $name )

Récupère le nom du profile de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le profile de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageredprimary

(PECL gmagick >= Unknown)

Gmagick::getimageredprimaryRécupère le point chromatique primaire rouge

Description

public array Gmagick::getimageredprimary ( void )

Récupère le point chromatique primaire rouge, sous la forme d'un tableau contenant les clés "x" et "y".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le point chromatique primaire rouge, sous la forme d'un tableau contenant les clés "x" et "y".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::getimagerenderingintentRécupère l'image de rendu

Description

public int Gmagick::getimagerenderingintent ( void )

Récupère l'image de rendu.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Extrait une région de l'image et la retourne en tant que nouvelle.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageresolution

(PECL gmagick >= Unknown)

Gmagick::getimageresolutionRécupère la résolution de l'image

Description

public array Gmagick::getimageresolution ( void )

Récupère la résolution de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la résolution sous la forme d'un tableau.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagescene

(PECL gmagick >= Unknown)

Gmagick::getimagesceneRécupère la scène de l'image

Description

public int Gmagick::getimagescene ( void )

Récupère la scène de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la scène de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagesignature

(PECL gmagick >= Unknown)

Gmagick::getimagesignatureGénère la signature SHA-256 de l'image

Description

public string Gmagick::getimagesignature ( void )

Génère la signature SHA-256 de l'image depuis le flux de pixels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant la signature SHA-256 hash.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagetype

(PECL gmagick >= Unknown)

Gmagick::getimagetypeRécupère le type potentiel d'une image

Description

public int Gmagick::getimagetype ( void )

Récupère le type potentiel d'une image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type potentiel d'une image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimageunits

(PECL gmagick >= Unknown)

Gmagick::getimageunitsRécupère les unités utilisées pour la résolution de l'image

Description

public int Gmagick::getimageunits ( void )

Récupère les unités utilisées pour la résolution de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les unités utilisées pour la résolution de l'image.



Gmagick::getimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::getimagewhitepointRécupère le point chromatique blanc

Description

public array Gmagick::getimagewhitepoint ( void )

Récupère le point chromatique blanc.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le point chromatique blanc, sous la forme d'un tableau associatif contenant les clés "x" et "y".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getimagewidth

(PECL gmagick >= Unknown)

Gmagick::getimagewidthRécupère la largeur de l'image

Description

public int Gmagick::getimagewidth ( void )

Récupère la largeur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getpackagename

(PECL gmagick >= Unknown)

Gmagick::getpackagenameRécupère le nom du paquet GraphicsMagick

Description

public string Gmagick::getpackagename ( void )

Récupère le nom du paquet GraphicsMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du paquet GraphicsMagick, sous la forme d'une chaîne de caractères.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getquantumdepth

(PECL gmagick >= Unknown)

Gmagick::getquantumdepthRécupère la profondeur du quantum Gmagick

Description

public array Gmagick::getquantumdepth ( void )

Récupère la profondeur du quantum Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la profondeur du quantum Gmagick, sous la forme d'un chaîne de caractères.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getreleasedate

(PECL gmagick >= Unknown)

Gmagick::getreleasedateRécupère la date de sortie de la version courante de GraphicsMagick

Description

public string Gmagick::getreleasedate ( void )

Récupère la date de sortie de la version courante de GraphicsMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de sortie de la version courante de GraphicsMagick sous la forme d'une chaîne de caractères.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::getsamplingfactorsRécupère le facteur d'échantillonnage horizontal et vertical

Description

public array Gmagick::getsamplingfactors ( void )

Récupère le facteur d'échantillonnage horizontal et vertical.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant le facteur d'échantillonnage vertical et horizontal.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getsize

(PECL gmagick >= Unknown)

Gmagick::getsizeRécupère la taille associée avec l'objet Gmagick

Description

public array Gmagick::getsize ( void )

Récupère la taille associée avec l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille associée avec l'objet Gmagick sous la forme d'un tableau contenant les clés "columns" et "rows".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::getversion

(PECL gmagick >= Unknown)

Gmagick::getversionRécupère la version de l'API GraphicsMagick

Description

public array Gmagick::getversion ( void )

Récupère la version de l'API GraphicsMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la version de l'API GraphicsMagick, sous la forme d'une chaîne de caractères et d'un nombre.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::hasnextimage

(PECL gmagick >= Unknown)

Gmagick::hasnextimageVérifie si l'objet contient au moins une autre image

Description

public mixed Gmagick::hasnextimage ( void )

Vérifie si l'objet contient au moins une image suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'objet a au moins une image suivante, FALSE sinon.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::haspreviousimage

(PECL gmagick >= Unknown)

Gmagick::haspreviousimageVérifie si l'objet contient une image précédente

Description

public mixed Gmagick::haspreviousimage ( void )

Vérifie si l'objet contient une image précédente.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'objet a au moins une image précédente, FALSE sinon.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::implodeimage

(PECL gmagick >= Unknown)

Gmagick::implodeimageCrée une image à partir d'une copie

Description

public mixed Gmagick::implodeimage ( float $radius )

Crée une nouvelle image à partir d'une copie d'une image existante dont les pixels ont été modifiés suivant le pourcentage fourni.

Liste de paramètres

radius

La rayon d'implosion des pixels

Valeurs de retour

Retourne un objet Gmagick dont les pixels ont été modifiés.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::labelimage

(PECL gmagick >= Unknown)

Gmagick::labelimageAjoute un libellé à une image

Description

public mixed Gmagick::labelimage ( string $label )

Ajoute un libellé à une image.

Liste de paramètres

label

Le libellé à ajouter

Valeurs de retour

Gmagick avec un libellé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::levelimage

(PECL gmagick >= Unknown)

Gmagick::levelimageAjuste les niveaux d'une image

Description

public mixed Gmagick::levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] )

Ajuste les niveaux d'une image en balançant les couleurs situées entre les points blancs et noirs spécifiés, vers un intervalle quantum disponible. Les paramètres fournis fournissent les points blancs, milieux et noirs. Le point noir spécifie la couleur la plus sombre de l'image. Les couleurs plus sombres que le point noir seront définies à zéro. Le point milieux spécifie une correction gamma à appliquer à l'image. Le point blanc spécifie la couleur la plus claire de l'image. Les couleurs plus claires que le point blanc seront définies à la valeur maximale du quantum.

Liste de paramètres

blackPoint

Le point noir de l'image

gamma

La valeur gamma

whitePoint

Le point blanc de l'image

channel

Une constante de canaux valide pour le mode de canal utilisé. Pour l'appliquer à plus d'un canal, combinez les constantes de type de canaux en utilisant un opérateur de jonction. Reportez-vous à la liste des constantes de canaux.

Valeurs de retour

L'objet Gmagick dont les niveaux ont été modifiés.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::magnifyimage

(PECL gmagick >= Unknown)

Gmagick::magnifyimageRetaille par 2 une image en conservant les proportions

Description

public mixed Gmagick::magnifyimage ( void )

Retaille par 2 une image en conservant les proportions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick modifié.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::mapimage

(PECL gmagick >= Unknown)

Gmagick::mapimageRemplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence

Description

public Gmagick Gmagick::mapimage ( gmagick $gmagick , bool $dither )

Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence.

Liste de paramètres

gmagick

L'image de référence

dither

Entier plus grand que 0 pour faire tergiverser l'image mappée

Valeurs de retour

L'objet Gmagick.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::medianfilterimage

(PECL gmagick >= Unknown)

Gmagick::medianfilterimageApplique un filtre digital

Description

public void Gmagick::medianfilterimage ( float $radius )

Applique un filtre digital qui améliore la qualité du bruit d'une image. Chaque pixel est remplacé par le médian dans un jeu de pixels voisins tel que défini par le rayon.

Liste de paramètres

radius

Le rayon des pixels voisins.

Valeurs de retour

L'objet Gmagick dont le filtre a été appliqué.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::minifyimage

(PECL gmagick >= Unknown)

Gmagick::minifyimageRéduit une image de moitié en gardant les proportions

Description

public void Gmagick::minifyimage ( void )

Réduit une image de moitié en gardant les proportions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::modulateimage

(PECL gmagick >= Unknown)

Gmagick::modulateimageContrôle la luminosité, la saturation et la teinte

Description

public void Gmagick::modulateimage ( float $brightness , float $saturation , float $hue )

Permet de contrôler la luminosité, la saturation et la teinte d'une image. La teinte est un pourcentage d'une rotation absolue depuis la position courante. Par exemple, 50 correspond à une rotation de 90 degrés dans le sens inverse des aiguilles d'une montre, 150, une rotation de 90 degrés dans le sens des aiguilles d'une montre, ou encore, 0 ou 200 correspond à une rotation de 180 degrés.

Liste de paramètres

brightness

Le nombre de pourcentage à modifier pour la luminosité (-100 à +100).

saturation

Le nombre de pourcentage à modifier pour la saturation (-100 à +100).

hue

Le nombre de pourcentage à modifier pour la teinte (-100 à +100).

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::motionblurimage

(PECL gmagick >= Unknown)

Gmagick::motionblurimageSimule un flou cinétique

Description

public void Gmagick::motionblurimage ( float $radius , float $sigma , float $angle )

Simule un flou cinétique. L'image est traité avec un opérateur Gaussien d'un rayon donné et d'une déviation standard (sigma). Pour de bons résultats, le rayon doit être plus élevé que le sigma. Utilisez un rayon de 0 et la méthode MotionBlurImage() sélectionne le meilleur rayon pour vous. Le paramètre angle fournit l'angle du flou cinétique.

Liste de paramètres

radius

Le rayon du Gaussien, en pixels, sans compter le pixel central.

sigma

La déviation standard du Gaussien, en pixels.

angle

Applique l'effet tout le long de l'angle.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::newimage

(PECL gmagick >= Unknown)

Gmagick::newimageCrée une nouvelle image

Description

public void Gmagick::newimage ( int $width , int $height , string $background [, string $format ] )

Crée une nouvelle image avec la couleur d'arrière-plan spécifiée.

Liste de paramètres

width

Largeur de la nouvelle image.

height

Hauteur de la nouvelle image.

background

La couleur d'arrière-plan à utiliser pour l'image (sous la forme d'un nombre à virgule flottante)

format

Le format de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::nextimage

(PECL gmagick >= Unknown)

Gmagick::nextimageSe déplace sur l'image suivante

Description

public bool Gmagick::nextimage ( void )

Associe l'image suivante dans la liste des images avec un objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::normalizeimage

(PECL gmagick >= Unknown)

Gmagick::normalizeimageAméliore le contraste de la couleur de l'image

Description

public void Gmagick::normalizeimage ([ int $channel ] )

Améliore le contraste de la couleur de l'image en ajustant la couleur des pixels pour correspondre à l'intervalle de couleurs disponibles.

Liste de paramètres

channel

Canal à normaliser.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::oilpaintimage

(PECL gmagick >= Unknown)

Gmagick::oilpaintimageSimule une peinture à l'huile

Description

public void Gmagick::oilpaintimage ( float $radius )

Applique un effet spécial qui simule une peinture à l'huile. Chaque pixel est remplacé par la couleur survenant le plus grand nombre de fois dans une région circulaire définie par un rayon.

Liste de paramètres

radius

Le rayon de la région circulaire voisine.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::previousimage

(PECL gmagick >= Unknown)

Gmagick::previousimageSe déplace vers l'image précédente de l'objet

Description

public bool Gmagick::previousimage ( void )

Associe l'image précédente de la liste d'images avec l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::profileimage

(PECL gmagick >= Unknown)

Gmagick::profileimageAjoute ou supprime un profile d'une image

Description

public void Gmagick::profileimage ( string $name , string $profile )

Ajoute ou supprime un profile ICC, IPTC ou générique d'une image. Si le profile est NULL, il sera supprimé de l'image, sinon, il sera ajouté. Utilisez '*' comme nom et un profile NULL pour supprimer tous les profiles de l'image.

Liste de paramètres

name

Nom du profile à ajouter ou à supprimer : profile ICC, IPTC, ou générique.

profile

Le profile.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::quantizeimage

(PECL gmagick >= Unknown)

Gmagick::quantizeimageAnalyse les couleurs d'une image de référence

Description

public void Gmagick::quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )

Analyse les couleurs d'une image de référence et choisit un nombre fixe de couleurs représentant l'image. Le but de l'algorithme est de minimiser les différences de couleurs entre l'image d'entrée et celle de sortie lors d'un processus d'optimisation.

Liste de paramètres

numColors

Le nombre de couleurs.

colorspace

Effectue la réduction de couleurs dans cette espace de couleurs, typiquement RGBColorspace.

treeDepth

Normalement, la valeur de cet entier est zéro ou un. Une telle valeur demande à Quantize de choisir une profondeur optionnelle de Log4(number_colors). Un arbre de cette profondeur autrise généralement la meilleure représentation de l'image de référence tout en utilisant une quantité de mémoire raisonnable ainsi qu'une rapidité d'exécution optimum. Dans certains cas, comme avec une image contenant des dispersions de couleurs basses (un petit nombre de couleurs), une valeur autre que Log4(number_colors) est nécessaire. Pour étendre totalement l'arbre de couleurs, utilisez la valeur 8.

dither

Une valeur autre que zéro distribue la différence entre l'image originale et la couleur correspondante réduite par l'algorithme vers les pixels voisins le long de la courbe Hilbert.

measureError

Une valeur autre que zéro mesure la différence entre l'image originale et l'image optimisée. Cette différence représente l'erreur totale de quantification. L'erreur est calculé en faisant la somme de tous les pixels dans une image carrée de la distance dans l'espace RVB entre chaque valeur de pixel de référence et sa valeur quantifiée.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::quantizeimages

(PECL gmagick >= Unknown)

Gmagick::quantizeimagesLe but de quantizeimages

Description

public void Gmagick::quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )

Analyse les couleurs d'une séquence d'images et choisit un nombre fixe de couleurs pour représenter l'image. Le but de cet algorithme est de minimiser les différences de couleurs entre l'image d'entrée et celle de sortie lors d'un processus d'optimisation.

Liste de paramètres

numColors

Le nombre de couleurs.

colorspace

Effectue une réduction de couleur dans cet espace de couleur, habituellement, RGBColorspace.

treeDepth

Normalement, cet entier vaut zéro ou un. Ces valeurs indique au Quantize de choisir une profondeur d'arbre optimal de Log4(number_colors). Un arbre de cette profondeur autorise généralement la meilleure représentation de l'image de référence, avec un minimum de mémoire, et une rapidité d'exécution optimale. Dans certains cas, comme une image avec peu de dispersion de couleurs (un nombre peu élevé de couleurs), une valeur autre que Log4(number_colors) est nécessaire. Pour étendre l'arbre des couleurs complétement, utilisez la valeur 8.

dither

Une valeur autre que 0 distribue la différence entre l'image originale et la couleur correspondante réduite par l'algorithme aux pixels voisins le long d'une courbe Hilbert.

measureError

Une valeur autre que 0 mesure la différence entre l'image originale et celle quantifiée. La différence représente les erreurs de quantification. L'erreur est calculé en faisant la somme de tous les pixels dans une image carrée de la distance dans l'espace RVB entre chaque valeur de pixel de référence et sa valeur quantifiée.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::queryfontmetrics

(PECL gmagick >= Unknown)

Gmagick::queryfontmetricsRetourne un tableau représentant la métrique pour la police de caractères

Description

public array Gmagick::queryfontmetrics ( GmagickDraw $draw , string $text )

MagickQueryFontMetrics() retourne un tableau représentant la métrique pour la police de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::queryfonts

(PECL gmagick >= Unknown)

Gmagick::queryfontsRetourne les polices de caractères configurées

Description

public array Gmagick::queryfonts ([ string $pattern = "*" ] )

Retourne les polices de caractères supportées par Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::queryformats

(PECL gmagick >= Unknown)

Gmagick::queryformatsRetourne les formats supportés par Gmagick

Description

public array Gmagick::queryformats ([ string $pattern = "*" ] )

Retourne les formats supportés par Gmagick.

Liste de paramètres

pattern

Spécifie un pointeur vers un texte contenant un masque.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::radialblurimage

(PECL gmagick >= Unknown)

Gmagick::radialblurimageBrouille une image suivant un rayon

Description

public void Gmagick::radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] )

Brouille une image suivant un rayon.

Liste de paramètres

angle

L'angle de brouillage, en degrés.

channel

Canal concerné.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::raiseimage

(PECL gmagick >= Unknown)

Gmagick::raiseimageCrée un un bouton avec un effet 3D

Description

public void Gmagick::raiseimage ( int $width , int $height , int $x , int $y , bool $raise )

Crée un bouton avec un effet 3D en éclaircissant et en noircissant les angles de l'image. La hauteur et la margeur des membres de raise_info définissent la largeur du coin vertical et horizontal de l'effet.

Liste de paramètres

width

Largeur de la zone à traiter.

height

Hauteur de la zone à traiter.

x

Coordonnée en X.

y

Coordonnée en Y.

raise

Une valeur, autre que 0, pour créer l'effet 3D, sinon, l'effet sera amoindri.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::read

(PECL gmagick >= Unknown)

Gmagick::readLit une image depuis un fichier

Description

public void Gmagick::read ( string $filename )

Lit une image depuis un fichier.

Liste de paramètres

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::readimage

(PECL gmagick >= Unknown)

Gmagick::readimageLit une image depuis un fichier

Description

public void Gmagick::readimage ( string $filename )

Lit une image depuis un fichier.

Liste de paramètres

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::readimageblob

(PECL gmagick >= Unknown)

Gmagick::readimageblobLit une image depuis une chaîne binaire

Description

public void Gmagick::readimageblob ( string $imageContents [, string $filename ] )

Lit une image depuis une chaîne binaire.

Liste de paramètres

imageContents

Contenu de l'image.

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::readimagefile

(PECL gmagick >= Unknown)

Gmagick::readimagefileLe but de readimagefile

Description

public void Gmagick::readimagefile ( resource $fp [, string $filename ] )

Lit une image ou une séquence d'images depuis un descripteur de fichier ouvert.

Liste de paramètres

fp

Le descripteur de fichier.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::reducenoiseimage

(PECL gmagick >= Unknown)

Gmagick::reducenoiseimageLisse les contours de l'image

Description

public void Gmagick::reducenoiseimage ( float $radius )

Lisse les contours de l'image tout en conservant les informations des coins. L'algorithme fonctionne en remplaçant chaque pixel avec son voisin le plus proche de sa valeur. Un voisin est défini par son rayon. Utilisez un rayon de 0 et la méthode Gmagick::reduceNoiseImage() sélectionnera un rayon approprié pour vous.

Liste de paramètres

radius

Le rayon du pixel voisin.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::removeimage

(PECL gmagick >= Unknown)

Gmagick::removeimageSupprime une image depuis la liste des images

Description

public void Gmagick::removeimage ( void )

Supprime une image depuis la liste des images.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::removeimageprofile

(PECL gmagick >= Unknown)

Gmagick::removeimageprofileSupprime un profil nommé de l'image

Description

public string Gmagick::removeimageprofile ( string $name )

Supprime un profil nommé de l'image.

Liste de paramètres

name

Nom du profil à retourner : ICC, IPTC, ou un profil générique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::resampleimage

(PECL gmagick >= Unknown)

Gmagick::resampleimageÉchantillonne l'image à la résolution désirée

Description

public void Gmagick::resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur )

Échantillonne l'image à la résolution désirée.

Liste de paramètres

xResolution

La nouvelle résolution en X de l'image.

yResolution

La nouvelle résolution en Y de l'image.

filter

Filtre de l'image à utiliser.

blur

La facteur de flou où la valeur supérieure à 1 correspond a entièrement flou, et la valeur inférieure à 1, l'inverse.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::resizeimage

(PECL gmagick >= Unknown)

Gmagick::resizeimageRedimensionne une image

Description

public void Gmagick::resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = false ] )

Redimensionne une image aux dimensions voulues, avec un filtre.

Liste de paramètres

width

Le nombre de colonnes dans l'image redimensionnée.

height

Le nombre de lignes dans l'image redimensionnée.

filter

Le filtre de l'image à utiliser.

blur

Le facteur de flou, où les valeurs supérieures à 1 correspond à entièrement flou, et les valeurs inférieures à 1, l'inverse.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::rollimage

(PECL gmagick >= Unknown)

Gmagick::rollimageRepositionne une image

Description

public void Gmagick::rollimage ( int $x , int $y )

Repositionne une image en utilisant les paramètres x et y.

Liste de paramètres

x

La position en X.

y

La position en Y.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::rotateimage

(PECL gmagick >= Unknown)

Gmagick::rotateimageEffectue une rotation de l'image

Description

public Gmagick Gmagick::rotateimage ( mixed $color , float $degrees )

Effectue une rotation de l'image d'un degré spécifié. Les triangles vides non traités par la rotation seront remplis par la couleur d'arrière-plan.

Liste de paramètres

color

Le pixel d'arrière-plan.

degrees

Le degré de rotation de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::scaleimage

(PECL gmagick >= Unknown)

Gmagick::scaleimageMet à l'échelle une image

Description

public Gmagick Gmagick::scaleimage ( int $width , int $height [, bool $fit = false ] )

Met à l'échelle une image aux dimensions fournies. Les autresparamètres seront calculés si 0 est passé en tant que paramètre.

Liste de paramètres

width

Le nombre de colonnes dans l'image mise à l'échelle.

height

Le nombre de lignes dans l'image mise à l'échelle.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::separateimagechannel

(PECL gmagick >= Unknown)

Gmagick::separateimagechannelSépare un canal depuis une image

Description

public Gmagick Gmagick::separateimagechannel ( int $channel )

Sépare un canal depuis une image et retourne une image en niveau de gris. Un canal est un composant d'une couleur particulière de chaque pixel d'une image.

Liste de paramètres

channel

Canal à extraire : RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setfilename

(PECL gmagick >= Unknown)

Gmagick::setfilenameDéfinit le nom de fichier avant la lecture ou l'écriture d'une image

Description

public Gmagick Gmagick::setfilename ( string $filename )

Définit le nom de fichier avant la lecture ou l'écriture d'une image.

Liste de paramètres

filename

Le nom de fichier de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::setimagebackgroundcolorDéfinit la couleur d'arrière-plan de l'image

Description

public Gmagick Gmagick::setimagebackgroundcolor ( GmagickPixel $color )

Définit la couleur d'arrière-plan de l'image.

Liste de paramètres

color

La couleur d'arrière-plan.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::setimageblueprimaryDéfinit le point bleu primaire de l'image chromatique

Description

public Gmagick Gmagick::setimageblueprimary ( float $x , float $y )

Définit le point bleu primaire de l'image chromatique.

Liste de paramètres

x

Coordonnée en X du point du bleu primaire.

y

Coordonnée en Y du point du bleu primaire.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::setimagebordercolorDéfinit la couleur de la bordure de l'image

Description

public Gmagick Gmagick::setimagebordercolor ( GmagickPixel $color )

Définit la couleur de la bordure de l'image.

Liste de paramètres

color

La couleur de la bordure.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::setimagechanneldepthDéfinit la profondeur d'un canal particulier de l'image

Description

public Gmagick Gmagick::setimagechanneldepth ( int $channel , int $depth )

Définit la profondeur d'un canal particulier de l'image.

Liste de paramètres

channel

Identifie le canal à extraire : RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

depth

La profondeur de l'image, en octets.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::setimagecolorspaceDéfinit l'espace de couleurs de l'image

Description

public Gmagick Gmagick::setimagecolorspace ( int $colorspace )

Définit l'espace de couleurs de l'image.

Liste de paramètres

colorspace

L'espace de couleurs de l'image : UndefinedColorspace, RGBColorspace, GRAYColorspace, TransparentColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, sRGBColorspace, HSLColorspace, ou HWBColorspace.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagecompose

(PECL gmagick >= Unknown)

Gmagick::setimagecomposeDéfinit l'opérateur de composition de l'image

Description

public Gmagick Gmagick::setimagecompose ( int $composite )

Définit l'opérateur de composition de l'image.

Liste de paramètres

composite

L'opérateur de composition de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagedelay

(PECL gmagick >= Unknown)

Gmagick::setimagedelayDéfinit le délai de l'image

Description

public Gmagick Gmagick::setimagedelay ( int $delay )

Définit le délai de l'image.

Liste de paramètres

delay

Le délai de l'image, au 1/100ème de seconde.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagedepth

(PECL gmagick >= Unknown)

Gmagick::setimagedepthDéfinit la profondeur de l'image

Description

public Gmagick Gmagick::setimagedepth ( int $depth )

Définit la profondeur de l'image.

Liste de paramètres

depth

La profondeur de l'image, en octets : 8, 16, ou 32.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagedispose

(PECL gmagick >= Unknown)

Gmagick::setimagedisposeDéfinit la méthode de disposition de l'image

Description

public Gmagick Gmagick::setimagedispose ( int $disposeType )

Définit la méthode de disposition de l'image.

Liste de paramètres

disposeType

Le type de disposition de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagefilename

(PECL gmagick >= Unknown)

Gmagick::setimagefilenameDéfinit le nom du fichier pour une image particulière d'une séquence

Description

public Gmagick Gmagick::setimagefilename ( string $filename )

Définit le nom du fichier pour une image particulière d'une séquence.

Liste de paramètres

filename

Le nom du fichier de l'image.

Valeurs de retour

L'objet Gmagick object en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageformat

(PECL gmagick >= Unknown)

Gmagick::setimageformatDéfinit le format d'une image

Description

public Gmagick Gmagick::setimageformat ( string $imageFormat )

Définit le format d'une image particulière d'une séquence.

Liste de paramètres

imageFormat

Le format de l'image.

Valeurs de retour

L'objet Gmagick object en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagegamma

(PECL gmagick >= Unknown)

Gmagick::setimagegammaDéfinit le gamma de l'image

Description

public Gmagick Gmagick::setimagegamma ( float $gamma )

Définit le gamma de l'image.

Liste de paramètres

gamma

Le gamma de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::setimagegreenprimaryDéfinit le point vert sur l'image chromatique primaire

Description

public Gmagick Gmagick::setimagegreenprimary ( float $x , float $y )

Définit le point vert sur l'image chromatique primaire.

Liste de paramètres

x

Coordonnée en X du point vert de l'image chromatique.

y

Coordonnée en Y du point vert de l'image chromatique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageindex

(PECL gmagick >= Unknown)

Gmagick::setimageindexDéfinit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index

Description

public Gmagick Gmagick::setimageindex ( int $index )

Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index.

Liste de paramètres

index

Le numéro de la scène.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::setimageinterlaceschemeDéfinit le schéma d'entrelacement de l'image

Description

public Gmagick Gmagick::setimageinterlacescheme ( int $interlace )

Définit le schéma d'entrelacement de l'image.

Liste de paramètres

interlace

Le schéma d'entrelacement de l'image : NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageiterations

(PECL gmagick >= Unknown)

Gmagick::setimageiterationsDéfinit les itérations de l'image

Description

public Gmagick Gmagick::setimageiterations ( int $iterations )

Définit les itérations de l'image.

Liste de paramètres

iterations

Le délai de l'image au 1/100ème de seconde.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageprofile

(PECL gmagick >= Unknown)

Gmagick::setimageprofileAjoute un profile nommé à l'objet Gmagick

Description

public Gmagick Gmagick::setimageprofile ( string $name , string $profile )

Ajoute un profile nommé à l'objet Gmagick. Si un profile avec le même nom existe déjà, il sera remplacé. Cette méthode diffère de la méthode Gmagick::ProfileImage() dans le fait qu'elle n'applique aucun profile de couleur CMS.

Liste de paramètres

name

Nom du profile à ajouter ou à effacer : ICC, IPTC, ou un profile générique.

profile

Le profile.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageredprimary

(PECL gmagick >= Unknown)

Gmagick::setimageredprimaryDéfinit le point rouge sur l'image chromatique primaire

Description

public Gmagick Gmagick::setimageredprimary ( float $x , float $y )

Définit le point rouge sur l'image chromatique primaire.

Liste de paramètres

x

Coordonnée en X du point rouge de l'image chromatique.

y

Coordonnée en Y du point rouge de l'image chromatique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::setimagerenderingintentDéfinit l'image de rendu

Description

public Gmagick Gmagick::setimagerenderingintent ( int $rendering_intent )

Définit l'image de rendu.

Liste de paramètres

rendering_intent

Le rendu de l'image : UndefinedIntent, SaturationIntent, PerceptualIntent, AbsoluteIntent, ou RelativeIntent.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageresolution

(PECL gmagick >= Unknown)

Gmagick::setimageresolutionDéfinit la résolution de l'image

Description

public Gmagick Gmagick::setimageresolution ( float $xResolution , float $yResolution )

Définit la résolution de l'image.

Liste de paramètres

xResolution

La résolution en X de l'image.

yResolution

La résolution en Y de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagescene

(PECL gmagick >= Unknown)

Gmagick::setimagesceneDéfinit l'image de scène

Description

public Gmagick Gmagick::setimagescene ( int $scene )

Définit l'image de scène.

Liste de paramètres

scene

Le numéro de la scène dans l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagetype

(PECL gmagick >= Unknown)

Gmagick::setimagetypeDéfinit le type de l'image

Description

public Gmagick Gmagick::setimagetype ( int $imgType )

Définit le type de l'image.

Liste de paramètres

imgType

Le type de l'image : UndefinedType, BilevelType, GrayscaleType, GrayscaleMatteType, PaletteType, PaletteMatteType, TrueColorType, TrueColorMatteType, ColorSeparationType, ColorSeparationMatteType, ou OptimizeType.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimageunits

(PECL gmagick >= Unknown)

Gmagick::setimageunitsDéfinit les unités à utiliser pour la résolution de l'image

Description

public Gmagick Gmagick::setimageunits ( int $resolution )

Définit les unités à utiliser pour la résolution de l'image.

Liste de paramètres

resolution

Les unités à utiliser pour la résolution de l'image : Undefinedresolution, PixelsPerInchResolution, ou PixelsPerCentimeterResolution.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::setimagewhitepointDéfinit le point blanc sur l'image chromatique primaire

Description

public Gmagick Gmagick::setimagewhitepoint ( float $x , float $y )

Définit le point blanc sur l'image chromatique primaire.

Liste de paramètres

x

Coordonnée en X du point blanc de l'image chromatique.

y

Coordonnée en Y du point blanc de l'image chromatique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::setsamplingfactorsDéfinit les facteurs d'échantillonnage de l'image

Description

public Gmagick Gmagick::setsamplingfactors ( array $factors )

Définit les facteurs d'échantillonnage de l'image.

Liste de paramètres

factors

Un tableau à 2 dimensions, représentant le facteur d'échantillonnage pour chaque composant de couleur (dans l'ordre RVB).

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::setsize

(PECL gmagick >= Unknown)

Gmagick::setsizeDéfinit la taille de l'objet Gmagick

Description

public Gmagick Gmagick::setsize ( int $columns , int $rows )

Définit la taille de l'objet Gmagick. Définissez la taille avant de lire une image brute au format RGB, GRAY, ou CMYK.

Liste de paramètres

columns

La largeur, en pixels.

rows

La hauteur, en pixels.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::shearimage

(PECL gmagick >= Unknown)

Gmagick::shearimageCrée un parallélogramme

Description

public Gmagick Gmagick::shearimage ( mixed $color , float $xShear , float $yShear )

Bouge un coin de l'image le long des axes X ou Y pour créer un parallélogramme. Une direction en X bouge le long de l'axe X, tandis qu'une direction en Y bouge le long de l'axe Y. La quantité de cisaillement est contrôlé par un angle de cisaillement. Pour les cisaillements en direction X, x_shear est mesuré relativement à l'axe Y, et inversement, pour les cisaillements en direction Y, y_shear est mesuré relativement à l'axe X. Les triangles vides ainsi créés lors du cisaillement de l'image seront remplis par la couleur d'arrière-plan.

Liste de paramètres

color

Le pixel d'arrière-plan.

xShear

Le degré de cisaillement de l'image.

yShear

Le degré de cisaillement de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::solarizeimage

(PECL gmagick >= Unknown)

Gmagick::solarizeimageApplique un effet de solarisation à l'image

Description

public Gmagick Gmagick::solarizeimage ( int $threshold )

Applique un effet de solarisation à l'image, similaire à l'effet créé dans une photo en chambre noire, en exposant les zones d'une photo sur papier sensitif à la lumière. Le seuil varie de 0 à QuantumRange et est une mesure de l'étendue de la solarisation.

Liste de paramètres

threshold

Définit l'étendu de la solarisation.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::spreadimage

(PECL gmagick >= Unknown)

Gmagick::spreadimageDéplace aléatoirement chaque pixel d'un bloc

Description

public Gmagick Gmagick::spreadimage ( float $radius )

Effet spécial qui déplace aléatoirement chaque pixel d'un bloc défini par le paramètre radius.

Liste de paramètres

radius

Choisit des pixels aléatoirement dans le voisinage de cette étendue.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::stripimage

(PECL gmagick >= Unknown)

Gmagick::stripimageSupprime d'une image tous les profiles et tous les commentaires

Description

public Gmagick Gmagick::stripimage ( void )

Supprime d'une image tous les profiles et tous les commentaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::swirlimage

(PECL gmagick >= Unknown)

Gmagick::swirlimageRemous les pixels du centre de l'image

Description

public Gmagick Gmagick::swirlimage ( float $degrees )

Remous les pixels du centre de l'image, où les degrés indiquent l'arc de remous autour duquel les pixels sont déplacés. Vous pouvez obtenir un effet de plus en plus soutenu en modifiant les degrés de 1 à 360.

Liste de paramètres

degrees

Définit la finesse de l'effet de remous.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::thumbnailimage

(PECL gmagick >= Unknown)

Gmagick::thumbnailimageModifie la taille d'une image

Description

public Gmagick Gmagick::thumbnailimage ( int $width , int $height [, bool $fit = false ] )

Modifie la taille d'une image aux dimensions données et supprime les profiles associés. Le but est de produire une image miniature, moins lourde, aux fins d'affichage sur le Web. Si TRUE est fourni comme valeur du 3ème paramètre, alors les paramètres width et height sont utilisés comme valeurs maximales pour chaque côté. Les 2 côtés seront mis à l'échelle lors de l'opération.

Liste de paramètres

width

largeur de l'image.

height

Hauteur de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::trimimage

(PECL gmagick >= Unknown)

Gmagick::trimimageSupprime les coins de l'image

Description

public Gmagick Gmagick::trimimage ( float $fuzz )

Supprime les coins qui sont de la couleur de l'arrière-plan depuis l'image.

Liste de paramètres

fuzz

Par défaut, la cible doit correspondre exactement à la couleur du pixel précis. Cependant, dans beaucoup de cas, 2 couleurs peuvent différer très légèrement. Ce paramètre indique donc la tolérance acceptable à considérer 2 couleurs comme identiques.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::write

(PECL gmagick >= Unknown)

Gmagick::writeÉcrit une image dans un fichier

Description

public void Gmagick::write ( string $filename )

Écrit une image dans un fichier spécifique. Si le paramètre filename vaut NULL, l'image sera écrite dans le fichier défini par la méthode Gmagick::ReadImage() ou la méthode Gmagick::SetImageFilename().

Liste de paramètres

filename

Le nom du fichier.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.



Gmagick::writeimage

(PECL gmagick >= Unknown)

Gmagick::writeimageÉcrit une image dans un fichier

Description

public Gmagick Gmagick::writeimage ( string $filename [, bool $all_frames = false ] )

Écrit une image dans un fichier spécifique. Si le paramètre filename vaut NULL, l'image sera écrite dans le fichier défini par la méthode Gmagick::ReadImage() ou la méthode Gmagick::SetImageFilename().

Liste de paramètres

filename

Le nom du fichier.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Sommaire



La classe GmagickDraw

Introduction

Description de la classe.

Synopsis de la classe

GmagickDraw {
/* Méthodes */
public GmagickDraw annotate ( float $x , float $y , string $text )
public GmagickDraw arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
public GmagickDraw bezier ( array $coordinate_array )
public GmagickDraw ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
public void getfillcolor ( void )
public float getfillopacity ( void )
public string getfont ( void )
public float getfontsize ( void )
public int getfontstyle ( void )
public int getfontweight ( void )
public void getstrokecolor ( void )
public float getstrokeopacity ( void )
public float getstrokewidth ( void )
public int gettextdecoration ( void )
public string gettextencoding ( void )
public GmagickDraw line ( float $sx , float $sy , float $ex , float $ey )
public GmagickDraw point ( float $x , float $y )
public GmagickDraw polygon ( array $coordinates )
public GmagickDraw polyline ( array $coordinate_array )
public GmagickDraw rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
public GmagickDraw rotate ( float $degrees )
public GmagickDraw roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
public GmagickDraw scale ( float $x , float $y )
public GmagickDraw setfillcolor ( string $color )
public GmagickDraw setfillopacity ( float $fill_opacity )
public GmagickDraw setfont ( string $font )
public GmagickDraw setfontsize ( float $pointsize )
public GmagickDraw setfontstyle ( int $style )
public GmagickDraw setfontweight ( int $weight )
public GmagickDraw setstrokecolor ( GmagickPixel $color )
public GmagickDraw setstrokeopacity ( float $stroke_opacity )
public GmagickDraw setstrokewidth ( float $width )
public GmagickDraw settextdecoration ( int $decoration )
public GmagickDraw settextencoding ( string $encoding )
}

GmagickDraw::annotate

(PECL gmagick >= Unknown)

GmagickDraw::annotateDessine un texte sur l'image

Description

public GmagickDraw GmagickDraw::annotate ( float $x , float $y , string $text )

Dessine un texte sur l'image.

Liste de paramètres

x

Coordonnée en X de la gauche du texte.

y

Coordonnée en Y de la base du texte.

text

Le texte à dessiner.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::arc

(PECL gmagick >= Unknown)

GmagickDraw::arcDessine un arc

Description

public GmagickDraw GmagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )

Dessine un arc dans un rectangle spécifié sur l'image.

Liste de paramètres

sx

Coordonnée en X du début du rectangle conteneur.

sy

Coordonnée en Y du début du rectangle conteneur.

ex

Coordonnée en X de la fin du rectangle conteneur.

ey

Coordonnée en Y de la fin du rectangle conteneur.

sd

Degré de départ de la rotation.

ed

Degré de fin de la rotation.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::bezier

(PECL gmagick >= Unknown)

GmagickDraw::bezierDessine une courbe de Bézier

Description

public GmagickDraw GmagickDraw::bezier ( array $coordinate_array )

Dessine une courbe de Bézier sur un jeu de points de l'image.

Liste de paramètres

coordinate_array

Tableau de coordonnées

Valeurs de retour

L'objet GmagickDraw object en cas de succès.



GmagickDraw::ellipse

(PECL gmagick >= Unknown)

GmagickDraw::ellipseDessine une ellipse sur l'image

Description

public GmagickDraw GmagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )

Dessine une ellipse sur l'image.

Liste de paramètres

ox

Coordonnée en X d'origine.

oy

Coordonnée en Y d'origine.

rx

Rayon en X.

ry

Rayon en Y.

start

Rotation de départ, en degrés.

end

Rotation de fin, en degrés.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::getfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::getfillcolorRetourne la couleur de remplissage

Description

public void GmagickDraw::getfillcolor ( void )

Retourne la couleur de remplissage utilisée pour dessiner les objets pleins.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La couleur de remplissage GmagickPixel utilisée pour dessiner les objets pleins.



GmagickDraw::getfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::getfillopacityRetourne l'opacité utilisée lors d'un dessin

Description

public float GmagickDraw::getfillopacity ( void )

Retourne l'opacité utilisée lors d'un dessin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'opacité utilisée lors d'un dessin utilisant une couleur de remplissage ou une texture de remplissage. Pour une opacité totalement opaque, utilisez la valeur 1.0.



GmagickDraw::getfont

(PECL gmagick >= Unknown)

GmagickDraw::getfontRetourne la police de caractères

Description

public string GmagickDraw::getfont ( void )

Retourne une chaîne spécifiant la police de caractères utilisée lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et FALSE si la police de caractères n'est pas définie.



GmagickDraw::getfontsize

(PECL gmagick >= Unknown)

GmagickDraw::getfontsizeRetourne la taille du point d'une police de caractères

Description

public float GmagickDraw::getfontsize ( void )

Retourne la taille du point d'une police de caractères uitilisé lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille de la police de caractères associée avec l'objet GmagickDraw courant.



GmagickDraw::getfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::getfontstyleRetourne le style de la police de caractères

Description

public int GmagickDraw::getfontstyle ( void )

Retourne le style de la police de caractères utilisée lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la constante (STYLE_) représentant le style de la police de caractères associée avec l'objet GmagickDraw ou 0 si le style n'est pas défini.



GmagickDraw::getfontweight

(PECL gmagick >= Unknown)

GmagickDraw::getfontweightRetourne le poids de la police de caractères

Description

public int GmagickDraw::getfontweight ( void )

Retourne le poids de la police de caractères utilisée lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et 0 si le poids n'est pas défini.



GmagickDraw::getstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::getstrokecolorRetourne la couleur utilisée pour tracer les contours de l'objet

Description

public void GmagickDraw::getstrokecolor ( void )

Retourne la couleur utilisée pour tracer les contours de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet GmagickPixel qui décrit la couleur.



GmagickDraw::getstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::getstrokeopacityRetourne l'opacité du tracé des contours de l'objet

Description

public float GmagickDraw::getstrokeopacity ( void )

Retourne l'opacité du tracé des contours de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un double, décrivant l'opacité.



GmagickDraw::getstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::getstrokewidthRetourne la largeur utilisée pour les contours de l'objet

Description

public float GmagickDraw::getstrokewidth ( void )

Retourne la largeur utilisée pour les contours de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un double décrivant la largeur des contours.



GmagickDraw::gettextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::gettextdecorationRetourne la décoration du texte

Description

public int GmagickDraw::gettextdecoration ( void )

Retourne la décoration à appliquer à du texte lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une constante parmi les constantes DECORATION_ et 0 si aucune décoration n'est définie.



GmagickDraw::gettextencoding

(PECL gmagick >= Unknown)

GmagickDraw::gettextencodingRetourne le code du jeu de caractères à utiliser pour les annotations

Description

public string GmagickDraw::gettextencoding ( void )

Retourne le code du jeu de caractères à utiliser pour les annotations.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères spécifiant le code du jeu de caractères ou FALSE si l'encodage n'est pas défini.



GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::lineLe but de la méthode line

Description

public GmagickDraw GmagickDraw::line ( float $sx , float $sy , float $ex , float $ey )

Trace une ligne sur l'image en utilisant la couleur de contour courante, l'opacité des contours courante, ainsi que l'épaisseur du contour courant.

Liste de paramètres

sx

Coordonnée de départ en X.

sy

Coordonnée de départ en Y.

ex

Coordonnée de fin en X.

ey

Coordonnée de fin en Y.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::point

(PECL gmagick >= Unknown)

GmagickDraw::pointDessine un point

Description

public GmagickDraw GmagickDraw::point ( float $x , float $y )

Dessine un point en utilisant la couleur et l'épaisseur courants du contour aux coordonnées spécifiées.

Liste de paramètres

x

Coordonnée cible en X.

y

Coordonnée cible en Y.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::polygon

(PECL gmagick >= Unknown)

GmagickDraw::polygonDessine un polygone

Description

public GmagickDraw GmagickDraw::polygon ( array $coordinates )

Dessine un polygone en utilisant les paramètres courants du contour, la couleur ou la texture de remplissage, et en utilisant le tableau de coordonnées spécifié.

Liste de paramètres

coordinates

Tableau de coordonnées.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::polyline

(PECL gmagick >= Unknown)

GmagickDraw::polylineDessine une polyligne

Description

public GmagickDraw GmagickDraw::polyline ( array $coordinate_array )

Dessine une polyligne en utilisant les paramètres courants du contour, et la couleur ou la texture de remplissage, et en utilisant le tableau de coordonnées spécifié.

Liste de paramètres

coordinate_array

Le tableau de coordonnées.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::rectangle

(PECL gmagick >= Unknown)

GmagickDraw::rectangleDessine un rectangle

Description

public GmagickDraw GmagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )

Dessine un rectangle en utilisant 2 coordonnées, et en utilisant les paramètres de contour et de remplissage courants.

Liste de paramètres

x1

Coordonnée en X du premier point.

y1

Coordonnée en Y du premier point.

x2

Coordonnée en X du second point.

y2

Coordonnée en Y du second point.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::rotate

(PECL gmagick >= Unknown)

GmagickDraw::rotateApplique une rotation

Description

public GmagickDraw GmagickDraw::rotate ( float $degrees )

Applique une rotation spécifiée à l'espace courant.

Liste de paramètres

degrees

Degrés pour la rotation.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::roundrectangle

(PECL gmagick >= Unknown)

GmagickDraw::roundrectangleDessine un rectangle arrondi

Description

public GmagickDraw GmagickDraw::roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )

Dessine un rectangle arrondi en utilisant les paramètres fournis.

Liste de paramètres

x1

Coordonnée en X du premier point.

y1

Coordonnée en Y du premier point.

x2

Coordonnée en X du second point.

y2

Coordonnée en Y du second point.

rx

Le rayon du coin en direction horizontale.

ry

Le rayon du coin en direction verticale.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::scale

(PECL gmagick >= Unknown)

GmagickDraw::scaleAjuste le facteur d'échelle

Description

public GmagickDraw GmagickDraw::scale ( float $x , float $y )

Ajuste le facteur d'échelle à appliquer aux directions horizontale et verticale de l'espace courant.

Liste de paramètres

x

Facteur d'échelle horizontal.

y

Facteur d'échelle vertical.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::setfillcolorDéfinit la couleur de remplissage à utiliser pour dessiner des objets pleins

Description

public GmagickDraw GmagickDraw::setfillcolor ( string $color )

Définit la couleur de remplissage à utiliser pour dessiner des objets pleins.

Liste de paramètres

color

Objet GmagickPixel indiquant la couleur de remplissage.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::setfillopacityLe but de la méthode setfillopacity

Description

public GmagickDraw GmagickDraw::setfillopacity ( float $fill_opacity )

Définit l'opacité à utiliser lors d'un dessin en utilisant une couleur ou une texture de remplissage. Le fait de définir la valeur à 1.0 signifie que le remplissage sera totalement opaque.

Liste de paramètres

fill_opacity

Opacité du remplissage.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setfont

(PECL gmagick >= Unknown)

GmagickDraw::setfontDéfinit la police de caractère à utiliser lors d'une annotation

Description

public GmagickDraw GmagickDraw::setfont ( string $font )

Définit la police de caractère à utiliser lors d'une annotation.

Liste de paramètres

font

Le nom de la police de caractère.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setfontsize

(PECL gmagick >= Unknown)

GmagickDraw::setfontsizeDéfinit la taille, en points, de la police de caractère utilisée lors d'une annotation

Description

public GmagickDraw GmagickDraw::setfontsize ( float $pointsize )

Définit la taille, en points, de la police de caractère utilisée lors d'une annotation.

Liste de paramètres

pointsize

La taille, en points, du texte.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::setfontstyleDéfinit le style de police de caractères à utiliser lors d'une annotation

Description

public GmagickDraw GmagickDraw::setfontstyle ( int $style )

Définit le style de police de caractères à utiliser lors d'une annotation. L'énumération AnyStyle agit comme une option jocker.

Liste de paramètres

style

Style de la police de caractères (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setfontweight

(PECL gmagick >= Unknown)

GmagickDraw::setfontweightDéfinit le poids de la police de caractères

Description

public GmagickDraw GmagickDraw::setfontweight ( int $weight )

Définit le poids de la police de caractères à utiliser lors d'une annotation.

Liste de paramètres

weight

Poids de la police de caractères (intervalle valide entre 100-900).

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::setstrokecolorDéfinit la couleur à utiliser pour tracer les contours de l'objet

Description

public GmagickDraw GmagickDraw::setstrokecolor ( GmagickPixel $color )

Définit la couleur à utiliser pour tracer les contours de l'objet.

Liste de paramètres

color

Objet GmagickPixel représentant la couleur pour les contours.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::setstrokeopacitySpécifie l'opacité pour les contours de l'objet

Description

public GmagickDraw GmagickDraw::setstrokeopacity ( float $stroke_opacity )

Spécifie l'opacité pour les contours de l'objet.

Liste de paramètres

stroke_opacity

L'opacité. La valeur 1.0 représente une opacité opaque.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::setstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::setstrokewidthDéfinit la largeur des contours de l'objet

Description

public GmagickDraw GmagickDraw::setstrokewidth ( float $width )

Définit la largeur des contours de l'objet.

Liste de paramètres

width

La largeur des contours.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::settextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::settextdecorationSpécifie une décoration

Description

public GmagickDraw GmagickDraw::settextdecoration ( int $decoration )

Spécifie une décoration à appliquer au texte lors d'une annotation.

Liste de paramètres

int

La décoration du texte. Une constante parmi NoDecoration, UnderlineDecoration, OverlineDecoration, ou LineThroughDecoration.

Valeurs de retour

L'objet GmagickDraw en cas de succès.



GmagickDraw::settextencoding

(PECL gmagick >= Unknown)

GmagickDraw::settextencodingSpécifie le code du jeu de caractères à utiliser

Description

public GmagickDraw GmagickDraw::settextencoding ( string $encoding )

Spécifie le code du jeu de caractères à utiliser pour le texte des annotations. Le seul jeu de caractères qui peut être actuellement spécifié est "UTF-8" pour représenter l'Unicode comme séquence de bits. Spécifiez une chaîne vide pour définir l'encodage du texte conformément à celui du système. Un texte utilisant l'Unicode sera représenté correctement lors de l'utilisation d'une police de caractères qui supporte l'Unicode.

Liste de paramètres

encoding

Chaîne spécifiant l'encodage du texte.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Sommaire



La classe GmagickPixel

Introduction

Description de la classe.

Synopsis de la classe

GmagickPixel {
/* Méthodes */
__construct ([ string $color ] )
public mixed getcolor ([ bool $as_array [, bool $normalize_array ]] )
public int getcolorcount ( void )
public float getcolorvalue ( int $color )
public GmagickPixel setcolor ( string $color )
public GmagickPixel setcolorvalue ( int $color , float $value )
}

GmagickPixel::__construct

(PECL gmagick >= Unknown)

GmagickPixel::__constructLe constructeur GmagickPixel

Description

GmagickPixel::__construct ([ string $color ] )

Construit un nouvel objet GmagickPixel. Si une couleur est spécifié, l'objet est construit puis initialisé en utilisant cette couleur avant d'être retourné.

Liste de paramètres

color

La couleur à utiliser comme valeur initiale de cet objet (optionnel).

Valeurs de retour

L'objet GmagickPixel en cas de succès.



GmagickPixel::getcolor

(PECL gmagick >= Unknown)

GmagickPixel::getcolorRetourne la couleur

Description

public mixed GmagickPixel::getcolor ([ bool $as_array [, bool $normalize_array ]] )

Retourne la couleur décrite par l'objet GmagickPixel, sous la forme d'un tableau. Si la couleur a un canal d'opacité de défini,il sera spécifié comme 4ème valeur de la liste.

Liste de paramètres

as_array

TRUE pour indiquer que la valeur retournée doit être un tableau au lieu d'une chaîne de caractères.

normalize_array

Normalise les valeurs de couleur.

Valeurs de retour

Un tableau de valeurs de canaux, dont chacun est normalisé si TRUE est fourni comme paramètre. Émets une exception GmagickPixelException en cas d'erreur.



GmagickPixel::getcolorcount

(PECL gmagick >= Unknown)

GmagickPixel::getcolorcountRetourne le nombre de couleurs associées avec cette couleur

Description

public int GmagickPixel::getcolorcount ( void )

Retourne le nombre de couleurs associées avec cette couleur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de couleurs, sous la forme d'un entier en cas de succès, et émets une exception GmagickPixelException si une erreur survient.



GmagickPixel::getcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::getcolorvalueRécupère la valeur normalisée du canal de la couleur fournie

Description

public float GmagickPixel::getcolorvalue ( int $color )

Récupère la valeur normalisée du canal de la couleur fournie, sous la forme d'un nombre à virgule flottante compris entre 0 et 1.

Liste de paramètres

color

Le canal à vérifier, spécifié sous la forme d'une des constantes de canal Gmagick.

Valeurs de retour

La valeur du canal, sous la forme d'un nombre à virgule flottante normalisé, et émets une exception GmagickPixelException si une erreur survient.



GmagickPixel::setcolor

(PECL gmagick >= Unknown)

GmagickPixel::setcolorDéfinit la couleur

Description

public GmagickPixel GmagickPixel::setcolor ( string $color )

Définit la couleur décrite par l'objet GmagickPixel, avec une chaîne de caractères (i.e. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Liste de paramètres

color

La définition de la couleur à utiliser pour initialiser l'objet GmagickPixel.

Valeurs de retour

L'objet GmagickPixel object en cas de succès.



GmagickPixel::setcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::setcolorvalueDéfinit la valeur normalisée d'un des canaux

Description

public GmagickPixel GmagickPixel::setcolorvalue ( int $color , float $value )

Définit la valeur du canal spécifié de cette objet à une valeur fournie, qui doit être entre 0 et 1. Cette fonction peut être utilisée pour fournir un canal d'opacité à l'objet GmagickPixel.

Liste de paramètres

color

Une des constantes de couleur de canal Gmagick.

value

La valeur à utiliser pour définir ce canal, comprise entre 0 et 1.

Valeurs de retour

L'objet GmagickPixel en cas de succès.


Sommaire




Cairo


Introduction

Cairo est une extension native PHP pour créer et modifier des graphiques en utilisant la bibliothèque graphique Cairo.

La bibliothèque graphique Cairo est une bibliothèque 2D écrite en C avec un support pour plusieurs périphériques de sortie. Actuellement, les périphériques de sortie incluent le X Window System, Quartz, Win32, les buffers d'images, PostScript, PDF, et les fichiers SVG. Il existe aussi un support expérimental pour OpenGL (via glitz), XCB, BeOS, OS/2, et DirectFB. La bibliothèque supporte également 2 types de manipulation de textes et d'interface. L'API "toy" fournit 2 niveaux de qualités, et l'API glyphs, bien que totalement fonctionnelle, fonctionne mieux avec une bibliothèque d'aide comme pango. Le support des polices de caractères inclut FreeType, Quartz, Win32, et les polices définies par l'utilisateur.

Il y a 2 types d'infographie : vectorielle et matricielle. Les graphiques matricielles sont des représentations d'images sous forme de tableaux de pixels. Les graphiques vectorielles utilisent des primitives géométriques comme les points, les lignes, les courbes ou les polygones pour représenter les images. Les primitives sont créées en utilisant des équations mathématiques. La bibliothèque Cairo aborde les graphiques de façon vectorielle, permettant une taille plus petite, un zoom infini, mais aussi de déplacer, redimensionner et effectuer des rotations sans dégrader la qualité de l'image.

Les opérations possibles avec la bibliothèque graphique Cairo incluent le dessin et le remplissage de courbes cubiques de Bézier, la transformation et la composition d'images transparentes, mais aussi le traitement de texte anti-crénelé. Toutes les opérations de dessin peuvent être transformées par toutes les transformations affines (mise à l'échelle, rotation, cisaillement et d'autres). Elles sont similaires aux opérations de dessin en PostScript et PDF.

L'extension PHP Cairo est prévue pour fournir un support de toutes les polices et toutes les interfaces officiellement supportées, permettant ainsi de fournir aux utilisateurs PHP toutes les fonctionnalités disponibles de Cairo.



Installation/Configuration

Sommaire


Pré-requis

Cairo n'est disponible que pour PHP 5.2+ et PHP 5.3+. L'extension nécessite également la bibliothèque graphique Cairo version 1.4+. La bibliothèque graphique Cairo utilise un schéma de numérotation permettant de savoir si c'est une version stable ou non de la bibliothèque. À la fois les versions stables et instables peuvent être utilisées avec l'extension ; aussi, les nouvelles fonctionnalités sont disponibles suivant la version stable précédente à la version instable utilisée. La dernière version Cairo peut être trouvée sur » http://cairographics.org/.

Les fichiers binaires pour Windows peuvent être trouvés sur » http://cairographics.org/download/ y compris les fichiers du projet utilisés pour les créer.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/cairo.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Notes spécifiques pour une installation sous Windows.

Les binaires de l'extension peuvent être trouvés sur » http://cairographics.org/download/. Téléchargez le fichier zip correspondant, placez le fichier php_cairo.dll dans le dossier des extensions, activez-le via votre fichier php.ini. Assurez-vous que la version de PHP correspond (5.2, 5.3) mais aussi l'architecture (x86, x64), la version du compilateur (VC6 ou VC9) ou bien l'extension ne se chargera pas.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CAIRO_STATUS_SUCCESS (integer)
CAIRO_STATUS_NO_MEMORY (integer)
CAIRO_STATUS_INVALID_RESTORE (integer)
CAIRO_STATUS_INVALID_POP_GROUP (integer)
CAIRO_STATUS_NO_CURRENT_POINT (integer)
CAIRO_STATUS_INVALID_MATRIX (integer)
CAIRO_STATUS_INVALID_STATUS (integer)
CAIRO_STATUS_NULL_POINTER (integer)
CAIRO_STATUS_INVALID_STRING (integer)
CAIRO_STATUS_INVALID_PATH_DATA (integer)
CAIRO_STATUS_READ_ERROR (integer)
CAIRO_STATUS_WRITE_ERROR (integer)
CAIRO_STATUS_SURFACE_FINISHED (integer)
CAIRO_STATUS_SURFACE_TYPE_MISMATCH (integer)
CAIRO_STATUS_PATTERN_TYPE_MISMATCH (integer)
CAIRO_STATUS_INVALID_CONTENT (integer)
CAIRO_STATUS_INVALID_FORMAT (integer)
CAIRO_STATUS_INVALID_VISUAL (integer)
CAIRO_STATUS_FILE_NOT_FOUND (integer)
CAIRO_STATUS_INVALID_DASH (integer)
CAIRO_STATUS_INVALID_DSC_COMMENT (integer)
CAIRO_STATUS_INVALID_INDEX (integer)
CAIRO_STATUS_CLIP_NOT_REPRESENTABLE (integer)
CAIRO_STATUS_TEMP_FILE_ERROR (integer)
CAIRO_STATUS_INVALID_STRIDE (integer)
CAIRO_ANTIALIAS_DEFAULT (integer)
CAIRO_ANTIALIAS_NONE (integer)
CAIRO_ANTIALIAS_GRAY (integer)
CAIRO_ANTIALIAS_SUBPIXEL (integer)
CAIRO_SUBPIXEL_ORDER_DEFAULT (integer)
CAIRO_SUBPIXEL_ORDER_RGB (integer)
CAIRO_SUBPIXEL_ORDER_BGR (integer)
CAIRO_SUBPIXEL_ORDER_VRGB (integer)
CAIRO_SUBPIXEL_ORDER_VBGR (integer)
CAIRO_FILL_RULE_WINDING (integer)
CAIRO_FILL_RULE_EVEN_ODD (integer)
CAIRO_LINE_CAP_BUTT (integer)
CAIRO_LINE_CAP_ROUND (integer)
CAIRO_LINE_CAP_SQUARE (integer)
CAIRO_LINE_JOIN_MITER (integer)
CAIRO_LINE_JOIN_ROUND (integer)
CAIRO_LINE_JOIN_BEVEL (integer)
CAIRO_OPERATOR_CLEAR (integer)
CAIRO_OPERATOR_SOURCE (integer)
CAIRO_OPERATOR_OVER (integer)
CAIRO_OPERATOR_IN (integer)
CAIRO_OPERATOR_OUT (integer)
CAIRO_OPERATOR_ATOP (integer)
CAIRO_OPERATOR_DEST (integer)
CAIRO_OPERATOR_DEST_OVER (integer)
CAIRO_OPERATOR_DEST_IN (integer)
CAIRO_OPERATOR_DEST_OUT (integer)
CAIRO_OPERATOR_DEST_ATOP (integer)
CAIRO_OPERATOR_XOR (integer)
CAIRO_OPERATOR_ADD (integer)
CAIRO_OPERATOR_SATURATE (integer)
CAIRO_PATTERN_TYPE_SOLID (integer)
CAIRO_PATTERN_TYPE_SURFACE (integer)
CAIRO_PATTERN_TYPE_LINEAR (integer)
CAIRO_PATTERN_TYPE_RADIAL (integer)
CAIRO_EXTEND_NONE (integer)
CAIRO_EXTEND_REPEAT (integer)
CAIRO_EXTEND_REFLECT (integer)
CAIRO_EXTEND_PAD (integer)
CAIRO_FILTER_FAST (integer)
CAIRO_FILTER_GOOD (integer)
CAIRO_FILTER_BEST (integer)
CAIRO_FILTER_NEAREST (integer)
CAIRO_FILTER_BILINEAR (integer)
CAIRO_FILTER_GAUSSIAN (integer)
CAIRO_HINT_STYLE_DEFAULT (integer)
CAIRO_HINT_STYLE_NONE (integer)
CAIRO_HINT_STYLE_SLIGHT (integer)
CAIRO_HINT_STYLE_MEDIUM (integer)
CAIRO_HINT_STYLE_FULL (integer)
CAIRO_HINT_METRICS_DEFAULT (integer)
CAIRO_HINT_METRICS_OFF (integer)
CAIRO_HINT_METRICS_ON (integer)
CAIRO_FONT_TYPE_TOY (integer)
CAIRO_FONT_TYPE_FT (integer)
CAIRO_FONT_TYPE_WIN32 (integer)
CAIRO_FONT_TYPE_QUARTZ (integer)
CAIRO_FONT_SLANT_NORMAL (integer)
CAIRO_FONT_SLANT_ITALIC (integer)
CAIRO_FONT_SLANT_OBLIQUE (integer)
CAIRO_FONT_WEIGHT_NORMAL (integer)
CAIRO_FONT_WEIGHT_BOLD (integer)
CAIRO_CONTENT_COLOR (integer)
CAIRO_CONTENT_ALPHA (integer)
CAIRO_CONTENT_COLOR_ALPHA (integer)
CAIRO_SURFACE_TYPE_IMAGE (integer)
CAIRO_SURFACE_TYPE_PDF (integer)
CAIRO_SURFACE_TYPE_PS (integer)
CAIRO_SURFACE_TYPE_XLIB (integer)
CAIRO_SURFACE_TYPE_XCB (integer)
CAIRO_SURFACE_TYPE_GLITZ (integer)
CAIRO_SURFACE_TYPE_QUARTZ (integer)
CAIRO_SURFACE_TYPE_WIN32 (integer)
CAIRO_SURFACE_TYPE_BEOS (integer)
CAIRO_SURFACE_TYPE_DIRECTFB (integer)
CAIRO_SURFACE_TYPE_SVG (integer)
CAIRO_SURFACE_TYPE_OS2 (integer)
CAIRO_SURFACE_TYPE_WIN32_PRINTING (integer)
CAIRO_SURFACE_TYPE_QUARTZ_IMAGE (integer)
CAIRO_FORMAT_ARGB32 (integer)
CAIRO_FORMAT_RGB24 (integer)
CAIRO_FORMAT_A8 (integer)
CAIRO_FORMAT_A1 (integer)
CAIRO_PS_LEVEL_2 (integer)
CAIRO_PS_LEVEL_3 (integer)
CAIRO_SVG_VERSION_1_1 (integer)
CAIRO_SVG_VERSION_1_2 (integer)



Exemples

Exemple #1 Exemple Cairo

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...


Fonctions Cairo


cairo_create

(PECL cairo >= 0.1.0)

cairo_createRetourne un nouvel objet CairoContext pour la surface demandée

Description

CairoContext cairo_create ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_face_get_type

(PECL cairo >= 0.1.0)

cairo_font_face_get_type

Description

int cairo_font_face_get_type ( CairoFontFace $fontface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fontface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_face_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_face_status

(PECL cairo >= 0.1.0)

cairo_font_face_status

Description

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fontface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_face_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_create

(PECL cairo >= 0.1.0)

cairo_font_options_create

Description

CairoFontOptions cairo_font_options_create ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_equal

(PECL cairo >= 0.1.0)

cairo_font_options_equal

Description

bool cairo_font_options_equal ( CairoFontOptions $options , CairoFontOptions $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

other

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_equal()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_get_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_get_antialias

Description

int cairo_font_options_get_antialias ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_antialias()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_get_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_metrics

Description

int cairo_font_options_get_hint_metrics ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_hint_metrics()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_get_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_style

Description

int cairo_font_options_get_hint_style ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_hint_style()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_get_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_get_subpixel_order

Description

int cairo_font_options_get_subpixel_order ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_subpixel_order()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_hash

(PECL cairo >= 0.1.0)

cairo_font_options_hash

Description

int cairo_font_options_hash ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_hash()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_merge

(PECL cairo >= 0.1.0)

cairo_font_options_merge

Description

void cairo_font_options_merge ( CairoFontOptions $options , CairoFontOptions $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

other

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_merge()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_set_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_set_antialias

Description

void cairo_font_options_set_antialias ( CairoFontOptions $options , int $antialias )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

antialias

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_antialias()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_set_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_metrics

Description

void cairo_font_options_set_hint_metrics ( CairoFontOptions $options , int $hint_metrics )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

hint_metrics

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_hint_metrics()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_set_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_style

Description

void cairo_font_options_set_hint_style ( CairoFontOptions $options , int $hint_style )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

hint_style

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_hint_style()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_set_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_set_subpixel_order

Description

void cairo_font_options_set_subpixel_order ( CairoFontOptions $options , int $subpixel_order )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

subpixel_order

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_subpixel_order()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_font_options_status

(PECL cairo >= 0.1.0)

cairo_font_options_status

Description

int cairo_font_options_status ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_format_stride_for_width

(PECL cairo >= 0.1.0)

cairo_format_stride_for_width

Description

int cairo_format_stride_for_width ( int $format , int $width )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

format

width

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_format_stride_for_width()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_create_for_data

(PECL cairo >= 0.1.0)

cairo_image_surface_create_for_data

Description

CairoImageSurface cairo_image_surface_create_for_data ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

format

width

height

stride

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_create_for_data()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_create_from_png

(PECL cairo >= 0.1.0)

cairo_image_surface_create_from_png

Description

CairoImageSurface cairo_image_surface_create_from_png ( string $file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_create_from_png()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_create

(PECL cairo >= 0.1.0)

cairo_image_surface_create

Description

CairoImageSurface cairo_image_surface_create ( int $format , int $width , int $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

format

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_get_data

(PECL cairo >= 0.1.0)

cairo_image_surface_get_data

Description

string cairo_image_surface_get_data ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_data()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_get_format

(PECL cairo >= 0.1.0)

cairo_image_surface_get_format

Description

int cairo_image_surface_get_format ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_format()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_get_height

(PECL cairo >= 0.1.0)

cairo_image_surface_get_height

Description

int cairo_image_surface_get_height ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_height()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_get_stride

(PECL cairo >= 0.1.0)

cairo_image_surface_get_stride

Description

int cairo_image_surface_get_stride ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_stride()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_image_surface_get_width

(PECL cairo >= 0.1.0)

cairo_image_surface_get_width

Description

int cairo_image_surface_get_width ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_width()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_matrix_create_scale

(PECL cairo >= 0.1.0)

cairo_matrix_create_scaleAlias de CairoMatrix::initScale()

Description

Cette fonction est un alias de : CairoMatrix::initScale().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



cairo_matrix_create_translate

(PECL cairo >= 0.1.0)

cairo_matrix_create_translateAlias de CairoMatrix::initTranslate()

Description

Cette fonction est un alias de : CairoMatrix::initTranslate().

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.



cairo_matrix_invert

(PECL cairo >= 0.1.0)

cairo_matrix_invert

Description

void cairo_matrix_invert ( CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_invert()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_matrix_multiply

(PECL cairo >= 0.1.0)

cairo_matrix_multiply

Description

CairoMatrix cairo_matrix_multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix1

matrix2

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_multiply()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_matrix_rotate

(PECL cairo >= 0.1.0)

cairo_matrix_rotate

Description

void cairo_matrix_rotate ( CairoMatrix $matrix , float $radians )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

radians

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_rotate()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_matrix_transform_distance

(PECL cairo >= 0.1.0)

cairo_matrix_transform_distance

Description

array cairo_matrix_transform_distance ( CairoMatrix $matrix , float $dx , float $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

dx

dy

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_transform_distance()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_matrix_transform_point

(PECL cairo >= 0.1.0)

cairo_matrix_transform_point

Description

array cairo_matrix_transform_point ( CairoMatrix $matrix , float $dx , float $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

dx

dy

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_transform_point()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_matrix_translate

(PECL cairo >= 0.1.0)

cairo_matrix_translate

Description

void cairo_matrix_translate ( CairoMatrix $matrix , float $tx , float $ty )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

tx

ty

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_translate()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_add_color_stop_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgb

Description

void cairo_pattern_add_color_stop_rgb ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

offset

red

green

blue

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_add_color_stop_rgb()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_add_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgba

Description

void cairo_pattern_add_color_stop_rgba ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue , float $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

offset

red

green

blue

alpha

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_add_color_stop_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_create_for_surface

(PECL cairo >= 0.1.0)

cairo_pattern_create_for_surface

Description

CairoPattern cairo_pattern_create_for_surface ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_for_surface()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_create_linear

(PECL cairo >= 0.1.0)

cairo_pattern_create_linear

Description

CairoPattern cairo_pattern_create_linear ( float $x0 , float $y0 , float $x1 , float $y1 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x0

y0

x1

y1

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_linear()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_create_radial

(PECL cairo >= 0.1.0)

cairo_pattern_create_radial

Description

CairoPattern cairo_pattern_create_radial ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x0

y0

r0

x1

y1

r1

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_radial()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_create_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgb

Description

CairoPattern cairo_pattern_create_rgb ( float $red , float $green , float $blue )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

red

green

blue

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_rgb()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_create_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgba

Description

CairoPattern cairo_pattern_create_rgba ( float $red , float $green , float $blue , float $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

red

green

blue

alpha

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_color_stop_count

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_count

Description

int cairo_pattern_get_color_stop_count ( CairoGradientPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_color_stop_count()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_rgba

Description

array cairo_pattern_get_color_stop_rgba ( CairoGradientPattern $pattern , int $index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

index

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_color_stop_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_extend

(PECL cairo >= 0.1.0)

cairo_pattern_get_extend

Description

int cairo_pattern_get_extend ( string $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_extend()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_filter

(PECL cairo >= 0.1.0)

cairo_pattern_get_filter

Description

int cairo_pattern_get_filter ( CairoSurfacePattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_filter()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_linear_points

(PECL cairo >= 0.1.0)

cairo_pattern_get_linear_points

Description

array cairo_pattern_get_linear_points ( CairoLinearGradient $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_linear_points()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_get_matrix

Description

CairoMatrix cairo_pattern_get_matrix ( CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_radial_circles

(PECL cairo >= 0.1.0)

cairo_pattern_get_radial_circles

Description

array cairo_pattern_get_radial_circles ( CairoRadialGradient $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_radial_circles()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_rgba

Description

array cairo_pattern_get_rgba ( CairoSolidPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_surface

(PECL cairo >= 0.1.0)

cairo_pattern_get_surface

Description

CairoSurface cairo_pattern_get_surface ( CairoSurfacePattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_surface()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_get_type

(PECL cairo >= 0.1.0)

cairo_pattern_get_type

Description

int cairo_pattern_get_type ( CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • related function name here()



cairo_pattern_set_extend

(PECL cairo >= 0.1.0)

cairo_pattern_set_extend

Description

void cairo_pattern_set_extend ( string $pattern , string $extend )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

extend

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_set_extend()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • related function name here()



cairo_pattern_set_filter

(PECL cairo >= 0.1.0)

cairo_pattern_set_filter

Description

void cairo_pattern_set_filter ( CairoSurfacePattern $pattern , int $filter )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

filter

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_set_filter()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • related function name here()



cairo_pattern_set_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_set_matrix

Description

void cairo_pattern_set_matrix ( CairoPattern $pattern , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

matrix

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_set_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pattern_status

(PECL cairo >= 0.1.0)

cairo_pattern_status

Description

int cairo_pattern_status ( CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pdf_surface_create

(PECL cairo >= 0.1.0)

cairo_pdf_surface_create

Description

CairoPdfSurface cairo_pdf_surface_create ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pdf_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_pdf_surface_set_size

(PECL cairo >= 0.1.0)

cairo_pdf_surface_set_size

Description

void cairo_pdf_surface_set_size ( CairoPdfSurface $surface , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pdf_surface_set_size()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_get_levels

(PECL cairo >= 0.1.0)

cairo_ps_get_levels

Description

array cairo_ps_get_levels ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_get_levels()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_level_to_string

(PECL cairo >= 0.1.0)

cairo_ps_level_to_string

Description

string cairo_ps_level_to_string ( int $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_level_to_string()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_create

(PECL cairo >= 0.1.0)

cairo_ps_surface_create

Description

CairoPsSurface cairo_ps_surface_create ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_dsc_begin_page_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_page_setup

Description

void cairo_ps_surface_dsc_begin_page_setup ( CairoPsSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_dsc_begin_page_setup()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_dsc_begin_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_setup

Description

void cairo_ps_surface_dsc_begin_setup ( CairoPsSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_dsc_begin_setup()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_dsc_comment

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_comment

Description

void cairo_ps_surface_dsc_comment ( CairoPsSurface $surface , string $comment )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

comment

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_dsc_comment()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_get_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_get_eps

Description

bool cairo_ps_surface_get_eps ( CairoPsSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_get_eps()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_restrict_to_level

(PECL cairo >= 0.1.0)

cairo_ps_surface_restrict_to_level

Description

void cairo_ps_surface_restrict_to_level ( CairoPsSurface $surface , int $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

level

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_restrict_to_level()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_set_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_eps

Description

void cairo_ps_surface_set_eps ( CairoPsSurface $surface , bool $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

level

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_set_eps()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_ps_surface_set_size

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_size

Description

void cairo_ps_surface_set_size ( CairoPsSurface $surface , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_set_size()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_create

(PECL cairo >= 0.1.0)

cairo_scaled_font_create

Description

CairoScaledFont cairo_scaled_font_create ( CairoFontFace $fontface , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $fontoptions )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fontface

matrix

ctm

fontoptions

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_extents

Description

array cairo_scaled_font_extents ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_extents()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_get_ctm

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_ctm

Description

CairoMatrix cairo_scaled_font_get_ctm ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_ctm()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_get_font_face

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_face

Description

CairoFontFace cairo_scaled_font_get_font_face ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_font_face()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_get_font_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_matrix

Description

CairoFontOptions cairo_scaled_font_get_font_matrix ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_font_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_get_font_options

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_options

Description

CairoFontOptions cairo_scaled_font_get_font_options ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_font_options()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_get_scale_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_scale_matrix

Description

CairoMatrix cairo_scaled_font_get_scale_matrix ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_scale_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_get_type

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_type

Description

int cairo_scaled_font_get_type ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_glyph_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_glyph_extents

Description

array cairo_scaled_font_glyph_extents ( CairoScaledFont $scaledfont , array $glyphs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

glyphs

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_glyph_extents()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_status

(PECL cairo >= 0.1.0)

cairo_scaled_font_status

Description

int cairo_scaled_font_status ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_scaled_font_text_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_text_extents

Description

array cairo_scaled_font_text_extents ( CairoScaledFont $scaledfont , string $text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

text

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_text_extents()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_copy_page

(PECL cairo >= 0.1.0)

cairo_surface_copy_page

Description

void cairo_surface_copy_page ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_copy_page()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_create_similar

(PECL cairo >= 0.1.0)

cairo_surface_create_similar

Description

CairoSurface cairo_surface_create_similar ( CairoSurface $surface , int $content , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

content

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_create_similar()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_finish

(PECL cairo >= 0.1.0)

cairo_surface_finish

Description

void cairo_surface_finish ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_finish()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_flush

(PECL cairo >= 0.1.0)

cairo_surface_flush

Description

void cairo_surface_flush ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_flush()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_get_content

(PECL cairo >= 0.1.0)

cairo_surface_get_content

Description

int cairo_surface_get_content ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_content()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_get_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_get_device_offset

Description

array cairo_surface_get_device_offset ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_device_offset()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_get_font_options

(PECL cairo >= 0.1.0)

cairo_surface_get_font_options

Description

CairoFontOptions cairo_surface_get_font_options ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_font_options()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_get_type

(PECL cairo >= 0.1.0)

cairo_surface_get_type

Description

int cairo_surface_get_type ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_mark_dirty_rectangle

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty_rectangle

Description

void cairo_surface_mark_dirty_rectangle ( CairoSurface $surface , float $x , float $y , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

x

y

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_mark_dirty_rectangle()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_mark_dirty

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty

Description

void cairo_surface_mark_dirty ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_mark_dirty()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_set_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_set_device_offset

Description

void cairo_surface_set_device_offset ( CairoSurface $surface , float $x , float $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

x

y

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_set_device_offset()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_set_fallback_resolution

(PECL cairo >= 0.1.0)

cairo_surface_set_fallback_resolution

Description

void cairo_surface_set_fallback_resolution ( CairoSurface $surface , float $x , float $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

x

y

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_set_fallback_resolution()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_show_page

(PECL cairo >= 0.1.0)

cairo_surface_show_page

Description

void cairo_surface_show_page ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_show_page()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_status

(PECL cairo >= 0.1.0)

cairo_surface_status

Description

int cairo_surface_status ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_surface_write_to_png

(PECL cairo >= 0.1.0)

cairo_surface_write_to_png

Description

void cairo_surface_write_to_png ( CairoSurface $surface , resource $stream )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

stream

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_write_to_png()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_svg_surface_create

(PECL cairo >= 0.1.0)

cairo_svg_surface_create

Description

CairoSvgSurface cairo_svg_surface_create ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_svg_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_svg_surface_restrict_to_version

(PECL cairo >= 0.1.0)

cairo_svg_surface_restrict_to_version

Description

void cairo_svg_surface_restrict_to_version ( CairoSvgSurface $surface , int $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

version

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_svg_surface_restrict_to_version()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



cairo_svg_version_to_string

(PECL cairo >= 0.1.0)

cairo_svg_version_to_string

Description

string cairo_svg_version_to_string ( int $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

version

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_svg_version_to_string()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe Cairo

Introduction

Classe simple avec quelques méthodes statiques d'aide.

Synopsis de la classe

Cairo {
/* Méthodes */
public static array availableFonts ( void )
public static array availableSurfaces ( void )
public static string statusToString ( int $status )
public static int version ( void )
public static string versionString ( void )
}

Cairo::availableFonts

cairo_available_fonts

(PECL cairo >= 0.1.0)

Cairo::availableFonts -- cairo_available_fontsRécupère tous les types de police disponibles

Description

Style orienté objet :

public static array Cairo::availableFonts ( void )

Style procédural :

array cairo_available_fonts ( void )

Récupère tous les types de police disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant tous les types de police disponibles.

Exemples

Exemple #1 Style orienté objet

<?php

var_dump
(Cairo::availableFonts());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Exemple #2 Style procédural

<?php

var_dump
(cairo_available_fonts());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Voir aussi



Cairo::availableSurfaces

cairo_available_surfaces

(PECL cairo >= 0.1.0)

Cairo::availableSurfaces -- cairo_available_surfacesRécupère toutes les surfaces disponibles

Description

Style orienté objet (méthode) :

public static array Cairo::availableSurfaces ( void )

Style procédural :

array cairo_available_surfaces ( void )

Retourne un tableau contenant toutes les surfaces disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant la liste de toutes les surfaces disponibles.

Exemples

Exemple #1 Style orienté objet

<?php

var_dump
(Cairo::availableSurfaces());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Exemple #2 Style procédural

<?php

var_dump
(cairo_available_surfaces());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Voir aussi



Cairo::statusToString

cairo_status_to_string

(PECL cairo >= 0.1.0)

Cairo::statusToString -- cairo_status_to_stringRécupère le statut courant, sous la forme d'une chaîne de caractères

Description

Style orienté objet (method):

public static string Cairo::statusToString ( int $status )

Style procédural :

string cairo_status_to_string ( int $status )

Récupère le statut courant, sous la forme d'une chaîne de caractères.

Liste de paramètres

status

Un code statut valide, fourni par la fonction cairo_status() ou la méthode CairoContext::status().

Valeurs de retour

Une chaîne de caractères contenant le statut courant de l'objet CairoContext.

Exemples

Exemple #1 Style orienté objet

<?php
$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);
$context = new CairoContext($surface);

var_dump(Cairo::statusToString($context->status()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "success"

Exemple #2 Style procédural

<?php
$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);
$context cairo_create($surface);

var_dump(cairo_status_to_string(cairo_status($context)));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "success"

Voir aussi



Cairo::version

cairo_version

(PECL cairo >= 0.1.0)

Cairo::version -- cairo_versionRécupère la version de la bibliothèque Cairo

Description

Style orienté objet (méthode) :

public static int Cairo::version ( void )

Style procédural :

int cairo_version ( void )

Récupère la version courante de la bibliothèque Cairo, sous la forme d'une valeur entière.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une entier décrivant la version de la bibliothèque Cairo courante.

Exemples

Exemple #1 Style orienté objet

<?php
var_dump
(Cairo::version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10808)

Exemple #2 Style procédural

<?php
var_dump
(cairo_version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10808)

Voir aussi



Cairo::versionString

cairo_version_string

(PECL cairo >= 0.1.0)

Cairo::versionString -- cairo_version_stringRécupère la version Cairo sous la forme d'une chaîne de caractères

Description

Style orienté objet (méthode) :

public static string Cairo::versionString ( void )

Style procédural :

string cairo_version_string ( void )

Récupère la version de la bibliothèque cairo courant, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères décrivant la version de la bibliothèque Cairo courante.

Exemples

Exemple #1 Style orienté objet

<?php

var_dump
(Cairo::versionString());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "1.8.8"

Exemple #2 Style procédural

<?php

var_dump
(cairo_version_string());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "1.8.8"

Voir aussi


Sommaire



La classe CairoContext

Introduction

Le contexte est l'objet principal utilisé lors d'un dessin avec Cairo. Pour dessiner avec Cairo, vous devez créer un objet CairoContext, définir la cible CairoSurface, ainsi que les options de dessin pour l'objet CairoContext, créer la forme avec les fonctions comme like CairoContext::moveTo() et CairoContext::lineTo(), et enfin, dessiner les formes avec la méthode CairoContext::stroke() ou la méthode CairoContext::fill(). Les contextes peuvent être mis dans une pile via la méthode CairoContext::save(). Ils peuvent ensuite être modifiés sans perdre l'état courant. Utilisez la méthode CairoContext::restore() pour retrouver l'état sauvegardé.

Synopsis de la classe

CairoContext {
/* Méthodes */
public void appendPath ( CairoPath $path )
public void arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 )
public void arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 )
public void clip ( void )
public array clipExtents ( void )
public void clipPreserve ( void )
public array clipRectangleList ( void )
public void closePath ( void )
public void copyPage ( void )
public CairoPath copyPath ( void )
public CairoPath copyPathFlat ( void )
public void curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )
public array deviceToUser ( float $x , float $y )
public array deviceToUserDistance ( float $x , float $y )
public void fill ( void )
public array fillExtents ( void )
public void fillPreserve ( void )
public array fontExtents ( void )
public int getAntialias ( void )
public array getCurrentPoint ( void )
public array getDash ( void )
public int getDashCount ( void )
public int getFillRule ( void )
public void getFontFace ( void )
public void getFontMatrix ( void )
public void getFontOptions ( void )
public void getGroupTarget ( void )
public int getLineCap ( void )
public int getLineJoin ( void )
public float getLineWidth ( void )
public void getMatrix ( void )
public float getMiterLimit ( void )
public int getOperator ( void )
public void getScaledFont ( void )
public void getSource ( void )
public void getTarget ( void )
public float getTolerance ( void )
public void glyphPath ( array $glyphs )
public bool hasCurrentPoint ( void )
public void identityMatrix ( void )
public bool inFill ( string $x , string $y )
public bool inStroke ( string $x , string $y )
public void lineTo ( string $x , string $y )
public void mask ( string $pattern )
public void maskSurface ( string $surface [, string $x [, string $y ]] )
public void moveTo ( string $x , string $y )
public void newPath ( void )
public void newSubPath ( void )
public void paint ( void )
public void paintWithAlpha ( string $alpha )
public array pathExtents ( void )
public void popGroup ( void )
public void popGroupToSource ( void )
public void pushGroup ( void )
public void pushGroupWithContent ( string $content )
public void rectangle ( string $x , string $y , string $width , string $height )
public void relCurveTo ( string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )
public void relLineTo ( string $x , string $y )
public void relMoveTo ( string $x , string $y )
public void resetClip ( void )
public void restore ( void )
public void rotate ( string $angle )
public void save ( void )
public void scale ( string $x , string $y )
public void selectFontFace ( string $family [, string $slant [, string $weight ]] )
public void setAntialias ([ string $antialias ] )
public void setDash ( string $dashes [, string $offset ] )
public void setFillRule ( string $setting )
public void setFontFace ( CairoFontFace $fontface )
public void setFontMatrix ( string $matrix )
public void setFontOptions ( string $fontoptions )
public void setFontSize ( string $size )
public void setLineCap ( string $setting )
public void setLineJoin ( string $setting )
public void setLineWidth ( string $width )
public void setMatrix ( string $matrix )
public void setMiterLimit ( string $limit )
public void setOperator ( string $setting )
public void setScaledFont ( string $scaledfont )
public void setSource ( string $pattern )
public void setSourceRGB ( string $red , string $green , string $blue )
public void setSourceRGBA ( string $red , string $green , string $blue , string $alpha )
public void setSourceSurface ( string $surface [, string $x [, string $y ]] )
public void setTolerance ( string $tolerance )
public void showPage ( void )
public void showText ( string $text )
public int status ( void )
public void stroke ( void )
public array strokeExtents ( void )
public void strokePreserve ( void )
public array textExtents ( string $text )
public void textPath ( string $string )
public void transform ( string $matrix )
public void translate ( string $x , string $y )
public array userToDevice ( string $x , string $y )
public array userToDeviceDistance ( string $x , string $y )
}

CairoContext::appendPath

cairo_append_path

(PECL cairo >= 0.1.0)

CairoContext::appendPath -- cairo_append_pathAjoute un chemin à la liste courante des chemins

Description

Style orienté objet (méthode) :

public void CairoContext::appendPath ( CairoPath $path )

Style procédural :

void cairo_append_path ( CairoContext $context , CairoPath $path )

Ajoute un chemin path dans la liste courante des chemins. Le nouveau path peut être une valeur retournée soit par la méthode CairoContext::copyPath(), soit par la méthode CairoContext::copyPathFlat().

Si path n'est pas une instance CairoPath valide, une exception CairoException sera émise.

Liste de paramètres

context

Un objet CairoContext.

path

Un objet CairoPath.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

$path $context->copyPath();

$context->appendPath($path);

?>

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

$path cairo_copy_path($context);

cairo_append_path($context$path);

?>

Voir aussi



CairoContext::arc

cairo_arc

(PECL cairo >= 0.1.0)

CairoContext::arc -- cairo_arcAjoute un arc circulaire

Description

Style orienté objet (méthode) :

public void CairoContext::arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 )

Style procédural :

void cairo_arc ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 )

Ajoute un arc circulaire d'un rayon donné au chemin courant. L'arc est centré aux coordonnées x, y, commence à l'angle angle1 et se forme en augmentant son angle jusqu'à l'angle angle2. Si l'angle angle2 est plus petit que l'angle angle1, il sera augmenter progressivement de 2*M_PI tant qu'il sera plus petit que l'angle angle1. S'il y a un point courant, un segment de ligne initial sera ajouté au chemin pour connecter le point courant et le début de l'arc. Si cette ligne initiale n'est pas désirée, elle peut être évitée en appelant la méthode CairoContext::newSubPath() ou la fonction procédurale cairo_new_sub_path() avant d'appeler CairoContext::arc() ou cairo_arc(). Les angles sont mesurés en radians. Un angle de 0.0 est dans la direction de l'axe X positif (dans l'espace utilisateur). Un angle de M_PI/2.0 radians (90 degrés) est dans la direction de l'axe Y positif (dans l'espace utilisateur). L'angle augment depuis l'axe X positif jusqu'à l'axe Y positif. Aussi, avec la matrice de transformation par défaut, les angles augmentent dans le sens des aiguilles d'une montre. ( Pour convertir les degrés en radians, utilisez la formule : degrés * (M_PI / 180.).) Cette fonction fournit un arc dans la direction des angles croissants ; voir la méthode CairoContext::arcNegative() ou la fonction cairo_arc_negative() pour récupérer l'angle dans la direction des angles croissants.

Liste de paramètres

context

Un objet CairoContext valide.

x

Position en X

y

Position en Y

radius

Rayon de l'arc

angle1

Angle de départ

angle2

Angle de fin

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);

$c->setSourceRgb(000);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(111);

for (
$r 50$r 0$r -= 10) {
 
$c->arc(5050$r0M_PI);
 
$c->stroke();
 
$c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arc.png');
?>

Exemple #2 Style procédural

<?php

$s 
cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE100100);
$c cairo_create($s);

cairo_set_source_rgb($c000);
cairo_paint($c);

cairo_set_source_rgb($c111);
cairo_set_line_width($c1);

for (
$r 50$r 0$r -= 10) {
 
cairo_arc($c5050$r0M_PI);
 
cairo_stroke($c);
 
cairo_fill($c);
}

cairo_surface_write_to_png($sdirname(__FILE__) . '/cairo_arc.png');
?>

Voir aussi



CairoContext::arcNegative

cairo_arc_negative

(PECL cairo >= 0.1.0)

CairoContext::arcNegative -- cairo_arc_negativeAjoute un arc négatif

Description

Style orienté objet (méthode) :

public void CairoContext::arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 )

Style procédural :

void cairo_arc_negative ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 )

Ajoute un arc circulaire d'un rayon radius donné au chemin courant. L'arc est centré aux coordonnées x, y, commence à l'angle angle1 et se forme en direction des angles décroissants jusqu'à la fin de l'angle angle2. Si angle2 est plus grand que angle1, il sera progressivement abaissé en utilisant la formule 2*M_PI tant qu'il sera plus grand que angle1. Voir CairoContext::arc() ou cairo_arc() pour plus de détails. Cette fonction diffère uniquement dans la direction de l'arc entre les 2 angles.

Liste de paramètres

context

Un objet CairoContext valide

x

Position double en X

y

Position double en Y

radius

Le rayon de l'arc négatif désiré

angle1

L'angle de départ de l'arc

angle2

L'angle de fin de l'arc

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);

$c->setSourceRgb(000);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(111);

for (
$r 50$r 0$r -= 10) {
 
$c->arcNegative(5050$rM_PI0);
 
$c->stroke();
 
$c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arcNegative.png');
?>

Exemple #2 Style procédural

<?php

$s 
cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE100100);
$c cairo_create($s);

cairo_set_source_rgb($c000);
cairo_paint($c);

cairo_set_source_rgb($c111);
cairo_set_line_width($c1);

for (
$r 50$r 0$r -= 10) {
 
cairo_arc_negative($c5050$rM_PI0);
 
cairo_stroke($c);
 
cairo_fill($c);
}

cairo_surface_write_to_png($sdirname(__FILE__) . '/cairo_arc_negative.png');
?>

Voir aussi



CairoContext::clip

cairo_clip

(PECL cairo >= 0.1.0)

CairoContext::clip -- cairo_clipÉtablit une nouvelle région

Description

Style orienté objet (méthode) :

public void CairoContext::clip ( void )

Style procédural :

void cairo_clip ( CairoContext $context )

Établit une nouvelle région par l'intersection de la région courante avec le chemin courant, nouvelle région remplit par la méthode CairoContext::fill() ou la fonction cairo_fill() et suivant la règle de remplissage courant (voir la méthode CairoContext::setFillRule() ou la fonction cairo_set_fill_rule()).

Après un appel à la méthode CairoContext::clip() ou la fonction cairo_clip(), le chemin courant sera effacé du contexte Cairo.

La région courante affecte toutes les opérations de dessin en masquant toutes les modifications de la surface qui se trouve à l'extérieur de la région courante.

L'appel à la méthode CairoContext::clip() ou la fonction cairo_clip() peut rendre uniquement la région plus petite, jamais plus grande. Mais la région courante fait partie du statut du graphique, aussi, une restriction temporaire de la région peut être effectuée en appelant la méthode CairoContext::clip() ou la fonction cairo_clip() dans la paire CairoContext::save()/ CairoContext::restore() ou cairo_save()/cairo_restore(). Vous pouvez également accroître la taille d'une région avec la méthode CairoContext::resetClip() ou la fonction cairo_reset_clip().

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

$context->clip();

?>

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

cairo_clip($context);

?>

Voir aussi



CairoContext::clipExtents

cairo_clip_extents

(PECL cairo >= 0.1.0)

CairoContext::clipExtents -- cairo_clip_extentsCalcule l'espace à l'intérieur d'une région

Description

Style orienté objet (méthode) :

public array CairoContext::clipExtents ( void )

Style procédural :

array cairo_clip_extents ( CairoContext $context )

Calcule un cadre de sélection en coordonnées utilisateur couvrant la zone à l'intérieur de la région courante.

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Un tableau contenant les coordonnées (float)x1, (float)y1, (float)x2, (float)y2 couvrant l'espace dans la région courante.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

var_dump($context->clipExtents());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

var_dump(cairo_clip_extents($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Voir aussi



CairoContext::clipPreserve

cairo_clip_preserve

(PECL cairo >= 0.1.0)

CairoContext::clipPreserve -- cairo_clip_preserveÉtablit une nouvelle région depuis la région courante

Description

Style orienté objet (méthode) :

public void CairoContext::clipPreserve ( void )

Style procédural :

void cairo_clip_preserve ( CairoContext $context )

Établit une nouvelle région par l'intersection de la région courante avec le chemin courant, qui sera remplie par Context.fill() et suivant la règle de remplissage courant (voir la méthode CairoContext::setFillRule() ou la fonction cairo_set_fill_rule()).

Contrairement à la méthode CairoContext::clip(), CairoContext::clipPreserve() préserve le chemin dans le contexte. La région courant affecte toutes les opérations de dessin en masquant toutes les modifications de la surface qui se trouve à l'extérieur de la région courante.

L'appel à la méthode CairoContext::clipPreserve() ne peut rendre que plus petite la région, jamais plus grande. Mais la région courant fait partie du statut du graphique, aussi, une restriction temporaire de la région peut être effectuée en appelant la méthode CairoContext::clipPreserve() avec une paire CairoContext::save()/ CairoContext::restore(). La seule autre façon d'accroître la taille de la région est d'utiliser la méthode CairoContext::resetClip().

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

$context->clipPreserve();

?>

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

cairo_clip_preserve($context);

?>

Voir aussi



CairoContext::clipRectangleList

cairo_clip_rectangle_list

(PECL cairo >= 0.1.0)

CairoContext::clipRectangleList -- cairo_clip_rectangle_listRécupère la région courante sous la forme d'une liste de rectangles

Description

Style orienté objet (méthode) :

public array CairoContext::clipRectangleList ( void )

Style procédural :

array cairo_clip_rectangle_list ( CairoContext $context )

Retourne une liste de tableau représentant la région sous la forme d'une liste de rectangles en coordonnées utilisateur.

Liste de paramètres

context

Un objet CairoContext créé avec la méthode CairoContext::__construct() ou la fonction cairo_create().

Valeurs de retour

Un tableau d'espace utilisateur représentant des rectangles de la région courante.

(Le statut de la liste peut être CAIRO_STATUS_CLIP_NOT_REPRESENTABLE pour indiquer que la région ne peut être représentée sous la forme d'une liste de rectangles de l'espace utilisateur. Le statut peut avoir d'autres valeurs pour indiquer les autres erreurs).

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

var_dump($context->clipRectangleList());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

var_dump(cairo_clip_rectangle_list($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Voir aussi

  • Classname::Method()



CairoContext::closePath

cairo_close_path

(PECL cairo >= 0.1.0)

CairoContext::closePath -- cairo_close_pathFerme le chemin courant

Description

Style orienté objet (méthode) :

public void CairoContext::closePath ( void )

Style procédural :

void cairo_close_path ( CairoContext $context )

Ajoute un segment de ligne au chemin depuis le point courant jusqu'au début du sous-chemin courant (le point le plus récent passé à la méthode CairoContext::moveTo()), et ferme le sous chemin. Après cet appel, le point courant sera à la jointure du dernier point du sous chemin.

Le comportement de close_path() est distinct d'un simple appel à CairoContext::lineTo() avec des coordonnées équivalentes dans le cas d'un stroking. Lorsqu'un sous chemin fermé est stroké, il n'y aura pas de bouchons aux extrémités du sous chemin. À la place, il y aura une ligne de jointe connectant le segment final et initial du sous chemin.

S'il n'y a pas de point courant avant l'appel à la méthode CairoContext::closePath(), cette fonction n'aura aucun effet.

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

$context->closePath();

?>

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

cairo_close_path($context);

?>

Voir aussi



CairoContext::__construct

(PECL cairo >= 0.1.0)

CairoContext::__constructCrée un nouvel objet CairoContext

Description

CairoContext::__construct ( CairoSurface $surface )

Crée un nouvel objet CairoContext pour dessiner.

Liste de paramètres

surface

Un objet CairoSurface valide comme CairoImageSurface ou CairoPdfSurface

Valeurs de retour

Un nouvel objet CairoContext.

Exemples

Exemple #1 Exemple avec CairoContext::__construct()

<?php
// La surface à travailler
$surface = new CairoImageSurface(CairoFormat::ARGB325050);

// Crée un nouveau CairoContext pour la surface CairoSurface
$context = new CairoContext($surface);

?>

Voir aussi

  • Cairo::Method()



CairoContext::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoContext::copyPage -- cairo_copy_pageÉmets la page courante

Description

Style orienté objet (méthode) :

public void CairoContext::copyPage ( void )

Style procédural :

void cairo_copy_page ( CairoContext $context )

Émets la page courante pour les gestionnaires qui supportent les pages multiples, mais ne la nettoie pas, aussi, le contenu de la page courante sera également repris pour la prochaine page. Utilisez la méthode CairoContext::showPage() si vous voulez récupérer une page vide après l'émission.

Ceci est une fonction de convenance qui appèle simplement la méthode CairoSurface::copyPage() sur la cible CairoContext.

Liste de paramètres

context

Un objet CairoContext valide créé avec la méthode CairoContext::__construct() ou la fonction cairo_create().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

$context->copyPage();

?>

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

cairo_copy_page($context);

?>

Voir aussi



CairoContext::copyPath

cairo_copy_path

(PECL cairo >= 0.1.0)

CairoContext::copyPath -- cairo_copy_pathCrée une copie du chemin courant

Description

Style orienté objet (méthode) :

public CairoPath CairoContext::copyPath ( void )

Style procédural :

CairoPath cairo_copy_path ( CairoContext $context )

Crée une copie du chemin courant et le retourne à l'utilisateur sous la forme d'un CairoPath. Voir la méthode CairoPathpour des astuces sur l'itération de la structure de données retournée.

Cette fonction retournera toujours un objet CairoPath valide, mais le résultat peut ne pas contenir de données, si une des conditions suivantes n'est pas remplie :

  • 1. S'il n'y a pas suffisamment de mémoire pour copier le chemin. Dans ce cas, CairoPath->status sera défini à CAIRO_STATUS_NO_MEMORY.
  • 2. Si context est déjà dans un statut d'erreur. Dans ce cas, CairoPath->status contiendra le même statut que celui retourné par la fonction cairo_status().
Dans tous les cas, CairoPath->status sera défini à CAIRO_STATUS_NO_MEMORY (suivant le statut de l'erreur dans cr).

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Une copie de l'objet CairoPath courant dans le contexte.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

var_dump($context->copyPath())

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

var_dump(cairo_copy_path($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Voir aussi



CairoContext::copyPathFlat

cairo_copy_path_flat

(PECL cairo >= 0.1.0)

CairoContext::copyPathFlat -- cairo_copy_path_flatRécupère une copie à plat du chemin courant

Description

Style orienté objet (méthode) :

public CairoPath CairoContext::copyPathFlat ( void )

Style procédural :

CairoPath cairo_copy_path_flat ( CairoContext $context )

Récupère une copie à plat du chemin courant et le retourne à l'utilisateur sous la forme d'un objet CairoPath.

Cette fonction agit comme la méthode CairoContext::copyPath() excepté le fait que toutes les courbes du chemin seront représentées sous la forme d'une ligne approximative (suivant la valeur de tolérance courante). Ainsi, le résultat ne contiendra pas d'éléments de type CAIRO_PATH_CURVE_TO qui seront remplacés par une série d'éléments CAIRO_PATH_LINE_TO elements.

Liste de paramètres

context

Un objet CairoContext.

Valeurs de retour

Une copie du chemin courant.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

$context = new CairoContext($surface);

var_dump($context->copyPathFlat());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Exemple #2 Style procédural

<?php

$surface 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);

$context cairo_create($surface);

var_dump(cairo_copy_path_flat($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Voir aussi



CairoContext::curveTo

cairo_curve_to

(PECL cairo >= 0.1.0)

CairoContext::curveTo -- cairo_curve_toAjoute une courbe

Description

Style orienté objet (méthode) :

public void CairoContext::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Style procédural :

void cairo_curve_to ( CairoContext $context , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin depuis le point courant vers la position x3, y3 en coordonnées de l'espace utilisateur, en utilsant x1, y1 et x2, y2 comme points de contrôle. Après cet appel, le point courant sera x3, y3.

S'il n'y a pas de point courant avant l'appel à la méthode CairoContext::curveTo(), cette fonction se comportera comme si un appel précédent à la méthode CairoContext::moveTo() (x1, y1) avait eu lieu.

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

x1

Premier point de contrôle sur l'axe X pour la courbe.

y1

Premier point de contrôle sur l'axe Y pour la courbe.

x2

Second point de contrôle sur l'axe X pour la courbe.

y2

Second point de contrôle sur l'axe Y pour la courbe.

x3

Dernier point de contrôle sur l'axe X pour la courbe.

y3

Dernier point de contrôle sur l'axe Y pour la courbe.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);

$c->setSourceRgb(000);

$c->paint();

$c->moveTo(1050); 
$c->setLineWidth(5);
$c->setSourceRgb(.101);
$c->curveTo(208080209050); 
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/curveTo.png');
?>

Exemple #2 Style procédural

<?php

$s 
cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE100100);
$c cairo_create($s);

cairo_set_source_rgb($c000);

cairo_paint($c);

cairo_move_to($c1050);
cairo_set_line_width($c5);
cairo_set_source_rgb($c.101);
cairo_curve_to($c208080209050);
cairo_stroke($c);

cairo_surface_write_to_png($sdirname(__FILE__) . '/curve_to.png');
?>

Voir aussi



CairoContext::deviceToUser

cairo_device_to_user

(PECL cairo >= 0.1.0)

CairoContext::deviceToUser -- cairo_device_to_userTransforme une coordonnée

Description

Style orienté objet (méthode) :

public array CairoContext::deviceToUser ( float $x , float $y )

Style procédural :

array cairo_device_to_user ( CairoContext $context , float $x , float $y )

Transforme une coordonnée depuis l'espace du périphérique vers l'espace utilisateur en multipliant le point courant par l'inverse de la matrice de transformation courante (CTM).

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

x

Valeur en X de la coordonnée.

y

Valeur en Y de la coordonnée.

Valeurs de retour

Un tableau contenant les coordonnées en X et en Y dans l'espace utilisateur.

Voir aussi



CairoContext::deviceToUserDistance

cairo_device_to_user_distance

(PECL cairo >= 0.1.0)

CairoContext::deviceToUserDistance -- cairo_device_to_user_distanceTransforme une distance

Description

Style orienté objet (méthode) :

public array CairoContext::deviceToUserDistance ( float $x , float $y )

Style procédural :

array cairo_device_to_user_distance ( CairoContext $context , float $x , float $y )

Transforme une distance vectorielle depuis l'espace du périphérique vers l'espace utilisateur. Cette méthode est similaire à la méthode CairoContext::deviceToUser() ou la fonction cairo_device_to_user() excepté que les composants de traduction inverse de la matrice de transformation Cairo seront ignorés lors de la transformation (x, y).

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

x

Composant en X de la distance vectorielle.

y

Composant en Y de la distance vectorielle.

Valeurs de retour

Retourne un tableau avec les valeurs X et Y de la distance vectorielle dans l'espace utilisateur.

Voir aussi



CairoContext::fill

cairo_fill

(PECL cairo >= 0.1.0)

CairoContext::fill -- cairo_fillRemplit le chemin courant

Description

Style orienté objet (méthode) :

public void CairoContext::fill ( void )

Style procédural :

void cairo_fill ( CairoContext $context )

Un opérateur de dessin qui remplit le chemin courant suivant le CairoFillRule courant, (chaque sous chemin est implicitement fermé avant de commencer le remplissage). Après CairoContext::fill() ou cairo_fill(), le chemin courant sera supprimé du contexte CairoContext.

Liste de paramètres

context

Un objet CairoContext valide, créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);
 
$c->setSourceRgb(000);
$c->paint();

$c->setSourceRgb(111);
$c->rectangle(005050);
$c->fill();
$c->setSourceRgb(010);
$c->rectangle(50505050);
$c->fill();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_fill.png');

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php

$s 
cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE100100);
$c cairo_create($s);

cairo_set_source_rgb($c000);
cairo_paint($c);

cairo_set_source_rgb($c111);
cairo_rectangle($c005050);
cairo_fill($c);
cairo_set_source_rgb($c010);
cairo_rectangle($c50505050);
cairo_fill($c);

cairo_surface_write_to_png($sdirname(__FILE__) . '/cairo_fill.png');

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoContext::fillExtents

cairo_fill_extents

(PECL cairo >= 0.1.0)

CairoContext::fillExtents -- cairo_fill_extentsCalcule la zone remplie

Description

Style orienté objet (méthode) :

public array CairoContext::fillExtents ( void )

Style procédural :

array cairo_fill_extents ( CairoContext $context )

Calcule un cadre de sélection en coordonnées utilisateur couvrant l'espace qui sera affecté par la méthode CairoContext::fill(), suivant le chemin courant et les paramètres de remplissage. Si le chemin courant est vide, retourne un rectangle vide (0,0,0,0). Les dimensions de la surface et de la région ne seront pas pris en compte.

Similaire à la méthode CairoContext::pathExtents(), mais retourne l'étendu non nul pour des chemins sans surface encrée (comme un segment d'une simple ligne).

Notez que CairoContext::fillExtents() doit obligatoirement effectuer d'autre traitement pour calculer l'espace encrée précis pour la règle de remplissage, aussi CairoContext::pathExtents() peut être plus appropriée pour conserver un maximum de performance si le chemin non encré est souhaité.

Liste de paramètres

context

Un objet CairoContext valide avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Un tableau avec les coordonnées de l'espace affecté.

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoContext::fillPreserve

cairo_fill_preserve

(PECL cairo >= 0.1.0)

CairoContext::fillPreserve -- cairo_fill_preserveRemplit et préserve le chemin courant

Description

Style orienté objet (méthode) :

public void CairoContext::fillPreserve ( void )

Style procédural :

void cairo_fill_preserve ( CairoContext $context )

Une opération de dessin qui remplit le chemin courant suivant l'objet CairoFillRule courant (chaque sous chemin est implicitement clos avant le remplissage). Contrairement à la méthode CairoContext::fill(), CairoContext::fillPreserve() (fonctions cairo_fill(), cairo_fill_preserve(), respectivement) préserve le chemin du contexte.

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoContext::fontExtents

cairo_font_extents

(PECL cairo >= 0.1.0)

CairoContext::fontExtents -- cairo_font_extentsRécupère la police étendue

Description

Style orienté objet (méthode) :

public array CairoContext::fontExtents ( void )

Style procédural :

array cairo_font_extents ( CairoContext $context )

Récupère la police étendue depuis la police courante sélectionnée.

Liste de paramètres

context

Valeurs de retour

Un tableau contenant la police étendue depuis la police courante.

Exemples

Exemple #1 Style orienté objet

<?php

$sur 
= new CairoImageSurface(CairoFormat::ARGB325050);
$con = new CairoContext($sur);

var_dump($con->fontExtents());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Exemple #2 Style procédural

<?php

$sur 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);
$con cairo_create($sur);

var_dump(cairo_font_extents($con));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Voir aussi

  • Classname::Method()



CairoContext::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoContext::getAntialias -- cairo_get_antialiasRécupère le mode antialias courant

Description

Style orienté objet (méthode) :

public int CairoContext::getAntialias ( void )

Style procédural :

Retourne le mode CairoAntialias courant, tel que défini par CairoContext::setAntialias().

Liste de paramètres

context

Un objet CairoContext valide créé par CairoContext::__construct() ou cairo_create()

Valeurs de retour

Le mode CairoAntialias courant.

Exemples

Exemple #1 Style orienté objet

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);
$context = new CairoContext($surface);

$context->setAntialias(CairoAntialias::MODE_SUBPIXEL);

var_dump($context->getAntialias());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)

Exemple #2 Style procédural

<?php

$sur 
cairo_image_surface_create(CAIRO_FORMAT_ARGB325050);
$con cairo_create($sur);

cairo_set_antialias($conCAIRO_ANTIALIAS_SUBPIXEL);

var_dump(cairo_get_antialias($con));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)

Voir aussi



CairoContext::getCurrentPoint

cairo_get_current_point

(PECL cairo >= 0.1.0)

CairoContext::getCurrentPoint -- cairo_get_current_pointLe but de getCurrentPoint

Description

Style orienté objet

public array CairoContext::getCurrentPoint ( void )

Style procédural

array cairo_get_current_point ( CairoContext $context )

Récupère le point courant du chemin courant, représentant le point final atteint par le chemin.

Le point courant est retourné dans un système de coordonnées selon l'espace utilisateur. S'il n'y a pas de point courant de défini, ou si le cr est un statut d'erreur, x et y seront définis à 0.0. Il est possible de vérifier si le point courant existe grâce à la méthode CairoContext::hasCurrentPoint().

La plupart des fonctions de construction de chemin altère le point courant. Reportez-vous aux fonctions suivantes afin de savoir en quoi il est altéré : CairoContext::newPath(), CairoContext::newSubPath(), CairoContext::appendPath(), CairoContext::closePath(), CairoContext::moveTo(), CairoContext::lineTo(), CairoContext::curveTo(), CairoContext::relMoveTo(), CairoContext::relLineTo(), CairoContext::relCurveTo(), CairoContext::arc(), CairoContext::arcNegative(), CairoContext::rectangle(), CairoContext::textPath(), CairoContext::glyphPath().

Quelques fonctions utilisent et altèrent le point courant mais ne modifient pas le chemin courant : CairoContext::showText().

Quelques fonctions effacent le chemin courant et retournent le point courant : CairoContext::fill(), CairoContext::stroke().

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Un tableau contenant les coordonnées x (index 0) et y (index 1) du point courant.

Exemples

Exemple #1 Style orienté objet

<?php

$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);

$c->moveTo(1010);

var_dump($c->getCurrentPoint());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Exemple #2 Style procédural

<?php

$s 
cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE100100);
$c cairo_create($s);

cairo_move_to($c1010);

var_dump(cairo_get_current_point($c));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Voir aussi



CairoContext::getDash

cairo_get_dash

(PECL cairo >= 0.1.0)

CairoContext::getDash -- cairo_get_dashLe but de getDash

Description

Style orienté objet (méthode) :

public array CairoContext::getDash ( void )

Style procédural :

array cairo_get_dash ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getDashCount

cairo_get_dash_count

(PECL cairo >= 0.1.0)

CairoContext::getDashCount -- cairo_get_dash_countLe but de getDashCount

Description

Style orienté objet (méthode) :

public int CairoContext::getDashCount ( void )

Style procédural :

int cairo_get_dash_count ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getFillRule

cairo_get_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::getFillRule -- cairo_get_fill_ruleLe but de getFillRule

Description

Style orienté objet (méthode) :

public int CairoContext::getFillRule ( void )

Style procédural :

int cairo_get_fill_rule ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoContext::getFontFace -- cairo_get_font_faceLe but de getFontFace

Description

Style orienté objet (méthode) :

public void CairoContext::getFontFace ( void )

Style procédural :

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::getFontMatrix -- cairo_get_font_matrixLe but de getFontMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::getFontMatrix ( void )

Style procédural :

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoContext::getFontOptions -- cairo_get_font_optionsLe but de getFontOptions

Description

Style orienté objet (méthode) :

public void CairoContext::getFontOptions ( void )

Style procédural :

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getGroupTarget

cairo_get_group_target

(PECL cairo >= 0.1.0)

CairoContext::getGroupTarget -- cairo_get_group_targetLe but de getGroupTarget

Description

Style orienté objet (méthode) :

public void CairoContext::getGroupTarget ( void )

Style procédural :

void cairo_get_group_target ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getLineCap

cairo_get_line_cap

(PECL cairo >= 0.1.0)

CairoContext::getLineCap -- cairo_get_line_capLe but de getLineCap

Description

Style orienté objet (méthode) :

public int CairoContext::getLineCap ( void )

Style procédural :

int cairo_get_line_cap ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getLineJoin

cairo_get_line_join

(PECL cairo >= 0.1.0)

CairoContext::getLineJoin -- cairo_get_line_joinLe but de getLineJoin

Description

Style orienté objet (méthode) :

public int CairoContext::getLineJoin ( void )

Style procédural :

int cairo_get_line_join ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getLineWidth

cairo_get_line_width

(PECL cairo >= 0.1.0)

CairoContext::getLineWidth -- cairo_get_line_widthLe but de getLineWidth

Description

Style orienté objet (méthode) :

public float CairoContext::getLineWidth ( void )

Style procédural :

float cairo_get_line_width ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoContext::getMatrix -- cairo_get_matrixLe but de getMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::getMatrix ( void )

Style procédural :

void cairo_get_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getMiterLimit

cairo_get_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::getMiterLimit -- cairo_get_miter_limitLe but de getMiterLimit

Description

Style orienté objet (méthode) :

public float CairoContext::getMiterLimit ( void )

Style procédural :

float cairo_get_miter_limit ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getOperator

cairo_get_operator

(PECL cairo >= 0.1.0)

CairoContext::getOperator -- cairo_get_operatorLe but de getOperator

Description

Style orienté objet (méthode) :

public int CairoContext::getOperator ( void )

Style procédural :

int cairo_get_operator ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getScaledFont

cairo_get_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::getScaledFont -- cairo_get_scaled_fontLe but de getScaledFont

Description

Style orienté objet (méthode) :

public void CairoContext::getScaledFont ( void )

Style procédural :

void cairo_get_scaled_font ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getSource

cairo_get_source

(PECL cairo >= 0.1.0)

CairoContext::getSource -- cairo_get_sourceLe but de getSource

Description

Style orienté objet (méthode) :

public void CairoContext::getSource ( void )

Style procédural :

void cairo_get_source ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getTarget

cairo_get_target

(PECL cairo >= 0.1.0)

CairoContext::getTarget -- cairo_get_targetLe but de getTarget

Description

Style orienté objet (méthode) :

public void CairoContext::getTarget ( void )

Style procédural :

void cairo_get_target ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::getTolerance

cairo_get_tolerance

(PECL cairo >= 0.1.0)

CairoContext::getTolerance -- cairo_get_toleranceLe but de getTolerance

Description

Style orienté objet (méthode) :

public float CairoContext::getTolerance ( void )

Style procédural :

float cairo_get_tolerance ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::glyphPath

cairo_glyph_path

(PECL cairo >= 0.1.0)

CairoContext::glyphPath -- cairo_glyph_pathLe but de glyphPath

Description

Style orienté objet

public void CairoContext::glyphPath ( array $glyphs )

Style procédural

void cairo_glyph_path ( CairoContext $context , array $glyphs )

Ajoute les chemins fermés au chemin courant pour les glyphs. Le chemin généré est rempli, l'effet est similaire à CairoContext::showGlyphs().

Liste de paramètres

context

Un objet CairoContext

glyphs

Tableau de glyphs

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...



CairoContext::hasCurrentPoint

cairo_has_current_point

(PECL cairo >= 0.1.0)

CairoContext::hasCurrentPoint -- cairo_has_current_pointLe but de hasCurrentPoint

Description

Style orienté objet (méthode) :

public bool CairoContext::hasCurrentPoint ( void )

Style procédural :

bool cairo_has_current_point ( CairoContext $context )

Vérifie si le point courant est défini dans le chemin courant. Voir la méthode CairoContext::getCurrentPoint() pour plus de détails sur le point courant.

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Si oui ou non le point courant est défini.

Exemples

Exemple #1 Style orienté objet

<?php

$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);

var_dump($c->hasCurrentPoint());

$c->moveTo(1010);

var_dump($c->hasCurrentPoint());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Exemple #2 Style procédural

<?php

$s 
cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE100100);
$c cairo_create($s);

var_dump(cairo_has_current_point($c));

cairo_move_to($c1010);

var_dump(cairo_has_current_point($c));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)

Voir aussi



CairoContext::identityMatrix

cairo_identity_matrix

(PECL cairo >= 0.1.0)

CairoContext::identityMatrix -- cairo_identity_matrixLe but de identityMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::identityMatrix ( void )

Style procédural :

void cairo_identity_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::inFill

cairo_in_fill

(PECL cairo >= 0.1.0)

CairoContext::inFill -- cairo_in_fillLe but de inFill

Description

Style orienté objet (méthode) :

public bool CairoContext::inFill ( string $x , string $y )

Style procédural :

bool cairo_in_fill ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::inStroke

cairo_in_stroke

(PECL cairo >= 0.1.0)

CairoContext::inStroke -- cairo_in_strokeLe but de inStroke

Description

Style orienté objet (méthode) :

public bool CairoContext::inStroke ( string $x , string $y )

Style procédural :

bool cairo_in_stroke ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::lineTo

cairo_line_to

(PECL cairo >= 0.1.0)

CairoContext::lineTo -- cairo_line_toLe but de lineTo

Description

Style orienté objet (méthode) :

public void CairoContext::lineTo ( string $x , string $y )

Style procédural :

void cairo_line_to ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::mask

cairo_mask

(PECL cairo >= 0.1.0)

CairoContext::mask -- cairo_maskLe but de mask

Description

Style orienté objet (méthode) :

public void CairoContext::mask ( string $pattern )

Style procédural :

void cairo_mask ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::maskSurface

cairo_mask_surface

(PECL cairo >= 0.1.0)

CairoContext::maskSurface -- cairo_mask_surfaceLe but de maskSurface

Description

Style orienté objet (méthode) :

public void CairoContext::maskSurface ( string $surface [, string $x [, string $y ]] )

Style procédural :

void cairo_mask_surface ( CairoContext $context , CairoSurface $surface [, string $x [, string $y ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

surface

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::moveTo

cairo_move_to

(PECL cairo >= 0.1.0)

CairoContext::moveTo -- cairo_move_toLe but de moveTo

Description

Style orienté objet (méthode) :

public void CairoContext::moveTo ( string $x , string $y )

Style procédural :

void cairo_move_to ( CairoContext $context , string $x , string $y )

Commence un nouveau sous chemin. Après cet appel, le point courant sera (x, y).

Liste de paramètres

context

Un objet CairoContext.

x

Coordonnée en X de la nouvelle position.

y

Coordonnée en Y de la nouvelle position.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);

$c->setSourceRgb(000);
$c->paint();

// Se déplace de 10 pixels en suivant, et 10 pixels en dessous
$c->moveTo(1010);
$c->lineTo(9090);
$c->setLineWidth(2);
$c->setSourceRgb(111);
$c->stroke();

// Se déplace de 90 pixels en suivant, et 10 pixels en dessous
$c->moveTo(9010);
$c->lineTo(1090);
$c->setLineWidth(2);
$c->setSourceRgb(111);
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_moveTo.png');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php

$s 
cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE100100);
$c cairo_create($s);

cairo_set_source_rgb($c000);
cairo_paint($c);

// Se déplace de 10 pixels en suivant, et 10 pixels en dessous
cairo_move_to($c1010);
cairo_line_to($c9090);
cairo_set_line_width($c2);
cairo_set_source_rgb($c111);
cairo_stroke($c);

// Se déplace de 90 pixels en suivant, et 10 pixels en dessous
cairo_move_to($c9010);
cairo_line_to($c1090);
cairo_set_line_width($c2);
cairo_set_source_rgb($c111);
cairo_stroke($c);

cairo_surface_write_to_png($sdirname(__FILE__) . '/cairo_move_to.png');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::newPath

cairo_new_path

(PECL cairo >= 0.1.0)

CairoContext::newPath -- cairo_new_pathLe but de newPath

Description

Style orienté objet (méthode) :

public void CairoContext::newPath ( void )

Style procédural :

void cairo_new_path ( CairoContext $context )

Efface le chemin courant. Après cet appel, il n'y aura plus de chemin, ni de point courant.

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
// [...]
CairoContext::newPath();
?>

Exemple #2 Style procédural

<?php
// [...]
cairo_new_path($context);
?>

Voir aussi



CairoContext::newSubPath

cairo_new_sub_path

(PECL cairo >= 0.1.0)

CairoContext::newSubPath -- cairo_new_sub_pathLe but de newSubPath

Description

Style orienté objet (méthode) :

public void CairoContext::newSubPath ( void )

Style procédural :

void cairo_new_sub_path ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::paint

cairo_paint

(PECL cairo >= 0.1.0)

CairoContext::paint -- cairo_paintLe but de paint

Description

Style orienté objet (méthode) :

public void CairoContext::paint ( void )

Style procédural :

void cairo_paint ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::paintWithAlpha

cairo_paint_with_alpha

(PECL cairo >= 0.1.0)

CairoContext::paintWithAlpha -- cairo_paint_with_alphaLe but de paintWithAlpha

Description

Style orienté objet (méthode) :

public void CairoContext::paintWithAlpha ( string $alpha )

Style procédural :

void cairo_paint_with_alpha ( CairoContext $context , string $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

alpha

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::pathExtents

cairo_path_extents

(PECL cairo >= 0.1.0)

CairoContext::pathExtents -- cairo_path_extentsLe but de pathExtents

Description

Style orienté objet (méthode) :

public array CairoContext::pathExtents ( void )

Style procédural :

array cairo_path_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::popGroup

cairo_pop_group

(PECL cairo >= 0.1.0)

CairoContext::popGroup -- cairo_pop_groupLe but de popGroup purpose

Description

Style orienté objet (méthode) :

public void CairoContext::popGroup ( void )

Style procédural :

void cairo_pop_group ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::popGroupToSource

cairo_pop_group_to_source

(PECL cairo >= 0.1.0)

CairoContext::popGroupToSource -- cairo_pop_group_to_sourceLe but de popGroupToSource

Description

Style orienté objet (méthode) :

public void CairoContext::popGroupToSource ( void )

Style procédural :

void cairo_pop_group_to_source ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::pushGroup

cairo_push_group

(PECL cairo >= 0.1.0)

CairoContext::pushGroup -- cairo_push_groupLe but de pushGroup

Description

Style orienté objet (méthode) :

public void CairoContext::pushGroup ( void )

Style procédural :

void cairo_push_group ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::pushGroupWithContent

cairo_push_group_with_content

(PECL cairo >= 0.1.0)

CairoContext::pushGroupWithContent -- cairo_push_group_with_contentLe but de pushGroupWithContent

Description

Style orienté objet (méthode) :

public void CairoContext::pushGroupWithContent ( string $content )

Style procédural :

void cairo_push_group_with_content ( CairoContext $context , string $content )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

content

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::rectangle

cairo_rectangle

(PECL cairo >= 0.1.0)

CairoContext::rectangle -- cairo_rectangleLe but de rectangle

Description

Style orienté objet (méthode) :

public void CairoContext::rectangle ( string $x , string $y , string $width , string $height )

Style procédural :

void cairo_rectangle ( CairoContext $context , string $x , string $y , string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

width

height

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::relCurveTo

cairo_rel_curve_to

(PECL cairo >= 0.1.0)

CairoContext::relCurveTo -- cairo_rel_curve_toLe but de relCurveTo

Description

Style orienté objet (méthode) :

public void CairoContext::relCurveTo ( string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )

Style procédural :

void cairo_rel_curve_to ( CairoContext $context , string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x1

y1

x2

y2

x3

y3

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::relLineTo

cairo_rel_line_to

(PECL cairo >= 0.1.0)

CairoContext::relLineTo -- cairo_rel_line_toLe but de relLineTo

Description

Style orienté objet (méthode) :

public void CairoContext::relLineTo ( string $x , string $y )

Style procédural :

void cairo_rel_line_to ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::relMoveTo

cairo_rel_move_to

(PECL cairo >= 0.1.0)

CairoContext::relMoveTo -- cairo_rel_move_toLe but de relMoveTo

Description

Style orienté objet (méthode) :

public void CairoContext::relMoveTo ( string $x , string $y )

Style procédural :

void cairo_rel_move_to ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::resetClip

cairo_reset_clip

(PECL cairo >= 0.1.0)

CairoContext::resetClip -- cairo_reset_clipLe but de resetClip

Description

Style orienté objet (méthode) :

public void CairoContext::resetClip ( void )

Style procédural :

void cairo_reset_clip ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::restore

cairo_restore

(PECL cairo >= 0.1.0)

CairoContext::restore -- cairo_restoreLe but de restore

Description

Style orienté objet (méthode) :

public void CairoContext::restore ( void )

Style procédrual :

void cairo_restore ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::rotate

cairo_rotate

(PECL cairo >= 0.1.0)

CairoContext::rotate -- cairo_rotateLe but de rotate

Description

Style orienté objet (méthode) :

public void CairoContext::rotate ( string $angle )

Style procédural :

void cairo_rotate ( CairoContext $context , string $angle )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

angle

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::save

cairo_save

(PECL cairo >= 0.1.0)

CairoContext::save -- cairo_saveLe but de save

Description

Style orienté objet (méthode) :

public void CairoContext::save ( void )

Style procédural :

void cairo_save ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::scale

cairo_scale

(PECL cairo >= 0.1.0)

CairoContext::scale -- cairo_scaleLe but de scale

Description

Style orienté objet (méthode) :

public void CairoContext::scale ( string $x , string $y )

Style procédural :

void cairo_scale ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::selectFontFace

cairo_select_font_face

(PECL cairo >= 0.1.0)

CairoContext::selectFontFace -- cairo_select_font_faceLe but de selectFontFace

Description

Style orienté objet (méthode) :

public void CairoContext::selectFontFace ( string $family [, string $slant [, string $weight ]] )

Style procédural :

void cairo_select_font_face ( CairoContext $context , string $family [, string $slant [, string $weight ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

family

slant

weight

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoContext::setAntialias -- cairo_set_antialiasLe but de setAntialias

Description

Style orienté objet (méthode) :

public void CairoContext::setAntialias ([ string $antialias ] )

Style procédural :

void cairo_set_antialias ( CairoContext $context [, string $antialias ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

antialias

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setDash

cairo_set_dash

(PECL cairo >= 0.1.0)

CairoContext::setDash -- cairo_set_dashLe but de setDash

Description

Style orienté objet (méthode) :

public void CairoContext::setDash ( string $dashes [, string $offset ] )

Style procédural :

void cairo_set_dash ( CairoContext $context , array $dashes [, string $offset ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

dashes

offset

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setFillRule

cairo_set_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::setFillRule -- cairo_set_fill_ruleLe but de setFillRule

Description

Style orienté objet (méthode) :

public void CairoContext::setFillRule ( string $setting )

Style procédural :

void cairo_set_fill_rule ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setFontFace

cairo_set_font_face

(PECL cairo >= 0.1.0)

CairoContext::setFontFace -- cairo_set_font_faceLe but de setFontFace

Description

Style orienté objet (méthode) :

public void CairoContext::setFontFace ( CairoFontFace $fontface )

Style procédural :

void cairo_set_font_face ( CairoContext $context , CairoFontFace $fontface )

Définit la police de caractères pour un contexte donné.

Liste de paramètres

context

Un objet CairoContext représentant le contexte pour cette nouvelle police de caractères.

fontface

Un objet CairoFontFace.

Valeurs de retour

Aucune valeur retournée.

Exemples

Exemple #1 Style orienté objet

<?php
// Nouvelle surface avec un arrière-plan blanc
$s = new CairoImageSurface(CairoFormat::ARGB32300100);
$c = new CairoContext($s);
$c->setSourceRgb(111);
$c->paint();

// Dessine du texte
$c->setSourceRgb(000);
$c->moveTo(1060);

// Crée une nouvelle police de caratères
$f = new CairoToyFontFace("sans-serif"CairoFontSlant::NORMALCairoFontWeight::NORMAL);
$c->setFontFace($f);
$c->setFontSize(30);
$c->showText('Hello, World!');
$s->writeToPng(dirname(__FILE__) . '/setFontFace.png');
?>

Exemple #2 Style procédural

<?php
/* ... */
?>

Voir aussi



CairoContext::setFontMatrix

cairo_set_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::setFontMatrix -- cairo_set_font_matrixLe but de setFontMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::setFontMatrix ( string $matrix )

Style procédural :

void cairo_set_font_matrix ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setFontOptions

cairo_set_font_options

(PECL cairo >= 0.1.0)

CairoContext::setFontOptions -- cairo_set_font_optionsLe but de setFontOptions

Description

Style orienté objet (méthode) :

public void CairoContext::setFontOptions ( string $fontoptions )

Style procédural :

void cairo_set_font_options ( CairoContext $context , CairoFontOptions $fontoptions )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

fontoptions

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setFontSize

cairo_set_font_size

(PECL cairo >= 0.1.0)

CairoContext::setFontSize -- cairo_set_font_sizeLe but de setFontSize

Description

Style orienté objet (méthode) :

public void CairoContext::setFontSize ( string $size )

Style procédural :

void cairo_set_font_size ( CairoContext $context , string $size )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

size

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setLineCap

cairo_set_line_cap

(PECL cairo >= 0.1.0)

CairoContext::setLineCap -- cairo_set_line_capLe but de setLineCap

Description

Style orienté objet (méthode) :

public void CairoContext::setLineCap ( string $setting )

Style procédural :

void cairo_set_line_cap ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setLineJoin

cairo_set_line_join

(PECL cairo >= 0.1.0)

CairoContext::setLineJoin -- cairo_set_line_joinLe but de setLineJoin

Description

Style orienté objet (méthode) :

public void CairoContext::setLineJoin ( string $setting )

Style procédural :

void cairo_set_line_join ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setLineWidth

cairo_set_line_width

(PECL cairo >= 0.1.0)

CairoContext::setLineWidth -- cairo_set_line_widthLe but de setLineWidth

Description

Style orienté objet (méthode) :

public void CairoContext::setLineWidth ( string $width )

Style procédural :

void cairo_set_line_width ( CairoContext $context , string $width )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

width

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoContext::setMatrix -- cairo_set_matrixLe but de setMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::setMatrix ( string $matrix )

Style procédural :

void cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setMiterLimit

cairo_set_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::setMiterLimit -- cairo_set_miter_limitLe but de setMiterLimit

Description

Style orienté objet (méthode) :

public void CairoContext::setMiterLimit ( string $limit )

Style procédural :

void cairo_set_miter_limit ( CairoContext $context , string $limit )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

limit

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setOperator

cairo_set_operator

(PECL cairo >= 0.1.0)

CairoContext::setOperator -- cairo_set_operatorLe but de setOperator

Description

Style orienté objet (méthode) :

public void CairoContext::setOperator ( string $setting )

Style procédural :

void cairo_set_operator ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setScaledFont

cairo_set_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::setScaledFont -- cairo_set_scaled_fontLe but de setScaledFont

Description

Style orienté objet (méthode) :

public void CairoContext::setScaledFont ( string $scaledfont )

Style procédural :

void cairo_set_scaled_font ( CairoContext $context , CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

scaledfont

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setSource

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSource -- cairo_set_sourceLe but de setSource

Description

Style orienté objet (méthode) :

public void CairoContext::setSource ( string $pattern )

Style procédural :

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setSourceRGB

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGB -- cairo_set_sourceLe but de setSourceRGB

Description

Style orienté objet (méthode) :

public void CairoContext::setSourceRGB ( string $red , string $green , string $blue )

Style procédural :

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

red

green

blue

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setSourceRGBA

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGBA -- cairo_set_sourceLe but de setSourceRGBA

Description

Style orienté objet (méthode) :

public void CairoContext::setSourceRGBA ( string $red , string $green , string $blue , string $alpha )

Style procédural :

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

red

green

blue

alpha

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setSourceSurface

cairo_set_source_surface

(PECL cairo >= 0.1.0)

CairoContext::setSourceSurface -- cairo_set_source_surfaceLe but de setSourceSurface

Description

Style orienté objet (méthode) :

public void CairoContext::setSourceSurface ( string $surface [, string $x [, string $y ]] )

Style procédural :

void cairo_set_source_surface ( CairoContext $context , CairoSurface $surface [, string $x [, string $y ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

surface

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::setTolerance

cairo_set_tolerance

(PECL cairo >= 0.1.0)

CairoContext::setTolerance -- cairo_set_toleranceLe but de setTolerance

Description

Style orienté objet (méthode) :

public void CairoContext::setTolerance ( string $tolerance )

Style procédural :

void cairo_set_tolerance ( CairoContext $context , string $tolerance )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

tolerance

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoContext::showPage -- cairo_show_pageLe but de showPage

Description

Style orienté objet (méthode) :

public void CairoContext::showPage ( void )

Style procédural :

void cairo_show_page ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::showText

cairo_show_text

(PECL cairo >= 0.1.0)

CairoContext::showText -- cairo_show_textLe but de showText

Description

Style orienté objet (méthode) :

public void CairoContext::showText ( string $text )

Style procédural :

void cairo_show_text ( CairoContext $context , string $text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

text

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::status

cairo_status

(PECL cairo >= 0.1.0)

CairoContext::status -- cairo_statusLe but de status

Description

Style orienté objet (méthode) :

public int CairoContext::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::stroke

cairo_stroke

(PECL cairo >= 0.1.0)

CairoContext::stroke -- cairo_strokeLe but de stroke

Description

Style orienté objet (méthode) :

public void CairoContext::stroke ( void )

Style procédural :

void cairo_stroke ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::strokeExtents

cairo_stroke_extents

(PECL cairo >= 0.1.0)

CairoContext::strokeExtents -- cairo_stroke_extentsLe but de strokeExtents

Description

Style orienté objet (méthode) :

public array CairoContext::strokeExtents ( void )

Style procédural :

array cairo_stroke_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::strokePreserve

cairo_stroke_preserve

(PECL cairo >= 0.1.0)

CairoContext::strokePreserve -- cairo_stroke_preserveLe but de strokePreserve

Description

Style orienté objet (méthode) :

public void CairoContext::strokePreserve ( void )

Style procédural :

void cairo_stroke_preserve ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoContext::textExtents -- cairo_text_extentsLe but de textExtents

Description

Style orienté objet (méthode) :

public array CairoContext::textExtents ( string $text )

Style procédural :

array cairo_text_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

text

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::textPath

cairo_text_path

(PECL cairo >= 0.1.0)

CairoContext::textPath -- cairo_text_pathLe but de textPath

Description

Style orienté objet

public void CairoContext::textPath ( string $string )

Style procédural

void cairo_text_path ( CairoContext $context , string $text )

Ajoute les chemins fermés pour le texte dans le chemin courant. Le chemin généré, si rempli, a un effet similaire à CairoContext::showText().

La conversion et le positionnement de texte sont effectués de manière similaire à CairoContext::showText().

Comme CairoContext::showText(), après cet appel le point courant est déplacé vers l'origine du prochain glyph. Ceci permet le chainage des appels à CairoContext::showText() sans avoir à affecter le point courant entre les appels.

Note: La méthode CairoContext::textPath() fait parti de ce que les concepteurs de cairo appelent l'API de texte "toy". Cela convient aux démos et aux programmes simples, mais n'est pas adéquat pour les applications plus sérieuses ou complexes. Voyez CairoContext::glyphPath() pour l'API "réelle" de chemin de texte avec cairo.

Liste de paramètres

context

text

Description...

string

Description...

Valeurs de retour

Description...

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::transform

cairo_transform

(PECL cairo >= 0.1.0)

CairoContext::transform -- cairo_transformLe but de transform

Description

Style orienté objet (méthode) :

public void CairoContext::transform ( string $matrix )

Style procédural :

void cairo_transform ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoContext::translate -- cairo_translateLe but de translate

Description

Style orienté objet (méthode) :

public void CairoContext::translate ( string $x , string $y )

Style procédural :

void cairo_translate ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::userToDevice

cairo_user_to_device

(PECL cairo >= 0.1.0)

CairoContext::userToDevice -- cairo_user_to_deviceLe but de userToDevice

Description

Style orienté objet (méthode) :

public array CairoContext::userToDevice ( string $x , string $y )

Style procédural :

array cairo_user_to_device ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



CairoContext::userToDeviceDistance

cairo_user_to_device_distance

(PECL cairo >= 0.1.0)

CairoContext::userToDeviceDistance -- cairo_user_to_device_distanceLe but de userToDeviceDistance

Description

Style orienté objet (méthode) :

public array CairoContext::userToDeviceDistance ( string $x , string $y )

Style procédural :

array cairo_user_to_device_distance ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Sommaire



La classe CairoException

Introduction

La classe Exception, utilisée par les méthodes et fonctions Cairo pour lancer des exceptions.

Synopsis de la classe

CairoException extends Exception {
/* Propriétés */
/* Méthodes héritées */
}

Propriétés

message

Description...

code

Description...

file

Description...

line

Description...



La classe CairoStatus

Introduction

CairoStatus est utilisée pour indiquer les erreurs survenant lors de l'utilisation de Cairo. Dans la plupart des cas, ce type d'objet est retourné directement par les fonctions, mais lors de l'utilisation de CairoContext, la dernière erreur, si elle existe, est stockée dans l'objet et peut être retrouvée avec la méthode CairoContext::status() ou la fonction cairo_status(). De nouvelles entrées peuvent être ajoutées dans de futures versions.

Utilisez la méthode Cairo::statusToString() ou la fonction cairo_status_to_string() pour récupérer une représentation humainement lisible d'un message d'erreur.

Synopsis de la classe

CairoStatus {
/* Constantes */
const integer CairoStatus::SUCCESS = 0 ;
const integer CairoStatus::NO_MEMORY = 1 ;
const integer CairoStatus::INVALID_RESTORE = 2 ;
const integer CairoStatus::INVALID_POP_GROUP = 3 ;
const integer CairoStatus::NO_CURRENT_POINT = 4 ;
const integer CairoStatus::INVALID_MATRIX = 5 ;
const integer CairoStatus::INVALID_STATUS = 6 ;
const integer CairoStatus::NULL_POINTER = 7 ;
const integer CairoStatus::INVALID_STRING = 8 ;
const integer CairoStatus::INVALID_PATH_DATA = 9 ;
const integer CairoStatus::READ_ERROR = 10 ;
const integer CairoStatus::WRITE_ERROR = 11 ;
const integer CairoStatus::SURFACE_FINISHED = 12 ;
const integer CairoStatus::INVALID_CONTENT = 15 ;
const integer CairoStatus::INVALID_FORMAT = 16 ;
const integer CairoStatus::INVALID_VISUAL = 17 ;
const integer CairoStatus::FILE_NOT_FOUND = 18 ;
const integer CairoStatus::INVALID_DASH = 19 ;
const integer CairoStatus::INVALID_DSC_COMMENT = 20 ;
const integer CairoStatus::INVALID_INDEX = 21 ;
const integer CairoStatus::TEMP_FILE_ERROR = 23 ;
const integer CairoStatus::INVALID_STRIDE = 24 ;
}

Constantes pré-définies

Types de nœud CairoStatus

CairoStatus::SUCCESS

Aucune erreur n'est survenue.

CairoStatus::NO_MEMORY

Dépassement de la mémoire.

CairoStatus::INVALID_RESTORE

cairo_restore() appelé sans correspondance avec cairo_save().

CairoStatus::INVALID_POP_GROUP

Aucun groupe sauvegardé à restaurer.

CairoStatus::NO_CURRENT_POINT

Aucun point actuellement défini.

CairoStatus::INVALID_MATRIX

Matrice invalide (non inversible).

CairoStatus::INVALID_STATUS

Valeur invalide pour un CairoStatus d'entrée.

CairoStatus::NULL_POINTER

Pointeur nul.

CairoStatus::INVALID_STRING

Chaîne d'entrée non UTF-8.

CairoStatus::INVALID_PATH_DATA

Chemin d'entrée invalide.

CairoStatus::READ_ERROR

Erreur lors de la lecture depuis le flux d'entrée.

CairoStatus::WRITE_ERROR

Erreur lors de l'écriture du flux de sortie.

CairoStatus::SURFACE_FINISHED

Surface cible terminée.

CairoStatus::SURFACE_TYPE_MISMATCH

Le type de surface n'est pas approprié pour l'opération.

CairoStatus::PATTERN_TYPE_MISMATCH

Le type de masque n'est pas approprié pour l'opération.

CairoStatus::INVALID_CONTENT

Valeur invalide pour un CairoContent d'entrée.

CairoStatus::INVALID_FORMAT

Valeur invalide pour un CairoFormat d'entrée.

CairoStatus::INVALID_VISUAL

Valeur invalide pour un visuel d'entrée.

CairoStatus::FILE_NOT_FOUND

Fichier non trouvé.

CairoStatus::INVALID_DASH

Valeur invalide pour la configuration du dash

CairoStatus::INVALID_DSC_COMMENT

Valeur invalide pour un commentaire DSC.

CairoStatus::INVALID_INDEX

Index invalide passé.

CairoStatus::CLIP_NOT_REPRESENTABLE

Région du clip non représentable dans le format désiré.

CairoStatus::TEMP_FILE_ERROR

Erreur lors de la création ou l'écriture du fichier temporaire.

CairoStatus::INVALID_STRIDE

Valeur invalide pour CairoStride.



La classe CairoSurface

Introduction

C'est la classe de base pour tous les autres types de Surface. CairoSurface est un type abstrait représentant toutes les cibles différentes utilisées par Cairo pour y effectuer un rendu. Le rendu actuel est effectué en utilisant un objet CairoContext.

Synopsis de la classe

CairoSurface {
/* Méthodes */
__construct ( void )
public void copyPage ( void )
public void createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void finish ( void )
public void flush ( void )
public int getContent ( void )
public array getDeviceOffset ( void )
public void getFontOptions ( void )
public int getType ( void )
public void markDirty ( void )
public void markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void setDeviceOffset ( string $x , string $y )
public void setFallbackResolution ( string $x , string $y )
public void showPage ( void )
public int status ( void )
public void writeToPng ( string $file )
}

CairoSurface::__construct

(PECL cairo >= 0.1.0)

CairoSurface::__constructLe but de __construct

Description

CairoSurface::__construct ( void )

CairoSurface est un type abstrait, et, en tant que tel, ne doit pas être instancié dans vos scripts PHP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur de retour.

Notes

Note:

Si vous utilisez une version de PHP antérieure à 5.3, vous devez détruire l'objet CairoContext associé avec un objet CairoSurface après avoir détruit l'objet CairoSurface. Sinon, vous aurez une fuite mémoire.

Voir aussi



CairoSurface::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoSurface::copyPage -- cairo_copy_pageLe but de copyPage

Description

Style orienté objet (méthode) :

public void CairoSurface::copyPage ( void )

Style procédural :

void cairo_copy_page ( CairoContext $context )

Émet la page courante pour les moteurs supportant les pages multiples, sans pour autant l'effacer et ainsi, le contenu de la page courante sera conservé pour la page suivante. Utilisez CairoSurface::showPage() si vous voulez récupérer une page vide après son émission.

Liste de paramètres

context

Un objet CairoContext

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::createSimilar

(PECL cairo >= 0.1.0)

CairoSurface::createSimilarLe but de createSimilar

Description

public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )

Crée une nouvelle surface le plus compatible possible avec la surface existante. Par exemple, la nouvelle surface aura la même résolution mais aussi la même police de caractères. Générallement, la nouvelle surface utilisera également le même moteur, sauf si d'autres raisons l'en empêche. Le type de la surface retourné pourra être examiné avec la méthode CairoSurface::getType(). Initialement, le contenu de la surface sera positionné à 0 (transparent si le contenu a de la transparence, noir sinon).

Liste de paramètres

other

Une surface existante utilisée pour sélectionner le moteur de la nouvelle surface

content

Le contenu de la nouvelle surface. Voir la classe CairoContent pour les valeurs possibles.

width

Largeur de la nouvelle surface (en utilisant l'unité d'espacement définie).

height

Hauteur de la nouvelle surface (en utilisant l'unité d'espacement définie).

Valeurs de retour

Un nouvel objet CairoSurface

Exemples

Exemple #1 Exemple avec CairoSurface::createSimilar()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • CairoContent()



CairoSurface::finish

(PECL cairo >= 0.1.0)

CairoSurface::finishLe but de finish

Description

public void CairoSurface::finish ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::finish()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::flush

(PECL cairo >= 0.1.0)

CairoSurface::flushLe but de flush

Description

public void CairoSurface::flush ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::flush()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::getContent

(PECL cairo >= 0.1.0)

CairoSurface::getContentLe but de getContent

Description

public int CairoSurface::getContent ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::getContent()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::getDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::getDeviceOffsetLe but de getDeviceOffset

Description

public array CairoSurface::getDeviceOffset ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::getDeviceOffset()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoSurface::getFontOptions -- cairo_get_font_optionsLe but de getFontOptions

Description

Style orienté objet (méthode) :

public void CairoSurface::getFontOptions ( void )

Style procédural :

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::getType

(PECL cairo >= 0.1.0)

CairoSurface::getTypeLe but de getType

Description

public int CairoSurface::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::getType()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::markDirty

(PECL cairo >= 0.1.0)

CairoSurface::markDirtyLe but de markDirty

Description

public void CairoSurface::markDirty ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::markDirty()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::markDirtyRectangle

(PECL cairo >= 0.1.0)

CairoSurface::markDirtyRectangleLe but de markDirtyRectangle

Description

public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

y

width

height

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoSurface::markDirtyRectangle()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::setDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::setDeviceOffsetLe but de setDeviceOffset

Description

public void CairoSurface::setDeviceOffset ( string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

y

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::setDeviceOffset()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::setFallbackResolution

(PECL cairo >= 0.1.0)

CairoSurface::setFallbackResolutionLe but de setFallbackResolution

Description

public void CairoSurface::setFallbackResolution ( string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

y

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::setFallbackResolution()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoSurface::showPage -- cairo_show_pageLe but de showPage

Description

Object oriented style (méthode) :

public void CairoSurface::showPage ( void )

Procedural style:

void cairo_show_page ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::status

cairo_status

(PECL cairo >= 0.1.0)

CairoSurface::status -- cairo_statusLe but de status

Description

Style orienté objet (méthode) :

public int CairoSurface::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurface::writeToPng

(PECL cairo >= 0.1.0)

CairoSurface::writeToPngLe but de writeToPng

Description

public void CairoSurface::writeToPng ( string $file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::writeToPng()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoSvgSurface

Introduction

Classe spécifique aux surfaces Svg.

Synopsis de la classe

CairoSvgSurface extends CairoSurface {
/* Méthodes */
__construct ( string $file , float $width , float $height )
public static array getVersions ( void )
public void restrictToVersion ( string $version )
public static string versionToString ( int $version )
/* Méthodes héritées */
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

CairoSvgSurface::__construct

(PECL cairo >= 0.1.0)

CairoSvgSurface::__constructLe but de __construct

Description

CairoSvgSurface::__construct ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSvgSurface::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSvgSurface::getVersions

cairo_svg_surface_get_versions

(PECL cairo >= 0.1.0)

CairoSvgSurface::getVersions -- cairo_svg_surface_get_versionsRécupère la liste des versions SVG supportées

Description

Style orienté objet (méthode) :

public static array CairoSvgSurface::getVersions ( void )

Style procédural :

array cairo_svg_get_versions ( void )

Retourne un tableau indexé numériquement contenant le contenu de la constante CairoSvgVersion. Afin de récupérer la valeur de chaque élément, utilisez la méthode CairoSvgSurface::versionToString().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé numériquement de valeurs entières.

Exemples

Exemple #1 Exemple avec CairoSvgSurface::getVersions()

<?php
/* Récupère la liste des versions */
$versions CairoSvgSurface::getVersions();
var_dump($versions);

/* Affiche le nom de chaque version */
foreach($versions as $id) {
    echo 
CairoSvgSurface::versionToString($id), PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Exemple #2 Procedural style

<?php
/* Récupère la liste des versions */
$versions cairo_svg_surface_get_versions();
var_dump($versions);

/* Affiche le nom de chaque version */
foreach($versions as $id) {
    echo 
cairo_svg_surface_version_to_string($id), PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Voir aussi



CairoSvgSurface::restrictToVersion

(PECL cairo >= 0.1.0)

CairoSvgSurface::restrictToVersionLe but de restrictToVersion

Description

public void CairoSvgSurface::restrictToVersion ( string $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

version

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSvgSurface::restrictToVersion()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSvgSurface::versionToString

(PECL cairo >= 0.1.0)

CairoSvgSurface::versionToStringLe but de versionToString

Description

public static string CairoSvgSurface::versionToString ( int $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

version

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoSvgSurface::versionToString()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoImageSurface

Introduction

CairoImageSurface fournit la possibilité de transmettre à la mémoire les buffers alloués soit par Cairo, soit par le code appelant. Les formats d'image supportés sont ceux définis dans la classe CairoFormat.

Synopsis de la classe

CairoImageSurface extends CairoSurface {
/* Méthodes */
__construct ( int $format , int $width , int $height )
public static void createForData ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )
public staticCairoImageSurface createFromPng ( string $file )
public string getData ( void )
public int getFormat ( void )
public int getHeight ( void )
public int getStride ( void )
public int getWidth ( void )
/* Méthodes héritées */
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

CairoImageSurface::__construct

(PECL cairo >= 0.1.0)

CairoImageSurface::__constructCrée un nouvel objet CairoImageSurface

Description

CairoImageSurface::__construct ( int $format , int $width , int $height )

Crée un nouvel objet CairoImageSuface de type format.

Liste de paramètres

format

Peut être un format parmi ceux définis par CairoFormat

width

La largeur de la surface de l'image

height

La hauteur de la surface de l'image

Valeurs de retour

Un nouvel objet CairoImageSurface

Exemples

Exemple #1 Exemple avec CairoImageSurface::__construct()

<?php

// Crée une image au format ARGB32 de dimension 50x50
$surface = new CairoImageSurface(CairoFormat::ARGB3250,50);

?>

Voir aussi



CairoImageSurface::createForData

(PECL cairo >= 0.1.0)

CairoImageSurface::createForDataLe but de createForData

Description

public static void CairoImageSurface::createForData ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

format

width

height

stride

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoImageSurface::createForData()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoImageSurface::createFromPng

(PECL cairo >= 0.1.0)

CairoImageSurface::createFromPngCrée un nouvel CairoImageSurface à partir d'une image PNG

Description

public staticCairoImageSurface CairoImageSurface::createFromPng ( string $file )

Crée un nouvel CairoImageSurface à partir d'une image PNG.

Cette méthode doit être appelée de façon statique.

Liste de paramètres

file

Chemin vers le fichier image PNG

Valeurs de retour

Un objet CairoImageSurface.

Exemples

Exemple #1 Exemple avec CairoImageSurface::createFromPng()

<?php

$surface 
CairoImageSurface::createFromPng('/chemin/vers/fichier/image.png');

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoImageSurface::getData

(PECL cairo >= 0.1.0)

CairoImageSurface::getDataRécupère les données de l'image, sous la forme d'une chaîne de caractères

Description

public string CairoImageSurface::getData ( void )

Récupère les données de l'image pour une surface donnée, ou NULL si la surface n'est pas une surface de l'image valide, ou si CairoContext::finish() a été appelé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données de l'image, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getData()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoImageSurface::getFormat

(PECL cairo >= 0.1.0)

CairoImageSurface::getFormatRécupère le format de l'image

Description

public int CairoImageSurface::getFormat ( void )

Récupère le format de l'image, suivant les formats définis par CairoFormat.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un format d'image, parmi ceux définis par CairoFormat.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getFormat()

<?php

$surface 
= new CairoImageSurface(CairoFormat::ARGB325050);

var_dump($surface->getFormat()); // 0

$surface2 = new CairoImageSurface(CairoFormat::A85050);

var_dump($surface2->getFormat()); // 2

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
int(2)

Voir aussi



CairoImageSurface::getHeight

(PECL cairo >= 0.1.0)

CairoImageSurface::getHeightRécupère la hauteur d'un CairoImageSurface

Description

public int CairoImageSurface::getHeight ( void )

Récupère la hauteur d'un CairoImageSurface.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La hauteur d'un objet CairoImageSurface.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getHeight()

<?php
// Création d'une nouvelle surface pour l'image
$surface = new CairoImageSurface(CairoFormat::ARGB328050);

// Récupère la hauteur
var_dump($surface->getHeight());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(50)

Voir aussi



CairoImageSurface::getStride

(PECL cairo >= 0.1.0)

CairoImageSurface::getStrideLe but de getStride

Description

public int CairoImageSurface::getStride ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoImageSurface::getStride()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoImageSurface::getWidth

(PECL cairo >= 0.1.0)

CairoImageSurface::getWidthRécupère la largeur d'un CairoImageSurface

Description

public int CairoImageSurface::getWidth ( void )

Récupère la largeur d'un CairoImageSurface.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur d'un objet CairoImageSurface.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getWidth()

<?php
// Création d'une nouvelle surface pour une image
$surface = new CairoImageSurface(CairoFormat::ARGB328050);

// Récupère la largeur
var_dump($surface->getWidth());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(80)

Voir aussi


Sommaire



La classe CairoPdfSurface

Introduction

Synopsis de la classe

CairoPdfSurface extends CairoSurface {
/* Méthodes */
__construct ( string $file , float $width , float $height )
public void setSize ( string $width , string $height )
/* Méthodes héritées */
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

CairoPdfSurface::__construct

(PECL cairo >= 0.1.0)

CairoPdfSurface::__constructLe but de __construct

Description

CairoPdfSurface::__construct ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPdfSurface::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPdfSurface::setSize

(PECL cairo >= 0.1.0)

CairoPdfSurface::setSizeLe but de setSize

Description

public void CairoPdfSurface::setSize ( string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

width

height

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPdfSurface::setSize()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoPsSurface

Introduction

Synopsis de la classe

CairoPsSurface extends CairoSurface {
/* Méthodes */
__construct ( string $file , float $width , float $height )
public void dscBeginPageSetup ( void )
public void dscBeginSetup ( void )
public void dscComment ( string $comment )
public bool getEps ( void )
public static array getLevels ( void )
public static string levelToString ( int $level )
public void restrictToLevel ( string $level )
public void setEps ( string $level )
public void setSize ( string $width , string $height )
/* Méthodes héritées */
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

CairoPsSurface::__construct

(PECL cairo >= 0.1.0)

CairoPsSurface::__constructLe but de __construct

Description

CairoPsSurface::__construct ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::dscBeginPageSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginPageSetupLe but de dscBeginPageSetup

Description

public void CairoPsSurface::dscBeginPageSetup ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::dscBeginPageSetup()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::dscBeginSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginSetupLe but de dscBeginSetup

Description

public void CairoPsSurface::dscBeginSetup ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::dscBeginSetup()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::dscComment

(PECL cairo >= 0.1.0)

CairoPsSurface::dscCommentLe but de dscComment

Description

public void CairoPsSurface::dscComment ( string $comment )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

comment

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::dscComment()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::getEps

(PECL cairo >= 0.1.0)

CairoPsSurface::getEpsLe but de getEps

Description

public bool CairoPsSurface::getEps ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::getEps()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::getLevels

(PECL cairo >= 0.1.0)

CairoPsSurface::getLevelsLe but de getLevels

Description

public static array CairoPsSurface::getLevels ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::getLevels()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::levelToString

(PECL cairo >= 0.1.0)

CairoPsSurface::levelToStringLe but de levelToString

Description

public static string CairoPsSurface::levelToString ( int $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::levelToString()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::restrictToLevel

(PECL cairo >= 0.1.0)

CairoPsSurface::restrictToLevelLe but de restrictToLevel

Description

public void CairoPsSurface::restrictToLevel ( string $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::restrictToLevel()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::setEps

(PECL cairo >= 0.1.0)

CairoPsSurface::setEpsLe but de setEps

Description

public void CairoPsSurface::setEps ( string $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::setEps()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPsSurface::setSize

(PECL cairo >= 0.1.0)

CairoPsSurface::setSizeLe but de setSize

Description

public void CairoPsSurface::setSize ( string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

width

height

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::setSize()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoSurfaceType

Introduction

Synopsis de la classe

CairoSurfaceType {
/* Constantes */
const integer CairoSurfaceType::IMAGE = 0 ;
const integer CairoSurfaceType::PDF = 1 ;
const integer CairoSurfaceType::PS = 2 ;
const integer CairoSurfaceType::XLIB = 3 ;
const integer CairoSurfaceType::XCB = 4 ;
const integer CairoSurfaceType::GLITZ = 5 ;
const integer CairoSurfaceType::QUARTZ = 6 ;
const integer CairoSurfaceType::WIN32 = 7 ;
const integer CairoSurfaceType::BEOS = 8 ;
const integer CairoSurfaceType::DIRECTFB = 9 ;
const integer CairoSurfaceType::SVG = 10 ;
const integer CairoSurfaceType::OS2 = 11 ;
const integer CairoSurfaceType::WIN32_PRINTING = 12 ;
const integer CairoSurfaceType::QUARTZ_IMAGE = 13 ;
}

Constantes pré-définies

Types de nœud CairoSurfaceType

CairoSurfaceType::IMAGE

CairoSurfaceType::PDF

CairoSurfaceType::PS

CairoSurfaceType::XLIB

CairoSurfaceType::XCB

CairoSurfaceType::GLITZ

CairoSurfaceType::QUARTZ

CairoSurfaceType::WIN32

CairoSurfaceType::BEOS

CairoSurfaceType::DIRECTFB

CairoSurfaceType::SVG

CairoSurfaceType::OS2

CairoSurfaceType::WIN32_PRINTING

CairoSurfaceType::QUARTZ_IMAGE



La classe CairoFontFace

Introduction

La classe abstraite CairoFontFace représente une police particulière d'une épaisseur particulière, avec une inclinaison et d'autres caractéristiques mais aucune transformation ni taille.

Note : Cette classe ne peut être instanciée directement, elle est créée par les méthodes CairoContext::getFontFace() ou cairo_scaled_font_get_font_face().

Synopsis de la classe

CairoFontFace {
/* Méthodes */
__construct ( void )
public int getType ( void )
public int status ( void )
}

CairoFontFace::__construct

(PECL cairo >= 0.1.0)

CairoFontFace::__constructCrée un nouvel objet CairoFontFace

Description

CairoFontFace::__construct ( void )

La classe CairoFontFace représente une police particulière, avec une hauteur, une inclinaison et d'autres caractéristiques particuliers, mais aucune transformation ou taille.

Note : Cette classe ne peut être instanciée directement. Elle sera crée par la méthode CairoContext::getFontFace() ou la méthode cairo_scaled_font_get_font_face()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

CairoFontFace

Exemples

Exemple #1 Exemple avec CairoFontFace::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Class::Method()



CairoFontFace::getType

(PECL cairo >= 0.1.0)

CairoFontFace::getTypeRécupère le type de la police

Description

public int CairoFontFace::getType ( void )

Retourne le type de moteur utilisé pour créer la police. Reportez-vous aux constantes de la classe CairoFontType pour les types disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un type de police, qui peut être n'importe quelle constante de la classe CairoFontType.

Exemples

Exemple #1 Exemple avec CairoFontFace::getType()

<?php

// Crée la police
$fontface = new CairoToyFontFace('sans-serif');

// Récupère son type
var_dump($fontface->getType());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)

Voir aussi

  • Classname::Method()



CairoFontFace::status

cairo_font_face_status

(PECL cairo >= 0.1.0)

CairoFontFace::status -- cairo_font_face_statusVérifie les erreurs CairoFontFace

Description

Style orienté objet (méthode) :

public int CairoFontFace::status ( void )

Style procédural :

int cairo_font_face_status ( CairoFontFace $fontface )

Vérifie si une erreur est survenue sur cette police.

Liste de paramètres

fontface

Un objet CairoFontFace valide

Valeurs de retour

CAIRO_STATUS_SUCCESS ou une autre erreur comme CAIRO_STATUS_NO_MEMORY.

Exemples

Exemple #1 Style orienté objet

<?php

// Crée la police
$fontface = new CairoToyFontFace('sans-serif');

// Récupère son statut
var_dump($fontface->status()); // doit correspondre à la valeur de la constante CAIRO_STATUS_SUCCESS

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)

Exemple #2 Style procédural

<?php

// Crée la police
$fontface = new CairoToyFontFace('sans-serif');

// Récupère son statut
var_dump(cairo_font_face_status($fontface)); // doit correspondre à la valeur de la constante CAIRO_STATUS_SUCCESS

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)

Voir aussi

  • Classname::Method()


Sommaire



La classe CairoFontOptions

Introduction

Une structure opaque contenant toutes les options utilisées lors du rendu des polices de caractères.

Les fonctionnalités individuelles de cairo_font_options_t peuvent être définies en utilisant les fonctions nommées cairo_font_options_set_feature_name et cairo_font_options_get_feature_name, comme cairo_font_options_set_antialias() et cairo_font_options_get_antialias().

De nouvelles fonctionnalités devraient être ajoutées à la classe CairoFontOptions dans le futur. Pour ces raisons, CairoFontOptions::copy(), CairoFontOptions::equal(), CairoFontOptions::merge(), CairoFontOptions::hash() (cairo_font_options_copy(), cairo_font_options_equal(), cairo_font_options_merge(), and cairo_font_options_hash() en mode procédural) doivent être utilisées pour copier, pour vérifier l'égalité, pour fusionner, ou pour calculer la valeur de hachage des objets CairoFontOptions.

Synopsis de la classe

CairoFontOptions {
/* Méthodes */
__construct ( void )
public bool equal ( string $other )
public int getAntialias ( void )
public int getHintMetrics ( void )
public int getHintStyle ( void )
public int getSubpixelOrder ( void )
public int hash ( void )
public void merge ( string $other )
public void setAntialias ( string $antialias )
public void setHintMetrics ( string $hint_metrics )
public void setHintStyle ( string $hint_style )
public void setSubpixelOrder ( string $subpixel_order )
public int status ( void )
}

CairoFontOptions::__construct

(PECL cairo >= 0.1.0)

CairoFontOptions::__constructLe but de __construct

Description

CairoFontOptions::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::equal

(PECL cairo >= 0.1.0)

CairoFontOptions::equalLe but de equal

Description

public bool CairoFontOptions::equal ( string $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

other

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::equal()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::getAntialias -- cairo_get_antialiasLe but de getAntialias

Description

Style orienté objet (méthode) :

public int CairoFontOptions::getAntialias ( void )

Style procédural :

int cairo_get_antialias ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::getHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintMetricsLe but de getHintMetrics

Description

public int CairoFontOptions::getHintMetrics ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::getHintMetrics()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::getHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintStyleLe but de getHintStyle

Description

public int CairoFontOptions::getHintStyle ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::getHintStyle()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::getSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::getSubpixelOrderLe but de getSubpixelOrder

Description

public int CairoFontOptions::getSubpixelOrder ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::getSubpixelOrder()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::hash

(PECL cairo >= 0.1.0)

CairoFontOptions::hashLe but de hash

Description

public int CairoFontOptions::hash ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoFontOptions::hash()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::merge

(PECL cairo >= 0.1.0)

CairoFontOptions::mergeLe but de merge

Description

public void CairoFontOptions::merge ( string $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

other

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoFontOptions::merge()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::setAntialias -- cairo_set_antialiasLe but de setAntialias

Description

Style procédural (méthode) :

public void CairoFontOptions::setAntialias ( string $antialias )

Style procédural :

void cairo_set_antialias ( CairoContext $context [, string $antialias ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

antialias

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::setHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintMetricsLe but de setHintMetrics

Description

public void CairoFontOptions::setHintMetrics ( string $hint_metrics )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

hint_metrics

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::setHintMetrics()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::setHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintStyleLe but de setHintStyle

Description

public void CairoFontOptions::setHintStyle ( string $hint_style )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

hint_style

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::setHintStyle()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::setSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::setSubpixelOrderLe but de setSubpixelOrder

Description

public void CairoFontOptions::setSubpixelOrder ( string $subpixel_order )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

subpixel_order

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::setSubpixelOrder()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoFontOptions::status

cairo_status

(PECL cairo >= 0.1.0)

CairoFontOptions::status -- cairo_statusLe but de status

Description

Style orienté objet (méthode) :

public int CairoFontOptions::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoFontSlant

Introduction

Spécifie les variantes d'une police basée sur son inclinaison.

Synopsis de la classe

CairoFontSlant {
/* Constantes */
const integer CairoFontSlant::NORMAL = 0 ;
const integer CairoFontSlant::ITALIC = 1 ;
const integer CairoFontSlant::OBLIQUE = 2 ;
}

Constantes pré-définies

Types de nœud CairoFontSlant

CairoFontSlant::NORMAL

Style de police vertical.

CairoFontSlant::ITALIC

Style de police en italique.

CairoFontSlant::OBLIQUE

Style de police en oblique.



La classe CairoFontType

Introduction

La classe CairoFontType est une classe abstraite finale qui contient les constantes utilisées pour décrire le type d'un objet CairoFontFace ou CairoScaledFont donné. Les types de police sont aussi connus comme "font backends" dans Cairo.

Le type d'un objet CairoFontFace est déterminé par la façon dont il a été créé, un exemple pourrait être CairoToyFontFace::__construct(). Le type CairoFontFace peut être interrogé avec la méthode CairoFontFace::getType() ou la fonction cairo_font_face_get_type().

Les diverses fonctions CairoFontFace peuvent être utilisées avec une police de caractère de n'importe quel type.

Le type d'un objet CairoScaledFont est déterminé par le type de l'objet CairoFontFace passé à la méthode CairoScaledFont::__construct() ou la fonction cairo_scaled_font_create(). Le type de police mis à l'échelle peut être interrogé avec lé méthode CairoScaledFont::getType() ou la fonction cairo_scaled_font_get_type().

Synopsis de la classe

CairoFontType {
/* Constantes */
const integer CairoFontType::TOY = 0 ;
const integer CairoFontType::FT = 1 ;
const integer CairoFontType::WIN32 = 2 ;
const integer CairoFontType::QUARTZ = 3 ;
}

Constantes pré-définies

Types de nœud CairoFontType

CairoFontType::TOY

La police a été créée en utilisant l'API CairoToyFont.

CairoFontType::FT

La police est de type CairoFreeType.

CairoFontType::WIN32

La police est de type Win32.

CairoFontType::QUARTZ

La police est de type Quartz.

CairoFontType::USER

La police a été créée en utilisant l'API utilisateur Cairo.



La classe CairoFontWeight

Introduction

Spécifie les variantes de la police en fonction de leur poids.

Synopsis de la classe

CairoFontWeight {
/* Constantes */
const integer CairoFontWeight::NORMAL = 0 ;
const integer CairoFontWeight::BOLD = 1 ;
}

Constantes pré-définies

Types de nœud CairoFontWeight

CairoFontWeight::NORMAL

Poids normal.

CairoFontWeight::BOLD

Police en gras.



La classe CairoScaledFont

Introduction

Synopsis de la classe

CairoScaledFont {
/* Méthodes */
__construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )
public array extents ( void )
public CairoMatrix getCtm ( void )
public void getFontFace ( void )
public void getFontMatrix ( void )
public void getFontOptions ( void )
public void getScaleMatrix ( void )
public int getType ( void )
public array glyphExtents ( string $glyphs )
public int status ( void )
public array textExtents ( string $text )
}

CairoScaledFont::__construct

(PECL cairo >= 0.1.0)

CairoScaledFont::__constructLe but de __construct

Description

CairoScaledFont::__construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

font_face

matrix

ctm

options

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::extents

(PECL cairo >= 0.1.0)

CairoScaledFont::extentsLe but de extents

Description

public array CairoScaledFont::extents ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::extents()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::getCtm

(PECL cairo >= 0.1.0)

CairoScaledFont::getCtmLe but de getCtm

Description

public CairoMatrix CairoScaledFont::getCtm ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoScaledFont::getCtm()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontFace -- cairo_get_font_faceLe but de getFontFace

Description

Style orienté objet (méthode) :

public void CairoScaledFont::getFontFace ( void )

Style procédural :

void cairo_get_font_face ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontMatrix -- cairo_get_font_matrixLe but de getFontMatrix

Description

Style orienté objet (méthode) :

public void CairoScaledFont::getFontMatrix ( void )

Style procédural :

void cairo_get_font_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontOptions -- cairo_get_font_optionsLe but de getFontOptions

Description

Style orienté objet (méthode) :

public void CairoScaledFont::getFontOptions ( void )

Style procédural :

void cairo_get_font_options ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::getScaleMatrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getScaleMatrixLe but de getScaleMatrix

Description

public void CairoScaledFont::getScaleMatrix ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::getScaleMatrix()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::getType

(PECL cairo >= 0.1.0)

CairoScaledFont::getTypeLe but de getType

Description

public int CairoScaledFont::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::getType()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::glyphExtents

(PECL cairo >= 0.1.0)

CairoScaledFont::glyphExtentsLe but de glyphExtents

Description

public array CairoScaledFont::glyphExtents ( string $glyphs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

glyphs

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::glyphExtents()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::status

cairo_status

(PECL cairo >= 0.1.0)

CairoScaledFont::status -- cairo_statusLe but de status

Description

Style orienté objet (méthode) :

public int CairoScaledFont::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoScaledFont::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoScaledFont::textExtents -- cairo_text_extentsLe but de textExtents

Description

Style orienté objet (méthode) :

public array CairoScaledFont::textExtents ( string $text )

Style procédural :

array cairo_text_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

text

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoToyFontFace

Introduction

La classe CairoToyFontFace peut être utilisée à la place de la méthode CairoContext::selectFontFace() pour créer des polices indépendamment du contexte.

Synopsis de la classe

CairoToyFontFace extends CairoFontFace {
/* Méthodes héritées */
}


La classe CairoPatternType

Introduction

CairoPatternType est utilisée pour décrire le type d'un masque donné.

Le type d'un masque est déterminé par la fonction utilisée pour le créer. Les fonctions cairo_pattern_create_rgb() et cairo_pattern_create_rgba() créent des masques CairoPatternType::SOLID. Le reste des fonctions cairo_pattern_create_* créent des masques de types variés.

Synopsis de la classe

CairoPatternType {
/* Constantes */
const integer CairoPatternType::SOLID = 0 ;
const integer CairoPatternType::SURFACE = 1 ;
const integer CairoPatternType::LINEAR = 2 ;
const integer CairoPatternType::RADIAL = 3 ;
}

Constantes pré-définies

Types de nœud CairoPatternType

CairoPatternType::SOLID

Le masque est une couleur solide (uniforme). Il peut être opaque ou translucide.

CairoPatternType::SURFACE

Le masque est une base sur une surface (une image).

CairoPatternType::LINEAR

Le masque est un gradient linéaire.

CairoPatternType::RADIAL

Le masque est un gradient radial.



La classe CairoPattern

Introduction

CairoPattern est une classe de base abstraite dont toutes les autres classes relatives aux masques dérivent. Elle ne peut être instanciée directement.

Synopsis de la classe

CairoPattern {
/* Méthodes */
__construct ( void )
public void getMatrix ( void )
public int getType ( void )
public void setMatrix ( string $matrix )
public int status ( void )
}

CairoPattern::__construct

(PECL cairo >= 0.1.0)

CairoPattern::__constructLe but de __construct

Description

CairoPattern::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPattern::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPattern::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoPattern::getMatrix -- cairo_get_matrixLe but de getMatrix

Description

Style orienté objet (méthode) :

public void CairoPattern::getMatrix ( void )

Style procédural :

void cairo_get_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPattern::getType

(PECL cairo >= 0.1.0)

CairoPattern::getTypeLe but de getType

Description

public int CairoPattern::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPattern::getType()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPattern::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoPattern::setMatrix -- cairo_set_matrixLe but de setMatrix

Description

Style orienté objet (méthode) :

public void CairoPattern::setMatrix ( string $matrix )

Style procédural :

void cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoPattern::status

cairo_status

(PECL cairo >= 0.1.0)

CairoPattern::status -- cairo_statusLe but de status

Description

Style orienté objet (méthode) :

public int CairoPattern::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoGradientPattern

Introduction

CairoGradientPattern est une classe abstraite de base depuis laquelle les autres classes de masque dérivent. Elle ne peut être instanciée directement.

Synopsis de la classe

CairoGradientPattern extends CairoPattern {
/* Méthodes */
public void addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public int getColorStopCount ( void )
public array getColorStopRgba ( string $index )
public int getExtend ( void )
public void setExtend ( int $extend )
/* Méthodes héritées */
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

CairoGradientPattern::addColorStopRgb

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgbLe but de addColorStopRgb

Description

public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

offset

red

green

blue

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::addColorStopRgb()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoGradientPattern::addColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgbaLe but de addColorStopRgba

Description

public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

offset

red

green

blue

alpha

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::addColorStopRgba()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoGradientPattern::getColorStopCount

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopCountLe but de getColorStopCount

Description

public int CairoGradientPattern::getColorStopCount ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::getColorStopCount()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoGradientPattern::getColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopRgbaLe but de getColorStopRgba

Description

public array CairoGradientPattern::getColorStopRgba ( string $index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::getColorStopRgba()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoGradientPattern::getExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::getExtendLe but de getExtend

Description

public int CairoGradientPattern::getExtend ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::getExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoGradientPattern::setExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::setExtendLe but de setExtend

Description

public void CairoGradientPattern::setExtend ( int $extend )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

extend

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::setExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoSolidPattern

Introduction

Synopsis de la classe

CairoSolidPattern extends CairoPattern {
/* Méthodes */
__construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )
public array getRgba ( void )
/* Méthodes héritées */
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

CairoSolidPattern::__construct

(PECL cairo >= 0.1.0)

CairoSolidPattern::__constructLe but de __construct

Description

CairoSolidPattern::__construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

red

green

blue

alpha

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSolidPattern::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSolidPattern::getRgba

(PECL cairo >= 0.1.0)

CairoSolidPattern::getRgbaLe but de getRgba

Description

public array CairoSolidPattern::getRgba ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSolidPattern::getRgba()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoSurfacePattern

Introduction

Synopsis de la classe

CairoSurfacePattern extends CairoPattern {
/* Méthodes */
public int getExtend ( void )
public int getFilter ( void )
public void getSurface ( void )
public void setExtend ( int $extend )
public void setFilter ( string $filter )
/* Méthodes héritées */
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

CairoSurfacePattern::__construct

(PECL cairo >= 0.1.0)

CairoSurfacePattern::__constructLe but de __construct

Description

CairoSurfacePattern::__construct ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurfacePattern::getExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getExtendLe but de getExtend

Description

public int CairoSurfacePattern::getExtend ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::getExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurfacePattern::getFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getFilterLe but de getFilter

Description

public int CairoSurfacePattern::getFilter ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::getFilter()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurfacePattern::getSurface

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getSurfaceLe but de getSurface

Description

public void CairoSurfacePattern::getSurface ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::getSurface()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurfacePattern::setExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setExtendLe but de setExtend

Description

public void CairoSurfacePattern::setExtend ( int $extend )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

extend

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::setExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoSurfacePattern::setFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setFilterLe but de setFilter

Description

public void CairoSurfacePattern::setFilter ( string $filter )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filter

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::setFilter()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoLinearGradient

Introduction

Crée un nouvel objet CairoLinearGradient le long d'une ligne définie.

Synopsis de la classe

CairoLinearGradient extends CairoGradientPattern {
/* Méthodes */
__construct ( float $x0 , float $y0 , float $x1 , float $y1 )
public array getPoints ( void )
/* Méthodes héritées */
public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public array CairoGradientPattern::getColorStopRgba ( string $index )
public int CairoGradientPattern::getExtend ( void )
public void CairoGradientPattern::setExtend ( int $extend )
}

CairoLinearGradient::__construct

(PECL cairo >= 0.1.0)

CairoLinearGradient::__constructLe but de __construct

Description

CairoLinearGradient::__construct ( float $x0 , float $y0 , float $x1 , float $y1 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x0

y0

x1

y1

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoLinearGradient::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoLinearGradient::getPoints

(PECL cairo >= 0.1.0)

CairoLinearGradient::getPointsLe but de getPoints

Description

public array CairoLinearGradient::getPoints ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoLinearGradient::getPoints()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoRadialGradient

Introduction

Synopsis de la classe

CairoRadialGradient extends CairoGradientPattern {
/* Méthodes */
__construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )
public array getCircles ( void )
/* Méthodes héritées */
public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public array CairoGradientPattern::getColorStopRgba ( string $index )
public int CairoGradientPattern::getExtend ( void )
public void CairoGradientPattern::setExtend ( int $extend )
}

CairoRadialGradient::__construct

(PECL cairo >= 0.1.0)

CairoRadialGradient::__constructLe but de __construct

Description

Style orienté objet :

CairoRadialGradient::__construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )

Style proécural :

Crée un nouveau dégradé radial CairoPattern entre 2 cercles définis par (x0, y0, r0) et (x1, y1, r1). Avant d'utiliser ce masque de dégradé, un nombre de couleurs maximal doit être défini en utilisant le méthode CairoRadialGradient::addColorStopRgb() ou la méthode CairoRadialGradient::addColorStopRgba().

Note : Les coordonnées ici sont dans l'espace du masque. Pour un nouveau masque, l'espace du masque est identique à l'espace utilisateur, mais les relations entre les espaces peuvent être modifiées avec la méthode CairoRadialGradient::setMatrix().

Liste de paramètres

x0

coordonnée en X du centre du premier cercle.

y0

coordonnée en Y du centre du premier cercle.

r0

rayon du premier cercle.

x1

coordonnée en X du centre du dernier cercle.

y1

coordonnée en Y du centre du dernier cercle.

r1

rayon du dernier cercle.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoRadialGradient::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoRadialGradient::getCircles

(PECL cairo >= 0.1.0)

CairoRadialGradient::getCirclesLe but de getCircles

Description

public array CairoRadialGradient::getCircles ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoRadialGradient::getCircles()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoAntialias

Introduction

Classe spécifiant le type d'antialiasing à utiliser lors d'un rendu de textes ou de formes.

Synopsis de la classe

CairoAntialias {
/* Constantes */
const integer CairoAntialias::MODE_DEFAULT = 0 ;
const integer CairoAntialias::MODE_NONE = 1 ;
const integer CairoAntialias::MODE_GRAY = 2 ;
const integer CairoAntialias::MODE_SUBPIXEL = 3 ;
}

Constantes pré-définies

Types de nœud CairoAntialias

CairoAntialias::MODE_DEFAULT

Utilise l'antialiasing par défaut pour le sous-système et les périphériques cibles.

CairoAntialias::MODE_NONE

Utilise un masque alpha à deux niveaux.

CairoAntialias::MODE_GRAY

Effectue un antialiasing d'une seule couleur (en utilisant des nuances de gris pour le texte noir sur un fond blanc, par exemple).

CairoAntialias::MODE_SUBPIXEL

Effectue un antialiasing en prenant avantage de l'ordre des éléments sous-pixels sur les périphériques comme les panneaux LCD.



La classe CairoContent

Introduction

CairoContent est utilisée pour décrire le contenu qu'une surface contient, comme les informations sur les couleurs, les informations sur le canal alpha (transparent vs. opacité), ou les deux.

Note : les grosses valeurs ici ont pour but de conserver les valeurs CairoContent distinctement des valeurs CairoContent, permettant ainsi à l'implémentation de détecter les erreurs si les utilisateurs confondent les 2 types.

Synopsis de la classe

CairoContent {
/* Constantes */
const integer CairoContent::COLOR = 4096 ;
const integer CairoContent::ALPHA = 8192 ;
const integer CairoContent::COLOR_ALPHA = 12288 ;
}

Constantes pré-définies

Types de nœud CairoContent

CairoContent::COLOR

La surface contient uniquement le contenu de la couleur.

CairoContent::ALPHA

La surface contient uniquement le contenu du canal alpha.

CairoContent::COLOR_ALPHA

La surface contient le contenu de la couleur et du canal alpha.



La classe CairoExtend

Introduction

Description de la classe...

Synopsis de la classe

CairoExtend {
/* Constantes */
const integer CairoExtend::NONE = 0 ;
const integer CairoExtend::REPEAT = 1 ;
const integer CairoExtend::REFLECT = 2 ;
const integer CairoExtend::PAD = 3 ;
}

Constantes pré-définies

Types de nœud CairoExtend

CairoExtend::NONE

Description...

CairoExtend::REPEAT

Description...

CairoExtend::REFLECT

Description...

CairoExtend::PAD

Description...



La classe CairoFormat

Introduction

La classe CairoFormat est utilisée pour identifier le format en mémoire des données de l'image.

Synopsis de la classe

CairoFormat {
/* Constantes */
const integer CairoFormat::ARGB32 = 0 ;
const integer CairoFormat::RGB24 = 1 ;
const integer CairoFormat::A8 = 2 ;
const integer CairoFormat::A1 = 3 ;
/* Méthodes */
public static int strideForWidth ( int $format , int $width )
}

Constantes pré-définies

Types de nœud CairoFormat

CairoFormat::ARGB32

Chaque pixel est sur 32-bits, avec l'alpha sur les 8 premiers octets, puis, le rouge, puis, le vert, et enfin le bleu. Les 32 bits sont stockés en endian natif. L'alpha pré-multiplié est utilisé (aussi, rouge transparent à 50% vaut 0x80800000, et non 0x80ff0000).

CairoFormat::RGB24

Chaque pixel est sur 32 bits, avec les 8 premiers octets non utilisés. Rouge, vert et bleu sont stockés dans les 24 octets restants, dans cet ordre.

CairoFormat::A8

Chaque pixel est sur 8 bits, y compris la valeur de l'alpha.

CairoFormat::A1

Chaque pixel est sur 1 bit, y compris la valeur de l'alpha. Les pixels sont empaquetés dans des quantités de 32 bits. L'ordre des octets correspond l'endian de la plateforme. Sur une gros machine endian, le premier pixel est sur le premier octet, alors que sur une petite machine endian, le premier pixel est sur le dernier octet significatif.


CairoFormat::strideForWidth

(PECL cairo >= 0.1.0)

CairoFormat::strideForWidthFournit un stride approprié à utiliser

Description

public static int CairoFormat::strideForWidth ( int $format , int $width )

Cette méthode fournit une valeur de stride qui respectera tous les alignements nécessaires du rendu de l'image accélérée dans Cairo.

Liste de paramètres

format

Le format CairoFormat à utiliser.

width

La longueur de l'image.

Valeurs de retour

Le stride approprié à utiliser pour le format et la longueur désirés, ou -1 si soit le format est invalide, soit la longueur est trop grande.

Exemples

Exemple #1 Exemple avec CairoFormat::strideForWidth()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Sommaire



La classe CairoFillRule

Introduction

Un objet CairoFillRule est utilisé pour sélectionner 2 chemins à remplir. Pour les 2 règles de remplissage, le fait d'inclure ou non un point dans un remplissage est déterminé en prenant le rayon de ce point vers l'infini et rechercher les intersections avec le chemin. Le rayon peut être dans n'importe quelle direction, comme l'intersection de la tangente avec le chemin (Noter que le remplissage n'est actuellement pas implémenté dans ce sens. Ce n'est qu'une description de la règle appliquée).

The default fill rule is CairoFillRule::WINDING.

Synopsis de la classe

CairoFillRule {
/* Constantes */
const integer CairoFillRule::WINDING = 0 ;
const integer CairoFillRule::EVEN_ODD = 1 ;
}

Constantes pré-définies

Types de nœud CairoFillRule

CairoFillRule::WINDING

Si le chemin parcourt le rayon de gauche à droite, on compte +1. Si le chemin parcourt le rayon de droite à gauche, on compte -1. (La gauche et la droite sont déterminés d'un point de vue de la recherche le long du rayon du point de départ.) Si le total est différent de zéro, le point sera rempli.

CairoFillRule::EVEN_ODD

Compte le nombre total d'intersections, sans tenir compte de l'orientation du contour. Si le nombre total d'intersections est impair, le point sera rempli.



La classe CairoFilter

Introduction

Un objet CairoFilter est utilisé pour indiquer que le filtrage doit être appliqué alors de la lecture des valeurs des pixels depuis le masque. Voir les méthodes CairoPattern::setSource() et cairo_pattern_set_source() pour indiquer le filtre désiré à utiliser avec un masque particulier.

Synopsis de la classe

CairoFilter {
/* Constantes */
const integer CairoFilter::FAST = 0 ;
const integer CairoFilter::GOOD = 1 ;
const integer CairoFilter::BEST = 2 ;
const integer CairoFilter::NEAREST = 3 ;
const integer CairoFilter::BILINEAR = 4 ;
const integer CairoFilter::GAUSSIAN = 5 ;
}

Constantes pré-définies

Types de nœud CairoFilter

CairoFilter::FAST

Un filtre haute performance, avec une qualité similaire à CairoFilter::NEAREST.

CairoFilter::GOOD

Un filtre à performance raisonnable, avec une qualité similaire à CairoFilter::BILINEAR.

CairoFilter::BEST

La qualité la plus élevée de disponible, au détriment de la performance, qui ne sera pas acceptable pour une utilisation interactive.

CairoFilter::NEAREST

Filtrage sur les voisins les plus proches.

CairoFilter::BILINEAR

Interpolation linéaire en 2 dimensions.

CairoFilter::GAUSSIAN

La valeur de ce filtre n'est actuellement pas implémentée, et ne doit pas être utilisée pour l'instant.



La classe CairoHintMetrics

Introduction

Spécifie si l'on doit modifier la métrique des polices ; cela signifie qu'on les quantifie, les représentants ainsi sous forme de valeurs entières dans l'espace du périphérique. En faisant cela, nous améliorons les espaces des lettres et des lignes, cependant, cela signifie aussi que le texte sera différent suivant le facteur de zoom.

Synopsis de la classe

CairoHintMetrics {
/* Constantes */
const integer CairoHintMetrics::METRICS_OFF = 1 ;
const integer CairoHintMetrics::METRICS_ON = 2 ;
}

Constantes pré-définies

Types de nœud CairoHintMetrics

CairoHintMetrics::METRICS_DEFAULT

Modifie la métrique à la manière par défaut pour le gestionnaire de police et le périphérique cible.

CairoHintMetrics::METRICS_OFF

Ne pas modifier la métrique des polices.

CairoHintMetrics::METRICS_ON

Modifie la métrique des polices.



La classe CairoHintStyle

Introduction

Spécifie la façon dont on doit lisser les contours des polices. Le lissage est le processus d'ajustement des contours au pixel de la grille afin d'améliorer l'apparence du résultat. Vu que le lissage inclut obligatoirement une distorsion, il réduit également les formes originelles du contour. Tous les styles de lissage ne sont pas supportés par tous les gestionnaires de polices.

Synopsis de la classe

CairoHintStyle {
/* Constantes */
const integer CairoHintStyle::STYLE_DEFAULT = 0 ;
const integer CairoHintStyle::STYLE_NONE = 1 ;
const integer CairoHintStyle::STYLE_SLIGHT = 2 ;
const integer CairoHintStyle::STYLE_MEDIUM = 3 ;
const integer CairoHintStyle::STYLE_FULL = 4 ;
}

Constantes pré-définies

Types de nœud CairoHintStyle

CairoHintStyle::STYLE_DEFAULT

Utilise le style de lissage par défaut des gestionnaires de polices et des périphériques cibles.

CairoHintStyle::STYLE_NONE

Ne pas lisser les contours.

CairoHintStyle::STYLE_SLIGHT

Lisse les contours légèrement pour améliorer le contraste tout en conservant fidèlement les formes originelles.

CairoHintStyle::STYLE_MEDIUM

Lisse les contours avec une résistance moyenne fournissant ainsi un compromis entre le restitution fidèle des formes originelles et le contraste.

CairoHintStyle::STYLE_FULL

Lisse les contours avec un contraste maximal.



La classe CairoLineCap

Introduction

Spécifie la façon dont les points finaux doivent être restitués lors du dessin.

Le style de fin de ligne par défaut est CairoLineCap::BUTT.

Synopsis de la classe

CairoLineCap {
/* Constantes */
const integer CairoLineCap::BUTT = 0 ;
const integer CairoLineCap::ROUND = 1 ;
const integer CairoLineCap::SQUARE = 2 ;
}

Constantes pré-définies

Types de nœud CairoLineCap

CairoLineCap::BUTT

Commence (arrête) la ligne exactement au point de départ (fin).

CairoLineCap::ROUND

Utilise un cycle de fin ; le centre du cercle est le point final.

CairoLineCap::SQUARE

Utilise un cycle rond ; le centre du cercle est le point final.



La classe CairoLineJoin

Introduction

Synopsis de la classe

CairoLineJoin {
/* Constantes */
const integer CairoLineJoin::MITER = 0 ;
const integer CairoLineJoin::ROUND = 1 ;
const integer CairoLineJoin::BEVEL = 2 ;
}

Constantes pré-définies

Types de nœud CairoLineJoin

CairoLineJoin::MITER

CairoLineJoin::ROUND

CairoLineJoin::BEVEL



La classe CairoMatrix

Introduction

Les matrices sont utilisées tout au long de Cairo pour des conversions entre les espaces de coordonnées différentes.

Synopsis de la classe

CairoMatrix {
/* Méthodes */
__construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )
public static void initIdentity ( void )
public static void initRotate ( float $radians )
public static void initScale ( float $sx , float $sy )
public static void initTranslate ( float $tx , float $ty )
public void invert ( void )
public static CairoMatrix multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )
public void rotate ( string $sx , string $sy )
public void scale ( float $sx , float $sy )
public array transformDistance ( string $dx , string $dy )
public array transformPoint ( string $dx , string $dy )
public void translate ( string $tx , string $ty )
}

CairoMatrix::__construct

cairo_matrix_init

(PECL cairo >= 0.1.0)

CairoMatrix::__construct -- cairo_matrix_initCrée un nouvel objet CairoMatrix

Description

Style orienté objet (méthode) :

CairoMatrix::__construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )

Style procédural :

object cairo_matrix_init ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )

Retourne un nouvel objet CairoMatrix. Les matrices sont utilisés à travers Cairo pour convertir différents espaces de coordonnées. Définissez une matrice pour être une transformation affine fournie par xx, yx, xy, yy, x0, y0. La transformation est fournie par : x_new = xx * x + xy * y + x0; and y_new = yx * x + yy * y + y0;

Liste de paramètres

xx

Composant en xx de la transformation affine.

yx

Composant en yx de la transformation affine.

xy

Composant en xy de la transformation affine.

yy

Composant en yy de la transformation affine.

x0

Composant de la traduction en X de la transformation affine.

y0

Composant de la traduction en Y de la transformation affine.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix = new CairoMatrix(1.00.50.01.00.00.0);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix cairo_matrix_init(1.00.50.01.00.00.0);
?>

Voir aussi



CairoMatrix::initIdentity

cairo_matrix_init_identity

(PECL cairo >= 0.1.0)

CairoMatrix::initIdentity -- cairo_matrix_init_identityCrée une nouvelle matrice d'identité

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initIdentity ( void )

Style procédural :

object cairo_matrix_init_identity ( void )

Crée une nouvelle matrice qui est une transformation d'identité. Une transformation d'identité signifie que les données sources sont copiées dans les données cibles sans aucune modification.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix CairoMatrix::initIdentity();
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix cairo_matrix_init_identity();
?>

Voir aussi



CairoMatrix::initRotate

cairo_matrix_init_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::initRotate -- cairo_matrix_init_rotateCrée une nouvelle matrice de rotation

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initRotate ( float $radians )

Style procédural :

object cairo_matrix_init_rotate ( float $radians )

Crée une nouvelle matrice de transformation qui effectue une rotation en utilisant un rayon fourni.

Liste de paramètres

radians

angle de rotation, en degrés. La direction de rotation est définie de tel sorte qu'un angle positif tourne dans la direction de l'axe X positif vers la direction de l'axe Y positif. Avec l'orientation par défaut des axes en Cairo, les angles positifs tournent l'objet dans la direction des aiguilles d'une montre.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix CairoMatrix::initRotate(0.3);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix cairo_matrix_init_rotate(0.3);
?>

Voir aussi



CairoMatrix::initScale

cairo_matrix_init_scale

cairo_matrix_create_scale

(PECL cairo >= 0.1.0)

CairoMatrix::initScale -- cairo_matrix_init_scale -- cairo_matrix_create_scaleCrée une nouvelle matrice de mise à l'échelle

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initScale ( float $sx , float $sy )

Style procédural :

object cairo_matrix_init_scale ( float $sx , float $sy )

Crée une nouvelle matrice de transformation qui met à l'échelle par sx et sy sur les dimensions X et Y, respectivement.

Liste de paramètres

sx

Facteur de mise à l'échelle sur la direction X.

sy

Facteur de mise à l'échelle sur la direction Y.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix CairoMatrix::initScale(1.02.0);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix cairo_matrix_init_scale(1.02.0);
?>

Voir aussi



CairoMatrix::initTranslate

cairo_matrix_init_translate

(PECL cairo >= 0.1.0)

CairoMatrix::initTranslate -- cairo_matrix_init_translateCrée une nouvelle matrice de traduction

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initTranslate ( float $tx , float $ty )

Style procédural :

object cairo_matrix_init_translate ( float $tx , float $ty )

Crée une nouvelle matrice de transformation qui traduit par tx et ty dans les dimensions X et Y, respectivement.

Liste de paramètres

tx

Traduction dans la direction X.

ty

Traduction dans la direction Y.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix CairoMatrix::initTranslate(1.02.0);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix cairo_matrix_init_translate(1.02.0);
?>

Voir aussi



CairoMatrix::invert

(PECL cairo >= 0.1.0)

CairoMatrix::invertLe but de invert

Description

public void CairoMatrix::invert ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoMatrix::invert()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoMatrix::multiply

(PECL cairo >= 0.1.0)

CairoMatrix::multiplyLe but de multiply

Description

public static CairoMatrix CairoMatrix::multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix1

matrix2

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoMatrix::multiply()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoMatrix::rotate

cairo_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::rotate -- cairo_rotateLe but de rotate

Description

Style orienté objet (méthode) :

public void CairoMatrix::rotate ( string $sx , string $sy )

Style procédural :

void cairo_rotate ( CairoContext $context , string $angle )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

angle

sx

sy

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoMatrix::scale

cairo_matrix_scale

(PECL cairo >= 0.1.0)

CairoMatrix::scale -- cairo_matrix_scaleApplique une mise à l'échelle à une matrice

Description

Style orienté objet (méthode) :

public void CairoMatrix::scale ( float $sx , float $sy )

Style procédural :

void cairo_matrix_scale ( CairoContext $context , float $sx , float $sy )

Applique une mise à l'échelle par sx, sy à la transformation dans la matrice. L'effet de cette nouvelle transformation est de, premièrement, mettre à l'échelle les coordonnées par sx et sy, puis, appliquer la transformation originale aux coordonnées.

Liste de paramètres

matrix

Procédural uniquement - instance CairoMatrix

sx

Facteur de mise à l'échelle dans la direction X.

sy

Facteur de mise à l'échelle dans la direction Y.

Exemples

Exemple #1 Style orienté objet

<?php
/* Applique la mise à l'échelle à la matrice */
$matrix = new CairoMatrix(1.00.50.01.00.00.0);
$matrix->scale(0.22.0);
?>

Exemple #2 Style procédural

<?php
/* Applique la mise à l'échelle à la matrice */
$matrix cairo_matrix_init(1.00.50.01.00.00.0);
cairo_matrix_scale($matrix0.22.0);
?>

Voir aussi



CairoMatrix::transformDistance

(PECL cairo >= 0.1.0)

CairoMatrix::transformDistanceLe but de transformDistance

Description

public array CairoMatrix::transformDistance ( string $dx , string $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

dx

dy

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoMatrix::transformDistance()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoMatrix::transformPoint

(PECL cairo >= 0.1.0)

CairoMatrix::transformPointLe but de transformPoint

Description

public array CairoMatrix::transformPoint ( string $dx , string $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

dx

dy

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoMatrix::transformPoint()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi



CairoMatrix::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoMatrix::translate -- cairo_translateLe but de translate

Description

Style orienté objet (méthode) :

public void CairoMatrix::translate ( string $tx , string $ty )

Style procédural :

void cairo_translate ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

tx

ty

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Sommaire



La classe CairoOperator

Introduction

La classe est utilisée pour définir l'opération de composition pour toutes les opérations de dessin Cairo.

L'opérateur par défaut est CairoOperator::OVER

Les opérateurs marqués comme non bornés modifient leurs destinations, même en dehors de la couche des masques (aussi, leur effet n'est pas lié à la couche des masques). Cependant, leur effet peut toujours être limité par voie de saturation.

Pour garder ceci simple, la description des opérateurs de ce manuel parte du principe qu'à la fois la source et la destination sont soit totalement transparents, soit totalement opaques. L'implémentation actuel fonctionne aussi avec les couches translucides. Pour plus d'explications sur les effets de chaque opérateur, y compris les définitions mathématiques, reportez-vous à http://cairographics.org/operators/.

Synopsis de la classe

CairoOperator {
/* Constantes */
const integer CairoOperator::CLEAR = 0 ;
const integer CairoOperator::SOURCE = 1 ;
const integer CairoOperator::OVER = 2 ;
const integer CairoOperator::IN = 3 ;
const integer CairoOperator::OUT = 4 ;
const integer CairoOperator::ATOP = 5 ;
const integer CairoOperator::DEST = 6 ;
const integer CairoOperator::DEST_OVER = 7 ;
const integer CairoOperator::DEST_IN = 8 ;
const integer CairoOperator::DEST_OUT = 9 ;
const integer CairoOperator::DEST_ATOP = 10 ;
const integer CairoOperator::XOR = 11 ;
const integer CairoOperator::ADD = 12 ;
const integer CairoOperator::SATURATE = 13 ;
}

Constantes pré-définies

Types de nœud CairoOperator

CairoOperator::CLEAR

Nettoie le calque de destination (borné).

CairoOperator::SOURCE

Remplace le calque de destination (borné).

CairoOperator::OVER

Dessine le calque source en haut du calque de destination (borné).

CairoOperator::IN

Dessine la source à l'endroit où se trouve le contenu sur la destination (non borné).

CairoOperator::OUT

Dessine la source à l'endroit où ne se trouve aucun contenu sur la destination (non borné).

CairoOperator::ATOP

Dessine la source en haut du contenu de la destination, et uniquement là.

CairoOperator::DEST

Ignore le source.

CairoOperator::DEST_OVER

Dessine la destination en haut de la source.

CairoOperator::DEST_IN

Quitte la destination uniquement où il y a du contenu sur la source (non borné).

CairoOperator::DEST_OUT

Quitte la destination uniquement où il n'y a pas de contenu sur la source.

CairoOperator::DEST_ATOP

Quitte la destination en haut du contenu de la source et uniquement là (non borné).

CairoOperator::XOR

Source et destination sont montrés lorsqu'il n'y a qu'un seul des 2.

CairoOperator::ADD

Les calques source et destination sont cumulés.

CairoOperator::SATURATE

Comme CairoOperator::OVER, mais en assumant que la source et la destination sont à géométrie disjointe.



La classe CairoPath

Introduction

Note : la classe CairoPath ne peut être instanciée directement. Si vous le faîtes, une erreur fatale sera émise ou passée au gestion d'erreur.

Synopsis de la classe

CairoPath {
}


La classe CairoPsLevel

Introduction

Synopsis de la classe

CairoPsLevel {
/* Constantes */
const integer CairoPsLevel::LEVEL_2 = 0 ;
const integer CairoPsLevel::LEVEL_3 = 1 ;
}

Constantes pré-définies

Types de nœud CairoPsLevel

CairoPsLevel::LEVEL_2

CairoPsLevel::LEVEL_3



La classe CairoSubpixelOrder

Introduction

Synopsis de la classe

CairoSubpixelOrder {
/* Constantes */
const integer CairoSubpixelOrder::ORDER_RGB = 1 ;
const integer CairoSubpixelOrder::ORDER_BGR = 2 ;
const integer CairoSubpixelOrder::ORDER_VRGB = 3 ;
const integer CairoSubpixelOrder::ORDER_VBGR = 4 ;
}

Constantes pré-définies

Types de nœud CairoSubpixelOrder

CairoSubpixelOrder::ORDER_DEFAULT

CairoSubpixelOrder::ORDER_RGB

CairoSubpixelOrder::ORDER_BGR

CairoSubpixelOrder::ORDER_VRGB

CairoSubpixelOrder::ORDER_VBGR



La classe CairoSvgVersion

Introduction

Synopsis de la classe

CairoSvgVersion {
/* Constantes */
const integer CairoSvgVersion::VERSION_1_1 = 0 ;
const integer CairoSvgVersion::VERSION_1_2 = 1 ;
}

Constantes pré-définies

Types de nœud CairoSvgVersion

CairoSvgVersion::VERSION_1_1

CairoSvgVersion::VERSION_1_2





Extensions relatives aux emails


Administration Cyrus IMAP


Introduction

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour activer le support Cyrus IMAP et en utiliser les fonctions, vous devez compiler PHP avec l'option --with-cyrus .

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit un identifiant de connexion Cyrus IMAP, retournée avec la fonction cyrus_connect().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CYRUS_CONN_NONSYNCLITERAL (entier)
CYRUS_CONN_INITIALRESPONSE (entier)
CYRUS_CALLBACK_NUMBERED (entier)
CYRUS_CALLBACK_NOLITERAL (entier)


Fonctions Cyrus


cyrus_authenticate

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_authenticateIdentification sur un serveur Cyrus IMAP

Description

void cyrus_authenticate ( resource $connection [, string $mechlist [, string $service [, string $user [, int $minssf [, int $maxssf [, string $authname [, string $password ]]]]]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



cyrus_bind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_bindAjoute une fonction de rappel sur une connexion Cyrus IMAP

Description

bool cyrus_bind ( resource $connection , array $callbacks )

Ajoute une fonction de rappel sur une connexion Cyrus IMAP.

Liste de paramètres

connection

Le gestionnaire de connexion.

callbacks

Un tableau de fonctions de rappel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



cyrus_close

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_closeFerme la connexion à un serveur Cyrus IMAP

Description

bool cyrus_close ( resource $connection )

Ferme la connexion au serveur Cyrus IMAP.

Liste de paramètres

connection

Le gestionnaire de connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



cyrus_connect

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_connectConnexion sur un serveur Cyrus IMAP

Description

resource cyrus_connect ([ string $host [, string $port [, int $flags ]]] )

Connexion à un serveur Cyrus IMAP.

Liste de paramètres

host

Le nom d'hôte du serveur Cyrus IMAP.

port

Le numéro de port.

flags

Valeurs de retour

Retourne un gestionnaire de connexion en cas de succès ou FALSE si une erreur survient.



cyrus_query

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_queryEnvoie une requête à un serveur Cyrus IMAP

Description

array cyrus_query ( resource $connection , string $query )

Envoie une requête à un serveur Cyrus IMAP.

Liste de paramètres

connection

Le gestionnaire de connexion.

query

La requête.

Valeurs de retour

Retourne un tableau associatif contenant les clés suivantes : text, msgno, et keyword.



cyrus_unbind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_unbindSupprime ...

Description

bool cyrus_unbind ( resource $connection , string $trigger_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Le gestionnaire de connexion.

trigger_name

Le nom du trigger.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire




IMAP, POP3 et NNTP


Introduction

Ces fonctions vous permettent d'utiliser le protocole IMAP, mais aussi les protocoles NNTP, POP3 et les boîtes aux lettres locales.

Cependant, soyez prudent, car quelques fonctions IMAP ne fonctionnent pas correctement avec le protocole POP.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requiert la bibliothèque C cliente. Téléchargez cette dernière version à » ftp://ftp.cac.washington.edu/imap/ et compilez-la.

Il est important de ne pas copier les fichiers sources IMAP directement dans le dossier d'inclusion système sous peine de conflits. À la place de cela, créez un nouveau dossier dans le dossier d'inclusion système, comme /usr/local/imap-2000b/ (le chemin et le nom dépendent de votre configuration et de votre version d'IMAP) et dans ce nouveau dossier, créez les dossiers nommés lib/ et include/. Depuis le dossier c-client des sources IMAP, copiez tous les fichiers *.h dans le dossier include/ et tous les fichiers *.c dans le dossier lib/. Additionnellement, lorsque vous compilez IMAP, un fichier nommé c-client.a est crée. Mettez le également dans le dossier lib/ mais renommez le en libc-client.a.

Note:

Pour compiler la bibliothèque C cliente avec SSL et/ou avec le support Kerberos, lisez la doc fournie dans la distribution.

Note: Sur Mandrake Linux, la bibliothèque IMAP (libc-client.a) est compilée sans le support Kerberos. Une version séparée avec SSL (client-PHP4.a) est installée. La bibliothèque doit être recompilée pour ajouter le support Kerberos.



Installation

Pour avoir accès à ces fonctions, vous devez compiler PHP avec l'option --with-imap[=DIR] , où DIR est le préfixe de l'installation du client C. Dans nos exemples, vous pourriez utiliser --with-imap=/usr/local/imap-2000b . Le nom du dossier d'installation dépend de l'emplacement où vous avez créé le dossier, en fonction de la description ci-dessus. Les utilisateurs Windows peuvent inclure la bibliothèque DLL php_imap.dll dans le php.ini.

IMAP n'est pas supporté sur les systèmes plus anciens que Windows 2000. Cela est dû au fait que IMAP utilise les fonctions de chiffrement pour activer les connexions SSL aux serveurs de mails.

Note: Suivant la configuration de la bibliothèque C cliente, vous pouvez aussi avoir besoin d'ajouter --with-imap-ssl=/path/to/openssl/ et/ou --with-kerberos=/path/to/kerberos dans la ligne de configuration PHP.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

NIL (entier)
OP_DEBUG (entier)
OP_READONLY (entier)
Ouvre une boîte aux lettres en lecture seule
OP_ANONYMOUS (entier)
Ne pas utiliser, ou modifier le fichier .newsrc pour les news, (NNTP uniquement).
OP_SHORTCACHE (entier)
OP_SILENT (entier)
OP_PROTOTYPE (entier)
OP_HALFOPEN (entier)
Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.
OP_EXPUNGE (entier)
OP_SECURE (entier)
CL_EXPUNGE (entier)
purger automatiquement la boîte aux lettres lors de l'appel de imap_close()
FT_UID (entier)
Le paramètre est un UID.
FT_PEEK (entier)
Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.
FT_NOT (entier)
FT_INTERNAL (entier)
La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.
FT_PREFETCHTEXT (entier)
ST_UID (entier)
la séquence contient des UID au lieu de numéros de séquence
ST_SILENT (entier)
ST_SET (entier)
CP_UID (entier)
La séquence de nombres contient des UID
CP_MOVE (entier)
Efface les messages après copie avec imap_mail_copy()
SE_UID (entier)
Retourne des UID à la place de numéros
SE_FREE (entier)
SE_NOPREFETCH (entier)
Ne pas prétélécharger les messages trouvés
SO_FREE (entier)
SO_NOSERVER (entier)
SA_MESSAGES (entier)
SA_RECENT (entier)
SA_UNSEEN (entier)
SA_UIDNEXT (entier)
SA_UIDVALIDITY (entier)
SA_ALL (entier)
LATT_NOINFERIORS (entier)
Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci).
LATT_NOSELECT (entier)
Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).
LATT_MARKED (entier)
Cette boîte aux lettres est marquée. Utilisé uniquement avec UW-IMAPD.
LATT_UNMARKED (entier)
Cette boîte aux lettres n'est pas marquée. Utilisé uniquement avec UW-IMAPD.
SORTDATE (entier)
Critère de tri pour imap_sort() : Date du message
SORTARRIVAL (entier)
Critère de tri pour imap_sort() : Date d'arrivée
SORTFROM (entier)
Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de l'adresse d'origine (From address)
SORTSUBJECT (entier)
Critère de tri pour imap_sort() : Sujet du message
SORTTO (entier)
Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de destination (To address)
SORTCC (entier)
Critère de tri pour imap_sort() : Nom de la boîte aux lettres de copie cachée (cc address)
SORTSIZE (entier)
Critère de tri pour imap_sort() : Taille du message en octets
TYPETEXT (entier)
TYPEMULTIPART (entier)
TYPEMESSAGE (entier)
TYPEAPPLICATION (entier)
TYPEAUDIO (entier)
TYPEIMAGE (entier)
TYPEVIDEO (entier)
TYPEOTHER (entier)
ENC7BIT (entier)
ENC8BIT (entier)
ENCBINARY (entier)
ENCBASE64 (entier)
ENCQUOTEDPRINTABLE (entier)
ENCOTHER (entier)
IMAP_OPENTIMEOUT (entier)
IMAP_READTIMEOUT (entier)
IMAP_WRITETIMEOUT (entier)
IMAP_CLOSETIMEOUT (entier)
LATT_REFERRAL (entier)
LATT_HASCHILDREN (entier)
LATT_HASNOCHILDREN (entier)
TYPEMODEL (entier)
IMAP_GC_ELT (entier)
Collecte de la mémoire, suppression des caches d'éléments de message.
IMAP_GC_ENV (entier)
Collecte de la mémoire, suppression des enveloppes et corps.
IMAP_GC_TEXTS (entier)
Collecte de la mémoire, suppression des textes.


Fonctions IMAP

Voir aussi

Ce document ne peut entrer dans les détails de tous les sujets abordés. Plus d'informations sont disponibles avec la documentation de la bibliothèque C (docs/internal.txt) ainsi que les RFC suivantes :

Une étude approfondie est aussi disponible dans les livres suivants (en anglais) : » Programming Internet Email par David Wood et » Managing IMAP par Dianna Mullet & Kevin Mullet.


imap_8bit

(PHP 4, PHP 5)

imap_8bitConvertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable

Description

string imap_8bit ( string $string )

Convertit la chaîne à 8 bits en une chaîne encodée en Quoted-Printable (selon la » RFC 2045, Section 6.7).

Liste de paramètres

string

La chaîne 8 bits à convertir

Valeurs de retour

Retourne une chaîne encodée en Quoted-Printable.

Voir aussi

  • imap_qprint() - Convertit une chaîne à guillemets en une chaîne à 8 bits



imap_alerts

(PHP 4, PHP 5)

imap_alertsRetourne toutes les alertes

Description

array imap_alerts ( void )

Retourne un tableau de tous les messages d'alerte IMAP générés depuis le dernier appel à imap_alerts() ou depuis le début de la page.

Lorsque imap_alerts() est appelée, la pile d'alertes est vidée. Les spécifications IMAP requièrent que ces messages soient passés à l'utilisateur.

Valeurs de retour

Retourne un tableau contenant tous les messages d'alerte IMAP générés ou FALSE si aucun message d'alerte n'est disponible.

Voir aussi



imap_append

(PHP 4, PHP 5)

imap_appendAjoute une message dans une boîte aux lettres

Description

bool imap_append ( resource $imap_stream , string $mailbox , string $message [, string $options = NULL [, string $internal_date = NULL ]] )

Ajoute un message message dans la boîte aux lettres mbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus d'informations

message

Le message à ajouter, sous la forme d'une chaîne de caractères

Lors des échanges avec le serveur Cyrus IMAP, vous devrez utiliser "\r\n" comme terminaison de ligne, à la place de "\n" ou l'opération échouera.

options

Si fourni, le paramètre options sera également écrit dans la boîte mailbox

internal_date

Si ce paramètre est défini, il mettra les INTERNALDATE sur le message joint. Le paramètre doit être une chaîne de date qui est conforme aux spécifications du rfc2060 pour une valeur date_time.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.2 Ajout du support INTERNALDATE à imap_append.

Exemples

Exemple #1 Exemple avec imap_append()

<?php
$stream 
imap_open("{imap.example.org}INBOX.Drafts""username""password");

$check imap_check($stream);
echo 
"Msg Count before append: "$check->Nmsgs "\n";

imap_append($stream"{imap.example.org}INBOX.Drafts"
                   
"From: me@example.com\r\n"
                   
"To: you@example.com\r\n"
                   
"Subject: test\r\n"
                   
"\r\n"
                   
"Ceci est un message de test. Ignorez le.\r\n"
                   
);

$check imap_check($stream);
echo 
"Nombre de messages après ajout : "$check->Nmsgs "\n";

imap_close($stream);
?>



imap_base64

(PHP 4, PHP 5)

imap_base64Décode un texte encodé en BASE64

Description

string imap_base64 ( string $text )

Décode le texte text encodé en BASE64.

Liste de paramètres

text

Le texte encodé.

Valeurs de retour

Retourne le texte décodé, sous la forme d'une chaîne de caractères.

Voir aussi



imap_binary

(PHP 4, PHP 5)

imap_binaryConvertit une chaîne à 8 bits en une chaîne à base64

Description

string imap_binary ( string $string )

Convertit la chaîne à 8 bits string en une chaîne à base64 (selon la » RFC2045, Section 6.8).

Liste de paramètres

string

La chaîne 8 bits

Valeurs de retour

Retourne la chaîne encodée en base64.

Voir aussi



imap_body

(PHP 4, PHP 5)

imap_bodyLit le corps d'un message

Description

string imap_body ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

imap_body() retourne le corps du message numéro msg_number de la boîte aux lettres courante.

imap_body() va retourner une copie brute du corps du message. Pour extraire les sous-parties MIME du message, utilisez imap_fetchstructure() pour analyser la structure, et imap_fetchbody() pour extraire une copie d'une des sous-partie.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Le paramètre options optionnel est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - msg_number est un UID
  • FT_PEEK - Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.
  • FT_INTERNAL - La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

Valeurs de retour

Retourne le corps du message spécifié, sous la forme d'une chaîne de caractères.



imap_bodystruct

(PHP 4, PHP 5)

imap_bodystructLit la structure d'une section du corps d'un mail

Description

object imap_bodystruct ( resource $imap_stream , int $msg_number , string $section )

Lit la structure d'une section spécifié du corps d'un mail.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

section

La section du corps à lire

Valeurs de retour

Retourne les informations dans un objet ; pour une description détaillée de la structure de l'objet ainsi que de ses propriétés, reportez-vous à la fonction imap_fetchstructure().

Voir aussi



imap_check

(PHP 4, PHP 5)

imap_checkVérifie la boîte aux lettres courante

Description

object imap_check ( resource $imap_stream )

Vérifie les informations de la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne les informations dans un objet contenant les propriétés suivantes :

  • Date - Date de dernière modification du contenu de la boîte aux lettres en accord avec la » RFC2822
  • Driver - protocole utilisé pour accéder à la boîte aux lettres: POP3, IMAP, NNTP.
  • Mailbox - nom de la boîte aux lettres
  • Nmsgs - nombre de messages de la boîte aux lettres
  • Recent - nombre de messages récents de la boîte aux lettres

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_check()

<?php

$imap_obj 
imap_check($imap_stream);
var_dump($imap_obj);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}



imap_clearflag_full

(PHP 4, PHP 5)

imap_clearflag_fullSupprime un flag (drapeau) sur un message

Description

bool imap_clearflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = 0 ] )

imap_clearflag_full() efface le flag flag dans les messages de la séquence sequence, du flux imap stream.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

sequence

Une séquence de numéro de messages. Vous pouvez énumérer les messages désirées avec la syntaxe X,Y, ou récupérer tous les messages contenus dans un intervalle, avec la syntaxe X:Y

flag

Les flags flag que vous pouvez effacer sont "\\Seen", "\\Answered", "\\Flagged", "\\Deleted" et "\\Draft" (tels que définis dans la » RFC2060)

options

options est un masque de bit, qui accepte uniquement la valeur suivante :

  • ST_UID - la séquence contient des UID au lieu de numéros de séquence

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_close

(PHP 4, PHP 5)

imap_closeTermine un flux IMAP

Description

bool imap_close ( resource $imap_stream [, int $flag = 0 ] )

Termine un flux IMAP.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

flag

S'il est défini à CL_EXPUNGE, la fonction effectuera une purge automatique de la boîte aux lettres avant de la fermer, supprimant tous les messages marqués pour l'effacement. Vous pouvez effectuer la même chose avec la fonction imap_expunge()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres



imap_createmailbox

(PHP 4, PHP 5)

imap_createmailboxCrée une nouvelle boîte aux lettres

Description

bool imap_createmailbox ( resource $imap_stream , string $mailbox )

Crée une nouvelle boîte aux lettres nommée mailbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus d'informations. Les noms contenant des caractères internationaux doivent être encodés par la fonction imap_utf7_encode()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_createmailbox()

<?php
$mbox 
imap_open("{imap.example.org}""username""password"OP_HALFOPEN)
     or die(
"connexion impossible : " imap_last_error());

$name1 "phpnewbox";
$name2 imap_utf7_encode("phpnewb&ouml;x");

$newname $name1;

echo 
"Le nouveau nom sera '$name1'<br />\n";

// Nous allons créer maintenant une nouvelle boîte aux lettres "phptestbox"
// dans votre dossier inbox, vérifier son état et, finalement, la supprimer
// pour remettre votre inbox dans son état initial.

if (@imap_createmailbox($mboximap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
    
$status = @imap_status($mbox"{imap.example.org}INBOX.$newname"SA_ALL);
    if (
$status) {
        echo 
"Votre nouvelle boîte '$name1' est dans l'état suivant :<br />\n";
        echo 
"Messages :   " $status->messages    "<br />\n";
        echo 
"Récent :     " $status->recent      "<br />\n";
        echo 
"Non lus :     " $status->unseen      "<br />\n";
        echo 
"UIDnext :    " $status->uidnext     "<br />\n";
        echo 
"UIDvalidity :" $status->uidvalidity "<br />\n";

        if (
imap_renamemailbox($mbox"{imap.example.org}INBOX.$newname""{imap.example.org}INBOX.$name2")) {
            echo 
"renommage de la boîte aux lettres '$name1' en '$name2'<br />\n";
            
$newname $name2;
        } else {
            echo 
"imap_renamemailbox sur la nouvelle boîte aux lettres a échoué : " imap_last_error() . "<br />\n";
        }
    } else {
        echo 
"imap_status sur la nouvelle boîte aux lettres a échoué : " imap_last_error() . "<br />\n";
    }

    if (@
imap_deletemailbox($mbox"{imap.example.org}INBOX.$newname")) {
        echo 
"nouvelle boite aux lettres supprimée pour remettre tout en état<br />\n";
    } else {
        echo 
"imap_deletemailbox sur la nouvelle boîte aux lettres a échoué : " implode("<br />\n"imap_errors()) . "<br />\n";
    }

} else {
    echo 
"Impossible de créer une nouvelle boîte aux lettres : " implode("<br />\n"imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Voir aussi



imap_delete

(PHP 4, PHP 5)

imap_deleteMarque le fichier pour l'effacement, dans la boîte aux lettres courante

Description

bool imap_delete ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

Marque les messages msg_number pour l'effacement. L'effacement réel n'interviendra que lors de l'appel de la fonction imap_expunge() ou de imap_close() avec le paramètre optionnel CL_EXPUNGE.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Vous pouvez le définir à FT_UID qui demande à la fonction de traiter l'argument msg_number comme un UID.

Valeurs de retour

Retourne TRUE.

Exemples

Exemple #1 Exemple avec imap_delete()

<?php

$mbox 
imap_open("{imap.example.org}INBOX""username""password")
    or die(
"Connexion impossible : " imap_last_error());

$check imap_mailboxmsginfo($mbox);
echo 
"Nombre de messages avant effacement : " $check->Nmsgs "<br />\n";

imap_delete($mbox1);

$check imap_mailboxmsginfo($mbox);
echo 
"Nombre de messages après effacement : " $check->Nmsgs "<br />\n";

imap_expunge($mbox);

$check imap_mailboxmsginfo($mbox);
echo 
"Nombre de messages après imap_expunge : " $check->Nmsgs "<br />\n";

imap_close($mbox);
?>

Notes

Note:

Les boîtes aux lettres POP3 n'ont pas les flags de leurs messages de sauvegardés entre les connexions, donc, la fonction imap_expunge() doit être appelée pendant la même connexion pour que les messages marquées pour effacement soient réellement purgés.

Voir aussi



imap_deletemailbox

(PHP 4, PHP 5)

imap_deletemailboxEfface une boîte aux lettres

Description

bool imap_deletemailbox ( resource $imap_stream , string $mailbox )

Efface la boîte aux lettres spécifiée.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_errors

(PHP 4, PHP 5)

imap_errorsRetourne toutes les erreurs IMPA survenues

Description

array imap_errors ( void )

Cette fonction retourne un tableau de tous les messages d'erreurs IMAP générés depuis le dernier appel à imap_errors() ou depuis le début de la page.

Lorsque imap_errors() est appelée, la pile d'erreurs est vidée.

Valeurs de retour

Cette fonction retourne un tableau contenant tous les messages d'erreur IMAP générés depuis le dernier appel à la fonction imap_errors() ou depuis le début de la page. Retourne FALSE si aucun message d'erreur n'est disponible.

Voir aussi



imap_expunge

(PHP 4, PHP 5)

imap_expungeEfface tous les messages marqués pour l'effacement

Description

bool imap_expunge ( resource $imap_stream )

Efface tous les messages marqués pour l'effacement par imap_delete(), imap_mail_move(), ou imap_setflag_full().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne TRUE.



imap_fetch_overview

(PHP 4, PHP 5)

imap_fetch_overviewLit le sommaire des en-têtes de messages

Description

array imap_fetch_overview ( resource $imap_stream , string $sequence [, int $options = 0 ] )

Lit les en-têtes des courriers électroniques de la séquence sequence et retourne un sommaire de leur contenu.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

sequence

Une description de la séquence du message. Vous pouvez énumérer les messages désirés avec la syntaxe X,Y, ou récupérer tous les messages d'un intervalle, avec la syntaxe X:Y

options

sequence va contenir une séquence d'indice de message ou d'UID, si flags contient FT_UID.

Valeurs de retour

Retourne un tableau d'objets décrivant l'en-tête de chaque message. L'objet ne définira une propriété que si elle existe. Les propriétés possibles sont :

  • subject : le sujet du message
  • from : l'expéditeur
  • to : le destinataire
  • date : la date d'expédition
  • message_id : l'identification du message
  • references : la référence sur l'id de ce message
  • in_reply_to : la réponse à cet identifiant de message
  • size : la taille en octets
  • uid : UID du message dans la boîte aux lettres
  • msgno : le numéro de séquence du message dans la boîte
  • recent : ce message est récent
  • flagged : ce message est marqué
  • answered : ce message a donné lieu à une réponse
  • deleted : ce message est marqué pour l'effacement
  • seen : ce message est déjà lu
  • draft : ce message est un brouillon

Exemples

Exemple #1 Exemple avec imap_fetch_overview()

<?php
$mbox 
imap_open("{imap.example.org:143}INBOX""username""password")
     or die(
"Connexion impossible : " imap_last_error());

$MC imap_check($mbox);

// Récupère le sommaire pour tous les messages contenus dans INBOX
$result imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach (
$result as $overview) {
    echo 
"#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
    
{$overview->subject}\n";
}
imap_close($mbox);
?>

Voir aussi



imap_fetchbody

(PHP 4, PHP 5)

imap_fetchbodyRetourne une section extraite du corps d'un message

Description

string imap_fetchbody ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] )

Récupère une section particulière du corps des messages spécifiés. Les parties du corps ne sont pas décodées par cette fonction.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

section

Le numéro de la section. C'est une chaîne d'entiers, délimités par une virgule qui correspondent aux index dans la liste des sections du message, tel que prévu par la spécification IMPA4.

options

L'option imap_fetchbody() est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - msg_number est un UID
  • FT_PEEK - Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.
  • FT_INTERNAL - La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

Valeurs de retour

Retourne une section particulière du corps des messages spécifiés, sous la forme d'une chaîne de caractères.

Voir aussi



imap_fetchheader

(PHP 4, PHP 5)

imap_fetchheaderRetourne l'en-tête d'un message

Description

string imap_fetchheader ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

imap_fetchheader() retourne l'en-tête brut et complet » RFC2822 du message msgno, sous la forme d'une chaîne.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Les options possibles sont :

  • FT_UID - msgno est un UID
  • FT_INTERNAL - La chaîne renvoyée est au format "internal" , c'est-à-dire sans canonisation des CRLF
  • FT_PREFETCHTEXT - RFC822.TEXT doit être pré téléchargé en même temps que l'en-tête. Cela réduit le RTT sur une connexion IMAP, si le message complet est souhaité. (e.g. dans une opération de sauvegarde dans un fichier).

Valeurs de retour

Retourne l'en-tête du message spécifié, sous la forme d'une chaîne de caractères.

Voir aussi



imap_fetchmime

(PHP 5 >= 5.3.6)

imap_fetchmimeRécupère les en-têtes MIME pour une section particulière du message

Description

string imap_fetchmime ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] )

Récupère les en-têtes MIME pour une section particulière du corps d'un message spécifique.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message.

section

Le numéro de la section. C'est une chaîne d'entiers délimités par une virgule qui représente l'index de la liste des sections du corps du message, tel que spécifié par l'IMAP4.

options

Un masque d'une ou plusieurs options suivantes :

  • FT_UID - Le paramètre msg_number est un UID.
  • FT_PEEK - Ne pas placer le drapeau \Seen s'il n'est pas déjà défini.
  • FT_INTERNAL - La chaîne retournée est en un format interne, et ne sera pas canonisée en CRLF.

Valeurs de retour

Retourne les en-têtes MIME d'une section particulière du corps du message spécifié, sous la forme d'une chaîne de caractères.

Voir aussi



imap_fetchstructure

(PHP 4, PHP 5)

imap_fetchstructureLit la structure d'un message

Description

object imap_fetchstructure ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

imap_fetchstructure() lit la structure du message msg_number.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Ce paramètre optionnel n'a qu'une seule option, FT_UID, qui demande à la fonction de traiter l'argument msg_number comme un UID.

Valeurs de retour

Retourne un objet avec des propriétés d'enveloppe, de date interne, de taille, de structure de flags et de corps, ainsi qu'un objet pour chaque attachement. La structure est la suivante :

Objets retournés par imap_fetchstructure()
type Type primaire de corps
encoding Codage de transfert du corps
ifsubtype TRUE s'il y a une chaîne de sous type
subtype sous type MIME
ifdescription TRUE s'il y a une chaîne de description
description Chaîne de description du contenu
ifid TRUE s'il y a une chaîne d'identification
id Chaîne d'identification
lines Nombre de lignes
bytes Nombre d'octets
ifdisposition TRUE s'il y a une chaîne de disposition
disposition Chaîne de disposition
ifdparameters TRUE s'il y a un tableau de paramètres dparameters
dparameters tableau d'objets où chaque objet a une propriété "attribute" et une propriété "value" correspondant aux paramètres d'en-têtes Content-disposition MIME.
ifparameters TRUE si le tableau de paramètres existe
parameters Tableau d'objets où chacun a une propriété "attribute" et une propriété "value".
parts Tableau d'objets décrivant chaque partie MIME du message

Type primaire de corps (peut varier suivant la bibliothèque utilisée)
0text
1multipart
2message
3application
4audio
5image
6video
7other

Codage de transfert (peut varier suivant la bibliothèque utilisée)
07BIT
18BIT
2BINARY
3BASE64
4QUOTED-PRINTABLE
5OTHER

Voir aussi



imap_gc

(PHP 5 >= 5.3.0)

imap_gcEfface le cache IMAP

Description

bool imap_gc ( resource $imap_stream , int $caches )

Supprime toutes les entrées d'un type donné dans le cache IMAP.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

caches

Indique le type de cache à purger. Cela peut être la combinaison des constantes suivantes : IMAP_GC_ELT (cache des éléments de message), IMAP_GC_ENV (enveloppe et corps), IMAP_GC_TEXTS (textes).

Valeurs de retour

Returns TRUE.

Exemples

Exemple #1 Exemple avecimap_gc()

<?php

$mbox 
imap_open("{imap.example.org:143}""username""password");

imap_gc($mboxIMAP_GC_ELT);

?>



imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quotaLit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles

Description

array imap_get_quota ( resource $imap_stream , string $quota_root )

Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles.

Pour une version utilisateur, non administrateur, de cette fonction, reportez-vous à la fonction imap_get_quotaroot().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

quota_root

quota_root doit être de la forme : "user.nom", où "nom" est le nom de la boîte aux lettres que vous souhaitez analyser.

Valeurs de retour

Retourne un tableau contenant les valeurs de quota et courante de la boîte aux lettres quota_root. Le quota représente la taille maximale de votre boîte aux lettres. La valeur courante est l'espace actuellement utilisé par votre boîte aux lettres. imap_get_quota() retournera FALSE en cas d'échec.

Depuis PHP 4.3, la fonction reflète plus fidèlement les fonctionnalités édictée par la » RFC2087. Le tableau retourné a changé pour supporter un nombre illimité de ressources retournées (i.e. messages ou sous-dossiers) avec chaque ressource nommée qui est identifiée par une clé. Chaque clé contient alors un autre tableau avec l'utilisation et le quota. L'exemple ci-dessous montre comment l'utiliser.

Pour des raisons de compatibilité, la méthode d'accès originale est toujours disponible, mais il est recommandé de l'abandonner.

Exemples

Exemple #1 Exemple avec imap_get_quota()

<?php
$mbox 
imap_open("{imap.example.org}""mailadmin""password"OP_HALFOPEN)
      or die(
"Impossible de se connecter : " imap_last_error());

$quota_value imap_get_quota($mbox"user.kalowsky");
if (
is_array($quota_value)) {
    echo 
"Niveau d'utilisation : " $quota_value['usage'];
    echo 
"Quota : " $quota_value['limit'];
}

imap_close($mbox);
?>

Exemple #2 Exemple avec imap_get_quota() 4.3 ou supérieur

<?php
$mbox 
imap_open("{imap.example.org}""mailadmin""password"OP_HALFOPEN)
      or die(
"Impossible de se connecter : " imap_last_error());

$quota_values imap_get_quota($mbox"user.kalowsky");
if (
is_array($quota_values)) {
   
$storage $quota_values['STORAGE'];
   echo 
"Utilisation actuelle de la capacité de stockage : " .  $storage['usage'];
   echo 
"Quota actuel de stockage  : " .  $storage['limit'];

   
$message $quota_values['MESSAGE'];
   echo 
"Niveau d'utilisation de MESSAGE  : " .  $message['usage'];
   echo 
"Quota de MESSAGE : " .  $message['limit'];

   
/* ...  */
}

imap_close($mbox);
?>

Notes

imap_get_quota() ne fonctionne actuellement qu'avec les bibliothèques c-client2000.

imap_stream doit avoir été créé avec la fonction imap_open(). Ce flux est nécessairement ouvert en tant qu'administrateur du serveur, pour que les droits nécessaires lui soient alloués.

Voir aussi



imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5)

imap_get_quotarootLit les quotas de chaque utilisateur

Description

array imap_get_quotaroot ( resource $imap_stream , string $quota_root )

Récupère les quotas de chaque utilisateur. La valeur limite représente l'espace limite alloué pour cette utilisateur pour l'utilisation de sa boîte aux lettres. La valeur de l'utilisation représente la taille actuelle de la boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

quota_root

quota_root doit être un nom de boîte aux lettres (i.e. INBOX).

Valeurs de retour

Retourne un tableau d'entiers, contenant les quotas de la boîte aux lettres de l'utilisateur. Toutes les valeurs sont représentées par une clé basée sur le nom de la boîte, et par un tableau représentant le niveau d'utilisation et les limites.

Cette fonction retournera FALSE si une erreur est survenue, et un tableau de données si la réponse du serveur n'a pu être comprise.

Exemples

Exemple #1 Exemple avec imap_get_quotaroot()

<?php
$mbox 
imap_open("{imap.example.org}""kalowsky""password"OP_HALFOPEN)
      or die(
"Connexion impossible : " imap_last_error());

$quota imap_get_quotaroot($mbox"INBOX");
if (
is_array($quota)) {
   
$storage $quota_values['STORAGE'];
   echo 
"STORAGE niveau d'utilisation : " .  $storage['usage'];
   echo 
"STORAGE taille limite : " .  $storage['limit'];

   
$message $quota_values['MESSAGE'];
   echo 
"MESSAGE niveau d'utilisation : " .  $message['usage'];
   echo 
"MESSAGE taille limite : " .  $message['limit'];

   
/* ...  */

}

imap_close($mbox);
?>

Notes

Cette fonction est uniquement accessible aux utilisateurs de la bibliothèque c-client2000 ou plus récent.

imap_stream est une ressource de connexion, obtenue grâce à imap_open(). Cette connexion doit être ouverte avec l'identité de l'utilisateur que l'on étudie.

Voir aussi

  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres
  • imap_set_quota() - Modifie le quota d'une boîte aux lettres
  • imap_get_quota() - Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles



imap_getacl

(PHP 5)

imap_getaclRetourne le ACL pour la boîte aux lettres

Description

array imap_getacl ( resource $imap_stream , string $mailbox )

Récupère l'ACL pour la boîte aux lettres donnée.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Valeurs de retour

Retourne un tableau associatif sous la forme "dossier" => "acl".

Exemples

Exemple #1 Exemple avec imap_getacl()

<?php

print_r
(imap_getacl($conn_id'user.joecool'));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [asubfolder] => lrswipcda
    [anothersubfolder] => lrswipcda
)

Notes

Cette fonction n'est actuellement disponible que pour les utilisateurs de la bibliothèque c-client2000 ou supérieur.

Voir aussi



imap_getmailboxes

(PHP 4, PHP 5)

imap_getmailboxesListe les boîtes aux lettres, et retourne les détails de chacune

Description

array imap_getmailboxes ( resource $imap_stream , string $ref , string $pattern )

Liste les boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau d'objets contenant les informations sur les boîtes aux lettres. Chaque objet possède un attribut de name, qui contient le nom complet de la boîte aux lettres, delimiter qui est le délimiteur hiérarchique et attributes. attributes est un masque de bits, qui contient :

  • LATT_NOINFERIORS - Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci) et ne peut en contenir aucun. Un appel à la fonction imap_createmailbox() ne fonctionnera pas sur cette boîte.

  • LATT_NOSELECT - Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).

  • LATT_MARKED - Cette boîte aux lettres est marquée. Ceci signifie qu'elle peut contenir des nouveaux messages depuis la dernière fois qu'elle a été vérifiée. Ce marqueur n'est pas fourni avec tous les serveurs IMPA.

  • LATT_UNMARKED - Cette boîte aux lettres n'est pas marquée et ne contient pas de nouveaux messages. Si MARKED ou UNMARKED est fourni, vous pouvez supposer que le serveur IMAP supporte cette fonctionnalité pour cette boîte aux lettres.

Exemples

Exemple #1 Exemple avec imap_getmailboxes()

<?php
$mbox 
imap_open("{imap.example.org}""username""password"OP_HALFOPEN)
      or die(
"Connexion impossible : " imap_last_error());

$list imap_getmailboxes($mbox"{imap.example.org}""*");
if (
is_array($list)) {
    foreach (
$list as $key => $val) {
        echo 
"($key) ";
        echo 
imap_utf7_decode($val->name) . ",";
        echo 
"'" $val->delimiter "',";
        echo 
$val->attributes "<br />\n";
    }
} else {
    echo 
"imap_getmailboxes a échoué : " imap_last_error() . "\n";
}

imap_close($mbox);
?>

Voir aussi



imap_getsubscribed

(PHP 4, PHP 5)

imap_getsubscribedListe toutes les boîtes aux lettres souscrites

Description

array imap_getsubscribed ( resource $imap_stream , string $ref , string $pattern )

Liste toutes les boîtes aux lettres souscrites.

imap_getsubscribed() est identique à imap_getmailboxes(), mais ne retourne que les boîtes aux lettres auxquelles l'utilisateur est inscrit.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau d'objets contenant les informations sur les boîtes aux lettres. Chaque objet possède un attribut de name, qui contient le nom complet de la boîte aux lettres, delimiter qui est le délimiteur hiérarchique et attributes. attributes est un masque de bits, qui contient :

  • LATT_NOINFERIORS - Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci).
  • LATT_NOSELECT - Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).
  • LATT_MARKED - Cette boîte aux lettres est marquée. Utilisé uniquement avec UW-IMAPD.
  • LATT_UNMARKED - Cette boîte aux lettres n'est pas marquée. Utilisé uniquement avec UW-IMAPD.



imap_header

(PHP 4, PHP 5)

imap_headerAlias de imap_headerinfo()

Description

Cette fonction est un alias de : imap_headerinfo().



imap_headerinfo

(PHP 4, PHP 5)

imap_headerinfoLit l'en-tête du message

Description

object imap_headerinfo ( resource $imap_stream , int $msg_number [, int $fromlength = 0 [, int $subjectlength = 0 [, string $defaulthost = NULL ]]] )

Récupère les informations sur un numéro de message donné en lisant ses en-têtes.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

fromlength

Nombre de caractères pour la propriété fetchfrom. Doit être plus grand ou égal à 0.

subjectlength

Nombre de caractères pour la propriété fetchsubject. Doit être plus grand ou égal à 0.

defaulthost

Valeurs de retour

Retourne les informations dans un objet contenant les propriétés suivantes :

  • "toaddress" : toute la ligne d'en-tête to: jusqu'à 1024 caractères
  • "to" : un tableau d'objets issus de la ligne to: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "fromaddress" : toute la ligne d'en-tête from: jusqu'à 1024 caractères
  • "from" : un tableau d'objets issus de la ligne From: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "ccaddress" : toute la ligne d'en-tête cc: jusqu'à 1024 caractères
  • "cc" : un tableau d'objets issus de la ligne cc: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "bccaddress" : toute la ligne d'en-tête bcc: jusqu'à 1024 caractères
  • "bcc" : un tableau d'objets issus de la ligne Bcc: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "reply_toaddress" : toute la ligne d'en-tête Reply_to: jusqu'à 1024 caractères
  • "reply_to" : un tableau d'objets issus de la ligne Reply_to: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "senderaddress" : toute la ligne d'en-tête Sender: jusqu'à 1024 caractères
  • "sender" : un tableau d'objets issus de la ligne Sender: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "return_pathaddress" : toute la ligne d'en-tête Return-path: jusqu'à 1024 caractères
  • "return_path" : un tableau d'objets issus de la ligne Return-path: avec les propriétés suivantes : personal, adl, mailbox, et host
  • remail -
  • "date" : La date du message, telle que trouvée dans les en-têtes
  • "Date" : Identique à "date"
  • "subject" : Le sujet du message
  • "Subject" : Identique à "subject"
  • "in_reply_to" :
  • "message_id" :
  • "newsgroups" :
  • "followup_to" :
  • "references" :
  • "Recent" : R si le message est récent et lu, N si le message est récent et non lu, " " si le message n'est pas récent.
  • "Unseen" : U si le message est non lu ET non récent, " " si le message est non lu et récent
  • "Flagged" : F si le message contient un drapeau, " " sinon
  • "Answered" : A si une réponse a été faite à ce message, " " sinon
  • "Deleted" : D si le message est effacé, " " sinon
  • "Draft" : X si le message est un brouillon, " " sinon
  • "Msgno" : Le numéro du message
  • "MailDate" :
  • "Size" : La taille du message
  • "udate" : Date de l"envoi du message, sous la forme d"une date Unix
  • "fetchfrom" : Ligne "from" formatée afin de tenir dans fromlength caractères
  • "fetchsubject" : Ligne "subject" formatée afin de tenir dans subjectlength caractères

Voir aussi



imap_headers

(PHP 4, PHP 5)

imap_headersRetourne les en-têtes de tous les messages d'une boîte aux lettres

Description

array imap_headers ( resource $imap_stream )

Retourne les en-têtes de tous les messages d'une boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne un tableau de chaînes contenant les en-têtes des messages : une chaîne par message.



imap_last_error

(PHP 4, PHP 5)

imap_last_errorRetourne la dernière erreur survenue

Description

string imap_last_error ( void )

imap_last_error() retourne le texte complet de la dernière erreur IMAP (si elle existe) qui est survenue lors de la dernière requête. La pile d'erreur n'est pas touchée. Appeler imap_last_error() successivement, sans de nouvelles erreurs, retournera la même erreur.

Valeurs de retour

Retourne le texte complet du dernier message d'erreur IMAP survenu sur la page courante. Retourne FALSE si aucun message n'est disponible.

Voir aussi



imap_list

(PHP 4, PHP 5)

imap_listLit la liste des boîtes aux lettres

Description

array imap_list ( resource $imap_stream , string $ref , string $pattern )

Lit la liste des boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau contenant les noms des boîtes aux lettres.

Exemples

Exemple #1 Exemple avec imap_list()

<?php
$mbox 
imap_open("{imap.example.org}""username""password"OP_HALFOPEN)
      or die(
"Connexion impossible : " imap_last_error());

$list imap_list($mbox"{imap.example.org}""*");
if (
is_array($list)) {
    foreach (
$list as $val) {
        echo 
imap_utf7_decode($val) . "\n";
    }
} else {
    echo 
"imap_list a échoué : " imap_last_error() . "\n";
}

imap_close($mbox);
?>

Voir aussi

  • imap_getmailboxes() - Liste les boîtes aux lettres, et retourne les détails de chacune
  • imap_lsub() - Liste toutes les boîtes aux lettres enregistrées



imap_listmailbox

(PHP 4, PHP 5)

imap_listmailboxAlias de imap_list()

Description

Cette fonction est un alias de : imap_list().



imap_listscan

(PHP 4, PHP 5)

imap_listscanLit la liste des boîtes aux lettres, et y recherche une chaîne

Description

array imap_listscan ( resource $imap_stream , string $ref , string $pattern , string $content )

Retourne un tableau contenant les noms des boîtes aux lettres qui contiennent la chaîne content dans leur nom.

Cette fonction est similaire à imap_listmailbox(), mais va aussi vérifier la présence de la chaîne content dans les messages de la boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

content

La chaîne cherchée

Valeurs de retour

Retourne un tableau contenant les noms des boîtes aux lettres qui contiennent la chaîne content dans le nom de la boîte aux lettres.

Voir aussi



imap_listsubscribed

(PHP 4, PHP 5)

imap_listsubscribedAlias de imap_lsub()

Description

Cette fonction est un alias de : imap_lsub().



imap_lsub

(PHP 4, PHP 5)

imap_lsubListe toutes les boîtes aux lettres enregistrées

Description

array imap_lsub ( resource $imap_stream , string $ref , string $pattern )

Récupère un tableau contenant toutes les boîtes aux lettres auxquelles vous avez souscrit.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau contenant toutes les boîtes aux lettres souscrites.

Voir aussi



imap_mail_compose

(PHP 4, PHP 5)

imap_mail_composeCrée un message MIME

Description

string imap_mail_compose ( array $envelope , array $body )

Crée un message MIME basé sur l'enveloppe envelope et les sections body.

Liste de paramètres

envelope

Un tableau associatif contenant les champs des en-têtes. Les clés valides sont : "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc", "message_id" et "custom_headers" (qui contient un tableau associatif d'autres en-têtes).

body

Un tableau indexé du corps

Un corps est un tableau associatif qui peut contenir les clés suivantes : "type", "encoding", "charset", "type.parameters", "subtype", "id", "description", "disposition.type", "disposition", "contents.data", "lines", "bytes" et "md5".

Valeurs de retour

Retourne le message MIME.

Exemples

Exemple #1 Exemple avec imap_mail_compose()

<?php

$envelope
["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename "/tmp/imap.c.gz";
$fp fopen($filename"r");
$contents fread($fpfilesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo 
nl2br(imap_mail_compose($envelope$body));

?>



imap_mail_copy

(PHP 4, PHP 5)

imap_mail_copyCopie les messages spécifiés dans une boîte aux lettres

Description

bool imap_mail_copy ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] )

Copie les messages email spécifiés par msglist dans la boîte aux lettres nommée mbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msglist

msglist est un intervalle, et pas seulement une liste de numéros de message (comme décrit dans la » RFC2060).

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un masque, qui peut contenir une ou plusieurs des valeurs suivantes :

  • CP_UID - la séquence de nombre contient des UIDS
  • CP_MOVE - Efface les messages après copie

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_mail_move

(PHP 4, PHP 5)

imap_mail_moveDéplace des messages dans une boîte aux lettres

Description

bool imap_mail_move ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] )

imap_mail_move() déplace les messages spécifiés par msglist dans la boîte aux lettres mbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msglist

msglist est un intervalle, et pas seulement une liste de messages (comme décrit dans la » RFC2060).

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un champ de bit et peut contenir une seule valeur :

  • CP_UID - La séquence de nombres contient des UID

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

imap_mail_move() va marquer l'email original avec un marqueur de suppression, pour effectivement le supprimer, un appel à imap_expunge() est nécessaire.

Voir aussi



imap_mail

(PHP 4, PHP 5)

imap_mailEnvoie un message mail

Description

bool imap_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $cc = NULL [, string $bcc = NULL [, string $rpath = NULL ]]]] )

imap_mail() permet d'envoyer des mails avec une gestion correcte des destinataires Cc et Bcc.

Les paramètres to, cc et bcc sont tous des chaînes et sont analysées comme des listes d'adresses » RFC822.

Liste de paramètres

to

Le destinataire

subject

Le sujet du mail

message

Le corps du mail

additional_headers

Une chaîne de caractères contenant les en-têtes additionnels à envoyer avec le mail

cc

bcc

Les destinataires spécifiés dans le bcc recevront le mail mais sont exclus des en-têtes.

rpath

Utiliser ce paramètre pour spécifier le chemin de retour en cas d'échec de délivrance du mail. C'est utile lorsque vous utilisez PHP comme client mail pour plusieurs utilisateurs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_mailboxmsginfo

(PHP 4, PHP 5)

imap_mailboxmsginfoLit les informations à propos de la boîte aux lettres courante

Description

object imap_mailboxmsginfo ( resource $imap_stream )

imap_mailboxmsginfo() vérifie le statut courant de la boîte aux lettres sur le serveur. C'est similaire à l'utilisation de la fonction imap_status(), mais fournie également la taille totale des messages de la boîte aux lettres, ce qui demande un peu plus de temps à l'exécution.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne un objet avec les propriétés suivantes :

Propriétés de boîte aux lettres
Date Date de dernière modification du contenu de la boîte aux lettres (date et heure courantes
Driver Pilote
Mailbox Nom de la boîte aux lettres
Nmsgs Nombre de messages
Recent Nombre de messages récents
Unread Nombre de messages non lus
Deleted Nombre de messages effacés
Size Taille de la boîte aux lettres

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_mailboxmsginfo()

<?php

$mbox 
imap_open("{imap.example.org}INBOX""username""password")
      or die(
"Connexion impossible : " imap_last_error());

$check imap_mailboxmsginfo($mbox);

if (
$check) {
    echo 
"Date : "     $check->Date    "<br />\n" ;
    echo 
"Pilote : "   $check->Driver  "<br />\n" ;
    echo 
"Boîte aux lettres : "  $check->Mailbox "<br />\n" ;
    echo 
"Messages : " $check->Nmsgs   "<br />\n" ;
    echo 
"Récent : "   $check->Recent  "<br />\n" ;
    echo 
"Non lu : "   $check->Unread  "<br />\n" ;
    echo 
"Effacé : "  $check->Deleted "<br />\n" ;
    echo 
"Taille : "     $check->Size    "<br />\n" ;
} else {
    echo 
"imap_check() a échoué : " imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>



imap_mime_header_decode

(PHP 4, PHP 5)

imap_mime_header_decodeDécode les éléments MIME d'un en-tête

Description

array imap_mime_header_decode ( string $text )

Décode un message MIME qui contient des données non ASCII (voir » RFC2047).

Liste de paramètres

text

Le texte MIME

Valeurs de retour

Les éléments décodés sont retournés dans un tableau d'objets. Chacun de ces objets a deux propriétés : charset et text.

Si l'élément n'a pas été encodé, ou, en d'autres termes, s'il est en clair (plain US_ASCII), la propriété charset est mise à default.

Exemples

Exemple #1 Exemple avec imap_mime_header_decode()

<?php
$text 
"=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements imap_mime_header_decode($text);
for (
$i=0$i<count($elements); $i++) {
    echo 
"Charset : {$elements[$i]->charset}\n";
    echo 
"Texte : {$elements[$i]->text}\n\n";
}
?>

L'exemple ci-dessus va afficher :

Charset: ISO-8859-1
Text: Keld Jørn Simonsen

Charset: default
Text:  <keld@example.com>

Dans l'exemple ci-dessus, on trouve deux éléments : le premier a été encodé en ISO-8859-1, et le second est en clair.

Voir aussi

  • imap_utf8() - Convertit du texte au format MIME en UTF-8



imap_msgno

(PHP 4, PHP 5)

imap_msgnoRetourne le numéro de séquence du message pour un UID donné

Description

int imap_msgno ( resource $imap_stream , int $uid )

Retourne le numéro de séquence du message pour l'UID uid.

Cette fonction est l'inverse de la fonction imap_uid().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

uid

L'UID du message

Valeurs de retour

Retourne le numéro de séquence du message pour l'UID uid.

Voir aussi



imap_num_msg

(PHP 4, PHP 5)

imap_num_msgRetourne le nombre de messages dans la boîte aux lettres courante

Description

int imap_num_msg ( resource $imap_stream )

Retourne le nombre de messages dans la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne le nombre de messages dans la boîte aux lettres courante, sous la forme d'un entier.

Voir aussi

  • imap_num_recent() - Retourne le nombre de messages récents dans la boîte aux lettres courante
  • imap_status() - Retourne les informations de statut sur une boîte aux lettres



imap_num_recent

(PHP 4, PHP 5)

imap_num_recentRetourne le nombre de messages récents dans la boîte aux lettres courante

Description

int imap_num_recent ( resource $imap_stream )

Retourne le nombre de messages récents dans la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne le nombre de messages récents dans la boîte aux lettres courante, sous la forme d'un entier.

Voir aussi

  • imap_num_msg() - Retourne le nombre de messages dans la boîte aux lettres courante
  • imap_status() - Retourne les informations de statut sur une boîte aux lettres



imap_open

(PHP 4, PHP 5)

imap_openOuvre un flux IMAP vers une boîte aux lettres

Description

resource imap_open ( string $mailbox , string $username , string $password [, int $options = NIL [, int $n_retries = 0 [, array $params = NULL ]]] )

Ouvre un flux IMAP vers la boîte aux lettres mailbox.

Cette fonction peut aussi être utilisée pour ouvrir des flots sur des serveurs POP3 et NNTP mais quelques fonctions et fonctionnalités ne sont disponibles qu'avec les serveurs IMAP.

Liste de paramètres

mailbox

Un nom de boîte aux lettres est constitué d'une adresse de serveur, et d'une adresse de boîte sur ce serveur. Le mot réservé INBOX représente la boîte aux lettres de l'utilisateur courant. Les noms de boîtes aux lettres qui contiennent des caractères spéciaux (en dehors de l'espace ASCII) doivent être encodés avec imap_utf7_encode().

L'adresse du serveur, mise entre accolades '{' et '}', est constituée du nom du serveur ou de son adresse IP, d'une spécification de protocole (commençant par '/') et d'un port optionnel (spécifié avec ':').

Cette partie est obligatoire dans les paramètres de la boîte aux lettres.

Tous les noms commençant par { sont des noms distants et sont sous la forme "{" nom_systeme_distant [":" port] [flags] "}" [nom_mailbox] où :

  • remote_system_name : Nom de domaine Internet ou une adresse IP de serveur entouré de guillemets.
  • port : numéro de port TCP (optionnel), la valeur par défaut est la valeur du port pour ce service.
  • flags : options, voir la table suivante.
  • mailbox_name : nom de la mailbox distante, par défaut : INBOX

Flags optionnels pour les noms
Flag Description
/service=service service pour l'accès à la mailbox, par défaut : "imap"
/user=user nom de l'utilisateur distant pour l'identification sur le serveur
/authuser=user utilisateur distance d'identification ; si spécifié, ce sera le nom de l'utilisateur dont le mot de passe est utilisé (e.g. administrator)
/anonymous accès distant en anonyme
/debug la télémétrie d'enregistrement du protocole dans les logs de déboguage de l'application
/secure ne transmet pas un mot de passe en clair à travers le réseau
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 équivalent de /service=imap
/pop3 équivalent de /service=pop3
/nntp équivalent de /service=nntp
/norsh ne pas utiliser rsh ou ssh pour établir une session de pré identification IMAP
/ssl utilise Secure Socket Layer pour crypter la session
/validate-cert valide les certificats depuis le serveur TLS/SSL (c'est le comportement par défaut)
/novalidate-cert ne pas valider les certificats depuis le serveur TLS/SSL, nécessaire si le serveur utilise des certificats auto-signés
/tls force l'utilisation de start-TLS pour chiffrer la session et rejette les connexions aux serveurs qui ne le supporte pas
/notls n'utilise pas start-TLS pour chiffrer la session, y compris avec les serveurs qui le supporte
/readonly demande un accès en lecture seule sur mailbox (IMAP uniquement ; ignoré sous NNTP, et une erreur avec SMTP et POP3)

username

Le nom d'utilisateur

password

Le mot de passe associé avec l'utilisateur username

options

options est un masque de bit, qui peut prendre une ou plusieurs des valeurs suivantes :

  • OP_READONLY : Ouvre une boîte aux lettres en lecture seule
  • OP_ANONYMOUS : Ne pas utiliser, ou modifier le fichier .newsrc pour les news (NNTP uniquement)
  • OP_HALFOPEN : Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.
  • CL_EXPUNGE : Supprime automatiquement la boîte aux lettres de la liste, lors de la terminaison du flux (voir aussi imap_delete() and imap_expunge())
  • OP_DEBUG : négociations de déboguage du protocole
  • OP_SHORTCACHE : Cache court (elt uniquement)
  • OP_SILENT : Ne pas transmettre les événements (utilisation interne)
  • OP_PROTOTYPE : Retourne le prototype du driver
  • OP_SECURE : Ne pas effectuer des identifications non sécurisées

n_retries

Le nombre maximal de tentatives de connexion.

params

Paramètres de connexion ; les clés peuvent être utilisées pour définir un ou plusieurs paramètres de connexion :

  • DISABLE_AUTHENTICATOR - Désactive les propriétés d'authentification

Valeurs de retour

Retourne un flux IMAP en cas de succès, ou FALSE si une erreur survient.

Historique

Version Description
5.3.2 Le paramètre params a été ajouté.
5.2.0 Le paramètre n_retries a été ajouté.

Exemples

Exemple #1 Différentes utilisations de imap_open()

<?php
// Pour se connecter à un serveur IMAP fonctionnant sur le port 143 de la
// machine locale, faites ceci :
$mbox imap_open("{localhost:143}INBOX""user_id""password");

// Pour se connecter à un serveur POP3 fonctionnant sur le port 110 du
// serveur local, faites ceci :
$mbox imap_open ("{localhost:110/pop3}INBOX""user_id""password");

// Pour se connecter à un serveur SSL IMAP ou POP3, ajoutez /ssl
// après la spécification du protocole :
$mbox imap_open ("{localhost:993/imap/ssl}INBOX""user_id""password");

// Pour se connecter à un serveur SSL IMAP ou POP3 avec un certificat auto-signé
// ajoutez /ssl/novalidate-cert après le protocole :
$mbox imap_open ("{localhost:995/pop3/ssl/novalidate-cert}""user_id""password");

// Pour se connecter à un serveur NNTP qui fonctionne sur
// le port 119 de la machine locale on peut utiliser la commande:
$nntp imap_open ("{localhost:119/nntp}comp.test""""");

// Pour se connecter à un serveur distant, remplacez "localhost" par
// le nom ou l'adresse IP de la machine.
?>

Exemple #2 Exemple avec imap_open()

<?php
$mbox 
imap_open("{imap.example.org:143}""username""password");

echo 
"<h1>Mailboxes</h1>\n";
$folders imap_listmailbox($mbox"{imap.example.org:143}""*");

if (
$folders == false) {
    echo 
"Appel échoué<br />\n";
} else {
    foreach (
$folders as $val) {
        echo 
$val "<br />\n";
    }
}

echo 
"<h1>en-têtes dans INBOX</h1>\n";
$headers imap_headers($mbox);

if (
$headers == false) {
    echo 
"Appel échoué<br />\n";
} else {
    foreach (
$headers as $val) {
        echo 
$val "<br />\n";
    }
}

imap_close($mbox);
?>

Voir aussi



imap_ping

(PHP 4, PHP 5)

imap_pingVérifie que le flux IMAP est toujours actif

Description

bool imap_ping ( resource $imap_stream )

Vérifie que le flux est toujours actif, en lui envoyant un ping. Cette fonction permet de se rendre compte qu'un mail est arrivé : c'est même la méthode préconisée pour des tests périodiques de vérification du courrier. Cette fonction peut aussi servir à garder une connexion ouverte, avec les serveurs dotés d'un délai d'expiration.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne TRUE si le flux est toujours actif, FALSE sinon.

Exemples

Exemple #1 Exemple avec imap_ping()

<?php

$imap 
imap_open("{imap.example.org}""mailadmin""password");

// après une pause
if (!imap_ping($imap)) {
    
// effectuez un traitement pour se reconnecter
}

?>



imap_qprint

(PHP 4, PHP 5)

imap_qprintConvertit une chaîne à guillemets en une chaîne à 8 bits

Description

string imap_qprint ( string $string )

Convertit la chaîne à guillemets string en une chaîne à 8 bits (selon la » RFC2045, section 6.7).

Liste de paramètres

string

Une chaîne à guillemets

Valeurs de retour

Retourne une chaîne de caractères à 8 bits.

Voir aussi

  • imap_8bit() - Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable



imap_renamemailbox

(PHP 4, PHP 5)

imap_renamemailboxRenomme une boîte aux lettres

Description

bool imap_renamemailbox ( resource $imap_stream , string $old_mbox , string $new_mbox )

imap_renamemailbox() renomme la boîte aux lettres old_mbox en new_mbox (voir la fonction imap_open() pour le format des noms mbox).

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

old_mbox

L'ancien nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

new_mbox

Le nouveau nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_reopen

(PHP 4, PHP 5)

imap_reopenRéouvre un flux IMAP vers une nouvelle boîte aux lettres

Description

bool imap_reopen ( resource $imap_stream , string $mailbox [, int $options = 0 [, int $n_retries = 0 ]] )

Réouvre la connexion spécifiée au serveur IMAP ou NNTP, avec une nouvelle boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un masque de bit, qui peut contenir les valeurs suivantes :

  • OP_READONLY - Ouvre une boîte aux lettres en lecture seule
  • OP_ANONYMOUS - Ne pas utiliser, ou modifier le fichier .newsrc pour les news (NNTP uniquement)
  • OP_HALFOPEN - Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.
  • OP_EXPUNGE - Supprime silencieusement le flux recyclé
  • CL_EXPUNGE - Supprime automatiquement la boîte aux lettres de la liste, lors de la terminaison du flux. (voir imap_delete() et imap_expunge()).

n_retries

Le nombre maximal de tentatives de connexion

Valeurs de retour

Retourne TRUE si le flux est réouvert, FALSE sinon.

Historique

Version Description
5.2.0 Le paramètre n_retries a été ajouté

Exemples

Exemple #1 Exemple avec imap_reopen()

<?php
$mbox 
imap_open("{imap.example.org:143}INBOX""username""password") or die(implode(", "imap_errors()));
// ...
imap_reopen($mbox"{imap.example.org:143}INBOX.Sent") or die(implode(", "imap_errors()));
// ..
?>



imap_rfc822_parse_adrlist

(PHP 4, PHP 5)

imap_rfc822_parse_adrlistAnalyse une adresse email

Description

array imap_rfc822_parse_adrlist ( string $address , string $default_host )

Analyse la chaîne address, tel que définie dans la » RFC2822.

Liste de paramètres

address

Une chaîne de caractères contenant les adresses

default_host

Le nom de l'hôte par défaut

Valeurs de retour

Retourne un tableau d'objets. Les propriétés des objets sont :

  • "mailbox" : Le nom de la boîte aux lettres (nom d'utilisateur)
  • "host" : Le nom de l'hôte
  • "personal" : Le nom personnel
  • "adl" : at domain source route (NDT : ???)

Exemples

Exemple #1 Exemple avec imap_rfc822_parse_adrlist()

<?php

$address_string 
"Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  imap_rfc822_parse_adrlist($address_string"example.com");
if (!
is_array($address_array) || count($address_array) < 1) {
    die(
"Erreur !\n");
}

foreach (
$address_array as $id => $val) {
    echo 
"# $id\n";
    echo 
"  Boîte   : " $val->mailbox "\n";
    echo 
"  Hôte    : " $val->host "\n";
    echo 
"  Nom    : " $val->personal "\n";
    echo 
"  adl      : " $val->adl "\n";
}
?>

L'exemple ci-dessus va afficher :

# 0
  Boîte   : doe
  Hôte    : example.com
  Nom    : Joe Doe
  adl      :
# 1
  Boîte   : postmaster
  hôte    : example.com
  Nom    :
  adl      :
# 2
  Boîte   : root
  Hôte    : example.com
  Nom    :
  adl      :

Voir aussi



imap_rfc822_parse_headers

(PHP 4, PHP 5)

imap_rfc822_parse_headersAnalyse un en-tête mail

Description

object imap_rfc822_parse_headers ( string $headers [, string $defaulthost = "UNKNOWN" ] )

Analyse la chaîne headers et retourne un objet contenant différents éléments, similaires à la fonction imap_header().

Liste de paramètres

headers

Les données à analyser

defaulthost

Le nom de l'hôte par défaut

Valeurs de retour

Retourne un objet similaire à celui retourné par la fonction imap_header(), excepté pour les drapeaux et les autres propriétés qui proviennent du serveur IMAP.

Voir aussi



imap_rfc822_write_address

(PHP 4, PHP 5)

imap_rfc822_write_addressRetourne une adresse email formatée correctement

Description

string imap_rfc822_write_address ( string $mailbox , string $host , string $personal )

Retourne une adresse email formatée correctement selon la » RFC2822.

Liste de paramètres

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

host

La partie hôte de l'email

personal

Le nom du propriétaire du compte

Valeurs de retour

Retourne une adresse email, sous la forme d'une chaîne de caractères, formatée correctement selon la » RFC2822.

Exemples

Exemple #1 Exemple avec imap_rfc822_write_address()

<?php
echo imap_rfc822_write_address("hartmut""example.com""Hartmut Holzgraefe");
?>

L'exemple ci-dessus va afficher :

Hartmut Holzgraefe <hartmut@example.com>



imap_savebody

(PHP 5 >= 5.1.3)

imap_savebodySauvegarde une partie spécifique du corps dans un fichier

Description

bool imap_savebody ( resource $imap_stream , mixed $file , int $msg_number [, string $part_number = "" [, int $options = 0 ]] )

Sauvegarde une partie du corps du message spécifié.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

file

Le chemin vers le fichier de sauvegarde, sous la forme d'une chaîne de caractères ou un descripteur de fichier valide retourné par la fonction fopen().

msg_number

Le numéro du message

part_number

Le numéro de la section. C'est une chaîne de caractères d'entiers, délimités par une virgule qui correspondent à l'index dans la liste des sections du corps, tel que prévu par la spécification IMAP4.

options

Un masque qui contient une ou plusieurs des valeurs suivantes :

  • FT_UID - Le numéro msg_number est un UID
  • FT_PEEK - Ne pas définir le drapeau \Seen s'il n'est pas déjà défini
  • FT_INTERNAL - La chaîne de caractères retournée est dans un format interne, qui ne correspondant pas à CRLF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_scanmailbox

(PHP 4, PHP 5)

imap_scanmailboxAlias de imap_listscan()

Description

Cette fonction est un alias de : imap_listscan().




imap_set_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_set_quotaModifie le quota d'une boîte aux lettres

Description

bool imap_set_quota ( resource $imap_stream , string $quota_root , int $quota_limit )

Modifie le quota de la boîte aux lettres quota_root.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

quota_root

La boîte aux lettres dont on doit modifier le quota. Elle doit suivre le format standart IMAP pour une boîte aux lettres : user.name.

quota_limit

La taille maximale (en Ko) pour la boîte quota_root

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_set_quota()

<?php
$mbox 
imap_open("{imap.example.org:143}""mailadmin""password");

if (!
imap_set_quota($mbox"user.kalowsky"3000)) {
    echo 
"Échec lors de la définition du quota\n";
    return;
}

imap_close($mbox);
?>

Notes

imap_get_quota() ne fonctionne actuellement qu'avec les bibliothèques c-client2000.

imap_set_quota() requiert que imap_stream ait été ouvert avec un compte d'administrateur, pour avoir les droits nécessaires : elle ne fonctionnera avec aucun autre utilisateur.

Voir aussi

  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres
  • imap_get_quota() - Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles



imap_setacl

(PHP 4 >= 4.0.7, PHP 5)

imap_setaclModifie le ACL de la boîte aux lettres

Description

bool imap_setacl ( resource $imap_stream , string $mailbox , string $id , string $rights )

Définit l'ACL pour la boîte aux lettres donnée.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

id

L'identifiant de l'utilisateur dont on veut définir les droits.

rights

Les droits à donner à l'utilisateur. Le fait de passer une chaîne vide effacera l'ACL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Cette fonction n'est actuellement disponible que pour les utilisateurs de la bibliothèque c-client2000 ou supérieur.

Voir aussi



imap_setflag_full

(PHP 4, PHP 5)

imap_setflag_fullPositionne un drapeau sur un message

Description

bool imap_setflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = NIL ] )

imap_setflag_full() affecte le flag spécifié aux messages de la sequence donnée.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

sequence

Une séquence de numéro de messages. Vous pouvez énumérer les messages désirés avec la syntaxe X,Y, ou récupérer tous les messages d'un intervalle avec la syntaxe X:Y

flag

Les flags que vous pouvez modifier sont \Seen, \Answered, \Flagged, \Deleted, et \Draft (comme défini dans la » RFC2060).

options

options est un masque de bits, qui accepte uniquement la valeur suivante :

  • ST_UID - la séquence contient des UID au lieu de numéros de séquence.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_setflag_full()

<?php
$mbox 
imap_open("{imap.example.org:143}""username""password")
     or die(
"Connexion impossible : " imap_last_error());

$status imap_setflag_full($mbox"2,5""\\Seen \\Flagged");

echo 
gettype($status) . "\n";
echo 
$status "\n";

imap_close($mbox);
?>

Voir aussi



imap_sort

(PHP 4, PHP 5)

imap_sortTrie des messages

Description

array imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options = 0 [, string $search_criteria = NULL [, string $charset = NIL ]]] )

Récupère et trie les numéros de messages en fonction des paramètres donnés.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

criteria

Les critères criteria peuvent être un (et un seul) parmi les suivants :

  • SORTDATE : date du message
  • SORTARRIVAL : date d'arrivée
  • SORTFROM : nom de la première boîte aux lettres de l'adresse d'origine (From address)
  • SORTSUBJECT : sujet du message
  • SORTTO : nom de la première boîte aux lettres de destination (To address)
  • SORTCC : nom de la boîte aux lettres de copie cachée (cc address)
  • SORTSIZE : taille du message en octets

reverse

vaut 1 pour signifier : tri inverse

options

Les flags options dont des masques de bits, d'un ou plusieurs des éléments suivants :

  • SE_UID : retourne des UID à la place de numéros
  • SE_NOPREFETCH : ne pas prétélécharger les messages trouvés

search_criteria

charset

Valeurs de retour

Retourne un tableau de numéros de messages triés en fonction des paramètres fournis.

Historique

Version Description
4.3.3 Le paramètre charset a été ajouté.



imap_status

(PHP 4, PHP 5)

imap_statusRetourne les informations de statut sur une boîte aux lettres

Description

object imap_status ( resource $imap_stream , string $mailbox , int $options )

Retourne les informations de statut sur la boîte aux lettres mailbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

Les drapeaux valides sont :

  • SA_MESSAGES - met la valeur de $status->messages au nombre de messages dans la boîte aux lettres.
  • SA_RECENT - met la valeur de $status->recent au nombre de messages récents dans la boîte aux lettres.
  • SA_UNSEEN - met la valeur de $status->unseen au nombre de messages non lus dans la boîte aux lettres.
  • SA_UIDNEXT - met la valeur de $status->uidnext à la prochaine valeur d'uid qui sera utilisée.
  • SA_UIDVALIDITY - met la valeur de $status->uidvalidity à une constante, qui change lorsque l'uid de la boîte aux lettres n'est plus valide.
  • SA_ALL - fixe toutes les valeurs précédentes.

Valeurs de retour

Cette fonction retourne un objet contenant les informations sur le statut. L'objet a les propriétés suivantes : messages, recent, unseen, uidnext, et uidvalidity.

flags est également défini, qui contient un masque contenant une des constantes ci-dessus.

Exemples

Exemple #1 Exemple avec imap_status()

<?php
$mbox 
imap_open("{imap.example.com}""username""password"OP_HALFOPEN)
      or die(
"Connexion impossible : " imap_last_error());

$status imap_status($mbox"{imap.example.org}INBOX"SA_ALL);
if (
$status) {
  echo 
"Messages :   " $status->messages    "<br />\n";
  echo 
"Récent :     " $status->recent      "<br />\n";
  echo 
"Non lu :     " $status->unseen      "<br />\n";
  echo 
"Prochain UID:    " $status->uidnext     "<br />\n";
  echo 
"Validité de l'UID:" $status->uidvalidity "<br />\n";
} else {
  echo 
"imap_status a échoué : " imap_last_error() . "\n";
}

imap_close($mbox);
?>



imap_subscribe

(PHP 4, PHP 5)

imap_subscribeSouscrit à une boîte aux lettres

Description

bool imap_subscribe ( resource $imap_stream , string $mailbox )

Souscrit à une boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_thread

(PHP 4 >= 4.0.7, PHP 5)

imap_threadRetourne l'arbre des messages organisés par thread

Description

array imap_thread ( resource $imap_stream [, int $options = SE_FREE ] )

Retourne l'arbre des messages organisés par thread.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

options

Valeurs de retour

imap_thread() retourne un tableau associatif contenant un arbre de messages organisés par thread par REFERENCES ou FALSE en cas d'erreur.

Chaque message dans la boîte aux lettres courante sera représenté par des entrées sous forme d'arbre dans le tableau résultant :

  • $thread["XX.num"] - numéro du message courant

  • $thread["XX.next"]

  • $thread["XX.branch"]

Exemples

Exemple #1 Exemple avec imap_thread()

<?php

// Ici, nous affichons les threads d'un newsgroup, en HTML

$nntp imap_open('{news.example.com:119/nntp}some.newsgroup''''');
$threads imap_thread($nntp);

foreach (
$threads as $key => $val) {
  
$tree explode('.'$key);
  if (
$tree[1] == 'num') {
    
$header imap_headerinfo($nntp$val);
    echo 
"<ul>\n\t<li>" $header->fromaddress "\n";
  } elseif (
$tree[1] == 'branch') {
    echo 
"\t</li>\n</ul>\n";
  }
}

imap_close($nntp);

?>



imap_timeout

(PHP 4 >= 4.3.3, PHP 5)

imap_timeoutConfigure ou retourne le timeout

Description

mixed imap_timeout ( int $timeout_type [, int $timeout = -1 ] )

Définit ou retourne le timeout imap.

Liste de paramètres

timeout_type

Une valeur parmi les suivantes : IMAP_OPENTIMEOUT, IMAP_READTIMEOUT, IMAP_WRITETIMEOUT, ou IMAP_CLOSETIMEOUT.

timeout

Le timeout, en secondes.

Valeurs de retour

Si le paramètre timeout est défini, cette fonction retourne TRUE en cas de succès et FALSE si une erreur survient.

Si timeout n'est pas fourni ou s'il est évalué à -1, le timeout courant sera retourné sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec imap_timeout()

<?php

echo "Le timeout courant est " imap_timeout(IMAP_READTIMEOUT) . "\n";

?>



imap_uid

(PHP 4, PHP 5)

imap_uidRetourne l'UID d'un message

Description

int imap_uid ( resource $imap_stream , int $msg_number )

imap_uid() retourne l'UID pour le message msgno. Un UID est un identifiant unique que ne change jamais, alors que le numéro du message dans la liste des messages peut changer à toute modification de la boîte aux lettres.

C'est la fonction inverse de imap_msgno().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message.

Valeurs de retour

L'UID d'un message donné.

Notes

Note:

Cette fonctionnalité n'est pas supportée par les boîtes aux lettres POP3.

Voir aussi

  • imap_msgno() - Retourne le numéro de séquence du message pour un UID donné



imap_undelete

(PHP 4, PHP 5)

imap_undeleteEnlève la marque d'effacement d'un message

Description

bool imap_undelete ( resource $imap_stream , int $msg_number [, int $flags = 0 ] )

Enlève la marque d'effacement du message msg_number, placée avec imap_delete() ou imap_mail_move().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

flags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_delete() - Marque le fichier pour l'effacement, dans la boîte aux lettres courante
  • imap_mail_move() - Déplace des messages dans une boîte aux lettres



imap_unsubscribe

(PHP 4, PHP 5)

imap_unsubscribeTermine la souscription à une boîte aux lettres

Description

bool imap_unsubscribe ( resource $imap_stream , string $mailbox )

Termine la souscription à la boîte aux lettres mailbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



imap_utf7_decode

(PHP 4, PHP 5)

imap_utf7_decodeDécode une chaîne encodée en UTF-7 modifié

Description

string imap_utf7_decode ( string $text )

imap_utf7_decode() décode la chaîne UTF-7 text en ISO-8859-1.

Cette fonction sert à encoder les noms de boîtes aux lettres qui contiennent des caractères internationaux hors de l'espace ASCII.

Liste de paramètres

text

L'encodage UTF-7 modifié est défini dans la » RFC 2060, section 5.1.3 (l'encodage UTF-7 original est lui défini dans » RFC1642).

Valeurs de retour

Retourne une chaîne de caractères encodée ISO-8859-1 et contenant la même séquence de caractères que dans le paramètre text, ou FALSE si text contient une séquence UTF-7 modifiée invalide ou si text contient un caractère qui ne fait pas partie du jeu de caractères ISO-8859-1.

Voir aussi



imap_utf7_encode

(PHP 4, PHP 5)

imap_utf7_encodeConvertit une chaîne ISO-8859-1 en texte UTF-7 modifié

Description

string imap_utf7_encode ( string $data )

Convertit une chaîne data ISO-8859-1 en texte UTF-7 modifié.

Cette fonction sert à encoder les noms de boîtes aux lettres qui contiennent des caractères internationaux hors de l'espace ASCII.

Liste de paramètres

data

Une chaîne de caractères ISO-8859-1.

Valeurs de retour

Retourne les données data encodées avec l'encodage UTF-7 modifié tel que défini dans la » RFC 2060, section 5.1.3 (l'encodage UTF-7 original est lui défini dans » RFC1642).

Voir aussi



imap_utf8

(PHP 4, PHP 5)

imap_utf8Convertit du texte au format MIME en UTF-8

Description

string imap_utf8 ( string $mime_encoded_text )

Convertit le texte mime_encoded_text en UTF-8.

Liste de paramètres

mime_encoded_text

Une chaîne de caractères encodé MIME. Les spécifications de MIME et UTF8 sont décrites dans les » RFC2047 et » RFC2044.

Valeurs de retour

Retourne une chaîne de caractères encodée UTF-8.

Voir aussi


Sommaire




Mail


Introduction

La fonction mail() permet d'envoyer un mail.



Installation/Configuration

Sommaire


Pré-requis

Pour que la fonction mail() soit disponible, il faut que PHP ait accès au service sendmail sur le serveur, au moment de la compilation. Si vous utilisez un autre programme de mail, comme qmail ou postfix, assurez-vous d'utiliser les bonnes API. PHP va commencer à chercher sendmail dans votre PATH, puis, dans les dossiers suivants : /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. Il est hautement recommandé d'avoir sendmail de disponible dans votre PATH. De plus, l'utilisateur qui compile PHP doit avoir le droit d'accéder à l'exécutable sendmail.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour le mail
Nom Défaut Modifiable Historique
mail.add_x_header "0" PHP_INI_SYSTEM|PHP_INI_PERDIR Disponible depuis PHP 5.3.0.
mail.log NULL PHP_INI_SYSTEM|PHP_INI_PERDIR Disponible depuis PHP 5.3.0.
SMTP "localhost" PHP_INI_ALL  
smtp_port "25" PHP_INI_ALL Available since PHP 4.3.0.
sendmail_from NULL PHP_INI_ALL  
sendmail_path "/usr/sbin/sendmail -t -i" PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mail.add_x_header bool

Ajoute un en-tête X-PHP-Originating-Script qui inclue l'UID du script, suivi par le nom du fichier.

mail.log string

Le chemin de l'historique de tous les appels à la fonction mail(). Les entrées de l'historique incluent le chemin complet vers le script, le numéro de la ligne, les adresses To ainsi que les en-têtes.

smtp string

Sous Windows seulement : nom de l'hôte ou adresse IP du SMTP que PHP doit utiliser pour envoyer un mail avec la fonction mail().

smtp_port int

Sous Windows seulement : numéro de port à utiliser pour se connecter au serveur SMTP lors de l'envoi de mail avec la fonction mail(); par défaut, c'est 25. Uniquement Disponible depuis PHP 4.3.0.

sendmail_from string

Sous Windows seulement : valeur du champ "From:" qui doit être utilisée lors de l'envoi de mail. Cette directive définira également l'en-tête "Return-Path:".

sendmail_path string

Localisation du programme sendmail : habituellement /usr/sbin/sendmail ou /usr/lib/sendmail. configure essaye de repérer la présence de sendmail par lui-même, et affecte ce résultat par défaut. En cas de problème de localisation, vous pouvez établir une nouvelle valeur par défaut ici.

Tout système n'utilisant pas sendmail doit établir cette directive à la valeur chemin du programme de substitution qui remplace le serveur de mail, si celui-ci existe. Par exemple, les utilisateurs de » Qmail peuvent la définir à /var/qmail/bin/sendmail ou /var/qmail/bin/qmail-inject.

qmail-inject ne requiert aucune option pour traiter correctement le mail.

Cette directive fonctionne également sous Windows. Si elle est définie, smtp, smtp_port et sendmail_from sont ignorés et la commande spécifiée est exécutée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Mail


ezmlm_hash

(PHP 4 >= 4.0.2, PHP 5)

ezmlm_hashCalcule le hachage demandé par EZMLM

Description

int ezmlm_hash ( string $addr )

ezmlm_hash() calcule le hachage nécessaire lors de la gestion de listes de diffusion EZMLM avec une base de données MySQL.

Liste de paramètres

addr

L'adresse E-Mail qui doit être hachée.

Valeurs de retour

La valeur du hachage de addr.

Exemples

Exemple #1 Calcul du hachage et enregistrement d'un utilisateur de liste de diffusion

<?php

     $user 
"joecool@example.com";
     
$hash ezmlm_hash($user);
     
$query sprintf("INSERT INTO sample VALUES (%s, '%s')"$hash$user);
     
$db->query($query); // utilisation de l'interface PHPLIB

?>



mail

(PHP 4, PHP 5)

mailEnvoi de mail

Description

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Envoi un mail.

Liste de paramètres

to

Le ou les destinataires du mail.

Le formatage de cette chaîne doit correspondre avec la » RFC 2822. Voici quelques exemples :

  • destinataire@example.com
  • destinataire@example.com, autre_destinataire@example.com
  • Destinataire <destinataire@example.com>
  • Destinataire <destinataire@example.com>, Autre destinataire <autre_destinataire@example.com>

subject

Sujet du mail à envoyer.

Attention

Sujet doit satisfaire à la » RFC 2047.

message

Message à envoyer.

Chaque ligne doit être séparée par un caractère LF (\n). Les lignes ne doivent pas comporter plus de 70 caractères.

Attention

(Windows uniquement) Lorsque PHP discute directement avec un serveur SMTP, si un point est trouvé en début de ligne, il sera supprimé. Pour éviter ce comportement, remplacez ces occurrences par un double point.

<?php
     $text 
str_replace("\n.""\n.."$text);
?>

additional_headers (optionnel)

Chaîne à insérer à la fin des en-têtes du mail.

Ce paramètre est typiquement utilisé pour ajouter des en-têtes supplémentaires (From, Cc et Bcc). Les en-têtes supplémentaires doivent être séparés par un caractère CRLF (\r\n).

Note:

Lors de l'envoi d'un mail, le mail doit contenir un en-tête From. Il peut être défini par le paramètre additional_headers, ou un par défaut peut être défini dans le php.ini.

Ne pas faire ceci causera un message d'erreur similaire à Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. L'en-tête From définit également l'en-tête Return-Path sous Windows.

Note:

Si le message n'est pas reçu, essayez d'utiliser uniquement un caractère LF (\n). Quelques agents de transfert de mail Unix de mauvaise qualité remplacent le caractère LF par le caractère CRLF automatiquement (ce qui revient à doubler le caractère CR si le caractère CRLF est utilisé). Ceci doit être un dernier recours car cela ne correspond pas à la » RFC 2822.

additional_parameters (optionnel)

Le paramètre additional_parameters peut être utilisé pour passer des drapeaux additionnels comme options à la ligne de commande configurée pour être utilisée pour envoyer les mails en utilisant le paramètre de configuration sendmail_path. Par exemple, ceci peut être utilisé pour définir l'enveloppe de l'adresse de l'expéditeur lors de l'utilisation de sendmail avec l'option -f.

L'utilisateur sous lequel tourne le serveur web doit être ajouté en tant qu'utilisateur de confiance dans la configuration de sendmail afin que l'en-tête X-Warning ne soit pas ajouté au message lorsque l'enveloppe de l'expéditeur (-f) est défini en utilisant cette méthode. Pour les utilisateurs de sendmail, ce fichier est /etc/mail/trusted-users.

Valeurs de retour

Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon.

Il est important de noter que ce n'est pas parce que le mail a été accepté pour livraison qu'il arrivera à destination.

Historique

Version Description
4.3.0 (Windows uniquement) Tous les en-têtes personnalisés (comme "From", "Cc", "Bcc" et "Date") sont supportés et ne sont pas sensibles à la casse. (Parce que les en-têtes personnalisés ne sont pas interprétés par le MTA dans un premier temps mais analysés par PHP, PHP 4.3 supporte uniquement l'en-tête Cc et est sensible à la casse).
4.2.3 Le paramètre additional_parameters est désactivé dans le safe_mode et la fonction mail() affichera un message d'alerte et retournera FALSE lors de son utilisation.
4.0.5 Le paramètre additional_parameters a été ajouté.

Exemples

Exemple #1 Envoi d'un mail

Utilisation de la fonction mail() pour envoyer un mail simple :

<?php
     
// Le message
     
$message "Line 1\nLine 2\nLine 3";

     
// Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap()
     
$message wordwrap($message70);

     
// Envoi du mail
     
mail('caffeinated@example.com''Mon Sujet'$message);
?>

Exemple #2 Envoi d'un mail avec des en-têtes supplémentaires

L'ajout d'en-têtes simples, spécifiant au MUA les adresses "From" et "Reply-To" :

<?php
     $to      
'personne@example.com';
     
$subject 'le sujet';
     
$message 'Bonjour !';
     
$headers 'From: webmaster@example.com' "\r\n" .
     
'Reply-To: webmaster@example.com' "\r\n" .
     
'X-Mailer: PHP/' phpversion();

     
mail($to$subject$message$headers);
 
?>

Exemple #3 Envoi d'un mail avec un paramètre de ligne de commande additionnel

Le paramètre additional_parameters peut être utilisé pour passer un paramètre additionnel au programme configuré à être utilisé pour envoyer les mails en utilisant sendmail_path.

<?php
     mail
('personne@example.com''le sujet''le message'null,
     
'-fwebmaster@example.com');
?>

Exemple #4 Envoi de mail HTML

Il est également possible d'envoyer des mails HTML avec la fonction mail().

<?php
     
// Plusieurs destinataires
     
$to  'aidan@example.com' ', '// notez la virgule
     
$to .= 'wez@example.com';

     
// Sujet
     
$subject 'Calendrier des anniversaires pour Août';

     
// message
     
$message '
     <html>
      <head>
       <title>Calendrier des anniversaires pour Août</title>
      </head>
      <body>
       <p>Voici les anniversaires à venir au mois d\'Août !</p>
       <table>
        <tr>
         <th>Personne</th><th>Jour</th><th>Mois</th><th>Année</th>
        </tr>
        <tr>
         <td>Josiane</td><td>3</td><td>Août</td><td>1970</td>
        </tr>
        <tr>
         <td>Emma</td><td>26</td><td>Août</td><td>1973</td>
        </tr>
       </table>
      </body>
     </html>
     '
;

     
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     
$headers  'MIME-Version: 1.0' "\r\n";
     
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

     
// En-têtes additionnels
     
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' "\r\n";
     
$headers .= 'From: Anniversaire <anniversaire@example.com>' "\r\n";
     
$headers .= 'Cc: anniversaire_archive@example.com' "\r\n";
     
$headers .= 'Bcc: anniversaire_verif@example.com' "\r\n";

     
// Envoi
     
mail($to$subject$message$headers);
?>

Note:

Si vous prévoyez d'envoyer des mails HTML ou autrement plus complexes, il est recommandé d'utiliser le paquet PEAR » PEAR::Mail_Mime.

Notes

Note:

L'implémentation de la fonction mail() sous Windows diffère de manière significative avec l'implémentation Unix. Tout d'abord, il n'utilise pas un programme local pour composer les messages, mais opère uniquement et directement sur les sockets, ce qui signifie qu'un MTA est nécessairement à l'écoute sur un socket du réseau (qui peut être soit sur le réseau local ou sur une machine distante).

Deuxièmement, les en-têtes personnalisés comme From:, Cc:, Bcc: et Date: ne sont pas interprétés par le MTA dans un premier temps, mais sont analysés par PHP.

De plus, le paramètre to ne doit pas être une adresse sous la forme "Quelque chose <quelqu_un@example.com>". La commande mail n'analysera pas correctement ceci lors de la discussion avec le MTA.

Note:

Il est important de noter que la fonction mail() n'est pas conseillée pour traiter de gros volumes de mails dans une boucle. Cette fonction ouvre et ferme un socket SMTP pour chaque mail, ce qui n'est pas très efficace.

Pour envoyer de gros volumes de mails, reportez-vous aux paquets » PEAR::Mail et » PEAR::Mail_Queue.

Note:

Les RFC suivantes peuvent être utiles : » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049 et » RFC 2822.

Voir aussi


Sommaire

  • ezmlm_hash — Calcule le hachage demandé par EZMLM
  • mail — Envoi de mail



Mailparse


Introduction

Mailparse est une extension pour analyser et travailler avec les messages électroniques. Il peut gérer les messages répondant aux » RFC 822 et » RFC 2045 (MIME).

Mailparse est basé sur les flux, ce qui signifie qu'il ne conserve pas en mémoire les copies des fichiers dont il s'occupe - ainsi, il est peut couteux en ressource lorsqu'il traite de gros messages.

Note:

Mailparse nécessite l'extension mbstring.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 4.2.0.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mailparse.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support mailparse en utilisant l'option de configuration --enable-mailparse .

Les utilisateurs de Windows doivent activer la bibliothèque php_mailparse.dll dans le php.ini pour pouvoir utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mailparse
Nom Défaut Modifiable Historique
mailparse.def_charset "us-ascii" PHP_INI_ALL Disponible depuis PHP 4.1.0. Supprimé depuis PHP 4.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MAILPARSE_EXTRACT_OUTPUT (entier)
MAILPARSE_EXTRACT_STREAM (entier)
MAILPARSE_EXTRACT_RETURN (entier)


Fonctions Mailparse


mailparse_determine_best_xfer_encoding

(PECL mailparse >= 0.9.0)

mailparse_determine_best_xfer_encodingDétermine le meilleur encodage pour un fichier

Description

string mailparse_determine_best_xfer_encoding ( resource $fp )

Détermine le meilleur encodage pour le contenu du fichier fourni.

Liste de paramètres

fp

Un pointeur de fichier valide, qui peut être lu.

Valeurs de retour

Retourne un encodage de caractères supporté par le module mbstring.

Exemples

Exemple #1 Exemple avec mailparse_determine_best_xfer_encoding()

<?php

$fp 
fopen('somemail.eml''r');
echo 
'Meilleur encodage : ' mailparse_determine_best_xfer_encoding($fp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Meilleur encodage : 7bit



mailparse_msg_create

(PECL mailparse >= 0.9.0)

mailparse_msg_createCrée une ressource email mime

Description

resource mailparse_msg_create ( void )

Crée une ressource email MIME.

Valeurs de retour

Retourne un gestionnaire qui pourra être utilisé pour analyser un message.

Voir aussi



mailparse_msg_extract_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part_fileExtrait et décode une section de message

Description

string mailparse_msg_extract_part_file ( resource $mimemail , mixed $filename [, callback $callbackfunc ] )

Extrait et décode une section de message depuis le fichier fourni.

Le contenu de la section sera encodé suivant son encodage - base64, quoted-printable et texte uuencoded sont supportés.

Liste de paramètres

mimemail

Une ressource valide MIME, créée avec la fonction mailparse_msg_create().

filename

Peut être un nom de fichier ou un flux valide.

callbackfunc

Si défini, ce peut être soit un callback valide qui sera passé à la section extraire, soit NULL pour faire que cette fonction retourne la section extraite.

Si non fourni, le contenu sera envoyé à "stdout".

Valeurs de retour

Si callbackfunc ne vaut pas NULL retourne TRUE en cas de succès.

Si callbackfunc vaut NULL, retourne la section extraite sous la forme d'une chaîne de caractères.

Retourne FALSE si une erreur survient.

Voir aussi



mailparse_msg_extract_part

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_partExtrait et décode une section de message

Description

void mailparse_msg_extract_part ( resource $mimemail , string $msgbody [, callback $callbackfunc ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

msgbody

callbackfunc

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



mailparse_msg_extract_whole_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_whole_part_fileExtrait une section de message incluant les en-têtes sans décoder l'encodage de transfert

Description

string mailparse_msg_extract_whole_part_file ( resource $mimemail , string $filename [, callback $callbackfunc ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

filename

callbackfunc

Valeurs de retour

Voir aussi



mailparse_msg_free

(PECL mailparse >= 0.9.0)

mailparse_msg_freeLibère une ressource MIME

Description

bool mailparse_msg_free ( resource $mimemail )

Libère une ressource MIME.

Liste de paramètres

mimemail

Une ressource MIME allouée par la fonction mailparse_msg_create() ou la fonction mailparse_msg_parse_file().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



mailparse_msg_get_part_data

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part_dataRetourne un tableau associatif avec des informations sur le message

Description

array mailparse_msg_get_part_data ( resource $mimemail )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.



mailparse_msg_get_part

(PECL mailparse >= 0.9.0)

mailparse_msg_get_partRetourne une ressource sur une section d'un message MIME

Description

resource mailparse_msg_get_part ( resource $mimemail , string $mimesection )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

mimesection



mailparse_msg_get_structure

(PECL mailparse >= 0.9.0)

mailparse_msg_get_structureRetourne un tableau avec les différentes sections MIME du message

Description

array mailparse_msg_get_structure ( resource $mimemail )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.



mailparse_msg_parse_file

(PECL mailparse >= 0.9.0)

mailparse_msg_parse_fileAnalyse un fichier

Description

resource mailparse_msg_parse_file ( string $filename )

Analyse un fichier. C'est la façon optimale d'analyser un email que vous avez sur votre disque.

Liste de paramètres

filename

Chemin vers le fichier contenant le message. Le fichier sera ouvert et envoyé sous forme de flux à l'analyseur.

Valeurs de retour

Retourne une ressource MIME représentant la structure, ou FALSE si une erreur survient.

Voir aussi



mailparse_msg_parse

(PECL mailparse >= 0.9.0)

mailparse_msg_parseAnalyse incrémentalement des données dans un buffer

Description

bool mailparse_msg_parse ( resource $mimemail , string $data )

Analyse incrémentalement des données dans une ressource mime fournie.

Cette fonction vous permet d'envoyer sous forme de flux des portions d'un fichier à la fois, plutôt que de tout lire et de tout analyser en une seule fois.

Liste de paramètres

mimemail

Une ressource MIME valide.

data

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addressesAnalyse des adresses

Description

array mailparse_rfc822_parse_addresses ( string $addresses )

Analyse une liste d'adresses valides eu égard à la » RFC 822, comme celles trouvées dans l'en-tête To:.

Liste de paramètres

addresses

Une chaîne de caractères contenant les adresses, comme : Wez Furlong <wez@example.com>, doe@example.com

Note:

Cette chaîne de caractères ne doit pas contenir le nom de l'en-tête.

Valeurs de retour

Retourne un tableau de tableaux associatifs contenant les clés suivantes pour chaque adresses :

display Le nom de l'adresse, aux fins d'affichage. Si cette partie n'est pas définie pour une adresse, il contiendra la même valeur que la clé address.
address L'adresse email
is_group TRUE si l'adresse est un newsgroup, FALSE sinon.

Exemples

Exemple #1 Exemple avec mailparse_rfc822_parse_addresses()

<?php

$to 
'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}



mailparse_stream_encode

(PECL mailparse >= 0.9.0)

mailparse_stream_encode Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp

Description

bool mailparse_stream_encode ( resource $sourcefp , resource $destfp , string $encoding )

Lit les données dans un fichier, applique l'encodage encoding et envoie le résultat à destfp.

Liste de paramètres

sourcefp

Un gestionnaire de fichier valide. Le fichier sera envoyé à l'analyseur sous forme de flux.

destfp

Le gestionnaire de fichier destinataire, dans lequel les données encodées seront écrites.

encoding

Un des encodages de caractères supportés par le module mbstring.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mailparse_stream_encode()

<?php

// Contenu de email.eml : hello, this is some text=hello.
$fp fopen('email.eml''r');

$dest tmpfile();

mailparse_stream_encode($fp$dest"quoted-printable");

rewind($dest);

// Affiche le nouveau contenu du fichier
fpassthru($dest);

?>

L'exemple ci-dessus va afficher :

hello, this is some text=3Dhello.



mailparse_uudecode_all

(PECL mailparse >= 0.9.0)

mailparse_uudecode_all Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent

Description

array mailparse_uudecode_all ( resource $fp )

Scanne les données du fichier fourni et extrait, dans un fichier temporaire, tous les fichiers encodés qui s'y trouvent.

Liste de paramètres

fp

Un pointeur de fichier valide.

Valeurs de retour

Retourne un tableau de tableaux associatifs listant les informations sur les noms de fichiers.

filename Chemin vers le fichier temporaire à créer
origfilename Le nom de fichier original, pour les sections uuencoded uniquement
La première entrée du fichier est le corps du message. Les entrées suivantes sont les fichiers décodés uuencoded.

Exemples

Exemple #1 Exemple avec mailparse_uudecode_all()

<?php

$text 
= <<<EOD
To: fred@example.com

hello, this is some text hello.
blah blah blah.

begin 644 test.txt
/=&AI<R!I<R!A('1E<W0*
`
end

EOD;

$fp tmpfile();
fwrite($fp$text);

$data mailparse_uudecode_all($fp);

echo 
"BODY\n";
readfile($data[0]["filename"]);
echo 
"UUE ({$data[1]['origfilename']})\n";
readfile($data[1]["filename"]);

// Nettoyage
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

L'exemple ci-dessus va afficher :

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test


Sommaire




vpopmail


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Cette extension a été retirée de PHP depuis PHP 4.3.0 et maintenant, réside en tant qu'extension » PECL.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/vpopmail.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



vpopmail Fonctions


vpopmail_add_alias_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain_exAjoute un alias à un domaine virtuel

Description

bool vpopmail_add_alias_domain_ex ( string $olddomain , string $newdomain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_add_alias_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domainAjout un alias pour un domaine virtuel

Description

bool vpopmail_add_alias_domain ( string $domain , string $aliasdomain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_add_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain_exAjoute un nouveau domaine virtuel

Description

bool vpopmail_add_domain_ex ( string $domain , string $passwd [, string $quota [, string $bounce [, bool $apop ]]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_add_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domainAjoute un nouveau domaine virtuel

Description

bool vpopmail_add_domain ( string $domain , string $dir , int $uid , int $gid )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_add_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_userAjoute un nouvel utilisateur à un domaine virtuel

Description

bool vpopmail_add_user ( string $user , string $domain , string $password [, string $gecos [, bool $apop ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_alias_add

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_addAjoute un alias virtuel

Description

bool vpopmail_alias_add ( string $user , string $domain , string $alias )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_alias_del_domain

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del_domainEfface tous les alias virtuels d'un domaine

Description

bool vpopmail_alias_del_domain ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_alias_del

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_delEfface tous les alias d'un utilisateur

Description

bool vpopmail_alias_del ( string $user , string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_alias_get_all

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get_allLit toutes les lignes d'un alias d'un domaine

Description

array vpopmail_alias_get_all ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_alias_get

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_getLit toutes les lignes d'un alias d'un domaine

Description

array vpopmail_alias_get ( string $alias , string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_auth_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_auth_userValide le mot de passe d'un utilisateur pour un domaine

Description

bool vpopmail_auth_user ( string $user , string $domain , string $password [, string $apop ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_del_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain_exEfface un domaine virtuel

Description

bool vpopmail_del_domain_ex ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_del_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domainEfface un domaine virtuel

Description

bool vpopmail_del_domain ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_del_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_userEfface un utilisateur d'un domaine virtuel

Description

bool vpopmail_del_user ( string $user , string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_error

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_errorLit le dernier message d'erreur vpopmail

Description

string vpopmail_error ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_passwd

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_passwdRemplace le mot de passe d'un utilisateur virtuel

Description

bool vpopmail_passwd ( string $user , string $domain , string $password [, bool $apop ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



vpopmail_set_user_quota

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_set_user_quotaModifie le quota d'un utilisateur virtuel

Description

bool vpopmail_set_user_quota ( string $user , string $domain , string $quota )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire





Extensions sur les mathématiques


Fonctions BCMath


Introduction

Pour les calculs mathématiques d'une grande précision, PHP fournit un calculateur binaire, qui supporte n'importe quelle précision et n'importe quelle taille de nombres, représentés sous la forme d'une chaîne de caractères.



Installation/Configuration

Sommaire


Pré-requis

Depuis PHP 4.0.4, libbcmath est fourni dans PHP. Vous n'avez plus besoin de bibliothèques externes pour cette extension.



Installation

Ces fonctions ne sont disponibles que si l'option de configuration --enable-bcmath a été activée lors de la compilation.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration BCmaths
Nom Défaut Modifiable Historique
bcmath.scale "0" PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

bcmath.scale entier

Le nombre de décimales pour toutes les fonctions bcmath. Voir aussi bcscale().



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions BC Math


bcadd

(PHP 4, PHP 5)

bcaddAdditionne deux nombres de grande taille

Description

string bcadd ( string $left_operand , string $right_operand [, int $scale ] )

Additionne left_operand et right_operand.

Liste de paramètres

left_operand

L'opérande gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

La somme des deux opérandes, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcadd()

<?php
$a 
'1.234';
$b '5';

echo 
bcadd($a$b);     // 6
echo bcadd($a$b4);  // 6.2340
?>

Voir aussi

  • bcsub() - Soustrait un nombre de grande taille d'un autre



bccomp

(PHP 4, PHP 5)

bccompCompare deux nombres de grande taille

Description

int bccomp ( string $left_operand , string $right_operand [, int $scale ] )

Compare l'opérande left_operand avec l'opérande right_operand et retourne le résultat sous forme d'un entier.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Le paramètre optionnel scale est utilisé pour définir le nombre de digits après la décimale qui sera utilisé dans la comparaison.

Valeurs de retour

Retourne 0 si les deux opérandes sont égaux, 1 si l'opérande left_operand est plus grand que l'opérande right_operand, -1 sinon.

Exemples

Exemple #1 Exemple avec bccomp()

<?php

echo bccomp('1''2') . "\n";   // -1
echo bccomp('1.00001''1'3); // 0
echo bccomp('1.00001''1'5); // 1

?>


bcdiv

(PHP 4, PHP 5)

bcdivDivise deux nombres de grande taille

Description

string bcdiv ( string $left_operand , string $right_operand [, int $scale ] )

Divise l'opérande left_operand par l'opérande right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat de la division, sous la forme d'une chaîne de caractères, ou NULL si l'opérande right_operand vaut 0.

Exemples

Exemple #1 Exemple avec bcdiv()

<?php

echo bcdiv('105''6.55957'3);  // 16.007

?>

Voir aussi

  • bcmul() - Multiplie deux nombres de grande taille



bcmod

(PHP 4, PHP 5)

bcmodRetourne le reste d'une division entre nombres de grande taille

Description

string bcmod ( string $left_operand , string $modulus )

Retourne le reste de la division entre left_operand en utilisant modulus.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

modulus

Le modulo, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne le modulo, sous la forme d'une chaîne de caractères, ou NULL si modulus vaut 0.

Exemples

Exemple #1 Exemple avec bcmod()

<?php
echo bcmod('4''2'); // 0
echo bcmod('2''4'); // 2
?>

Voir aussi

  • bcdiv() - Divise deux nombres de grande taille



bcmul

(PHP 4, PHP 5)

bcmulMultiplie deux nombres de grande taille

Description

string bcmul ( string $left_operand , string $right_operand [, int $scale ] )

Multiplie l'opérande left_operand par l'opérande right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcmul()

<?php
echo bcmul('1.34747474747''35'3); // 47.161
echo bcmul('2''4'); // 8
?>

Voir aussi

  • bcdiv() - Divise deux nombres de grande taille



bcpow

(PHP 4, PHP 5)

bcpowÉlève un nombre une puissance donnée

Description

string bcpow ( string $left_operand , string $right_operand [, int $scale ] )

Élève left_operand à la puissance right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcpow()

<?php

echo bcpow('4.2''3'2); // 74.08

?>

Notes

Note:

bcpow() peut retourner un résultats avec moins de chiffres après la virgule que le parmètre scale indique. Ceci ne se produit que le résultat ne nécessite pas toute la précision autorisée par scale. Parr exemple:

Exemple #2 bcpow() exemple pour scale

<?php
echo bcpow('5''2'2);     // affiche "25", pas "25.00"
?>

Voir aussi

  • bcpowmod() - Calcule le reste modulo d'un nombre élevé à une puissance
  • bcsqrt() - Récupère la racine carrée d'un nombre de grande taille



bcpowmod

(PHP 5)

bcpowmodCalcule le reste modulo d'un nombre élevé à une puissance

Description

string bcpowmod ( string $left_operand , string $right_operand , string $modulus [, int $scale ] )

Utilise la méthode d'exponentiation rapide pour élever le nombre left_operand à la puissance right_operand, et en calculant le reste modulo modulus.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

modulus

Le modulo, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères, ou NULL si modulus vaut 0.

Notes

Note:

Comme cette méthode utilise les opérations de modulo, les nombres non positifs risquent de donner des résultats inattendus.

Exemples

Les deux lignes suivantes produisent le même résultat. La version qui utilise bcpowmod() est bien plus rapide, et accepte des paramètres plus grands.

<?php
$a 
bcpowmod($x$y$mod);

$b bcmod(bcpow($x$y), $mod);

// $a et $b sont égaux.

?>

Voir aussi

  • bcpow() - Élève un nombre une puissance donnée
  • bcmod() - Retourne le reste d'une division entre nombres de grande taille



bcscale

(PHP 4, PHP 5)

bcscaleSpécifie le nombre de décimales par défaut pour toutes les fonctions

Description

bool bcscale ( int $scale )

Spécifie la précision par défaut pour toutes les fonctions mathématiques sur des nombres de taille arbitraire qui suivent et qui omettent le paramètre scale.

Liste de paramètres

scale

Le facteur de précision.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcscale()

<?php

// précision par défaut : 3
bcscale(3);
echo 
bcdiv('105''6.55957'); // 16.007

// la même chose sans utiliser bcscale()
echo bcdiv('105''6.55957'3); // 16.007

?>



bcsqrt

(PHP 4, PHP 5)

bcsqrtRécupère la racine carrée d'un nombre de grande taille

Description

string bcsqrt ( string $operand [, int $scale ] )

Retourne la racine carrée de l'opérande operand.

Liste de paramètres

operand

L'opérande, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne la racine carrée de l'opérande, sous la forme d'une chaîne de caractères, ou NULL si l'opérande operand est négatif.

Exemples

Exemple #1 Exemple avec bcsqrt()

<?php

echo bcsqrt('2'3); // 1.414

?>

Voir aussi

  • bcpow() - Élève un nombre une puissance donnée



bcsub

(PHP 4, PHP 5)

bcsubSoustrait un nombre de grande taille d'un autre

Description

string bcsub ( string $left_operand , string $right_operand [, int $scale ] )

Soustrait l'opérande right_operand de l'opérande left_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Le résultat de la soustraction, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcsub()

<?php

$a 
'1.234';
$b '5';

echo 
bcsub($a$b);     // -3
echo bcsub($a$b4);  // -3.7660

?>

Voir aussi

  • bcadd() - Additionne deux nombres de grande taille


Sommaire

  • bcadd — Additionne deux nombres de grande taille
  • bccomp — Compare deux nombres de grande taille
  • bcdiv — Divise deux nombres de grande taille
  • bcmod — Retourne le reste d'une division entre nombres de grande taille
  • bcmul — Multiplie deux nombres de grande taille
  • bcpow — Élève un nombre une puissance donnée
  • bcpowmod — Calcule le reste modulo d'un nombre élevé à une puissance
  • bcscale — Spécifie le nombre de décimales par défaut pour toutes les fonctions
  • bcsqrt — Récupère la racine carrée d'un nombre de grande taille
  • bcsub — Soustrait un nombre de grande taille d'un autre



GNU Multiple Precision


Introduction

Ces fonctions vous permettent de travailler avec des nombres de taille arbitraire, en utilisant la bibliothèque GNU MP.

Ces fonctions ont été ajoutées en PHP 4.0.4.

Note:

La majorité des fonctions GMP acceptent des nombres GMP comme arguments, définis ci-dessous comme resource. Cependant, la plupart de ces fonctions acceptent aussi des nombres et des chaînes à partir du moment où on peut les convertir en nombre. Si une fonction utilisant les entiers est plus rapide, elle sera automatiquement appelée si les arguments fournis sont des entiers. Cela se fait de manière transparente : vous pouvez donc utiliser des entiers avec les fonctions GMP sans perte de vitesse. Voir aussi gmp_init().

Avertissement

Si vous voulez explicitement spécifier un entier de grande taille, spécifiez-le sous forme de chaîne. Si vous ne le faites pas, PHP va interpréter votre entier et le transformer en une représentation interne, qui vous fera sûrement perdre de la précision, avant même que GMP n'entre en jeu.

Note: Cette extension est disponible sur les plates-formes Windows depuis PHP 5.1.0.



Installation/Configuration

Sommaire


Pré-requis

Vous pouvez télécharger GMP sur le site de » http://gmplib.org/#DOWNLOAD. Ce site propose aussi un manuel GMP.

Vous devez utiliser GMP 2 ou plus récent pour utiliser ces fonctions. Certaines d'entre elles peuvent requérir une version encore plus récente de GMP.



Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP GMP en utilisant l'option --with-gmp .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

La plupart des fonctions GPM opère ou retourne des ressources GMP.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GMP_ROUND_ZERO (entier)
GMP_ROUND_PLUSINF (entier)
GMP_ROUND_MINUSINF (entier)
GMP_VERSION (string)
La version de la bibliothèque GMP


Exemples

Exemple #1 Factorielle avec GMP

<?php
function fact($x
{
    
$return 1;
    for (
$i=2$i $x$i++) {
        
$return gmp_mul($return$i);
    }
    return 
$return;
}

echo 
gmp_strval(fact(1000)) . "\n";
?>

Cet exemple va calculer factorielle de 1000 (un grand nombre) très vite.



Fonctions GMP

Voir aussi

Vous pouvez trouver plus de fonctions dans la section Extensions sur les mathématiques.


gmp_abs

(PHP 4 >= 4.0.4, PHP 5)

gmp_absValeur absolue GMP

Description

resource gmp_abs ( resource $a )

Valeur absolue GMP.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne la valeur absolue de a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_abs()

<?php
$abs1 
gmp_abs("274982683358");
$abs2 gmp_abs("-274982683358");

echo 
gmp_strval($abs1) . "\n";
echo 
gmp_strval($abs2) . "\n";
?>

L'exemple ci-dessus va afficher :

274982683358
274982683358



gmp_add

(PHP 4 >= 4.0.4, PHP 5)

gmp_addAddition de 2 nombres GMP

Description

resource gmp_add ( resource $a , resource $b )

Addition de 2 nombres GMP.

Liste de paramètres

a

Un nombre à ajouter.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Un nombre à ajouter.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP représentant la somme des arguments.

Exemples

Exemple #1 Exemple avec gmp_add()

<?php
$sum 
gmp_add("123456789012345""76543210987655");
echo 
gmp_strval($sum) . "\n";
?>

L'exemple ci-dessus va afficher :

200000000000000



gmp_and

(PHP 4 >= 4.0.4, PHP 5)

gmp_andET logique

Description

resource gmp_and ( resource $a , resource $b )

Calcule le ET logique de 2 nombres GMP.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP représentant le ET logique des 2 arguments.

Exemples

Exemple #1 Exemple avec gmp_and()

<?php
$and1 
gmp_and("0xfffffffff4""0x4");
$and2 gmp_and("0xfffffffff4""0x8");
echo 
gmp_strval($and1) . "\n";
echo 
gmp_strval($and2) . "\n";
?>

L'exemple ci-dessus va afficher :

4
0


gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_clrbitAnnule un octet

Description

void gmp_clrbit ( resource $a , int $index )

Met l'octet index à 0 dans le nombre GMP a. L'index commence à zéro.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

index

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_clrbit()

<?php
$a 
gmp_init("0xff");
gmp_clrbit($a0); // l'index commence à zéro
echo gmp_strval($a) . "\n";
?>

L'exemple ci-dessus va afficher :

254

Notes

Note:

Contrairement à la plupart des autres fonctions GMP, gmp_clrbit() doit être appelée avec une ressource GMP existant déjà (en utilisant gmp_init() par exemple). Elle ne sera pas automatiquement créée.

Voir aussi



gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmpCompare des nombres GMP

Description

int gmp_cmp ( resource $a , resource $b )

Compare deux nombres GMP.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne une valeur positive si a > b, zéro si a = b et négative si a < b.

Exemples

Exemple #1 Exemple avec gmp_cmp()

<?php
$cmp1 
gmp_cmp("1234""1000"); // plus grand que
$cmp2 gmp_cmp("1000""1234"); // plus petit que
$cmp3 gmp_cmp("1234""1234"); // égal à

echo "$cmp1 $cmp2 $cmp3\n";
?>

L'exemple ci-dessus va afficher :

1 -1 0


gmp_com

(PHP 4 >= 4.0.4, PHP 5)

gmp_comCalcule le complémentaire d'un nombre

Description

resource gmp_com ( resource $a )

Retourne le complémentaire de a.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne le complémentaire de a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_com()

<?php
$com 
gmp_com("1234");
echo 
gmp_strval($com) . "\n";
?>

L'exemple ci-dessus va afficher :

-1235


gmp_div_q

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qDivisions de 2 nombres GMP

Description

resource gmp_div_q ( resource $a , resource $b [, int $round = GMP_ROUND_ZERO ] )

Divise a par b et retourne le résultat entier.

Liste de paramètres

a

Le nombre à diviser.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Le diviseur.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

round

L'arrondi du résultat est défini par round, qui peut prendre l'une des valeurs suivantes :

  • GMP_ROUND_ZERO: Le résultat est tronqué vers 0.
  • GMP_ROUND_PLUSINF: Le résultat est tronqué vers +infinity.
  • GMP_ROUND_MINUSINF:Le résultat est tronqué vers -infinity.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_div_q()

<?php
$div1 
gmp_div_q("100""5");
echo 
gmp_strval($div1) . "\n";

$div2 gmp_div_q("1""3");
echo 
gmp_strval($div2) . "\n";

$div3 gmp_div_q("1""3"GMP_ROUND_PLUSINF);
echo 
gmp_strval($div3) . "\n";

$div4 gmp_div_q("-1""4"GMP_ROUND_PLUSINF);
echo 
gmp_strval($div4) . "\n";

$div5 gmp_div_q("-1""4"GMP_ROUND_MINUSINF);
echo 
gmp_strval($div5) . "\n";
?>

L'exemple ci-dessus va afficher :

20
0
1
0
-1

Notes

Note:

Cette fonction peut aussi être appelée gmp_div().

Voir aussi



gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qrDivise deux nombres GMP

Description

array gmp_div_qr ( resource $n , resource $d [, int $round = GMP_ROUND_ZERO ] )

Divise n par d.

Liste de paramètres

n

Le nombre à diviser.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le diviseur.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

round

Voir la fonction gmp_div_q() pour une description de l'argument round.

Valeurs de retour

Divise n par d et retourne un tableau, dont le premier élément est [n/d] (le quotient entier de la division) et le second est (n - [n/d] * d) (le reste).

Exemples

Exemple #1 Division de nombres GMP

<?php
$a 
gmp_init("0x41682179fbf5");
$res gmp_div_qr($a"0xDEFE75");
printf("Résultat : q - %s, r - %s",
       
gmp_strval($res[0]), gmp_strval($res[1]));
?>

Voir aussi



gmp_div_r

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_rReste de la division de deux nombres GMP

Description

resource gmp_div_r ( resource $n , resource $d [, int $round = GMP_ROUND_ZERO ] )

Calcul le reste de la division entière de n par d. Le reste a le même signe que n, s'il est différent de zéro.

Liste de paramètres

n

Le nombre à diviser.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le diviseur.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

round

Voir la fonction gmp_div_q() pour une description du paramètre round.

Valeurs de retour

Retourne le reste, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_div_r()

<?php
$div 
gmp_div_r("105""20");
echo 
gmp_strval($div) . "\n";
?>

L'exemple ci-dessus va afficher :

5

Voir aussi



gmp_div

(PHP 4 >= 4.0.4, PHP 5)

gmp_divAlias de gmp_div_q()

Description

Cette fonction est un alias de : gmp_div_q().



gmp_divexact

(PHP 4 >= 4.0.4, PHP 5)

gmp_divexactDivision exacte de nombres GMP

Description

resource gmp_divexact ( resource $n , resource $d )

Divise n par d, en utilisant les algorithmes de "division exacte". Cette fonction ne fournit de résultats cohérents que s'il est su par avance que d divise n.

Liste de paramètres

n

Le nombre à diviser.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le diviseur.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_divexact()

<?php
$div1 
gmp_divexact("10""2");
echo 
gmp_strval($div1) . "\n";

$div2 gmp_divexact("10""3"); // résultat incohérent
echo gmp_strval($div2) . "\n";
?>

L'exemple ci-dessus va afficher :

5
2863311534



gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_factFactorielle GMP

Description

resource gmp_fact ( mixed $a )

Calcule la factorielle de a : a!.

Liste de paramètres

a

Le nombre factoriel.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_fact()

<?php
$fact1 
gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

L'exemple ci-dessus va afficher :

120
30414093201713378043612608166064768844377641568960512000000000000



gmp_gcd

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdCalcule le GCD

Description

resource gmp_gcd ( resource $a , resource $b )

Calcule le PGCD (plus grand commun diviseur) de a et b. Le résultat est toujours positif, même si l'un des deux (ou les deux) nombres est négatif.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre positif GMP qui se divise avec a et b.

Exemples

Exemple #1 Exemple avec gmp_gcd()

<?php
$gcd 
gmp_gcd("12""21");
echo 
gmp_strval($gcd) . "\n";
?>

L'exemple ci-dessus va afficher :

3



gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdextPGCD étendu

Description

array gmp_gcdext ( resource $a , resource $b )

Calcule les entiers g, s, et t, tels que a*s + b*t = g = gcd(a,b), où gcd est le pgcd de a et b. La fonction retourne un tableau avec les index g, s et t.

Cette fonction peut être utilisée pour résoudre des équations diophantines linéaires à deux variables. Ces équations n'ont qu'une seule solution entière, et elles sont de la forme : a*x + b*y = c. Pour plus d'informations, voyez les pages » "Diophantine Equation" sur MathWorld, en anglais.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un tableau de nombres GMP.

Exemples

Exemple #1 Résolution d'une équation Diophantine linéaire

<?php
// Résolution de l'équation a*s + b*t = g
// où a = 12, b = 21, g = gcd(12, 21) = 3
$a gmp_init(12);
$b gmp_init(21);
$g gmp_gcd($a$b);
$r gmp_gcdext($a$b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res gmp_add(gmp_mul($a$r['s']), gmp_mul($b$r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if (
$check_gcd && $check_res) {
    
$fmt "Solution: %d*%d + %d*%d = %d\n";
    
printf($fmtgmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    
gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo 
"Erreur lors de la résolution de l'équation\n";
}

// Résultat : Solution : 12*2 + 21*-1 = 3
?>



gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5)

gmp_hamdistDistance de Hamming

Description

int gmp_hamdist ( resource $a , resource $b )

Retourne la distance de Hamming entre a et b. Les deux paramètres doivent être strictement positifs.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_hamdist()

<?php
$ham1 
gmp_init("1001010011"2);
$ham2 gmp_init("1011111100"2);
echo 
gmp_hamdist($ham1$ham2) . "\n";

/* hamdist est équivalent à : */
echo gmp_popcount(gmp_xor($ham1$ham2)) . "\n";
?>

L'exemple ci-dessus va afficher :

6
6

Voir aussi



gmp_init

(PHP 4 >= 4.0.4, PHP 5)

gmp_initCrée un nombre GMP

Description

resource gmp_init ( mixed $number [, int $base = 0 ] )

Crée un nombre GMP, à partir d'un entier ou d'une chaîne.

Liste de paramètres

number

Un entier ou une chaîne de caractères. La chaîne peut être une représentation décimale, hexadécimale ou octale.

base

La base.

La base peut varier de 2 à 36. Si la base vaut 0 (valeur par défaut), la base actuelle est déterminée depuis les derniers caractères ; si les deux premiers caractères sont 0x ou 0X, on suppose que c'est de l'hexadécimal, sinon, si le premier caractère est "0", on suppose que c'est de l'octal, sinon, on suppose que c'est de la décimale.

Valeurs de retour

Une ressource GMP.

Historique

Version Description
5.3.2 Le paramètre base a été étendu de "2 à 36", à "2 à 62" et "-2 à -36".
4.1.0 Le paramètre optionnel base a été ajouté.

Notes

Note:

Pour utiliser la base étendue introduite en PHP 5.3.2, vous devez compiler PHP avec GMP 4.2.0 ou supérieur.

Exemples

Exemple #1 Création d'un nombre GMP

<?php
$a 
gmp_init(123456);
$b gmp_init("0xFFFFDEBACDFEDF7200");
?>

Notes

Note:

Il n'est pas nécessaire d'appeler gmp_init() si vous voulez utiliser des entiers ou des chaînes à la place de nombre GMP dans les fonctions GMP, comme gmp_add(). Les arguments de ces fonctions sont automatiquement convertis en nombres GMP, si cette conversion est possible et nécessaire, en utilisant les mêmes règles que gmp_init().



gmp_intval

(PHP 4 >= 4.0.4, PHP 5)

gmp_intvalConvertit un nombre GMP en entier

Description

int gmp_intval ( resource $gmpnumber )

convertit un nombre GMP en entier.

Liste de paramètres

gmpnumber

Un nombre GMP.

Valeurs de retour

Un entier, représentant le nombre gmpnumber.

Exemples

Exemple #1 Exemple avec gmp_intval()

<?php
// Affiche le bon résultat
echo gmp_intval("2147483647") . "\n";

// Affiche un mauvais résultat, hors de portée des entiers PHP
echo gmp_intval("2147483648") . "\n";

// Affiche le bon résultat
echo gmp_strval("2147483648") . "\n";
?>

L'exemple ci-dessus va afficher :

2147483647
2147483647
2147483648

Notes

Avertissement

Retourne un résultat cohérent uniquement si le nombre GMP peut être représenté par un entier PHP (i.e. type long signé). Si vous vous voulez simplement afficher un nombre GMP, utilisez plutôt gmp_strval().



gmp_invert

(PHP 4 >= 4.0.4, PHP 5)

gmp_invertModulo inversé

Description

resource gmp_invert ( resource $a , resource $b )

Calcule l'inverse de a modulo b.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP en cas de succès, ou FALSE si l'inverse n'existe pas.

Exemples

Exemple #1 Exemple avec gmp_invert()

<?php
echo gmp_invert("5""10"); // pas d'inverse, n'affiche rien, le résultat est FALSE
$invert gmp_invert("5""11");
echo 
gmp_strval($invert) . "\n";
?>

L'exemple ci-dessus va afficher :

9



gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5)

gmp_jacobiSymbole de Jacobi

Description

int gmp_jacobi ( resource $a , resource $p )

Calcule le » symbole de Jacobi de a et p. p doit être positif et impair.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

p

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif et impair.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_jacobi()

<?php
echo gmp_jacobi("1""3") . "\n";
echo 
gmp_jacobi("2""3") . "\n";
?>

L'exemple ci-dessus va afficher :

1
0



gmp_legendre

(PHP 4 >= 4.0.4, PHP 5)

gmp_legendreSymbole de Legendre

Description

int gmp_legendre ( resource $a , resource $p )

Calcule le » symbole de Legendre de a et p. p doit être positif et impair.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

p

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif et impair.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_legendre()

<?php
echo gmp_legendre("1""3") . "\n";
echo 
gmp_legendre("2""3") . "\n";
?>

L'exemple ci-dessus va afficher :

1
0



gmp_mod

(PHP 4 >= 4.0.4, PHP 5)

gmp_modModulo GMP

Description

resource gmp_mod ( resource $n , resource $d )

Calcule n modulo d. Le résultat est toujours positif ou nul, car le signe de d est ignoré.

Liste de paramètres

n

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le modulo à évaluer.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_mod()

<?php
$mod 
gmp_mod("8""3");
echo 
gmp_strval($mod) . "\n";
?>

L'exemple ci-dessus va afficher :

2



gmp_mul

(PHP 4 >= 4.0.4, PHP 5)

gmp_mulMultiplication de 2 nombres GMP

Description

resource gmp_mul ( resource $a , resource $b )

Multiplie les nombres GMP a et b.

Liste de paramètres

a

Un nombre qui sera multiplié par b.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Un nombre qui sera multiplié par a.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_mul()

<?php
$mul 
gmp_mul("12345678""2000");
echo 
gmp_strval($mul) . "\n";
?>

L'exemple ci-dessus va afficher :

24691356000



gmp_neg

(PHP 4 >= 4.0.4, PHP 5)

gmp_negOpposé de nombre GMP

Description

resource gmp_neg ( resource $a )

Retourne l'opposé de a (-1 * a).

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne -a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_neg()

<?php
$neg1 
gmp_neg("1");
echo 
gmp_strval($neg1) . "\n";
$neg2 gmp_neg("-1");
echo 
gmp_strval($neg2) . "\n";
?>

L'exemple ci-dessus va afficher :

-1
1



gmp_nextprime

(PHP 5 >= 5.2.0)

gmp_nextprimeTrouve le prochain nombre premier

Description

resource gmp_nextprime ( int $a )

Trouve le prochain nombre premier.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne le prochain nombre premier plus grand que a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_nextprime()

<?php
$prime1 
gmp_nextprime(10); // prochain nom premier supérieur à 10
$prime2 gmp_nextprime(-1000); // prochain nombre premier supérieur à -1000

echo gmp_strval($prime1) . "\n";
echo 
gmp_strval($prime2) . "\n";
?>

L'exemple ci-dessus va afficher :

11
-997

Notes

Note:

Cette fonction utilise un algorithme probabiliste pour identifier un nombre premier et les chances de récupérer un nombre composite sont extrêmement faibles.



gmp_or

(PHP 4 >= 4.0.4, PHP 5)

gmp_orOU logique

Description

resource gmp_or ( resource $a , resource $b )

Calcule le OU logique de a et b.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_or()

<?php
$or1 
gmp_or("0xfffffff2""4");
echo 
gmp_strval($or116) . "\n";
$or2 gmp_or("0xfffffff2""2");
echo 
gmp_strval($or216) . "\n";
?>

L'exemple ci-dessus va afficher :

fffffff6
fffffff2



gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5)

gmp_perfect_squareCarré parfait GMP

Description

bool gmp_perfect_square ( resource $a )

Vérifie si a est un carré parfait.

Liste de paramètres

a

Le nombre à vérifier.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne TRUE si a est un carré parfait, FALSE sinon.

Exemples

Exemple #1 Exemple avec gmp_perfect_square()

<?php
// 3 * 3, carré parfait
var_dump(gmp_perfect_square("9"));

// pas un carré parfait
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, carré parfait
var_dump(gmp_perfect_square("1524157875019052100"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)

Voir aussi



gmp_popcount

(PHP 4 >= 4.0.4, PHP 5)

gmp_popcountComptage de population

Description

int gmp_popcount ( resource $a )

Dénombre la population de a.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

La population de a, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec gmp_popcount()

<?php
$pop1 
gmp_init("10000101"2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 gmp_init("11111110"2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

L'exemple ci-dessus va afficher :

3
7



gmp_pow

(PHP 4 >= 4.0.4, PHP 5)

gmp_powPuissance

Description

resource gmp_pow ( resource $base , int $exp )

Élève base à la puissance exp.

Liste de paramètres

base

La base.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

exp

La puissance.

Valeurs de retour

Le nouveau nombre, sous la forme d'un nombre GMP. Dans le cas de 0^0, gmp_pow() retourne 1.

Exemples

Exemple #1 Exemple avec gmp_pow()

<?php
$pow1 
gmp_pow("2"31);
echo 
gmp_strval($pow1) . "\n";
$pow2 gmp_pow("0"0);
echo 
gmp_strval($pow2) . "\n";
$pow3 gmp_pow("2", -1); // Négatif, génère un warning
echo gmp_strval($pow3) . "\n";
?>

L'exemple ci-dessus va afficher :

2147483648
1



gmp_powm

(PHP 4 >= 4.0.4, PHP 5)

gmp_powmPuissance et modulo

Description

resource gmp_powm ( resource $base , resource $exp , resource $mod )

Calcule (base puissance exp) modulo mod. Si exp est négatif, le résultat est indéfini.

Liste de paramètres

base

La base.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

exp

La puissance.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

mod

Le modulo.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Le nouveau nombre, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_powm()

<?php
$pow1 
gmp_powm("2""31""2147483649");
echo 
gmp_strval($pow1) . "\n";
?>

L'exemple ci-dessus va afficher :

2147483648



gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_primeNombre GMP probablement premier

Description

int gmp_prob_prime ( resource $a [, int $reps = 10 ] )

La fonction utilise le test de probabilité Miller-Rabin.

Liste de paramètres

a

Le nombre à vérifier.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

reps

reps peut raisonnablement varier de 5 à 10 (par défaut, c'est 10); une valeur supérieure réduit la probabilité qu'un nombre non premier soit identifié comme "probablement" premier.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Si gmp_prob_prime() retourne 0, a est défini comme non premier. Si gmp_prob_prime() retourne 1, alors a est "probablement" premier. Si gmp_prob_prime() retourne 2, alors a est sûrement premier.

Exemples

Exemple #1 Exemple avec gmp_prob_prime()

<?php
// pas premier
echo gmp_prob_prime("6") . "\n";

// probablement premier
echo gmp_prob_prime("1111111111111111111") . "\n";

// premier
echo gmp_prob_prime("11") . "\n";
?>

L'exemple ci-dessus va afficher :

0
1
2



gmp_random

(PHP 4 >= 4.0.4, PHP 5)

gmp_randomNombre GMP aléatoire

Description

resource gmp_random ([ int $limiter = 20 ] )

Génère un nombre aléatoire. Ce nombre sera compris entre zéro et le nombre de bits par limb multiplié par limiter. Si limiter est négatif, un nombre négatif est généré.

Un limb est un mécanisme interne de GMP. Le nombre de bits dans un limb n'est pas statique, et peut varier entre les systèmes. En général, le nombre de bits par limb est 16 ou 32, mais ce n'est pas garantit.

Liste de paramètres

limiter

Le limiteur.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP aléatoire.

Exemples

Exemple #1 Exemple avec gmp_random()

<?php
$rand1 
gmp_random(1); // nombre aléatoire de 0 à 1 * bits par limb
$rand2 gmp_random(2); // nombre aléatoire de 0 à 2 * bits par limb

echo gmp_strval($rand1) . "\n";
echo 
gmp_strval($rand2) . "\n";
?>

L'exemple ci-dessus va afficher :

1915834968
8642564075890328087



gmp_scan0

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan0Recherche 0

Description

int gmp_scan0 ( resource $a , int $start )

Recherche dans a, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 0.

Liste de paramètres

a

Le nombre à analyser.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

start

L'octet de départ.

Valeurs de retour

Retourne l'index de l'octet trouvé, sous la forme d'un entier. L'index commence à 0.

Exemples

Exemple #1 Exemple avec gmp_scan0()

<?php
// le bit "0" est trouvé à la position 3. l'index commence à 0
$s1 gmp_init("10111"2);
echo 
gmp_scan0($s10) . "\n";

// le bit "0" est trouvé à la position 7. l'index commence à 5
$s2 gmp_init("101110000"2);
echo 
gmp_scan0($s25) . "\n";
?>

L'exemple ci-dessus va afficher :

3
7



gmp_scan1

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan1Recherche 1

Description

int gmp_scan1 ( resource $a , int $start )

Recherche dans a, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 1.

Liste de paramètres

a

Le nombre à analyser.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

start

L'octet de départ.

Valeurs de retour

Retourne l'index de l'octet trouvé, sous la forme d'un entier. Si aucun octet n'est trouvé, -1 sera retourné.

Exemples

Exemple #1 Exemple avec gmp_scan1()

<?php
// "1" bit est trouvé à la position 3. l'index commence à 0
$s1 gmp_init("01000"2);
echo 
gmp_scan1($s10) . "\n";

// "1" bit est trouvé à la position 9. l'index commence à 5
$s2 gmp_init("01000001111"2);
echo 
gmp_scan1($s25) . "\n";
?>

L'exemple ci-dessus va afficher :

3
9



gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbitModifie un bit

Description

void gmp_setbit ( resource $a , int $index [, bool $set_clear = true ] )

Modifie le bit index dans a.

Liste de paramètres

a

Le nombre à définir.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

index

L'octet à définir.

set_clear

Définit si l'octet est défini à 0 ou 1. Par défaut, l'octet est défini à 1. Les index commencent à 0.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_setbit()

<?php
$a 
gmp_init("0xfd");
gmp_setbit($a1); // l'index commence à zéro
echo gmp_strval($a) . "\n";
?>

L'exemple ci-dessus va afficher :

255

Notes

Note:

Contrairement à la plupart des autres fonctions GMP, gmp_setbit() doit être appelée avec une ressource GMP existant déjà (en utilisant gmp_init() par exemple). Elle ne sera pas automatiquement créée.

Voir aussi



gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_signSigne du nombre GMP

Description

int gmp_sign ( resource $a )

Vérifie le signe d'un nombre.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne le signe de a : 1 si a est positif, -1 s'il est négatif et 0 si a est égal à zéro.

Exemples

Exemple #1 Exemple avec gmp_sign()

<?php
// positif
echo gmp_sign("500") . "\n";

// negatif
echo gmp_sign("-500") . "\n";

// zéro
echo gmp_sign("0") . "\n";
?>

L'exemple ci-dessus va afficher :

1
-1
0

Voir aussi



gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtRacine carrée GMP

Description

resource gmp_sqrt ( resource $a )

Calcule la racine carrée GMP du nombre a.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

La partie entière de la racine carrée, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_sqrt()

<?php
$sqrt1 
gmp_sqrt("9");
$sqrt2 gmp_sqrt("7");
$sqrt3 gmp_sqrt("1524157875019052100");

echo 
gmp_strval($sqrt1) . "\n";
echo 
gmp_strval($sqrt2) . "\n";
echo 
gmp_strval($sqrt3) . "\n";
?>

L'exemple ci-dessus va afficher :

3
2
1234567890



gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtremRacine carrée avec reste GMP

Description

array gmp_sqrtrem ( resource $a )

Calcule la racine carrée d'un nombre GMP, avec reste.

Liste de paramètres

a

Le nombre à traiter.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne un tableau dont le premier élément est la racine carrée entière de a (voir aussi gmp_sqrt()), et le second est le reste de (i.e., la différence entre a et le carré du premier élément).

Exemples

Exemple #1 Exemple avec gmp_sqrtrem()

<?php
list($sqrt1$sqrt1rem) = gmp_sqrtrem("9");
list(
$sqrt2$sqrt2rem) = gmp_sqrtrem("7");
list(
$sqrt3$sqrt3rem) = gmp_sqrtrem("1048576");

echo 
gmp_strval($sqrt1) . ", " gmp_strval($sqrt1rem) . "\n";
echo 
gmp_strval($sqrt2) . ", " gmp_strval($sqrt2rem) . "\n";
echo 
gmp_strval($sqrt3) . ", " gmp_strval($sqrt3rem) . "\n";
?>

L'exemple ci-dessus va afficher :

3, 0
2, 3
1024, 0



gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strvalConvertit un nombre GMP en chaîne

Description

string gmp_strval ( resource $gmpnumber [, int $base ] )

Convertit un nombre GMP en chaîne de caractères, dans la base base. La base par défaut est 10.

Liste de paramètres

gmpnumber

Le nombre GMP qui doit être converti.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

base

La base du nombre retourné. Par défaut, vaut 10. Les valeurs possibles vont de 2 à 62 et de -2 à -36.

Valeurs de retour

Le nombre, sous la forme d'une chaîne de caractères.

Historique

Version Description
5.3.2 Le paramètre base a été étendu de "2 à 36", à "2 à 62" et "-2 à -36".

Notes

Note:

Pour utiliser la base étendue introduite en PHP 5.3.2, vous devez compiler PHP avec GMP 4.2.0 ou supérieur.

Exemples

Exemple #1 Convertir un nombre GMP en chaîne de caractères

<?php
$a 
gmp_init("0x41682179fbf5");
printf("Décimal : %s, 36-based : %s"gmp_strval($a), gmp_strval($a,36));
?>



gmp_sub

(PHP 4 >= 4.0.4, PHP 5)

gmp_subSoustraction de 2 nombres GMP

Description

resource gmp_sub ( resource $a , resource $b )

Soustrait b de a et retourne le résultat.

Liste de paramètres

a

Le nombre à soustraire.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Le nombre à soustraire de a.

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_sub()

<?php
$sub 
gmp_sub("281474976710656""4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

L'exemple ci-dessus va afficher :

281470681743360



gmp_testbit

(PHP 5 >= 5.3.0)

gmp_testbitTeste si un octet est défini

Description

bool gmp_testbit ( resource $a , int $index )

Teste si un octet est défini.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

index

L'octet à tester

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une alerte de niveau E_WARNING est émise lorsque le paramètre index est inférieur à 0.

Exemples

Exemple #1 Exemple avec gmp_testbit()

<?php
$n 
gmp_init("1000000");
var_dump(gmp_testbit($n1));
gmp_setbit($n1);
var_dump(gmp_testbit($n1));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi



gmp_xor

(PHP 4 >= 4.0.4, PHP 5)

gmp_xorOU exclusif logique

Description

resource gmp_xor ( resource $a , resource $b )

calcule le OU exclusif logique de a et b.

Liste de paramètres

a

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_xor()

<?php
$xor1 
gmp_init("1101101110011101"2);
$xor2 gmp_init("0110011001011001"2);

$xor3 gmp_xor($xor1$xor2);

echo 
gmp_strval($xor32) . "\n";
?>

L'exemple ci-dessus va afficher :

1011110111000100


Sommaire




Fonctions mathématiques


Introduction

Ces fonctions ne sont capables de manipuler que des entiers entier, ou nombres à virgule flottante (float). Si vous avez besoin de manipuler des nombres plus grands, reportez-vous aux fonctions mathématiques sur des nombres de grande taille.

Voir aussi la page du manuel sur les opérateurs arithmétiques.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Constantes mathématiques
Constante Valeur Description Disponibilité
M_PI 3.14159265358979323846 Pi  
M_E 2.7182818284590452354 e  
M_LOG2E 1.4426950408889634074 log_2 e  
M_LOG10E 0.43429448190325182765 log_10 e  
M_LN2 0.69314718055994530942 log_e 2  
M_LN10 2.30258509299404568402 log_e 10  
M_PI_2 1.57079632679489661923 pi/2  
M_PI_4 0.78539816339744830962 pi/4  
M_1_PI 0.31830988618379067154 1/pi  
M_2_PI 0.63661977236758134308 2/pi  
M_SQRTPI 1.77245385090551602729 sqrt(pi) PHP 5.2.0
M_2_SQRTPI 1.12837916709551257390 2/sqrt(pi)  
M_SQRT2 1.41421356237309504880 sqrt(2)  
M_SQRT3 1.73205080756887729352 sqrt(3) PHP 5.2.0
M_SQRT1_2 0.70710678118654752440 1/sqrt(2)  
M_LNPI 1.14472988584940017414 log_e(pi) PHP 5.2.0
M_EULER 0.57721566490153286061 Constante d'Euler PHP 5.2.0
PHP_ROUND_HALF_UP 1 Arrondi supérieur PHP 5.3.0
PHP_ROUND_HALF_DOWN 2 Arrondi inférieur PHP 5.3.0
PHP_ROUND_HALF_EVEN 3 Arrondi au nombre pair PHP 5.3.0
PHP_ROUND_HALF_ODD 4 Arrondi au nombre impair PHP 5.3.0
NAN NAN (pour les nombres décimaux) N'est pas un nombre, littéralement Not A Number  
INF INF (pour les nombres décimaux) L'infinite  

Toutes les constantes dont la version PHP de disponibilité n'est pas renseignée sont disponibles depuis au moins PHP 4.0.0.



Fonctions Math


abs

(PHP 4, PHP 5)

absValeur absolue

Description

number abs ( mixed $number )

Retourne la valeur absolue du nombre number.

Liste de paramètres

number

La valeur numérique à traiter

Valeurs de retour

La valeur absolue du nombre number. Si le nombre est un nombre à virgule flottante (float), le type retourné est aussi un nombre à virgule flottante (float), sinon, c'est un entier (entier).

Exemples

Exemple #1 Exemple avec abs()

<?php
$abs 
abs(-4.2); // $abs = 4.2; (double/float)
$abs2 abs(5);   // $abs2 = 5; (integer)
$abs3 abs(-5);  // $abs3 = 5; (integer)
?>

Voir aussi



acos

(PHP 4, PHP 5)

acosArc cosinus

Description

float acos ( float $arg )

Retourne l'arc cosinus de arg (arg en radians). acos() est la fonction inverse de cos(), ce qui signifie que a==cos(acos(a)) pour toute valeur qui soit dans l'intervalle de validité de acos().

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc cosinus de arg, en radians.

Voir aussi



acosh

(PHP 4 >= 4.1.0, PHP 5)

acoshArc cosinus hyperbolique

Description

float acosh ( float $arg )

Retourne l'arc cosinus hyperbolique de arg, c'est à dire la valeur dont le cosinus hyperbolique est arg.

Liste de paramètres

arg

La valeur à traiter

Valeurs de retour

L'arc cosinus hyperbolique de arg.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • cosh() - Cosinus hyperbolique
  • acos() - Arc cosinus
  • asinh ()
  • atanh() - Arc tangente hyperbolique



asin

(PHP 4, PHP 5)

asinArc sinus

Description

float asin ( float $arg )

Retourne l'arc sinus de arg (arg en radians). asin() est la fonction inverse de sin(), ce qui signifie que a==sin(asin(a)) pour toute valeur qui soit dans l'intervalle de validité de asin().

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc sinus de arg, en radians.

Voir aussi



asinh

(PHP 4 >= 4.1.0, PHP 5)

asinhArc sinus hyperbolique

Description

float asinh ( float $arg )

Retourne l'arc sinus hyperbolique de arg, c'est à dire la valeur dont le sinus hyperbolique est arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc sinus hyperbolique de arg

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi



atan2

(PHP 4, PHP 5)

atan2Arc tangent de deux variables

Description

float atan2 ( float $y , float $x )

Retourne l'arc tangent de deux variables x et y. La formule est : " arc tangent (y / x) ", et les signes des arguments sont utilisés pour déterminer le quadrant du résultat.

Cette fonction retourne un résultat en radians, entre -PI et PI (inclus).

Liste de paramètres

y

le dividende

x

le diviseur

Valeurs de retour

L'arc tangent de deux variables y/x, en radians.

Voir aussi



atan

(PHP 4, PHP 5)

atanArc tangente

Description

float atan ( float $arg )

Retourne l'arc tangent de arg (arg en radians). atan() est la fonction inverse de tan(), ce qui signifie que a==tan(atan(a)) pour toute valeur qui soit dans l'intervalle de validité de atan().

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc tangent de arg, en radians.

Voir aussi



atanh

(PHP 4 >= 4.1.0, PHP 5)

atanhArc tangente hyperbolique

Description

float atanh ( float $arg )

Retourne l'arc tangente hyperbolique de arg, c'est à dire la valeur dont la tangente hyperbolique est arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc tangente hyperbolique de arg.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • tanh() - Tangente hyperbolique
  • atan ()
  • asinh() - Arc sinus hyperbolique
  • acosh() - Arc cosinus hyperbolique



base_convert

(PHP 4, PHP 5)

base_convertConvertit un nombre entre des bases arbitraires

Description

string base_convert ( string $number , int $frombase , int $tobase )

Retourne une chaîne contenant l'argument number représenté dans la base tobase. La base de représentation de number est donnée par frombase. frombase et tobase doivent être compris entre 2 et 36 inclus. Les chiffres supérieurs à 10 des bases supérieures à 10 seront représentés par les lettres de A à Z, avec A = 10 et Z = 35.

Avertissement

base_convert() perdra la précision sur les grands nombres, à cause des propriétés interne des types double et nombre décimal. Lire la section sur les nombres décimaux de ce manuel pour plus d'informations.

Liste de paramètres

number

Le nombre à convertir

frombase

La base number dans laquelle il est

tobase

La base dans laquelle on doit convertir le nombre number

Valeurs de retour

Le nombre number converti dans la base tobase

Exemples

Exemple #1 Exemple avec base_convert()

<?php
$hexadecimal 
'A37334';
echo 
base_convert($hexadecimal162);
?>

L'exemple ci-dessus va afficher :

101000110111001100110100

Voir aussi

  • intval() - Retourne la valeur numérique entière équivalente d'une variable



bindec

(PHP 4, PHP 5)

bindecConvertit de binaire en décimal

Description

number bindec ( string $binary_string )

Retourne la conversion d'un nombre binaire représenté par la chaîne binary_string en décimal.

bindec() convertie un nombre binaire en un entier, ou, si nécessaire (pour des raisons de taille), en nombre décimal.

bindec() interprète toutes les valeurs binary_string comme des valeurs non-signées entières. Ceci est dû au fait que la fonction bindec() voit l'octet le plus significatif comme ayant plus de poids que l'octet représentant le signe.

Liste de paramètres

binary_string

La chaîne binaire à convertir.

Avertissement

Ce paramètre doit être une chaîne de caractères. L'utilisation d'un autre type de données produit des résultats inattendus.

Valeurs de retour

La valeur décimale de binary_string

Historique

Version Description
Depuis la version 4.1.0 Cette fonction peut maintenant convertir des nombres trop grand pour être contenu dans le type entier de la plate-forme ; les valeurs seront, dans ce cas, retournées sous la forme d'un nombre décimal.

Exemples

Exemple #1 Exemple avec bindec()

<?php
echo bindec('110011') . "\n";
echo 
bindec('000110011') . "\n";

echo 
bindec('111');
?>

L'exemple ci-dessus va afficher :

51
51
7

Exemple #2 bindec() interprète l'entrée comme un entier non-signé

<?php
/*
 * Le plus important dans cet exemple est dans la sortie
 * plutôt que dans le code PHP lui-même.
 */

$magnitude_lower pow(2, (PHP_INT_SIZE 8) - 2);
p($magnitude_lower 1);
p($magnitude_lower'Avez-vous vu le changement ? Soyez attentif la prochaine fois...');

p(PHP_INT_MAX'PHP_INT_MAX');
p(~PHP_INT_MAX'interprété comme étant supérieur à PHP_INT_MAX');

if (
PHP_INT_SIZE == 4) {
    
$note 'interprété comme étant le plus grand entier non-signé';
} else {
    
$note 'interprété comme étant le plus grand entier non-signé
              (18446744073709551615) mais faussé par la précision de la virgule flottante'
;
}
p(-1$note);


function 
p($input$note '') {
    echo 
"entrée :        $input\n";

    
$format '%0' . (PHP_INT_SIZE 8) . 'b';
    
$bin sprintf($format$input);
    echo 
"binaire :       $bin\n";

    
ini_set('precision'20);  // Pour plus de lisibilité sur les PC 64 bits.
    
$dec bindec($bin);
    echo 
'bindec() :     ' $dec "\n";

    if (
$note) {
        echo 
"Note :         $note\n";
    }

    echo 
"\n";
}
?>

Résultat de l'exemple ci-dessus sur une machine 32 bits :

entrée :        1073741823
binaire :       00111111111111111111111111111111
bindec() :     1073741823

entrée :        1073741824
binaire :       01000000000000000000000000000000
bindec():     1073741824
Note :         Avez-vous vu le changement ? Soyez attentif la prochaine fois...

entrée :        2147483647
binaire :       01111111111111111111111111111111
bindec():     2147483647
Note :         PHP_INT_MAX

entrée :        -2147483648
binaire :       10000000000000000000000000000000
bindec():     2147483648
Note :         interprété comme étant supérieur à PHP_INT_MAX

entrée :        -1
binaire :       11111111111111111111111111111111
bindec():     4294967295
Note :         interprété comme étant le plus grand entier non-signé

Résultat de l'exemple ci-dessus sur une machine 64 bits :

entrée :        4611686018427387903
binaire :       0011111111111111111111111111111111111111111111111111111111111111
bindec() :     4611686018427387903

entrée :        4611686018427387904
binaire :       0100000000000000000000000000000000000000000000000000000000000000
bindec() :     4611686018427387904
Note :         Avez-vous vu le changement ? Soyez attentif la prochaine fois...

entrée :        9223372036854775807
binaire :       0111111111111111111111111111111111111111111111111111111111111111
bindec() :     9223372036854775807
Note :         PHP_INT_MAX

entrée :        -9223372036854775808
binaire :       1000000000000000000000000000000000000000000000000000000000000000
bindec() :     9223372036854775808
Note :         interprété comme étant supérieur à PHP_INT_MAX

entrée :        -1
binaire :       1111111111111111111111111111111111111111111111111111111111111111
bindec() :     18446744073709551616
Note :         interprété comme étant le plus grand entier non-signé
              (18446744073709551615) mais faussé par la précision de la virgule flottante

Voir aussi

  • decbin() - Convertit de décimal en binaire
  • octdec() - Conversion d'octal en décimal
  • hexdec() - Convertit de hexadécimal en décimal
  • base_convert() - Convertit un nombre entre des bases arbitraires



ceil

(PHP 4, PHP 5)

ceilArrondit au nombre supérieur

Description

float ceil ( float $value )

Retourne l'entier supérieur du nombre value.

Liste de paramètres

value

La valeur à arrondir

Valeurs de retour

La valeur value arrondie à l'entier supérieur. La valeur retournée est un nombre à virgule flottante (nombre décimal), car ces nombres peuvent être plus grands que les entiers.

Exemples

Exemple #1 Exemple avec ceil()

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3
?>

Voir aussi

  • floor() - Arrondit à l'entier inférieur
  • round() - Arrondi un nombre à virgule flottante



cos

(PHP 4, PHP 5)

cosCosinus

Description

float cos ( float $arg )

cos() retourne le cosinus de arg (arg en radians).

Liste de paramètres

arg

L'angle, en radians

Valeurs de retour

Le cosinus de arg.

Exemples

Exemple #1 Exemple avec cos()

<?php

echo cos(M_PI); // -1

?>

Voir aussi



cosh

(PHP 4 >= 4.1.0, PHP 5)

coshCosinus hyperbolique

Description

float cosh ( float $arg )

Retourne le cosinus hyperbolique de arg, défini comme (exp(arg) + exp(-arg))/2.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

Le cosinus hyperbolique de arg.

Voir aussi



decbin

(PHP 4, PHP 5)

decbinConvertit de décimal en binaire

Description

string decbin ( int $number )

Retourne une chaîne contenant la représentation binaire de l'entier number donné en argument.

Liste de paramètres

number

Valeur décimale à convertir

Interval d'entrée sur des machines 32-bit
Paramètre number positif Paramètre number négatif Valeur retournée
0   0
1   1
2   10
... progression normale ...
2147483646   1111111111111111111111111111110
2147483647 (plus grand entier signé)   1111111111111111111111111111111 (31 uns)
2147483648 -2147483648 10000000000000000000000000000000
... progression normale ...
4294967294 -2 11111111111111111111111111111110
4294967295 (plus grand entier non-signé) -1 11111111111111111111111111111111 (32 uns)
Interval d'entrée sur des machines 64-bit
Paramètre number positif Paramètre number négatif Valeur retournée
0   0
1   1
2   10
... progression normale ...
9223372036854775806   111111111111111111111111111111111111111111111111111111111111110
9223372036854775807 (plus grand entier signé)   111111111111111111111111111111111111111111111111111111111111111 (63 uns)
  -9223372036854775808 1000000000000000000000000000000000000000000000000000000000000000
... progression normale ...
  -2 1111111111111111111111111111111111111111111111111111111111111110
  -1 1111111111111111111111111111111111111111111111111111111111111111 (64 uns)

Valeurs de retour

Une représentation binaire de number.

Exemples

Exemple #1 Exemple avec decbin()

<?php
echo decbin(12) . "\n";
echo 
decbin(26);
?>

L'exemple ci-dessus va afficher :

1100
11010

Voir aussi

  • bindec() - Convertit de binaire en décimal
  • decoct() - Convertit de décimal en octal
  • dechex() - Convertit de décimal en hexadécimal
  • base_convert() - Convertit un nombre entre des bases arbitraires
  • printf() - Affiche une chaîne de caractères formatée, en utilisant %b, %032b ou %064b comme format
  • sprintf(), en utilisant %b, %032b ou %064b comme format



dechex

(PHP 4, PHP 5)

dechexConvertit de décimal en hexadécimal

Description

string dechex ( int $number )

Retourne une chaîne contenant la représentation hexadécimale du nombre number. Le nombre le plus grand qui puisse être converti est 4294967295 en décimal, ce qui donnera "ffffffff".

Liste de paramètres

number

Valeur décimale à convertir

Valeurs de retour

Une représentation hexadécimale de number.

Exemples

Exemple #1 Exemple avec dechex()

<?php
echo dechex(10) . "\n";
echo 
dechex(47);
?>

L'exemple ci-dessus va afficher :

a
2f

Voir aussi

  • hexdec() - Convertit de hexadécimal en décimal
  • decbin() - Convertit de décimal en binaire
  • decoct() - Convertit de décimal en octal
  • base_convert() - Convertit un nombre entre des bases arbitraires



decoct

(PHP 4, PHP 5)

decoctConvertit de décimal en octal

Description

string decoct ( int $number )

Retourne une chaîne contenant la représentation octale du nombre donné number. Le nombre le plus grand qui puisse être converti est 4294967295 en décimal, ce qui donnera "37777777777".

Liste de paramètres

number

Valeur décimale à convertir

Valeurs de retour

Une représentation octale de number.

Exemples

Exemple #1 Exemple avec decoct()

<?php
echo decoct(15) . "\n";
echo 
decoct(264);
?>

L'exemple ci-dessus va afficher :

17
410

Voir aussi

  • octdec() - Conversion d'octal en décimal
  • decbin() - Convertit de décimal en binaire
  • dechex() - Convertit de décimal en hexadécimal
  • base_convert() - Convertit un nombre entre des bases arbitraires



deg2rad

(PHP 4, PHP 5)

deg2radConvertit un nombre de degrés en radians

Description

float deg2rad ( float $number )

deg2rad() convertit number de degrés en radians.

Liste de paramètres

number

L'angle, en degrés

Valeurs de retour

L'équivalent, en radian, de number.

Exemples

Exemple #1 Exemple avec deg2rad()

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Voir aussi

  • rad2deg() - Conversion de radians en degrés



exp

(PHP 4, PHP 5)

expCalcul l'exponentielle de e

Description

float exp ( float $arg )

Retourne e, à la puissance arg.

Note:

'e' est le logarithme naturel, ou approximativement 2.718282.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

'e', à la puissance arg.

Exemples

Exemple #1 Exemple avec exp()

<?php
echo exp(12) . "\n";
echo 
exp(5.7);
?>

L'exemple ci-dessus va afficher :

1.6275E+005
298.87

Voir aussi

  • log() - Logarithme naturel (népérien)
  • pow() - Expression exponentielle



expm1

(PHP 4 >= 4.1.0, PHP 5)

expm1 Calcule précisément exponentiel moins un

Description

float expm1 ( float $arg )

expm1() retourne l'équivalent de exp(arg) - 1 calculé de telle sorte qu'il sera précis, même si la valeur de l'argument arg est proche de 0, un cas où l'expression "exp (arg) - 1" n'est pas précis, du fait de la soustraction de deux nombres quasi-égaux.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

'e' à la puissance arg, moins un.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • log1p() - Calcule précisément log(1 + nombre)
  • exp() - Calcul l'exponentielle de e



floor

(PHP 4, PHP 5)

floorArrondit à l'entier inférieur

Description

float floor ( float $value )

Retourne l'entier inférieur du nombre value.

Liste de paramètres

value

La valeur numérique à arrondir

Valeurs de retour

floor() retourne l'entier inférieur du nombre value. La valeur retournée est un nombre à virgule flottante, (float) car ces nombres peuvent être plus grands que les entiers.

Exemples

Exemple #1 Exemple avec floor()

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Voir aussi

  • ceil() - Arrondit au nombre supérieur
  • round() - Arrondi un nombre à virgule flottante



fmod

(PHP 4 >= 4.2.0, PHP 5)

fmodRetourne le reste de la division

Description

float fmod ( float $x , float $y )

Retourne le reste de la division de x par y. Ce reste est un nombre à virgule flottante. Le reste (r) est défini par : x = i * y + r, pour un entier i. Si y n'est pas nul, r a le même signe que x est une taille inférieure à y.

Liste de paramètres

x

Le dividende

y

Le diviseur

Valeurs de retour

Le reste de la division de x par y.

Exemples

Exemple #1 Exemple avec fmod()

<?php
$x 
5.7;
$y 1.3;
$r fmod($x$y);
// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7
?>



getrandmax

(PHP 4, PHP 5)

getrandmaxPlus grande valeur aléatoire possible

Description

int getrandmax ( void )

Retourne la plus grande valeur aléatoire possible retournée par rand().

Valeurs de retour

La plus grande valeur aléatoire possible retournée par rand().

Voir aussi

  • rand() - Génère une valeur aléatoire
  • srand() - Initialise le générateur de nombres aléatoires
  • mt_getrandmax() - La plus grande valeur aléatoire possible



hexdec

(PHP 4, PHP 5)

hexdecConvertit de hexadécimal en décimal

Description

number hexdec ( string $hex_string )

Retourne une chaîne contenant la représentation décimale du nombre hex_string.

hexdec() ignorera tout caractère non-hexadécimal qu'elle rencontrera.

Liste de paramètres

hex_string

La chaîne hexadécimale à convertir

Valeurs de retour

La représentation décimale de hex_string

Historique

Version Description
Depuis la version 4.1.0 Cette fonction peut également convertir de très grands nombres. Elle retourne un nombre de type float dans ce cas.

Exemples

Exemple #1 Exemple avec hexdec()

<?php
var_dump
(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"

var_dump(hexdec("that")); // affiche "int(10)"
var_dump(hexdec("a0")); // affiche "int(160)"
?>

Voir aussi

  • dechex() - Convertit de décimal en hexadécimal
  • bindec() - Convertit de binaire en décimal
  • octdec() - Conversion d'octal en décimal
  • base_convert() - Convertit un nombre entre des bases arbitraires



hypot

(PHP 4 >= 4.1.0, PHP 5)

hypotCalcul la longueur de l'hypoténuse d'un triangle à angle droit

Description

float hypot ( float $x , float $y )

hypot() retourne la longueur de l'hypoténuse d'un triangle à angle droit qui a des cotés d'une longueur x et y ou bien la distance du point (x, y) depuis l'origine. Ceci est l'équivalent de sqrt(x*x + y*y).

Liste de paramètres

x

Longueur du premier côté

y

Longueur du second côté

Valeurs de retour

La longueur calculée de l'hypoténuse



is_finite

(PHP 4 >= 4.2.0, PHP 5)

is_finiteIndique si un nombre est fini

Description

bool is_finite ( float $val )

Vérifie si val est une valeur légale finie sur la plate-forme.

Liste de paramètres

val

La valeur à vérifier

Valeurs de retour

TRUE si val est une valeur finie, c'est à dire une valeur qui peut être représentée par un nombre à virgule flottante PHP sur cette plate-forme, sinon, FALSE.

Voir aussi



is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infiniteIndique si un nombre est infini

Description

bool is_infinite ( float $val )

Retourne TRUE si val est infini (positif ou négatif), comme le résultat de log(0) ou une valeur qui est trop grande pour être représenté par un nombre à virgule flottante sur cette plate-forme.

Liste de paramètres

val

La valeur à vérifier

Valeurs de retour

TRUE si val est une valeur infinie, sinon, FALSE.

Voir aussi

  • is_finite() - Indique si un nombre est fini
  • is_nan() - Indique si une valeur n'est pas un nombre



is_nan

(PHP 4 >= 4.2.0, PHP 5)

is_nanIndique si une valeur n'est pas un nombre

Description

bool is_nan ( float $val )

Vérifie si val est 'not a number' (pas un nombre), comme le résultat de acos(1.01).

Liste de paramètres

val

La valeur à vérifier

Valeurs de retour

Retourne TRUE si val est 'not a number' (pas un nombre), sinon, FALSE.

Exemples

Exemple #1 Exemple avec is_nan()

<?php
// Calcul invalide, doit retourner une
// valeur NaN
$nan acos(8);

var_dump($nanis_nan($nan));
?>

L'exemple ci-dessus va afficher :

float(NAN)
bool(true)

Voir aussi



lcg_value

(PHP 4, PHP 5)

lcg_valueGénérateur de congruence combinée linéaire

Description

float lcg_value ( void )

lcg_value() retourne un nombre pseudoaléatoire, compris entre 0 et 1. lcg_value() combine deux générateurs de congruence, de périodes respectives 2^31 - 85 et 2^31 - 249. La période de cette fonction est le produit de ces deux nombres premiers (soit (2^31 - 85)*(2^31 - 249)).

Valeurs de retour

Une valeur pseudoaléatoire, dans l'intervalle de 0 à 1.

Voir aussi

  • rand() - Génère une valeur aléatoire
  • mt_rand() - Génère une meilleure valeur aléatoire



log10

(PHP 4, PHP 5)

log10Logarithme en base 10

Description

float log10 ( float $arg )

Retourne le logarithme en base 10 de arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

Le logarithme en base 10 de arg.

Voir aussi

  • log() - Logarithme naturel (népérien)



log1p

(PHP 4 >= 4.1.0, PHP 5)

log1p Calcule précisément log(1 + nombre)

Description

float log1p ( float $number )

log1p() retourne log(1 + number) calculé de telle sorte qu'il sera précis même si la valeur de number est proche de 0. log() ne peut retourner que log(1) dans ce cas par manque de précision.

Liste de paramètres

number

L'argument à traiter

Valeurs de retour

log(1 + number)

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • expm1() - Calcule précisément exponentiel moins un
  • log() - Logarithme naturel (népérien)
  • log10() - Logarithme en base 10



log

(PHP 4, PHP 5)

logLogarithme naturel (népérien)

Description

float log ( float $arg [, float $base = M_E ] )

Si le paramètre optionnel base est spécifié, log() retourne alors le logarithme en base base, sinon log() retourne le logarithme naturel (ou népérien) de arg.

Liste de paramètres

arg

La valeur pour laquelle on calcule le logarithme

base

La base logarithmique optionnelle à utiliser (par défaut, 'e' et donc, le logarithme naturel).

Valeurs de retour

Le logarithme de arg en base base, si fourni, ou le logarithme naturel.

Historique

Version Description
Depuis la version 4.3.0 Le paramètre optionnel base est devenu disponible. Pour les anciennes versions, vous pouvez calculer le logarithme en base b du nombre n, mais en utilisant l'identité mathématique : logb(n) = log(n)/log(b), où log est le logarithme népérien (ou naturel).

Voir aussi

  • log10() - Logarithme en base 10
  • exp() - Calcul l'exponentielle de e
  • pow() - Expression exponentielle



max

(PHP 4, PHP 5)

maxLa plus grande valeur

Description

mixed max ( array $values )
mixed max ( mixed $value1 , mixed $value2 [, mixed $value3... ] )

Si le premier et unique paramètre est un tableau, max() retourne la valeur la plus haute du tableau. Si au moins deux paramètres sont fournis, max() retourne la plus grosse de ces valeurs.

Note:

PHP évaluera une chaîne de caractères non-numérique en tant que 0, mais continuera de retourner une chaîne de caractères s'il s'aperçoit qu'elle a une valeur numérique supérieure. Si de multiples arguments sont évalués à 0, max() retournera un 0 numérique s'il est fourni, sinon, la chaîne de caractères alphabétiquement supérieure sera retournée.

Liste de paramètres

values

Un tableau contenant les valeurs.

Valeurs de retour

max() retourne la plus grande des valeurs. Si plusieurs valeurs sont évaluées comme ayant la même taille, la première de la liste sera retournée.

Lorsque max() reçoit plusieurs tableaux, le tableau contenant le plus grand nombre d'éléments sera retourné. Si tous les tableaux sont de tailles identiques, la fonction max() utilisera l'ordre lexicographique pour trouver la valeur à retourner.

Lorsque des chaînes de caractères sont fournies, elles seront converties en entier afin d'être comparées.

Exemples

Exemple #1 Exemple avec max()

<?php
echo max(13567);  // 7
echo max(array(245)); // 5

// Lorsque 'hello' est converti en entier, il vaudra 0. Ainsi, les 2 paramètres
// seront égaux. La valeur retournée dépendra donc de l'ordre des paramètres
echo max(0'hello');     // 0
echo max('hello'0);     // hello

echo max('42'3); // '42'

// Ici, 0 > -1, donc 'hello' sera la valeur retourné.
echo max(-1'hello');    // hello

// Avec plusieurs tableaux de tailles différentes, max retourne
// le plus long
$val max(array(222), array(1111)); // array(1, 1, 1, 1)

// Avec plusieurs tableaux de mêmes tailles, max les compare de la gauche vers la droite
// en utilisant l'ordre lexicographique. Aussi, dans notre exemple : 2 == 2, mais 4 < 5
$val max(array(248), array(257)); // array(2, 5, 7)

// Si un tableau et une valeur autre qu'un tableau sont fournis en même temps,
// le tableau sera toujours retourné, vu qu'il sera toujours considéré
// comme étant le plus grand
$val max('string', array(257), 42);   // array(2, 5, 7)
?>

Voir aussi

  • min() - La plus petite valeur
  • count() - Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet



min

(PHP 4, PHP 5)

minLa plus petite valeur

Description

mixed min ( array $values )
mixed min ( mixed $value1 , mixed $value2 [, mixed $value3... ] )

Si le premier et le seul paramètre est un tableau, min() retournera la plus petite valeur contenue dans le tableau. Si le premier paramètre est un entier, une chaîne ou un nombre décimal, vous devez fournir au moins deux paramètres et min() retournera la plus petite de ces valeurs.

Note:

PHP évaluera une chaîne de caractères non-numérique en tant que 0, mais continuera de retourner une chaîne de caractères s'il s'aperçoit qu'elle a une valeur numérique supérieure. Si de multiples arguments sont évalués à 0, max() retournera un 0 numérique s'il est fourni, sinon, la chaîne de caractères alphabétiquement supérieure sera retournée.

Liste de paramètres

values

Un tableau contenant les valeurs.

Valeurs de retour

Retourne la plus petite valeur numérique parmi les valeurs passées en paramètres.

Exemples

Exemple #1 Exemple avec min()

<?php
echo min(23167);  // 1
echo min(array(245)); // 2

echo min(0'hello');     // 0
echo min('hello'0);     // hello
echo min('hello', -1);    // -1

// Avec plusieurs tableaux, min() fait les comparaisons de gauche à droite
// dans notre exemple : 2 == 2, mais 4 < 5
$val min(array(248), array(251)); // array(2, 4, 8)

// Si un mélange de tableau et de scalaires sont fournis,
// le tableau n'est jamais retourné, car il est considéré comme le plus grand
$val min('string', array(257), 42);   // string
?>

Voir aussi

  • max() - La plus grande valeur
  • count() - Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet



mt_getrandmax

(PHP 4, PHP 5)

mt_getrandmaxLa plus grande valeur aléatoire possible

Description

int mt_getrandmax ( void )

Retourne la plus grande valeur aléatoire possible que peut retourner la fonction mt_rand().

Valeurs de retour

Retourne la plus grande valeur aléatoire possible retournée par la fonction mt_rand()

Exemples

Exemple #1 Calcule un nombre flottant aléatoire

<?php
function randomFloat($min 0$max 1) {
    return 
$min mt_rand() / mt_getrandmax() * ($max $min);
}

var_dump(randomFloat());
var_dump(randomFloat(220));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

float(0.91601131712832)
float(16.511210331931)

Voir aussi

  • mt_rand() - Génère une meilleure valeur aléatoire
  • mt_srand() - Initialise une meilleure valeur aléatoire
  • getrandmax() - Plus grande valeur aléatoire possible



mt_rand

(PHP 4, PHP 5)

mt_randGénère une meilleure valeur aléatoire

Description

int mt_rand ( void )
int mt_rand ( int $min , int $max )

De nombreux générateurs de nombres aléatoires provenant de vieilles bibliothèques libcs ont des comportements douteux et sont très lents. Par défaut, PHP utilise le générateur de nombres aléatoires de libc avec la fonction rand(). mt_rand() est une fonction de remplacement, pour cette dernière. Elle utilise un générateur de nombres aléatoire de caractéristique connue, le " » Mersenne Twister " qui est 4 fois plus rapide que la fonction standard libc.

Appelée sans les arguments optionnels min et max, mt_rand() retourne un nombre pseudoaléatoire, entre 0 et mt_getrandmax(). Pour obtenir un nombre entre 5 et 15 inclus, il faut utiliser mt_rand(5,15).

Liste de paramètres

min

Valeur la plus basse qui peut être retournée (par défaut : 0)

max

Valeur la plus haute qui peut être retournée (par défaut : mt_getrandmax()).

Valeurs de retour

Un entier aléatoire compris entre min (ou 0) et max (ou mt_getrandmax(), inclusif).

Historique

Version Description
4.2.0Le générateur de nombres aléatoires est initialisé automatiquement.

Exemples

Exemple #1 Exemple avec mt_rand()

<?php
echo mt_rand() . "\n";
echo 
mt_rand() . "\n";

echo 
mt_rand(515);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1604716014
1478613278
6

Voir aussi

  • mt_srand() - Initialise une meilleure valeur aléatoire
  • mt_getrandmax() - La plus grande valeur aléatoire possible
  • rand() - Génère une valeur aléatoire



mt_srand

(PHP 4, PHP 5)

mt_srandInitialise une meilleure valeur aléatoire

Description

void mt_srand ([ int $seed ] )

mt_srand() initialise le générateur de valeurs aléatoires avec seed ou avec une valeur aléatoire si aucun paramètre seed n'est fourni.

Liste de paramètres

seed

Une valeur d'initialisation aléatoire

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
Depuis la version 4.2.0 Le paramètre seed est devenu optionnel et, par défaut, vaut une valeur aléatoire.
Depuis la version 5.2.1 L'implémentation Mersenne Twister en PHP utilise maintenant un nouvel algorithme d'initialisation, réalisé par Richard Wagner. Des initialisations identiques ne produisent plus la même séquence de valeurs, comme cela pouvait être le cas dans les versions antérieures. Ce comportement ne devrait plus changer.

Exemples

Exemple #1 Exemple avec mt_srand()

<?php
// initialisation avec des microsecondes
function make_seed()
{
  list(
$usec$sec) = explode(' 'microtime());
  return (float) 
$sec + ((float) $usec 100000);
}
mt_srand(make_seed());
$randval mt_rand();
?>

Voir aussi

  • mt_rand() - Génère une meilleure valeur aléatoire
  • mt_getrandmax() - La plus grande valeur aléatoire possible
  • srand() - Initialise le générateur de nombres aléatoires



octdec

(PHP 4, PHP 5)

octdecConversion d'octal en décimal

Description

number octdec ( string $octal_string )

Retourne une chaîne contenant la représentation décimale du nombre octal_tring.

Liste de paramètres

octal_string

La chaîne de caractères octale à convertir

Valeurs de retour

La représentation décimale de octal_string

Historique

Version Description
Depuis la version 4.1.0 Cette fonction peut également convertir de très grands nombres. Elle retourne un nombre de type float dans ce cas.

Exemples

Exemple #1 Exemple avec octdec()

<?php
echo octdec('77') . "\n";
echo 
octdec(decoct(45));
?>

L'exemple ci-dessus va afficher :

63
45

Voir aussi

  • decoct() - Convertit de décimal en octal
  • bindec() - Convertit de binaire en décimal
  • hexdec() - Convertit de hexadécimal en décimal
  • base_convert() - Convertit un nombre entre des bases arbitraires



pi

(PHP 4, PHP 5)

piRetourne la valeur de pi

Description

float pi ( void )

Retourne la valeur de pi. La valeur retournée est de type float, et est à la précision indiquée par la directive precision, indiquée dans le fichier php.ini, qui vaut par défaut 14. De plus, vous pouvez utiliser la constante M_PI, qui retourne un résultat identique à la fonction pi().

Valeurs de retour

La valeur de pi, sous la forme d'un nombre décimal.

Exemples

Exemple #1 Exemple avec pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI// 3.1415926535898
?>



pow

(PHP 4, PHP 5)

powExpression exponentielle

Description

number pow ( number $base , number $exp )

Retourne base élevé à la puissance exp.

Avertissement

En PHP 4.0.6 et plus ancien, pow() retournait toujours un nombre à virgule flottante (float), et n'affichait pas d'alerte.

Liste de paramètres

base

La base à utiliser

exp

L'exponentielle

Valeurs de retour

base élevé à la puissance exp. Si le résultat peut être représenté sous la forme d'un entier, il sera retourné sous la forme d'un entier, sinon, il sera retourné sous la forme d'un nombre décimal. Si la puissance ne peut être calculée, FALSE sera retourné.

Historique

Version Description
Depuis la version 4.0.6 La fonction retourne désormais un entier si possible ; avant cette version, cette fonction retournait toujours un nombre décimal. Pour les anciennes versions, vous pouviez obtenir un résultat erroné pour les nombres complexes.
Depuis la version 4.2.0 PHP arrête d'émettre une alerte si la valeur ne peut pas être calculée. Il retourne maintenant uniquement FALSE.

Exemples

Exemple #1 Exemple avec pow()

<?php

var_dump
(pow(28)); // int(256)
echo pow(-120); // 1
echo pow(00); // 1

echo pow(-15.5); // PHP >4.0.6  NAN
echo pow(-15.5); // PHP <=4.0.6 1.#IND
?>

Voir aussi



rad2deg

(PHP 4, PHP 5)

rad2degConversion de radians en degrés

Description

float rad2deg ( float $number )

Convertit number (supposé en radians) en degrés.

Liste de paramètres

number

Une valeur, en radians

Valeurs de retour

L'équivalent de number, en degrés.

Exemples

Exemple #1 Exemple avec rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Voir aussi

  • deg2rad() - Convertit un nombre de degrés en radians



rand

(PHP 4, PHP 5)

randGénère une valeur aléatoire

Description

int rand ( void )
int rand ( int $min , int $max )

Appelée sans les options min et max, rand() retourne un nombre pseudoaléatoire entre 0 et getrandmax(). Si vous voulez un nombre aléatoire entre 5 et 15 (inclus), par exemple, utilisez rand (5, 15).

Note: Sur quelques plates-formes (par exemple, Windows), mt_getrandmax()est limité à 32768. Si vous désirez une limite supérieure à 32768, en spécifiant min et max, vous serez autorisés à utiliser un intervalle plus grand que mt_getrandmax(), ou bien, utilisez la fonction mt_rand() à la place.

Liste de paramètres

min

La plus petite valeur à retourner (par défaut, 0)

max

La plus grande valeur à retourner (par défaut, mt_getrandmax())

Valeurs de retour

Une valeur pseudoaléatoire, comprise entre min (ou 0) et max (ou mt_getrandmax(), inclusif).

Historique

Version Description
4.2.0Le générateur de nombres aléatoires est initialisé automatiquement.

Exemples

Exemple #1 Exemple avec rand()

<?php
echo rand() . "\n";
echo 
rand() . "\n";

echo 
rand(515);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

7771
22264
11

Voir aussi

  • srand() - Initialise le générateur de nombres aléatoires
  • getrandmax() - Plus grande valeur aléatoire possible
  • mt_rand() - Génère une meilleure valeur aléatoire



round

(PHP 4, PHP 5)

roundArrondi un nombre à virgule flottante

Description

float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )

Retourne la valeur arrondie de val à la précision precision (nombre de chiffres après la virgule). Le paramètre precision peut être négatif ou NULL : c'est sa valeur par défaut.

Note: PHP ne gère pas correctement les chaînes telles que "12 300,2", par défaut. Reportez-vous à la conversion de chaînes.

Liste de paramètres

val

La valeur à arrondir

precision

Le nombre optionnel de décimales à arrondir.

mode

Une constante parmi PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN, ou PHP_ROUND_HALF_ODD.

Valeurs de retour

La valeur arrondie

Exemples

Exemple #1 Exemple avec round()

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.60);      // 4
echo round(1.955832);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.0452);    // 5.05
echo round(5.0552);    // 5.06
?>

Exemple #2 Exemple avec le paramètre mode

<?php
echo round(9.50PHP_ROUND_HALF_UP);   // 10
echo round(9.50PHP_ROUND_HALF_DOWN); // 9
echo round(9.50PHP_ROUND_HALF_EVEN); // 10
echo round(9.50PHP_ROUND_HALF_ODD);  // 9

echo round(8.50PHP_ROUND_HALF_UP);   // 9
echo round(8.50PHP_ROUND_HALF_DOWN); // 8
echo round(8.50PHP_ROUND_HALF_EVEN); // 8
echo round(8.50PHP_ROUND_HALF_ODD);  // 9
?>

Historique

Version Description
5.3.0 Le paramètre mode a été ajouté.
5.2.7 Le fonctionnement interne de round() a été modifié afin d'être conforme au standard C99.

Voir aussi



sin

(PHP 4, PHP 5)

sinSinus

Description

float sin ( float $arg )

sin() retourne le sinus de arg (arg in radians).

Liste de paramètres

arg

Une valeur, en radians

Valeurs de retour

Le sinus de arg.

Exemples

Exemple #1 Exemple avec sin()

<?php

// La précision dépend de la directive precision
echo sin(deg2rad(60));  //  0.866025403 ...
echo sin(60);           // -0.304810621 ...

?>

Voir aussi



sinh

(PHP 4 >= 4.1.0, PHP 5)

sinhSinus hyperbolique

Description

float sinh ( float $arg )

Retourne le sinus hyperbolique de arg, défini comme (exp(arg) - exp(-arg))/2.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

Le sinus hyperbolique de arg.

Voir aussi



sqrt

(PHP 4, PHP 5)

sqrtRacine carrée

Description

float sqrt ( float $arg )

Retourne la racine carrée de arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

La racine carrée de arg ou la valeur spéciale NAN pour les nombres négatifs.

Exemples

Exemple #1 Exemple avec sqrt()

<?php
// La précision dépend de votre directive precision
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Voir aussi

  • pow() - Expression exponentielle



srand

(PHP 4, PHP 5)

srandInitialise le générateur de nombres aléatoires

Description

void srand ([ int $seed ] )

srand() initialise le générateur de nombres aléatoires avec seed, ou avec une valeur aléatoire si aucun paramètre seed n'est fourni.

Note: Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

Liste de paramètres

seed

Valeur d'initialisation, optionnelle

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
Depuis la version 4.2.0 Le paramètre seed est devenu optionnel et vaut, par défaut, une valeur aléatoire si omis.

Exemples

Exemple #1 Exemple avec srand()

<?php
// initialise avec les microsecondes
function make_seed()
{
  list(
$usec$sec) = explode(' 'microtime());
  return (float) 
$sec + ((float) $usec 100000);
}
srand(make_seed());
$randval rand();
?>

Voir aussi

  • rand() - Génère une valeur aléatoire
  • getrandmax() - Plus grande valeur aléatoire possible
  • mt_srand() - Initialise une meilleure valeur aléatoire



tan

(PHP 4, PHP 5)

tanTangente

Description

float tan ( float $arg )

Retourne la tangente de arg (arg en radians).

Liste de paramètres

arg

L'argument à traiter, en radians

Valeurs de retour

La tangente de arg

Exemples

Exemple #1 Exemple avec tan()

<?php

echo tan(M_PI_4); // 1

?>

Voir aussi



tanh

(PHP 4 >= 4.1.0, PHP 5)

tanhTangente hyperbolique

Description

float tanh ( float $arg )

Retourne la tangente hyperbolique de arg, définie comme sinh(arg)/cosh(arg).

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

La tangente hyperbolique de arg.

Voir aussi


Sommaire

  • abs — Valeur absolue
  • acos — Arc cosinus
  • acosh — Arc cosinus hyperbolique
  • asin — Arc sinus
  • asinh — Arc sinus hyperbolique
  • atan2 — Arc tangent de deux variables
  • atan — Arc tangente
  • atanh — Arc tangente hyperbolique
  • base_convert — Convertit un nombre entre des bases arbitraires
  • bindec — Convertit de binaire en décimal
  • ceil — Arrondit au nombre supérieur
  • cos — Cosinus
  • cosh — Cosinus hyperbolique
  • decbin — Convertit de décimal en binaire
  • dechex — Convertit de décimal en hexadécimal
  • decoct — Convertit de décimal en octal
  • deg2rad — Convertit un nombre de degrés en radians
  • exp — Calcul l'exponentielle de e
  • expm1 — Calcule précisément exponentiel moins un
  • floor — Arrondit à l'entier inférieur
  • fmod — Retourne le reste de la division
  • getrandmax — Plus grande valeur aléatoire possible
  • hexdec — Convertit de hexadécimal en décimal
  • hypot — Calcul la longueur de l'hypoténuse d'un triangle à angle droit
  • is_finite — Indique si un nombre est fini
  • is_infinite — Indique si un nombre est infini
  • is_nan — Indique si une valeur n'est pas un nombre
  • lcg_value — Générateur de congruence combinée linéaire
  • log10 — Logarithme en base 10
  • log1p — Calcule précisément log(1 + nombre)
  • log — Logarithme naturel (népérien)
  • max — La plus grande valeur
  • min — La plus petite valeur
  • mt_getrandmax — La plus grande valeur aléatoire possible
  • mt_rand — Génère une meilleure valeur aléatoire
  • mt_srand — Initialise une meilleure valeur aléatoire
  • octdec — Conversion d'octal en décimal
  • pi — Retourne la valeur de pi
  • pow — Expression exponentielle
  • rad2deg — Conversion de radians en degrés
  • rand — Génère une valeur aléatoire
  • round — Arrondi un nombre à virgule flottante
  • sin — Sinus
  • sinh — Sinus hyperbolique
  • sqrt — Racine carrée
  • srand — Initialise le générateur de nombres aléatoires
  • tan — Tangente
  • tanh — Tangente hyperbolique



Fonctions statistiques


Introduction

Ceci est l'extension statistics. Elle contient quelques douzaines de fonctions pratiques pour des calculs statistiques. Il s'agit d'une enveloppe autour de 2 bibliothèques scientifique, nommée DCDFLIB (Bibliothèque de routines en C pour les Fonctions de Distributions Cumulative, Inverses et Autres paramètres) par B. Brown & J. Lavato et RANDLIB par Barry Brown, James Lavato & Kathy Russel. Inclut les fonctions CD et PD.



Installation/Configuration

Sommaire


Pré-requis

Aucune bibliothèque externe n'est nécessaire. L'extension vient intégrée avec les bibliothèques utilisées.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/stats.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions sur les statistiques


stats_absolute_deviation

(PECL stats >= 1.0.0)

stats_absolute_deviationRetourne l'écart absolu d'un tableau de valeurs

Description

float stats_absolute_deviation ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour



stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_betaFonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres

Description

float stats_cdf_beta ( float $par1 , float $par2 , float $par3 , int $which )


Method

Cumulative distribution function (P) is calculated directly by
code associated with the following reference.

DiDinato, A. R. and Morris, A. H. Algorithm 708: Significant
Digit Computation of the Incomplete Beta Function Ratios. ACM
Trans. Math. Softw. 18 (1993), 360-373.

Computation of other parameters involve a seach for a value that
produces the desired value of P. The search relies on the
monotinicity of P with the other parameter.

Note

The beta density is proportional to
t^(A-1) * (1-t)^(B-1)

Arguments


P -- The integral from 0 to X of the chi-square
distribution.
Input range: [0, 1].

Q -- 1-P.
Input range: [0, 1].
P + Q = 1.0.

X -- Upper limit of integration of beta density.
Input range: [0,1].
Search range: [0,1]

Y -- 1-X.
Input range: [0,1].
Search range: [0,1]
X + Y = 1.0.

A -- The first parameter of the beta density.
Input range: (0, +infinity).
Search range: [1D-100,1D100]

B -- The second parameter of the beta density.
Input range: (0, +infinity).
Search range: [1D-100,1D100]

STATUS -- 0 if calculation completed correctly
-I if input parameter number I is out of range
1 if answer appears to be lower than lowest
search bound
2 if answer appears to be higher than greatest
search bound
3 if P + Q .ne. 1
4 if X + Y .ne. 1

BOUND -- Undefined if STATUS is 0

Bound exceeded by parameter number I if STATUS
is negative.

Lower search bound if STATUS is 1.

Upper search bound if STATUS is 2.

Liste de paramètres

par1

par2

par3

which


Integer indicating which of the next four argument
values is to be calculated from the others.
Legal range: 1..4
which = 1 : Calculate P and Q from X,Y,A and B
which = 2 : Calculate X and Y from P,Q,A and B
which = 3 : Calculate A from P,Q,X,Y and B
which = 4 : Calculate B from P,Q,X,Y and A

Valeurs de retour


STATUS -- 0 if calculation completed correctly
-I if input parameter number I is out of range
1 if answer appears to be lower than lowest
search bound
2 if answer appears to be higher than greatest
search bound
3 if P + Q .ne. 1
4 if X + Y .ne. 1



stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomialCalcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres

Description

float stats_cdf_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchyNon documenté

Description

float stats_cdf_cauchy ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquareCalcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres

Description

float stats_cdf_chisquare ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour



stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponentialNon documenté

Description

float stats_cdf_exponential ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour



stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_fCalcule n'importe quel paramètre de distribution F des valeurs données pour les autres

Description

float stats_cdf_f ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gammaCalcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres

Description

float stats_cdf_gamma ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplaceNon documenté

Description

float stats_cdf_laplace ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logisticNon documenté

Description

float stats_cdf_logistic ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomialCalcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres

Description

float stats_cdf_negative_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquareCalcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres

Description

float stats_cdf_noncentral_chisquare ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_fCalcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres

Description

float stats_cdf_noncentral_f ( float $par1 , float $par2 , float $par3 , float $par4 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

par4

which

Valeurs de retour



stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poissonCalcule n'importe quel paramètre de distribution de Poisson des valeurs données pour les autres

Description

float stats_cdf_poisson ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour



stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_tCalcule n'importe quel paramètre de distribution T des valeurs données pour les autres

Description

float stats_cdf_t ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour



stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniformNon documenté

Description

float stats_cdf_uniform ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibullNon documenté

Description

float stats_cdf_weibull ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_covariance

(PECL stats >= 1.0.0)

stats_covarianceCalcule la covariance de deux séries de données

Description

float stats_covariance ( array $a , array $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

b

Valeurs de retour



stats_den_uniform

(PECL stats >= 1.0.0)

stats_den_uniformNon documenté

Description

float stats_den_uniform ( float $x , float $a , float $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

a

b

Valeurs de retour



stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_betaNon documenté

Description

float stats_dens_beta ( float $x , float $a , float $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

a

b

Valeurs de retour



stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchyNon documenté

Description

float stats_dens_cauchy ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour



stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquareNon documenté

Description

float stats_dens_chisquare ( float $x , float $dfr )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

dfr

Valeurs de retour



stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponentialNon documenté

Description

float stats_dens_exponential ( float $x , float $scale )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

scale

Valeurs de retour



stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f

Description

float stats_dens_f ( float $x , float $dfr1 , float $dfr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

dfr1

dfr2

Valeurs de retour



stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gammaNon documenté

Description

float stats_dens_gamma ( float $x , float $shape , float $scale )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

shape

scale

Valeurs de retour



stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplaceNon documenté

Description

float stats_dens_laplace ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour



stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logisticNon documenté

Description

float stats_dens_logistic ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour



stats_dens_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_negative_binomialNon documenté

Description

float stats_dens_negative_binomial ( float $x , float $n , float $pi )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

n

pi

Valeurs de retour



stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normalNon documenté

Description

float stats_dens_normal ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour



stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomialNon documenté

Description

float stats_dens_pmf_binomial ( float $x , float $n , float $pi )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

n

pi

Valeurs de retour



stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric

Description

float stats_dens_pmf_hypergeometric ( float $n1 , float $n2 , float $N1 , float $N2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n1

n2

N1

N2

Valeurs de retour



stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poissonNon documenté

Description

float stats_dens_pmf_poisson ( float $x , float $lb )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

lb

Valeurs de retour



stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_tNon documenté

Description

float stats_dens_t ( float $x , float $dfr )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

dfr

Valeurs de retour



stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibullNon documenté

Description

float stats_dens_weibull ( float $x , float $a , float $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

a

b

Valeurs de retour



stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_meanRetourne la moyenne harmonique d'un tableau de valeurs

Description

number stats_harmonic_mean ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour



stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosisCalcule le coefficient d'aplatissement des données dans un tableau

Description

float stats_kurtosis ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour



stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_betaGénère l'écart beta aléatoire

Description

float stats_rand_gen_beta ( float $a , float $b )

Retourne une déviation aléatoire de la distribution beta avec les paramètres A et B. La densité de beta est x^(a-1) * (1-x)^(b-1) / B(a,b) pour 0 < x <. Méthode R. C. H. Cheng.

Liste de paramètres

a

b

Valeurs de retour



stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquareGénère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire

Description

float stats_rand_gen_chisquare ( float $df )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

Valeurs de retour



stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponentialGénère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"

Description

float stats_rand_gen_exponential ( float $av )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

av

Valeurs de retour



stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_fGénère un écart aléatoire

Description

float stats_rand_gen_f ( float $dfn , float $dfd )

Génère un écart aléatoire à partir de la distribution F (ratio de variance) avec "dfn" degrés de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur. Méthode : génère directement le radio des variétés de Khi-carré.

Liste de paramètres

dfn

dfd

Valeurs de retour



stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiformGénère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)

Description

float stats_rand_gen_funiform ( float $low , float $high )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

low

high

Valeurs de retour



stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gammaGénère un écart aléatoire d'une distribution gamma

Description

float stats_rand_gen_gamma ( float $a , float $r )

Génère une déviation aléatoire d'une distribution gamma dont la densité est (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Liste de paramètres

a

Paramètre d'emplacement de la distribution Gamma (a > 0).

r

Paramètre de forme de la distribution Gamma (r > 0).

Valeurs de retour



stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negativeGénère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1))

Description

int stats_rand_gen_ibinomial_negative ( int $n , float $p )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n

p

Valeurs de retour



stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomialGénère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE

Description

int stats_rand_gen_ibinomial ( int $n , float $pp )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n

pp

Valeurs de retour



stats_rand_gen_int

(PECL stats >= 1.0.0)

stats_rand_gen_intGénère un entier aléatoire entre 1 et 2147483562

Description

int stats_rand_gen_int ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour



stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoissonGénère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0)

Description

int stats_rand_gen_ipoisson ( float $mu )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mu

Valeurs de retour



stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniformGénère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)

Description

int stats_rand_gen_iuniform ( int $low , int $high )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

low

high

Valeurs de retour



stats_rand_gen_noncenral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncenral_chisquareGénère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0

Description

float stats_rand_gen_noncenral_chisquare ( float $df , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

xnonc

Valeurs de retour



stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_fGénère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non centrale de numérateur à la variation Khi-carré centrale de dénominateur

Description

float stats_rand_gen_noncentral_f ( float $dfn , float $dfd , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

dfn

dfd

xnonc

Valeurs de retour



stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_tGénère l'écart aléatoire simple à partir d'une distribution T non centrale

Description

float stats_rand_gen_noncentral_t ( float $df , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

xnonc

Valeurs de retour



stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normalGénère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF

Description

float stats_rand_gen_normal ( float $av , float $sd )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

av

sd

Valeurs de retour



stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_tGénère un écart aléatoire simple à partir de la distribution T

Description

float stats_rand_gen_t ( float $df )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

Valeurs de retour



stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seedsNon documenté

Description

array stats_rand_get_seeds ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour



stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seedsGénère deux graines pour le générateur de nombre aléatoire RGN

Description

array stats_rand_phrase_to_seeds ( string $phrase )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

phrase

Valeurs de retour



stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranfRetourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet intervalle ne sont pas retourné) en utilisant le générateur courant

Description

float stats_rand_ranf ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour



stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setallNon documenté

Description

void stats_rand_setall ( int $iseed1 , int $iseed2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iseed1

iseed2

Valeurs de retour



stats_skew

(PECL stats >= 1.0.0)

stats_skewCalcul l'asymétrie des données dans un tableau

Description

float stats_skew ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour



stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviationRetourne l'écart type

Description

float stats_standard_deviation ( array $a [, bool $sample = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

sample

Valeurs de retour



stats_stat_binomial_coef

(PECL stats >= 1.0.0)

stats_stat_binomial_coefNon documenté

Description

float stats_stat_binomial_coef ( int $x , int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

n

Valeurs de retour



stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlationNon documenté

Description

float stats_stat_correlation ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour



stats_stat_gennch

(PECL stats >= 1.0.0)

stats_stat_gennchNon documenté

Description

float stats_stat_gennch ( int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n

Valeurs de retour



stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_tNon documenté

Description

float stats_stat_independent_t ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour



stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct

Description

float stats_stat_innerproduct ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour



stats_stat_noncentral_t

(PECL stats >= 1.0.0)

stats_stat_noncentral_tCalcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs

Description

float stats_stat_noncentral_t ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour



stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_tNon documenté

Description

float stats_stat_paired_t ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour



stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentileNon documenté

Description

float stats_stat_percentile ( float $df , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

xnonc

Valeurs de retour



stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersumNon documenté

Description

float stats_stat_powersum ( array $arr , float $power )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr

power

Valeurs de retour



stats_variance

(PECL stats >= 1.0.0)

stats_varianceRetourne la variance d'une population

Description

float stats_variance ( array $a [, bool $sample = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

sample

Valeurs de retour


Sommaire





Affichage des données non-textuelles


Format de formulaire


Introduction

Forms Data Format (FDF) est un format de formulaire pour les documents PDF. Vous pouvez lire la documentation (en anglais) à » http://www.adobe.com/devnet/acrobat/fdftoolkit.html pour plus de détails sur les tenants et les aboutissants.

L'esprit de FDF est similaire à celui des formulaires HTML. Les différences résident dans les moyens de transmission des données au serveur, lorsque le bouton "submit" (soumettre) est pressé (ce qui est du ressort de Form Data Format) et le format de formulaire lui-même (qui est plutôt du ressort de Portable Document Format, PDF). Gérer des données FDF est un des objectifs des fonctions FDF. Mais il y en a d'autres. Vous pouvez aussi prendre un formulaire PDF, et préremplir les champs, sans modifier le formulaire lui-même. Dans ce cas, on va créer un document FDF (fdf_create()), remplir les champs (fdf_set_value()) et l'associer à un fichier PDF (fdf_set_file()). Finalement, le tout sera envoyé au client, avec le type MIME application/vnd.fdf. Le module "Acrobat reader" de votre navigateur va reconnaître ce type MIME, et lire le fichier PDF, puis le remplir avec FDF.

Si vous éditez un fichier FDF avec un éditeur de texte, vous trouverez un catalogue d'objet avec le nom de FDF. Cet objet peut contenir des entrées telles que Fields, F, Status etc. Les entrées les plus couramment utilisées sont Fields, qui indique une liste de champs de contrôle, et F qui contient le nom du fichier PDF a qui appartiennent ces données. Ces entrées sont désignées dans la documentation PDF sous le nom de /F-Key ou /Status-Key. La modification de ces entrées est possible avec les fonctions fdf_set_file() et fdf_set_status(). Les champs sont modifiables avec les fonctions fdf_set_value(), fdf_set_opt() etc.



Installation/Configuration

Sommaire


Pré-requis

Vous aurez besoin du FDF toolkit SDK, disponible sur le site » http://www.adobe.com/devnet/acrobat/fdftoolkit.html. Depuis PHP 4.3.0, vous aurez besoin du SDK version 5.0. La bibliothèque FDF toolkit est disponible sous forme de bibliothèque compilée, éditée par Adobe, sur les systèmes d'exploitation Win32, Linux, Solaris et AIX.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/fdf.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0

Note: Si vous rencontrez des problèmes lors de la configuration de FDF avec le support fdftk, vérifiez que le fichier d'en-tête fdftk.h et la bibliothèque libfdftk.so sont à leur place. Le fichier de configuration supporte la hiérarchie de dossier de la distribution FDF SDK et l'organisation classique DIR/include et DIR/lib : vous pouvez donc utiliser l'un ou l'autre directement avec la distribution décompressée, ou bien en incluant le fichier d'en-têtes et la bibliothèque appropriée dans votre système, c'est-à-dire dans /usr/local/include et /usr/local/lib. Il ne reste plus qu'à configurer avec --with-fdftk=/usr/local .

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : fdftk.dll



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

La plupart des fonctions FDF nécessite une ressource de type fdf comme premier argument. Une ressource fdf est une structure qui représente un fichier FDF ouvert. Vous pouvez créer des ressources fdf avec les fonctions fdf_create(), fdf_open() et fdf_open_string().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FDFValue (entier)
FDFStatus (entier)
FDFFile (entier)
FDFID (entier)
FDFFf (entier)
FDFSetFf (entier)
FDFClearFf (entier)
FDFFlags (entier)
FDFSetF (entier)
FDFClrF (entier)
FDFAP (entier)
FDFAS (entier)
FDFAction (entier)
FDFAA (entier)
FDFAPRef (entier)
FDFIF (entier)
FDFEnter (entier)
FDFExit (entier)
FDFDown (entier)
FDFUp (entier)
FDFFormat (entier)
FDFValidate (entier)
FDFKeystroke (entier)
FDFCalculate (entier)
FDFNormalAP (entier)
FDFRolloverAP (entier)
FDFDownAP (entier)


Exemples

Les exemples suivants montrent comment évaluer les données du formulaire.

Exemple #1 Évaluer un document FDF

<?php
// Ouvrir un fichier FDF depuis une chaîne fournie par l'extension PDF
// Le formulaire PDF contient plusieurs champs texte avec les noms de
// volume, date, comment, publisher, preparer, et two boîtes à cocher
// show_publisher et show_preparer.
$fdf fdf_open_string($HTTP_FDF_DATA);
$volume fdf_get_value($fdf"volume");
echo 
'Le champ Volume contient la valeur : "<strong>' $volume '</strong>"<br />';

$date fdf_get_value($fdf"date");
echo 
'La valeur du champ date était "<strong>' $date '</strong>"<br />';

$comment fdf_get_value($fdf"comment");
echo 
'La valeur du champ comment était "<strong>' $comment '</strong>"<br />';

if (
fdf_get_value($fdf"show_publisher") == "On") {
  
$publisher fdf_get_value($fdf"publisher");
  echo 
"La valeur du champ Publisher était : '<strong>" $publisher "</strong><br />";
} else
  echo 
'La valeur du champ Publisher ne doit pas être affichée.<br />';
  
if (
fdf_get_value($fdf"show_preparer") == "On") {
  
$preparer fdf_get_value($fdf"preparer");
  echo 
'La valeur du champ Preparer était  "<strong>' $preparer '</strong>"<br />';
} else
  echo 
'La valeur du champ Preparer ne doit pas être affiché.<br />';
fdf_close($fdf);
?>



Fonctions FDF


fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_add_doc_javascriptAjoute du code javascript dans un document FDF

Description

bool fdf_add_doc_javascript ( resource $fdf_document , string $script_name , string $script_code )

Ajoute le code javascript script_code dans le document fdfdoc, qu'Acrobat ajoutera aux scripts de niveau document, une fois le FDF importé.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

script_name

Le nom du script.

script_code

Le code du script. Il est fortement recommandé d'utiliser '\r' comme séparateur de lignes dans le code script_code.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de code JavaScript à un document FDF

<?php
$fdf 
fdf_create();
fdf_add_doc_javascript($fdf"PlusOne""function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

Cet exemple va créer un document FDF comme celui ci :

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF



fdf_add_template

(PHP 4, PHP 5)

fdf_add_templateAjoute un template dans le document FDF

Description

bool fdf_add_template ( resource $fdf_document , int $newpage , string $filename , string $template , int $rename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



fdf_close

(PHP 4, PHP 5)

fdf_closeFerme un document FDF

Description

void fdf_close ( resource $fdf_document )

Ferme le document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



fdf_create

(PHP 4, PHP 5)

fdf_createCrée un nouveau document FDF

Description

resource fdf_create ( void )

Crée un nouveau document FDF.

Cette fonction est nécessaire pour ceux qui veulent préremplir les champs d'un formulaire dans un fichier PDF.

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple #1 Préremplir un formulaire PDF

<?php
$outfdf 
fdf_create();
fdf_set_value($outfdf"volume"$volume0);

fdf_set_file($outfdf"http:/testfdf/resultlabel.pdf");
fdf_save($outfdf"outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp fopen("outtest.fdf""r");
fpassthru($fp);
unlink("outtest.fdf");
?>

Voir aussi



fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5)

fdf_enum_valuesAppelle une fonction utilisateur à chaque valeur FDF

Description

bool fdf_enum_values ( resource $fdf_document , callback $function [, mixed $userdata ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



fdf_errno

(PHP 4 >= 4.3.0, PHP 5)

fdf_errnoRetourne le code d'erreur de la dernière opération FDF

Description

int fdf_errno ( void )

Récupère le code d'erreur de la dernière opération FDF.

Un message d'erreur est accessible via la fonction fdf_error() function.

Valeurs de retour

Retourne le code erreur sous la forme d'un entier ou 0 si aucune erreur n'est survenue.

Voir aussi



fdf_error

(PHP 4 >= 4.3.0, PHP 5)

fdf_errorRetourne le message d'erreur FDF

Description

string fdf_error ([ int $error_code = -1 ] )

Retourne le message d'erreur FDF.

Liste de paramètres

error_code

Un code erreur obtenu avec la fonction fdf_errno(). S'il n'est pas fourni, cette fonction utilise le code erreur interne défini par la dernière opération.

Valeurs de retour

Retourne le message d'erreur sous la forme d'une chaîne de caractères ou la chaîne no error s'il n'y en a pas.

Voir aussi

  • fdf_errno() - Retourne le code d'erreur de la dernière opération FDF



fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_apLit l'apparence d'un champ

Description

bool fdf_get_ap ( resource $fdf_document , string $field , int $face , string $filename )

Lit l'apparence du champ field (i.e. la valeur de la clé /AP) et le stocke dans le fichier filename.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

field

face

Les valeurs possibles sont FDFNormalAP, FDFRolloverAP et FDFDownAP.

filename

L'apparence sera stockée dans ce paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_attachmentExtrait un fichier intégré dans un document FDF

Description

array fdf_get_attachment ( resource $fdf_document , string $fieldname , string $savepath )

Extrait le fichier fieldname téléchargé par le biais du champ "file selection", puis le stocke dans le fichier savepath.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

savepath

Peut être le nom d'un fichier ou bien un dossier dans lequel le fichier téléchargé sera créé sous son nom original. Tout fichier déjà existant avec le même nom sera écrasé.

Note:

Il semble qu'il n'y ait pas d'autre moyen pour connaître le nom du fichier téléchargé que de le stocker dans un dossier avec savepath puis de lire son nom dans le dossier.

Valeurs de retour

Le tableau retourné contient les champs suivants :

  • path - chemin de stockage du dossier
  • size - taille du fichier stocké en octets
  • type - Type MIMI du fichier, s'il a été fourni dans le document FDF

Exemples

Exemple #1 Enregistrement d'un fichier téléchargé

<?php
$fdf 
fdf_open_string($HTTP_FDF_DATA);
$data fdf_get_attachment($fdf"filename""/tmpdir");
echo 
"Le fichier téléchargé est stocké dans $data[path]";
?>



fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_encodingLit la valeur de la clé /Encoding

Description

string fdf_get_encoding ( resource $fdf_document )

Récupère la valeur de la clé /Encoding.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

Valeurs de retour

Retourne l'encodage, sous la forme d'une chaîne de caractères. Une chaîne vide est retournée si le schéma PDFDocEncoding/Unicode est utilisé.

Voir aussi



fdf_get_file

(PHP 4, PHP 5)

fdf_get_fileLit la valeur de la clé /F

Description

string fdf_get_file ( resource $fdf_document )

Lit la valeur de la clé /F.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

Valeurs de retour

Retourne la valeur de la clé, sous la forme d'une chaîne de caractères.

Voir aussi

  • fdf_set_file() - Crée un document PDF pour y afficher des données FDF



fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_flagsLit les attributs d'un champ FDF

Description

int fdf_get_flags ( resource $fdf_document , string $fieldname , int $whichflags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_optLit une valeur dans un tableau de valeur d'un champ FDF

Description

mixed fdf_get_opt ( resource $fdf_document , string $fieldname [, int $element = -1 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



fdf_get_status

(PHP 4, PHP 5)

fdf_get_statusLit la valeur de la clé /STATUS

Description

string fdf_get_status ( resource $fdf_document )

Lit la valeur de la clé /STATUS.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

Valeurs de retour

Retourne la valeur de la clé, sous la forme d'une chaîne de caractères.

Voir aussi



fdf_get_value

(PHP 4, PHP 5)

fdf_get_valueRetourne la valeur d'un champ FDF

Description

mixed fdf_get_value ( resource $fdf_document , string $fieldname [, int $which = -1 ] )

Retourne la valeur d'un champ FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

which

Les éléments d'un champ tableau peuvent être lus en fournissant ce paramètre optionnel, sous la forme d'un entier dont la plus petite valeur sera 0. Pour les champs qui ne sont pas des tableaux, ce paramètre optionnel sera ignoré.

Valeurs de retour

Retourne la valeur du champ.

Historique

Version Description
4.3.0 Le support des tableaux et le paramètre which on été ajoutés.

Voir aussi



fdf_get_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_versionLit le numéro de version de l'API FDF

Description

string fdf_get_version ([ resource $fdf_document ] )

Retourne le numéro de version FDF pour le document fdf_document, pour l'API si aucun paramètre n'est donné.

Liste de paramètres

fdf_document

Le gestionnaire de document, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

Valeurs de retour

Retourne la version, sous la forme d'une chaîne de caractères. Pour la version actuelle du FDF toolkit 5.0, le numéro de version est 5.0 et le numéro de version de document est 1.2, 1.3 ou 1.4.

Voir aussi



fdf_header

(PHP 4 >= 4.3.0, PHP 5)

fdf_headerÉmet les en-têtes HTTP spécifiques à FDF

Description

void fdf_header ( void )

fdf_header() est une fonction de confort, pour émettre les en-têtes HTTP spécifiques à FDF. Elle permet d'envoyer le type Content-type: avec la valeur application/vnd.fdf.

Valeurs de retour

Aucune valeur n'est retournée.



fdf_next_field_name

(PHP 4, PHP 5)

fdf_next_field_nameLit le nom du champ FDF suivant

Description

string fdf_next_field_name ( resource $fdf_document [, string $fieldname ] )

Lit le nom du champ FDF suivant. Ce nom pourra être utilisé dans plusieurs fonctions.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères. S'il n'est pas fournis, le premier champ sera retourné.

Valeurs de retour

Retourne le nom du champ, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Détecter tous les noms d'un formulaire FDF

<?php
$fdf 
fdf_open($HTTP_FDF_DATA);
for (
$field fdf_next_field_name($fdf);
    
$field != "";
    
$field fdf_next_field_name($fdf$field)) {
    echo 
"field: $field\n";
}
?>

Voir aussi



fdf_open_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_open_stringLit un document FDF à partir d'une chaîne de caractères

Description

resource fdf_open_string ( string $fdf_data )

Lit un document FDF à partir d'une chaîne de caractères.

Vous pouvez utiliser fdf_open_string() avec la variable $HTTP_FDF_DATA pour traiter des données de formulaires issues de clients distants.

Liste de paramètres

fdf_data

Les données, comme retournés depuis un formulaire PDF ou créés en utilisant les fonctions fdf_create() et fdf_save_string().

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple #1 Accès aux données de formulaire FDF

<?php
$fdf 
fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Voir aussi



fdf_open

(PHP 4, PHP 5)

fdf_openOuvre un document FDF

Description

resource fdf_open ( string $filename )

Ouvre un document FDF.

Vous pouvez également utiliser la fonction fdf_open_string() pour traiter le résultat d'un formulaire PDF issue d'une méthode POST.

Liste de paramètres

filename

Chemin vers le fichier FDF. Ce fichier doit contenir les données telles que retournées par un formulaire PDF ou créées en utilisant les fonctions fdf_create() et fdf_save().

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple #1 Accéder aux données du formulaire

<?php
// Sauve le fichier FDF dans un fichier temporaire.
$fdffp fopen("test.fdf""w");
fwrite($fdffp$HTTP_FDF_DATAstrlen($HTTP_FDF_DATA));
fclose($fdffp);

// Ouvre le fichier temporaire, et utilise les données.
$fdf fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

Voir aussi



fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5)

fdf_remove_itemConfigure le cadre FDF de destination pour le formulaire

Description

bool fdf_remove_item ( resource $fdf_document , string $fieldname , int $item )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



fdf_save_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_save_stringRetourne un document FDF sous forme d'une chaîne de caractères

Description

string fdf_save_string ( resource $fdf_document )

Retourne un document FDF sous forme d'une chaîne de caractères.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

Valeurs de retour

Retourne le document, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Lire un document FDF sous forme de chaîne de caractères

<?php
$fdf 
fdf_create();
fdf_set_value($fdf"foo""bar");
$str fdf_save_string($fdf);
fdf_close($fdf);
echo 
$str;
?>

L'exemple ci-dessus va afficher :

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Voir aussi



fdf_save

(PHP 4, PHP 5)

fdf_saveSauvegarde un document FDF

Description

bool fdf_save ( resource $fdf_document [, string $filename ] )

Sauvegarde un document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

filename

Si fourni, le FDF résultant sera écrit dans ce paramètre. Sinon, cette fonction écrira le FDF dans la sortie standard PHP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fdf_set_ap

(PHP 4, PHP 5)

fdf_set_apFixe l'apparence d'un champ FDF

Description

bool fdf_set_ap ( resource $fdf_document , string $field_name , int $face , string $filename , int $page_number )

Fixe l'apparence d'un champ FDF (i.e. la valeur de la clé /AP).

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

field_name

face

Les valeurs possibles sont : FDFNormalAP, FDFRolloverAP et FDFDownAP.

filename

page_number

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5)

fdf_set_encodingModifie l'encodage des caractères

Description

bool fdf_set_encoding ( resource $fdf_document , string $encoding )

Modifie l'encodage des caractères du document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

encoding

Le nom de l'encodage. Les valeurs suivantes sont supportées : "Shift-JIS", "UHC", "GBK" et "BigFive".

Une chaîne de caractères vide replace la valeur par défaut de l'encodage au schéma PDFDocEncoding/Unicode.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



fdf_set_file

(PHP 4, PHP 5)

fdf_set_fileCrée un document PDF pour y afficher des données FDF

Description

bool fdf_set_file ( resource $fdf_document , string $url [, string $target_frame ] )

Crée un document PDF pour y afficher des données FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

url

Doit être fourni sous la forme d'une URL absolue.

target_frame

Utilisez ce paramètre pour spécifier la frame dans laquelle le document sera affiché. Vous pouvez également définir la valeur par défaut de ce paramètre en utilisant la fonction fdf_set_target_frame().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Passer des données FDF à un second formulaire

<?php
/* Configure l'en-tête pour Adobe FDF */
fdf_header();

/* Démarre un nouveau fichier FDF */
$fdf fdf_create();

/* Assigne au champ "foo" la valeur de "bar" */
fdf_set_value($fdf"foo""bar");

/* Indique au client d'afficher les données FDF avec "fdf_form.pdf" */
fdf_set_file($fdf"http://www.example.com/fdf_form.pdf");

/* Affiche le FDF */
fdf_save($fdf);

/* Nettoie */
fdf_close($fdf);
?>

Voir aussi



fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_flagsModifie une option d'un champ

Description

bool fdf_set_flags ( resource $fdf_document , string $fieldname , int $whichFlags , int $newFlags )

Modifie une option d'un champ.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

whichFlags

newFlags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_javascript_actionModifie l'action javascript d'un champ

Description

bool fdf_set_javascript_action ( resource $fdf_document , string $fieldname , int $trigger , string $script )

Modifie l'action javascript d'un champ donné.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

trigger

script

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_on_import_javascriptAjoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF

Description

bool fdf_set_on_import_javascript ( resource $fdf_document , string $script , bool $before_data_import )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_optModifie une option d'un champ

Description

bool fdf_set_opt ( resource $fdf_document , string $fieldname , int $element , string $str1 , string $str2 )

Modifie une option d'un champ donné.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

element

str1

str2

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fdf_set_status

(PHP 4, PHP 5)

fdf_set_statusFixe la valeur de la clé /STATUS

Description

bool fdf_set_status ( resource $fdf_document , string $status )

Fixe la valeur de la clé /STATUS. Lorsqu'un client reçoit un FDF avec un statut positionné, sa valeur sera présenté dans une boîte d'alerte.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

status

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_submit_form_actionModifie l'action d'un formulaire

Description

bool fdf_set_submit_form_action ( resource $fdf_document , string $fieldname , int $trigger , string $script , int $flags )

Modifie l'action d'un formulaire.

Liste de paramètres

fdf_document

Le gestionnaire de document, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

trigger

script

flags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_target_frameConfigure le cadre de destination pour l'affichage du formulaire

Description

bool fdf_set_target_frame ( resource $fdf_document , string $frame_name )

Configure le cadre de destination pour l'affichage du résultat PDF défini par fdf_save_file().

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

frame_name

Le nom du cadre, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_save_file()



fdf_set_value

(PHP 4, PHP 5)

fdf_set_valueModifie la valeur d'un champ FDF

Description

bool fdf_set_value ( resource $fdf_document , string $fieldname , mixed $value [, int $isName ] )

Modifie la valeur d'un champ FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

value

Ce paramètre devra être stocké comme une chaîne de caractères même si c'est un tableau. Dans ce cas, tous les éléments du tableau seront stockés comme un tableau de valeur.

isName

Note:

Dans les anciennes versions de la suite FDF, le dernier paramètre déterminait si la valeur du champs devait être convertie en un nom PDF (isname = 1) ou positionnée comme une chaîne de caractères (isname = 0).

La valeur n'est plus dans la suite actuelle, version 5.0. Pour des raisons de compatibilité, cela est toujours supporté comme un paramètre optionnel depuis PHP 4.3, mais ignoré en interne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 Le support des tableaux dans le paramètre value a été ajouté.

Voir aussi



fdf_set_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_versionModifie le numéro de version du fichier FDF

Description

bool fdf_set_version ( resource $fdf_document , string $version )

Modifie le numéro de version du document FDF courant.

Certaines fonctionnalités supportées par cette extension ne sont disponibles que pour les nouvelles versions de FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

version

Le numéro de version. Pour le toolkit FDF courant, ce peut être 1.2, 1.3 ou 1.4.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




GNU PG


Introduction

Ce module vous permet d'interagir avec » gnupg.



Installation/Configuration

Sommaire


Pré-requis

L'extension gnupg requiert PHP 4.3. Pour utiliser cette extension dans le style orienté objet, PHP 5 est requis.

Cette extension requiert la » bibliothèque gpgme.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gnupg.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

GNUPG_SIG_MODE_NORMAL (entier)
GNUPG_SIG_MODE_DETACH (entier)
GNUPG_SIG_MODE_CLEAR (entier)
GNUPG_VALIDITY_UNKNOWN (entier)
GNUPG_VALIDITY_UNDEFINED (entier)
GNUPG_VALIDITY_NEVER (entier)
GNUPG_VALIDITY_MARGINAL (entier)
GNUPG_VALIDITY_FULL (entier)
GNUPG_VALIDITY_ULTIMATE (entier)
GNUPG_PROTOCOL_OpenPGP (entier)
GNUPG_PROTOCOL_CMS (entier)
GNUPG_SIGSUM_VALID (entier)
GNUPG_SIGSUM_GREEN (entier)
GNUPG_SIGSUM_RED (entier)
GNUPG_SIGSUM_KEY_REVOKED (entier)
GNUPG_SIGSUM_KEY_EXPIRED (entier)
GNUPG_SIGSUM_KEY_MISSING (entier)
GNUPG_SIGSUM_SIG_EXPIRED (entier)
GNUPG_SIGSUM_CRL_MISSING (entier)
GNUPG_SIGSUM_CRL_TOO_OLD (entier)
GNUPG_SIGSUM_BAD_POLICY (entier)
GNUPG_SIGSUM_SYS_ERROR (entier)
GNUPG_ERROR_WARNING (entier)
GNUPG_ERROR_EXCEPTION (entier)
GNUPG_ERROR_SILENT (entier)


Exemples

Sommaire


Signe en clair un texte

Cet exemple signe en clair un texte donné.

Exemple #1 Exemple avec gnupg clearsign (Style procédural)

<?php
// Initialisation de gnupg
$res gnupg_init();

// Pas vraiment nécessaire. Clearsign est par défaut.
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);

// Ajoute une clé avec une passphrase 'test' pour signer
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");

// Signe
$signed gnupg_sign($res,"just a test");

echo 
$signed;
?>

Exemple #2 Exemple avec gnupg clearsign (Style orienté objet)

<?php
// Nouvelle classe
$gnupg = new gnupg();

// Pas vraiment nécessaire. Clearsign est par défaut
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);

// ajoute une clé avec une passphrase 'test' pour signer
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");

// Signe
$signed gnupg_sign($res,"just a test");
echo 
$signed;
?>

Exemple #3 keylistiterator

Cette extension vient aussi avec un Itérateur pour votre trousseau.

<?php
// Crée un nouvel itérateur pour lister toutes les clés publiques qui
// correspondent à 'exemple'$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
    echo 
$fingerprint." -> ".$userid."\n";
}
?>



Fonctions GnuPG

Notes

Cette extension utilise le trousseau de l'usager courant. Ce trousseau est normalement situé dans ~./.gnupg/. Pour spécifier un emplacement différent, enregistrer le chemin de votre trousseau dans la variable d'environnement GNUPGHOME. Voyez putenv pour plus d'information pour savoir comment faire cela.

Certaines fonctions requièrent la spécification d'une clé. Cette spécification peut être quelque chose qui réfère à une clé unique (userid, key-id, fingerprint, ...). Cette documentation utilise les fingerprint dans tous les exemples.


gnupg_adddecryptkey

(PECL gnupg >= 0.5)

gnupg_adddecryptkeyAjoute une clé pour déchiffrement

Description

bool gnupg_adddecryptkey ( resource $identifier , string $fingerprint , string $passphrase )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

passphrase

La phrase de passe (comme le mot de passe, mais plus long).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_adddecryptkey() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Exemple #2 Exemple avec gnupg_adddecryptkey() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>



gnupg_addencryptkey

(PECL gnupg >= 0.5)

gnupg_addencryptkeyAjoute une clé pour chiffrement

Description

bool gnupg_addencryptkey ( resource $identifier , string $fingerprint )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_addencryptkey() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
?>

Exemple #2 Exemple avec gnupg_addencryptkey() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
?>



gnupg_addsignkey

(PECL gnupg >= 0.5)

gnupg_addsignkeyAjoute une clé pour signer

Description

bool gnupg_addsignkey ( resource $identifier , string $fingerprint [, string $passphrase ] )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

passphrase

La phrase de passe (comme le mot de passe, mais plus long).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_addsignkey() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Exemple #2 Exemple avec gnupg_addsignkey() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>



gnupg_cleardecryptkeys

(PECL gnupg >= 0.5)

gnupg_cleardecryptkeysSupprime toutes les clés qui étaient fixées pour déchiffrement auparavant

Description

bool gnupg_cleardecryptkeys ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_cleardecryptkeys() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_cleardecryptkeys($res);
?>

Exemple #2 Exemple avec gnupg_cleardecryptkeys() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> cleardecryptkeys();
?>



gnupg_clearencryptkeys

(PECL gnupg >= 0.5)

gnupg_clearencryptkeysSupprime toutes les clés qui étaient fixées pour chiffrement auparavant

Description

bool gnupg_clearencryptkeys ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_clearencryptkeys() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_clearencryptkeys($res);
?>

Exemple #2 Exemple avec gnupg_clearencryptkeys() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> clearencryptkeys();
?>



gnupg_clearsignkeys

(PECL gnupg >= 0.5)

gnupg_clearsignkeysSupprime toutes les clés qui étaient fixées pour signature auparavant

Description

bool gnupg_clearsignkeys ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_clearsignkeys() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_clearsignkeys($res);
?>

Exemple #2 Exemple avec gnupg_clearsignkeys() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> clearsignkeys();
?>



gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decryptDéchiffre un texte donné

Description

string gnupg_decrypt ( resource $identifier , string $text )

Déchiffre un texte donné avec les clés qui ont été fixées avec gnupg_adddecryptkey auparavant.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

text

Le texte à déchiffrer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_decrypt() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain gnupg_decrypt($res,$encrypted_text);
echo 
$plain;
?>

Exemple #2 Exemple avec gnupg_encrypt() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain $gpg -> decrypt($encrypted_text);
echo 
$plain;
?>



gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverifyDéchiffre et vérifie un texte donné

Description

array gnupg_decryptverify ( resource $identifier , string $text , string &$plaintext )

Déchiffre et vérifie un texte donné et retourne les informations à propos de la signature.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

text

Le texte à déchiffrer.

plaintext

Le paramètre plaintext se remplit avec le texte déchiffré.

Valeurs de retour

En cas de succès, cette fonction retourne les informations à propos de la signature et remplit le paramètre plaintext avec le texte déchiffré. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_decryptverify() (Style procédural)

<?php
$plaintext 
"";
$res gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$info gnupg_decryptverify($res,$text,$plaintext);
print_r($info);
?>

Exemple #2 Exemple avec gnupg_decryptverify() (Style orienté objet)

<?php
$plaintext 
"";
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$info $gpg -> decryptverify($text,$plaintext);
print_r($info);
?>



gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encryptChiffre un texte donné

Description

string gnupg_encrypt ( resource $identifier , string $plaintext )

Chiffre le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addencryptkey auparavant et retourne le texte chiffré.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

plaintext

Le texte à chiffrer.

Valeurs de retour

En cas de succès, cette fonction retourne le texte chiffré. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_encrypt() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc gnupg_encrypt($res"juste un test");
echo 
$enc;
?>

Exemple #2 Exemple avec gnupg_encrypt() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc $gpg -> encrypt("juste un test");
echo 
$enc;
?>



gnupg_encryptsign

(PECL gnupg >= 0.2)

gnupg_encryptsignChiffre et signe un texte donné

Description

string gnupg_encryptsign ( resource $identifier , string $plaintext )

Chiffre et signe le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addsignkey et gnupg_addencryptkey auparavant et retourne le texte chiffré et signé.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

plaintext

Le texte à chiffrer.

Valeurs de retour

En cas de succès, cette fonction retourne le texte signé et crypté. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_encryptsign() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc gnupg_encryptsign($res"juste un test");
echo 
$enc;
?>

Exemple #2 Exemple avec gnupg_encryptsign() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc $gpg -> encryptsign("juste un test");
echo 
$enc;
?>



gnupg_export

(PECL gnupg >= 0.1)

gnupg_exportExporte une clé

Description

string gnupg_export ( resource $identifier , string $fingerprint )

Exporte la clé fingerprint.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

Valeurs de retour

En cas de succès, cette fonction retourne les données de la clé. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_export() (Style procédural)

<?php
$res 
gnupg_init();
$export gnupg_export($res,"8660281B6051D071D94B5B230549F9DC851566DC");
echo 
$export;
?>

Exemple #2 Exemple avec gnupg_export() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$export $gpg -> export("8660281B6051D071D94B5B230549F9DC851566DC");
?>



gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterrorRetourne le texte d'erreur, si une fonction échoue

Description

string gnupg_geterror ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Retourne le texte d'erreur si une erreur s'est produite, sinon retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_geterror() (Style procédural)

<?php
$res 
gnupg_init();
echo 
gnupg_geterror($res);
?>

Exemple #2 Exemple avec gnupg_geterror() (Style orienté objet)

<?php
$gpg 
= new gnupg();
echo 
$gpg -> geterror();
?>



gnupg_getprotocol

(PECL gnupg >= 0.1)

gnupg_getprotocolRetourne le protocole actif courant pour toutes les opérations

Description

int gnupg_getprotocol ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Retourne le protocole actif courant, qui peut être un de ceux-ci : GNUPG_PROTOCOL_OpenPGP ou GNUPG_PROTOCOL_CMS.

Exemples

Exemple #1 Exemple avec gnupg_getprotocol() (Style procédural)

<?php
$res 
gnupg_init();
echo 
gnupg_getprotocol($res);
?>

Exemple #2 Exemple avec gnupg_getprotocol() (Style orienté objet)

<?php
$gpg 
= new gnupg();
echo 
$gpg -> getprotocol();
?>



gnupg_import

(PECL gnupg >= 0.3)

gnupg_importImporte une clé

Description

array gnupg_import ( resource $identifier , string $keydata )

Importe la clé keydata et retourne un tableau avec les informations à propos du processus d'importation.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

keydata

La clé à importer.

Valeurs de retour

En cas de succès, cette fonction retourne un tableau d'information à propos du processus d'importation. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_import() (Style procédural)

<?php
$res 
gnupg_init();
$info gnupg_import($res,$keydata);
print_r($info);
?>

Exemple #2 Exemple avec gnupg_import() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$info $gpg -> import($keydata);
print_r($info);
?>



gnupg_init

(PECL gnupg >= 0.4)

gnupg_initInitialise une connexion

Description

resource gnupg_init ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une ressource de connexion GnuPG, utilisée par les autres fonctions GnuPG.

Exemples

Exemple #1 Exemple avec gnupg_init() (Style procédural)

<?php
$res 
gnupg_init();
?>

Exemple #2 Exemple avec gnupg_init() (Style orienté objet)

<?php
$gpg 
= new gnupg();
?>



gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfoRetourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné

Description

array gnupg_keyinfo ( resource $identifier , string $pattern )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

pattern

Le masque à utiliser sur les clés.

Valeurs de retour

Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné ou retourne FALSE si une erreur s'est produite.

Exemples

Exemple #1 Exemple avec gnupg_keyinfo() (Style procédural)

<?php
$res 
gnupg_init();
$info gnupg_keyinfo($res'test');
print_r($info);
?>

Exemple #2 Exemple avec gnupg_keyinfo() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$info $gpg -> keyinfo("test");
print_r($info);
?>



gnupg_setarmor

(PECL gnupg >= 0.1)

gnupg_setarmorChange la sortie blindée

Description

bool gnupg_setarmor ( resource $identifier , int $armor )

Change la sortie blindée.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

armor

Passez une valeur entière différente de zéro à cette fonction pour activer la sortie blindée (valeur par défaut). Passez 0 pour désactiver la sortie blindée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_setarmor() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_setarmor($res,1); // Active la sortie blindée;
gnupg_setarmor($res,0); // Désactive la sortie blindée;
?>

Exemple #2 Exemple avec gnupg_setarmor() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> setarmor(1); // Active la sortie blindée;
$gpg -> setarmor(0); // Désactive la sortie blindée;
?>



gnupg_seterrormode

(PECL gnupg >= 0.6)

gnupg_seterrormodeFixe le mode pour error_reporting

Description

void gnupg_seterrormode ( resource $identifier , int $errormode )

Fixe le mode pour error_reporting.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

errormode

Le mode de l'erreur.

errormode prend une constante indiquant quel type de error_reporting devrait être utilisé. Les valeurs possibles sont GNUPG_ERROR_WARNING, GNUPG_ERROR_EXCEPTION et GNUPG_ERROR_SILENT. Par défaut GNUPG_ERROR_SILENT.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec gnupg_seterrormode() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING); // émet un PHP-Warning dans le cas d'une erreur
?>

Exemple #2 Exemple avec gnupg_seterrormode() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION); // jette une exception dans le cas d'une erreur
?>



gnupg_setsignmode

(PECL gnupg >= 0.1)

gnupg_setsignmodeFixe le mode pour signer

Description

bool gnupg_setsignmode ( resource $identifier , int $signmode )

Fixe le mode pour signer.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

sigmode

Le mode de signature.

signmode prend une constante indiquant quel type de signature qui doit être produite. Les valeurs possibles sont : GNUPG_SIG_MODE_NORMAL, GNUPG_SIG_MODE_DETACH et GNUPG_SIG_MODE_CLEAR. Par défaut, GNUPG_SIG_MODE_CLEAR est utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_setsignmode() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_setsignmode($res,GNUPG_SIG_MODE_DETACH); // produit une signature détachée
?>

Exemple #2 Exemple avec gnupg_setsignmode() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg->setsignmode(gnupg::SIG_MODE_DETACH); // produit une signature détachée
?>



gnupg_sign

(PECL gnupg >= 0.1)

gnupg_signSigne un texte donné

Description

string gnupg_sign ( resource $identifier , string $plaintext )

Signe le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addsignkey auparavant et retourne le texte signé ou la signature, dépendamment de ce qui a été fixé avec gnupg_setsignmode.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

plaintext

Le texte à signer.

Valeurs de retour

En cas de succès, cette fonction retourne le texte signé ou la signature. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_sign() (Style procédural)

<?php
$res 
gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed gnupg_sign($res"juste un test");
echo 
$signed;
?>

Exemple #2 Exemple avec gnupg_sign() (Style orienté objet)

<?php
$gpg 
= new gnupg();
$gpg -> setsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed $gpg -> sign("juste un test");
echo 
$signed;
?>



gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verifyVérifie un texte signé

Description

array gnupg_verify ( resource $identifier , string $signed_text , string $signature [, string &$plaintext ] )

Vérifie le paramètre signed_text et retourne les informations à propos de la signature.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

signed_text

Le texte signé.

signature

La signature. Pour vérifier un texte signé en clair, fixez la signature à FALSE.

plaintext

Le texte. Si ce paramètre optionnel est passé, il est rempli avec le plaintext.

Valeurs de retour

En cas de succès, cette fonction retourne des informations à propos de la signature. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_verify() (Style procédural)

<?php
$plaintext 
"";
$res gnupg_init();
// signé en clair
$info gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// signature détachée
$info gnupg_verify($res,$signed_text,$signature);
print_r($info);
?>

Exemple #2 Exemple avec gnupg_verify() (Style orienté objet)

<?php
$plaintext 
"";
$gpg = new gnupg();
// signé en clair
$info $gpg -> verify($signed_text,false,$plaintext);
print_r($info);
// signature détachée
$info $gpg -> verify($signed_text,$signature);
print_r($info);
?>


Sommaire




Haru PDF


Introduction

L'extension PECL/Haru fournit une API pour la bibliothèque Haru Free PDF : c'est une bibliothèque libre, multiplate-forme, Open Source pour la génération de fichiers PDF.

La bibliothèque Haru (libHaru) peut être trouvée ici : » http://libharu.org.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Vous devez d'abord installer libharu afin de pouvoir utiliser PECL/haru. PECL/haru est testé avec libharu 2.0.8, les anciennes versions pourraient ne pas fonctionner. PECL/haru nécessite PHP 5.1.3 ou supérieur.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/haru.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemple d'utilisation de PECL/haru

Exemple #1 "Hello world"

<?php

$doc 
= new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* affiche les miniatures */

$page $doc->addPage(); /* ajout d'une page au document */
$page->setSize(HaruPage::SIZE_A4HaruPage::LANDSCAPE); /* définit la page en A4/paysage */

$courier $doc->getFont("Courier-Bold"); /* nous allons utiliser cette police interne plus tard */

$page->setRGBStroke(000); /* définit les couleurs */
$page->setRGBFill(0.70.80.9);
$page->rectangle(150150550250); /* dessine un rectangle */

$page->fillStroke(); /* on le trace et on le remplit */

$page->setDash(array(33), 0); /* définit le style "en tiret" sur cette page */
$page->setFontAndSize($courier60); /* définit la police et sa taille */

$page->setRGBStroke(0.50.50.1); /* définit la couleur de ligne */
$page->setRGBFill(111); /* définit la couleur de remplissage */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* trace et remplit le texte */

/* affiche le texte */
$page->beginText();
$page->textOut(210270"Hello World!");
$page->endText();

$doc->save("/tmp/test.pdf"); /* sauvegarde le document dans un fichier */

?>

Ouvrez le document dans votre lecteur PDF favori et vous devriez voir un rectangle légèrement bleuté contenant un "Hello World!" en blanc.




Polices internes et encodages

Sommaire


Polices internes

Ces polices Base14 sont intégrées dans PDF et toutes les lecteurs PDF peuvent les afficher. L'utilisation de ces polices peut baisser la taille du fichier résultat et rendre le processus plus rapide, évitant le chargement de police externe. Cependant, ces polices ne supportent que le jeu de caractères latin1 et vous devez charger des polices externes si vous avez besoin d'utiliser d'autres jeux de caractères.

Les polices Base14 :

  • Courrier

  • Courrier-Gras

  • Courrier-Italique

  • Courrier-Gras et italique

  • Helvetica

  • Helvetica-Gras

  • Helvetica-Italique

  • Helvetica-Gras et italique

  • Times-Roman

  • Times-Gras

  • Times-Italique

  • Times-Gras et italique

  • Symbol

  • ZapfDingbats



Encodages internes

Encodages de jeu de caractères sur un seul octet
Nom Description
StandardEncoding L'encodage par défaut de PDF.
MacRomanEncoding L'encodage par défaut de Mac OS.
WinAnsiEncoding L'encodage par défaut de Windows.
FontSpecific L'encodage des polices internes.
ISO8859-2 Latin2 (Europe de l'est)
ISO8859-3 Latin3 (Europe de l'ouest)
ISO8859-4 Latin4 (Europe du nord)
ISO8859-5 Cyrillique
ISO8859-6 Arabe
ISO8859-7 Grec
ISO8859-8 Hébreu
ISO8859-9 Latin5 (Turque)
ISO8859-10 Latin6 (Nordique)
ISO8859-11 Thaï
ISO8859-13 Latin7 (Jante baltique)
ISO8859-14 Latin8 (Celtique)
ISO8859-15 Latin9
ISO8859-16 Latin10
CP1250 MS Windows Codepage 1250.
CP1251 MS Windows Codepage 1251.
CP1252 MS Windows Codepage 1252.
CP1253 MS Windows Codepage 1253.
CP1254 MS Windows Codepage 1254.
CP1255 MS Windows Codepage 1255.
CP1256 MS Windows Codepage 1256.
CP1257 MS Windows Codepage 1257.
CP1258 MS Windows Codepage 1258.
KOI8-R Jeu de caractères cyrillique.
Encodages de jeu de caractères multi-octets
Nom Description
GB-EUC-H Encodage EUC-CN.
GB-EUC-V Version verticale de GB-EUC-H.
GBK-EUC-H Encodage Microsoft Code Page 936 (lfCharSet 0x86) GBK.
GBK-EUC-V Version verticale de GBK-EUC-H.
ETen-B5-H Jeu de caractères Microsoft Code Page 950 (lfCharSet 0x88) Big Five avec les extensions ETen.
ETen-B5-V Version verticale de ETen-B5-H.
90ms-RKSJ-H Microsoft Code Page 932, caractère JIS X 0208.
90ms-RKSJ-V Version verticale de 90ms-RKSJ-V.
90msp-RKSJ-H Microsoft Code Page 932, caractère JIS X 0208 (proportionnel).
EUC-H Jeu de caractères JIS X 0208, encodage EUC-JP.
EUC-V Version verticale de EUC-H.
KSC-EUC-H Jeu de caractères KS X 1001:1992, encodage EUC-KR.
KSC-EUC-V Version verticale de KSC-EUC-V.
KSCms-UHC-H Microsoft Code Page 949 (lfCharSet 0x81), jeu de caractères KS X 1001:1992 et 8822 additionnel hangul, encodage Unified Hangul Code (UHC) (à largeur fixe).
KSCms-UHC-HW-H Microsoft Code Page 949 (lfCharSet 0x81), jeu de caractères KS X 1001:1992 et 8822 additionnel hangul, encodage Unified Hangul Code (UHC) (à largeur fixe).
KSCms-UHC-HW-V Version verticale de KSCms-UHC-HW-H.



Classe HaruException

Introduction

Classe Haru PDF Exception.

Synopsis de la classe

HaruException extends Exception {
/* Inherits */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Classe HaruDoc

Introduction

Classe Haru PDF Document.

Synopsis de la classe

HaruDoc {
/* Méthodes */
object addPage ( void )
bool addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] )
void __construct ( void )
object createOutline ( string $title [, object $parent_outline [, object $encoder ]] )
object getCurrentEncoder ( void )
object getCurrentPage ( void )
object getEncoder ( string $encoding )
object getFont ( string $fontname [, string $encoding ] )
string getInfoAttr ( int $type )
int getPageLayout ( void )
int getPageMode ( void )
int getStreamSize ( void )
object insertPage ( object $page )
object loadJPEG ( string $filename )
object loadPNG ( string $filename [, bool $deferred = false ] )
object loadRaw ( string $filename , int $width , int $height , int $color_space )
string loadTTC ( string $fontfile , int $index [, bool $embed = false ] )
string loadTTF ( string $fontfile [, bool $embed = false ] )
string loadType1 ( string $afmfile [, string $pfmfile ] )
bool output ( void )
string readFromStream ( int $bytes )
bool resetError ( void )
bool resetStream ( void )
bool save ( string $file )
bool saveToStream ( void )
bool setCompressionMode ( int $mode )
bool setCurrentEncoder ( string $encoding )
bool setEncryptionMode ( int $mode [, int $key_len = 5 ] )
bool setInfoAttr ( int $type , string $info )
bool setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )
bool setOpenAction ( object $destination )
bool setPageLayout ( int $layout )
bool setPageMode ( int $mode )
bool setPagesConfiguration ( int $page_per_pages )
bool setPassword ( string $owner_password , string $user_password )
bool setPermission ( int $permission )
bool useCNSEncodings ( void )
bool useCNSFonts ( void )
bool useCNTEncodings ( void )
bool useCNTFonts ( void )
bool useJPEncodings ( void )
bool useJPFonts ( void )
bool useKREncodings ( void )
bool useKRFonts ( void )
}

Constantes pré-définies

Type Nom Description
int HaruDoc::CS_DEVICE_GRAY  
int HaruDoc::CS_DEVICE_RGB  
int HaruDoc::CS_DEVICE_CMYK  
int HaruDoc::CS_CAL_GRAY  
int HaruDoc::CS_CAL_RGB  
int HaruDoc::CS_LAB  
int HaruDoc::CS_ICC_BASED  
int HaruDoc::CS_SEPARATION  
int HaruDoc::CS_DEVICE_N  
int HaruDoc::CS_INDEXED  
int HaruDoc::CS_PATTERN  
int HaruDoc::ENABLE_READ  
int HaruDoc::ENABLE_PRINT  
int HaruDoc::ENABLE_EDIT_ALL  
int HaruDoc::ENABLE_COPY  
int HaruDoc::ENABLE_EDIT  
int HaruDoc::ENCRYPT_R2  
int HaruDoc::ENCRYPT_R3  
int HaruDoc::INFO_AUTHOR  
int HaruDoc::INFO_CREATOR  
int HaruDoc::INFO_TITLE  
int HaruDoc::INFO_SUBJECT  
int HaruDoc::INFO_KEYWORDS  
int HaruDoc::INFO_CREATION_DATE  
int HaruDoc::INFO_MOD_DATE  
int HaruDoc::COMP_NONE  
int HaruDoc::COMP_TEXT  
int HaruDoc::COMP_IMAGE  
int HaruDoc::COMP_METADATA  
int HaruDoc::COMP_ALL  
int HaruDoc::PAGE_LAYOUT_SINGLE  
int HaruDoc::PAGE_LAYOUT_ONE_COLUMN  
int HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT  
int HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT  
int HaruDoc::PAGE_MODE_USE_NONE  
int HaruDoc::PAGE_MODE_USE_OUTLINE  
int HaruDoc::PAGE_MODE_USE_THUMBS  
int HaruDoc::PAGE_MODE_FULL_SCREEN  

HaruDoc::addPage

(PECL haru >= 0.0.1)

HaruDoc::addPageAjoute une nouvelle page au document

Description

object HaruDoc::addPage ( void )

Ajoute une nouvelle page au document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruPage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::addPageLabel

(PECL haru >= 0.0.1)

HaruDoc::addPageLabelDéfinit le style de numérotation d'une série de pages

Description

bool HaruDoc::addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] )

Définit le style de numérotation d'une série de pages spécifiées.

Liste de paramètres

first_page

La première page de l'intervalle.

style

Le style de numérotation. Les valeurs suivantes sont autorisées :

  • HaruPage::NUM_STYLE_DECIMAL - le libellé de la page est affiché en utilisant des nombres décimaux.
  • HaruPage::NUM_STYLE_UPPER_ROMAN - le libellé de la page est affiché en utilisant des nombres romains en majuscule.
  • HaruPage::NUM_STYLE_LOWER_ROMAN - le libellé de la page est affiché en utilisant des nombres romains en minuscule.
  • HaruPage::NUM_STYLE_UPPER_LETTER - le libellé de la page est affiché en lettres majuscules (de A à Z).
  • HaruPage::NUM_STYLE_LOWER_LETTERS - le libellé de la page est affiché en lettres minuscules (de a à z).

first_num

Le numéro de la première page de l'intervalle.

prefix

Le préfixe pour le libellé de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::__construct

(PECL haru >= 0.0.1)

HaruDoc::__constructConstruit un nouvel objet HaruDoc

Description

void HaruDoc::__construct ( void )

Construit un nouvel object HaruDoc.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::createOutline

(PECL haru >= 0.0.1)

HaruDoc::createOutlineCrée une instance HaruOutline

Description

object HaruDoc::createOutline ( string $title [, object $parent_outline [, object $encoder ]] )

Crée une nouvelle instance HaruOutline.

Liste de paramètres

title

Le titre de l'objet du nouveau contour.

parent_outline

Une instance valide de HaruOutline ou NULL.

encoder

Une instance valide HaruEncoder ou NULL.

Valeurs de retour

Retourne une nouvelle instance HaruOutline.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::getCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::getCurrentEncoderRécupère l'instance HaruEncoder actuellement utilisée dans le document

Description

object HaruDoc::getCurrentEncoder ( void )

Récupère l'instance HaruEncoder actuellement utilisée dans le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'instance HaruEncoder actuellement utilisée dans le document, ou FALSE si l'encodeur n'est pas défini.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::getCurrentPage

(PECL haru >= 0.0.1)

HaruDoc::getCurrentPageRetourne la page courante du document

Description

object HaruDoc::getCurrentPage ( void )

Récupère la page courante du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'instance HaruPage en cas de succès, ou FALSE s'il n'y a actuellement pas de page courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::getEncoder

(PECL haru >= 0.0.1)

HaruDoc::getEncoderRécupère l'instance HaruEncoder de l'encodage spécifié

Description

object HaruDoc::getEncoder ( string $encoding )

Récupère l'instance HaruEncoder de l'encodage spécifié.

Liste de paramètres

encoding

Le nom de l'encodage. Voir les encodages internes pour la liste des valeurs autorisées.

Valeurs de retour

Retourne l'instance HaruEncoder de l'encodage spécifié.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::getFont

(PECL haru >= 0.0.1)

HaruDoc::getFontRécupère une instance HaruFont

Description

object HaruDoc::getFont ( string $fontname [, string $encoding ] )

Récupère une instance HaruFont.

Liste de paramètres

fontname

Le nom de la police. Voir les polices internes pour une liste des polices internes. Vous pouvez également utiliser le nom d'une police chargée via HaruDoc::loadTTF(), HaruDoc::loadTTC() et HaruDoc::loadType1().

encoding

L'encodage à utiliser. Voir les encodages internes pour une liste des encodages supportés.

Valeurs de retour

Retourne une instance HaruFont avec le nom de police fontname et l'encodage encoding.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::getInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::getInfoAttrRécupère la valeur courante d'un attribut de document spécifié

Description

string HaruDoc::getInfoAttr ( int $type )

Récupère la valeur courante d'un attribut de document spécifié.

Liste de paramètres

type

Le type de l'attribut. Les valeurs suivantes sont disponibles :

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS
  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

Valeurs de retour

Retourne la valeur de l'attribut de document spécifié.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::getPageLayout

(PECL haru >= 0.0.1)

HaruDoc::getPageLayoutRécupère la disposition courante de la page

Description

int HaruDoc::getPageLayout ( void )

Récupère la disposition courante de la page. Voir HaruDoc::setPageLayout() pour la liste des valeurs possibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la disposition courante de la page définie dans le document ou FALSE si la disposition de la page n'a pas été définie. Voir HaruDoc::setPageLayout() pour une liste des valeurs possibles.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::getPageMode

(PECL haru >= 0.0.1)

HaruDoc::getPageModeRécupère le mode courant de la page

Description

int HaruDoc::getPageMode ( void )

Récupère le mode courant de la page. Voir HaruDoc::setPageMode() pour une liste des valeurs possibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode actuellement défini pour la page d'un document. Voir HaruDoc::setPageMode() pour une liste de valeurs possibles.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::getStreamSize

(PECL haru >= 0.0.1)

HaruDoc::getStreamSizeRécupère la taille du flux temporaire

Description

int HaruDoc::getStreamSize ( void )

Récupère la taille du flux temporaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille des données dans le flux temporaire du document. La taille vaut zéro si le document n'a pas été sauvegardé dans le flux temporaire.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::insertPage

(PECL haru >= 0.0.1)

HaruDoc::insertPageInsère une nouvelle page juste avant la page spécifiée

Description

object HaruDoc::insertPage ( object $page )

Crée une nouvelle page et l'insère juste avant la page spécifiée.

Liste de paramètres

page

Une instance valide HaruPage.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruPage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::loadJPEG

(PECL haru >= 0.0.1)

HaruDoc::loadJPEGCharge une image JPEG

Description

object HaruDoc::loadJPEG ( string $filename )

Charge l'image JPEG spécifiée.

Liste de paramètres

filename

Un fichier image JPEG valide.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruImage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::loadPNG

(PECL haru >= 0.0.1)

HaruDoc::loadPNGCharge une image PNG

Description

object HaruDoc::loadPNG ( string $filename [, bool $deferred = false ] )

Charge une image PNG.

Libharu peut être construite sans le support libpng et, dans ce cas, chaque appel à cette fonction résultera en l'envoi d'une exception.

Liste de paramètres

filename

Le nom du fichier image PNG.

deferred

Ne pas charger les données immédiatement. Vous pouvez définir le paramètre deferred à TRUE pour déferrer les données chargées et, dans ce cas, uniquement la taille et la couleur sont chargées immédiatement.

Valeurs de retour

Retourne une instance de la classe HaruImage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::loadRaw

(PECL haru >= 0.0.1)

HaruDoc::loadRawCharge une image RAW

Description

object HaruDoc::loadRaw ( string $filename , int $width , int $height , int $color_space )

Charge une image RAW.

Liste de paramètres

filename

Le nom du fichier image RAW.

width

La largeur de l'image.

height

La hauteur de l'image.

color_space

L'espace de couleur de l'image. Peut être une des valeurs suivantes :

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK

Valeurs de retour

Retourne une instance de la classe HaruImage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::loadTTC

(PECL haru >= 0.0.1)

HaruDoc::loadTTCCharge la police avec l'index spécifié depuis le fichier TTC

Description

string HaruDoc::loadTTC ( string $fontfile , int $index [, bool $embed = false ] )

Charge la police TrueType avec l'index spécifié depuis le fichier de collection TrueType.

Liste de paramètres

fontfile

Le fichier de collection TrueType.

index

L'index de la police dans le fichier de collection.

embed

Lorsque défini à TRUE, les données glyphe seront intégrées dans le fichier PDF, sinon, uniquement la matrice des données sera incluse.

Valeurs de retour

Retourne le nom de la police chargée en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::loadTTF

(PECL haru >= 0.0.1)

HaruDoc::loadTTFCharge un fichier de police TTF

Description

string HaruDoc::loadTTF ( string $fontfile [, bool $embed = false ] )

Charge le fichier TTF fourni et (optionnellement), l'intègre aux données dans le document.

Liste de paramètres

fontfile

Le fichier TTF à charger.

embed

Lorsque défini à TRUE, les données glyphe de la police seront intégrées dans le fichier PDF, sinon, uniquement la matrice des données sera incluse.

Valeurs de retour

Retourne le nom de la police chargée en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::loadType1

(PECL haru >= 0.0.1)

HaruDoc::loadType1Charge la police Type1

Description

string HaruDoc::loadType1 ( string $afmfile [, string $pfmfile ] )

Charge la police Type1 depuis le fichier fourni et l'enregistre dans le document PDF.

Liste de paramètres

afmfile

Chemin vers un fichier AFM.

pfmfile

Chemin vers un fichier PFA/PFB, optionnel. S'il n'est pas défini, les données glyphe de la police seront intégrées dans le document PDF.

Valeurs de retour

Retourne le nom de la police chargée, en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::output

(PECL haru >= 0.0.1)

HaruDoc::outputÉcrit les données du document dans un buffer de sortie

Description

bool HaruDoc::output ( void )

Écrit les données du document dans la sortie standard.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::readFromStream

(PECL haru >= 0.0.1)

HaruDoc::readFromStreamLit les données depuis le flux temporaire

Description

string HaruDoc::readFromStream ( int $bytes )

Lit les données depuis le flux temporaire.

Liste de paramètres

bytes

Le paramètre bytes spécifie le nombre d'octets à lire, même si le flux peut contenir moins d'octets que désirés.

Valeurs de retour

Retourne les données depuis le flux temporaire.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::resetError

(PECL haru >= 0.0.1)

HaruDoc::resetErrorRéinitialise le statut d'erreur du gestionnaire de document

Description

bool HaruDoc::resetError ( void )

Une fois qu'un code erreur est défini, la plupart des opérations, incluant les fonctions I/O, ne peuvent être exécutées. Dans ce cas, si vous voulez continuer une fois que l'erreur a été corrigée, vous devez invoquer cette fonction afin de réinitialiser le statut de l'erreur du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Réussi toujours et retourne TRUE.



HaruDoc::resetStream

(PECL haru >= 0.0.1)

HaruDoc::resetStreamRevient au début du flux temporaire

Description

bool HaruDoc::resetStream ( void )

Revient au début du flux temporaire du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::save

(PECL haru >= 0.0.1)

HaruDoc::saveSauvegarde le document dans le fichier spécifié

Description

bool HaruDoc::save ( string $file )

Sauvegarde le document dans le fichier spécifié.

Liste de paramètres

file

Le fichier dans lequel le document sera sauvegardé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::saveToStream

(PECL haru >= 0.0.1)

HaruDoc::saveToStreamSauvegarde le document dans un flux temporaire

Description

bool HaruDoc::saveToStream ( void )

Sauvegarde le document dans un flux temporaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::setCompressionMode

(PECL haru >= 0.0.1)

HaruDoc::setCompressionModeDéfinit le mode de compression pour le document

Description

bool HaruDoc::setCompressionMode ( int $mode )

Définit le mode de compression pour le document. Dans le cas où libharu n'a pas été compilé avec le support Zlib, cette fonction lancera toujours une exception HaruException.

Liste de paramètres

mode

Le mode de compression à utiliser. La valeur est une combinaison des drapeaux suivants :

  • HaruDoc::COMP_NONE - tout le contenu n'est pas compressé.
  • HaruDoc::COMP_TEXT - compression du texte.
  • HaruDoc::COMP_IMAGE - compression des images.
  • HaruDoc::COMP_METADATA - compression des autres données (polices, cmaps).
  • HaruDoc::COMP_ALL - compression de toutes les données.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::setCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::setCurrentEncoderDéfinit l'encodeur courant pour le document

Description

bool HaruDoc::setCurrentEncoder ( string $encoding )

Définit l'encodeur actuellement utilisé pour le document.

Liste de paramètres

encoding

Le nom de l'encodage à utiliser. Voir les encodages internes pour une liste des valeurs autorisées.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::setEncryptionMode

(PECL haru >= 0.0.1)

HaruDoc::setEncryptionModeDéfinit le mode de chiffrement pour le document

Description

bool HaruDoc::setEncryptionMode ( int $mode [, int $key_len = 5 ] )

Définit le mode de chiffrement pour le document. Le mode de chiffrement ne peut être défini avant de définir le mot de passe.

Liste de paramètres

mode

Le mode de chiffrement à utiliser. Peut être un parmi :

  • HaruDoc::ENCRYPT_R2 - utilise l'algorithme "revision2".
  • HaruDoc::ENCRYPT_R3 - utilise l'algorithme "revision3". L'utilisation de cette valeur définit la version de PDF à 1.4.

key_len

La longueur de la clé de chiffrement, en octets. Ce paramètre est optionnel et utilisé uniquement lorsque le mode est HaruDoc::ENCRYPT_R3. La valeur par défaut est 5 (40 octets).

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::setInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoAttrDéfinit l'attribut d'information du document

Description

bool HaruDoc::setInfoAttr ( int $type , string $info )

Définit un attribut d'information. Utilise l'encodage courant du document.

Liste de paramètres

type

Le type de l'attribut. Peut être un parmi :

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS

info

La valeur de l'attribut.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::setInfoDateAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoDateAttrDéfinit les attributs d'informations de date et d'heure pour le document

Description

bool HaruDoc::setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )

Définit les attributs d'informations de date et d'heure pour le document.

Liste de paramètres

type

Le type de l'attribut. Peut être un parmi :

  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

year

month

Compris entre 1 et 12.

day

Compris entre 1 et 31, 30, 29 ou 28 (différent pour chaque mois).

hour

Compris entre 0 et 23.

min

Compris entre 0 et 59.

sec

Compris entre 0 et 59.

ind

La relation sur la zone vers UTC, peut être "", " ", "+", "-" et "Z".

off_hour

Si ind n'est ni " ", ni "", les valeurs comprises entre 0 et 23 sont valides. Sinon, ce paramètre est ignoré.

off_min

Si ind n'est ni " ", ni "", les valeurs comprises entre 0 et 59 sont valides. Sinon, ce paramètre est ignoré.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::setOpenAction

(PECL haru >= 0.0.1)

HaruDoc::setOpenActionDéfinit quelle page est affichée lors de l'ouverture du document

Description

bool HaruDoc::setOpenAction ( object $destination )

Définit quelle page est affichée lors de l'ouverture du document.

Liste de paramètres

destination

Une instance valide de HaruDestination.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::setPageLayout

(PECL haru >= 0.0.1)

HaruDoc::setPageLayoutDéfinit la façon dont la page doit être affichée

Description

bool HaruDoc::setPageLayout ( int $layout )

Définit la façon dont la page doit être affichée.

Liste de paramètres

layout

Les valeurs suivantes sont acceptées :

  • HaruDoc::PAGE_LAYOUT_SINGLE - une seule page est affichée.
  • HaruDoc::PAGE_LAYOUT_ONE_COLUMN - affiche les pages sur une seule colonne.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT - affiche les pages sur deux colonnes, la première page à gauche.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT - affiche les pages sur deux colonnes, la première page à droite.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::setPageMode

(PECL haru >= 0.0.1)

HaruDoc::setPageModeDéfinit la façon dont le document doit être affiché

Description

bool HaruDoc::setPageMode ( int $mode )

Définit la façon dont le document doit être affiché.

Liste de paramètres

mode

Les valeurs suivantes sont acceptées :

  • HaruDoc::PAGE_MODE_USE_NONE - affiche le document sans contour, ni miniature.
  • HaruDoc::PAGE_MODE_USE_OUTLINE - affiche le document sans contour.
  • HaruDoc::PAGE_MODE_USE_THUMBS - affiche le document sans miniature.
  • HaruDoc::PAGE_MODE_FULL_SCREEN - affiche le document en mode plein écran.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::setPagesConfiguration

(PECL haru >= 0.0.1)

HaruDoc::setPagesConfigurationDéfinit le nombre de pages par jeu de pages

Description

bool HaruDoc::setPagesConfiguration ( int $page_per_pages )

Par défaut, le document a un objet page, en tant que racine pour toutes les pages. Tous les objets pages sont créés en tant que branche de l'objet racine. Un objet page peut contenir uniquement 8191, ainsi, le nombre maximal de pages par document est 8191. Mais vous pouvez modifier ce comportement en définissant le paramètre page_per_pages, et ainsi, l'objet page racine contient 8191 objets pages de plus (et non des pages), qui, chacun contient 8191 pages. Donc, le nombre maximal de pages d'un document devient 8191*page_per_pages.

Liste de paramètres

page_per_pages

Le nombre de pages qu'un objet page peut contenir.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDoc::setPassword

(PECL haru >= 0.0.1)

HaruDoc::setPasswordDéfinit les mots de passe de l'utilisateur et du propriétaire pour le document

Description

bool HaruDoc::setPassword ( string $owner_password , string $user_password )

Définit les mots de passe utilisateur et propriétaire pour le document. Le fait de définir des mots de passe rend le contenu du document crypté.

Liste de paramètres

owner_password

Le mot de passe du propriétaire, qui modifie les permissions du document. Un mot de passe vide n'est pas accepté. Le mot de passe du propriétaire ne peut être le même que le mot de passe de l'utilisateur.

user_password

Le mot de passe de l'utilisateur. Ne peut être vide.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::setPermission

(PECL haru >= 0.0.1)

HaruDoc::setPermissionDéfinit les permissions du document

Description

bool HaruDoc::setPermission ( int $permission )

Définit les permissions pour le document.

Liste de paramètres

permission

Les valeurs sont une combinaison des drapeaux suivants :

  • HaruDoc::ENABLE_READ - l'utilisateur peut lire le document.
  • HaruDoc::ENABLE_PRINT - l'utilisateur peut imprimer le document.
  • HaruDoc::ENABLE_EDIT_ALL - l'utilisateur peut éditer le contenu du document autre que les annotations et les champs de formulaire.
  • HaruDoc::ENABLE_COPY - l'utilisateur peut copier le texte et les graphiques du document.
  • HaruDoc::ENABLE_EDIT - l'utilisateur peut ajouter et modifier les annotations et les champs de formulaire du document.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useCNSEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNSEncodingsActive l'encodage chinois simplifié

Description

bool HaruDoc::useCNSEncodings ( void )

Active l'encodage chinois simplifié.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useCNSFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNSFontsActive les polices chinoises simplifiées internes

Description

bool HaruDoc::useCNSFonts ( void )

Active les polices chinoises simplifiées internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useCNTEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNTEncodingsActive l'encodage chinois traditionnel

Description

bool HaruDoc::useCNTEncodings ( void )

Active l'encodage chinois traditionnel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useCNTFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNTFontsActive les polices chinoises traditionnelles internes

Description

bool HaruDoc::useCNTFonts ( void )

Active les polices chinoises traditionnelles internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useJPEncodings

(PECL haru >= 0.0.1)

HaruDoc::useJPEncodingsActive l'encodage japonais

Description

bool HaruDoc::useJPEncodings ( void )

Active l'encodage japonais.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useJPFonts

(PECL haru >= 0.0.1)

HaruDoc::useJPFontsActive les polices japonaises internes

Description

bool HaruDoc::useJPFonts ( void )

Active les polices japonaises internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useKREncodings

(PECL haru >= 0.0.1)

HaruDoc::useKREncodingsActive l'encodage coréen

Description

bool HaruDoc::useKREncodings ( void )

Active l'encodage coréen.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruDoc::useKRFonts

(PECL haru >= 0.0.1)

HaruDoc::useKRFontsActive les polices coréennes internes

Description

bool HaruDoc::useKRFonts ( void )

Active les polices coréennes internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi


Sommaire



Classe HaruPage

Introduction

Classe Haru PDF Page.

Synopsis de la classe

HaruPage {
/* Méthodes */
bool arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )
bool beginText ( void )
bool circle ( float $x , float $y , float $ray )
bool closePath ( void )
bool concat ( float $a , float $b , float $c , float $d , float $x , float $y )
object createDestination ( void )
object createLinkAnnotation ( array $rectangle , object $destination )
object createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )
object createURLAnnotation ( array $rectangle , string $url )
bool curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )
bool curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )
bool curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )
bool drawImage ( object $image , float $x , float $y , float $width , float $height )
bool ellipse ( float $x , float $y , float $xray , float $yray )
bool endPath ( void )
bool endText ( void )
bool eofill ( void )
bool eoFillStroke ([ bool $close_path = false ] )
bool fill ( void )
bool fillStroke ([ bool $close_path = false ] )
float getCharSpace ( void )
array getCMYKFill ( void )
array getCMYKStroke ( void )
object getCurrentFont ( void )
float getCurrentFontSize ( void )
array getCurrentPos ( void )
array getCurrentTextPos ( void )
array getDash ( void )
int getFillingColorSpace ( void )
float getFlatness ( void )
int getGMode ( void )
float getGrayFill ( void )
float getGrayStroke ( void )
float getHeight ( void )
float getHorizontalScaling ( void )
int getLineCap ( void )
int getLineJoin ( void )
float getLineWidth ( void )
float getMiterLimit ( void )
array getRGBFill ( void )
array getRGBStroke ( void )
int getStrokingColorSpace ( void )
float getTextLeading ( void )
array getTextMatrix ( void )
int getTextRenderingMode ( void )
float getTextRise ( void )
float getTextWidth ( string $text )
array getTransMatrix ( void )
float getWidth ( void )
float getWordSpace ( void )
bool lineTo ( float $x , float $y )
int measureText ( string $text , float $width [, bool $wordwrap = false ] )
bool moveTextPos ( float $x , float $y [, bool $set_leading = false ] )
bool moveTo ( float $x , float $y )
bool moveToNextLine ( void )
bool rectangle ( float $x , float $y , float $width , float $height )
bool setCharSpace ( float $char_space )
bool setCMYKFill ( float $c , float $m , float $y , float $k )
bool setCMYKStroke ( float $c , float $m , float $y , float $k )
bool setDash ( array $pattern , int $phase )
bool setFlatness ( float $flatness )
bool setFontAndSize ( object $font , float $size )
bool setGrayFill ( float $value )
bool setGrayStroke ( float $value )
bool setHeight ( float $height )
bool setHorizontalScaling ( float $scaling )
bool setLineCap ( int $cap )
bool setLineJoin ( int $join )
bool setLineWidth ( float $width )
bool setMiterLimit ( float $limit )
bool setRGBFill ( float $r , float $g , float $b )
bool setRGBStroke ( float $r , float $g , float $b )
bool setRotate ( int $angle )
bool setSize ( int $size , int $direction )
bool setSlideShow ( int $type , float $disp_time , float $trans_time )
bool setTextLeading ( float $text_leading )
bool setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
bool setTextRenderingMode ( int $mode )
bool setTextRise ( float $rise )
bool setWidth ( float $width )
bool setWordSpace ( float $word_space )
bool showText ( string $text )
bool showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] )
bool stroke ([ bool $close_path = false ] )
bool textOut ( float $x , float $y , string $text )
bool textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] )
}

Constantes pré-définies

Type Nom Description
int HaruPage::GMODE_PAGE_DESCRIPTION  
int HaruPage::GMODE_TEXT_OBJECT  
int HaruPage::GMODE_PATH_OBJECT  
int HaruPage::GMODE_CLIPPING_PATH  
int HaruPage::GMODE_SHADING  
int HaruPage::GMODE_INLINE_IMAGE  
int HaruPage::GMODE_EXTERNAL_OBJECT  
int HaruPage::BUTT_END  
int HaruPage::ROUND_END  
int HaruPage::PROJECTING_SCUARE_END  
int HaruPage::MITER_JOIN  
int HaruPage::ROUND_JOIN  
int HaruPage::BEVEL_JOIN  
int HaruPage::FILL  
int HaruPage::STROKE  
int HaruPage::FILL_THEN_STROKE  
int HaruPage::INVISIBLE  
int HaruPage::FILL_CLIPPING  
int HaruPage::STROKE_CLIPPING  
int HaruPage::FILL_STROKE_CLIPPING  
int HaruPage::CLIPPING  
int HaruPage::TALIGN_LEFT  
int HaruPage::TALIGN_RIGHT  
int HaruPage::TALIGN_CENTER  
int HaruPage::TALIGN_JUSTIFY  
int HaruPage::SIZE_LETTER  
int HaruPage::SIZE_LEGAL  
int HaruPage::SIZE_A3  
int HaruPage::SIZE_A4  
int HaruPage::SIZE_A5  
int HaruPage::SIZE_B4  
int HaruPage::SIZE_B5  
int HaruPage::SIZE_EXECUTIVE  
int HaruPage::SIZE_US4x6  
int HaruPage::SIZE_US4x8  
int HaruPage::SIZE_US5x7  
int HaruPage::SIZE_COMM10  
int HaruPage::PORTRAIT  
int HaruPage::LANDSCAPE  
int HaruPage::TS_WIPE_LIGHT  
int HaruPage::TS_WIPE_UP  
int HaruPage::TS_WIPE_LEFT  
int HaruPage::TS_WIPE_DOWN  
int HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT  
int HaruPage::TS_BARN_DOORS_HORIZONTAL_IN  
int HaruPage::TS_BARN_DOORS_VERTICAL_OUT  
int HaruPage::TS_BARN_DOORS_VERTICAL_IN  
int HaruPage::TS_BOX_OUT  
int HaruPage::TS_BOX_IN  
int HaruPage::TS_BLINDS_HORIZONTAL  
int HaruPage::TS_BLINDS_VERTICAL  
int HaruPage::TS_DISSOLVE  
int HaruPage::TS_GLITTER_RIGHT  
int HaruPage::TS_GLITTER_DOWN  
int HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT  
int HaruPage::TS_REPLACE  
int HaruPage::NUM_STYLE_DECIMAL  
int HaruPage::NUM_STYLE_UPPER_ROMAN  
int HaruPage::NUM_STYLE_LOWER_ROMAN  
int HaruPage::NUM_STYLE_UPPER_LETTERS  
int HaruPage::NUM_STYLE_LOWER_LETTERS  

HaruPage::arc

(PECL haru >= 0.0.1)

HaruPage::arcAjoute un arc au chemin courant

Description

bool HaruPage::arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )

Ajoute un arc au chemin courant.

Liste de paramètres

x

Coordonnée horizontale du centre.

y

Coordonnée verticale du centre.

ray

Le rayon de l'arc.

ang1

L'angle de début.

ang2

L'angle de fin. Doit être supérieur à ang1.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::beginText

(PECL haru >= 0.0.1)

HaruPage::beginTextCommence un objet texte et définit la position courante du texte à (0,0)

Description

bool HaruPage::beginText ( void )

Commence un objet texte et définit la position courante du texte à (0,0).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::circle

(PECL haru >= 0.0.1)

HaruPage::circleAjoute un cercle au chemin courant

Description

bool HaruPage::circle ( float $x , float $y , float $ray )

Ajoute un cercle au chemin courant.

Liste de paramètres

x

Coordonnée horizontale du centre.

y

Coordonnée verticale du centre.

ray

Le rayon du cercle.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::closePath

(PECL haru >= 0.0.1)

HaruPage::closePathAjoute une ligne droite depuis le point courant jusqu'au point de départ du chemin

Description

bool HaruPage::closePath ( void )

Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::concat

(PECL haru >= 0.0.1)

HaruPage::concatConcatène la matrice de transformation courante et la matrice spécifiée

Description

bool HaruPage::concat ( float $a , float $b , float $c , float $d , float $x , float $y )

Concatène la matrice de transformation courante et la matrice spécifiée

Liste de paramètres

a

b

c

d

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::createDestination

(PECL haru >= 0.0.1)

HaruPage::createDestinationCrée une nouvelle instance HaruDestination

Description

object HaruPage::createDestination ( void )

Crée une nouvelle instance HaruDestination.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruDestination.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::createLinkAnnotation

(PECL haru >= 0.0.1)

HaruPage::createLinkAnnotationCrée une nouvelle instance HaruAnnotation

Description

object HaruPage::createLinkAnnotation ( array $rectangle , object $destination )

Crée une nouvelle instance HaruAnnotation.

Liste de paramètres

rectangle

Un tableau contenant 4 coordonnées de la zone cliquable.

destination

Instance valide HaruDestination.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruAnnotation.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::createTextAnnotation

(PECL haru >= 0.0.1)

HaruPage::createTextAnnotationCrée une nouvelle instance HaruAnnotation

Description

object HaruPage::createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )

Crée une nouvelle instance HaruAnnotation.

Liste de paramètres

rectangle

Un tableau contenant 4 coordonnées de la zone d'annotation.

text

Le texte à afficher.

encoder

Instance optionnelle HaruEncoder.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruAnnotation.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::createURLAnnotation

(PECL haru >= 0.0.1)

HaruPage::createURLAnnotationCrée une nouvelle instance HaruAnnotation instance

Description

object HaruPage::createURLAnnotation ( array $rectangle , string $url )

Crée une nouvelle instance HaruAnnotation.

Liste de paramètres

rectangle

Un tableau contenant 4 coordonnées de zone cliquable.

url

L'URL à ouvrir.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruAnnotation.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::curveTo2

(PECL haru >= 0.0.1)

HaruPage::curveTo2Ajoute une courbe de Bézier au chemin courant

Description

bool HaruPage::curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin courant. Le point courant et le point (x2, y2) sont utilisés comme points de contrôle pour la courbe de Bézier et le point courant est déplacé au point (x3, y3).

Liste de paramètres

x2

Un point de contrôle de la courbe de Bézier.

y2

Un point de contrôle de la courbe de Bézier.

x3

La position à laquelle le point courant est déplacé.

x3

La position à laquelle le point courant est déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::curveTo3

(PECL haru >= 0.0.1)

HaruPage::curveTo3Ajoute une courbe de Bézier au chemin courant

Description

bool HaruPage::curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin courant. Le point (x1, y1) et le point (x3, y3) sont utilisés comme points de contrôle pour la courbe de Bézier et le point courant est déplacé au point (x3, y3).

Liste de paramètres

x1

Un point de contrôle de la courbe de Bézier.

y1

Un point de contrôle de la courbe de Bézier.

x3

La position à laquelle le point courant est déplacé.

x3

La position à laquelle le point courant est déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::curveTo

(PECL haru >= 0.0.1)

HaruPage::curveToAjoute une courbe de Bézier au chemin courant

Description

bool HaruPage::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin courant. Le point (x1, y1) et le point (x2, y2) sont utilisés comme points de contrôle pour la courbe de Bézier et le point courant est déplacé au point (x3, y3).

Liste de paramètres

x1

Un point de contrôle de la courbe de Bézier.

y1

Un point de contrôle de la courbe de Bézier.

x2

Un point de contrôle de la courbe de Bézier.

y2

Un point de contrôle de la courbe de Bézier.

x3

La position à laquelle le point courant est déplacé.

x3

La position à laquelle le point courant est déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::drawImage

(PECL haru >= 0.0.1)

HaruPage::drawImageAffiche une image dans la page

Description

bool HaruPage::drawImage ( object $image , float $x , float $y , float $width , float $height )

Affiche une image dans la page.

Liste de paramètres

image

Une instance valide HaruImage.

x

La bordure gauche de la zone, où l'image est affichée.

y

La bordure basse de la zone, où l'image est affichée.

width

La largeur de la zone de l'image.

height

La hauteur de la zone de l'image.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::ellipse

(PECL haru >= 0.0.1)

HaruPage::ellipseAjoute une ellipse au chemin courant

Description

bool HaruPage::ellipse ( float $x , float $y , float $xray , float $yray )

Ajoute une ellipse au chemin courant.

Liste de paramètres

x

Coordonnée horizontale du centre.

y

Coordonnée verticale du centre.

xray

Le rayon de l'ellipse dans la direction x.

yray

Le rayon de l'ellipse dans la direction y.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::endPath

(PECL haru >= 0.0.1)

HaruPage::endPathTermine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture

Description

bool HaruPage::endPath ( void )

Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::endText

(PECL haru >= 0.0.1)

HaruPage::endTextTermine l'objet texte courant

Description

bool HaruPage::endText ( void )

Finalise l'objet texte courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::eofill

(PECL haru >= 0.0.1)

HaruPage::eofillRemplit le chemin courant en utilisant la règle "even-odd"

Description

bool HaruPage::eofill ( void )

Remplit le chemin courant en utilisant la règle "even-odd".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::eoFillStroke

(PECL haru >= 0.0.1)

HaruPage::eoFillStrokeRemplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin

Description

bool HaruPage::eoFillStroke ([ bool $close_path = false ] )

Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin.

Liste de paramètres

close_path

Paramètre optionnel. Lorsqu'il est défini à TRUE, la fonction clôt le chemin courant. Par défaut, vaut FALSE.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::fill

(PECL haru >= 0.0.1)

HaruPage::fillRemplit le chemin courant en utilisant des nombres différents de zéro

Description

bool HaruPage::fill ( void )

Remplit le chemin courant en utilisant des nombres différents de zéro.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::fillStroke

(PECL haru >= 0.0.1)

HaruPage::fillStrokeRemplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin

Description

bool HaruPage::fillStroke ([ bool $close_path = false ] )

Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin.

Liste de paramètres

close_path

Paramètre optionnel. Lorsqu'il vaut TRUE, la fonction clôt le chemin courant. Par défaut, vaut FALSE.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getCharSpace

(PECL haru >= 0.0.1)

HaruPage::getCharSpaceRécupère la valeur courante de l'espacement des caractères

Description

float HaruPage::getCharSpace ( void )

Retourne la valeur courante de l'espacement des caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'espacement des caractères.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getCMYKFill

(PECL haru >= 0.0.1)

HaruPage::getCMYKFillRécupère la couleur de remplissage courante

Description

array HaruPage::getCMYKFill ( void )

Récupère la couleur de remplissage courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de remplissage courante, sous la forme d'un tableau de quatre éléments ("c", "m", "y" et "k").

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::getCMYKStrokeRécupère la couleur de remplissage courante

Description

array HaruPage::getCMYKStroke ( void )

Récupère la couleur de remplissage courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de remplissage courante, sous la forme d'un tableau de quatre éléments ("c", "m", "y" et "k").

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getCurrentFont

(PECL haru >= 0.0.1)

HaruPage::getCurrentFontRécupère la police actuellement utilisée

Description

object HaruPage::getCurrentFont ( void )

Récupère la police actuellement utilisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la police actuellement utilisée, sous la forme d'une instance HaruFont.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getCurrentFontSize

(PECL haru >= 0.0.1)

HaruPage::getCurrentFontSizeRécupère la taille de la police courante

Description

float HaruPage::getCurrentFontSize ( void )

Récupère la taille de la police courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille de la police courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getCurrentPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentPosRécupère la position courante pour l'affichage

Description

array HaruPage::getCurrentPos ( void )

Récupère la position courante pour l'affichage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la position courante pour l'affichage, sous la forme d'un tableau de deux éléments - "x" et "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getCurrentTextPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentTextPosRécupère la position courante pour l'affichage du texte

Description

array HaruPage::getCurrentTextPos ( void )

Récupère la position courante pour l'affichage du texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la position courante pour l'affichage du texte, sous la forme d'un tableau de deux éléments - "x" et "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getDash

(PECL haru >= 0.0.1)

HaruPage::getDashRécupère le style de tiret courant

Description

array HaruPage::getDash ( void )

Récupère le style de tiret courant. Voir HaruPage::setDash() pour plus d'informations sur les styles de tirets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le style de tiret courant, sous la forme d'un tableau de deux éléments - "pattern" et "phase" ou FALSE si le style de tiret n'a pas été défini.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getFillingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getFillingColorSpaceRécupère la couleur de remplissage

Description

int HaruPage::getFillingColorSpace ( void )

Récupère la couleur de remplissage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de remplissage. La valeur est une parmi :

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK
  • HaruDoc::CS_CAL_GRAY
  • HaruDoc::CS_CAL_RGB
  • HaruDoc::CS_LAB
  • HaruDoc::CS_ICC_BASED
  • HaruDoc::CS_SEPARATION
  • HaruDoc::CS_DEVICE_N
  • HaruDoc::CS_INDEXED
  • HaruDoc::CS_PATTERN

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getFlatness

(PECL haru >= 0.0.1)

HaruPage::getFlatnessRécupère la planéité de la page

Description

float HaruPage::getFlatness ( void )

Récupère la planéité de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la planéité de la page.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getGMode

(PECL haru >= 0.0.1)

HaruPage::getGModeRécupère le mode courant de graphique

Description

int HaruPage::getGMode ( void )

Récupère le mode courant de graphique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode courant de graphique. La valeur est une parmi :

  • HaruPage::GMODE_PAGE_DESCRIPTION
  • HaruPage::GMODE_TEXT_OBJECT
  • HaruPage::GMODE_PATH_OBJECT
  • HaruPage::GMODE_CLIPPING_PATH
  • HaruPage::GMODE_SHADING
  • HaruPage::GMODE_INLINE_IMAGE
  • HaruPage::GMODE_EXTERNAL_OBJECT

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::getGrayFill

(PECL haru >= 0.0.1)

HaruPage::getGrayFillRécupère la couleur courante de remplissage

Description

float HaruPage::getGrayFill ( void )

Récupère la couleur courante de remplissage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur courante de remplissage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getGrayStroke

(PECL haru >= 0.0.1)

HaruPage::getGrayStrokeRécupère la couleur courante

Description

float HaruPage::getGrayStroke ( void )

Récupère la couleur courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getHeight

(PECL haru >= 0.0.1)

HaruPage::getHeightRécupère la hauteur de la page

Description

float HaruPage::getHeight ( void )

Récupère la hauteur de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la hauteur de la page.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::getHorizontalScalingRécupère la valeur courante de l'échelle horizontale

Description

float HaruPage::getHorizontalScaling ( void )

Récupère la valeur courante de l'échelle horizontale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'échelle horizontale.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getLineCap

(PECL haru >= 0.0.1)

HaruPage::getLineCapRécupère le style courant de fin de lignes

Description

int HaruPage::getLineCap ( void )

Récupère le style courant de fin de lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le style courant de fin de lignes. La valeur est une parmi :

  • HaruPage::BUTT_END - la ligne est ajustée à la fin du chemin.
  • HaruPage::ROUND_END - la fin de la ligne devient un demi-cercle dont le centre est le point final du chemin.
  • HaruPage::PROJECTING_SCUARE_END - la ligne continue jusqu'au point qui excède de moitié la largeur du point final.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getLineJoin

(PECL haru >= 0.0.1)

HaruPage::getLineJoinRécupère le style de jointure de lignes

Description

int HaruPage::getLineJoin ( void )

Récupère le style de jointure de lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le style de jointure de lignes. La valeur est une parmi :

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getLineWidth

(PECL haru >= 0.0.1)

HaruPage::getLineWidthRécupère la largeur courante de la ligne

Description

float HaruPage::getLineWidth ( void )

Récupère la largeur courante de la ligne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur courante de la ligne.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getMiterLimit

(PECL haru >= 0.0.1)

HaruPage::getMiterLimitRécupère la valeur de la limite de l'anglet

Description

float HaruPage::getMiterLimit ( void )

Récupère la valeur de la limite de l'anglet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de la limite de l'anglet.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getRGBFill

(PECL haru >= 0.0.1)

HaruPage::getRGBFillRécupère la couleur courante de remplissage

Description

array HaruPage::getRGBFill ( void )

Récupère la couleur courante de remplissage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur courante de remplissage, sous la forme d'un tableau de 3 éléments : "r", "g" et "b".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getRGBStroke

(PECL haru >= 0.0.1)

HaruPage::getRGBStrokeRécupère la couleur de peinture courante

Description

array HaruPage::getRGBStroke ( void )

Récupère la couleur de peinture courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de peinture courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getStrokingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getStrokingColorSpaceRécupère la couleur de peinture de l'espace courant

Description

int HaruPage::getStrokingColorSpace ( void )

Récupère la couleur de peinture de l'espace courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de peinture de l'espace courant. La liste des valeurs retournées est la même que pour la fonction HaruPage::getFillingColorSpace().

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getTextLeading

(PECL haru >= 0.0.1)

HaruPage::getTextLeadingRécupère la valeur courante de l'espacement des lignes

Description

float HaruPage::getTextLeading ( void )

Récupère la valeur courante de l'espacement des lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'espacement des lignes.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getTextMatrix

(PECL haru >= 0.0.1)

HaruPage::getTextMatrixRécupère la matrice de transformation courante du texte de la page

Description

array HaruPage::getTextMatrix ( void )

Récupère la matrice de transformation courante du texte de la page.

Valeurs de retour

Retourne la matrice de transformation courante du texte de la page, sous la forme d'un tableau de 6 éléments : "a", "b", "c", "d", "x" et "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::getTextRenderingModeRécupère le mode de rendu courant du texte

Description

int HaruPage::getTextRenderingMode ( void )

Récupère le mode de rendu courant du texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode de rendu courant du texte. La valeur est une parmi :

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getTextRise

(PECL haru >= 0.0.1)

HaruPage::getTextRiseRécupère la valeur de la levée du texte

Description

float HaruPage::getTextRise ( void )

Récupère la valeur de la levée du texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de la levée du texte.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getTextWidth

(PECL haru >= 0.0.1)

HaruPage::getTextWidthRécupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots

Description

float HaruPage::getTextWidth ( string $text )

Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots.

Liste de paramètres

text

Le texte à mesurer.

Valeurs de retour

Retourne la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getTransMatrix

(PECL haru >= 0.0.1)

HaruPage::getTransMatrixRécupère la matrice de transformation courante de la page

Description

array HaruPage::getTransMatrix ( void )

Récupère la matrice de transformation courante de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la matrice de transformation courante de la page, sous la forme d'un tableau de 6 éléments : "a", "b", "c", "d", "x" and "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::concat() - Concatène la matrice de transformation courante et la matrice spécifiée



HaruPage::getWidth

(PECL haru >= 0.0.1)

HaruPage::getWidthRécupère la largeur de la page

Description

float HaruPage::getWidth ( void )

Récupère la largeur de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur de la page.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::getWordSpace

(PECL haru >= 0.0.1)

HaruPage::getWordSpaceRécupère la valeur courante de l'espacement entre les mots

Description

float HaruPage::getWordSpace ( void )

Récupère la valeur courante de l'espacement entre les mots.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'espacement entre les mots.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::lineTo

(PECL haru >= 0.0.1)

HaruPage::lineToTrace une ligne depuis le point courant vers le point spécifié

Description

bool HaruPage::lineTo ( float $x , float $y )

Trace une ligne depuis le point courant vers le point spécifié.

Liste de paramètres

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::measureText

(PECL haru >= 0.0.1)

HaruPage::measureTextCalcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée

Description

int HaruPage::measureText ( string $text , float $width [, bool $wordwrap = false ] )

Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée.

Liste de paramètres

text

Le texte à mesurer.

width

La largeur de la zone où l'on doit mettre le texte.

wordwrap

Lorsque ce paramètre est défini à TRUE, la fonction émule la troncation des mots et n'inclut pas la partie du mot courant si l'on arrive à la fin de la zone.

Valeurs de retour

Retourne le nombre de caractères qui peuvent être inclus dans la largeur spécifiée.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::moveTextPos

(PECL haru >= 0.0.1)

HaruPage::moveTextPosDéplace la position du texte à une position donnée

Description

bool HaruPage::moveTextPos ( float $x , float $y [, bool $set_leading = false ] )

Déplace la position du texte à la position donnée. Si la position de départ de la ligne courant est (x1, y1), le début de la prochaine ligne est (x1 + x, y1 + y).

Liste de paramètres

x

La position du texte.

y

La position du texte.

set_leading

Si le paramètre optionnel set_leading vaut TRUE, la fonction défini l'espacement du texte à -y.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::moveTo

(PECL haru >= 0.0.1)

HaruPage::moveToDéfinit le point de départ pour la nouvelle ligne

Description

bool HaruPage::moveTo ( float $x , float $y )

Définit le point de départ pour la nouvelle ligne.

Liste de paramètres

x

Coordonnée du nouveau point de départ.

y

Coordonnée du nouveau point de départ.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::moveToNextLine

(PECL haru >= 0.0.1)

HaruPage::moveToNextLineDéplace la position du texte au début de la prochaine ligne

Description

bool HaruPage::moveToNextLine ( void )

Déplace la position du texte au début de la prochaine ligne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::rectangle

(PECL haru >= 0.0.1)

HaruPage::rectangleAjoute un rectangle à la position courante

Description

bool HaruPage::rectangle ( float $x , float $y , float $width , float $height )

Ajoute un rectangle à la position courante.

Liste de paramètres

x

La bordure gauche du rectangle.

y

La bordure basse du rectangle.

width

La largeur du rectangle.

height

La hauteur du rectangle.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::setCharSpace

(PECL haru >= 0.0.1)

HaruPage::setCharSpaceDéfinit l'espacement des caractères pour la page

Description

bool HaruPage::setCharSpace ( float $char_space )

Définit l'espacement des caractères pour la page.

Liste de paramètres

char_space

Le nouvel espacement des caractères pour la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setCMYKFill

(PECL haru >= 0.0.1)

HaruPage::setCMYKFillDéfinit la couleur de remplissage de la page

Description

bool HaruPage::setCMYKFill ( float $c , float $m , float $y , float $k )

Définit la couleur de remplissage de la page.

Liste de paramètres

c

m

y

k

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::setCMYKStrokeDéfinit la couleur de remplissage de la page

Description

bool HaruPage::setCMYKStroke ( float $c , float $m , float $y , float $k )

Définit la couleur de remplissage de la page.

Liste de paramètres

c

m

y

k

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setDash

(PECL haru >= 0.0.1)

HaruPage::setDashDéfinit le style de tiret pour la page

Description

bool HaruPage::setDash ( array $pattern , int $phase )

Définit le style de tiret pour la page.

Liste de paramètres

pattern

Un tableau (8 éléments au maximum) qui contiennent les styles et les trous utilisés pour les lignes de la page.

phase

La phase sur laquelle les masques commencent.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setFlatness

(PECL haru >= 0.0.1)

HaruPage::setFlatnessDéfinit la planéité de la page

Description

bool HaruPage::setFlatness ( float $flatness )

Définit la planéité de la page.

Liste de paramètres

flatness

La planéité pour la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setFontAndSize

(PECL haru >= 0.0.1)

HaruPage::setFontAndSizeDéfinit la police et sa taille pour la page

Description

bool HaruPage::setFontAndSize ( object $font , float $size )

Définit la police et sa taille pour la page.

Liste de paramètres

font

Une instance valide de HaruFont.

size

La taille de la police.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setGrayFill

(PECL haru >= 0.0.1)

HaruPage::setGrayFillDéfinit la couleur de remplissage de la page

Description

bool HaruPage::setGrayFill ( float $value )

Définit la couleur de remplissage de la page.

Liste de paramètres

value

La valeur pour la couleur grise, comprise entre 0 et 1.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setGrayStroke

(PECL haru >= 0.0.1)

HaruPage::setGrayStrokeDéfinit la couleur de remplissage de la page

Description

bool HaruPage::setGrayStroke ( float $value )

Définit la couleur de remplissage de la page.

Liste de paramètres

value

La valeur pour la couleur grise, comprise entre 0 et 1.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setHeight

(PECL haru >= 0.0.1)

HaruPage::setHeightDéfinit la hauteur de la page

Description

bool HaruPage::setHeight ( float $height )

Définit la hauteur de la page.

Liste de paramètres

height

La hauteur de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::setHorizontalScalingDéfinit la graduation horizontale de la page

Description

bool HaruPage::setHorizontalScaling ( float $scaling )

Définit la graduation horizontale du texte affiché sur la page.

Liste de paramètres

scaling

La graduation horizontal du texte affiché sur la page. La valeur initiale est 100.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setLineCap

(PECL haru >= 0.0.1)

HaruPage::setLineCapDéfinit la forme à utiliser à la fin des lignes

Description

bool HaruPage::setLineCap ( int $cap )

Définit la forme à utiliser à la fin des lignes.

Liste de paramètres

cap

Doit être une des valeurs suivantes :

  • HaruPage::BUTT_END - la ligne est ajustée à la fin du chemin.
  • HaruPage::ROUND_END - la fin de la ligne devient un demi-cercle dont le centre est le point final du chemin.
  • HaruPage::PROJECTING_SCUARE_END - la ligne continue jusqu'au point qui excède de moitié la largeur du point final.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setLineJoin

(PECL haru >= 0.0.1)

HaruPage::setLineJoinDéfinit le style de jointure de ligne pour la page

Description

bool HaruPage::setLineJoin ( int $join )

Définit le style de jointure de ligne pour la page.

Liste de paramètres

join

Doit être une des valeurs suivantes :

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setLineWidth

(PECL haru >= 0.0.1)

HaruPage::setLineWidthDéfinit la largeur de la ligne pour la page

Description

bool HaruPage::setLineWidth ( float $width )

Définit la largeur de la ligne pour la page.

Liste de paramètres

width

La largeur de la ligne pour la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setMiterLimit

(PECL haru >= 0.0.1)

HaruPage::setMiterLimitDéfinit la valeur courante de la limite de l'anglet de la page

Description

bool HaruPage::setMiterLimit ( float $limit )

Définit la valeur courante de la limite de l'anglet de la page.

Liste de paramètres

limit

Définit la valeur courante de la limite de l'anglet de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setRGBFill

(PECL haru >= 0.0.1)

HaruPage::setRGBFillDéfinit la couleur de remplissage pour la page

Description

bool HaruPage::setRGBFill ( float $r , float $g , float $b )

Définit la couleur de remplissage de la page. Toutes les valeurs doivent être comprises entre 0 et 1.

Liste de paramètres

r

g

b

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setRGBStroke

(PECL haru >= 0.0.1)

HaruPage::setRGBStrokeDéfinit la couleur de remplissage de la page

Description

bool HaruPage::setRGBStroke ( float $r , float $g , float $b )

Définit la couleur de remplissage de la page. Toutes les valeurs doivent être comprises entre 0 et 1.

Liste de paramètres

r

g

b

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setRotate

(PECL haru >= 0.0.1)

HaruPage::setRotateDéfinit l'angle de rotation de la page

Description

bool HaruPage::setRotate ( int $angle )

Définit l'angle de rotation de la page.

Liste de paramètres

angle

Doit être un multiple de 90 degrés.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::setSize

(PECL haru >= 0.0.1)

HaruPage::setSizeDéfinit la taille et la direction de la page

Description

bool HaruPage::setSize ( int $size , int $direction )

Modifie la taille et la direction de la page en un format prédéfini.

Liste de paramètres

size

Doit être une des valeurs suivantes :

  • HaruPage::SIZE_LETTER
  • HaruPage::SIZE_LEGAL
  • HaruPage::SIZE_A3
  • HaruPage::SIZE_A4
  • HaruPage::SIZE_A5
  • HaruPage::SIZE_B4
  • HaruPage::SIZE_B5
  • HaruPage::SIZE_EXECUTIVE
  • HaruPage::SIZE_US4x6
  • HaruPage::SIZE_US4x8
  • HaruPage::SIZE_US5x7
  • HaruPage::SIZE_COMM10

direction

Doit être une des valeurs suivantes :

  • HaruPage::PORTRAIT
  • HaruPage::LANDSCAPE

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setSlideShow

(PECL haru >= 0.0.1)

HaruPage::setSlideShowDéfinit le style de transition pour la page

Description

bool HaruPage::setSlideShow ( int $type , float $disp_time , float $trans_time )

Définit le style de transition pour la page.

Liste de paramètres

type

Doit être une des valeurs suivantes :

  • HaruPage::TS_WIPE_RIGHT
  • HaruPage::TS_WIPE_LEFT
  • HaruPage::TS_WIPE_UP
  • HaruPage::TS_WIPE_DOWN
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_IN
  • HaruPage::TS_BARN_DOORS_VERTICAL_OUT
  • HaruPage::TS_BARN_DOORS_VERTICAL_IN
  • HaruPage::TS_BOX_OUT
  • HaruPage::TS_BOX_IN
  • HaruPage::TS_BLINDS_HORIZONTAL
  • HaruPage::TS_BLINDS_VERTICAL
  • HaruPage::TS_DISSOLVE
  • HaruPage::TS_GLITTER_RIGHT
  • HaruPage::TS_GLITTER_DOWN
  • HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT
  • HaruPage::TS_REPLACE

disp_time

Le temps d'affichage de la page, en secondes.

trans_time

La durée de l'effet de transition, en secondes.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::setTextLeading

(PECL haru >= 0.0.1)

HaruPage::setTextLeadingDéfinit l'espacement entre les lignes du texte pour la page

Description

bool HaruPage::setTextLeading ( float $text_leading )

Définit l'espacement entre les lignes du texte pour la page.

Liste de paramètres

text_leading

Espacement entre les lignes de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setTextMatrix

(PECL haru >= 0.0.1)

HaruPage::setTextMatrixDéfinit la matrice de transformation de texte courante de la page

Description

bool HaruPage::setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )

Définit la matrice de transformation de texte de la page.

Liste de paramètres

a

Multiplicateur de largeur.

b

Inclinaison verticale, en radians.

c

Inclinaison horizontale, en radians.

d

Multiplicateur de hauteur.

x

Position horizontale du texte.

y

Position verticale du texte.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::setTextRenderingModeDéfinit la matrice de transformation de texte courante de la page

Description

bool HaruPage::setTextRenderingMode ( int $mode )

Définit la matrice de transformation de texte de la page.

Liste de paramètres

mode

Doit être une valeur parmi les suivantes :

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setTextRise

(PECL haru >= 0.0.1)

HaruPage::setTextRiseDéfinit la valeur courante de la levée du texte

Description

bool HaruPage::setTextRise ( float $rise )

Définit la valeur courante de la levée du texte.

Liste de paramètres

rise

Valeur courante de la levée du texte.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setWidth

(PECL haru >= 0.0.1)

HaruPage::setWidthDéfinit la largeur de la page

Description

bool HaruPage::setWidth ( float $width )

Définit la largeur de la page.

Liste de paramètres

width

Largeur de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::setWordSpace

(PECL haru >= 0.0.1)

HaruPage::setWordSpaceDéfinit l'espacement entre les mots pour la page

Description

bool HaruPage::setWordSpace ( float $word_space )

Définit l'espacement entre les mots pour la page.

Liste de paramètres

word_space

Espacement entre les mots de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::showText

(PECL haru >= 0.0.1)

HaruPage::showTextAffiche le texte à la position courante de la page

Description

bool HaruPage::showText ( string $text )

Affiche le texte à la position courante de la page.

Liste de paramètres

text

Le texte à afficher.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::showTextNextLine

(PECL haru >= 0.0.1)

HaruPage::showTextNextLineDéplace la position courante au début de la prochaine ligne et affiche le texte

Description

bool HaruPage::showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] )

Déplace la position courante au début de la prochaine ligne et affiche le texte.

Liste de paramètres

text

Le texte à afficher.

word_space

L'espacement entre les mots.

char_space

L'espacement entre les caractères.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::stroke

(PECL haru >= 0.0.1)

HaruPage::strokePeint le chemin courant

Description

bool HaruPage::stroke ([ bool $close_path = false ] )

Peint le chemin courant.

Liste de paramètres

close_path

Ferme le chemin courant si défini à TRUE.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruPage::textOut

(PECL haru >= 0.0.1)

HaruPage::textOutAffiche le texte à la position spécifiée

Description

bool HaruPage::textOut ( float $x , float $y , string $text )

Affiche le texte à la position spécifiée.

Liste de paramètres

x

y

text

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi



HaruPage::textRect

(PECL haru >= 0.0.1)

HaruPage::textRectAffiche le texte d'une région spécifique

Description

bool HaruPage::textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] )

Affiche le texte d'une région spécifique.

Liste de paramètres

left

Bordure gauche de la zone de texte.

top

Bordure haute de la zone de texte.

right

Bordure droite de la zone de texte.

bottom

Bordure basse de la zone de texte.

text

Le texte à afficher.

align

Alignement du texte. Doit être une valeur parmi :

  • HaruPage::TALING_LEFT
  • HaruPage::TALING_RIGHT
  • HaruPage::TALING_CENTER
  • HaruPage::TALING_JUSTIFY

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi


Sommaire



Classe HaruFont

Introduction

Classe Haru PDF Font.

Synopsis de la classe

HaruFont {
/* Méthodes */
int getAscent ( void )
int getCapHeight ( void )
int getDescent ( void )
string getEncodingName ( void )
string getFontName ( void )
array getTextWidth ( string $text )
int getUnicodeWidth ( int $character )
int getXHeight ( void )
int measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = false ] )
}

HaruFont::getAscent

(PECL haru >= 0.0.1)

HaruFont::getAscentRécupère la montée verticale de la police

Description

int HaruFont::getAscent ( void )

Récupère la montée verticale de la police.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la montée verticale de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::getCapHeight

(PECL haru >= 0.0.1)

HaruFont::getCapHeightRécupère la distance depuis la ligne de base des lettres en majuscule

Description

int HaruFont::getCapHeight ( void )

Récupère la distance depuis la ligne de base des lettres en majuscule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la distance depuis la ligne de base des lettres en majuscule.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::getDescent

(PECL haru >= 0.0.1)

HaruFont::getDescentRécupère la descente verticale de la police

Description

int HaruFont::getDescent ( void )

Récupère la descente verticale de la police.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la descente verticale de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::getEncodingName

(PECL haru >= 0.0.1)

HaruFont::getEncodingNameRécupère le nom de l'encodage

Description

string HaruFont::getEncodingName ( void )

Récupère le nom de l'encodage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de l'encodage de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::getFontName

(PECL haru >= 0.0.1)

HaruFont::getFontNameRécupère le nom de la police

Description

string HaruFont::getFontName ( void )

Récupère le nom de la police.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::getTextWidth

(PECL haru >= 0.0.1)

HaruFont::getTextWidthRécupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces

Description

array HaruFont::getTextWidth ( string $text )

Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces.

Liste de paramètres

text

Le texte à mesurer.

Valeurs de retour

Retourne la largeur totale d'un texte, le nombre de caractères, le nombre de mots et le nombre d'espaces dans un texte donné.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::getUnicodeWidth

(PECL haru >= 0.0.1)

HaruFont::getUnicodeWidthRécupère la largeur d'un caractère dans une police

Description

int HaruFont::getUnicodeWidth ( int $character )

Récupère la largeur d'un caractère dans une police.

Liste de paramètres

character

Le code du caractère.

Valeurs de retour

Retourne la largeur d'un caractère dans la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::getXHeight

(PECL haru >= 0.0.1)

HaruFont::getXHeightRécupère la distance depuis la ligne de base des lettres minuscule

Description

int HaruFont::getXHeight ( void )

Récupère la distance depuis la ligne de base des lettres minuscule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la distance depuis la ligne de base des lettres en minuscule.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruFont::measureText

(PECL haru >= 0.0.1)

HaruFont::measureTextCalcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée

Description

int HaruFont::measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = false ] )

Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée.

Liste de paramètres

text

Le texte qui doit tenir dans la largeur.

width

La largeur de l'endroit dans lequel le texte doit tenir.

font_size

La taille de la police.

char_space

L'espacement des caractères.

word_space

L'espacement des mots.

word_wrap

Lorsque ce paramètre vaut TRUE, la fonction émule la troncation des mots et n'inclut pas la partie courante du mot si l'on a atteint la fin de l'espace.

Valeurs de retour

Retourne le nombre de caractères qui peuvent être inclus dans la largeur spécifiée.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Sommaire



Classe HaruImage

Introduction

Classe Haru PDF Image.

Synopsis de la classe

HaruImage {
/* Méthodes */
int getBitsPerComponent ( void )
string getColorSpace ( void )
int getHeight ( void )
array getSize ( void )
int getWidth ( void )
bool setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )
bool setMaskImage ( object $mask_image )
}

HaruImage::getBitsPerComponent

(PECL haru >= 0.0.1)

HaruImage::getBitsPerComponentRécupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image

Description

int HaruImage::getBitsPerComponent ( void )

Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruImage::getColorSpace

(PECL haru >= 0.0.1)

HaruImage::getColorSpaceRécupère le nom de l'espace de couleur de l'image

Description

string HaruImage::getColorSpace ( void )

Récupère le nom de l'espace de couleur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de l'espace de couleur de l'image. Le nom est une des valeurs suivantes :

  • "DeviceGray"
  • "DeviceRGB"
  • "DeviceCMYK"
  • "Indexed"

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruImage::getHeight

(PECL haru >= 0.0.1)

HaruImage::getHeightRécupère la hauteur de l'image

Description

int HaruImage::getHeight ( void )

Récupère la hauteur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la hauteur de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruImage::getSize

(PECL haru >= 0.0.1)

HaruImage::getSizeRécupère la taille de l'image

Description

array HaruImage::getSize ( void )

Récupère la taille de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant deux éléments : la hauteur et la largeur, qui contiennent les dimensions de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruImage::getWidth

(PECL haru >= 0.0.1)

HaruImage::getWidthRécupère la largeur de l'image

Description

int HaruImage::getWidth ( void )

Récupère la largeur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruImage::setColorMask

(PECL haru >= 0.0.1)

HaruImage::setColorMaskDéfinit le masque de couleur de l'image

Description

bool HaruImage::setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )

Définit la couleur de transparence de l'image, en utilisant des valeurs RVG. La couleur est affichée en tant que couleur transparente. La couleur de l'espace de l'image doit être RVB.

Liste de paramètres

rmin

Le limite basse de rouge. Doit être comprise entre 0 et 255.

rmax

Le limite haute de rouge. Doit être comprise entre 0 et 255.

gmin

Le limite basse de vert. Doit être comprise entre 0 et 255.

gmax

Le limite haute de vert. Doit être comprise entre 0 et 255.

bmin

Le limite basse de bleu. Doit être comprise entre 0 et 255.

bmax

Le limite haute de bleu. Doit être comprise entre 0 et 255.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruImage::setMaskImage

(PECL haru >= 0.0.1)

HaruImage::setMaskImageDéfinit le masque de l'image

Description

bool HaruImage::setMaskImage ( object $mask_image )

Définit l'image à utiliser en tant que masque. Elle doit être une image de couleur grise sur 1 octet.

Liste de paramètres

mask_image

Une instance valide HaruImage.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Sommaire



Classe HaruEncoder

Introduction

Classe Haru PDF Encoder Class.

Synopsis de la classe

HaruEncoder {
/* Méthodes */
int getByteType ( string $text , int $index )
int getType ( void )
int getUnicode ( int $character )
int getWritingMode ( void )
}

Constantes pré-définies

Type Nom Description
int HaruEncoder::TYPE_SINGLE_BYTE  
int HaruEncoder::TYPE_DOUBLE_BYTE  
int HaruEncoder::TYPE_UNINITIALIZED  
int HaruEncoder::UNKNOWN  
int HaruEncoder::WMODE_HORIZONTAL  
int HaruEncoder::WMODE_VERTICAL  
int HaruEncoder::BYTE_TYPE_SINGLE  
int HaruEncoder::BYTE_TYPE_LEAD  
int HaruEncoder::BYTE_TYPE_TRAIL  
int HaruEncoder::BYTE_TYPE_UNKNOWN  

HaruEncoder::getByteType

(PECL haru >= 0.0.1)

HaruEncoder::getByteTypeRécupère le type d'octets dans le texte

Description

int HaruEncoder::getByteType ( string $text , int $index )

Récupère le type d'octets dans le texte.

Liste de paramètres

text

Le texte.

index

La position dans le texte.

Valeurs de retour

Retourne le type d'octets dans le texte à une position donnée. Le résultat est une des valeurs suivantes :

  • HaruEncoder::BYTE_TYPE_SINGLE - caractère sur un seul octet.
  • HaruEncoder::BYTE_TYPE_LEAD - premier octet d'un caractère bi-octets.
  • HaruEncoder::BYTE_TYPE_TRAIL - dernier octet d'un caractère bi-octets.
  • HaruEncoder::BYTE_TYPE_UNKNOWN - encodeur invalide ou impossible de détecter le type d'octets.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruEncoder::getType

(PECL haru >= 0.0.1)

HaruEncoder::getTypeRécupère le type de l'encodeur

Description

int HaruEncoder::getType ( void )

Récupère le type de l'encodeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type de l'encodeur. Le résultat est une des valeurs suivantes :

  • HaruEncoder::TYPE_SINGLE_BYTE - l'encodeur est pour les caractères sur un octet.
  • HaruEncoder::TYPE_DOUBLE_BYTE - l'encodeur est pour les caractères multi-octets.
  • HaruEncoder::TYPE_UNINITIALIZED - l'encodeur n'est pas initialisé.
  • HaruEncoder::UNKNOWN - l'encodeur est invalide.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruEncoder::getUnicode

(PECL haru >= 0.0.1)

HaruEncoder::getUnicodeConvertit un caractère en unicode

Description

int HaruEncoder::getUnicode ( int $character )

Convertit le caractère spécifié en unicode.

Liste de paramètres

character

Le code du caractère à convertir.

Valeurs de retour

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruEncoder::getWritingMode

(PECL haru >= 0.0.1)

HaruEncoder::getWritingModeRécupère le mode d'écriture de l'encodeur

Description

int HaruEncoder::getWritingMode ( void )

Récupère le mode d'écriture de l'encodeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode d'écriture de l'encodeur. Le résultat est une des constantes suivantes :

  • HaruEncoder::WMODE_HORIZONTAL - mode d'écriture horizontal.
  • HaruEncoder::WMODE_VERTICAL - mode d'écriture vertical.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Sommaire



Classe HaruOutline

Introduction

Classe Haru PDF Outline.

Synopsis de la classe

HaruOutline {
/* Méthodes */
bool setDestination ( object $destination )
bool setOpened ( bool $opened )
}

HaruOutline::setDestination

(PECL haru >= 0.0.1)

HaruOutline::setDestinationDéfinit la destination pour le contour

Description

bool HaruOutline::setDestination ( object $destination )

Définit un objet de destination qui devient une cible à atteindre lorsque le contour est cliqué.

Liste de paramètres

destination

Une instance valide HaruDestination.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruOutline::setOpened

(PECL haru >= 0.0.1)

HaruOutline::setOpenedDéfinit le statut initial du contour

Description

bool HaruOutline::setOpened ( bool $opened )

Définit si ce noeud est ouvert ou non lorsque le contour est affiché pour la première fois.

Liste de paramètres

opened

TRUE signifie ouvert, FALSE - fermé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Sommaire



Classe HaruAnnotation

Introduction

Classe Haru PDF Annotation.

Synopsis de la classe

HaruAnnotation {
/* Méthodes */
bool setBorderStyle ( float $width , int $dash_on , int $dash_off )
bool setHighlightMode ( int $mode )
bool setIcon ( int $icon )
bool setOpened ( bool $opened )
}

Constantes pré-définies

Type Nom Description
int HaruAnnotation::NO_HIGHLIGHT  
int HaruAnnotation::INVERT_BOX  
int HaruAnnotation::INVERT_BORDER  
int HaruAnnotation::DOWN_APPEARANCE  
int HaruAnnotation::ICON_COMMENT  
int HaruAnnotation::ICON_KEY  
int HaruAnnotation::ICON_NOTE  
int HaruAnnotation::ICON_HELP  
int HaruAnnotation::ICON_NEW_PARAGRAPH  
int HaruAnnotation::ICON_PARAGRAPH  
int HaruAnnotation::ICON_INSERT  

HaruAnnotation::setBorderStyle

(PECL haru >= 0.0.1)

HaruAnnotation::setBorderStyleDéfinit le style de bordure d'une annotation

Description

bool HaruAnnotation::setBorderStyle ( float $width , int $dash_on , int $dash_off )

Définit le style de bordure de l'annotation. Cette fonction doit être utilisée uniquement avec les annotations.

Liste de paramètres

width

L'épaisseur de la bordure.

dash_on

Le style de la bordure.

dash_off

Le style de la ligne.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruAnnotation::setHighlightMode

(PECL haru >= 0.0.1)

HaruAnnotation::setHighlightModeDéfinit le mode de mise en évidence de l'annotation

Description

bool HaruAnnotation::setHighlightMode ( int $mode )

Définit l'apparence de l'annotation lorsqu'elle est cliquée. Cette fonction ne doit être utilisée qu'avec les liens des annotations.

Liste de paramètres

mode

Le mode de mise en évidence de l'annotation. Ne peut prendre que ces valeurs :

  • HaruAnnotation::NO_HIGHLIGHT - aucune mise en évidence.
  • HaruAnnotation::INVERT_BOX - inverse le contenu de l'annotation.
  • HaruAnnotation::INVERT_BORDER - inverse la bordure de l'annotation.
  • HaruAnnotation::DOWN_APPEARANCE - bosseler l'annotation

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruAnnotation::setIcon

(PECL haru >= 0.0.1)

HaruAnnotation::setIconDéfinit le style de l'icône de l'annotation

Description

bool HaruAnnotation::setIcon ( int $icon )

Définit le style de l'icône de l'annotation. Cette fonction ne peut être utilisée qu'avec les annotations.

Liste de paramètres

icon

Le style de l'icône. Peut prendre uniquement les valeurs suivantes :

  • HaruAnnotation::ICON_COMMENT
  • HaruAnnotation::ICON_KEY
  • HaruAnnotation::ICON_NOTE
  • HaruAnnotation::ICON_HELP
  • HaruAnnotation::ICON_NEW_PARAGRAPH
  • HaruAnnotation::ICON_PARAGRAPH
  • HaruAnnotation::ICON_INSERT

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruAnnotation::setOpened

(PECL haru >= 0.0.1)

HaruAnnotation::setOpenedDéfinit le statut initial de l'annotation

Description

bool HaruAnnotation::setOpened ( bool $opened )

Définit si l'annotation est initialement affichée ouverte ou non. Cette fonction doit être utilisée uniquement avec les annotations.

Liste de paramètres

opened

TRUE signifie que l'annotation est initialement affichée ouverte, FALSE signifie close.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Sommaire



Classe HaruDestination

Introduction

Classe Haru PDF Destination.

Synopsis de la classe

HaruDestination {
/* Méthodes */
bool setFit ( void )
bool setFitB ( void )
bool setFitBH ( float $top )
bool setFitBV ( float $left )
bool setFitH ( float $top )
bool setFitR ( float $left , float $bottom , float $right , float $top )
bool setFitV ( float $left )
bool setXYZ ( float $left , float $top , float $zoom )
}

HaruDestination::setFit

(PECL haru >= 0.0.1)

HaruDestination::setFitDéfinit l'apparence de la page afin qu'elle tienne dans la fenêtre

Description

bool HaruDestination::setFit ( void )

Définit l'apparence de la page afin qu'elle tienne dans la fenêtre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDestination::setFitB

(PECL haru >= 0.0.1)

HaruDestination::setFitBDéfinit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre

Description

bool HaruDestination::setFitB ( void )

Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDestination::setFitBH

(PECL haru >= 0.0.1)

HaruDestination::setFitBHDéfinit l'apparence de la page afin qu'elle tienne en largeur dans la boite

Description

bool HaruDestination::setFitBH ( float $top )

Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite et définit la position haute de la page à la valeur top.

Liste de paramètres

top

Les coordonnées haute de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDestination::setFitBV

(PECL haru >= 0.0.1)

HaruDestination::setFitBVDéfinit l'apparence de la page afin qu'elle tienne en hauteur dans la boite

Description

bool HaruDestination::setFitBV ( float $left )

Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite et définit la position gauche de la page à la valeur de left.

Liste de paramètres

left

Les coordonnées gauche de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDestination::setFitH

(PECL haru >= 0.0.1)

HaruDestination::setFitHDéfinit l'apparence de la page afin qu'elle tienne en largeur dans la page

Description

bool HaruDestination::setFitH ( float $top )

Définit l'apparence de la page afin qu'elle tienne en largeur dans la page et définit la position haute de la page à la valeur top.

Liste de paramètres

top

La position haute de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDestination::setFitR

(PECL haru >= 0.0.1)

HaruDestination::setFitRDéfinit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié

Description

bool HaruDestination::setFitR ( float $left , float $bottom , float $right , float $top )

Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié.

Liste de paramètres

left

Les coordonnées gauche de la page.

bottom

Les coordonnées du bas de la page.

right

Les coordonnées droite de la page.

top

Les coordonnées du haut de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDestination::setFitV

(PECL haru >= 0.0.1)

HaruDestination::setFitVDéfinit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre

Description

bool HaruDestination::setFitV ( float $left )

Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre.

Liste de paramètres

left

La position gauche de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.



HaruDestination::setXYZ

(PECL haru >= 0.0.1)

HaruDestination::setXYZDéfinit l'apparence d'une page

Description

bool HaruDestination::setXYZ ( float $left , float $top , float $zoom )

Définit l'apparence d'une page en utilisant trois paramètres : left, top et zoom.

Liste de paramètres

left

La position gauche de la page.

top

La position haute de la page.

zoom

Le facteur de zoom. La valeur doit être comprise entre 0.08 (8%) et 32 (3200%).

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Sommaire




Ming (flash)


Introduction

Avant tout, sachez que Ming n'est pas un acronyme. Ming est une bibliothèque Open Source (LGPL) qui vous permet de créer des animations au format Flash. Ming supporte toutes les fonctionnalités de Flash 4 : les formes (shapes), les gradients, les images bitmaps (JPEG et PNG), les morphing (transformations d'une forme en une autre), les textes, actions, sprites (mini-animations), le streaming MP3 et les transformations de couleurs. Le seul ajout futur est celui des événements sons.

Notez que toutes les distances spécifiées (longueurs, distances, tailles...) sont en "twips", c'est-à-dire 20 unités par pixels. C'est plus ou moins arbitraire, car le lecteur Flash fait une mise à l'échelle avec les valeurs qui lui sont fournies dans la balise embed, ou la frame courante si la balise embed n'est pas utilisée.

Ming propose de nombreux avantages par rapport à l'extension Swf. Vous pouvez utiliser Ming sur tous les OS où vous pouvez compiler le code, tandis que swf est limité à Windows. Ming vous évite la déconcertante complexité du format SWF, en transformant les éléments des animations en objets PHP. Enfin, Ming est toujours en cours de développement et surveillé par son auteur : si vous souhaitez une nouvelle fonctionnalité, dites-le nous : » http://www.libming.org/.

Ming et tous les objets cités ont été ajoutés en PHP 4.0.5.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.



Installation/Configuration

Sommaire


Pré-requis

Pour utiliser Ming avec PHP, vous devez d'abord installer la bibliothèque Ming. Le code source et les instructions d'installation sont disponibles sur la page d'accueil de Ming : » http://www.libming.org/, avec des exemples un tutorial et l'actualité Ming.

Téléchargez l'archive Ming. Décompressez-la et allez dans le dossier Ming. Faites "make", puis "make install".

Cela va compiler le fichier libming.so et l'installer dans /usr/lib/, et copier ming.h dans /usr/include/. Éditez la ligne PREFIX= dans le fichier Makefile pour indiquer votre dossier d'installation.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ming.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MING_NEW (entier)
MING_ZLIB (entier)
SWFBUTTON_HIT (entier)
SWFBUTTON_DOWN (entier)
SWFBUTTON_OVER (entier)
SWFBUTTON_UP (entier)
SWFBUTTON_MOUSEUPOUTSIDE (entier)
SWFBUTTON_DRAGOVER (entier)
SWFBUTTON_DRAGOUT (entier)
SWFBUTTON_MOUSEUP (entier)
SWFBUTTON_MOUSEDOWN (entier)
SWFBUTTON_MOUSEOUT (entier)
SWFBUTTON_MOUSEOVER (entier)
SWFFILL_RADIAL_GRADIENT (entier)
SWFFILL_LINEAR_GRADIENT (entier)
SWFFILL_TILED_BITMAP (entier)
SWFFILL_CLIPPED_BITMAP (entier)
SWFTEXTFIELD_HASLENGTH (entier)
SWFTEXTFIELD_NOEDIT (entier)
SWFTEXTFIELD_PASSWORD (entier)
SWFTEXTFIELD_MULTILINE (entier)
SWFTEXTFIELD_WORDWRAP (entier)
SWFTEXTFIELD_DRAWBOX (entier)
SWFTEXTFIELD_NOSELECT (entier)
SWFTEXTFIELD_HTML (entier)
SWFTEXTFIELD_ALIGN_LEFT (entier)
SWFTEXTFIELD_ALIGN_RIGHT (entier)
SWFTEXTFIELD_ALIGN_CENTER (entier)
SWFTEXTFIELD_ALIGN_JUSTIFY (entier)
SWFACTION_ONLOAD (entier)
SWFACTION_ENTERFRAME (entier)
SWFACTION_UNLOAD (entier)
SWFACTION_MOUSEMOVE (entier)
SWFACTION_MOUSEDOWN (entier)
SWFACTION_MOUSEUP (entier)
SWFACTION_KEYDOWN (entier)
SWFACTION_KEYUP (entier)
SWFACTION_DATA (entier)


Exemples

Sommaire


Exemples avec SWFAction

Cet exemple simple déplace un carré rouge dans une fenêtre.

Exemple #1 Exemple avec swfaction()

<?php
  $s 
= new SWFShape();
  
$f $s->addFill(0xff00);
  
$s->setRightFill($f);

  
$s->movePenTo(-500, -500);
  
$s->drawLineTo(500, -500);
  
$s->drawLineTo(500500);
  
$s->drawLineTo(-500500);
  
$s->drawLineTo(-500, -500);

  
$p = new SWFSprite();
  
$i $p->add($s);
  
$i->setDepth(1);
  
$p->nextFrame();

  for (
$n=0$n<5; ++$n) {
    
$i->rotate(-15);
    
$p->nextFrame();
  }

  
$m = new SWFMovie();
  
$m->setBackground(0xff0xff0xff);
  
$m->setDimension(60004000);

  
$i $m->add($p);
  
$i->setDepth(1);
  
$i->moveTo(-500,2000);
  
$i->setName("box");

  
$m->add(new SWFAction("/box.x += 3;"));
  
$m->nextFrame();
  
$m->add(new SWFAction("gotoFrame(0); play();"));
  
$m->nextFrame();

  
header('Content-type: application/x-shockwave-flash');
  
$m->output();
?>

Cet exemple simple va déplacer votre souris vers le bas de l'écran.

Exemple #2 Exemple avec swfaction()

<?php

  $m 
= new SWFMovie();
  
$m->setRate(36.0);
  
$m->setDimension(1200800);
  
$m->setBackground(000);

  
/* objet de suivi de la souris - vide, mais suit les mouvements de la souris
     afin d'y récupérer les coordonnées x et y */

  
$i $m->add(new SWFSprite());
  
$i->setName('mouse');

  
$m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' signifie que l'on verrouille le sprite à la souris */
  "
));

  
/* on désactive l'antialiasing, vu que l'on souhaite juste utiliser des carrés */

  
$m->add(new SWFAction("
    this.quality = 0;
  "
));

  
/* modification de la boite */
  
$r = new SWFMorph();
  
$s $r->getShape1();

  
$s->setLeftFill($s->addFill(0xff0xff0xff));
  
$s->movePenTo(-40, -40);
  
$s->drawLine(800);
  
$s->drawLine(080);
  
$s->drawLine(-800);
  
$s->drawLine(0, -80);

  
$s $r->getShape2();

  
$s->setLeftFill($s->addFill(0x000x000x00));
  
$s->movePenTo(-1, -1);
  
$s->drawLine(20);
  
$s->drawLine(02);
  
$s->drawLine(-20);
  
$s->drawLine(0, -2);

  
/* conteneur sprite, pour la modification de la boite */

  
$box = new SWFSprite();
  
$box->add(new SWFAction("
    stop();
  "
));
  
$i $box->add($r);

  for (
$n=0$n<=20; ++$n) {
    
$i->setRatio($n/20);
    
$box->nextFrame();
  }

  
/* Ce conteneur de sprite nous permet d'utiliser la même action plusieurs fois */

  
$cell = new SWFSprite();
  
$i $cell->add($box);
  
$i->setName('box');

  
$cell->add(new SWFAction("

    setTarget('box');

    /* ...x signifie la coordonnée en x du parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "
));

  
$cell->nextFrame();
  
$cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "
));

  
$cell->nextFrame();

  
/* et pour finir, ajoutons quelques cellules à notre vidéo */

  
for ($x=0$x<12; ++$x) {
    for (
$y=0$y<8; ++$y) {
      
$i $m->add($cell);
      
$i->moveTo(100*$x+50100*$y+50);
    }
  }

  
$m->nextFrame();

  
$m->add(new SWFAction("

    gotoFrame(1);
    play();

  "
));

  
header('Content-type: application/x-shockwave-flash');
  
$m->output();
?>

Idem que l'exemple ci-dessus, mais avec de beaux ballons colorés...

Exemple #3 Exemple avec swfaction()

<?php

  $m 
= new SWFMovie();
  
$m->setDimension(110008000);
  
$m->setBackground(0x000x000x00);

  
$m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "
));

  
// la souris suit le sprite
  
$t = new SWFSprite();
  
$i $m->add($t);
  
$i->setName('mouse');

  
$g = new SWFGradient();
  
$g->addEntry(00xff0xff0xff0xff);
  
$g->addEntry(0.10xff0xff0xff0xff);
  
$g->addEntry(0.50xff0xff0xff0x5f);
  
$g->addEntry(1.00xff0xff0xff0);

  
// une forme en gradient
  
$s = new SWFShape();
  
$f $s->addFill($gSWFFILL_RADIAL_GRADIENT);
  
$f->scaleTo(0.03);
  
$s->setRightFill($f);
  
$s->movePenTo(-600, -600);
  
$s->drawLine(12000);
  
$s->drawLine(01200);
  
$s->drawLine(-12000);
  
$s->drawLine(0, -1200);

  
// nous devons en faire un sprite, afin de pouvoir le colorer
  
$p = new SWFSprite();
  
$p->add($s);
  
$p->nextFrame();

  
// on y ajoute la forme, chaque frame avec une couleur différente
  
$q = new SWFSprite();
  
$q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  
$i $q->add($p);

  
$i->multColor(1.01.01.0);
  
$q->nextFrame();
  
$i->multColor(1.00.50.5);
  
$q->nextFrame();
  
$i->multColor(1.00.750.5);
  
$q->nextFrame();
  
$i->multColor(1.01.00.5);
  
$q->nextFrame();
  
$i->multColor(0.51.00.5);
  
$q->nextFrame();
  
$i->multColor(0.50.51.0);
  
$q->nextFrame();
  
$i->multColor(1.00.51.0);
  
$q->nextFrame();

  
// et pour finir, celui-ci contient le code action
  
$p = new SWFSprite();
  
$i $p->add($q);
  
$i->setName('frames');
  
$p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "
));
  
$p->nextFrame();

  
$p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "
));
  
$p->nextFrame();

  
$p->add(new SWFAction("prevFrame(); play();"));
  
$p->nextFrame();

  
$i $m->add($p);
  
$i->setName('frames');
  
$m->nextFrame();

  
$m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "
));

  
$m->nextFrame();
  
$m->add(new SWFAction("prevFrame(); play();"));

  
header('Content-type: application/x-shockwave-flash');
  
$m->output();
?>



Exemple avec SWFSPrite

Cet exemple va faire tourner un gros carré rouge.

Exemple #1 Exemple avec swfsprite()

<?php
$s 
= new SWFShape();
$s->setRightFill($s->addFill(0xff00));
$s->movePenTo(-500, -500);
$s->drawLineTo(500, -500);
$s->drawLineTo(500500);
$s->drawLineTo(-500500);
$s->drawLineTo(-500, -500);

$p = new SWFSprite();
$i $p->add($s);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();

$m = new SWFMovie();
$i $m->add($p);
$i->moveTo(15001000);
$i->setName("blah");

$m->setBackground(0xff0xff0xff);
$m->setDimension(30002000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>




Fonctions Ming


ming_keypress

(PHP 5 <= 5.3.0, PECL ming SVN)

ming_keypressRetourne le drapeau d'action pour keyPress(char)

Description

int ming_keypress ( string $char )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5, PECL ming SVN)

ming_setcubicthreshold Fixe le niveau de seuil cubique

Description

void ming_setcubicthreshold ( int $threshold )

Fixe le niveau de seuil cubique pour dessiner des cubes bézier.

Liste de paramètres

threshold

Le niveau du seuil. Un seuil bas est plus significatif, mais génère un fichier de grande taille.

Valeurs de retour

Aucune valeur n'est retournée.



ming_setscale

(PHP 4 >= 4.0.5, PHP 5, PECL ming SVN)

ming_setscaleDéfinit le facteur d'échelle globale

Description

void ming_setscale ( float $scale )

Définit l'échelle du SWF de sortie. Dans le fichier SWF, les coordonnées sont mesurées en TWIPS plutôt qu'en PIXELS. Il y a 20 TWIPS dans 1 pixel.

Liste de paramètres

scale

L'échelle à définir.

Valeurs de retour

Aucune valeur n'est retournée.



ming_setswfcompression

(PHP 5.2.1-5.3.0, PECL ming SVN)

ming_setswfcompressionDéfinit la compression de sortie SWF

Description

void ming_setswfcompression ( int $level )

Définit le degré de compression de sortie SWF.

Liste de paramètres

level

Le nouveau degré de compression. Doit être une valeur entre 1 et 9, inclus.

Valeurs de retour

Aucune valeur n'est retournée.



ming_useconstants

(PHP 5 <= 5.3.0, PECL ming SVN)

ming_useconstantsUtilise un jeu de constantes

Description

void ming_useconstants ( int $use )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5 <= 5.3.0, PECL ming SVN)

ming_useswfversionDéfinit la version SWF

Description

void ming_useswfversion ( int $version )

Définit la version SWF à utiliser dans la vidéo. Ceci affecte la comportement de l'Action Script.

Liste de paramètres

version

La version SWF à utiliser.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ming_useswfversion()

<?php

$movie 
= new SWFMovie();
ming_useswfversion(4); // Flash 4

?>


Sommaire



La classe SWFAction

Introduction

SWFAction.

Synopsis de la classe

SWFAction {
/* Méthodes */
SWFAction SWFAction::__construct ( string $script )
}

Description

La syntaxe de script est basée sur le langage C, mais avec beaucoup de différences : le bytcode SWF est simplifié pour ne faire que ce dont on a besoin. Actuellement, nous ne pouvons pas implémenter des appels à des fonctions sans d'affreux hacks, car le bytecode a des valeurs de position codées en interne.

Que reste-t-il donc ? le compilateur reconnaît les instances suivantes :

  • break
  • for
  • continue
  • if
  • else
  • do
  • while

Il n'y a pas de données typées ; toutes les valeurs d'une action SWF sont stockées sous la forme de chaînes de caractères. Les fonctions suivantes peuvent être utilisées dans les expressions :

time()
Retourne le nombre de millisecondes effectuées depuis le début d'une vidéo.
random(seed)
Retourne le nombre pseudo-aléatoire dans la rangée 0-seed.
length(expr)
Retourne la longueur de l'expression donnée.
int(number)
Retourne le nombre donné arrondi au nombre inférieur.
concat(expr, expr)
Retourne la concaténation des expressions données.
ord(expr)
Retourne le code ASCII pour le caractère donné.
chr(num)
Retourne le caractère pour le code ASCII donné.
substr(string, location, length)
Retourne la sous chaîne de la longueur length à la position location de la chaîne string donnée.

De plus, les commandes suivantes peuvent être utilisées :

duplicateClip(clip, name, depth)
Duplique la vidéo nommée clip (c'est-à-dire sprite). La nouvelle vidéo a le nom name et est à la profondeur depth.
removeClip(expr)
Efface la vidéo fournie.
trace(expr)
Écrit l'expression donnée dans l'historique des traces.
startDrag(target, lock, [left, top, right, bottom])
Démarre le déplacement de la vidéo target. L'argument lock indique si l'on verrouille la souris : utilisez 0 (FALSE) ou 1 (TRUE).
stopDrag()
Commence le déplacement.
callFrame(expr)
Appel la frame nommée, comme une fonction.
getURL(url, target, [method])
Charge l'URL donnée, dans la cible nommée. L'argument target correspond à la cible du document HTML (comme "_top" ou "_blank"). L'argument optionnel method peut être POST ou GET si vous voulez soumettre les variables au serveur.
loadMovie(url, target)
Charge l'URL donnée dans la cible nommée. L'argument target peut être le nom d'une frame, ou une des valeurs magiques : "_level0" (remplace la vidéo courante) ou "_level1" (charge la nouvelle vidéo au dessus de la vidéo courante).
nextFrame()
Se place sur la prochaine frame.
prevFrame()
Se place sur la dernière (ou, plutôt, précédente) frame.
play()
Commence à jouer la vidéo.
stop()
Arrête de jouer la vidéo.
toggleQuality()
Passe d'une qualité haute à basse, et inversement.
stopSounds()
Arrête de jouer tous les sons.
gotoFrame(num)
Se place sur la frame numéro num. Les numéros de frame commencent à 0.
gotoFrame(name)
Se place sur la frame nommée name.
setTarget(expr)
Définit le contexte de l'action.
L'expression frameLoaded(num) peut être utilisée dans les instructions if et les boucles while pour vérifier si le numéro de frame donné a déjà été chargé.

Les vidéos, c'est à dire des sprites, ont des propriétés. Vous pouvez les lire, en définir quelques unes. Voici la liste :

  • x
  • y
  • xScale
  • yScale
  • currentFrame : (lecture seule)
  • totalFrames : (lecture seule)
  • alpha : degré de transparence
  • visible : 1=on, 0=off
  • width : (lecture seule)
  • height : (lecture seule)
  • rotation
  • target : (lecture seule)
  • framesLoaded : (lecture seule)
  • name
  • dropTarget : (lecture seule)
  • url : (lecture seule)
  • highQuality : 1=high, 0=low
  • focusRect
  • soundBufTime
Donc, définir la position d'un sprite est aussi simple que /box.x = 100;. Pourquoi le slash au début ? C'est la façon dont Flash garde une trace des sprites dans une vidéo, tout comme le système de fichiers Unix : ici, la boite est au premier niveau. Si le sprite nommée "box" a un autre sprite nommé "biff" au dessous, vous pouvez définir sa position comme ceci : /box/biff.x = 100;


SWFAction->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFAction->__constructCrée un nouvel objet SWFAction

Description

SWFAction SWFAction::__construct ( string $script )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFAction et y compile le script fourni.

Liste de paramètres

script

Un ActionScript à associer avec l'objet SWFAction. Voir SWFAction pour plus de détails.


Sommaire



La classe SWFBitmap

Introduction

SWFBitmap.

Synopsis de la classe

SWFBitmap {
/* Méthodes */
SWFBitmap SWFBitmap::__construct ( mixed $file [, mixed $alphafile ] )
float getHeight ( void )
float getWidth ( void )
}

SWFBitmap->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFBitmap->__constructCharge un objet Bitmap

Description

SWFBitmap SWFBitmap::__construct ( mixed $file [, mixed $alphafile ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFBitmap depuis le fichier file.

Liste de paramètres

Pour les deux paramètres, vous pouvez fournir un pointeur de fichier retourné par la fonction fopen() ou les données de l'image, sous la forme d'une chaîne de caractères binaire.

file

Note:

Nous ne pouvons utiliser que des Jpeg "baseline" (image 0), et non des optimisés "baseline" ou des Jpeg progressifs !

Vous ne pouvez pas importer directement des Png, mais vous devez utiliser l'utilitaire png2dbl pour créer un fichier dbl ("define bits lossless") depuis le Png. La raison de cela est que nous ne voulons pas de dépendance sur la libraire Png dans Ming. Autoconf doit prendre en charge cela mais ne le fait actuellement pas.

alphafile

Un fichier MSK à utiliser en tant que masque Alpha pour les images Jpeg.

Exemples

Exemple #1 Importation d'un fichier DBL

<?php
$s 
= new SWFShape();
$f $s->addFill(new SWFBitmap(file_get_contents("image.dbl")));
$s->setRightFill($f);

$s->drawLine(320);
$s->drawLine(032);
$s->drawLine(-320);
$s->drawLine(0, -32);

$m = new SWFMovie();
$m->setDimension(3232);
$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Exemple #2 Utilisation d'un masque Alpha

<?php

$s 
= new SWFShape();

// fichier .msk généré avec l'utilitaire "gif2mask"
$f $s->addFill(new SWFBitmap(file_get_contents("alphafill.jpg"), file_get_contents("alphafill.msk")));
$s->setRightFill($f);

$s->drawLine(6400);
$s->drawLine(0480);
$s->drawLine(-6400);
$s->drawLine(0, -480);

$c = new SWFShape();
$c->setRightFill($c->addFill(0x990x990x99));
$c->drawLine(400);
$c->drawLine(040);
$c->drawLine(-400);
$c->drawLine(0, -40);

$m = new SWFMovie();
$m->setDimension(640480);
$m->setBackground(0xcc0xcc0xcc);

// dessine l'arrière plan
for ($y=0$y<480$y+=40) {
  for (
$x=0$x<640$x+=80) {
    
$i $m->add($c);
    
$i->moveTo($x$y);
  }

  
$y+=40;

  for (
$x=40$x<640$x+=80) {
    
$i $m->add($c);
    
$i->moveTo($x$y);
  }
}

$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFBitmap->getHeight

(PHP 4 >= 4.0.5)

SWFBitmap->getHeightRetourne la hauteur d'un bitmap

Description

float SWFBitmap::getHeight ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la hauteur d'un bitmap.

Valeurs de retour

Retourne la hauteur d'un bitmap en pixels.

Voir aussi



SWFBitmap->getWidth

(PHP 4 >= 4.0.5)

SWFBitmap->getWidthRetourne la largeur d'un bitmap

Description

float SWFBitmap::getWidth ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la largeur d'un bitmap.

Valeurs de retour

Retourne la largeur d'un bitmap, en pixels.


Sommaire



La classe SWFButton

Introduction

SWFButton.

Synopsis de la classe

SWFButton {
/* Méthodes */
void SWFButton::addAction ( SWFAction $action , int $flags )
SWFSoundInstance addASound ( SWFSound $sound , int $flags )
void addShape ( SWFShape $shape , int $flags )
SWFButton __construct ( void )
void setAction ( SWFAction $action )
void setDown ( SWFShape $shape )
void setHit ( SWFShape $shape )
void setMenu ( int $flag )
void setOver ( SWFShape $shape )
void setUp ( SWFShape $shape )
}

SWFButton->addAction

(PHP 4 >= 4.0.5)

SWFButton->addActionAjoute une action

Description

void SWFButton::addAction ( SWFAction $action , int $flags )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajout l'action fournie au bouton dans les conditions données.

Liste de paramètres

action

Un objet SWFAction, retourné par SWFAction->__construct.

flags

Les drapeaux flags suivants sont valides : SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT et SWFBUTTON_DRAGOVER.

Valeurs de retour

Aucune valeur n'est retournée.



SWFButton->addASound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton->addASoundAssocie un son à un bouton

Description

SWFSoundInstance SWFButton::addASound ( SWFSound $sound , int $flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFButton->addShape

(PHP 4 >= 4.0.5)

SWFButton->addShapeAjoute une forme à un bouton

Description

void SWFButton::addShape ( SWFShape $shape , int $flags )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute la forme shape fournie au bouton.

Liste de paramètres

shape

Une instance de l'objet SWFShape

flags

Les drapeaux flags suivants sont valides : SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN et SWFBUTTON_HIT.

SWFBUTTON_HIT n'est pas toujours affiché, il définit la région du bouton.

Valeurs de retour

Aucune valeur n'est retournée.



SWFButton->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton->__constructCrée un nouveau bouton

Description

SWFButton SWFButton::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouveau bouton.

Exemples

Cet exemple simple montre une interaction habituelle avec des boutons : "rollover", "rollon", "mouseup", "mousedown", "noaction".

Exemple #1 à habituelles avec les boutons

<?php

$f 
= new SWFFont("_serif");

$p = new SWFSprite();

function 
label($string
{
  global 
$f;

  
$t = new SWFTextField();
  
$t->setFont($f);
  
$t->addString($string);
  
$t->setHeight(200);
  
$t->setBounds(3200200);
  return 
$t;
}

function 
addLabel($string
{
  global 
$p;

  
$i $p->add(label($string));
  
$p->nextFrame();
  
$p->remove($i);
}

$p->add(new SWFAction("stop();"));
addLabel("NO ACTION");
addLabel("SWFBUTTON_MOUSEUP");
addLabel("SWFBUTTON_MOUSEDOWN");
addLabel("SWFBUTTON_MOUSEOVER");
addLabel("SWFBUTTON_MOUSEOUT");
addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
addLabel("SWFBUTTON_DRAGOVER");
addLabel("SWFBUTTON_DRAGOUT");

function 
rect($r$g$b
{
  
$s = new SWFShape();
  
$s->setRightFill($s->addFill($r$g$b));
  
$s->drawLine(6000);
  
$s->drawLine(0600);
  
$s->drawLine(-6000);
  
$s->drawLine(0, -600);

  return 
$s;
}

$b = new SWFButton();
$b->addShape(rect(0xff00), SWFBUTTON_UP SWFBUTTON_HIT);
$b->addShape(rect(00xff0), SWFBUTTON_OVER);
$b->addShape(rect(000xff), SWFBUTTON_DOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
          
SWFBUTTON_MOUSEUP);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
      
SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
      
SWFBUTTON_MOUSEOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
      
SWFBUTTON_MOUSEOUT);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
      
SWFBUTTON_MOUSEUPOUTSIDE);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
      
SWFBUTTON_DRAGOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
      
SWFBUTTON_DRAGOUT);

$m = new SWFMovie();
$m->setDimension(40003000);

$i $m->add($p);
$i->setName("label");
$i->moveTo(4001900);

$i $m->add($b);
$i->moveTo(400900);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Cet exemple simple vous permet d'afficher un gros bouton rouge dans la fenêtre. Pas de glisser / déposer, il bouge uniquement.

Exemple #2 Exemple de glisser

<?php

$s 
= new SWFShape();
$s->setRightFill($s->addFill(0xff00));
$s->drawLine(1000,0);
$s->drawLine(0,1000);
$s->drawLine(-1000,0);
$s->drawLine(0,-1000);

$b = new SWFButton();
$b->addShape($sSWFBUTTON_HIT SWFBUTTON_UP SWFBUTTON_DOWN SWFBUTTON_OVER);

$b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' signifie qu'il n'est pas verrouillé sur la souris
      
SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("stopDrag();"),
      
SWFBUTTON_MOUSEUP SWFBUTTON_MOUSEUPOUTSIDE);

$p = new SWFSprite();
$p->add($b);
$p->nextFrame();

$m = new SWFMovie();
$i $m->add($p);
$i->setName('test');
$i->moveTo(1000,1000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFButton->setAction

(PHP 4 >= 4.0.5)

SWFButton->setActionDéfinit l'action

Description

void SWFButton::setAction ( SWFAction $action )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit l'action à exécuter lorsque le bouton est cliqué.

C'est un raccourci pour SWFButton->addAction appelé avec le drapeau SWFBUTTON_MOUSEUP.

Liste de paramètres

action

Un objet SWFAction, retourné par SWFAction->__construct.

Valeurs de retour

Aucune valeur n'est retournée.



SWFButton->setDown

(PHP 4 >= 4.0.5)

SWFButton->setDownAlias pour addShape(shape, SWFBUTTON_DOWN)

Description

void SWFButton::setDown ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->setdown() est un alias pour addShape(shape, SWFBUTTON_DOWN).

Valeurs de retour

Aucune valeur n'est retournée.



SWFButton->setHit

(PHP 4 >= 4.0.5)

SWFButton->setHitAlias pour addShape(shape, SWFBUTTON_HIT)

Description

void SWFButton::setHit ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->sethit() est un alias pour addShape(shape, SWFBUTTON_HIT).

Valeurs de retour

Aucune valeur n'est retournée.



SWFButton->setMenu

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton->setMenuActive un menu sur un bouton

Description

void SWFButton::setMenu ( int $flag )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag

Ce paramètre peut être utilisé pour un comportement différent des boutons. Vous pouvez le définir à 0 (off) ou 1 (on).

Valeurs de retour

Aucune valeur n'est retournée.



SWFButton->setOver

(PHP 4 >= 4.0.5)

SWFButton->setOverAlias pour addShape(shape, SWFBUTTON_OVER)

Description

void SWFButton::setOver ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->setover() est un alias pour addShape(shape, SWFBUTTON_OVER).

Valeurs de retour

Aucune valeur n'est retournée.



SWFButton->setUp

(PHP 4 >= 4.0.5)

SWFButton->setUpAlias pour addShape(shape, SWFBUTTON_UP)

Description

void SWFButton::setUp ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->setup() est un alias pour addShape(shape, SWFBUTTON_UP).

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFDisplayItem

Introduction

SWFDisplayItem.

Synopsis de la classe

SWFDisplayItem {
/* Méthodes */
void SWFDisplayItem::addAction ( SWFAction $action , int $flags )
void addColor ( int $red , int $green , int $blue [, int $a ] )
void endMask ( void )
float getRot ( void )
float getX ( void )
float getXScale ( void )
float getXSkew ( void )
float getY ( void )
float getYScale ( void )
float getYSkew ( void )
void move ( float $dx , float $dy )
void moveTo ( float $x , float $y )
void multColor ( float $red , float $green , float $blue [, float $a ] )
void remove ( void )
void rotate ( float $angle )
void rotateTo ( float $angle )
void scale ( float $dx , float $dy )
void scaleTo ( float $x [, float $y ] )
void setDepth ( int $depth )
void setMaskLevel ( int $level )
void setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
void setName ( string $name )
void setRatio ( float $ratio )
void skewX ( float $ddegrees )
void skewXTo ( float $degrees )
void skewY ( float $ddegrees )
void skewYTo ( float $degrees )
}

SWFDisplayItem->addAction

(PHP 4 >= 4.2.0)

SWFDisplayItem->addActionAjoute ce SWFAction à l'instance SWFSprite fournie

Description

void SWFDisplayItem::addAction ( SWFAction $action , int $flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

action

Un SWFAction, retourné par SWFAction->__construct.

flags

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFDisplayItem->addColor

(PHP 4 >= 4.0.5)

SWFDisplayItem->addColorAjoute une couleur à la transformation de couleur de l'élément

Description

void SWFDisplayItem::addColor ( int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->addcolor() ajoute la couleur à la transformation de couleur de l'élément. La couleur est donnée sous la forme RVB.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->endMask

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->endMaskUne autre façon de définir une interface MASK

Description

void SWFDisplayItem::endMask ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->getRot

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->getRot

Description

float SWFDisplayItem::getRot ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFDisplayItem->getX

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->getX

Description

float SWFDisplayItem::getX ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFDisplayItem->getXScale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->getXScale

Description

float SWFDisplayItem::getXScale ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFDisplayItem->getXSkew

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->getXSkew

Description

float SWFDisplayItem::getXSkew ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFDisplayItem->getY

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->getY

Description

float SWFDisplayItem::getY ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFDisplayItem->getYScale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->getYScale

Description

float SWFDisplayItem::getYScale ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFDisplayItem->getYSkew

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->getYSkew

Description

float SWFDisplayItem::getYSkew ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFDisplayItem->move

(PHP 4 >= 4.0.5)

SWFDisplayItem->moveDéplace un objet dans les coordonnées relatives

Description

void SWFDisplayItem::move ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->move() déplace l'objet courant vers (dx,dy) depuis sa position courante.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->moveTo

(PHP 4 >= 4.0.5)

SWFDisplayItem->moveToDéplace un objet dans les coordonnées globales

Description

void SWFDisplayItem::moveTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->moveto() déplace l'objet courant vers (x,y) dans les coordonnées globales.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->multColor

(PHP 4 >= 4.0.5)

SWFDisplayItem->multColorMultiplie la transformation de couleur d'un élément

Description

void SWFDisplayItem::multColor ( float $red , float $green , float $blue [, float $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->multcolor() multiplie la transformation de couleur de l'élément par les valeurs données.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Liste de paramètres

Ces paramètres sont des nombres à virgule flottante, compris entre 0 et 1.0 :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

a

Valeur du composant alpha

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple simple modifie l'atmosphère de l'image en une version Halloween.

Exemple #1 Exemple avec swfdisplayitem->multcolor()

<?php

$b 
= new SWFBitmap(file_get_contents("backyard.jpg"));
// note : utilisez votre propre image :-)
$s = new SWFShape();
$s->setRightFill($s->addFill($b));
$s->drawLine($b->getWidth(), 0);
$s->drawLine(0$b->getHeight());
$s->drawLine(-$b->getWidth(), 0);
$s->drawLine(0, -$b->getHeight());

$m = new SWFMovie();
$m->setDimension($b->getWidth(), $b->getHeight());

$i $m->add($s);

for (
$n=0$n<=20; ++$n) {
  
$i->multColor(1.0-$n/101.01.0);
  
$i->addColor(0xff*$n/2000);
  
$m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFDisplayItem->remove

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->removeEfface l'objet du film

Description

void SWFDisplayItem::remove ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->remove() efface un objet de la liste d'affichage du film.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFDisplayItem->rotate

(PHP 4 >= 4.0.5)

SWFDisplayItem->rotateRotation, en coordonnées relatives

Description

void SWFDisplayItem::rotate ( float $angle )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->rotate() tourne l'objet curant d'un angle angle (en degrés).

Cet objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->rotateTo

(PHP 4 >= 4.0.5)

SWFDisplayItem->rotateToTourne l'objet dans les coordonnées globales

Description

void SWFDisplayItem::rotateTo ( float $angle )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->rotateto() définit la rotation de l'objet courant à angle degrés dans les coordonnées globales.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple effectue trois rotations de chaînes de caractères depuis l'arrière plan vers le premier plan.

Exemple #1 Exemple avec swfdisplayitem->rotateto()

<?php
$thetext 
=  "ming!";

$f = new SWFFont("Bauhaus 93.fdb");

$m = new SWFMovie();
$m->setRate(24.0);
$m->setDimension(24001600);
$m->setBackground(0xff0xff0xff);

// des fonctions avec beaucoup d'arguments arbitraires
// sont toujours de bonne idée ! vraiment !

function text($r$g$b$a$rot$x$y$scale$string
{
  global 
$f$m;

  
$t = new SWFText();
  
$t->setFont($f);
  
$t->setColor($r$g$b$a);
  
$t->setHeight(960);
  
$t->moveTo(-($f->getWidth($string))/2$f->getAscent()/2);
  
$t->addString($string);

  
// nous pouvons ajouter des propriétés comme une variable normal PHP,
  // tant que les noms ne sont pas déjà utilisés.
  // e.g., nous ne pouvons pas définir $i->scale, parce que c'est une fonction

  
$i $m->add($t);
  
$i->$x;
  
$i->$y;
  
$i->rot $rot;
  
$i->$scale;
  
$i->rotateTo($rot);
  
$i->scale($scale$scale);

  
// mais les modifications sont locales à la fonction, donc, nous devons
  // retourner l'objet original.

  
return $i;
}

function 
step($i
{
  
$oldrot $i->rot;
  
$i->rot 19*$i->rot/20;
  
$i->= (19*$i->1200)/20;
  
$i->= (19*$i->800)/20;
  
$i->= (19*$i->1.0)/20;

  
$i->rotateTo($i->rot);
  
$i->scaleTo($i->s$i->s);
  
$i->moveTo($i->x$i->y);

  return 
$i;
}

$i1 text(0xff0x330x330xff90012008000.03$thetext);
$i2 text(0x000x330xff0x7f, -56012008000.04$thetext);
$i3 text(0xff0xff0xff0x9f18012008000.001$thetext);

for (
$i=1$i<=100; ++$i) {
  
$i1 step($i1);
  
$i2 step($i2);
  
$i3 step($i3);

  
$m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFDisplayItem->scale

(PHP 4 >= 4.0.5)

SWFDisplayItem->scaleMet à l'échelle l'objet dans des coordonnées relatives

Description

void SWFDisplayItem::scale ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->scale() met à l'échelle l'objet courant par (dx,dy) depuis sa taille courante.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->scaleTo

(PHP 4 >= 4.0.5)

SWFDisplayItem->scaleToMet à l'échelle l'objet dans les coordonnées globales

Description

void SWFDisplayItem::scaleTo ( float $x [, float $y ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->scaleto() met à l'échelle l'objet courant à (x,y) dans les coordonnées globales.

Cet objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->setDepth

(PHP 4 >= 4.0.5)

SWFDisplayItem->setDepthDéfinit le z-order

Description

void SWFDisplayItem::setDepth ( int $depth )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->setdepth() définit l'objet z-order à depth.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->setMaskLevel

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem->setMaskLevelDéfinit le niveau de l'interface MASK

Description

void SWFDisplayItem::setMaskLevel ( int $level )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->setMatrix

(PHP 4 >= 4.0.5)

SWFDisplayItem->setMatrixDéfinit la matrice de transformation de l'élément

Description

void SWFDisplayItem::setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->setName

(PHP 4 >= 4.0.5)

SWFDisplayItem->setNameDéfinit le nom de l'objet

Description

void SWFDisplayItem::setName ( string $name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->setname() définit le nom de l'objet à name, afin qu'il soit identifiable par un script d'action.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté par la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->setRatio

(PHP 4 >= 4.0.5)

SWFDisplayItem->setRatioDéfinit le ratio de l'objet

Description

void SWFDisplayItem::setRatio ( float $ratio )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->setratio() définit le ratio de l'objet à ratio.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté à la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple simple va transformer trois cercles concentrés.

Exemple #1 Exemple avec swfdisplayitem->setname()

<?php

$p 
= new SWFMorph();

$g = new SWFGradient();
$g->addEntry(0.0000);
$g->addEntry(0.160xff0xff0xff);
$g->addEntry(0.32000);
$g->addEntry(0.480xff0xff0xff);
$g->addEntry(0.64000);
$g->addEntry(0.800xff0xff0xff);
$g->addEntry(1.00000);

$s $p->getShape1();
$f $s->addFill($gSWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(3200);
$s->drawLine(0240);
$s->drawLine(-3200);
$s->drawLine(0, -240);

$g = new SWFGradient();
$g->addEntry(0.0000);
$g->addEntry(0.160xff00);
$g->addEntry(0.32000);
$g->addEntry(0.4800xff0);
$g->addEntry(0.64000);
$g->addEntry(0.80000xff);
$g->addEntry(1.00000);

$s $p->getShape2();
$f $s->addFill($gSWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$f->skewXTo(1.0);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(3200);
$s->drawLine(0240);
$s->drawLine(-3200);
$s->drawLine(0, -240);

$m = new SWFMovie();
$m->setDimension(320240);
$i $m->add($p);
$i->moveTo(160120);

for (
$n=0$n<=1.001$n+=0.01) {
    
$i->setRatio($n);
    
$m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFDisplayItem->skewX

(PHP 4 >= 4.0.5)

SWFDisplayItem->skewXDéfinit le X-skew

Description

void SWFDisplayItem::skewX ( float $ddegrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewx() ajoute ddegrees au x-skew courant.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->skewXTo

(PHP 4 >= 4.0.5)

SWFDisplayItem->skewXToDéfinit le X-skew

Description

void SWFDisplayItem::skewXTo ( float $degrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewxto() définit le x-skew à degrees.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->skewY

(PHP 4 >= 4.0.5)

SWFDisplayItem->skewYDéfinit le Y-skew

Description

void SWFDisplayItem::skewY ( float $ddegrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewy() ajoute ddegrees au y-skew courant.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté en utilisant la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.



SWFDisplayItem->skewYTo

(PHP 4 >= 4.0.5)

SWFDisplayItem->skewYToDéfinit le Y-skew

Description

void SWFDisplayItem::skewYTo ( float $degrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewyto() définit le y-skew à degrees. Pour une valeur de degrees à 1.0, cela signifie que la vue est pivoté de 45 degrés.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté en utilisant la fonction swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFFill

Introduction

L'objet SWFFill vous permet de transformer (mise à l'échelle, skew, rotation) un bitmap et des formes gradient.

Les objets swffill sont créés par la méthode SWFShape->addFill.

Synopsis de la classe

SWFFill {
/* Méthodes */
void SWFFill::moveTo ( float $x , float $y )
void rotateTo ( float $angle )
void scaleTo ( float $x [, float $y ] )
void skewXTo ( float $x )
void skewYTo ( float $y )
}

SWFFill->moveTo

(PHP 4 >= 4.0.5)

SWFFill->moveToDéplace le motif original

Description

void SWFFill::moveTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Déplace le motif original aux coordonnées globales données.

Liste de paramètres

x

Coordonnée en X

y

Coordonnée en Y

Valeurs de retour

Aucune valeur n'est retournée.



SWFFill->rotateTo

(PHP 4 >= 4.0.5)

SWFFill->rotateToDéfinit la rotation du motif

Description

void SWFFill::rotateTo ( float $angle )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit la rotation du motif à l'angle donné.

Liste de paramètres

angle

L'angle de rotation, en degrés.

Valeurs de retour

Aucune valeur n'est retournée.



SWFFill->scaleTo

(PHP 4 >= 4.0.5)

SWFFill->scaleToDéfinit l'échelle du motif

Description

void SWFFill::scaleTo ( float $x [, float $y ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit l'échelle du motif aux coordonnées données.

Liste de paramètres

x

Coordonnée en X

y

Coordonnée en Y

Valeurs de retour

Aucune valeur n'est retournée.



SWFFill->skewXTo

(PHP 4 >= 4.0.5)

SWFFill->skewXToDéfinit le motif x-skew

Description

void SWFFill::skewXTo ( float $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le motif x-skew à x.

Liste de paramètres

x

Lorsque x vaut 1.0, ce sera une progression de 45 degrés en arrière. Une valeur supérieure sera une progression en avant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFFill->skewYTo

(PHP 4 >= 4.0.5)

SWFFill->skewYToDéfinit le motif y-skew

Description

void SWFFill::skewYTo ( float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le motif y-skew à y.

Liste de paramètres

y

Lorsque y vaut 1.0, ce sera une progression de 45 degrés en arrière. Une valeur supérieure sera une progression en avant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi


Sommaire



La classe SWFFont

Introduction

L'objet SWFFont représente une référence vers la définition de la police, pour une utilisation avec SWFText->setFont et SWFTextField->setFont.

Synopsis de la classe

SWFFont {
/* Méthodes */
SWFFont SWFFont::__construct ( string $filename )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
string getShape ( int $code )
float getUTF8Width ( string $string )
float getWidth ( string $string )
}

SWFFont->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont->__constructCharge la définition d'une police

Description

SWFFont SWFFont::__construct ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Si filename est le nom d'un fichier FDB (i.e., se terminant par l'extension ".fdb"), la fonction chargera la définition depuis ce fichier. Sinon, elle crée une référence de police.

FDB ("font definition block") est une interface simple pour le bloc SWF DefineFont2 qui contient une description complète d'une police. Une telle description peut être créée avec les fichiers de gabarit SWT Generator avec l'utilitaire inclus makefdb : regardez dans le dossier des utilitaires de votre distribution de Ming.

Les polices définies par le navigateur ne contiennent pas d'informations sur les polices autres que leurs noms. Il est convenu que la définition de la police est fournie par le lecteur vidéo. Les polices _serif, _sans, et _typewriter doivent toujours être disponibles. Par exemple :

<?php
$f 
newSWFFont("_sans"); 
?>
vous donnera la police sans-serif standard, probablement la même que <font name="sans-serif"> en HTML.



SWFFont->getAscent

(PHP 4 >= 4.0.5)

SWFFont->getAscentRetourne la montée de la police, ou 0 si non disponible

Description

float SWFFont::getAscent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFFont->getDescent

(PHP 4 >= 4.0.5)

SWFFont->getDescentRetourne la descente de la police, ou 0 si non disponible

Description

float SWFFont::getDescent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFFont->getLeading

(PHP 4 >= 4.0.5)

SWFFont->getLeadingRetourne l'interlignage de la police, ou 0 si non disponible

Description

float SWFFont::getLeading ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFFont->getShape

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont->getShapeRetourne la forme du glyphe d'un caractère, sous la forme d'une chaîne de caractères

Description

string SWFFont::getShape ( int $code )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFFont->getUTF8Width

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont->getUTF8WidthCalcule la largeur d'une chaîne donnée dans une police

Description

float SWFFont::getUTF8Width ( string $string )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFFont->getWidth

(PHP 4 >= 4.0.5)

SWFFont->getWidthRetourne la largeur de la chaîne

Description

float SWFFont::getWidth ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swffont->getwidth() retourne la largeur de la chaîne string, en utilisant la police par défaut. Vous devriez probablement utiliser la version swftext() de cette méthode qui utilise l'échelle du texte de l'objet.


Sommaire



La classe SWFFontChar

Introduction

SWFFontChar.

Synopsis de la classe

SWFFontChar {
/* Méthodes */
void SWFFontChar::addChars ( string $char )
void addUTF8Chars ( string $char )
}

SWFFontChar->addChars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFontChar->addCharsAjoute des caractères à une police pour l'exportation de la police

Description

void SWFFontChar::addChars ( string $char )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFFontChar->addUTF8Chars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFontChar->addUTF8CharsAjoute des caractères à une police pour l'exportation de la police

Description

void SWFFontChar::addUTF8Chars ( string $char )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFGradient

Introduction

SWFGradient.

Synopsis de la classe

SWFGradient {
/* Méthodes */
void SWFGradient::addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] )
SWFGradient __construct ( void )
}

SWFGradient->addEntry

(PHP 4 >= 4.3.0)

SWFGradient->addEntryAjoute une entrée dans la liste de gradient

Description

void SWFGradient::addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfgradient->addentry() ajoute une entrée dans la liste de gradient. ratio est un nombre compris entre 0 et 1, indiquant l'endroit dans le gradient cette couleur apparaît.

red, green, blue est une couleur (en mode RVB). Le dernier paramètre a est optionnel.

Valeurs de retour

Aucune valeur n'est retournée.



SWFGradient->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFGradient->__constructCrée un objet gradient

Description

SWFGradient SWFGradient::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfgradient() crée un nouvel objet SWFGradient.

Après avoir ajouter des entrées à votre gradient, vous pouvez utiliser le gradient dans une forme avec la méthode swfshape->addfill().

SWFGradient a les méthodes suivantes : swfgradient->addentry().

Cet exemple simple trace un gradient noir et blanc, en arrière plan et un disque au centre.

Exemple #1 Exemple avec swfgradient()

<?php

  $m 
= new SWFMovie();
  
$m->setDimension(320240);

  
$s = new SWFShape();

  
// premier gradient - noir vers blanc
  
$g = new SWFGradient();
  
$g->addEntry(0.0000);
  
$g->addEntry(1.00xff0xff0xff);

  
$f $s->addFill($gSWFFILL_LINEAR_GRADIENT);
  
$f->scaleTo(0.01);
  
$f->moveTo(160120);
  
$s->setRightFill($f);
  
$s->drawLine(3200);
  
$s->drawLine(0240);
  
$s->drawLine(-3200);
  
$s->drawLine(0, -240);

  
$m->add($s);

  
$s = new SWFShape();

  
// second gradient - gradient radial, depuis le rouge vers transparent
  
$g = new SWFGradient();
  
$g->addEntry(0.00xff000xff);
  
$g->addEntry(1.00xff000);

  
$f $s->addFill($gSWFFILL_RADIAL_GRADIENT);
  
$f->scaleTo(0.005);
  
$f->moveTo(160120);
  
$s->setRightFill($f);
  
$s->drawLine(3200);
  
$s->drawLine(0240);
  
$s->drawLine(-3200);
  
$s->drawLine(0, -240);

  
$m->add($s);

  
header('Content-type: application/x-shockwave-flash');
  
$m->output();
?>


Sommaire



La classe SWFMorph

Introduction

Ces méthodes ici sont triées étrangement. Il semblerait plus logique d'avoir juste l'objet newSWFMorph (shape1, shape2) ; mais actuellement, shape2 doivent savoir que c'est la deuxième partie d'un morphing. (Ainsi, parce qu'il commence à afficher dès qu'il obtiendra des commandes de dessin - s'il gardait sa propre description de ses formes et écrivait au fur et à mesure, ce serait beaucoup plus facile.).

Synopsis de la classe

SWFMorph {
/* Méthodes */
SWFMorph SWFMorph::__construct ( void )
SWFShape getShape1 ( void )
SWFShape getShape2 ( void )
}

SWFMorph->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMorph->__constructCrée un nouvel objet SWFMorph

Description

SWFMorph SWFMorph::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFMorph.

Également appelé "shape tween".

Exemples

Cet exemple simple va effectuer un morphing d'un gros carré rouge vers un petit carré bleu avec une bordure noire.

Exemple #1 Exemple avec swfmorph()

<?php
  $p 
= new SWFMorph();

  
$s $p->getShape1();
  
$s->setLine(0000);

  
$s->setLeftFill($s->addFill(0xff00));
  
$s->movePenTo(-1000,-1000);
  
$s->drawLine(2000,0);
  
$s->drawLine(0,2000);
  
$s->drawLine(-2000,0);
  
$s->drawLine(0,-2000);

  
$s $p->getShape2();
  
$s->setLine(60,0,0,0);
  
$s->setLeftFill($s->addFill(000xff));
  
$s->movePenTo(0,-1000);
  
$s->drawLine(1000,1000);
  
$s->drawLine(-1000,1000);
  
$s->drawLine(-1000,-1000);
  
$s->drawLine(1000,-1000);

  
$m = new SWFMovie();
  
$m->setDimension(3000,2000);
  
$m->setBackground(0xff0xff0xff);

  
$i $m->add($p);
  
$i->moveTo(1500,1000);

  for (
$r=0.0$r<=1.0$r+=0.1) {
    
$i->setRatio($r);
    
$m->nextFrame();
  }

  
header('Content-type: application/x-shockwave-flash');
  
$m->output();
?>



SWFMorph->getShape1

(PHP 4 >= 4.0.5)

SWFMorph->getShape1Récupère un gestionnaire pour une forme

Description

SWFShape SWFMorph::getShape1 ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la forme de départ pour un morphing.

Valeurs de retour

Retourne un objet SWFShape.

Voir aussi



SWFMorph->getShape2

(PHP 4 >= 4.0.5)

SWFMorph->getShape2Récupère un gestionnaire de forme de fin

Description

SWFShape SWFMorph::getShape2 ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la forme de fin d'un morphing.

Valeurs de retour

Retourne un objet SWFShape.

Voir aussi


Sommaire



La classe SWFMovie

Introduction

SWFMovie est un objet vidéo représentant la vidéo SWF.

Synopsis de la classe

SWFMovie {
/* Méthodes */
mixed SWFMovie::add ( object $instance )
void addExport ( SWFCharacter $char , string $name )
mixed addFont ( SWFFont $font )
SWFMovie __construct ([ int $version ] )
SWFSprite importChar ( string $libswf , string $name )
SWFFontChar importFont ( string $libswf , string $name )
void labelFrame ( string $label )
void nextFrame ( void )
int output ([ int $compression ] )
void remove ( object $instance )
int save ( string $filename [, int $compression = -1 ] )
int saveToFile ( resource $x [, int $compression = -1 ] )
void setbackground ( int $red , int $green , int $blue )
void setDimension ( float $width , float $height )
void setFrames ( int $number )
void setRate ( float $rate )
SWFSoundInstance startSound ( SWFSound $sound )
void stopSound ( SWFSound $sound )
int streamMP3 ( mixed $mp3file [, float $skip = 0 ] )
void writeExports ( void )
}

SWFMovie->add

(PHP 4 >= 4.3.3)

SWFMovie->addAjoute n'importe quelle donnée à une vidéo

Description

mixed SWFMovie::add ( object $instance )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un objet SWF à la vidéo courante.

Liste de paramètres

instance

N'importe quelle type d'objet, comme SWFShape, SWFText, SWFFont.

Valeurs de retour

Pour les types affichables (forme, texte, bouton, sprite), cette fonction retourne un SWFDisplayItem, un gestionnaire de l'objet dans une liste d'affichage. Ainsi, vous pouvez ajouter la même forme dans la vidéo plusieurs fois et récupère séparément un gestionnaire pour chacun.

Voir aussi



SWFMovie->addExport

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->addExport

Description

void SWFMovie::addExport ( SWFCharacter $char , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->addFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->addFont

Description

mixed SWFMovie::addFont ( SWFFont $font )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->__constructCrée un nouvel objet vidéo, représentant une vidéo SWF version 4

Description

SWFMovie SWFMovie::__construct ([ int $version ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet vidéo, représentant une vidéo SWF.

Liste de paramètres

version

La version SWF désirée. Par défaut, 4.



SWFMovie->importChar

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->importChar

Description

SWFSprite SWFMovie::importChar ( string $libswf , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFMovie->importFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->importFont

Description

SWFFontChar SWFMovie::importFont ( string $libswf , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFMovie->labelFrame

(PHP 4 >= 4.3.3)

SWFMovie->labelFrameNomme une frame

Description

void SWFMovie::labelFrame ( string $label )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->nextFrame

(PHP 4 >= 4.3.3)

SWFMovie->nextFrameSe déplace sur la prochaine frame d'une animation

Description

void SWFMovie::nextFrame ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Se déplace sur la prochaine frame d'une animation.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->output

(PHP 4 >= 4.3.3)

SWFMovie->outputAffiche la vidéo

Description

int SWFMovie::output ([ int $compression ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Affiche la vidéo SWFMovie.

N'oubliez pas d'envoyer l'en-tête HTTP Content-Type avant d'utiliser cette fonction afin d'afficher la vidéo dans le navigateur.

Liste de paramètres

compression

Le degré de compression peut être une valeur comprise entre 0 et 9, définissant la compression SWF, similaire à la compression Gzip.

Ce paramètre n'est disponible que depuis Flash MX (6).

Valeurs de retour

Retourne le nombre d'octets écrits, ou FALSE si une erreur survient.

Exemples

Exemple #1 Affiche la vidéo dans un navigateur

<?php
header
('Content-type: application/x-shockwave-flash');
$movie->output();
?>



SWFMovie->remove

(PHP 5.2.1-5.3.0, PECL ming SVN)

SWFMovie->removeEfface une instance d'un objet depuis la liste d'affichage

Description

void SWFMovie::remove ( object $instance )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface l'objet instance fourni depuis la liste d'affichage.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFMovie->save

(PHP 4 >= 4.3.3)

SWFMovie->saveSauvegarde la vidéo SWF dans un fichier

Description

int SWFMovie::save ( string $filename [, int $compression = -1 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauvegarde la vidéo SWF dans le fichier filename.

Liste de paramètres

filename

Le chemin vers le document SWF.

compression

Le degré de compression peut être une valeur comprise entre 0 et 9, définissant la compression SWF, similaire à la compression Gzip.

Ce paramètre n'est disponible que depuis Flash MX (6).

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.



SWFMovie->saveToFile

(PHP 4 >= 4.3.3)

SWFMovie->saveToFile

Description

int SWFMovie::saveToFile ( resource $x [, int $compression = -1 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

X

compression

Le degré de compression peut être une valeur comprise entre 0 et 9, définissant la compression SWF, similaire à la compression Gzip.

Ce paramètre n'est disponible que depuis Flash MX (6).

Valeurs de retour

Retourne le nombre d'octets écrits, ou FALSE si une erreur survient.



SWFMovie->setbackground

(PHP 4 >= 4.3.3)

SWFMovie->setbackgroundDéfinit la couleur d'arrière plan

Description

void SWFMovie::setbackground ( int $red , int $green , int $blue )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit la couleur d'arrière plan.

Pourquoi pas un version rgba ? Avec cette version, vous pourriez vouloir afficher l'arrière plan HTML. Il y a une façon de faire cela mais cela ne fonctionne que sous IE4. Faites une recherche sur le site de » http://www.macromedia.com/ pour plus de détails.

Liste de paramètres

Ces paramètres sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->setDimension

(PHP 4 >= 4.3.3)

SWFMovie->setDimensionDéfinit les dimensions de la vidéo

Description

void SWFMovie::setDimension ( float $width , float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit les dimensions de la vidéo en spécifiant la largeur width et la hauteur height.

Liste de paramètres

width

La largeur de la vidéo.

height

La hauteur de la vidéo.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->setFrames

(PHP 4 >= 4.3.3)

SWFMovie->setFramesDéfinit le nombre de frames dans l'animation

Description

void SWFMovie::setFrames ( int $number )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le nombre total de frames dans l'animation à number.

Liste de paramètres

number

Le nombre de frames.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->setRate

(PHP 4 >= 4.3.3)

SWFMovie->setRateDéfinit le débit des frames de l'animation

Description

void SWFMovie::setRate ( float $rate )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le débit des frames de l'animation à rate.

L'animation peut ralentir si le lecteur ne peut pas rendre les frames assez rapidement - si un son est diffusé dans l'animation, les frames seront sacrifiés en faveur du son.

Liste de paramètres

rate

Le débit, en frame par secondes.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->startSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->startSound

Description

SWFSoundInstance SWFMovie::startSound ( SWFSound $sound )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFMovie->stopSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->stopSound

Description

void SWFMovie::stopSound ( SWFSound $sound )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFMovie->streamMP3

(PHP 4 >= 4.3.3)

SWFMovie->streamMP3Diffuse un fichier MP3

Description

int SWFMovie::streamMP3 ( mixed $mp3file [, float $skip = 0 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Diffuse le fichier MP3 mp3file fourni.

Cette méthode n'est pas vraiment robuste lors de la gestion des bizarreries (peut ignorer un tag ID3 initial, mais c'est bien tout).

Notez que le film n'est pas assez compact pour contenir le flux MP3 en entier - vous devez ajouter (longueur de la musique * frames par seconde) frames pour y récupérer le flux complet.

Liste de paramètres

mp3file

Peut être un pointeur de fichier retourné par la fonction fopen() ou les données MP3, sous la forme d'une chaîne binaire.

skip

Nombre de secondes à ignorer.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
5.2.0 Le paramètre skip a été ajouté

Exemples

Exemple #1 Exemple de diffusion

<?php
$m 
= new SWFMovie();
$m->setRate(12.0);
$m->streamMp3(file_get_contents("distortobass.mp3"));
// utilisez votre propre MP3

// La durée du fichier est 11.85 secondes à 12.0 fps = 142 frames
$m->setFrames(142);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFMovie->writeExports

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie->writeExports

Description

void SWFMovie::writeExports ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFPrebuiltClip

Introduction

SWFPrebuiltClip.

Synopsis de la classe

SWFPrebuiltClip {
/* Méthodes */
SWFPrebuiltClip SWFPrebuiltClip::__construct ( mixed $file )
}

SWFPrebuiltClip->__construct

(PHP 5.0.5-5.3.0, PECL ming SVN)

SWFPrebuiltClip->__constructRetourne un objet SWFPrebuiltClip

Description

SWFPrebuiltClip SWFPrebuiltClip::__construct ( mixed $file )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire



La classe SWFShape

Introduction

SWFShape.

Synopsis de la classe

SWFShape {
/* Méthodes */
SWFFill SWFShape::addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] )
SWFShape __construct ( void )
void drawArc ( float $r , float $startAngle , float $endAngle )
void drawCircle ( float $r )
int drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
int drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
void drawGlyph ( SWFFont $font , string $character [, int $size ] )
void drawLine ( float $dx , float $dy )
void drawLineTo ( float $x , float $y )
void movePen ( float $dx , float $dy )
void movePenTo ( float $x , float $y )
void setLeftFill ( SWFGradient $fill )
void setLine ( SWFShape $shape )
void setRightFill ( SWFGradient $fill )
}

SWFShape->addFill

(PHP 4 >= 4.0.5)

SWFShape->addFillAjoute un motif solide à la forme

Description

SWFFill SWFShape::addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] )
SWFFill addFill ( SWFBitmap $bitmap [, int $flags ] )
SWFFill addFill ( SWFGradient $gradient [, int $flags ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

SWFShape->addFill() ajoute un motif solide à la liste des styles de la forme. SWFShape->addFill() accepte trois types différents d'arguments.

red, green, blue est une couleur (en mode RVB). Le dernier paramètre a est optionnel.

L'argument bitmap est un objet SWFBitmap(). L'argument flags peut être une valeur parmi : SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT ou SWFFILL_RADIAL_GRADIENT. Par défaut, vaut SWFFILL_TILED_BITMAP pour SWFBitmap et SWFFILL_LINEAR_GRADIENT pour SWFGradient.

L'argument gradient est un objet SWFGradient(). L'argument flags peut être une valeur parmi : SWFFILL_RADIAL_GRADIENT ou SWFFILL_LINEAR_GRADIENT. Par défaut, vaut SWFFILL_LINEAR_GRADIENT.

SWFShape->addFill() retourne un objet SWFFill() pour l'utiliser avec la fonction SWFShape->setLeftFill() et la fonction SWFShape->setRightFill().

Exemples

Cet exemple trace une frame dans un bitmap.

Exemple #1 Exemple avec SWFShape->addFill()

<?php

$p 
= new SWFMorph();

$b = new SWFBitmap(file_get_contents("alphafill.jpg"));
// utilisez votre propre bitmap
$width $b->getWidth();
$height $b->getHeight();

$s $p->getShape1();
$f $s->addFill($bSWFFILL_TILED_BITMAP);
$f->moveTo(-$width/2, -$height/4);
$f->scaleTo(1.00.5);
$s->setLeftFill($f);
$s->movePenTo(-$width/2, -$height/4);
$s->drawLine($width0);
$s->drawLine(0$height/2);
$s->drawLine(-$width0);
$s->drawLine(0, -$height/2);

$s $p->getShape2();
$f $s->addFill($bSWFFILL_TILED_BITMAP);

// Ceci n'a pas d'effet !
$f->moveTo(-$width/4, -$height/2);
$f->scaleTo(0.51.0);

$s->setLeftFill($f);
$s->movePenTo(-$width/4, -$height/2);
$s->drawLine($width/20);
$s->drawLine(0$height);
$s->drawLine(-$width/20);
$s->drawLine(0, -$height);

$m = new SWFMovie();
$m->setDimension($width$height);
$i $m->add($p);
$i->moveTo($width/2$height/2);

for (
$n=0$n<1.001$n+=0.03) {
    
$i->setRatio($n);
    
$m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFShape->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape->__constructCrée un nouvel objet SWFShape

Description

SWFShape SWFShape::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFShape.

Exemples

Cet exemple trace une ellipse, en rouge.

Exemple #1 Exemple avec swfshape()

<?php
$s 
= new SWFShape();
$s->setLine(400x7f00);
$s->setRightFill($s->addFill(0xff00));
$s->movePenTo(200200);
$s->drawLineTo(6200200);
$s->drawLineTo(62004600);
$s->drawCurveTo(2004600200200);

$m = new SWFMovie();
$m->setDimension(64004800);
$m->setRate(12.0);
$m->add($s);
$m->nextFrame();

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFShape->drawArc

(PHP 4 >= 4.0.5)

SWFShape->drawArcTrace un arc de cercle entre deux angles

Description

void SWFShape::drawArc ( float $r , float $startAngle , float $endAngle )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFShape->drawCircle

(PHP 4 >= 4.0.5)

SWFShape->drawCircleTrace un cercle, centré sur la position courante

Description

void SWFShape::drawCircle ( float $r )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFShape->drawCubic

(PHP 4 >= 4.0.5)

SWFShape->drawCubicTrace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

Description

int SWFShape::drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFShape->drawCubicTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape->drawCubicToTrace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

Description

int SWFShape::drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFShape->drawCurve

(PHP 4 >= 4.0.5)

SWFShape->drawCurveTrace une courbe (relative)

Description

int SWFShape::drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->drawcurve() trace une courbe (en utilisant le style de la ligne courante, défini par la fonction swfshape->setline()) depuis la position courante du stylo vers la position relative (anchorx, anchory) en utilisant le point de contrôle relatif (controlx,controly).

Avec 6 paramètres, elle dessine une courbe de Bézier vers le point (x+targetdx, x+targetdy) avec les points de contrôle (x+controldx, y+controldy) et (x+anchordx, y+anchordy).

Voir aussi



SWFShape->drawCurveTo

(PHP 4 >= 4.0.5)

SWFShape->drawCurveToTrace une courbe

Description

int SWFShape::drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->drawcurveto() trace une courbe (en utilisant le style de la ligne courante, défini par la fonction swfshape->setline()) depuis la position courante du stylo vers (anchorx,anchory) en utilisant le point de contrôle (controlx,controly).

Avec 6 paramètres, elle trace une courbe de Bézier vers le point (targetx, targety) avec les points de contrôle (controlx, controly) et (anchorx, anchory).



SWFShape->drawGlyph

(PHP 4 >= 4.0.5)

SWFShape->drawGlyphDessine le premier caractère d'une chaîne donnée dans la forme en utilisant la définition du glyphe pour la police donnée

Description

void SWFShape::drawGlyph ( SWFFont $font , string $character [, int $size ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFShape->drawLine

(PHP 4 >= 4.0.5)

SWFShape->drawLineTrace une ligne (relative)

Description

void SWFShape::drawLine ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->drawline() trace une ligne (en utilisant le style de la ligne courante défini par la fonction swfshape->setline()) depuis sa position courante vers (dx,dy).

Valeurs de retour

Aucune valeur n'est retournée.



SWFShape->drawLineTo

(PHP 4 >= 4.0.5)

SWFShape->drawLineToTrace une ligne

Description

void SWFShape::drawLineTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setrightfill() trace une ligne (en utilisant le style de la ligne courante, défini par la fonction swfshape->setline()) depuis la position courante du stylo vers le point (x,y) dans l'espace de coordonnées de la forme.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFShape->movePen

(PHP 4 >= 4.0.5)

SWFShape->movePenDéplace le stylo

Description

void SWFShape::movePen ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setrightfill() déplace le stylo depuis les coordonnées courantes vers (x courant + dx, y courant + dy) dans l'espace de coordonnées de la forme.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFShape->movePenTo

(PHP 4 >= 4.0.5)

SWFShape->movePenToDéplace le stylo dans la forme

Description

void SWFShape::movePenTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setrightfill() déplace le stylo vers (x,y) dans l'espace de coordonnées de la forme.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFShape->setLeftFill

(PHP 4 >= 4.0.5)

SWFShape->setLeftFillDéfinit la couleur de la trame de gauche

Description

void SWFShape::setLeftFill ( SWFGradient $fill )
void setLeftFill ( int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette fonction est utile pour savoir quelle trame est au premier plan.

swfshape->setleftfill() définit la couleur de la trame de gauche. L'objet fill est un objet SWFFill retourné par une des fonctions addFill.

Ceci semble être inversé lorsque vous définissez une forme dans un morph. Si votre navigateur plante, tentez de définir le motif sur un autre côté.

Raccourci pour swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

Valeurs de retour

Aucune valeur n'est retournée.



SWFShape->setLine

(PHP 4 >= 4.0.5)

SWFShape->setLineDéfinit le style de la forme d'une ligne

Description

void SWFShape::setLine ( SWFShape $shape )
void setLine ( int $width , int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setline() définit le style de la forme d'une ligne. width est l'épaisseur de la ligne. Si width vaut 0, le style de la ligne est effacé (alors, tous les autres arguments sont ignorés). Si width est supérieur à 0, alors la couleur de la ligne est définie à red, green, blue. Le dernier paramètre, a, est optionnel.

Vous devez déclarer tous les styles de ligne avant de les utiliser (voir l'exemple).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple simple va dessiner un gros "!#%*@".

Exemple #1 Exemple avec swfshape->setline()

<?php
$s 
= new SWFShape();
$f1 $s->addFill(0xff00);
$f2 $s->addFill(0xff0x7f0);
$f3 $s->addFill(0xff0xff0);
$f4 $s->addFill(00xff0);
$f5 $s->addFill(000xff);

// bogue : nous devons déclarer tous les styles de ligne avant de les utiliser
$s->setLine(400x7f00);
$s->setLine(400x7f0x3f0);
$s->setLine(400x7f0x7f0);
$s->setLine(4000x7f0);
$s->setLine(40000x7f);

$f = new SWFFont('Techno.fdb');

$s->setRightFill($f1);
$s->setLine(400x7f00);
$s->drawGlyph($f'!');
$s->movePen($f->getWidth('!'), 0);

$s->setRightFill($f2);
$s->setLine(400x7f0x3f0);
$s->drawGlyph($f'#');
$s->movePen($f->getWidth('#'), 0);

$s->setRightFill($f3);
$s->setLine(400x7f0x7f0);
$s->drawGlyph($f'%');
$s->movePen($f->getWidth('%'), 0);

$s->setRightFill($f4);
$s->setLine(4000x7f0);
$s->drawGlyph($f'*');
$s->movePen($f->getWidth('*'), 0);

$s->setRightFill($f5);
$s->setLine(40000x7f);
$s->drawGlyph($f'@');

$m = new SWFMovie();
$m->setDimension(3000,2000);
$m->setRate(12.0);
$i $m->add($s);
$i->moveTo(1500-$f->getWidth("!#%*@")/21000+$f->getAscent()/2);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Valeurs de retour

Aucune valeur n'est retournée.



SWFShape->setRightFill

(PHP 4 >= 4.0.5)

SWFShape->setRightFillDéfinit la couleur de la trame de droite

Description

void SWFShape::setRightFill ( SWFGradient $fill )
void setRightFill ( int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Raccourci pour swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFSound

Introduction

SWFSound.

Synopsis de la classe

SWFSound {
/* Méthodes */
SWFSound SWFSound::__construct ( string $filename [, int $flags = 0 ] )
}

SWFSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundRetourne un nouvel objet SWFSound depuis un fichier donné

Description

SWFSound SWFSound::__construct ( string $filename [, int $flags = 0 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire

  • SWFSound — Retourne un nouvel objet SWFSound depuis un fichier donné


La classe SWFSoundInstance

Introduction

Les objets SWFSoundInstance sont retournés par les méthodes SWFSprite->startSound et SWFMovie->startSound.

Synopsis de la classe

SWFSoundInstance {
/* Méthodes */
void SWFSoundInstance::loopCount ( int $point )
void loopInPoint ( int $point )
void loopOutPoint ( int $point )
void noMultiple ( void )
}

SWFSoundInstance->loopCount

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance->loopCount

Description

void SWFSoundInstance::loopCount ( int $point )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.



SWFSoundInstance->loopInPoint

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance->loopInPoint

Description

void SWFSoundInstance::loopInPoint ( int $point )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.



SWFSoundInstance->loopOutPoint

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance->loopOutPoint

Description

void SWFSoundInstance::loopOutPoint ( int $point )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.



SWFSoundInstance->noMultiple

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance->noMultiple

Description

void SWFSoundInstance::noMultiple ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFSprite

Introduction

SWFSprite est également connu sous le nom "movie clip", elle vous permet de créer des objets qui sont animés.

Synopsis de la classe

SWFSprite {
/* Méthodes */
void SWFSprite::add ( object $object )
SWFSprite __construct ( void )
void labelFrame ( string $label )
void nextFrame ( void )
void remove ( object $object )
void setFrames ( int $number )
SWFSoundInstance startSound ( SWFSound $sount )
void stopSound ( SWFSound $sount )
}

SWFSprite->add

(PHP 4 >= 4.0.5)

SWFSprite->addAjoute un objet à un sprite

Description

void SWFSprite::add ( object $object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->add() ajoute un objet swfshape(), un objet swfbutton(), un objet swftext(), un objet swfaction() ou un objet swfsprite().

Pour les types affichables (swfshape(), swfbutton(), swftext(), swfaction() ou swfsprite()), cette fonction retourne un gestionnaire vers l'objet dans la liste d'affichage.

Valeurs de retour

Aucune valeur n'est retournée.



SWFSprite->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite->__constructCrée un clip vidéo (un sprite)

Description

SWFSprite SWFSprite::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFSprite.



SWFSprite->labelFrame

(PHP 4 >= 4.3.3)

SWFSprite->labelFrameLibellé d'une image

Description

void SWFSprite::labelFrame ( string $label )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFSprite->nextFrame

(PHP 4 >= 4.0.5)

SWFSprite->nextFrameDéplace la prochaine image de l'animation

Description

void SWFSprite::nextFrame ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->setframes() déplace la prochaine image de l'animation.

Valeurs de retour

Aucune valeur n'est retournée.



SWFSprite->remove

(PHP 4 >= 4.0.5)

SWFSprite->removeEfface l'objet d'un sprite

Description

void SWFSprite::remove ( object $object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->remove() efface un objet swfshape(), un objet swfbutton(), un objet swftext(), un objet swfaction() ou un objet swfsprite() d'un sprite.

Valeurs de retour

Aucune valeur n'est retournée.



SWFSprite->setFrames

(PHP 4 >= 4.0.5)

SWFSprite->setFramesDéfinit le nombre total d'images dans l'animation

Description

void SWFSprite::setFrames ( int $number )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->setframes() définit le nombre total d'images dans l'animation à numberofframes.

Valeurs de retour

Aucune valeur n'est retournée.



SWFSprite->startSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite->startSound

Description

SWFSoundInstance SWFSprite::startSound ( SWFSound $sount )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFSprite->stopSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite->stopSound

Description

void SWFSprite::stopSound ( SWFSound $sount )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFText

Introduction

SWFText.

Synopsis de la classe

SWFText {
/* Méthodes */
void SWFText::addString ( string $string )
void addUTF8String ( string $text )
void __construct ( void )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
float getUTF8Width ( string $string )
float getWidth ( string $string )
void moveTo ( float $x , float $y )
void setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setSpacing ( float $spacing )
}

SWFText->addString

(PHP 4 >= 4.0.5)

SWFText->addStringDessine une chaîne de caractères

Description

void SWFText::addString ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->addstring() dessine la chaîne string à la position courante. Le stylo est à la position basse du texte ; i.e., le texte ascendant est dans la direction -y.

Valeurs de retour

Aucune valeur n'est retournée.



SWFText->addUTF8String

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText->addUTF8StringÉcrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants

Description

void SWFText::addUTF8String ( string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SWFText->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText->__constructCrée un nouvel objet SWFText

Description

void SWFText::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFText, prêt pour les manipulation.

Exemples

Cet exemple simple va écrire le gros texte jaune suivant : "PHP génère du flash avec Ming", sur fond blanc.

Exemple #1 Exemple avec swftext()

<?php
$f 
= new SWFFont("Techno.fdb");
$t = new SWFText();
$t->setFont($f);
$t->moveTo(2002400);
$t->setColor(0xff0xff0);
$t->setHeight(1200);
$t->addString("PHP génère du flash avec Ming");

$m = new SWFMovie();
$m->setDimension(54003600);

$m->add($t);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>



SWFText->getAscent

(PHP 4 >= 4.0.5)

SWFText->getAscentRetourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

Description

float SWFText::getAscent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFText->getDescent

(PHP 4 >= 4.0.5)

SWFText->getDescentRetourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

Description

float SWFText::getDescent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFText->getLeading

(PHP 4 >= 4.0.5)

SWFText->getLeadingRetourne l'interlignage de la police courante à sa taille courante, ou 0 s'il n'est pas disponible

Description

float SWFText::getLeading ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFText->getUTF8Width

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText->getUTF8WidthCalcule la largeur de la chaîne donnée dans la police et la taille courante du texte

Description

float SWFText::getUTF8Width ( string $string )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



SWFText->getWidth

(PHP 4 >= 4.0.5)

SWFText->getWidthCalcule la largeur d'une chaîne

Description

float SWFText::getWidth ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la largeur de rendu de la chaîne string dans la police, l'échelle, l'espacement courante du texte.



SWFText->moveTo

(PHP 4 >= 4.0.5)

SWFText->moveToDéplace le stylo

Description

void SWFText::moveTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->moveto() déplace le stylo (ou curseur) aux coordonnées x et y dans l'espace du texte. Si l'un des deux vaut 0, la valeur dans cette dimension reste la même. Ceci est ennuyeux et devrait être fixé.

Valeurs de retour

Aucune valeur n'est retournée.



SWFText->setColor

(PHP 4 >= 4.0.5)

SWFText->setColorDéfinit la couleur courante du texte

Description

void SWFText::setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Modifie la couleur courante du texte.

Liste de paramètres

Ces paramètres sont des entiers dans l'intervalle 0 à 255 ou des hexadécimaux compris entre 0x00 et 0xFF :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

a

Valeur du composant alpha

Valeurs de retour

Aucune valeur n'est retournée.



SWFText->setFont

(PHP 4 >= 4.0.5)

SWFText->setFontDéfinit la police courante

Description

void SWFText::setFont ( SWFFont $font )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->setfont() définit la police courante à la police font donnée.

Valeurs de retour

Aucune valeur n'est retournée.



SWFText->setHeight

(PHP 4 >= 4.0.5)

SWFText->setHeightDéfinit la hauteur de la police courante

Description

void SWFText::setHeight ( float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->setheight() définit la hauteur de la police courante à height. Par défaut, vaut 240.

Valeurs de retour

Aucune valeur n'est retournée.



SWFText->setSpacing

(PHP 4 >= 4.0.5)

SWFText->setSpacingDéfinit l'espacement de la police courante

Description

void SWFText::setSpacing ( float $spacing )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->setspacing() définit l'espacement de la police courante à spacing. Par défaut, vaut 1.0. O signifie que toutes les lettres seront écrites à la même position. Cela ne fonctionne pas vraiment car un léger avancement s'effectue au fil des lettres.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFTextField

Introduction

SWFTextField.

Synopsis de la classe

SWFTextField {
/* Méthodes */
void SWFTextField::addChars ( string $chars )
void addString ( string $string )
void align ( int $alignement )
SWFTextField __construct ([ int $flags ] )
void setBounds ( float $width , float $height )
void setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setIndentation ( float $width )
void setLeftMargin ( float $width )
void setLineSpacing ( float $height )
void setMargins ( float $left , float $right )
void setName ( string $name )
void setPadding ( float $padding )
void setRightMargin ( float $width )
}

SWFTextField->addChars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField->addCharsAjoute les caractères à la police qui sera disponible dans le champ texte

Description

void SWFTextField::addChars ( string $chars )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->addString

(PHP 4 >= 4.0.5)

SWFTextField->addStringConcatène la chaîne de caractères donnée avec le champ texte

Description

void SWFTextField::addString ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setname() concatène la chaîne de caractères string avec le champ texte.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->align

(PHP 4 >= 4.0.5)

SWFTextField->alignDéfinit l'alignement du champ texte

Description

void SWFTextField::align ( int $alignement )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->align() définit l'alignement du champ texte à alignement. Les valeurs valides pour alignement sont : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField->__constructCrée un objet champ de texte

Description

SWFTextField SWFTextField::__construct ([ int $flags ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield() crée un nouvel objet champ texte. Les champs de texte sont plus flexibles que les objets swftext() - ils ne peuvent pas être tourner, la mise à l'échelle n'est pas proportionnelle, etc. mais ils peuvent être utilisés en tant qu'entrées de formulaire et ils peuvent utiliser la police définie par le navigateur.

Les drapeaux optionnelles modifient le comportement du champ texte. Voici les valeurs possibles :

  • SWFTEXTFIELD_DRAWBOX - dessine la bordure du champ texte
  • SWFTEXTFIELD_HASLENGTH -
  • SWFTEXTFIELD_HTML - permet un balisage HTML du texte
  • SWFTEXTFIELD_MULTILINE - permet de multiple lignes
  • SWFTEXTFIELD_NOEDIT - indique que le champ ne peut être éditable par l'utilisateur
  • SWFTEXTFIELD_NOSELECT - rend le champ non sélectionnable
  • SWFTEXTFIELD_PASSWORD - cache les données entrées
  • SWFTEXTFIELD_WORDWRAP - permet au texte de revenir à ligne automatiquement
Les drapeaux sont combinables grâce à l'opérateur OR. Par exemple :
<?php
$t 
newSWFTextField(SWFTEXTFIELD_PASSWORD SWFTEXTFIELD_NOEDIT); 
?>
crée un champ mot de passe non éditable.

SWFTextField a les méthode suivantes : swftextfield->setfont(), swftextfield->setbounds(), swftextfield->align(), swftextfield->setheight(), swftextfield->setleftmargin(), swftextfield->setrightmargin(), swftextfield->setmargins(), swftextfield->setindentation(), swftextfield->setlinespacing(), swftextfield->setcolor(), swftextfield->setname() et swftextfield->addstring().



SWFTextField->setBounds

(PHP 4 >= 4.0.5)

SWFTextField->setBoundsDéfinit la hauteur et la largeur d'un champ texte

Description

void SWFTextField::setBounds ( float $width , float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setbounds() définit la largeur d'un champ texte à width et sa hauteur à height. Si vous ne définissez pas ces valeurs vous-même, Ming tentera de deviner ces valeurs.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setColor

(PHP 4 >= 4.0.5)

SWFTextField->setColorDéfinit la couleur d'un champ texte

Description

void SWFTextField::setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setcolor() définit la couleur d'un champ texte. Par défaut, c'est noir. La couleur est représenté en RVB.

Liste de paramètres

Ces paramètres sont des entiers compris entre 0 et 255, ou des hexadécimaux compris entre 0x00 et 0xFF :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

a

Valeur du composant alpha

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setFont

(PHP 4 >= 4.2.0)

SWFTextField->setFontDéfinit la police d'un champ texte

Description

void SWFTextField::setFont ( SWFFont $font )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setfont() définit la police d'un champ texte à font.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setHeight

(PHP 4 >= 4.0.5)

SWFTextField->setHeightDéfinit la hauteur de la police d'un champ de texte

Description

void SWFTextField::setHeight ( float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setheight() définit la hauteur de la police d'un champ texte à height. Par défaut, vaut 240.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setIndentation

(PHP 4 >= 4.0.5)

SWFTextField->setIndentationDéfinit l'indentation de la première ligne

Description

void SWFTextField::setIndentation ( float $width )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setindentation() définit l'indentation de la première ligne d'un champ texte à width.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setLeftMargin

(PHP 4 >= 4.0.5)

SWFTextField->setLeftMarginDéfinit la largeur de la marge gauche d'un champ texte

Description

void SWFTextField::setLeftMargin ( float $width )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setleftmargin() définit la largeur de la marge gauche d'un champ texte à width. Par défaut, vaut 0.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setLineSpacing

(PHP 4 >= 4.0.5)

SWFTextField->setLineSpacingDéfinit l'espacement de ligne d'un champ texte

Description

void SWFTextField::setLineSpacing ( float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setlinespacing() définit l'espacement de ligne d'un champ texte à une hauteur de height. Par défaut, vaut 40.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setMargins

(PHP 4 >= 4.0.5)

SWFTextField->setMarginsDéfinit la largeur des marges d'un champ texte

Description

void SWFTextField::setMargins ( float $left , float $right )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setmargins() définit les marges d'un champ texte.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setName

(PHP 4 >= 4.0.5)

SWFTextField->setNameDéfinit le nom de la variable

Description

void SWFTextField::setName ( string $name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setname() définit le nom de la variable d'un champ texte à name, pour l'envoi du formulaire et les diverses actions des scripts.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setPadding

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField->setPaddingDéfinit l'espacement interne d'un champ texte

Description

void SWFTextField::setPadding ( float $padding )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.



SWFTextField->setRightMargin

(PHP 4 >= 4.0.5)

SWFTextField->setRightMarginDéfinit la largeur de la marge droite d'un champ texte

Description

void SWFTextField::setRightMargin ( float $width )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setrightmargin() définit la largeur de la marge droite d'un champ texte à width. Par défaut, vaut 0.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SWFVideoStream

Introduction

SWFVideoStream.

Synopsis de la classe

SWFVideoStream {
/* Méthodes */
SWFVideoStream SWFVideoStream::__construct ([ string $file ] )
int getNumFrames ( void )
void setDimension ( int $x , int $y )
}

SWFVideoStream->__construct

(PHP 5.0.5-5.3.0, PECL ming SVN)

SWFVideoStream->__constructRetourne un objet SWFVideoStream

Description

SWFVideoStream SWFVideoStream::__construct ([ string $file ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



SWFVideoStream->getNumFrames

(PHP 5.0.5-5.3.0, PECL ming SVN)

SWFVideoStream->getNumFramesRetourne le nombre de frames d'une vidéo

Description

int SWFVideoStream::getNumFrames ( void )

Cette fonction retourne le nombre de frames d'un SWFVideoStream.

Valeurs de retour

Retourne le nombre de frames, sous la forme d'un entier.



SWFVideoStream->setDimension

(PHP 5.0.5-5.3.0, PECL ming SVN)

SWFVideoStream->setDimensionDéfinit les dimensions d'une vidéo

Description

void SWFVideoStream::setDimension ( int $x , int $y )

Définit la hauteur et la largeur d'une vidéo.

Liste de paramètres

x

Largeur, en pixels.

y

Hauteur, en pixels.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire




PDF


Introduction

Les fonctions PDF, en PHP, peuvent créer des fichiers PDF en utilisant la bibliothèque PDFlib, qui a été créée initialement par Thomas Merz et est actuellement maintenu par » PDFlib GmbH.

La documentation de cette section n'est destinée qu'à être un aperçu des fonctions disponibles de la bibliothèque PDFlib et ne doit pas être considérée comme exhaustive. Pour une description complète et détaillée de chaque fonction, consultez le manuel de référence de PDFlib qui est inclu dans tous les paquets PDFlib, distribués par PDFlib GmbH. Il propose une bonne approche sur les capacités de PDFlib et contient la documentation la plus à jour de toutes les fonctions.

Pour commencer rapidement, nous vous proposons de regarder les exemples qui se trouvent dans le paquet PDFlib. Ces exemples montrent l'affichage de textes simples, de vecteurs et de graphiques, mais aussi une utilisation des fonctions haut-niveaux, comme l'importation simplifiée de PDF (PDI).

Toutes les fonctions de la PDFlib et du module PHP ont le même nom ainsi que les mêmes paramètres. Tant que vous ne l'avez pas configuré autrement, toutes les coordonnées sont mesurées en points PostScript. Il y a, en général, 73 points PostScript dans un pouce, mais cela dépend de la résolution de l'affichage. Reportez-vous au manuel de référence PDFlib inclus dans le paquet PDFlib pour une plus large explication concernant le système utilisé pour les coordonnées.

Avec la version 6, PDFlib offre une API orientée objet pour PHP 5 en plus d'une API procédurale pour PHP 4. La principale différence est :

En PHP 4, tout d'abors, une ressource PDF doit avoir été récupérée avec une fonction comme

$p = PDF_new().

Cette ressource PDF est utilisée comme premier paramètre dans toutes les autres fonctions, comme

PDF_begin_document($p, "", "").

Cependant, en PHP 5, un objet PDFlib est créé avec

$p = new PDFlib().

Cet objet offre toutes les fonctions de l'API comme méthodes, e.g.

$p->begin_document("", "").

De plus, les exceptions ont été introduites en PHP 5, et sont supportées par PDFlib 6 et supérieur.

Reportez-vous aux exemples ci-dessous pour plus d'informations.

Note:

Si vous êtes intéressé par un générateur de PDF libre qui n'utilisent pas de bibliothèques externes PDF, reportez-vous à cette section de la foire aux question.



Installation/Configuration

Sommaire


Pré-requis

PDFlib Lite est disponible en tant que projet open source. Cependant, la licence PDFlib Lite vous autorise une utilisation libre que sous certaines conditions. PDFlib Lite supporte une partie des fonctionnalités de PDFlib ; reportez-vous au site web de PDFlib pour plus de détails. La version complète de PDFlib est disponible en téléchargement sur » http://www.pdflib.com/products/pdflib-family/, mais nécessite l'achat d'une licence commerciale pour l'utiliser.

Problèmes avec les anciennes versions de PDFlib

Toutes les versions de PHP 4 avant le 9 Mars 2000 ne supportent pas les version de PDFlib plus anciennes que la version 3.0.

PDFlib 4.0 ou supérieure est supportée par PHP 4.3.0 et suivant.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/pdflib.

Pour inclure le support de la PDFlib dans votre PHP < 4.3.9, il faut compiler PHP avec l'option --with-pdflib[=DIR] . DIR est le dossier d'installation de PDFlib et, par défaut, il vaut /usr/local.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

PDF_new() crée un nouvel objet PDFlib, nécessaire à la plupart des fonctions.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemples d'utilisation

La plupart des fonctions est simple d'utilisation. La difficulté réside probablement dans la création de votre premier document PDF. L'exemple suivant devrait vous aider à commencer. Il est développé pour PHP 4 et crée le fichier hello.pdf contenant une seule page. Il crée quelques contenus, charge la police Helvetica-Bold et affiche le texte "Bonjour le monde ! (dit PHP)".

Exemple #1 Exemple issu de la distribution PDFlib pour PHP 4

<?php
$p 
PDF_new();

/*  ouvre un nouveau fichier PDF ; insert un nom de fichier pour créer le PDF sur le disque */
if (PDF_begin_document($p"""") == 0) {
    die(
"Error: " PDF_get_errmsg($p));
}

PDF_set_info($p"Creator""hello.php");
PDF_set_info($p"Author""Rainer Schaaf");
PDF_set_info($p"Title""Bonjour le monde (PHP)!");

PDF_begin_page_ext($p595842"");

$font PDF_load_font($p"Helvetica-Bold""winansi""");

PDF_setfont($p$font24.0);
PDF_set_text_pos($p50700);
PDF_show($p"Hello world!");
PDF_continue_text($p"(dit PHP)");
PDF_end_page_ext($p"");

PDF_end_document($p"");

$buf PDF_get_buffer($p);
$len strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print 
$buf;

PDF_delete($p);
?>

L'exmemple suivant provient du paquet PDFlib de PHP 5. Il utilise le nouveau gestionnaire d'exception ainsi que la fonctionnalité d'embarquement d'objets, disponible en PHP 5. Il crée un fichier hello.pdf sur une page. Il crée quelques contenus, charge la police Helvetica-Bold et affiche le texte "Bonjour le monde ! (dit PHP)".

Exemple #2 Exemple issu de la distribution PDFlib pour PHP 5

<?php

try {
    
$p = new PDFlib();

    
/*  ouvre un nouveau fichier PDF ; insert un nom de fichier pour créer le PDF sur le disque */
    
if ($p->begin_document("""") == 0) {
        die(
"Error: " $p->get_errmsg());
    }

    
$p->set_info("Creator""hello.php");
    
$p->set_info("Author""Rainer Schaaf");
    
$p->set_info("Title""Bonjour le monde (PHP)!");

    
$p->begin_page_ext(595842"");

    
$font $p->load_font("Helvetica-Bold""winansi""");

    
$p->setfont($font24.0);
    
$p->set_text_pos(50700);
    
$p->show("Hello world!");
    
$p->continue_text("(dit PHP)");
    
$p->end_page_ext("");

    
$p->end_document("");

    
$buf $p->get_buffer();
    
$len strlen($buf);

    
header("Content-type: application/pdf");
    
header("Content-Length: $len");
    
header("Content-Disposition: inline; filename=hello.pdf");
    print 
$buf;
}
catch (
PDFlibException $e) {
    die(
"PDFlib exception occurred in hello sample:\n" .
    
"[" $e->get_errnum() . "] " $e->get_apiname() . ": " .
    
$e->get_errmsg() . "\n");
}
catch (
Exception $e) {
    die(
$e);
}
$p 0;
?>




Fonctions PDF

Remarque sur les fonctions obsolètes de la PDFlib

Depuis PHP 4.0.5, l'extension PHP pour la PDFlib est officiellement supportée par PDFlib GmbH. Cela signifie que toutes les fonctions décrites dans le manuel de référence de la PDFlib (PDFlib V3.0 ou supérieur) sont supportées par PHP 4 avec exactement la même signification et les mêmes paramètres. Cependant, avec la PDFlib V5.0.4 ou supérieure, tous les paramètres doivent être spécifiés. Pour des raisons de compatibilité, l'implémentation de la PDFlib supporte la plupart des fonctions obsolètes, mais elles doivent être remplacées par leur nouvelle version. PDFlib GmbH ne fournira aucun support pour les problèmes survenant lors de l'utilisation de ces fonctions obsolètes. La documentation de cette section indique les anciennes fonctions comme "obsolètes" et donne la fonction qui doit être utilisée à la place.


PDF_activate_item

(PECL pdflib >= 2.0.0)

PDF_activate_itemActive un élément de structure ou un autre élément de contenu

Description

bool PDF_activate_item ( resource $pdfdoc , int $id )

Active un élément de structure précédemment créé ou un autre élément de contenu. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_add_annotation

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_annotation[Obsolète] Ajoute une annotation

Description

Cette fonction est obsolète, utilisez la fonction PDF_create_annotation() avec le paramètre type=Text à la place.



PDF_add_bookmark

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_add_bookmark[Obsolète] Ajoute un signet dans la page courante

Description

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_bookmark() à la place.





PDF_add_nameddest

(PECL pdflib >= 2.0.0)

PDF_add_nameddestCrée une destination nommée

Description

bool PDF_add_nameddest ( resource $pdfdoc , string $name , string $optlist )

Crée une destination nommée sur une page arbitraire du document courant. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_add_note

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_note[Obsolète] Ajoute une annotation dans la page PDF courante

Description

bool PDF_add_note ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

PDF_add_note() ajoute une annotation dans la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec le paramètre type=Text à la place.



PDF_add_outline

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_outline[Obsolète] Ajoute un signet dans la page courante

Description

Cette fonction est obsolète, utilisez la fonction PDF_create_bookmark() à la place.




PDF_add_table_cell

(PECL pdflib >= 2.1.0)

PDF_add_table_cellAjoute une cellule à un nouveau tableau ou un tableau existant

Description

int PDF_add_table_cell ( resource $pdfdoc , int $table , int $column , int $row , string $text , string $optlist )

Ajoute une cellule à un nouveau tableau ou à un tableau existant.



PDF_add_textflow

(PECL pdflib >= 2.1.0)

PDF_add_textflowCrée un flux de texte ou ajoute du texte à un flux de texte existant

Description

int PDF_add_textflow ( resource $pdfdoc , int $textflow , string $text , string $optlist )

Crée un objet de flux de texte ou ajoute un texte ainsi que des options explicites à un flux de texte existant.



PDF_add_thumbnail

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_thumbnail[Obsolète] Ajoute une miniature sur la page PDF courante

Description

bool PDF_add_thumbnail ( resource $pdfdoc , int $image )

pdf_add_thumbnail() ajoute une miniature sur la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.




PDF_arc

(PHP 4, PECL pdflib >= 1.0.0)

PDF_arcDessine un arc de cercle PDF dans le sens anti-horaire

Description

bool PDF_arc ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

PDF_arc() dessine un arc de cercle.



PDF_arcn

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_arcnDessine un arc de cercle dans le sens horaire

Description

bool PDF_arcn ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

Excepté pour la direction du dessin, cette fonction fonctionne exactement de la même façon que la fonction pdf_arc().



PDF_attach_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_attach_file[Obsolète] Ajoute un fichier attaché à la page PDF

Description

bool PDF_attach_file ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename , string $description , string $author , string $mimetype , string $icon )

PDF_attach_file() ajoute un fichier attaché à la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec le paramètre type=FileAttachment à la place.



PDF_begin_document

(PECL pdflib >= 2.0.0)

PDF_begin_documentCrée un nouveau fichier PDF

Description

int PDF_begin_document ( resource $pdfdoc , string $filename , string $optlist )

Crée un nouveau fichier PDF avec diverses options.



PDF_begin_font

(PECL pdflib >= 2.0.0)

PDF_begin_fontCommence une définition de police de type 3

Description

bool PDF_begin_font ( resource $pdfdoc , string $filename , float $a , float $b , float $c , float $d , float $e , float $f , string $optlist )

Commence une définition de police de type 3.



PDF_begin_glyph

(PECL pdflib >= 2.0.0)

PDF_begin_glyphCommence une définition de glyphe pour les polices de type 3

Description

bool PDF_begin_glyph ( resource $pdfdoc , string $glyphname , float $wx , float $llx , float $lly , float $urx , float $ury )

Commence une définition de glyphe pour les polices de type 3.



PDF_begin_item

(PECL pdflib >= 2.0.0)

PDF_begin_itemOuvre un élément de structure ou un autre élément de contenu

Description

int PDF_begin_item ( resource $pdfdoc , string $tag , string $optlist )

Ouvre un élément de structure ou un autre élément de structure avec les attributs fournis en tant qu'options.



PDF_begin_layer

(PECL pdflib >= 2.0.0)

PDF_begin_layerCommence une interface

Description

bool PDF_begin_layer ( resource $pdfdoc , int $layer )

Commence une interface pour les sous-séquences d'affichages sur la page. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction nécessite PDF 1.5.



PDF_begin_page_ext

(PECL pdflib >= 2.0.0)

PDF_begin_page_extAjoute une nouvelle page PDF

Description

bool PDF_begin_page_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

PDF_begin_page_ext() ajoute une nouvelle page au document et spécifie diverses options. Les paramètres width et height correspondent aux dimensions, en points, de la nouvelle page. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Tailles communes des pages, exprimées en points
Nom Taille
A0 2380 x 3368
A1 1684 x 2380
A2 1190 x 1684
A3 842 x 1190
A4 595 x 842
A5 421 x 595
A6 297 x 421
B5 501 x 709
letter (8.5" x 11") 612 x 792
legal (8.5" x 14") 612 x 1008
ledger (17" x 11") 1224 x 792
11" x 17" 792 x 1224



PDF_begin_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_begin_page[Obsolète] Initialise une nouvelle page de document PDF

Description

bool PDF_begin_page ( resource $pdfdoc , float $width , float $height )

PDF_begin_page() ajoute une nouvelle page au document. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_begin_page_ext() à la place.



PDF_begin_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_patternInitialise un nouveau pattern PDF

Description

int PDF_begin_pattern ( resource $pdfdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

PDF_begin_pattern() initialise un nouveau pattern.



PDF_begin_template_ext

(PECL pdflib >= 2.1.0)

PDF_begin_template_extCommence une définition de gabarit PDF

Description

int PDF_begin_template_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

Commence une nouvelle définition de gabarit PDF.



PDF_begin_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_templateInitialise un nouveau gabarit PDF (obsolète)

Description

int PDF_begin_template ( resource $pdfdoc , float $width , float $height )

pdf_begin_template() initialise un nouveau gabarit.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_begin_template_ext() à la place.



PDF_circle

(PHP 4, PECL pdflib >= 1.0.0)

PDF_circleDessine un cercle dans un document PDF

Description

bool PDF_circle ( resource $pdfdoc , float $x , float $y , float $r )

PDF_circle() dessine un cercle.



PDF_clip

(PHP 4, PECL pdflib >= 1.0.0)

PDF_clipModifie le chemin de clipping PDF

Description

bool PDF_clip ( resource $p )

PDF_clip() utilise le chemin courant comme chemin de clipping. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_close_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close_imageFerme une image dans un document PDF

Description

bool PDF_close_image ( resource $p , int $image )

PDF_close_image() ferme l'image image, ouverte avec la fonction PDF_open_image().



PDF_close_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi_pageFerme la page PDF

Description

bool PDF_close_pdi_page ( resource $p , int $page )

PDF_close_pdi_page() ferme la page, et libère toutes les ressources liées à celle-ci. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_close_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdiFerme le fichier PDF d'entrée (obsolète)

Description

bool PDF_close_pdi ( resource $p , int $doc )

PDF_close_pdi() ferme toutes les pages ouvertes, et referme le document PDF utilisé en entrée. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_close_pdi_document() à la place.



PDF_close

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close[Obsolète] Ferme le fichier PDF

Description

bool PDF_close ( resource $p )

PDF_close() ferme le fichier PDF généré, et libère toutes les ressources qui y était rattachées. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_end_document() à la place.



PDF_closepath_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_fill_strokeTermine le chemin, dessine les bords et remplit la forme

Description

bool PDF_closepath_fill_stroke ( resource $p )

PDF_closepath_fill_stroke() termine le chemin, dessine les bords et remplit la forme. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_closepath_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_strokeTermine le chemin et dessine les bords

Description

bool PDF_closepath_stroke ( resource $p )

PDF_closepath_stroke() termine le chemin et dessine les bords. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_closepath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepathTermine le chemin PDF courant

Description

bool PDF_closepath ( resource $p )

PDF_closepath() termine le chemin courant. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_concat

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_concatConcatène une matrice avec le CTM

Description

bool PDF_concat ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

pdf_concat() concatène une matrice avec le CTM. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_continue_text

(PHP 4, PECL pdflib >= 1.0.0)

PDF_continue_textAffiche du texte à la prochaine ligne PDF

Description

bool PDF_continue_text ( resource $p , string $text )

pdf_continue_text() affiche le texte text à la prochaine ligne. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_create_3dview

(PECL pdflib >= 2.1.0)

PDF_create_3dviewCrée une vue 3D

Description

int PDF_create_3dview ( resource $pdfdoc , string $username , string $optlist )

Crée une vue 3D.

Cette fonction nécessite PDF 1.6.



PDF_create_action

(PECL pdflib >= 2.0.0)

PDF_create_actionCrée une action pour des objets ou des événements

Description

int PDF_create_action ( resource $pdfdoc , string $type , string $optlist )

Crée une action qui peut être utilisée sur diverses objets et événements.



PDF_create_annotation

(PECL pdflib >= 2.0.0)

PDF_create_annotationCrée une annotation rectangulaire

Description

bool PDF_create_annotation ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $type , string $optlist )

Crée une annotation rectangulaire sur la page courante.



PDF_create_bookmark

(PECL pdflib >= 2.0.0)

PDF_create_bookmarkCrée un signet

Description

int PDF_create_bookmark ( resource $pdfdoc , string $text , string $optlist )

Crée un signet avec diverses options.



PDF_create_field

(PECL pdflib >= 2.0.0)

PDF_create_fieldCrée un champ de formulaire

Description

bool PDF_create_field ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $name , string $type , string $optlist )

Crée un champ de formulaire dans la page courante avec diverses options.



PDF_create_fieldgroup

(PECL pdflib >= 2.0.0)

PDF_create_fieldgroupCrée un groupe de champs dans un formulaire

Description

bool PDF_create_fieldgroup ( resource $pdfdoc , string $name , string $optlist )

Crée un groupe de champs avec diverses options dans un formulaire.



PDF_create_gstate

(PECL pdflib >= 2.0.0)

PDF_create_gstateCrée un objet graphique

Description

int PDF_create_gstate ( resource $pdfdoc , string $optlist )

Crée un objet graphique avec diverses options.



PDF_create_pvf

(PECL pdflib >= 2.0.0)

PDF_create_pvfCrée un fichier PDFlib virtuel

Description

bool PDF_create_pvf ( resource $pdfdoc , string $filename , string $data , string $optlist )

Crée un fichier virtuel nommé, en lecture seul, depuis les données fournies en mémoire.



PDF_create_textflow

(PECL pdflib >= 2.0.0)

PDF_create_textflowCrée un objet de flux de texte

Description

int PDF_create_textflow ( resource $pdfdoc , string $text , string $optlist )

Prépare un texte pour formatage ultérieur et crée un objet de flux de texte.



PDF_curveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_curvetoDessine une courbe de Bezier

Description

bool PDF_curveto ( resource $p , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

pdf_curveto() dessine une courbe de Bezier à partir du point courant, et en utilisant trois points de contrôle. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_define_layer

(PECL pdflib >= 2.0.0)

PDF_define_layerCrée une définition d'interface

Description

int PDF_define_layer ( resource $pdfdoc , string $name , string $optlist )

Crée une nouvelle définition d'interface.

Cette fonction nécessite PDF 1.5.



PDF_delete_pvf

(PECL pdflib >= 2.0.0)

PDF_delete_pvfEfface un fichier virtuel PDFlib

Description

int PDF_delete_pvf ( resource $pdfdoc , string $filename )

Efface un fichier virtuel nommé et libère ses structures de données (mais pas le contenu).



PDF_delete_table

(PECL pdflib >= 2.1.0)

PDF_delete_tableEfface un tableau

Description

bool PDF_delete_table ( resource $pdfdoc , int $table , string $optlist )

Efface un tableau ainsi que toutes les données structurées associées.



PDF_delete_textflow

(PECL pdflib >= 2.0.0)

PDF_delete_textflowEfface un objet de flux de texte

Description

bool PDF_delete_textflow ( resource $pdfdoc , int $textflow )

Efface un flux de texte ainsi que les structures de données associées.



PDF_delete

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_deleteEfface un objet PDF

Description

bool PDF_delete ( resource $pdfdoc )

PDF_delete() efface l'objet PDF et libère toutes les ressources. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_encoding_set_char

(PECL pdflib >= 2.0.0)

PDF_encoding_set_charAjoute un nom de glyphe et/ou une valeur Unicode

Description

bool PDF_encoding_set_char ( resource $pdfdoc , string $encoding , int $slot , string $glyphname , int $uv )

Ajoute un nom de glyphe et/ou une valeur Unicode à un encodage personnalisé.



PDF_end_document

(PECL pdflib >= 2.0.0)

PDF_end_documentFerme un fichier PDF

Description

bool PDF_end_document ( resource $pdfdoc , string $optlist )

Ferme un fichier PDF généré et y applique diverses options.



PDF_end_font

(PECL pdflib >= 2.0.0)

PDF_end_fontTermine une définition de police de type 3

Description

bool PDF_end_font ( resource $pdfdoc )

Termine une définition de police de type 3.



PDF_end_glyph

(PECL pdflib >= 2.0.0)

PDF_end_glyphTermine la définition d'un glyphe pour les polices de type 3

Description

bool PDF_end_glyph ( resource $pdfdoc )

Termine la définition d'un glyphe pour les polices de type 3.



PDF_end_item

(PECL pdflib >= 2.0.0)

PDF_end_itemFerme la structure d'un élément ou un autre élément de contenu

Description

bool PDF_end_item ( resource $pdfdoc , int $id )

Ferme la structure d'un élément ou un autre élément de contenu.



PDF_end_layer

(PECL pdflib >= 2.0.0)

PDF_end_layerDésactive toutes les interfaces actives

Description

bool PDF_end_layer ( resource $pdfdoc )

Désactive toutes les interfaces actives. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction nécessite PDF 1.5.



PDF_end_page_ext

(PECL pdflib >= 2.0.0)

PDF_end_page_extTermine une page

Description

bool PDF_end_page_ext ( resource $pdfdoc , string $optlist )

Termine une page et y applique diverses options. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_end_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_end_pageTermine la page PDF courante

Description

bool PDF_end_page ( resource $p )

pdf_end_page() termine la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_end_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_patternTermine le pattern PDF

Description

bool PDF_end_pattern ( resource $p )

PDF_end_pattern() termine la définition du pattern. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_end_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_templateTermine le gabarit PDF

Description

bool PDF_end_template ( resource $p )

PDF_end_template() termine la définition du gabarit. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_endpath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_endpathTermine le chemin courant

Description

bool PDF_endpath ( resource $p )

Termine le chemin courant.



PDF_fill_imageblock

(PECL pdflib >= 2.0.0)

PDF_fill_imageblockRemplit un bloc d'image avec des données variables

Description

int PDF_fill_imageblock ( resource $pdfdoc , int $page , string $blockname , int $image , string $optlist )

Remplit un bloc d'image avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec PDFlib Personalization Server (PPS).



PDF_fill_pdfblock

(PECL pdflib >= 2.0.0)

PDF_fill_pdfblockRemplit un bloc de contenu avec des données variables

Description

int PDF_fill_pdfblock ( resource $pdfdoc , int $page , string $blockname , int $contents , string $optlist )

Remplit un bloc de contenu avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec "PDFlib Personalization Server" (PPS).



PDF_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill_strokeRemplit et passe le pinceau sur le chemin PDF courant

Description

bool PDF_fill_stroke ( resource $p )

PDF_fill_stroke() remplit le chemin courant avec la couleur courante, en appliquant le pinceau courant (stroke). Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_fill_textblock

(PECL pdflib >= 2.0.0)

PDF_fill_textblockRemplit un bloc de texte avec des données variables

Description

int PDF_fill_textblock ( resource $pdfdoc , int $page , string $blockname , string $text , string $optlist )

Remplit un bloc de texte avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec "PDFlib Personalization Server" (PPS).



PDF_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fillRemplit le chemin PDF courant avec la couleur courante

Description

bool PDF_fill ( resource $p )

pdf_fill_stroke() remplit le chemin courant avec la couleur courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_findfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_findfont[Obsolète] Prépare une police pour utilisation ultérieure

Description

int PDF_findfont ( resource $p , string $fontname , string $encoding , int $embed )

PDF_findfont() prépare la police fontname pour utilisation ultérieure avec PDF_setfont(). Les dimensions seront chargées et, si embed est non nul, le fichier de police sera vérifié mais pas utilisé. encoding peut prendre une des valeurs suivantes : builtin,macroman, winansi, host, ou bien un encodage défini par l'utilisateur, ou encore le nom d'une CMap. Le paramètre embed est optionnel avant PHP 4.3.5 ou avec PDFlib inférieur à 5.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_font() à la place.



PDF_fit_image

(PECL pdflib >= 2.0.0)

PDF_fit_imagePlace une image ou un gabarit PDF

Description

bool PDF_fit_image ( resource $pdfdoc , int $image , float $x , float $y , string $optlist )

Place une image ou un gabarit à une position précise. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_fit_pdi_page

(PECL pdflib >= 2.0.0)

PDF_fit_pdi_pagePlace une page PDF importée

Description

bool PDF_fit_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , string $optlist )

Place une page PDF importée sur la page, suivant diverses options. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_fit_table

(PECL pdflib >= 2.1.0)

PDF_fit_tablePlace un tableau sur la page

Description

string PDF_fit_table ( resource $pdfdoc , int $table , float $llx , float $lly , float $urx , float $ury , string $optlist )

Place un tableau complet ou partiel, sur la page.



PDF_fit_textflow

(PECL pdflib >= 2.0.0)

PDF_fit_textflowFormate un flux de texte dans un espace rectangulaire

Description

string PDF_fit_textflow ( resource $pdfdoc , int $textflow , float $llx , float $lly , float $urx , float $ury , string $optlist )

Formate la portion suivante d'un flux de texte dans un espace rectangulaire.



PDF_fit_textline

(PECL pdflib >= 2.0.0)

PDF_fit_textlinePlace un simple ligne de texte

Description

bool PDF_fit_textline ( resource $pdfdoc , string $text , float $x , float $y , string $optlist )

Place une simple ligne de texte à une position précise. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_get_apiname

(PECL pdflib >= 2.0.0)

PDF_get_apinameRécupère le nom d'une fonction de l'API qui a échouée

Description

string PDF_get_apiname ( resource $pdfdoc )

Récupère le nom d'une fonction de l'API qui a lancée la dernière exception ou qui a échouée.



PDF_get_buffer

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_bufferLit le tampon contenant le fichier PDF généré

Description

string PDF_get_buffer ( resource $p )

PDF_get_buffer() lit le contenu du tampon PDF.



PDF_get_errmsg

(PECL pdflib >= 2.0.0)

PDF_get_errmsgRécupère le texte d'une erreur

Description

string PDF_get_errmsg ( resource $pdfdoc )

Récupère le texte de la dernière exceptions lancée ou la raison de l'échec lors de l'appel d'une fonction.



PDF_get_errnum

(PECL pdflib >= 2.0.0)

PDF_get_errnumRécupère un numéro d'erreur

Description

int PDF_get_errnum ( resource $pdfdoc )

Récupère le numéro de la dernière exception lancée ou la raison de l'échec lors de l'appel d'une fonction.



PDF_get_font

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_font[Obsolète] Charge une police

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre font à la place.



PDF_get_fontname

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontname[Obsolète] Lit le nom de la police

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_parameter() avec le paramètre fontname à la place.



PDF_get_fontsize

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontsize[Obsolète] Gère les polices

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre fontsize à la place.



PDF_get_image_height

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_height[Obsolète] Retourne la hauteur d'une image

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre imageheight à la place.



PDF_get_image_width

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_width[Obsolète] Retourne la largeur d'une image

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre imagewidth à la place.



PDF_get_majorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_majorversion [Obsolète] Retourne le numéro de version majeur de PDFlib

Description

int PDF_get_majorversion ( void )

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre major à la place.



PDF_get_minorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_minorversion [Obsolète] Retourne le numéro de version mineure de PDFlib

Description

int PDF_get_minorversion ( void )

PDF_get_majorversion() retourne le numéro de version mineure de PDFlib.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre minor à la place.



PDF_get_parameter

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_parameterLit certains paramètres

Description

string PDF_get_parameter ( resource $p , string $key , float $modifier )

pdf_get_parameter() lit certains paramètres au format textuel.



PDF_get_pdi_parameter

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_parameterLit des paramètres textuels dans le document PDI (obsolète)

Description

string PDF_get_pdi_parameter ( resource $p , string $key , int $doc , int $page , int $reserved )

PDF_get_pdi_parameter() lit des paramètres textuels dans le document PDI doc.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_pcos_get_string() à la place.



PDF_get_pdi_value

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_valueLit des paramètres numériques dans le document PDF d'entrée (obsolète)

Description

float PDF_get_pdi_value ( resource $p , string $key , int $doc , int $page , int $reserved )

PDF_get_pdi_value() lit des paramètres numériques dans le document PDF d'entrée.

Cette fonction est obsolète depuis PDFlib version 7, utilisez plutôt la fonction PDF_pcos_get_number().



PDF_get_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_valueLit certains paramètres numériques

Description

float PDF_get_value ( resource $p , string $key , float $modifier )

PDF_get_value() retourne la valeur du paramètre numérique du document p, identifié par key.



PDF_info_font

(PECL pdflib >= 2.1.0)

PDF_info_fontRécupère des informations détaillées sur une police chargée

Description

float PDF_info_font ( resource $pdfdoc , int $font , string $keyword , string $optlist )

Récupère des informations détaillées sur une police de caractères chargée.



PDF_info_matchbox

(PECL pdflib >= 2.1.0)

PDF_info_matchboxRécupère les informations d'une boîte

Description

float PDF_info_matchbox ( resource $pdfdoc , string $boxname , int $num , string $keyword )

Récupère les informations d'une boîte de la page courante.



PDF_info_table

(PECL pdflib >= 2.1.0)

PDF_info_tableRécupère les informations d'un tableau

Description

float PDF_info_table ( resource $pdfdoc , int $table , string $keyword )

Récupère les informations du dernier tableau placé.



PDF_info_textflow

(PECL pdflib >= 2.0.0)

PDF_info_textflowRécupère le statut d'un flux de texte

Description

float PDF_info_textflow ( resource $pdfdoc , int $textflow , string $keyword )

Récupère le statut courant d'un flux de texte.



PDF_info_textline

(PECL pdflib >= 2.1.0)

PDF_info_textlineEffectue le formatage d'une ligne de texte et récupère la matrice

Description

float PDF_info_textline ( resource $pdfdoc , string $text , string $keyword , string $optlist )

Effectue le formatage d'une ligne de texte et récupère la matrice.



PDF_initgraphics

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_initgraphicsRemet à zéro l'environnement graphique PDF

Description

bool PDF_initgraphics ( resource $p )

pdf_initgraphics() remet à leur valeur initiale toutes les couleurs et les paramètres graphiques. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_lineto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_linetoDessine une ligne PDF

Description

bool PDF_lineto ( resource $p , float $x , float $y )

PDF_lineto() dessine une ligne entre le point courant et un autre point. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_load_3ddata

(PECL pdflib >= 2.1.0)

PDF_load_3ddataCharge un modèle 3D

Description

int PDF_load_3ddata ( resource $pdfdoc , string $filename , string $optlist )

Charge un modèle 3D depuis un fichier virtuel ou du disque.

Cette fonction nécessite PDF 1.6.



PDF_load_font

(PECL pdflib >= 2.0.0)

PDF_load_fontCherche et prépare une police

Description

int PDF_load_font ( resource $pdfdoc , string $fontname , string $encoding , string $optlist )

Recherche une police et la prépare pour une utilisation ultérieure.



PDF_load_iccprofile

(PECL pdflib >= 2.0.0)

PDF_load_iccprofileCherche et prépare un profile ICC

Description

int PDF_load_iccprofile ( resource $pdfdoc , string $profilename , string $optlist )

Recherche un profile ICC et le prépare pour une utilisation ultérieure.



PDF_load_image

(PECL pdflib >= 2.0.0)

PDF_load_imageOuvre un fichier image

Description

int PDF_load_image ( resource $pdfdoc , string $imagetype , string $filename , string $optlist )

Ouvre un fichier image local ou un fichier image virtuel suivant diverses options.



PDF_makespotcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_makespotcolorPlace un point de couleur PDF

Description

int PDF_makespotcolor ( resource $p , string $spotname )

pdf_makespotcolor() place un point de couleur, ayant le nom de spotname et comme couleur, la couleur courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_moveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_movetoPlace le point courant PDF

Description

bool PDF_moveto ( resource $p , float $x , float $y )

PDF_moveto() place le point courant aux coordonnées données. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_new

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_newCrée un nouvel objet PDF

Description

resource PDF_new ( void )

PDF_new() crée un nouvel objet PDF, en utilisant le système de gestion d'erreurs et celui de gestion de la mémoire.



PDF_open_ccitt

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_ccitt[Obsolète] Ouvre une image contenant des données brutes CCITT

Description

int PDF_open_ccitt ( resource $pdfdoc , string $filename , int $width , int $height , int $BitReverse , int $k , int $Blackls1 )

PDF_open_ccitt() ouvre une image brute CCITT.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_image() à la place.



PDF_open_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_file[Obsolète] Ouvre un nouveau fichier PDF

Description

bool PDF_open_file ( resource $p , string $filename )

PDF_open_file() crée un nouveau fichier PDF dans le fichier filename. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_begin_document() à la place.



PDF_open_gif

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_gif[Obsolète] Ouvre une image GIF

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.



PDF_open_image_file

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_image_file[Obsolète] Lit une image depuis un fichier

Description

int PDF_open_image_file ( resource $p , string $imagetype , string $filename , string $stringparam , int $intparam )

PDF_open_image_file() ouvre une image depuis le fichier filename.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_image() à la place.



PDF_open_image

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_image[Obsolète] Ouvre une image

Description

int PDF_open_image ( resource $p , string $imagetype , string $source , string $data , int $length , int $width , int $height , int $components , int $bpc , string $params )

PDF_open_image() permet d'accéder à des images de différents formats.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez les fichiers virtuels et la fonction pdf_load_image() à la place.



PDF_open_jpeg

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_jpeg[Obsolète] Ouvre une image JPEG

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.



PDF_open_memory_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_memory_image[Non supporté] Ouvre une image créée en mémoire par PHP

Description

int PDF_open_memory_image ( resource $p , resource $image )

Cette fonction n'est pas supportée par la PDFlib GmbH.



PDF_open_pdi_document

(PECL pdflib >= 2.1.0)

PDF_open_pdi_documentPrépare un document pdi

Description

int PDF_open_pdi_document ( resource $p , string $filename , string $optlist )

Ouvre un document PDF physique ou virtuel et le prépare pour une utilisation ultérieure.



PDF_open_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi_pagePrépare une page

Description

int PDF_open_pdi_page ( resource $p , int $doc , int $pagenumber , string $optlist )

PDF_open_pdi_page() prépare une page pour utilisation ultérieure avec PDF_fit_pdi_page().



PDF_open_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdiOuvre un fichier PDF (obsolète)

Description

int PDF_open_pdi ( resource $pdfdoc , string $filename , string $optlist , int $len )

PDF_open_pdi() ouvre un fichier PDF existant, pour utilisation ultérieure.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_open_pdi_document() à la place.



PDF_open_tiff

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_tiff[Obsolète] Ouvre une image TIFF

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.



PDF_pcos_get_number

(PECL pdflib >= 2.1.0)

PDF_pcos_get_numberRécupère la valeur du chemin pCOS

Description

float PDF_pcos_get_number ( resource $p , int $doc , string $path )

Récupère la valeur du chemin pCOS.



PDF_pcos_get_stream

(PECL pdflib >= 2.1.0)

PDF_pcos_get_streamRécupère le contenu du chemin pCOS

Description

string PDF_pcos_get_stream ( resource $p , int $doc , string $optlist , string $path )

Récupère le contenu du chemin pCOS.



PDF_pcos_get_string

(PECL pdflib >= 2.1.0)

PDF_pcos_get_stringRécupère la valeur du chemin pCOS

Description

string PDF_pcos_get_string ( resource $p , int $doc , string $path )

Récupère la valeur du chemin pCOS.



PDF_place_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_place_image[Obsolète] Place une image dans la page

Description

bool PDF_place_image ( resource $pdfdoc , int $image , float $x , float $y , float $scale )

PDF_place_image() place l'image image, dans la page courante, au point de coordonnées (x,y), et la met à l'échelle scale. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_fit_image() à la place.



PDF_place_pdi_page

(PHP 4 >= 4.0.6, PECL pdflib >= 1.0.0)

PDF_place_pdi_page[Obsolète] Place une page dans le document

Description

bool PDF_place_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , float $sx , float $sy )

PDF_place_pdi_page() place une page PDI, dans la page courante, aux coordonnées (x, y), et la met à l'échelle. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_fit_pdi_page() à la place.



PDF_process_pdi

(PECL pdflib >= 2.0.0)

PDF_process_pdiTraite un document PDF importé

Description

int PDF_process_pdi ( resource $pdfdoc , int $doc , int $page , string $optlist )

Traite certains éléments d'un document PDF importé.



PDF_rect

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rectDessine un rectangle

Description

bool PDF_rect ( resource $p , float $x , float $y , float $width , float $height )

pdf_rect() dessine un rectangle. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_restore

(PHP 4, PECL pdflib >= 1.0.0)

PDF_restoreRétablit l'ancien environnement graphique PDF

Description

bool PDF_restore ( resource $p )

pdf_restore() rétablit l'ancien environnement graphique, sauvé avec pdf_save(). Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_resume_page

(PECL pdflib >= 2.0.0)

PDF_resume_pageRéouvre une page

Description

bool PDF_resume_page ( resource $pdfdoc , string $optlist )

Réouvre une page pour y ajouter plus de contenus.



PDF_rotate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rotateConfigure la rotation

Description

bool PDF_rotate ( resource $p , float $phi )

pdf_rotate() fait pivoter le système de phi degrés. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_save

(PHP 4, PECL pdflib >= 1.0.0)

PDF_saveSauve l'environnement graphique courant

Description

bool PDF_save ( resource $p )

pdf_save() sauve l'environnement graphique courant. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_scale

(PHP 4, PECL pdflib >= 1.0.0)

PDF_scaleConfigure l'échelle du document

Description

bool PDF_scale ( resource $p , float $sx , float $sy )

PDF_scale() configure l'échelle du document en coordonnées horizontales et verticales. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_set_border_color

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_color[Obsolète] Configure la couleur des bords autour des liens et annotations

Description

bool PDF_set_border_color ( resource $p , float $red , float $green , float $blue )

PDF_set_border_color() configure la couleur des bords autour des liens et annotations. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec l'option annotcolor à la place.



PDF_set_border_dash

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_border_dash[Obsolète] Configure le style des lignes autour des liens des annotations

Description

bool PDF_set_border_dash ( resource $pdfdoc , float $black , float $white )

pdf_set_border_dash() configure le style des lignes autour des liens. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec l'option dasharray à la place.



PDF_set_border_style

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_style[Obsolète] Choisit le style de bord autour des liens et annotations

Description

bool PDF_set_border_style ( resource $pdfdoc , string $style , float $width )

PDF_set_border_style() configure le style des bords de tous les liens et annotations. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec les options borderstyle et linewidth à la place.



PDF_set_char_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_char_spacing[Obsolète] Configure l'espacement des caractères

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre charspacing à la place.



PDF_set_duration

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_duration[Obsolète] Configure la durée entre deux pages

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_begin_page_ext() avec le paramètre duration ou la fonction PDF_end_page_ext() à la place.



PDF_set_gstate

(PECL pdflib >= 2.0.0)

PDF_set_gstateActive un objet graphique

Description

bool PDF_set_gstate ( resource $pdfdoc , int $gstate )

Active un objet graphique.



PDF_set_horiz_scaling

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_horiz_scaling[Obsolète] Configure l'échelle horizontale du texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre horizscaling à la place.



PDF_set_info_author

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_author [Obsolète] Remplit le champ d'auteur du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.



PDF_set_info_creator

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_creator [Obsolète] Remplit le champ de créateur du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.



PDF_set_info_keywords

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_keywords [Obsolète] Remplit le champ de mots-clés du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.



PDF_set_info_subject

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_subject [Obsolète] Remplit le champ de sujet du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.



PDF_set_info_title

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_title [Obsolète] Remplit le champ de titre du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.



PDF_set_info

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_infoRemplit un champ de l'en-tête de document PDF

Description

bool PDF_set_info ( resource $p , string $key , string $value )

PDF_set_info() remplit l'un des champs d'en-tête du document. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_set_layer_dependency

(PECL pdflib >= 2.0.0)

PDF_set_layer_dependencyDéfinit les liens entre les interfaces

Description

bool PDF_set_layer_dependency ( resource $pdfdoc , string $type , string $optlist )

Définit les hiérarchies et les groupes pour les interfaces. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction nécessite PDF 1.5.



PDF_set_leading

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_leading[Obsolète] Configure la distance entre deux lignes de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre leading à la place.



PDF_set_parameter

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_parameterModifie certains paramètres

Description

bool PDF_set_parameter ( resource $p , string $key , string $value )

PDF_set_parameter() modifie les paramètres PDFlib de type texte. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_set_text_matrix

(PHP 4 <= 4.0.4)

PDF_set_text_matrix[Obsolète] Configure la matrice de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_scale(), PDF_translate(), PDF_rotate() ou PDF_skew() à la place.



PDF_set_text_pos

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_posModifie la position du texte

Description

bool PDF_set_text_pos ( resource $p , float $x , float $y )

PDF_set_text_pos() modifie la position du texte. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_set_text_rendering

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rendering[Obsolète] Détermine le rendu du texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre textrendering à la place.



PDF_set_text_rise

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rise[Obsolète] Configure l'élévation de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre textrise à la place.



PDF_set_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_valueModifie certains paramètres numériques

Description

bool PDF_set_value ( resource $p , string $key , float $value )

PDF_set_value() modifie la valeur du paramètre de la PDFlib key par la valeur de value. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_set_word_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_word_spacing[Obsolète] Configure l'espace entre deux mots

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre wordspacing à la place.



PDF_setcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setcolorConfigure la couleur de dessin et de remplissage

Description

bool PDF_setcolor ( resource $p , string $fstype , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

PDF_setcolor() configure la couleur de dessin et de remplissage. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setdash

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setdashConfigure le mode de pointillé

Description

bool PDF_setdash ( resource $pdfdoc , float $b , float $w )

PDF_setdash() configure le mode de pointillé à la taille de b pour les traits noirs, et w pour les traits blancs. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setdashpattern

(PECL pdflib >= 2.0.0)

PDF_setdashpatternDéfinit un modèle de masque

Description

bool PDF_setdashpattern ( resource $pdfdoc , string $optlist )

Définit un modèle de masque suivant une liste d'option. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setflat

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setflatConfigure la position à plat (flatness)

Description

bool PDF_setflat ( resource $pdfdoc , float $flatness )

pdf_setflat() configure la position à plat, à une valeur comprise entre 0 et 100 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setfontConfigure la police courante

Description

bool PDF_setfont ( resource $pdfdoc , int $font , float $fontsize )

PDF_setfont() configure la police courante avec la police font et la taille fontsize. font est une ressource retournée par PDF_load_font(). Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setgray_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_fill[Obsolète] Configure la couleur de remplissage à un niveau de gris

Description

bool PDF_setgray_fill ( resource $p , float $g )

PDF_setgray_fill() configure la couleur de remplissage à un niveau de gris, entre 0 et 1 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.



PDF_setgray_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_stroke[Obsolète] Configure la couleur de dessin à un niveau de gris

Description

bool PDF_setgray_stroke ( resource $p , float $g )

PDF_setgray_stroke() configure la couleur de dessin à un niveau de gris, entre 0 et 1 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.



PDF_setgray

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray[Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris

Description

bool PDF_setgray ( resource $p , float $g )

PDF_setgray() configure la couleur de dessin et de remplissage au niveau de gris g. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.



PDF_setlinecap

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinecapConfigure le paramètre de linecap

Description

bool PDF_setlinecap ( resource $p , int $linecap )

PDF_setlinecap() configure le paramètre linecap à une valeur entre 0 et 2 inclusivement.



PDF_setlinejoin

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinejoinConfigure le paramètre de linejoin

Description

bool PDF_setlinejoin ( resource $p , int $value )

PDF_setlinejoin() configure le paramètre de linejoin à une valeur entre 0 et 2 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setlinewidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinewidthConfigure la largeur de ligne

Description

bool PDF_setlinewidth ( resource $p , float $width )

PDF_setlinewidth() configure la largeur de ligne à width. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setmatrix

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setmatrixConfigure la matrice de transformation

Description

bool PDF_setmatrix ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

pdf_setmatrix() configure explicitement la matrice de transformation. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setmiterlimit

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setmiterlimitConfigure la "miter limit"

Description

bool PDF_setmiterlimit ( resource $pdfdoc , float $miter )

PDF_setmiterlimit() configure la "miter limit" à une valeur supérieure ou égale à 1. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_setpolydash

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setpolydash[Obsolète] Configure des pointillés complexes

Description

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_setdashpattern() à la place.



PDF_setrgbcolor_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_fill[Obsolète] Choisit la couleur utilisée pour le remplissage

Description

bool PDF_setrgbcolor_fill ( resource $p , float $red , float $green , float $blue )

PDF_setrgbcolor_fill() choisit la couleur utilisée pour le remplissage. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.



PDF_setrgbcolor_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_stroke[Obsolète] Choisit la couleur utilisée pour le dessin

Description

bool PDF_setrgbcolor_stroke ( resource $p , float $red , float $green , float $blue )

PDF_setrgbcolor_stroke() choisit la couleur utilisée pour le dessin. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.



PDF_setrgbcolor

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor[Obsolète] Choisit la couleur rgb de remplissage et de dessin

Description

bool PDF_setrgbcolor ( resource $p , float $red , float $green , float $blue )

PDF_setrgbcolor() choisit la couleur utilisée pour le dessin et le remplissage. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4, utilisez la fonction PDF_setcolor() à la place.



PDF_shading_pattern

(PECL pdflib >= 2.0.0)

PDF_shading_patternDéfinit un masque d'ombrage

Description

int PDF_shading_pattern ( resource $pdfdoc , int $shading , string $optlist )

Définit un masque d'ombrage en utilisant un objet d'ombrage.

Cette fonction nécessite PDF 1.4 ou supérieur.



PDF_shading

(PECL pdflib >= 2.0.0)

PDF_shadingDéfinit un dégradé

Description

int PDF_shading ( resource $pdfdoc , string $shtype , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Définit un dégradé depuis la couleur courante vers une autre couleur.

Cette fonction nécessite PDF 1.4 ou supérieur.



PDF_shfill

(PECL pdflib >= 2.0.0)

PDF_shfillRemplit un espace avec un dégradé

Description

bool PDF_shfill ( resource $pdfdoc , int $shading )

Remplit un espace avec un dégradé, basé sur un objet de dégradé.

Cette fonction nécessite PDF 1.4 ou supérieur.



PDF_show_boxed

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_boxed[Obsolète] Affiche le texte dans un cadre

Description

int PDF_show_boxed ( resource $p , string $text , float $left , float $top , float $width , float $height , string $mode , string $feature )

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_fit_textline() pour les lignes simples, ou la fonction PDF_*_textflow() pour les lignes multiples à la place.



PDF_show_xy

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_xyAffiche un texte à une position donnée

Description

bool PDF_show_xy ( resource $p , string $text , float $x , float $y )

PDF_show_xy() affiche le texte text aux coordonnées x,y. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_show

(PHP 4, PECL pdflib >= 1.0.0)

PDF_showAffiche le texte à la position courante

Description

bool PDF_show ( resource $pdfdoc , string $text )

pdf_show() affiche le texte text à la position courante, avec la police et la taille courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_skew

(PHP 4, PECL pdflib >= 1.0.0)

PDF_skewIncline le système de coordonnées

Description

bool PDF_skew ( resource $p , float $alpha , float $beta )

PDF_skew() incline le système de coordonnées de alpha degrés dans le sens des abscisses, et de beta degrés dans le sens des ordonnées. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_stringwidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stringwidthRetourne la largeur d'un texte avec la police courante

Description

float PDF_stringwidth ( resource $p , string $text , int $font , float $fontsize )

PDF_stringwidth() retourne la largeur du texte text en utilisant les paramètres font et size.



PDF_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_strokeDessine la ligne le long du chemin

Description

bool PDF_stroke ( resource $p )

PDF_stroke() dessine la ligne le long du chemin courant, avec la couleur courante et la largeur de ligne courante, puis clôt le chemin. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



PDF_suspend_page

(PECL pdflib >= 2.0.0)

PDF_suspend_pageSuspend une page

Description

bool PDF_suspend_page ( resource $pdfdoc , string $optlist )

Suspend la page courante et peut donc être réouverte plus tard avec la fonction PDF_resume_page().



PDF_translate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_translateEffectue une translation de l'origine du système de coordonnées

Description

bool PDF_translate ( resource $p , float $tx , float $ty )

PDF_translate() effectue une translation de l'origine du système de coordonnées d'un vecteur de (tx,ty).



PDF_utf16_to_utf8

(PECL pdflib >= 2.0.3)

PDF_utf16_to_utf8Convertit une chaîne UTF-16 en UTF-8

Description

string PDF_utf16_to_utf8 ( resource $pdfdoc , string $utf16string )

Convertit une chaîne UTF-16 en UTF-8.



PDF_utf32_to_utf16

(PECL pdflib >= Unknown future)

PDF_utf32_to_utf16Convertie une chaîne UTF-32 en UTF-16

Description

string PDF_utf32_to_utf16 ( resource $pdfdoc , string $utf32string , string $ordering )

Convertie une chaîne UTF-32 en UTF-16.



PDF_utf8_to_utf16

(PECL pdflib >= 2.0.3)

PDF_utf8_to_utf16Convertit une chaîne UTF-8 en UTF-16

Description

string PDF_utf8_to_utf16 ( resource $pdfdoc , string $utf8string , string $ordering )

Convertit une chaîne UTF-8 en UTF-16.


Sommaire




Création de document PostScript


Introduction

Ce module permet de créer des documents PostScript. Il a beaucoup de similarités avec l'extension pdf. Actuellement, cet API est pratiquement identique et dans la plupart des cas, seuls les préfixes de chaque fonction sont remplacés de pdf_ par ps_. Cela fonctionne aussi pour les fonctions qui n'ont pas de signification dans le document PostScript (par exemple, l'ajout d'hyperliens) mais aura un effet si le document est converti en PDF.

Les documents créés par cette extension sont parfois même supérieurs aux documents créés avec l'extension pdf, parce que les fonctions de rendement de texte de pslib peuvent gérer le crénage, la coupure de mot et les ligatures qui résultent à un bien meilleur affichage de boîte texte.



Installation/Configuration

Sommaire


Pré-requis

Vous devez au moins PHP 4.3.0 et pslib >= 0.1.12. La bibliothèque ps (pslib) est disponible à » http://pslib.sourceforge.net/.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ps.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit une ressource de document PostScript, retournée par la fonction ps_new().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les deux tables suivantes listent toutes les constantes définies par l'extension ps.

Constantes pour line caps
Nom Description
ps_LINECAP_BUTT  
ps_LINECAP_ROUND  
ps_LINECAP_SQUARED  
Constantes pour line joins
Nom Description
ps_LINEJOIN_MITER  
ps_LINEJOIN_ROUND  
ps_LINEJOIN_BEVEL  



Fonctions PS

Contact Information

Si vous avez des commentaires, résolutions de bogues, améliorations pour soit cette extension ou pslib alors laissez moi un message à » steinm@php.net. Toute aide est la bienvenue.


ps_add_bookmark

(PECL ps >= 1.1.0)

ps_add_bookmarkAjoute un signet à la page courante

Description

int ps_add_bookmark ( resource $psdoc , string $text [, int $parent = 0 [, int $open = 0 ]] )

Ajoute un signet pour la page courante. Les signets apparaissent normalement dans les lecteurs PDF sur la gauche de la page dans un arbre hiérarchique. Cliquer sur un signet sautera à la page donnée.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte utilisé pour afficher le signet.

parent

Un signet précédemment créé par cette fonction qui est utilisé comme parent du nouveau signet.

open

Si open n'est pas égal à zéro, le signet sera montré ouvert dans le lecteur PDF.

Valeurs de retour

La valeur retournée est une référence pour le signet. Cela est utilisé seulement si le signet doit être utilisé en tant que parent. La valeur est supérieure à zéro si la fonction réussit. En cas d'erreur, 0 sera retourné.

Voir aussi





ps_add_note

(PECL ps >= 1.1.0)

ps_add_noteAjoute une note à la page courante

Description

bool ps_add_note ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

ps_add_note() ajoute une note à une certaine position sur la page. Les notes sont comme de petites feuilles rectangulaires avec du texte par dessus, qui peut être placé n'importe où sur une page. Elles sont affichées soit pliées ou dépliées. Si elles sont dépliées, l'icône spécifiée est utilisée comme un marqueur.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

llx

La position x du coin inférieur gauche.

lly

La position y du coin inférieur gauche.

urx

La position x du coin supérieur droit.

ury

La position y du coin supérieur droit.

contents

Le texte de la note.

title

Le titre de la note affiché en tant qu'en-tête de la note.

icon

L'icône montrée si la note est pliée. Le paramètre peut être fixé à comment, insert, note, paragraph, newparagraph, key ou help.

open

Si open n'est pas égal à zéro, la note sera affichée dépliée après l'ouverture du document dans un visualisateur PDF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi





ps_arc

(PECL ps >= 1.1.0)

ps_arcDessine un arc dans le sens contraire des aiguilles d'une montre

Description

bool ps_arc ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Dessine une portion d'un cercle avec un point milieu à (x, y). L'arc débute à un angle de alpha et termine avec un angle de beta. Il est tracé dans le sens contraire des aiguilles d'une montre (utilisez ps_arcn() pour dessiner dans le sens des aiguilles d'une montre). La sous trajectoire ajoutée à la trajectoire courante débute sur l'arc à l'angle alpha et termine sur l'arc à l'angle beta.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

alpha

L'angle de départ donné en degrés.

beta

L'angle de fin donné en degrés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arcn() - Dessine un arc dans le sens des aiguilles d'une montre



ps_arcn

(PECL ps >= 1.1.0)

ps_arcnDessine un arc dans le sens des aiguilles d'une montre

Description

bool ps_arcn ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Dessine une portion d'un cercle avec un point milieu à (x, y). L'arc débute à un angle de alpha et termine avec un angle de beta. Il est tracé dans le sens des aiguilles d'une montre (utilisez ps_arc() pour dessiner dans le sens contraire des aiguilles d'une montre). La sous trajectoire ajoutée à la trajectoire courante débute sur l'arc à l'angle beta et termine sur l'arc à l'angle alpha.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

alpha

L'angle de départ donné en degrés.

beta

L'angle de fin donné en degrés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arc() - Dessine un arc dans le sens contraire des aiguilles d'une montre



ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_pageDémarre une nouvelle page

Description

bool ps_begin_page ( resource $psdoc , float $width , float $height )

Démarre une nouvelle page. Bien que les paramètres width et height implique une taille différente des feuilles pour chaque page, cela n'est pas possible dans PostScript. Le premier appel de ps_begin_page() fixera la taille des pages pour le document entier. Des appels consécutifs n'auront aucun effet, à l'exception pour créer une nouvelle page. La situation est différente si vous tentez de convertir le document PostScript en PDF. Cette fonction place des marques pdf à l'intérieur du document qui peuvent fixer la taille pour chaque page individuellement. Le document PDF résultant aura différentes tailles de pages.

Bien que le PostScript ne sait pas les tailles des différentes pages, pslib place une boîte de contour pour chaque page dans le document. La taille est évaluée par quelques lecteurs PostScript et aura précédence sur la BoundingBox dans l'en-tête du document. Ceci peut mener à des résultats non attendus lorsque vous fixez une BoundingBox dont le coin inférieur gauche n'est pas (0, 0), parce que la boîte de contour de la page aura toujours le coin inférieur gauche à (0, 0) et écrasera les configurations globales.

Chaque page est encapsulée en sauvegarde/restauration. Cela signifie, que la plupart des configurations effectuées sur une page ne seront pas retenues sur la page suivante.

S'il n'y a aucun appel de ps_findfond() jusqu'au premier appel de ps_begin_page(), alors l'en-tête du document PostScript sera affichée et le rectangle englobant sera fixé à la taille de la première page. Le coin inférieur gauche de la boîte de contour est fixée à (0, 0). Si ps_findfont() était appelée avant que l'en-tête ne soit déjà affichée, le document n'aura pas un rectangle englobant valide. Afin de prévenir cela, vous devriez appeler ps_set_info() pour fixer le champ d'information BoundingBox et possiblement Orientation avant d'appeler ps_findfont() ou ps_begin_page().

Note:

Jusqu'à la version 0.2.6 de pslib, cette fonction écrasera toujours la BoundingBox et l'Orientation, si elle n'a pas été fixée avant avec la fonction ps_set_info() et que la fonction ps_findfont() n'ait jamais été appelée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur de la page en pixel, par exemple 596 pour le format A4.

height

La hauteur de la page en pixel, par exemple 842 pour le format A4.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_patternDémarre un nouveau motif

Description

int ps_begin_pattern ( resource $psdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

Démarre un nouveau motif. Un motif est comme une page contenant par exemple un dessin qui peut être utilisé pour remplir des secteurs. Il est utilisé comme une couleur en appelant ps_setcolor() et en configurant l'emplacement de la couleur au motif.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur du motif en pixel.

height

La hauteur du motif en pixel.

x-step

La distance en pixel de l'emplacement du motif dans la direction horizontale.

y-step

La distance en pixel de l'emplacement du motif dans la direction verticale.

painttype

Doit être 1 ou 2.

Valeurs de retour

L'identifiant du motif ou FALSE si une erreur survient.

Exemples

Exemple #1 Création et utilisation d'un motif

<?php
$ps 
ps_new();

if (!
ps_open_file($ps"pattern.ps")) {
  print 
"Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_parameter($ps"warning""true");
ps_set_info($ps"Creator""pattern.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple de Motif");


$pspattern ps_begin_pattern($ps10.010.010.010.01);
ps_setlinewidth($ps0.2);
ps_setcolor($ps"stroke""rgb"0.00.01.00.0);
ps_moveto($ps00);
ps_lineto($ps77);
ps_stroke($ps);
ps_moveto($ps07);
ps_lineto($ps70);
ps_stroke($ps);
ps_end_pattern($ps);

ps_begin_page($ps596842);
ps_setcolor($ps"both""pattern"$pspattern0.00.00.0);
ps_rect($ps50400200200);
ps_fill($ps);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Voir aussi



ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_templateDémarre un nouveau modèle

Description

int ps_begin_template ( resource $psdoc , float $width , float $height )

ps_begin_template() démarre un nouveau modèle. Un modèle est appelé par un formulaire dans le langage PostScript. Il est créé de la même manière qu'un motif, mais est utilisé comme une image. Les modèles sont souvent utilisés pour les dessins qui sont placés plusieurs fois dans le document, par exemple un logo de compagnie. Toutes les fonctions de dessin peuvent être utilisées dans un modèle. Le modèle ne sera pas dessiné tant qu'il n'est pas placé par ps_place_image().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur du modèle en pixels.

height

La hauteur du modèle en pixels.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création et utilisation d'un modèle PostScript

<?php
$ps 
ps_new();

if (!
ps_open_file($ps"template.ps")) {
  print 
"Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_parameter($ps"warning""true");
ps_set_info($ps"Creator""template.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple de Modèle");

$pstemplate ps_begin_template($ps30.030.0);
ps_moveto($ps00);
ps_lineto($ps3030);
ps_moveto($ps030);
ps_lineto($ps300);
ps_stroke($ps);
ps_end_template($ps);

ps_begin_page($ps596842);
ps_place_image($ps$pstemplate20.020.01.0);
ps_place_image($ps$pstemplate50.030.00.5);
ps_place_image($ps$pstemplate70.070.00.6);
ps_place_image($ps$pstemplate30.050.01.3);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Voir aussi



ps_circle

(PECL ps >= 1.1.0)

ps_circleDessine un cercle

Description

bool ps_circle ( resource $psdoc , float $x , float $y , float $radius )

Dessine un cercle avec son point milieu à (x, y). Le cercle débute et termine à la position (x+radius, y). Si cette fonction est appelée à l'extérieur d'un chemin, elle démarrera un nouveau chemin. Si elle est appelée à l'intérieur d'un chemin, elle ajoutera le cercle comme étant un sous chemin. Si la dernière opération de dessin ne se termine pas au point (x+radius, y) alors il y aura un trou dans le chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arc() - Dessine un arc dans le sens contraire des aiguilles d'une montre
  • ps_arcn() - Dessine un arc dans le sens des aiguilles d'une montre



ps_clip

(PECL ps >= 1.1.0)

ps_clipAttache le dessin au chemin courant

Description

bool ps_clip ( resource $psdoc )

Prend le chemin courant et l'utilise pour définir la bordure du secteur à attacher. Tout ce qui est dessiné à l'extérieur de ce secteur ne sera pas visible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_close_image

(PECL ps >= 1.1.0)

ps_close_imageFerme l'image et libère la mémoire

Description

void ps_close_image ( resource $psdoc , int $imageid )

Ferme une image et libère ses ressources. Une fois l'image fermée, elle ne peut plus être utilisée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

imageid

Identifiant d'une image retourné par ps_open_image() ou ps_open_image_file().

Valeurs de retour

Retourne NULL en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_close

(PECL ps >= 1.1.0)

ps_closeFerme le document PostScript

Description

bool ps_close ( resource $psdoc )

Ferme le document PostScript.

Cette fonction écrit les dernières informations dans le document PostScript. Elle écrit aussi l'arbre des signets. ps_close() ne libère aucune ressource, ceci peut être fait par ps_delete().

Cette fonction est aussi appelée par ps_delete() si elle n'avait pas été appelée avant.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_strokeFerme et trace un chemin

Description

bool ps_closepath_stroke ( resource $psdoc )

Connecte le dernier point avec le premier point du chemin et dessine le résultat de la ligne fermée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_closepath

(PECL ps >= 1.1.0)

ps_closepathFerme un chemin

Description

bool ps_closepath ( resource $psdoc )

Connecte le dernier point avec le premier point du chemin. Le chemin résultant peut être utilisé comme ligne, remplissage, coupure, etc.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_textContinue un texte à la ligne suivante

Description

bool ps_continue_text ( resource $psdoc , string $text )

Écrit un texte une ligne en dessous de la dernière ligne. L'espace entre les lignes est pris avec la valeur "leading" qui doit être fixée avec ps_set_value(). La position actuelle du texte est déterminée par les valeurs "textx" et "texty" qui peuvent être récupérées par ps_get_value().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à afficher.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_curveto

(PECL ps >= 1.1.0)

ps_curvetoDessine une courbe

Description

bool ps_curveto ( resource $psdoc , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

ps_curveto() ajoute une section d'une courbe Bézier cubique décrit par les trois points de contrôle donnés au chemin courant.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x1

Position x du premier point de contrôle.

y1

Position y du premier point de contrôle.

x2

Position x du deuxième point de contrôle.

y2

Position y du deuxième point de contrôle.

x3

Position x du troisième point de contrôle.

y3

Position y du troisième point de contrôle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_delete

(PECL ps >= 1.1.0)

ps_deleteSupprime toutes les ressources d'un document PostScript

Description

bool ps_delete ( resource $psdoc )

Libère principale la mémoire utilisée par le document. Ferme aussi un fichier, s'il n'était pas fermée auparavant avec la fonction ps_close(). Vous devriez dans tous les cas fermer le fichier avec ps_close() avant, car ps_close() ne ferme pas simplement le fichier mais écrit aussi les dernières informations contenant le commentaire PostScript avec le nombre de pages dans le document et ajoute la hiérarchie des signets.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_end_page

(PECL ps >= 1.1.0)

ps_end_pageTermine une page

Description

bool ps_end_page ( resource $psdoc )

Termine une page qui a été débutée avec ps_begin_page(). Terminer une page laissera le contexte courant de dessin, qui par exemple requiert de recharger les polices si elles ont été chargées avec la page et fixe plusieurs autres paramètres de dessin comme la largeur des lignes, la couleur...

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_patternTermine un motif

Description

bool ps_end_pattern ( resource $psdoc )

Termine un motif qui a été débuté avec ps_begin_pattern(). Une fois qu'un motif est terminé, il peut être utilisé en tant que couleur pour remplir des secteurs.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_end_template

(PECL ps >= 1.2.0)

ps_end_templateTermine un modèle

Description

bool ps_end_template ( resource $psdoc )

Termine un modèle qui a été débuté avec ps_begin_template(). Une fois un modèle terminé, il peut être utilisé comme une image.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_strokeRemplit et trace le chemin courant

Description

bool ps_fill_stroke ( resource $psdoc )

Remplit et dessine le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_fill

(PECL ps >= 1.1.0)

ps_fillRemplit le chemin courant

Description

bool ps_fill ( resource $psdoc )

Remplit le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_findfont

(PECL ps >= 1.1.0)

ps_findfontCharge une police

Description

int ps_findfont ( resource $psdoc , string $fontname , string $encoding [, bool $embed = false ] )

ps_findfont() charge une police pour utilisation ultérieure. Avant que le texte soit écrit avec la police chargée, il doit être fixé avec ps_setfont(). Cette fonction doit avoir le fichier de police métrique "adobe" afin de calculer l'espace utilisé par les caractères. Une police qui est chargée dans une page sera seulement disponible sur cette page. Les polices qui seront utilisées dans le document complet doivent être chargées avant le premier appel de ps_begin_page(). L'appel de ps_findfont() entre les pages mettra la cette police disponible pour toutes les pages qui suivent.

Le nom du fichier afm doit être fontname.afm. Si la police doit être incorporée, le fichier fontname.pfb contenant le dessin de la police doit être présent aussi.

L'appel de ps_findfont() avant la première page requiert l'affichage de l'en-tête du postscript qui inclut le BoundingBox pour le document entier. Normalement, le BoundingBox est fixé avec le premier appel de ps_begin_page() qui vient maintenant après ps_findfont(). En conséquence, le BoundingBox n'a pas été fixée et une erreur sera lancée lorsque ps_findfont() sera appelée. Afin de prévenir cette situation, vous devriez appeler la fonction ps_set_parameter() pour fixer le BoundingBox avant que ps_findfont() soit appelée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

fontname

Le nom de la police.

encoding

ps_findfont() essaiera de charger le fichier passé dans le paramètre encoding. Les fichiers d'encodage sont de même syntaxe que ceux utilisés par dvips(1). Ils contiennent un vecteur de police d'encodage (qui n'est actuellement pas utilisé, mais qui doit être présent) et une liste de ligatures en extra pour prolonger la liste des ligatures dérivées du fichier AFM.

encoding peut être NULL ou une chaîne de caractères vide si l'encodage par défaut (TeXBase1) désire être utilisé.

Si l'encodage est fixé à builtin alors il n'y aura pas d'encodage à nouveau et l'encodage spécifique de police sera utilisé. Cela est très utile pour les polices avec symboles.

embed

Si fixé à une valeur >0, la police sera incorporée dans le document. Ceci requiert la présence du fichier dessin (.pfb).

Valeurs de retour

Retourne un identifiant de la police ou zéro en cas d'erreur. L'identifiant est un nombre positif.

Voir aussi



ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_bufferRécupère le tampon complet contenant les données PS générées

Description

string ps_get_buffer ( resource $psdoc )

Cette fonction n'est pas encore implémentée. Elle retournera toujours une chaîne de caractères vide. L'idée pour une future implémentation est d'écrire le contenu du fichier postscript dans un tampon interne si création en mémoire est demandée et de retourner le contenu du tampon avec la fonction. Présentement, les documents créés en mémoire sont envoyés au navigateur sans utilisation de tampon.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Voir aussi



ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameterRécupère certains paramètres

Description

string ps_get_parameter ( resource $psdoc , string $name [, float $modifier ] )

Récupère plusieurs paramètre qui ont été fixés directement par ps_set_parameter() ou indirectement par une ou d'autres fonctions. Les paramètres sont par définitions des valeurs de chaîne de caractères. Cette fonction ne peut être utilisée pour récupérer les ressources qui ont été aussi fixées par ps_set_parameter().

Le paramètre name peut avoir une des valeurs suivantes.

fontname

Le nom de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

fontencoding

L'encodage de la police présentement active.

dottedversion

La version la bibliothèque sous-jacente pslib dans le format <majeur>.<mineur>.<sousmineur>

scope

La portée courante du dessin. Peut être un objet, un document, NULL, une page, un motif, un chemin, un modèle, un prolog, une police, un glyphe.

ligaturedisolvechar

Le caractère qui détache une ligature. Si vous utilisez une police qui contient une ligature `ff' et `|` est le caractère à détacher la ligature, alors `f|f' donnera deux `f' au lieu de la ligature `ff'.

imageencoding

L'encodage utilisé pour encoder les images. Peut être soit hex ou 85. L'encodage hex utilise deux octets dans le fichier PostScript, chaque octet dans une image. 85 représente l'encodage Ascii85.

linenumbermode

Fixe à paragraph si des lignes sont numérotées à l'intérieur d'un paragraphe ou box si elles sont numérotées dans une boîte qui l'entoure.

linebreak

Seulement utilisé si le texte est affiché avec ps_show_boxed(). Si fixé à TRUE, un retour au chariot ajoutera un saut de ligne.

parbreak

Seulement utilisé si le texte est affiché avec ps_show_boxed(). Si fixé à TRUE, un retour au chariot démarrera un nouveau paragraphe.

hyphenation

Seulement utilisé si le texte est affiché avec ps_show_boxed(). Si fixé à TRUE, le paragraphe sera divisé si un dictionnaire de trait d'union est fixé et existe.

hyphendict

Nom du fichier du dictionnaire utilisé pour le motif de trait d'union.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Nom du paramètre.

modifier

Un identifiant requis si le paramètre d'une ressource est requis, par exemple, la taille d'une image. Dans ce cas, l'identifiant de la ressource est passé.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE si une erreur survient.

Voir aussi



ps_get_value

(PECL ps >= 1.1.0)

ps_get_valueRécupère certaines valeurs

Description

float ps_get_value ( resource $psdoc , string $name [, float $modifier ] )

Récupère plusieurs valeurs qui ont été fixées par ps_set_value(). Les valeurs sont par définition des valeurs de nombre décimal.

Le paramètre name peut avoir une des valeurs suivantes.

fontsize

La taille de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

font

La police présentement active en elle-même.

imagewidth

La largeur de l'image dont l'identifiant est passé dans le paramètre modifier.

imageheight

La hauteur de l'image dont l'identifiant est passé dans le paramètre modifier.

capheight

La hauteur d'une capitale M dans la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

ascender

La hampe de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

descender

Le jambage de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

italicangle

Le paramètre italicangle de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

underlineposition

Le paramètre underlineposition de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

underlinethickness

Le paramètre underlinethickness de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

textx

La position x courante d'affichage du texte.

texty

La position y courante d'affichage du texte.

textrendering

Le mode courant pour le rendu du texte.

textrise

L'espace par lequel le texte est augmenté au dessus de la ligne de base.

leading

La distance entre les lignes de texte en points.

wordspacing

L'espace entre les mots en tant que multiple de la largeur d'un caractère d'espace.

charspacing

L'espace entre les caractères. Si charspacing est != 0.0, les ligatures seront toujours détachées.

hyphenminchars

Nombre minimal de caractères avant un trait d'union à la fin d'un mot.

parindent

L'indentation des premières n lignes dans un paragraphe.

numindentlines

Nombre de ligne dans un paragraphe à indenter si paraindent != 0.0.

parskip

Distance entre les paragraphes.

linenumberspace

Espace général en face de chaque ligne pour le numéro de ligne.

linenumbersep

Espace entre les lignes et les numéros de lignes.

major

Le numéro de version majeur de pslib.

minor

Le numéro de version mineur de pslib.

subminor, revision

Le numéro de version sous mineur de pslib.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Nom de la valeur.

modifier

Le paramètre modifier spécifie la ressource pour laquelle la valeur sera récupérée. Cela peut être l'ID de la police ou une image.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE.

Voir aussi



ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenateRelie un mot

Description

array ps_hyphenate ( resource $psdoc , string $text )

Relie le mot passé. ps_hyphenate() évalue la valeur hyphenminchars (fixé par ps_set_value()) et le paramètre hyphendic (fixé par ps_set_parameter()). hyphendict doit être fixé avant d'appeler cette fonction.

Cette fonction requiert que la configuration locale LC_CTYPE soit correctement faîte. Cela est fait lorsque l'extension est initialisée en utilisant les variables d'environnement. Sur les systèmes Unix, lisez les pages de manuel de locale pour plus d'informations.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

text ne devrait pas contenir de caractères non alpha. Les positions possibles pour les coupures sont retournées dans un tableau de nombre entier. Chaque nombre est la position du caractère dans text après que la liaison puisse avoir lieu.

Valeurs de retour

Un tableau d'entier indiquant la position des coupures possibles dans le texte ou FALSE si une erreur survient.

Exemples

Exemple #1 Coupe un texte

<?php
$word 
"Koordinatensystem";
$psdoc ps_new();
ps_set_parameter($psdoc"hyphendict""hyph_de.dic");
$hyphens ps_hyphenate($psdoc$word);
for(
$i=0$i<strlen($word); $i++) {
  echo 
$word[$i];
  if(
in_array($i$hyphens))
    echo 
"-";
}
ps_delete($psdoc);
?>

L'exemple ci-dessus va afficher :

Ko-ordi-na-ten-sys-tem

Voir aussi



ps_include_file

(PECL ps >= 1.3.4)

ps_include_fileLit un fichier externe avec du code PostScript brut

Description

bool ps_include_file ( resource $psdoc , string $file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant de ressource du fichier postscript, tel que retourné par la fonction ps_new().

file

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ps_lineto

(PECL ps >= 1.1.0)

ps_linetoDessine une ligne

Description

bool ps_lineto ( resource $psdoc , float $x , float $y )

Ajoute une ligne droite à partir du point courant aux coordonnées données au chemin courant. Utilisez ps_moveto() pour fixer le point de départ de la ligne.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du dernier point de la ligne.

y

La position y du dernier point de la ligne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Dessin d'un rectangle

<?php
$ps 
ps_new();
if (!
ps_open_file($ps"rectangle.ps")) {
  print 
"Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps"Creator""rectangle.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple Lineto");

ps_begin_page($ps596842);
ps_moveto($ps100100);
ps_lineto($ps100200);
ps_lineto($ps200200);
ps_lineto($ps200100);
ps_lineto($ps100100);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Voir aussi



ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolorCrée une tache de couleur

Description

int ps_makespotcolor ( resource $psdoc , string $name [, int $reserved = 0 ] )

Crée une tache de couleur à partir de la couleur de remplissage courante. La couleur de remplissage doit être définie en espace colorimétrique rgb, cmyk ou gris. Le nom de la tache de couleur peut être un nom arbitraire. Une tache de couleur peut être fixée à n'importe quelle couleur avec ps_setcolor(). Lorsque le document n'est pas imprimé, mais est affiché par un visualisateur PostScript, la couleur donnée dans l'espace de couleur spécifié est utilisé.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Nom de la tache de couleur, par exemple Pantone 5565.

Valeurs de retour

L'ID de la nouvelle tache de couleur ou 0 en cas d'erreur.

Exemples

Exemple #1 Création et utilisation d'une tache de couleur

<?php
$ps 
ps_new();
if (!
ps_open_file($ps"spotcolor.ps")) {
  print 
"Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps"Creator""spotcolor.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple de Tache de Couleur");

ps_begin_page($ps596842);
ps_setcolor($ps"fill""cmyk"0.370.00.340.34);
$spotcolor ps_makespotcolor($ps"PANTONE 5565 C"0);
ps_setcolor($ps"fill""spot"$spotcolor0.50.00.0);
ps_moveto($ps100100);
ps_lineto($ps100200);
ps_lineto($ps200200);
ps_lineto($ps200100);
ps_lineto($ps100100);
ps_fill($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Cet exemple crée une tache de couleur "PANTONE 5565 C" qui est un vert foncé (olive) et remplit un rectangle avec une intensité de 50%.

Voir aussi



ps_moveto

(PECL ps >= 1.1.0)

ps_movetoFixe le point courant

Description

bool ps_moveto ( resource $psdoc , float $x , float $y )

Fixe le point courant à de nouvelles coordonnées. Si cela est le premier appel de ps_moveto() après qu'un chemin précédent ait été terminé alors il démarrera un nouveau chemin. Si cette fonction est appelée au milieu d'un chemin, elle fixera simplement le point courant et débutera un sous chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du point où se déplacer.

y

La position y du point où se déplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_new

(PECL ps >= 1.1.0)

ps_newCrée un nouvel objet document PostScript

Description

resource ps_new ( void )

Crée une nouvelle instance de document. Elle ne crée pas le fichier sur le disque ou dans la mémoire. Elle prépare simplement tout. ps_new() est normalement suivie par un appel de ps_open_file() pour créer le document PostScript.

Valeurs de retour

Ressource d'un document PostScript ou FALSE si une erreur survient. La valeur de retour est passé à toutes les autres fonctions en tant que premier argument.

Voir aussi

  • ps_delete() - Supprime toutes les ressources d'un document PostScript



ps_open_file

(PECL ps >= 1.1.0)

ps_open_fileOuvre un fichier pour écriture

Description

bool ps_open_file ( resource $psdoc [, string $filename ] )

Crée un nouveau fichier sur le disque et écrit le document PostScript à l'intérieur. Le fichier sera fermé lorsque ps_close() sera appelée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

filename

Le nom du fichier PostScript. Si filename n'est pas passé, le document sera créé en mémoire et toutes les écritures iront directement au navigateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_fileOuvre une image à partir d'un fichier

Description

int ps_open_image_file ( resource $psdoc , string $type , string $filename [, string $stringparam [, int $intparam = 0 ]] )

Charge une image pour une utilisation ultérieure.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Type de l'image. Les valeurs possibles sont png, jpeg ou eps.

filename

Le nom du fichier contenant les données de l'image.

stringparam

Non utilisé.

intparam

Non utilisé.

Valeurs de retour

Retourne un identifiant de l'image ou zéro en cas d'erreur. L'identifiant est un nombre positive plus grand que 0.

Voir aussi



ps_open_image

(PECL ps >= 1.1.0)

ps_open_imageLit une image pour placement futur

Description

int ps_open_image ( resource $psdoc , string $type , string $source , string $data , int $lenght , int $width , int $height , int $components , int $bpc , string $params )

Lit une image qui est déjà disponible en mémoire. Le paramètre source n'est présentent pas évalué et est assumé d'être memory. Les données de l'image est une séquence de pixels démarrant avec le coin supérieur gauche et termine avec le coin inférieur droit. Chaque pixel consiste de composants de couleur components et chaque composant a bpc bits.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Type de l'image. Les valeurs possibles sont png, jpeg ou eps.

source

Non utilisé.

data

Les données de l'image.

length

La taille des données de l'image.

width

La largeur de l'image.

height

La hauteur de l'image.

components

Le nombre de composant pour chaque pixel. Cela peut être 1 (images à échelle de gris), 3 (images rgb) ou 4 (images cmyk, rgba).

bpc

Nombre de bits par composant (très souvent 8).

params

Valeurs de retour

Retourne l'identifiant de l'image ou zéro en cas d'erreur. L'identifiant est un nombre positif supérieur à 0.

Voir aussi



ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_imagePrend une image GD et retourne une image à placer dans un document PS

Description

int ps_open_memory_image ( resource $psdoc , int $gd )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant de ressource du fichier postscript, tel que retourné par la fonction ps_new().

gd



ps_place_image

(PECL ps >= 1.1.0)

ps_place_imagePlace une image sur la page

Description

bool ps_place_image ( resource $psdoc , int $imageid , float $x , float $y , float $scale )

Place une image précédemment chargée sur la page. L'image peut être redimensionnée. Si l'image est tournée, vous devrez tourner le système de coordonnées avant avec ps_rotate().

Liste de paramètres

psdoc

Identifiant de ressource PostScript, tel que retourné par ps_new().

imageid

Identifiant d'un fichier postscript retourné par ps_open_image() ou ps_open_image_file().

x

La position x du coin inférieur gauche de l'image.

y

La position y du coin inférieur gauche de l'image.

scale

Le facteur de redimensionnement pour l'image. Un redimensionnement de 1.0 donnera une résolution de 72 dpi, parce que chaque pixel est équivalent à 1 point.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_rect

(PECL ps >= 1.1.0)

ps_rectDessine un rectangle

Description

bool ps_rect ( resource $psdoc , float $x , float $y , float $width , float $height )

Dessine un rectangle avec son coin inférieur gauche à (x, y). Le rectangle débute et termine sur son coin inférieur gauche. Si cette fonction est appelée à l'extérieur d'un chemin, elle démarrera un nouveau chemin. Si elle est appelée à l'intérieur d'un chemin, elle ajoutera le rectangle comme étant un sous chemin. Si la dernière opération de dessin ne se termine pas au coin inférieur gauche alors il y aura un trou dans le chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du coin inférieur gauche du rectangle.

y

La position y du coin inférieur gauche du rectangle.

width

La largeur de l'image.

height

La hauteur de l'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arc() - Dessine un arc dans le sens contraire des aiguilles d'une montre
  • ps_cirle()
  • ps_lineto() - Dessine une ligne



ps_restore

(PECL ps >= 1.1.0)

ps_restoreRestaure un contexte précédemment sauvegardé

Description

bool ps_restore ( resource $psdoc )

Restaure un contexte graphique précédemment sauvegardé. Tout appel de ps_save() doit être accompagné par un appel à ps_restore(). Toutes les transformations de coordonnée, de configurations de style de ligne, de couleur, etc. sont restaurées à l'état avant l'appel de la fonction ps_save().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_rotate

(PECL ps >= 1.1.0)

ps_rotateFixe le facteur de rotation

Description

bool ps_rotate ( resource $psdoc , float $rot )

Fixe la rotation d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

rot

Angle de rotation en degré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Rotation d'un système de coordonnées

<?php
function rectangle($ps) {
    
ps_moveto($ps00);
    
ps_lineto($ps050);
    
ps_lineto($ps5050);
    
ps_lineto($ps500);
    
ps_lineto($ps00);
    
ps_stroke($ps);
}

$ps ps_new();
if (!
ps_open_file($ps"rotation.ps")) {
  print 
"Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps"Creator""rotation.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple Rotation");
ps_set_info($ps"BoundingBox""0 0 596 842");

$psfont ps_findfont($ps"Helvetica"""0);

ps_begin_page($ps596842);
ps_set_text_pos($ps100100);
ps_save($ps);
ps_translate($ps100100);
ps_rotate($ps45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps$psfont8.0);
ps_show($ps"Texte sans rotation");
ps_end_page($ps);

ps_delete($ps);
?>

L'exemple ci-dessus illustre un moyen commun d'effectuer une rotation d'un graphique (dans ce cas, simplement un rectangle) simplement en effectuant la rotation du système de coordonnées. Puisque le système de coordonnées du graphique assume que l'origine est à (0, 0), le système de coordonnées de la page est aussi translaté pour ne pas placer le graphique sur les bord de la page. Portez attention à l'ordre de ps_translate() et ps_rotate(). Dans l'exemple ci-dessus, le rectangle subit une rotation au point (100, 100) dans le système de coordonnées non translaté. Inverser les deux requêtes aura un effet complètement différent.

Afin d'afficher le texte suivant dans sa position originale, toutes les modifications du système de coordonnées sont encapsulées dans ps_save() et ps_restore().

Voir aussi



ps_save

(PECL ps >= 1.1.0)

ps_saveSauvegarde le contexte courant

Description

bool ps_save ( resource $psdoc )

Sauvegarde le contexte graphique courant, contenant les configurations des couleurs, des translations et rotations et quelques autres. Un contexte sauvegardé peut être restauré avec ps_restore().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_restore() - Restaure un contexte précédemment sauvegardé



ps_scale

(PECL ps >= 1.1.0)

ps_scaleFixe le facteur de redimensionnement

Description

bool ps_scale ( resource $psdoc , float $x , float $y )

Fixe le redimensionnement horizontal et vertical d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

Facteur de redimensionnement en direction horizontale.

y

Facteur de redimensionnement en direction verticale.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_colorFixe la couleur des bordures pour les commentaires

Description

bool ps_set_border_color ( resource $psdoc , float $red , float $green , float $blue )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en PDF et vu dans un visualisateur PDF. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe la couleur de la bordure de la ligne du rectangle.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

red

Le composant rouge de la couleur de la bordure.

green

Le composant vert de la couleur de la bordure.

blue

Le composant bleu de la couleur de la bordure.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dashFixe la grandeur des tirets pour les bordures des commentaires

Description

bool ps_set_border_dash ( resource $psdoc , float $black , float $white )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en pdf et vu dans un visualisateur pdf. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe la grandeur de la portion de noir et blanc de la ligne de bordure pointillée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

black

La grandeur des pointillés.

white

La grandeur de l'espace entre les pointillés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_styleFixe le style de bordure des commentaires

Description

bool ps_set_border_style ( resource $psdoc , string $style , float $width )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en PDF et vu dans un visualisateur PDF. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe l'apparence et la largeur de la ligne de bordure.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

style

style peut être solid ou dashed.

width

La largeur de la bordure.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_set_info

(PECL ps >= 1.1.0)

ps_set_infoAssigne les champs d'informations d'un document

Description

bool ps_set_info ( resource $p , string $key , string $val )

ps_set_info() fixe certains champs d'informations du document. Les champs seront montrés en tant que commentaire dans l'en-tête du fichier PostScript. Si le document est converti en PDF, ces champs seront aussi utilisés pour les informations du document.

Le BoundingBox est normalement fixé à la valeur donnée par la première page. Cela fonctionne seulement si ps_findfont() n'a pas été appelée auparavant. Dans ces cas, le BoundingBox sera laissé non fixé à moins que vous le fixé explicitement avec cette fonction.

Cette fonction n'aura plus d'effet lorsque l'en-tête du fichier PostScript a été déjà été écrit. Elle doit être appelée avant la première page ou le premier appel de ps_findfont().

Liste de paramètres

psdoc

Identifiant de ressource PostScript, retourné par ps_new().

key

Le nom du champ d'information à configurer. Les valeurs de noms possibles sont Keywords, Subject, Title, Creator, Author, BoundingBox et Orientation. Soyez attentifs, car certains champs ont des significations spéciales pour les lecteurs PostScript.

value

Les valeurs du champ d'information. Le champ Orientation peut être fixé à soit Portrait ou Landscape. Le BoundingBox est une chaîne de caractères contenant quatre nombres. Les deux premiers sont les coordonnées du coin inférieur gauche de la page. Les deux derniers sont les coordonnées du coin supérieur droit.

Note:

Jusqu'à la version 0.2.6 de pslib, le BoundingBox et Orientation seront toujours écrasés par ps_begin_page(), à moins que ps_findfont() ait été appelée avant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameterFixe certains paramètres

Description

bool ps_set_parameter ( resource $psdoc , string $name , string $value )

Fixe plusieurs paramètres qui sont utilisés par beaucoup de fonctions. Les paramètres sont par définition des valeurs de chaîne de caractères.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Pour une liste des noms possibles, voyez ps_get_parameter().

value

La valeur du paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_posFixe la position l'écriture du texte

Description

bool ps_set_text_pos ( resource $psdoc , float $x , float $y )

Fixe la position pour la prochaine écriture de texte. Vous devriez alternativement fixer la valeur x et y séparément en appelant ps_set_value() et choisir textx respectivement texty comme nom de valeur.

Si vous voulez afficher le texte à une certaine position, il est plus facile d'utiliser ps_show_xy() au lieu de configurer la position du texte et d'appeler ps_show().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x de la nouvelle position du texte.

y

La position y de la nouvelle position du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Placement de texte à une position donnée

<?php
$ps 
ps_new();
if (!
ps_open_file($ps"text.ps")) {
  print 
"Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps"Creator""rectangle.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple de placement de Texte");

ps_begin_page($ps596842);
$psfont ps_findfont($ps"Helvetica"""0);
ps_setfont($ps$psfont8.0);
ps_show_xy($ps"Du texte à (100, 100)"100100);

ps_set_value($ps"textx"100);
ps_set_value($ps"texty"120);
ps_show($ps"Du texte à (100, 120)");
ps_end_page($ps);

ps_delete($ps);
?>

Voir aussi



ps_set_value

(PECL ps >= 1.1.0)

ps_set_valueFixe certaines valeurs

Description

bool ps_set_value ( resource $psdoc , string $name , float $value )

Fixe plusieurs valeurs qui sont utilisées par beaucoup de fonctions. Les paramètres sont par définitions des valeurs de nombre décimal.

Liste de paramètres

Le nom name peut être un des paramètres suivants :

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

textx

Le paramètre name peut être une des valeurs suivantes :

textrendering

Le moyen comme est montré le texte.

textx

La position de coordonnées x pour afficher le texte.

texty

La position de coordonnées y pour afficher le texte.

wordspacing

La distance entre les mots relativement à la largeur des espaces.

leading

La distance entre les lignes en pixels.

value

La valeur du paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolorFixe la couleur courante

Description

bool ps_setcolor ( resource $psdoc , string $type , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

Fixe la couleur pour le dessin, remplissage ou les deux.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le paramètre type peut être both, fill ou fillstroke.

colorspace

L'espace colorimétrique peut être soit gray, rgb, cmyk, spot, pattern. Dépendamment de l'espace colorimétrique soit le premier, les trois premiers ou tous les paramètres peuvent être utilisés.

c1

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant rouge (rgb), le composant cyan (cmyk), la valeur de gris (gris), l'identifiant de la tache de couleur ou l'identifiant du motif.

c2

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant vert (rgb) ou le composant magenta (cmyk).

c3

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant bleu (rgb) ou le composant jaune (cymk).

c4

Ce paramètre doit être fixé seulement dans l'espace colorimétrique cymk et spécifie le composant noir.

Bogues

Le second paramètre n'est actuellement pas toujours évalué. La couleur est parfois fixée pour remplir et dessiner juste comme fillstroke était passée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ps_setdash

(PECL ps >= 1.1.0)

ps_setdashFixe l'apparence d'une ligne pointillée

Description

bool ps_setdash ( resource $psdoc , float $on , float $off )

Fixe la longueur des portions de noir et blanc d'une ligne pointillée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

on

La grandeur des pointillés.

off

La grandeur des espaces entres les pointillés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setflat

(PECL ps >= 1.1.0)

ps_setflatFixe la position à plat

Description

bool ps_setflat ( resource $psdoc , float $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

value

La valeur value doit être entre 0.2 et 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ps_setfont

(PECL ps >= 1.1.0)

ps_setfontFixe la police à utiliser pour la prochaine écriture

Description

bool ps_setfont ( resource $psdoc , int $fontid , float $size )

Fixe une police, qui doit être chargée avant avec ps_findfont(). L'écriture de texte sans configurer une police provoquera une erreur.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

fontid

L'identifiant de la police retourné par ps_findfont().

size

La taille de la police.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setgray

(PECL ps >= 1.1.0)

ps_setgrayFixe la valeur de gris

Description

bool ps_setgray ( resource $psdoc , float $gray )

Fixe la valeur de gris pour toutes les opérations de dessin suivantes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

gray

La valeur doit être entre 0 (blanc) et 1 (noir).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecapFixe l'apparence des fins de ligne

Description

bool ps_setlinecap ( resource $psdoc , int $type )

Fixe comment les fins de ligne ressemblent.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le type de fin de ligne. Les valeurs possibles sont PS_LINECAP_BUTT, PS_LINECAP_ROUND ou PS_LINECAP_SQUARED.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoinFixe comment les lignes connectés sont jointes

Description

bool ps_setlinejoin ( resource $psdoc , int $type )

Fixe comment les lignes sont jointes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le moyen comment les lignes sont jointes. Les valeurs possibles sont PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND ou PS_LINEJOIN_BEVEL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidthFixe la largeur d'une ligne

Description

bool ps_setlinewidth ( resource $psdoc , float $width )

Fixe la largeur d'une ligne pour toutes les opérations de dessin suivantes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur des lignes en points.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimitFixe les limites de l'anglet

Description

bool ps_setmiterlimit ( resource $psdoc , float $value )

Si deux lignes se joignent dans un petit angle et le joint des lignes est fixé à l'anglet PS_LINEJOIN_MITER, alors la mèche résultante sera vraiment longue. La limite de l'anglet est le ratio maximal de la longueur de l'anglet (la longueur de la mèche) et la largeur de la ligne.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

value

Le ratio maximal entre la grandeur de l'anglet et la largeur de la ligne. De grandes valeurs (> 10) auront pour effet l'affichage de très longues mèches lorsque deux lignes se joignent dans un petit angle. Gardez le par défaut à moins que vous sachiez que vous faites.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmodeDéfinit le mode "overprint"

Description

bool ps_setoverprintmode ( resource $psdoc , int $mode )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant de ressource du fichier postscript, tel que retourné par la fonction ps_new().

mode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydashFixe l'apparence d'une ligne pointillée

Description

bool ps_setpolydash ( resource $psdoc , float $arr )

Fixe la longueur des portions de noir et blanc d'une ligne pointillée. ps_setpolydash() est utilisée pour fixer des motifs pointillés plus compliqués.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

arr

arr est une liste des grandeurs des éléments alternativement pour la portion de noir et de blanc.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Dessin d'une ligne pointillée

<?php
$ps 
ps_new();
if (!
ps_open_file($ps"polydash.ps")) {
   print 
"Impossible d'ouvrir le fichier PostScript\n";
     exit;
}

ps_set_info($ps"Creator""polydash.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple Poly dash");

ps_begin_page($ps596842);
ps_setpolydash($ps, array(10525));
ps_moveto($ps100100);
ps_lineto($ps200200);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Cet exemple dessine une ligne avec un point de 10 et de 2 en ligne et des espaces de 5 points entre chacun des points.

Voir aussi



ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_patternCrée un motif basé sur le ton

Description

int ps_shading_pattern ( resource $psdoc , int $shadingid , string $optlist )

Crée un motif basé sur le ton, qui doit avoir été créé avant avec ps_shading(). Les motifs de ton peuvent être utilisés comme des motifs réguliers.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

shadingid

L'identifiant de ton créé précédemment avec ps_shading().

optlist

Cet argument n'est pas utilisé présentement.

Valeurs de retour

L'identifiant du motif ou FALSE si une erreur survient.

Voir aussi



ps_shading

(PECL ps >= 1.3.0)

ps_shadingCrée un ton pour usage futur

Description

int ps_shading ( resource $psdoc , string $type , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Crée un ton, qui peut être utilisé par ps_shfill() ou ps_shading_pattern().

La couleur du ton peut être n'importe quelle couleur d'espace excepté pour pattern.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le type de ton peut être soit radial ou axial. Chaque ton débute avec la couleur courante de remplissage et termine avec la valeur de couleur donnée passée dans les paramètres c1 à c4 (voyez ps_setcolor() pour leur signification).

x0, x1, y0, y1

Les coordonnées x0, y0, x1, y1 sont le point de début et de fin du ton. Si le type de ton est radial, les deux points sont les points milieux du début et de la fin du cercle.

c1, c2, c3, c4

Voyez ps_setcolor() pour leur signification.

optlist

Si le ton est de type radial, le optlist doit aussi contenir les paramètres r0 et r1 avec le radius du début et de fin du cercle.

Valeurs de retour

Retourne un identifiant du motif ou FALSE si une erreur survient.

Voir aussi



ps_shfill

(PECL ps >= 1.3.0)

ps_shfillRemplit un espace avec un ton

Description

bool ps_shfill ( resource $psdoc , int $shadingid )

Remplit un espace avec un ton, qui doit être créé avant avec ps_shading(). Ceci est un moyen alternatif pour créer un motif à partir d'un ton venant de ps_shading_pattern() et d'utiliser le motif comme couleur de remplissage.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

shadingid

L'identifiant de ton créé précédemment avec ps_shading().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxedÉcriture de texte dans une boîte

Description

int ps_show_boxed ( resource $psdoc , string $text , float $left , float $bottom , float $width , float $height , string $hmode [, string $feature ] )

ps_show_boxed() écrit du texte dans une boîte donnée. Le coin inférieur gauche de la boîte est à (left, bottom). Les coupures de ligne sera insérées où nécessaires. Des espaces multiples sont traités comme une seule. Les tabulations sont traitées comme des espaces.

Le texte sera relié si le paramètre hyphenation est fixé à TRUE et le paramètre hyphendict contient un fichier valide pour un fichier de liaison. L'espace des lignes est pris à partir de la valeur leading. Les paragraphes peuvent être séparés par une ligne vide comme dans TeX. Si la valeur parindent est fixée à une valeur > 0.0, alors les premières n lignes seront indentées. Le nombre n de lignes est fixé par le paramètre numindentlines. Afin de prévenir l'indentation des premiers m paragraphes, fixés la valeur parindentskip à un nombre positif.

Liste de paramètres

psdoc

Identifiant d'un fichier PostScript retourné par ps_new().

text

Le texte à être affiché dans la boîte donnée.

left

La position x du coin inférieur gauche de la boîte.

bottom

La position y du coin inférieur gauche de la boîte.

width

Largeur de la boîte.

height

Hauteur de la boîte.

hmode

Le paramètre hmode peut être "justify", "fulljustify", "right", "left" ou "center". La différence entre "justify" et "fulljustify" affecte simplement la dernière ligne de la boîte. Dans le mode "fulljustify", la dernière ligne sera justifiée de gauche à droite à moins que cela est aussi la dernière ligne du paragraphe. Dans le mode "justify", le texte sera toujours justifié à gauche.

feature

Paramètres utilisés

L'écriture de ps_show_boxed() peut être configuré avec plusieurs paramètres et valeurs qui peuvent être fixés par soit ps_set_parameter() ou ps_set_value(). Près des paramètres et des valeurs qui affectent l'écriture du texte, les paramètres et les valeurs suivantes sont évalués.

leading (valeur)

Distance entre les lignes de bases de deux lignes consécutives.

linebreak (paramètre)

Fixé à TRUE si vous voulez un retour au chariot pour démarrer une nouvelle ligne plutôt que de traiter cela comme un espace. Par défaut, ce paramètre vaut FALSE.

parbreak (paramètre)

Fixé à TRUE si vous voulez un retour au chariot d'une seule ligne pour débuter un nouveau paragraphe plutôt que de traiter cela comme un espace. Par défaut, ce paramètre vaut TRUE.

hyphenation (paramètre)

Fixé à TRUE afin d'activer les liaisons. Cela requiert un dictionnaire fixé par le paramètre hyphendict. Par défaut, ce paramètre vaut FALSE.

hyphendict (paramètre)

Fichier du dictionnaire utilisé pour un motif de liaison (voir plus bas).

hyphenminchar (valeur)

Le nombre de caractères qui doit au moins être à gauche avant ou après le tiret. Cela implique que seuls les mots d'au moins deux fois cette valeur peuvent être liés. La valeur par défaut est trois. Fixer une valeur de zéro résultera de la valeur par défaut.

parindent (valeur)

Fixe le nombre d'espace en pixel pour l'indentation les premières m lignes d'un paragraphe. m peut être configuré avec la valeur "numindentlines".

parskip (valeur)

Fixe le nombre d'espace en extra en pixel entre les paragraphes. Par défaut, en mettant 0, le résultat sera d'une distance normale entre les lignes.

numindentlines (valeur)

Nombre de lignes à partir du début du paragraphe qui sera indentée. Par défaut, cette valeur vaut 1.

parindentskip (valeur)

Nombre de paragraphes dans la boîte à qui les premières lignes ne seront pas indentées. Par défaut, cette valeur vaut 0. Cela est utile pour les paragraphes immédiatement après une section d'en-tête ou de texte qui commence dans une seconde boîte. Dans les deux cas, un devrait être fixé à 1.

linenumbermode (paramètre)

Fixe comment les lignes sont numérotées. Les valeurs possibles sont "box" pour numéroter les lignes dans la boîte au complet ou "paragraph" pour numéroter les lignes dans chaque paragraphe.

linenumberspace (valeur)

L'espace pour la colonne laissé des lignes numérotées contenant le numéro de ligne. Le numéro des lignes sera justifié à droite dans cette colonne. Par défaut, cette valeur vaut 20.

linenumbersep (valeur)

L'espace entre la colonne avec le nombre de lignes et la ligne elle-même. Par défaut, cette valeur vaut 5.

Liaison

Le texte est lié si le paramètre hyphenation est fixé à TRUE et un dictionnaire valide de liaison est fixé. pslib ne fournit pas son propre dictionnaire de liaison, mais utilise un de openoffice, scribus ou koffice. Vous pouvez trouver ces dictionnaires pour différents langages dans un des dossiers suivants si le programme est installé :

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
Présentement, Scribus semble avoir les plus complets dictionnaires de liaison.

Valeurs de retour

Nombre de caractères qui ne peuvent être écrits.

Voir aussi



ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2Affiche un texte à la position

Description

bool ps_show_xy2 ( resource $psdoc , string $text , int $len , float $xcoor , float $ycoor )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xyÉcrit du texte à la position donnée

Description

bool ps_show_xy ( resource $psdoc , string $text , float $x , float $y )

Écrit du texte à la position de texte donnée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à être affiché.

x

La position x du coin inférieur droit de la boîte entourant le texte.

y

La position y du coin inférieur droit de la boîte entourant le texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_show2

(PECL ps >= 1.1.0)

ps_show2Affiche un texte à la position courante

Description

bool ps_show2 ( resource $psdoc , string $text , int $len )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant de ressource d'un fichier postscript, tel que retourné par la fonction ps_new().

text

len

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ps_show

(PECL ps >= 1.1.0)

ps_showÉcrit du texte

Description

bool ps_show ( resource $psdoc , string $text )

Écrit du texte à la position courante du texte. La position du texte peut être fixée en mettant les positions des coordonnées x et y dans les valeurs textx et texty avec la fonction ps_set_value(). Cette fonction émettra une erreur si une police n'a été fixée auparavant avec ps_setfont().

ps_show() évalue les paramètres et les variables suivantes fixés par ps_set_parameter() et ps_set_value().

charspacing (valeur)

Distance entre deux glyphes consécutifs. Si cette valeur n'est pas égal à zéro, alors toutes les ligatures seront résolues. Les valeurs inférieures à zéro sont autorisées.

kerning (paramètre)

Fixer ce paramètre à FALSE désactivera le crénage. Le crénage est activé par défaut.

ligatures (paramètre)

Fixer ce paramètre à FALSE désactivera l'utilisation des ligatures. Les ligatures sont activées par défaut.

underline (paramètre)

Fixer ce paramètre à TRUE activera le soulignement. Le soulignement est désactivé par défaut.

overline (paramètre)

Fixer ce paramètre à TRUE activera surlignement. Le surlignement est désactivé par défaut.

strikeout (paramètre)

Fixer ce paramètre à TRUE activera le texte barré. Le texte barré est désactivé par défaut.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à être affiché.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometryRécupère les géométries d'une chaîne de caractères

Description

array ps_string_geometry ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] )

ps_string_geometry() est similaire à ps_stringwidth(), mais retourne un tableau des dimensions contenant la largeur, la hampe et le jambage du texte.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte pour lequel la géométrie sera calculée.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

size

La taille de la police. Si aucune taille n'est spécifiée, la taille courante est utilisée.

Valeurs de retour

Un tableau des dimensions de la chaîne de caractères. L'élément width contient la largeur de la chaîne comme retournée par ps_stringwidth(). L'élément descender contient le maximum de jambage et ascender le maximum de la hampe de la chaîne de caractères.

Voir aussi



ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidthRécupère la largeur d'une chaîne de caractères

Description

float ps_stringwidth ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] )

Calcule la largeur d'une chaîne de caractères en points si elle a été écrite dans la police et la taille donnée. Cette fonction requiert le fichier de police métrique "adobe" pour calculer la largeur précise. Si le crénage est activé, il sera pris en compte.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte pour lequel la largeur sera calculée.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

size

La taille de la police. Si aucune taille n'est spécifiée, la taille courante est utilisée.

Valeurs de retour

Largeur de la chaîne de caractères en points.

Voir aussi



ps_stroke

(PECL ps >= 1.1.0)

ps_strokeDessine le chemin courant

Description

bool ps_stroke ( resource $psdoc )

Dessine le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_nameRécupère le nom d'un glyphe

Description

string ps_symbol_name ( resource $psdoc , int $ord [, int $fontid = 0 ] )

Cette fonction nécessite le fichier de police métrique "adobe" pour savoir quels glyphes sont disponibles.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

ord

Le paramètre ord est la position du glyphe dans le vecteur d'encodage de la police.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

Valeurs de retour

Le nom d'un glyphe dans la police donnée.

Voir aussi



ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_widthRécupère la largeur d'un glyphe

Description

float ps_symbol_width ( resource $psdoc , int $ord [, int $fontid = 0 [, float $size = 0.0 ]] )

Calcule la largeur d'un glyphe en points s'il a été écrit dans la police et la taille donnée. Cette fonction nécessite le fichier de police métrique "adobe" pour calculer la largeur précise.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

ord

La position du glyphe dans le vecteur d'encodage de la police.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

size

La taille de la police. Si aucune taille n'est spécifiée, la taille courante est utilisée.

Valeurs de retour

La largeur d'un glyphe en points.

Voir aussi



ps_symbol

(PECL ps >= 1.2.0)

ps_symbolÉcrit un glyphe

Description

bool ps_symbol ( resource $psdoc , int $ord )

Écrit un glyphe à la position ord dans le vecteur d'encodage de la police de la police courante. L'encodage de la police pour une police peut être fixé lors du chargement de la police avec ps_findfont().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

ord

La position du glyphe dans le vecteur d'encodage de la police.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ps_translate

(PECL ps >= 1.1.0)

ps_translateFixe une translation

Description

bool ps_translate ( resource $psdoc , float $x , float $y )

Fixe un nouveau point initial d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x de l'origine du système de coordonnées translaté.

y

La position y de l'origine du système de coordonnées translaté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Translation du système de coordonnées

<?php
function rectangle($ps) {
    
ps_moveto($ps00);
    
ps_lineto($ps050);
    
ps_lineto($ps5050);
    
ps_lineto($ps500);
    
ps_lineto($ps00);
    
ps_stroke($ps);
}

$ps ps_new();
if (!
ps_open_file($ps"translate.ps")) {
  print 
"Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps"Creator""translate.php");
ps_set_info($ps"Author""Uwe Steinmann");
ps_set_info($ps"Title""Exemple Translation");
ps_set_info($ps"BoundingBox""0 0 596 842");

$psfont ps_findfont($ps"Helvetica"""0);

ps_begin_page($ps596842);
ps_set_text_pos($ps100100);
ps_translate($ps500750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps$psfont8.0);
ps_show($ps"Texte à position initiale");
ps_end_page($ps);

ps_begin_page($ps596842);
ps_set_text_pos($ps100100);
ps_save($ps);
ps_translate($ps500750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps$psfont8.0);
ps_show($ps"Texte à position initiale");
ps_end_page($ps);

ps_delete($ps);
?>

L'exemple ci-dessus démontre deux moyens possibles pour placer un graphique (dans ce cas, simplement un rectangle) à n'importe quelle position sur la page, tandis que le graphique en lui-même utilise son propre système de coordonnées. Le truc est de changer l'origine du système de coordonnées courant avant de dessiner le rectangle. La translation doit être défaite après que le graphique ait été dessiné.

Sur la seconde page, une approche plus élégante et légèrement différente est appliquée. Au lieu de défaire la translation avec le deuxième appel de ps_translate(), le contexte graphique est sauvegardé avant les modification du système de coordonnées et restauré après le dessin du rectangle.

Voir aussi


Sommaire




Lecture d'en-tête RPM


Introduction

Ce module vous permet de lire les meta-informations enregistrés dans les en-têtes d'un fichier » RedHat Package Manager (» RPM).



Installation/Configuration

Sommaire


Pré-requis

L'extension RPMReader requiert PHP 5.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/rpmreader.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Il y a un type de ressource utilisé par le module RPMReader. La ressource est le pointeur de fichier qui identifie le fichier RPM avec lequel il travaille.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

La liste suivante des constantes est utilisée pour obtenir des informations en utilisant la fonction rpm_get_tag(). Ces constantes représentent le numéro de tag qui doit être récupéré d'une section d'en-tête d'un fichier RPM. Les descriptions sont données pour définir ce que les tags représentent.

RPMREADER_MINIMUM (entier)
La valeur minimale valide pour n'importe quel numéro de tag RPM.
RPMREADER_NAME (entier)
Le nom du paquetage RPM.
RPMREADER_VERSION (entier)
La version du paquetage RPM.
RPMREADER_RELEASE (entier)
La mise à jour du paquetage RPM.
RPMREADER_EPOCH (entier)
RPMREADER_SERIAL (entier)
RPMREADER_SUMMARY (entier)
Le récapitulatif du paquetage RPM.
RPMREADER_DESCRIPTION (entier)
La description complète du paquetage RPM.
RPMREADER_BUILDTIME (entier)
La date et l'heure à laquelle le paquetage RPM a été construit.
RPMREADER_BUILDHOST (entier)
Le nom de l'hôte sur lequel le paquetage a été construit.
RPMREADER_INSTALLTIME (entier)
RPMREADER_SIZE (entier)
La taille du paquetage RPM.
RPMREADER_DISTRIBUTION (entier)
RPMREADER_VENDOR (entier)
RPMREADER_GIF (entier)
RPMREADER_XPM (entier)
RPMREADER_LICENSE (entier)
RPMREADER_COPYRIGHT (entier)
RPMREADER_PACKAGER (entier)
RPMREADER_GROUP (entier)
RPMREADER_SOURCE (entier)
RPMREADER_PATCH (entier)
RPMREADER_URL (entier)
RPMREADER_OS (entier)
RPMREADER_ARCH (entier)
RPMREADER_PREIN (entier)
RPMREADER_POSTIN (entier)
RPMREADER_PREUN (entier)
RPMREADER_POSTUN (entier)
RPMREADER_OLDFILENAMES (entier)
Une liste de fichiers dans un paquetage RPM (format obsolète). La manière correcte est maintenant d'utiliser une combinaison de 3 tags (RPMREADER_BASENAMES, RPMREADER_DIRINDEXES, RPMREADER_DIRNAMES) dans ce que RPM appelle maintenant "CompressedFileNames". Ce tag est toujours utilisé dans les anciens fichiers RPM qui n'utilisent pas la méthode "CompressedFileNames" et il est présent pour maintenir une compatibilité.
RPMREADER_FILESIZES (entier)
RPMREADER_FILESTATES (entier)
RPMREADER_FILEMODES (entier)
RPMREADER_FILERDEVS (entier)
RPMREADER_FILEMTIMES (entier)
RPMREADER_FILEMD5S (entier)
RPMREADER_FILELINKTOS (entier)
RPMREADER_FILEFLAGS (entier)
RPMREADER_FILEUSERNAME (entier)
RPMREADER_FILEGROUPNAME (entier)
RPMREADER_ICON (entier)
RPMREADER_SOURCERPM (entier)
RPMREADER_FILEVERIFYFLAGS (entier)
RPMREADER_ARCHIVESIZE (entier)
RPMREADER_PROVIDENAME (entier)
RPMREADER_PROVIDES (entier)
RPMREADER_REQUIREFLAGS (entier)
RPMREADER_REQUIRENAME (entier)
RPMREADER_REQUIREVERSION (entier)
RPMREADER_CONFLICTFLAGS (entier)
RPMREADER_CONFLICTNAME (entier)
RPMREADER_CONFLICTVERSION (entier)
RPMREADER_EXCLUDEARCH (entier)
RPMREADER_EXCLUDEOS (entier)
RPMREADER_EXCLUSIVEARCH (entier)
RPMREADER_EXCLUSIVEOS (entier)
RPMREADER_RPMVERSION (entier)
RPMREADER_TRIGGERSCRIPTS (entier)
RPMREADER_TRIGGERNAME (entier)
RPMREADER_TRIGGERVERSION (entier)
RPMREADER_TRIGGERFLAGS (entier)
RPMREADER_TRIGGERINDEX (entier)
RPMREADER_VERIFYSCRIPT (entier)
RPMREADER_CHANGELOGTIME (entier)
Une liste des dates des entrées du changelog.
RPMREADER_CHANGELOGNAME (entier)
La liste des noms des entrées du changelog.
RPMREADER_CHANGELOGTEXT (entier)
La liste du texte des entrées du changelog.
RPMREADER_PREINPROG (entier)
RPMREADER_POSTINPROG (entier)
RPMREADER_PREUNPROG (entier)
RPMREADER_POSTUNPROG (entier)
RPMREADER_BUILDARCHS (entier)
RPMREADER_OBSOLETENAME (entier)
RPMREADER_OBSOLETES (entier)
RPMREADER_VERIFYSCRIPTPROG (entier)
RPMREADER_TRIGGERSCRIPTPROG (entier)
RPMREADER_COOKIE (entier)
RPMREADER_FILEDEVICES (entier)
RPMREADER_FILEINODES (entier)
RPMREADER_FILELANGS (entier)
RPMREADER_PREFIXES (entier)
RPMREADER_INSTPREFIXES (entier)
RPMREADER_PROVIDEFLAGS (entier)
RPMREADER_PROVIDEVERSION (entier)
RPMREADER_OBSOLETEFLAGS (entier)
RPMREADER_OBSOLETEVERSION (entier)
RPMREADER_DIRINDEXES (entier)
La liste des indices qui rapporte les noms des répertoires et des fichiers dans le paquetage RPM. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.
RPMREADER_BASENAMES (entier)
Une liste des noms des fichiers dans le paquetage RPM sans l'information sur les chemins. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.
RPMREADER_DIRNAMES (entier)
Une liste des noms des répertoires utilisés par les fichiers dans le paquetage RPM. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.
RPMREADER_OPTFLAGS (entier)
RPMREADER_DISTURL (entier)
RPMREADER_PAYLOADFORMAT (entier)
RPMREADER_PAYLOADCOMPRESSOR (entier)
RPMREADER_PAYLOADFLAGS (entier)
RPMREADER_INSTALLCOLOR (entier)
RPMREADER_INSTALLTID (entier)
RPMREADER_REMOVETID (entier)
RPMREADER_RHNPLATFORM (entier)
RPMREADER_PLATFORM (entier)
RPMREADER_PATCHESNAME (entier)
RPMREADER_PATCHESFLAGS (entier)
RPMREADER_PATCHESVERSION (entier)
RPMREADER_CACHECTIME (entier)
RPMREADER_CACHEPKGPATH (entier)
RPMREADER_CACHEPKGSIZE (entier)
RPMREADER_CACHEPKGMTIME (entier)
RPMREADER_FILECOLORS (entier)
RPMREADER_FILECLASS (entier)
RPMREADER_CLASSDICT (entier)
RPMREADER_FILEDEPENDSX (entier)
RPMREADER_FILEDEPENDSN (entier)
RPMREADER_DEPENDSDICT (entier)
RPMREADER_SOURCEPKGID (entier)
RPMREADER_FILECONTEXTS (entier)
RPMREADER_FSCONTEXTS (entier)
RPMREADER_RECONTEXTS (entier)
RPMREADER_POLICIES (entier)
RPMREADER_MAXIMUM (entier)
La valeur maximale valide pour n'importe quel numéro de tag RPM.



Exemples

Sommaire


Utilisation simple

Cet exemple ouvrira un fichier RPM et lira le nom, la version et la date de mise à jour du fichier RPM, affichera les résultats et fermera le fichier RPM.

Exemple #1 Exemple avec RPMReader

<?php

$filename 
"/chemin/vers/file.rpm";

// ouverture du fichier
$rpmr rpm_open($filename);

// récupération du tag "Name"
$name rpm_get_tag($rpmrRPMREADER_NAME);

// récupération du tag "Version"
$ver rpm_get_tag($rpmrRPMREADER_VERSION);

// récupération du tag "Release"
$rel rpm_get_tag($rpmrRPMREADER_RELEASE);

echo 
"$name-$ver-$rel<br>\n";

// fermeture du fichier
rpm_close($rpmr);

?>



Fonctions RPM Reader


rpm_close

(PECL rpmreader >= 0.1.0)

rpm_closeFerme un fichier RPM

Description

bool rpm_close ( resource $rpmr )

rpm_close() fermera le pointeur de fichier RPM.

Liste de paramètres

rpmr

Une ressource de pointeur de fichier ouverte par rpm_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rpm_close()

<?php

$file 
"/chemin/vers/fichier.rpm";
$rpmr rpm_open($file);

rpm_close($rpmr);

?>

Voir aussi



rpm_get_tag

(PECL rpmreader >= 0.1.0)

rpm_get_tagRécupération d'un tag de l'en-tête d'un fichier RPM

Description

mixed rpm_get_tag ( resource $rpmr , int $tagnum )

rpm_get_tag() récupérera un tag donné de l'en-tête du fichier RPM et le retournera.

Liste de paramètres

rpmr

Une ressource de pointeur de fichier correctement ouverte par rpm_open().

tagnum

Le numéro du tag à récupérer de l'en-tête RPM. La valeur peut être spécifiée en utilisant la liste des constantes définies par ce module.

Valeurs de retour

La valeur de retour peut être de type varié dépendamment du paramètre tagnum spécifié à la fonction.

Exemples

Exemple #1 Exemple avec rpm_get_tag()

<?php

$file 
"/chemin/vers/fichier.rpm";
$rpmr rpm_open($file);

$name rpm_get_tag($rpmrRPMREADER_NAME);
echo 
"$name<br />\n";

rpm_close($rpmr);

?>

Voir aussi



rpm_is_valid

(PECL rpmreader >= 0.1.0)

rpm_is_validTeste la validité du nom du fichier d'un fichier RPM

Description

bool rpm_is_valid ( string $filename )

rpm_is_valid() testera la validité d'un fichier RPM pour que cela soit un fichier RPM. Ceci n'est pas la même chose que rpm_open() puisqu'elle vérifie seulement la validité du fichier mais ne retourne pas de pointeur de fichier pour être utiliser par d'autres fonctions.

Liste de paramètres

filename

Le nom de fichier du fichier RPM que vous voulez vérifier la validité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rpm_is_valid()

<?php

$file 
"/chemin/vers/fichier.rpm";

if (
rpm_is_valid($file)) {
    echo 
"Le fichier est reconnu en tant que fichier RPM.<br />\n";
}
else {
    echo 
"Le fichier n'est pas reconnu en tant que fichier RPM.<br />\n";
}

?>



rpm_open

(PECL rpmreader >= 0.1.0)

rpm_openOuvre un fichier RPM

Description

resource rpm_open ( string $filename )

rpm_open() ouvrira un fichier RPM et déterminera si le fichier est un fichier RPM valide.

Liste de paramètres

filename

Le nom du fichier que vous souhaitez ouvrir en tant que fichier RPM.

Valeurs de retour

Si la fonction réussit, alors rpm_open() retournera une ressource de pointeur de fichier du nouveau fichier ouvert. En cas d'erreur, la fonction retournera FALSE.

Exemples

Exemple #1 Exemple avec rpm_open()

<?php

$file 
"/chemin/vers/fichier.rpm";
$rpmr rpm_open($file);

rpm_close($rpmr);

?>

Voir aussi



rpm_version

(PECL rpmreader >= 0.3.0)

rpm_versionRetourne une chaîne de caractères représentant la version courante de l'extension rpmreader

Description

string rpm_version ( void )

rpm_version() retournera la version courante de l'extension rpmreader.

Valeurs de retour

rpm_version() retournera une chaîne de caractères représentant la version de rpmreader actuellement chargée dans PHP.

Exemples

Exemple #1 Exemple avec rpm_version()

<?php

$rpmr_ver 
rpm_version();

echo 
"$rpmr_ver<br />\n";

?>


Sommaire

  • rpm_close — Ferme un fichier RPM
  • rpm_get_tag — Récupération d'un tag de l'en-tête d'un fichier RPM
  • rpm_is_valid — Teste la validité du nom du fichier d'un fichier RPM
  • rpm_open — Ouvre un fichier RPM
  • rpm_version — Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader



Shockwave Flash


Introduction

PHP offre la possibilité de créer des fichiers Shockwave Flash files via le module libswf de Paul Haeberli.

Note:

Le support SWF a été ajouté en PHP 4 RC2.

La bibliothèque libswf n'est pas disponible sous Windows. Le développement de cette bibliothèque s'est arrêté et les sources ne sont pas disponibles, rendant le portage sous d'autres plate-formes impossibles.

Pour un support SWF à jour et toujours en cours de développement, regardez du côté des fonctions MING.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.



Installation/Configuration

Sommaire


Pré-requis

Vous avez besoin de la bibliothèque libswf pour compiler PHP avec le support de cette extension. Vous pouvez télécharger la bibliothèque libswf sur » ftp://ftp.sgi.com/sgi/graphics/grafica/flash/.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/swf.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MOD_COLOR (entier)
MOD_MATRIX (entier)
TYPE_PUSHBUTTON (entier)
TYPE_MENUBUTTON (entier)
BSHitTest (float)
BSDown (float)
BSOver (float)
BSUp (float)
OverDowntoIdle (entier)
IdletoOverDown (entier)
OutDowntoIdle (entier)
OutDowntoOverDown (entier)
OverDowntoOutDown (entier)
OverUptoOverDown (entier)
OverUptoIdle (entier)
IdletoOverUp (entier)
ButtonEnter (entier)
ButtonExit (entier)
MenuEnter (entier)
MenuExit (entier)


Exemples

Sommaire


Utilisation simple

Une fois que vous avez installé correctement PHP avec le support Shockwave Flash, vous pouvez créer des fichiers Shockwave depuis PHP. Vous pourriez être surpris par la puissance de cette bibliothèque ; regardez ce code :

Exemple #1 Exemple SWF

<?php
swf_openfile
("test.swf"25625630111);
swf_ortho2(-100100, -100100);
swf_defineline(1, -700700.2);
swf_definerect(460, -107000);
swf_definerect(5, -600, -70100);
swf_addcolor(0000);

swf_definefont(10"Mod");
swf_fontsize(5);
swf_fontslant(10);
swf_definetext(11"Exemple de Flash depuis PHP !"1);

swf_pushmatrix();
swf_translate(-50800);
swf_placeobject(1160);
swf_popmatrix();

for (
$i 0$i 30$i++) {
    
$p $i/(30-1);
    
swf_pushmatrix();
    
swf_scale(1-($p*.9), 11);
    
swf_rotate(60*$p'z');
    
swf_translate(20+20*$p$p/1.50);
    
swf_rotate(270*$p,  'z');
    
swf_addcolor($p0$p/1.2, -$p);
    
swf_placeobject(150);
    
swf_placeobject(450);
    
swf_placeobject(550);
    
swf_popmatrix();
    
swf_showframe();
}

for (
$i 0$i 30$i++) {
    
swf_removeobject(50);
    if ((
$i%4) == 0) {
        
swf_showframe();
    }
}

swf_startdoaction();
swf_actionstop();
swf_enddoaction();

swf_closefile();
?>




Fonctions SWF


swf_actiongeturl

(PHP 4)

swf_actiongeturlRetourne l'URL d'une animation Shockwave Flash

Description

void swf_actiongeturl ( string $url , string $target )

Lit l'URL url, avec la destination target.

Liste de paramètres

url

L'RUL, sous la forme d'une chaîne de caractères.

target

La cible, sous la forme d'une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.



swf_actiongotoframe

(PHP 4)

swf_actiongotoframeJoue un cadre puis stoppe

Description

void swf_actiongotoframe ( int $framenumber )

swf_actiongotoframe() se déplace jusqu'au cadre framenumber, le joue, puis s'arrête.

Liste de paramètres

framenumber

Le numéro du cadre.

Valeurs de retour

Aucune valeur n'est retournée.



swf_actiongotolabel

(PHP 4)

swf_actiongotolabelJoue le cadre Flash spécifié

Description

void swf_actiongotolabel ( string $label )

swf_actiongotolabel() affiche le cadre appelé label, puis s'arrête.

Liste de paramètres

label

Le libellé du cadre.

Valeurs de retour

Aucune valeur n'est retournée.



swf_actionnextframe

(PHP 4)

swf_actionnextframeAvance d'un cadre

Description

void swf_actionnextframe ( void )

Avance d'un cadre le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_actionplay

(PHP 4)

swf_actionplayJoue l'animation Flash à partir du cadre courant

Description

void swf_actionplay ( void )

Joue l'animation Flash à partir du cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_actionprevframe

(PHP 4)

swf_actionprevframeRecule d'un cadre

Description

void swf_actionprevframe ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_actionsettarget

(PHP 4)

swf_actionsettargetFixe le contexte des actions

Description

void swf_actionsettarget ( string $target )

Fixe le contexte des actions. Vous pouvez utiliser cette fonction pour contrôler d'autres animations Flash qui seraient en fonctionnement.

Liste de paramètres

target

La cible, sous la forme d'une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.



swf_actionstop

(PHP 4)

swf_actionstopArrête l'animation Flash

Description

void swf_actionstop ( void )

Arrête l'animation Flash au cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_actiontogglequality

(PHP 4)

swf_actiontogglequalityChoisit le niveau de qualité de l'animation Flash

Description

void swf_actiontogglequality ( void )

Modifie le niveau de qualité de l'animation : haut ou bas.

Valeurs de retour

Aucune valeur n'est retournée.



swf_actionwaitforframe

(PHP 4)

swf_actionwaitforframeIgnore les actions si le cadre Flash n'est pas chargé

Description

void swf_actionwaitforframe ( int $framenumber , int $skipcount )

swf_actionwaitforframe() vérifie que le cadre framenumber a bien été chargé. Si ce n'est pas le cas, elle ignore les actions skipcount. Cela est très utile pour les séquences du type "Chargement...".

Liste de paramètres

framenumber

Le numéro du cadre.

skipcount

Le numéro des actions à ignorer.

Valeurs de retour

Aucune valeur n'est retournée.



swf_addbuttonrecord

(PHP 4)

swf_addbuttonrecordContrôle la situation, l'apparence et la zone active du bouton Flash courant

Description

void swf_addbuttonrecord ( int $states , int $shapeid , int $depth )

Permet de modifier les caractéristiques d'un bouton Flash.

Liste de paramètres

states

Définit les états du bouton autorisés : ce peut être BSHitTest, BSDown, BSOver ou BSUp.

shapeid

shapeid est l'apparence du bouton, c'est-à-dire l'objet qui représente le bouton.

depth

La profondeur de placement du bouton, dans le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec swf_addbuttonrecord()

<?php
swf_startButton
($objidTYPE_MENUBUTTON);
swf_addButtonRecord(BSDown|BSOver$buttonImageId340);
swf_onCondition(MenuEnter);
swf_actionGetUrl("http://www.example.com""_level1");
swf_onCondition(MenuExit);
swf_actionGetUrl("""_level1");
swf_endButton();
?>



swf_addcolor

(PHP 4)

swf_addcolorFixe la couleur globale d'addition Flash

Description

void swf_addcolor ( float $r , float $g , float $b , float $a )

swf_mulcolor() fixe la valeur globale de multiplication à la couleur rgba. Cette couleur est utilisée (implicitement) par swf_placeobject(), swf_modifyobject() et swf_addbuttonrecord().

La couleur d'un objet sera ajoutée à rgba lorsque l'objet est placé sur la scène.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

Ces paramètres peuvent avoir une valeur positive ou négative.

Valeurs de retour

Aucune valeur n'est retournée.



swf_closefile

(PHP 4)

swf_closefileFerme le fichier courant Shockwave Flash

Description

void swf_closefile ([ int $return_file ] )

Ferme le fichier courant, qui a été ouvert avec swf_openfile().

Liste de paramètres

return_file

Si le paramètre return_file a été fourni, il contiendra le fichier SWF fermé.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Création d'un fichier Flash simple, basé sur une entrée de l'utilisateur, et sauvegarde dans une base.

<?php

// La variable $text est fournie par l'utilisateur

// Variables globales pour l'accès à la base de données
// utilisée dans la fonction swf_savedata())
$DBHOST "localhost";
$DBUSER "sterling";
$DBPASS "secret";

swf_openfile("php://stdout"25625630111);

    
swf_definefont(10"Ligon-Bold");
        
swf_fontsize(12);
        
swf_fontslant(10);

    
swf_definetext(11$text1);

    
swf_pushmatrix();
        
swf_translate(-50800);
        
swf_placeobject(1160);
    
swf_popmatrix();

    
swf_showframe();

    
swf_startdoaction();
        
swf_actionstop();
    
swf_enddoaction();

$data swf_closefile(1);

$data ?
  
swf_savedata($data) :
  die(
"Error could not save SWF file");

// void swf_savedata(string data)
// Sauve le fichier généré dans la base de données
// pour accès ultérieur
function swf_savedata($data)
{
    global 
$DBHOST,
           
$DBUSER,
           
$DBPASS;

    
$dbh = @mysql_connect($DBHOST$DBUSER$DBPASS);

    if (!
$dbh) {
        die (
sprintf("Error [%d]: %s",
                      
mysql_errno(), mysql_error()));
    }

    
$stmt "INSERT INTO swf_files (file) VALUES ('$data')";

    
$sth = @mysql_query($stmt$dbh);

    if (!
$sth) {
        die (
sprintf("Error [%d]: %s",
                      
mysql_errno(), mysql_error()));
    }

    @
mysql_free_result($sth);
    @
mysql_close($dbh);
}
?>

Voir aussi



swf_definebitmap

(PHP 4)

swf_definebitmapDéfinit une image bitmap

Description

void swf_definebitmap ( int $objid , string $image_name )

swf_definebitmap() définit une bitmap à partir d'une image au format GIF, JPEG, RGB ou FI.

Liste de paramètres

objid

L'identifiant de l'objet SWF.

image_name

Une image GIF, JPEG, RGB ou FI. L'image sera convertie en Flash JPEG ou Flash color map.

Valeurs de retour

Aucune valeur n'est retournée.



swf_definefont

(PHP 4)

swf_definefontDéfinit une police Flash

Description

void swf_definefont ( int $fontid , string $fontname )

swf_definefont() définit la police fontname et lui affecte l'identifiant fontid. Cette police devient alors la police courante.

Liste de paramètres

fontid

L'identifiant à donner à la police.

fontname

La police définie comme police courante.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_defineline

(PHP 4)

swf_definelineDéfinit une ligne

Description

void swf_defineline ( int $objid , float $x1 , float $y1 , float $x2 , float $y2 , float $width )

Définit une ligne.

Liste de paramètres

objid

L'identifiant de l'objet.

x1

X : coordonnée du point de départ.

y1

Y : coordonnée du point de départ.

x2

X : coordonnée du point de fin.

y2

Y : coordonnée du point de fin.

width

L'épaisseur de la ligne.

Valeurs de retour

Aucune valeur n'est retournée.



swf_definepoly

(PHP 4)

swf_definepolyDéfinit un polygone Flash

Description

void swf_definepoly ( int $objid , array $coords , int $npoints , float $width )

Définit un polygone, dont les coordonnées des sommets sont placées dans le tableau coords).

Liste de paramètres

objid

L'identifiant de l'objet.

coords

Un tableau de coordonnées x et y.

npoints

Le nombre de points contenus dans le tableau coords.

width

La largeur des bords du polygone. Si width vaut 0.0, le polygone sera rempli.

Valeurs de retour

Aucune valeur n'est retournée.



swf_definerect

(PHP 4)

swf_definerectDéfinit un rectangle

Description

void swf_definerect ( int $objid , float $x1 , float $y1 , float $x2 , float $y2 , float $width )

Définit un rectangle.

Liste de paramètres

objid

L'identifiant de l'objet.

x1

X : coordonnée du point en haut, à gauche.

y1

Y : coordonnée du point en haut, à gauche.

x2

X : coordonnée du point en bas, à droite.

y2

Y : coordonnée du point en bas, à droite.

width

L'épaisseur des bords est donnée par le paramètre width. width, 0.0 le rectangle sera rempli.

Valeurs de retour

Aucune valeur n'est retournée.



swf_definetext

(PHP 4)

swf_definetextDéfinit une chaîne de texte

Description

void swf_definetext ( int $objid , string $str , int $docenter )

Définit une chaîne de texte.

Liste de paramètres

objid

L'identifiant de l'objet.

str

Le texte, sous la forme d'une chaîne de caractères.

docenter

docenter indique si la chaîne doit être centrée (valeur de 1), ou pas.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple d'un texte horizontal

<?php

$Xposition 
50;
$Yposition 50;
$Zposition 0;
$Obj_depth 1;

$char 'THIS IS THE TEXT';

swf_pushmatrix();

swf_definefont (swf_nextid(), "Mod");
swf_fontsize(10);

$secondid swf_nextid();
swf_definetext($secondid$char1);
swf_translate($Xposition$YpositionZposition);
swf_placeobject($secondid$Obj_depth);
swf_popmatrix();

?>

Voir aussi



swf_endbutton

(PHP 4)

swf_endbuttonTermine la définition du bouton Flash courant

Description

void swf_endbutton ( void )

swf_endbutton() termine la définition du bouton courant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_enddoaction

(PHP 4)

swf_enddoactionTermine l'action courante

Description

void swf_enddoaction ( void )

Termine l'action courante, démarrée par swf_startdoaction().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_endshape

(PHP 4)

swf_endshapeComplète la définition de la forme Flash courante

Description

void swf_endshape ( void )

swf_endshape() complète la définition de la forme courante.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_endsymbol

(PHP 4)

swf_endsymbolTermine la définition de symbole

Description

void swf_endsymbol ( void )

swf_endsymbol() termine la définition de symbole, qui a été commencée avec swf_startsymbol().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_fontsize

(PHP 4)

swf_fontsizeChange la taille de la police

Description

void swf_fontsize ( float $size )

Remplace la taille de la police par la taille size.

Liste de paramètres

size

La taille de la police, sous la forme d'un entier.

Valeurs de retour

Aucune valeur n'est retournée.



swf_fontslant

(PHP 4)

swf_fontslantChange l'inclinaison de la police courante

Description

void swf_fontslant ( float $slant )

swf_fontslant() fixe l'inclinaison de la police courante à slant.

Liste de paramètres

slant

Les valeurs positives créeront une inclinaison vers la droite, les négatives, vers la gauche.

Valeurs de retour

Aucune valeur n'est retournée.



swf_fonttracking

(PHP 4)

swf_fonttrackingChange l'espacement des caractères

Description

void swf_fonttracking ( float $tracking )

swf_fonttracking() change l'espacement, et lui affecte la valeur de tracking. Cette fonction sert à accroître l'espace entre les lettres et le texte. Les valeurs positives accroissent cet espace, les négatives le réduisent.

Liste de paramètres

tracking

L'espacement entre les caractères.

Valeurs de retour

Aucune valeur n'est retournée.



swf_getbitmapinfo

(PHP 4)

swf_getbitmapinfoLit les informations sur une image

Description

array swf_getbitmapinfo ( int $bitmapid )

Retourne un tableau d'informations sur l'image bitmap repérée par bitmapid.

Liste de paramètres

bitmapid

L'identifiant de l'image bitmap.

Valeurs de retour

Le tableau contient les éléments suivants :

  • "size" : la taille en octets de l'image.
  • "width" : la largeur en pixels de l'image.
  • "height" : la hauteur en pixels de l'image.



swf_getfontinfo

(PHP 4)

swf_getfontinfoRetourne des informations sur la police

Description

array swf_getfontinfo ( void )

swf_getfontinfo() retourne la hauteur du A majuscule, et du x minuscule.

Valeurs de retour

Retourne un tableau associatif avec les paramètres suivants :

  • Aheight : la hauteur du A majuscule, en pixels.
  • xheight : la hauteur du x minuscule, en pixels.



swf_getframe

(PHP 4)

swf_getframeRetourne le numéro de cadre courant

Description

int swf_getframe ( void )

swf_getframe() retourne le numéro de cadre courant.

Valeurs de retour

Retourne le numéro du cadre courant, sous la forme d'un entier.

Voir aussi



swf_labelframe

(PHP 4)

swf_labelframeNomme le cadre courant

Description

void swf_labelframe ( string $name )

swf_labelframe() donne le nom name au cadre courant.

Liste de paramètres

name

Le nom du cadre.

Valeurs de retour

Aucune valeur n'est retournée.



swf_lookat

(PHP 4)

swf_lookatDéfinit une transformation de vue

Description

void swf_lookat ( float $view_x , float $view_y , float $view_z , float $reference_x , float $reference_y , float $reference_z , float $twist )

Définit une transformation de vue.

Liste de paramètres

view_x

X : coordonnée de la position de la vue.

view_y

Y : coordonnée de la position de la vue.

view_z

Z : coordonnée de la position de la vue.

reference_x

X : coordonnée du point de référence.

reference_y

Y : coordonnée du point de référence.

reference_z

Z : coordonnée du point de référence.

twist

Contrôle la rotation autour de l'axe Z.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Rotation simple autour d'un texte

<?php

header
('Content-type: application/x-shockwave-flash');

swf_openfile("php://stdout"32020025111);

swf_ortho(-100100, -100100, -100100); // création des coordonnées 3D

swf_definefont(0"Pix3");
swf_addcolor(0001);
swf_fontsize(10);
swf_fonttracking(0.2);

for (
$i 0$i 628$i += 8) {
    
$j $i 100;
    
swf_pushmatrix();
    
swf_translate(000);
    
swf_perspective(1001010);
    
swf_lookat(sin($j) * 6050cos($j) * 600000);

    
swf_definetext (1'HotKey@'0);
    
swf_translate(-50,0,0);

    
swf_placeobject(1,10);

    
swf_definetext(2'example.com'0);
    
swf_translate(5500);
    
swf_placeobject(211);

    
swf_showframe();
    
swf_removeobject(10);
    
swf_removeobject(11);
    
swf_popmatrix();
}

swf_closefile();
?>



swf_modifyobject

(PHP 4)

swf_modifyobjectModifie un objet Flash

Description

void swf_modifyobject ( int $depth , int $how )

Modifie la position et/ou la couleur de l'objet situé à la profondeur de depth.

Liste de paramètres

depth

La profondeur, sous la forme d'un entier.

how

Détermine ce qui doit être modifié. how peut prendre les valeurs de MOD_MATRIX, MOD_COLOR ou la combinaison des deux.

MOD_COLOR utilise la couleur courante de multiplication (spécifiée par swf_mulcolor()) et la couleur courante d'addition (spécifiée par swf_addcolor()) pour colorer l'objet, et MOD_MATRIX utilise la matrice courante pour positionner l'objet.

Valeurs de retour

Aucune valeur n'est retournée.



swf_mulcolor

(PHP 4)

swf_mulcolorFixe la couleur globale de multiplication

Description

void swf_mulcolor ( float $r , float $g , float $b , float $a )

swf_mulcolor() fixe la valeur globale de multiplication à la couleur rgba. Cette couleur est utilisée (implicitement) par swf_placeobject(), swf_modifyobject() et swf_addbuttonrecord().

La couleur d'un objet sera multipliée par rgba lorsque l'objet est placé sur la scène.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

Ces paramètres peuvent être positifs ou négatifs.

Valeurs de retour

Aucune valeur n'est retournée.



swf_nextid

(PHP 4)

swf_nextidRetourne le prochain identifiant d'objet libre

Description

int swf_nextid ( void )

swf_nextid() retourne le prochain identifiant d'objet libre.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.



swf_oncondition

(PHP 4)

swf_onconditionDécrit la transition utilisée pour déclencher une liste d'actions

Description

void swf_oncondition ( int $transition )

swf_oncondition() décrit une transition qui va déclencher une liste d'actions.

Liste de paramètres

transition

Il y a plusieurs types de transitions possibles, les suivantes sont destinées aux boutons de type TYPE_MENUBUTTON :

  • IdletoOverUp
  • OverUptoIdle
  • OverUptoOverDown
  • OverDowntoOverUp
  • IdletoOverDown
  • OutDowntoIdle
  • MenuEnter (IdletoOverUp|IdletoOverDown)
  • MenuExit (OverUptoIdle|OverDowntoIdle)
Pour les types TYPE_PUSHBUTTON voici les options :
  • IdletoOverUp
  • OverUptoIdle
  • OverUptoOverDown
  • OverDowntoOverUp
  • OverDowntoOutDown
  • OutDowntoOverDown
  • OutDowntoIdle
  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)
  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

Valeurs de retour

Aucune valeur n'est retournée.



swf_openfile

(PHP 4)

swf_openfileOuvre un nouveau fichier Shockwave Flash

Description

void swf_openfile ( string $filename , float $width , float $height , float $framerate , float $r , float $g , float $b )

Crée un nouveau fichier. swf_openfile() doit être la première fonction à appeler, sous peine d'erreur mémoire (segmentation fault).

Liste de paramètres

filename

Le chemin vers le fichier SWF. Si vous voulez envoyer la sortie à l'écran, définissez ce paramètre à php://stdout.

width

La largeur de la vidéo

height

La hauteur de la vidéo

framerate

L'échantillonnage du cadre

r

Valeur du rouge pour l'arrière-plan

g

Valeur du vert pour l'arrière-plan

b

Valeur du bleu pour l'arrière-plan

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
4.0.1 Le support de php://stdout a été ajouté.

Voir aussi



swf_ortho2

(PHP 4)

swf_ortho2Définit une projection orthogonale à 2 dimensions entre les coordonnées utilisateur et le port courant

Description

void swf_ortho2 ( float $xmin , float $xmax , float $ymin , float $ymax )

Définit une projection orthogonale à 2 dimensions entre les coordonnées utilisateur et le port courant. C'est la projection par défaut des animations Flash.

Si vous souhaitez une perspective, utilisez plutôt swf_perspective().

Liste de paramètres

xmin

xmax

ymin

ymax

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • swf_ortho() - Définit une projection orthogonale entre les coordonnées utilisateur et le port courant



swf_ortho

(PHP 4 >= 4.0.1)

swf_orthoDéfinit une projection orthogonale entre les coordonnées utilisateur et le port courant

Description

void swf_ortho ( float $xmin , float $xmax , float $ymin , float $ymax , float $zmin , float $zmax )

Définit une projection orthogonale entre les coordonnées utilisateur et le port courant.

Liste de paramètres

xmin

xmax

ymin

ymax

zmin

zmax

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • swf_ortho2() - Définit une projection orthogonale à 2 dimensions entre les coordonnées utilisateur et le port courant



swf_perspective

(PHP 4)

swf_perspectiveDéfinit une projection orthogonale à 3 dimensions entre les coordonnées utilisateur et le port courant

Description

void swf_perspective ( float $fovy , float $aspect , float $near , float $far )

Définit une projection orthogonale à 3 dimensions entre les coordonnées utilisateur et le port courant.

Note:

Diverses distorsions peuvent apparaître lors de ce genre de projections, car Flash ne dispose que d'une matrice à 2 dimensions. Certaines distorsions font vraiment tâche d'encre.

Liste de paramètres

fovy

L'angle de vue de la direction y.

aspect

Le paramètre aspect doit être choisi pour correspondre au ratio de la vue utilisée.

near

Le plan adjacent proche.

far

Le plan adjacent distant.

Valeurs de retour

Aucune valeur n'est retournée.



swf_placeobject

(PHP 4)

swf_placeobjectPlace un objet sur la scène

Description

void swf_placeobject ( int $objid , int $depth )

Place l'objet objid dans le cadre courant, à la profondeur depth.

swf_placeobject() utilise la couleur courante de multiplication (spécifiée par swf_mulcolor()) et la couleur courante d'addition (spécifiée par swf_addcolor()) pour colorer l'objet, et utilise la matrice courante pour positionner l'objet.

Liste de paramètres

objid

L'identifiant de l'objet.

depth

Doivent être compris entre 1 et 65535.

Valeurs de retour

Aucune valeur n'est retournée.



swf_polarview

(PHP 4)

swf_polarviewDéfinit le point de vue de l'utilisateur en coordonnées polaires

Description

void swf_polarview ( float $dist , float $azimuth , float $incidence , float $twist )

swf_polarview() définit la position de l'utilisateur en coordonnées polaires.

Liste de paramètres

dist

La distance entre le point de vue et l'origine.

azimuth

Définit l'angle azimutal dans le plan x,y mesuré en distance depuis l'axe y.

incidence

Définit l'angle d'incidence dans le plan y,z, mesuré en distance depuis l'axe z.

twist

L'angle de rotation du point de vue sur la ligne de vue, en utilisant la règle de la main droite.

Valeurs de retour

Aucune valeur n'est retournée.



swf_popmatrix

(PHP 4)

swf_popmatrixDépile la matrice de transformation

Description

void swf_popmatrix ( void )

Dépile la matrice de transformation.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_posround

(PHP 4)

swf_posroundActive l'approximation des translations d'objets Flash

Description

void swf_posround ( int $round )

swf_posround() active ou désactive l'approximation lors des translations, lorsque des objets sont placés ou déplacés. Il y a des situations où le texte devient plus lisible lorsque l'approximation a été activée.

Liste de paramètres

round

Active l'approximation (1) ou la désactive (0).

Valeurs de retour

Aucune valeur n'est retournée.



swf_pushmatrix

(PHP 4)

swf_pushmatrixEmpile la matrice de transformations courante dans la pile

Description

void swf_pushmatrix ( void )

swf_pushmatrix() empile la matrice de transformations courante dans la pile.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_removeobject

(PHP 4)

swf_removeobjectEnlève un objet

Description

void swf_removeobject ( int $depth )

Enlève le dernier objet situé à la profondeur depth de la scène.

Liste de paramètres

depth

La profondeur, sous la forme d'un entier.

Valeurs de retour

Aucune valeur n'est retournée.



swf_rotate

(PHP 4)

swf_rotateRotation de la transformation courante

Description

void swf_rotate ( float $angle , string $axis )

swf_rotate() fait subir la rotation d'angle angle, autour de l'axe axis.

Liste de paramètres

angle

L'angle de rotation.

axis

Les valeurs possibles pour axis sont : 'x' (abscisses), 'y' (ordonnées) ou 'z' (cote).

Valeurs de retour

Aucune valeur n'est retournée.



swf_scale

(PHP 4)

swf_scaleHomothétie

Description

void swf_scale ( float $x , float $y , float $z )

swf_scale() fait une mise à l'échelle.

Liste de paramètres

x

Facteur X.

y

Facteur Y.

z

Facteur Z.

Valeurs de retour

Aucune valeur n'est retournée.



swf_setfont

(PHP 4)

swf_setfontChange la police courante

Description

void swf_setfont ( int $fontid )

swf_setfont() remplace la police courante par la police repérée par l'identifiant fontid.

Liste de paramètres

fontid

L'identifiant de la police.

Valeurs de retour

Aucune valeur n'est retournée.



swf_setframe

(PHP 4)

swf_setframeFixe le cadre courant

Description

void swf_setframe ( int $framenumber )

swf_setframe() sélectionne le cadre framenumber comme cadre actif.

Liste de paramètres

framenumber

Le numéro du cadre à définir.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_shapearc

(PHP 4)

swf_shapearcDessine un arc de cercle

Description

void swf_shapearc ( float $x , float $y , float $r , float $ang1 , float $ang2 )

Dessine un arc de cercle.

Liste de paramètres

x

X : coordonnée du centre.

y

Y : coordonnée du centre.

r

Le radius de l'arc.

ang1

L'angle de départ.

ang2

L'angle de fin.

Valeurs de retour

Aucune valeur n'est retournée.



swf_shapecurveto3

(PHP 4)

swf_shapecurveto3Dessine une courbe Bézier cubique

Description

void swf_shapecurveto3 ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Dessine une courbe de Bézier cubique, en utilisant les points de coordonnées fournis.

La position finale devient alors la position courante.

Liste de paramètres

x1

X : coordonnée du premier point de contrôle.

y1

Y : coordonnée du premier point de contrôle.

x2

X : coordonnée du second point de contrôle.

y2

Y : coordonnée du second point de contrôle.

x3

X : coordonnée du point final.

y3

Y : coordonnée du point final.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_shapecurveto

(PHP 4)

swf_shapecurvetoDessine une courbe de Bézier quadratique entre deux points

Description

void swf_shapecurveto ( float $x1 , float $y1 , float $x2 , float $y2 )

Dessine la courbe de Bézier quadratique entre les points de coordonnées fournis.

La position finale devient la position courante.

Liste de paramètres

x1

X : coordonnée du premier point.

y1

Y : coordonnée du premier point.

x2

X : coordonnée du second point.

y2

Y : coordonnée du second point.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_shapefillbitmapclip

(PHP 4)

swf_shapefillbitmapclipChoisit le mode de remplissage Flash par texture

Description

void swf_shapefillbitmapclip ( int $bitmapid )

Choisit le mode de remplissage par texture : les espaces vides seront remplis avec la bitmap bitmapid.

Liste de paramètres

bitmapid

L'identifiant du bitmap.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_shapefillbitmaptile

(PHP 4)

swf_shapefillbitmaptileChoisit le mode de remplissage par texture Flash répétée

Description

void swf_shapefillbitmaptile ( int $bitmapid )

swf_shapefillbitmaptile() active le mode de remplissage par texture : les espaces vides seront remplis avec la bitmap bitmapid, répétée autant de fois qu'il le faut (mode carrelage).

Liste de paramètres

bitmapid

L'identifiant du bitmap.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_shapefilloff

(PHP 4)

swf_shapefilloffDésactive le remplissage de formes Flash

Description

void swf_shapefilloff ( void )

swf_shapefilloff() désactive le remplissage de la forme courante.

Valeurs de retour

Aucune valeur n'est retournée.



swf_shapefillsolid

(PHP 4)

swf_shapefillsolidFixe la couleur pour le style courant de remplissage Flash

Description

void swf_shapefillsolid ( float $r , float $g , float $b , float $a )

swf_shapefillsolid() fixe la couleur pour le style courant de remplissage à rgba.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

Valeurs de retour

Aucune valeur n'est retournée.



swf_shapelinesolid

(PHP 4)

swf_shapelinesolidFixe le style courant de ligne

Description

void swf_shapelinesolid ( float $r , float $g , float $b , float $a , float $width )

swf_shapelinesolid() permet de choisir le style de ligne, à savoir la couleur et la largeur.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

width

L'épaisseur de la ligne. Si défini à 0.0, aucune ligne ne sera tracée.

Valeurs de retour

Aucune valeur n'est retournée.



swf_shapelineto

(PHP 4)

swf_shapelinetoDessine une ligne

Description

void swf_shapelineto ( float $x , float $y )

Dessine une ligne entre la position courante et le point de coordonnées fournis. La position finale devient alors la position courante.

Liste de paramètres

x

X : coordonnée de la cible.

y

Y : coordonnée de la cible.

Valeurs de retour

Aucune valeur n'est retournée.



swf_shapemoveto

(PHP 4)

swf_shapemovetoChange la position courante

Description

void swf_shapemoveto ( float $x , float $y )

swf_shapemoveto() fixe la position courante au point de coordonnées fournis.

Liste de paramètres

x

X : coordonnée de la cible.

y

Y : coordonnée de la cible.

Valeurs de retour

Aucune valeur n'est retournée.



swf_showframe

(PHP 4)

swf_showframeAffiche le cadre courant

Description

void swf_showframe ( void )

swf_showframe() affiche le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.



swf_startbutton

(PHP 4)

swf_startbuttonCommence la définition d'un bouton

Description

void swf_startbutton ( int $objid , int $type )

Commence la définition d'un bouton.

Liste de paramètres

objid

L'identifiant de l'objet.

type

Peut prendre les valeurs de TYPE_MENUBUTTON ou TYPE_PUSHBUTTON. La constante TYPE_MENUBUTTON permet au focus de traverser lorsque la souris est cliquée, alors que TYPE_PUSHBUTTON ne le permet pas.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_startdoaction

(PHP 4)

swf_startdoactionCommence la description d'une liste d'actions pour le cadre courant

Description

void swf_startdoaction ( void )

swf_startdoaction() commence la description d'une liste d'actions pour le cadre courant. Cette fonction doit être appelée avant que les actions ne soient définies pour le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_startshape

(PHP 4)

swf_startshapeCommence une forme complexe

Description

void swf_startshape ( int $objid )

Commence une forme complexe.

Liste de paramètres

objid

L'identifiant de l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • swf_endshape() - Complète la définition de la forme Flash courante



swf_startsymbol

(PHP 4)

swf_startsymbolDéfinit un symbole

Description

void swf_startsymbol ( int $objid )

swf_startsymbol() définit un identifiant d'objet comme symbole. Les symboles sont des petites animations Flash qui peuvent être jouées simultanément.

Liste de paramètres

objid

L'identifiant de l'objet que vous voulez définir comme symbole.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



swf_textwidth

(PHP 4)

swf_textwidthRetourne la longueur d'une chaîne

Description

float swf_textwidth ( string $str )

swf_textwidth() retourne la longueur de la chaîne str, en pixels, en utilisant la police courante.

Liste de paramètres

str

La chaîne de caractères.

Valeurs de retour

Retourne la longueur de la ligne, sous la forme d'un nombre décimal.



swf_translate

(PHP 4)

swf_translateDéplace la transformation courante

Description

void swf_translate ( float $x , float $y , float $z )

Déplace la transformation courante.

Liste de paramètres

x

Valeur X.

y

Valeur Y.

z

Valeur Z.

Valeurs de retour

Aucune valeur n'est retournée.



swf_viewport

(PHP 4)

swf_viewportSélectionne une nouvelle zone pour un dessin ultérieur

Description

void swf_viewport ( float $xmin , float $xmax , float $ymin , float $ymax )

swf_viewport() sélectionne une nouvelle zone pour y dessiner ultérieurement. La zone est définie de xmin à xmax et de ymin à ymax. Si cette fonction n'est pas appelée, les valeurs par défaut sont celles de l'écran courant.

Liste de paramètres

xmin

xmax

ymin

ymax

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire





Extensions sur le contrôle des processus


Système d'exécution de programme


Introduction

Ces fonctions donnent la possibilité d'exécuter des commandes sur le système lui-même, tout en sécurisant les commandes utilisées.

Note:

Toutes les fonctions d'exécution de programmes appèlent les commandes via cmd.exe sous Windows. Par conséquent, l'utilisateur appelant ces fonctions doit avoir les privilèges appropriés pour les exécuter. La seule exception est la fonction proc_open() avec l'option bypass_shell.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit une ressource, retournée par la fonction proc_open().




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions sur l'exécution de programmes externes

Notes

Avertissement

Les fichiers ouverts avec un verrou (tout spécialement les sessions ouvertes) doivent être fermés avant l'exécution d'un programme en arrière plan.

Voir aussi

Ces fonctions sont complétées par l'opérateur guillemets obliques. De plus, lorsque le safe mode est activé, vous devez configurer l'option safe_mode_exec_dir.


escapeshellarg

(PHP 4 >= 4.0.3, PHP 5)

escapeshellargProtège une chaîne de caractères pour utilisation en ligne de commande

Description

string escapeshellarg ( string $arg )

escapeshellarg() ajoute des guillemets simples autour des chaînes de caractères, et ajoute des guillemets puis échappe les guillemets simples de la chaîne. Cela permet de faire passer directement le paramètre arg comme argument Shell, tout en assurant un maximum de sécurité. escapeshellarg() doit être utilisée pour traiter individuellement chacun des arguments à passer au Shell. Les fonctions Shell sont exec(), system() et les opérateurs guillemets obliques.

Liste de paramètres

arg

L'argument à échapper.

Valeurs de retour

La chaîne échappée.

Exemples

Exemple #1 Exemple avec escapeshellarg()

<?php
system
('ls '.escapeshellarg($dir));
?>

Voir aussi



escapeshellcmd

(PHP 4, PHP 5)

escapeshellcmdProtège les caractères spéciaux du Shell

Description

string escapeshellcmd ( string $command )

escapeshellcmd() échappe tous les caractères de la chaîne command qui pourraient avoir une signification spéciale dans une commande Shell. Cette fonction permet de s'assurer que la commande sera correctement passée à l'exécuteur de commande Shell exec() et system(), ou encore à guillemets obliques.

Les caractères suivants seront échappés : #&;`|*?~<>^()[]{}$\, \x0A et \xFF. ' et " sont échappés que s'ils ne sont pas par paire. Sous Windows, tous ces caractères ainsi que % sont remplacés par un espace.

Liste de paramètres

command

La commande à échapper.

Valeurs de retour

La chaîne échappée.

Exemples

Exemple #1 Exemple avec escapeshellcmd()

<?php
$e 
escapeshellcmd($userinput);

// Ici, peut importe si $e contient des espaces
system("echo $e");
$f escapeshellcmd($filename);

// et ici, on s'en préoccupe, nous utilisons donc des guillements
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\"");
?>

Voir aussi



exec

(PHP 4, PHP 5)

execExécute un programme externe

Description

string exec ( string $command [, array &$output [, int &$return_var ]] )

exec() exécute la commande command.

Liste de paramètres

command

La commande à exécuter.

output

Si l'argument output est présent, alors ce tableau sera rempli par les lignes retournées par la commande. Les espaces de début et de fin de chaîne, comme \n, ne seront pas inclus dans ce tableau. Il faut noter que si ce tableau contient des éléments, exec() ajoutera les nouvelles lignes à la fin du tableau. Si vous ne voulez pas que les nouveaux éléments soient concaténés, utilisez la fonction unset() avec ce tableau avant de le passer à exec().

return_var

Si l'argument return_var est présent en plus du tableau output, alors le statut de retour d'exécution sera inscrit dans cette variable.

Valeurs de retour

La dernière ligne du résultat de la commande. Pour exécuter une commande et obtenir le résultat sans aucun traitement, il faut utiliser la fonction passthru().

Pour récupérer la sortie de la commande exécutée, assurez-vous de définir et d'utiliser le paramètre output.

Exemples

Exemple #1 Exemple avec exec()

<?php
// Affiche le nom d'utilisateur qui fait tourner le processus php/http
// (sur un système ayant "whoami" dans le chemin d'exécutables)
echo exec('whoami');
?>

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note:

Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi



passthru

(PHP 4, PHP 5)

passthruExécute un programme externe et affiche le résultat brut

Description

void passthru ( string $command [, int &$return_var ] )

passthru() est similaire à la fonction exec() car les deux exécutent la commande command. Si l'argument return_var est présent, le code de statut de réponse UNIX y sera placé. Cette fonction doit être utilisée de préférence aux commandes exec() ou system() lorsque le résultat attendu est de type binaire, et doit être passé tel quel à un navigateur. Une utilisation classique de cette fonction est l'exécution de l'utilitaire pbmplus qui peut retourner une image. En fixant le résultat du contenu (Content-Type) à image/gif puis en appelant pbmplus pour obtenir une image gif, vous pouvez créer des scripts PHP qui retournent des images.

Liste de paramètres

command

La commande à exécuter.

return_var

Si l'argument return_var est présent, le statut retourné par la commande Unix sera placé dans cette variable.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note:

Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi



proc_close

(PHP 4 >= 4.3.0, PHP 5)

proc_close Ferme un processus ouvert par proc_open()

Description

int proc_close ( resource $process )

proc_close() est similaire à pclose() hormis le fait qu'elle fonctionne avec les processus ouverts par proc_open(). proc_close() attend que le processus process se termine, puis retourne son code de sortie. Si vous avez des pipes ouverts avec ce processus, il faut les fermer avec fclose() avant d'appeler cette fonction pour éviter des verrouillages : le processus peut ne pas pouvoir sortir tant que les pipes sont ouverts.

Liste de paramètres

process

La resource proc_open() à fermer

Valeurs de retour

Retourne le code de sortie du processus ou -1 en cas d'echec.

Notes

Note: Unix seulement:

proc_close() est implémenté en interne en utilisant l'appel système waitpid(3). Pour obtenir le code de statut réel de sortie, la fonction pcntl_wexitstatus() devrait être utilisée.



proc_get_status

(PHP 5)

proc_get_status Lit les informations concernant un processus ouvert par proc_open()

Description

array proc_get_status ( resource $process )

proc_get_status() lit les données concernant le processus process créé avec la fonction proc_open().

Liste de paramètres

process

La ressource proc_open() à évaluer.

Valeurs de retour

Un tableau contenant les informations collectées en cas de succès, et FALSE en cas d'échec. Le tableau retourné contient les éléments suivants :

ÉlémentTypeDescription
command chaîne de caractères La commande passée à la fonction proc_open().
pid entier identifiant du processus
running booléen TRUE si le processus fonctionne toujours et FALSE s'il est terminé.
signaled booléen TRUE si le processus fils a été terminé par un signal inconnu. Toujours défini à FALSE sous Windows.
stopped booléen TRUE si le processus fils a été stoppé par un signal. Toujours défini à FALSE sous Windows.
exitcode entier Le code retourné par le processus (uniquement si l'élément running vaut FALSE). Seul le premier appel à cette fonction retourne une valeur réelle, les prochains appels retournent -1.
termsig entier le numéro du signal qui a causé la fin de l'exécution du processus fils (uniquement significatif si signaled vaut TRUE).
stopsig entier le numéro du signal qui a causé l'arrêt de l'exécution du processus fils (uniquement significatif si signaled vaut TRUE).

Voir aussi

  • proc_open() - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties



proc_nice

(PHP 5)

proc_niceChange la priorité d'exécution du processus courant

Description

bool proc_nice ( int $increment )

proc_nice() modifie la priorité du processus courant par le paramètre spécifié increment. Un paramètre increment positif atténuera la priorité du processus courant, tandis qu'une valeur négative increment augmentera la priorité.

proc_nice() n'est pas lié à proc_open() et ses fonctions associées d'aucune façon.

Liste de paramètres

increment

La valeur de l'incrément de la priorité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si une erreur survient, par exemple, si l'utilisateur qui tente de changer la priorité d'un processus n'a pas suffisamment de droit pour le faire, une erreur de niveau E_WARNING est générée et FALSE est retourné.

Notes

Note: Disponibilité

proc_nice() n'est disponible que sur les systèmes qui disposent de capacités NICE. NICE est compatible avec : SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. Par exemple, proc_nice() n'est pas disponible sous Windows.



proc_open

(PHP 4 >= 4.3.0, PHP 5)

proc_open Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties

Description

resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )

proc_open() est similaire à popen() mais fournit un plus grand degré de contrôle sur l'exécution du programme.

Liste de paramètres

cmd

La commande à exécuter

descriptorspec

Un tableau indexé, dont les clés représentent le numéro de descripteur et la valeur la méthode avec laquelle PHP va passer ce descripteur au processus fils. 0 est stdin, 1 est stdout, et 2 est stderr.

Chaque élément peut être :

  • Un tableau décrivant le pipe à passer au processus. Le premier élément est le type du descripteur et le second est une option pour le type donné. Les types valides sont pipe (le second élément est soit r pour passer la fin de lecture du pipe au processus, ou w pour passer la fin d'écriture) et file (le second élément est le nom de fichier).
  • Une ressource de flux représentant un descripteur de fichier (e.g. un fichier ouvert, un socket, ou bien STDIN).

Les numéros de pointeurs de fichiers ne sont pas limités à 0, 1 et 2 - vous pouvez spécifier n'importe quel numéro de descripteur valide, et il sera passé au processus fils. Cela permettra à votre script d'inter opérer avec d'autres scripts, et d'être exécuté comme "co-processus". En particulier, c'est très pratique pour passer des mots de passes à des programmes comme PGP, GPG et openssl, avec une méthode très protégée. C'est aussi pratique pour lire des informations de statut fournies par ces programmes, sur des descripteurs auxiliaires.

pipes

Doit être défini en un tableau indexé de pointeurs de fichiers qui correspondent à la fin de n'importe quel descripteur PHP qui sont créés.

cwd

Le dossier initial de travail de la commande. Cela doit être un chemin absolu vers le dossier ou NULL si vous voulez utiliser la valeur par défaut (le dossier de travail du processus courant PHP)

env

Un tableau contenant les variables d'environnement pour la commande qui doit être exécutée, ou NULL pour utiliser le même environnement que le processus PHP courant

other_options

Vous permet de spécifier des options supplémentaires. Les options actuellement supportées sont :

  • suppress_errors (windows uniquement): suppression des erreurs générées par cette fonction lorsque définit à TRUE
  • bypass_shell (windows uniquement): bypass du shell cmd.exe lorsque définit à TRUE
  • context: contexte du flux utilisé lors de l'ouverture des fichiers (créé avec la fonction stream_context_create())
  • binary_pipes: ouverture des pipes en mode binaire, au lieu d'utiliser l'encodage habituel stream_encoding

Valeurs de retour

Retourne une ressource représentant le processus, qui pourra être utilisé par la fonction proc_close() lorsque vous n'en aurez plus besoin. En cas d'échec, FALSE sera retourné.

Historique

Version Description
5.2.1 Ajout de l'option bypass_shell au paramètre other_options.
5.0.0. Ajout des paramètres cwd, env et other_options.

Exemples

Exemple #1 Exemple avec proc_open()

<?php
$descriptorspec 
= array(
   
=> array("pipe""r"),  // // stdin est un pipe où le processus va lire
   
=> array("pipe""w"),  // stdout est un pipe où le processus va écrire
   
=> array("file""/tmp/error-output.txt""a"// stderr est un fichier
);

$cwd '/tmp';
$env = array('quelques_options' => 'aeiou');

$process proc_open('php'$descriptorspec$pipes$cwd$env);

if (
is_resource($process)) {
    
// $pipes ressemble à :
    // 0 => fichier accessible en écriture, connecté à l'entrée standard du processus fils
    // 1 => fichier accessible en lecture, connecté à la sortie standard du processus fils
    // Toute erreur sera ajoutée au fichier /tmp/error-output.txt

    
fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    
fclose($pipes[0]);

    echo 
stream_get_contents($pipes[1]);
    
fclose($pipes[1]);

    
// Il est important que vous fermiez les pipes avant d'appeler
    // proc_close afin d'éviter un verrouillage.
    
$return_value proc_close($process);

    echo 
"La commande a retourné $return_value\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
La commande a retourné 0

Notes

Note:

Compatibilité Windows : les descripteurs au-delà de 2 (stderr) sont accessibles au processus fils, sous la forme de pointeurs hérités, mais comme l'architecture Windows n'associe pas de nombre aux descripteurs de bas niveau, le processus fils n'a, actuellement, aucun moyen d'y accéder. D'un autre coté, stdin, stdout et stderr fonctionnent comme d'habitude.

Note:

Si vous n'avez besoin que d'un processus unidirectionnel, popen() sera plus pratique, car plus simple à utiliser.

Voir aussi



proc_terminate

(PHP 5)

proc_terminate Termine un processus ouvert par proc_open()

Description

bool proc_terminate ( resource $process [, int $signal = 15 ] )

proc_terminate() envoie un signal au processus process (créé avec proc_open()) pour lui indiquer qu'il doit se terminer. proc_terminate() se termine immédiatement après, et n'attend pas l'arrêt réel du processus.

proc_terminate() vous permet de conclure un processus, et de continuer les autres tâches. Vous pouvez tester la présence de votre processus en utilisant la fonction proc_get_status().

Liste de paramètres

process

La ressource proc_open() qui sera fermée.

signal

Ce paramètre optionnel n'est utile que sur les plates-formes POSIX : vous pouvez alors spécifier un signal à envoyer au processus, en utilisant l'appel système kill(2). La valeur par défaut est alors SIGTERM.

Valeurs de retour

Retourne le code de sortie du processus.

Historique

Version Description
5.2.2 Les versions précédentes détruisent la ressource resource fournie.

Voir aussi

  • proc_open() - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties
  • proc_close() - Ferme un processus ouvert par proc_open
  • proc_get_status() - Lit les informations concernant un processus ouvert par proc_open



shell_exec

(PHP 4, PHP 5)

shell_exec Exécute une commande via le Shell et retourne le résultat sous forme de chaîne

Description

string shell_exec ( string $cmd )

shell_exec() est identique aux guillemets obliques.

Liste de paramètres

cmd

La commande à exécuter.

Valeurs de retour

La sortie de l'exécution de la commande.

Exemples

Exemple #1 Exemple avec shell_exec()

<?php
$output 
shell_exec('ls -lart');
echo 
"<pre>$output</pre>";
?>

Notes

Note:

Cette fonction est désactivée par le safe-mode

Voir aussi



system

(PHP 4, PHP 5)

system Exécute un programme externe et affiche le résultat

Description

string system ( string $command [, int &$return_var ] )

system() est la version PHP de la fonction C qui exécute la commande command et retourne le résultat.

L'appel à la fonction system() tente également d'actualiser le buffer de sortie du serveur web après chaque ligne de sortie si PHP fonctionne en tant que module serveur.

Si vous devez exécuter une commande et récupérer tout le résultat sans aucune intervention, utilisez la fonction passthru().

Liste de paramètres

command

La commande à exécuter.

return_var

Si l'argument return_var est présent, alors le statut retourné de l'exécution de la commande sera écrit dans cette variable.

Valeurs de retour

Retourne la dernière ligne de la sortie de la commande en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec system()

<?php
echo '<pre>';

 
// Affiche le résultat de la commande "ls" et retourne
 // la dernière lignes dans $last_line. Stocke la valeur retournée
 // par la commande shelle dans $retval.
 
$last_line system('ls'$retval);

 
// Affichage d'autres informations
 
echo '
</pre>
<hr />La dernière ligne lue : ' 
$last_line '
<hr />Valeur retournée : ' 
$retval;
?>

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note:

Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi


Sommaire

  • escapeshellarg — Protège une chaîne de caractères pour utilisation en ligne de commande
  • escapeshellcmd — Protège les caractères spéciaux du Shell
  • exec — Exécute un programme externe
  • passthru — Exécute un programme externe et affiche le résultat brut
  • proc_close — Ferme un processus ouvert par proc_open
  • proc_get_status — Lit les informations concernant un processus ouvert par proc_open
  • proc_nice — Change la priorité d'exécution du processus courant
  • proc_open — Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties
  • proc_terminate — Termine un processus ouvert par proc_open
  • shell_exec — Exécute une commande via le Shell et retourne le résultat sous forme de chaîne
  • system — Exécute un programme externe et affiche le résultat



Expect


Introduction

Cette extension autorise l'interaction avec des processus à travers PTY. Vous pouvez utiliser l'enveloppe expect:// avec les fonctions de système de fichiers ce qui fourni une interface simple et plus intuitive.



Installation/Configuration

Sommaire


Pré-requis

Ce module utilise les fonctions de la bibliothèque » expect. Vous avez besoin de la libexpect version >= 5.43.0.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/expect.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support expect en utilisant l'option de configuration --with-expect[=DIR] .

Les utilisateurs de Windows pourront activer php_expect.dll à l'intérieur du php.ini afin d'utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Afin de configurer l'extension expect, il y a des options de configuration dans le fichier de configuration php.ini.

Options de configuration Expect
Nom Défaut Modifiable Historique
expect.timeout "10" PHP_INI_ALL  
expect.loguser "1" PHP_INI_ALL  
expect.logfile "" PHP_INI_ALL  
expect.match_max "" PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

expect.timeout entier

La période de dépassement du temps pour attendre pour les données, lors de l'utilisation de la fonction expect_expectl().

Une valeur de "-1" désactive le dépassement de temps.

Note:

Une valeur de "0" fait retourner immédiatement la fonction expect_expectl().

expect.loguser booléen

Si expect devrait envoyer toutes les données de sortie à partir du démarrage du processus à stdout. Puisque les programmes interactifs affiche typiquement leur entrée, ceci suffit habituellement pour montrer les deux côtés de la conversation.

expect.logfile string

Nom du fichier, où la sortie à partir du démarrage du processus devrait être écrite. Si ce fichier n'existe pas, il sera créé.

Note:

Si cette configuration n'est pas vide, la sortie est écrite peu importe la valeur de expect.loguser.

expect.match_max integer

Modifie la taille par défaut (200 octets) du buffer utilisé pour faire correspondre les astérisques dans le masque.



Types de ressources

expect_popen() retourne un flux ouvert PTY utilisé par la fonction expect_expectl().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

EXP_GLOB (entier)
Indique que le motif est un motif de style de chaîne de caractères glob.
EXP_EXACT (entier)
Indique que le motif est une chaîne exacte.
EXP_REGEXP (entier)
Indique que le motif est un motif d'expression rationnelle.
EXP_EOF (entier)
Valeur, retournée par expect_expectl(), lorsque EOF est atteint.
EXP_TIMEOUT (entier)
Valeur, retournée par expect_expectl() sur le dépassement du temps en secondes, spécifiée par la valeur expect.timeout
EXP_FULLBUFFER (entier)
Valeur, retournée par expect_expectl() si aucun motif n'a été trouvé.


Exemples

Sommaire


Exemples d'Utilisation avec Expect

Exemple #1 Exemple d'Utilisation avec Expect

Cet exemple se connecte à un hôte distant via SSH et affiche le temps d'utilisation distant.

<?php
ini_set
("expect.loguser""Off");

$stream fopen("expect://ssh root@remotehost uptime""r");

$cases = array (
    array (
=> "password:"=> PASSWORD)
);

switch (
expect_expectl ($stream$cases)) {
    case 
PASSWORD:
        
fwrite ($stream"password\n");
        break;

    default:
        die (
"Une erreur s'est produite lors de la connexion à l'hôte distant !\n");
}

while (
$line fgets($stream)) {
      print 
$line;
}
fclose ($stream);
?>

L'exemple suivant permet de se connecter à un hôte distant, détermine si le système d'exploitation distant est 32 ou 64 bits, puis, effectue une mise à jour d'un paquet spécifique.

Exemple #2 Autre exemple d'utilisation d'Expect

<?php
ini_set
("expect.timeout", -1);
ini_set("expect.loguser""Off");

$stream expect_popen("ssh root@remotehost");

while (
true) {
    switch (
expect_expectl ($stream, array (
            array (
"password:"PASSWORD), // SSH demande un mot de passe
            
array ("yes/no)?"YESNO), // SSH demande si l'on souhaite stocker l'hôte
            
array ("~$ "SHELLEXP_EXACT), // Nous avons récupéré un shell !
    
))) {
        case 
PASSWORD:
            
fwrite ($stream"secret\n");
            break;

        case 
YESNO:
            
fwrite ($stream"yes\n");
            break;

        case 
SHELL:
            
fwrite ($stream"uname -a\n");
            while (
true) {
                    switch (
expect_expectl ($stream, array (
                            array (
"~$ "SHELLEXP_EXACT), // Nous sommes dans le shell!
                            
array ("^Linux.*$"UNAMEEXP_REGEXP), // Affichage de la commande uname -a
                    
), $match)) {
                        case 
UNAME:
                            
$uname .= $match[0];
                            break;

                        case 
SHELL:
                            
// Exécution de la mise à jour :
                            
if (strstr ($uname"x86_64")) {
                                    
fwrite ($stream"rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
                            } else {
                                    
fwrite ($stream"rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
                            }
                            
fwrite ($stream"exit\n");
                            break 
2;

                        case 
EXP_TIMEOUT:
                        case 
EXP_EOF:
                            break 
2;

                        default:
                            die (
"Une erreur est survenue !\n");
                    }
            }
            break 
2;

        case 
EXP_TIMEOUT:
        case 
EXP_EOF:
            break 
2;

        default:
            die (
"Une erreur est survenue !\n");
    }
}

fclose ($stream);
?>



Fonctions Expect


expect_expectl

(PECL expect >= 0.1.0)

expect_expectlAttend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu

Description

int expect_expectl ( resource $expect , array $cases [, array &$match ] )

Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu.

Si le paramètre match est fourni, alors il est rempli avec le résultat de la recherche. La chaîne de caractères de recherche peut être trouvée dans match[0]. Les sous-chaînes de recherche (selon les parenthèses) dans le motif original peuvent être trouvées dans match[1], match[2] et ainsi de suite jusqu'à match[9] (limité par libexpect).

Liste de paramètres

expect

Un flux de données Expect, ouvert précédemment avec expect_popen().

cases

Un tableau des cas expect. Chaque cas expect est un tableau indexé, comme décrit dans la table suivante :

Expect Case Array
Clé Index Type Valeur Description Est Obligatoire Valeur par Défaut
0 string motif, qui sera vérifié avec la sortie du flux oui  
1 mixed valeur, qui sera retournée par cette fonction, si le motif concorde oui  
2 integer type de motif, un de : EXP_GLOB, EXP_EXACT ou EXP_REGEXP non EXP_GLOB

Valeurs de retour

Retourne une valeur associée avec le motif qui correspond.

En cas d'échec, cette fonction retourne : EXP_EOF, EXP_TIMEOUT ou EXP_FULLBUFFER

Historique

Version Description
0.2.1 Avant la version 0.2.1, dans le paramètre match, un résultat en chaîne de caractères était retourné et non un tableau de sous-chaînes de résultat.

Exemples

Exemple #1 Exemple avec expect_expectl()

<?php
// Copie le fichier à partir de l'hôte distant :
ini_set ("expect.timeout"30);

$stream fopen ("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt""r");

$cases = array (
  array (
=> "password:"=> PASSWORD),
  array (
=> "yes/no)?"=> YESNO)
);

while (
true) {
 switch (
expect_expectl ($stream$cases))
 {
  case 
PASSWORD:
   
fwrite ($stream"password\n");
   break;

  case 
YESNO:
   
fwrite ($stream"yes\n");
   break;

  case 
EXP_TIMEOUT:
  case 
EXP_EOF:
   break 
2;

  default:
   die (
"Une erreur s'est produite !\n");
 }
}

fclose ($stream);
?>

Voir aussi

  • expect_popen() - Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus



expect_popen

(PECL expect >= 0.1.0)

expect_popenExécute une commande via le shell Bourne, et ouvre le flux PTY au processus

Description

resource expect_popen ( string $command )

Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus.

Liste de paramètres

command

Commande à exécuter.

Valeurs de retour

Retourne un flux de données PTY ouvert au processus stdio, stdout et stderr.

En cas d'erreur, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec expect_popen()

<?php
// Identification au répertoire CVS de PHP.net
$stream expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream"phpfi\n");
fclose ($stream);
?>

Voir aussi

  • popen() - Crée un processus de pointeur de fichier


Sommaire

  • expect_expectl — Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu
  • expect_popen — Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus



Libevent


Introduction

Libevent est une bibliothèque qui fournit un mécanisme permettant d'exécuter une fonction de rappel lorsqu'un événement spécifique intervient sur un descripteur de fichier ou après qu'un délai d'expiration a été atteint.

Pour plus d'informations sur Libevent, rendez-vous sur » http://www.monkey.org/~provos/libevent/.



Installation/Configuration

Sommaire


Pré-requis

Cette extension nécessite la bibliothèque » libevent. La version minimale requise est la version 1.4.0.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/libevent.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Il y a plusieurs types de ressources utilisés par cette extension. Ces ressources sont les événements, la base des événements ainsi que les événements mis en tampon.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

EV_TIMEOUT (integer)
EV_READ (integer)
EV_WRITE (integer)
EV_SIGNAL (integer)
EV_PERSIST (integer)
EVLOOP_NONBLOCK (integer)
EVLOOP_ONCE (integer)


Exemples

Exemple #1 Surveillance de STDIN en utilisant l'API basique

<?php

function print_line($fd$events$arg)
{
    static 
$max_requests 0;

    
$max_requests++;

    if (
$max_requests == 10) {
        
// Sort de la boucle après 10 écritures
        
event_base_loopexit($arg[1]);
    }

    
// Affiche la ligne
    
echo  fgets($fd);
}

// Création de la base et de l'événement
$base event_base_new();
$event event_new();

$fd STDIN;

// Définit les drapeaux de l'événement
event_set($event$fdEV_READ EV_PERSIST"print_line", array($event$base));
// Définit la base de l'événement
event_base_set($event$base);

// Activation de l'événement
event_add($event);
// Début de la boucle de l'événement
event_base_loop($base);

?>

Exemple #2 Surveillance de STDIN en utilisant l'API des événements mis en tampon

<?php

function print_line($buf$arg)
{
    static 
$max_requests;

    
$max_requests++;

    if (
$max_requests == 10) {
        
event_base_loopexit($arg);
    }

    
// Affiche la ligne
    
echo event_buffer_read($buf4096);
}

function 
error_func($buf$what$arg)
{
    
// Gestion de l'erreur
}

$base event_base_new();
$eb event_buffer_new(STDIN"print_line"NULL,  "error_func"$base);

event_buffer_base_set($eb,  $base);
event_buffer_enable($eb,  EV_READ);

event_base_loop($base);

?>



Fonctions Libevent


event_add

(PECL libevent >= 0.0.1)

event_addAjoute un évènement aux évènements monitorés

Description

bool event_add ( resource $event [, int $timeout = -1 ] )

event_add() planifie l'éxecution de event lorsque l'évènement précisé dans event_set() se produit ou au moins dans le temps précisé par timeout. Si timeout n'est pas renseigné, alors aucun timeout ne sera utilisé. Le paramètre event doit représenter un évènement initialisé par event_set() et event_base_set(). Si event possède déja un timeout, il est remplacé par le nouveau.

Liste de paramètres

event

Ressource event valide.

timeout

timeout optionnel (en microsecondes).

Valeurs de retour

event_add() retourne TRUE en cas de succès ou FALSE si une erreur survient.



event_base_free

(PECL libevent >= 0.0.1)

event_base_freeDétruit une base d'évènements

Description

void event_base_free ( resource $event_base )

Détruit event_base et libère toutes les ressources associées. Notez qu'il n'est pas possible de détruire une base d'évènements ayant des évènements attachés.

Liste de paramètres

event_base

Ressource de base d'évènements valide.



event_base_loop

(PECL libevent >= 0.0.1)

event_base_loopTraitement des évènement

Description

int event_base_loop ( resource $event_base [, int $flags = 0 ] )

Démarre la boucle d'évènements pour la base spécifiée.

Liste de paramètres

event_base

Une ressource de base d'évènements valide.

flags

Paramètre optionnel qui peut être une combinaison de EVLOOP_ONCE et EVLOOP_NONBLOCK.

Valeurs de retour

event_base_loop() retourne 0 en cas de succès, -1 en cas d'erreurs et 1 si aucun évènement n'a été enregistré.



event_base_loopbreak

(PECL libevent >= 0.0.1)

event_base_loopbreakAbandonne une boucle d'évènement

Description

bool event_base_loopbreak ( resource $event_base )

Abandonne la boucle active immédiatement. le comportement est semblable à l'instruction break.

Liste de paramètres

event_base

Une ressource de base d'évènements valide.

Valeurs de retour

event_base_loopbreak() retourne TRUE en cas de succès ou FALSE sinon.



event_base_loopexit

(PECL libevent >= 0.0.1)

event_base_loopexitSort d'une boucle après un temps

Description

bool event_base_loopexit ( resource $event_base [, int $timeout = -1 ] )

La prochaine itération de boucle d'évènement après que le temps expire sera lancée, puis une sortie sera commandée sans bloquer en attente d'autres évènements.

Liste de paramètres

event_base

Une ressource de base d'évènements valide.

timeout

Délai de timeout optionnel (en microsecondes).

Valeurs de retour

event_base_loopexit() retourne TRUE en cas de succès ou FALSE sinon.



event_base_new

(PECL libevent >= 0.0.1)

event_base_newCréer et initialise une nouvelle base d'évènements

Description

resource event_base_new ( void )

Retourne une nouvelle base d'évènements, qui peut être utilisée plus tard avec event_base_set(), event_base_loop() et les autres fonctions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

event_base_new() retourne une ressource de base d'évènements valide en cas de succès ou FALSE sinon.



event_base_priority_init

(PECL libevent >= 0.0.2)

event_base_priority_initAssigne le nombre de niveaux de priorités d'évènement

Description

bool event_base_priority_init ( resource $event_base , int $npriorities )

Assigne le nombre de niveaux de priorités d'évènement

Par défaut tous les évènements sont programmés avec la même priorité (npriorities/2). Utiliser event_base_priority_init() permet de changer le nombre de niveaux de priorités et donc d'affecter une priorité unique à chaque évènement.

Liste de paramètres

event_base

Ressource de base d'évènements valide.

npriorities

Nombre de niveaux de priorité.

Valeurs de retour

event_base_priority_init() retourne TRUE en cas de succès ou FALSE sinon.



event_base_set

(PECL libevent >= 0.0.1)

event_base_setAssocie une base avec un évènement

Description

bool event_base_set ( resource $event , resource $event_base )

Associe la base event_base avec event.

Liste de paramètres

event

Ressource d'évènement valide.

event_base

Ressource de base d'évènements valide.

Valeurs de retour

event_base_set() retourne TRUE en cas de succès ou FALSE sinon.



event_buffer_base_set

(PECL libevent >= 0.0.1)

event_buffer_base_setAssocie un évènement bufferisé avec une base

Description

bool event_buffer_base_set ( resource $bevent , resource $event_base )

Assigne l'évènement bevent à la base event_base.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

event_base

Ressource de base d'évènements valide.

Valeurs de retour

event_buffer_base_set() retourne TRUE en cas de succès ou FALSE sinon.



event_buffer_disable

(PECL libevent >= 0.0.1)

event_buffer_disableDésactive un évènement bufferisé

Description

bool event_buffer_disable ( resource $bevent , int $events )

Désactive l'évènement bufferisé spécifié.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

events

Une combinaison de EV_READ et EV_WRITE.

Valeurs de retour

event_buffer_disable() retourne TRUE en cas de succès ou FALSE sinon.



event_buffer_enable

(PECL libevent >= 0.0.1)

event_buffer_enableActive un évènement bufferisé

Description

bool event_buffer_enable ( resource $bevent , int $events )

Active l'évènement bufferisé spécifié.

Liste de paramètres

bevent

Active un évènement bufferisé

events

Une combinaison de EV_READ et EV_WRITE.

Valeurs de retour

event_buffer_enable() retourne TRUE en cas de succès ou FALSE sinon.



event_buffer_fd_set

(PECL libevent >= 0.0.1)

event_buffer_fd_setChange un descripteur de fichier pour un évènement bufferisé

Description

void event_buffer_fd_set ( resource $bevent , resource $fd )

Change un descripteur de fichier sur lequel des opérations d'évènement agissent.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

fd

Flux PHP valide, doit être transtypable vers un descripteur de fichier.



event_buffer_free

(PECL libevent >= 0.0.1)

event_buffer_freeDétruit un évènement bufferisé

Description

void event_buffer_free ( resource $bevent )

Détruit l'évènement précisé et libère les ressources allouées.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.



event_buffer_new

(PECL libevent >= 0.0.1)

event_buffer_newCréer un nouvel évènement bufferisé

Description

resource event_buffer_new ( resource $stream , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] )

Libevent propose une couche d'abstraction sur l'API basique. Utiliser des évènements bufferisés vous permet de ne pas vous soucier des I/O manuellement, des buffers d'entrée/sortie auto-remplis sont utilisables à la place.

Liste de paramètres

stream

Une ressource de flux PHP valide. Doit être transtypable vers un descripteur de fichier.

readcb

Callback à invoquer s'il y a des données à lire, NULL si aucune callback n'est voulue.

writecb

Callback à invoquer lorsque le descripteur est disponible en écriture ou NULL si aucune callback n'est désirée.

errorcb

Callback à invoquer lorsqu'une erreur survient sur le descripteur ou NULL si aucune callback n'est désirée.

arg

Un argument à passer à chaque callback (optionnel).

Valeurs de retour

event_buffer_new() retourne une nouvelle ressource d'évènement bufferisé en cas de succès ou FALSE sinon.



event_buffer_priority_set

(PECL libevent >= 0.0.1)

event_buffer_priority_setAssigne une priorité à un évènement bufferisé

Description

bool event_buffer_priority_set ( resource $bevent , int $priority )

Assigne une priorité à bevent.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

priority

Niveau de priorité. Ne peut être inférieur à zéro et ne peut dépasser le niveau maximum de la base d'évènements (voir event_base_priority_init()).

Valeurs de retour

event_buffer_priority_set() retourne TRUE en cas de succès ou FALSE sinon.



event_buffer_read

(PECL libevent >= 0.0.1)

event_buffer_readLit des données depuis un évènement bufferisé

Description

string event_buffer_read ( resource $bevent , int $data_size )

Lit des données depuis un évènement bufferisé.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

data_size

Taille en octets.



event_buffer_set_callback

(PECL libevent >= 0.0.4)

event_buffer_set_callbackAffecte ou réinitialise les rappels pour un évènement bufferisé

Description

bool event_buffer_set_callback ( resource $event , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] )

Affecte ou change les fonctions de rappel pour event.

Liste de paramètres

event

Ressource évènement bufferisé valide.

readcb

Callback to invoke where there is data to read, or NULL if no callback is desired.

writecb

Fonction de rappel à appeler lorsque le descripteur est prêt pour écriture, ou NULL si aucune fonction de rappel n'est à utiliser.

errorcb

Fonction de rappel à invoquer lorsqu'une erreur survient sur le descripteur, ne peut pas être NULL.

arg

Un argument optionnel à passer à chaque fonction de rappel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



event_buffer_timeout_set

(PECL libevent >= 0.0.1)

event_buffer_timeout_setAffecte les délais de lecture et écriture pour un évènement bufferisé

Description

void event_buffer_timeout_set ( resource $bevent , int $read_timeout , int $write_timeout )

Affecte les délais de lecture et écriture pour un évènement bufferisé

Liste de paramètres

bevent

Ressource d'évènement bufferisée valide.

read_timeout

Délai de lecture (en secondes).

write_timeout

Délai d'écriture (en secondes).



event_buffer_watermark_set

(PECL libevent >= 0.0.1)

event_buffer_watermark_setAffecte la marque pour les évènements en lecture et écriture

Description

void event_buffer_watermark_set ( resource $bevent , int $events , int $lowmark , int $highmark )

Affecte la marque (seuil) pour les évènements en lecture et écriture. Libevent n'appelle pas de callback en lecture avant qu'il n'y ait au minimum lowmark octets dans le buffer d'entrée; si le buffer en lecture est au delà de highmark, la lecture est stoppée. A la sorite, la callback d'écriture est appelée dès que les données bufferisées tombent sous lowmark.

Liste de paramètres

bevent

Ressource d'évènement bufferisée valide.

events

Une combinaison de EV_READ et EV_WRITE.

lowmark

Marque basse.

highmark

Marque haute.



event_buffer_write

(PECL libevent >= 0.0.1)

event_buffer_writeEcrit des données vers un évènement bufferisé

Description

bool event_buffer_write ( resource $bevent , string $data [, int $data_size = -1 ] )

Ecrit des données vers l'évènement bufferisé indiqué. Les données sont ajoutées au buffer et écrites vers le descripteur lorsqu'il devient accessible en écriture.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

data

Les données à écrire.

data_size

Taille des données (optionnel). event_buffer_write() écrit toutes les data par défaut.

Valeurs de retour

event_buffer_write() retourne TRUE en cas de succès ou FALSE sinon.



event_del

(PECL libevent >= 0.0.1)

event_delSupprime un évènement de la liste des évènement surveillés

Description

bool event_del ( resource $event )

Annule le event.

Liste de paramètres

event

Ressource d'évènement valide.

Valeurs de retour

event_del() retourne TRUE en cas de succès ou FALSE sinon.



event_free

(PECL libevent >= 0.0.1)

event_freeLibère une ressource d'évènement

Description

void event_free ( resource $event )

Libère une ressource d'évènement précédemment créee.

Liste de paramètres

event

Ressource d'évènement valide.



event_new

(PECL libevent >= 0.0.1)

event_newCréer un nouvel évènement

Description

resource event_new ( void )

Créer et retourne une nouvelle ressource d'évènement.

Valeurs de retour

event_new() retourne une nouvelle ressource d'évènement en cas de succès ou FALSE sinon.



event_set

(PECL libevent >= 0.0.1)

event_setPrépare un évènement

Description

bool event_set ( resource $event , mixed $fd , int $events , mixed $callback [, mixed $arg ] )

Prépare un évènement pour être utilisé avec event_add(). L'évènement est préparé à appeler la fonction précisée dans callback sur les évènements spécifiés dans events, qui sont une liste de drapeaux : EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE, EV_PERSIST et EV_SIGNAL

Si EV_SIGNAL est spécifiée dans le paramètre events, alors fd est interprété comme numéro de signal.

Après initialisation de l'évènement, utilisez event_base_set() pour associer l'évènement avec sa base.

Dans le cas d'un évènement qui correspond, ces trois arguments sont passés à la fonction callback:

fd

Numéro de signal ou ressource représentant le flux.

events

Un drapeau qui indique l'évènement. Peut être parmis : EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE, EV_PERSIST et EV_SIGNAL.

arg

Paramètre optionnel, précédemment passé à event_set() en tant que arg.

Liste de paramètres

event

Ressource d'évènement valide.

fd

Ressource de flux PHP valide. Le flux doit être transtypable vers un descripteur de fichier , donc vous ne pourrez pas utiliser de filtres de flux la plupart du temps.

events

Un ensemble de drapeaux indiquant l'évènement désiré, peut être EV_READ et/ou EV_WRITE. Le drapeau supplémentaire EV_PERSIST fait persister l'évènement jusqu'à ce que event_del() soit appelée, sinon la fonction de callback n'est invoquée qu'une seule fois.

callback

Fonction de callback à appeler lorsqu'un évènement correspondant survient.

arg

Paramètres optionnels à passer à la callback.

Valeurs de retour

event_set() retourne TRUE en cas de succès ou FALSE sinon.

Historique

Version Description
0.0.4 Le support de EV_SIGNAL a été ajouté.

Sommaire




Contrôle du processus


Introduction

Le système de contrôle des processus de PHP implémente un système de création, gestion et terminaison des processus comme sous Unix. Cette extension ne doit pas être activée pour une utilisation en serveur web, car les résultats pourraient être inattendus.

Cette documentation explique l'utilisation générale des fonctions du gestionnaire de processus. Pour des informations plus détaillées sur le contrôle des processus Unix, nous vous encourageons à consulter votre documentation système, incluant notamment fork(2), waitpid(2) et signal(2), ou bien à compulser un ouvrage de référence comme "Advanced Programming in the UNIX Environment" par W. Richard Stevens, chez Addison-Wesley.

PCNTL utilise maintenant les ticks comme mécanisme de rappel du gestionnaire de signaux, ce qui est beaucoup plus rapide que la version précédente. Ce changement suit la même sémantique que l'utilisation de ticks. Vous utilisez declare() pour spécifier les endroits de votre programme où les fonctions de rappel peuvent être appelés. Cela vous permet de minimaliser la consommation due à la gestion d'événements asynchrones. Par le passé, compiler PHP avec pcntl revenait toujours à souffrir cette consommation, même si votre script n'utilisait pas pcntl.

Il y a un ajustement à faire pour tous les scripts pcntl basés sur une version antérieure à PHP 4.3.0 afin qu'ils puissent fonctionner : il faut soit utiliser declare() dans la section où vous voulez avoir la fonction de rappel, soit l'activer pour tout le script avec la nouvelle syntaxe globale de declare().

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Le support du contrôle des processus n'est pas activé par défaut en PHP. Vous devez compiler la version CLI ou CGI de PHP avec l'option de configuration --enable-pcntl pour activer le support de cette extension.

Note:

Actuellement, ce module ne fonctionne pas sur les environnements non Unix comme Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

La liste suivante représente les signaux supportés par les fonctions de gestion des processus. Reportez-vous au manuel de votre système (signal(7)) pour plus de détails sur ces signaux.

WNOHANG (integer)
WUNTRACED (integer)
SIG_IGN (integer)
SIG_DFL (integer)
SIG_ERR (integer)
SIGHUP (integer)
SIGINT (integer)
SIGQUIT (integer)
SIGILL (integer)
SIGTRAP (integer)
SIGABRT (integer)
SIGIOT (integer)
SIGBUS (integer)
SIGFPE (integer)
SIGKILL (integer)
SIGUSR1 (integer)
SIGSEGV (integer)
SIGUSR2 (integer)
SIGPIPE (integer)
SIGALRM (integer)
SIGTERM (integer)
SIGSTKFLT (integer)
SIGCLD (integer)
SIGCHLD (integer)
SIGCONT (integer)
SIGSTOP (integer)
SIGTSTP (integer)
SIGTTIN (integer)
SIGTTOU (integer)
SIGURG (integer)
SIGXCPU (integer)
SIGXFSZ (integer)
SIGVTALRM (integer)
SIGPROF (integer)
SIGWINCH (integer)
SIGPOLL (integer)
SIGIO (integer)
SIGPWR (integer)
SIGSYS (integer)
SIGBABY (integer)
SIG_BLOCK (integer)
Disponible depuis PHP 5.3.0.
SIG_UNBLOCK (integer)
Disponible depuis PHP 5.3.0.
SIG_SETMASK (integer)
Disponible depuis PHP 5.3.0.
SI_USER (integer)
Disponible depuis PHP 5.3.0.
SI_NOINFO (integer)
Disponible depuis PHP 5.3.0.
SI_KERNEL (integer)
Disponible depuis PHP 5.3.0.
SI_QUEUE (integer)
Disponible depuis PHP 5.3.0.
SI_TIMER (integer)
Disponible depuis PHP 5.3.0.
SI_MSGGQ (integer)
Disponible depuis PHP 5.3.0.
SI_ASYNCIO (integer)
Disponible depuis PHP 5.3.0.
SI_SIGIO (integer)
Disponible depuis PHP 5.3.0.
SI_TKILL (integer)
Disponible depuis PHP 5.3.0.
CLD_EXITED (integer)
Disponible depuis PHP 5.3.0.
CLD_KILLED (integer)
Disponible depuis PHP 5.3.0.
CLD_DUMPED (integer)
Disponible depuis PHP 5.3.0.
CLD_TRAPPED (integer)
Disponible depuis PHP 5.3.0.
CLD_STOPPED (integer)
Disponible depuis PHP 5.3.0.
CLD_CONTINUED (integer)
Disponible depuis PHP 5.3.0.
TRAP_BRKPT (integer)
Disponible depuis PHP 5.3.0.
TRAP_TRACE (integer)
Disponible depuis PHP 5.3.0.
POLL_IN (integer)
Disponible depuis PHP 5.3.0.
POLL_OUT (integer)
Disponible depuis PHP 5.3.0.
POLL_MSG (integer)
Disponible depuis PHP 5.3.0.
POLL_ERR (integer)
Disponible depuis PHP 5.3.0.
POLL_PRI (integer)
Disponible depuis PHP 5.3.0.
POLL_HUP (integer)
Disponible depuis PHP 5.3.0.
ILL_ILLOPC (integer)
Disponible depuis PHP 5.3.0.
ILL_ILLOPN (integer)
Disponible depuis PHP 5.3.0.
ILL_ILLADR (integer)
Disponible depuis PHP 5.3.0.
ILL_ILLTRP (integer)
Disponible depuis PHP 5.3.0.
ILL_PRVOPC (integer)
Disponible depuis PHP 5.3.0.
ILL_PRVREG (integer)
Disponible depuis PHP 5.3.0.
ILL_COPROC (integer)
Disponible depuis PHP 5.3.0.
ILL_BADSTK (integer)
Disponible depuis PHP 5.3.0.
FPE_INTDIV (integer)
Disponible depuis PHP 5.3.0.
FPE_INTOVF (integer)
Disponible depuis PHP 5.3.0.
FPE_FLTDIV (integer)
Disponible depuis PHP 5.3.0.
FPE_FLTOVF (integer)
Disponible depuis PHP 5.3.0.
FPE_FLTUND (integer)
Disponible depuis PHP 5.3.0.
FPE_FLTRES (integer)
Disponible depuis PHP 5.3.0.
FPE_FLTINV (integer)
Disponible depuis PHP 5.3.0.
FPE_FLTSUB (integer)
Disponible depuis PHP 5.3.0.
SEGV_MAPERR (integer)
Disponible depuis PHP 5.3.0.
SEGV_ACCERR (integer)
Disponible depuis PHP 5.3.0.
BUS_ADRALN (integer)
Disponible depuis PHP 5.3.0.
BUS_ADRERR (integer)
Disponible depuis PHP 5.3.0.
BUS_OBJERR (integer)
Disponible depuis PHP 5.3.0.


Exemples

Sommaire


Cet exemple forke un processus démon, avec un gestionnaire de signaux.

Exemple #1 Exemple de contrôle de processus

<?php
declare(ticks=1);

$pid pcntl_fork();
if (
$pid == -1) {
     die(
"impossible de forker");
} else if (
$pid) {
     exit(); 
// nous sommes le processus père
} else {
     
// nous sommes le processus fils
}

// détachons le processus du terminal
if (posix_setsid() == -1) {
    die(
"impossible de se détacher du terminal");
}

// configuration des gestionnaires de signaux
pcntl_signal(SIGTERM"sig_handler");
pcntl_signal(SIGHUP"sig_handler");

// boucle infinie
while (1) {

    
// exécution de quelque chose

}

function 
sig_handler($signo
{

     switch (
$signo) {
         case 
SIGTERM:
             
// gestion des tâches de terminaison
             
exit;
             break;
         case 
SIGHUP:
             
// gestion des tâches de redémarrage
             
break;
         default:
             
// gestion des autres tâches
     
}

}

?>



Fonctions PCNTL

Voir aussi

Un tour par la section sur les fonctions POSIX peut être utile.


pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarmPlanifie une alarme pour délivrer un signal

Description

int pcntl_alarm ( int $seconds )

Créé un compte à rebours qui enverra un signal SIGALRM au processus après seconds secondes. Tout appel à pcntl_alarm() annulera les comptes à rebours précédemment configurés.

Liste de paramètres

seconds

Le nombre de secondes à attendre. Si seconds vaut 0, aucune nouvelle alarme ne sera créée.

Valeurs de retour

Retourne le temps en seconde qui reste avant l'exécution de l'alarme précédente, ou 0 si aucune alarme n'était planifiée.



pcntl_exec

(PHP 4 >= 4.2.0, PHP 5)

pcntl_execExécute le programme indiqué dans l'espace courant de processus

Description

void pcntl_exec ( string $path [, array $args [, array $envs ]] )

Exécute le programme indiqué dans l'espace courant de processus.

Liste de paramètres

path

path doit être le chemin vers un binaire exécutable ou un script avec un chemin valide pointant vers un exécutable à la première ligne (par exemple, #!/usr/local/bin/perl). Voir les pages d'aide de votre système concernant execve(2) pour plus d'informations.

args

args est un tableau d'arguments sous la forme de chaînes de caractères passées au programme.

envs

envs est un tableau de chaînes de caractères qui sont passées au programme comme variables d'environnement. Le tableau est de la forme nom => valeur, la clé est le nom de la variable d'environnement et la valeur est la valeur de cette variable.

Valeurs de retour

Retourne FALSE si une erreur survient et ne retourne rien en cas de succès.



pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

pcntl_forkDuplique le process courant

Description

int pcntl_fork ( void )

pcntl_fork() crée un processus fils, qui ne diffère du processus père que par l'identifiant de processus et l'identifiant PPID. Reportez-vous à la page de man fork(2) pour avoir des détails sur le comportement de cette fonction sur votre système.

Valeurs de retour

En cas de succès, le PID (identifiant de processus) du fils est retourné dans le processus père, et 0 est retourné dans le processus fils. En cas d'échec, -1 est retourné dans le contexte du père, aucun processus fils ne sera créé et PHP générera une erreur.

Exemples

Exemple #1 Exemple avec pcntl_fork()

<?php

$pid 
pcntl_fork();
if (
$pid == -1) {
     die(
'dupplication impossible');
} else if (
$pid) {
     
// le père
     
pcntl_wait($status); // Protège encore des enfants zombies
} else {
     
// le fils
}

?>

Voir aussi



pcntl_getpriority

(PHP 5)

pcntl_getpriorityRetourne la priorité d'un processus

Description

int pcntl_getpriority ([ int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] )

pcntl_getpriority() retourne la priorité de pid. Comme les niveaux de priorités changent entre les types de systèmes et les versions de kernel, lisez la page de manuel getpriority(2) de votre système pour des détails spécifiques.

Liste de paramètres

pid

Si non spécifié, le pid du processus courant est utilisé.

process_identifier

Une constante parmi PRIO_PGRP, PRIO_USER ou PRIO_PROCESS.

Valeurs de retour

pcntl_getpriority() retourne la priorité du processus ou FALSE en cas d'erreur. Une valeur numérique plus petite rend la planification plus favorable.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi



pcntl_setpriority

(PHP 5)

pcntl_setpriorityChange la priorité d'un processus

Description

bool pcntl_setpriority ( int $priority [, int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] )

pcntl_setpriority() change la priorité de pid à priority.

Liste de paramètres

priority

priority est généralement une valeur allant de -20 à 20. La priorité par défaut est 0 tandis qu'une valeur numérique plus petite favorise une meilleure planification. Comme les niveaux de priorité changent entre les types de systèmes et les versions de kernel, lisez la page de manuel getpriority(2) de votre système pour des détails spécifiques.

pid

Si non spécifié, le pid du processus courant est utilisé.

process_identifier

Une constante parmi PRIO_PGRP, PRIO_USER ou PRIO_PROCESS.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



pcntl_signal_dispatch

(PHP 5 >= 5.3.0)

pcntl_signal_dispatchAppelle les gestionnaires de signaux pour chaque signal en attente

Description

bool pcntl_signal_dispatch ( void )

La fonction pcntl_signal_dispatch() appelle les gestionnaires de signaux installés par pcntl_signal() pour chaque signal en attente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pcntl_signal_dispatch()

<?php
echo "Installation d'un gestionnaire de signal...\n";
pcntl_signal(SIGHUP,  function($signo) {
     echo 
"Gestionnaire de signal appelé!\n";
});

echo 
"Génération d'un signal SIGHUP à moi-même...\n";
posix_kill(posix_getpid(), SIGHUP);

echo 
"Envoi...\n";
pcntl_signal_dispatch();

echo 
"Fait\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Installation d'un gestionnaire de signal...
Génération d'un signal SIGHUP à moi-même...
Envoi...
Gestionnaire de signal appelé!
Fait

Voir aussi



pcntl_signal

(PHP 4 >= 4.1.0, PHP 5)

pcntl_signalInstalle un gestionnaire de signaux

Description

bool pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls = true ] )

pcntl_signal() installe un nouveau gestionnaire de signaux pour le signal indiqué par le paramètre signo.

Liste de paramètres

signo

Le numéro du signal.

handler

Le gestionnaire de signaux est affecté à handler qui peut être le nom d'une fonction utilisateur, ou bien l'une des deux constantes globales SIG_IGN et SIG_DFL.

Note:

Notez que lorsque vous configurez le gestionnaire avec une méthode d'objet, le compteur de référence de l'objet est incrémenté, ce qui le rend persistant jusqu'à ce que vous changiez le gestionnaire de signaux pour un autre, ou que le script se termine.

restart_syscalls

Le paramètre optionnel restart_syscalls spécifie si l'appel système de redémarrage (restarting) doit être utilisé lorsque ce signal arrive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 Le paramètre restart_syscalls a été ajouté.
4.3.0 Utiliser une méthode d'un objet en tant que fonction de rappel est devenu possible.
4.3.0 Depuis PHP 4.3.0, PCNTL utilise les ticks comme mécanisme de signaux de traitement des rappels qui est plus rapide que l'ancien mécanisme. Ce changement suit les mêmes règles que l'utilisation des "user ticks". Vous devriez utiliser la requête declare() pour spécifier l'endroit dans votre programme où les rappels sont autorisés à être utilisés pour le traitement du signal de la fonction proprement dite (comme utilisé dans l'exemple suivant).

Exemples

Exemple #1 Exemple avec pcntl_signal()

<?php
// l'usage des ticks est nécessaire depuis PHP 4.3.0
declare(ticks 1);

// gestionnaire de signaux système
function sig_handler($signo)
{

     switch (
$signo) {
         case 
SIGTERM:
             
// gestion de l'extinction
             
exit;
             break;
         case 
SIGHUP:
             
// gestion du redémarrage
             
break;
         case 
SIGUSR1:
             echo 
"Reçu le signe SIGUSR1...\n";
             break;
         default:
             
// gestion des autres signaux
     
}

}

echo 
"Installation du gestionnaire de signaux...\n";

// Installation des gestionnaires de signaux
pcntl_signal(SIGTERM"sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1"sig_handler");

// ou bien utilisez un objet (disponible depuis PHP 4.3.0)
// pcntl_signal(SIGUSR1, array($obj, "faire_quelque_chose");

echo"Génération d'un signal SIGTERM à moi-même...\n";

// envoi de SIGUSR1 à l'identifiant de processus courant
posix_kill(posix_getpid(), SIGUSR1);

echo 
"Fait\n"

?>

Voir aussi



pcntl_sigprocmask

(PHP 5 >= 5.3.0)

pcntl_sigprocmaskListe et configure les signaux bloqués

Description

bool pcntl_sigprocmask ( int $how , array $set [, array &$oldset ] )

La fonction pcntl_sigprocmask() ajoute, retire ou configure les signaux bloqués, en fonction du paramètre how.

Liste de paramètres

how

Configure le comportement de pcntl_sigprocmask(). Les valeurs possibles sont :

  • SIG_BLOCK : ajout le signal à la liste des signaux bloquésé.
  • SIG_UNBLOCK: retire le signal de la liste des signaux bloqués.
  • SIG_SETMASK : remplace la liste actuelle de signaux bloqués par une nouvelle liste.

set

Liste de signaux.

oldset

Le paramètre oldset est un tableau qui contient la liste précédente des signaux bloqués.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pcntl_sigprocmask()

<?php
pcntl_sigprocmask
(SIG_BLOCK, array(SIGHUP));
$oldset = array();
pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset);
?>

Voir aussi



pcntl_sigtimedwait

(PHP 5 >= 5.3.0)

pcntl_sigtimedwaitAttend un signal dans un délai donné

Description

int pcntl_sigtimedwait ( array $set [, array &$siginfo [, int $seconds = 0 [, int $nanoseconds = 0 ]]] )

La fonction pcntl_sigtimedwait() opère exactement comme pcntl_sigwaitinfo() hormis le fait qu'elle prend deux paramètres supplémentaires : seconds et nanoseconds, qui établissent une durée maximale d'attente.

Liste de paramètres

set

Une liste de signaux à attendre.

siginfo

Le paramètre siginfo reçoit les informations du signal, sous forme de tableau. Voyez pcntl_sigwaitinfo().

seconds

Délai d'attente maximal en secondes.

nanoseconds

Délai d'attente maximal en nanosecondes.

Valeurs de retour

En cas de réussite, pcntl_sigtimedwait() retourne un numéro de signal.

Voir aussi



pcntl_sigwaitinfo

(PHP 5 >= 5.3.0)

pcntl_sigwaitinfoAttend un signal

Description

int pcntl_sigwaitinfo ( array $set [, array &$siginfo ] )

La fonction pcntl_sigwaitinfo() suspend son exécution jusqu'à la réception d'un des signaux, indiqué dans set. Si un des signaux est déjà en attente (i.e., bloqué par pcntl_sigprocmask()), pcntl_sigwaitinfo() se termine immédiatement.

Liste de paramètres

set

Un tableau de signaux à attendre.

siginfo

Le paramètre siginfo reçoit un tableau contenant les informations sur le signal.

Les éléments suivants sont toujours disponibles pour tous les signaux :

  • signo : numéro de signal
  • errno : un numéro d'erreur
  • code : code de signal

Les éléments suivants peuvent être disponibles pour le signal SIGCHLD :

  • status : valeur de sortie ou signal
  • utime : temps utilisateur consommé
  • stime : temps système consommé
  • pid : numéro de processus appelant
  • uid : identifiant de l'utilisateur appelant, ou du processus appelant

Les éléments suivants peuvent être disponibles pour les signaux SIGILL, SIGFPE, SIGSEGV et SIGBUS :

  • addr : adresse mémoire qui a causé l'erreur

Les éléments suivants peuvent être disponibles pour le signal SIGPOLL :

  • band : événement de band
  • fd : numéro de pointeur de fichier

Valeurs de retour

En cas de succès, pcntl_sigwaitinfo() retourne le numéro du signal.

Exemples

Exemple #1 Exemple avec pcntl_sigwaitinfo()

<?php
echo "Bloque le signal SIGHUP\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo 
"Envoi du signal SIGHUP à moi-même\n";
posix_kill(posix_getpid(), SIGHUP);

echo 
"Attente de signaux\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Voir aussi



pcntl_wait

(PHP 5)

pcntl_waitAttend ou retourne le statut d'un processus fils

Description

int pcntl_wait ( int &$status [, int $options = 0 ] )

pcntl_wait() suspend l'exécution du processus courant jusqu'à ce qu'un des processus fils soit terminé, ou qu'un signal soit envoyé pour terminer le processus courant ou pour appeler un gestionnaire. Si le processus est déjà terminé au moment de l'appel de la fonction, c'est-à-dire si le processus est un zombie, alors la fonction se termine immédiatement. Toutes les ressources système utilisées par le processus fils sont libérées. Lisez le manuel de votre système à wait(2) pour avoir des détails spécifiques sur le fonctionnement de wait() sur celui-ci.

Note:

Cette fonction est équivalente à appeler la fonction pcntl_waitpid() avec un pid valant -1 et aucune option.

Liste de paramètres

status

pcntl_wait() va stocker les informations de statut dans le paramètre status qui peut être lu avec les fonctions suivantes : pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() et pcntl_wstopsig().

options

Si wait3 est disponible sur votre système (c'est le cas de la plupart des systèmes BSD-), vous pouvez ajouter le paramètre optionnel options. S'il n'est pas fourni, wait() sera utilisé pour l'appel système. Si wait3 n'est pas disponible, le paramètre options n'aura pas d'effet. La valeur de options est la combinaison de zéro ou plusieurs des constantes suivantes :

Valeurs possibles pour options
WNOHANG Termine immédiatement si aucun processus ne s'est terminé.
WUNTRACED Termine pour les processus qui sont stoppés, et pour ceux dont le résultat n'a pas été rapporté.

Valeurs de retour

pcntl_wait() retourne l'identifiant de processus qui s'est terminé, -1 en cas d'erreur ou zéro si WNOHANG a été fourni comme option (disponible sur les systèmes wait3), et qu'aucun processus fils n'était disponible.

Voir aussi



pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5)

pcntl_waitpidAttend la fin de l'exécution d'un processus fils

Description

int pcntl_waitpid ( int $pid , int &$status [, int $options = 0 ] )

Suspend l'exécution du processus courant jusqu'à ce qu'un processus fils spécifié par le paramètre pid ait terminé, qu'un signal ait mis fin à ce processus ou qu'un signal ait appelé un gestionnaire de signaux.

Si le processus fils identifié par pid est déjà terminé au moment de l'appel de cette fonction (on les appelle des processus "zombie"), la fonction se termine immédiatement. Toute ressource système utilisée par le processus fils est libérée. Reportez-vous à la page de man waitpid(2) pour avoir des détails sur le comportement de cette fonction sur votre système.

Liste de paramètres

pid

La valeur de pid peut être une parmi les suivantes :

Valeurs possibles pour pid
< -1 attend que tous les processus fils dont l'identifiant de groupe est égal à la valeur absolue de pid soient terminés.
-1 attend que tous les processus fils soient terminés. Ceci est le même comportement que celui de la fonction pcntl_wait().
0 attend que tous les processus fils dont l'identifiant de groupe est égal à celui du processus courant soient terminés.
> 0 attend que le processus fils dont l'identifiant est égal à pid soit terminé.

Note:

Si pid vaut -1, cela équivaut à utiliser la fonction pcntl_wait() (minimum options).

status

pcntl_waitpid() enregistrera des informations sur le statut courant du processus dans le paramètre status, auquel on peut accéder grâce aux fonctions suivantes : pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() et pcntl_wstopsig().

options

Le paramètre options peut prendre la valeur zéro, ou plusieurs des constantes globales suivantes (combinez les avec l'opérateur OR) :

Valeurs possibles de options
WNOHANG retourne immédiatement si aucun processus fils ne s'est terminé.
WUNTRACED retourne lorsque les processus fils sont arrêtés et que leur statut n'a pas été mis à jour.

Valeurs de retour

pcntl_waitpid() retourne l'identifiant de processus du processus fils qui s'est terminé, ou bien -1 en cas d'erreur ou encore zéro si WNOHANG a été utilisée et qu'aucun processus fils n'était disponible.

Voir aussi



pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wexitstatusRetourne le code d'un processus fils terminé

Description

int pcntl_wexitstatus ( int $status )

Retourne le code de retour du processus fils. Cette fonction n'est utile que si la fonction pcntl_wifexited() a retourné TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le code de retour, sous la forme d'un entier.

Voir aussi



pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifexitedVérifie si le code de retour représente une fin normale

Description

bool pcntl_wifexited ( int $status )

Retourne TRUE si le processus fils a retourné un code qui représente une fin normale.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils a retourné un code qui représente une fin normale, FALSE sinon.

Voir aussi



pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifsignaledRetourne TRUE si le code statut représente une fin due à un signal

Description

bool pcntl_wifsignaled ( int $status )

Retourne TRUE si le processus fils sort car un signal n'a pu être reçu.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils sort car un signal n'a pu être reçu, FALSE sinon.

Voir aussi



pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifstoppedRetourne TRUE si le processus fils est stoppé

Description

bool pcntl_wifstopped ( int $status )

Retourne TRUE si le processus fils est stoppé ; cela n'est possible que si l'appel à pcntl_waitpid() a été fait avec l'option WUNTRACED.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils est stoppé, FALSE sinon.

Voir aussi



pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wstopsigRetourne le signal qui a causé l'arrêt du processus fils

Description

int pcntl_wstopsig ( int $status )

Retourne le numéro du signal qui a causé l'arrêt du processus fils. Cette fonction est uniquement utile si pcntl_wifstopped() a retourné TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le numéro du signal.

Voir aussi



pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wtermsigRetourne le signal qui a provoqué la fin du processus fils

Description

int pcntl_wtermsig ( int $status )

Retourne le numéro du signal qui a provoqué la fin du processus fils. Cette fonction est uniquement utile si pcntl_wifsignaled() retourne TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le numéro du signal, sous la forme d'un entier.

Voir aussi


Sommaire




POSIX


Introduction

Ce module contient une interface aux fonctions définies dans le standard IEEE 1003.1 (POSIX.1) et qui ne sont accessibles que par cette voie.

Avertissement

Les données sensibles peuvent être récupérées avec les fonctions POSIX, e.g. posix_getpwnam() et ces amis. Aucune de ces fonctions, qui effectuent un accès quelconque, ne peuvent fonctionner lorsque le safe mode est actif. Il est cependant extrêmement conseillé de désactiver l'extension POSIX pour tous les utilisateurs (utilisez l'option --disable-posix lors de la compilation) si vous vous trouvez dans un tel environnement.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Le support des fonctions POSIX est activé par défaut. Vous pouvez désactiver ces fonctions en compilant PHP avec l'option --disable-posix .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

POSIX_F_OK (entier)
Vérifie si le fichier existe.
POSIX_R_OK (entier)
Vérifie si le fichier existe et a les permissions de lecture.
POSIX_W_OK (entier)
Vérifie si le fichier existe et a les permissions d'écriture.
POSIX_X_OK (entier)
Vérifie si le fichier existe et a les permissions d'exécution.
POSIX_S_IFBLK (entier)
Bloque les fichiers spéciaux
POSIX_S_IFCHR (entier)
Caractère des fichiers spéciaux
POSIX_S_IFIFO (entier)
FIFO (pipe nommé) des fichiers spéciaux
POSIX_S_IFREG (entier)
Fichier normal Normal file
POSIX_S_IFSOCK (entier)
Socket

Note:

Ces constantes sont disponibles depuis PHP 5.1.0. Notez également que quelques unes peuvent ne pas être disponibles sur votre système.



Fonctions POSIX

Voir aussi

La section sur le contrôle des processus peut aussi vous intéresser.


posix_access

(PHP 5 >= 5.1.0)

posix_access Détermine l'accessibilité d'un fichier

Description

bool posix_access ( string $file [, int $mode = POSIX_F_OK ] )

posix_access() vérifie les permissions utilisateurs pour un fichier.

Liste de paramètres

file

Le nom du fichier à tester.

mode

Un masque constitué d'une ou plusieurs constantes parmi POSIX_F_OK, POSIX_R_OK, POSIX_W_OK et POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK et POSIX_X_OK vérifie si, respectivement, le fichier existe et a les permissions en lecture, écriture et exécution. POSIX_F_OK vérifie uniquement si le fichier existe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_access()

Cet exemple vérifie si le fichier $file a les permissions en lecture et en écriture, sinon, il affiche un message d'erreur.

<?php

$file 
'un_fichier';

if (
posix_access($filePOSIX_R_OK POSIX_W_OK)) {
    echo 
'Le fichier a les permissions en lecture et en écriture !';

} else {
    
$error posix_get_last_error();

    echo 
"Erreur $error: " posix_strerror($error);
}

?>

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • posix_get_last_error() - Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué
  • posix_strerror() - Lit le message d'erreur associé à un numéro d'erreur POSIX



posix_ctermid

(PHP 4, PHP 5)

posix_ctermidRetourne le chemin du terminal

Description

string posix_ctermid ( void )

Génère une chaîne de caractères qui représente le nom du chemin du terminal courant du processus. En cas d'erreur, cette fonction définira l'errno, qui pourra être récupéré en utilisant la fonction posix_get_last_error()

Valeurs de retour

Retourne une chaîne de caractères représentant le nom du chemin du terminal courant en cas de succès. Sinon, FALSE est retourné et errno est défini, qui pourra être récupérer en utilisant la fonction posix_get_last_error().

Exemples

Exemple #1 Exemple avec posix_ctermid()

Cet exemple affichera le chemin du TTY courant.

<?php
echo "L'exécution s'effectue depuis ".posix_ctermid();
?>

Voir aussi



posix_errno

(PHP 4 >= 4.2.0, PHP 5)

posix_errnoAlias de posix_get_last_error()

Description

Cette fonction est un alias de : posix_get_last_error().



posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5)

posix_get_last_errorLit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué

Description

int posix_get_last_error ( void )

Retourne le numéro d'erreur retourné par la dernière fonction POSIX qui a échoué. Si vous le message d'erreur associé au numéro d'erreur, utilisez posix_strerror().

Valeurs de retour

Retourne le numéro de la dernière erreur survenue lors d'un appel à une fonction POSIX. Si aucune erreur n'existe, 0 sera retourné.

Exemples

Exemple #1 Exemple avec posix_get_last_error()

Cet exemple tente de terminer un processus bogué, qui a défini la dernière erreur. Nous affichons alors la dernière erreur.

<?php
posix_kill
(999459,SIGKILL);
echo 
'Erreur retournée : '.posix_get_last_error();
?>

Voir aussi

  • posix_strerror() - Lit le message d'erreur associé à un numéro d'erreur POSIX



posix_getcwd

(PHP 4, PHP 5)

posix_getcwdChemin du dossier de travail courant

Description

string posix_getcwd ( void )

Retourne le chemin absolu du dossier de travail courant. En cas d'erreur, la fonction définira l'errno, qui pourra être récupéré en utilisant la fonction posix_get_last_error()

Valeurs de retour

Retourne une chaîne de caractères représentant le nom du chemin absolu en cas de succès. Si une erreur survient, retourne FALSE et définit l'errno qui pourra être récupéré en utilisant la fonction posix_get_last_error().

Exemples

Exemple #1 Exemple avec posix_getcwd()

Cet exemple retourne le chemin absolu du dossier courant d'exécution du script.

<?php
echo 'Mon dossier courant de travail est : '.posix_getcwd();
?>

Notes

Note:

Cette fonction peut échouer si :

  • vous n'avez pas les droits en lecture ou en recherche
  • le nom du chemin n'existe plus



posix_getegid

(PHP 4, PHP 5)

posix_getegidRetourne l'ID effectif du groupe du processus courant

Description

int posix_getegid ( void )

Retourne l'ID effectif du groupe du processus courant.

Valeurs de retour

Retourne un entier représentant l'ID effectif du groupe.

Exemples

Exemple #1 Exemple avec posix_getegid()

Cet exemple affichera l'ID effectif du groupe, une fois modifié avec la fonction posix_setegid().

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setegid(40);
echo 
'Mon ID réel de groupe est : '.posix_getgid(); //20
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Notes

posix_getegid() est différent de posix_getgid() en le sens où l'identifiant effectif du groupe peut être changé par un appel à la fonction posix_setegid().

Voir aussi



posix_geteuid

(PHP 4, PHP 5)

posix_geteuidRetourne l'UID effectif de l'utilisateur du processus courant

Description

int posix_geteuid ( void )

Retourne l'UID effectif de l'utilisateur du processus courant. Reportez-vous à posix_getpwuid() pour obtenir le nom d'utilisateur.

Valeurs de retour

Retourne l'ID de l'utilisateur, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_geteuid()

Cet exemple affichera l'ID de l'utilisateur courant puis définira l'ID de l'utilisateur effectif dans un ID séparé en utilisant la fonction posix_seteuid(), puis, affichera la différence entre l'ID réel et l'ID effectif.

<?php
echo posix_getuid()."\n"//10001
echo posix_geteuid()."\n"//10001
posix_seteuid(10000);
echo 
posix_getuid()."\n"//10001
echo posix_geteuid()."\n"//10000
?>

Voir aussi



posix_getgid

(PHP 4, PHP 5)

posix_getgidRetourne l'UID du groupe du processus courant

Description

int posix_getgid ( void )

Retourne l'ID réel du groupe du processus courant.

Valeurs de retour

Retourne l'ID réel du groupe, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getgid()

Cet exemple affichera l'ID réel du groupe.

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setegid(40);
echo 
'Mon ID réel de groupe est : '.posix_getgid(); //20
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Voir aussi



posix_getgrgid

(PHP 4, PHP 5)

posix_getgrgidRetourne des informations sur un groupe

Description

array posix_getgrgid ( int $gid )

Retourne des informations sur un groupe.

Liste de paramètres

gid

L'identifiant du groupe.

Valeurs de retour

Les éléments du tableau retourné sont :

Les informations du groupe
Élément Description
name Cet élément contient le nom du groupe. C'est un nom abrégé, habituellement, moins de 16 caractères, représentant le nom du groupe et non le nom du groupe complet.
passwd Cet élément contient le mot de passe du groupe, crypté. Par exemple, sous les systèmes employant les mots de passe "shadow", un astérisque est retourné.
gid ID du groupe, doit être le même que le paramètre gid utilisé lors de l'appel à la fonction.
members C'est un tableau de chaînes de caractères représentant tous les membres du groupe.

Historique

Version Description
4.2.0 Depuis PHP 4.2.0, les membres sont retournés sous la forme d'un tableau de membres. Avant cela, la fonction ne retournait que le nombre de membres du groupe, et les membres étaient identifiés par leur index numérique.

Exemples

Exemple #1 Exemple avec posix_getgrgid()

<?php

$groupid   
posix_getegid();
$groupinfo posix_getgrgid($groupid);

print_r($groupinfo);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Voir aussi



posix_getgrnam

(PHP 4, PHP 5)

posix_getgrnamRetourne des informations sur un groupe

Description

array posix_getgrnam ( string $name )

Récupère les informations d'un groupe donné.

Liste de paramètres

name

Le nom du groupe

Valeurs de retour

Les éléments du tableau retourné sont :

Les informations du groupe
Élément Description
name Cet élément contient le nom du groupe. C'est un nom abrégé, habituellement, contenant moins de 16 caractères. C'est le même que le paramètre name utilisé lors de l'appel à la fonction.
passwd Cet élément contient le mot de passe du groupe, crypté. Par exemple, sous un système utilisant les mots de passes "shadow", un astérisque est retourné.
gid L'ID du groupe, sous un format numérique.
members C'est un tableau de chaînes de caractères pour tous les membres du groupe.

Historique

Version Description
4.2.0 Avant cette version, l'élément members était simplement un entier représentant le nombre de membres dans le groupe, et les noms des membres étaient retournés avec des indices numériques.

Exemples

Exemple #1 Exemple avec posix_getgrnam()

<?php

$groupinfo 
posix_getgrnam("toons");

print_r($groupinfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Voir aussi



posix_getgroups

(PHP 4, PHP 5)

posix_getgroupsRetourne les identifiants du groupe du processus courant

Description

array posix_getgroups ( void )

Retourne les identifiants du groupe du processus courant.

Valeurs de retour

Retourne un tableau contenant les identifiants du groupe du processus courant.

Exemples

Exemple #1 Exemple avec posix_getgroups()

<?php

$groups 
posix_getgroups();

print_r($groups);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 4
    [1] => 20
    [2] => 24
    [3] => 25
    [4] => 29
    [5] => 30
    [6] => 33
    [7] => 44
    [8] => 46
    [9] => 104
    [10] => 109
    [11] => 110
    [12] => 1000
)

Voir aussi



posix_getlogin

(PHP 4, PHP 5)

posix_getloginRetourne le nom de login

Description

string posix_getlogin ( void )

Retourne le nom de login de l'utilisateur qui possède le processus courant.

Valeurs de retour

Retourne le nom de login de l'utilisateur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec posix_getlogin()

<?php
echo posix_getlogin(); //apache
?>

Voir aussi

  • posix_getpwnam() - Retourne des informations sur un utilisateur
  • POSIX man page GETLOGIN(3)



posix_getpgid

(PHP 4, PHP 5)

posix_getpgidRetourne l'id du groupe de processus

Description

int posix_getpgid ( int $pid )

Retourne l'id du groupe de processus pour le processus pid ou FALSE si une erreur survient.

Liste de paramètres

pid

L'identifiant du processus.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getpgid()

<?php
$pid 
posix_getppid();
echo 
posix_getpgid($pid); //35
?>

Notes

Note:

Ce n'est pas une fonction POSIX, mais elle est commune sous BSD et les systèmes Sytem V. Si votre système ne supporte pas cette fonction, alors elle ne sera pas incluse lors de la compilation. Vous devriez vérifier si cette fonction existe avec la fonction function_exists().

Voir aussi

  • posix_getppid() - Retourne l'identifiant du processus parent
  • man page SETPGID(2)



posix_getpgrp

(PHP 4, PHP 5)

posix_getpgrpRetourne l'identifiant du groupe de processus

Description

int posix_getpgrp ( void )

Retourne l'identifiant du groupe de processus du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Voir aussi

  • Reportez-vous à POSIX.1 et à getpgrp(2) dans le manuel de votre système POSIX pour plus d'informations sur les groupes de processus.



posix_getpid

(PHP 4, PHP 5)

posix_getpidRetourne l'identifiant du processus courant

Description

int posix_getpid ( void )

Retourne l'identifiant du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getpid()

<?php
echo posix_getpid(); //8805
?>

Voir aussi

  • posix_kill() - Envoie un signal à un processus
  • POSIX man page GETPID(2)



posix_getppid

(PHP 4, PHP 5)

posix_getppidRetourne l'identifiant du processus parent

Description

int posix_getppid ( void )

Retourne l'identifiant du processus parent du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getppid()

<?php
echo posix_getppid(); //8259
?>



posix_getpwnam

(PHP 4, PHP 5)

posix_getpwnamRetourne des informations sur un utilisateur

Description

array posix_getpwnam ( string $username )

Retourne un tableau d'informations sur un utilisateur.

Liste de paramètres

username

Un nom alphanumérique d'utilisateur.

Valeurs de retour

En cas de succès, un tableau avec les éléments suivants est retourné, sinon, FALSE :

Le tableau descriptif d'un utilisateur
Élément Description
name Le nom contient le nom de l'utilisateur. Généralement, c'est un nom court, de moins de 16 caractères, mais ce n'est pas son nom réel et complet. Cette valeur devrait correspondre au paramètre username et, donc, il est redondant.
passwd Contient le mot de passe de l'utilisateur, chiffré. Souvent, dans les systèmes utilisant les mots de passe "fantômes", un astérisque est retourné.
uid L'UID de l'utilisateur.
gid L'ID du groupe de l'utilisateur. Utilisez la fonction posix_getgrgid() pour connaître le nom du groupe, et ses membres.
gecos GECOS est un terme obsolète qui fait référence aux données de finger, sur un système Honeywell. Le champ, cependant, a survécu, et son contenu a été formalisé par POSIX. Le champ contient une liste, séparée par des virgules, qui contient le nom complet de l'utilisateur, son téléphone professionnel, son numéro de téléphone bureau et son numéro de téléphone personnel. Sur la plupart des systèmes, seul le nom est disponible.
dir Cet élément contient le chemin absolu jusqu'au dossier racine de l'utilisateur.
shell Cet élément contient le chemin absolu jusqu'au dossier d'exécution du shell de l'utilisateur.

Exemples

Exemple #1 Exemple avec posix_getpwnam()

<?php

$userinfo 
posix_getpwnam("tom");

print_r($userinfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [geocs]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Voir aussi

  • posix_getpwuid() - Retourne des informations sur un utilisateur
  • POSIX man page GETPWNAM(3)



posix_getpwuid

(PHP 4, PHP 5)

posix_getpwuidRetourne des informations sur un utilisateur

Description

array posix_getpwuid ( int $uid )

Retourne un tableau d'informations sur un utilisateur référencé par son ID.

Liste de paramètres

uid

L'identifiant de l'utilisateur.

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

Le tableau de description d'un utilisateur
Élément Description
name Le nom contient le nom de l'utilisateur. Généralement, c'est un nom court, de moins de 16 caractères, mais ce n'est pas son nom réel et complet.
passwd Contient le mot de passe de l'utilisateur, chiffré. Souvent, dans les systèmes utilisant les mots de passe "fantômes", un astérisque est retourné.
uid Cette valeur devrait correspondre au paramètre uid et, donc, il est redondant.
gid L'ID du groupe de l'utilisateur. Utilisez la fonction posix_getgrgid() pour connaître le nom du groupe, et ses membres.
gecos GECOS est un terme obsolète qui fait référence aux données de finger, sur un système Honeywell. Le champ, cependant, a survécu et son contenu a été formalisé par POSIX. Le champ contient une liste, séparée par des virgules, qui contient le nom complet de l'utilisateur, son téléphone professionnel, son numéro de bureau et son numéro de téléphone personnel. Sur la plupart des systèmes, seul le nom est disponible.
dir Cet élément contient le chemin absolu jusqu'au dossier racine de l'utilisateur.
shell Cet élément contient le chemin absolu jusqu'au dossier d'exécution du shell de l'utilisateur.

Exemples

Exemple #1 Exemple avec posix_getpwuid()

<?php

$userinfo 
posix_getpwuid(10000);

print_r($userinfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [geocs]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Voir aussi

  • posix_getpwnam() - Retourne des informations sur un utilisateur
  • POSIX man page GETPWNAM(3)



posix_getrlimit

(PHP 4, PHP 5)

posix_getrlimitRetourne des informations concernant les limites des ressources système

Description

array posix_getrlimit ( void )

posix_getrlimit() retourne un tableau d'informations concernant les limites soft et hard de la ressource courante.

Chaque ressource a une limite soft et hard associée. La limite soft est la valeur que le noyau impose pour la ressource courante. La limite hard agit comme un fusible sur la limite soft. Un processus non privilégié ne peut que définir la limite soft à une valeur comprise entre 0 et la limite hard.

Valeurs de retour

Retourne un tableau associatif d'éléments pour chaque limite définie. Chaque limite a une limite soft et hard.

Liste des limites possibles retournées
Nom de la limite Description de la limite
core La taille maximale du coeur du fichier. Lorsqu'elle vaut 0, aucun coeur de fichier n'est créé. Lorsque le coeur des fichiers est plus grand que sa taille, il sera tronqué à cette taille.
totalmem La taille maximale de la mémoire du processus, en octets.
virtualmem La taille maximale de la mémoire virtuelle du processus, en octets.
data La taille maximale du segment de données pour le processus, en octets.
stack La taille maximale de la pile du processus, en octets.
rss Le nombre maximal de pages virtuelles résident en RAM.
maxproc Le nombre maximal de processus qui peuvent être créés pour l'ID utilisateur réel du processus appelé.
memlock Le nombre maximal d'octets de mémoires pouvant être verrouillés en RAM.
cpu Le temps que le processus est autorisé à utiliser le CPU.
filesize La taille maximale du segments de données pour le processus, en octets.
openfiles le nombre maximal de pointeurs de fichiers ouverts.

Exemples

Exemple #1 Exemple avec posix_getrlimit()

<?php

$limits 
posix_getrlimit();

print_r($limits);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

Notes

Note:

Cette fonction n'est pas une fonction POSIX mais est commune sous BSD ainsi que sous les systèmes System V. Si votre système ne supporte pas cette fonction, alors, elle ne sera pas incluse lors de la compilation. Vous devriez vérifier si la fonction existe avec la fonction function_exists().

Voir aussi

  • man page GETRLIMIT(2)



posix_getsid

(PHP 4, PHP 5)

posix_getsidRetourne le sid du processus

Description

int posix_getsid ( int $pid )

Retourne l'ID de session du processus pid. L'ID de session d'un processus est l'ID du groupe du processus du gestionnaire de session.

Liste de paramètres

pid

L'identifiant du processus. S'il est défini à 0, le processus courant est utilisé. Si un pid invalide est fourni, alors FALSE est retourné et une erreur est définie et pourra être récupérée avec la fonction posix_get_last_error().

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getsid()

<?php
$pid 
posix_getpid();
echo 
posix_getsid($pid); //8805
?>

Voir aussi



posix_getuid

(PHP 4, PHP 5)

posix_getuidRetourne l'ID de l'utilisateur du processus courant

Description

int posix_getuid ( void )

Retourne l'ID de l'utilisateur du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getuid()

<?php
echo posix_getuid(); //10000
?>

Voir aussi

  • posix_getpwuid() - Retourne des informations sur un utilisateur
  • POSIX man page GETUID(2)



posix_initgroups

(PHP 5 >= 5.2.0)

posix_initgroupsCalcule la liste des accès de groupe

Description

bool posix_initgroups ( string $name , int $base_group_id )

Calcule la liste des accès de groupe pour l'utilisateur spécifié par son nom.

Liste de paramètres

name

L'utilisateur pour lequel on doit calculer la liste.

base_group_id

Typiquement, le numéro du groupe depuis le fichier de mot de passe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • La page du manuel Unix d'initgroups(3).



posix_isatty

(PHP 4, PHP 5)

posix_isattyDétermine si un pointeur de fichier est un terminal interactif

Description

bool posix_isatty ( int $fd )

Détermine si le pointeur de fichier fd se réfère à un type de terminal de périphérique valide.

Liste de paramètres

fd

Le pointeur de fichier.

Valeurs de retour

Retourne TRUE si fd est un pointeur de fichier connecté à un terminal, FALSE sinon.

Voir aussi



posix_kill

(PHP 4, PHP 5)

posix_killEnvoie un signal à un processus

Description

bool posix_kill ( int $pid , int $sig )

Envoie le signal sig au processus pid.

Liste de paramètres

pid

L'identifiant du processus.

sig

Une des constantes de signals PCNTL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Reportez-vous à la page de manuel de kill(2) de votre système POSIX, qui contient plus de détails sur les identifiants négatifs de processus, les pid spéciaux 0 et -1, et le signal numéro 0.



posix_mkfifo

(PHP 4, PHP 5)

posix_mkfifoCrée un fichier FIFO (first in, first out) (un pipe nommé)

Description

bool posix_mkfifo ( string $pathname , int $mode )

posix_mkfifo() crée un fichier spécial FIFO qui existe dans le système de fichiers, et sert de point de communication bidirectionnel pour les processus.

Liste de paramètres

pathname

Chemin vers le fichier FIFO.

mode

Le second paramètre mode doit être au format octal (i.e. 0644). Les droits donnés à la nouvelle pile FIFO dépendent aussi de la configuration de la fonction umask(). Les droits créées sont (mode & ~umask).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.



posix_mknod

(PHP 5 >= 5.1.0)

posix_mknod Crée un fichier spécial ou ordinaire (POSIX.1)

Description

bool posix_mknod ( string $pathname , int $mode [, int $major = 0 [, int $minor = 0 ]] )

Crée un fichier spécial ou ordinaire.

Liste de paramètres

pathname

Le fichier à créer.

mode

Ce paramètre est construit par une manipulation de bits ou par des types de fichier (une des constantes suivantes : POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO ou POSIX_S_IFSOCK) et des permissions.

major

L'identifiant majeur du dispositif du noyau (requis lorsque vous utilisez S_IFCHR ou S_IFBLK).

minor

L'identifiant mineur du dispositif du noyau.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_mknod()

<?php

$file 
'/tmp/tmpfile';  // nom du fichier
$type POSIX_S_IFBLK// type du fichier
$permissions 0777;     // octal
$major 1;
$minor 8;              // /dev/random

if (!posix_mknod($file$type $permissions$major$minor)) {
    die(
'Erreur : ' posix_get_last_error() . ': ' posix_strerror(posix_get_last_error()));
}

?>

Voir aussi

  • posix_mkfifo() - Crée un fichier FIFO (first in, first out) (un pipe nommé)



posix_setegid

(PHP 4 >= 4.0.2, PHP 5)

posix_setegidModifie le GID réel du processus courant

Description

bool posix_setegid ( int $gid )

Modifie l'identifiant de groupe réel du processus courant. C'est une fonction de haut niveau, et vous aurez besoin des droits appropriés (généralement ceux du super utilisateur), sur votre système, pour l'utiliser.

Liste de paramètres

gid

L'ID du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_setegid()

Cet exemple affichera l'ID effectif du groupe.

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setegid(40);
echo 
'Mon ID réel de groupe est : '.posix_getgid(); //20
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Voir aussi



posix_seteuid

(PHP 4 >= 4.0.2, PHP 5)

posix_seteuidModifie l'identifiant d'utilisateur réel (UID) du processus courant

Description

bool posix_seteuid ( int $uid )

Modifie l'identifiant d'utilisateur réel du processus courant. C'est une fonction de haut niveau, et vous aurez besoin des droits appropriés (généralement ceux du super utilisateur), sur votre système, pour l'utiliser.

Liste de paramètres

uid

L'ID de l'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



posix_setgid

(PHP 4, PHP 5)

posix_setgidFixe le GID effectif du processus courant

Description

bool posix_setgid ( int $gid )

Fixe le GID effectif du processus courant. C'est une fonction privilégiée et vous devez avoir les privilèges appropriés (habituellement root) sur le système pour pouvoir l'exécuter. L'ordre approprié est d'abord posix_setgid(), puis posix_setuid().

Note:

Si l'appelant est le super-utilisateur, cette fonction définira également l'ID effectif du groupe.

Liste de paramètres

gid

L'ID du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_setgid()

Cet exemple affichera l'ID effectif du groupe.

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setgid(40);
echo 
'Mon ID réel de groupe est : '.posix_getgid(); //40
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Voir aussi



posix_setpgid

(PHP 4, PHP 5)

posix_setpgidFixe l'identifiant de groupe de processus

Description

bool posix_setpgid ( int $pid , int $pgid )

Ajoute le processus pid au groupe d'id pgid.

Liste de paramètres

pid

L'ID du processus.

pgid

L'ID du groupe du processus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Reportez-vous à POSIX.1 et setsid(2) dans le manuel de votre système POSIX pour plus d'informations sur le contrôle de tâche.



posix_setsid

(PHP 4, PHP 5)

posix_setsidFait du processus courant un chef de session

Description

int posix_setsid ( void )

Fait du processus courant un chef de session.

Valeurs de retour

Retourne l'identifiant de session, ou -1 si une erreur survient.

Voir aussi

  • Reportez-vous à POSIX.1 et setsid(2) dans le manuel de votre système POSIX pour plus d'informations sur le contrôle de tâche.



posix_setuid

(PHP 4, PHP 5)

posix_setuidFixe l'UID effective du processus courant

Description

bool posix_setuid ( int $uid )

Fixe l'UID effective de l'utilisateur du processus courant. Vous devez avoir les privilèges nécessaires (traditionnellement ceux du root) sur votre système pour le faire.

Liste de paramètres

uid

L'ID de l'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_setuid()

Cet exemple affiche l'ID courant de l'utilisateur et en modifie sa valeur.

<?php
echo posix_getuid()."\n"//10001
echo posix_geteuid()."\n"//10001
posix_setuid(10000);
echo 
posix_getuid()."\n"//10000
echo posix_geteuid()."\n"//10000
?>

Voir aussi

  • posix_setgid() - Fixe le GID effectif du processus courant
  • posix_seteuid() - Modifie l'identifiant d'utilisateur réel (UID) du processus courant
  • posix_getuid() - Retourne l'ID de l'utilisateur du processus courant
  • posix_geteuid() - Retourne l'UID effectif de l'utilisateur du processus courant



posix_strerror

(PHP 4 >= 4.2.0, PHP 5)

posix_strerrorLit le message d'erreur associé à un numéro d'erreur POSIX

Description

string posix_strerror ( int $errno )

Retourne le message d'erreur POSIX associé au numéro d'erreur errno. Vous pouvez récupérer le paramètre errno en appelant la fonction posix_get_last_error().

Liste de paramètres

errno

Un numéro d'erreur POSIX, retourné par la fonction posix_get_last_error(). Si défini à 0, alors, la chaîne de caractères "Success" est retournée.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec posix_strerror()

Cet exemple tentera de tuer un processus qui n'existe pas, puis, affichera le message d'erreur correspondant.

<?php
posix_kill
(50,SIGKILL);
echo 
posix_strerror(posix_get_last_error())."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

No such process

Voir aussi

  • posix_get_last_error() - Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué



posix_times

(PHP 4, PHP 5)

posix_timesUtilisation des ressources

Description

array posix_times ( void )

Retourne des informations sur l'utilisation courante du CPU.

Valeurs de retour

Retourne un tableau avec les informations sur l'utilisation du CPU. Les indices sont :

  • ticks - nombre de ticks depuis le dernier démarrage.
  • utime - temps utilisateur utilisé par le processus courant.
  • stime - temps système utilisé par le processus courant.
  • cutime - temps utilisateur utilisé par le processus courant et ses enfants.
  • cstime - temps système utilisé par le processus courant et ses enfants.

Notes

Avertissement

Cette fonction n'est pas fiable, elle peut retourner des valeurs négatives pour des temps élevés.

Exemples

Exemple #1 Exemple avec posix_times()

<?php

$times 
posix_times();

print_r($times);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)



posix_ttyname

(PHP 4, PHP 5)

posix_ttynameRetourne le nom de device du terminal

Description

string posix_ttyname ( int $fd )

Retourne une chaîne de caractères pour le chemin absolu du terminal courant qui est ouvert sur le pointeur de fichier. fd.

Liste de paramètres

fd

Le pointeur de fichier.

Valeurs de retour

En cas de succès, retourne une chaîne de caractères correspondant au chemin absolu de fd. En cas d'erreur, retourne FALSE.



posix_uname

(PHP 4, PHP 5)

posix_unameRetourne le nom du système

Description

array posix_uname ( void )

Retourne des informations sur le système.

Posix impose que vous n'ayez pas d'à priori sur le format des chaînes, c'est-à-dire que vous ne devez pas vous attendre à avoir forcément trois chiffres pour la version, par exemple.

Valeurs de retour

Retourne un tableau associatif avec des informations sur le système. Les indices du tableau sont :

  • sysname : nom du système d'exploitation (exemple : Linux)
  • nodename : nom du système (i.e. valiant)
  • release : édition du système d'exploitation (i.e. 2.2.10)
  • version : version du système d'exploitation (e.e. #4 Tue Jul 20 17:01:36 MEST 1999)
  • machine : architecture système (i.e. i586)
  • domainname : Nom de domaine (i.e. example.com)

domainname est une extension GNU et ne fait pas partie de POSIX.1, ce champ n'est donc accessible que sur les systèmes GNU ou lors de l'utilisation de la GNU libc.

Exemples

Exemple #1 Exemple avec posix_uname()

<?php
$uname
=posix_uname();
print_r($uname);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [sysname] => Linux
    [nodename] => funbox
    [release] => 2.6.20-15-server
    [version] => #2 SMP Sun Apr 15 07:41:34 UTC 2007
    [machine] => i686
)


Sommaire




Sémaphore


Introduction

Ce module fournit une interface pour les fonctions de type System V IPC. Cela inclut les sémaphores, la mémoire partagée et le système de communication inter-processus (IPC).

Les sémaphores peuvent être utilisés pour fournir un accès exclusif à certaines ressources de la machine, ou pour limiter le nombre de processus qui utilisent en même temps une ressource.

Ce module fournit aussi un système de mémoire partagée, qui utilise la mémoire partagée System V. Cette mémoire partagée permet d'accéder à des variables globales. Les différents démons httpd et même d'autres programmes (tels que Perl, C...) permettent un tel échange de données globales. N'oubliez pas que la mémoire partagée n'est pas protégée contre l'accès simultané. Il vous faudra utiliser les sémaphores pour assurer la synchronisation.

Limites de la mémoire partagée sous Unix OS
SHMMAX Taille maximale de mémoire partagée, par défaut, 131072 octets.
SHMMIN Taille minimale de mémoire partagée, par défaut, 1 octet.
SHMMNI Nombre maximal de segments de mémoire partagée, par défaut 100.
SHMSEG Taille maximale de mémoire partagée par processus, par défaut 6.

Ces fonctions permettent d'envoyer et de recevoir des messages de/vers d'autres processus. Elles offrent une interface simple et efficace pour échanger des données entre processus, sans avoir besoin d'utiliser un autre socket UNIX.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Le support de ces fonctions n'est pas activé par défaut. Pour activer le support des sémaphores System V, compilez PHP avec l'option --enable-sysvsem . Pour activer le support de la mémoire partagée System V, compilez PHP avec l'option --enable-sysvshm . Pour activer le support des messages System V, compilez PHP avec l'option --enable-sysvmsg .



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les sémaphores
Nom Défaut Modifiable Historique
sysvshm.init_mem 10000 PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sysvshm.init_mem int

La taille par défaut du segment de mémoire partagée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes des messages System V
Constante Type Changelog
MSG_IPC_NOWAIT entier  
MSG_EAGAIN entier Depuis 5.2.0
MSG_ENOMSG entier Depuis 5.2.0
MSG_NOERROR entier  
MSG_EXCEPT entier  



Fonctions Sémaphore


ftok

(PHP 4 >= 4.2.0, PHP 5)

ftokConvertit un chemin et un identifiant de projet en une clé System V IPC

Description

int ftok ( string $pathname , string $proj )

Convertit le paramètre pathname d'un fichier existant, et de l'identifiant de projet proj, en un entier integer à utiliser avec la fonction shmop_open() et d'autres fonctions System V IPC.

Liste de paramètres

pathname

Chemin vers un fichier accessible.

proj

Identifiant du projet. Doit être un seul caractère.

Valeurs de retour

En cas de succès, la valeur retournée sera la valeur de la clé créée, sinon, -1 sera retourné.

Voir aussi

  • shmop_open() - Crée ou ouvre un bloc de mémoire partagée
  • sem_get() - Retourne un identifiant de sémaphore



msg_get_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_get_queueCrée ou s'attache à une file de messages

Description

resource msg_get_queue ( int $key [, int $perms ] )

msg_get_queue() retourne une ressource qui peut être utilisée avec les files de messages System V et la clé key. Le premier appel à la fonction va créer la file de messages, avec les droits optionnels de perms. Un second appel à msg_get_queue() avec la même clé key retournera une autre ressource de file de messages, mais les deux identifiants aboutissent à la même file de messages.

Liste de paramètres

key

Identifiant numérique du message dans la file

perms

Permission dans la file. Par défaut, vaut 0666. Si la file de messages existe déjà, le paramètre perms sera ignoré.

Valeurs de retour

Retourne une ressource qui peut être utilisée pour accéder à la file de messages System V.

Voir aussi



msg_queue_exists

(PHP 5 >= 5.3.0)

msg_queue_existsVérifie si une file de messages existe

Description

bool msg_queue_exists ( int $key )

Vérifie si la file de messages représenté par la clé key existe.

Liste de paramètres

key

La clé de la file.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msg_receive

(PHP 4 >= 4.3.0, PHP 5)

msg_receiveReçoit un message depuis une file de messages

Description

bool msg_receive ( resource $queue , int $desiredmsgtype , int &$msgtype , int $maxsize , mixed &$message [, bool $unserialize = true [, int $flags [, int &$errorcode ]]] )

msg_receive() reçoit le premier message de la file queue, le type est spécifié par desiredmsgtype.

Liste de paramètres

queue

desiredmsgtype

Si desiredmsgtype vaut 0, le premier message de la file est retourné. Si desiredmsgtype vaut plus que 0, alors le premier message de ce type sera retourné. Si desiredmsgtype vaut moins que 0, le premier message de la file ayant un type inférieur ou égal à la valeur absolue de desiredmsgtype sera retourné. Si aucun message ne correspond aux critères, votre script attendra la venue d'un tel message dans la file. Vous pouvez éviter ce blocage en précisant l'option MSG_IPC_NOWAIT dans le paramètre flags.

msgtype

Le type de message qui a été reçu sera stocké dans ce paramètre.

maxsize

La taille maximale de message est fixée par maxsize ; si le message de la file est plus grand que cette taille, la fonction échouera (à moins que vous n'utilisiez une option flags, décrite ci-dessous).

message

Le message reçu sera stocké dans le paramètre message, à moins qu'il n'y ait eu des erreurs de réception du message.

unserialize

Quand c'est le cas, le message est traité comme s'il avait été linéarisé avec le même mécanisme que le module de session. Le message sera alors délinéarisé, puis retourné au script. Cela vous permettra de recevoir facilement des tableaux ou des objets complexes dans votre script, émis par d'autres scripts PHP, ou, si vous utilisez WDDX, depuis n'importe quelle source compatible WDDX.

Si unserialize vaut FALSE, le message sera retourné intact, et sans modifier les valeurs binaires.

flags

Le paramètre flags permet de passer des options pour configurer les appels msgrcv. Par défaut, il vaut 0, mais vous pouvez spécifier une ou plusieurs options en les combinant avec l'opérateur OR).

Options de la fonction msg_receive()
MSG_IPC_NOWAIT S'il n'y a pas de message du type desiredmsgtype, retourne immédiatement et n'attend pas. La fonction échouera et retournera un entier correspondant à MSG_ENOMSG.
MSG_EXCEPT En utilisant cette option en combinaison avec un type desiredmsgtype supérieur à 0, la fonction va lire le premier message qui n'est pas du type demandé par desiredmsgtype.
MSG_NOERROR Si le message est plus grand que maxsize, cette option va tronquer le message à la taille de maxsize et ne signalera pas d'erreur.

errorcode

Si la fonction échoue, le paramètre optionnel errorcode sera défini à la valeur de la variable système errno.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Lors de la réception réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrémenté de 1 et msg_rtime prend la date et l'heure courante.

Voir aussi



msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_remove_queueDétruit une file de messages

Description

bool msg_remove_queue ( resource $queue )

msg_remove_queue() détruit la file de messages identifiée par queue. Utiliser uniquement cette fonction lorsque tous les processus ont fini de travailler dans la file de messages, et que vous voulez libérer les ressources.

Liste de paramètres

queue

Une ressource, représentant la file des messages

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_sendEnvoie un message dans une file

Description

bool msg_send ( resource $queue , int $msgtype , mixed $message [, bool $serialize [, bool $blocking [, int &$errorcode ]]] )

msg_send() envoie le message message de type msgtype (qui DOIT être plus grand que 0) à la file de messages identifiée par queue.

Liste de paramètres

queue

msgtype

message

serialize

Le paramètre optionnel serialize contrôle la méthode d'envoi du message message. serialize vaut par défaut TRUE ce qui signifie que le message message sera linéarisé en utilisant le même mécanisme que celui qui est utilisé par les sessions, avant d'être envoyé à la file de message. Cela permet d'envoyer des tableaux et des objets complexes à d'autres scripts PHP, ou bien, si vous utilisez l'extension WDDX, d'échanger des messages avec des clients compatibles WDDX.

blocking

Si le message est trop grand pour être stocké par la file, votre script attendra jusqu'à ce qu'un autre processus lise dans la file un message, et libère assez de place pour votre message. C'est le mode bloquant : vous pouvez éviter ce mode en utilisant le paramètre blocking avec la valeur FALSE : dans ce cas, msg_send() retournera immédiatement FALSE si le message est trop gros pour la file. Il assignera alors au paramètre errorcode la valeur de MSG_EAGAIN, indiquant que vous devriez essayer d'envoyer à nouveau votre message, un peu plus tard.

errorcode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Lors de l'émission réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrémenté de 1 et msg_rtime prend la date et l'heure courante.

Voir aussi



msg_set_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_set_queueModifie des informations dans la file de messages

Description

bool msg_set_queue ( resource $queue , array $data )

msg_set_queue() vous permet de modifier certaines valeurs comme msg_perm.uid, msg_perm.gid, msg_perm.mode et msg_qbytes, qui sont des champs de la structure qui héberge la file de message.

Modifier la structure de données requiert que PHP fonctionne avec le même utilisateur que celui qui a créé la file, qui possède la file (comme déterminé par les champs msg_perm.xxx), ou qu'il fonctionne avec les droits de super-utilisateur. Les droits de super-utilisateur sont nécessaires pour affecter à msg_qbytes des valeurs supérieures aux limites du système.

Liste de paramètres

queue

Une ressource, représentant la file des messages

data

Vous devez spécifier les valeurs désirées en définissant la valeur des clés que vous voulez récupérer dans le tableau data.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_stat_queueRetourne des informations sur la file de messages

Description

array msg_stat_queue ( resource $queue )

msg_stat_queue() retourne des informations sur la file de messages identifiée par queue. C'est une fonction pratique pour connaître le processus qui a émis le message qui vient d'être reçu.

Liste de paramètres

queue

Une ressource, représentant la file des messages

Valeurs de retour

La valeur retournée par la fonction est un tableau dont les index et valeurs sont les suivants :

Structure de réponse de msg_stat_queue()
msg_perm.uid L'uid du propriétaire de la file.
msg_perm.gid Le gid du propriétaire de la file.
msg_perm.mode Le mode d'accès à la file.
msg_stime L'heure du dernier message envoyé à la file.
msg_rtime L'heure du dernier message émis par la file.
msg_ctime L'heure de modification de la file.
msg_qnum Le nombre de messages en attente dans la file.
msg_qbytes Le nombre d'octets maximum autorisé dans un message de la file d'attente. Sous Linux, cette valeur peut être lue et modifiée via le fichier /proc/sys/kernel/msgmnb.
msg_lspid Le pid du processus qui a envoyé le dernier message à la file.
msg_lrpid Le pid du processus qui a reçu le dernier message de la file.

Voir aussi



sem_acquire

(PHP 4, PHP 5)

sem_acquireRéserve un sémaphore

Description

bool sem_acquire ( resource $sem_identifier )

sem_acquire() se bloque (si nécessaire) jusqu'à ce que le sémaphore puisse être réservé. Un processus qui tente de réserver un sémaphore qu'il a déjà réservé restera en attente indéfinie, si cette acquisition excède le nombre max_acquire de réservations simultanées.

À la fin d'un script, tous les sémaphores réservés mais non explicitement libérés, seront libérés automatiquement, et une alerte sera générée.

Liste de paramètres

sem_identifier

sem_identifier est une ressource de sémaphore, obtenue de la fonction sem_get().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



sem_get

(PHP 4, PHP 5)

sem_getRetourne un identifiant de sémaphore

Description

resource sem_get ( int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1 ]]] )

sem_get() retourne un identifiant qui pourra être utilisé pour accéder à un sémaphore System V.

Un deuxième appel à sem_get() avec la même clé retournera un identifiant différent, mais les deux identifiants permettront d'accéder au même sémaphore.

Liste de paramètres

key

max_acquire

Le nombre de processus qui peuvent réserver simultanément le sémaphore est précisé dans le paramètre max_acquire.

perm

Les permissions du sémaphore. Actuellement, cette valeur n'est affectée que si le processus est le seul processus actuellement attaché au sémaphore.

auto_release

Le paramètre optionnel auto_release spécifie si le sémaphore doit être automatiquement libéré à la fermeture.

Valeurs de retour

Retourne une ressource de sémaphore en cas de succès, et FALSE en cas d'erreur.

Historique

Version Description
4.3.0 Le paramètre auto_release a été ajouté.

Voir aussi

  • sem_acquire() - Réserve un sémaphore
  • sem_release() - Libère un sémaphore
  • ftok() - Convertit un chemin et un identifiant de projet en une clé System V IPC



sem_release

(PHP 4, PHP 5)

sem_releaseLibère un sémaphore

Description

bool sem_release ( resource $sem_identifier )

sem_release() libère le sémaphore sem_identifier, s'il a été réservé par le processus courant, sinon génère une erreur.

Après libération du sémaphore, sem_acquire() peut être appelé pour le réserver à nouveau.

Liste de paramètres

sem_identifier

Une ressource, représentant un sémaphore, telle que retournée par la fonction sem_get().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



sem_remove

(PHP 4 >= 4.1.0, PHP 5)

sem_removeDétruit un sémaphore

Description

bool sem_remove ( resource $sem_identifier )

sem_remove() supprime le sémaphore donné.

Après suppression du sémaphore, il n'est plus utilisable.

Liste de paramètres

sem_identifier

Une ressource représentant un sémaphore, telle que retournée par la fonction sem_get().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



shm_attach

(PHP 4, PHP 5)

shm_attachCrée ou ouvre un segment de mémoire partagée

Description

resource shm_attach ( int $key [, int $memsize [, int $perm ]] )

shm_attach() retourne un identifiant qui permettra d'accéder à la mémoire partagée de type System V. Au premier appel, la mémoire sera créée, avec la taille memsize et avec les permissions perm

Aux appels suivants avec la même clé key, shm_attach() retournera un nouvel identifiant, mais cet identifiant accédera toujours à la même portion de mémoire partagée. Dans ce cas, memsize et perm seront ignorés.

Liste de paramètres

key

Un identifiant numérique de la mémoire partagée

memsize

La taille mémoire. S'il n'est pas fourni, vaut par défaut la valeur de sysvshm.init_mem du fichier php.ini, sinon 10000 octets.

perm

Les permissions (optionnelles). Par défaut, vaut 0666.

Valeurs de retour

Retourne un identifiant de mémoire partagée.

Historique

Version Description
5.3.0 La fonction retourne une ressource à la place d'un entier.

Notes

Note:

Puisque cette fonction retourne un entier avant PHP 5.3.0, pour assurer la portabilité, le retour de la fonction peut être casté en entier:

<?php
// Crée un fichier temporaire et retourne son chemin
$tmp tempnam('/tmp''PHP');

// Récupère le jeton du fichier
$key ftok($tmp'a');

// Attache la ressource SHM resource, notez le cast après
$id shm_attach($key);

if(
$id === false) {
   die(
'Unable to create the shared memory segment');
}

// Cast vers l'entier, car depuis PHP 5.3.0 l'id de ressource
// est retourné et il peut être utilisé pour le cast en entier
$id = (integer) $id;
?>

Voir aussi

  • shm_detach() - Libère un segment de mémoire partagée
  • ftok() - Convertit un chemin et un identifiant de projet en une clé System V IPC



shm_detach

(PHP 4, PHP 5)

shm_detachLibère un segment de mémoire partagée

Description

bool shm_detach ( resource $shm_identifier )

shm_detach() libère le segment de mémoire partagée identifié par shm_identifier et créé par shm_attach(). N'oubliez pas que cette mémoire partagée existe toujours sous Unix, et que les données sont toujours accessibles.

Liste de paramètres

shm_identifier

Une ressource représentant la mémoire partagée, telle que retournée par la fonction shm_attach()

Valeurs de retour

shm_detach() retourne toujours TRUE.

Voir aussi



shm_get_var

(PHP 4, PHP 5)

shm_get_varLit une variable dans la mémoire partagée

Description

mixed shm_get_var ( resource $shm_identifier , int $variable_key )

shm_get_var() retourne la variable repérée par variable_key, dans le segment de mémoire partagée identifié par shm_identifier. La variable est toujours présente en mémoire partagée.

Liste de paramètres

shm_identifier

Segment de mémoire partagée, obtenu depuis la fonction shm_attach().

variable_key

La clé de la variable.

Valeurs de retour

Retourne la variable correspondant à la clé donnée.

Voir aussi

  • shm_has_var() - Vérifie si une variable existe en mémoire partagée
  • shm_put_var() - Insère ou modifie une variable de la mémoire partagée



shm_has_var

(PHP 5 >= 5.3.0)

shm_has_varVérifie si une variable existe en mémoire partagée

Description

bool shm_has_var ( resource $shm_identifier , int $variable_key )

Vérifie si une variable existe en mémoire partagée.

Liste de paramètres

shm_identifier

Le segment de mémoire partagée, obtenu avec shm_attach().

variable_key

Le nom de la variable.

Valeurs de retour

Retourne TRUE si la variable existe, et FALSE sinon;

Voir aussi

  • shm_get_var() - Lit une variable dans la mémoire partagée
  • shm_put_var() - Insère ou modifie une variable de la mémoire partagée



shm_put_var

(PHP 4, PHP 5)

shm_put_varInsère ou modifie une variable de la mémoire partagée

Description

bool shm_put_var ( resource $shm_identifier , int $variable_key , mixed $variable )

shm_put_var() insère ou modifie la variable variable avec la clé variable_key dans le segment de mémoire shm_identifier.

Des alertes (niveau E_WARNING) seront émises si shm_identifier n'est pas un segment de mémoire type System V valide, ou s'il n'y a pas assez de mémoire pour votre requête.

Liste de paramètres

shm_identifier

Une ressource, représentant la mémoire partagée, telle que retournée par la fonction shm_attach()

variable_key

La clé de la variable.

variable

La variable. Tous les types de variables supportés par la fonction serialize() peuvent être utilisés : cela signifie que tous les types, sauf les ressources et quelques objets internes, peuvent être linéarisés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • shm_get_var() - Lit une variable dans la mémoire partagée
  • shm_has_var() - Vérifie si une variable existe en mémoire partagée



shm_remove_var

(PHP 4, PHP 5)

shm_remove_varEfface une variable de la mémoire partagée

Description

bool shm_remove_var ( resource $shm_identifier , int $variable_key )

Efface la variable variable_key de la mémoire partagée shm_identifier et libère la mémoire.

Liste de paramètres

shm_identifier

L'identifiant de la mémoire partagée, tel que retourné par la fonction shm_attach()

variable_key

La clé de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • shm_remove() - Supprime un segment de mémoire partagée sous Unix



shm_remove

(PHP 4, PHP 5)

shm_removeSupprime un segment de mémoire partagée sous Unix

Description

bool shm_remove ( resource $shm_identifier )

shm_remove() supprime le segment de mémoire partagée shm_identifier. Toutes les données seront supprimées.

Liste de paramètres

shm_identifier

L'identifiant de mémoire partagée, tel que retourné par la fonction shm_attach()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire

  • ftok — Convertit un chemin et un identifiant de projet en une clé System V IPC
  • msg_get_queue — Crée ou s'attache à une file de messages
  • msg_queue_exists — Vérifie si une file de messages existe
  • msg_receive — Reçoit un message depuis une file de messages
  • msg_remove_queue — Détruit une file de messages
  • msg_send — Envoie un message dans une file
  • msg_set_queue — Modifie des informations dans la file de messages
  • msg_stat_queue — Retourne des informations sur la file de messages
  • sem_acquire — Réserve un sémaphore
  • sem_get — Retourne un identifiant de sémaphore
  • sem_release — Libère un sémaphore
  • sem_remove — Détruit un sémaphore
  • shm_attach — Crée ou ouvre un segment de mémoire partagée
  • shm_detach — Libère un segment de mémoire partagée
  • shm_get_var — Lit une variable dans la mémoire partagée
  • shm_has_var — Vérifie si une variable existe en mémoire partagée
  • shm_put_var — Insère ou modifie une variable de la mémoire partagée
  • shm_remove_var — Efface une variable de la mémoire partagée
  • shm_remove — Supprime un segment de mémoire partagée sous Unix



Mémoire partagée


Introduction

Shmop est un ensemble de fonctions simples pour gérer la mémoire partagée avec PHP (lecture, écriture, création et suppression de segments de mémoire partagée UNIX).

Note: Les versions de Windows plus anciennes que Windows 2000 ne supportent pas la mémoire partagée.

Note: En PHP 4.0.3, ces fonctions étaient préfixées avec shm au lieu de shmop.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour utiliser les fonctions shmop, compilez PHP avec l'option --enable-shmop .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemple #1 Introduction à la mémoire partagée

<?php

// Crée 100 octets de mémoire partagée avec un identifiant système "0xff3"
$shm_id shmop_open(0xff3"c"0644100);
if(!
$shm_id) {
  echo 
"Impossible de créer la mémoire partagée\n";
}

// Lire la taille de la mémoire partagée
$shm_size shmop_size($shm_id);
echo 
"Un bloc de SHM de taille " $shm_size " a été créé.\n";

// Ecriture d'une chaîne de test dans ce segment
$shm_bytes_written shmop_write($shm_id"Mon bloc de mémoire partagée"0);
if (
$shm_bytes_written != strlen("Mon bloc de mémoire partagée")) {
  echo 
"Impossible d'écrire toutes les données en mémoire\n";
}

// Lecture du segment
$my_string shmop_read($shm_id0$shm_size);
if(!
$my_string) {
  echo 
"Impossible de lire toutes les données en mémoire\n";
}
echo 
"Les données mises en mémoire partagées sont : " $my_string "\n";

// Maintenant, effaçons le bloc, et fermons le segment de mémoire
if(!shmop_delete($shm_id)) {
  echo 
"Impossible d'effacer le segment de mémoire";
}
shmop_close($shm_id);

?>




Fonctions sur la mémoire partagée


shmop_close

(PHP 4 >= 4.0.4, PHP 5)

shmop_closeFerme un bloc de mémoire partagée

Description

void shmop_close ( int $shmid )

shmop_close() sert à fermer un bloc de mémoire partagée.

Liste de paramètres

shmid

Identifiant de mémoire partagée créé par shmop_open().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Fermeture d'un bloc de mémoire partagée

<?php
shmop_close
($shm_id);
?>

Cet exemple ferme le bloc de mémoire partagée identifié par $shm_id.

Voir aussi

  • shmop_open() - Crée ou ouvre un bloc de mémoire partagée



shmop_delete

(PHP 4 >= 4.0.4, PHP 5)

shmop_deleteDétruit un bloc de mémoire partagée

Description

bool shmop_delete ( int $shmid )

shmop_delete() sert à détruire un bloc de mémoire partagée.

Liste de paramètres

shmid

Identifiant de mémoire partagée créé par shmop_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Effacement d'un bloc de mémoire partagée

<?php
shmop_delete
($shm_id);
?>

Ce exemple efface le bloc de mémoire partagée identifié par $shm_id.



shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_openCrée ou ouvre un bloc de mémoire partagée

Description

int shmop_open ( int $key , string $flags , int $mode , int $size )

shmop_open() peut créer ou ouvrir un bloc de mémoire partagée.

Liste de paramètres

key

Identifiant système pour le bloc de mémoire partagé. Ce paramètre peut être passé comme un décimal ou un hexadécimal.

flags

Vous pouvez utiliser :

  • "a" pour accès (utilise SHM_RDONLY pour shmat) utilisez cette option pour ouvrir un bloc déjà existant en lecture seule.
  • "c" pour création (utilise IPC_CREATE) utilisez cette option pour créer un nouveau bloc, ou, si un segment avec le même identifiant existe, essayer d'y accéder en lecture et écriture.
  • "w" pour accès en lecture et écriture. Utilisez cette option lorsque vous devez accéder en lecture et écriture à un segment de mémoire partagée. C'est le cas le plus courant.
  • "n" crée un nouveau segment de mémoire partagée (utilise IPC_CREATE|IPC_EXCL). Utilisez cette option lorsque vous voulez créer un nouveau segment de mémoire partagée sauf s'il en existe déjà un corrompu avec la même option. Ceci est très pratique pour des raisons de sécurité, pour éviter des trous de sécurité qui exploiteraient la course aux ressources.

mode

Les permissions que vous donnez à ce bloc. Ce sont les mêmes que pour les fichiers. Ces permissions doivent être passées sous forme d'octal (i.e. 0644).

size

La taille du bloc mémoire partagé que vous voulez créer, en octets

Note:

Note : Les troisième et quatrième paramètres doivent être passés à 0 si vous voulez ouvrir un bloc de mémoire partagée déjà existant.

Valeurs de retour

En cas de succès shmop_open() retourne un identifiant que vous pouvez utiliser pour accéder à la mémoire que vous venez de créer. FALSE sera retourné si une erreur survient.

Exemples

Exemple #1 Créer un nouveau bloc de mémoire partagée Shmop

<?php
$shm_key 
ftok(__FILE__'t');
$shm_id shmop_open($shm_key"c"0644100);
?>

Cet exemple ouvre un nouveau bloc de mémoire partagée, dont l'identifiant est retourné par ftok().

Voir aussi



shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_readLit des données à partir d'un bloc

Description

string shmop_read ( int $shmid , int $start , int $count )

shmop_read() lit une chaîne dans une bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé, créé par la fonction shmop_open()

start

Position depuis laquelle on doit commencer à lire

count

Le nombre d'octets à lire

Valeurs de retour

Retourne les données ou FALSE si une erreur survient.

Exemples

Exemple #1 Lit un bloc de mémoire partagée

<?php
$shm_data 
shmop_read($shm_id050);
?>

Cet exemple lit 50 octets dans le bloc de mémoire partagée et les place dans $shm_data.

Voir aussi



shmop_size

(PHP 4 >= 4.0.4, PHP 5)

shmop_sizeLire la taille du bloc de mémoire partagée

Description

int shmop_size ( int $shmid )

shmop_size() sert à connaître la taille en octets d'un bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé créé par la fonction shmop_open()

Valeurs de retour

Retourne un entier, qui représente le nombre d'octets qu'occupe la mémoire partagée.

Exemples

Exemple #1 Lit la taille d'un bloc de mémoire partagée

<?php
$shm_size 
shmop_size($shm_id);
?>

Cet exemple lit la taille du bloc identifié par $shm_id, et la place dans $shm_size.



shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_writeÉcrire dans un bloc de mémoire partagée

Description

int shmop_write ( int $shmid , string $data , int $offset )

shmop_write() écrit une chaîne dans un bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé, créé par la fonction shmop_open()

data

Une chaîne à écrire dans le bloc de la mémoire partagée

offset

Spécifie la position à partir de laquelle les données doivent être écrites dans la mémoire partagée.

Valeurs de retour

La taille des données écrites, ou FALSE si une erreur survient.

Exemples

Exemple #1 Écrit un bloc de mémoire partagée

<?php
$shm_bytes_written 
shmop_write($shm_id$my_string0);
?>

Cet exemple écrit les données de la chaîne $my_string dans un bloc de mémoire partagée. $shm_bytes_written représentera le nombre d'octets écrits.

Voir aussi


Sommaire

  • shmop_close — Ferme un bloc de mémoire partagée
  • shmop_delete — Détruit un bloc de mémoire partagée
  • shmop_open — Crée ou ouvre un bloc de mémoire partagée
  • shmop_read — Lit des données à partir d'un bloc
  • shmop_size — Lire la taille du bloc de mémoire partagée
  • shmop_write — Écrire dans un bloc de mémoire partagée




Autres extensions basiques


Localisation géographique des IPs


Introduction

L'extension GeoIP permet de localiser une adresse IP. La ville, l'état, le pays, la longitude, la latitude et d'autres informations comme l'ISP et le type de connexion peuvent être obtenus grâce à GeoIP.



Installation/Configuration

Sommaire


Pré-requis

Cette extension nécessite la bibliothèque GeoIP version 1.4.0 ou suivant. Vous pouvez récupérer la dernière version sur » http://www.maxmind.com/app/c et la compiler vous-même.

Par défaut, vous ne pouvez qu'accéder à la base de données Free GeoIP Country ou GeoLite City . Bien que ce module peut fonctionner avec d'autres types de bases de données, vous devez acheter une licence commerciale sur » Maxmind.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/geoip.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GEOIP_COUNTRY_EDITION (entier)
GEOIP_REGION_EDITION_REV0 (entier)
GEOIP_CITY_EDITION_REV0 (entier)
GEOIP_ORG_EDITION (entier)
GEOIP_ISP_EDITION (entier)
GEOIP_CITY_EDITION_REV1 (entier)
GEOIP_REGION_EDITION_REV1 (entier)
GEOIP_PROXY_EDITION (entier)
GEOIP_ASNUM_EDITION (entier)
GEOIP_NETSPEED_EDITION (entier)
GEOIP_DOMAIN_EDITION (entier)

Les constantes suivantes sont utilisées pour la rapidité réseau :

GEOIP_UNKNOWN_SPEED (entier)
GEOIP_DIALUP_SPEED (entier)
GEOIP_CABLEDSL_SPEED (entier)
GEOIP_CORPORATE_SPEED (entier)


Fonctions GeoIP


geoip_continent_code_by_name

(PECL geoip >= 1.0.3)

geoip_continent_code_by_nameLit de code de continent d'une IP

Description

string geoip_continent_code_by_name ( string $hostname )

geoip_continent_code_by_name() retourne le code en deux lettre du continenant corresopndant à un nom d'hôte ou une adresse IP.

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP qui est étudiée.

Valeurs de retour

Retourne le code en deux lettre du nom de continent, en cas de succès, et FALSE si l'adresse n'a pas pu être trouvée dans la base.

Exemples

Exemple #1 Exemple avec geoip_continent_code_by_name()

Ce script va afficher le continent de l'hôte example.com.

<?php
$continent 
geoip_continent_code_by_name('www.example.com');
if (
$continent) {
    echo 
'Cet hôte est situé en : ' $continent;
}
?>

L'exemple ci-dessus va afficher :

Cet hôte est situé en : NA

Voir aussi



geoip_country_code_by_name

(PECL geoip >= 0.2.0)

geoip_country_code_by_nameRécupère les deux lettres du code pays

Description

string geoip_country_code_by_name ( string $hostname )

La fonction geoip_country_code_by_name() retourne les deux lettres du code pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne les deux lettres du code pays ISO en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_country_code_by_name()

Cet exemple affiche la localisation de l'hôte example.com.

<?php
$country 
geoip_country_code_by_name('www.example.com');
if (
$country) {
    echo 
'Localisation de cet hôte : ' $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : US

Voir aussi



geoip_country_code3_by_name

(PECL geoip >= 0.2.0)

geoip_country_code3_by_nameRécupère les trois lettres du code pays

Description

string geoip_country_code3_by_name ( string $hostname )

La fonction geoip_country_code3_by_name() retourne les trois lettres du code pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne les trois lettres do code pays en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_country_code3_by_name()

Cet exemple affiche où est localisé l'hôte example.com.

<?php
$country 
geoip_country_code3_by_name('www.example.com');
if (
$country) {
    echo 
'Localisation de cet hôte : ' $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : USA

Voir aussi



geoip_country_name_by_name

(PECL geoip >= 0.2.0)

geoip_country_name_by_nameRécupère le nom complet du pays

Description

string geoip_country_name_by_name ( string $hostname )

La fonction geoip_country_name_by_name() retourne le nom complet du pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne le nom du pays en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_country_name_by_name()

Cet exemple affiche la localisation de l'hôte example.com.

<?php
$country 
geoip_country_name_by_name('www.example.com');
if (
$country) {
    echo 
'Localisation de cet hôte : ' $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : United States

Voir aussi



geoip_database_info

(PECL geoip >= 0.2.0)

geoip_database_infoRécupère les informations de la base de données GeoIP

Description

string geoip_database_info ([ int $database = GEOIP_COUNTRY_EDITION ] )

La fonction geoip_database_info() retourne la version de la base de données GeoIP tel que définie dans le fichier binaire.

Si cette fonction est appelée sans argument, elle retourne la version de la GeoIP Free Country Edition.

Liste de paramètres

database

Le type de base de données, en tant qu'entier. Vous pouvez utiliser diverses constantes définies avec cette extension (ie: GEOIP_*_EDITION).

Valeurs de retour

Retourne la version correspondante de la base de données, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec geoip_region_by_name()

Cet exemple affiche la version de la base de données courante.

<?php
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

L'exemple ci-dessus va afficher :

GEO-106FREE 20060801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved



geoip_db_avail

(PECL geoip >= 1.0.1)

geoip_db_availVérifie si la base de données GeoIP est disponible

Description

bool geoip_db_avail ( int $database )

La fonction geoip_db_avail() vérifie si la base de données correspondant est disponible et peut être ouverte sur le disque.

La fonction n'indique pas si le fichier est une base de données valide, mais uniquement si elle est lisible.

Liste de paramètres

database

Le type de de base de données, sous la forme d'un entier. Vous pouvez utiliser diverses constantes, définies avec cette extension (ie: GEOIP_*_EDITION).

Valeurs de retour

Retourne TRUE si la base de données existe, FALSE si elle n'est pas trouvée, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec geoip_db_avail()

Ceci affichera la version de la base de données courante.

<?php

if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
    print 
geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

L'exemple ci-dessus va afficher :

GEO-106FREE 20080801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved



geoip_db_filename

(PECL geoip >= 1.0.1)

geoip_db_filenameRetourne le nom du fichier contenant la base de données GeoIP spécifiée

Description

string geoip_db_filename ( int $database )

La fonction geoip_db_filename() retourne le nom du fichier contenant la base de données GeoIP spécifiée.

La fonction n'indique pas si le fichier existe ou non sur le disque, mais uniquement l'endroit dans lequel la bibliothèque cherche la base de données.

Liste de paramètres

database

Le type de base de données, sous la forme d'un entier. Vous pouvez utiliser diverses constantes, définies avec cette extension (ie: GEOIP_*_EDITION).

Valeurs de retour

Retourne le nom du fichier de la base de données correspondant, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec geoip_db_filename()

Ceci affichera le nom du fichier correspondant à la base de données.

<?php

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

L'exemple ci-dessus va afficher :

/usr/share/GeoIP/GeoIP.dat



geoip_db_get_all_info

(PECL geoip >= 1.0.1)

geoip_db_get_all_infoRetourne des informations détaillées sur tous les types de bases de données GeoIP

Description

array geoip_db_get_all_info ( void )

La fonction geoip_db_get_all_info() retourne des informations détaillées, sous la forme d'un tableau multidimensionnel, sur tous les types de bases de données GeoIP.

Cette fonction est disponible même si aucune base de données n'est installée. Elle listera simplement les bases de données comme étant non disponibles.

Les noms des différentes clés du tableau associatif retourné, sont les suivantes :

  • "available" : Booléen, indique si la base de données est disponible (voir la fonction geoip_db_avail())
  • "description" : La description de la base de données
  • "filename" : Le nom du fichier contenant la base de données sur le disque (voir la fonction geoip_db_filename())

Valeurs de retour

Retourne un tableau associatif.

Exemples

Exemple #1 Exemple avec geoip_db_get_all_info()

Ceci affichera un tableau contenant toutes les informations.

<?php
$infos 
geoip_db_get_all_info();
if (
is_array($infos)) {
    
var_dump($infos);
}
?>

L'exemple ci-dessus va afficher :

array(11) {
  [1]=>
  array(3) {
    ["available"]=>
    bool(true)
    ["description"]=>
    string(21) "GeoIP Country Edition"
    ["filename"]=>
    string(32) "/usr/share/GeoIP/GeoIP.dat"
  }

[ ... ]

  [11]=>
  array(3) {
    ["available"]=>
    bool(false)
    ["description"]=>
    string(25) "GeoIP Domain Name Edition"
    ["filename"]=>
    string(38) "/usr/share/GeoIP/GeoIPDomain.dat"
  }
}

Exemple #2 Exemple avec geoip_db_get_all_info()

Vous pouvez utiliser diverses constantes comme clés, pour récupérer uniquement des parties d'informations.

<?php
$infos 
geoip_db_get_all_info();
if (
$infos[GEOIP_COUNTRY_EDITION]['available']) {
    echo 
$infos[GEOIP_COUNTRY_EDITION]['description'];
}
?>

L'exemple ci-dessus va afficher :

GeoIP Country Edition



geoip_id_by_name

(PECL geoip >= 0.2.0)

geoip_id_by_nameRécupère le type de la connexion Internet

Description

int geoip_id_by_name ( string $hostname )

La fonction geoip_id_by_name() retourne le type de connexion internet correspondant au nom de l'hôte ou à l'adresse IP.

La valeur retournée est de type numérique et peut être comparée aux constantes suivantes :

  • GEOIP_UNKNOWN_SPEED
  • GEOIP_DIALUP_SPEED
  • GEOIP_CABLEDSL_SPEED
  • GEOIP_CORPORATE_SPEED

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP dont le type de connexion doit être examiné.

Valeurs de retour

Retourne le type de connexion.

Exemples

Exemple #1 Exemple avec geoip_id_by_name()

Cet exemple affiche le type de connexion de l'hôte example.com.

<?php
$netspeed 
geoip_id_by_name('www.example.com');

echo 
'La connexion est du type ';

switch (
$netspeed) {
    case 
GEOIP_DIALUP_SPEED:
        echo 
'dial-up';
        break;
    case 
GEOIP_CABLEDSL_SPEED:
        echo 
'cable ou DSL';
        break;
    case 
GEOIP_CORPORATE_SPEED:
        echo 
'corporate';
        break;
    case 
GEOIP_UNKNOWN_SPEED:
    default:
        echo 
'inconnu';
}
?>

L'exemple ci-dessus va afficher :

La connexion est du type corporate



geoip_isp_by_name

(PECL geoip >= 1.0.2)

geoip_isp_by_nameRécupère le nom du fournisseur d'accès

Description

string geoip_isp_by_name ( string $hostname )

La fonction geoip_isp_by_name() retourne le nom de l'ISP dont l'IP est assignée.

Cette fonction est actuellement disponible qu'aux utilisateurs qui ont achetés une édition commerciale de GeoIP ISP. Un avertissement sera émis si la base de données ne peut être localisée.

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP.

Valeurs de retour

Retourne le nom ISP en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_isp_by_name()

Ceci affichera le nom ISP pour l'hôte example.com.

<?php
$isp 
geoip_isp_by_name('www.example.com');
if (
$isp) {
    echo 
'L\'IP de l\'hôte provient de l\'ISP : ' $isp;
}
?>

L'exemple ci-dessus va afficher :

L'IP de l'hôte provient de l'ISP : ICANN c/o Internet Assigned Numbers Authority



geoip_org_by_name

(PECL geoip >= 0.2.0)

geoip_org_by_nameRécupère le nom de l'organisation

Description

string geoip_org_by_name ( string $hostname )

La fonction geoip_org_by_name() retourne le nom de l'organisation auquel l'adresse IP est assignée.

Cette fonction est actuellement uniquement disponible aux utilisateurs qui ont acheté une licence commerciale GeoIP Organization, ISP ou AS Edition. Une alerte sera émise si la base de données ne peut pas être trouvée.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne le nom de l'organisation en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_org_by_name()

Cet exemple affiche le nom de l'organisation pour l'hôte example.com.

<?php
$org 
geoip_org_by_name('www.example.com');
if (
$org) {
    echo 
'Nom de l\'organisation : ' $org;
}
?>

L'exemple ci-dessus va afficher :

Nom de l'organisation : ICANN c/o Internet Assigned Numbers Authority



geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_nameRécupère les informations détaillées sur un pays, trouvées dans la base de données GeoIP

Description

array geoip_record_by_name ( string $hostname )

La fonction geoip_record_by_name() retourne les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP.

Cette fonction est disponible pour les bases de données GeoLite City Edition et la version commerciale GeoIP City Edition. Une alerte sera émise si la base de données n'a pu être trouvée.

Les noms des différentes clés du tableau associatif retourné sont les suivantes :

  • "continent_code" : Code du continent sur 2 lettres (disponible depuis la version 1.0.4 avec libgeoip 1.4.3 ou supérieure)
  • "country_code" : Les deux lettres du code pays (Voir geoip_country_code_by_name())
  • "country_code3" : Code pays sur 3 lettres (Voir la fonction geoip_country_code3_by_name())
  • "country_name" : Nom du pays (Voir la fonction geoip_country_name_by_name())
  • "region" : Le code région (ex: CA pour California)
  • "city" : La ville.
  • "postal_code" : Le code postal, FSA ou Zip.
  • "latitude" : La latitude.
  • "longitude" : La longitude.
  • "dma_code" : Code de la zone de marché (Uniquement pour les USA et le Canada)
  • "area_code" : Le code PSTN (ex : 212)

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne un tableau associatif en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Historique

Version Description
1.0.4 Ajout de continent_code avec la bibliothèque GeoIP 1.4.3 ou supérieure uniquement
1.0.3 Ajout de country_code3 et de country_name

Exemples

Exemple #1 Exemple avec geoip_record_by_name()

Cet exemple affiche le tableau contenant l'enregistrement de l'hôte example.com.

<?php
$record 
geoip_record_by_name('www.example.com');
if (
$record) {
    
print_r($record);
}
?>

L'exemple ci-dessus va afficher :

Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] => 
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)



geoip_region_by_name

(PECL geoip >= 0.2.0)

geoip_region_by_nameRécupère le code pays et la région

Description

array geoip_region_by_name ( string $hostname )

La fonction geoip_region_by_name() retourne le pays et la région correspondant au nom de l'hôte ou à l'adresse IP.

Cette fonction est actuellement uniquement disponible pour les utilisateurs qui ont acheté une licence commerciale GeoIP Region Edition. Une alerte sera émise si la base de données n'a pu être trouvée.

Les noms des différentes clés du tableau retourné sont les suivants :

  • "country_code" : Les deux lettres du code pays (Voir la fonction geoip_country_code_by_name())
  • "region" : Le code région (ex: CA pour California)

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne un tableau associatif en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_region_by_name()

Cet exemple affiche le tableau contenant le code pays et la région de l'hôte example.com.

<?php
$region 
geoip_region_by_name('www.example.com');
if (
$region) {
    
print_r($region);
}
?>

L'exemple ci-dessus va afficher :

Array
(
    [country_code] => US
    [region] => CA
)



geoip_region_name_by_code

(PECL geoip >= 1.0.4)

geoip_region_name_by_codeRetourne le nom de la région pour un pays et un code de région

Description

string geoip_region_name_by_code ( string $country_code , string $region_code )

geoip_region_name_by_code() retourne le nom de la région corresopndant à un couple pays et région.

Aux États-Unis d'Amérique, la région correspond à l'abréviation en deux lettres de l'état. Au Canada, cette région correspond à l'abréviation de la province ou du territoire, tel qu'attribué par Poste Canada.

Pour le reste du monde, GeoIP utiliser les codes FIPS 10-4 pour représenter les régions. Vous pouvez vérifier le site » http://www.maxmind.com/app/fips10_4 pour une liste détaillée des codes FIPS 10-4.

Cette fonction est toujours disponible, si vous utilisez GeoIP Library version 1.4.1 ou plus récent. Les données sont issues directement de GeoIP Library et non pas d'une table de référence.

Liste de paramètres

country_code

Le code de pays, en deux lettres (voyez geoip_country_code_by_name())

region_code

Le code de région en deux lettres (voyez geoip_region_by_name())

Valeurs de retour

Retourne le nom de la région en cas de succès, ou FALSE si le pays, la région ou la combinaison des deux n'a pas pu être trouvé.

Exemples

Exemple #1 Exemple avec geoip_region_name_by_code() pour les USA et le Canada

Ce script va afficher le nom de la région pour la région QC au CA.

<?php
$region 
geoip_region_name_by_code('CA''QC');
if (
$region) {
    echo 
'Nom de la région CA/QC : ' $region;
}
?>

L'exemple ci-dessus va afficher :

Nom de la région CA/QC: Quebec

Exemple #2 Exemple avec geoip_region_name_by_code() en utilisant les codes FIPS

Ce script va afficher le nom de la région pour la région 01 au JP (Japon).

<?php
$region 
geoip_region_name_by_code('JP''01');
if (
$region) {
    echo 
'Nom de la région JP/01: ' $region;
}
?>

L'exemple ci-dessus va afficher :

Nom de la région JP/01: Aichi



geoip_time_zone_by_country_and_region

(PECL geoip >= 1.0.4)

geoip_time_zone_by_country_and_regionRetourne le fuseau horaire de certains pays et région du globe

Description

string geoip_time_zone_by_country_and_region ( string $country_code [, string $region_code ] )

geoip_time_zone_by_country_and_region() retourne le fuseau horaire correspondant à un pays et une région.

Aux États-Unis d'Amérique, la région correspond à l'abréviation en deux lettres de l'état. Au Canada, cette région correspond à l'abréviation de la province ou du territoire, tel qu'attribué par Poste Canada.

Pour le reste du monde, GeoIP utiliser les codes FIPS 10-4 pour représenter les régions. Vous pouvez vérifier le site » http://www.maxmind.com/app/fips10_4 pour une liste détaillée des codes FIPS 10-4.

Cette fonction est toujours disponible, si vous utilisez GeoIP Library version 1.4.1 ou plus récent. Les données sont issues directement de GeoIP Library et non pas d'une table de référence.

Liste de paramètres

country_code

Le code de pays, en deux lettres (voyez geoip_country_code_by_name())

region_code

Le code de région en deux lettres (voyez geoip_region_by_name())

Valeurs de retour

Retourne le fuseau horaire en cas de succès, et FALSE si le pays, la région ou la combinaison des deux n'a pas pu être trouvé.

Exemples

Exemple #1 Exemple avec geoip_time_zone_by_country_and_region() pour les USA et Canada

Ce script va afficher le fuseau horaire pour le Québec, au Canada.

<?php
$timezone 
geoip_time_zone_by_country_and_region('CA''QC');
if (
$timezone) {
    echo 
'Fuseau horaire de CA/QC : ' $timezone;
}
?>

L'exemple ci-dessus va afficher :

Fuseau horaire de CA/QC : America/Montreal

Exemple #2 Exemple avec geoip_time_zone_by_country_and_region() et les codes FIPS

Ce script va afficher le fuseau horaire du Japon, région 01 (Aichi).

<?php
$timezone 
geoip_time_zone_by_country_and_region('JP''01');
if (
$timezone) {
    echo 
'Fuseau horaire de JP/01 : ' $timezone;
}
?>

L'exemple ci-dessus va afficher :

Fuseau horaire de JP/01 : Asia/Tokyo


Sommaire




Les tableaux Judy


Introduction

PHP Judy est une extension PECL basée sur la » librairie C Judy qui implémente des tableaux dynamique éparses.

Un tableau Judy est une structure associative de données complexe mais extrêmement rapide pour stocker and rechercher des valeurs utilisant des entiers ou des chaînes de charactére pour les clés. A l'inverse des tableaux traditionnels, les tableaux Judy peuvent être éparses; c'est à dire qu'ils peuvent avoir une large quantitée d'indices non-assignés.

Un tableau Judy consomme de la mémoire uniquement lorsqu'il est peuplé alors qu'il peut s'élargir en prenant avantage de toute la mémoire disponible. Les principaux bénéfices de Judy sont: évolutivité, performance, l'efficacité de mémoire et la facilité d'utilisation. Les tableaux Judy sont conçus pour croitre dans la gamme des peta-éléments, évoluant aux alentours de O(log-base-256) -- 1 plus l'accés RAM à 256 x population.



Installation/Configuration

Sommaire


Pré-requis

Cette extension require la » librairie C Judy.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/judy

La dernière Win32 DLL pour PECL/Judy est disponible ici: » php_judy.dll

Installation sur système Linux

A partir des sources

Télécharger et installer » libJudy, puis :

     phpize
     ./configure --with-judy[=DIR]
     make
     make test
     make install
    

Ubuntu/Debian

libJudy peut-être installé avec apt-get :

     apt-get install libjudydebian1 libjudy-dev
    
Puis en installant l'extension Judy pour PHP via PECL ou bien à partir des sources.

Installation sur système Windows

Télécharger » libJudy, puis extraire les sources, ouvrir l'invite de commande de Visual Studio et naviguer à la source du répertoire. Puis executer :

build
Ceci crée "Judy.lib", copier le fichier dans le dossier de librairie php-sdk et renommer le fichier en "libJudy.lib" puis copier et include le fichier "judy.h" dans le dossier d'includes php-sdk.

Ensuite, l'extension PHP Judy peut-être installée depuis PECL ou bien à partir des sources en décompressant le fichier pecl/judy dans le dossier de build où les scripts de builds seront capables de le trouver, e.g.:

    C:\php\pecl\judy\
   
Si les sources de PHP se situent dans:
    C:\php\src\
   
Les étapes suivantes suivent les mêmes étapes que n'importe quelle extension:
    buildconf
    configure --with-judy=shared
    nmake
   

Installation sur système Mac OS X

Télécharger et installer » libJudy. Puis installer l'extension Judy depuis PECL ou bien à partir des sources.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




La classe Judy

Introduction

La classe Judy implémente l'interface ArrayAccess ainsi que l'interface Iterator. Une fois instancié, l'objet peut etre accédé comme un tableau PHP.

Un objet PHP Judy (tableau Judy) peut être de l'un des types suivant :

Exemple #1 Example de tableau Judy

<?php
    $judy 
= new Judy(Judy::INT_TO_MIXED);
    
$judy[1] = "one";
    
$judy[2] = array('a''b''c');
    
$judy[3] = new Judy(Judy::BITSET);
?>

Synopsis de la classe

Judy implements ArrayAccess , Iterator {
/* Constants */
const integer Judy::BITSET = 1 ;
const integer Judy::INT_TO_INT = 2 ;
const integer Judy::INT_TO_MIXED = 3 ;
const integer Judy::STRING_TO_INT = 4 ;
const integer Judy::STRING_TO_MIXED = 5 ;
/* Méthodes */
public int byCount ( int $nth_index )
public Judy __construct ( int $judy_type )
public int count ([ int $index_start = 0 [, int $index_end = -1 ]] )
public void __destruct ( void )
public mixed first ([ mixed $index ] )
public int firstEmpty ([ mixed $index = 0 ] )
public int free ( void )
public int getType ( void )
public void last ([ string $index ] )
public int lastEmpty ([ int $index = -1 ] )
public int memoryUsage ( void )
public mixed next ( mixed $index )
public int nextEmpty ( int $index )
public bool offsetExists ( mixed $offset )
public mixed offsetGet ( mixed $offset )
public bool offsetSet ( mixed $offset , mixed $value )
public bool offsetUnset ( mixed $offset )
public mixed prev ( mixed $index )
public int prevEmpty ( mixed $index )
public void size ( void )
}

Constantes pré-définies

Types Judy

Judy::BITSET

Définit le tableau Judy en tant que Bitset avec un entier pour les clés et un booléen pour les valeurs

Judy::INT_TO_INT

Définit le tableau Judy avec pour clé/valeur des entiers, et seulement des entiers.

Judy::INT_TO_MIXED

Définit le tableau Judy avec pour clés des entiers et n'importe quel type pour les valeurs.

Judy::STRING_TO_INT

Définit le tableau Judy avec pour clés une chaîne de caractère et un entier pour les valeurs.

Judy::STRING_TO_MIXED

Définit le tableau Judy avec pour clés une chaîne de caractère et n'importe quel type pour les valeurs.


Judy::byCount

(PECL judy >= 0.1.1)

Judy::byCountTrouve le N ième index présent dans le tableau Judy

Description

public int Judy::byCount ( int $nth_index )

Trouve le N ième index présent dans le tableau Judy.

Liste de paramètres

nth_index

N ième index à retourner. Si nth_index égale 1, alors cela retournera le premier index du tableau.

Valeurs de retour

Retourne l'index se trouvant à la N ième position.



Judy::__construct

(PECL judy >= 0.1.1)

Judy::__constructConstruit un nouvel objet Judy

Description

public Judy Judy::__construct ( int $judy_type )

Construit un nouvel objet Judy. Un objet Judy peut-être utilisé comme un tableau PHP.

Liste de paramètres

judy_type

Le type Judy à utiliser.

Valeurs de retour

Retourne la nouvelle instance Judy.



Judy::count

(PECL judy >= 0.1.1)

Judy::countCompte le nombre d'éléments dans le tableau Judy

Description

public int Judy::count ([ int $index_start = 0 [, int $index_end = -1 ]] )

Compte le nombre d'éléments dans le tableau Judy.

Liste de paramètres

index_start

Commence à compter à partir de l'index donné. La valeur par défaut est le premier index.

index_end

Arrête de compter lorsque l'index donné est atteind. La valeur par défaut est le dernier index.

Valeurs de retour

Retourne le nombre d'éléments.



Judy::__destruct

(PECL judy >= 0.1.1)

Judy::__destructDétruit l'objet Judy

Description

public void Judy::__destruct ( void )

Détruit l'objet Judy.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



Judy::first

(PECL judy >= 0.1.1)

Judy::firstRecherche le premier index dans le tableau Judy

Description

public mixed Judy::first ([ mixed $index ] )

Recherche le premier index présent qui est égal ou supérieur que l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::firstEmpty

(PECL judy >= 0.1.1)

Judy::firstEmptyRecherche le premier index absent dans le tableau Judy

Description

public int Judy::firstEmpty ([ mixed $index = 0 ] )

Recherche le premier index absent qui est égal ou supérieur que l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::free

(PECL judy >= 0.1.1)

Judy::freeVide entiérement le tableau Judy

Description

public int Judy::free ( void )

Vide entiérement le tableau Judy

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



Judy::getType

(PECL judy >= 0.1.1)

Judy::getTypeRetourne le type du tableau Judy

Description

public int Judy::getType ( void )

Retourne un entier correspondant au type Judy de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier correspondant au type Judy.



Judy::last

(PECL judy >= 0.1.1)

Judy::lastRecherche le dernier index dans le tableau Judy

Description

public void Judy::last ([ string $index ] )

Recherche le dernier index présent qui est égal ou inférieur à l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::lastEmpty

(PECL judy >= 0.1.1)

Judy::lastEmptyRecherche le dernier index absent dans le tableau Judy

Description

public int Judy::lastEmpty ([ int $index = -1 ] )

Recherche le dernier index absent qui est égal ou inférieur à l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::memoryUsage

(PECL judy >= 0.1.1)

Judy::memoryUsageRetourne la mémoire utilisée par le tableau Judy

Description

public int Judy::memoryUsage ( void )

Retourne la mémoire utilisée par le tableau Judy.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la mémoire utilisée en octets.



Judy::next

(PECL judy >= 0.1.1)

Judy::nextRecherche le prochain index dans le tableau Judy

Description

public mixed Judy::next ( mixed $index )

Recherche le prochain index présent qui est supérieur à l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::nextEmpty

(PECL judy >= 0.1.1)

Judy::nextEmptyRecherche le prochain index absent dans le tableau Judy

Description

public int Judy::nextEmpty ( int $index )

Recherche le prochain index absent qui est supérieur à l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::offsetExists

(PECL judy >= 0.1.1)

Judy::offsetExistsIndique si une position existe dans un tableau

Description

public bool Judy::offsetExists ( mixed $offset )

Indique si une position existe.

Liste de paramètres

offset

Une position à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



Judy::offsetGet

(PECL judy >= 0.1.1)

Judy::offsetGetPosition à lire

Description

public mixed Judy::offsetGet ( mixed $offset )

Retourne la valeur à la position donnée.

Liste de paramètres

offset

La position à lire.

Valeurs de retour

Peut retourner n'importe quel type de valeur.



Judy::offsetSet

(PECL judy >= 0.1.1)

Judy::offsetSetPosition à assigner

Description

public bool Judy::offsetSet ( mixed $offset , mixed $value )

Assigne une valeur à une position donnée.

Liste de paramètres

offset

La position à laquelle assigner une valeur.

value

La valeur à assigner.

Valeurs de retour

Aucune valeur n'est retournée.



Judy::offsetUnset

(PECL judy >= 0.1.1)

Judy::offsetUnsetPosition à supprimer

Description

public bool Judy::offsetUnset ( mixed $offset )

Supprime une position.

Liste de paramètres

offset

La position à supprimer.

Valeurs de retour

Aucune valeur n'est retournée.



Judy::prev

(PECL judy >= 0.1.1)

Judy::prevRecherche le précédent index dans le tableau Judy

Description

public mixed Judy::prev ( mixed $index )

Recherche le précédent index présent qui est inférieur à l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::prevEmpty

(PECL judy >= 0.1.1)

Judy::prevEmptyRecherche le précédent index absent dans le tableau Judy

Description

public int Judy::prevEmpty ( mixed $index )

Recherche le précédent index absent qui est inférieur l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.



Judy::size

(PECL judy >= 0.1.1)

Judy::sizeRetourne le nombre d'éléments dans le tableau Judy

Description

public void Judy::size ( void )

Cette méthode est un alias de Judy::count.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier.


Sommaire



Fonctions Judy


judy_type

(PECL judy >= 0.1.1)

judy_typeRetourne le type de tableau Judy

Description

int judy_type ( Judy $array )

judy_type() Retourne un entier correspondant au type Judy pour le tableau passé en paramétre.

Liste de paramètres

array

Le tableau Judy à tester.

Valeurs de retour

Retourne un entier correspondant au type Judy.



judy_version

(PECL judy >= 0.1.1)

judy_versionRetourne ou affiche la version actuelle de PHP Judy

Description

string judy_version ( void )

Retourne une chaîne de caractéres contenant la version de PHP Judy. Si la valeur retournée n'est pas utilisée, la chaîne de caractéres est affichées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractéres contenant la version de PHP Judy.


Sommaire

  • judy_type — Retourne le type de tableau Judy
  • judy_version — Retourne ou affiche la version actuelle de PHP Judy



Notation Objet JavaScript


Introduction

Cette extension implémente le format d'échange de données » JavaScript Object Notation (JSON). Le décodage est géré par un moteur d'analyse basé sur le JSON_checker écrit par Douglas Crockford.



Installation/Configuration

Sommaire


Pré-requis

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Installation

Depuis PHP 5.2.0, l'extension JSON est fournit et compilé dans PHP par défaut.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/json



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes indiquent le type d'erreur retournée par la fonction json_last_error(). Elles sont toutes disponibles depuis PHP 5.3.0.

JSON_ERROR_NONE (integer)
Aucune erreur n'est survenue.
JSON_ERROR_DEPTH (integer)
La profondeur maximale de la pile a été atteinte.
JSON_ERROR_CTRL_CHAR (integer)
Erreur lors du contrôle des caractères ; probablement un encodage incorrect.
JSON_ERROR_SYNTAX (integer)
Erreur de syntaxe.
JSON_ERROR_UTF8 (integer)
Caractères UTF-8 mal formés, probablement mal encodés. Cette constante est disponible depuis PHP 5.3.1.

Les constantes suivantes peuvent être combinées pour former des options de json_encode(). Elles sont toutes disponibles depuis PHP 5.3.0.

JSON_HEX_TAG (integer)
Tous les caractères < et > sont convertis en séquences \u003C et \u003E.
JSON_HEX_AMP (integer)
Tous les caractères & sont convertis en \u0026.
JSON_HEX_APOS (integer)
Tous les guillemets ' sont convertis en \u0027.
JSON_HEX_QUOT (integer)
Tous les guillemets doubles " sont convertis en \u0022.
JSON_FORCE_OBJECT (integer)
Produit un objet plutôt qu'un tableau, lorsqu'un tableau non-associatif est utilisé. C'est particulièrement utile lorsque le destinataire du résultat attend un objet, et que le tableau est vide.


Fonctions JSON


json_decode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

json_decodeDécode une chaîne JSON

Description

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Récupère une chaîne encodée JSON et la convertit en une variable PHP.

Liste de paramètres

json

La chaîne json à décoder.

Cette fonction ne traite qu'avec des données encodées avec UTF-8.

assoc

Lorsque ce paramètre vaut TRUE, l'objet retourné sera converti en un tableau associatif.

depth

Définit la profondeur de récursion.

options

Un masque d'options JSON decode. Actuellement, seul JSON_BIGINT_AS_STRING est supporté (par défaut, les gros entiers sont convertis en nombres à virgule flottante)

Cette modification existe dans la version de développement de PHP, et existera probablement après la version 5.3.

Valeurs de retour

Retourne la valeur encodée dans le paramètre json dans le type PHP approprié. Les valeurs true, false et null (insensible à la casse) sont retournées respectivement comme TRUE, FALSE et NULL. NULL est retourné si le paramètre json n'a pu être décodé ou si les données encodées sont plus profondes que la limite de récursion fournie.

Exemples

Exemple #1 Exemple avec json_decode()

<?php
$json 
'{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($jsontrue));

?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Exemple #2 Autre exemple avec json_decode()

<?php

$json 
'{"foo-bar": 12345}';

$obj json_decode($json);
print 
$obj->{'foo-bar'}; // 12345

?>

Exemple #3 Erreurs habituelles lors de l'utilisation de la fonction json_decode()

<?php

// Les chaînes suivantes sont valides en JavaScript mais pas en JSON

// Le nom et la valeur doivent être entourrés de double-guillemets.
// Les simple-guillements ne sont pas valides
$bad_json "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// le nom doit être entourré de double-guillemets
$bad_json '{ bar: "baz" }';
json_decode($bad_json); // null

// la virgule de fin n'est pas autorisée
$bad_json '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Exemple #4 Erreurs avec le paramètre depth

<?php
// Encode les données.
$json json_encode(
    array(
        
=> array(
            
'English' => array(
                
'One',
                
'January'
            
),
            
'French' => array(
                
'Une',
                
'Janvier'
            
)
        )
    )
);

// Définie les erreurs
$json_errors = array(
    
JSON_ERROR_NONE => 'Aucune erreur n\'est survenue',
    
JSON_ERROR_DEPTH => 'La profondeur maximale a été atteinte',
    
JSON_ERROR_CTRL_CHAR => 'Erreur sur le caractère de contrôle, erreur d\'encodage possible',
    
JSON_ERROR_SYNTAX => 'Erreur de syntaxe',
);

// Affiche les erreurs pour les différentes profondeurs.
foreach(range(43, -1) as $depth) {
    
var_dump(json_decode($jsonTrue$depth));
    echo 
'Dernière erreur : '$json_errors[json_last_error()], PHP_EOLPHP_EOL;
    }
?>

L'exemple ci-dessus va afficher :

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
Dernière erreur : Aucune erreur n'est survenue

NULL
Dernière erreur : La profondeur maximale a été atteinte

Exemple #5 Exemple avec json_decode() et de gros entiers

<?php
$json 
'12345678901234567890';

var_dump(json_decode($json));
var_dump(json_decode($jsonfalse512JSON_BIGINT_AS_STRING));

?>

L'exemple ci-dessus va afficher :

float(1.2345678901235E+19)
string(20) "12345678901234567890"

Notes

Note:

La spécification JSON ne fait pas partie de Javascript mais d'un sous-projet de Javascript.

Note:

Si une erreur survient lors du décodage, la fonction json_last_error() pourra être utilisée pour déterminer la nature exacte de l'erreur.

Historique

Version Description
Futur Le paramètre options a été ajouté.
5.3.0 Ajout du paramètre optionnel depth. La profondeur de récursion par défaut a augmenté de 128 à 512
5.2.3 La limite a été élevée de 20 à 128

Voir aussi



json_encode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

json_encodeRetourne le représentation JSON d'une valeur

Description

string json_encode ( mixed $value [, int $options = 0 ] )

Retourne une chaîne contenant la représentation JSON de la valeur value.

Liste de paramètres

value

La valeur à encoder. Peut être de n'importe quel type, excepté une ressource.

Cette fonction ne fonctionne qu'avec des données encodées UTF-8.

options

Masque composé des constantes JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_FORCE_OBJECT.

Valeurs de retour

Retourne une chaîne encodé JSON.

Historique

Version Description
5.3.0 Le paramètre options a été ajouté.
5.2.1 Ajout du support de l'encodage JSON des types basiques.

Exemples

Exemple #1 Exemple avec json_encode()

<?php
$arr 
= array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo 
json_encode($arr);
?>

L'exemple ci-dessus va afficher :

{"a":1,"b":2,"c":3,"d":4,"e":5}

Exemple #2 Exemple avec json_encode() montrant toutes les options

<?php
$a 
= array('<foo>',"'bar'",'"baz"','&blong&');

echo 
"Normal : "json_encode($a), "\n";
echo 
"Tags : ",   json_encode($a,JSON_HEX_TAG), "\n";
echo 
"Apos : ",   json_encode($a,JSON_HEX_APOS), "\n";
echo 
"Quot : ",   json_encode($a,JSON_HEX_QUOT), "\n";
echo 
"Amp : ",    json_encode($a,JSON_HEX_AMP), "\n";
echo 
"Toutes : ",    json_encode($a,JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP), "\n\n";

$b = array();

echo 
"Tableau vide sous forme de tableau : "json_encode($b), "\n";
echo 
"Tableau vide sous forme d'objet : "json_encode($bJSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo 
"Tableau non-associatif sous forme de tableau : "json_encode($c), "\n";
echo 
"Tableau non-associatif sous forme d'objet : "json_encode($cJSON_FORCE_OBJECT), "\n\n";


$d = array('foo' => 'bar''baz' => 'long');

echo 
"Tableau associatif affiché comme objet: "json_encode($d), "\n";
echo 
"Tableau associatif affiché comme objet: "json_encode($dJSON_FORCE_OBJECT), "\n\n";
?>

L'exemple ci-dessus va afficher :

Normal : ["<foo>","'bar'","\"baz\"","&blong&"]
Tags : ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&"]
Apos : ["<foo>","\u0027bar\u0027","\"baz\"","&blong&"]
Quot : ["<foo>","'bar'","\u0022baz\u0022","&blong&"]
Amp : ["<foo>","'bar'","\"baz\"","\u0026blong\u0026"]
Toutes : ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]

Tableau vide sous forme de tableau : []
Tableau vide sous forme d'objet : {}

Tableau non-associatif sous forme de tableau : [[1,2,3]]
Tableau non-associatif sous forme d'objet : {"0":{"0":1,"1":2,"2":3}}

Tableau associatif affiché comme objet: {"foo":"bar","baz":"long"}
Tableau associatif affiché comme objet: {"foo":"bar","baz":"long"}

Voir aussi



json_last_error

(PHP 5 >= 5.3.0)

json_last_errorRetourne la dernière erreur JSON

Description

int json_last_error ( void )

json_last_error() retourne la dernière erreur, s'il y en a eu, survenue lors de la dernière analyse JSON.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une des constantes suivantes :

Codes d'erreur JSON
Constante Signification Disponibilité
JSON_ERROR_NONE Aucune erreur n'est survenue  
JSON_ERROR_DEPTH La profondeur maximale de la pile a été atteinte  
JSON_ERROR_CTRL_CHAR Erreur lors du contrôle des caractères ; probablement un encodage incorrect  
JSON_ERROR_STATE_MISMATCH JSON invalide ou mal formé  
JSON_ERROR_SYNTAX Erreur de syntaxe  
JSON_ERROR_UTF8 Caractères UTF-8 malformés, possiblement mal encodés PHP 5.3.3

Exemples

Exemple #1 Exemple avec json_last_error()

<?php
// Une chaîne JSON valide
$json[] = '{"Organisation": "Équipe de Documentation PHP"}';

// Une chaîne json invalide qui va générer une erreur de syntaxe,
// ici, utilisation de ' au lieu de "
$json[] = "{'Organisation': 'Équipe de Documentation PHP'}";


foreach(
$json as $string)
{
    echo 
'Décodage : ' $string;
    
json_decode($string);

    switch(
json_last_error())
    {
        case 
JSON_ERROR_DEPTH:
            echo 
' - Profondeur maximale atteinte';
        break;
        case 
JSON_ERROR_CTRL_CHAR:
            echo 
' - Erreur lors du contrôle des caractères';
        break;
        case 
JSON_ERROR_SYNTAX:
            echo 
' - Erreur de syntaxe ; JSON malformé';
        break;
        case 
JSON_ERROR_NONE:
            echo 
' - Aucune erreur';
        break;
    }

    echo 
PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Décodage : {"Organisation": "Équipe de Documentation PHP"} - Aucune erreur
Décodage : {'Organisation': 'Équipe de Documentation PHP'} - Erreur de syntaxe ; JSON malformé

Voir aussi


Sommaire




Fonctions diverses


Introduction

Ces fonctions ont été placées là, car elles ne rentraient dans aucune autre catégorie.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration divers
Nom Défaut Modifiable Historique
ignore_user_abort "0" PHP_INI_ALL  
highlight.string "#DD0000" PHP_INI_ALL  
highlight.comment "#FF8000" PHP_INI_ALL  
highlight.keyword "#007700" PHP_INI_ALL  
highlight.bg "#FFFFFF" PHP_INI_ALL Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
highlight.default "#0000BB" PHP_INI_ALL  
highlight.html "#000000" PHP_INI_ALL  
browscap NULL PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ignore_user_abort bool

FALSE par défaut. Si changée à TRUE les scripts ne se termineront pas après que l'annulation par le client de leur connexion.

Voir aussi ignore_user_abort().

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

Couleurs utilisées pour le mode de coloration syntaxique. Ces options peuvent prendre n'importe quelles valeurs valides dans <font color="??????">.

browscap string

Nom du fichier de descriptif des clients HTML. (e.g.: browscap.ini) Voir aussi get_browser().



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CONNECTION_ABORTED (entier)
CONNECTION_NORMAL (entier)
CONNECTION_TIMEOUT (entier)
__COMPILER_HALT_OFFSET__ (entier)
Ajouté en PHP 5.1.


Fonctions diverses


connection_aborted

(PHP 4, PHP 5)

connection_abortedIndique si l'internaute a abandonné la connexion HTTP

Description

int connection_aborted ( void )

Indique si l'internaute a abandonné la connexion HTTP.

Valeurs de retour

Retourne 1 si le client est déconnecté, 0 sinon.

Voir aussi



connection_status

(PHP 4, PHP 5)

connection_statusRetourne les bits de statut de la connexion HTTP

Description

int connection_status ( void )

Retourne les bits de statut de la connexion HTTP.

Valeurs de retour

Retourne les bits de statut de la connexion, qui peuvent être utilisés avec les constantes CONNECTION_XXX pour déterminer le statut de la connexion.

Voir aussi



connection_timeout

(PHP 4 <= 4.0.4)

connection_timeoutIndique si le script a expiré

Description

int connection_timeout ( void )

Indique si le script a expiré.

Valeurs de retour

Retourne 1 si le script a expiré, 0 sinon.

Notes

Avertissement

Obsolète

Cette fonction est obsolète et n'existe plus depuis PHP 4.0.5.

Voir aussi



constant

(PHP 4 >= 4.0.4, PHP 5)

constantRetourne la valeur d'une constante

Description

mixed constant ( string $name )

Retourne la valeur de la constante name.

constant() est pratique lorsque vous devez lire la valeur d'une constante, mais que vous ne connaissez son nom que durant l'exécution du script. Par exemple, ce nom peut être le résultat d'une fonction.

Cette fonction fonctionne également avec les constantes de classe.

Liste de paramètres

name

Le nom de la constante.

Valeurs de retour

Retourne la valeur de la constante, ou NULL si la constante n'est pas définie.

Erreurs / Exceptions

Une alerte de niveau E_WARNING sera générée si la constante n'est pas définie.

Exemples

Exemple #1 Exemple avec constant()

<?php

define
("MAXSIZE"100);

echo 
MAXSIZE;
echo 
constant("MAXSIZE"); // identique à la ligne précédente


interface bar {
    const 
test 'foobar!';
}

class 
foo {
    const 
test 'foobar!';
}

$const 'test';

var_dump(constant('bar::'$const)); // string(7) "foobar!"
var_dump(constant('foo::'$const)); // string(7) "foobar!"

?>

Voir aussi



define

(PHP 4, PHP 5)

defineDéfinit une constante

Description

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

Définit une constante à l'exécution.

Liste de paramètres

name

Le nom de la constante.

value

La valeur de la constante ; seuls les scalaires et les valeurs NULL sont autorisées. Les valeurs scalaires sont les valeurs entier, nombre décimal, chaîne de caractères ou booléen. Il est techniquement possible de définir des constantes de type ressource, mais cela est fortement déconseillé, et peut causer des comportements inattendus.

case_insensitive

S'il vaut TRUE, le nom de la constante sera insensible à la casse : CONSTANT et Constant représentent des valeurs identiques.

Note:

Les constantes insensibles à la casse sont stockées en minuscule.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définition d'une constante

<?php
define
("CONSTANT""Bonjour le monde.");
echo 
CONSTANT// affiche "Bonjour le monde."
echo Constant// affiche "Constant" et émet une alerte

define("GREETING""Salut toi."true);
echo 
GREETING// affiche "Salut toi."
echo Greeting// affiche "Salut toi."

?>

Voir aussi



defined

(PHP 4, PHP 5)

definedVérifie l'existence d'une constante

Description

bool defined ( string $name )

Vérifie l'existence d'une constante.

Note:

Si vous voulez vérifier si une variable existe, utilisez isset() car defined() ne s'applique qu'aux constantes. Si vous voulez voir si une fonction existe, utilisez function_exists().

Liste de paramètres

name

Le nom de la constante.

Valeurs de retour

Retourne TRUE si le nom de la constante fournie par le paramètre name a été définie, FALSE sinon.

Exemples

Exemple #1 Vérifier la présence de constantes avec defined()

<?php
/* Notez que le nom de la constante est entre guillemets. Cet exemple vérifie
 * si la chaîne 'TEST' est le nom de la constante nommée TEST */
if (defined('TEST')) {
    echo 
TEST;
}
?>

Voir aussi



die

(PHP 4, PHP 5)

dieAlias de la fonction exit()

Description

Ce constructeur de langage est équivalent à exit().



eval

(PHP 4, PHP 5)

evalExécute une chaîne comme un script PHP

Description

mixed eval ( string $code_str )

Évalue la chaîne code_str comme un script PHP. Parmi les utilisations possibles, cette fonction permet de stocker du code dans une base de données, pour utilisation ultérieure.

Il faut bien garder en tête que le code passé à eval() doit être valide, y compris les points virgules de fin de lignes et les séquences d'échappement, sinon l'exécution se terminera. Pour mélanger des sorties HTML et du code PHP, vous pouvez utiliser une balise de fermeture de PHP pour quitter le mode PHP.

N'oubliez pas que les variables utilisées dans la fonction eval() resteront accessibles dans le script principal.

Liste de paramètres

code_str

Le code à évaluer. code_str ne doit pas nécessairement contenir des balises d'ouvertures de PHP.

Une commande return terminera l'évaluation de la chaîne immédiatement.

Valeurs de retour

eval() retourne NULL sauf si return est appelé dans le code évalué, auquel cas la valeur passée à return est retournée. Dans le cas d'une erreur de syntaxe dans le code évalué, eval() retourne FALSE et l'exécution du code suivant continue normalement. Il n'est pas possible d'attraper l'erreur d'analyse de la fonction eval() en utilisant la fonction set_error_handler().

Exemples

Exemple #1 Exemple avec eval() - concaténation de texte

<?php
$string 
'tasse';
$name 'café';
$str 'Ceci est une $string avec mon $name dedans.<br />';
echo 
$str;
eval( 
"\$str = \"$str\";" );
echo 
$str;
?>

L'exemple ci-dessus va afficher :

Ceci est une $string avec mon $name dedans.
Ceci est une tasse avec mon café dedans.

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Note:

Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se terminera.

Voir aussi



exit

(PHP 4, PHP 5)

exitAffiche un message et termine le script courant

Description

void exit ([ string $status ] )
void exit ( int $status )

Termine le script courant. Les fonctions d'extinction et les destructeurs d'objets seront toujours exécutés même si exit() est appelé.

Liste de paramètres

status

Si status est une chaîne de caractères, cette fonction affichera le status juste avant de sortir.

Si le paramètre status est un entier, cette valeur pourra être utilisée comme statut de sortie et ne sera pas affichée. Le statut de sortie peut être dans l'intervalle 0-255, le statut de sortie 255 est réservé par PHP et ne doit pas être utilisé. Le statut 0 est utilisé pour terminer le programme avec succès.

Note: PHP >= 4.2.0 n'affiche pas le message status si c'est un entier entier.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec exit()

<?php

$filename 
'/path/to/data-file';
$file fopen($filename'r')
    or exit(
"Impossible d'ouvrir le fichier ($filename)");

?>

Exemple #2 Exemple avec exit() et un code d'erreur

<?php

// Quitte normalement
exit;
exit();
exit(
0);

// Quitte avec un code d'erreur
exit(1);
exit(
0376); // octal

?>

Exemple #3 Exemple d'exécution des fonctions d'extinction et des destructeurs d'objets

<?php
class Foo
{
    public function 
__destruct()
    {
        echo 
'Destructeur : ' __METHOD__ '()' PHP_EOL;
    }
}

function 
shutdown()
{
    echo 
'Arrêt : ' __FUNCTION__ '()' PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo 
'Ceci ne sera jamais affiché.';
?>

L'exemple ci-dessus va afficher :

 Arrêt : shutdown()
 Destructeur : Foo::__destruct()
 

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Cette construction de langage est équivalente à die().

Voir aussi



get_browser

(PHP 4, PHP 5)

get_browserIndique les capacités du navigateur client

Description

mixed get_browser ([ string $user_agent [, bool $return_array = false ]] )

get_browser() essaie de déterminer les capacités du navigateur client. Cela se fait en lisant les informations dans le fichier browscap.ini.

Liste de paramètres

user_agent

L'entête user agent à analyser. Par défaut, la valeur de l'en-tête User-Agent est utilisé; cependant, vous pouvez l'altérer (i.e. cherche d'autres informations sur le navigateur) en passant ce paramètre.

Vous pouvez annuler ce paramètre en y passant la valeur NULL.

return_array

Si définit à TRUE, cette fonction retournera un tableau au lieu d'un objet.

Valeurs de retour

Les informations sont retournées sous forme d'un objet, dont les différents membres contiendront des informations, telles que les versions majeures et mineures et des chaînes d'identification ; des booléens pour des caractéristiques telles que frames, JavaScript, et cookies ; et ainsi de suite.

La valeur cookies indique simplement que le navigateur est capable d'accepter les cookies, et n'indique pas si l'utilisateur les a activé sur son navigateur. Le seul moyen de tester l'activation des cookies est d'en poser un avec la fonction setcookie(), de recharger la page et de vérifier que le cookie existe toujours.

Historique

Version Description
4.3.2 Le paramètre optionnel return_array a été ajouté.

Exemples

Exemple #1 Exemple avec get_browser() : liste des capacités du navigateur du client web

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser get_browser(nulltrue);
print_r($browser);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Notes

Note:

Afin de pouvoir fonctionner, la directive de configuration browscap dans le fichier php.ini doit pointer vers le fichier browscap.ini de votre système.

browscap.ini n'est pas distribué avec PHP, mais vous pouvez le télécharger sur » php_browscap.ini.

Bien que browscap.ini contienne des informations sur de très nombreux navigateur, il incombe à l'utilisateur de conserver sa base de données à jour. Le format du fichier est très simple à comprendre.



__halt_compiler

(PHP 5 >= 5.1.0)

__halt_compiler Stoppe l'exécution du compilateur

Description

void __halt_compiler ( void )

Stoppe l'exécution du compilateur. Ceci peut être très utile pour embarquer des données dans des scripts PHP, comme des fichiers d'installation.

L'octet de la position du début des données peut être déterminé par la constante __COMPILER_HALT_OFFSET__ qui n'est définie que s'il y a une fonction __halt_compiler() présente dans le fichier.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec __halt_compiler()

<?php

// Ouverture d'un fichier
$fp fopen(__FILE__'r');

// Déplace le pointeur de fichier vers les données
fseek($fp__COMPILER_HALT_OFFSET__);

// Puis, on l'affiche
var_dump(stream_get_contents($fp));

// La fin de l'exécution du script
__halt_compiler(); les données d'installation (eg. tar, gz, PHP, etc..)

Notes

Note:

__halt_compiler() ne peut être utilisé que depuis une portée extérieure.



highlight_file

(PHP 4, PHP 5)

highlight_fileColorisation syntaxique d'un fichier

Description

mixed highlight_file ( string $filename [, bool $return = false ] )

Affiche la syntaxe colorisée du fichier filename, en utilisant les couleurs définies dans le moteur interne de PHP.

De nombreux serveurs sont configurés pour automatiquement afficher le source colorisé, avec l'extension phps. Par exemple, example.phps va afficher le source du script. Pour activer cette fonctionnalité, utilisez cette ligne dans httpd.conf :

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

Liste de paramètres

filename

Le chemin vers le fichier PHP à coloriser.

return

En passant ce paramètre à TRUE, la fonction retourne le code colorisé au lieu de l'afficher.

Valeurs de retour

Si le second paramètre optionnel return vaut TRUE alors highlight_file() retournera le code généré, au lieu de l'afficher. Si le second paramètre ne vaut pas TRUE alors highlight_file() retournera TRUE en cas de succès, et FALSE sinon.

Historique

Version Description
4.2.1 Cette fonction est désormais affectée par safe_mode et open_basedir.
4.2.0 Le paramètre return a été ajouté.

Notes

Attention

Beaucoup de soin doit être apporté lors de l'utilisation de highlight_file() pour s'assurer que vous ne révélez pas d'informations critiques telles que des mots de passe ou d'autres informations qui pourraient créer des fuites d'informations.

Note:

Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Voir aussi



highlight_string

(PHP 4, PHP 5)

highlight_stringApplique la syntaxe colorisée à du code PHP

Description

mixed highlight_string ( string $str [, bool $return = false ] )

Affiche la version colorisée du code PHP contenu dans le paramètre str, en utilisant les couleurs du système interne de colorisation de PHP.

Liste de paramètres

str

Le code PHP à coloriser. Doit également inclure les balises d'ouverture.

return

Définir ce paramètre à TRUE pour faire que cette fonction retourne le code colorisé.

Valeurs de retour

Si le second paramètre optionnel return est fourni, et vaut TRUE alors highlight_string() retournera la chaîne colorisée au lieu de l'afficher immédiatement. Si le second paramètre ne vaut pas TRUE alors highlight_string() retournera TRUE en cas de succès, et FALSE sinon.

Historique

Version Description
4.2.0 Le paramètre return a été ajouté.

Exemples

Exemple #1 Exemple avec highlight_string()

<?php
highlight_string
('<?php phpinfo(); ?>');
?>

Cet exemple affichera (en PHP 4):

<code><font color="#000000">
<font color="#0000BB">&lt;?php phpinfo</font><font color="#007700">(); </font><font color="#0000BB">?&gt;</font>
</font>
</code>

Cet exemple affichera (en PHP 5):

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Notes

Note:

Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Voir aussi



ignore_user_abort

(PHP 4, PHP 5)

ignore_user_abortActive l'interruption de script sur déconnexion du visiteur

Description

int ignore_user_abort ([ string $value ] )

ignore_user_abort() active l'option qui fait que, lors de la déconnexion du client Web, le script poursuit son exécution.

Lorsque PHP est exécuté comme script en ligne de commande, et que le tty du script est fermé sans que le script soit terminé, alors le script s'arrêtera dès qu'il essaiera d'écrire quelque chose, à moins que value soit TRUE

Liste de paramètres

value

Si fourni, la fonction va attribuer à la directive ignore_user_abort la valeur de value. Si omis, cette fonction ne fait que retourner la valeur de la configuration courante.

Valeurs de retour

Retourne la configuration précédente, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec ignore_user_abort()

<?php
// Ignore la déconnexion de l'utilisateur et autorise
// le script à continuer de s'exécuter
ignore_user_abort(true);
set_time_limit(0);

echo 
'Test du gestionnaire de connexion de PHP';

// Exécution d'une boucle infinie surveillant
// l'activité de l'utilisateur. Soit il clique en dehors
// de la page, soit il clique sur le boutton "Stop".
while(1)
{
    
// La connexion a-t-elle échoué ?
    
if(connection_status() != CONNECTION_NORMAL)
    {
        break;
    }

    
// On attend 10 secondes
    
sleep(10);
}

// Si c'est atteint, alors l'instruction 'break' 
// sera lancée depuis la boucle infinie

// Aussi, nous pouvons à ce niveau entrer des informations dans l'historique,
// ou exécuter d'autres taches nécessaires, sans pour autant être dépendant
// du navigateur.
?>

Notes

PHP ne détecte pas la déconnexion du client Web jusqu'à ce qu'une tentative d'envoi soit faite. La simple utilisation d'un echo() ne garantit pas que l'information est envoyée, voir la fonction flush().

Voir aussi



pack

(PHP 4, PHP 5)

packCompacte des données dans une chaîne binaire

Description

string pack ( string $format [, mixed $args [, mixed $... ]] )

Compacte les arguments args dans une chaîne binaire, suivant le format format.

Le concept vient du Perl et tout le formatage fonctionne de la même façon qu'en Perl, mais quelques formats manquent encore (comme "u").

Notez que la distinction entre signé et non signé n'affecte que la fonction unpack(), tandis que la fonction pack() fournira le même résultat pour les deux formats.

Liste de paramètres

format

La chaîne de caractères format consiste en des codes de format suivis par un argument répéteur optionnel. Le répéteur peut être soit une valeur entière, soit * pour une répétition jusqu'à la fin des données d'entrées. Pour a, A, h, H, le répéteur spécifie combien de caractères d'une donnée est pris, pour @, c'est la position absolue où l'on insère les prochaines données, pour tout le reste, le répéteur spécifie combien d'arguments de données sont consommés et compactés dans la chaîne binaire résultante.

Les formats actuellement acceptés sont :

Caractères de formatage pour pack()
Code Description
a NUL - Une chaîne complétée avec NULL
A SPACE - Une chaîne complétée avec un espace
h Chaîne hexadécimale h, bit de poids faible en premier
H Chaîne hexadécimale H, bit de poids fort en premier
c Caractère signé
C Caractère non signé
s entier court signé (toujours sur 16 bits, ordre des bits dépendant de la machine)
S entier court non signé (toujours 16 bits, ordre des bits dépendant de la machine)
n entier cours non signé (toujours 16 bits, ordre des bits big endian)
v entier cours non signé (toujours 16 bits, ordre des bits little endian)
i entier signé (taille et ordre des bits dépendants de la machine)
I entier non signé (taille et ordre des bits dépendants de la machine)
l entier long signé (toujours 32 bits, ordre des bits dépendant de la machine)
L entier long non signé (toujours 32 bits, ordre des bits dépendant de la machine)
N entier long non signé (toujours 32 bits, ordre des bits big endian)
V entier long non signé (toujours 32 bits, ordre des bits little endian)
f nombre à virgule flottante (taille et représentation dépendantes de la machine)
d nombre à virgule flottante double (taille et représentation dépendantes de la machine)
x caractère NUL
X Recule d'un caractère
@ Remplit avec des NUL jusqu'à la position absolue

args

Valeurs de retour

Retourne une chaîne de caractères binaire contenant les données.

Exemples

Exemple #1 Exemple avec pack()

<?php
$binarydata 
pack("nvc*"0x12340x56786566);
?>

La chaîne binaire résultante aura 6 octets de long, et contiendra la séquence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Notes

Attention

Notee que PHP stocke en interne les valeurs integer comme valeurs signées dépendantes de la machine (type C long). Les opérations sur les entiers qui mènent à des chiffres en dehors de l'espace de définition de l'integer seront stockées dans des float. Lors de l'empaquetage de ses flottants en entiers, ils sont transtypés vers le type entier. Ceci peut éventuellement mener à une représentation inattendue des octets.

Le cas le plus classique est l'empaquetage de nombres non signés qui seraient représentables dans le type integer si celui-ci était non signé. Sur les systèmes ayant un integer d'une taille de 32-bits, le transtypage résulte en un octet identique que si le type integer était non signé (même si cela reste dépendant de l'implémentation non signé vers signé, du standard C). Sur les systèmes ayant un integer d'une taille de 64-bits, le float n'a souvent pas une mantisse assez large pour contenir la valeur sans perte de précision. Si ces systèmes possèdent aussi un type C natif int 64-bits (la plupart des *NIX ne l'ont pas), le seul moyen d'utiliser le format de paquetage I dans les hautes valeurs est de créer des valeurs integer négatives avec la même représentation des octets que la valeur non signées voulue correspondante.

Voir aussi

  • unpack() - Déconditionne des données depuis une chaîne binaire



php_check_syntax

(PHP 5 <= 5.0.4)

php_check_syntax Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique

Description

bool php_check_syntax ( string $filename [, string &$error_message ] )

Effectue une vérification de la syntaxe du fichier filename pour y trouver des erreurs de script.

Ceci est similaire à utiliser la commande php -l depuis la ligne de commande mise à part que php_check_syntax() exécutera (mais n'affichera rien) le fichier file_name vérifié.

Par exemple, si une fonction est définie dans file_name, cette fonction sera disponible pour le fichier qui exécute php_check_syntax(), mais l'affichage depuis file_name sera supprimée.

Note:

Pour des raisons techniques, cette fonction est obsolète et supprimée de PHP. Utilisez à la place php -l somefile.php depuis la ligne de commande.

Liste de paramètres

filename

Le nom du fichier à vérifier.

error_message

Si le paramètre error_message est utilisé, il contiendra le message d'erreur généré par la vérification de la syntaxe. error_message est passé par référence.

Valeurs de retour

Retourne TRUE si la vérification a réussie, et FALSE si la vérification échoue ou si le fichier file_name n'a pu être ouvert.

Historique

Version Description
5.0.5 Cette fonction a été supprimée de PHP.
5.0.3 Appel à exit() après php_check_syntax() cause une erreur de segmentation.
5.0.1 error_message est passé par référence.

Exemples

php -l somefile.php

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81

Voir aussi



php_strip_whitespace

(PHP 5)

php_strip_whitespaceRetourne la source sans commentaires, ni espaces blancs

Description

string php_strip_whitespace ( string $filename )

Retourne le code source PHP du paramètre filename en ayant supprimé les commentaires ainsi que les espaces. Cela peut être utile pour comparer la quantité de code avec la quantité de commentaire dans votre code. Cela revient à utiliser la commande php -w depuis la ligne de commande.

Liste de paramètres

filename

Chemin vers le fichier PHP.

Valeurs de retour

Le code source nettoyé sera retourné en cas de succès ou une chaîne vide en cas d'échec.

Note:

Cette fonction fonctionne comme décrite depuis PHP 5.0.1. Avant, elle ne retournait qu'une chaîne vide. Pour plus de détails concernant ce bogue ainsi que son comportement précédent, lisez le rapport de bogue » #29606.

Exemples

Exemple #1 Exemple avec php_strip_whitespace()

<?php
// Commentaire PHP ici

/*
 * Un autre commentaire PHP
 */

echo        php_strip_whitespace(__FILE__);
// Les nouvelles lignes sont considérées comme des espaces et sont donc également effacées :
do_nothing();
?>

L'exemple ci-dessus va afficher :

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

Notez que les commentaires PHP ne sont plus là, tout comme les espaces et les nouvelles lignes après le premier echo.



show_source

(PHP 4, PHP 5)

show_sourceAlias de highlight_file()

Description

Cette fonction est un alias de : highlight_file().



sleep

(PHP 4, PHP 5)

sleepArrête l'exécution durant quelques secondes

Description

int sleep ( int $seconds )

Arrête l'exécution du programme pendant seconds secondes.

Liste de paramètres

seconds

Le retard, en nombre de secondes.

Valeurs de retour

Retourne zéro en cas de succès, FALSE si une erreur survient.

Si l'appel est interrompu par un signal, la fonction sleep() retournera une valeur différente de zéro. Sous Windows, la valeur sera toujours de 192 (la valeur de la constante WAIT_IO_COMPLETION de l'API Windows). Sous les autres plateformes, la valeur retournée sera le nombre de secondes restantes à la fonction sleep().

Erreurs / Exceptions

Si le nombre seconds spécifié est négatif, cette fonction génère une alerte de niveau E_WARNING.

Historique

Version Description
5.3.4 Avant PHP 5.3.4, sous Windows, sleep() retournait toujours NULL lorsque la fonction se terminait, que ce soit de façon normal ou bien par un signal.

Exemples

Exemple #1 Exemple avec sleep()

<?php

// Heure actuelle
echo date('h:i:s') . "\n";

// Stoppe pour 10 secondes
sleep(10);

// retour !
echo date('h:i:s') . "\n";

?>

Cet exemple affichera (après 10 secondes) :

05:31:23
05:31:33

Voir aussi



sys_getloadavg

(PHP 5 >= 5.1.3)

sys_getloadavgRécupère la charge moyenne du système

Description

array sys_getloadavg ( void )

Retourne trois échantillons représentant la charge moyenne du système (le nombre de processus dans le système qui est dans le processus de roulement en attente) depuis les dernières 1, 5 et 16 minutes, respectivement.

Valeurs de retour

Retourne un array avec trois échantillons (dernières 1, 5 et 15 minutes).

Exemples

Exemple #1 Exemple avec sys_getloadavg()

<?php
$load 
sys_getloadavg();
if (
$load[0] > 80) {
    
header('HTTP/1.1 503 Too busy, try again later');
    die(
'Server too busy. Please try again later.');
}
?>

Notes

Note: Cette fonction n'est pas implémentée sous Windows.



time_nanosleep

(PHP 5)

time_nanosleepAttendre pendant un nombre de secondes et de nanosecondes

Description

mixed time_nanosleep ( int $seconds , int $nanoseconds )

time_nanosleep() impose un délai d'exécution de seconds secondes et nanoseconds nanosecondes.

Liste de paramètres

seconds

Doit être un entier non-négatif.

nanoseconds

Doit être un entier non-négatif, inférieur à 1 milliard.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si le délai est interrompu par un signal, un tableau associatif sera retourné avec les éléments :

  • seconds : nombre de secondes restantes dans le délai
  • nanoseconds : nombre de nanosecondes restantes dans le délai

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows.

Exemples

Exemple #1 Exemple avec time_nanosleep()

<?php
// Attention ! Cela ne fonctionnera pas comme prévu si un tableau est retourné
if (time_nanosleep(0500000000)) {
    echo 
"Dors pendant une demie seconde.\n";
}

// Ceci est meilleur :
if (time_nanosleep(0500000000) === true) {
    echo 
"Dors pendant une demie seconde.\n";
}

// Et ceci est la meilleur façon :
$nano time_nanosleep(2100000);

if (
$nano === true) {
    echo 
"Dors pendant 2 secondes et 100 microsecondes.\n";
} elseif (
$nano === false) {
    echo 
"Le délai a échoué.\n";
} elseif (
is_array($nano)) {
    
$seconds $nano['seconds'];
    
$nanoseconds $nano['nanoseconds'];
    echo 
"Interrompu par un signal.\n";
    echo 
"Temps restant : $seconds secondes, $nanoseconds nanosecondes.";
}
?>

Voir aussi

  • sleep() - Arrête l'exécution durant quelques secondes
  • usleep() - Arrête l'exécution durant quelques microsecondes
  • time_sleep_until() - Arrête le script pendant une durée spécifiée
  • set_time_limit() - Fixe le temps maximum d'exécution d'un script



time_sleep_until

(PHP 5 >= 5.1.0)

time_sleep_until Arrête le script pendant une durée spécifiée

Description

bool time_sleep_until ( float $timestamp )

Arrête le script jusqu'à l'instant indiqué par le paramètre timestamp.

Liste de paramètres

timestamp

Le timestamp correspondant à la durée de la pause.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows.

Erreurs / Exceptions

Si la durée timestamp est dans le passé, time_sleep_until() générera une alerte de niveau E_WARNING.

Exemples

Exemple #1 Exemple avec time_sleep_until()

<?php

// Retourne false et génère une alerte
var_dump(time_sleep_until(time()-1));

// Fonctionnera que sur les ordinateurs rapides, stoppera le script 0.2 secondes
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Notes

Note: Tous les signaux seront délivrés une fois la reprise du script.

Voir aussi

  • sleep() - Arrête l'exécution durant quelques secondes
  • usleep() - Arrête l'exécution durant quelques microsecondes
  • time_nanosleep() - Attendre pendant un nombre de secondes et de nanosecondes
  • set_time_limit() - Fixe le temps maximum d'exécution d'un script



uniqid

(PHP 4, PHP 5)

uniqidGénère un identifiant unique

Description

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )

Génère un identifiant unique basé sur la date et heure courante en microsecondes.

Liste de paramètres

prefix

Peut être utile pour identifier facilement différents hôtes, si vous générez simultanément des fichiers depuis plusieurs hôtes, à la même microseconde.

Sans prefix (préfixe vide), la chaîne retournée fera 13 caractères. Si more_entropy est à TRUE, elle fera 23 caractères.

more_entropy

Si le paramètre optionnel more_entropy est TRUE, uniqid() ajoutera une entropie "combined LCG" à la fin de la valeur retournée, ce qui renforcera encore l'unicité de l'identifiant.

Valeurs de retour

Retourne un identifiant unique, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec uniqid()

<?php
/* Un identifiant unique, comme : 4b3403665fea6 */
printf("uniqid(): %s\r\n"uniqid());

/* Nous pouvez également préfixé l'identifiant unique,
 * ce qui revient à :
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s\r\n"uniqid('php_'));

/* Nous pouvons aussi activer le paramètre more_entropy,
 * requis par quelques systèmes, comme Cygwin. Ceci fera que
 * uniqid() produira une valeur comme : 4b340550242239.64159797
 */
printf("uniqid('', true): %s\r\n"uniqid(''true));
?>

Historique

Version Description
5.0.0 Le paramètre prefix est devenu optionnel.
4.3.1 La limite de 114 caractères de long pour le paramètre prefix a été augmentée.

Notes

Note:

Sous Cygwin, le paramètre more_entropy doit prendre la valeur TRUE pour cette fonction.



unpack

(PHP 4, PHP 5)

unpackDéconditionne des données depuis une chaîne binaire

Description

array unpack ( string $format , string $data )

Déconditionne les données data depuis une chaîne binaire avec le format format.

Les données déconditionnées sont stockées dans un tableau. Pour cela, il faut donner un nom à chaque format utilisé et les séparer par des slash (/). Si un argument de répétition est présent, alors chacune des clés du tableau aura un numéro de séquence derrière le nom fourni.

Liste de paramètres

format

Voir la fonction pack() pour une explication des codes de format.

data

Les données conditionnées.

Valeurs de retour

Retourne un tableau associatif contenant les éléments déconditionnés d'une chaîne binaire.

Exemples

Exemple #1 Exemple avec unpack()

<?php
$binarydata 
"\x04\x00\xa0\x00";
$array unpack("cchars/nint"$binarydata);
?>

Le tableau résultant contiendra les entrées "chars" avec les valeurs 4 et "int" avec 160.

Exemple #2 Exemple avec unpack() et un argument de répétition

<?php
$binarydata 
"\x04\x00\xa0\x00";
$array unpack("c2chars/nint"$binarydata);
?>

Le tableau résultant contiendra les entrées "chars1", "chars2" et "int".

Notes

Attention

Il faut noter que PHP gère les valeurs en interne sous forme signée. Si vous déconditionnez une valeur qui est aussi grande que la taille utilisée en interne par PHP, le résultat se trouvera être un nombre négatif, même s'il a été déconditionné avec l'option " non signé ".

Attention

Attention, si vous ne nommez pas un élément, une chaîne vide sera utilisée. Si vous ne nommez pas plus d'un élément, cela signifie que quelques données seront écrasées lorsque les clés sont identiques, comme ceci :

Exemple #3 Exemple avec unpack() avec des clés non nommées

<?php
$binarydata 
"\x32\x42\x00\xa0";
$array unpack("c2/n"$binarydata);
var_dump($array);
?>

Le tableau résultant contiendra les entrées "1" avec la valeur 160 et "2" avec 66. La première valeur depuis le spécificateur c est écrasé par la première valeur depuis le spécificateur n.

Voir aussi

  • pack() - Compacte des données dans une chaîne binaire



usleep

(PHP 4, PHP 5)

usleepArrête l'exécution durant quelques microsecondes

Description

void usleep ( int $micro_seconds )

Arrête l'exécution d'un programme durant un laps de temps.

Liste de paramètres

micro_seconds

Durée de l'arrêt, en microsecondes. Une microseconde est un millionième de seconde.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
5.0.0 Cette fonction fonctionne désormais sur les systèmes Windows.

Exemples

Exemple #1 Exemple avec usleep()

<?php

// Heure courante
echo date('h:i:s') . "\n";

// Stoppe pour 2 secondes
usleep(2000000);

// Retour !
echo date('h:i:s') . "\n";

?>

L'exemple ci-dessus va afficher :

11:13:28
11:13:30

Voir aussi


Sommaire

  • connection_aborted — Indique si l'internaute a abandonné la connexion HTTP
  • connection_status — Retourne les bits de statut de la connexion HTTP
  • connection_timeout — Indique si le script a expiré
  • constant — Retourne la valeur d'une constante
  • define — Définit une constante
  • defined — Vérifie l'existence d'une constante
  • die — Alias de la fonction exit
  • eval — Exécute une chaîne comme un script PHP
  • exit — Affiche un message et termine le script courant
  • get_browser — Indique les capacités du navigateur client
  • __halt_compiler — Stoppe l'exécution du compilateur
  • highlight_file — Colorisation syntaxique d'un fichier
  • highlight_string — Applique la syntaxe colorisée à du code PHP
  • ignore_user_abort — Active l'interruption de script sur déconnexion du visiteur
  • pack — Compacte des données dans une chaîne binaire
  • php_check_syntax — Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique
  • php_strip_whitespace — Retourne la source sans commentaires, ni espaces blancs
  • show_source — Alias de highlight_file
  • sleep — Arrête l'exécution durant quelques secondes
  • sys_getloadavg — Récupère la charge moyenne du système
  • time_nanosleep — Attendre pendant un nombre de secondes et de nanosecondes
  • time_sleep_until — Arrête le script pendant une durée spécifiée
  • uniqid — Génère un identifiant unique
  • unpack — Déconditionne des données depuis une chaîne binaire
  • usleep — Arrête l'exécution durant quelques microsecondes



Parsekit


Introduction

Ces fonctions vous permettent d'analyser en cours de fonctionnement l'opcode compilé depuis vos scripts PHP.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/parsekit.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PARSEKIT_QUIET (entier)
Retourne tous les détails mais sans les entrées NULL non nécessaire.
PARSEKIT_SIMPLE (entier)
Retourne une notation opcode abrégée.
PARSEKIT_EXTENDED_VALUE (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_CONST (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_EA_TYPE (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_JMP_ADDR (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_OPARRAY (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_OPLINE (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_VAR (entier)
Flag d'un noeud opcode
PARSEKIT_USAGE_UNKNOWN (entier)
Flag d'un noeud opcode
PARSEKIT_ZEND_INTERNAL_CLASS (entier)
Type de la classe
PARSEKIT_ZEND_USER_CLASS (entier)
Type de la classe
PARSEKIT_ZEND_EVAL_CODE (entier)
Type de la fonction
PARSEKIT_ZEND_INTERNAL_FUNCTION (entier)
Type de la fonction
PARSEKIT_ZEND_OVERLOADED_FUNCTION (entier)
Type de la fonction
PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY (entier) PHP >= 5.0.0
Type de la fonction
PARSEKIT_ZEND_USER_FUNCTION (entier)
Type de la fonction
PARSEKIT_IS_CONST (entier)
Type du noeud
PARSEKIT_IS_TMP_VAR (entier)
Type du noeud
PARSEKIT_IS_UNUSED (entier)
Type du noeud
PARSEKIT_IS_VAR (entier)
Type du noeud
PARSEKIT_ZEND_ADD (entier)
Opcode
PARSEKIT_ZEND_ADD_ARRAY_ELEMENT (entier)
Opcode
PARSEKIT_ZEND_ADD_CHAR (entier)
Opcode
PARSEKIT_ZEND_ADD_INTERFACE (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ADD_STRING (entier)
Opcode
PARSEKIT_ZEND_ADD_VAR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_ADD (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_AND (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_OR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_XOR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_CONCAT (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_DIM (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_DIV (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_MOD (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_MUL (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_REF (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_SL (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_SR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_SUB (entier)
Opcode
PARSEKIT_ZEND_BEGIN_SILENCE (entier)
Opcode
PARSEKIT_ZEND_BOOL (entier)
Opcode
PARSEKIT_ZEND_BOOL_NOT (entier)
Opcode
PARSEKIT_ZEND_BOOL_XOR (entier)
Opcode
PARSEKIT_ZEND_BRK (entier)
Opcode
PARSEKIT_ZEND_BW_AND (entier)
Opcode
PARSEKIT_ZEND_BW_NOT (entier)
Opcode
PARSEKIT_ZEND_BW_OR (entier)
Opcode
PARSEKIT_ZEND_BW_XOR (entier)
Opcode
PARSEKIT_ZEND_CASE (entier)
Opcode
PARSEKIT_ZEND_CAST (entier)
Opcode
PARSEKIT_ZEND_CATCH (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CLONE (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CONCAT (entier)
Opcode
PARSEKIT_ZEND_CONT (entier)
Opcode
PARSEKIT_ZEND_DECLARE_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_FUNCTION (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_INHERITED_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DIV (entier)
Opcode
PARSEKIT_ZEND_DO_FCALL (entier)
Opcode
PARSEKIT_ZEND_DO_FCALL_BY_NAME (entier)
Opcode
PARSEKIT_ZEND_ECHO (entier)
Opcode
PARSEKIT_ZEND_END_SILENCE (entier)
Opcode
PARSEKIT_ZEND_EXIT (entier)
Opcode
PARSEKIT_ZEND_EXT_FCALL_BEGIN (entier)
Opcode
PARSEKIT_ZEND_EXT_FCALL_END (entier)
Opcode
PARSEKIT_ZEND_EXT_NOP (entier)
Opcode
PARSEKIT_ZEND_EXT_STMT (entier)
Opcode
PARSEKIT_ZEND_FETCH_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_FETCH_CONSTANT (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_IS (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_R (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_RW (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_TMP_VAR (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_UNSET (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_W (entier)
Opcode
PARSEKIT_ZEND_FETCH_FUNC_ARG (entier)
Opcode
PARSEKIT_ZEND_FETCH_IS (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_IS (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_R (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_RW (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_UNSET (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_W (entier)
Opcode
PARSEKIT_ZEND_FETCH_R (entier)
Opcode
PARSEKIT_ZEND_FETCH_RW (entier)
Opcode
PARSEKIT_ZEND_FETCH_UNSET (entier)
Opcode
PARSEKIT_ZEND_FETCH_W (entier)
Opcode
PARSEKIT_ZEND_FE_FETCH (entier)
Opcode
PARSEKIT_ZEND_FE_RESET (entier)
Opcode
PARSEKIT_ZEND_FREE (entier)
Opcode
PARSEKIT_ZEND_HANDLE_EXCEPTION (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CONST (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_FUNCTION (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INCLUDE_OR_EVAL (entier)
Opcode
PARSEKIT_ZEND_INIT_ARRAY (entier)
Opcode
PARSEKIT_ZEND_INIT_CTOR_CALL (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_FCALL_BY_NAME (entier)
Opcode
PARSEKIT_ZEND_INIT_METHOD_CALL (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STRING (entier)
Opcode
PARSEKIT_ZEND_INSTANCEOF (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY (entier) PHP < 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_VAR (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IS_EQUAL (entier)
Opcode
PARSEKIT_ZEND_IS_IDENTICAL (entier)
Opcode
PARSEKIT_ZEND_IS_NOT_EQUAL (entier)
Opcode
PARSEKIT_ZEND_IS_NOT_IDENTICAL (entier)
Opcode
PARSEKIT_ZEND_IS_SMALLER (entier)
Opcode
PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL (entier)
Opcode
PARSEKIT_ZEND_JMP (entier)
Opcode
PARSEKIT_ZEND_JMPNZ (entier)
Opcode
PARSEKIT_ZEND_JMPNZ_EX (entier)
Opcode
PARSEKIT_ZEND_JMPZ (entier)
Opcode
PARSEKIT_ZEND_JMPZNZ (entier)
Opcode
PARSEKIT_ZEND_JMPZ_EX (entier)
Opcode
PARSEKIT_ZEND_JMP_NO_CTOR (entier)
Opcode
PARSEKIT_ZEND_MOD (entier)
Opcode
PARSEKIT_ZEND_MUL (entier)
Opcode
PARSEKIT_ZEND_NEW (entier)
Opcode
PARSEKIT_ZEND_NOP (entier)
Opcode
PARSEKIT_ZEND_OP_DATA (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_DEC (entier)
Opcode
PARSEKIT_ZEND_POST_DEC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_INC (entier)
Opcode
PARSEKIT_ZEND_POST_INC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_DEC (entier)
Opcode
PARSEKIT_ZEND_PRE_DEC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_INC (entier)
Opcode
PARSEKIT_ZEND_PRE_INC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRINT (entier)
Opcode
PARSEKIT_ZEND_QM_ASSIGN (entier)
Opcode
PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_RECV (entier)
Opcode
PARSEKIT_ZEND_RECV_INIT (entier)
Opcode
PARSEKIT_ZEND_RETURN (entier)
Opcode
PARSEKIT_ZEND_SEND_REF (entier)
Opcode
PARSEKIT_ZEND_SEND_VAL (entier)
Opcode
PARSEKIT_ZEND_SEND_VAR (entier)
Opcode
PARSEKIT_ZEND_SEND_VAR_NO_REF (entier)
Opcode
PARSEKIT_ZEND_SL (entier)
Opcode
PARSEKIT_ZEND_SR (entier)
Opcode
PARSEKIT_ZEND_SUB (entier)
Opcode
PARSEKIT_ZEND_SWITCH_FREE (entier)
Opcode
PARSEKIT_ZEND_THROW (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_TICKS (entier)
Opcode
PARSEKIT_ZEND_UNSET_DIM_OBJ (entier)
Opcode
PARSEKIT_ZEND_UNSET_VAR (entier)
Opcode
PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS (entier) PHP >= 5.0.0
Opcode



Fonctions Parsekit


parsekit_compile_file

(PECL parsekit >= 0.2.0)

parsekit_compile_fileCompile un fichier de code PHP et retourne le tableau d'opcode résultant

Description

array parsekit_compile_file ( string $filename [, array &$errors [, int $options = PARSEKIT_QUIET ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

filename

Une chaîne contenant le nom du fichier à compiler. Similaire à l'argument de include().

&errors

Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation. Retourné par référence.

options

Soit PARSEKIT_QUIET, soit PARSEKIT_SIMPLE. Pour produire plusieurs degrés de retour dans la chaîne retournée.

Valeurs de retour

Retourne un tableau complexe multidimensionnel, structuré comme ci-dessous.

Exemples

Exemple #1 Exemple avec parsekit_compile_file()

<?php
var_dump
(parsekit_compile_file('bonjour_le_monde.php'$errorsPARSEKIT_SIMPLE));
?>

L'exemple ci-dessus va afficher :

array(5) {
  [0]=>
  string(37) "ZEND_ECHO UNUSED 'Bonjour le monde' UNUSED"
  [1]=>
  string(30) "ZEND_RETURN UNUSED NULL UNUSED"
  [2]=>
  string(42) "ZEND_HANDLE_EXCEPTION UNUSED UNUSED UNUSED"
  ["function_table"]=>
  NULL
  ["class_table"]=>
  NULL
}

Voir aussi



parsekit_compile_string

(PECL parsekit >= 0.2.0)

parsekit_compile_stringCompile une chaîne de code PHP et retourne le tableau d'opcode résultant

Description

array parsekit_compile_string ( string $phpcode [, array &$errors [, int $options = PARSEKIT_QUIET ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

phpcode

Une chaîne contenant du code PHP. Similaire à l'argument de eval().

&errors

Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation. Retourné par référence.

options

Soit PARSEKIT_QUIET, soit PARSEKIT_SIMPLE. Pour produire plusieurs degrés de retour dans la chaîne retournée.

Valeurs de retour

Retourne un tableau complexe multidimensionnel, structuré comme ci-dessous.

Exemples

Exemple #1 Exemple avec parsekit_compile_string()

<?php
  $ops 
parsekit_compile_string('
echo "Foo\n";
'
$errorsPARSEKIT_QUIET);

  
var_dump($ops);
?>

L'exemple ci-dessus va afficher :

array(20) {
  ["type"]=>
  int(4)
  ["type_name"]=>
  string(14) "ZEND_EVAL_CODE"
  ["fn_flags"]=>
  int(0)
  ["num_args"]=>
  int(0)
  ["required_num_args"]=>
  int(0)
  ["pass_rest_by_reference"]=>
  bool(false)
  ["uses_this"]=>
  bool(false)
  ["line_start"]=>
  int(0)
  ["line_end"]=>
  int(0)
  ["return_reference"]=>
  bool(false)
  ["refcount"]=>
  int(1)
  ["last"]=>
  int(3)
  ["size"]=>
  int(3)
  ["T"]=>
  int(0)
  ["last_brk_cont"]=>
  int(0)
  ["current_brk_cont"]=>
  int(-1)
  ["backpatch_count"]=>
  int(0)
  ["done_pass_two"]=>
  bool(true)
  ["filename"]=>
  string(17) "Parsekit Compiler"
  ["opcodes"]=>
  array(3) {
    [8594800]=>
    array(5) {
      ["opcode"]=>
      int(40)
      ["opcode_name"]=>
      string(9) "ZEND_ECHO"
      ["flags"]=>
      int(768)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &string(4) "Foo
"
      }
      ["lineno"]=>
      int(2)
    }
    ["859484C"]=>
    array(6) {
      ["opcode"]=>
      int(62)
      ["opcode_name"]=>
      string(11) "ZEND_RETURN"
      ["flags"]=>
      int(16777984)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &NULL
      }
      ["extended_value"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
    [8594898]=>
    array(4) {
      ["opcode"]=>
      int(149)
      ["opcode_name"]=>
      string(21) "ZEND_HANDLE_EXCEPTION"
      ["flags"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
  }
}

Voir aussi



parsekit_func_arginfo

(PECL parsekit >= 0.3.0)

parsekit_func_arginfoRetourne des informations concernant les arguments d'une fonction

Description

array parsekit_func_arginfo ( mixed $function )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

function

Une chaîne décrivant une fonction ou un tableau décrivant une classe/méthode.

Valeurs de retour

Retourne un tableau contenant les informations sur les arguments.

Exemples

Exemple #1 Exemple avec parsekit_func_arginfo()

<?php
function foo($barstdClass $baz, &$bomb$bling false) {
}

var_dump(parsekit_func_arginfo('foo'));
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  array(3) {
    ["name"]=>
    string(3) "bar"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(3) "baz"
    ["class_name"]=>
    string(8) "stdClass"
    ["allow_null"]=>
    bool(false)
    ["pass_by_reference"]=>
    bool(false)
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(4) "bomb"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(true)
  }
  [3]=>
  array(3) {
    ["name"]=>
    string(5) "bling"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
}


Sommaire




Bibliothèque standard PHP (SPL)


Introduction

SPL est une collection d'interfaces et de classes qui ont été créée afin de résoudre les problèmes standards.

Note:

La documentation historique au format "doxygen" est disponible » ici.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension est disponible et compilée par défaut depuis PHP 5.0.0.

Note:

Depuis PHP 5.3.0, cette extension ne peut être désactivé et est donc, toujours disponible.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Avertissement

SPL utilise des constantes de classe depuis PHP 5.1. Les versions antérieures utilisaient des constantes globales sous la forme RIT_LEAVES_ONLY.

RecursiveIteratorIterator::LEAVES_ONLY (entier)
RecursiveIteratorIterator::SELF_FIRST (entier)
RecursiveIteratorIterator::CHILD_FIRST (entier)
CachingIterator::CALL_TOSTRING (entier)
CachingIterator::CATCH_GET_CHILD (entier)


Structures des données

Sommaire

SPL fournit un jeu de structures de données standard. Elles sont regroupées ici par implémentation, ce qui définit généralement leur champ d'application.

Liste doublement chaînées

Une liste doublement chaînée (Doubly Linked List ou DLL) est une liste de noeud liés dans les deux sens aux autres noeuds. Les opérations d'itérateurs peuvent se faire dans les deux sens, en addition ou en suppression, avec un coût de O(1) lorsque la structure sous-jacente est une DLL. Elle fournit également un support pratique pour les piles et les queues.

piles

Les piles sont des structures de type arbre, qui suivent une propriété caractéristique des piles : chaque noeud est plus grand ou égal que ses enfants, lorsqu'on les compare avec la méthode implémentée de comparaison, qui est globale à la pile.

Tableaux

Les Array sont des structures qui stockent les données d'une manière continue, et accessible via des index. Ne les confondez pas avec les tableau de PHP : ces tableaux sont implémentés comme des tables de hashage ordonnées.

Carte (Map)

Une carte est une structure de données qui stocke des paire clé/valeur. Les tableaux PHP peuvent très bien servir de cartes entre des chaînes ou entiers et des valeurs. SPL fournit un objet de type carte pour les données. Cette carte peut aussi servir d'ensemble d'objets.


La classe SplDoublyLinkedList

Introduction

La classe SplDoublyLinkedList fournit l'interface principale pour les listes doublement chaînées.

Synopsis de la classe

SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Méthodes */
__construct ( void )
mixed bottom ( void )
int count ( void )
mixed current ( void )
int getIteratorMode ( void )
bool isEmpty ( void )
mixed key ( void )
void next ( void )
bool offsetExists ( mixed $index )
mixed offsetGet ( mixed $index )
void offsetSet ( mixed $index , mixed $newval )
void offsetUnset ( mixed $index )
mixed pop ( void )
void prev ( void )
void push ( mixed $value )
void rewind ( void )
void setIteratorMode ( int $mode )
mixed shift ( void )
mixed top ( void )
void unshift ( mixed $value )
bool valid ( void )
}

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::bottomLe noeud parent à partir duquel la liste découle

Description

mixed SplDoublyLinkedList::bottom ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du premier noeud.



SplDoublyLinkedList::__construct

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::__constructConstruit une nouvelle liste

Description

SplDoublyLinkedList::__construct() ( void )

Construit une nouvelle liste.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplDoublyLinkedList::__construct()

<?php
$dll 
= new SplDoublyLinkedList();

$dll->push(2);
$dll->push(3);
$dll->unshift(5);

var_dump($dll);
?>

L'exemple ci-dessus va afficher :

object(SplDoublyLinkedList)#1 (2) {
  ["flags":"SplDoublyLinkedList":private]=>
  int(0)
  ["dllist":"SplDoublyLinkedList":private]=>
  array(3) {
    [0]=>
    int(5)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
}



SplDoublyLinkedList::count

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::countCompte le nombre d'éléments de la liste

Description

int SplDoublyLinkedList::count ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'éléments de la liste.



SplDoublyLinkedList::current

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::currentRetourne l'entrée courante du tableau

Description

mixed SplDoublyLinkedList::current ( void )

Retourne l'entrée courante du tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud courant.



SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::getIteratorModeRetourne le mode de l'itérateur

Description

int SplDoublyLinkedList::getIteratorMode ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode et les drapeaux qui affectent l'itérateur.



SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::isEmptyVérifie si la liste est vide

Description

bool SplDoublyLinkedList::isEmpty ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si la liste est vide, ou non.



SplDoublyLinkedList::key

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::keyRetourne l'index du noeud courant

Description

mixed SplDoublyLinkedList::key ( void )

Retourne l'index du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du noeud courant.



SplDoublyLinkedList::next

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::nextSe déplace à l'entrée suivante

Description

void SplDoublyLinkedList::next ( void )

Se déplace à l'entrée suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetExistsVérifie si un index existe

Description

bool SplDoublyLinkedList::offsetExists ( mixed $index )

Liste de paramètres

index

L'index à vérifier.

Valeurs de retour

TRUE si l'index existe, FALSE sinon.



SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetGetRetourne la valeur d'un index

Description

mixed SplDoublyLinkedList::offsetGet ( mixed $index )

Liste de paramètres

index

L'index désiré.

Valeurs de retour

La valeur de l'index.



SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetSetSpécifie la nouvelle valeur de l'index

Description

void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )

Définit la valeur de l'index à la valeur newval.

Liste de paramètres

index

L'index à définir.

newval

La nouvelle valeur pour l'index.

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetUnsetEfface la valeur d'un index

Description

void SplDoublyLinkedList::offsetUnset ( mixed $index )

Efface la valeur d'un index.

Liste de paramètres

index

L'index à effacer.

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::popAjoute un noeud à la fin de la liste

Description

mixed SplDoublyLinkedList::pop ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud ajouté.



SplDoublyLinkedList::prev

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::prevRecule d'un élément

Description

void SplDoublyLinkedList::prev ( void )

Déplace l'itérateur à l'élément précédent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::push

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::pushAjoute un élément à la fin de la liste

Description

void SplDoublyLinkedList::push ( mixed $value )

Ajoute un élément à la fin de la liste.

Liste de paramètres

value

La valeur à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::rewind

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::rewindReplace l'itérateur au début

Description

void SplDoublyLinkedList::rewind ( void )

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::setIteratorModeDéfinit le mode d'itération

Description

void SplDoublyLinkedList::setIteratorMode ( int $mode )

Liste de paramètres

mode

Il y a 2 jeux de modes que l'on peut définir :

  • La direction de l'itérateur :
    • SplDoublyLinkedList::IT_MODE_LIFO (pile)
    • SplDoublyLinkedList::IT_MODE_FIFO (file d'attente)
  • Le comportement de l'itérateur :
    • SplDoublyLinkedList::IT_MODE_DELETE (les éléments sont effacés par l'itérateur)
    • SplDoublyLinkedList::IT_MODE_KEEP (les éléments sont traversés par l'itérateur)

Le mode par défaut est : SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLnkedList::IT_MODE_KEEP

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::shiftDéplace un noeud de la liste

Description

mixed SplDoublyLinkedList::shift ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud déplacé.



SplDoublyLinkedList::top

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::topRécupère le dernier noeud de la liste

Description

mixed SplDoublyLinkedList::top ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du dernier noeud.



SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::unshiftAjoute un élément à la liste

Description

void SplDoublyLinkedList::unshift ( mixed $value )

Ajoute un élément ayant pour valeur value au début de la liste.

Liste de paramètres

value

La valeur.

Valeurs de retour

Aucune valeur n'est retournée.



SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::validVérifie si la liste contient encore des noeuds

Description

bool SplDoublyLinkedList::valid ( void )

Vérifie si la liste contient encore des noeuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la liste contient encore des noeuds, FALSE sinon.


Sommaire



La classe SplStack

Introduction

La classe SplStack fournit l'interface de base pour implémenter une pile, basée sur une liste doublement chaînée.

Synopsis de la classe

SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Méthodes */
__construct ( void )
void setIteratorMode ( int $mode )
/* Méthodes héritées */
mixed SplDoublyLinkedList::key ( void )
void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
mixed SplDoublyLinkedList::pop ( void )
mixed SplDoublyLinkedList::top ( void )
}

SplStack::__construct

(PHP 5 >= 5.3.0)

SplStack::__constructConstruit une nouvelle pile, en utilisant une liste

Description

SplStack::__construct() ( void )

Construit une nouvelle pile vide.

Note:

Cette méthode définit automatiquement le mode de l'itérateur à SplDoublyLinkedList::IT_MODE_LIFO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplStack::__construct()

<?php
$q 
= new SplStack();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach (
$q as $elem)  {
 echo 
$elem."\n";
}
?>

L'exemple ci-dessus va afficher :

3
2
1



SplStack::setIteratorMode

(PHP 5 >= 5.3.0)

SplStack::setIteratorModeDéfinit le mode de l'itérateur

Description

void SplStack::setIteratorMode ( int $mode )

Liste de paramètres

mode

Il n'y a qu'un seul paramètre de l'itérateur que vous pouvez modifier.

  • Le comportement de l'itérateur :
    • SplDoublyLinkedList::IT_MODE_DELETE (Les éléments sont effacés par l'itérateur)
    • SplDoublyLinkedList::IT_MODE_KEEP (Les éléments sont traversés par l'itérateur)

Le mode par défaut est 0x2 : SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP

Avertissement

La direction de l'itérateur ne peut plus être modifiée pour SplStacks. Si vous tentez de le faire, une exception RuntimeException sera émise.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe SplQueue

Introduction

La classe SplQueue fournit l'interface d'implémentation d'une queue, basée sur une liste doublement chaînée.

Synopsis de la classe

SplQueue extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Méthodes */
__construct ( void )
mixed dequeue ( void )
void enqueue ( mixed $value )
void setIteratorMode ( int $mode )
/* Méthodes héritées */
mixed SplDoublyLinkedList::key ( void )
void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
mixed SplDoublyLinkedList::pop ( void )
mixed SplDoublyLinkedList::top ( void )
}

SplQueue::__construct

(PHP 5 >= 5.3.0)

SplQueue::__constructConstruit une nouvelle file d'attente, en utilisant une liste

Description

SplQueue::__construct() ( void )

Construit une nouvelle file d'attente vide.

Note:

Cette méthode définit automatiquement le mode de l'itérateur à SplDoublyLinkedList::IT_MODE_FIFO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplQueue::__construct()

<?php
$q 
= new SplQueue();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach (
$q as $elem)  {
 echo 
$elem."\n";
}
?>

L'exemple ci-dessus va afficher :

1
2
3

Exemple #2 Gestion des tâches avec SplQueue

<?php
$q 
= new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);

// ... on place quelques tâches dans la file d'attente ...

// On les traite
foreach ($q as $task) {
    
// ... traitement de la tâche $task ...

    // Ajout d'une nouvelle tâche dans la file d'attente
    
$q[] = $newTask;
    
// ...
}
?>



SplQueue::dequeue

(PHP 5 >= 5.3.0)

SplQueue::dequeueSupprime un noeud de la file d'attente

Description

mixed SplQueue::dequeue ( void )

Supprime la valeur value du haut de la file d'attente.

Note:

SplQueue::dequeue() est un alias de SplDoublyLinkedList::shift().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud supprimé.



SplQueue::enqueue

(PHP 5 >= 5.3.0)

SplQueue::enqueueAjoute un élément à la file d'attente

Description

void SplQueue::enqueue ( mixed $value )

Ajoute la valeur value à la fin de la file d'attente.

Note:

SplQueue::enqueue() est un alias de SplDoublyLinkedList::push().

Liste de paramètres

value

La valeur à ajouter à la file d'attente.

Valeurs de retour

Aucune valeur n'est retournée.



SplQueue::setIteratorMode

(PHP 5 >= 5.3.0)

SplQueue::setIteratorModeDéfinit le mode de l'itérateur

Description

void SplQueue::setIteratorMode ( int $mode )

Liste de paramètres

mode

Il n'y a qu'un paramètre de l'itérateur que vous pouvez modifier.

  • Le comportement de l'itérateur (l'un ou l'autre) :
    • SplDoublyLinkedList::IT_MODE_DELETE (Les éléments sont effacés par l'itérateur)
    • SplDoublyLinkedList::IT_MODE_KEEP (Les éléments sont traversés par l'itérateur)

Le mode par défaut est : SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Avertissement

La direction de l'itérateur ne peut pas être modifiée pour les objets SplQueues : c'est toujours SplDoublyLinkedList::IT_MODE_FIFO.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception RuntimeException lors du changement de direction de l'itération avec la constante SplDoublyLinkedList::IT_MODE_LIFO.


Sommaire



La classe SplHeap

Introduction

La classe SplHeap fournit l'interface pour une pile.

Synopsis de la classe

abstract SplHeap implements Iterator , Countable {
/* Méthodes */
__construct ( void )
abstract int compare ( mixed $value1 , mixed $value2 )
int count ( void )
mixed current ( void )
mixed extract ( void )
void insert ( mixed $value )
bool isEmpty ( void )
mixed key ( void )
void next ( void )
void recoverFromCorruption ( void )
void rewind ( void )
mixed top ( void )
bool valid ( void )
}

SplHeap::compare

(PHP 5 >= 5.3.0)

SplHeap::compareCompare deux éléments

Description

abstract int SplHeap::compare ( mixed $value1 , mixed $value2 )

Compare la valeur value1 et la valeur value2.

Avertissement

L'envoi d'exception dans SplHeap::compare() peut le corrompre et le placer dans un statut bloqué. Vous pouvez le débloquer en appelant la méthode SplHeap::recoverFromCorruption(). Cependant, des éléments peuvent ne pas avoir été placés correctement.

Liste de paramètres

value1

La valeur du premier noeud à comparer.

value2

La valeur du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si value1 est plus grand que value2, 0 s'ils sont égaux, ou un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même valeur dans un tas n'est pas recommandé. Cela peut conduire en une position arbitraire.



SplHeap::__construct

(PHP 5 >= 5.3.0)

SplHeap::__constructConstruit un nouveau tas vide

Description

SplHeap::__construct() ( void )

Construit un nouveau tas vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplHeap::count

(PHP 5 >= 5.3.0)

SplHeap::countCompte le nombre d'éléments dans le tas

Description

int SplHeap::count ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'éléments dans le tas.



SplHeap::current

(PHP 5 >= 5.3.0)

SplHeap::currentRetourne le noeud courant, pointé par l'itérateur

Description

mixed SplHeap::current ( void )

Récupère la structure des données du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud courant.



SplHeap::extract

(PHP 5 >= 5.3.0)

SplHeap::extractExtrait un noeud du haut du tas

Description

mixed SplHeap::extract ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud extrait.



SplHeap::insert

(PHP 5 >= 5.3.0)

SplHeap::insertInsère un élément dans le tas

Description

void SplHeap::insert ( mixed $value )

Insère la valeur value dans le tas.

Liste de paramètres

value

La valeur à insérer.

Valeurs de retour

Aucune valeur n'est retournée.



SplHeap::isEmpty

(PHP 5 >= 5.3.0)

SplHeap::isEmptyVérifie si le tas est vide

Description

bool SplHeap::isEmpty ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si le tas est vide, ou non.



SplHeap::key

(PHP 5 >= 5.3.0)

SplHeap::keyRetourne l'index du noeud courant

Description

mixed SplHeap::key ( void )

Retourne l'index du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du noeud courant.



SplHeap::next

(PHP 5 >= 5.3.0)

SplHeap::nextSe déplace au noeud suivant

Description

void SplHeap::next ( void )

Se déplace au noeud suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0)

SplHeap::recoverFromCorruptionRépare un tas

Description

void SplHeap::recoverFromCorruption ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplHeap::rewind

(PHP 5 >= 5.3.0)

SplHeap::rewindRevient au début de l'itérateur

Description

void SplHeap::rewind ( void )

Revient au début de l'itérateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplHeap::top

(PHP 5 >= 5.3.0)

SplHeap::topRécupère le premier noeud du tas

Description

mixed SplHeap::top ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du premier noeud.



SplHeap::valid

(PHP 5 >= 5.3.0)

SplHeap::validVérifie si le tas contient des noeuds

Description

bool SplHeap::valid ( void )

Vérifie si le tas contient encore des noeuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le tas contient encore des noeuds, FALSE sinon.


Sommaire



La classe SplMaxHeap

Introduction

La classe SplMaxHeap fournit l'interface pour une pile, et conserve le maximum sur le haut.

Synopsis de la classe

SplMaxHeap extends SplHeap implements Iterator , Countable {
/* Méthodes */
void compare ( mixed $value1 , mixed $value2 )
/* Méthodes héritées */
abstract int SplHeap::compare ( mixed $value1 , mixed $value2 )
int SplHeap::count ( void )
mixed SplHeap::current ( void )
mixed SplHeap::extract ( void )
void SplHeap::insert ( mixed $value )
bool SplHeap::isEmpty ( void )
mixed SplHeap::key ( void )
void SplHeap::next ( void )
void SplHeap::rewind ( void )
mixed SplHeap::top ( void )
bool SplHeap::valid ( void )
}

SplMaxHeap::compare

(PHP 5 >= 5.3.0)

SplMaxHeap::compareCompare deux éléments

Description

void SplMaxHeap::compare ( mixed $value1 , mixed $value2 )

Compare la valeur value1 avec la valeur value2.

Liste de paramètres

value1

La valeur du premier noeud à comparer.

value2

La valeur du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si la valeur value1 est plus grande que la valeur value2, 0 si les valeurs sont égales, et un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même valeur dans un tas n'est pas recommandé. Cela peut conduire en des positions arbitraires.


Sommaire



La classe SplMinHeap

Introduction

La classe SplMinHeap fournit une interface pour une pile, qui conserve le minimum sur le haut.

Synopsis de la classe

SplMinHeap extends SplHeap implements Iterator , Countable {
/* Méthodes */
void compare ( mixed $value1 , mixed $value2 )
/* Méthodes héritées */
abstract int SplHeap::compare ( mixed $value1 , mixed $value2 )
int SplHeap::count ( void )
mixed SplHeap::current ( void )
mixed SplHeap::extract ( void )
void SplHeap::insert ( mixed $value )
bool SplHeap::isEmpty ( void )
mixed SplHeap::key ( void )
void SplHeap::next ( void )
void SplHeap::rewind ( void )
mixed SplHeap::top ( void )
bool SplHeap::valid ( void )
}

SplMinHeap::compare

(PHP 5 >= 5.3.0)

SplMinHeap::compareCompare deux éléments

Description

void SplMinHeap::compare ( mixed $value1 , mixed $value2 )

Compare la valeur value1 avec la valeur value2.

Liste de paramètres

value1

La valeur du premier noeud à comparer.

value2

La valeur du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si la valeur value1 est plus grande que la valeur value2, 0 si les valeurs sont égales, et un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même valeur dans un tas n'est pas recommandé. Cela peut conduire en des positions arbitraires.


Sommaire



La classe SplPriorityQueue

Introduction

La classe SplPriorityQueue fournit les fonctionnalités d'une queue à priorités, implémentées avec une pile.

Synopsis de la classe

SplPriorityQueue implements Iterator , Countable {
/* Méthodes */
__construct ( void )
int compare ( mixed $priority1 , mixed $priority2 )
int count ( void )
mixed current ( void )
mixed extract ( void )
void insert ( mixed $value , mixed $priority )
bool isEmpty ( void )
mixed key ( void )
void next ( void )
void recoverFromCorruption ( void )
void rewind ( void )
void setExtractFlags ( int $flags )
mixed top ( void )
bool valid ( void )
}

SplPriorityQueue::compare

(PHP 5 >= 5.3.0)

SplPriorityQueue::compareCompare deux priorités

Description

int SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 )

Compare la valeur priority1 avec la valeur priority2.

Liste de paramètres

priority1

La priorité du premier noeud à comparer.

priority2

La priorité du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si la valeur priority1 est plus grande que la valeur priority2, 0 si les valeurs sont égales, et un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même priorité fera qu'ils n'auront pas d'ordre particulier.



SplPriorityQueue::__construct

(PHP 5 >= 5.3.0)

SplPriorityQueue::__constructConstruit une nouvelle file d'attente vide

Description

SplPriorityQueue::__construct() ( void )

Construit une nouvelle file d'attente vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplPriorityQueue::count

(PHP 5 >= 5.3.0)

SplPriorityQueue::countCompte le nombre d'éléments dans la file d'attente

Description

int SplPriorityQueue::count ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'éléments dans la file d'attente.



SplPriorityQueue::current

(PHP 5 >= 5.3.0)

SplPriorityQueue::currentRetourne le noeud courant, pointé par l'itérateur

Description

mixed SplPriorityQueue::current ( void )

Récupère le noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du noeud courant, suivant le drapeau d'extraction.



SplPriorityQueue::extract

(PHP 5 >= 5.3.0)

SplPriorityQueue::extractExtrait un noeud depuis le haut du tas

Description

mixed SplPriorityQueue::extract ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du noeud extrait, suivant le drapeau d'extraction.



SplPriorityQueue::insert

(PHP 5 >= 5.3.0)

SplPriorityQueue::insertInsère un élément dans la file d'attente

Description

void SplPriorityQueue::insert ( mixed $value , mixed $priority )

Insère la valeur value avec la priorité priority dans la file d'attente.

Liste de paramètres

value

La valeur à insérer.

priority

La priorité associée.

Valeurs de retour

Aucune valeur n'est retournée.



SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0)

SplPriorityQueue::isEmptyVérifie si la file est vide

Description

bool SplPriorityQueue::isEmpty ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si la file d'attente est vide, ou non.



SplPriorityQueue::key

(PHP 5 >= 5.3.0)

SplPriorityQueue::keyRetourne l'index du noeud courant

Description

mixed SplPriorityQueue::key ( void )

Retourne l'index du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du noeud courant.



SplPriorityQueue::next

(PHP 5 >= 5.3.0)

SplPriorityQueue::nextSe déplace sur le prochain noeud

Description

void SplPriorityQueue::next ( void )

Se déplace sur le prochain noeud.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0)

SplPriorityQueue::recoverFromCorruptionRépare une file d'attente

Description

void SplPriorityQueue::recoverFromCorruption ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplPriorityQueue::rewind

(PHP 5 >= 5.3.0)

SplPriorityQueue::rewindRevient au début de l'itérateur

Description

void SplPriorityQueue::rewind ( void )

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0)

SplPriorityQueue::setExtractFlagsDéfinit le mode d'extraction

Description

void SplPriorityQueue::setExtractFlags ( int $flags )

Liste de paramètres

flags

Définit ce qui sera extrait par la fonction SplPriorityQueue::current(), SplPriorityQueue::top() et SplPriorityQueue::extract().

  • SplPriorityQueue::EXTR_DATA (0x00000001): Extrait les données
  • SplPriorityQueue::EXTR_PRIORITY (0x00000002): Extrait la priorité
  • SplPriorityQueue::EXTR_BOTH (0x00000003): Extrait un tableau contenant les deux

Le mode par défaut vaut : SplPriorityQueue::EXTR_DATA.

Valeurs de retour

Aucune valeur n'est retournée.



SplPriorityQueue::top

(PHP 5 >= 5.3.0)

SplPriorityQueue::topRécupère le noeud du haut de la file d'attente

Description

mixed SplPriorityQueue::top ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du premier noeud, suivant le drapeau d'extraction.



SplPriorityQueue::valid

(PHP 5 >= 5.3.0)

SplPriorityQueue::validVérifie si la file d'attente contient encore des noeuds

Description

bool SplPriorityQueue::valid ( void )

Vérifie si la file d'attente contient encore des noeuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la file d'attente contient encore des noeuds, FALSE sinon.


Sommaire



La classe SplFixedArray

Introduction

La classe SplFixedArray fournit les fonctionnalités principales d'un tableau. La différence majeure entre un objet SplFixedArray et un tableau standard de PHP est que SplFixedArray est de taille fixe, et n'utilise que des entier dans ses index. L'avantage est alors qu'il est plus rapide que les tableaux.

Synopsis de la classe

SplFixedArray implements Iterator , ArrayAccess , Countable {
/* Méthodes */
public __construct ([ int $size = 0 ] )
public int count ( void )
public mixed current ( void )
public static SplFixedArray fromArray ( array $array [, bool $save_indexes = true ] )
public int getSize ( void )
public int key ( void )
public void next ( void )
public bool offsetExists ( int $index )
public mixed offsetGet ( int $index )
public void offsetSet ( int $index , mixed $newval )
public void offsetUnset ( int $index )
public void rewind ( void )
public int setSize ( int $size )
public array toArray ( void )
public bool valid ( void )
}

Exemples

Exemple #1 Exemple avec SplFixedArray

<?php
// Initialisation d'un tableau avec une taille fixe
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

var_dump($array[0]); // NULL
var_dump($array[1]); // int(2)

var_dump($array["4"]); // string(3) "foo"

// Augmentation de la taille à 10
$array->setSize(10);

$array[9] = "asdf";

// Réduction de taille de 2
$array->setSize(2);

// Les lignes suivantes émettent une RuntimeException : index invalide ou hors de l'intervalle
try {
    
var_dump($array["non-numeric"]);
} catch(
RuntimeException $re) {
    echo 
"RuntimeException : ".$re->getMessage()."\n";
}

try {
    
var_dump($array[-1]);
} catch(
RuntimeException $re) {
    echo 
"RuntimeException : ".$re->getMessage()."\n";
}

try {
    
var_dump($array[5]);
} catch(
RuntimeException $re) {
    echo 
"RuntimeException : ".$re->getMessage()."\n";
}
?>

L'exemple ci-dessus va afficher :

NULL
int(2)
string(3) "foo"
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range


SplFixedArray::__construct

(PHP 5 >= 5.3.0)

SplFixedArray::__constructConstruit un nouveau SplFixedArray

Description

public SplFixedArray::__construct() ([ int $size = 0 ] )

Construit un nouvel objet SplFixedArray, vide.

Liste de paramètres

size

La taille du tableau à taille fixe.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFixedArray::__construct()

<?php
$array 
= new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

foreach(
$array as $v) {
  
var_dump($v);
}
?>

L'exemple ci-dessus va afficher :

NULL
int(2)
NULL
NULL
string(3) "foo"



SplFixedArray::count

(PHP 5 >= 5.3.0)

SplFixedArray::countRetourne la taille du tableau à taille fixe

Description

public int SplFixedArray::count ( void )

Retourne la taille du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du tableau à taille fixe.



SplFixedArray::current

(PHP 5 >= 5.3.0)

SplFixedArray::currentLit l'élément courant du tableau à taille fixe

Description

public mixed SplFixedArray::current ( void )

Lit l'élément courant du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.



SplFixedArray::fromArray

(PHP 5 >= 5.3.0)

SplFixedArray::fromArrayImporte un tableau PHP dans un tableau à taille fixe

Description

public static SplFixedArray SplFixedArray::fromArray ( array $array [, bool $save_indexes = true ] )

Importe le tableau PHP array dans un tableau à taille fixe.

Liste de paramètres

array

La tableau à importer.

save_indexes

Tente de préserver les index numérique du tableau original.

Valeurs de retour

Retourne un objet SplFixedArray avec le même contenu que le tableau passé en argument.

Exemples

Exemple #1 Exemple avec SplFixedArray::fromArray()

<?php
$fa 
SplFixedArray::fromArray(array(=> 1=> 2=> 3));

var_dump($fa);

$fa SplFixedArray::fromArray(array(=> 1=> 2=> 3), false);

var_dump($fa);
?>

L'exemple ci-dessus va afficher :

object(SplFixedArray)#1 (4) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  NULL
  [3]=>
  int(3)
}
object(SplFixedArray)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}



SplFixedArray::getSize

(PHP 5 >= 5.3.0)

SplFixedArray::getSizeLit la taille du tableau à taille fixe

Description

public int SplFixedArray::getSize ( void )

Lit la taille du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du tableau à taille fixe.

Exemples

Exemple #1 Exemple avec SplFixedArray::getSize()

<?php
   $array 
= new SplFixedArray(5);
   echo 
$array->getSize()."\n";
   
$array->setSize(10);
   echo 
$array->getSize()."\n";
?>

L'exemple ci-dessus va afficher :

5
10



SplFixedArray::key

(PHP 5 >= 5.3.0)

SplFixedArray::keyRetourne l'index de la position courante

Description

public int SplFixedArray::key ( void )

Retourne l'index de la position courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index de la position courante.



SplFixedArray::next

(PHP 5 >= 5.3.0)

SplFixedArray::nextDéplace l'itérateur à l'élément suivant

Description

public void SplFixedArray::next ( void )

Déplace l'itérateur à l'élément suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplFixedArray::offsetExists

(PHP 5 >= 5.3.0)

SplFixedArray::offsetExistsVérifie si l'index demandé existe

Description

public bool SplFixedArray::offsetExists ( int $index )

Vérifie si l'index index existe.

Liste de paramètres

index

L'index à vérifier.

Valeurs de retour

TRUE si l'index index existe, sinon FALSE



SplFixedArray::offsetGet

(PHP 5 >= 5.3.0)

SplFixedArray::offsetGetRetourne la valeur à l'index donné

Description

public mixed SplFixedArray::offsetGet ( int $index )

Retourne la valeur à l'index index.

Liste de paramètres

index

L'index de la valeur demandée.

Valeurs de retour

La valeur spécifiée à l'index index.



SplFixedArray::offsetSet

(PHP 5 >= 5.3.0)

SplFixedArray::offsetSetAffecte une valeur à un index donné

Description

public void SplFixedArray::offsetSet ( int $index , mixed $newval )

Affecte la valeur newval à l'index index.

Liste de paramètres

index

L'index à affecter.

newval

La valeur à assigner à l'index index.

Valeurs de retour

Aucune valeur n'est retournée.



SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0)

SplFixedArray::offsetUnsetDétruit l'élément à un index donné

Description

public void SplFixedArray::offsetUnset ( int $index )

Détruit l'élément à l'index index.

Liste de paramètres

index

L'index de l'élément à détruire.

Valeurs de retour

Aucune valeur n'est retournée.



SplFixedArray::rewind

(PHP 5 >= 5.3.0)

SplFixedArray::rewindRemet l'itérateur au début du tableau à taille fixe

Description

public void SplFixedArray::rewind ( void )

Remet l'itérateur au début du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



SplFixedArray::setSize

(PHP 5 >= 5.3.0)

SplFixedArray::setSizeChange la taille d'un tableau à taille fixe

Description

public int SplFixedArray::setSize ( int $size )

Change la taille d'un tableau à la taille fixe size.

Liste de paramètres

size

La nouvelle taille du tableau.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFixedArray::setSize()

<?php
   $array 
= new SplFixedArray(5);
   echo 
$array->getSize()."\n";
   
$array->setSize(10);
   echo 
$array->getSize()."\n";
?>

L'exemple ci-dessus va afficher :

5
10



SplFixedArray::toArray

(PHP 5 >= 5.3.0)

SplFixedArray::toArrayRetourne un tableau PHP à partir d'un tableau à taille fixe

Description

public array SplFixedArray::toArray ( void )

Retourne un tableau PHP à partir d'un tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau PHP à partir d'un tableau à taille fixe.

Exemples

Exemple #1 Exemple avec SplFixedArray::toArray()

<?php
$fa 
= new SplFixedArray(3);
$fa[0] = 0;
$fa[2] = 2;
var_dump($fa->toArray());
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(0)
  [1]=>
  NULL
  [2]=>
  int(2)
}



SplFixedArray::valid

(PHP 5 >= 5.3.0)

SplFixedArray::validVérifie si le tableau contient encore un élément

Description

public bool SplFixedArray::valid ( void )

Vérifie si le tableau contient encore un élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le tableau contient encore un élément, FALSE sinon.


Sommaire



La classe SplObjectStorage

Introduction

La classe SplObjectStorage fournit une carte d'objets ou de données, ou encore, en ignorant les index, un ensemble d'objets. Ce double objectif est utile dans de nombreuses situations, où il faut identifier de manière unique des objets.

Synopsis de la classe

SplObjectStorage implements Countable , Iterator , Traversable , Serializable , ArrayAccess {
/* Méthodes */
public void addAll ( SplObjectStorage $storage )
public void attach ( object $object [, mixed $data = NULL ] )
public bool contains ( object $object )
public int count ( void )
public object current ( void )
public void detach ( object $object )
public mixed getInfo ( void )
public int key ( void )
public void next ( void )
public bool offsetExists ( object $object )
public mixed offsetGet ( object $object )
public void offsetSet ( object $object [, mixed $data = NULL ] )
public void offsetUnset ( object $object )
public void removeAll ( SplObjectStorage $storage )
public void removeAllExcept ( SplObjectStorage $storage )
public void rewind ( void )
public string serialize ( void )
public void setInfo ( mixed $data )
public void unserialize ( string $serialized )
public bool valid ( void )
}

Exemples

Exemple #1 Exemple avec SplObjectStorage, sous forme d'ensemble d'objets

<?php
// Un ensemble d'objets
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s->attach($o1);
$s->attach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));

$s->detach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Exemple #2 Exemple avec SplObjectStorage, sous forme de carte

<?php
// Une carte d'objets
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s[$o1] = "data for object 1";
$s[$o2] = array(1,2,3);

if (isset(
$s[$o2])) {
    
var_dump($s[$o2]);
}
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


SplObjectStorage::addAll

(PHP 5 >= 5.3.0)

SplObjectStorage::addAllAjoute tous les objets d'un autre stockage

Description

public void SplObjectStorage::addAll ( SplObjectStorage $storage )

Ajoute tous les objets de l'ensemble storage.

Liste de paramètres

storage

Le stockage à importer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::addAll()

<?php
$o 
= new StdClass;
$a = new SplObjectStorage();
$a[$o] = "hello";

$b = new SplObjectStorage();
$b->addAll($a);
echo 
$b[$o]."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

hello

Voir aussi



SplObjectStorage::attach

(PHP 5 >= 5.1.0)

SplObjectStorage::attachAjoute un objet dans le stockage

Description

public void SplObjectStorage::attach ( object $object [, mixed $data = NULL ] )

Ajoute un objet dans le stockage, et lui associe éventuellement des données.

Liste de paramètres

object

L'objet à ajouter.

data

Les données à associer avec l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::attach()

<?php
$o1 
= new StdClass;
$o2 = new StdClass;
$s = new SplObjectStorage();
$s->attach($o1); // Similaire à $s[$o1] = NULL;
$s->attach($o2"hello"); // Similaire à $s[$o2] = "hello";

var_dump($s[$o1]);
var_dump($s[$o2]);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

NULL
string(5) "hello"

Historique

Version Description
5.3.0 Ajout du paramètre data.

Voir aussi



SplObjectStorage::contains

(PHP 5 >= 5.1.0)

SplObjectStorage::containsVérifie si un stockage contient un objet

Description

public bool SplObjectStorage::contains ( object $object )

Vérifie si le stockage contient l'objet object.

Liste de paramètres

object

L'objet à rechercher.

Valeurs de retour

Retourne TRUE si l'objet est dans le stockage, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplObjectStorage::contains()

<?php
$o1 
= new StdClass;
$o2 = new StdClass;

$s = new SplObjectStorage();

$s[$o1] = "hello";
var_dump($s->contains($o1));
var_dump($s->contains($o2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)

Voir aussi



SplObjectStorage::count

(PHP 5 >= 5.1.0)

SplObjectStorage::countRetourne le nombre d'objets dans le stockage

Description

public int SplObjectStorage::count ( void )

Compte le nombre d'objets dans le stockage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'objets dans le stockage.

Exemples

Exemple #1 Exemple avec SplObjectStorage::count()

<?php
$s 
= new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);
$s->attach($o2);
$s->attach($o1);
var_dump($s->count());
var_dump(count($s));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(2)
int(2)

Voir aussi



SplObjectStorage::current

(PHP 5 >= 5.1.0)

SplObjectStorage::currentRetourne l'objet courant

Description

public object SplObjectStorage::current ( void )

Retourne l'objet courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet à la position courante.

Exemples

Exemple #1 Exemple avec SplObjectStorage::current()

<?php
$s 
= new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1"d1");
$s->attach($o2"d2");

$s->rewind();
while(
$s->valid()) {
    
$index  $s->key();
    
$object $s->current(); // similar to current($s)
    
$data   $s->getInfo();

    
var_dump($object);
    
var_dump($data);
    
$s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Voir aussi



SplObjectStorage::detach

(PHP 5 >= 5.1.0)

SplObjectStorage::detachRetire un objet du stockage

Description

public void SplObjectStorage::detach ( object $object )

Retire un objet du stockage.

Liste de paramètres

object

L'objet à retirer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::detach()

<?php
$o 
= new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->detach($o);
var_dump(count($s));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(0)

Voir aussi



SplObjectStorage::getInfo

(PHP 5 >= 5.3.0)

SplObjectStorage::getInfoRetourne les données associés à l'élément en cours

Description

public mixed SplObjectStorage::getInfo ( void )

Retourne les données, ou informations, associées avec l'objet actuellement pointé dans l'itérateur courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données associées avec la position courante.

Exemples

Exemple #1 Exemple avec SplObjectStorage::getInfo()

<?php
$s 
= new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1"d1");
$s->attach($o2"d2");

$s->rewind();
while(
$s->valid()) {
    
$index  $s->key();
    
$object $s->current(); // similaire à current($s)
    
$data   $s->getInfo();

    
var_dump($object);
    
var_dump($data);
    
$s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Voir aussi



SplObjectStorage::key

(PHP 5 >= 5.1.0)

SplObjectStorage::keyRetourne l'index de l'objet courant

Description

public int SplObjectStorage::key ( void )

Retourne l'index de l'objet courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index de la position courante dans l'itérateur.

Exemples

Exemple #1 Exemple avec SplObjectStorage::key()

<?php
$s 
= new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1"d1");
$s->attach($o2"d2");

$s->rewind();
while(
$s->valid()) {
    
$index  $s->key();
    
$object $s->current(); // similaire à current($s)

    
var_dump($index);
    
var_dump($object);
    
$s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Voir aussi



SplObjectStorage::next

(PHP 5 >= 5.1.0)

SplObjectStorage::nextPasse au prochain élément

Description

public void SplObjectStorage::next ( void )

Avance l'itérateur d'un élément dans le stockage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::next()

<?php
$s 
= new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1"d1");
$s->attach($o2"d2");

$s->rewind();
while(
$s->valid()) {
    
$index  $s->key();
    
$object $s->current(); // similaire à current($s)

    
var_dump($index);
    
var_dump($object);
    
$s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Voir aussi



SplObjectStorage::offsetExists

(PHP 5 >= 5.3.0)

SplObjectStorage::offsetExistsVérifie si un objet existe dans le stockage

Description

public bool SplObjectStorage::offsetExists ( object $object )

Vérifie si un objet existe dans un stockage.

Liste de paramètres

object

L'objet à rechercher.

Valeurs de retour

Retourne TRUE si l'objet existe, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetExists()

<?php
$s 
= new SplObjectStorage;
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);

var_dump($s->offsetExists($o1)); // Similar to isset($s[$o1])
var_dump($s->offsetExists($o2)); // Similar to isset($s[$o2])
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)

Voir aussi



SplObjectStorage::offsetGet

(PHP 5 >= 5.3.0)

SplObjectStorage::offsetGetRetourne les données associées à un objet

Description

public mixed SplObjectStorage::offsetGet ( object $object )

Retourne les données associées à un objet dans le stockage.

Liste de paramètres

object

L'objet à rechercher.

Valeurs de retour

Les données précédemment associées avec l'objet.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetGet()

<?php
$s 
= new SplObjectStorage;

$o1 = new StdClass;
$o2 = new StdClass;

$s[$o1] = "hello";
$s->attach($o2);


var_dump($s->offsetGet($o1)); // Similaire à $s[$o1]
var_dump($s->offsetGet($o2)); // Similaire à $s[$o2]
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "hello"
NULL

Voir aussi



SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0)

SplObjectStorage::offsetSetAssocie des données à un stockage

Description

public void SplObjectStorage::offsetSet ( object $object [, mixed $data = NULL ] )

Associe des données à un objet du stockage.

Note:

SplObjectStorage::offsetSet() est un alias de SplObjectStorage::attach().

Liste de paramètres

object

L'objet à qui il faut associer les données.

data

Les données à associer avec l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetSet()

<?php
$s 
= new SplObjectStorage;

$o1 = new StdClass;

$s->offsetSet($o1"hello"); // Similaire à $s[$o1] = "hello";

var_dump($s[$o1]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "hello"

Voir aussi



SplObjectStorage::offsetUnset

(PHP 5 >= 5.3.0)

SplObjectStorage::offsetUnsetRetire un objet du stockage

Description

public void SplObjectStorage::offsetUnset ( object $object )

Retire un objet du stockage.

Note:

SplObjectStorage::offsetUnset() est un alias de SplObjectStorage::detach().

Liste de paramètres

object

L'objet à retirer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetUnset()

<?php
$o 
= new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->offsetUnset($o); // similaire à unset($s[$o])
var_dump(count($s));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(0)

Voir aussi



SplObjectStorage::removeAll

(PHP 5 >= 5.3.0)

SplObjectStorage::removeAllRetire les objets d'un stockage qui appartienne à un autre stockage

Description

public void SplObjectStorage::removeAll ( SplObjectStorage $storage )

Retire les objets d'un stockage qui appartienne à un autre stockage.

Liste de paramètres

storage

Le stockage contenant les éléments à retirer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::removeAll()

<?php
$o1 
= new StdClass;
$o2 = new StdClass;
$a = new SplObjectStorage();
$a[$o1] = "foo";

$b = new SplObjectStorage();
$b[$o1] = "bar";
$b[$o2] = "gee";

var_dump(count($b));
$b->removeAll($a);
var_dump(count($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(2)
int(1)

Voir aussi



SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6)

SplObjectStorage::removeAllExceptSupprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages

Description

public void SplObjectStorage::removeAllExcept ( SplObjectStorage $storage )

Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages.

Liste de paramètres

storage

Le stockage contenant les éléments à ne pas supprimer du stockage courant.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::removeAllExcept()

<?php
$a 
= (object) 'a'
$b = (object) 'b'
$c = (object) 'c'

$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);

$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);

$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)



SplObjectStorage::rewind

(PHP 5 >= 5.1.0)

SplObjectStorage::rewindRemet l'itérateur au début

Description

public void SplObjectStorage::rewind ( void )

Remet l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::rewind()

<?php
$s 
= new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1"d1");
$s->attach($o2"d2");

$s->rewind();
while(
$s->valid()) {
    
$index  $s->key();
    
$object $s->current(); // similaire à current($s)
    
$data   $s->getInfo();

    
var_dump($object);
    
var_dump($data);
    
$s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(0)

Voir aussi



SplObjectStorage::serialize

(PHP 5 >= 5.2.2)

SplObjectStorage::serializeLinéarise un stockage

Description

public string SplObjectStorage::serialize ( void )

Retourne une chaîne représentant un stockage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères représentant le stockage.

Exemples

Exemple #1 Exemple avec SplObjectStorage::serialize()

<?php
$s 
= new SplObjectStorage;
$o = new StdClass;
$s[$o] = "data";

echo 
$s->serialize()."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

x:i:1;O:8:"stdClass":0:{},s:4:"data";;m:a:0:{}

Voir aussi



SplObjectStorage::setInfo

(PHP 5 >= 5.3.0)

SplObjectStorage::setInfoModifie les données associée à l'élément courant

Description

public void SplObjectStorage::setInfo ( mixed $data )

Associe des données, ou informations, à l'objet courant de l'itérateur.

Liste de paramètres

data

Les données à associer avec la position courante de l'itérateur.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::setInfo()

<?php
$s 
= new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1"d1");
$s->attach($o2"d2");

$s->rewind();
while(
$s->valid()) {
    
$s->setInfo("new");
    
$s->next();
}
var_dump($s[$o1]);
var_dump($s[$o2]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(3) "new"
string(3) "new"

Voir aussi



SplObjectStorage::unserialize

(PHP 5 >= 5.2.2)

SplObjectStorage::unserializeDélinéarise un stockage à partir de sa forme en chaîne

Description

public void SplObjectStorage::unserialize ( string $serialized )

Délinéarise un stockage à partir de sa forme en chaîne.

Liste de paramètres

serialized

La représentation linéarisée d'un stockage.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::unserialize()

<?php
$s1 
= new SplObjectStorage;
$s2 = new SplObjectStorage;
$o = new StdClass;
$s1[$o] = "data";

$s2->unserialize($s1->serialize());

var_dump(count($s2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)

Voir aussi



SplObjectStorage::valid

(PHP 5 >= 5.1.0)

SplObjectStorage::validVérifie si l'élément courant est valide

Description

public bool SplObjectStorage::valid ( void )

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'élément courant est valide, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplObjectStorage::valid()

<?php
$s 
= new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1"d1");
$s->attach($o2"d2");

$s->rewind();
while(
$s->valid()) {
    echo 
$s->key()."\n";
    
$s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0
1

Voir aussi


Sommaire




Itérateurs

Sommaire

SPL fournit un jeu d'itérateurs pour gérer les objets.

Liste des itérateurs non documentés


La classe AppendIterator

Introduction

Itère sur plusieurs collections.

Synopsis de la classe

AppendIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator {
/* Méthodes */
public void append ( Iterator $iterator )
__construct ( void )
public void current ( void )
public void getArrayIterator ( void )
public void getInnerIterator ( void )
public void getIteratorIndex ( void )
public void key ( void )
public void next ( void )
public void rewind ( void )
public void valid ( void )
/* Méthodes héritées */
public void IteratorIterator::current ( void )
public void IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

AppendIterator::append

(PHP 5 >= 5.1.0)

AppendIterator::appendAjoute un itérateur à la fin

Description

public void AppendIterator::append ( Iterator $iterator )

Ajoute un itérateur à la fin.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



AppendIterator::__construct

(PHP 5 >= 5.1.0)

AppendIterator::__constructConstruit un objet AppendIterator

Description

AppendIterator::__construct ( void )

Construit un objet AppendIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



AppendIterator::current

(PHP 5 >= 5.1.0)

AppendIterator::currentLit la valeur courante

Description

public void AppendIterator::current ( void )

Lit la valeur courante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur courante si elle est valide, et NULL sinon.

Voir aussi



AppendIterator::getArrayIterator

(PHP 5 >= 5.1.0)

AppendIterator::getArrayIteratorLa méthode AppendIterator::getArrayIterator()

Description

public void AppendIterator::getArrayIterator ( void )

La méthode AppendIterator::getArrayIterator().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi



AppendIterator::getInnerIterator

(PHP 5 >= 5.1.0)

AppendIterator::getInnerIteratorLit l'itérateur interne

Description

public void AppendIterator::getInnerIterator ( void )

Lit l'itérateur interne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne courant.

Voir aussi



AppendIterator::getIteratorIndex

(PHP 5 >= 5.1.0)

AppendIterator::getIteratorIndexLit l'index d'un itérateur

Description

public void AppendIterator::getIteratorIndex ( void )

Lit l'index d'un itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index des itérateurs.

Voir aussi



AppendIterator::key

(PHP 5 >= 5.1.0)

AppendIterator::keyLit la clé courante

Description

public void AppendIterator::key ( void )

Lit la clé courante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante si c'est possible, et NULL sinon.

Voir aussi



AppendIterator::next

(PHP 5 >= 5.1.0)

AppendIterator::nextPasse à l'élément suivant

Description

public void AppendIterator::next ( void )

Passe à l'élément suivant. Si le prochain élément est un autre itérateur, alors il remet cet itérateur à zéro.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



AppendIterator::rewind

(PHP 5 >= 5.1.0)

AppendIterator::rewindRemet l'itérateur au début

Description

public void AppendIterator::rewind ( void )

Remet l'itérateur au premier élément.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



AppendIterator::valid

(PHP 5 >= 5.1.0)

AppendIterator::validVérifie la validité de l'élément courant

Description

public void AppendIterator::valid ( void )

Vérifie la validité de l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire



La classe ArrayIterator

Introduction

Cet itérateur permet de réinitialiser et de modifier les valeurs et les clés lors de l'itération de tableaux et d'objets.

Lorsque vous voulez passer en revue le même tableau plusieurs fois, vous devez instancier ArrayObject et le laisser créer les objets ArrayIterator qui s'y réfère, soit en utilisant l'instruction foreach, soit en appelant la méthode getIterator()() manuellement.

Synopsis de la classe

ArrayIterator implements Iterator , Traversable , ArrayAccess , SeekableIterator , Countable {
/* Méthodes */
public void append ( mixed $value )
public void asort ( void )
__construct ( mixed $array )
public int count ( void )
mixed current ( void )
public array getArrayCopy ( void )
public void getFlags ( void )
mixed key ( void )
public void ksort ( void )
public void natcasesort ( void )
public void natsort ( void )
void next ( void )
public void offsetExists ( string $index )
public mixed offsetGet ( string $index )
public void offsetSet ( string $index , string $newval )
public void offsetUnset ( string $index )
void rewind ( void )
void seek ( int $position )
public string serialize ( void )
public void setFlags ( string $flags )
public void uasort ( string $cmp_function )
public void uksort ( string $cmp_function )
public string unserialize ( string $serialized )
bool valid ( void )
}

ArrayIterator::append

(PHP 5 >= 5.0.0)

ArrayIterator::appendAjoute un élément

Description

public void ArrayIterator::append ( mixed $value )

Ajoute une valeur comme dernier élément.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

value

La valeur à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Cette méthode ne peut être appelée lorsque ArrayIterator se réfère à un objet.

Voir aussi



ArrayIterator::asort

(PHP 5 >= 5.2.0)

ArrayIterator::asortTrie un tableau par les valeurs

Description

public void ArrayIterator::asort ( void )

Trie un tableau par les valeurs.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::__construct

(PHP 5 >= 5.0.0)

ArrayIterator::__constructConstruit un ArrayIterator

Description

ArrayIterator::__construct ( mixed $array )

Construit un objet ArrayIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

array

Le tableau ou l'objet à itérer.

Valeurs de retour

Un objet ArrayIterator.

Erreurs / Exceptions

ArrayIterator::__construct() émet une exception InvalidArgumentException si une variable autre qu'un tableau ou un objet est fourni.

Voir aussi



ArrayIterator::count

(PHP 5 >= 5.0.0)

ArrayIterator::countCompte les éléments

Description

public int ArrayIterator::count ( void )

Récupère le nombre d'éléments d'un tableau ou le nombre de propriétés publiques d'un objet..

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'éléments ou d'attributs publics du array associatif ou de l'object, respectivement.

Voir aussi



ArrayIterator::current

(PHP 5 >= 5.0.0)

ArrayIterator::currentRetourne l'entrée courante du tableau

Description

mixed ArrayIterator::current ( void )

Retourne l'entrée courante du tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'entrée courante du tableau.

Exemples

Exemple #1 Exemple avec ArrayIterator::current()

<?php
$array 
= array('1' => 'one',
               
'2' => 'two',
               
'3' => 'three');

$arrayobject = new ArrayObject($array);

for(
$iterator $arrayobject->getIterator();
    
$iterator->valid();
    
$iterator->next()) {

    echo 
$iterator->key() . ' => ' $iterator->current() . "\n";
}
?>

L'exemple ci-dessus va afficher :

1 => one
2 => two
3 => three



ArrayIterator::getArrayCopy

(PHP 5 >= 5.0.0)

ArrayIterator::getArrayCopyRécupère la copie d'un tableau

Description

public array ArrayIterator::getArrayCopy ( void )

Récupère la copie d'un tableau.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une copie d'un tableau, ou un tableau de propriétés publiques si if ArrayIterator se réfère à un objet.

Voir aussi



ArrayIterator::getFlags

(PHP 5 >= 5.1.0)

ArrayIterator::getFlagsRécupère un comportement

Description

public void ArrayIterator::getFlags ( void )

Récupère le comportement courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le comportement courant.

Voir aussi



ArrayIterator::key

(PHP 5 >= 5.0.0)

ArrayIterator::keyRetourne la clé courante du tableau

Description

mixed ArrayIterator::key ( void )

Retourne la clé courante du tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante du tableau.

Exemples

Exemple #1 Exemple avec ArrayIterator::key()

<?php
$array 
= array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator $arrayobject->getIterator();

echo 
$iterator->key(); //key
?>



ArrayIterator::ksort

(PHP 5 >= 5.2.0)

ArrayIterator::ksortTrie un tableau par les clés

Description

public void ArrayIterator::ksort ( void )

Trie un tableau par les clés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::natcasesort

(PHP 5 >= 5.2.0)

ArrayIterator::natcasesortTrie naturellement un tableau, en ne tenant pas compte de la casse

Description

public void ArrayIterator::natcasesort ( void )

Trie les entrées par les valeurs, en utilisant un algorithme insensible à la casse d'ordre naturel.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::natsort

(PHP 5 >= 5.2.0)

ArrayIterator::natsortTrie naturellement un tableau

Description

public void ArrayIterator::natsort ( void )

Trie les entrées par les valeurs, en utilisant l'algorithme d'ordre naturel.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::next

(PHP 5 >= 5.0.0)

ArrayIterator::nextSe déplace vers la prochaine entrée

Description

void ArrayIterator::next ( void )

Se déplace vers la prochaine entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayIterator::next()

<?php
$arrayobject 
= new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator $arrayobject->getIterator();

while(
$iterator->valid()) {
    echo 
$iterator->key() . ' => ' $iterator->current() . "\n";

    
$iterator->next();
}
?>

L'exemple ci-dessus va afficher :

0 => zero
1 => one



ArrayIterator::offsetExists

(PHP 5 >= 5.0.0)

ArrayIterator::offsetExistsVérifie si une position existe

Description

public void ArrayIterator::offsetExists ( string $index )

Vérifie si une position existe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

La position à vérifier.

Valeurs de retour

TRUE si la position existe, FALSE sinon.

Voir aussi



ArrayIterator::offsetGet

(PHP 5 >= 5.0.0)

ArrayIterator::offsetGetRécupère la valeur pour une position

Description

public mixed ArrayIterator::offsetGet ( string $index )

Récupère la valeur pour une position donnée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

La position dont on doit récupérer la valeur.

Valeurs de retour

La valeur à la position index.

Voir aussi



ArrayIterator::offsetSet

(PHP 5 >= 5.0.0)

ArrayIterator::offsetSetDéfinit la valeur d'une position

Description

public void ArrayIterator::offsetSet ( string $index , string $newval )

Définit la valeur pour une position donnée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index à définir.

newval

La nouvelle valeur à stocker à l'index donné.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::offsetUnset

(PHP 5 >= 5.0.0)

ArrayIterator::offsetUnsetEfface la valeur d'une position

Description

public void ArrayIterator::offsetUnset ( string $index )

Efface la valeur d'une position.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

La position à effacer.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::rewind

(PHP 5 >= 5.0.0)

ArrayIterator::rewindRevient à la position initiale

Description

void ArrayIterator::rewind ( void )

Revient à la position initiale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayIterator::rewind()

<?php
$arrayobject 
= new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator $arrayobject->getIterator();

$iterator->next();
echo 
$iterator->key(); //1

$iterator->rewind(); // revient au début
echo $iterator->key(); //0
?>



ArrayIterator::seek

(PHP 5 >= 5.0.0)

ArrayIterator::seekAvance à une position donnée

Description

void ArrayIterator::seek ( int $position )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

position

La position désirée.

Valeurs de retour

Aucune valeur n'est retournée.



ArrayIterator::serialize

(PHP 5 >= 5.3.0)

ArrayIterator::serializeLinéarisation

Description

public string ArrayIterator::serialize ( void )

Linéarisation.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un ArrayIterator, linéarisé.

Voir aussi



ArrayIterator::setFlags

(PHP 5 >= 5.1.0)

ArrayIterator::setFlagsDéfinit des comportements

Description

public void ArrayIterator::setFlags ( string $flags )

Définit des comportements.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flags

Un masque, comme suit :

  • 0 = Les propriétés d'un objet ont leur fonctionnalité normale lorsqu'on y accède comme des listes (var_dump, foreach, etc.).
  • 1 = Les indices d'un tableau peuvent être accédés comme des propriétés en mode lecture/écriture.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::uasort

(PHP 5 >= 5.2.0)

ArrayIterator::uasortTri défini par l'utilisateur

Description

public void ArrayIterator::uasort ( string $cmp_function )

Tri les entrées par les valeurs, en utilisant une fonction définie par l'utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cmp_function

La fonction de comparaison à utiliser pour le tri.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::uksort

(PHP 5 >= 5.2.0)

ArrayIterator::uksortTrie défini par l'utilisateur

Description

public void ArrayIterator::uksort ( string $cmp_function )

Trie les entrées par les clés, en utilisant une fonction définie par l'utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cmp_function

La fonction de comparaison pour le tri.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ArrayIterator::unserialize

(PHP 5 >= 5.3.0)

ArrayIterator::unserializeDélinéarisation

Description

public string ArrayIterator::unserialize ( string $serialized )

Délinéarisation.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

serialized

L'objet ArrayIterator linéarisé.

Valeurs de retour

The ArrayIterator.

Voir aussi



ArrayIterator::valid

(PHP 5 >= 5.0.0)

ArrayIterator::validVérifie si un tableau contient d'autres entrées

Description

bool ArrayIterator::valid ( void )

Vérifie si un tableau contient d'autres entrées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayIterator::valid()

<?php
$array 
= array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // avance au prochain élément

//bool(false) car il n'y a qu'un seul élément dans le tableau
var_dump($iterator->valid());
?>


Sommaire



La classe CachingIterator

Introduction

Cet objet supporte les itérations en cache sur un autre itérateur.

Synopsis de la classe

CachingIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator , ArrayAccess , Countable {
/* Constantes */
const integer CachingIterator::CALL_TOSTRING = 1 ;
const integer CachingIterator::CATCH_GET_CHILD = 16 ;
const integer CachingIterator::FULL_CACHE = 256 ;
/* Méthodes */
__construct ( Iterator $iterator [, string $flags ] )
public int count ( void )
public void current ( void )
public void getCache ( void )
public void getFlags ( void )
public void getInnerIterator ( void )
public void hasNext ( void )
public void key ( void )
public void next ( void )
public void offsetExists ( string $index )
public void offsetGet ( string $index )
public void offsetSet ( string $index , string $newval )
public void offsetUnset ( string $index )
public void rewind ( void )
public void setFlags ( bitmask $flags )
public void __toString ( void )
public void valid ( void )
}

Constantes pré-définies

CachingIterator Node Types

CachingIterator::CALL_TOSTRING

Description here...

CachingIterator::CATCH_GET_CHILD

Description here...

CachingIterator::TOSTRING_USE_KEY

Description here...

CachingIterator::TOSTRING_USE_CURRENT

Description here...

CachingIterator::TOSTRING_USE_INNER

Description here...

CachingIterator::FULL_CACHE

Cache all read data.


CachingIterator::__construct

(PHP 5)

CachingIterator::__constructConstruit un nouvel objet CachingIterator pour l'itérateur

Description

CachingIterator::__construct ( Iterator $iterator [, string $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

Iterator à mettre en cache

flags

Champ d'options.



CachingIterator::count

(PHP 5 >= 5.2.2)

CachingIterator::countLe nombre d'éléments de l'itérateur

Description

public int CachingIterator::count ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le nombre d'éléments de l'itérateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'éléments sur lequel travaille l'itérateur.



CachingIterator::current

(PHP 5)

CachingIterator::currentRetourne l'élément courant

Description

public void CachingIterator::current ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'élément courant de l'itération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Suivant le type de l'élément courant.

Voir aussi



CachingIterator::getCache

(PHP 5 >= 5.2.0)

CachingIterator::getCacheLit le contenu du cache

Description

public void CachingIterator::getCache ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...



CachingIterator::getFlags

(PHP 5 >= 5.2.0)

CachingIterator::getFlagsLit les options utilisées

Description

public void CachingIterator::getFlags ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le champ d'options utilisé par cet objet CachingIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...



CachingIterator::getInnerIterator

(PHP 5)

CachingIterator::getInnerIteratorRetourne l'itérateur sous-jacent

Description

public void CachingIterator::getInnerIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'itérateur utilisé par le constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet qui implémente l'interface Iterator.



CachingIterator::hasNext

(PHP 5)

CachingIterator::hasNextVérifie si l'itérateur interne a un élément suivant valide

Description

public void CachingIterator::hasNext ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



CachingIterator::key

(PHP 5)

CachingIterator::keyRetourne l'index de l'élément courant

Description

public void CachingIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Cette méthode retourne l'index de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.



CachingIterator::next

(PHP 5)

CachingIterator::nextDéplace l'itérateur à la position suivante

Description

public void CachingIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Déplace l'itérateur à la position suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



CachingIterator::offsetExists

(PHP 5 >= 5.2.0)

CachingIterator::offsetExistsVérifie l'existence d'un offset

Description

public void CachingIterator::offsetExists ( string $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index qui est étudié.

Valeurs de retour

Retourne TRUE si un élément existe à la position indiquée, et FALSE sinon.



CachingIterator::offsetGet

(PHP 5 >= 5.2.0)

CachingIterator::offsetGetL'élément à lire à la position donnée

Description

public void CachingIterator::offsetGet ( string $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index de l'élément à lire

Valeurs de retour

Description...



CachingIterator::offsetSet

(PHP 5 >= 5.2.0)

CachingIterator::offsetSetAffecte un nouvel élément à la position donnée

Description

public void CachingIterator::offsetSet ( string $index , string $newval )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index de l'élément à affecter.

newval

La nouvelle valeur de index.

Valeurs de retour

Aucune valeur n'est retournée.



CachingIterator::offsetUnset

(PHP 5 >= 5.2.0)

CachingIterator::offsetUnsetDétruit un élément à l'offset indiqué

Description

public void CachingIterator::offsetUnset ( string $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index de l'élément qui sera détruit.

Valeurs de retour

Aucune valeur n'est retournée.



CachingIterator::rewind

(PHP 5)

CachingIterator::rewindReplace l'itérateur au début

Description

public void CachingIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



CachingIterator::setFlags

(PHP 5 >= 5.2.0)

CachingIterator::setFlagsModifie les options du CachingIterator

Description

public void CachingIterator::setFlags ( bitmask $flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Modifie les options de l'itérateur CachingIterator.

Liste de paramètres

flags

Champ d'option à configurer.

Valeurs de retour

Aucune valeur n'est retournée.



CachingIterator::__toString

(PHP 5)

CachingIterator::__toStringRetourne la représentation de l'élément courant sous forme de chaîne

Description

public void CachingIterator::__toString ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la représentation de l'élément courant sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La représentation de l'élément courant.



CachingIterator::valid

(PHP 5)

CachingIterator::validVérifie si l'élément courant est valide

Description

public void CachingIterator::valid ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



La classe DirectoryIterator

Introduction

La classe DirectoryIterator fournit une interface simple pour lire le contenu d'un système de fichiers.

Synopsis de la classe

DirectoryIterator extends SplFileInfo implements Iterator , Traversable , SeekableIterator {
/* Méthodes */
__construct ( string $path )
public DirectoryIterator current ( void )
public int getATime ( void )
public string getBasename ([ string $suffix ] )
public int getCTime ( void )
public string getFilename ( void )
public int getGroup ( void )
public int getInode ( void )
public int getMTime ( void )
public int getOwner ( void )
public string getPath ( void )
public string getPathname ( void )
public int getPerms ( void )
public int getSize ( void )
public string getType ( void )
public bool isDir ( void )
public bool isDot ( void )
public bool isExecutable ( void )
public bool isFile ( void )
public bool isLink ( void )
public bool isReadable ( void )
public bool isWritable ( void )
publicstring key ( void )
publicvoid next ( void )
public void rewind ( void )
public void seek ( int $position )
public string __toString ( void )
public bool valid ( void )
}

DirectoryIterator::__construct

(PHP 5)

DirectoryIterator::__constructConstruit un nouvel itérateur de dossier à partir d'un chemin

Description

DirectoryIterator::__construct() ( string $path )

Construit un nouvel itérateur de dossier à partir d'un chemin.

Liste de paramètres

path

Le chemin du dossier à parcourir.

Erreurs / Exceptions

Émet une exception UnexpectedValueException si le paramètre path ne peut pas être ouvert.

Exemples

Exemple #1 Exemple avec DirectoryIterator::__construct()

Cet exemple va lister le contenu du dossier qui contient le script.

<?php
$dir 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$dir as $fileinfo) {
    if (!
$fileinfo->isDot()) {
        
var_dump($fileinfo->getFilename());
    }
}
?>

Voir aussi



DirectoryIterator::current

(PHP 5)

DirectoryIterator::currentRetourne l'élément courant du DirectoryIterator

Description

public DirectoryIterator DirectoryIterator::current ( void )

Retourne l'élément courant du DirectoryIterator

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant du DirectoryIterator

Exemples

Exemple #1 Exemple avec DirectoryIterator::current()

Cet exemple liste tout le contenu du dossier courant.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
while(
$iterator->valid()) {
    
$file $iterator->current();
    echo 
$iterator->key() . " => " $file->getFilename() . "\n";
    
$iterator->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0 => .
1 => ..
2 => apple.jpg
3 => banana.jpg
4 => index.php
5 => pear.jpg

Voir aussi



DirectoryIterator::getATime

(PHP 5)

DirectoryIterator::getATimeLit la date et l'heure du dernier accès à un fichier

Description

public int DirectoryIterator::getATime ( void )

Récupère la date et l'heure du dernier accès au fichier courant de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La date et l'heure du dernier accès au fichier, sous forme de timestamp Unix.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getATime()

Affiche la liste des fichiers dans le dossier courant, avec leur date d'accès.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isFile()) {
        echo 
$fileinfo->getFilename() . " " $fileinfo->getATime() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Voir aussi



DirectoryIterator::getBasename

(PHP 5 >= 5.2.2)

DirectoryIterator::getBasenameLit le nom de dossier de l'élément DirectoryIterator

Description

public string DirectoryIterator::getBasename ([ string $suffix ] )

Lit le nom de dossier de l'élément DirectoryIterator.

Liste de paramètres

suffix

Si le nom du dossier se termine par le suffixe suffix, il sera retiré.

Valeurs de retour

Le nom du dossier courant.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getBasename()

Cet exemple va retourner le chemin complet et le nom de dossier sans le suffixe .jpg, pour les fichiers dans le dossier contenant le script.

<?php
$dir 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$dir as $fileinfo) {
    if (
$fileinfo->isFile()) {
        echo 
$fileinfo->getBasename() . "\n";
        echo 
$fileinfo->getBasename('.jpg') . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
apple
banana.jpg
banana
index.php
index.php
pear.jpg
pear

Voir aussi



DirectoryIterator::getCTime

(PHP 5)

DirectoryIterator::getCTimeRécupère l'heure de création de l'inode d'un fichier

Description

public int DirectoryIterator::getCTime ( void )

Récupère l'heure de modification du fichier courant de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de dernière modification du fichier, sous forme de timestamp Unix.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getCTime()

Cet exemple montre comment afficher le nom du fichier et la date de dernière modification dans le dossier courant.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isFile()) {
        echo 
$fileinfo->getFilename() . " modifié à " $fileinfo->getCTime() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg modifié à 1240398312
banana.jpg modifié à 1238605440
index.php modifié à 1240398935
pear.jpg modifié à 1237423740

Voir aussi



DirectoryIterator::getFilename

(PHP 5)

DirectoryIterator::getFilenameRetourne le nom de l'entrée courante du dossier

Description

public string DirectoryIterator::getFilename ( void )

Retourne le nom de l'entrée courante de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier courant dans l'itérateur DirectoryIterator.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getFilename()

Cet exemple liste le contenu du dossier contenant le script.

<?php
$dir 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$dir as $fileinfo) {
    echo 
$fileinfo->getFilename() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Voir aussi



DirectoryIterator::getGroup

(PHP 5)

DirectoryIterator::getGroupRécupère le groupe d'un fichier

Description

public int DirectoryIterator::getGroup ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère le groupe d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'identifiant du groupe du fichier courant dans l'itérateur DirectoryIterator, au format numérique.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getGroup()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
$groupid  $iterator->getGroup();
echo 
'Le dossier appartient au groupe ' $groupid "\n";
print_r(posix_getgrgid($groupid));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le dossier appartient au groupe 42
Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Voir aussi



DirectoryIterator::getInode

(PHP 5)

DirectoryIterator::getInodeRécupère l'inode d'un fichier

Description

public int DirectoryIterator::getInode ( void )

Récupère l'inode d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro d'inode du fichier.

Exemples

Exemple #1 Exemple avec sDirectoryIterator::getInode()

Cet exemple affiche le numéro d'inode du dossier contenant le script.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
echo 
$iterator->getInode();
?>

Voir aussi



DirectoryIterator::getMTime

(PHP 5)

DirectoryIterator::getMTimeRécupère l'heure de la dernière modification d'un fichier

Description

public int DirectoryIterator::getMTime ( void )

Récupère l'heure de la dernière modification du fichier courant de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La date de dernière modification du fichier, sous forme de timestamp Unix.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getMTime()

Affiche la liste de fichiers du dossier, avec leur date de modification.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isFile()) {
        echo 
$fileinfo->getFilename() . " " $fileinfo->getMTime() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Voir aussi



DirectoryIterator::getOwner

(PHP 5)

DirectoryIterator::getOwnerRécupère le propriétaire d'un fichier

Description

public int DirectoryIterator::getOwner ( void )

Récupère le propriétaire du fichier courant de l'itérateur DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du propriétaire du fichier, au format numérique.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getOwner()

Cet exemple affiche le propriétaire d'un fichier, dans le dossier courant.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
print_r(posix_getpwuid($iterator->getOwner()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Voir aussi



DirectoryIterator::getPath

(PHP 5)

DirectoryIterator::getPathRetourne le chemin du dossier

Description

public string DirectoryIterator::getPath ( void )

Retourne le chemin du dossier du fichier courant dans l'objet DirectoryIterator, sans le nom du fichier lui-même.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin du fichier courant, omettant le nom du fichier, et le séparateur final.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getPath()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
echo 
$iterator->getPath();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/examples/public_html

Voir aussi



DirectoryIterator::getPathname

(PHP 5)

DirectoryIterator::getPathnameRetourne le chemin et le nom de l'entrée courante du dossier

Description

public string DirectoryIterator::getPathname ( void )

Retourne le chemin et le nom de l'entrée courante du dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin et le nom du fichier courant. Les dossier ne portent pas de slash final.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getPathname()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    echo 
$fileinfo->getPathname() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/examples/.
/home/examples/..
/home/examples/apple.jpg
/home/examples/banana.jpg
/home/examples/getpathname.php
/home/examples/pear.jpg

Voir aussi



DirectoryIterator::getPerms

(PHP 5)

DirectoryIterator::getPermsRécupère les permissions d'un fichier

Description

public int DirectoryIterator::getPerms ( void )

Récupère les permissions d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les permissions du fichier, sous forme d'entier.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getPerms()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (!
$fileinfo->isDot()) {
        
$octal_perms substr(sprintf('%o'$fileinfo->getPerms()), -4);
        echo 
$fileinfo->getFilename() . " " $octal_perms "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 0644
banana.jpg 0644
index.php 0744
pear.jpg 0644

Voir aussi



DirectoryIterator::getSize

(PHP 5)

DirectoryIterator::getSizeRécupère la taille d'un fichier

Description

public int DirectoryIterator::getSize ( void )

Récupère la taille du fichier courant de l'itérateur DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du fichier, en octets.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getSize()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isFile()) {
        echo 
$fileinfo->getFilename() . " " $fileinfo->getSize() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 15385
banana.jpg 15190
example.php 170
pear.jpg 34406

Voir aussi



DirectoryIterator::getType

(PHP 5)

DirectoryIterator::getTypeRécupère le type d'un fichier

Description

public string DirectoryIterator::getType ( void )

Détermine le type du fichier courant dans l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le type de fichier. Cela peut être file (fichier normal), link (lien), ou dir (dossier).

Exemples

Exemple #1 Exemple avec DirectoryIterator::getType()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    echo 
$fileinfo->getFilename() . " " $fileinfo->getType() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

. dir
.. dir
apple.jpg file
banana.jpg file
example.php file
pear.jpg file

Voir aussi



DirectoryIterator::isDir

(PHP 5)

DirectoryIterator::isDirVérifie si un fichier est un dossier

Description

public bool DirectoryIterator::isDir ( void )

Détermine si l'élément courant du dossier DirectoryIterator est un dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si c'est un dossier, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isDir()

Cet exemple liste les dossiers dans le dossier courant.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isDir()) {
        echo 
$fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apples
bananas
pears

Voir aussi



DirectoryIterator::isDot

(PHP 5)

DirectoryIterator::isDotRetourne TRUE si l'entrée courante est '.' ou '..'

Description

public bool DirectoryIterator::isDot ( void )

Vérifie si l'élément courant est un dossier et, est soit ., soit ...

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée est . ou .., FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isDot()

Cet exemple va lister tous les fichiers, en omettant les dossiers . et ...

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (!
$fileinfo->isDot()) {
        echo 
$fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php
pears.jpg

Voir aussi



DirectoryIterator::isExecutable

(PHP 5)

DirectoryIterator::isExecutableVérifie si le fichier est exécutable

Description

public bool DirectoryIterator::isExecutable ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si le fichier courant dans l'itérateur DirectoryIterator est exécutable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée est exécutable, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isExecutable()

Cet exemple liste les fichiers dans le dossier, contenant le script courant.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isExecutable()) {
        echo 
$fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

exemple.php
monscript.sh

Voir aussi



DirectoryIterator::isFile

(PHP 5)

DirectoryIterator::isFileVérifie si l'entrée est un fichier normal

Description

public bool DirectoryIterator::isFile ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si l'entrée est un fichier normal.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée est un fichier régulier, (et que ce n'est ni un lien ni un dossier) FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isFile()

Cet exempe va lister tous les fichiers normaux du dossier courant.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isFile()) {
        echo 
$fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pomme.jpg
banane.jpg
exemple.php
poire.jpg

Voir aussi




DirectoryIterator::isReadable

(PHP 5)

DirectoryIterator::isReadableVérifie si le fichier est accessible en lecture

Description

public bool DirectoryIterator::isReadable ( void )

Vérifie si l'élément courant de l'objet DirectoryIterator est accessible en lecture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le fichier est accessible en lecture, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isReadable()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isReadable()) {
        echo 
$fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php
pears.jpg

Voir aussi



DirectoryIterator::isWritable

(PHP 5)

DirectoryIterator::isWritableVérifie si le fichier peut être modifié

Description

public bool DirectoryIterator::isWritable ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si le fichier courant de l'objet DirectoryIterator est accessible en écriture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le fichier est accessible en écriture, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isWritable()

Cet exemple liste les fichiers et les dossiers qui peuvent être ouverts en écriture dans le dossier courant.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$iterator as $fileinfo) {
    if (
$fileinfo->isWritable()) {
        echo 
$fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apples.txt
bananas.html
pears

Voir aussi



DirectoryIterator::key

(PHP 5)

DirectoryIterator::keyRetourne l'entrée courante du dossier

Description

publicstring DirectoryIterator::key ( void )

Retourne l'entrée courante de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'entrée courante du dossier.

Exemples

Exemple #1 Exemple avec DirectoryIterator::key()

<?php
$dir 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$dir as $fileinfo) {
    if (!
$fileinfo->isDot()) {
        echo 
$fileinfo->key() . " => " $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0 => apple.jpg
1 => banana.jpg
2 => index.php
3 => pear.jpg

Voir aussi



DirectoryIterator::next

(PHP 5)

DirectoryIterator::nextSe déplace vers la prochaine entrée

Description

publicvoid DirectoryIterator::next ( void )

Se déplace vers le prochain élément de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec DirectoryIterator::next()

Liste le contenu du dossier courant avec une boucle.

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
while(
$iterator->valid()) {
    echo 
$iterator->getFilename() . "\n";
    
$iterator->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Voir aussi



DirectoryIterator::rewind

(PHP 5)

DirectoryIterator::rewindRevient au début du dossier

Description

public void DirectoryIterator::rewind ( void )

Revient au début de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec DirectoryIterator::rewind()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));

$iterator->next();
echo 
$iterator->key(); //1

$iterator->rewind(); //rewinding to the beginning
echo $iterator->key(); //0
?>

Voir aussi



DirectoryIterator::seek

(PHP 5 >= 5.3.0)

DirectoryIterator::seekDéplace le pointeur dans un itérateur DirectoryIterator

Description

public void DirectoryIterator::seek ( int $position )

Déplace le pointeur dans un itérateur DirectoryIterator.

Liste de paramètres

position

La position à atteindre (les positions commencent à zéro).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec DirectoryIterator::seek()

Recherche le 4eme élément dans le dossier contenant le script courant. Les deux premiers sont généralement . et ..

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));
$iterator->seek(3);
if (
$iterator->valid()) {
    echo 
$iterator->getFilename();
} else {
    echo 
'Pas de fichier en position 3';
}
?>

Voir aussi



DirectoryIterator::__toString

(PHP 5)

DirectoryIterator::__toStringLit le nom du fichier

Description

public string DirectoryIterator::__toString ( void )

Lit le nom du fichier de l'élément DirectoryIterator courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier courant de l'élément DirectoryIterator.

Exemples

Exemple #1 Exemple avec DirectoryIterator::__toString()

Cet exemple va lister les éléments du dossier courant.

<?php
$dir 
= new DirectoryIterator(dirname(__FILE__));
foreach (
$dir as $fileinfo) {
    echo 
$fileinfo;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Voir aussi



DirectoryIterator::valid

(PHP 5)

DirectoryIterator::validVérifie si le répertoire contient encore des entrées

Description

public bool DirectoryIterator::valid ( void )

Vérifie si l'objet DirectoryIterator contient encore des fichiers.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la position est valide, et FALSE sinon;

Exemples

Exemple #1 Exemple avec DirectoryIterator::valid()

<?php
$iterator 
= new DirectoryIterator(dirname(__FILE__));

// Loop to end of iterator
while($iterator->valid()) {
    
$iterator->next();
}

$iterator->valid(); // FALSE
$iterator->rewind(); 
$iterator->valid(); // TRUE

?>

Voir aussi


Sommaire



La classe EmptyIterator

Introduction

La classe EmptyIterator crée un objet itérateur vide.

Synopsis de la classe

EmptyIterator implements Iterator , Traversable {
/* Méthodes */
public void current ( void )
public void key ( void )
public void next ( void )
public void rewind ( void )
public void valid ( void )
}

EmptyIterator::current

(PHP 5 >= 5.1.0)

EmptyIterator::currentLa méthode EmptyIterator::current()

Description

public void EmptyIterator::current ( void )

Cette méthode ne doit pas être appelée. Elle émet une exception en cas d'accès.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

Émet une exception Exception.

Valeurs de retour

Aucune valeur n'est retournée.



EmptyIterator::key

(PHP 5 >= 5.1.0)

EmptyIterator::keyThe key() method

Description

public void EmptyIterator::key ( void )

Cette méthode ne doit pas être appelée. Elle émet une exception en cas d'accès.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

Émet une exception Exception si elle est appelée.

Valeurs de retour

Aucune valeur n'est retournée.



EmptyIterator::next

(PHP 5 >= 5.1.0)

EmptyIterator::nextLa méthode EmptyIterator::next()

Description

public void EmptyIterator::next ( void )

Aucune opération. Rien à faire.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



EmptyIterator::rewind

(PHP 5 >= 5.1.0)

EmptyIterator::rewindLa méthode EmptyIterator::rewind()

Description

public void EmptyIterator::rewind ( void )

EmptyIterator::rewind()

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



EmptyIterator::valid

(PHP 5 >= 5.1.0)

EmptyIterator::validLa méthode EmptyIterator::valid()

Description

public void EmptyIterator::valid ( void )

La méthode EmptyIterator::valid().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

FALSE


Sommaire



La classe FilesystemIterator

Introduction

L'itérateur FilesystemIterator.

Synopsis de la classe

FilesystemIterator extends DirectoryIterator implements SeekableIterator , Traversable , Iterator {
/* Constantes */
const integer FilesystemIterator::KEY_MODE_MASK = 3840 ;
const integer FilesystemIterator::SKIP_DOTS = 4096 ;
const integer FilesystemIterator::UNIX_PATHS = 8192 ;
/* Méthodes */
__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed current ( void )
public int getFlags ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void setFlags ([ int $flags ] )
/* Méthodes héritées */
public DirectoryIterator DirectoryIterator::current ( void )
public int DirectoryIterator::getATime ( void )
public string DirectoryIterator::getBasename ([ string $suffix ] )
public int DirectoryIterator::getCTime ( void )
public string DirectoryIterator::getFilename ( void )
public int DirectoryIterator::getGroup ( void )
public int DirectoryIterator::getInode ( void )
public int DirectoryIterator::getMTime ( void )
public int DirectoryIterator::getOwner ( void )
public string DirectoryIterator::getPath ( void )
public string DirectoryIterator::getPathname ( void )
public int DirectoryIterator::getPerms ( void )
public int DirectoryIterator::getSize ( void )
public string DirectoryIterator::getType ( void )
public bool DirectoryIterator::isDir ( void )
public bool DirectoryIterator::isDot ( void )
public bool DirectoryIterator::isExecutable ( void )
public bool DirectoryIterator::isFile ( void )
public bool DirectoryIterator::isLink ( void )
public bool DirectoryIterator::isReadable ( void )
public bool DirectoryIterator::isWritable ( void )
publicstring DirectoryIterator::key ( void )
publicvoid DirectoryIterator::next ( void )
public void DirectoryIterator::rewind ( void )
public void DirectoryIterator::seek ( int $position )
public string DirectoryIterator::__toString ( void )
public bool DirectoryIterator::valid ( void )
}

Constantes pré-définies

FilesystemIterator::CURRENT_AS_PATHNAME

FilesystemIterator::current() retourne le nom du chemin.

FilesystemIterator::CURRENT_AS_FILEINFO

FilesystemIterator::current() retourne un objet SplFileInfo.

FilesystemIterator::CURRENT_AS_SELF

FilesystemIterator::current() retourne $this (le FilesystemIterator).

FilesystemIterator::CURRENT_MODE_MASK

Masque FilesystemIterator::current().

FilesystemIterator::KEY_AS_PATHNAME

FilesystemIterator::key() retourne le nom de chemin.

FilesystemIterator::KEY_AS_FILENAME

FilesystemIterator::key() retourne le nom du fichier.

Makes RecursiveDirectoryIterator::hasChildren() follow symlinks.

FilesystemIterator::KEY_MODE_MASK

Masque FilesystemIterator::key().

FilesystemIterator::NEW_CURRENT_AND_KEY

Identique à FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO.

FilesystemIterator::SKIP_DOTS

Ignore les fichiers points (. et ..).

FilesystemIterator::UNIX_PATHS

Les chemins utilisen le séparateur de dossier de type Unix, soit le slash, indépendamment du système de fonctionnement.

Historique

Version Description
5.3.1 Ajout de FilesystemIterator::FOLLOW_SYMLINKS


FilesystemIterator::__construct

(PHP 5 >= 5.3.0)

FilesystemIterator::__constructConstruit un objet FilesystemIterator

Description

FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )

Construit un objet FilesystemIterator, configuré avec le chemin path.

Liste de paramètres

path

Le chemin du dossier dans lequel on va travailler.

flags

Les options qui affectent le comportement des méthodes. La liste des options est disponible dans les constantes de FilesystemIterator. Elles peuvent aussi être activées ultérieurement avec FilesystemIterator::setFlags().

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception UnexpectedValueException si le chemin path est introuvable.

Exemples

Exemple #1 Exemple avec FilesystemIterator::__construct()

<?php
$it 
= new FilesystemIterator(dirname(__FILE__));
foreach (
$it as $fileinfo) {
    echo 
$fileinfo->getFilename() . "\n";
}
?>

L'exemple ci-dessus va afficher :

apples.jpg
banana.jpg
example.php

Voir aussi



FilesystemIterator::current

(PHP 5 >= 5.3.0)

FilesystemIterator::currentLit le fichier courant

Description

public mixed FilesystemIterator::current ( void )

Lit les informations sur le fichier courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du fichier, les informations du fichier, ou bien $this, en fonction des options utilisées. Voyez la liste des constantes FilesystemIterator.

Exemples

Exemple #1 Exemple avec FilesystemIterator::current()

Cet exemple va tester la liste des fichiers dans le script courant.

<?php
$iterator 
= new FilesystemIterator(dirname(__FILE__), FilesystemIterator::CURRENT_AS_PATHNAME);
foreach (
$iterator as $fileinfo) {
    echo 
$iterator->current() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Voir aussi



FilesystemIterator::getFlags

(PHP 5 >= 5.3.0)

FilesystemIterator::getFlagsLit les options activées

Description

public int FilesystemIterator::getFlags ( void )

Lit les options activées, telles qu'elles ont été configurées avec FilesystemIterator::__construct() ou FilesystemIterator::setFlags().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur des options configurées.

Voir aussi



FilesystemIterator::key

(PHP 5 >= 5.3.0)

FilesystemIterator::keyLit le nom du fichier

Description

public string FilesystemIterator::key ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin ou le nom du fichier, suivant les options activées. Voyez les Constantes de FilesystemIterator.

Exemples

Exemple #1 Exemple avec FilesystemIterator::key()

Cet exemple va afficher le contenu du dossier qui contient le script en cours.

<?php
$iterator 
= new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);
foreach (
$iterator as $fileinfo) {
    echo 
$iterator->key() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php

Voir aussi



FilesystemIterator::next

(PHP 5 >= 5.3.0)

FilesystemIterator::nextPasse au fichier suivant

Description

public void FilesystemIterator::next ( void )

Passe au fichier suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec FilesystemIterator::next()

Liste le contenu du dossier avec une boucle.

<?php
$iterator 
= new FilesystemIterator(dirname(__FILE__));
while(
$iterator->valid()) {
    echo 
$iterator->getFilename() . "\n";
    
$iterator->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php

Voir aussi



FilesystemIterator::rewind

(PHP 5 >= 5.3.0)

FilesystemIterator::rewindRecommence à lire le dossier

Description

public void FilesystemIterator::rewind ( void )

Recommence à lire le dossier à zéro.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec FilesystemIterator::rewind()

<?php
$iterator 
= new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);

echo 
$iterator->key() . "\n";

$iterator->next();
echo 
$iterator->key() . "\n";

$iterator->rewind();
echo 
$iterator->key() . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
apple.jpg

Voir aussi



FilesystemIterator::setFlags

(PHP 5 >= 5.3.0)

FilesystemIterator::setFlagsConfigure les options

Description

public void FilesystemIterator::setFlags ([ int $flags ] )

Configure les options.

Liste de paramètres

flags

Les options à configurer. Voir la liste des constantes de FilesystemIterator.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec FilesystemIterator::key()

Cet exemple illustre la différence entre les options FilesystemIterator::KEY_AS_PATHNAME et FilesystemIterator::KEY_AS_FILENAME.

<?php
$iterator 
= new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_PATHNAME);
echo 
"Clé comme nom de chemin : \n";
foreach (
$iterator as $key => $fileinfo) {
    echo 
$key "\n";
}

$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
echo 
"\nClé comme nom de fichier : \n";
foreach (
$iterator as $key => $fileinfo) {
    echo 
$key "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Clé comme nom de chemin : 
/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Clé comme nom de fichier : 
apple.jpg
banana.jpg
example.php

Voir aussi


Sommaire



La classe FilterIterator

Introduction

Cet itérateur abstrait filtre les valeurs indésirables. Cette classe doit être étendue pour implémenter des opérateurs personnalisés. La méthode FilterIterator::accept() doit être implémentée dans la sous-classe.

Synopsis de la classe

abstract FilterIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator {
/* Méthodes */
abstract bool accept ( void )
__construct ( Iterator $iterator )
mixed current ( void )
Iterator getInnerIterator ( void )
mixed key ( void )
void next ( void )
void rewind ( void )
bool valid ( void )
}

FilterIterator::accept

(PHP 5 >= 5.1.0)

FilterIterator::acceptVérifie si l'élément courant de l'itérateur est acceptable

Description

abstract bool FilterIterator::accept ( void )

Vérifie si l'élément courant est acceptable par le filtre courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant est acceptable, et sinon FALSE.

Exemples

Exemple #1 Exemple avec FilterIterator::accept()

<?php
// Cet itérateur filtre toutes les valeurs de moins de 10 caractères
class LengthFilterIterator extends FilterIterator {

    public function 
accept() {
        
// n'accepte une chaîne que si elle fait 10 chars ou plus
        
return strlen(parent::current()) > 10;
    }

}

$arrayIterator = new ArrayIterator(array('test1''plus de 10 caractères'));
$lengthFilter = new LengthFilterIterator($arrayIterator);

foreach (
$lengthFilter as $value) {
    echo 
$value "\n";
}
?>

L'exemple ci-dessus va afficher :

plus de 10 caractères



FilterIterator::__construct

(PHP 5 >= 5.1.0)

FilterIterator::__constructConstruit un filterIterator

Description

FilterIterator::__construct ( Iterator $iterator )

Construit un nouveau FilterIterator, qui consiste à passer le paramètre iterator après y avoir appliqué les filtres.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à filtrer.

Valeurs de retour

L'objet FilterIterator.

Voir aussi



FilterIterator::current

(PHP 5 >= 5.1.0)

FilterIterator::currentRécupère la valeur de l'élément courant

Description

mixed FilterIterator::current ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère la valeur de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.

Voir aussi



FilterIterator::getInnerIterator

(PHP 5 >= 5.1.0)

FilterIterator::getInnerIteratorRécupère l'itérateur interne

Description

Iterator FilterIterator::getInnerIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère l'itérateur interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne.



FilterIterator::key

(PHP 5 >= 5.1.0)

FilterIterator::keyRécupère la clé courante

Description

mixed FilterIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère la clé courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante.

Voir aussi



FilterIterator::next

(PHP 5 >= 5.1.0)

FilterIterator::nextDéplace l'itérateur à la position suivante

Description

void FilterIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Déplace l'itérateur à la position suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



FilterIterator::rewind

(PHP 5 >= 5.1.0)

FilterIterator::rewindReplace l'itérateur au début

Description

void FilterIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



FilterIterator::valid

(PHP 5 >= 5.1.0)

FilterIterator::validVérifie si l'élément courant est valide

Description

bool FilterIterator::valid ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant est valide, FALSE sinon.


Sommaire



La classe GlobIterator

Introduction

Passe en revue un système de fichiers, de manière similaire à la fonction glob().

Synopsis de la classe

GlobIterator extends FilesystemIterator implements Iterator , Traversable , SeekableIterator , Countable {
/* Méthodes */
__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
public int count ( void )
/* Méthodes héritées */
FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed FilesystemIterator::current ( void )
public int FilesystemIterator::getFlags ( void )
public string FilesystemIterator::key ( void )
public void FilesystemIterator::next ( void )
public void FilesystemIterator::rewind ( void )
public void FilesystemIterator::setFlags ([ int $flags ] )
}

GlobIterator::__construct

(PHP 5 >= 5.3.0)

GlobIterator::__constructConstruit un itérateur de type glob

Description

GlobIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Construit un itérateur de type glob.

Liste de paramètres

path

Le chemin du dossier.

flags

Les options, qui peuvent être un champ de bits de constantes de classe FilesystemIterator.

Exemples

Exemple #1 Exemple avec GlobIterator

<?php
$iterator 
= new GlobIterator('*.dll',  FilesystemIterator::KEY_AS_FILENAME);

if(!
$iterator->count())
{
    echo 
'No matches';
}
else
{
    
$n 0;

    
printf("Matched  %d item(s)\r\n"$iterator->count());

    foreach(
$iterator  as $item)
    {
        
printf("[%d] %s\r\n", ++$n$iterator->key());
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Matched 2 item(s)
[1] php5ts.dll
[2] php_gd2.dll

Voir aussi



GlobIterator::count

(PHP 5 >= 5.3.0)

GlobIterator::countLit le nombre de dossiers et fichiers

Description

public int GlobIterator::count ( void )

Lit le nombre de dossiers et fichiers trouvés par l'expression Glob.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de dossiers et fichiers est retourné sous forme d'entier.

Exemples

Exemple #1 Exemple avec GlobIterator::count()

<?php
$iterator 
= new GlobIterator('*.xml');

printf("Trouvé %d élément(s)\r\n"$iterator->count());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Matched 8 item(s)

Voir aussi

  • GlobIterator::__construct() - Construit un itérateur de type glob
  • count() - Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet
  • glob() - Recherche des chemins qui vérifient un masque


Sommaire



La classe InfiniteIterator

Introduction

La classe InfiniteIterator permet l'itération infinie sur un itérateur sans avoir besoin de remettre à zéro manuellement dès que la fin est atteinte.

Synopsis de la classe

InfiniteIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator {
/* Méthodes */
__construct ( Iterator $iterator )
public void next ( void )
/* Méthodes héritées */
public void IteratorIterator::current ( void )
public void IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

InfiniteIterator::__construct

(PHP 5 >= 5.1.0)

InfiniteIterator::__constructConstruit un InfiniteIterator

Description

InfiniteIterator::__construct ( Iterator $iterator )

Construit un InfiniteIterator pour un Iterator.

Liste de paramètres

iterator

L'itérateur à passer infiniment.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception E_RECOVERABLE_ERROR si le paramètre iterator n'est pas un Iterator.

Exemples

Exemple #1 Exemple avec InfiniteIterator::__construct()

<?php
$arrayit  
= new ArrayIterator(array('cat','dog'));
$infinite = new InfiniteIterator($arrayit);
$limit    = new LimitIterator($infinite07);
foreach(
$limit as $value)
{
    echo 
"$value\n";
}
?>

L'exemple ci-dessus va afficher :

cat
dog
cat
dog
cat
dog
cat

Voir aussi



InfiniteIterator::next

(PHP 5 >= 5.1.0)

InfiniteIterator::nextAvance l'itérateur ou le replace au début

Description

public void InfiniteIterator::next ( void )

Avance l'Iterator interne au prochain élément s'il existe, ou bien le replace au début si le prochain élément n'existe pas.

Note:

InfiniteIterator s'arrête si l'Iterator est vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi


Sommaire



La classe IteratorIterator

Introduction

Cet itérateur permet la conversion de n'importe quel objet Traversable en un itérateur. Il est important de comprendre que la plupart des classes qui n'implémentent pas l'interface Iterator, ne le font pas car elles ne disposent pas de toutes les méthodes des itérateurs. Si c'est le cas, des mécanismes doivent être mis en place pour l'éviter, car autrement, cela produirait des exceptions ou des erreurs fatales.

Synopsis de la classe

IteratorIterator implements Iterator , Traversable , OuterIterator {
/* Méthodes */
__construct ( Traversable $iterator )
public void current ( void )
public void getInnerIterator ( void )
public void key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
}

IteratorIterator::__construct

(PHP 5 >= 5.1.0)

IteratorIterator::__constructCrée un itérateur à partir d'un objet traversable

Description

IteratorIterator::__construct ( Traversable $iterator )

Crée un itérateur à partir d'un objet traversable.

Liste de paramètres

iterator

L'itérateur traversable.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



IteratorIterator::current

(PHP 5 >= 5.1.0)

IteratorIterator::currentLit la valeur courante

Description

public void IteratorIterator::current ( void )

Lit la valeur de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.

Voir aussi



IteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0)

IteratorIterator::getInnerIteratorRetourne l'itérateur interne

Description

public void IteratorIterator::getInnerIterator ( void )

Retourne l'itérateur interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne, fourni au constructeur IteratorIterator::__construct().

Voir aussi



IteratorIterator::key

(PHP 5 >= 5.1.0)

IteratorIterator::keyLit la clé de l'élément courant

Description

public void IteratorIterator::key ( void )

Lit la clé de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé de l'élément courant.

Voir aussi



IteratorIterator::next

(PHP 5 >= 5.1.0)

IteratorIterator::nextAvance au prochain élément

Description

public void IteratorIterator::next ( void )

Avance au prochain élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



IteratorIterator::rewind

(PHP 5 >= 5.1.0)

IteratorIterator::rewindRetourne au premier élément

Description

public void IteratorIterator::rewind ( void )

Retourne au premier élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



IteratorIterator::valid

(PHP 5 >= 5.1.0)

IteratorIterator::validVérifie si un itérateur est valide

Description

public bool IteratorIterator::valid ( void )

Vérifie si un itérateur est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'itérateur est valide, et FALSE sinon.

Voir aussi


Sommaire



La classe LimitIterator

Introduction

La classe LimitIterator permet d'itérer sur une partie limitée d'entités depuis un Iterator.

Synopsis de la classe

LimitIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator {
/* Méthodes */
__construct ( Iterator $iterator [, string $offset = 0 [, string $count = -1 ]] )
public mixed current ( void )
public Iterator getInnerIterator ( void )
public int getPosition ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public int seek ( int $position )
public bool valid ( void )
}

Exemples

Exemple #1 Exemple d'utilisation de LimitIterator

<?php

// Creér un itérateur à limiter
$fruits = new ArrayIterator(array(
    
'apple',
    
'banana',
    
'cherry',
    
'damson',
    
'elderberry'
));

// Boucle sur les 3 premiers fruits uniquement
foreach (new LimitIterator($fruits03) as $fruit) {
    
var_dump($fruit);
}

echo 
"\n";

// Boucle depuis le 3ème fruit jusqu'au dernier
// Note: la clé démarre à zéro pour apple
foreach (new LimitIterator($fruits2) as $fruit) {
    
var_dump($fruit);
}

?>

L'exemple ci-dessus va afficher :

string(5) "apple"
string(6) "banana"
string(6) "cherry"

string(6) "cherry"
string(6) "damson"
string(10) "elderberry"


LimitIterator::__construct

(PHP 5 >= 5.1.0)

LimitIterator::__constructConstruit un nouvel objet LimitIterator

Description

LimitIterator::__construct ( Iterator $iterator [, string $offset = 0 [, string $count = -1 ]] )

Construit un nouvel objet LimitIterator,depuis iterator avec un offset et une limite maximum count

Liste de paramètres

iterator

L'Iterator à limiter.

offset

Position optionnelle de la limite.

count

Nombre optionnelle de la limite.

Valeurs de retour

Le nouvel objet LimitIterator.

Erreurs / Exceptions

Envoie une OutOfRangeException si offset est inférieur à 0 ou si count est inférieur à -1.

Exemples

Exemple #1 Exemple LimitIterator::__construct()

<?php
$ait 
= new ArrayIterator(array('a''b''c''d''e'));
$lit = new LimitIterator($ait13);
foreach (
$lit as $value) {
    echo 
$value "\n";
}
?>

L'exemple ci-dessus va afficher :

b
c
d



LimitIterator::current

(PHP 5 >= 5.1.0)

LimitIterator::currentRécupère l'élément courant

Description

public mixed LimitIterator::current ( void )

Récupère l'élément courant de l'Iterator interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'élément courant ou NULL si il n'y en a pas.

Voir aussi



LimitIterator::getInnerIterator

(PHP 5 >= 5.1.0)

LimitIterator::getInnerIteratorRécupère l'itérateur interne

Description

public Iterator LimitIterator::getInnerIterator ( void )

Récupère l'Iterator interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne passé à LimitIterator::__construct().

Voir aussi



LimitIterator::getPosition

(PHP 5 >= 5.1.0)

LimitIterator::getPositionRetourne la position courante

Description

public int LimitIterator::getPosition ( void )

Retourne la position (partant de zéro) de l'itérateur interne Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La position courante.

Exemples

Exemple #1 Exemple LimitIterator::getPosition()

<?php
$fruits 
= array(
    
'a' => 'apple',
    
'b' => 'banana',
    
'c' => 'cherry',
    
'd' => 'damson',
    
'e' => 'elderberry'
);
$array_it = new ArrayIterator($fruits);
$limit_it = new LimitIterator($array_it23);
foreach (
$limit_it as $item) {
    echo 
$limit_it->getPosition() . ' ' $item "\n";
}
?>

L'exemple ci-dessus va afficher :

2 cherry
3 damson
4 elderberry

Voir aussi



LimitIterator::key

(PHP 5 >= 5.1.0)

LimitIterator::keyRécupère la clé courante

Description

public mixed LimitIterator::key ( void )

Récupère la clé courante de l'itérateur interne Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé de l'élément courant.

Voir aussi



LimitIterator::next

(PHP 5 >= 5.1.0)

LimitIterator::nextDéplace l'itérateur à la position suivante

Description

public void LimitIterator::next ( void )

Déplace l'itérateur à la position suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



LimitIterator::rewind

(PHP 5 >= 5.1.0)

LimitIterator::rewindReplace l'itérateur au début

Description

public void LimitIterator::rewind ( void )

Replace l'itérateur à la position précisée dans LimitIterator::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



LimitIterator::seek

(PHP 5 >= 5.1.0)

LimitIterator::seekPlace l'itérateur à une position donnée

Description

public int LimitIterator::seek ( int $position )

Déplace l'itérateur interne à la position position.

Liste de paramètres

position

La position sur laquelle on souhaite se placer.

Valeurs de retour

Retourne la position après déplacement.

Erreurs / Exceptions

Envoie une OutOfBoundsException si la position est hors des limites indiquées dans LimitIterator::__construct().

Voir aussi



LimitIterator::valid

(PHP 5 >= 5.1.0)

LimitIterator::validVérifie si l'élément courant est valide

Description

public bool LimitIterator::valid ( void )

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire



La classe MultipleIterator

Introduction

Un intérateur qui itère sur plusieurs itérateurs, les uns après les autres.

Synopsis de la classe

MultipleIterator implements Iterator , Traversable {
/* Constantes */
const integer MultipleIterator::MIT_NEED_ANY = 0 ;
const integer MultipleIterator::MIT_NEED_ALL = 1 ;
/* Méthodes */
public void attachIterator ( Iterator $iterator [, string $infos ] )
__construct ( int $flags )
public void containsIterator ( Iterator $iterator )
public void countIterators ( void )
public void current ( void )
public void detachIterator ( Iterator $iterator )
public void getFlags ( void )
public void key ( void )
public void next ( void )
public void rewind ( void )
public void setFlags ( int $flags )
public void valid ( void )
}

Constantes pré-définies

Types de noeuds MultipleIterator

MultipleIterator::MIT_NEED_ANY

N'impose pas que les itérateurs soient tous valides dans une itération.

MultipleIterator::MIT_NEED_ALL

Impose que les itérateurs soient tous valides dans une itération.

MultipleIterator::MIT_KEYS_NUMERIC

Les clés sont créés à partir des positions des itérateurs.

MultipleIterator::MIT_KEYS_ASSOC

Les clés sont créés à partir des informations associées des itérateurs.


MultipleIterator::attachIterator

(PHP 5 >= 5.3.0)

MultipleIterator::attachIteratorAttache un itérateur

Description

public void MultipleIterator::attachIterator ( Iterator $iterator [, string $infos ] )

Attache un itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

Le nouvel itérateur à attacher.

infos

Les informations de l'itérateur, qui doivent être un entier, une chaîne de caractères ou NULL.

Valeurs de retour

Erreurs / Exceptions

Une exception IllegalValueException si le paramètre iterator est invalide, ou si infos est une information déjà associée.

Voir aussi



MultipleIterator::__construct

(PHP 5 >= 5.3.0)

MultipleIterator::__constructConstruit un nouvel objet MultipleIterator

Description

MultipleIterator::__construct ( int $flags )

Construit un nouvel objet MultipleIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flags

Le drapeau à définir, suivant les constantes

Valeurs de retour

The iterator.

Voir aussi



MultipleIterator::containsIterator

(PHP 5 >= 5.3.0)

MultipleIterator::containsIteratorVérifie si un itérateur est attaché

Description

public void MultipleIterator::containsIterator ( Iterator $iterator )

Vérifie si un itérateur est attaché.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



MultipleIterator::countIterators

(PHP 5 >= 5.3.0)

MultipleIterator::countIteratorsRécupère le nombre d'instances d'itérateurs attachés

Description

public void MultipleIterator::countIterators ( void )

Récupère le nombre d'instances d'itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'instances d'itérateurs attachés (sous la forme d'un entier).

Voir aussi



MultipleIterator::current

(PHP 5 >= 5.3.0)

MultipleIterator::currentRécupère les instantes des itérateurs attachés

Description

public void MultipleIterator::current ( void )

Récupère les instantes des itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de toutes les instances des itérateurs attachés, ou FALSE si aucun sous-itérateur n'est attaché.

Erreurs / Exceptions

Une exception RuntimeException si le mode MIT_NEED_ALL est défini et au moins un itérateur invalide. Ou une exception IllegalValueException si une clé vaut NULL et que le mode MIT_KEYS_ASSOC est défini.

Voir aussi



MultipleIterator::detachIterator

(PHP 5 >= 5.3.0)

MultipleIterator::detachIteratorDétache un itérateur

Description

public void MultipleIterator::detachIterator ( Iterator $iterator )

Détache un itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à détacher.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



MultipleIterator::getFlags

(PHP 5 >= 5.3.0)

MultipleIterator::getFlagsRécupère les informations d'un drapeau

Description

public void MultipleIterator::getFlags ( void )

Récupère les informations d'un drapeau.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les informations d'un drapeau, sous la forme d'un entier.

Voir aussi



MultipleIterator::key

(PHP 5 >= 5.3.0)

MultipleIterator::keyRécupère les instances des itérateurs enregistrés

Description

public void MultipleIterator::key ( void )

Récupère les instances des itérateurs enregistrés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de tous les itérateurs enregistrés, ou FALSE si aucun sous-itérateur n'est attaché.

Erreurs / Exceptions

Une exception LogicException si le mode MIT_NEED_ALL est défini, et au moins un itérateur attaché invalide.

Voir aussi



MultipleIterator::next

(PHP 5 >= 5.3.0)

MultipleIterator::nextDéplace vers l'avant toutes les instances des itérateurs attachés

Description

public void MultipleIterator::next ( void )

Déplace vers l'avant toutes les instances des itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



MultipleIterator::rewind

(PHP 5 >= 5.3.0)

MultipleIterator::rewindRéinitialise toutes les instances d'itérateurs attachés

Description

public void MultipleIterator::rewind ( void )

Réinitialise toutes les instances d'itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



MultipleIterator::setFlags

(PHP 5 >= 5.3.0)

MultipleIterator::setFlagsDéfinit des drapeaux

Description

public void MultipleIterator::setFlags ( int $flags )

Définit des drapeaux.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flags

Le drapeau à définir, suivant les constantes disponibles

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



MultipleIterator::valid

(PHP 5 >= 5.3.0)

MultipleIterator::validVérifie la validité d'un sous-itérateur

Description

public void MultipleIterator::valid ( void )

Vérifie la validité d'un sous-itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si un ou tous les sous-itérateurs sont valides, suivant les drapeaux, FALSE sinon.

Voir aussi


Sommaire



La classe NoRewindIterator

Introduction

Un itérateur qui ne peut pas être remis à zéro.

Synopsis de la classe

NoRewindIterator extends IteratorIterator {
/* Méthodes */
__construct ( Iterator $iterator )
public mixed current ( void )
public iterator getInnerIterator ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Méthodes héritées */
public void IteratorIterator::current ( void )
public void IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

NoRewindIterator::__construct

(PHP 5 >= 5.1.0)

NoRewindIterator::__constructConstruit un nouvel objet NoRewindIterator

Description

NoRewindIterator::__construct ( Iterator $iterator )

Construit un nouvel objet NoRewindIterator.

Liste de paramètres

iterator

L'itérateur à utiliser.

Valeurs de retour

Un objet NoRewindIterator() basé sur l'itérateur iterator fourni.

Exemples

Exemple #1 Exemple avec NoRewindIterator::__construct()

La seconde boucle n'affiche rien car l'itérateur ne peut être utilisé qu'une seule fois sans être réinitialisé.

<?php
$fruit 
= array('apple''banana''cranberry');

$arr = new ArrayObject($fruit);
$it  = new NoRewindIterator($arr->getIterator());

echo 
"Fruit A:\n";
foreach( 
$it as $item ) {
    echo 
$item "\n";
}

echo 
"Fruit B:\n";
foreach( 
$it as $item ) {
    echo 
$item "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fruit A:
apple
banana
cranberry
Fruit B:

Voir aussi



NoRewindIterator::current

(PHP 5 >= 5.1.0)

NoRewindIterator::currentRécupère la valeur courante

Description

public mixed NoRewindIterator::current ( void )

Récupère la valeur courante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur courante.

Voir aussi



NoRewindIterator::getInnerIterator

(PHP 5 >= 5.1.0)

NoRewindIterator::getInnerIteratorRécupère l'itérateur interne

Description

public iterator NoRewindIterator::getInnerIterator ( void )

Récupère l'itérateur interne, passé via la méthode NoRewindIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne, passé via le constructeur NoRewindIterator::__construct().

Voir aussi



NoRewindIterator::key

(PHP 5 >= 5.1.0)

NoRewindIterator::keyRécupère la clé courante

Description

public mixed NoRewindIterator::key ( void )

Récupère la clé courante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante.

Voir aussi



NoRewindIterator::next

(PHP 5 >= 5.1.0)

NoRewindIterator::nextSe déplace vers le prochain élément

Description

public void NoRewindIterator::next ( void )

Se déplace vers le prochain élément.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



NoRewindIterator::rewind

(PHP 5 >= 5.1.0)

NoRewindIterator::rewindRéinitialise l'itérateur interne

Description

public void NoRewindIterator::rewind ( void )

Réinitialise l'itérateur interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec NoRewindIterator::rewind()

Cet exemple démontre que l'appel à cette méthode sur un objet NoRewindIterator n'a aucun effet.

<?php
$fruits 
= array("lemon""orange""apple""pear");

$noRewindIterator = new NoRewindIterator(new ArrayIterator($fruits));

echo 
$noRewindIterator->current() . "\n";
$noRewindIterator->next();
// Maintenant, on réinitialise l'itérateur (rien ne doit survenir)
$noRewindIterator->rewind();
echo 
$noRewindIterator->current() . "\n";
?>

L'exemple ci-dessus va afficher :

lemon
orange



NoRewindIterator::valid

(PHP 5 >= 5.1.0)

NoRewindIterator::validValide un itérateur

Description

public bool NoRewindIterator::valid ( void )

Vérifie si un itérateur est valide.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire



La classe ParentIterator

Introduction

...

Synopsis de la classe

/* Méthodes */
public bool accept ( void )
ParentIterator getChildren ( void )
bool hasChildren ( void )
void next ( void )
void rewind ( void )
}

ParentIterator::accept

(PHP 5 >= 5.1.0)

ParentIterator::acceptDétermine si l'élément courant a des fils

Description

public bool ParentIterator::accept ( void )

Détermine si l'élément courant a des fils.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant est acceptable, FALSE sinon.

Voir aussi



ParentIterator::__construct

(PHP 5 >= 5.1.0)

ParentIterator::__constructConstruit un nouvel objet ParentIterator

Description

ParentIterator::__construct ( RecursiveIterator $iterator )

Construit un nouvel objet ParentIterator sur un itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur sur lequel nous devons construire le nouvel objet.

Valeurs de retour

L'objet ParentIterator.



ParentIterator::getChildren

(PHP 5 >= 5.1.0)

ParentIterator::getChildrenRetourne le fils de l'itérateur interne contenu dans ParentIterator

Description

ParentIterator ParentIterator::getChildren ( void )

Retourne le fils de l'itérateur interne contenu dans ParentIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet.



ParentIterator::hasChildren

(PHP 5 >= 5.1.0)

ParentIterator::hasChildrenVérifie si l'élément courant de l'itérateur interne a un fils

Description

bool ParentIterator::hasChildren ( void )

Vérifie si l'élément courant de l'itérateur interne a un fils.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ParentIterator::next

(PHP 5 >= 5.1.0)

ParentIterator::nextDéplace l'itérateur à la position suivante

Description

void ParentIterator::next ( void )

Déplace l'itérateur à la position suivante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



ParentIterator::rewind

(PHP 5 >= 5.1.0)

ParentIterator::rewindReplace l'itérateur au début

Description

void ParentIterator::rewind ( void )

Replace l'itérateur au début.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe RecursiveArrayIterator

Introduction

Cet itérateur permet la suppression et la modification de valeurs et clés durant l'itération sur des tableaux et des objets, de la même façon que ArrayIterator. De plus, il est possible d'itérer sur l'élément courant.

Synopsis de la classe

RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Méthodes */
public RecursiveArrayIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
public void ArrayIterator::append ( mixed $value )
public void ArrayIterator::asort ( void )
public int ArrayIterator::count ( void )
mixed ArrayIterator::current ( void )
public array ArrayIterator::getArrayCopy ( void )
public void ArrayIterator::getFlags ( void )
mixed ArrayIterator::key ( void )
public void ArrayIterator::ksort ( void )
public void ArrayIterator::natcasesort ( void )
public void ArrayIterator::natsort ( void )
void ArrayIterator::next ( void )
public void ArrayIterator::offsetExists ( string $index )
public mixed ArrayIterator::offsetGet ( string $index )
public void ArrayIterator::offsetSet ( string $index , string $newval )
public void ArrayIterator::offsetUnset ( string $index )
void ArrayIterator::rewind ( void )
void ArrayIterator::seek ( int $position )
public string ArrayIterator::serialize ( void )
public void ArrayIterator::setFlags ( string $flags )
public void ArrayIterator::uasort ( string $cmp_function )
public void ArrayIterator::uksort ( string $cmp_function )
public string ArrayIterator::unserialize ( string $serialized )
bool ArrayIterator::valid ( void )
}

RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0)

RecursiveArrayIterator::getChildrenRetourne un itérateur pour l'entrée courante

Description

public RecursiveArrayIterator RecursiveArrayIterator::getChildren ( void )

Retourne un itérateur pour l'entrée de l'itérateur courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un itérateur pour l'entrée courante, si c'est un tableau ou un objet.

Erreurs / Exceptions

Une exception InvalidArgumentException sera émise si l'entrée courante ne contient pas un tableau ou un objet.

Exemples

Exemple #1 Exemple avec RecursiveArrayIterator::getChildren()

<?php
$fruits 
= array("a" => "lemon""b" => "orange", array("a" => "apple""p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while (
$iterator->valid()) {

    if (
$iterator->hasChildren()) {
        
// Affiche tous les fils
        
foreach ($iterator->getChildren() as $key => $value) {
            echo 
$key ' : ' $value "\n";
        }
    } else {
        echo 
"Aucun fils.\n";
    }

    
$iterator->next();
}
?>

L'exemple ci-dessus va afficher :

Aucun fils.
Aucun fils.
a : apple
p : pear

Voir aussi



RecursiveArrayIterator::hasChildren

(PHP 5 >= 5.1.0)

RecursiveArrayIterator::hasChildrenVérifie si l'entrée courante est un tableau ou un objet

Description

public bool RecursiveArrayIterator::hasChildren ( void )

Vérifie si l'entrée courante est un tableau ou un objet pour lequel un itérateur peut être obtenu via la méthode RecursiveArrayIterator::getChildren().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée courante est un tableau ou un objet, FALSE sinon.

Exemples

Exemple #1 Exemple avec RecursiveArrayIterator::hasChildren()

<?php
$fruits 
= array("a" => "lemon""b" => "orange", array("a" => "apple""p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while (
$iterator->valid()) {

    
// Vérifie s'il y a des fils
    
if ($iterator->hasChildren()) {
        
// Affiche tous les fils
        
foreach ($iterator->getChildren() as $key => $value) {
            echo 
$key ' : ' $value "\n";
        }
    } else {
        echo 
"Aucun fils.\n";
    }

    
$iterator->next();
}
?>

L'exemple ci-dessus va afficher :

Aucun fils.
Aucun fils.
a : apple
p : pear

Voir aussi


Sommaire



La classe RecursiveCachingIterator

Introduction

...

Synopsis de la classe

RecursiveCachingIterator extends CachingIterator implements Countable , ArrayAccess , Iterator , Traversable , OuterIterator , RecursiveIterator {
/* Méthodes */
__construct ( Iterator $iterator [, string $flags = self::CALL_TOSTRING ] )
RecursiveCachingIterator getChildren ( void )
bool hasChildren ( void )
/* Méthodes héritées */
CachingIterator::__construct ( Iterator $iterator [, string $flags ] )
public int CachingIterator::count ( void )
public void CachingIterator::current ( void )
public void CachingIterator::getCache ( void )
public void CachingIterator::getFlags ( void )
public void CachingIterator::getInnerIterator ( void )
public void CachingIterator::hasNext ( void )
public void CachingIterator::key ( void )
public void CachingIterator::next ( void )
public void CachingIterator::offsetExists ( string $index )
public void CachingIterator::offsetGet ( string $index )
public void CachingIterator::offsetSet ( string $index , string $newval )
public void CachingIterator::offsetUnset ( string $index )
public void CachingIterator::rewind ( void )
public void CachingIterator::setFlags ( bitmask $flags )
public void CachingIterator::__toString ( void )
public void CachingIterator::valid ( void )
}

RecursiveCachingIterator::__construct

(PHP 5 >= 5.1.0)

RecursiveCachingIterator::__constructConstructeur

Description

RecursiveCachingIterator::__construct ( Iterator $iterator [, string $flags = self::CALL_TOSTRING ] )

Construit un nouvel objet RecursiveCachingIterator, qui pourra ensuite être passé comme itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à utiliser.

flags

Le drapeau. Utilisez la constante CALL_TOSTRING pour appeler RecursiveCachingIterator::__toString() sur tous les éléments (par défaut), et/ou la constante CATCH_GET_CHILD pour attraper toutes les exceptions émises lorsque l'on tente de récupérer des fils.

Valeurs de retour

Le nouvel objet RecursiveCachingIterator.

Voir aussi



RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0)

RecursiveCachingIterator::getChildrenRetourne le fils de l'itérateur interne comme un CachingRecursiveIterator

Description

RecursiveCachingIterator RecursiveCachingIterator::getChildren ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le fils de l'itérateur, sous la forme d'un RecursiveCachingIterator.



RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0)

RecursiveCachingIterator::hasChildrenVérifie si l'élément courant de l'itérateur interne a un fils

Description

bool RecursiveCachingIterator::hasChildren ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant a un fils, FALSE sinon.


Sommaire



La classe RecursiveDirectoryIterator

Introduction

La classe RecursiveDirectoryIterator fournit un moyen d'itérer récursivement sur des dossiers d'un système de fichiers.

Synopsis de la classe

RecursiveDirectoryIterator extends FileSystemIterator implements Traversable , Iterator , SeekableIterator , RecursiveIterator {
/* Méthodes */
__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
object getChildren ( void )
public string getSubPath ( void )
public string getSubPathname ( void )
bool hasChildren ([ bool $allow_links ] )
string key ( void )
void next ( void )
void rewind ( void )
/* Méthodes héritées */
FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed FilesystemIterator::current ( void )
public int FilesystemIterator::getFlags ( void )
public string FilesystemIterator::key ( void )
public void FilesystemIterator::next ( void )
public void FilesystemIterator::rewind ( void )
public void FilesystemIterator::setFlags ([ int $flags ] )
}

Historique

Version Description
5.3.0 FilesystemIterator devient la classe parente. Avant, la classe mère était DirectoryIterator.
5.3.0 Implémente SeekableIterator.
5.2.11, 5.3.1 Ajout de RecursiveDirectoryIterator::FOLLOW_SYMLINKS


RecursiveDirectoryIterator::__construct

(PHP 5 >= 5.1.2)

RecursiveDirectoryIterator::__constructConstruit un objet RecursiveDirectoryIterator

Description

RecursiveDirectoryIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Construit un objet RecursiveDirectoryIterator() concernant le dossier souhaité.

Liste de paramètres

path

Chemin du dossier sur lequel itérer.

flags

Drapeaux à passer pour changer le comportement de l'itérateur. Une liste de drapeaux peut être trouvée dans la liste des constante de FilesystemIterator. Elles peuvent aussi être renseignées plus tard au moyen de FilesystemIterator::setFlags()

Valeurs de retour

Retourne l'instance créee de RecursiveDirectoryIterator.

Erreurs / Exceptions

Envoie une UnexpectedValueException si le path n'est pas accessible ou n'est pas un dossier.

Exemples

Exemple #1 Exemple avec RecursiveDirectoryIterator

<?php

$directory 
'/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

while(
$it->valid()) {

    if (!
$it->isDot()) {
        echo 
'SubPathName: ' $it->getSubPathName() . "\n";
        echo 
'SubPath:     ' $it->getSubPath() . "\n";
        echo 
'Key:         ' $it->key() . "\n\n";
    }

    
$it->next();
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SubPathName: fruit/apple.xml
SubPath:     fruit
Key:         /tmp/fruit/apple.xml

SubPathName: stuff.xml
SubPath:     
Key:         /tmp/stuff.xml

SubPathName: veggies/carrot.xml
SubPath:     veggies
Key:         /tmp/veggies/carrot.xml

Voir aussi



RecursiveDirectoryIterator::getChildren

(PHP 5 >= 5.1.0)

RecursiveDirectoryIterator::getChildrenRetourne un itérateur pour l'entrée courante si c'est un dossier

Description

object RecursiveDirectoryIterator::getChildren ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un itérateur pour l'entrée courante, si c'est un dossier.



RecursiveDirectoryIterator::getSubPath

(PHP 5 >= 5.1.0)

RecursiveDirectoryIterator::getSubPathRécupère le sous-chemin

Description

public string RecursiveDirectoryIterator::getSubPath ( void )

Récupère le sous-chemin.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-chemin (le sous-dossier).

Voir aussi



RecursiveDirectoryIterator::getSubPathname

(PHP 5 >= 5.1.0)

RecursiveDirectoryIterator::getSubPathnameRécupère le sous-chemin et le nom du fichier

Description

public string RecursiveDirectoryIterator::getSubPathname ( void )

Récupère le sous-chemin et le nom du fichier.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-chemin (sous-dossier) et le nom du fichier.

Voir aussi



RecursiveDirectoryIterator::hasChildren

(PHP 5)

RecursiveDirectoryIterator::hasChildrenVérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'

Description

bool RecursiveDirectoryIterator::hasChildren ([ bool $allow_links ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

allow_links

Valeurs de retour

Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'.



RecursiveDirectoryIterator::key

(PHP 5)

RecursiveDirectoryIterator::keyRetourne le chemin et le nom de l'entrée courante du dossier

Description

string RecursiveDirectoryIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin et le nom de l'entrée courante du dossier.



RecursiveDirectoryIterator::next

(PHP 5)

RecursiveDirectoryIterator::nextSe déplace vers la prochaine entrée

Description

void RecursiveDirectoryIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveDirectoryIterator::rewind

(PHP 5)

RecursiveDirectoryIterator::rewindRevient à la position initiale dans le dossier

Description

void RecursiveDirectoryIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



La classe RecursiveFilterIterator

Introduction

Cet itérateur abstrait filtre les valeurs non souhaitée d'un RecursiveIterator. Cette classe devrait être étendue afin d'implémenter des filtres personnalisés. La méthode RecursiveFilterIterator::accept() est abstraite, et doit être implémentée dans la classe étendant RecursiveIterator.

Synopsis de la classe

RecursiveFilterIterator extends FilterIterator implements Iterator , Traversable , OuterIterator , RecursiveIterator {
/* Méthodes */
public void getChildren ( void )
public void hasChildren ( void )
/* Méthodes héritées */
abstract bool FilterIterator::accept ( void )
mixed FilterIterator::current ( void )
mixed FilterIterator::key ( void )
void FilterIterator::next ( void )
void FilterIterator::rewind ( void )
bool FilterIterator::valid ( void )
}

RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0)

RecursiveFilterIterator::__constructCrée un objet RecursiveFilterIterator depuis un objet RecursiveIterator

Description

RecursiveFilterIterator::__construct ( RecursiveIterator $iterator )

Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator.

Liste de paramètres

iterator

L'objet RecursiveIterator à filtrer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RecursiveFilterIterator()

<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
    public function 
accept() {
        
// Accepte l'élément courant si nous pouvons le parcourir
        // ou si sa valeur commence par "test"
        
return $this->hasChildren() || (strpos($this->current(), "test") !== FALSE);
    }
}

$arrary   = array("test1", array("taste2""test3""test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new TestsOnlyFilter($iterator);

foreach(new 
RecursiveIteratorIterator($filter) as $key => $value)
{
    echo 
$value "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1
test3
test4
test5

Exemple #2 Exemple avec RecursiveFilterIterator()

<?php
class StartsWithFilter extends RecursiveFilterIterator {

    protected 
$word;

    public function 
__construct(RecursiveIterator $rit$word) {
        
$this->word $word;
        
parent::__construct($rit);
    }

    public function 
accept() {
        return 
$this->hasChildren() OR strpos($this->current(), $this->word) === 0;
    }
    
    public function 
getChildren() {
        return new 
self($this->getInnerIterator()->getChildren(), $this->word);
    }
}

$array    = array("test1", array("taste2""test3""test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new StartsWithFilter($iterator"test");

foreach(new 
RecursiveIteratorIterator($filter) as $key => $value)
{
    echo 
$value "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1
test3
test4
test5

Voir aussi



RecursiveFilterIterator::getChildren

(PHP 5 >= 5.1.0)

RecursiveFilterIterator::getChildrenRetourne l'itérateur interne contenu dans un objet RecursiveFilterIterator

Description

public void RecursiveFilterIterator::getChildren ( void )

Retourne l'itérateur interne contenu dans l'objet RecursiveFilterIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet RecursiveFilterIterator contenant le fils de l'itérateur interne.

Voir aussi



RecursiveFilterIterator::hasChildren

(PHP 5 >= 5.1.0)

RecursiveFilterIterator::hasChildrenVérifie si un fils existe pour l'itérateur interne de l'élément courant

Description

public void RecursiveFilterIterator::hasChildren ( void )

Vérifie si un fils existe pour l'itérateur interne de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'itérateur interne a un fils, FALSE sinon.

Voir aussi


Sommaire



La classe RecursiveIteratorIterator

Introduction

Peut être utilisé pour itérer sur des itérateurs, récursivement.

Synopsis de la classe

RecursiveIteratorIterator implements OuterIterator , Traversable , Iterator {
/* Méthodes */
public void beginChildren ( void )
public void beginIteration ( void )
public RecursiveIterator callGetChildren ( void )
public bool callHasChildren ( void )
__construct ( Traversable $iterator [, int $mode = LEAVES_ONLY [, int $flags = 0 ]] )
mixed current ( void )
public void endChildren ( void )
public void endIteration ( void )
int getDepth ( void )
public iterator getInnerIterator ( void )
public mixed getMaxDepth ( void )
RecursiveIterator getSubIterator ( void )
mixed key ( void )
void next ( void )
public void nextElement ( void )
void rewind ( void )
public void setMaxDepth ([ string $max_depth = -1 ] )
bool valid ( void )
/* Méthodes héritées */
public Iterator OuterIterator::getInnerIterator ( void )
}

RecursiveIteratorIterator::beginChildren

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::beginChildrenCommence un fils

Description

public void RecursiveIteratorIterator::beginChildren ( void )

Est appelé après l'appel à la méthode RecursiveIteratorIterator::getChildren(), ainsi qu'à la méthode RecursiveIteratorIterator::rewind() associé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveIteratorIterator::beginIteration

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::beginIterationCommence une itération

Description

public void RecursiveIteratorIterator::beginIteration ( void )

Appelé lorsque l'itération commence (après le premier appel à la méthode RecursiveIteratorIterator::rewind()).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveIteratorIterator::callGetChildren

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::callGetChildrenRécupère un fils

Description

public RecursiveIterator RecursiveIteratorIterator::callGetChildren ( void )

Récupère le fils de l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet RecursiveIterator().



RecursiveIteratorIterator::callHasChildren

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::callHasChildrenVérifie si un fils existe

Description

public bool RecursiveIteratorIterator::callHasChildren ( void )

Appelé pour chaque élément pour tester si un fils est disponible.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément a un fils, FALSE sinon.



RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3)

RecursiveIteratorIterator::__constructConstruit un objet RecursiveIteratorIterator

Description

RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = LEAVES_ONLY [, int $flags = 0 ]] )

Crée un objet RecursiveIteratorIterator depuis un objet RecursiveIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur utilisé pour la construction, qui est issu de la méthode RecursiveIterator ou de la méthode IteratorAggregate.

mode

Le mode. Les options disponibles sont LEAVES_ONLY (par défaut), SELF_FIRST et CHILD_FIRST.

flags

Valeurs de retour



RecursiveIteratorIterator::current

(PHP 5)

RecursiveIteratorIterator::currentAccède à la valeur de l'élément courant

Description

mixed RecursiveIteratorIterator::current ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.



RecursiveIteratorIterator::endChildren

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::endChildrenTermine un fils

Description

public void RecursiveIteratorIterator::endChildren ( void )

Appelé lorsque l'on termine le bouclage d'un niveau.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveIteratorIterator::endIteration

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::endIterationTermine un itérateur

Description

public void RecursiveIteratorIterator::endIteration ( void )

Appelé lorsqu'un itérateur se termine (lorsque la méthode RecursiveIteratorIterator::valid() retourne FALSE pour la première fois).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveIteratorIterator::getDepth

(PHP 5)

RecursiveIteratorIterator::getDepthRécupère la profondeur courante de la récursivité de l'itérateur

Description

int RecursiveIteratorIterator::getDepth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur courante de la récursivité de l'itérateur.



RecursiveIteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::getInnerIteratorRécupère l'itérateur interne

Description

public iterator RecursiveIteratorIterator::getInnerIterator ( void )

Récupère le sous-itérateur courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-itérateur courant.



RecursiveIteratorIterator::getMaxDepth

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::getMaxDepthRécupère la profondeur maximale

Description

public mixed RecursiveIteratorIterator::getMaxDepth ( void )

Récupère la profondeur maximale autorisée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur maximale autorisée ou FALSE si une profondeur infinie est autorisée.

Voir aussi



RecursiveIteratorIterator::getSubIterator

(PHP 5)

RecursiveIteratorIterator::getSubIteratorL'itérateur secondaire actif courant

Description

RecursiveIterator RecursiveIteratorIterator::getSubIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur secondaire actif courant.



RecursiveIteratorIterator::key

(PHP 5)

RecursiveIteratorIterator::keyAccède à la clé courante

Description

mixed RecursiveIteratorIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante.



RecursiveIteratorIterator::next

(PHP 5)

RecursiveIteratorIterator::nextDéplace l'itérateur à la position suivante

Description

void RecursiveIteratorIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveIteratorIterator::nextElement

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::nextElementÉlément suivant

Description

public void RecursiveIteratorIterator::nextElement ( void )

Appelé lorsque l'élément suivant est disponible.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveIteratorIterator::rewind

(PHP 5)

RecursiveIteratorIterator::rewindReplace l'itérateur au début

Description

void RecursiveIteratorIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveIteratorIterator::setMaxDepth

(PHP 5 >= 5.1.0)

RecursiveIteratorIterator::setMaxDepthDéfinit la profondeur maximale

Description

public void RecursiveIteratorIterator::setMaxDepth ([ string $max_depth = -1 ] )

Définit la profondeur maximale autorisée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

max_depth

La profondeur maximale autorisée. -1 sera utilisé pour une profondeur infinie.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception si max_depth est inférieur à -1.



RecursiveIteratorIterator::valid

(PHP 5)

RecursiveIteratorIterator::validVérifie si la position courante est valide

Description

bool RecursiveIteratorIterator::valid ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la position courante est valide, FALSE sinon.


Sommaire



La classe RecursiveRegexIterator

Introduction

Cet itérateur récursif peut filtrer un autre itérateur récursif à l'aide d'une expression rationnelle.

Synopsis de la classe

RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Méthodes */
public __construct ( RecursiveIterator $iterator , string $regex [, int $mode [, int $flags [, int $preg_flags ]]] )
public RecursiveRegexIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
public RecursiveIterator RecursiveIterator::getChildren ( void )
public bool RecursiveIterator::hasChildren ( void )
public bool RegexIterator::accept ( void )
public int RegexIterator::getFlags ( void )
public int RegexIterator::getMode ( void )
public int RegexIterator::getPregFlags ( void )
public void RegexIterator::setFlags ( int $flags )
public void RegexIterator::setMode ( int $mode )
public void RegexIterator::setPregFlags ( int $preg_flags )
}

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0)

RecursiveRegexIterator::__constructCrée un nouveau RecursiveRegexIterator

Description

public RecursiveRegexIterator::__construct() ( RecursiveIterator $iterator , string $regex [, int $mode [, int $flags [, int $preg_flags ]]] )

Crée un nouvel itérateur d'expression rationnelle.

Liste de paramètres

iterator

L'itérateur récursif sur lequel l'expression rationnelle sera appliquée.

regex

L'expression rationnelle.

mode

Le mode de l'opération ; voir le détail de la méthode RegexIterator::setMode() pour une liste des modes disponibles.

flags

Drapeaux spéciaux ; voir le détail de la méthode RegexIterator::setFlags() pour une liste des drapeaux disponibles.

preg_flags

Les drapeaux de l'expression rationnelle. Ils dépendent du mode d'opération utilisé :

RegexIterator preg_flags
Mode de l'opération Drapeaux disponibles
RecursiveRegexIterator::ALL_MATCHES Voir la fonction preg_match_all().
RecursiveRegexIterator::GET_MATCH Voir la fonction preg_match().
RecursiveRegexIterator::MATCH Voir la fonction preg_match().
RecursiveRegexIterator::REPLACE Aucun.
RecursiveRegexIterator::SPLIT Voir la fonction preg_split().

Exemples

Exemple #1 Exemple avec RecursiveRegexIterator::__construct()

Crée un nouveau RegexIterator qui filtre toutes les chaînes qui commencent par 'test'.

<?php
$rArrayIterator 
= new RecursiveArrayIterator(array('test1', array('tet3''test4''test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator'/^test/',
    
RecursiveRegexIterator::ALL_MATCHES);

foreach (
$rRegexIterator as $key1 => $value1) {

    if (
$rRegexIterator->hasChildren()) {

        
// Affiche tous les fils
        
echo "Fils : ";
        foreach (
$rRegexIterator->getChildren() as $key => $value) {
            echo 
$value " ";
        }
        echo 
"\n";
    } else {
        echo 
"Aucun fils disponible\n";
    }

}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Aucun fils disponible
Fils : test4 test5

Voir aussi



RecursiveRegexIterator::getChildren

(PHP 5 >= 5.2.0)

RecursiveRegexIterator::getChildrenRetourne un itérateur depuis l'entrée courante

Description

public RecursiveRegexIterator RecursiveRegexIterator::getChildren ( void )

Retourne un itérateur depuis l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un itérateur depuis l'entrée courante, s'il peut être itéré par l'itérateur interne.

Erreurs / Exceptions

Une exception InvalidArgumentException sera émise si l'entrée courante ne contient aucune valeur qui peut être itérée par l'itérateur interne.

Exemples

Exemple #1 Exemple avec RecursiveRegexIterator::getChildren()

<?php
$rArrayIterator 
= new RecursiveArrayIterator(array('test1', array('tet3''test4''test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator'/^test/',
    
RecursiveRegexIterator::ALL_MATCHES);

foreach (
$rRegexIterator as $key1 => $value1) {

    if (
$rRegexIterator->hasChildren()) {

        
// Affiche tous les fils
        
echo "Fils : ";
        foreach (
$rRegexIterator->getChildren() as $key => $value) {
            echo 
$value " ";
        }
        echo 
"\n";
    } else {
        echo 
"Aucun fils de disponible\n";
    }

}
?>

L'exemple ci-dessus va afficher :

Aucun fils de disponible
Fils : test4 test5

Voir aussi



RecursiveRegexIterator::hasChildren

(PHP 5 >= 5.2.0)

RecursiveRegexIterator::hasChildrenVérifie si un itérateur peut être obtenu depuis l'entrée courante

Description

public bool RecursiveRegexIterator::hasChildren ( void )

Vérifie si un itérateur peut être obtenu depuis l'entrée courante. Cet itérateur peut être obtenu via la méthode RecursiveRegexIterator::getChildren().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si un itérateur peut être obtenu depuis l'entrée courante, FALSE sinon.

Exemples

Exemple #1 Exemple avec RecursiveRegexIterator::hasChildren()

<?php
$rArrayIterator 
= new RecursiveArrayIterator(array('test1', array('tet3''test4''test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator'/^test/',
    
RecursiveRegexIterator::ALL_MATCHES);

foreach (
$rRegexIterator as $value) {
    
var_dump($rRegexIterator->hasChildren());
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi


Sommaire



La classe RecursiveTreeIterator

Introduction

Permet l'itération d'un RecursiveIterator pour générer un arbre graphique ASCII.

Synopsis de la classe

RecursiveTreeIterator extends RecursiveIteratorIterator implements OuterIterator , Traversable , Iterator {
/* Constantes */
/* Méthodes */
public void beginChildren ( void )
public RecursiveIterator beginIteration ( void )
public RecursiveIterator callGetChildren ( void )
public bool callHasChildren ( void )
__construct ( RecursiveIterator|IteratorAggregate $it [, int $flags = RecursiveTreeIterator::BYPASS_KEY [, int $cit_flags = CachingIterator::CATCH_GET_CHILD [, int $mode = RecursiveIteratorIterator::SELF_FIRST ]]] )
public string current ( void )
public void endChildren ( void )
public void endIteration ( void )
public string getEntry ( void )
public void getPostfix ( void )
public string getPrefix ( void )
public string key ( void )
public void next ( void )
public void nextElement ( void )
public void rewind ( void )
public void setPrefixPart ( int $part , string $value )
public bool valid ( void )
/* Méthodes héritées */
public RecursiveIterator RecursiveIteratorIterator::callGetChildren ( void )
RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = LEAVES_ONLY [, int $flags = 0 ]] )
RecursiveIterator RecursiveIteratorIterator::getSubIterator ( void )
public void RecursiveIteratorIterator::setMaxDepth ([ string $max_depth = -1 ] )
}

Constantes pré-définies

Types de noeuds RecursiveTreeIterator

RecursiveTreeIterator::BYPASS_CURRENT

RecursiveTreeIterator::BYPASS_KEY

RecursiveTreeIterator::PREFIX_LEFT

RecursiveTreeIterator::PREFIX_MID_HAS_NEXT

RecursiveTreeIterator::PREFIX_MID_LAST

RecursiveTreeIterator::PREFIX_END_HAS_NEXT

RecursiveTreeIterator::PREFIX_END_LAST

RecursiveTreeIterator::PREFIX_RIGHT


RecursiveTreeIterator::beginChildren

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::beginChildrenDébut d'un fils

Description

public void RecursiveTreeIterator::beginChildren ( void )

Appelé lorsque la récursion commence un niveau inférieur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::beginIteration

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::beginIterationDébut d'une itération

Description

public RecursiveIterator RecursiveTreeIterator::beginIteration ( void )

Appelé lorsque l'itération commence (après le premier appel à la méthode RecursiveTreeIterator::rewind()).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet RecursiveIterator.



RecursiveTreeIterator::callGetChildren

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::callGetChildrenRécupère un fils

Description

public RecursiveIterator RecursiveTreeIterator::callGetChildren ( void )

Récupère un fils de l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet RecursiveIterator.



RecursiveTreeIterator::callHasChildren

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::callHasChildrenVérifie la présence d'un fils

Description

public bool RecursiveTreeIterator::callHasChildren ( void )

Appelé pour chaque élément pour tester s'il a un fils ou non.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE s'il a un fils, FALSE sinon.



RecursiveTreeIterator::__construct

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::__constructConstruit un nouvel objet RecursiveTreeIterator

Description

RecursiveTreeIterator::__construct ( RecursiveIterator|IteratorAggregate $it [, int $flags = RecursiveTreeIterator::BYPASS_KEY [, int $cit_flags = CachingIterator::CATCH_GET_CHILD [, int $mode = RecursiveIteratorIterator::SELF_FIRST ]]] )

Construit un nouvel objet RecursiveTreeIterator depuis l'itérateur récursif fourni.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

it

L'objet RecursiveIterator ou l'objet IteratorAggregate sur lequel on doit itérer.

flags

Les drapeaux fournis peuvent affecter le comportement de quelques méthodes. Une liste des drapeaux peut être trouvée dans la section sur les constantes prédéfinies de RecursiveTreeIterator.

caching_it_flags

Drapeaux qui affectent le comportement de la méthode RecursiveCachingIterator utilisée en interne.

mode

Drapeaux qui affectent le comportement de la méthode RecursiveIteratorIterator utilisée en interne.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::current

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::currentRécupère l'élément courant

Description

public string RecursiveTreeIterator::current ( void )

Récupère l'élément courant, avec son préfixe et son suffixe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant, avec son préfixe et son suffixe.



RecursiveTreeIterator::endChildren

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::endChildrenFin d'un fils

Description

public void RecursiveTreeIterator::endChildren ( void )

Appelé lorsque la récursion termine un niveau inférieur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::endIteration

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::endIterationFin de l'itération

Description

public void RecursiveTreeIterator::endIteration ( void )

Appelé lors de la fin de l'itération (lorsque la méthode RecursiveTreeIterator::valid() retourne FALSE pour la première fois).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::getEntry

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::getEntryRécupère l'entrée courante

Description

public string RecursiveTreeIterator::getEntry ( void )

Récupère la partie de l'arbre construit pour l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la partie de l'arbre construit pour l'élément courant.



RecursiveTreeIterator::getPostfix

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::getPostfixRécupère le suffixe

Description

public void RecursiveTreeIterator::getPostfix ( void )

Récupère la chaîne à placer après l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne à placer après l'élément courant.



RecursiveTreeIterator::getPrefix

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::getPrefixRécupère le préfixe

Description

public string RecursiveTreeIterator::getPrefix ( void )

Récupère la chaîne à placer devant l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne à placer devant l'élément courant.



RecursiveTreeIterator::key

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::keyRécupère la clé de l'élément courant

Description

public string RecursiveTreeIterator::key ( void )

Récupère la clé de l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère la clé de l'élément courant.



RecursiveTreeIterator::next

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::nextSe déplace sur l'élément suivant

Description

public void RecursiveTreeIterator::next ( void )

Se déplace sur l'élément suivant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::nextElement

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::nextElementProchain élément

Description

public void RecursiveTreeIterator::nextElement ( void )

Appelé lorsque le prochain élément devient disponible.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::rewindRéinitialise la position de l'itérateur

Description

public void RecursiveTreeIterator::rewind ( void )

Réinitialise la position de l'itérateur au premier élément du premier niveau de l'itérateur interne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::setPrefixPart

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::setPrefixPartDéfinit une partie du préfixe

Description

public void RecursiveTreeIterator::setPrefixPart ( int $part , string $value )

Définit une partie du préfixe utilisé par l'arbre graphique.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

part

Une constante parmi les constantes RecursiveTreeIterator::PREFIX_*.

value

La valeur à assigner à la partie du préfixe spécifiée par le paramètre part.

Valeurs de retour

Aucune valeur n'est retournée.



RecursiveTreeIterator::valid

(PHP 5 >= 5.3.0)

RecursiveTreeIterator::validVérifie la validité

Description

public bool RecursiveTreeIterator::valid ( void )

Vérifie si la position courante est valide.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la position courante est valide, FALSE sinon.


Sommaire



La classe RegexIterator

Introduction

Cet itérateur sert pour réaliser un filtre basé sur une expression rationnelle.

Synopsis de la classe

RegexIterator extends FilterIterator {
/* Constantes */
const integer MATCH = 0 ;
const integer GET_MATCH = 1 ;
const integer ALL_MATCHES = 2 ;
const integer SPLIT = 3 ;
const integer REPLACE = 4 ;
const integer USE_KEY = 1 ;
/* Méthodes */
__construct ( Iterator $iterator , string $regex [, int $mode [, int $flags [, int $preg_flags ]]] )
public bool accept ( void )
public int getFlags ( void )
public int getMode ( void )
public int getPregFlags ( void )
public void setFlags ( int $flags )
public void setMode ( int $mode )
public void setPregFlags ( int $preg_flags )
/* Méthodes héritées */
abstract bool FilterIterator::accept ( void )
mixed FilterIterator::current ( void )
mixed FilterIterator::key ( void )
void FilterIterator::next ( void )
void FilterIterator::rewind ( void )
bool FilterIterator::valid ( void )
}

Constantes pré-définies

Modes d'opération de RegexIterator

RegexIterator::ALL_MATCHES

Retourne toutes les occurrences de l'élément courant (voyez preg_match_all()).

RegexIterator::GET_MATCH

Retourne la première occurrence de l'élément courant (voyez preg_match()).

RegexIterator::MATCH

Effectue une recherche simple pour l'élément courant (voyez preg_match()).

RegexIterator::REPLACE

Remplace l'élément courant (voyez preg_replace() ; pas encore totalement implémenté).

RegexIterator::SPLIT

Retourne les valeurs séparées pour l'élément courant (voyez preg_split()).

Dréapeaux RegexIterator

RegexIterator::USE_KEY

Option spéciale : travaille sur la clé au lieu de la valeur.


RegexIterator::accept

(PHP 5 >= 5.2.0)

RegexIterator::acceptRécupère le statut d'acceptation

Description

public bool RegexIterator::accept ( void )

Applique l'expression rationnelle à (string) RegexIterator::current() (ou RegexIterator::key() si le drapeau RegexIterator::USE_KEY est défini).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si une correspondance est trouvée, FALSE sinon.

Exemples

Exemple #1 Exemple avec RegexIterator::accept()

Cet exemple montre que seuls les éléments correspondant à l'expression rationnelle sont acceptés.

<?php
$names 
= new ArrayIterator(array('Ann''Bob''Charlie''David'));
$filter = new RegexIterator($names'/^[B-D]/');
foreach (
$filter as $name) {
    echo 
$name PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Bob
Charlie
David

Voir aussi



RegexIterator::__construct

(PHP 5 >= 5.2.0)

RegexIterator::__constructCrée un nouvel objet RegexIterator

Description

RegexIterator::__construct() ( Iterator $iterator , string $regex [, int $mode [, int $flags [, int $preg_flags ]]] )

Crée un nouvel objet RegexIterator qui filtre un itérateur Iterator en utilisant une expression rationnelle.

Liste de paramètres

iterator

L'itérateur sur lequel l'expression rationnelle sera appliquée.

regex

L'expression rationnelle.

mode

Le mode de l'opération, voir la méthode RegexIterator::setMode() pour une liste des modes.

flags

Drapeaux spéciaux, voir la méthode RegexIterator::setFlags() pour une liste des drapeaux disponibles.

preg_flags

Les drapeaux de l'expression rationnelle. Ils dépendant du mode de l'opération :

RegexIterator preg_flags
Mode de l'opération Drapeaux disponibles
RegexIterator::ALL_MATCHES Voir la fonction preg_match_all().
RegexIterator::GET_MATCH Voir la fonction preg_match().
RegexIterator::MATCH Voir la fonction preg_match().
RegexIterator::REPLACE Aucun.
RegexIterator::SPLIT Voir la fonction preg_split().

Exemples

Exemple #1 Exemple avec RegexIterator::__construct()

Crée un nouvel objet RegexIterator qui filtre toutes les chaînes commençant par 'test'.

<?php
$arrayIterator 
= new ArrayIterator(array('test 1''another test''test 123'));
$regexIterator = new RegexIterator($arrayIterator'/^test/');

foreach (
$regexIterator as $value) {
    echo 
$value "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

test 1
test 123

Voir aussi



RegexIterator::getFlags

(PHP 5 >= 5.2.0)

RegexIterator::getFlagsRécupère les drapeaux

Description

public int RegexIterator::getFlags ( void )

Retourne les drapeaux, voir la méthode RegexIterator::setFlags() pour une liste complète.

Valeurs de retour

Retourne les drapeaux.

Exemples

Exemple #1 Exemple avec RegexIterator::getFlags()

<?php

$test 
= array ('str1' => 'test 1''teststr2' => 'another test''str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator'/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

if (
$regexIterator->getFlags() & RegexIterator::USE_KEY) {
    echo 
'Filtrage basé sur les clés du tableaux.';
} else {
    echo 
'Filtrage basé sur les valeurs du tableaux.';
}
?>

L'exemple ci-dessus va afficher :

Filtrage basé sur les clés du tableaux.

Voir aussi



RegexIterator::getMode

(PHP 5 >= 5.2.0)

RegexIterator::getModeRetourne le mode de l'opération

Description

public int RegexIterator::getMode ( void )

Retourne le mode de l'opération, voir la méthode RegexIterator::setMode() pour une liste complète.

Valeurs de retour

Retourne le mode de l'opération.

Exemples

Exemple #1 Exemple avec RegexIterator::getMode()

<?php

$test 
= array ('str1' => 'test 1''teststr2' => 'another test''str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator'/^[a-z]+/'RegexIterator::GET_MATCH);

$mode $regexIterator->getMode();
if (
$mode RegexIterator::GET_MATCH) {
    echo 
'Getting the match for each item.';
} elseif (
$mode RegexIterator::ALL_MATCHES) {
    echo 
'Getting all matches for each item.';
} elseif (
$mode RegexIterator::MATCH) {
    echo 
'Getting each item if it matches.';
} elseif (
$mode RegexIterator::SPLIT) {
    echo 
'Getting split pieces of each.';
}
?>

L'exemple ci-dessus va afficher :

Getting the match for each item.

Voir aussi



RegexIterator::getPregFlags

(PHP 5 >= 5.2.0)

RegexIterator::getPregFlagsRetourne les drapeaux de l'expression rationnelle

Description

public int RegexIterator::getPregFlags ( void )

Retourne les drapeaux de l'expression rationnelle, voir la méthode RegexIterator::__construct() pour une liste complète.

Valeurs de retour

Retourne les drapeaux de l'expression rationnelle.

Exemples

Exemple #1 Exemple avec RegexIterator::getPregFlags()

<?php

$test 
= array ('str1' => 'test 1''teststr2' => 'another test''str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator'/\s/'RegexIterator::SPLIT);
$regexIterator->setPregFlags(PREG_SPLIT_NO_EMPTY PREG_SPLIT_OFFSET_CAPTURE);

if (
$regexIterator->getPregFlags() & PREG_SPLIT_NO_EMPTY) {
    echo 
'Ignore les éléments vides';
} else {
    echo 
'Éléments vides pris en compte';
}

?>

L'exemple ci-dessus va afficher :

Ignore les éléments vides

Voir aussi



RegexIterator::setFlags

(PHP 5 >= 5.2.0)

RegexIterator::setFlagsDéfinit les drapeaux

Description

public void RegexIterator::setFlags ( int $flags )

Définit les drapeaux.

Liste de paramètres

flags

Les drapeaux à définir, un masque de constantes de classe.

Les drapeaux disponibles sont listés ci-dessous. Leurs significations actuelles sont décrites dans la section sur les constantes prédéfinies.

Drapeaux pour RegexIterator
Valeur Constante
1 RegexIterator::USE_KEY

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RegexIterator::setFlags()

Crée un nouvel objet RegexIterator qui filtre toutes les entrées dont les clés du tableau commencent par 'test'.

<?php
$test 
= array ('str1' => 'test 1''teststr2' => 'another test''str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator'/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

foreach (
$regexIterator as $key => $value) {
    echo 
$key ' => ' $value "\n";
}
?>

L'exemple ci-dessus va afficher :

teststr2 => another test

Voir aussi



RegexIterator::setMode

(PHP 5 >= 5.2.0)

RegexIterator::setModeDéfinit le mode de l'opération

Description

public void RegexIterator::setMode ( int $mode )

Définit le mode de l'opération.

Liste de paramètres

mode

Le mode de l'opération.

Les modes disponibles sont listés ci-dessous. Leurs significations actuelles sont décrites dans la section sur les constantes prédéfinies.

Les modes pour RegexIterator
Valeur Constante
0 RegexIterator::MATCH
1 RegexIterator::GET_MATCH
2 RegexIterator::ALL_MATCHES
3 RegexIterator::SPLIT
4 RegexIterator::REPLACE

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RegexIterator::setMode()

<?php
$test 
= array ('str1' => 'test 1''test str2' => 'another test''str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
// Filtre tout ce qui commence par 'test ' suivi par un ou plusieurs nombres.
$regexIterator = new RegexIterator($arrayIterator'/^test (\d+)/');
// Mode de l'opération : Remplace la valeur actuelle par celle trouvée par l'expression rationnelle
$regexIterator->setMode(RegexIterator::GET_MATCH);

foreach (
$regexIterator as $key => $value) {
    
// Affiche le(s) nombre(s) qui correspond(ent)
    
echo $key ' => ' $value[1] . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

str1 => 1
str3 => 123

Voir aussi



RegexIterator::setPregFlags

(PHP 5 >= 5.2.0)

RegexIterator::setPregFlagsDéfinit les drapeaux de l'expression rationnelle

Description

public void RegexIterator::setPregFlags ( int $preg_flags )

Définit les drapeaux de l'expression rationnelle.

Liste de paramètres

preg_flags

Les drapeaux de l'expression rationnelle. Voir la méthode RegexIterator::__construct() pour une liste de tous les drapeaux disponibles.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RegexIterator::setPregFlags()

Crée un nouvel objet RegexIterator qui filtre toutes les entrées dont les clés commencent par 'test'.

<?php
$test 
= array ('test 1''another test''test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator'/^test/'RegexIterator::GET_MATCH);

$regexIterator->setPregFlags(PREG_OFFSET_CAPTURE);

foreach (
$regexIterator as $key => $value) {
    
var_dump($value);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}

Voir aussi


Sommaire



La classe SimpleXMLIterator

Introduction

La classe SimpleXMLIterator fournit des itérations récursives sur tous les éléments d'un objet SimpleXMLElement.

Synopsis de la classe

SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator , Traversable , Iterator , Countable {
/* Méthodes */
public mixed current ( void )
object getChildren ( void )
bool hasChildren ( void )
mixed key ( void )
void next ( void )
void rewind ( void )
bool valid ( void )
/* Méthodes héritées */
public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )
public void SimpleXMLElement::addAttribute ( string $name , string $value [, string $namespace ] )
public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] )
public mixed SimpleXMLElement::asXML ([ string $filename ] )
public SimpleXMLElement SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )
public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )
public int SimpleXMLElement::count ( void )
public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false ] )
public string SimpleXMLElement::getName ( void )
public array SimpleXMLElement::getNamespaces ([ bool $recursive = false ] )
public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )
public array SimpleXMLElement::xpath ( string $path )
}

SimpleXMLIterator::current

(PHP 5 >= 5.1.0)

SimpleXMLIterator::currentRetourne l'entrée courante de SimpleXML

Description

public mixed SimpleXMLIterator::current ( void )

Cette méthode retourne l'élément courant comme un objet SimpleXMLIterator ou bien NULL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant comme un objet SimpleXMLIterator ou NULL, en cas d'échec.

Exemples

Exemple #1 Retourne l'élément courant

<?php
$xmlIterator 
= new SimpleXMLIterator('<books><book>PHP basics</book><book>XML basics</book></books>');
var_dump($xmlIterator->current());

$xmlIterator->rewind(); // Retour au premier élément
var_dump($xmlIterator->current());
?>

L'exemple ci-dessus va afficher :

NULL
object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "PHP basics"
}

Voir aussi



SimpleXMLIterator::getChildren

(PHP 5 >= 5.1.0)

SimpleXMLIterator::getChildrenRetourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML

Description

object SimpleXMLIterator::getChildren ( void )

Cette méthode retourne un objet SimpleXMLIterator contenant les sous-éléments de l'élémenmt courant SimpleXMLIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SimpleXMLIterator contenant les sous-éléments de l'objet courant.

Exemples

Exemple #1 Lecture des sous-éléments de l'objet courant

<?php
$xml 
= <<<XML
<books>
    <book>
        <title>PHP Basics</title>
        <author>Jim Smith</author>
    </book>
    <book>XML basics</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator($xml);
for( 
$xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    foreach(
$xmlIterator->getChildren() as $name => $data) {
    echo 
"The $name is '$data' from the class " get_class($data) . "\n";
    }
}
?>

L'exemple ci-dessus va afficher :

The title is 'PHP Basics' from the class SimpleXMLIterator
The author is 'Jim Smith' from the class SimpleXMLIterator



SimpleXMLIterator::hasChildren

(PHP 5 >= 5.1.0)

SimpleXMLIterator::hasChildrenIndique si l'entrée courante de SimpleXML est un objet

Description

bool SimpleXMLIterator::hasChildren ( void )

Cette méthode vérifie si l'objet courant SimpleXMLIterator a des sous-éléments.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée courante a des sous-éléments, FALSE sinon.

Exemples

Exemple #1 Vérifie si un élément a des sous-éléments

<?php
$xml 
= <<<XML
<books>
    <book>
        <title>PHP Basics</title>
        <author>Jim Smith</author>
    </book>
    <book>XML basics</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator$xml );
for( 
$xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    if(
$xmlIterator->hasChildren()) {
        
var_dump($xmlIterator->current());
    }
}
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLIterator)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}



SimpleXMLIterator::key

(PHP 5 >= 5.1.0)

SimpleXMLIterator::keyRetourne la clé courante SimpleXML

Description

mixed SimpleXMLIterator::key ( void )

Cette méthode lit le nom de la balise XML courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la balise XML dans l'objet courant de l'itéraeur SimpleXMLIterator, ou FALSE

Exemples

Exemple #1 Le nom de la balise XML courante

<?php
$xmlIterator 
= new SimpleXMLIterator('<books><book>PHP basics</book><book>XML basics</book></books>');

echo 
var_dump($xmlIterator->key());
$xmlIterator->rewind(); // retour au premier élément
echo var_dump($xmlIterator->key());

?>

L'exemple ci-dessus va afficher :

bool(false)
string(4) "book"



SimpleXMLIterator::next

(PHP 5 >= 5.1.0)

SimpleXMLIterator::nextSe déplace sur l'entrée SimpleXML suivante

Description

void SimpleXMLIterator::next ( void )

Cette méthode déplace l'itérateur SimpleXMLIterator à l'élément suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Passe au prochain élément

<?php
$xmlIterator 
= new SimpleXMLIterator('<books><book>PHP Basics</book><book>XML basics</book></books>');
$xmlIterator->rewind(); // Retour au premier élément
$xmlIterator->next();

var_dump($xmlIterator->current());
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "XML basics"
}



SimpleXMLIterator::rewind

(PHP 5 >= 5.1.0)

SimpleXMLIterator::rewindReplace le pointeur SimpleXML au début

Description

void SimpleXMLIterator::rewind ( void )

Cette méthode remet l'itérateur SimpleXMLIterator au premier élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Retour au premier élément

<?php
$xmlIterator 
= new SimpleXMLIterator('<books><book>PHP Basics</book><book>XML Basics</book></books>');
$xmlIterator->rewind();

var_dump($xmlIterator->current());
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "PHP Basics"
}



SimpleXMLIterator::valid

(PHP 5 >= 5.1.0)

SimpleXMLIterator::validVérifie si une ressource SimpleXML contient d'autres entrées

Description

bool SimpleXMLIterator::valid ( void )

Cette méthode vérifie si l'élément courant est valide, après un appel à SimpleXMLIterator::rewind() ou SimpleXMLIterator::next().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'élément courant est valide, FALSE sinon

Exemples

Exemple #1 Vérifie si un élément est valide

<?php
$xmlIterator 
= new SimpleXMLIterator('<books><book>SQL Basics</book></books>');

$xmlIterator->rewind(); // Retour au premier élément
echo var_dump($xmlIterator->valid()); // bool(true)

$xmlIterator->next(); // advance to the next element
echo var_dump($xmlIterator->valid()); // bool(false) car il y a un seul élément
?>


Sommaire




Interfaces

Sommaire

SPL fournit un jeu d'interfaces.

Voir aussi le mot réservé Interfaces prédéfinies


L'interface Countable

Introduction

Les classes qui implémentent l'interface Countable peuvent être utilisées avec la fonction count().

Sommaire de l'Interface

Countable {
/* Méthodes */
abstract public int count ( void )
}

Countable::count

(PHP 5 >= 5.1.0)

Countable::countCompte le nombre d'éléments d'un objet

Description

abstract public int Countable::count ( void )

Countable::count() est exécutée lorsque la fonction count() est appelée sur un objet qui implémente l'interface Countable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre compté, sous forme integer.

Note:

La valeur retournée est forcée en integer.

Exemples

Exemple #1 Exemple avec Countable::count()

<?php
class myCounter implements Countable {
    public function 
count() {
        static 
$count 0;
        return ++
$count;
    }
}

$counter = new myCounter;

for(
$i=0$i<10; ++$i) {
    echo 
"J'ai été compté " count($counter) . " fois\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

J'ai été compté 1 fois
J'ai été compté 2 fois
J'ai été compté 3 fois
J'ai été compté 4 fois
J'ai été compté 5 fois
J'ai été compté 6 fois
J'ai été compté 7 fois
J'ai été compté 8 fois
J'ai été compté 9 fois
J'ai été compté 10 fois


Sommaire



L'interface OuterIterator

Introduction

Les classes implémentant la classe OuterIterator peuvent être utilisées pour itérer sur des itérateurs.

Sommaire de l'Interface

OuterIterator extends Iterator {
/* Méthodes */
public Iterator getInnerIterator ( void )
/* Méthodes héritées */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

OuterIterator::getInnerIterator

(PHP 5 >= 5.1.0)

OuterIterator::getInnerIteratorRetourne l'itérateur interne pour l'entrée courante

Description

public Iterator OuterIterator::getInnerIterator ( void )

Retourne l'itérateur interne pour l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne pour l'entrée courante.


Sommaire



La classe RecursiveIterator

Introduction

Les classes qui implémentent RecursiveIterator peut être utilisées pour itérer sur d'autres itérateurs récursivement.

Sommaire de l'Interface

RecursiveIterator extends Iterator {
/* Méthodes */
public RecursiveIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

RecursiveIterator::getChildren

(PHP 5 >= 5.1.0)

RecursiveIterator::getChildrenRécupère l'itérateur de l'entrée courante

Description

public RecursiveIterator RecursiveIterator::getChildren ( void )

Retourne l'itérateur pour l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Li'térateur pour l'entrée courante.

Voir aussi



RecursiveIterator::hasChildren

(PHP 5 >= 5.1.0)

RecursiveIterator::hasChildrenVérifie si un itérateur peut être créé depuis l'entrée courante

Description

public bool RecursiveIterator::hasChildren ( void )

Vérifie si un itérateur peut être créé depuis l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée courante peut être parcouru, FALSE sinon.

Voir aussi


Sommaire



L'interface SeekableIterator

Introduction

L'itérateur SeekableIterator.

Sommaire de l'Interface

SeekableIterator extends Iterator {
/* Méthodes */
abstract public void seek ( int $position )
/* Méthodes héritées */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Exemple #1 Utilisation simple

Cet exemple montre comment crée une classe SeekableIterator personnalisée, qui gère une position invalide.

<?php
class MySeekableIterator implements SeekableIterator {

    private 
$position 0;

    private 
$array = array(
        
"premier élément",
        
"second élément",
        
"troisième élément",
        
"quatriéme élément"
    
);

    public function 
seek($position) {
      
$this->position $position;
      
      if (!
$this->valid()) {
          throw new 
OutOfBoundsException("invalid seek position ($position)");
      }
    }

    
/* Méthodes requises par l'interface Iterator */
    
    
public function __construct() {
        
$this->position 0;
    }

    public function 
rewind() {
        
$this->position 0;
    }

    public function 
current() {
        return 
$this->array[$this->position];
    }

    public function 
key() {
        return 
$this->position;
    }

    public function 
next() {
        ++
$this->position;
    }

    public function 
valid() {
        return isset(
$this->array[$this->position]);
    }
}

try {

    
$it = new MySeekableIterator;
    echo 
$it->current(), "\n";
    
    
$it->seek(2);
    echo 
$it->current(), "\n";
    
    
$it->seek(1);
    echo 
$it->current(), "\n";
    
    
$it->seek(10);
    
} catch (
OutOfBoundsException $e) {
    echo 
$e->getMessage();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

premier élément
troisième élément
second élément
invalid seek position (10)

SeekableIterator::seek

(PHP 5 >= 5.1.0)

SeekableIterator::seekRecherche une position

Description

abstract public void SeekableIterator::seek ( int $position )

Recherche la position donnée dans l'itérateur.

Liste de paramètres

position

La position à atteindre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

L'implémentations doit émettre une exception OutOfBoundsException si la position position n'est pas atteignable.

Exemples

Exemple #1 Exemple avec SeekableIterator::seek()

Déplace l'itérateur à la position 3 (ArrayIterator implémente SeekableIterator).

<?php
$array 
= array("apple""banana""cherry""damson""elderberry");
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo 
$iterator->current();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

damson


Sommaire




Exceptions

Sommaire

SPL fournit un jeu d'exceptions standards.

Voir aussi le mot réservé Exceptions prédéfinies


La classe BadFunctionCallException

Introduction

Exception émise si une fonction de rappel n'existe pas ou si certains de ses arguments sont manquants.

Synopsis de la classe

BadFunctionCallException extends LogicException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe BadMethodCallException

Introduction

Exception émise si une méthode de rappel n'existe pas ou si certains de ses arguments sont manquants.

Synopsis de la classe

BadMethodCallException extends BadFunctionCallException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe DomainException

Introduction

Exception lancée si une valeur n'édhère pas à un domaine de données défini et valide.

Synopsis de la classe

DomainException extends LogicException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe InvalidArgumentException

Introduction

Exception émise si un argument de correspond pas à la valeur attendue.

Synopsis de la classe

InvalidArgumentException extends LogicException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe LengthException

Introduction

Exception émise si une taille est invalide.

Synopsis de la classe

LengthException extends LogicException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe LogicException

Introduction

Exception qui représente les erreurs dans la logique du programme. Ce type d'exceptions doit faire directement l'objet d'une correction de votre code.

Synopsis de la classe

LogicException extends Exception {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe OutOfBoundsException

Introduction

Exception émise quand une valeur n'est pas une clé valide. Elle représente les erreurs qui ne peuvent pas être détectées au moment de la compilation.

Synopsis de la classe

OutOfBoundsException extends RuntimeException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe OutOfRangeException

Introduction

Exception émise lorsqu'un index illégal est demandé. Elle représente les erreurs qui devraient être détectées au moment de la compilation.

Synopsis de la classe

OutOfRangeException extends LogicException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe OverflowException

Introduction

Exception émise quand on tente d'ajouter un élément à un conteneur plein.

Synopsis de la classe

OverflowException extends RuntimeException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe RangeException

Introduction

Exception émise pour indique des erreurs d'intervalle lors de l'exécution du programme. Normalement, cela signifie qu'il y a une erreur arithmétique autre qu'un débordement. C'est l'équivalent en cours d'exécution de DomainException.

Synopsis de la classe

RangeException extends RuntimeException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe RuntimeException

Introduction

Exception émise quand une erreur est rencontrée durant l'exécution.

Synopsis de la classe

RuntimeException extends Exception {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe UnderflowException

Introduction

Exception émise quand on tente de supprimer un élément d'un conteneur vide.

Synopsis de la classe

UnderflowException extends RuntimeException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe UnexpectedValueException

Introduction

Exception émise si une valeur ne fait pas partie d'une liste de valeurs. Typiquement, elle survient lorsqu'une fonction appèle une autre fonction et attend que la valeur retournée soit d'un certain type ou d'une certaine valeur, sans inclure les erreurs relatives à l'arithmétique ou au buffer.

Synopsis de la classe

UnexpectedValueException extends RuntimeException {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}



Fonctions SPL


class_implements

(PHP 5 >= 5.1.0)

class_implements Retourne les interfaces implémentées par une classe donnée

Description

array class_implements ( mixed $class [, bool $autoload = true ] )

Cette fonction retourne un tableau avec les noms des interfaces que la classe class ainsi que ses parents implémentent.

Liste de paramètres

class

Un objet (instance) ou une chaîne de caractères (nom de la classe).

autoload

Si TRUE, autorise cette fonction à charger la classe automatiquement grâce à la méthode magique __autoload.

Valeurs de retour

Retourne un tableau ou FALSE en cas d'erreur.

Historique

Version Description
5.1.0 Ajout de l'option pour passer le paramètre class en tant que chaîne de caractères. Ajout du paramètre autoload.

Exemples

Exemple #1 Exemple avec class_implements()

<?php

interface foo { }
class 
bar implements foo {}

print_r(class_implements(new bar));

// Depuis PHP 5.1.0, vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_implements('bar'));


function 
__autoload($class_name) {
   require_once 
$class_name '.php';
}

// Utilisez __autoload pour charger la classe 'non_chargée'
print_r(class_implements('non_chargée'true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [foo] => foo
)

Array
(
    [interface_de_non_chargée] => interface_de_non_chargée
)

Voir aussi



class_parents

(PHP 5 >= 5.1.0)

class_parents Retourne la classe parente d'une classe

Description

array class_parents ( mixed $class [, bool $autoload = true ] )

class_parents() retourne un tableau avec le nom des classes parentes de la classe class.

Liste de paramètres

class

Un objet (instance) ou une chaîne de caractères (nom de la classe).

autoload

Si TRUE, autorise cette fonction à charger la classe automatiquement grâce à la méthode magique __autoload.

Valeurs de retour

Retourne un tableau ou FALSE en cas d'erreur.

Historique

Version Description
5.1.0 Ajout de l'option pour passer le paramètre en tant que chaîne de caractères

Exemples

Exemple #1 Exemple avec class_parents()

<?php

class foo { }
class 
bar extends foo {}

print_r(class_parents(new bar));

// Depuis PHP 5.1.0, vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_implements('bar'));


function 
__autoload($class_name) {
require_once 
$class_name '.php';
}

// Utilisez __autoload pour charger la classe 'non_chargée'
print_r(class_implements('non_chargée'true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [foo] => foo
)

Array
(
   [parent_de_non_chargée] => parent_de_non_chargée
)

Voir aussi



iterator_apply

(PHP 5 >= 5.1.0)

iterator_applyAppelle une fonction pour tous les éléments d'un itérateur

Description

int iterator_apply ( Traversable $iterator , callback $function [, array $args ] )

Appelle une fonction pour tous les éléments d'un itérateur.

Liste de paramètres

iterator

La classe à itérer.

function

La fonction à appeler à chaque élément.

Note: La fonction doit retourner TRUE afin de continuer d'itérer à travers l'itérateur nommé par le paramètre iterator.

args

Les arguments à passer à la fonction de rappel.

Valeurs de retour

Retourne le nombre d'itération.

Exemples

Exemple #1 Exemple avec iterator_apply()

<?php
function print_caps(Iterator $iterator) {
    echo 
strtoupper($iterator->current()) . "\n";
    return 
TRUE;
}

$it = new ArrayIterator(array("Apples""Bananas""Cherries"));
iterator_apply($it"print_caps", array($it));
?>

L'exemple ci-dessus va afficher :

APPLES
BANANAS
CHERRIES

Voir aussi

  • array_walk() - Exécute une fonction sur chacun des éléments d'un tableau



iterator_count

(PHP 5 >= 5.1.0)

iterator_count Compte de nombre d'éléments dans un itérateur

Description

int iterator_count ( Traversable $iterator )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compte les éléments dans un itérateur.

Liste de paramètres

iterator

L'itérateur dont il faut compter les éléments.

Valeurs de retour

Le nombre d'éléments dans l'itérateur iterator.

Exemples

Exemple #1 Exemple avec iterator_count()

<?php
$iterator 
= new ArrayIterator(array('recipe'=>'crêpes''oeufs''lait''farine'));
var_dump(iterator_count($iterator));
?>

L'exemple ci-dessus va afficher :

int(4)



iterator_to_array

(PHP 5 >= 5.1.0)

iterator_to_array Copie un itérateur dans un tableau

Description

array iterator_to_array ( Traversable $iterator [, bool $use_keys = true ] )

Copie les éléments d'un itérateur dans un tableau.

Liste de paramètres

iterator

L'itérateur à copier.

use_keys

S'il faut utiliser les éléments de l'itérateur comme clé.

Valeurs de retour

Un tableau contenant les éléments de l'itérateur iterator.

Historique

Version Description
5.2.1 Ajout du paramètre use_keys.

Exemples

Exemple #1 Exemple avec iterator_to_array()

<?php
$iterator 
= new ArrayIterator(array('recipe'=>'crêpes''oeufs''lait''farine'));
var_dump(iterator_to_array($iteratortrue));
var_dump(iterator_to_array($iteratorfalse));
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["recipe"]=>
  string(7) "crêpes"
  [0]=>
  string(5) "oeufs"
  [1]=>
  string(4) "lait"
  [2]=>
  string(6) "farine"
}
array(4) {
  [0]=>
  string(7) "crêpes"
  [1]=>
  string(5) "oeufs"
  [2]=>
  string(4) "lait"
  [3]=>
  string(6) "farine"
}



spl_autoload_call

(PHP 5 >= 5.1.2)

spl_autoload_call Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée

Description

void spl_autoload_call ( string $class_name )

Cette fonction peut être utilisée pour rechercher manuellement une classe ou une interface en utilisant les fonctions enregistrées __autoload.

Liste de paramètres

class_name

Le nom de la classe cherchée.

Valeurs de retour

Aucune valeur n'est retournée.



spl_autoload_extensions

(PHP 5 >= 5.1.2)

spl_autoload_extensions Enregistre et retourne l'extension du fichier par défaut pour spl_autoload

Description

string spl_autoload_extensions ([ string $file_extensions ] )

Cette fonction peut modifier et vérifier l'extension du fichier pour spl_autoload().

Liste de paramètres

file_extensions

Lorsqu'appelée sans argument, elle retourne simplement la liste courante des extensions, séparées par une virgule. Pour modifier cette liste, appelez simplement la fonction avec la nouvelle liste d'extensions à utiliser dans un chaîne de caractères, dont chaque extension sera séparée par une virgule.

Valeurs de retour

Une liste d'extensions de fichier, délimitée par une virgule pour spl_autoload().



spl_autoload_functions

(PHP 5 >= 5.1.2)

spl_autoload_functions Retourne toutes les fonctions __autoload() enregistrées

Description

array spl_autoload_functions ( void )

Récupère toutes les fonctions __autoload() enregistrées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant toutes les fonctions __autoload enregistrées. Si la pile d'autoload n'est pas active, alors la valeur de retour sera FALSE. Si aucune fonction n'est enregistrée, la valeur retournée sera un tableau vide.



spl_autoload_register

(PHP 5 >= 5.1.2)

spl_autoload_registerEnregistre une fonction comme __autoload()

Description

bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

spl_autoload_register() enregistre une fonction dans la pile __autoload() fournie. Si la pile n'est pas encore active, elle est activée.

Si votre code dispose déjà d'une fonction __autoload(), alors cette fonction doit explicitement enregistrer la pile __autoload. Ceci est du au fait que spl_autoload_register() remplace le cache du moteur pour la fonction __autoload() par soit spl_autoload(), soit spl_autoload_call().

Si vous devez utiliser plusieurs fonctions d'autochargement, la fonction spl_autoload_register() est faîte pour cela. Elle crée une file d'attente de fonctions d'autochargement, et les exécute les unes après les autres, dans l'ordre qu'elles ont été définies. A contrario, la fonction __autoload() ne peut être définie qu'une seule fois.

Liste de paramètres

autoload_function

La fonction __autoload() à enregistrer. Si aucun paramètre n'est fourni, alors, l'implémentation par défaut de la fonction spl_autoload() sera enregistrée.

throw

Ce paramètre spécifie si spl_autoload_register() doit lancer des exceptions en cas d'erreur.

prepend

Si ce paramètre vaut TRUE, spl_autoload_register() ajoutera la fonction au début de la pile de l'autoloader au lieu de l'ajouter à la fin de la pile.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Ajout du support des espaces de noms.
5.3.0 Le paramètre prepend a été ajouté.

Exemples

Exemple #1 Exemple avec spl_autoload_register()

<?php

namespace Foobar;

class 
Foo {
    static public function 
test($name) {
        print 
'[['$name .']]';
    }
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // Depuis PHP 5.3.0

new InexistentClass;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...



spl_autoload_unregister

(PHP 5 >= 5.1.2)

spl_autoload_unregister Efface d'une fonction donnée de l'implémentation __autoload()

Description

bool spl_autoload_unregister ( mixed $autoload_function )

Efface une fonction de la pile __autoload fourni par spl. Si la pile est active et vide après l'effacement de la fonction donnée, alors elle sera désactivée.

Lorsque cette fonction active une pile autoload, toutes les fonctions __autoload existantes ne seront pas réactivées.

Liste de paramètres

autoload_function

La fonction autoload à enregistrer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



spl_autoload

(PHP 5 >= 5.1.2)

spl_autoload Implémentation par défaut d'__autoload()

Description

void spl_autoload ( string $class_name [, string $file_extensions = spl_autoload_extensions() ] )

Cette fonction est prévu pour être utilisé comme implémentation par défaut pour __autoload(). Si rien de plus n'est spécifié et que spl_autoload_register() est appelé sans aucun paramètre, alors cette fonction sera utilisée pour tous les futures appels à __autoload().

Liste de paramètres

class_name

Le nom de la classe (et de l'espace de noms), en minuscule, à instancier.

file_extensions

Par défaut, la fonction vérifie tous les chemins d'inclusion qui pourraient contenir des noms de fichier ajoutés par le nom de classe, utilisant les extensions .inc et .php.

Valeurs de retour

Aucune valeur n'est retournée.



spl_classes

(PHP 5)

spl_classes Retourne les classes SPL disponibles

Description

array spl_classes ( void )

spl_classes() retourne un tableau avec la liste des classes SPL actuellement disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les classes SPL actuellement disponibles.

Exemples

Exemple #1 Exemple avec spl_classes()

<?php

print_r
(spl_classes());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [RecursiveCachingIterator] => RecursiveCachingIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)



spl_object_hash

(PHP 5 >= 5.2.0)

spl_object_hash Retourne l'identifiant de hashage pour un objet donné

Description

string spl_object_hash ( object $obj )

Cette fonction retourne un identifiant unique pour l'objet. Cet identifiant peut être utilisé comme clé de hashage pour stocker les objets ou pour les identifier.

Liste de paramètres

object

N'importe quel objet.

Valeurs de retour

Une chaîne de caractères unique pour chaque élément existant dans l'objet et sera toujours identique pour chaque objet.

Exemples

Exemple #1 Exemple avec spl_object_hash()

<?php
$id 
spl_object_hash($object);
$storage[$id] = $object;
?>

Notes

Note:

Lorsqu'un objet est détruit, son identifiant de hashage pourra être réutilisé pour d'autres objets.


Sommaire



Gestion des fichiers

Sommaire

SPL fournit des classes pour travailler sur les fichiers.


La classe SplFileInfo

Introduction

La classe SplFileInfo fournit une interface de haut niveau avec les informations de fichiers.

Synopsis de la classe

SplFileInfo {
/* Méthodes */
__construct ( string $file_name )
public int getATime ( void )
public string getBasename ([ string $suffix ] )
public int getCTime ( void )
public string getExtension ( void )
public SplFileInfo getFileInfo ([ string $class_name ] )
public string getFilename ( void )
public int getGroup ( void )
public int getInode ( void )
public string getLinkTarget ( void )
public int getMTime ( void )
public int getOwner ( void )
public string getPath ( void )
public SplFileInfo getPathInfo ([ string $class_name ] )
public string getPathname ( void )
public int getPerms ( void )
public string getRealPath ( void )
public int getSize ( void )
public string getType ( void )
public bool isDir ( void )
public bool isExecutable ( void )
public bool isFile ( void )
public bool isLink ( void )
public bool isReadable ( void )
public bool isWritable ( void )
public SplFileObject openFile ([ string $open_mode = r [, bool $use_include_path = false [, resource $context = NULL ]]] )
public void setFileClass ([ string $class_name ] )
public void setInfoClass ([ string $class_name ] )
public void __toString ( void )
}

SplFileInfo::__construct

(PHP 5 >= 5.1.2)

SplFileInfo::__constructConstruit un nouvel objet SplFileInfo

Description

SplFileInfo::__construct ( string $file_name )

Crée un nouvel objet SplFileInfo pour le nom de fichier indiqué. Le fichier n'a pas besoin d'être lisible ou même d'exister.

Liste de paramètres

file_name

Le chemin jusqu'au fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::__construct()

<?php
$info 
= new SplFileInfo('example.php');
if (
$info->isFile()) {
    echo 
$info->getRealPath();
}
?>



SplFileInfo::getATime

(PHP 5 >= 5.1.2)

SplFileInfo::getATimeLit la date de dernier accès au fichier

Description

public int SplFileInfo::getATime ( void )

Lit la date de dernier accès au fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de dernier accès au fichier.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Voir aussi

  • fileatime() - Renvoie la date à laquelle le fichier a été accédé pour la dernière fois



SplFileInfo::getBasename

(PHP 5 >= 5.2.2)

SplFileInfo::getBasenameLe le nom du fichier

Description

public string SplFileInfo::getBasename ([ string $suffix ] )

Cette méthode retourne le nom du fichier, dossier ou lien sans le chemin.

Liste de paramètres

suffix

Un suffixe optionnel à omettre dans le nom de fichier retourné.

Valeurs de retour

Retourne le nom du fichier, sans les informations de chemin.

Exemples

Exemple #1 Exemple avec SplFileInfo::getBasename()

<?php
$info 
= new SplFileInfo('file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "file.txt"
string(8) "file.txt"
string(4) "file" 

Voir aussi



SplFileInfo::getCTime

(PHP 5 >= 5.1.2)

SplFileInfo::getCTimeLit la date de modification du fichier

Description

public int SplFileInfo::getCTime ( void )

Retourne la date de modification du fichier. La date est au format timestamp Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La date de dernier changement, sous forme de timestamp Unix.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getCTime()

<?php
$info 
= new SplFileInfo(__FILE__);
echo 
'Dernière modification : ' date('g:i a'$info->getCTime());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Dernière modification : 1:49 pm

Voir aussi

  • filectime() - Renvoie la date de dernier accès à un inode



SplFileInfo::getExtension

(PHP 5 >= 5.3.6)

SplFileInfo::getExtensionRécupère l'extension d'un fichier

Description

public string SplFileInfo::getExtension ( void )

Récupère l'extension d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant l'extension du fichier, ou une chaîne vide si le fichier n'a pas d'extension.

Exemples

Exemple #1 Exemple avec SplFileInfo::getExtension()

<?php

$info 
= new SplFileInfo('foo.txt');
var_dump($info->getExtension());

$info = new SplFileInfo('photo.jpg');
var_dump($info->getExtension());

$info = new SplFileInfo('something.tar.gz');
var_dump($info->getExtension());

?>

L'exemple ci-dessus va afficher :

string(3) "txt"
string(3) "jpg"
string(2) "gz"

Voir aussi



SplFileInfo::getFileInfo

(PHP 5 >= 5.1.2)

SplFileInfo::getFileInfoObtient un objet SplFileInfo pour un fichier

Description

public SplFileInfo SplFileInfo::getFileInfo ([ string $class_name ] )

Cette méthode obtient un objet SplFileInfo pour un fichier.

Liste de paramètres

class_name

Le nom de la classe SplFileInfo dérivée à utiliser.

Valeurs de retour

Un objet SplFileInfo créé pour le fichier.

Voir aussi



SplFileInfo::getFilename

(PHP 5 >= 5.1.2)

SplFileInfo::getFilenameLit le nom du fichier

Description

public string SplFileInfo::getFilename ( void )

Lit le nom du fichier, sans chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getFilename()

<?php
$info 
= new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/svn.php');
var_dump($info->getFilename());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(11) "svn.php" 

Voir aussi



SplFileInfo::getGroup

(PHP 5 >= 5.1.2)

SplFileInfo::getGroupLit le groupe d'appartenance du fichier

Description

public int SplFileInfo::getGroup ( void )

Lit le groupe d'appartenance du fichier. L'identifiant du groupe est un entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant du groupe est un entier.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getGroup()

<?php
$info 
= new SplFileInfo(__FILE__);
print_r(posix_getgrgid($info->getGroup()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi



SplFileInfo::getInode

(PHP 5 >= 5.1.2)

SplFileInfo::getInodeLit le inode du fichier

Description

public int SplFileInfo::getInode ( void )

Lit le numéro de inode du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de inode du fichier.

Erreurs / Exceptions

Émet une RuntimeException en cas d'erreur.

Voir aussi



SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2)

SplFileInfo::getLinkTargetLit la cible d'un lien symbolique

Description

public string SplFileInfo::getLinkTarget ( void )

Lit la cible d'un lien symbolique.

Note:

Le chemin indiqué n'est pas toujours le chemin réel sur le système de fichiers. Utilisez SplFileInfo::getRealPath() pour déterminer le véritable chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la cible du lien symbolique.

Erreurs / Exceptions

Émet une exception RuntimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getLinkTarget()

<?php
$info 
= new SplFileInfo('/Users/bbieber/workspace');
if (
$info->isLink()) {
    
var_dump($info->getLinkTarget());
    
var_dump($info->getRealPath());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(19) "Documents/workspace"
string(34) "/Users/bbieber/Documents/workspace"

Voir aussi



SplFileInfo::getMTime

(PHP 5 >= 5.1.2)

SplFileInfo::getMTimeLit la date de dernière modification

Description

public int SplFileInfo::getMTime ( void )

Lit la date de dernière modification du contenu du fichier. La date retournée est au format timestamp Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne au format timestamp Unix.

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier



SplFileInfo::getOwner

(PHP 5 >= 5.1.2)

SplFileInfo::getOwnerLit le propriétaire du fichier

Description

public int SplFileInfo::getOwner ( void )

Lit le propriétaire du fichier. Le propriétaire est un entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le propriétaire du fichier, au format entier.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getOwner()

<?php
$info 
= new SplFileInfo('file.txt');
print_r(posix_getpwuid($info->getOwner()));
?>

Voir aussi



SplFileInfo::getPath

(PHP 5 >= 5.1.2)

SplFileInfo::getPathLe le chemin sans le nom de fichier

Description

public string SplFileInfo::getPath ( void )

Retourne le nom du chemin sans le nom de fichier, ou un slash final.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin du fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPath()

<?php
$info 
= new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());


$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "/usr/bin"
string(4) "/usr"

Voir aussi



SplFileInfo::getPathInfo

(PHP 5 >= 5.1.2)

SplFileInfo::getPathInfoCrée un objet SplFileInfo pour un chemin

Description

public SplFileInfo SplFileInfo::getPathInfo ([ string $class_name ] )

Crée un objet SplFileInfo pour le dossier qui contient le fichier courant.

Liste de paramètres

class_name

Le nom d'une classe qui dérive de SplFileInfo.

Valeurs de retour

Retourne un objet SplFileInfo pour le dossier qui contient le fichier courant.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPathInfo()

<?php
$info 
= new SplFileInfo('/usr/bin/php');
$parent_info $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "/usr/bin"

Voir aussi



SplFileInfo::getPathname

(PHP 5 >= 5.1.2)

SplFileInfo::getPathnameLit le chemin d'un fichier

Description

public string SplFileInfo::getPathname ( void )

Retourne le chemin d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le chemin d'un fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPathname()

<?php
$info 
= new SplFileInfo('/usr/bin/php');
var_dump($info->getPathname());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(12) "/usr/bin/php"

Voir aussi



SplFileInfo::getPerms

(PHP 5 >= 5.1.2)

SplFileInfo::getPermsLit les droits d'un fichier

Description

public int SplFileInfo::getPerms ( void )

Lit les droits d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les droits d'un fichier, sous forme d'entier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPerms()

<?php
$info 
= new SplFileInfo('/tmp');
echo 
substr(sprintf('%o'$info->getPerms()), -4);

$info = new SplFileInfo(__FILE__);
echo 
substr(sprintf('%o'$info->getPerms()), -4);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1777
0644



SplFileInfo::getRealPath

(PHP 5 >= 5.2.2)

SplFileInfo::getRealPathLit le chemin absolu d'un fichier

Description

public string SplFileInfo::getRealPath ( void )

Cette méthode résout tous les liens symboliques, les chemins relatifs et retourne le véritable chemin qui mène à un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin du fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getRealPath()

<?php
$info 
= new SplFileInfo('/..//./../../'.__FILE__);
var_dump($info->getRealPath());

$info = new SplFileInfo('/tmp');
var_dump($info->getRealPath());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(28) "/private/tmp/phptempfile.php" 
string(12) "/private/tmp"

Voir aussi



SplFileInfo::getSize

(PHP 5 >= 5.1.2)

SplFileInfo::getSizeLit la taille d'un fichier

Description

public int SplFileInfo::getSize ( void )

Retourne la taille d'un fichier, en octets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille du fichier, en octets.

Erreurs / Exceptions

Une exception RuntimeException sera émise si le fichier n'existe pas, ou si une erreur survient.

Voir aussi



SplFileInfo::getType

(PHP 5 >= 5.1.2)

SplFileInfo::getTypeLit le type de fichier

Description

public string SplFileInfo::getType ( void )

Retourne le type de fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une string représentant le type de fichier. Cela peut être file, link, ou dir

Erreurs / Exceptions

Émet une exception RuntimeException.

Exemples

Exemple #1 Exemple avec SplFileInfo::getType()

<?php

$info 
= new SplFileInfo(__FILE__);
echo 
$info->getType().PHP_EOL;

$info = new SplFileInfo(dirname(__FILE__));
echo 
$info->getType();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

file
dir



SplFileInfo::isDir

(PHP 5 >= 5.1.2)

SplFileInfo::isDirIndique si le fichier est un dossier

Description

public bool SplFileInfo::isDir ( void )

Indique si le fichier est un dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier est un dossier, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isDir()

<?php
$d 
= new SplFileInfo(dirname(__FILE__));
var_dump($d->isDir());

$d = new SplFileInfo(__FILE__);
var_dump($d->isDir());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)



SplFileInfo::isExecutable

(PHP 5 >= 5.1.2)

SplFileInfo::isExecutableIndique si un fichier est exécutable

Description

public bool SplFileInfo::isExecutable ( void )

SplFileInfo::isExecutable() indique si un fichier est exécutable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier est exécutable, FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isExecutable()

<?php
$info 
= new SplFileInfo('/usr/bin/php');
var_dump($info->isExecutable()); 

$info = new SplFileInfo('/usr/bin');
var_dump($info->isExecutable());

$info = new SplFileInfo('foo');
var_dump($info->isExecutable());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(false)



SplFileInfo::isFile

(PHP 5 >= 5.1.2)

SplFileInfo::isFileIndique si un fichier est un véritable fichier

Description

public bool SplFileInfo::isFile ( void )

Indique si un fichier existe et est un véritable fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier existe et qu'il est un véritable fichier (et non pas un lien) et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isFile()

<?php
$info 
= new SplFileInfo(__FILE__);
var_dump($info->isFile());

$info = new SplFileInfo(dirname(__FILE__));
var_dump($info->isFile());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)




SplFileInfo::isReadable

(PHP 5 >= 5.1.2)

SplFileInfo::isReadableIndique si le fichier est lisible

Description

public bool SplFileInfo::isReadable ( void )

Indique si le fichier est lisible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier est lisible, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isReadable()

<?php
$info 
= new SplFileInfo(__FILE__);
var_dump($info->isReadable());

$info = new SplFileInfo('foo');
var_dump($info->isReadable());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)



SplFileInfo::isWritable

(PHP 5 >= 5.1.2)

SplFileInfo::isWritableIndique si on peut écrire dans un fichier

Description

public bool SplFileInfo::isWritable ( void )

Vérifie si le fichier a les autorisations en écriture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier peut être écrit, et FALSE sinon;



SplFileInfo::openFile

(PHP 5 >= 5.1.2)

SplFileInfo::openFileCrée un objet SplFileObject pour le fichier

Description

public SplFileObject SplFileInfo::openFile ([ string $open_mode = r [, bool $use_include_path = false [, resource $context = NULL ]]] )

Crée un objet SplFileObject pour le fichier. Cette fonction est utile car SplFileObject contient des méthodes supplémentaires pour manipuler des fichiers alors que SplFileInfo n'est utile que pour lire des informations, comme les attributs d'un fichier.

Liste de paramètres

open_mode

Le mode d'ouverture du fichier. Voyez la fonction fopen() pour connaître les différents modes. La valeur par défaut est lecture seule.

use_include_path

Lorsque définit à TRUE, le nom du fichier est également recherché dans include_path

context

Reportez-vous à la section contexte de ce manuel pour une description des contextes.

Valeurs de retour

Le fichier ouvert, sous forme d'objet SplFileObject.

Erreurs / Exceptions

Une exception RuntimeException si le fichier ne peut être ouvert (par exemple, droits d'accès insuffisants).

Exemples

Exemple #1 Exemple avec SplFileInfo::openFile()

<?php
$fileinfo 
= new SplFileInfo('/tmp/foo.txt');

if (
$fileinfo->isWritable()) {

    
$fileobj $fileinfo->openFile('a');

    
$fileobj->fwrite("appended this sample text");
}
?>

Voir aussi



SplFileInfo::setFileClass

(PHP 5 >= 5.1.2)

SplFileInfo::setFileClassConfigure le nom de la classe utilisée avec SplFileInfo::openFile()

Description

public void SplFileInfo::setFileClass ([ string $class_name ] )

Configure le nom de la classe utilisée par SplFileInfo pour ouvrir les fichiers avec la méthode openFile(). Le nom de la classe passé à cette méthode doit être dérivé de SplFileObject.

Liste de paramètres

class_name

Le nom de la classe utilisée par openFile().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileInfo::setFileClass()

<?php
// Créée une classe qui étend SplFileObject
class MyFoo extends SplFileObject {}

$info = new SplFileInfo(__FILE__);
// Configure la classe à utiliser
$info->setFileClass('MyFoo');
var_dump($info->openFile());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MyFoo)#2 (0) { } 

Voir aussi



SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2)

SplFileInfo::setInfoClassConfigure la classe utilisée par getFileInfo et getPathInfo

Description

public void SplFileInfo::setInfoClass ([ string $class_name ] )

Utilisez cette méthode pour configurer une classe personnalisée à utiliser avec les méthodes getFileInfo et getPathInfo. La classe utilisée doit hériter de SplFileInfo.

Liste de paramètres

class_name

Le nom de la classe à utiliser.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileInfo::setFileClass()

<?php
// Define a class which extends SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// Configure la classe à utiliser
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MyFoo)#2 (0) { } 

Voir aussi



SplFileInfo::__toString

(PHP 5 >= 5.1.2)

SplFileInfo::__toStringRetourne le chemin d'un fichier sous forme de chaîne

Description

public void SplFileInfo::__toString ( void )

Retourne le chemin d'un fichier sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le chemin, sous forme de chaîne.

Exemples

Exemple #1 Exemple avec SplFileInfo::__toString()

<?php
$info 
= new SplFileInfo('foo');
var_dump($info->__toString());
echo 
$info.PHP_EOL;

$info = new SplFileInfo('/usr/bin/php');
var_dump($info->__toString());
echo 
$info.PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php 


Sommaire



La classe SplFileObject

Introduction

La classe SplFileObject offre une interface orientée objet pour un fichier.

Synopsis de la classe

SplFileObject extends SplFileInfo implements RecursiveIterator , Traversable , Iterator , SeekableIterator {
/* Constantes */
const integer SplFileObject::DROP_NEW_LINE = 1 ;
const integer SplFileObject::READ_AHEAD = 2 ;
const integer SplFileObject::SKIP_EMPTY = 6 ;
const integer SplFileObject::READ_CSV = 8 ;
/* Méthodes */
__construct ( string $filename [, string $open_mode = "r" [, bool $use_include_path = false [, resource $context ]]] )
public string|array current ( void )
public bool eof ( void )
public bool fflush ( void )
public string fgetc ( void )
public array fgetcsv ([ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )
public string fgets ( void )
public string fgetss ([ string $allowable_tags ] )
public bool flock ( int $operation [, int &$wouldblock ] )
public int fpassthru ( void )
public mixed fscanf ( string $format [, mixed &$... ] )
public int fseek ( int $offset [, int $whence = SEEK_SET ] )
public array fstat ( void )
public int ftell ( void )
public bool ftruncate ( int $size )
public int fwrite ( string $str [, int $length ] )
public void getChildren ( void )
public array getCsvControl ( void )
public int getFlags ( void )
public int getMaxLineLen ( void )
public bool hasChildren ( void )
public int key ( void )
public void next ( void )
public void rewind ( void )
public void seek ( int $line_pos )
public void setCsvControl ([ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )
public void setFlags ( int $flags )
public void setMaxLineLen ( int $max_len )
public bool valid ( void )
/* Méthodes héritées */
SplFileInfo::__construct ( string $file_name )
public int SplFileInfo::getATime ( void )
public string SplFileInfo::getBasename ([ string $suffix ] )
public int SplFileInfo::getCTime ( void )
public string SplFileInfo::getExtension ( void )
public SplFileInfo SplFileInfo::getFileInfo ([ string $class_name ] )
public string SplFileInfo::getFilename ( void )
public int SplFileInfo::getGroup ( void )
public int SplFileInfo::getInode ( void )
public string SplFileInfo::getLinkTarget ( void )
public int SplFileInfo::getMTime ( void )
public int SplFileInfo::getOwner ( void )
public string SplFileInfo::getPath ( void )
public SplFileInfo SplFileInfo::getPathInfo ([ string $class_name ] )
public string SplFileInfo::getPathname ( void )
public int SplFileInfo::getPerms ( void )
public string SplFileInfo::getRealPath ( void )
public int SplFileInfo::getSize ( void )
public string SplFileInfo::getType ( void )
public bool SplFileInfo::isDir ( void )
public bool SplFileInfo::isExecutable ( void )
public bool SplFileInfo::isFile ( void )
public bool SplFileInfo::isLink ( void )
public bool SplFileInfo::isReadable ( void )
public bool SplFileInfo::isWritable ( void )
public SplFileObject SplFileInfo::openFile ([ string $open_mode = r [, bool $use_include_path = false [, resource $context = NULL ]]] )
public void SplFileInfo::setFileClass ([ string $class_name ] )
public void SplFileInfo::setInfoClass ([ string $class_name ] )
public void SplFileInfo::__toString ( void )
}

Constantes pré-définies

SplFileObject::DROP_NEW_LINE

Supprime les nouvelles lignes à la fin d'une ligne.

SplFileObject::READ_AHEAD

Lecture sur rewind/next.

SplFileObject::SKIP_EMPTY

Ignore les lignes vierges du fichier.

SplFileObject::READ_CSV

Lit les lignes en tant que lignes CSV.


SplFileObject::__construct

(PHP 5 >= 5.1.0)

SplFileObject::__constructConstruit un nouvel objet fichier

Description

SplFileObject::__construct ( string $filename [, string $open_mode = "r" [, bool $use_include_path = false [, resource $context ]]] )

Construit un nouvel objet fichier.

Liste de paramètres

filename

Le fichier à lire.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Repportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

open_mode

Le mode utilisé pour ouvrir le fichier. Voir la fonction fopen() pour une liste de tous les modes disponibles.

use_include_path

Si l'on doit chercher dans l'include_path le fichier filename.

context

Une ressource de contexte valide créée avec la fonction stream_context_create().

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception RuntimeException si le fichier filename n'a pu être ouvert.

Exemples

Exemple #1 Exemple avec SplFileObject::__construct()

Cet exemple ouvre le fichier courant et parcourt son contenu ligne par ligne.

<?php
$file 
= new SplFileObject(__FILE__);
foreach (
$file as $line) {
    echo 
$line;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line) {
    echo $line;
}
?>

Voir aussi



SplFileObject::current

(PHP 5 >= 5.1.0)

SplFileObject::currentRécupère la ligne courante d'un fichier

Description

public string|array SplFileObject::current ( void )

Récupère la ligne courante d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère la ligne courante d'un fichier. Si le drapeau SplFileObject::READ_CSV est défini, cette méthode retournera un tableau contenant la ligne courante analysée comme étant une donnée CSV.

Exemples

Exemple #1 Exemple avec SplFileObject::current()

<?php
$file 
= new SplFileObject(__FILE__);
foreach (
$file as $k => $line) {
   echo (
$file->key() + 1) . ': ' $file->current();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1: <?php
2: $file = new SplFileObject(__FILE__);
3: foreach ($file as $line) {
4:     echo ($file->key() + 1) . ': ' . $file->current();
5: }
6: ?>

Voir aussi



SplFileObject::eof

(PHP 5 >= 5.1.0)

SplFileObject::eofVérifie si la fin du fichier est atteinte

Description

public bool SplFileObject::eof ( void )

Vérifie si la fin du fichier est atteinte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la fin du fichier a été atteinte, FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileObject::eof()

<?php
$file 
= new SplFileObject("fruits.txt");
while ( ! 
$file->eof()) {
    echo 
$file->fgets();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple
banana
cherry
date
elderberry

Voir aussi



SplFileObject::fflush

(PHP 5 >= 5.1.0)

SplFileObject::fflushÉcrit l'affichage dans le fichier

Description

public bool SplFileObject::fflush ( void )

Force l'écriture de tous les buffers d'affichage dans le fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::fflush()

<?php
$file 
= new SplFileObject('misc.txt''r+');
$file->rewind();
$file->fwrite("Foo");
$file->fflush();
$file->ftruncate($file->ftell());
?>

Voir aussi



SplFileObject::fgetc

(PHP 5 >= 5.1.0)

SplFileObject::fgetcRécupère un caractère depuis le fichier

Description

public string SplFileObject::fgetc ( void )

Récupère un caractère depuis le fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant un seul caractère lu depuis le fichier, ou FALSE si la fin du fichier a été atteinte.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec SplFileObject::fgetc()

<?php
$file 
= new SplFileObject('file.txt');
while (
false !== ($char $file->fgetc())) {
    echo 
"$char\n";
}
?>

Voir aussi



SplFileObject::fgetcsv

(PHP 5 >= 5.1.0)

SplFileObject::fgetcsvRécupère une ligne depuis le fichier et l'analyse comme étant des données CSV

Description

public array SplFileObject::fgetcsv ([ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )

Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV et retourne un tableau contenant tous les champs lus.

Liste de paramètres

delimiter

Le délimiteur de champs (un seul caractère). Par défaut, ce sera une virgule ou la valeur définie en utilisant la méthode SplFileObject::setCsvControl().

enclosure

Le caractère utilisé pour entourer la valeur d'un champ (un seul caractère). Par défait, ce sera un guillemet double ou bien la valeur définie en utilisant la méthode SplFileObject::setCsvControl().

escape

Le caractère d'échappement (un seul caractère). Par défaut, ce sera un anti-slash (\) ou bien la valeur définie en utilisant la méthode SplFileObject::setCsvControl().

Valeurs de retour

Retourne un tableau indexé contenant tous les champs lus, ou FALSE si une erreur survient.

Note:

Une ligne vide d'un fichier CSV sera retourné sous la forme d'un tableau contenu un seul champ NULL sauf si vous utilisez SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, auquel cas, les lignes vides seront ignorées.

Exemples

Exemple #1 Exemple avec SplFileObject::fgetcsv()

<?php
$file 
= new SplFileObject("data.csv");
while (!
$file->eof()) {
    
var_dump($file->fgetcsv());
}
?>

Exemple #2 Exemple avec SplFileObject::READ_CSV

<?php
$file 
= new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach (
$file as $row) {
    list(
$animal$class$legs) = $row;
    
printf("Un %s est un %s avec %d jambes\n"$animal$class$legs);
}
?>

Contenu de animals.csv

crocodile,reptile,4
dauphin,mammifère,0
canard,oiseau,2
koala,mammifère,4
saumon,poisson,0

L'exemple ci-dessus va afficher quelque chose de similaire à :

Un crocodile est un reptile avec 4 jambes
Un dauphin est un mammifère avec 0 jambes
Un canard est un oiseau avec 2 jambes
Un koala est un mammifère avec 4 jambes
Un saumon est un poisson avec 0 jambes

Voir aussi



SplFileObject::fgets

(PHP 5 >= 5.1.0)

SplFileObject::fgetsRécupère une ligne d'un fichier

Description

public string SplFileObject::fgets ( void )

Récupère une ligne d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant la prochaine ligne d'un fichier, ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception RuntimeException si le fichier ne peut être lu.

Exemples

Exemple #1 Exemple avec SplFileObject::fgets()

Cet exemple affiche seulement le contenu du fichier file.txt ligne par ligne.

<?php
$file 
= new SplFileObject("file.txt");
while (!
$file->eof()) {
    echo 
$file->fgets();
}
?>

Voir aussi



SplFileObject::fgetss

(PHP 5 >= 5.1.0)

SplFileObject::fgetssRécupère une ligne d'un fichier et supprime les balises HTML

Description

public string SplFileObject::fgetss ([ string $allowable_tags ] )

Identique à la méthode SplFileObject::fgets(), sauf que la méthode SplFileObject::fgetss() tente de supprimer toutes les balises HTML et PHP du texte lu.

Liste de paramètres

allowable_tags

Vous pouvez utiliser un troisième paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées.

Valeurs de retour

Retourne une chaîne de caractères contenant la prochaine ligne du fichier dont les balises HTML et PHP ont été supprimées, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::fgetss()

<?php
$str 
= <<<EOD
<html><body>
 <p>Bienvenue ! Aujourdh'ui, nous sommes le <?php echo(date('jS')); ?> de <?= date('F'); ?>.</p>
</body></html>
Texte en dehors d'un bloc HTML.
EOD;
file_put_contents("sample.php"$str);

$file = new SplFileObject("sample.php");
while (!
$file->eof()) {
    echo 
$file->fgetss();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


 Bienvenue ! Aujourdh'ui, nous sommes le  de .

Texte en dehors d'un bloc HTML.

Voir aussi



SplFileObject::flock

(PHP 5 >= 5.1.0)

SplFileObject::flockVerrouille ou déverrouille un fichier

Description

public bool SplFileObject::flock ( int $operation [, int &$wouldblock ] )

Verrouille ou déverrouille un fichier, de la même façon que la fonction flock().

Liste de paramètres

operation

Le paramètre operation peut prendre une des constantes suivantes :

  • LOCK_SH pour acquérir un verrou partagé (lecture).
  • LOCK_EX pour acquérir un verrou exclusif (écriture).
  • LOCK_UN pour déverrouiller le fichier (partagé ou exclusif).
  • LOCK_NB pour ne pas bloquer durant le verrouillage (non supporté sous Windows).

wouldblock

Définit à TRUE si le verrou doit être bloquant (condition pour l'errno EWOULDBLOCK).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::flock()

<?php
$file 
= new SplFileObject("/tmp/lock.txt""w");
if (
$file->flock(LOCK_EX)) { // verrou exclusif
    
$file->ftruncate(0);     // coupe le fichier
    
$file->fwrite("Écrire quelque chose ici\n");
    
$file->flock(LOCK_UN);   // libère le verrou
} else {
    echo 
"Impossible de récupérer le verrou !";
}
?>

Voir aussi



SplFileObject::fpassthru

(PHP 5 >= 5.1.0)

SplFileObject::fpassthruAffiche toutes les données en attente sur un pointeur de fichier

Description

public int SplFileObject::fpassthru ( void )

Lit la fin d'un pointeur de fichier depuis la position courante et écrit le résultat dans le buffer d'affichage.

Vous devez appeler la méthode SplFileObject::rewind() pour réinitialiser le pointeur de fichier si vous avez déjà écrit des données dans le fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de caractères lus et passés au buffer d'affichage.

Exemples

Exemple #1 Exemple avec SplFileObject::fpassthru()

<?php

// Ouvre le fichier en mode binaire
$file = new SplFileObject("./img/ok.png""rb");

// Envoi les en-têtes
header("Content-Type: image/png");
header("Content-Length: " $file->getSize());

// Envoi l'image et met fin au script
$file->fpassthru();
exit;

?>

Voir aussi



SplFileObject::fscanf

(PHP 5 >= 5.1.0)

SplFileObject::fscanfAnalyse une entrée d'un fichier suivant un format donné

Description

public mixed SplFileObject::fscanf ( string $format [, mixed &$... ] )

Lit une ligne depuis un fichier et l'analyse suivant le format format spécifié, décrit dans la documentation de la fonction sprintf().

Les espaces blancs dans la chaîne format correspondent aux espaces blacns dans la ligne du fichier. Ceci signifie que une tabulation (\t) dans le format va correspondre à un seul caractère blanc dans le flux d'entrée.

Liste de paramètres

format

Le format, tel que décrit dans la documentation de la fonction sprintf().

...

Les valeurs optionnelles assignées.

Valeurs de retour

Si seul 1 paramètre est passé à cette méthode, la valeur analysée sera retournée sous la forme d'un tableau. Sinon, si les paramètres optionnelles sont passés, la fonction retournera le nombre de valeurs assignées. Les paramètres optionnels doivent être passés par référence.

Exemples

Exemple #1 Exemple avec SplFileObject::fscanf()

<?php
$file 
= new SplFileObject("misc.txt");
while (
$userinfo $file->fscanf("%s %s %s")) {
    list (
$name$profession$countrycode) = $userinfo;
    
// Faire des opérations sur $name $profession
}
?>

Contenu de users.txt

javier   argonaut    pe
hiroshi  sculptor    jp
robert   slacker     us
luigi    florist     it

Voir aussi

  • fscanf() - Analyse un fichier en fonction d'un format



SplFileObject::fseek

(PHP 5 >= 5.1.0)

SplFileObject::fseekSe déplace à une position donnée

Description

public int SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] )

Se déplace à une position donnée d'un fichier, mesurée en octets depuis le début du fichier, obtenue en ajoutant offset à la position spécifiée par le paramètre whence.

Liste de paramètres

offset

La position. Une valeur négative peut être utilisée pour se déplacer en arrière dans le fichier, ce qui peut être utile lorsque SEEK_END est utilisé comme valeur du paramètre whence.

whence

Les valeurs pour le paramètre whence sont :

  • SEEK_SET - La position sera égale à offset octets.
  • SEEK_CUR - La position sera égale à la position courante, plus offset.
  • SEEK_END - La position sera égale à la fin du fichier, plus offset.

Si whence n'est pas spécifié, il prendra la valeur SEEK_SET.

Valeurs de retour

Retourne 0 si le déplacement s'est effectué avec succès, -1 sinon. Notez que la tentative de déplacement après la fin du fichier n'est pas considérée comme une erreur.

Exemples

Exemple #1 Exemple avec SplFileObject::fseek()

<?php
$file 
= new SplFileInfo("somefile.txt");

// Lecture de la première ligne
$data $file->fgets();

// Se déplace au début du fichier
// Identique à $file->rewind();
$file->fseek(0);
?>

Voir aussi

  • fseek() - Modifie la position du pointeur de fichier



SplFileObject::fstat

(PHP 5 >= 5.1.0)

SplFileObject::fstatRécupère les informations d'un fichier

Description

public array SplFileObject::fstat ( void )

Récupère les informations d'un fichier. Comportement identique à la fonction fstat().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant toutes les statistiques d'un fichier ; le format de ce tableau est décrit en détail dans la page du manuel sur la fonction stat().

Exemples

Exemple #1 Exemple avec SplFileObject::fstat()

<?php
$file 
= new SplFileObject("/etc/passwd");
$stat $file->fstat();

// Affiche uniquement la partie associative
print_r(array_slice($stat13));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Voir aussi

  • fstat() - Lit les informations sur un fichier à partir d'un pointeur de fichier
  • stat() - Renvoie les informations à propos d'un fichier



SplFileObject::ftell

(PHP 5 >= 5.1.0)

SplFileObject::ftellRetourne la position courant dans le fichier

Description

public int SplFileObject::ftell ( void )

Retourne la position du pointeur de fichier, qui représentant la position courant dans le flux du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la position du pointeur de fichier, sous la forme d'un entier ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::ftell()

<?php
$file 
= new SplFileObject("/etc/passwd");

// Lit la première ligne
$data $file->fgets();

// Où sommes-nous ?
echo $file->ftell();
?>

Voir aussi

  • ftell() - Renvoie la position courant du pointeur de fichier



SplFileObject::ftruncate

(PHP 5 >= 5.1.0)

SplFileObject::ftruncateCoupe le fichier à une longueur donnée

Description

public bool SplFileObject::ftruncate ( int $size )

Coupe le fichier à une longueur de size octets.

Liste de paramètres

size

La taille à couper.

Note:

Si size est plus grand que le fichier, la portion récupérée sera complétée par des octets vides.

Si size est plus petit que le fichier, le reste du fichier sera perdu.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::ftruncate()

<?php
// Crée un fichier contenant "Hello World!"
$file = new SplFileObject("/tmp/ftruncate""w+");
$file->fwrite("Hello World!");

// Coupe 5 octets
$file->ftruncate(5);

// Réinitialise et lit les données
$file->rewind();
echo 
$file->fgets();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hello

Voir aussi



SplFileObject::fwrite

(PHP 5 >= 5.1.0)

SplFileObject::fwriteÉcrit dans le fichier

Description

public int SplFileObject::fwrite ( string $str [, int $length ] )

Écrit le contenu du paramètre str dans le fichier.

Liste de paramètres

str

La chaîne de caractères à écrire dans le fichier.

length

Si l'argument length est fourni, l'écriture s'arrêtera après l'écriture de length octets ou bien lorsque la fin de la chaîne de caractères sera atteinte ; suivant ce qui survient en premier.

Valeurs de retour

Retourne le nombre d'octets écrits, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::fwrite()

<?php
$file 
= new SplFileObject("fwrite.txt""w");
$written $file->fwrite("12345");
echo 
"$written octets ont été écrits dans le fichier";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

5 octets ont été écrits dans le fichier

Voir aussi

  • fwrite() - Écrit un fichier en mode binaire



SplFileObject::getChildren

(PHP 5 >= 5.1.0)

SplFileObject::getChildrenRécupère le fils

Description

public void SplFileObject::getChildren ( void )

Un objet SplFileObject ne peut pas avoir de fils, aussi, cette méthode retournera toujours NULL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SplFileObject::getCsvControl

(PHP 5 >= 5.2.0)

SplFileObject::getCsvControlRécupère les options pour CSV

Description

public array SplFileObject::getCsvControl ( void )

Récupère le délimiteur ainsi que le caractère utilisé pour entourer les champs lors d'une analyse CSV des données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé contenant le caractère utilisé pour délimiter les champs ainsi que celui utilisé pour les entourer.

Exemples

Exemple #1 Exemple avec SplFileObject::getCsvControl()

<?php
$file 
= new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => ,
    [1] => "
)

Voir aussi



SplFileObject::getCurrentLine

(PHP 5 >= 5.1.2)

SplFileObject::getCurrentLineAlias de SplFileObject::fgets()

Description

Cette méthode est un alias de la méthode SplFileObject::fgets().



SplFileObject::getFlags

(PHP 5 >= 5.1.0)

SplFileObject::getFlagsRécupère les drapeaux pour l'objet SplFileObject

Description

public int SplFileObject::getFlags ( void )

Récupère les drapeaux définis pour l'instance de l'objet SplFileObject, sous la forme d'un entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant les drapeaux.

Exemples

Exemple #1 Exemple avec SplFileObject::getFlags()

<?php
$file 
= new SplFileObject(__FILE__"r");

if (
$file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo 
"Lignes vides ignorées\n";
} else {
    echo 
"Lignes vides prises en compte\n";
}

$file->setFlags(SplFileObject::SKIP_EMPTY);

if (
$file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo 
"Lignes vides ignorées\n";
} else {
    echo 
"Lignes vides prises en compte\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes vides prises en compte
Lignes vides ignorées

Voir aussi



SplFileObject::getMaxLineLen

(PHP 5 >= 5.1.0)

SplFileObject::getMaxLineLenRécupère la longueur maximale d'une ligne

Description

public int SplFileObject::getMaxLineLen ( void )

Récupère la longueur maximale d'une ligne, telle que définie par la méthode SplFileObject::setMaxLineLen().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la longueur maximale d'une ligne si elle a été définie avec la méthode SplFileObject::setMaxLineLen() ; par défaut, 0.

Exemples

Exemple #1 Exemple avec SplFileObject::getMaxLineLen()

<?php
$file 
= new SplFileObject("file.txt");
var_dump($file->getMaxLineLen());

$file->setMaxLineLen(20);
var_dump($file->getMaxLineLen());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
int(20)

Voir aussi

  • Classname::Method()



SplFileObject::hasChildren

(PHP 5 >= 5.1.2)

SplFileObject::hasChildrenVérifie si SplFileObject a un fils

Description

public bool SplFileObject::hasChildren ( void )

Un objet SplFileObject ne peut pas avoir de fils, aussi, cette méthode retournera toujours FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours FALSE

Voir aussi



SplFileObject::key

(PHP 5 >= 5.1.0)

SplFileObject::keyRécupère le numéro de la ligne courant

Description

public int SplFileObject::key ( void )

Récupère le numéro de la ligne courant.

Note:

Ce nombre peut ne pas être exact si la méthode SplFileObject::setMaxLineLen() est utilisée pour lire une longueur fixe du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de la ligne courante.

Exemples

Exemple #1 Exemple avec SplFileObject::key()

<?php
$file 
= new SplFileObject("lipsum.txt");
foreach (
$file as $line) {
    echo 
$file->key() . ". " $line;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
1. Duis nec sapien felis, ac sodales nisl. 
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Exemple #2 Exemple avec SplFileObject::key() et SplFileObject::setMaxLineLen()

<?php
$file 
= new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach (
$file as $line) {
    echo 
$file->key() . ". " $line "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0. Lorem ipsum dolor s
1. it amet, consectetu
2. r adipiscing elit. 
3. 

4. Duis nec sapien fel
5. is, ac sodales nisl
6. . 

7. Lorem ipsum dolor s
8. it amet, consectetu
9. r adipiscing elit.

Voir aussi



SplFileObject::next

(PHP 5 >= 5.1.0)

SplFileObject::nextSe déplace sur la prochaine ligne

Description

public void SplFileObject::next ( void )

Se déplace sur la prochaine ligne du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileObject::next()

<?php
// Lit le fichier ligne par ligne
$file = new SplFileObject("misc.txt");
while (!
$file->eof()) {
    echo 
$file->current();
    
$file->next();
}
?>

Voir aussi



SplFileObject::rewind

(PHP 5 >= 5.1.0)

SplFileObject::rewindRéinitialise le fichier à la première ligne

Description

public void SplFileObject::rewind ( void )

Réinitialise le fichier à la première ligne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception RuntimeException si la réinitialisation a échouée.

Exemples

Exemple #1 Exemple avec SplFileObject::rewind()

<?php
$file 
= new SplFileObject("misc.txt");

// Boucle sur le fichier
foreach ($file as $line) { }

// Se réinitialise sur la première ligne
$file->rewind();

// Affiche la première ligne
echo $file->current();
?>

Voir aussi



SplFileObject::seek

(PHP 5 >= 5.1.0)

SplFileObject::seekSe déplace sur une ligne spécifique

Description

public void SplFileObject::seek ( int $line_pos )

Se déplace sur une ligne spécifique du fichier.

Liste de paramètres

line_pos

Le numéro de la ligne (en commençant par 0) sur laquelle on se déplace.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception LogicException si line_pos est négatif.

Exemples

Exemple #1 Exemple avec SplFileObject::seek()

Cet exemple affiche la 3ème ligne du script, qui sera trouvée à la position n°2.

<?php
$file 
= new SplFileObject(__FILE__);
$file->seek(2);
echo 
$file->current();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$file->seek(2);

Voir aussi



SplFileObject::setCsvControl

(PHP 5 >= 5.2.0)

SplFileObject::setCsvControlDéfinit les options CSV

Description

public void SplFileObject::setCsvControl ([ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )

Définit le délimiteur ainsi que le caractère utilisé pour entourer les champs CSV analysés.

Liste de paramètres

delimiter

Le délimiteur de champs (un seul caractère).

enclosure

Le caractère utilisé pour entourer le champs (un seul caractère).

escape

Le caractère utilisé pour échapper les données (un seul caractère).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileObject::setCsvControl()

<?php
$file 
= new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach (
$file as $row) {
    list (
$fruit$quantity) = $row;
    
// Opération sur les données
}
?>

Contenu de data.csv

<?php
apples|20
bananas|14
cherries|87
?>

Voir aussi



SplFileObject::setFlags

(PHP 5 >= 5.1.0)

SplFileObject::setFlagsDéfinit les drapeaux pour l'objet SplFileObject

Description

public void SplFileObject::setFlags ( int $flags )

Définit les drapeaux à utiliser par l'objet SplFileObject.

Liste de paramètres

flags

Un masque de drapeaux à définir. Voir les constantes SplFileObject pour une liste complète.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileObject::setFlags()

<?php
$file 
= new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach (
$file as $fields) {
    
var_dump($fields);
}
?>

Voir aussi



SplFileObject::setMaxLineLen

(PHP 5 >= 5.1.0)

SplFileObject::setMaxLineLenDéfinit la longueur maximale d'une ligne

Description

public void SplFileObject::setMaxLineLen ( int $max_len )

Définit la longueur maximale d'une ligne.

Liste de paramètres

max_len

La longueur maximale d'une ligne.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileObject::setMaxLineLen()

<?php
$file 
= new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach (
$file as $line) {
    echo 
$line "\n";
}
?>

Contents of lipsum.txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis nec sapien felis, ac sodales nisl.
Nulla vitae magna vitae purus aliquet consequat.

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lorem ipsum dolor s
it amet, consectetu
r adipiscing elit.

Duis nec sapien fel
is, ac sodales nisl
.

Nulla vitae magna v
itae purus aliquet 
consequat.

Voir aussi

  • Classname::Method()



SplFileObject::__toString

(PHP 5 >= 5.1.0)

SplFileObject::__toStringAlias de SplFileObject::current()

Description

Cette méthode est un alias de la méthode SplFileObject::current().



SplFileObject::valid

(PHP 5 >= 5.1.0)

SplFileObject::validVérifie si la fin du fichier a été atteinte

Description

public bool SplFileObject::valid ( void )

Vérifie si la fin du fichier a été atteinte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la fin est atteinte, FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileObject::valid()

<?php
// Boucle sur le fichier, ligne par ligne
$file = new SplFileObject("file.txt");
while (
$file->valid()) {
    echo 
$file->fgets();
}
?>

Voir aussi


Sommaire



La classe SplTempFileObject

Introduction

La classe SplTempFileObject offre une interface orientée objet pour un fichier temporaire.

Synopsis de la classe

SplTempFileObject extends SplFileObject implements SeekableIterator , Iterator , Traversable , RecursiveIterator {
/* Méthodes */
__construct ([ int $max_memory ] )
/* Méthodes héritées */
SplFileObject::__construct ( string $filename [, string $open_mode = "r" [, bool $use_include_path = false [, resource $context ]]] )
public string|array SplFileObject::current ( void )
public bool SplFileObject::eof ( void )
public bool SplFileObject::fflush ( void )
public string SplFileObject::fgetc ( void )
public array SplFileObject::fgetcsv ([ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )
public string SplFileObject::fgets ( void )
public string SplFileObject::fgetss ([ string $allowable_tags ] )
public bool SplFileObject::flock ( int $operation [, int &$wouldblock ] )
public int SplFileObject::fpassthru ( void )
public mixed SplFileObject::fscanf ( string $format [, mixed &$... ] )
public int SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] )
public array SplFileObject::fstat ( void )
public int SplFileObject::ftell ( void )
public bool SplFileObject::ftruncate ( int $size )
public int SplFileObject::fwrite ( string $str [, int $length ] )
public void SplFileObject::getChildren ( void )
public array SplFileObject::getCsvControl ( void )
public int SplFileObject::getFlags ( void )
public int SplFileObject::getMaxLineLen ( void )
public bool SplFileObject::hasChildren ( void )
public int SplFileObject::key ( void )
public void SplFileObject::next ( void )
public void SplFileObject::rewind ( void )
public void SplFileObject::seek ( int $line_pos )
public void SplFileObject::setCsvControl ([ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )
public void SplFileObject::setFlags ( int $flags )
public void SplFileObject::setMaxLineLen ( int $max_len )
public bool SplFileObject::valid ( void )
}

SplTempFileObject::__construct

(PHP 5 >= 5.1.2)

SplTempFileObject::__constructConstruit un nouvel objet représentant un fichier temporaire

Description

SplTempFileObject::__construct ([ int $max_memory ] )

Construit un nouvel objet représentant un fichier temporaire.

Liste de paramètres

max_memory

La mémoire maximale (en octets, par défaut, 2 Mo) à utiliser pour le fichier temporaire. Si un fichier temporaire dépasse cette taille, il sera déplacer sur le système de fichiers, dans le dossier des fichiers temporaires.

Si max_memory est négatif, seule la mémoire sera utilisée. Si max_memory vaut zéro, la mémoire ne sera pas utilisée.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance un exception RuntimeException si une erreur survient.

Exemples

Exemple #1 Exemple avec SplTempFileObject()

Cet exemple écrit un fichier temporaire en mémoire dans lequel nous allons pouvoir écrire et lire des données.

<?php
$temp 
= new SplTempFileObject();
$temp->fwrite("This is the first line\n");
$temp->fwrite("And this is the second.\n");
echo 
$temp->ftell() . " octets écrits dans le fichier temporaire.\n\n";

// Rewind and read what was written
$temp->rewind();
foreach (
$temp as $line) {
    echo 
$line;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

47 octets écrits dans le fichier temporaire.

This is the first line
And this is the second.

Voir aussi


Sommaire




Classes et interfaces diverses

Sommaire

Classes et interfaces qui n'appartiennent pas aux autres catégories SPL.


La classe ArrayObject

Introduction

Cette classe permet aux objets de fonctionner comme des tableaux.

Synopsis de la classe

/* Constantes */
const integer STD_PROP_LIST = 1 ;
const integer ARRAY_AS_PROPS = 2 ;
/* Méthodes */
__construct ([ mixed $input [, int $flags [, string $iterator_class ]]] )
void append ( mixed $value )
void asort ( void )
int count ( void )
array exchangeArray ( mixed $input )
array getArrayCopy ( void )
int getFlags ( void )
ArrayIterator getIterator ( void )
public string getIteratorClass ( void )
void ksort ( void )
void natcasesort ( void )
void natsort ( void )
bool offsetExists ( mixed $index )
mixed offsetGet ( mixed $index )
void offsetSet ( mixed $index , mixed $newval )
void offsetUnset ( mixed $index )
public void serialize ( void )
void setFlags ( int $flags )
void setIteratorClass ( string $iterator_class )
void uasort ( callback $cmp_function )
void uksort ( callback $cmp_function )
public void unserialize ( string $serialized )
}

Constantes pré-définies

Options de ArrayObject

ArrayObject::STD_PROP_LIST

Les propriétés de l'objet on leur fonctionnement normal lorsqu'on y accède depuis la liste (var_dump(), foreach, etc.).

ArrayObject::ARRAY_AS_PROPS

Il est possible d'accéder aux éléments comme des propriétés (lecture et écritre).

Historique

Version Description
5.3.0 Implémente Serializable.


ArrayObject::append

(PHP 5 >= 5.0.0)

ArrayObject::appendAjoute la valeur à la fin d'un tableau

Description

void ArrayObject::append ( mixed $value )

Ajoute un élément en dernier dans le tableau.

Note:

Cette méthode ne peut pas être appelée lorsque l'objet ArrayObject a été construit à partir d'un autre objet. Utilisez alors la méthode ArrayObject::offsetSet().

Liste de paramètres

value

La valeur ajoutée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::append()

<?php
$arrayobj 
= new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five''six'));
var_dump($arrayobj);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
  [4]=>
  array(2) {
    [0]=>
    string(4) "five"
    [1]=>
    string(3) "six"
  }
}

Voir aussi



ArrayObject::asort

(PHP 5 >= 5.2.0)

ArrayObject::asortTrie les éléments par valeur

Description

void ArrayObject::asort ( void )

Trie les éléments par valeur, tout en conservant la corrélation entre les clés et les valeurs. Ce tri sert lorsqu'il faut trier un tableau associatif, et conserver la relation entre les index et leur valeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::asort()

<?php
$fruits 
= array("d" => "citron""a" => "orange""b" => "banane""c" => "pomme");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->asort();

foreach (
$fruitArrayObject as $key => $val) {
    echo 
"$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

b = banane
d = citron
a = orange
c = pomme

Les fruits ont été trié en ordre alphabétique, et leur clé associée a été conservée.



ArrayObject::__construct

(PHP 5 >= 5.0.0)

ArrayObject::__constructConstruit un nouvel objet tableau

Description

ArrayObject::__construct() ([ mixed $input [, int $flags [, string $iterator_class ]]] )

Construit un nouvel objet tableau.

Liste de paramètres

input

Le paramètre input accepte un tableau ou un autre objet.

flags

Option de contrôle du comportement de l'objet ArrayObject.

iterator_class

Spécifie la classe qui sera utilisée pour les itérations de l'objet ArrayObject. ArrayIterator est la classe par défaut.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::__construct()

<?php
$array 
= array('1' => 'one',
               
'2' => 'two',
               
'3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Voir aussi



ArrayObject::count

(PHP 5 >= 5.0.0)

ArrayObject::countRetourne le nombre de propriétés publiques dans l'objet ArrayObject

Description

int ArrayObject::count ( void )

Lit le nombre de propriétés publiques dans l'objet ArrayObject

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de propriétés publiques dans l'objet ArrayObject.

Note:

Lorsque l'objet ArrayObject est construit à partir d'un tableau, toutes les propriétés sont publiques.

Exemples

Exemple #1 Exemple avec ArrayObject::count()

<?php
class Example {
    public 
$public 'prop:public';
    private 
$prv   'prop:private';
    protected 
$prt 'prop:protected';
}

$arrayobj = new ArrayObject(new Example());
var_dump($arrayobj->count());

$arrayobj = new ArrayObject(array('premier','second','troisième'));
var_dump($arrayobj->count());
?>

L'exemple ci-dessus va afficher :

int(1)
int(3)



ArrayObject::exchangeArray

(PHP 5 >= 5.1.0)

ArrayObject::exchangeArrayRemplace un tableau par un autre

Description

array ArrayObject::exchangeArray ( mixed $input )

Remplace le tableau courant par un autre tableau ou un objet.

Liste de paramètres

input

Le nouveau tableau ou objet à utiliser.

Valeurs de retour

Retourne l'ancien tableau.

Exemples

Exemple #1 Exemple avec ArrayObject::exchangeArray()

<?php
// Tableaux de fruits
$fruits = array("citrons" => 1"oranges" => 4"bananes" => 5"pommes" => 10);
// Tableau de villes en Europe
$locations = array('Amsterdam''Paris''Londres');

$fruitsArrayObject = new ArrayObject($fruits);

// Échange des fruits par des villes
$old $fruitsArrayObject->exchangeArray($locations);
print_r($old);
print_r($fruitsArrayObject);

?>

L'exemple ci-dessus va afficher :

Array
(
    [citrons] => 1
    [oranges] => 4
    [bananes] => 5
    [pommes] => 10
)
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => Amsterdam
            [1] => Paris
            [2] => Londres
        )

)



ArrayObject::getArrayCopy

(PHP 5 >= 5.0.0)

ArrayObject::getArrayCopyCrée une copie de l'objet ArrayObject

Description

array ArrayObject::getArrayCopy ( void )

Exporte l'objet ArrayObject vers un tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une copie du tableau. Lorsque l'objet ArrayObject est un objet, le tableau retourné contient les propriétés publiques de cet objet.

Exemples

Exemple #1 Exemple avec ArrayObject::getArrayCopy()

<?php
// Liste de fruits
$fruits = array("citrons" => 1"oranges" => 4"bananes" => 5"pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['poires'] = 4;

// Crée un copie des tableaux
$copy $fruitsArrayObject->getArrayCopy();
print_r($copy);

?>

L'exemple ci-dessus va afficher :

Array
(
    [citrons] => 1
    [oranges] => 4
    [bananes] => 5
    [pommes] => 10
    [poires] => 4
)



ArrayObject::getFlags

(PHP 5 >= 5.1.0)

ArrayObject::getFlagsLit les options de comportement

Description

int ArrayObject::getFlags ( void )

Lit les options de comportement de l'objet ArrayObject. Voyez la méthode ArrayObject::setFlags pour obtenir une liste d'options disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les options de comportement de l'objet ArrayObject.

Exemples

Exemple #1 Exemple avec ArrayObject::getFlags()

<?php
// Liste de fruits
$fruits = array("citrons" => 1"oranges" => 4"bananes" => 5"pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Liste les options courantes
$flags $fruitsArrayObject->getFlags();
var_dump($flags);

// Configure de nouvelles options
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);

// Lit les nouvelles options
$flags $fruitsArrayObject->getFlags();
var_dump($flags);
?>

L'exemple ci-dessus va afficher :

int(0)
int(2)

Voir aussi



ArrayObject::getIterator

(PHP 5 >= 5.0.0)

ArrayObject::getIteratorCrée un nouvel itérateur à partir d'un objet ArrayObject

Description

ArrayIterator ArrayObject::getIterator ( void )

Crée un nouvel itérateur à partir d'un objet ArrayObject.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un itérateur depuis un ArrayObject.

Exemples

Exemple #1 Exemple avec ArrayObject::getIterator()

<?php
$array 
= array('1' => 'one',
               
'2' => 'two',
               
'3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator $arrayobject->getIterator();

while(
$iterator->valid()) {
    echo 
$iterator->key() . ' => ' $iterator->current() . "\n";

    
$iterator->next();
}
?>

L'exemple ci-dessus va afficher :

1 => one
2 => two
3 => three



ArrayObject::getIteratorClass

(PHP 5 >= 5.1.0)

ArrayObject::getIteratorClassLit le nom de la classe de ArrayObject

Description

public string ArrayObject::getIteratorClass ( void )

Lit le nom de la classe utilisé par l'itérateur de tableau utilisé par ArrayObject::getIterator().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la classe d'itérateur utilisé par cet objet.

Exemples

Exemple #1 Exemple avec ArrayObject::getIteratorClass()

<?php
// ArrayIterator personnalisé (hérite de ArrayIterator)
class MonArrayIterator extends ArrayIterator {
    
// implementation personnalisée
}

// Tableau de fruits
$fruits = array("citrons" => 1"oranges" => 4"bananes" => 5"pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Lit le nom de la classe courante
$className $fruitsArrayObject->getIteratorClass();
var_dump($className);

// Configure le nom de la nouvelle classe
$fruitsArrayObject->setIteratorClass('MyArrayIterator');

// Lit le nom de la classe du nouvel itérateur
$className $fruitsArrayObject->getIteratorClass();
var_dump($className);
?>

L'exemple ci-dessus va afficher :

tring(13) "ArrayIterator"
string(15) "MonArrayIterator"

Voir aussi



ArrayObject::ksort

(PHP 5 >= 5.2.0)

ArrayObject::ksortTri un tableau par clé

Description

void ArrayObject::ksort ( void )

Trie les éléments par clé, en conservant la relation avec les éléments. C'est le tri classique sur les tableaux associatifs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::ksort()

<?php
$fruits 
= array("d" => "citron""a" => "orange""b" => "banane""c" => "pomme");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->ksort();

foreach (
$fruitArrayObject as $key => $val) {
    echo 
"$key = $val\n";
}
 
?>

L'exemple ci-dessus va afficher :

a = orange
b = banane
c = pomme
d = citron



ArrayObject::natcasesort

(PHP 5 >= 5.2.0)

ArrayObject::natcasesortTri un tableau en utilisant le tri naturel sans la casse

Description

void ArrayObject::natcasesort ( void )

Cette méthode est la version insensible à la casse de ArrayObject::natsort.

Cette méthode implémente un algorithme de tri qui ordonne les chaînes alpha-numérique de la même façon qu'un humain le ferait. Ceci est décrit comme un tri naturel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::natcasesort()

<?php
$array 
= array('IMG0.png''img12.png''img10.png''img2.png''img1.png''IMG3.png');

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo 
"Tri standard\n";
print_r($arr1);

$arr2->natcasesort();
echo 
"\nTri naturel\n";
print_r($arr2);
?>

L'exemple ci-dessus va afficher :

Tri standard
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => IMG0.png
            [5] => IMG3.png
            [4] => img1.png
            [2] => img10.png
            [1] => img12.png
            [3] => img2.png
        )

)

Tri naturel
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => IMG0.png
            [4] => img1.png
            [3] => img2.png
            [5] => IMG3.png
            [2] => img10.png
            [1] => img12.png
        )

)

For more information see: Martin Pool's » Natural Order String Comparison page.



ArrayObject::natsort

(PHP 5 >= 5.2.0)

ArrayObject::natsortTrie les éléments avec un tri naturel

Description

void ArrayObject::natsort ( void )

Cette méthode implémente un algorithme de tri qui place les chaînes alphanumériques dans le même ordre que celui qu'un humain utiliserait, tout en conservant la correlation entre les clé et les valeurs. Ceci porte le nom de tri naturel. Par exemple, le tri naturel se distingue du tri informatique, tel qu'utilisé dans ArrayObject::asort, comme illustré ci-dessous.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::natsort()

<?php
$array 
= array("img12.png""img10.png""img2.png""img1.png");

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo 
"Tri standard\n";
print_r($arr1);

$arr2->natsort();
echo 
"\nTri en ordre naturel\n";
print_r($arr2);
?>

L'exemple ci-dessus va afficher :

Tri standard
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [3] => img1.png
            [1] => img10.png
            [0] => img12.png
            [2] => img2.png
        )

)

Tri en ordre naturel
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [3] => img1.png
            [2] => img2.png
            [1] => img10.png
            [0] => img12.png
        )

)

Pour plus d'informations, voyez le site de Martin Pool » Natural Order String Comparison.



ArrayObject::offsetExists

(PHP 5 >= 5.0.0)

ArrayObject::offsetExistsVérifie si un index existe

Description

bool ArrayObject::offsetExists ( mixed $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index à vérifier.

Valeurs de retour

TRUE if the requested index exists, otherwise FALSE

Exemples

Exemple #1 Exemple avec ArrayObject::offsetExists()

<?php
$arrayobj 
= new ArrayObject(array('zero''one''example'=>'e.g.'));
var_dump($arrayobj->offsetExists(1));
var_dump($arrayobj->offsetExists('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)



ArrayObject::offsetGet

(PHP 5 >= 5.0.0)

ArrayObject::offsetGetRetourne la valeur de l'index spécifié

Description

mixed ArrayObject::offsetGet ( mixed $index )

Liste de paramètres

index

L'index demandé.

Valeurs de retour

La valeur à l'index ou FALSE.

Exemples

Exemple #1 Exemple avec ArrayObject::offsetGet()

<?php
$arrayobj 
= new ArrayObject(array('zero'7'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

L'exemple ci-dessus va afficher :

int(7)
string(4) "e.g."
bool(false)



ArrayObject::offsetSet

(PHP 5 >= 5.0.0)

ArrayObject::offsetSetDéfinie $newval comme valeur à l'$index spécifié

Description

void ArrayObject::offsetSet ( mixed $index , mixed $newval )

Définit newval comme valeur à l'index index spécifié.

Liste de paramètres

index

L'index à définir.

newval

La nouvelle valeur de l'index index.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::offsetSet()

<?php
class Example {
    public 
$property 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4'four');
$arrayobj->offsetSet('group', array('g1''g2'));
var_dump($arrayobj);

$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null'last');
var_dump($arrayobj);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (3) {
  ["property"]=>
  string(11) "prop:public"
  [4]=>
  string(4) "four"
  ["group"]=>
  array(2) {
    [0]=>
    string(2) "g1"
    [1]=>
    string(2) "g2"
  }
}
object(ArrayObject)#3 (3) {
  [0]=>
  string(4) "zero"
  [1]=>
  string(3) "one"
  [2]=>
  string(4) "last"
}

Voir aussi



ArrayObject::offsetUnset

(PHP 5 >= 5.0.0)

ArrayObject::offsetUnsetEfface la valeur à l'$index spécifié

Description

void ArrayObject::offsetUnset ( mixed $index )

Efface la valeur à l'$index spécifié.

Liste de paramètres

index

L'index à effacer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::offsetUnset()

<?php
$arrayobj 
= new ArrayObject(array(0=>'zero',2=>'two'));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (1) {
  [0]=>
  string(4) "zero"
}



ArrayObject::serialize

(PHP 5 >= 5.3.0)

ArrayObject::serializeLinéarise un ArrayObject

Description

public void ArrayObject::serialize ( void )

Linéarise un ArrayObject.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La représentation linéarisée d'un objet ArrayObject.

Exemples

Exemple #1 Exemple avec ArrayObject::serialize()

<?php
$o 
= new ArrayObject();

$s1 serialize($o);
$s2 $o->serialize();

var_dump($s1);
var_dump($s2);
?>

L'exemple ci-dessus va afficher :

string(45) "C:11:"ArrayObject":21:{x:i:0;a:0:{};m:a:0:{}}"
string(21) "x:i:0;a:0:{};m:a:0:{}"

Voir aussi



ArrayObject::setFlags

(PHP 5 >= 5.1.0)

ArrayObject::setFlagsConfigure les options de comportement

Description

void ArrayObject::setFlags ( int $flags )

Configure les options qui changent le comportement des objets ArrayObject.

Liste de paramètres

flags

Le nouveau comportement ArrayObject. Cela peut être un champ de bit ou des constantes nommées. L'utilisation des constantes est fortement encouragée, pour assurer la compatibilité avec les futures versions.

Les options de comportement disponible sont listées ci-dessous. Leur signification est décrite dans les constantes prédéfinies.

Options de comportement de ArrayObject
Valeur Constante
1 ArrayObject::STD_PROP_LIST
2 ArrayObject::ARRAY_AS_PROPS

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::setFlags()

<?php
// Liste de fruits
$fruits = array("citrons" => 1"oranges" => 4"bananes" => 5"pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Utilisation des clés de tableau comme propriété
var_dump($fruitsArrayObject->citrons);
// Configure le tableau pour que les clé de tableau puisse être utilisée comme propriétés
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);
// Essaie à nouveau
var_dump($fruitsArrayObject->citrons);

?>

L'exemple ci-dessus va afficher :

NULL
int(1)



ArrayObject::setIteratorClass

(PHP 5 >= 5.1.0)

ArrayObject::setIteratorClassDéfinit le nom de la classe de l'itérateur pour l'objet ArrayObject

Description

void ArrayObject::setIteratorClass ( string $iterator_class )

Définit le nom de la classe de l'itérateur du tableau, utilisé par ArrayObject::getIterator().

Liste de paramètres

iterator_class

Le nom de la classe de l'itérateur à utiliser pour itérer sur cet objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::setIteratorClass()

<?php
// ArrayIterator personnalisé (hérite de ArrayIterator)
class MonArrayIterator extends ArrayIterator {
    
// implementation personnelle
}

// Liste de fruits
$fruits = array("citrons" => 1"oranges" => 4"bananes" => 5"pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Affecte le nouveau nom de classe d'itération
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
print_r($fruitsArrayObject->getIterator());

?>

L'exemple ci-dessus va afficher :

MonArrayIterator Object
(
    [storage:ArrayIterator:private] => ArrayObject Object
        (
            [storage:ArrayObject:private] => Array
                (
                    [citrons] => 1
                    [oranges] => 4
                    [bananes] => 5
                    [pommes] => 10
                )

        )

)



ArrayObject::uasort

(PHP 5 >= 5.2.0)

ArrayObject::uasortTrie les éléments avec une fonction utilisateur

Description

void ArrayObject::uasort ( callback $cmp_function )

Cette fonction trie les éléments tout en conservant leur correlation avec la clé associée, en utilisant une fonction de comparaison utilisateur.

Cette fonction sert lors du tri de tableaux associatifs, où l'ordre des éléments est important.

Liste de paramètres

cmp_function

La fonction cmp_function doit accepter deux paramètres, qui contiendront les éléments. La fonction de comparaison doit retourner un entier qui peut être négatif, nul ou positif, suivant que le premier paramètre est considéré comme inférieur, égal ou supérieur au second.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::uasort()

<?php
// Fonction de comparaison
function cmp($a$b) {
    if (
$a == $b) {
        return 
0;
    }
    return (
$a $b) ? -1;
}

// Les tableaux à trier
$array = array('a' => 4'b' => 8'c' => -1'd' => -9'e' => 2'f' => 5'g' => 3'h' => -4);
$arrayObject = new ArrayObject($array);
print_r($arrayObject);

// Trie et affiche le tableau
$arrayObject->uasort('cmp');
print_r($arrayObject);
?>

L'exemple ci-dessus va afficher :

ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [a] => 4
            [b] => 8
            [c] => -1
            [d] => -9
            [e] => 2
            [f] => 5
            [g] => 3
            [h] => -4
        )

)
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [d] => -9
            [h] => -4
            [c] => -1
            [e] => 2
            [g] => 3
            [a] => 4
            [f] => 5
            [b] => 8
        )

)



ArrayObject::uksort

(PHP 5 >= 5.2.0)

ArrayObject::uksortTrie les éléments par clé avec une fonction utilisateur

Description

void ArrayObject::uksort ( callback $cmp_function )

Cette fonction trie les clés des éléments en utilisant une fonction utilisateur de comparaison. La correlation entre les clés et les éléments est conservée.

Liste de paramètres

cmp_function

La fonction de rappel pour les comparaisons.

La fonction cmp_function doit accepter deux paramètres, qui contiendront les clés des éléments. La fonction de comparaison doit retourner un entier qui peut être négatif, nul ou positif, suivant que le premier paramètre est considéré comme inférieur, égal ou supérieur au second.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::uksort()

<?php
function cmp($a$b) {
    
$a preg_replace('@^(le|la|les|un|une|des) @'''$a);
    
$b preg_replace('@^(le|la|les|un|une|des) @'''$b);
    return 
strcasecmp($a$b);
}

$array = array("Jean" => 1"la Terre" => 2"une pomme" => 3"une banane" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

foreach (
$arrayObject as $key => $value) {
    echo 
"$key$value\n";
}
?>

L'exemple ci-dessus va afficher :

une banane: 4
Jean: 1
une pomme: 3
la Terre: 2



ArrayObject::unserialize

(PHP 5 >= 5.3.0)

ArrayObject::unserializeDélinéarisation d'un ArrayObject

Description

public void ArrayObject::unserialize ( string $serialized )

Délinéarise d'un objet ArrayObject linéarisé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

serialized

L'objet ArrayObject linéarisé.

Valeurs de retour

The unserialized ArrayObject.

Voir aussi


Sommaire



L'interface SplObserver

Introduction

L'interface SplObserver est utilisée conjointement avec la classe SplSubject pour l'implémentation du patron de conception Observateur.

Sommaire de l'Interface

SplObserver {
/* Méthodes */
abstract public void update ( SplSubject $subject )
}

SplObserver::update

(PHP 5 >= 5.1.0)

SplObserver::updateRéception d'une mise à jour depuis un sujet

Description

abstract public void SplObserver::update ( SplSubject $subject )

Cette méthode est appelée lorsqu'un des objets SplSubject depuis lequel l'observateur est attaché, appelle la méthode SplSubject::notify().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

subject

L'oobjet SplSubject notifiant l'observateur d'une mise à jour.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire



L'interface SplSubject

Introduction

L'interface SplSubject est utilisée conjointement avec la classe SplObserver pour l'implémentation du patron de conception Observateur.

Sommaire de l'Interface

SplSubject {
/* Méthodes */
abstract public void attach ( SplObserver $observer )
abstract public void detach ( SplObserver $observer )
abstract public void notify ( void )
}

SplSubject::attach

(PHP 5 >= 5.1.0)

SplSubject::attachAttache un SplObserver

Description

abstract public void SplSubject::attach ( SplObserver $observer )

Attache un SplObserver. Il sera ainsi notifier des mises à jour.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

observer

L'observateur SplObserver à attacher.

Valeurs de retour

Aucune valeur n'est retournée.



SplSubject::detach

(PHP 5 >= 5.1.0)

SplSubject::detachDétache un observateur

Description

abstract public void SplSubject::detach ( SplObserver $observer )

Détache un observateur d'un sujet. Il ne sera ainsi plus notifier des mises à jour.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

observer

L'observateur SplObserver à détacher.

Valeurs de retour

Aucune valeur n'est retournée.



SplSubject::notify

(PHP 5 >= 5.1.0)

SplSubject::notifyNotifie un observateur

Description

abstract public void SplSubject::notify ( void )

Notifie tous les observateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire





Gestion des types SPL


Introduction

Cette extension tend à aider les développeurs à faire de PHP un langage à type fort; cela peut être une bonne solution pour assurer le typage scalaire. Il fournit des classes pour gérer des objets tels que integer, float, bool, enum, etc.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/SPL_Types.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




La classe SplInt

Introduction

La classe SplInt est utilisée pour assurer le typage fort du type booléen.

Synopsis de la classe

SplInt {
/* Méthodes */
__construct ( integer $input )
}

SplInt::__construct

(PECL spl_types >= 0.1.0)

SplInt::__constructConstruit un objet de type integer

Description

SplInt::__construct() ( integer $input )

Ce constructeur est utilisé pour attribuer et garantir le type de l'objet "Integer".

Liste de paramètres

input

Le paramètre input prend un integer et produit une exception UnexpectedValueException si autre donnée lui est passée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplInt::__construct()

<?php
$int 
= new SplInt(94);

try {
    
$int 'Essayez de transtyper une chaîne pour le fun';
} catch (
UnexpectedValueException $uve) {
    echo 
$uve->getMessage() . PHP_EOL;
}

var_dump($int);
echo 
$int// Affiche 94
?>

L'exemple ci-dessus va afficher :

Value not an integer
object(SplInt)#1 (1) {
  ["__default"]=>
  int(94)
}
94


Sommaire



La classe SplFloat

Introduction

La classe SplFloat est utilisée pour assurer le typage fort du type booléen.

Synopsis de la classe

SplFloat {
/* Méthodes */
__construct ( float $input )
}

SplFloat::__construct

(PECL spl_types >= 0.1.0)

SplFloat::__constructConstruit un objet de type nombre décimal

Description

SplFloat::__construct() ( float $input )

Ce constructeur est utilisé pour attribuer et garantir le type de l'objet "Float".

Liste de paramètres

input

Le paramètre input prend un float ou un integer. Si un integer est passé, il sera converti en float.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFloat::__construct()

<?php
$float    
= new SplFloat(3.154);
$newFloat = new SplFloat(3);

try {
    
$float 'Essayez de transtyper cette chaîne pour le fun';
} catch (
UnexpectedValueException $uve) {
    echo 
$uve->getMessage() . PHP_EOL;
}

var_dump($float);
var_dump($newFloat);
?>

L'exemple ci-dessus va afficher :

Value not a float
object(SplFloat)#1 (1) {
  ["__default"]=>
  float(3.154)
}
object(SplFloat)#2 (1) {
  ["__default"]=>
  float(3)
}


Sommaire



La classe SplEnum

Introduction

La classe SplEnum est utilisée pour émuler et créer des objets d'énumération nativement en PHP.

Synopsis de la classe

abstract SplEnum {
/* Méthodes */
__construct ( void )
}

SplEnum::__construct

(PECL spl_types >= 0.1.0)

SplEnum::__constructConstruit un objet d'énumération

Description

SplEnum::__construct() ( void )

Ce constructeur est utilisé pour attribuer et garantir le type de l'objet d'énumération.

Liste de paramètres

input

Le paramètre input prendre un integer et produit une exception UnexpectedValueException si autre chose lui est passé.

strict

Une variable de type boolean pour indiquer la souplesse du typage.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplEnum::__construct()

<?php

class EnumOne extends SplEnum
{
    const 
__default 1;
}

class 
EnumTwo extends SplEnum
{
    const 
__default 2;
}

class 
EnumThree extends SplEnum
{
    const 
__default 3;
}

$enumOne   = new EnumOne();
$enumTwo   = new EnumTwo();
$enumThree = new EnumThree();


echo 
'Enum un    : ' $enumOne   PHP_EOL;
echo 
'Enum deux  : ' $enumTwo   PHP_EOL;
echo 
'Enum trois : ' $enumThree PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Enum un    : 1
Enum deux  : 2
Enum trois : 3


Sommaire



La classe SplBool

Introduction

La classe SplBool est utilisée pour assurer le typage fort du type booléen.

Synopsis de la classe

SplBool {
/* Méthodes */
__construct ( void )
}

SplBool::__construct

(PECL spl_types >= 0.1.0)

SplBool::__constructConstruit un objet de type booléen

Description

SplBool::__construct() ( void )

Ce constructeur est utilisé pour attribuer et garantir le type de l'objet booléen.

Liste de paramètres

input

Le paramètre input prendre un boolean et produit une exception UnexpectedValueException si autre chose lui est passé.

strict

Une variable de type boolean pour indiquer la souplesse du typage.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplBool::__construct()

<?php
$one 
= new SplBool(true);
$two = new SplBool(1);

var_dump($one);
var_dump($two);
?>

L'exemple ci-dessus va afficher :

object(SplBool)#1 (1) {
  ["__default"]=>
  bool(true)
}
object(SplBool)#1 (1) {
  ["__default"]=>
  bool(true)
}


Sommaire



La classe SplString

Introduction

La classe SplString sert à assurer le typage fort des chaînes.

Synopsis de la classe

SplString {
/* Méthodes */
__construct ( string $input )
}

SplString::__construct

(PECL spl_types >= 0.1.0)

SplString::__constructConstruit un objet de type chaîne

Description

SplString::__construct() ( string $input )

Construit un objet de type chaîne.

Liste de paramètres

input

Le paramètre input accepte une chaîne de caractères Une exception UnexpectedValueException est émise si un problème survient.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplString::__construct()

<?php
$string 
= new SplString("Test");

try {
    
$string = array();
} catch (
UnexpectedValueException $uve) {
    echo 
$uve->getMessage() . PHP_EOL;
}

var_dump($string);
echo 
$string// Outputs "Test"
?>

L'exemple ci-dessus va afficher :

Value not a string
object(SplString)#1 (1) {
  ["__default"]=>
  string(7) "Test"
}
Testing


Sommaire




Flux


Introduction

Les flux ("streams" en anglais) ont été introduits en PHP 4.3.0 comme méthode de généralisation des fichiers, sockets, connexions réseau, données compressées et autres opérations du même type, qui partagent des opérations communes. Dans sa définition la plus simple, un flux est une ressource qui présente des capacités de flux : c'est-à-dire que ces objets peuvent être lus ou recevoir des écritures de manière linéaire, et dispose aussi de moyen d'accéder à des positions arbitraires dans le flux.

Un gestionnaire (littéralement, wrapper en anglais), est une fonction qui indique comment le flux se comporte spécifiquement. C'est le cas du gestionnaire http, qui sait comment traduire une URL en une requête HTTP/1.0 sur un serveur distant. Il existe de nombreux gestionnaires intégrés à PHP par défaut (voir Liste des protocoles et des gestionnaires supportés), et, de plus, des gestionnaires spécifiques peuvent être ajoutés dans les scripts PHP avec la fonction stream_register_wrapper(), ou bien directement par une autre extension, en utilisant l'API C de Working with streams. Grâce à la souplesse des gestionnaires qui peuvent être ajoutés à PHP, il n'y a pas de limites aux possibilités offertes. Pour connaître la liste des gestionnaires actuellement enregistrés, utilisez la fonction stream_get_wrappers().

Un flux est référencé comme : scheme://target

  • scheme(chaîne de caractères) - Le nom du gestionnaire a utiliser. Par exemple, file, http, https, ftp, ftps, compress.zlib, compress.bz. et php.. Voir Liste des protocoles et des gestionnaires supportés pour une liste complète des gestionnaires enregistrés de PHP. Si aucun gestionnaire n'est spécifié, la fonction par défaut est utilisée (typiquement, file://).
  • target - Dépend du gestionnaire utilisé. Pour les flux relatifs aux systèmes de fichiers, c'est typiquement un chemin et un nom de fichier du fichier désiré. Pour les flux relatifs aux réseaux, c'est typiquement le nom d'hôte, souvent avec un chemin apposé. Voir aussi Liste des protocoles et des gestionnaires supportés pour une description des cibles des flux intégrés.

Note:

Des informations sur l'utilisation des flux dans le code source de PHP peuvent être trouvées dans l'API des flux pour les auteurs d'extensions PHP.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Les flux font partie de PHP depuis la version 4.3.0. Aucune étape supplémentaire n'est requise pour les activer.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Classes Stream

Des gestionnaires personnalisés peuvent être enregistrés via la fonction stream_register_wrapper(), en utilisant la définition de classe décrite dans ce manuel.

La classe php_user_filter est prédéfinie. C'est une classe abstraite à utiliser avec les filtres personnalisés. Voyez le manuel de la fonction stream_register_filter() pour plus de détails sur les implémentations de filtres utilisateurs.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constante Description
STREAM_FILTER_READ Utilisée avec stream_filter_append() et stream_filter_prepend() pour indiquer que le filtre spécifié ne doit être appliqué qu'après la lecture.
STREAM_FILTER_WRITE Utilisée avec stream_filter_append() et stream_filter_prepend() pour indiquer que le filtre spécifié ne doit être appliqué qu'après l' écriture.
STREAM_FILTER_ALL Cette constante est équivalente à STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON * Le code retourné indique que le filtre utilisateur retourne des données dans $out.
PSFS_FEED_ME * Le code retourné indique que le filtre utilisateur ne retourne pas de données dans $out (i.e. aucune donnée disponible).
PSFS_ERR_FATAL * Le code retourné indique que le filtre utilisateur a produit une erreur fatale. (i.e. données invalides reçues).
PSFS_FLAG_NORMAL Opérations normales de lecture et écriture.
PSFS_FLAG_FLUSH_INC Écriture incrémentale.
PSFS_FLAG_FLUSH_CLOSE Écriture en bloc, à la fermeture.
STREAM_USE_PATH Option indiquant si stream a utilisé l'include_path .
STREAM_REPORT_ERRORS Option indiquant si le gestionnaire est responsable pour la levée des erreurs avec trigger_error() durant l'ouverture du flux. Si cette constante n'existe pas, vous ne devez pas émettre d'erreurs.
STREAM_CLIENT_ASYNC_CONNECT * Ouvre un socket client en mode asynchrone. Cette option doit être utilisée avec l'option STREAM_CLIENT_CONNECT. À utiliser avec la fonction stream_socket_client().
STREAM_CLIENT_CONNECT * Ouvre un socket client. Les sockets clients doivent toujours inclure ce flag. À utiliser avec la fonction stream_socket_client().
STREAM_CLIENT_PERSISTENT * Le socket client ouvert avec stream_socket_client() doit rester persistant entre chaque page chargée.
STREAM_SERVER_BIND * Appel un flux créé avec la fonction stream_socket_server() pour s'identifier sur la cible définie. Les sockets serveur doivent toujours utiliser cette constante.
STREAM_SERVER_LISTEN * Appel un flux créé avec stream_socket_server() et utilise la constante STREAM_SERVER_BIND pour commencer à écouter la socket. Les connexions orientées transports (comme TCP) doivent utiliser cet option sinon la socket serveur ne sera pas activée. Utiliser cette option pour les connexions basses de transports, comme UDP, est une erreur.
STREAM_NOTIFY_RESOLVE * Une adresse distante requise pour ce flux a été résolue, ou bien la résolution a échoué. Voir le paramètre severity pour avoir une indication sur l'événement survenu.
STREAM_NOTIFY_CONNECT Une connexion avec une ressource externe a été établie.
STREAM_NOTIFY_AUTH_REQUIRED Une autorisation supplémentaire est demandée pour accéder à la ressource spécifiée. Typiquement utilisé avec le niveau d'alerte severity de la constante STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS Le type mime de la ressource a été identifié : voir le paramètre message pour une description du type découvert.
STREAM_NOTIFY_FILE_SIZE_IS La taille de la ressource a été découverte.
STREAM_NOTIFY_REDIRECTED La ressource externe a redirigé le flux vers un endroit différent. Voir le paramètre message.
STREAM_NOTIFY_PROGRESS Indique l'actuelle progression du transfert du flux dans bytes_transferred et peut-être bytes_max également.
STREAM_NOTIFY_COMPLETED * Il n'y a plus de données disponibles sur le flux.
STREAM_NOTIFY_FAILURE Une erreur générique est intervenue sur le flux, consultez les paramètres message et message_code pour plus de détails.
STREAM_NOTIFY_AUTH_RESULT L'autorisation est terminée (avec succès ou pas).
STREAM_NOTIFY_SEVERITY_INFO Notification normale, aucune erreur signalée.
STREAM_NOTIFY_SEVERITY_WARN Erreur non critique. Le traitement continue.
STREAM_NOTIFY_SEVERITY_ERR Une erreur critique est survenu. Le traitement ne peut continuer.
STREAM_IPPROTO_ICMP + Fournit un socket ICMP.
STREAM_IPPROTO_IP + Fournit un socket IP.
STREAM_IPPROTO_RAW + Fournit un socket RAW.
STREAM_IPPROTO_TCP + Fournit un socket TCP.
STREAM_IPPROTO_UDP + Fournit un socket UDP.
STREAM_PF_INET + Protocole Internet version 4 (IPv4).
STREAM_PF_INET6 + Protocole internet version 6(IPv6).
STREAM_PF_UNIX + Protocoles internes des systèmes Unix.
STREAM_SOCK_DGRAM + Fournit des datagrammes, qui sont des messages de connexion (UDP, par exemple).
STREAM_SOCK_RAW + Fournit un socket raw, qui fournit un accès aux protocoles et interfaces internes du réseau. Habituellement, ce type de socket n'est disponible qu'à l'utilisateur root.
STREAM_SOCK_RDM + Fournit un socket RDM (Reliably-delivered messages).
STREAM_SOCK_SEQPACKET + Fournit un socket de flux de paquets en séquence.
STREAM_SOCK_STREAM + Fournit un flux en séquence, deux chemins avec un mécanisme de transmission pour les données "out-of-band" (TCP par exemple).
STREAM_SHUT_RD Utilisé avec stream_socket_shutdown() pour désactiver les réceptions futures. Disponible depuis PHP 5.2.1.
STREAM_SHUT_WR Utilisé avec stream_socket_shutdown() pour désactiver les transmissions futures. Disponible depuis PHP 5.2.1.
STREAM_SHUT_RDWR Utilisé avec stream_socket_shutdown() pour désactiver les réceptions et transmissions futures. Disponible depuis PHP 5.2.1.
STREAM_CAST_FOR_SELECT Transtypage de flux, lorsque stream_select() appelle stream_cast().
STREAM_CAST_AS_STREAM Transtypage de flux, lorsque stream_cast() est appelé autrement (voir ci-dessus).

Note: Les constantes marquées avec une * sont uniquement disponibles depuis PHP 5.0.0.

Note: Les constantes marquées avec une + sont disponibles depuis PHP 5.1.0 et sont faites pour être utilisées avec la fonction stream_socket_pair(). Notez que quelques-unes de ces constantes peuvent ne pas être disponibles sur votre système.



Filtres de flux

Un filtre est une fonction finale qui effectue des opérations sur les données qui sont lues ou écrites dans un flux. Un nombre arbitraire de filtres peuvent être ajoutés sur un flux. Des filtres personnalisés peuvent aussi être ajoutés avec la fonction stream_register_filter(), ou bien dans une extension avec l'API C de Working with streams. Pour connaître la liste des gestionnaires actuellement enregistrés, utilisez la fonction stream_get_filters().



Contextes de flux

Un contexte est un jeu de paramètres et d'options spécifiques à un gestionnaire qui modifie ou améliore le comportement d'un flux. Les contextes sont créés en utilisant la fonction stream_context_create() et peuvent être donnés aux fonctions de création de flux sur le système de fichiers (i.e. fopen(), file(), file_get_contents(), etc.).

Les options peuvent être spécifiées en appelant stream_context_create() ou, plus tard, avec stream_context_set_option(). Une liste des options spécifiques aux gestionnaires peut être trouvée dans le chapitre Options et paramètres de contexte.

Parameters peut être spécifié pour contexts en utilisant la fonction stream_context_set_params().



Erreurs de flux

Comme avec n'importe quel fichier ou socket, les opérations sur un flux peuvent échouer pour une grande variété de raisons (par exemple : impossible de se connecter au serveur distant, fichier introuvable, etc.). Un flux peut aussi échouer parce que le gestionnaire n'est pas configuré sur le système en cours. Voyez le tableau retourné par la fonction stream_get_wrappers() pour connaître la liste des gestionnaires configurés sur votre installation de PHP. Comme avec la plupart des fonctions internes de PHP, si une erreur survient, un message de type E_WARNING sera généré pour indiquer la nature de l'erreur.



Exemples

Sommaire

Exemple #1 Exemples avec file_get_contents()

<?php
/* Lit un fichier local dans le dossier /home/bar */
$localfile file_get_contents("/home/bar/foo.txt");

/* Identique au précédent, mais utilise explicitement le gestionnaire FILE */
$localfile file_get_contents("file:///home/bar/foo.txt");

/* Lit un fichier distant sur le serveur www.example.com avec le protocole HTTP */
$httpfile  file_get_contents("http://www.example.com/foo.txt");

/* Lit le même fichier sur le serveur www.example.com avec le protocole HTTPS */
$httpsfile file_get_contents("https://www.example.com/foo.txt");

/* Lit un fichier distant sur le serveur ftp.example.com en utilisant le protocole FTP */
$ftpfile   file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Lit un fichier distant sur le serveur ftp.example.com en utilisant le protocole FTPS */
$ftpsfile  file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Exemple #2 Envoi d'une requête de type POST sur un serveur sécurisé

<?php
/* Envoi d'une requête POST sur le serveur https://secure.example.com/form_action.php
 * Inclusion des variables "foo" et "bar"
 */

$sock fsockopen("ssl://secure.example.com"443$errno$errstr30);
if (!
$sock) die("$errstr ($errno)\n");

$data "foo=" urlencode("Valeur de Foo") . "&bar=" urlencode("Valeur de Bar");

fputs($sock"POST /form_action.php HTTP/1.0\r\n");
fputs($sock"Host: secure.example.com\r\n");
fputs($sock"Content-type: application/x-www-form-urlencoded\r\n");
fputs($sock"Content-length: " strlen($data) . "\r\n");
fputs($sock"Accept: */*\r\n");
fputs($sock"\r\n");
fputs($sock"$data\r\n");
fputs($sock"\r\n");

$headers "";
while (
$str trim(fgets($sock4096))) {
  
$headers .= "$str\n";
}

echo 
"\n";

$body "";
while (!
feof($sock)) {
  
$body .= fgets($sock4096);
}

fclose($sock);
?>

Exemple #3 Écrire des données dans un fichier compressé

<?php
/* Création d'un fichier compressé contenant une chaîne arbitraire
 * Le fichier peut être lu en utilisant le gestionnaire compress.zlib
 * ou simplement decompresse; en ligne de commande avec 'gzip -d foo-bar.txt.gz'
 */
$fp fopen("compress.zlib://foo-bar.txt.gz","w");
if (!
$fp) die("Impossible de créer le fichier.");

fwrite($fp"Ceci est un test.\n");

fclose($fp);
?>


Exemple de classe enregistrée comme gestionnaire de flux

L'exemple ci-dessous implémente un gestionnaire de protocole var:// qui permet d'écrire et lire une variable globale en utilisant les fonctions standard de fichier, telle que fread(). Le protocole var:// implémenté ci-dessous, va, à partir d'une URL "var://foo" accéder à la variable globale $GLOBALS["foo"].

Exemple #1 Un flux pour lire et écrire des variables globales

<?php

class VariableStream {
    var 
$position;
    var 
$varname;

    function 
stream_open($path$mode$options, &$opened_path)
    {
        
$url parse_url($path);
        
$this->varname $url["host"];
        
$this->position 0;

        return 
true;
    }

    function 
stream_read($count)
    {
        
$ret substr($GLOBALS[$this->varname], $this->position$count);
        
$this->position += strlen($ret);
        return 
$ret;
    }

    function 
stream_write($data)
    {
        
$left substr($GLOBALS[$this->varname], 0$this->position);
        
$right substr($GLOBALS[$this->varname], $this->position strlen($data));
        
$GLOBALS[$this->varname] = $left $data $right;
        
$this->position += strlen($data);
        return 
strlen($data);
    }

    function 
stream_tell()
    {
        return 
$this->position;
    }

    function 
stream_eof()
    {
        return 
$this->position >= strlen($GLOBALS[$this->varname]);
    }

    function 
stream_seek($offset$whence)
    {
        switch (
$whence) {
            case 
SEEK_SET:
                if (
$offset strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     
$this->position $offset;
                     return 
true;
                } else {
                     return 
false;
                }
                break;

            case 
SEEK_CUR:
                if (
$offset >= 0) {
                     
$this->position += $offset;
                     return 
true;
                } else {
                     return 
false;
                }
                break;

            case 
SEEK_END:
                if (
strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     
$this->position strlen($GLOBALS[$this->varname]) + $offset;
                     return 
true;
                } else {
                     return 
false;
                }
                break;

            default:
                return 
false;
        }
    }
}

stream_wrapper_register("var""VariableStream")
    or die(
"Failed to register protocol");

$myvar "";

$fp fopen("var://myvar""r+");

fwrite($fp"line1\n");
fwrite($fp"line2\n");
fwrite($fp"line3\n");

rewind($fp);
while (!
feof($fp)) {
    echo 
fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

L'exemple ci-dessus va afficher :

line1
line2
line3
string(18) "line1
line2
line3
"




La classe streamWrapper

Introduction

Permet la création de gestionnaires de protocoles et de flux, à utiliser avec toutes les fonctions système, telles que fopen(), fread() etc.).

Note:

Cette classe n'est pas une classe concrète : c'est juste un prototype d'une classe qui définirait son propre protocole.

Note:

Implémenter les méthodes d'une manière qui n'est pas décrite dans la documentation peut mener à des comportements indéfinis.

Une instance de cette classe est initialisée aussitôt que les fonctions de flux tentent d'accéder à une ressource avec un protocole.

Synopsis de la classe

streamWrapper {
/* Propriétés */
public resource $context ;
/* Méthodes */
__construct ( void )
public bool dir_closedir ( void )
public bool dir_opendir ( string $path , int $options )
public string dir_readdir ( void )
public bool dir_rewinddir ( void )
public bool mkdir ( string $path , int $mode , int $options )
public bool rename ( string $path_from , string $path_to )
public bool rmdir ( string $path , int $options )
public resource stream_cast ( int $cast_as )
public void stream_close ( void )
public bool stream_eof ( void )
public bool stream_flush ( void )
public bool stream_lock ( mode $operation )
public bool stream_open ( string $path , string $mode , int $options , string &$opened_path )
public string stream_read ( int $count )
public bool stream_seek ( int $offset , int $whence = SEEK_SET )
public bool stream_set_option ( int $option , int $arg1 , int $arg2 )
public array stream_stat ( void )
public int stream_tell ( void )
public int stream_write ( string $data )
public bool unlink ( string $path )
public array url_stat ( string $path , int $flags )
}

Propriétés

resource context

Le contexte courant, ou NULL si aucun contexte n'a été passé à la fonction.

Utilisez la fonction stream_context_get_options() pour analyser le contexte.

Note:

Cette propriété doit être public, pour que PHP puisse la remplir avec la ressource de contexte.

Historique

Version Description
5.0.0 Ajout de la propriété context.


streamWrapper::__construct

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::__constructConstruit un nouveau gestionnaire de flux

Description

streamWrapper::__construct ( void )

Appelé à la création du gestionnaire de flux, juste avant streamWrapper::stream_open().

Liste de paramètres

Cette fonction ne contient aucun paramètre.



streamWrapper::dir_closedir

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::dir_closedirFerme une ressource de dossier

Description

public bool streamWrapper::dir_closedir ( void )

Cette méthode est appelée en réponse à la fonction closedir().

Toutes les ressources qui étaient verrouillées ou allouées, durant l'ouverture et l'utilisation du flux de dossiers, doivent être libérées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



streamWrapper::dir_opendir

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::dir_opendirOuvre un dossier en lecture

Description

public bool streamWrapper::dir_opendir ( string $path , int $options )

Cette méthode est appelée en réponse à opendir().

Liste de paramètres

path

Spécifie l'URL qui a été passée à opendir().

Note:

L'URL peut être découpée avec parse_url().

options

S'il faut appliquer le safe_mode ou pas (0x04).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



streamWrapper::dir_readdir

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::dir_readdirLit un fichier dans un dossier

Description

public string streamWrapper::dir_readdir ( void )

Cette méthode est appelée en réponse à readdir().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner une chaîne de caractères représentant le prochain nom de fichier, ou FALSE s'i n'y a pas d'autre fichier.

Note:

La valeur retournée sera transtypée en chaîne de caractères.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Exemples

Exemple #1 Liste des fichiers d'une archive tar

<?php
class streamWrapper {
    protected 
$fp;

    public function 
dir_opendir($path$options) {
        
$url parse_url($path);

        
$path $url["host"] . $url["path"];

        if (!
is_readable($path)) {
            
trigger_error("$path n'est pas lisible pour moi"E_USER_NOTICE);
            return 
false;
        }
        if (!
is_file($path)) {
            
trigger_error("$path n'est pas un fichier"E_USER_NOTICE);
            return 
false;
        }

        
$this->fp fopen($path"rb");
        return 
true;
    }

    public function 
dir_readdir() {
        
// Extract the header for this entry
        
$header      fread($this->fp512);
        
$data unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile"$header);

        
// Trim the filename and filesize
        
$filename    trim($data["filename"]);

        
// Pas de fichier, nous sommes à la fin de l'archive
        
if (!$filename) {
            return 
false;
        }

        
$octal_bytes trim($data["size"]);
        
// Filesize is defined in octects
        
$bytes       octdec($octal_bytes);

        
// tar arrondit les tailles de fichiers au multiple de 512 suivant
        
$rest        $bytes 512;
        if (
$rest 0) {
            
$bytes      += 512 $rest;
        }

        
// Lecture du fichier
        
fseek($this->fp$bytesSEEK_CUR);

        return 
$filename;
    }

    public function 
dir_closedir() {
        return 
fclose($this->fp);
    }

    public function 
dir_rewinddir() {
        return 
fseek($this->fp0SEEK_SET);
    }
}

stream_wrapper_register("tar""streamWrapper");
$handle opendir("tar://example.tar");
while (
false !== ($file readdir($handle))) {
    
var_dump($file);
}

echo 
"Remise au début..\n";
rewind($handle);
var_dump(readdir($handle));

closedir($handle);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(13) "construct.xml"
string(16) "dir-closedir.xml"
string(15) "dir-opendir.xml"
string(15) "dir-readdir.xml"
string(17) "dir-rewinddir.xml"
string(9) "mkdir.xml"
string(10) "rename.xml"
string(9) "rmdir.xml"
string(15) "stream-cast.xml"
string(16) "stream-close.xml"
string(14) "stream-eof.xml"
string(16) "stream-flush.xml"
string(15) "stream-lock.xml"
string(15) "stream-open.xml"
string(15) "stream-read.xml"
string(15) "stream-seek.xml"
string(21) "stream-set-option.xml"
string(15) "stream-stat.xml"
string(15) "stream-tell.xml"
string(16) "stream-write.xml"
string(10) "unlink.xml"
string(12) "url-stat.xml"
Remise à zéro..
string(13) "construct.xml"

Voir aussi



streamWrapper::dir_rewinddir

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::dir_rewinddirRemet au début une ressource de dossier

Description

public bool streamWrapper::dir_rewinddir ( void )

Cette méthode est appelée en réponse à rewinddir().

Doit remettre à zéro le curseur géré par streamWrapper::dir_readdir(). i.e.: le prochain appel à streamWrapper::dir_readdir() doit retourner le premier fichier du dossier retourné par streamWrapper::dir_opendir().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



streamWrapper::mkdir

(PHP 5)

streamWrapper::mkdirCrée un dossier

Description

public bool streamWrapper::mkdir ( string $path , int $mode , int $options )

Cette méthode est appelée en réponse à mkdir().

Note:

Afin d'appeler le bon message d'erreur, cette méthode ne doit pas être définie, si le gestionnaire ne supporte pas la création des dossiers.

Liste de paramètres

path

Le dossier à créer.

mode

La valeur passée à mkdir().

options

Un champ de valeurs, telles que STREAM_MKDIR_RECURSIVE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper->context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi



streamWrapper::rename

(PHP 5)

streamWrapper::renameRenomme un fichier ou un dossier

Description

public bool streamWrapper::rename ( string $path_from , string $path_to )

Cette méthode est appelée en réponse à rename().

Doit renommer le fichier path_from en path_to

Note:

Afin d'appeler le bon message d'erreur, cette méthode ne doit pas être définie, si le gestionnaire ne supporte pas le renommage de fichiers.

Liste de paramètres

path_from

L'URL du fichier en cours.

path_to

La nouvelle URL path_from avec laquelle le fichier doit être renommé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper->context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • rename() - Renomme un fichier ou un dossier



streamWrapper::rmdir

(PHP 5)

streamWrapper::rmdirSupprime un dossier

Description

public bool streamWrapper::rmdir ( string $path , int $options )

Cette méthode est appelée en réponse à rmdir().

Note:

Afin d'appeler le bon message d'erreur, cette méthode ne doit pas être définie, si le gestionnaire ne supporte pas la suppression des dossiers.

Liste de paramètres

path

L'URL du dossier à effacer.

options

Un champ de bits telles que STREAM_MKDIR_RECURSIVE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper->context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi



streamWrapper::stream_cast

(PHP 5 >= 5.3.0)

streamWrapper::stream_castLit la ressource sous-jacente de flux

Description

public resource streamWrapper::stream_cast ( int $cast_as )

Cette méthode est appelée en réponse à stream_select().

Liste de paramètres

cast_as

Peut être une des valeurs parmi STREAM_CAST_FOR_SELECT si stream_select() est la fonction appelante, stream_cast() ou STREAM_CAST_AS_STREAM si stream_cast() est appelée pour les autres cas.

Valeurs de retour

Doit retourner le flux sous-jacent, utilisé par le gestionnaire, et sinon FALSE.

Voir aussi



streamWrapper::stream_close

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_closeFerme une ressource de flux

Description

public void streamWrapper::stream_close ( void )

Cette méthode est appelée en réponse à fclose().

Toutes les ressources qui étaient verrouillées, ou allouées par le gestionnaire doivent être libérées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



streamWrapper::stream_eof

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_eofTests for end-of-file on a file pointer

Description

public bool streamWrapper::stream_eof ( void )

Cette méthode est appelée en réponse à feof().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner TRUE si le curseur est à la fin du flux, et que plus aucune donnée n'est disponible, et FALSE sinon.

Voir aussi

  • feof() - Teste la fin du fichier



streamWrapper::stream_flush

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_flushExpédie le contenu

Description

public bool streamWrapper::stream_flush ( void )

Cette méthode est appelée en réponse à fflush().

Si vous avez mis des données en cache dans votre flux, mais que vous ne les avez pas stocké, vous devez le faire maintenant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner TRUE si les données en cache ont pu être sauvées correctement ( ou s'il n'y avait pas de données dans le cache), ou FALSE si les données n'ont pu être stockées.

Notes

Note:

Si non implémentée, FALSE sera utilisée comme valeur de retour.

Voir aussi

  • fflush() - Envoie tout le contenu généré dans un fichier



streamWrapper::stream_lock

(PHP 5)

streamWrapper::stream_lockVerrouillage logique de fichiers

Description

public bool streamWrapper::stream_lock ( mode $operation )

Cette méthode est appelée en réponse à flock(), parfois avec file_put_contents() (si l'option flags contient LOCK_EX), stream_set_blocking() et quand on ferme le flux (LOCK_UN).

Liste de paramètres

operation

operation est une des suivantes :

  • LOCK_SH pour obtenir le verrou partagé (lecture)
  • LOCK_EX pour obtenir le verrou exclusif (écriture)
  • LOCK_UN pour lire le verrou (partagé ou exclusif)
  • LOCK_NB si vous voulez que flock() bloque pour le verrouillage (non supporté sur Windows).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet un E_WARNING si l'appel à cette méthode échoue (i.e., pas implémentée).

Voir aussi



streamWrapper::stream_open

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_openOpens file or URL

Description

public bool streamWrapper::stream_open ( string $path , string $mode , int $options , string &$opened_path )

Cette méthode est appelée immédiatement après l'initialisation du gestionnaire (par exemple, par fopen() et file_get_contents()).

Liste de paramètres

path

L'URL qui est passée à la fonction originale.

Note:

L'URL peut être découpée à l'aide de parse_url(). Noter que seules les URLs délimitées par :// sont supportées. : et :/, bien que techniquement valides, ne sont pas supportés.

mode

Le mode utilisée pour ouvrir le fichier, tel que documenté pour fopen().

Note:

N'oubliez pas de vérifier si mode est valide pour le chemin path demandé.

options

Contient les options supplémentaires pour le flux. Il peut contenir une ou plusieurs constantes parmi les suivantes, combinées par des OR.

Option Description
STREAM_USE_PATH Si path est relatif recherche la ressource en incluant l'include_path.
STREAM_REPORT_ERRORS Si cette option est active, vous êtes responsable pour émettre une erreur, avec trigger_error() durant l'ouverture du flux. Si cette option n'est pas activée, vous ne devez pas émettre d'erreur.

opened_path

Si le chemin path est ouvert correctement, et que la constante STREAM_USE_PATH est configurée via options, alors opened_path doit contenir le chemin complet qui a été réellement ouvert.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper->context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • parse_url() - Analyse une URL et retourne ses composants



streamWrapper::stream_read

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_readLit dans le flux

Description

public string streamWrapper::stream_read ( int $count )

Cette méthode est appelée en réponse à fread() et fgets().

Note:

N'oubliez pas de modifier la position de lecture et écriture du nombre d'octets qui ont pu être lus.

Liste de paramètres

count

Le nombre d'octets qui ont pu être lus, à partir de la position courante.

Valeurs de retour

S'il y a moins que count octets disponibles, il faut en retourner autant que possible. S'il n'y a plus de données disponibles, il faut retourner FALSE ou une chaîne vide.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Note:

Si la valeur de retour est plus grande que count, une erreur E_WARNING sera émise, et les données excédentaires seront perdues.

Notes

Note:

streamWrapper::stream_eof() est appelé directement après streamWrapper::stream_read() pour vérifier si EOF a été atteint. Si la fonction n'est pas implémenté, EOF est utilisé.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier



streamWrapper::stream_seek

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_seekPlace le pointeur de flux à une position

Description

public bool streamWrapper::stream_seek ( int $offset , int $whence = SEEK_SET )

Cette méthode est appelée en réponse à fseek().

La position de lecture/écriture doit être modifiée pour refléter la nouvelle position offset et whence.

Liste de paramètres

offset

La position à rechercher dans le flux.

whence

Les valeurs possibles sont :

  • SEEK_SET : la nouvelle position vaut offset octets.
  • SEEK_CUR : la nouvelle position vaut la position courante plus offset.
  • SEEK_END : la nouvelle position vaut la fin de fichier plus offset.

Valeurs de retour

Retourne TRUE si la position a été mise à jour, FALSE sinon.

Notes

Note:

Si elle n'est pas implémentée, FALSE sera utilisée comme valeur de retour.

Note:

En cas de succès, streamWrapper::stream_tell() est appelée directement après streamWrapper::stream_seek(). Si streamWrapper::stream_tell() échoue, la valeur retournée à la fonction appelante FALSE.

Voir aussi

  • fseek() - Modifie la position du pointeur de fichier



streamWrapper::stream_set_option

(PHP 5 >= 5.3.0)

streamWrapper::stream_set_optionChange les options du flux

Description

public bool streamWrapper::stream_set_option ( int $option , int $arg1 , int $arg2 )

Cette méthode est appelée pour modifier les options du flux.

Liste de paramètres

option

Une des constantes parmi :

arg1

Si option vaut

  • STREAM_OPTION_BLOCKING : mode bloquant demandé (1 signifie bloquant, 0 non-bloquant).
  • STREAM_OPTION_READ_TIMEOUT : le délai d'expiration en secondes.
  • STREAM_OPTION_WRITE_BUFFER : le mode de buffer (STREAM_BUFFER_NONE ou STREAM_BUFFER_FULL).

arg2

Si option vaut

  • STREAM_OPTION_BLOCKING : cette option n'est pas active.
  • STREAM_OPTION_READ_TIMEOUT : le délai d'expiration en microsecondes.
  • STREAM_OPTION_WRITE_BUFFER : la taille du buffer demandé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si option n'est pas implémentée, FALSE doit être retourné.

Voir aussi



streamWrapper::stream_stat

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_statLit les informations sur une ressource de fichier

Description

public array streamWrapper::stream_stat ( void )

Cette méthode est appelée en réponse à fstat().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir stat().

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Voir aussi



streamWrapper::stream_tell

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_tellLit la position courante dans un flux

Description

public int streamWrapper::stream_tell ( void )

Cette méthode est appelée en réponse à ftell().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner la position courante dans le flux.

Voir aussi

  • ftell() - Renvoie la position courant du pointeur de fichier



streamWrapper::stream_write

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::stream_writeÉcrit dans un flux

Description

public int streamWrapper::stream_write ( string $data )

Cette méthode est appelée en réponse à fwrite().

Note:

N'oubliez pas de mettre à jour la position courante dans le flux, du nombre d'octets qui ont pu être lu.

Liste de paramètres

data

Les données qui doivent être stockées dans le flux sous-jacent.

Note:

S'il n'y a pas de place dans le stockage, il faut en stocker autant que possible.

Valeurs de retour

Doit retourner le nombre d'octets qui ont pu être stockés correctement, et 0 si aucun n'a pu être stocké.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Note:

Si la valeur de retour est plus grand que la taille de data, une alerte E_WARNING sera émise, et la valeur retournée sera tronquée à sa longueur.

Voir aussi

  • fwrite() - Écrit un fichier en mode binaire




streamWrapper::url_stat

(PHP 4 >= 4.3.2, PHP 5)

streamWrapper::url_statLit les informations sur un fichier

Liste de paramètres

path

Le chemin du fichier ou l'URL à analyser. Noter que dans le cas des URLs, elles doivent être délimitées par ://. Tout autre format n'est pas supporté.

flags

Les options supplémentaires activées par l'API des flux. Elle peut contenir une ou plusieurs constantes des constantes suivantes, combinées par OR :

Option Description
STREAM_URL_STAT_LINK Pour les ressources qui ont la capacité de se lier à d'autres ressources (comme une redirection HTTP ou bien un lien symbolique). Cette option indique que les informations lues doivent concerner le lien lui-même, et non pas la ressource pointée par le lien. Cette option est activée en réponse à un appel à lstat(), is_link() ou filetype().
STREAM_URL_STAT_QUIET Si cette option est activée, votre gestionnaire ne doit pas émettre d'erreurs. Si cette option n'est pas activée, vous êtes responsables du rapport d'erreur, en appelant la fonction trigger_error() durant l'analyse du chemin.

Valeurs de retour

Doit retourne autant d'éléments que stat() retourne. Les valeurs inconnues ou indisponibles doivent prendre une valeur raisonnable (généralement, 0).

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper->context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi


Sommaire



Fonctions sur les flux


set_socket_blocking

(PHP 4, PHP 5)

set_socket_blockingAlias de stream_set_blocking()

Description

Cette fonction est un alias de : stream_set_blocking()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.3.0. Son utilisation est fortement déconseillée.



stream_bucket_append

(PHP 5)

stream_bucket_append Ajoute un compartiment au corps

Description

void stream_bucket_append ( resource $brigade , resource $bucket )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



stream_bucket_make_writeable

(PHP 5)

stream_bucket_make_writeable Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci

Description

object stream_bucket_make_writeable ( resource $brigade )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



stream_bucket_new

(PHP 5)

stream_bucket_new Crée un nouveau compartiment pour l'utiliser sur le flux courant

Description

object stream_bucket_new ( resource $stream , string $buffer )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



stream_bucket_prepend

(PHP 5)

stream_bucket_prepend Ajout initial d'un compartiment au corps

Description

void stream_bucket_prepend ( resource $brigade , resource $bucket )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



stream_context_create

(PHP 4 >= 4.3.0, PHP 5)

stream_context_createCrée un contexte de flux

Description

resource stream_context_create ([ array $options [, array $params ]] )

Crée et retourne un contexte de flux, avec les paramètres fournis par options.

Liste de paramètres

options

Doit être un tableau associatif, au format $arr['wrapper']['option'] = $value. Voyez la section sur les contextes pour connaître la liste des paramètres standard de flux.

Par défaut, c'est un tableau vide.

params

Doit être un tableau associatif de format $arr['parameter'] = $value. Référez-vous à la documentation de la fonction stream_context_set_params() pour une liste des paramètres de flux standards.

Valeurs de retour

Une ressource représentant le contexte du flux.

Historique

Version Description
5.3.0 Ajout de l'argument optionnel params.

Exemples

Exemple #1 Exemple avec stream_context_create()

<?php
$opts 
= array(
  
'http'=>array(
    
'method'=>"GET",
    
'header'=>"Accept-language: en\r\n" .
              
"Cookie: foo=bar\r\n"
  
)
);

$context stream_context_create($opts);

/* Envoi une requête HTTP vers www.example.com
   avec les en-têtes additionnels ci-dessus */
$fp fopen('http://www.example.com''r'false$context);
fpassthru($fp);
fclose($fp);
?>

Voir aussi



stream_context_get_default

(PHP 5 >= 5.1.0)

stream_context_get_defaultLit le contexte par défaut des flux

Description

resource stream_context_get_default ([ array $options ] )

stream_context_get_default() retourne le contexte par défaut qui est utilisé avec les fonctions de fichiers comme fopen(), file_get_contents(), etc, lorsqu'elles sont utilisées sans paramètre de contexte. Les options du contexte par défaut peuvent être spécifiées optionnellement avec la même syntaxe que pour stream_context_create().

Liste de paramètres

options
options doit être un tableau associatif de tableaux associatifs, au format $arr['wrapper']['option'] = $value.

Note:

Depuis PHP 5.3.0, la fonction stream_context_set_default() peut être utilisée pour configurer le contexte par défaut.

Valeurs de retour

Une resource de contexte de flux.

Exemples

Exemple #1 Exemple avec stream_context_get_default()

<?php
$default_opts 
= array(
  
'http'=>array(
    
'method'=>"GET",
    
'header'=>"Accept-language: en\r\n" 
              
"Cookie: foo=bar",
    
'proxy'=>"tcp://10.54.1.39:8000"
  
)
);


$alternate_opts = array(
  
'http'=>array(
    
'method'=>"POST",
    
'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
              
"Content-length: " strlen("baz=bomb"),
    
'content'=>"baz=bomb"
  
)
);

$default stream_context_get_default($default_opts);
$alternate stream_context_create($alternate_opts);

/* Envoie une requête GET classique à un serveur proxy 10.54.1.39
 * vers www.example.com, en utilisant les options de contexte spécifiées
 * dans $default_opts
 */
readfile('http://www.example.com');

/* Envoie une requête POST directement à www.example.com
 * Utilise les options de contexte de $alternate_opts
 */
readfile('http://www.example.com'false$alternate);

?>

Voir aussi



stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5)

stream_context_get_optionsLit la valeur des options pour un flux/gestionnaire/contexte

Description

array stream_context_get_options ( resource $stream_or_context )

stream_context_get_options() retourne un tableau contenant la liste des options pour le flux ou le contexte stream_or_context.

Liste de paramètres

stream_or_context

Le stream ou context dont il faut lire les options.

Valeurs de retour

Retourne un tableau associatif contenant les options.

Exemples

Exemple #1 Exemple avec stream_context_get_options()

<?php
$params 
= array("method" => "POST");

stream_context_get_default(array("http" => $params));

var_dump(stream_context_get_options(stream_context_get_default()));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  ["http"]=>
  array(1) {
    ["method"]=>
    string(4) "POST"
  }
}



stream_context_get_params

(PHP 5 >= 5.3.0)

stream_context_get_paramsLit les paramètres d'un contexte

Description

array stream_context_get_params ( resource $stream_or_context )

stream_context_get_params() lit les paramètres du contexte ou du flux stream_or_context.

Liste de paramètres

stream_or_context

Une ressource de flux ou de contexte.

Valeurs de retour

Retourne un tableau associatif contenant les options de contexte et leur valeur.

Exemples

Exemple #1 Exemple avec stream_context_get_params()

Exemple simple.

<?php
$ctx 
stream_context_create();
$params = array("notification" => "stream_notification_callback");
stream_context_set_params($ctx$params);

var_dump(stream_context_get_params($ctx));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["notification"]=>
  string(28) "stream_notification_callback"
  ["options"]=>
  array(0) {
  }
}

Voir aussi



stream_context_set_default

(PHP 5 >= 5.3.0)

stream_context_set_defaultConfigure le contexte par défaut des flux

Description

resource stream_context_set_default ( array $options )

Configure le contexte par défaut des flux qui sera utilisé à chaque fois qu'un fichier sera manipulé (fopen(), file_get_contents(), etc...) sans paramètre de contexte. Il utilise la même syntaxe que stream_context_create().

Liste de paramètres

options

Les options à configurer pour le contexte par défaut.

Note:

options doit être un tableau associatif de tableaux associatifs, au format $arr['gestionnaire']['option'] = $valeur.

Valeurs de retour

Retourne le contexte de flux par défaut.

Exemples

Exemple #1 Exemple avec stream_context_set_default()

<?php
$default_opts 
= array(
  
'http'=>array(
    
'method'=>"GET",
    
'header'=>"Accept-language: en\r\n" .
              
"Cookie: foo=bar",
    
'proxy'=>"tcp://10.54.1.39:8000"
  
)
);

$default stream_context_set_default($default_opts);

/* Envoie une requête GET au serveur de proxy 10.54.1.39
 * pour www.example.com, en utilisant les options de contexte spécifié dans $default_opts
 */
readfile('http://www.example.com');
?>

Voir aussi



stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_optionConfigure une option pour un flux/gestionnaire/contexte

Description

bool stream_context_set_option ( resource $stream_or_context , string $wrapper , string $option , mixed $value )
bool stream_context_set_option ( resource $stream_or_context , array $options )

stream_context_set_option() définit une option pour le contexte spécifié. La valeur value est définit pour l'option pour le contexte wrapper.

Liste de paramètres

stream_or_context

Le flux ou la ressource de contexte sur lequel on applique l'option.

options

L'option à définir au contexte par défaut.

Note:

Le paramètre options doit être un tableau associatif de tableaux associatifs, au format $arr['wrapper']['option'] = $value.

Voyez la section sur les contextes pour connaître la liste des paramètres standard de flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_paramsConfigure les paramètres pour un flux/gestionnaire/contexte

Description

bool stream_context_set_params ( resource $stream_or_context , array $params )

stream_context_set_params() définit les paramètres pour le contexte spécifié.

Liste de paramètres

stream_or_context

Le flux ou le contexte sur lequel on applique les paramètres.

params

Un tableau de paramètres à définir.

Note:

Le paramètre params doit être un tableau associatif, au format : $params['paramname'] = "paramvalue";.

Paramètres supportés

Paramètres Usage
notification Nom de la fonction utilisateur appelée dès qu'un flux génère une notification.
options Un tableau d'option, comme pour les options et parametres de contexte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



stream_copy_to_stream

(PHP 5)

stream_copy_to_streamCopie des données depuis un flux vers un autre

Description

int stream_copy_to_stream ( resource $source , resource $dest [, int $maxlength = -1 [, int $offset = 0 ]] )

Fait une copie jusqu'à maxlength octets de données depuis la position courante du pointeur (ou depuis la position offset, si spécifié) dans le flux source vers le paramètre dest. Si maxlength n'est pas spécifié, tout le reste du flux source sera copié.

Liste de paramètres

source

Le flux de source

dest

Le flux de destination

maxlength

Nombre maximal d'octets à copier

offset

L'offset où démarrer la copie de données

Valeurs de retour

Retourne le nombre total d'octets copiés.

Historique

Version Description
5.1.0 Ajout du paramètre offset

Exemples

Exemple #1 Exemple avec stream_copy_to_stream()

<?php
$src 
fopen('http://www.example.com''r');
$dest1 fopen('first1k.txt''w');
$dest2 fopen('remainder.txt''w');

echo 
stream_copy_to_stream($src$dest11024) . " octets copiés vers first1k.txt\n";
echo 
stream_copy_to_stream($src$dest2) . " octets copiés vers remainder.txt\n";

?>

Voir aussi



stream_encoding

(No version information available, might only be in SVN)

stream_encodingDéfinit le jeu de caractères pour l'encodage du flux

Description

bool stream_encoding ( resource $stream [, string $encoding ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_appendAttache un filtre à un flux en fin de liste

Description

resource stream_filter_append ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

stream_filter_append() ajoute le filtre filtername à la liste de filtres attachés au flux stream.

Liste de paramètres

stream

Le flux cible.

filtername

Le nom du filtre.

read_write

Par défaut, stream_filter_append() va ajouter le filtre à la liste de filtres de lecture si le fichier a été ouvert en mode lecture (r et/ou +). Le filtre sera aussi attaché à la liste des filtres de lecture si le fichier a été ouvert en mode lecture (w, a et/ou +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, et/ou STREAM_FILTER_ALL peuvent aussi être utilisées dans le paramètre read_write pour contrôler ce comportement.

params

Ce filtre sera ajout avec les paramètres params à la fin de la liste des filtres, et sera ainsi appelé à la fin des opérations de filtres. Pour ajouter un filtre au début de la liste, utilisez la fonction stream_filter_prepend().

Valeurs de retour

Retourne une ressource qui peut être utilisez pour identifier ce filtre lors de l'effacement du filtre avec stream_filter_remove().

Historique

Version Description
5.1.0 Avant PHP 5.1.0, cette fonction retournait TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Contrôler l'application des filtres

<?php
// Ouverture d'un fichier de test en lecture/écriture
$fp fopen('test.txt''w+');

/* On applique le filtre ROT13 au flux d'écriture, mais pas à
 * celui de lecture */
stream_filter_append($fp"string.rot13"STREAM_FILTER_WRITE);

/* On ajoute un simple chaîne dans le fichier, il sera
 * transformé par ROT13 à l'écriture */
fwrite($fp"Ceci est un test\n");

/* On revient au début du fichier */
rewind($fp);

/* On lit le contenu du fichier.
 * Si on appliquait le filtre ROT13 nous aurions la
 * chaîne dans son étât d'origine */
fpassthru($fp);

fclose($fp);

/* Résultat attendu
   ----------------

Guvf vf n grfg

*/
?>

Notes

Note: Quand vous utilisez des filtres personnalisés
stream_register_filter() doit être appelée avant stream_filter_append() pour enregistrer le filtre sous le nom de filtername.

Note: Les données du flux (locales et distantes) sont retournées en morceaux, les données non acheminées étant conservées dans le tampon interne. Lorsqu'un nouveau filtre est ajouté à la fin du flux, les données dans le tampon interne sont passées dans le nouveau filtre à ce moment-là. Ceci est différent du comportement de stream_filter_prepend().

Note: Quand un filtre est ajouté pour la lecture et l'écriture, deux instances du filtres sont créées. stream_filter_prepend() doit être appelée deux fois avec STREAM_FILTER_READ et STREAM_FILTER_WRITE pour obtenir les ressources de filtres.

Voir aussi



stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_prependAttache un filtre à un flux en début de liste

Description

resource stream_filter_prepend ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

stream_filter_prepend() ajoute le filtre filtername à la liste de filtres attachés au flux stream.

Liste de paramètres

stream

Le flux cible.

filtername

Le nom du filtre.

read_write

Par défaut, stream_filter_prepend() va attacher le filtre à la chaîne de filtre de lectures si le fichier a été ouvert en lecture (i.e. mode r, et/ou +). Le filtre va aussi être attaché à la chaîne de filtres d'écriture si le fichier a été ouvert en écriture (i.e. mode w, a, et/ou +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, et/ou STREAM_FILTER_ALL peuvent aussi être passé dans le paramètre read_write pour imposer le comportement désiré. Voyez stream_filter_append() pour un exemple d'utilisation de ce paramètre.

params

Le filtre sera ajouté avec les paramètres spécifiés dans params, au début de la liste, et sera ainsi appelé en premier dans les opérations du flux. Pour ajouter un filtre à la fin de la liste, utilisez stream_filter_append().

Valeurs de retour

Retourne une ressource qui peut être utilisée pour faire référence à ce filtre, durant les opérations de stream_filter_remove().

Historique

Version Description
5.1.0 Avant PHP 5.1.0, cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Quand vous utilisez des filtres personnalisés
stream_register_filter() doit être appelée avant stream_filter_prepend() pour enregistrer le filtre sous le nom de filtername.

Note: Les données du flux (locales et distantes) sont retournées en morceaux, les données non acheminées étant conservées dans le tampon interne. Lorsqu'un nouveau filtre est ajouté au début du flux, les données dans le tampon interne ne sont pas passées dans le nouveau filtre à ce moment là. Ceci est différent du comportement de stream_filter_append().

Note: Quand un filtre est ajouté pour la lecture et l'écriture, deux instances du filtres sont créées. stream_filter_prepend() doit être appelée deux fois avec STREAM_FILTER_READ et STREAM_FILTER_WRITE pour obtenir les ressources de filtres.

Voir aussi



stream_filter_register

(PHP 5)

stream_filter_registerEnregistre un filtre de flux

Description

bool stream_filter_register ( string $filtername , string $classname )

stream_filter_register() vous permet d'implémenter votre propre filtre de flux, à utiliser avec les fonctions d'accès aux données externes (comme fopen(), fread(), etc.).

Liste de paramètres

filtername

Le nom du filtre à enregistrer.

classname

Pour créer une classe de filtre, vous devez définir une classe qui étend la classe php_user_fitler avec les membres et méthodes définis ci-dessous. Lorsque vous réalisez des opérations de lecture et d'écriture dans le flux auquel votre filtre est attaché, PHP passera les données à travers votre filtre (et tous les autres filtres attachés), de façon à ce que les données soient modifiées tel que désiré. Vous devez implémenter les méthodes tel que décrit ci-dessous, sous peine de comportements indéfinis.

int filter ( resource $in , resource $out , int &$consumed , bool $closing )

Cette méthode est appelée à chaque fois que des données sont lues ou écrites dans le flux attaché (avec des fonctions comme fread() ou fwrite()). Le paramètre in est une ressource qui pointe sur une bucket brigade qui contient un ou plusieurs objet bucket contenant les données à filtrer. out est une autre ressource qui pointe sur une bucket brigade dans laquelle les données seront placées. consumed, qui doit toujours être déclaré par référence, doit être incrémenté de la taille de données que votre filtre lit et modifie. Dans la plupart des cas, cela signifie que vous devrez incrémenter consumed avec $bucket->datalen pour chaque $bucket. Si le flux est en cours de fermeture (et, par conséquent, cela sera le dernier passage dans la chaîne de filtres), le paramètre closing vaudra TRUE La méthode filter() doit retourner l'une des trois valeurs suivantes :

Valeur retournée Signification
PSFS_PASS_ON Filtre traité avec succès ; les données sont disponibles dans le paramètre out de la bucket brigade.
PSFS_FEED_ME Filtre traité avec succès ; aucune donnée disponible. Plus de données sont nécessaires depuis le flux ou avant le filtre.
PSFS_ERR_FATAL (default) Le filtre a rencontré une erreur fatale, et ne peut plus continuer.

bool onCreate ( void )
Cette méthode est appelée durant l'instanciation du filtre. Si votre filtre alloue ou initialise d'autres ressources (comme des buffers), c'est le moment de le faire. Votre implémentation de cette méthode doit retourner FALSE en cas d'erreur et TRUE en cas de succès. Lorsque votre filtre est instancié pour la première fois et que votrefiltre->onCreate() est appelée, un nombre de propriétés est disponible comme montré dans la table ci-dessous.

Propriétés Contenu
FilterClass->filtername Une chaîne contenant le nom du filtre est instanciée. Les filtres peuvent être enregistrés sous de noms multiples ainsi qu'avec des jokers. Utilisez cette propriété pour déterminer quel nom est utilisé.
FilterClass->params Le contenu du paramètre params passé à la fonction stream_filter_append() ou la fonction stream_filter_prepend().
FilterClass->stream La ressource de flux qui est filtrée. Peut être disponible uniquement durant l'appel de la méthode filter(), lorsque le paramètre closing vaut FALSE.

void onClose ( void )

Cette méthode est appelée durant l'extinction du filtre (généralement, lorsque le flux est fermé), et est exécutée après l'appel de la fonction flush. Si aucune ressource n'a été allouée ou créée durant onCreate(), c'est le moment de les libérer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

stream_filter_register() doit toujours retourner FALSE si le paramètre filtername est déjà défini.

Exemples

Exemple #1 Filtre sur les lettres majuscules sur le flux foo-bar.txt

L'exemple ci-dessous implémente un filtre appelé strtoupper, sur le flux foo-bar.txt, qui passe en majuscule toutes les lettres écrites/lues depuis ce flux.

<?php

/* Définition de la classe */
class strtoupper_filter extends php_user_filter {
  function 
filter($in$out, &$consumed$closing
  {
    while (
$bucket stream_bucket_make_writeable($in)) {
      
$bucket->data strtoupper($bucket->data);
      
$consumed += $bucket->datalen;
      
stream_bucket_append($out$bucket);
    }
    return 
PSFS_PASS_ON;
  }


/* Enregistrement de notre filtre avec PHP */
stream_filter_register("strtoupper""strtoupper_filter")
    or die(
"Erreur lors de l'enregistrement du filtre");

$fp fopen("foo-bar.txt""w");

/* Attachement du filtre enregistré au flux que l'on vient d'ouvrir */
stream_filter_append($fp"strtoupper");

fwrite($fp"Ligne1\n");
fwrite($fp"Mot - 2\n");
fwrite($fp"Facile comme 123\n");

fclose($fp);

/* Lecture du contenu
 */
readfile("foo-bar.txt");

?>

L'exemple ci-dessus va afficher :

LIGNE1
MOT - 2
FACILE COMME 123

Exemple #2 Enregistrement d'une classe de filtre générique pour correspondre avec de multiples noms de filtres

<?php

/* Définition de la classe*/
class string_filter extends php_user_filter {
  var 
$mode;

  function 
filter($in$out, &$consumed$closing
  {
    while (
$bucket stream_bucket_make_writeable($in)) {
      if (
$this->mode == 1) {
        
$bucket->data strtoupper($bucket->data);
      } elseif (
$this->mode == 0) {
        
$bucket->data strtolower($bucket->data);
      }

      
$consumed += $bucket->datalen;
      
stream_bucket_append($out$bucket);
    }
    return 
PSFS_PASS_ON;
  }

  function 
onCreate() 
  {
    if (
$this->filtername == 'str.toupper') {
      
$this->mode 1;
    } elseif (
$this->filtername == 'str.tolower') {
      
$this->mode 0;
    } else {
      
/* Quelques autres filtres str.* sont demandés,
          traitement de l'erreur avec PHP */
      
return false;
    }

    return 
true;
  }


/* Enregistrement de notre filtre avec PHP */
stream_filter_register("str.*""string_filter")
    or die(
"Failed to register filter");

$fp fopen("foo-bar.txt""w");

/* Attachement du filtre enregistré au flux que l'on vient d'ouvrir
    Nous pouvons alternativement passer à str.tolower ici */
stream_filter_append($fp"str.toupper");

fwrite($fp"Ligne1\n");
fwrite($fp"Mot - 2\n");
fwrite($fp"Facile comme 123\n");

fclose($fp);

/* Lecture du contenu
 */
readfile("foo-bar.txt");

?>

L'exemple ci-dessus va afficher :

LINE1
MOT - 2
FACILE COMME 123

Voir aussi



stream_filter_remove

(PHP 5 >= 5.1.0)

stream_filter_removeRetire un filtre d'un flux

Description

bool stream_filter_remove ( resource $stream_filter )

stream_filter_remove() retire un filtre d'un flux, précédemment ajouté avec stream_filter_prepend() ou stream_filter_append(). Toutes les données qui restent dans les buffer internes seront traitées par le filtre, avant que ce dernier ne soit supprimé.

Liste de paramètres

stream_filter

Le filtre de flux à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Refiltrage dynamique d'un flux

<?php
/* Ouverture d'un fichier de tests pour l'écriture et la lecture */
$fp fopen("test.txt""rw");

$rot13_filter stream_filter_append($fp"string.rot13"STREAM_FILTER_WRITE);
fwrite($fp"Ceci est ");
stream_filter_remove($rot13_filter);
fwrite($fp"un test\n");

rewind($fp);
fpassthru($fp);
fclose($fp);

?>

L'exemple ci-dessus va afficher :

Prpv rfg un test

Voir aussi



stream_get_contents

(PHP 5)

stream_get_contentsLit tout un flux dans une chaîne

Description

string stream_get_contents ( resource $handle [, int $maxlength = -1 [, int $offset = -1 ]] )

stream_get_contents() est identique à file_get_contents(), sauf qu'elle opère sur un pointeur de fichier déjà ouvert et retourne le contenu restant, allant jusqu'à maxlength octets, dans une chaîne et commençant à la position offset.

Liste de paramètres

handle (resource)

Une ressource de flux (e.g. retournée par la fonction fopen())

maxlength (entier)

Le nombre maximal d'octets à lire. Par défaut, -1 (lit tout le contenu restant du buffer).

offset (entier)

Se déplace à la position spécifiée avant la lecture. Si le nombre passé est négatif, aucun déplacement ne sera effectué et la lecture commencera de la position courante.

Valeurs de retour

Retourne une chaîne de caractères ou FALSE si une erreur survient.

Historique

Version Description
5.1.0 Le paramètre offset a été ajouté.

Exemples

Exemple #1 Exemple avec stream_get_contents()

<?php

if ($stream fopen('http://www.example.com''r')) {
    
// affiche toute la page, en commençant à la position 10
    
echo stream_get_contents($stream, -110);

    
fclose($stream);
}


if (
$stream fopen('http://www.exemple.net''r')) {
    
// Affichage des 5 premiers octets
    
echo stream_get_contents($stream5);

    
fclose($stream);
}

?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fread() - Lecture du fichier en mode binaire
  • fpassthru() - Affiche le reste du fichier



stream_get_filters

(PHP 5)

stream_get_filtersListe les filtres enregistrés

Description

array stream_get_filters ( void )

stream_get_filters() lit la liste des filtres enregistrés.

Valeurs de retour

Retourne un tableau indexé contenant la liste des filtres de flux disponibles sur le système.

Exemples

Exemple #1 Exemple avec stream_get_filters()

<?php
$streamlist 
stream_get_filters();
print_r($streamlist);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

Voir aussi



stream_get_line

(PHP 5)

stream_get_lineLit une ligne dans un flux

Description

string stream_get_line ( resource $handle , int $length [, string $ending ] )

stream_get_line() lit une ligne dans la ressource handle.

La lecture se termine quand length octets ont été lus, quand la chaîne spécifiée par ending a été rencontrée (mais ne sera pas inclue dans la valeur retournée), ou si EOF survient : n'importe lequel des trois qui survient en premier.

Cette fonction est presque identique à fgets() hormis le fait qu'elle permet d'utiliser un délimiteur de ligne différent des caractères standards de \n, \r et \r\n, et ne retourne pas le délimiteur lui-même.

Liste de paramètres

handle

Une ressource valide de fichier.

length

Le nombre d'octets à lire dans la ressource.

ending

Un délimiteur de chaîne optionnel.

Valeurs de retour

stream_get_line() lit une ligne de taille maximale length dans le flux handle.

Si une erreur survient, stream_get_line() retourne FALSE.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetc() - Lit un caractère dans un fichier


stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5)

stream_get_meta_dataLit les en-têtes et données méta des flux

Description

array stream_get_meta_data ( resource $stream )

Retourne les informations disponibles sur le flux stream.

Liste de paramètres

stream

Le flux peut être n'importe quel flux créé par les fonctions fopen(), fsockopen() ou pfsockopen().

Valeurs de retour

Le tableau résultant peut contenir les éléments suivants :

  • timed_out (booléen) : TRUE si le flux a atteint de délai d'expiration en attendant des données durant le dernier appel aux fonctions fread() et fgets().

  • blocked (booléen) : TRUE si le flux est en mode bloquant. Voir aussi stream_set_blocking().

  • eof (booléen) : TRUE si le flux a atteint la fin du fichier. Notez que pour les sockets, cette valeur peut être TRUE même si unread_bytes est non nul. Pour déterminer s'il reste des données à lire, utilisez plutôt la fonction feof().

  • unread_bytes (entier) : le nombre d'octets actuellement placés dans le buffer interne à PHP.

    Note: Vous ne devriez pas utiliser cette valeur dans un script.

Historique

Version Description
5.0.0 Les élément suivants ont été ajoutés dans le tableau retourné : mode, seekable, et uri.
4.3.0 Les éléments suivants ont été ajoutés dans le tableau retourné : stream_type, wrapper_type, wrapper_data et filters.
4.3.0 socket_get_status() est un alias de cette fonction. Avant PHP 4.3.0, elle était utilisée pour obtenir les quatre premiers éléments, uniquement pour les flux de sockets.

Exemples

Exemple #1 Exemple avec stream_get_meta_data()

<?php
$url 
'http://www.example.com/';

if (!
$fp fopen($url'r')) {
    
trigger_error("Impossible d'ouvrir l'URL ($url)"E_USER_ERROR);
}

$meta stream_get_meta_data($fp);

print_r($meta);

fclose($fp);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [wrapper_data] => Array
        (
            [0] => HTTP/1.1 200 OK
            [1] => Server: Apache/2.2.3 (Red Hat)
            [2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
            [3] => ETag: "b300b4-1b6-4059a80bfd280"
            [4] => Accept-Ranges: bytes
            [5] => Content-Type: text/html; charset=UTF-8
            [6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com
            [6] => Connection: close     
            [7] => Date: Fri, 16 Oct 2009 12:00:00 GMT
            [8] => Age: 1164   
            [9] => Content-Length: 438
        )

    [wrapper_type] => http
    [stream_type] => tcp_socket/ssl
    [mode] => r
    [unread_bytes] => 438
    [seekable] => 
    [uri] => http://www.example.com/
    [timed_out] => 
    [blocked] => 1
    [eof] => 
)

Notes

Note:

Cette fonction ne fonctionne pas sur les sockets créées avec l'extension socket.

Voir aussi



stream_get_transports

(PHP 5)

stream_get_transportsListe les gestionnaires de transports de sockets disponibles

Description

array stream_get_transports ( void )

stream_get_transports() retourne un tableau indexé contenant les noms des transports de sockets disponibles pour le système.

Valeurs de retour

Retourne un tableau indexé de nom de sockets de transport.

Exemples

Exemple #1 Exemple avec stream_get_transports()

<?php
$xportlist 
stream_get_transports();
print_r($xportlist);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)
?>

Voir aussi



stream_get_wrappers

(PHP 5)

stream_get_wrappersListe les gestionnaires de flux

Description

array stream_get_wrappers ( void )

stream_get_wrappers() lit la liste des gestionnaires de flux disponibles sur le système courant.

Valeurs de retour

stream_get_wrappers() retourne un tableau indexé contenant le nom de tous les gestionnaires de flux disponibles sur le système.

Exemples

Exemple #1 Exemple avec stream_get_wrappers()

<?php
print_r
(stream_get_wrappers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Exemple #2 Vérification de l'existence d'un gestionnaire de flux

<?php
// Vérification de l'existence d'un gestionnaire de flux bzip2
if (in_array('compress.bzip2'stream_get_wrappers())) {
    echo 
'compress.bzip2:// support actif.';
} else {
    echo 
'compress.bzip2:// support inactif.';
}
?>

Voir aussi



stream_is_local

(PHP 5 >= 5.2.4)

stream_is_localVérifie si un flux est local

Description

bool stream_is_local ( mixed $stream_or_url )

stream_is_local() vérifie si le flux ou l'URL stream_or_url est local au système ou non.

Liste de paramètres

stream_or_url

La ressource de flux ou l'URL à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_is_local()

Exemple simple.

<?php
var_dump
(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)



stream_notification_callback

(PHP 5 >= 5.2.0)

stream_notification_callbackUne fonction de rappel pour le paramètre de contexte notification

Description

void stream_notification_callback ( int $notification_code , int $severity , string $message , int $message_code , int $bytes_transferred , int $bytes_max )

Une fonction de callback, utilisée par le paramètre de contexte notification, appelé lors d'un événement.

Note:

Ce n'est pas une réelle fonction, uniquement un prototype de la façon dont la fonction doit être.

Liste de paramètres

notification_code

Une des constantes de notification STREAM_NOTIFY_*.

severity

Une des constantes de notification STREAM_NOTIFY_SEVERITY_*.

message

Passé si un message descriptif est disponible pour cet événement.

message_code

Passé si un code de message descriptif est disponible pour cet événement.

La signification de cette valeur dépend du gestionnaire spécifique utilisé.

bytes_transferred

Si c'est possible, bytes_transferred sera rempli.

bytes_max

Si c'est possible, bytes_max sera rempli.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec stream_notification_callback()

<?php
function stream_notification_callback($notification_code$severity$message$message_code$bytes_transferred$bytes_max) {

    switch(
$notification_code) {
        case 
STREAM_NOTIFY_RESOLVE:
        case 
STREAM_NOTIFY_AUTH_REQUIRED:
        case 
STREAM_NOTIFY_COMPLETED:
        case 
STREAM_NOTIFY_FAILURE:
        case 
STREAM_NOTIFY_AUTH_RESULT:
            
var_dump($notification_code$severity$message$message_code$bytes_transferred$bytes_max);
            
/* Ignore */
            
break;

        case 
STREAM_NOTIFY_REDIRECTED:
            echo 
"Redirection vers : "$message;
            break;

        case 
STREAM_NOTIFY_CONNECT:
            echo 
"Connecté...";
            break;

        case 
STREAM_NOTIFY_FILE_SIZE_IS:
            echo 
"Récupération de la taille du fichier : "$bytes_max;
            break;

        case 
STREAM_NOTIFY_MIME_TYPE_IS:
            echo 
"Type mime trouvé : "$message;
            break;

        case 
STREAM_NOTIFY_PROGRESS:
            echo 
"En cours de téléchargement, déjà "$bytes_transferred" octets transférés";
            break;
    }
    echo 
"\n";
}

$ctx stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact"false$ctx);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connecté...
Type mime trouvé : text/html; charset=utf-8
Redirection vers : http://no.php.net/contact
Connecté...
Récupération de la taille du fichier : 0
Type mime trouvé : text/html; charset=utf-8
Redirection vers : http://no.php.net/contact.php
Connecté...
Récupération de la taille du fichier : 4589
Type mime trouvé : text/html;charset=utf-8
En cours de téléchargement, déjà 0 octets transférés
En cours de téléchargement, déjà 0 octets transférés
En cours de téléchargement, déjà 0 octets transférés
En cours de téléchargement, déjà 1440 octets transférés
En cours de téléchargement, déjà 2880 octets transférés
En cours de téléchargement, déjà 4320 octets transférés
En cours de téléchargement, déjà 5760 octets transférés
En cours de téléchargement, déjà 6381 octets transférés
En cours de téléchargement, déjà 7002 octets transférés

Exemple #2 Barre de progression simple pour un client de téléchargement en ligne de commande

<?php
function usage($argv) {
    echo 
"Utilisation :\n";
    
printf("\tphp %s <http://example.com/file> <localfile>\n"$argv[0]);
    exit(
1);
}

function 
stream_notification_callback($notification_code$severity$message$message_code$bytes_transferred$bytes_max) {
    static 
$filesize null;

    switch(
$notification_code) {
    case 
STREAM_NOTIFY_RESOLVE:
    case 
STREAM_NOTIFY_AUTH_REQUIRED:
    case 
STREAM_NOTIFY_COMPLETED:
    case 
STREAM_NOTIFY_FAILURE:
    case 
STREAM_NOTIFY_AUTH_RESULT:
        
/* Ignore */
        
break;

    case 
STREAM_NOTIFY_REDIRECTED:
        echo 
"Redirection vers : "$message"\n";
        break;

    case 
STREAM_NOTIFY_CONNECT:
        echo 
"Connecté...\n";
        break;

    case 
STREAM_NOTIFY_FILE_SIZE_IS:
        
$filesize $bytes_max;
        echo 
"Taille du fichier : "$filesize"\n";
        break;

    case 
STREAM_NOTIFY_MIME_TYPE_IS:
        echo 
"Type Mime : "$message"\n";
        break;

    case 
STREAM_NOTIFY_PROGRESS:
        if (
$bytes_transferred 0) {
            if (!isset(
$filesize)) {
                
printf("\rTaille du fichier inconnue.. %2d kb done.."$bytes_transferred/1024);
            } else {
                
$length = (int)(($bytes_transferred/$filesize)*100);
                
printf("\r[%-100s] %d%% (%2d/%2d kb)"str_repeat("="$length). ">"$length, ($bytes_transferred/1024), $filesize/1024);
            }
        }
        break;
    }
}

isset(
$argv[1], $argv[2]) or usage($argv);

$ctx stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

$fp fopen($argv[1], "r"false$ctx);
if (
is_resource($fp) && file_put_contents($argv[2], $fp)) {
    echo 
"\nFait !\n";
    exit(
0);
}

$err error_get_last();
echo 
"\nErrrrreurr..\n"$err["message"], "\n";
exit(
1);
?>

Exécutez l'exemple ci-dessus avec : php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 affichera quelque chose similaire à :

Connecté...
Type Mime : text/html; charset=utf-8
Redirection vers : http://no2.php.net/distributions/php-5.2.5.tar.bz2
Connecté...
Taille du fichier : 7773024
Type Mime : application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)



stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5)

stream_register_wrapperAlias de stream_wrapper_register()

Description

Cette fonction est un alias de : stream_wrapper_register().



stream_resolve_include_path

(PHP 5 >= 5.3.2)

stream_resolve_include_pathRésout un nom de fichier suivant les règles du chemin d'inclusion

Description

string stream_resolve_include_path ( string $filename )

Résout le nom de fichier filename en utilisant le chemin d'inclusion, en utilisant les mêmes règles que les fonctions fopen()/include().

Liste de paramètres

filename

Le nom de fichier à résoudre.

Valeurs de retour

Retourne une chaîne de caractères contenant le nom de fichier absolu résolu, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_resolve_include_path()

Exemple simple d'utilisation.

<?php
var_dump
(stream_resolve_include_path("test.php"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(22) "/var/www/html/test.php"



stream_select

(PHP 4 >= 4.3.0, PHP 5)

stream_selectSurveille la modification d'un ou plusieurs flux

Description

int stream_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] )

stream_select() accepte un tableau de flux et attend que l'un d'entre eux change de statut. Cette opération est équivalente à ce que fait la fonction socket_select(), hormis le fait qu'elle travaille sur un flux.

Liste de paramètres

read

Les flux qui sont listés dans le paramètre read seront surveillés en lecture, c'est-à-dire si de nouveaux octets sont disponibles en lecture (pour être précis, si une lecture ne bloquera pas, ce qui inclut aussi les flux qui sont en fin de fichier, auquel cas un appel à la fonction fread() retournera une chaîne de taille 0).

write

Les flux qui sont listés dans le paramètre write seront surveillés en écriture (pour être précis, si une écriture ne bloquera pas).

except

Les flux qui sont listés dans le paramètre except seront surveillés pour voir si une exception est levée.

Note:

Lorsque stream_select() se termine, les tableaux read, write et except sont modifiés pour indiquer quel flux ont actuellement changé de statut.

Vous n'êtes pas obligés de remplir tous les tableaux arguments de la fonction stream_select(). Vous pouvez les laisser et utiliser un tableau vide, ou encore NULL. De plus, n'oubliez pas que ces tableaux sont passés par référence et seront modifiés une fois que stream_select() s'achève.
tv_sec

Les paramètres tv_sec et tv_usec forment le délai d'expiration, tv_sec spécifie le nombre de secondes tandis que tv_usec, le nombre de microsecondes. Le paramètre timeout représente la limite supérieure du temps que stream_select() doit attendre avant de se terminer. Si tv_sec et tv_usec sont tous les deux définis à 0, , stream_select() n'attendra pas de données - à la place, elle se terminera immédiatement, indiquant le statut courant du flux.

Si tv_sec vaut NULL, stream_select() peut se bloquer indéfiniment, se terminant uniquement lorsqu'un événement sur un des flux surveillés survient (ou si un signal interrompt l'appel système).

Avertissement

Utiliser un valeur de 0 vous permet de tester instantanément le statut des flux, mais il faut savoir qu'il n'est pas recommandé d'utiliser 0 dans une boucle, car cela va faire consommer énormément de processeur à votre script.

Il est bien mieux de spécifier une valeur de quelques secondes, même si vous devez surveiller et exécuter différents codes de manière simultanée. Par exemple, utiliser une valeur d'au moins 200000 microsecondes, vous réduirez considérablement la consommation processeur de votre script.

N'oubliez pas que la valeur d'expiration est la durée maximale d'attente, si rien ne se passe : stream_select() retournera un résultat dès que l'un des flux soumis est prêt à l'utilisation.

tv_usec

Voyez la description de tv_sec.

Valeurs de retour

En cas de succès, stream_select() retourne le nombre de flux qui ont évolué, ce qui peut être 0, si le délai d'expiration a été atteint avant que les flux n'évoluent. En cas d'erreur, la fonction retournera FALSE et un avertissement sera renvoyé (cela peut apparaître si l'appel système est interrompu par un signal entrant).

Exemples

Exemple #1 Exemple avec stream_select()

Cet exemple surveille si des données arrivent pour être lues soit dans $stream1, soit dans $stream2. Si le délai d'expiration vaut 0, la fonction se termine immédiatement :

<?php
/* Preparation du tableau de flux lecture */
$read   = array($stream1$stream2);
$write  NULL;
$except NULL;
if (
false === ($num_changed_streams stream_select($read$write$except0))) {
    
/* Gestion d'erreur */
} elseif ($num_changed_streams 0) {
    
/* Au moins un des flux a évolué  */
}
?>

Notes

Note:

À cause d'une limitation du moteur Zend actuel, il n'est pas possible de passer la valeur NULL directement comme paramètre d'une fonction qui s'attend à des paramètres passés par référence. Au lieu de cela, il est recommandé d'utiliser une variable temporaire, ou une expression dont le membre de gauche est une variable temporaire. Comme ceci :

<?php
$e 
NULL;
stream_select($r$w$e0);
?>

Note:

Assurez-vous de bien utiliser l'opérateur === lorsque vous recherchez des erreurs. Comme stream_select() peut retourner 0, une comparaison effectuée à l'aide de == l'évaluerait à TRUE :

<?php
$e 
NULL;
if (
false === stream_select($r$w$e0)) {
    echo 
"stream_select() failed\n";
}
?>

Note:

Si vous avez écrit ou lu dans un flux qui est retourné dans les tableaux de flux, soyez bien conscient que ces flux n'ont peut être pas écrit ou lu la totalité des données demandées. Soyez en mesure de lire un seul octet.

Note:

Quelques flux (comme zlib) ne peuvent pas être sélectionnés par cette fonction.

Note:

Notes aux utilisateurs de Windows : stream_select() utilisé sur une pipe retournée par proc_open() peut causer la perte de données sous Windows 98.

Utiliser la fonction stream_select() sur un pointeur de fichier retourné par proc_open() échouera et retournera FALSE sous Windows.

Voir aussi



stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5)

stream_set_blockingConfigure le mode bloquant d'un flux

Description

bool stream_set_blocking ( resource $stream , int $mode )

stream_set_blocking() configure le mode bloquant du flux stream.

Cette fonction fonctionne pour tous les flux qui supportent le mode non-bloquant (actuellement, les fichiers et les flux de sockets).

Liste de paramètres

stream

Le flux.

mode

Si mode vaut 0, stream sera configuré en mode non-bloquant, et s'il vaut 1, stream sera configuré en mode bloquant. Cet appel affecte les fonctions telles que fgets() et fread() qui lisent dans des flux. En mode non-bloquant, la fonction fgets() s'exécute juste après son appel, alors qu'en mode bloquant, elle attendra des données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 Avant PHP 4.3, cette fonction ne fonctionnait que sur les flux utilisant des sockets.

Notes

Note:

Cette fonction s'appelait jadis set_socket_blocking() puis socket_set_blocking() mais leur usage est déconseillé.

Voir aussi



stream_set_read_buffer

(PHP 5 >= 5.3.3)

stream_set_read_bufferConfigure le buffer de lecture d'un flux

Description

int stream_set_read_buffer ( resource $stream , int $buffer )

Configure le buffer de lecture d'un flux. Equivalent à stream_set_write_buffer(), mais pour les opérations de lecture.

Liste de paramètres

stream

Le pointeur de fichier.

buffer

Le nombre d'octets à mettre en buffer. Si buffer vaut 0 alors les opérations sont sans buffer. Cela garantit que les opérations avec fread() sont achevées avant que d'autres processus ne soient autorisés à lire dans le flux de sortie.

Valeurs de retour

Retourne 0 en cas de succès, ou EOF si la requête échoue.

Voir aussi



stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5)

stream_set_timeoutConfigure la durée d'expiration d'un flux

Description

bool stream_set_timeout ( resource $stream , int $seconds [, int $microseconds = 0 ] )

stream_set_timeout() configure la durée d'expiration du flux stream, exprimé comme la durée de seconds secondes et microseconds microsecondes.

Lorsque le flux se termine, la clé 'timed_out' du tableau retourné par stream_get_meta_data() est défini à TRUE, cependant, aucune erreur ou alerte n'est générée.

Liste de paramètres

stream

Le flux cible.

seconds

Le nombre de secondes entières du délai d'expiration.

microseconds

Le nombre de microsecondes entières du délai d'expiration.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 Depuis PHP 4.3, cette fonction peut (potentiellement) fonctionner avec n'importe quel flux. Avant PHP 4.3, les flux utilisant des sockets sont les seuls qui soient supportés dans le coeur de PHP, même si les autres extensions pourraient supporter cette fonction.

Exemples

Exemple #1 Exemple avec stream_set_timeout()

<?php
$fp 
fsockopen("www.example.com"80);
if (!
$fp) {
     echo 
"Impossible d'ouvrir\n";
} else {

  
fwrite($fp"GET / HTTP/1.0\r\n\r\n");
  
stream_set_timeout($fp2);
  
$res fread($fp2000);

  
$info stream_get_meta_data($fp);
  
fclose($fp);

  if (
$info['timed_out']) {
     echo 
'Délai de connexion dépassé !';
  } else {
     echo 
$res;
  }

}
?>

Notes

Note:

Cette fonction ne fonctionne pas avec les opérations avancées comme stream_socket_recvfrom(), utilisez plutôt stream_select() avec une durée d'expiration en paramètre.

Cette fonction était appelée auparavant set_socket_timeout(), et aussi socket_set_timeout(), mais ces appellations sont obsolètes.

Voir aussi

  • fsockopen() - Ouvre une socket de connexion Internet ou Unix
  • fopen() - Ouvre un fichier ou une URL


stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5)

stream_set_write_bufferConfigure le buffer d'écriture d'un flux

Description

int stream_set_write_buffer ( resource $stream , int $buffer )

stream_set_write_buffer() configure le buffer d'écriture du flux stream à la taille de buffer octets.

fwrite() est habituellement configurée avec un buffer de 8 ko. Cela signifie que si deux processus veulent écrire dans le même flux de sortie (par exemple, un fichier), ils font une pause tous les 8 ko pour laisser les autres écrire aussi.

Liste de paramètres

stream

Le pointeur de fichier.

buffer

Le nombre d'octets à mettre en buffer. Si buffer vaut 0 alors les opérations sont sans buffer. Cela garantit que les opérations avec fwrite() sont achevées avant que d'autres processus ne soient autorisés à écrire dans le flux de sortie.

Valeurs de retour

Retourne 0 en cas de succès, et EOF si la requête échoue.

Exemples

Exemple #1 Exemple avec stream_set_write_buffer()

L'exemple ci-dessous illustre l'utilisation de stream_set_write_buffer() pour créer un flux non bufferisé.

$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fputs($fp, $output);
  fclose($fp);
}

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • fwrite() - Écrit un fichier en mode binaire


stream_socket_accept

(PHP 5)

stream_socket_acceptAccepte une connexion sur une socket créée par stream_socket_server()

Description

resource stream_socket_accept ( resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername ]] )

Accepte une connexion sur une socket créée précédemment avec stream_socket_server().

Liste de paramètres

server_socket

La socket serveur depuis laquelle accepter une connexion.

timeout

Remplace le délai d'expiration par défaut de la socket. Ce délai doit être donné en secondes.

peername

Le nom (adresse) du client connecté, si fourni et si disponible pour le transport sélectionné.

Note:

Peut également être déterminé plus tard, en utilisant la fonction stream_socket_get_name().

Valeurs de retour

Retourne un flux vers la connexion socket acceptée ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction ne doit pas être utilisée avec les sockets serveur UDP. À la place, utilisez les fonctions stream_socket_recvfrom() et stream_socket_sendto().

Voir aussi



stream_socket_client

(PHP 5)

stream_socket_clientOuvre une connexion socket Internet ou Unix

Description

resource stream_socket_client ( string $remote_socket [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context ]]]]] )

Initie un flux ou une connexion datagramme avec la destination remote_socket. Le type de socket créée est déterminé par le transport spécifié avec le formatage URL suivant : transport://target. Pour une socket Internet, (AF_INET) comme TCP et UDP, la cible de remote_socket sera une adresse IP ou un nom d'hôte. Pour une socket Unix, la cible doit être un fichier de socket du système.

Note:

Le flux sera par défaut ouvert en mode bloquant. Vous pouvez le passer en mode non bloquant en utilisant la fonction stream_set_blocking().

Liste de paramètres

remote_socket

L'adresse du socket.

errno

Contiendra le numéro de l'erreur système si la connexion échoue.

errstr

Contiendra le message de l'erreur système si la connexion échoue.

timeout

Délai d'expiration, en secondes, pour l'appel système connect().

Note: Ce paramètre n'est appliqué que pour les connexions qui ne sont pas asynchrones.

Note:

Pour définir un délai d'expiration lors de la lecture/écriture de données via un socket, utilisez la fonction stream_set_timeout(), vu que le paramètre timeout n'est appliqué que lors de la connexion au socket.

flags

Champ de bits qui peut être la combinaison de n'importe quelles options de connexion. Actuellement, les valeurs possibles pour ces options sont STREAM_CLIENT_CONNECT (défaut), STREAM_CLIENT_ASYNC_CONNECT et STREAM_CLIENT_PERSISTENT.

context

Une ressource de contexte valide, créée par la fonction stream_context_create().

Valeurs de retour

En cas de succès, une ressource de flux est retournée, qui peut être utilisée avec d'autres fonctions de fichiers, comme fgets(), fgetss(), fwrite(), fclose(), et feof(), FALSE si une erreur survient.

Erreurs / Exceptions

Si l'appel échoue, stream_socket_client() va retourner FALSE et si les paramètres optionnels errno et errstr sont fournis, ils recevront l'erreur exacte qui est survenue dans le système lors de l'appel à connect(). Si la valeur retournée dans errno est 0 et que la fonction a retourné FALSE, c'est une indication que l'erreur est survenue avant l'appel à connect(). Cela est probablement dû à un problème d'initialisation de la socket. Notez que errno eterrstr doivent être passés par référence.

Exemples

Exemple #1 Exemple avec stream_socket_client()

<?php
$fp 
stream_socket_client("tcp://www.example.com:80"$errno$errstr30);
if (!
$fp) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
fwrite($fp"GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!
feof($fp)) {
        echo 
fgets($fp1024);
    }
    
fclose($fp);
}
?>

Exemple #2 Utilisation de connexions UDP

Lit la date et l'heure sur un service UDP de type "daytime" (port 13) sur votre propre machine :

<?php
$fp 
stream_socket_client("udp://127.0.0.1:13"$errno$errstr);
if (!
$fp) {
    echo 
"ERREUR : $errno - $errstr<br />\n";
} else {
    
fwrite($fp"\n");
    echo 
fread($fp26);
    
fclose($fp);
}
?>

Notes

Avertissement

Les sockets UDP sembleront parfois s'ouvrir sans erreur, même si l'hôte distant n'est pas accessible. Cette erreur ne deviendra apparente que lorsque vous essaierez de lire ou écrire des données avec cette socket. La raison à cela est que UDP est un protocole sans connexion, ce qui signifie que le système d'exploitation n'a pas à établir de lien pour la socket, jusqu'à ce qu'il commence à échanger des données.

Note: Lors de la spécification d'adresses IPv6 au format numérique (e.g. fe80::1) vous devez placer l'adresse IP entre crochets. Par exemple : tcp://[fe80::1]:80.

Note:

Suivant votre environnement, les sockets Unix ou le délai d'expiration peuvent ne pas être disponibles. Une liste des transports disponibles sur le système est accessible via stream_get_transports(). Voyez Liste des modes de transport de sockets disponibles pour une liste de transports natifs.

Voir aussi



stream_socket_enable_crypto

(PHP 5 >= 5.1.0)

stream_socket_enable_cryptoActive ou non le chiffrement, pour une socket déjà connectée

Description

mixed stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] )

Active ou non le chiffrement, pour une socket déjà connectée.

Une fois les paramètres de chiffrement définis, le chiffrement peut être activé et désactivé dynamiquement en passant TRUE ou FALSE dans le paramètre enable.

Liste de paramètres

stream

La ressource de flux.

enable

Active ou non le chiffrement sur le flux.

crypto_type

Configure le chiffrement sur le flux. Les méthodes valides sont

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER

session_stream

Initialise le flux avec la configuration issue du paramètre session_stream.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si la négociation a échoué ou 0 s'il n'y a pas assez de données et que vous devez essayer encore (uniquement pour les sockets non-bloquantes).

Exemples

Exemple #1 Exemple avec stream_socket_enable_crypto()

<?php
$fp 
stream_socket_client("tcp://myproto.example.com:31337"$errno$errstr30);
if (!
$fp) {
    die(
"Impossible de se connecter : $errstr ($errno)");
}

/* Activation du chiffrement durant l'identification */
stream_socket_enable_crypto($fptrueSTREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp"USER god\r\n");
fwrite($fp"PASS secret\r\n");

/* Désactivation du chiffrement pour le reste */
stream_socket_enable_crypto($fpfalse);

while (
$motd fgets($fp)) {
    echo 
$motd;
}

fclose($fp);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :



stream_socket_get_name

(PHP 5)

stream_socket_get_nameLit le nom des sockets locale ou distante

Description

string stream_socket_get_name ( resource $handle , bool $want_peer )

stream_socket_get_name() retourne le nom de la socket locale ou distante pour la connexion handle.

Liste de paramètres

handle

La socket dont il faut lire le nom.

want_peer

Si ce paramètre vaut TRUE le nom de la socket remote (distante) sera retourné, et si ce paramètre vaut FALSE la socket local (locale) sera retournée.

Valeurs de retour

Le nom de la socket.

Voir aussi



stream_socket_pair

(PHP 5 >= 5.1.0)

stream_socket_pair Crée une paire de sockets connectées et indissociables

Description

array stream_socket_pair ( int $domain , int $type , int $protocol )

stream_socket_pair() crée une paire de sockets connectées et indissociables. Cette fonction est communément utilisée en IPC (InterProcess Communication).

Liste de paramètres

domain

La famille de protocole à utiliser : STREAM_PF_INET, STREAM_PF_INET6 ou STREAM_PF_UNIX

type

Le type de communication à utiliser : STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET ou STREAM_SOCK_STREAM

protocol

Le protocole à utiliser : STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP ou STREAM_IPPROTO_UDP

Note: Consultez la liste des constantes de flux pour plus de détails sur chaque constante.

Valeurs de retour

Retourne un tableau contenant les ressources des deux sockets en cas de succès, ou FALSE en cas d'échec.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows.

Exemples

Exemple #1 Exemple avec stream_socket_pair()

Cet exemple montre une utilisation basique de stream_socket_pair() dans une communication inter-processus.

<?php

$sockets 
stream_socket_pair(STREAM_PF_UNIXSTREAM_SOCK_STREAMSTREAM_IPPROTO_IP);
$pid     pcntl_fork();

if (
$pid == -1) {
  die(
'Impossible de forker');

} else if (
$pid) {
  
/* parent */
  
fclose($sockets[0]);

  
fwrite($sockets[1], "PID enfant : $pid\n");
  echo 
fgets($sockets[1]);

  
fclose($sockets[1]);

} else {
  
/* enfant */
  
fclose($sockets[1]);

  
fwrite($sockets[0], "message de l'enfant\n");
  echo 
fgets($sockets[0]);

  
fclose($sockets[0]);
}

     
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PID enfant : 1378
message de l'enfant



stream_socket_recvfrom

(PHP 5)

stream_socket_recvfromLit des données depuis une socket, connectée ou pas

Description

string stream_socket_recvfrom ( resource $socket , int $length [, int $flags = 0 [, string &$address ]] )

stream_socket_recvfrom() accepte les données depuis une socket distante, jusqu'à un total de length octets.

Liste de paramètres

socket

La socket distante.

length

Le nombre d'octets à recevoir de socket.

flags

La valeur de flags peut être la combinaison des constantes suivantes :

Valeurs possibles pour flags
STREAM_OOB Traite les données en mode OOB (out-of-band).
STREAM_PEEK Lit des données depuis la socket, mais n'utilise pas le buffer. Les prochains appels à fread() ou stream_socket_recvfrom() liront les mêmes données.

address

Si le paramètre address est fourni, il recevra l'adresse de la socket distante.

Valeurs de retour

Retourne les données lues, sous forme de chaîne de caractères

Exemples

Exemple #1 Exemple avec stream_socket_recvfrom()

<?php
/* Ouvre une socket sur le port 1234 de localhost */
$server stream_socket_server('tcp://127.0.0.1:1234');

/* Accepte une connexion */
$socket stream_socket_accept($server);

/* Lit un paquet (1500 est la taille classique MTU) de données OOB */
echo "Received Out-Of-Band: '" stream_socket_recvfrom($socket1500STREAM_OOB) . "'\n";

/* Lit les données normales in-band, mais ne modifie rien */
echo "Data: '" stream_socket_recvfrom($socket1500STREAM_PEEK) . "'\n";

/* Relit le même paquet, mais vide le buffer. */
echo "Data: '" stream_socket_recvfrom($socket1500) . "'\n";

/* Terminaison */
fclose($socket);
fclose($server);
?>

Notes

Note:

Si le message reçu est plus grand que length, les données supplémentaires peuvent être détruites, suivant le type de socket utilisée (par exemple UDP).

Note:

L'appel de stream_socket_recvfrom() sur les flux basés sur le socket, après l'appel de fonctions de flux basé sur un tampon (comme fread() ou stream_get_line()) lit directement les données à partir du socket et évite l'utilisation du tampon avec le flux.

Voir aussi



stream_socket_sendto

(PHP 5)

stream_socket_sendtoEnvoie une message à la socket, connectée ou pas

Description

int stream_socket_sendto ( resource $socket , string $data [, int $flags = 0 [, string $address ]] )

stream_socket_sendto() envoie les données data à la socket socket.

Liste de paramètres

socket

La socket vers laquelle envoyer les données data.

data

Les données à envoyer.

flags

La valeur de flags peut être la combinaison des constantes suivantes :

Valeurs possibles pour flags
STREAM_OOB Traite les données en mode OOB (out-of-band).

address

L'adresse de la socket est spécifiée lorsque la socket est créée, et sera utilisée si une autre adresse n'est pas spécifiée dans le paramètre address.

Quand elle est fournie, elle doit être au format IP numérique (version 4 ou 6).

Valeurs de retour

Retourne le code de résultat, sous forme d'entier.

Exemples

Exemple #1 Exemple avec stream_socket_sendto()

<?php
/* Ouvre une socket sur le port 1234 de localhost */
$socket stream_socket_client('tcp://127.0.0.1:1234');

/* Envoie des données directement */
fwrite($socket"Normal data transmit.");

/* Envoie d'autre données, en mode out of band. */
stream_socket_sendto($socket"Mode out of Band."STREAM_OOB);

/* Fin */
fclose($socket);
?>

Voir aussi



stream_socket_server

(PHP 5)

stream_socket_server Crée une socket serveur Unix ou Internet

Description

resource stream_socket_server ( string $local_socket [, int &$errno [, string &$errstr [, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context ]]]] )

stream_socket_server() crée un flux ou un datagramme sur la socket spécifiée local_socket.

stream_socket_server() ne fait que créer une socket et, pour accepter des connexions, vous devez utiliser stream_socket_accept().

Liste de paramètres

local_socket

Le type de socket créée est déterminé par le transport spécifié avec le formatage URL suivant : transport://target.

Pour une socket Internet,(AF_INET) comme TCP et UDP, la cible de remote_socket sera une adresse IP ou un nom d'hôte suivi de deux points et d'un numéro de port. Pour une socket Unix, la cible doit être un fichier de socket du système.

En fonction de votre environnement, les sockets de domaine Unix peuvent être indisponibles. Une liste des transports disponibles est accessible via stream_get_transports(). Voyez Liste des modes de transport de sockets disponibles pour connaître la liste des transports natifs.

errno

Si les arguments optionnels errno et errstr sont présents, ils seront configurés pour indiquer le niveau d'erreur actuel des fonctions système socket(), bind() et listen(). Si la valeur retournée dans errno est 0, et que la fonction retourne FALSE, c'est une indication que l'erreur est survenue avant l'appel à bind(). Ceci est probablement dû à un problème d'initialisation de la socket. Notez que les arguments errno et errstr seront toujours passés par référence.

errstr

Voyez la description de errno.

flags

Un champ de bits, qui peut être la combinaison de n'importe quelle option de création de socket.

Note:

Pour les sockets UDP, vous devez utiliser la constante STREAM_SERVER_BIND comme valeur du paramètre flags.

context

Valeurs de retour

Retourne le flux créé, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec stream_socket_server()

<?php
$socket 
stream_socket_server("tcp://0.0.0.0:8000"$errno$errstr);
if (!
$socket) {
  echo 
"$errstr ($errno)<br />\n";
} else {
  while (
$conn stream_socket_accept($socket)) {
    
fputs ($conn'L\'heure locale est ' date('n/j/Y g:i a') . "\n");
    
fclose ($conn);
  }
  
fclose($socket);
}
?>

L'exemple ci-dessous vous montre comment lire la date et l'heure sur un service UDP (port 13) sur votre propre machine, tel que présenté avec la fonction stream_socket_client() :

Note: La plupart des systèmes ont besoin d'un accès administrateur pour ouvrir une socket sur les ports en dessous de 1024.

Exemple #2 Utiliser un serveur de socket UDP

<?php
$socket 
stream_socket_server("udp://0.0.0.0:13"$errno$errstrSTREAM_SERVER_BIND);
if (!
$socket) {
  echo 
"ERROR: $errno - $errstr<br />\n";
} else {
  while (
$conn stream_socket_accept($socket)) {
    
fwrite($conndate("D M j H:i:s Y\r\n"));
    
fclose($conn);
  }
  
fclose($socket);
}
?>

Notes

Note: Lors de la spécification d'adresses IPv6 au format numérique (e.g. fe80::1) vous devez placer l'adresse IP entre crochets. Par exemple : tcp://[fe80::1]:80.

Voir aussi



stream_socket_shutdown

(PHP 5 >= 5.2.1)

stream_socket_shutdownArrête une connexion full-duplex

Description

bool stream_socket_shutdown ( resource $stream , int $how )

Arrête (partiellement ou non) une connexion full-duplex.

Liste de paramètres

stream

Un flux ouvert (ouvert avec la fonction stream_socket_client(), par exemple)

how

Une des constantes suivantes : STREAM_SHUT_RD (désactive les réceptions futures), STREAM_SHUT_WR (désactive les transmissions futures) ou STREAM_SHUT_RDWR (désactive les réceptions ou les transmissions futures).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_socket_shutdown()

<?php

$server 
stream_socket_server('tcp://127.0.0.1:1337');
$client stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client"Bonjour"));

stream_socket_shutdown($clientSTREAM_SHUT_WR);
var_dump(fputs($client"Bonjour")); // ne fonctionne actuellement pas

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(5)

Notice: fputs(): send of 5 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Voir aussi



stream_supports_lock

(PHP 5 >= 5.3.0)

stream_supports_lockIndique si le flux supporte les verrous

Description

bool stream_supports_lock ( resource $stream )

Indique si le flux supporte les verrous via la fonction flock().

Liste de paramètres

stream

Le flux à tester.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5)

stream_wrapper_register Enregistre un gestionnaire d'URL

Description

bool stream_wrapper_register ( string $protocol , string $classname [, int $flags = 0 ] )

stream_wrapper_register() permet d'implémenter des gestionnaires de protocole et de flux, à utiliser avec toutes les autres fonctions de fichiers, comme fopen(), fread(), etc.

Liste de paramètres

protocol

Le nom du gestionnaire à enregistrer.

classname

La classe qui implémente le protocole protocol.

flags

Doit être configuré à STREAM_IS_URL si protocol est un protocole à URL. Par défaut, cette option vaut 0, et est valable pour les flux locaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

stream_wrapper_register() retourne FALSE si le protocole protocol a déjà un gestionnaire.

Historique

Version Description
5.2.4 Ajout du paramètre flags.

Exemples

Exemple #1 Comment enregistrer un gestionnaire de flux

<?php
$existed 
in_array("var"stream_get_wrappers());
if (
$existed) {
    
stream_wrapper_unregister("var");
}
stream_wrapper_register("var""VariableStream");
$myvar "";

$fp fopen("var://myvar""r+");

fwrite($fp"line1\n");
fwrite($fp"line2\n");
fwrite($fp"line3\n");

rewind($fp);
while (!
feof($fp)) {
    echo 
fgets($fp);
}
fclose($fp);
var_dump($myvar);

if (
$existed) {
    
stream_wrapper_restore("var");
}

?>

L'exemple ci-dessus va afficher :

line1
line2
line3
string(18) "line1
line2
line3
"

Voir aussi



stream_wrapper_restore

(PHP 5 >= 5.1.0)

stream_wrapper_restoreRestaure un gestionnaire d'URL supprimé

Description

bool stream_wrapper_restore ( string $protocol )

Restaure le gestionnaire protocol précédemment supprimé avec stream_wrapper_unregister().

Liste de paramètres

protocol

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



stream_wrapper_unregister

(PHP 5 >= 5.1.0)

stream_wrapper_unregisterSupprime un gestionnaire d'URL

Description

bool stream_wrapper_unregister ( string $protocol )

Supprime le gestionnaire d'URL avec le protocole protocol. Une fois que le gestionnaire est retiré, vous pouvez installer le vôtre, avec la fonction stream_wrapper_register() ou le réactiver plus tard avec stream_wrapper_restore().

Liste de paramètres

protocol

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire




Tidy


Introduction

Tidy est une interface avec la bibliothèque Tidy HTML, pour nettoyer et manipuler les documents HTML, et les traiter sous forme de balises hiérarchisées.



Installation/Configuration

Sommaire


Pré-requis

Pour utiliser Tidy, vous devez disposer de la bibliothèque libtidy, qui est téléchargeable sur le site de » http://tidy.sourceforge.net/.



Installation

Tidy est packagé avec PHP 5 et supérieur et est installé grâce à l'option de configuration --with-tidy

Les utilisateurs de PHP 4 doivent utiliser la (vieille) extension PECL ici: » http://pecl.php.net/package/tidy.

Note:

Tidy 1.0 fonctionne avec PHP 4, alors que des versions plus récentes fonctionnent avec PHP 5 et supérieur.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Tidy
Nom Défaut Modifiable Historique
tidy.default_config "" PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
tidy.clean_output "0" PHP_INI_USER PHP_INI_PERDIR en PHP 5. Disponible depuis PHP 5.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

tidy.default_config string

Chemin par défaut pour le fichier de configuration Tidy.

tidy.clean_output boolean

Activer ou désactiver la réparation du HTML par Tidy

Avertissement

N'activez pas tidy.clean_output si vous générez autre chose que du HTML, comme des images dynamiques.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Chaque TIDY_TAG_XXX représente un balise HTML. Par exemple, TIDY_TAG_A représente la balise "<a href="XX">link</a>". Chaque TIDY_ATTR_XXX représente un attribut HTML. Par exemple, TIDY_ATTR_HREF représentera l'attribut href dans l'exemple précédent.

Les constantes suivantes sont définies par cette extension :

Constantes des balises tidy
constante
TIDY_TAG_UNKNOWN
TIDY_TAG_A
TIDY_TAG_ABBR
TIDY_TAG_ACRONYM
TIDY_TAG_ALIGN
TIDY_TAG_APPLET
TIDY_TAG_AREA
TIDY_TAG_B
TIDY_TAG_BASE
TIDY_TAG_BASEFONT
TIDY_TAG_BDO
TIDY_TAG_BGSOUND
TIDY_TAG_BIG
TIDY_TAG_BLINK
TIDY_TAG_BLOCKQUOTE
TIDY_TAG_BODY
TIDY_TAG_BR
TIDY_TAG_BUTTON
TIDY_TAG_CAPTION
TIDY_TAG_CENTER
TIDY_TAG_CITE
TIDY_TAG_CODE
TIDY_TAG_COL
TIDY_TAG_COLGROUP
TIDY_TAG_COMMENT
TIDY_TAG_DD
TIDY_TAG_DEL
TIDY_TAG_DFN
TIDY_TAG_DIR
TIDY_TAG_DIV
TIDY_TAG_DL
TIDY_TAG_DT
TIDY_TAG_EM
TIDY_TAG_EMBED
TIDY_TAG_FIELDSET
TIDY_TAG_FONT
TIDY_TAG_FORM
TIDY_TAG_FRAME
TIDY_TAG_FRAMESET
TIDY_TAG_H1
TIDY_TAG_H2
TIDY_TAG_H3
TIDY_TAG_H4
TIDY_TAG_H5
TIDY_TAG_H6
TIDY_TAG_HEAD
TIDY_TAG_HR
TIDY_TAG_HTML
TIDY_TAG_I
TIDY_TAG_IFRAME
TIDY_TAG_ILAYER
TIDY_TAG_IMG
TIDY_TAG_INPUT
TIDY_TAG_INS
TIDY_TAG_ISINDEX
TIDY_TAG_KBD
TIDY_TAG_KEYGEN
TIDY_TAG_LABEL
TIDY_TAG_LAYER
TIDY_TAG_LEGEND
TIDY_TAG_LI
TIDY_TAG_LINK
TIDY_TAG_LISTING
TIDY_TAG_MAP
TIDY_TAG_MARQUEE
TIDY_TAG_MENU
TIDY_TAG_META
TIDY_TAG_MULTICOL
TIDY_TAG_NOBR
TIDY_TAG_NOEMBED
TIDY_TAG_NOFRAMES
TIDY_TAG_NOLAYER
TIDY_TAG_NOSAVE
TIDY_TAG_NOSCRIPT
TIDY_TAG_OBJECT
TIDY_TAG_OL
TIDY_TAG_OPTGROUP
TIDY_TAG_OPTION
TIDY_TAG_P
TIDY_TAG_PARAM
TIDY_TAG_PLAINTEXT
TIDY_TAG_PRE
TIDY_TAG_Q
TIDY_TAG_RP
TIDY_TAG_RT
TIDY_TAG_RTC
TIDY_TAG_RUBY
TIDY_TAG_S
TIDY_TAG_SAMP
TIDY_TAG_SCRIPT
TIDY_TAG_SELECT
TIDY_TAG_SERVER
TIDY_TAG_SERVLET
TIDY_TAG_SMALL
TIDY_TAG_SPACER
TIDY_TAG_SPAN
TIDY_TAG_STRIKE
TIDY_TAG_STRONG
TIDY_TAG_STYLE
TIDY_TAG_SUB
TIDY_TAG_TABLE
TIDY_TAG_TBODY
TIDY_TAG_TD
TIDY_TAG_TEXTAREA
TIDY_TAG_TFOOT
TIDY_TAG_TH
TIDY_TAG_THEAD
TIDY_TAG_TITLE
TIDY_TAG_TR
TIDY_TAG_TR
TIDY_TAG_TT
TIDY_TAG_U
TIDY_TAG_UL
TIDY_TAG_VAR
TIDY_TAG_WBR
TIDY_TAG_XMP

Constantes des attributs tidy
Constante
TIDY_ATTR_UNKNOWN
TIDY_ATTR_ABBR
TIDY_ATTR_ACCEPT
TIDY_ATTR_ACCEPT_CHARSET
TIDY_ATTR_ACCESSKEY
TIDY_ATTR_ACTION
TIDY_ATTR_ADD_DATE
TIDY_ATTR_ALIGN
TIDY_ATTR_ALINK
TIDY_ATTR_ALT
TIDY_ATTR_ARCHIVE
TIDY_ATTR_AXIS
TIDY_ATTR_BACKGROUND
TIDY_ATTR_BGCOLOR
TIDY_ATTR_BGPROPERTIES
TIDY_ATTR_BORDER
TIDY_ATTR_BORDERCOLOR
TIDY_ATTR_BOTTOMMARGIN
TIDY_ATTR_CELLPADDING
TIDY_ATTR_CELLSPACING
TIDY_ATTR_CHAR
TIDY_ATTR_CHAROFF
TIDY_ATTR_CHARSET
TIDY_ATTR_CHECKED
TIDY_ATTR_CITE
TIDY_ATTR_CLASS
TIDY_ATTR_CLASSID
TIDY_ATTR_CLEAR
TIDY_ATTR_CODE
TIDY_ATTR_CODEBASE
TIDY_ATTR_CODETYPE
TIDY_ATTR_COLOR
TIDY_ATTR_COLS
TIDY_ATTR_COLSPAN
TIDY_ATTR_COMPACT
TIDY_ATTR_CONTENT
TIDY_ATTR_COORDS
TIDY_ATTR_DATA
TIDY_ATTR_DATAFLD
TIDY_ATTR_DATAPAGESIZE
TIDY_ATTR_DATASRC
TIDY_ATTR_DATETIME
TIDY_ATTR_DECLARE
TIDY_ATTR_DEFER
TIDY_ATTR_DIR
TIDY_ATTR_DISABLED
TIDY_ATTR_ENCODING
TIDY_ATTR_ENCTYPE
TIDY_ATTR_FACE
TIDY_ATTR_FOR
TIDY_ATTR_FRAME
TIDY_ATTR_FRAMEBORDER
TIDY_ATTR_FRAMESPACING
TIDY_ATTR_GRIDX
TIDY_ATTR_GRIDY
TIDY_ATTR_HEADERS
TIDY_ATTR_HEIGHT
TIDY_ATTR_HREF
TIDY_ATTR_HREFLANG
TIDY_ATTR_HSPACE
TIDY_ATTR_HTTP_EQUIV
TIDY_ATTR_ID
TIDY_ATTR_ISMAP
TIDY_ATTR_LABEL
TIDY_ATTR_LANG
TIDY_ATTR_LANGUAGE
TIDY_ATTR_LAST_MODIFIED
TIDY_ATTR_LAST_VISIT
TIDY_ATTR_LEFTMARGIN
TIDY_ATTR_LINK
TIDY_ATTR_LONGDESC
TIDY_ATTR_LOWSRC
TIDY_ATTR_MARGINHEIGHT
TIDY_ATTR_MARGINWIDTH
TIDY_ATTR_MAXLENGTH
TIDY_ATTR_MEDIA
TIDY_ATTR_METHOD
TIDY_ATTR_MULTIPLE
TIDY_ATTR_NAME
TIDY_ATTR_NOHREF
TIDY_ATTR_NORESIZE
TIDY_ATTR_NOSHADE
TIDY_ATTR_NOWRAP
TIDY_ATTR_OBJECT
TIDY_ATTR_OnAFTERUPDATE
TIDY_ATTR_OnBEFOREUNLOAD
TIDY_ATTR_OnBEFOREUPDATE
TIDY_ATTR_OnBLUR
TIDY_ATTR_OnCHANGE
TIDY_ATTR_OnCLICK
TIDY_ATTR_OnDATAAVAILABLE
TIDY_ATTR_OnDATASETCHANGED
TIDY_ATTR_OnDATASETCOMPLETE
TIDY_ATTR_OnDBLCLICK
TIDY_ATTR_OnERRORUPDATE
TIDY_ATTR_OnFOCUS
TIDY_ATTR_OnKEYDOWN
TIDY_ATTR_OnKEYPRESS
TIDY_ATTR_OnKEYUP
TIDY_ATTR_OnLOAD
TIDY_ATTR_OnMOUSEDOWN
TIDY_ATTR_OnMOUSEMOVE
TIDY_ATTR_OnMOUSEOUT
TIDY_ATTR_OnMOUSEOVER
TIDY_ATTR_OnMOUSEUP
TIDY_ATTR_OnRESET
TIDY_ATTR_OnROWENTER
TIDY_ATTR_OnROWEXIT
TIDY_ATTR_OnSELECT
TIDY_ATTR_OnSUBMIT
TIDY_ATTR_OnUNLOAD
TIDY_ATTR_PROFILE
TIDY_ATTR_PROMPT
TIDY_ATTR_RBSPAN
TIDY_ATTR_READONLY
TIDY_ATTR_REL
TIDY_ATTR_REV
TIDY_ATTR_RIGHTMARGIN
TIDY_ATTR_ROWS
TIDY_ATTR_ROWSPAN
TIDY_ATTR_RULES
TIDY_ATTR_SCHEME
TIDY_ATTR_SCOPE
TIDY_ATTR_SCROLLING
TIDY_ATTR_SELECTED
TIDY_ATTR_SHAPE
TIDY_ATTR_SHOWGRID
TIDY_ATTR_SHOWGRIDX
TIDY_ATTR_SHOWGRIDY
TIDY_ATTR_SIZE
TIDY_ATTR_SPAN
TIDY_ATTR_SRC
TIDY_ATTR_STANDBY
TIDY_ATTR_START
TIDY_ATTR_STYLE
TIDY_ATTR_SUMMARY
TIDY_ATTR_TABINDEX
TIDY_ATTR_TARGET
TIDY_ATTR_TEXT
TIDY_ATTR_TITLE
TIDY_ATTR_TOPMARGIN
TIDY_ATTR_TYPE
TIDY_ATTR_USEMAP
TIDY_ATTR_VALIGN
TIDY_ATTR_VALUE
TIDY_ATTR_VALUETYPE
TIDY_ATTR_VERSION
TIDY_ATTR_VLINK
TIDY_ATTR_VSPACE
TIDY_ATTR_WIDTH
TIDY_ATTR_WRAP
TIDY_ATTR_XML_LANG
TIDY_ATTR_XML_SPACE
TIDY_ATTR_XMLNS

Constantes de types de noeud tidy
Constante Description
TIDY_NODETYPE_ROOT Noeud racine
TIDY_NODETYPE_DOCTYPE doctype
TIDY_NODETYPE_COMMENT Commentaire HTML
TIDY_NODETYPE_PROCINS Instruction de processus
TIDY_NODETYPE_TEXT Texte
TIDY_NODETYPE_START Début de balise
TIDY_NODETYPE_END Fin de balise
TIDY_NODETYPE_STARTEND Balise vide
TIDY_NODETYPE_CDATA CDATA
TIDY_NODETYPE_SECTION Section XML
TIDY_NODETYPE_ASP Code ASP
TIDY_NODETYPE_JSTE Code JSTE
TIDY_NODETYPE_PHP Code PHP
TIDY_NODETYPE_XMLDECL Déclaration XML



Exemples

Sommaire


Exemples

Ce simple exemple montre l'utilisation de base de Tidy.

Exemple #1 Utilisation de base de Tidy

<?php
ob_start
();
?>
<html>un document HTML</html>
<?php
$html 
ob_get_clean();

// Configuration
$config = array(
           
'indent'         => true,
           
'output-xhtml'   => true,
           
'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html$config'utf8');
$tidy->cleanRepair();

// Affichage
echo $tidy;
?>




La classe Tidy

Introduction

Une balise HTML, telle que détectée par tidy.

Synopsis de la classe

Tidy {
/* Propriétés */
string $errorBuffer;
/* Méthodes */
tidyNode tidy::body ( void )
bool tidy::cleanRepair ( void )
tidy tidy::__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )
bool tidy::diagnose ( void )
array tidy::getConfig ( void )
int tidy::getHtmlVer ( void )
mixed tidy::getOpt ( string $option )
string tidy::getOptDoc ( string $optname )
string tidy::getRelease ( void )
int tidy::getStatus ( void )
tidyNode tidy::head ( void )
tidyNode tidy::html ( void )
bool tidy::isXhtml ( void )
bool tidy::isXml ( void )
bool tidy::parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )
bool tidy::parseString ( string $input [, mixed $config [, string $encoding ]] )
string tidy::repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )
string tidy::repairString ( string $data [, mixed $config [, string $encoding ]] )
tidyNode tidy::root ( void )
}

Propriétés

errorBuffer

Les dernières erreurs et alertes de TidyLib


tidy::body

tidy_get_body

(PHP 5, PECL tidy 0.5.2-1.0)

tidy::body -- tidy_get_body Retourne un objet TidyNode, commencé à partir de la balise <body>

Description

Style orienté objet

tidyNode tidy::body ( void )

Style procédural

tidyNode tidy_get_body ( tidy $object )

Retourne un objet TidyNode commençant à partir de la balise <body>.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne la version de HTML détectée.

Avertissement

Cette fonction n'est pas encore implémentée dans Tidylib elle-même, alors elle retourne toujours 0.

Exemples

Exemple #1 Exemple avec tidy::getBody()

<?php
$html 
'
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>'
;

$tidy tidy_parse_string($html);

$body tidy_get_body($tidy);
echo 
$body->value;
?>

L'exemple ci-dessus va afficher :

<body>
 <p>paragraph</p>
</body>

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi

  • tidy::head() - Retourne un objet tidyNode à partir de la balise <head>
  • tidy::html() - Retourne un objet tidyNode commençant à la balise <html>


tidy::cleanRepair

tidy_clean_repair

(PHP 5, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repair Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML

Description

Style orienté objet

bool tidy::cleanRepair ( void )

Style procédural

bool tidy_clean_repair ( tidy $object )

Nettoie et répare l'objet Tidy object passé en argument.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy::cleanrepair()

<?php
$html 
'<p>test</I>';

$tidy tidy_parse_string($html);
$tidy->cleanRepair();

echo 
$tidy;
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
 <head>
  <title></title>
 </head>
 <body>
  <p>test</p>
 </body>
</html>

Voir aussi



tidy::__construct

(PHP 5, PECL tidy >= 0.5.2)

tidy::__constructConstruit un nouvel objet tidy

Description

tidy tidy::__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )

construit un nouvel objet tidy.

Liste de paramètres

filename

Si le paramètre filename est fourni, cette fonction lira également ce fichier et initialisera l'objet avec ce fichier, agissant de la même façon que la fonction tidy_parse_file().

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

use_include_path

Indique s'il faut rechercher le fichier dans l' include_path.

Valeurs de retour

Retourne un nouvel objet tidy.

Exemples

Exemple #1 Exemple avec tidy::__construct()

<?php

$html 
= <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy();
$tidy->ParseString($html);

$tidy->cleanRepair();

if (
$tidy->errorBuffer) {
    echo 
"Les erreurs suivantes ont été détectées :\n";
    echo 
$tidy->errorBuffer;
}

?>

L'exemple ci-dessus va afficher :

Les erreurs suivantes ont été détectées :
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

Voir aussi



tidy::diagnose

tidy_diagnose

(PHP 5, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnoseÉtablit le diagnostic pour le document analysé et réparé

Description

Style orienté objet

bool tidy::diagnose ( void )

Style procédural

bool tidy_diagnose ( tidy $object )

Lance un diagnostic sur l'objet object Tidy donné, en ajoutant quelques informations concernant le document dans la pile d'erreurs.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy::diagnose()

<?php

$html 
= <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>paragraph</p>
HTML;

$tidy tidy_parse_string($html);
$tidy->cleanRepair();

// notez la différence entre les deux sorties
echo $tidy->errorBuffer "\n";

$tidy->diagnose();
echo 
$tidy->errorBuffer;

?>

L'exemple ci-dessus va afficher :

line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

Voir aussi

  • tidy::errorBuffer()


tidy::getConfig

tidy_get_config

(PHP 5, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_configLit la configuration Tidy courante

Description

Style orienté objet

array tidy::getConfig ( void )

Style procédural

array tidy_get_config ( tidy $object )

Retourne un tableau avec les options de configuration utilisées par l'objet object Tidy spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne un tableau d'options de configurations.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

Exemples

Exemple #1 Exemple avec tidy::getConfig()

<?php
$html 
'<p>test</p>';
$config = array('indent' => TRUE,
                
'output-xhtml' => TRUE,
                
'wrap' => 200);

$tidy tidy_parse_string($html$config);

print_r($tidy->getConfig());
?>

L'exemple ci-dessus va afficher :

Array
(
    [indent-spaces] => 2
    [wrap] => 200
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
    [merge-divs] => 1
)

Voir aussi



tidy::htmlver

tidy_get_html_ver

(PHP 5, PECL tidy >= 0.5.2)

tidy::htmlver -- tidy_get_html_ver Détecte le version du code HTML utilisée dans un document

Description

Style orienté objet

int tidy::getHtmlVer ( void )

Style procédural

int tidy_get_html_ver ( tidy $object )

Retourne la version détectée du code HTML pour l'objet object Tidy spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne la version HTML détectée.

Avertissement

tidy_get_html_ver() n'est pas encore implémentée dans la bibliothèque Tidylib elle-même ; de ce fait, elle retournera toujours 0.



Tidy::getopt

tidy_getopt

(PHP 5, PECL tidy >= 0.5.2)

Tidy::getopt -- tidy_getoptRetourne la valeur de l'option de configuration Tidy

Description

Style orienté objet

mixed tidy::getOpt ( string $option )

Style procédural

mixed tidy_getopt ( tidy $object , string $option )

tidy_getopt() retourne la valeur de l'option spécifiée option pour l'objet object. Le type retourné dépend du type de l'option spécifiée option.

Liste de paramètres

object

L'objet Tidy

option

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

Valeurs de retour

Retourne la valeur spécifiée par l'option option. Le type de la valeur dépend de l'option elle-même.

Exemples

Exemple #1 Exemple avec Tidy::getopt()

<?php

$html 
='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Titre</title></head>
 <body>

  <p><img src="img.png"></p>

  </body></html>'
;

 
$config = array('accessibility-check' => 3,
 
'alt-text' => 'du texte');

 
$tidy = new tidy();
 
$tidy->parseString($html$config);


 
var_dump($tidy->getOpt('accessibility-check')); //entier
 
var_dump($tidy->getOpt('lower-literals'));      //booléen
 
var_dump($tidy->getOpt('alt-text'));            //chaîne

 
?>

L'exemple ci-dessus va afficher :

int(3)
bool(true)
string(8) "du texte"



tidy::getoptdoc

tidy_get_opt_doc

(PHP 5 >= 5.1.0)

tidy::getoptdoc -- tidy_get_opt_doc Retourne la documentation pour le nom de l'option donnée

Description

Style orienté objet

string tidy::getOptDoc ( string $optname )

Style procédural

string tidy_get_opt_doc ( tidy $object , string $optname )

Retourne la documentation pour le nom de l'option donnée.

Note:

Vous devez posséder au moins libtidy datant du 25 avril 2005 pour que cette fonction soit disponible.

Liste de paramètres

object

L'objet Tidy

optname

Le nom de l'option

Valeurs de retour

Retourne une chaîne de caractères si l'option existe et qu'elle possède de la documentation ou FALSE autrement.

Exemples

Exemple #1 Affichage de toutes les options avec leur documentation et leur valeur par défaut

<?php

$tidy 
= new tidy;
$config $tidy->getConfig();

ksort($config);

foreach (
$config as $opt => $val) {

    if (!
$doc $tidy->getOptDoc($opt))
        
$doc 'aucune documentation disponible!';

    
$val = ($tidy->getOpt($opt) === true)  ? 'true'  $val;
    
$val = ($tidy->getOpt($opt) === false) ? 'false' $val;

    echo 
"<p><b>$opt</b> (défaut : '$val')<br />".
         
"$doc</p><hr />\n";
}

?>

Voir aussi



tidy::getRelease

tidy_get_release

(PHP 5, PECL tidy >= 0.5.2)

tidy::getRelease -- tidy_get_releaseRetourne la date de publication (version) de la bibliothèque Tidy

Description

Style orienté objet

string tidy::getRelease ( void )

Style procédural

string tidy_get_release ( void )

Retourne la date de publication (version) de la bibliothèque Tidy.

Valeurs de retour

Retourne une chaîne contenant la date de publication de la bibliothèque Tidy.



tidy::getStatus

tidy_get_status

(PHP 5, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status Retourne le statut du document spécifié

Description

Style orienté objet

int tidy::getStatus ( void )

Style procédural

int tidy_get_status ( tidy $object )

Retourne le statut de l'objet object Tidy spécifié. Elle retourne 0 si aucune erreur/avertissement n'a été rencontrée, 1 pour les avertissements d'accessibilité, et 2 pour les erreurs.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne 0 si aucune alerte ou erreur n'est survenue; 1 si des alertes ou des erreurs d'accessibilité ont été identifiées, et 2 pour des erreurs.

Exemples

Exemple #1 Exemple avec tidy::getStatus()

<?php
$html 
'<p>paragraphe</i>';
$tidy tidy_parse_string($html);

$html2 '<bogus>test</bogus>';
$tidy2 tidy_parse_string($html2);

echo 
tidy_get_status($tidy); //1

echo tidy_get_status($tidy2); //2
?>



tidy::head

tidy_get_head

(PHP 5, PECL tidy 0.5.2-1.0.0)

tidy::head -- tidy_get_head Retourne un objet tidyNode à partir de la balise <head>

Description

Style orienté objet

tidyNode tidy::head ( void )

Style procédural

tidyNode tidy_get_head ( tidy $object )

Retourne un objet tidyNode à partir de la balise <head>.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne l'objet tidyNode.

Exemples

Exemple #1 Exemple avec tidy::head()

<?php
$html 
'
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>'
;

$tidy tidy_parse_string($html);

$head tidy_get_head($tidy);
echo 
$head->value;
?>

L'exemple ci-dessus va afficher :

<head>
 <title>test</title>
</head>

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi

  • tidy::body() - Retourne un objet TidyNode, commencé à partir de la balise <body>
  • tidy::html() - Retourne un objet tidyNode commençant à la balise <html>


tidy::html

tidy_get_html

(PHP 5, PECL tidy 0.5.2-1.0.0)

tidy::html -- tidy_get_html Retourne un objet tidyNode commençant à la balise <html>

Description

Style orienté objet

tidyNode tidy::html ( void )

Style procédural

tidyNode tidy_get_html ( tidy $object )

Retourne un objet tidyNode commençant à la balise <html>.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne l'objet tidyNode.

Exemples

Exemple #1 Exemple avec tidy::html()

<?php
$html 
'
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>'
;

$tidy tidy_parse_string($html);

$html $tidy->html();
echo 
$html->value;
?>

L'exemple ci-dessus va afficher :

<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi

  • tidy::body() - Retourne un objet TidyNode, commencé à partir de la balise <body>
  • tidy::head() - Retourne un objet tidyNode à partir de la balise <head>


tidy::isXhtml

tidy_is_xhtml

(PHP 5, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml Indique si le document est un document XHTML

Description

Style orienté objet

bool tidy::isXhtml ( void )

Style procédural

bool tidy_is_xhtml ( tidy $object )

Indique si le document est un document XHTML.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne TRUE si l'objet Tidy object spécifié est un document XHTML, ou FALSE sinon.

Avertissement

Cette fonction n'est pas encore implémentée par la bibliothèque Tidylib elle-même, donc elle retournera toujours FALSE.



tidy::isXml

tidy_is_xml

(PHP 5, PECL tidy >= 0.5.2)

tidy::isXml -- tidy_is_xml Indique si le document est un document XML générique (non HTML/XHTML)

Description

Style orienté objet

bool tidy::isXml ( void )

Style procédural

bool tidy_is_xml ( tidy $object )

tidy_is_xml() retourne TRUE si l'objet object Tidy est un document XML générique (non HTML/XHTML) ou FALSE sinon.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Cette fonction retourne TRUE si l'objet tidy spécifié est une document XML générique (non HTML/XHTML), ou FALSE sinon.

Avertissement

Cette fonction n'est pas encore implémentée par la bibliothèque Tidylib elle-même, donc elle retournera toujours FALSE.



tidy::parseFile

tidy_parse_file

(PHP 5, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file Analyse les balises d'un fichier ou d'une URI

Description

Style orienté objet

bool tidy::parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Style procédural

tidy tidy_parse_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Analyse le fichier spécifié.

Liste de paramètres

filename

Si le paramètre filename est fourni, cette fonction va aussi lire ce fichier, et initialiser l'objet avec ce fichier, de la même façon que tidy_parse_file().

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

use_include_path

Active la recherche dans l' include_path.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy::parseFile()

<?php
$tidy 
tidy_parse_file('file.html');

$tidy->cleanRepair();

if(!empty(
$tidy->error_buf)) {
   echo 
'Les erreurs et avertissements suivants ont été recontrés :'."\n";
   echo 
$tidy->error_buf;
}
?>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi



tidy::parseString

tidy_parse_string

(PHP 5, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string Analyse un document HTML contenu dans une chaîne

Description

Style orienté objet

bool tidy::parseString ( string $input [, mixed $config [, string $encoding ]] )

Style procédural

tidy tidy_parse_string ( string $input [, mixed $config [, string $encoding ]] )

Analyse un document contenu dans une chaîne.

Liste de paramètres

input

Les données à analyser.

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Valeurs de retour

Retourne une nouvelle instance tidy.

Exemples

Exemple #1 Exemple avec tidy::parseString()

<?php
ob_start
();
?>

<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>erreur<br />une autre ligne</p>
 </body>
</html>

<?php
$buffer 
ob_get_clean();
$config = array('indent' => TRUE,
   
'output-xhtml' => TRUE,
   
'wrap'200);

$tidy tidy_parse_string($buffer$config'UTF8');

$tidy->cleanRepair();

echo 
$tidy;
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>
   test
  </title>
 </head>
 <body>
  <p>
   error<br />
   another line
  </p>
 </body>
</html>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi



tidy::repairFile

tidy_repair_file

(PHP 5, PECL tidy >= 0.7.0)

tidy::repairFile -- tidy_repair_file Répare un fichier et le renvoie en tant que chaîne

Description

Style orienté objet

string tidy::repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Style procédural

string tidy_repair_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Répare le fichier fourni et le renvoie sous la forme d'une chaîne.

Liste de paramètres

filename

Le fichier à réparer.

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

use_include_path

Indique s'il faut chercher le fichier dans l' include_path.

Valeurs de retour

Retourne le contenu réparée, sous forme de chaîne.

Exemples

Exemple #1 Exemple avec tidy::repairFile()

<?php
$file 
'file.html';

$repaired tidy_repair_file($file);
rename($file$file '.bak');

file_put_contents($file$repaired);
?>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi



tidy::repairString

tidy_repair_string

(PHP 5, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_string Répare une chaîne HTML en utilisant un fichier de configuration optionnel

Description

Style orienté objet

string tidy::repairString ( string $data [, mixed $config [, string $encoding ]] )

Style procédural

string tidy_repair_string ( string $data [, mixed $config [, string $encoding ]] )

Répare la chaîne data.

Liste de paramètres

data

Les données à réparer.

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Lisez » http://tidy.sourceforge.net/docs/quickref.html pour une explication sur chaque option.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Valeurs de retour

Retourne la chaîne réparée.

Exemples

Exemple #1 Exemple avec tidy::repairString()

<?php
ob_start
();
?>

<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>error</i>
 </body>
</html>

<?php

$buffer 
ob_get_clean();
$tidy tidy_repair_string($buffer);

echo 
$tidy;
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>error</p>
 </body>
</html>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi



tidy::root

tidy_get_root

(PHP 5, PECL tidy 0.5.2-1.0.0)

tidy::root -- tidy_get_root Retourne un objet tidyNode représentant la racine du document HTML

Description

Style orienté objet

tidyNode tidy::root ( void )

Style procédural

tidyNode tidy_get_root ( tidy $object )

Retourne un objet tidyNode représentant la racine de l'arbre Tidy analysé.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne l'objet tidyNode.

Exemples

Exemple #1 Exemple avec tidy::root()

<?php

$html 
= <<< HTML
  <html><body>

    <p>paragraphe</p>
    <br/>

   </body></html>
  HTML;

  
$tidy = tidy_parse_string($html);
  dump_nodes(
$tidy->root(), 1);


  function dump_nodes(
$node$indent) {

    if(
$node->hasChildren()) {
      foreach(
$node->child as $child) {
        echo str_repeat('.', 
$indent*2) . ($child->name ? $child->name : '"'.$child->value.'"'). "\n";

        dump_nodes(
$child$indent+1);
      }
    }

  }
?>

L'exemple ci-dessus va afficher :

..html
....head
......title
....body
......p
........"paragraphe"
......br

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.


Sommaire

  • tidy::body — Retourne un objet TidyNode, commencé à partir de la balise <body>
  • tidy::cleanRepair — Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML
  • tidy::__construct — Construit un nouvel objet tidy
  • tidy::diagnose — Établit le diagnostic pour le document analysé et réparé
  • tidy::getConfig — Lit la configuration Tidy courante
  • tidy::htmlver — Détecte le version du code HTML utilisée dans un document
  • Tidy::getopt — Retourne la valeur de l'option de configuration Tidy
  • tidy::getoptdoc — Retourne la documentation pour le nom de l'option donnée
  • tidy::getRelease — Retourne la date de publication (version) de la bibliothèque Tidy
  • tidy::getStatus — Retourne le statut du document spécifié
  • tidy::head — Retourne un objet tidyNode à partir de la balise <head>
  • tidy::html — Retourne un objet tidyNode commençant à la balise <html>
  • tidy::isXhtml — Indique si le document est un document XHTML
  • tidy::isXml — Indique si le document est un document XML générique (non HTML/XHTML)
  • tidy::parseFile — Analyse les balises d'un fichier ou d'une URI
  • tidy::parseString — Analyse un document HTML contenu dans une chaîne
  • tidy::repairFile — Répare un fichier et le renvoie en tant que chaîne
  • tidy::repairString — Répare une chaîne HTML en utilisant un fichier de configuration optionnel
  • tidy::root — Retourne un objet tidyNode représentant la racine du document HTML


La classe TidyNode

Introduction

Une balise HTML dans un fichier HTML, tel que détecté par Tidy.

Synopsis de la classe

TidyNode {
/* Propriétés */
$id;
/* Méthodes */
tidyNode tidyNode::getParent ( void )
bool tidyNode::hasChildren ( void )
bool tidyNode::hasSiblings ( void )
bool tidyNode::isAsp ( void )
bool tidyNode::isComment ( void )
bool tidyNode::isHtml ( void )
bool tidyNode::isJste ( void )
bool tidyNode::isPhp ( void )
bool tidyNode::isText ( void )
}

Propriétés

value

La représentation HTML du noeud, incluant les balises d'encadrement.

name

Le nom de la balise HTML

type

Le type de balise (une constante de type, e.g. TIDY_NODETYPE_PHP)

line

Le numéro de ligne auquel la balise commence

column

Le numéro de colonne où la balise commence

proprietary

Indique que la balise est une balise propriétaire

id

L'ID de la balise (une des constante de balise, e.g. TIDY_TAG_FRAME)

attribute

Un tableau de chaînes, représentant les noms d'attributs (les clés), du noeud courant.

child

Un tableau d'objets TidyNode, représentant les enfants du noeud courant.

Version Description
5.1.0 line, column et proprietary a été ajouté


tidyNode::getParent

(PHP 5 >= 5.2.2)

tidyNode::getParentRetourne le noeud parent du noeud courant

Description

tidyNode tidyNode::getParent ( void )

Retourne le noeud parent du noeud courant.

Exemples

Exemple #1 Exemple avec tidyNode::hasChildren()

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE  */
  alert('Hello World'); 
#>
 </head>
 <body>
 Hello World
 </body>
</html>

HTML;


$tidy tidy_parse_string($html);
$num 0;

$node $tidy->html()->child[0]->child[0];

var_dump($node->getparent()->name);
?>

L'exemple ci-dessus va afficher :

string(4) "head"

Valeurs de retour

Retourne un tidyNode si le noeud a un parent, ou NULL sinon.



tidyNode::hasChildren

(PHP 5 >= 5.0.1)

tidyNode::hasChildren Indique si le noeud a des enfants

Description

bool tidyNode::hasChildren ( void )

Indique si le noeud courant a des enfants.

Valeurs de retour

Retourne TRUE si le noeud a des enfants, FALSE sinon.

Exemples

Exemple #1 Exemple avec tidyNode::hasChildren()

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

// La balise head
var_dump($tidy->html()->child[0]->hasChildren());

// Le PHP dans la balise head
var_dump($tidy->html()->child[0]->child[0]->hasChildren());

?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Notes

Note:

Cette fonction était appelée tidy_node::has_children() dans PHP 4/Tidy 1.



tidyNode::hasSiblings

(PHP 5 >= 5.0.1)

tidyNode::hasSiblings Indique si le noeud a des frères

Description

bool tidyNode::hasSiblings ( void )

Indique si le noeud courant a des noeuds frères.

Valeurs de retour

Retourne TRUE si le noeud a des frères, FALSE sinon.

Exemples

Exemple #1 Exemple avec tidyNode::hasSiblings()

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE  */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP 
  echo 'hello world!';
?>

<%
  /* code ASP  */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

// La balise html
var_dump($tidy->html()->hasSiblings());

// La balise head
var_dump($tidy->html()->child[0]->hasSiblings());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Notes

Note:

Cette fonction était appelée tidy_node::has_siblings() dans PHP 4/Tidy 1.



tidyNode::isAsp

(PHP 5 >= 5.0.1)

tidyNode::isAspVérifie si le noeud est du code ASP

Description

bool tidyNode::isAsp ( void )

Vérifie si le noeud est du code ASP.

Valeurs de retour

Retourne TRUE si le noeud est du code ASP, FALSE sinon.

Exemples

Exemple #1 Extrait di code ASP depuis un document HTML mixte

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

get_nodes($tidy->html());

function 
get_nodes($node) {

    
// Vérifie si le noeud courant est du type requis
    
if($node->{"isAsp()) {
        echo "
\n\n# Noeud $node_type #" . ++$GLOBALS['num'] . "\n";
        
echo $node->value;
    }

    
// Vérifie si le noeud courant a des enfants
    
if($node->hasChildren()) {
        foreach(
$node->child as $child) {
            
get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud asp #1
<%
  /* code ASP */
  response.write("Hello World!")
%>

Notes

Note:

Cette fonction était nommée tidy_node::is_asp() en PHP 4/Tidy 1.



tidyNode::isComment

(PHP 5 >= 5.0.1)

tidyNode::isCommentIndique si le noeud représente un commentaire

Description

bool tidyNode::isComment ( void )

Indique si le document est un commentaire.

Valeurs de retour

Retourne TRUE si le document est un commentaire, FALSE sinon.

Exemples

Exemple #1 Extrait les commentais depuis un document HTML

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP 
  echo 'hello world!';
?>

<%
  /* code ASP  */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

get_nodes($tidy->html());

function 
get_nodes($node) {

    
// Vérifie si le noeud courant est du type demandé
    
if($node->{"isComment()) {
        echo "
\n\n# Noeud commentaire #" . ++$GLOBALS['num'] . "\n";
        
echo $node->value;
    }

    
// Vérifie si le noeud courant a des enfants
    
if($node->hasChildren()) {
        foreach(
$node->child as $child) {
            
get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud jste #1
<# 
  /* code JSTE */
  alert('Hello World'); 
#>

Notes

Note:

Cette fonction était appelée tidy_node::is_comment() dans PHP 4/Tidy 1.



tidyNode::isHtml

(PHP 5 >= 5.0.1)

tidyNode::isHtml Indique si le noeud est une partie d'un document HTML

Description

bool tidyNode::isHtml ( void )

Indique si le noeud courant est une partie de document HTML.

Valeurs de retour

Retourne TRUE si le noeud est une partie de document HTML, FALSE sinon.

Exemples

Exemple #1 Extrait du code HTML depuis un document mixte

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

get_nodes($tidy->html());

function 
get_nodes($node) {
    
// Vérifie si le noeud courant est du type demandé
    
if($node->{isHtml()) {
        echo 
"\n\n# Noeud Html #" . ++$GLOBALS['num'] . "\n";
        echo 
$node->value;
    }

    
// Vérifie si le noeud courant a des enfants
    
if($node->hasChildren()) {
        foreach(
$node->child as $child) {
            
get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud html #1
<html>
<head>
<?php echo '<title>title</title>'; ?><# 
  /* code JSTE */
  alert('Hello World'); 
#>
<title></title>
</head>
<body>
<?php
  // code PHP
  echo 'hello world!';
?><%
  /* code ASP */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>
</html>

# Noeud html #2
<head>
<?php echo '<title>title</title>'; ?><# 
  /* code JSTE */
  alert('Hello World'); 
#>
<title></title>
</head>


# Noeud html #3
<?php echo '<title>title</title>'; ?>

# Noeud html #4
<# 
  /* code JSTE */
  alert('Hello World'); 
#>

# Noeud html #5
<title></title>


# Noeud html #6
<body>
<?php
  // code PHP
  echo 'hello world!';
?><%
  /* code ASP */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>


# Noeud html #7
<?php
  // code PHP
  echo 'hello world!';
?>

# Noeud html #8
<%
  /* code ASP */
  response.write("Hello World!")
%>

# Noeud html #9
<!-- Comments -->


# Noeud html #10
Hello World

# Noeud html #11
Outside HTML

Notes

Note:

Cette fonction était appelée tidy_node::is_html() dans PHP 4/Tidy 1.



tidyNode::isJste

(PHP 5 >= 5.0.1)

tidyNode::isJsteIndique si ce noeud est JSTE

Description

bool tidyNode::isJste ( void )

Indique si le noeud courant est un JSTE.

Valeurs de retour

Retourne TRUE si le noeud est du JSTE, FALSE sinon.

Exemples

Exemple #1 Extrait du code JSTE depuis un document HTML

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

get_nodes($tidy->html());

function 
get_nodes($node) {

    
// Vérifie si le noeud courant est du type demandé
    
if($node->{"isJste()) {
        echo "
\n\n# Noeud jste #" . ++$GLOBALS['num'] . "\n";
        
echo $node->value;
    }

    
// Vérifie si le noeud courant a des enfants
    
if($node->hasChildren()) {
        foreach(
$node->child as $child) {
            
get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud jste #1
<# 
  /* code JSTE */
  alert('Hello World'); 
#>

Notes

Note:

Cette fonction était appelée tidy_node::is_jste() dans PHP 4/Tidy 1.



tidyNode::isPhp

(PHP 5 >= 5.0.1)

tidyNode::isPhpIndique si un noeud contient du code PHP

Description

bool tidyNode::isPhp ( void )

Indique si un noeud contient du code PHP.

Valeurs de retour

Retourne TRUE si le noeud courant est du code PHP, FALSE sinon.

Exemples

Exemple #1 Récupération de code PHP dans un document HTML

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

get_nodes($tidy->html());

function 
get_nodes($node) {

    
// Vérifie si le noeud courant est du type demandé
    
if($node->{"isPhp()) {
        echo "
\n\n# Noeud php #" . ++$GLOBALS['num'] . "\n";
        
echo $node->value;
    }

    
// Vérifie si le noeud courant a des enfants
    
if($node->hasChildren()) {
        foreach(
$node->child as $child) {
            
get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud PHP #1
<?php echo '<title>Titre</title>'; ?>

# Noeud PHP #2
<?php
  // code PHP
  echo 'hello world!';
?>

Notes

Note:

Cette fonction était nommée tidy_node::is_php() en PHP 4/Tidy 1.



tidyNode::isText

(PHP 5 >= 5.0.1)

tidyNode::isText Indique si le noeud représente du texte (sans balise)

Description

bool tidyNode::isText ( void )

Indique si le noeud parent représente du texte (sans balise).

Valeurs de retour

Retourne TRUE si le noeud représente un texte, FALSE sinon.

Exemples

Exemple #1 Extrait du texte depuis un document HTML mixte

<?php

$html 
= <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<# 
  /* code JSTE */
  alert('Hello World'); 
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;


$tidy tidy_parse_string($html);
$num 0;

get_nodes($tidy->html());

function 
get_nodes($node) {

    
// Vérifie si le noeud courant est du type demandé
    
if($node->{"isText()) {
        echo "
\n\n# Noeud texte #" . ++$GLOBALS['num'] . "\n";
        
echo $node->value;
    }

    
// Vérifie si le noeud courant a des enfants
    
if($node->hasChildren()) {
        foreach(
$node->child as $child) {
            
get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud text #1
Hello World

# Noeud text #2
Outside HTML

Notes

Note:

Cette fonction était appelée tidy_node::is_text() dans PHP 4/Tidy 1.


Sommaire



Fonctions Tidy


ob_tidyhandler

(PHP 5)

ob_tidyhandlerFonction de rappel ob_start pour réparer le buffer

Description

string ob_tidyhandler ( string $input [, int $mode ] )

Fonction de rappel pour la fonction ob_start() afin de réparer le buffer.

Liste de paramètres

input

Le buffer.

mode

Le mode du buffer.

Valeurs de retour

Retourne le buffer modifié.

Exemples

Exemple #1 Exemple avec ob_tidyhandler()

<?php
ob_start
('ob_tidyhandler');

echo 
'<p>test</i>';
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

Voir aussi

  • ob_start() - Enclenche la tamporisation de sortie



tidy_access_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_access_countRetourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document

Description

int tidy_access_count ( tidy $object )

tidy_access_count() retourne le nombre d'alertes d'accessibilité trouvées dans le document spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'alertes.

Exemples

Exemple #1 Exemple avec tidy_access_count()

<?php

$html 
='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>'
;


// sélectionne le degrès d'accessibilité : 1, 2 or 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html$config);
$tidy->cleanRepair();

/* N'oubliez jamais d'appeler ceci ! */
$tidy->diagnose();

echo 
tidy_access_count($tidy); //5

?>

Notes

Note:

Du fait du comportement de la TidyLib, vous devez appeler tidy_diagnose() avant tidy_access_count() sinon la fonction retournera toujours 0. Vous devez également activer l'option accessibility-check.

Voir aussi



tidy_config_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_config_count Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document

Description

int tidy_config_count ( tidy $object )

tidy_config_count() retourne le nombre d'erreurs rencontrées dans la configuration de l'objet object Tidy spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'erreurs.

Exemples

Exemple #1 Exemple avec tidy_config_count()

<?php
$html 
'<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy tidy_parse_string($html$config);

/* Affichera 1, car 'bogus' n'est pas un doctype valide */
echo tidy_config_count($tidy);
?>



tidy_error_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_error_count Retourne le nombre d'erreurs Tidy rencontrées dans le document

Description

int tidy_error_count ( tidy $object )

tidy_error_count() retourne le nombre d'erreurs Tidy rencontrées dans le document spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'erreur.

Exemples

Exemple #1 Exemple avec tidy_error_count()

<?php
$html 
'<p>test</i>
<bogustag>bogus</bogustag>'
;

$tidy tidy_parse_string($html);

echo 
tidy_error_count($tidy) . "\n"//1

echo $tidy->errorBuffer;
?>

L'exemple ci-dessus va afficher :

 1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

Voir aussi

  • tidy_access_count() - Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
  • tidy_warning_count() - Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié


tidy_get_error_buffer

(PHP 5, PECL tidy >= 0.5.2)

tidy_get_error_buffer Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document

Description

Style procédural

string tidy_get_error_buffer ( tidy $object )

Style orienté objet

string $errorBuffer;

Retourne les erreurs et les avertissements rencontrés lors de l'analyse du document spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le buffer d'erreurs sous forme de chaîne de caractères.

Exemples

Exemple #1 Exemple avec tidy_get_error_buffer()

<?php
$html 
'<p>paragraph</p>';

$tidy tidy_parse_string($html);
echo 
tidy_get_error_buffer($tidy);
?>

L'exemple ci-dessus va afficher :

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

Voir aussi

  • tidy_access_count() - Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
  • tidy_error_count() - Retourne le nombre d'erreurs Tidy rencontrées dans le document
  • tidy_warning_count() - Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié


tidy_get_output

(PHP 5, PECL tidy >= 0.5.2)

tidy_get_outputRetourne une chaîne représentant les balises telles qu'analysées par Tidy

Description

string tidy_get_output ( tidy $object )

Retourne une chaîne représentant les balises telles qu'analysées par Tidy.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne les balises analysées par Tidy.

Exemples

Exemple #1 Exemple avec tidy_get_output()

<?php

$html 
'<p>paragraph</i>';
$tidy tidy_parse_string($html);

$tidy->cleanRepair();

echo 
tidy_get_output($tidy);
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>



tidy_load_config

(PECL tidy >= 0.5.2)

tidy_load_configCharge un fichier de configuration ASCII Tidy avec l'encodage spécifié

Description

void tidy_load_config ( string $filename , string $encoding )

Charge le fichier de configuration Tidy avec le jeu de caractères encoding.

Liste de paramètres

filename

encoding

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.



tidy_reset_config

(PECL tidy >= 0.7.0)

tidy_reset_configRedonne les valeurs de configuration par défaut de Tidy

Description

bool tidy_reset_config ( void )

Restaure la configuration par défaut de Tidy.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.



tidy_save_config

(PECL tidy >= 0.5.2)

tidy_save_configSauve la configuration courante dans un fichier

Description

bool tidy_save_config ( string $filename )

Sauve la configuration courante dans le fichier filename. Seules les valeurs différentes des valeurs par défaut sont sauvées.

Liste de paramètres

filename

Chemin vers le fichier de configuration.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Voir aussi



tidy_set_encoding

(PECL tidy >= 0.5.2)

tidy_set_encodingModifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy

Description

bool tidy_set_encoding ( string $encoding )

Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy.

Liste de paramètres

encoding

La valeurs possibles de encoding sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.



tidy_setopt

(PECL tidy >= 0.5.2)

tidy_setopt Modifie la valeur de l'option de configuration Tidy

Description

bool tidy_setopt ( string $option , mixed $value )

tidy_setopt() configure l'option option avec la nouvelle valeur value.

Liste de paramètres

option

Le nom de l'option. Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

value

La valeur de l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy_setopt()

<?php
$html 
'<p>test</i>';

$tidy tidy_parse_string($html);

tidy_setopt('indent'FALSE);
?>

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Voir aussi



tidy_warning_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_warning_countRetourne le nombre d'alertes Tidy rencontrées dans le document spécifié

Description

int tidy_warning_count ( tidy $object )

Retourne le nombre d'avertissements Tidy rencontrés pour le document spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'alertes.

Exemples

Exemple #1 Exemple avec tidy_warning_count()

<?php
$html 
'<p>test</i>
<bogustag>bogus</bogustag>'
;

$tidy tidy_parse_string($html);

echo 
tidy_error_count($tidy) . "\n"//1
echo tidy_warning_count($tidy) . "\n"//5
?>

Voir aussi

  • tidy_error_count() - Retourne le nombre d'erreurs Tidy rencontrées dans le document
  • tidy_access_count() - Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document


Sommaire

  • ob_tidyhandler — Fonction de rappel ob_start pour réparer le buffer
  • tidy_access_count — Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
  • tidy_config_count — Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document
  • tidy_error_count — Retourne le nombre d'erreurs Tidy rencontrées dans le document
  • tidy_get_error_buffer — Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document
  • tidy_get_output — Retourne une chaîne représentant les balises telles qu'analysées par Tidy
  • tidy_load_config — Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié
  • tidy_reset_config — Redonne les valeurs de configuration par défaut de Tidy
  • tidy_save_config — Sauve la configuration courante dans un fichier
  • tidy_set_encoding — Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy
  • tidy_setopt — Modifie la valeur de l'option de configuration Tidy
  • tidy_warning_count — Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié



Tokenizer


Introduction

Les fonctions tokenizer fournissent une interface au tokenizer PHP interne au moteur Zend. Par l'utilisation de ces fonctions, vous pouvez écrire vos propres outils PHP d'analyse ou de modifications, sans avoir à vous soucier de la spécification du langage au niveau lexical.

Voir aussi l'appendice sur les tokens.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

À partir de PHP 4.3.0, ces fonctions sont activées par défaut. Pour les anciennes versions, vous devez compiler PHP avec l'option --enable-tokenizer . Vous pouvez désactiver le support de l'extension tokenizer avec l'option --disable-tokenizer .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note: Le support automatique du tokenizer est disponible depuis PHP 4.3.0.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Lorsque l'extension est compilée dans PHP ou chargée dynamiquement au démarrage, les jetons listés dans la Liste des tokens de l'analyseur sont définis comme des constantes.



Exemples

Voici un exemple simple de scripts PHP utilisant le tokenizer qui lit un fichier PHP, supprime tous les commentaires de la source et affiche uniquement le code.

Exemple #1 Supprime les commentaires avec le tokenizer

<?php
/*
* T_ML_COMMENT n'existe pas en PHP 5.
* Les lignes suivantes le définisse afin de rendre
* compatible notre code.
*
* Ensuite, les 2 lignes définissent T_DOC_COMMENT uniquement pour PHP 5,
* que nous masquons en T_ML_COMMENT pour PHP 4.
*/
if (!defined('T_ML_COMMENT')) {
   
define('T_ML_COMMENT'T_COMMENT);
} else {
   
define('T_DOC_COMMENT'T_ML_COMMENT);
}

$source file_get_contents('example.php');
$tokens token_get_all($source);

foreach (
$tokens as $token) {
   if (
is_string($token)) {
       
// un simple caractère token
       
echo $token;
   } else {
       
// tableau token
       
list($id$text) = $token;

       switch (
$id) { 
           case 
T_COMMENT
           case 
T_ML_COMMENT// nous avons défini ceci
           
case T_DOC_COMMENT// et ceci
               // Aucune action sur les commentaires
               
break;

           default:
               
// rien d'autre -> affiche "as is"
               
echo $text;
               break;
       }
   }
}
?>


Fonctions Tokenizer


token_get_all

(PHP 4 >= 4.2.0, PHP 5)

token_get_allScinde un code source en éléments de base

Description

array token_get_all ( string $source )

token_get_all() analyse la chaîne donnée source en utilisant l'analyseur lexical du moteur Zend.

Pour une liste des tokens, voir Liste des tokens de l'analyseur, ou utilisez la fonction token_name() pour traduire une valeur token dans une représentation sous forme de chaîne de caractères.

Liste de paramètres

source

Le source PHP à analyser.

Valeurs de retour

Un tableau contenant la liste des descriptions des éléments. Chaque élément du tableau peut être un caractère unique (i.e.: ;, ., >, !, etc.) ou bien un tableau contenant un identifiant de token dans l'élément 0, la représentation de ce code source dans l'élément 1 et le numéro de la ligne dans l'élément 2.

Exemples

Exemple #1 Exemple avec token_get_all()

<?php
$tokens 
token_get_all('<?php echo; ?>'); /* => array(
                                                  array(T_OPEN_TAG, '<?php'),
                                                  array(T_ECHO, 'echo'),
                                                  ';',
                                                  array(T_CLOSE_TAG, '?>') ); */
/* Notez que dans l'exemple suivant, la chaîne est parsée
comme T_INLINE_HTML plutôt que l'attendu T_COMMENT (T_COMMENT dans PHP inférieur
à la version 5), car il n'y a pas d'ouverture/fermeture de balises utilisées dans le "code".
Cela revient à mettre un commentaire à l'extérieur des balises <?php ?> dans
un fichier normal. */
$tokens token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

Historique

Version Description
5.2.2 Les numéros de lignes sont retournés dans l'élément 2



token_name

(PHP 4 >= 4.2.0, PHP 5)

token_nameLit le nom d'un élément de code source

Description

string token_name ( int $token )

token_name() retourne le nom symbolique pour une valeur PHP token value.

Liste de paramètres

token

La valeur token.

Valeurs de retour

Le nom symbolique du token donné.

Exemples

Exemple #1 Exemple avec token_name()

<?php
// 260 est la valeur token pour le token T_REQUIRE
echo token_name(260);        // -> "T_REQUIRE"

// une constante token correspondant à son propre nom
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>


Sommaire

  • token_get_all — Scinde un code source en éléments de base
  • token_name — Lit le nom d'un élément de code source



URLs


Introduction

Travaux avec les chaînes URL : encodage, décodage et analyse.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes sont prévues pour être utilisées avec la fonction parse_url() et sont disponibles depuis PHP 5.1.2.

PHP_URL_SCHEME (entier)
PHP_URL_HOST (entier)
PHP_URL_PORT (entier)
PHP_URL_USER (entier)
PHP_URL_PASS (entier)
PHP_URL_PATH (entier)
PHP_URL_QUERY (entier)
PHP_URL_FRAGMENT (entier)
PHP_QUERY_RFC1738 (integer)
PHP_QUERY_RFC3986 (integer)


Fonctions URL


base64_decode

(PHP 4, PHP 5)

base64_decodeDécode une chaîne en MIME base64

Description

string base64_decode ( string $data [, bool $strict = false ] )

Décode encoded_data.

Liste de paramètres

data

Les données à décoder.

strict

Retourne FALSE si l'entrée contient un espace des caractères hors de l'alphabet base64.

Valeurs de retour

Retourne les données décodées ou FALSE si une erreur survient. Les informations initiales peuvent être binaires.

Historique

Version Description
5.2.0 Le paramètre strict a été ajouté

Exemples

Exemple #1 Exemple avec base64_decode()

<?php
$str 
'Q2VjaSBlc3QgdW5lIGNoYe5uZSBlbmNvZOll';
echo 
base64_decode($str);
?>

L'exemple ci-dessus va afficher :

Ceci est une chaîne encodée

Voir aussi



base64_encode

(PHP 4, PHP 5)

base64_encodeEncode une chaîne en MIME base64

Description

string base64_encode ( string $data )

Encode data en base64.

Cet encodage est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits, comme les corps de mail.

Une chaîne encodée base64 prend environ 33 % de plus que les données initiales.

Liste de paramètres

data

Les données à encoder.

Valeurs de retour

Les données encodées, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec base64_encode()

<?php
$str 
'Ceci est une chaîne encodée';
echo 
base64_encode($str);
?>

L'exemple ci-dessus va afficher :

Q2VjaSBlc3QgdW5lIGNoYe5uZSBlbmNvZOll

Voir aussi



get_headers

(PHP 5)

get_headersRetourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP

Description

array get_headers ( string $url [, int $format = 0 ] )

get_headers() retourne un tableau avec les en-têtes envoyés par le serveur en réponse à une requête HTTP.

Liste de paramètres

url

L'URL cible.

format

Si le paramètre optionnel format est défini à 1, get_headers() analyse la réponse et définit les index du tableau.

Valeurs de retour

Retourne un tableau indexé ou associatif contenant les en-têtes, ou FALSE si une erreur survient.

Historique

Version Description
5.1.3 Cette fonction utilise le contexte de flux de défaut, qui peut être fixé/changé avec la fonction stream_context_get_default().

Exemples

Exemple #1 Exemple avec get_headers()

<?php
$url 
'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url1));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)



get_meta_tags

(PHP 4, PHP 5)

get_meta_tagsExtrait toutes les balises méta d'un fichier HTML

Description

array get_meta_tags ( string $filename [, bool $use_include_path = false ] )

get_meta_tags() ouvre le fichier filename et l'analyse ligne par ligne à la recherche de balises "meta". L'analyse cesse lors de la rencontre de la balise </head>.

Liste de paramètres

filename

Le chemin vers un fichier HTML, sous la forme d'une chaîne de caractères. Ce peut être un fichier local ou une URL.

Exemple #1 Ce que la fonction get_meta_tags() analyse

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- cesse l'analyse ici -->
Attention au format des nouvelles lignes : PHP utilise une fonction native pour analyser le fichier, et les fichiers Mac ne seront pas reconnus.

use_include_path

En donnant la valeur de TRUE au paramètre optionnel use_include_path fera que get_meta_tags() recherchera aussi le fichier dans l'include_path. Ce est utilisé pour des fichiers locaux, non des URLs.

Valeurs de retour

Retourne un tableau contenant toutes les balises méta analysées.

La valeur de la propriété sera utilisée comme clé du tableau, et sa valeur comme valeur correspondante de la clé. Vous pourrez ainsi passer en revue facilement ce tableau avec les fonctions de tableau standard. Les caractères spéciaux présents dans la valeur seront replacés par un souligné ("_"), et le reste est converti en minuscule. Si deux balises méta possèdent le même nom, seule la dernière sera retournée.

Historique

Version Description
4.0.5 le support des attributs HTML sans guillemets a été ajouté.

Exemples

Exemple #2 Ce que la fonction get_meta_tags() retourne

<?php
// Supposons que les balises ci-dessus sont disponibles sur example.com
$tags get_meta_tags('http://www.example.com/');

// Notez que les clés sont en minuscule, et
// le . a été remplacé par _ dans la clé
echo $tags['author'];       // nom
echo $tags['keywords'];     // documentation php
echo $tags['description'];  // n manuel PHP
echo $tags['geo_position']; // 49.33;-86.59
?>

Notes

Note:

Seules les balises méta avec un attribut name seront parsées.

Voir aussi



http_build_query

(PHP 5)

http_build_queryGénère une chaîne de requête en encodage URL

Description

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

Génère une chaîne en encodage URL, construite à partir du tableau indexé ou associatif query_data.

Liste de paramètres

query_data

Peut être un tableau ou un objet contenant des propriétés.

Si query_data est un tableau, alors ce peut être un tableau à une ou plusieurs dimensions.

Si query_data est un objet, alors seuls les attributs publics seront utilisés dans le résultat.

numeric_prefix

Si des indices numériques sont utilisés dans le tableau de base et que numeric_prefix est fourni, il sera utilisé pour préfixer les noms des index pour les éléments du tableau de base seulement.

Cela permet de générer des noms de variables valides, si les données sont ensuite décodées par PHP ou une application CGI.

arg_separator

arg_separator.output est utilisée pour séparer les arguments tant que le paramètre arg_separator n'est pas fourni.

enc_type

Par défaut, vaut PHP_QUERY_RFC1738.

Si enc_type vaut PHP_QUERY_RFC1738, alors l'encodage est effectué conformément à la » RFC 1738 et les espaces du type de média application/x-www-form-urlencoded, qui est impacté par ce choix, seront encodés sous la forme d'un signe plus (+).

Si enc_type vaut PHP_QUERY_RFC3986, alors l'encodage est effectué conformément à la » RFC 3986, et les espaces seront encodés en signe pourcent (%20).

Valeurs de retour

Retourne une chaîne de caractères encodée URL.

Historique

Version Description
5.1.2 Le paramètre arg_separator a été ajouté.
5.1.3 Les crochets sont échappés.
5.3.6 Le paramètre enc_type a été ajouté.

Exemples

Exemple #1 Utilisation simple de http_build_query()

<?php
$data 
= array('foo'=>'bar',
              
'baz'=>'boom',
              
'cow'=>'milk',
              
'php'=>'hypertext processor');

echo 
http_build_query($data) . "\n";
echo 
http_build_query($data'''&amp;');

?>

L'exemple ci-dessus va afficher :

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Exemple #2 http_build_query() avec tableau indexé

<?php
$data 
= array('foo''bar''baz''boom''cow' => 'milk''php' =>'hypertext processor');

echo 
http_build_query($data) . "\n";
echo 
http_build_query($data'myvar_');
?>

L'exemple ci-dessus va afficher :

0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

Exemple #3 http_build_query() avec tableau complexe

<?php
$data 
= array('user'=>array('name'=>'Bob Smith',
                            
'age'=>47,
                            
'sex'=>'M',
                            
'dob'=>'5/12/1956'),
              
'pastimes'=>array('golf''opera''poker''rap'),
              
'children'=>array('bobby'=>array('age'=>12,
                                               
'sex'=>'M'),
                                
'sally'=>array('age'=>8,
                                               
'sex'=>'F')),
              
'CEO');

echo 
http_build_query($data'flags_');
?>

cet exemple va afficher : (sur plusieurs lignes pour la lisibilité)

user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&
user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&
pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&
children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&
children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO

Note:

Seuls les éléments indexés numériquement ("CEO") dans le tableau de base sont préfixés. Les autres indices numériques à d'autres niveaux n'ont pas besoin de l'être pour avoir des noms valides.

Exemple #4 Utilisation de http_build_query() avec un objet

<?php
class parentClass {
    public    
$pub      'publicParent';
    protected 
$prot     'protectedParent';
    private   
$priv     'privateParent';
    public    
$pub_bar  Null;
    protected 
$prot_bar Null;
    private   
$priv_bar Null;

    public function 
__construct(){
        
$this->pub_bar  = new childClass();
        
$this->prot_bar = new childClass();
        
$this->priv_bar = new childClass();
    }
}

class 
childClass {
    public    
$pub  'publicChild';
    protected 
$prot 'protectedChild';
    private   
$priv 'privateChild';
}

$parent = new parentClass();

echo 
http_build_query($parent);
?>

L'exemple ci-dessus va afficher :

pub=publicParent&pub_bar%5Bpub%5D=publicChild

Voir aussi



parse_url

(PHP 4, PHP 5)

parse_urlAnalyse une URL et retourne ses composants

Description

mixed parse_url ( string $url [, int $component = -1 ] )

Cette fonction analyse une URL et retourne un tableau associatif contenant tous les éléments qui y sont présents.

Cette fonction n'est pas faite pour valider l'URL fournie, elle ne fait que la découper en parties listées ci-dessous. Les URL partielles sont également acceptées, la fonction parse_url() fera de son mieux pour les analyser correctement.

Liste de paramètres

url

L'URL à analyser. Les caractères invalides sont remplacées par des caractères soulignés _.

component

Peut être une des constantes parmi PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY ou PHP_URL_FRAGMENT pour récupérer uniquement une partie de l'URL en tant que chaîne de caractères (sauf lorsque PHP_URL_PORT est fourni ; dans ce cas, la valeur retournée sera un entier).

Valeurs de retour

Pour les URL vraiment mal formées, parse_url() peut retourner FALSE.

Si le paramètre component est omis, un array associatif est retourné. Au moins un élément sera présent dans le tableau. Voici les clés potentielles de ce tableau:

  • scheme - e.g. http
  • host
  • port
  • user
  • pass
  • path
  • query - après le marqueur de question ?
  • fragment - après la hachure #

Si le paramètre component est spécifié, parse_url() retourne une string (ou un entier dans le cas d'utilisation de la constante PHP_URL_PORT)au lieu d'un array. Si le composent demandé n'existe pas dans l'URL, NULL sera retourné.

Historique

Version Description
5.3.3 Suppression du E_WARNING émis lorsque l'URL était invalide.
5.1.2 Ajout du paramètre component

Exemples

Exemple #1 Exemple avec parse_url()

<?php
$url 
'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

echo 
parse_url($urlPHP_URL_PATH);
?>

L'exemple ci-dessus va afficher :

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path

Notes

Note:

Cette fonction ne fonctionne pas avec les URL relatives.

Note:

parse_url() a été créée tout spécialement pour analyser les URL et non les URI. Cependant, pour des raisons de compatibilité adjacente, PHP fait une exception pour le schéma file:// où les triples slashs (file:///...) sont autorisés. Tous les autres schémas sont invalides.

Voir aussi



rawurldecode

(PHP 4, PHP 5)

rawurldecodeDécode une chaîne URL

Description

string rawurldecode ( string $str )

rawurldecode() retourne la chaîne str dont les séquences de caractères %xy, avec xy deux valeurs hexadécimales, auront été remplacées par le caractère ASCII correspondant.

Liste de paramètres

str

L'URL à décoder.

Valeurs de retour

Retourne l'URL décodée, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Notes

Note:

rawurldecode() ne décode pas le symbole d'addition ("+") contrairement à la fonction urldecode().

Voir aussi



rawurlencode

(PHP 4, PHP 5)

rawurlencodeEncode une chaîne en URL, selon la RFC 3986

Description

string rawurlencode ( string $str )

Encode la chaîne fournie, en accord avec la » RFC 3986.

Liste de paramètres

str

L'URL à encoder.

Valeurs de retour

Retourne une chaîne dont tous les caractères non alphanumériques (hormis

-_.~
) auront été remplacés par des séquences %xy (%), avec xy, deux valeurs hexadécimales. Ce codage est conforme à la » RFC 3986 qui évite que les caractères spéciaux soient interprétés comme des délimiteurs, et pour protéger les URL lors du transfert (contrairement à certains systèmes email).

Note:

Avant PHP 5.3.0, rawurlencode encodait les tildes (~) suivant la » RFC 1738.

Historique

Version Description
5.3.4 Les caractères tildes (~) ne sont plus encodés lorsque la fonction rawurlencode() est utilisée avec les chaînes EBCDIC.
5.3.0 Conformité avec la » RFC 3986.

Exemples

Exemple #1 Exemple avec rawurlencode()

<?php
echo '<a href="ftp://user:'rawurlencode('foo @+%/'),
     
'@ftp.example.com/x.txt">';
?>

L'exemple ci-dessus va afficher :

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">

Ou, si vous transmettez un composant PATH_INFO d'une URL :

Exemple #2 Exemple avec rawurlencode()

<?php
echo '<a href="http://example.com/department_list_script/',
    
rawurlencode('sales and marketing/Miami'), '">';
?>

L'exemple ci-dessus va afficher :

<a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">

Voir aussi



urldecode

(PHP 4, PHP 5)

urldecodeDécode une chaîne encodée URL

Description

string urldecode ( string $str )

Décode toutes les séquences %## et les remplace par leur valeur. Les caractères '+' sont décodés en un caractère d'espacement.

Liste de paramètres

str

La chaîne de caractères à décoder.

Valeurs de retour

Retourne la chaîne de caractères décodée.

Exemples

Exemple #1 Exemple avec urldecode()

<?php
$a 
explode('&'$QUERY_STRING);
$i 0;
while (
$i count($a)) {
    
$b split('='$a[$i]);
    echo 
'La valeur du paramètre 'htmlspecialchars(urldecode($b[0])),
         
' est 'htmlspecialchars(urldecode($b[1])), "<br />\n";
    
$i++;
}
?>

Notes

Avertissement

Les superglobales $_GET et $_REQUEST sont déjà décodées. Utiliser urldecode() sur un élément de $_GET ou $_REQUEST peut avoir des conséquences inattendues et dangereuses.

Voir aussi



urlencode

(PHP 4, PHP 5)

urlencodeEncode une chaîne en URL

Description

string urlencode ( string $str )

Cette fonction est utile lors de l'encodage d'une chaîne de caractères à utiliser dans la partie d'une URL, comme façon simple de passer des variables vers la page suivante.

Liste de paramètres

str

La chaîne de caractères à encoder.

Valeurs de retour

Retourne une chaîne dont les caractères non alphanumériques (hormis -_.) sont remplacés par des séquences commençant par un caractère pourcentage (%), suivi de deux chiffres hexadécimaux. Les espaces sont remplacés par des signes plus (+). Ce codage est celui qui est utilisé pour poster des informations dans les formulaires HTML. Le type MIME est application/x-www-form-urlencoded. Ce codage est différent de celui spécifié dans la » RFC 3986 (voir rawurlencode()) : pour des raisons historiques, les espaces sont remplacés par des signes plus (+).

Exemples

Exemple #1 Exemple avec urlencode()

<?php
echo '<a href="mycgi?foo='urlencode($userinput), '">';
?>

Exemple #2 Exemple avec urlencode() et htmlentities()

<?php
$query_string 
'foo=' urlencode($foo) . '&bar=' urlencode($bar);
echo 
'<a href="mycgi?' htmlentities($query_string) . '">';
?>

Notes

Note:

Faites bien attention aux variables qui ressemblent à des entités HTML, comme &amp;, &copy; et &pound;, qui sont analysées par le client web et remplacées par leur valeur. C'est un vrai problème qui a été montré par le W3C depuis longtemps. La référence est ici : » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2.

PHP supporte le remplacement de séparateur d'arguments par un point-virgule, comme recommandé par le W3C, grâce à la directive arg_separator du fichier php.ini. Malheureusement, la plupart des clients web n'envoient pas leurs données de formulaire avec des points-virgules. Une solution plus portable est d'utiliser &amp; à la place de & comme séparateur. Vous n'avez alors pas à changer la directive arg_separator . Laissez-la à &, mais encodez vos URL en utilisant htmlentities() ou htmlspecialchars().

Voir aussi


Sommaire




Intégration du moteur Javascript V8


Introduction

Cette extension embarque le » moteur Javascript V8 dans PHP.



Installation/Configuration

Sommaire


Pré-requis

PHP 5.3.3+ et la blibothèque V8 ainsi que ses en-têtes doivent être installés dans les bons répertoires.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/v8js



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration V8js
Nom Défaut Modifiable Historique
v8js.max_disposed_contexts 25 PHP_INI_ALL
v8js.flags   PHP_INI_ALL

Voici un éclaircissement sur l'utilisation des directives de configuration.

v8js.max_disposed_contexts integer

Définit une limite pour disposer du contexte avant laquelle V8 forcera l'alimentation de la collection.

v8js.flags string

Définit les drapeaux de la ligne de commande V8. La liste des drapeaux disponibles peut être récupérer depuis la ligne de commande en utilisant l'option --help. Par exemple :

$ php -r 'ini_set("v8js.flags", "--help"); new V8Js;' | less

Note:

Pour que ces drapeaux soient effectifs lors de l'exécution, l'appel à la fonction ini_set() doit avoir été effectuée avant l'instanciation de tout objet V8Js !



Types de ressources

Cette extension ne définit aucune ressource.




Exemples

Utilisation simple

Exemple #1 Exécution d'un Javascript simple

<?php

$v8 
= new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Bonjour' + ' le ' + 'monde !' + "\\n");
len;
EOT;

try {
  
var_dump($v8->executeString($JS'basic.js'));
} catch (
V8JsException $e) {
  
var_dump($e);
}

?>

L'exemple ci-dessus va afficher :

Bonjour le monde !
int(18)


La classe V8Js

Introduction

C'est la classe de base de l'extension V8Js. Chaque instance créée depuis cette classe a son propre contexte dans lequel tout le Javascript est compilé et exécuté.

Voir V8Js::__construct() pour plus d'informations.

Synopsis de la classe

V8Js {
/* Constantes */
const string V8Js::V8_VERSION ;
const integer V8Js::FLAG_NONE = 1 ;
const integer V8Js::FLAG_FORCE_ARRAY = 2 ;
/* Méthodes */
__construct ([ string $object_name = "PHP" [, array $variables = array() [, array $extensions = array() [, bool $report_uncaught_exceptions = TRUE ]]]] )
public mixed executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] )
public static array getExtensions ( void )
public V8JsException getPendingException ( void )
public static bool registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] )
}

Constantes pré-définies

Types de nœuds V8Js

V8Js::V8_VERSION

La version du moteur Javascript V8.

V8Js::FLAG_NONE

Aucun drapeau.

V8Js::FLAG_FORCE_ARRAY

Force tous les objets JS a être des tableaux associatifs en PHP.


V8Js::__construct

(PECL v8js >= 0.1.0)

V8Js::__constructConstruit un nouvel objet V8Js

Description

V8Js::__construct ([ string $object_name = "PHP" [, array $variables = array() [, array $extensions = array() [, bool $report_uncaught_exceptions = TRUE ]]]] )

Construit un nouvel objet V8Js.

Liste de paramètres

object_name

Le nom de l'objet passé à Javascript. Par défaut, PHP.

variables

Une carte des variables qui seront disponibles en Javascript. Doit être un tableau associatif au format array("nom-pour-js" => "nom-de-la-variable-php"). Par défaut, un tableau vide.

extensions

Liste des extensions enregistrées en utilisant la méthode V8Js::registerExtension() et qui devront être disponibles dans le contexte Javascript de l'objet V8Js créé.

Note:

Les extensions enregistrées de telle façon qu'elles soient automatiquement actives n'ont pas besoin d'être listées dans ce tableau. De plus, si une extension a des dépendances, elles peuvent être omises. Par défaut, un tableau vide.

report_uncaught_exceptions

Contrôle si les exceptions Javascript non attrapées sont reportées immédiatement ou non. Par défaut, vaut TRUE. Si définit à FALSE, l'exception non attrapée peut être accédée en utilisant la méthode V8Js::getPendingException().

Valeurs de retour

Retourne un nouvel objet de contexte V8Js.



V8Js::executeString

(PECL v8js >= 0.1.0)

V8Js::executeStringExécute une chaîne comme un code Javascript

Description

public mixed V8Js::executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] )

Compile et exécute la chaîne passée par le paramètre script comme du code Javascript.

Liste de paramètres

script

La chaîne à exécuter.

identifier

Identifiant pour le code exécuté. Utilisé lors du débogage.

flags

Drapeaux d'exécution. Cette valeur doit être une des constantes V8Js::FLAG_*, et sera, par défaut V8Js::FLAG_NONE.

  • V8Js::FLAG_NONE : aucun drapeau

  • V8Js::FLAG_FORCE_ARRAY : force tous les objets Javascript passés à PHP à être des tableaux associatifs

Valeurs de retour

Retourne la dernière variable instanciée dans le code Javascript converti en variable PHP correspondante.



V8Js::getExtensions

(PECL v8js >= 0.1.0)

V8Js::getExtensionsRetourne un tableau contenant les extensions enregistrées

Description

public static array V8Js::getExtensions ( void )

Cette fonction retourne un tableau contenant les extensions Javascript enregistrées en utilisant la méthode V8Js::registerExtension().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les extensions enregistrées ou un tableau vide s'il n'y en a aucune.



V8Js::getPendingException

(PECL v8js >= 0.1.0)

V8Js::getPendingExceptionRetourne l'exception Javascript non attrapée restante

Description

public V8JsException V8Js::getPendingException ( void )

Retourne toutes les exceptions Javascript non attrapées restantes, comme V8JsException, depuis le dernier appel à la méthode V8Js::executeString().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet V8JsException ou NULL.



V8Js::registerExtension

(PECL v8js >= 0.1.0)

V8Js::registerExtensionEnregistre des extensions Javascript pour V8Js

Description

public static bool V8Js::registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] )

Enregistre le code Javascript passé par le paramètre script comme extension à utiliser dans les contextes V8Js.

Liste de paramètres

extension_name

Nom de l'extension à enregistrer.

script

Le code Javascript à enregistrer.

dependencies

Un tableau de noms d'extensions dépendantes à enregistrer. Chacune d'elles sera activée automatiquement lors du chargement de l'extension racine.

Note:

Toutes les extensions, y compris les dépendances, doivent être enregistrées avant la création de tout objet V8Js les utilisant.

auto_enable

Si définit à TRUE, l'extension sera activée automatiquement dans tous les contextes V8Js. Par défaut, vaut FALSE.

Valeurs de retour

Retourne TRUE si l'extension a été enregistrée avec succès, FALSE sinon.


Sommaire



La classe V8JsException

Introduction

Synopsis de la classe

V8JsException extends Exception {
/* Propriétés */
protected $JsFileName ;
protected $JsLineNumber ;
protected $JsSourceLine ;
protected $JsTrace ;
/* Méthodes */
final public string getJsFileName ( void )
final public int getJsLineNumber ( void )
final public int getJsSourceLine ( void )
final public string getJsTrace ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

message

code

file

line

JsFileName

JsLineNumber

JsSourceLine

JsTrace


V8JsException::getJsFileName

(PECL v8js >= 0.1.0)

V8JsException::getJsFileNameLe but de getJsFileName

Description

final public string V8JsException::getJsFileName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



V8JsException::getJsLineNumber

(PECL v8js >= 0.1.0)

V8JsException::getJsLineNumberLe but de getJsLineNumber

Description

final public int V8JsException::getJsLineNumber ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



V8JsException::getJsSourceLine

(PECL v8js >= 0.1.0)

V8JsException::getJsSourceLineLe but de getJsSourceLine

Description

final public int V8JsException::getJsSourceLine ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



V8JsException::getJsTrace

(PECL v8js >= 0.1.0)

V8JsException::getJsTraceLe but de getJsTrace

Description

final public string V8JsException::getJsTrace ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Sommaire




Sérialisation de données YAML


Introduction

Cette extension donne accès au standard de sérialisation» YAML Ain't Markup Language (YAML). L'analyse syntaxique et la production de données sont effectués par la librairie » LibYAML.



Installation/Configuration

Sommaire


Pré-requis

Cette extension nécessite la » librairie C LibYAML en version 0.1.0 ou plus pour être installée.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/yaml.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Yaml Options de configuration
Nom Défaut Modifiable Historique
yaml.decode_binary 0 PHP_INI_ALL
yaml.decode_timestamp 0 PHP_INI_ALL
yaml.output_canonical 0 PHP_INI_ALL
yaml.output_indent 2 PHP_INI_ALL
yaml.output_width 80 PHP_INI_ALL

Voici un éclaircissement sur l'utilisation des directives de configuration.

yaml.decode_binary boolean

Off par défaut, si mis à on : permet le décodage des entités binaires base64 ayant le tag explicite "tag:yaml.org,2002:binary".

yaml.decode_timestamp integer

Contrôle le décodage des scalaires implicites et explicites "tag:yaml.org,2002:timestamp" dans le flux du document YAML. La valeur par défaut est 0 elle n'appliquera aucun décodage. Mis à 1, strtotime() sera utilisé pour analyser le timestamp comme un timestamp Unix timestamp. Mis à 2, date_create() sera utilisée pour analyser le timestamp et via un objet DateTime.

yaml.output_canonical boolean

Off par défaut, si mis à on : une sortie canonique sera utilisée.

yaml.output_indent integer

Nombres d'espaces pour l'indentation. Un entier entre 1 et 10 est requis.

yaml.output_width integer

Précise la largeur de ligne. -1 signifie illimité.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Styles scalaires utilisés par les fonctions de rappel de yaml_parse()
YAML_ANY_SCALAR_STYLE (integer)
YAML_PLAIN_SCALAR_STYLE (integer)
YAML_SINGLE_QUOTED_SCALAR_STYLE (integer)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (integer)
YAML_LITERAL_SCALAR_STYLE (integer)
YAML_FOLDED_SCALAR_STYLE (integer)
Tags utilisables pour les fonctions de rappel yaml_parse()
YAML_NULL_TAG (string)
"tag:yaml.org,2002:null"
YAML_BOOL_TAG (string)
"tag:yaml.org,2002:bool"
YAML_STR_TAG (string)
"tag:yaml.org,2002:str"
YAML_INT_TAG (string)
"tag:yaml.org,2002:int"
YAML_FLOAT_TAG (string)
"tag:yaml.org,2002:float"
YAML_TIMESTAMP_TAG (string)
"tag:yaml.org,2002:timestamp"
YAML_SEQ_TAG (string)
"tag:yaml.org,2002:seq"
YAML_MAP_TAG (string)
"tag:yaml.org,2002:map"
YAML_PHP_TAG (string)
"!php/object"
Types d'encodages pour yaml_emit()
YAML_ANY_ENCODING (integer)
Let the emitter choose an encoding.
YAML_UTF8_ENCODING (integer)
Encode en UTF8.
YAML_UTF16LE_ENCODING (integer)
Encode en UTF16LE.
YAML_UTF16BE_ENCODING (integer)
Encode en UTF16BE.
Types de coupure de lignes pour yaml_emit()
YAML_ANY_BREAK (integer)
Laisse l'emmeteur choisir le caractère de coupure de ligne.
YAML_CR_BREAK (integer)
Utilise \r comme caractère de coupure (style Mac).
YAML_LN_BREAK (integer)
Utilise \n comme caractère de coupure (style Unix).
YAML_CRLN_BREAK (integer)
Utilise \r\n comme caractère de coupure (style DOS).


Exemples

Exemple #1 Exemples Yaml

<?php
$addr 
= array(
    
"given" => "Chris",
    
"family"=> "Dumars",
    
"address"=> array(
        
"lines"=> "458 Walkman Dr.
        Suite #292"
,
        
"city"=> "Royal Oak",
        
"state"=> "MI",
        
"postal"=> 48046,
      ),
  );
$invoice = array (
    
"invoice"=> 34843,
    
"date"=> "2001-01-23",
    
"bill-to"=> $addr,
    
"ship-to"=> $addr,
    
"product"=> array(
        array(
            
"sku"=> "BL394D",
            
"quantity"=> 4,
            
"description"=> "Basketball",
            
"price"=> 450,
          ),
        array(
            
"sku"=> "BL4438H",
            
"quantity"=> 1,
            
"description"=> "Super Hoop",
            
"price"=> 2392,
          ),
      ),
    
"tax"=> 251.42,
    
"total"=> 4443.52,
    
"comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
    );

// genère un représentation YAML de invoice
$yaml yaml_emit($invoice);
var_dump($yaml);

// convertit la syntaxe YAML vers une variable PHP
$parsed yaml_parse($yaml);

// vérifie que la conversion a produit une structure équivalente
var_dump($parsed == $invoice);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(631) "---
invoice: 34843
date: "2001-01-23"
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"
bool(true)


Yaml Fonctions


yaml_emit_file

(PECL yaml >= 0.5.0)

yaml_emit_fileEnvoie une représentation YAML vers un fichier

Description

bool yaml_emit_file ( string $filename , mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK ]] )

Génère une représentation YAML de la donnée data dans le fichier filename.

Liste de paramètres

filename

Chemin vers un fichier.

data

Donnée à encoder. Peut être de tout type sauf resource.

encoding

Encodage des caractères en sortie choisi parmi YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING. Par défaut YAML_ANY_ENCODING.

linebreak

Caractère de fin de ligne choisi parmi YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK. Par défaut YAML_ANY_BREAK.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi



yaml_emit

(PECL yaml >= 0.5.0)

yaml_emitRetourne une chaine représentant une valeur YAML

Description

string yaml_emit ( mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK ]] )

Génère une représentation YAML de la donnée data.

Liste de paramètres

data

Les données à encoder. Peut être de tout type sauf resource.

encoding

Encodage des caractères en sortie choisi parmi YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING. Par défaut YAML_ANY_ENCODING.

linebreak

Caractère de fin de ligne choisi parmi YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK. Par défaut YAML_ANY_BREAK.

Valeurs de retour

Retourne une chaine YAML en cas de succès.

Exemples

Exemple #1 Exemple yaml_emit()

<?php
$addr 
= array(
    
"given" => "Chris",
    
"family"=> "Dumars",
    
"address"=> array(
        
"lines"=> "458 Walkman Dr.
        Suite #292"
,
        
"city"=> "Royal Oak",
        
"state"=> "MI",
        
"postal"=> 48046,
      ),
  );
$invoice = array (
    
"invoice"=> 34843,
    
"date"=> 980208000,
    
"bill-to"=> $addr,
    
"ship-to"=> $addr,
    
"product"=> array(
        array(
            
"sku"=> "BL394D",
            
"quantity"=> 4,
            
"description"=> "Basketball",
            
"price"=> 450,
          ),
        array(
            
"sku"=> "BL4438H",
            
"quantity"=> 1,
            
"description"=> "Super Hoop",
            
"price"=> 2392,
          ),
      ),
    
"tax"=> 251.42,
    
"total"=> 4443.52,
    
"comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
  );
var_dump(yaml_emit($invoice));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(628) "---
invoice: 34843
date: 980208000
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"

Voir aussi



yaml_parse_file

(PECL yaml >= 0.4.0)

yaml_parse_fileAnalyse un flux YAML depuis un fichier

Description

mixed yaml_parse_file ( string $filename [, int $pos = 0 [, int &$ndocs [, array $callbacks ]]] )

Convertit tout ou partie d'un document YAML provenant d'un fichier vers une variable PHP.

Liste de paramètres

filename

Chemin vers le fichier.

pos

Le document à extraire du flux (-1 pour tous les documents, 0 pour le premier, ...).

ndocs

Sindocs est fourni, alors il est rempli avec le nombre de documents trouvés dans le flux.

callbacks

Analyseurs de contenu pour les noeuds YAML. Tableau associatif tag YAML => callback.

Valeurs de retour

Retourne la valeur encodée de filename dans le type PHP approprié. NULL est retourné si filename ne peut être décodé. Si pos vaut -1 un tableau sera retourné avec pour chaque valeur un document trouvé dans le flux.

Voir aussi



yaml_parse_url

(PECL yaml >= 0.4.0)

yaml_parse_urlAnalyse un flux YAML depuis une URL

Description

mixed yaml_parse_url ( string $url [, int $pos = 0 [, int &$ndocs [, array $callbacks ]]] )

Convertit tout ou partie d'un document YAML provenant d'une URL vers une variable PHP.

Liste de paramètres

url

url doit être de la forme "scheme://...". PHP cherchera le protocole pour cette URL. Si aucun protocole n'a été enregistré pour ce flux, PHP émettra une notice pour vous aider à trouver le problème et continuera.

pos

Le document à extraire du flux (-1 pour tous les documents, 0 pour le premier, ...).

ndocs

Sindocs est fourni, alors il est rempli avec le nombre de documents trouvés dans le flux.

callbacks

Analyseurs de contenu pour les noeuds YAML. Tableau associatif tag YAML => callback.

Valeurs de retour

Retourne la valeur encodée de url dans le type PHP approprié. NULL est retourné si url ne peut être décodé. Si pos vaut -1 un tableau sera retourné avec pour chaque valeur un document trouvé dans le flux.

Voir aussi



yaml_parse

(PECL yaml >= 0.4.0)

yaml_parseAnalyse un flux YAML

Description

mixed yaml_parse ( string $input [, int $pos = 0 [, int &$ndocs [, array $callbacks ]]] )

Convertit tout ou partie d'un document YAML provenant d'une chaine vers une variable PHP.

Liste de paramètres

input

La chaine à analyser comme document YAML.

pos

Le document à extraire du flux (-1 pour tous les documents, 0 pour le premier, ...).

ndocs

Sindocs est fourni, alors il est rempli avec le nombre de documents trouvés dans le flux.

callbacks

Analyseurs de contenu pour les noeuds YAML. Tableau associatif tag YAML => callback.

Valeurs de retour

Retourne la valeur encodée de input dans le type PHP approprié. NULL est retourné si input ne peut être décodé. Si pos vaut -1 un tableau sera retourné avec pour chaque valeur un document trouvé dans le flux.

Exemples

Exemple #1 Exemple yaml_parse()

<?php
$yaml 
= <<<EOD
---
invoice: 34843
date: "2001-01-23"
bill-to: &id001
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to: *id001
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
EOD;

$parsed yaml_parse($yaml);
var_dump($parsed);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(8) {
  ["invoice"]=>
  int(34843)
  ["date"]=>
  string(10) "2001-01-23"
  ["bill-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["ship-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["product"]=>
  array(2) {
    [0]=>
    array(4) {
      ["sku"]=>
      string(6) "BL394D"
      ["quantity"]=>
      int(4)
      ["description"]=>
      string(10) "Basketball"
      ["price"]=>
      int(450)
    }
    [1]=>
    array(4) {
      ["sku"]=>
      string(7) "BL4438H"
      ["quantity"]=>
      int(1)
      ["description"]=>
      string(10) "Super Hoop"
      ["price"]=>
      int(2392)
    }
  }
  ["tax"]=>
  float(251.42)
  ["total"]=>
  float(4443.52)
  ["comments"]=>
  string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338."
}

Voir aussi


Sommaire





Autres services


AMQP


Introduction

» AMQP est sinonyme de "» protocole avancé de file d'attente de message", qui est un standard ouvert pour l'acheminement et la mise en file d'attente de message. Cette extension est compatible avec toutes lesles versions 0-8 du courtier AMQP, comme » RabbitMQ et » OpenAMQ.

Cette extension est basée sur la bibliothèque RPC » librabbitmq pour la communication avec le courtier AMQP. Malgré le nom de "Rabbit" (lapin), cette bibliothèque est compatible avec toutes les versions 0-8 des courtiers AMQP.



Installation/Configuration

Sommaire


Pré-requis

Cette extension nécessite la bibliothèque cliente » librabbitmq.



Installation

Pour installer l'extension AMQP PHP, vous devez tout d'abord installer la bibliothèque » librabbitmq. Suivez les étapes suivantes pour télécharger et installer cette bibliothèque :

# Télécharge la bibliothèque rabbitmq-c
  hg clone http://hg.rabbitmq.com/rabbitmq-c/rev/3c549bb09c16
  cd rabbitmq-c
  # Ajout d'un codegen
  hg clone http://hg.rabbitmq.com/rabbitmq-codegen/rev/f8b34141e6cb codegen
  # Configuration, compilation et installation
  autoreconf -i && ./configure && make && sudo make install

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici :

Note aux utilisateurs de Windows : Cette extension ne supporte pas pour le moment Windows sachant que la bibliothèque librabbitmq ne supporte pas, elle même, Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Amqp
Nom Défaut Modifiable Historique
amqp.host localhost PHP_INI_ALL
amqp.vhost / PHP_INI_ALL
amqp.port 5672 PHP_INI_ALL
amqp.login guest PHP_INI_ALL
amqp.password guest PHP_INI_ALL

Voici un éclaircissement sur l'utilisation des directives de configuration.

amqp.host string

L'hôte utilisé pour la connexion.

amqp.vhost string

L'hôte virtuel sur lequel la connexion s'effectue sur l'hôte.

amqp.port integer

Le port utilisé pour la connexion.

amqp.login string

Le nom d'utilisateur utilisé pour l'authentification sur l'hôte.

amqp.password string

Le mot de passe utilisé pour l'authentification sur l'hôte.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

AMQP_DURABLE (integer)
Les échanges et les files d'attente durables seront entièrement conservés y compris lors d'un redémarrage du courtier.
AMQP_PASSIVE (integer)
Les échanges passifs mis en file d'attente ne seront pas re-déclarés, mais le courtier émettra une erreur si l'échange ou la file d'attente n'existe pas.
AMQP_EXCLUSIVE (integer)
Uniquement valide pour les files d'attente, ce drapeau indique que seul un client peut être surveillé et peut utiliser cette file d'attente.
AMQP_AUTODELETE (integer)
Pour les échanges, le drapeau d'auto-effacement indique que l'échange sera effacé dès qu'il n'est plus lié à aucune file d'attente. Si au moins une file d'attente est toujours lié à l'échange, il ne sera jamais effacé. Pour les files d'attente, le drapeau d'auto-effacement indique que la file d'attente sera effacé dès qu'il n'y a plus de surveillant de souscrit. Note : Les files d'attente exclusives seront toujours automatiquement effacées lors de la déconnexion du client.
AMQP_INTERNAL (integer)
Avec ce drapeau, les clients ne sont pas autorisés à faire de lien à une file d'attente spécifique à des fins d'échanges.
AMQP_NOLOCAL (integer)
Lors du passage à la méthode d'analyse pour un environnement en cluster, ne pas analyser depuis le nœud local.
AMQP_NOACK (integer)
Lors du passage à la méthode d'analyse, le message ne sera pas marqué comme délivré.
AMQP_IFEMPTY (integer)
Passé lors de la création d'une file d'attente, ce drapeau indique que la file d'attente peut être effacée si elle devient vide.
AMQP_IFUNUSED (integer)
Passé lors de la création d'une file d'attente ou d'un échange, ce drapeau indique que la file d'attente ou l'échange peut être effacé lorsqu'aucun client n'y est connecté.
AMQP_MANDATORY (integer)
Lors de la publication d'un message, le message doit être orienté vers une file d'attente valide. Si elle ne l'est pas, une erreur devra être retournée.
AMQP_IMMEDIATE (integer)
Lors de la publication d'un message, on le marque afin d'obtenir un traitement immédiat par le courtier (message haute priorité).
AMQP_MULTIPLE (integer)
?
AMQP_EX_TYPE_DIRECT (string)
Un type d'échange direct.
AMQP_EX_TYPE_FANOUT (string)
Un type d'échange fanout.
AMQP_EX_TYPE_TOPIC (string)
Un type d'échange topic.
AMQP_EX_TYPE_HEADER (string)
Un type d'échange header.



Exemples

Exemple #1 AMQP - Example

<?php

// Création d'une connexion
$cnn = new AMQPConnection();
$cnn->connect();

// Déclare un nouvel échange
$ex = new AMQPExchange($cnn);
$ex->declare('exchange1'AMQP_EX_TYPE_FANOUT);

// Création d'une nouvelle file d'attente
$q = new AMQPQueue($cnn);
$q->declare('queue1');

// On la lie sur l'échange avec routing.key
$ex->bind('queue1''routing.key');

// Publie un message sur l'échange en utilisant une clé
$ex->publish('message''routing.key');

// Lecture de la file d'attente
$msg $q->consume();

?>


La classe AMQPConnection

Introduction

Représente une connexion à un courtier AMQP.

Synopsis de la classe

AMQPConnection {
/* Méthodes */
public bool connect ( void )
__construct ([ array $credentials = array() ] )
public bool disconnect ( void )
public bool isConnected ( void )
public bool reconnect ( void )
public bool setHost ( string $host )
public bool setLogin ( string $login )
public bool setPassword ( string $password )
public bool setPort ( int $port )
public bool setVhost ( string $vhost )
}

AMQPConnection::connect

(No version information available, might only be in SVN)

AMQPConnection::connectÉtablit une connexion avec le courtier AMQP

Description

public bool AMQPConnection::connect ( void )

Cette méthode instancie une connexion avec le courtier AMQP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec AMQPConnection::connect()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();

// Définit l'identifiant/mot de passe
$cnn->setLogin('mylogin');
$cnn->setPassword('mypass');

if (
$cnn->connect()) {
    echo 
"Connexion établie avec le courtier";
}
else {
    echo 
"Connexion impossible avec le courtier";
}


?>



AMQPConnection::__construct

(PECL amqp >= Unknown)

AMQPConnection::__constructCrée une nouvelle instance AMQPConnection

Description

AMQPConnection::__construct ([ array $credentials = array() ] )

Crée une nouvelle instance AMQPConnection représentant une connexion à un courtier AMQP.

Liste de paramètres

credentials

Le paramètre credentials est un tableau optionnel contenant les informations d'authentification utilisées pour la connexion au courtier AMQP.

Indexes supportés
Clé Description Valeur par défaut
host L'hôte sur lequel nous voulons nous connecter.

Note: 32 caractères maximun

amqp.host
port Port de l'hôte amqp.port
vhost L'hôte virtuel sur l'hôte

Note: 32 caractères maximum

amqp.vhost
login Le nom d'utilisateur à utiliser pour la connexion.

Note: 32 caractères maximum

amqp.login
password Mot de passe pour l'utilisateur

Note: 32 caractères maximum

amqp.password

Toutes les autres clés seront ignorées.

Valeurs de retour

Un objet AMQPConnection.

Erreurs / Exceptions

Émets une exception AMQPException lorsqu'une erreur survient lors de l'analyse des paramètres ainsi que lors d'erreurs sur les options.

Exemples

Exemple #1 Exemple avec AMQPConnection::__construct()

<?php

/* Création d'une connexion utilisant les valeurs INI */
$connection1 = new AMQPConnection();

/* Spécification des toutes les clés */
$connection2 = new AMQPConnection(array(
    
'host' => 'example.host',
    
'vhost' => '/',
    
'port' => 5763,
    
'login' => 'user',
    
'password' => 'password'
));

?>

Notes

Note:

La connexion ne sera pas établie tant que la méthode AMQPConnection::connect() n'est pas appelée.



AMQPConnection::disconnect

(No version information available, might only be in SVN)

AMQPConnection::disconnectFerme une connexion

Description

public bool AMQPConnection::disconnect ( void )

Cette méthode ferme une connexion ouverte avec un courtier AMQP.

Liste de paramètres

Valeurs de retour

Retourne TRUE si la connexion a été close avec succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec AMQPConnection::disconnect()

<?php

/* Création d'une connexion */
$cnn = new AMQPConnection();

// Définition des paramètres d'authentification
$cnn->setLogin('mylogin');
$cnn->setPassword('mypass');

if (!
$cnn->connect()) {
 throw new 
Exception('Connexion impossible');
}

// quelques lignes de code utiles

if (!$cnn->disconnect()) {
 throw new 
Exception('Déconnexion impossible');
}

?>



AMQPConnection::isConnected

(PECL amqp >= Unknown)

AMQPConnection::isConnectedDétermine si l'objet AMQPConnection est connecté à un courtier

Description

public bool AMQPConnection::isConnected ( void )

Cette méthode vérifie si la connexion à un courtier AMQP est toujours valide. Cela s'effectue en vérifiant le statut de la dernière commande.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la connexion est valide, FALSE sinon.

Exemples

Exemple #1 Exemple avec AMQPConnection::isConnected()

<?php

/* Création d'une nouvelle connexion */
$conn = new AMQPConnection();
$conn->connect();

/* Vérifie si la connexion est toujours valide */
if ($conn->isConnected()) {
    echo 
"Connecté au courtier \o/";
}
else {
    echo 
"Connexion au courtier perdue";
}

?>



AMQPConnection::reconnect

(No version information available, might only be in SVN)

AMQPConnection::reconnectFerme toutes les connexions ouvertes et crée une nouvelle connexion

Description

public bool AMQPConnection::reconnect ( void )

Cette méthode ferme toutes les connexions et initie une nouvelle connexion avec le courtier AMQP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec AMQPConnection::reconnect()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();

// Définition des informations d'authentification
$cnn->setLogin('mylogin');
$cnn->setPassword('mypass');

$cnn->connect();

// quelques lignes de code utiles

// On s'assure que nous avons une connexion valide
if (!$cnn->reconnect()) {
 echo 
"Reconnexion impossible au serveur";
}

?>



AMQPConnection::setHost

(No version information available, might only be in SVN)

AMQPConnection::setHostDéfinit l'hôte

Description

public bool AMQPConnection::setHost ( string $host )

Cette méthode définit le nom de l'hôte de connexion au courtier AMQP.

Liste de paramètres

host

Le nom d'hôte du courtier AMQP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception AMQPConnectionException si le paramètre host est plus long que 1024 caractères.

Exemples

Exemple #1 Exemple avec AMQPConnection::setHost()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();

// Définition du nom d'hôte
$cnn->setHost('myhost.com');

?>



AMQPConnection::setLogin

(No version information available, might only be in SVN)

AMQPConnection::setLoginDéfinit l'identifiant de connexion

Description

public bool AMQPConnection::setLogin ( string $login )

Cette méthode définit l'identifiant à utiliser pour la connexion au courtier AMQP.

Liste de paramètres

login

L'identifiant utilisé pour l'authentification avec le courtier AMQP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception AMQPConnectionException si la paramètre login est plus long que 32 caractères.

Exemples

Exemple #1 Exemple avec AMQPConnection::setLogin()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();

// Définition de l'identifiant de connexion
$cnn->setLogin('myusername');

?>



AMQPConnection::setPassword

(No version information available, might only be in SVN)

AMQPConnection::setPasswordDéfinit le mot de passe

Description

public bool AMQPConnection::setPassword ( string $password )

Cette méthode définit le mot de passe utilisé lors de la connexion avec le courtier AMQP.

Liste de paramètres

password

Le mot de passe utilisé pour l'authentification avec le courtier AMQP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception AMQPConnectionException si le paramètre password est plus long que 32 caractères.

Exemples

Exemple #1 Exemple avec AMQPConnection::setPassword()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();

// Définition du mot de passe
$cnn->setPassword('mypassword');

?>



AMQPConnection::setPort

(No version information available, might only be in SVN)

AMQPConnection::setPortDéfinit le port

Description

public bool AMQPConnection::setPort ( int $port )

Cette méthode définit le port à utiliser lors de la connexion avec le courtier AMQP.

Liste de paramètres

port

Le port à utiliser lors de la connexion au courtier AMQP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception AMQPConnectionException si la longueur du paramètre port n'est pas comprise dans l'intervalle 1 à 65535.

Exemples

Exemple #1 Exemple avec AMQPConnection::setPort()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();

// Définition du port
$cnn->setPort(5672);

?>



AMQPConnection::setVhost

(No version information available, might only be in SVN)

AMQPConnection::setVhostDéfinit un hôte virtuel amqp

Description

public bool AMQPConnection::setVhost ( string $vhost )

Définit un hôte virtuel amqp à connecter au courtier AMQP.

Liste de paramètres

host

L'hôte virtuel à utiliser sur le courtier AMQP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception AMQPConnectionException si le paramètre host est supérieur à 32 caractères.

Exemples

Exemple #1 Exemple avec AMQPConnection::setVhost()

<?php

/* Crée une nouvelle connexion */
$cnn = new AMQPConnection();

// Définit le nom de l'hôte
$cnn->setVhost('myvhost');

?>


Sommaire



La classe AMQPExchange

Introduction

Représente un échange AMQP.

Synopsis de la classe

AMQPExchange {
/* Méthodes */
public bool bind ( string $queue_name , string $routing_key )
__construct ( AMQPConnection $connection [, string $exchange_name = "" ] )
public bool declare ([ string $exchange_name = "" [, string $exchange_type = AMQP_EX_TYPE_DIRECT [, int $flags = 0 ]]] )
public bool delete ([ string $exchange_name = NULL [, int $params = 0 ]] )
public bool publish ( string $message , string $routing_key [, int $params = 0 [, array $attributes ]] )
}

AMQPExchange::bind

(PECL amqp >= Unknown)

AMQPExchange::bindLe but de bind

Description

public bool AMQPExchange::bind ( string $queue_name , string $routing_key )

Lie un échange à une file d'attente en utilisant la clé spécifiée.

Liste de paramètres

queue_name

Le nom de la file d'attente sur laquelle nous devons lier l'échange.

routing_key

La clé à utiliser pour le lien.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception AMQPExchangeException si une erreur survient.



AMQPExchange::__construct

(PECL amqp >= Unknown)

AMQPExchange::__constructCrée une nouvelle instance AMQPExchange

Description

AMQPExchange::__construct ( AMQPConnection $connection [, string $exchange_name = "" ] )

Retourne une nouvelle instance d'un objet AMQPExchange, associée à l'objet AMQPConnection fourni. Si le paramètre exchange_name est spécifié, et que l'échange portant ce nom existe sur le courtier, une instance de cet échange spécifique sera retourné. Sinon, le paramètre exchange_name sera ignoré.

Liste de paramètres

AMQPConnection

Un objet AMQPConnection valide, connecté au courtier.

exchange_name

Le nom de l'échange existant à représenter.

Valeurs de retour

Un objet AMQPExchange.

Erreurs / Exceptions

Émets une exception AMQPExchangeException lorsque le paramètre connection n'est pas connecté à un courtier.



AMQPExchange::declare

(PECL amqp >= Unknown)

AMQPExchange::declareDéclare un nouvel échange au courtier

Description

public bool AMQPExchange::declare ([ string $exchange_name = "" [, string $exchange_type = AMQP_EX_TYPE_DIRECT [, int $flags = 0 ]]] )

Déclare un nouvel échange au courtier avec les informations fournies. Si un échange portant ce nom existe déjà, et si le paramètre exchange_type et/ou le paramètre flags sont spécifiés, la configuration de l'échange sera mise à jour.

Si le paramètre exchange_type n'est pas spécifié, et si l'échange n'existe pas, le type de l'échange sera par défaut "direct".

Liste de paramètres

exchange_name

Le nom de l'échange.

exchange_type

Le type de l'échange. Peut être une constante parmi AMQP_EX_TYPE_DIRECT, AMQP_EX_TYPE_FANOUT, AMQP_EX_TYPE_TOPIC ou AMQP_EX_TYPE_HEADER.

flags

Un masque de drapeaux suivants : AMQP_PASSIVE, AMQP_DURABLE, AMQP_AUTODELETE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception AMQPExchangeException si une erreur survient.

Exemples

Exemple #1 Exemple avec AMQPExchange::declare()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();
$cnn->connect();

$ex = new AMQPExchange($cnn);
$ex->declare('new_topic_exchange'AMQP_EX_TYPE_DIRECTAMQP_DURABLE AMQP_AUTODELETE);

?>



AMQPExchange::delete

(PECL amqp >= Unknown)

AMQPExchange::deleteEfface un échange depuis un courtier

Description

public bool AMQPExchange::delete ([ string $exchange_name = NULL [, int $params = 0 ]] )

Efface un échange depuis un courtier.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

exchange_name

Le nom de l'échange à effacer. Si l'objet AMQPExchange est déjà lié à un échange existant et que le paramètre exchange_name n'est pas spécifié, l'échange lié à l'objet AMQPExchange sera effacé. deleted.

params

Optionnellement, AMQP_IFUNUSED peut être spécifié pour indiquer que l'échange ne doit pas être supprimé tant qu'aucun client n'y soit connecté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec AMQPExchange::delete()

<?php

/* Création d'une nouvelle connexion */
$cnn = new AMQPConnection();
$cnn->connect();

/* Création d'un nouvel échange */
$ex = new AMQPExchange($cnn);
$ex->declare('new_topic_exchange'AMQP_EX_TYPE_DIRECTAMQP_DURABLE AMQP_AUTODELETE);

/* Efface l'échange précédent */
$ex2 = new AMQPExchange($cnn);
$ex2->delete('new_topic_exchange');

?>



AMQPExchange::publish

(PECL amqp >= Unknown)

AMQPExchange::publishPublie un message à échanger

Description

public bool AMQPExchange::publish ( string $message , string $routing_key [, int $params = 0 [, array $attributes ]] )

Publie un message à échanger représenté par l'objet AMQPExchange.

Liste de paramètres

message

Le message à publier.

routing_key

La clé utilisée pour la publication.

params

Un ou plusieurs constantes AMQP_MANDATORY et AMQP_MANDATORY.

Indexes supportés
Clé Description Valeur par défaut
Content-type   text/plain
Content-encoding   NULL
message_id   NULL
user_id   NULL
app_id   NULL
delivery_mode   NULL
priority   NULL
timestamp   NULL
expiration   NULL
type   NULL
reply_to   NULL

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception AMQPExchangeException si une erreur survient.


Sommaire



La classe AMQPQueue

Introduction

Représente une file d'attente AMQP.

Synopsis de la classe

AMQPQueue {
/* Méthodes */
public bool ack ( int $delivery_tag [, int $flags = NULL ] )
public bool bind ( string $exchange_name , string $routing_key )
public bool cancel ([ string $consumer_tag = "" ] )
__construct ( AMQPConnection $amqp_connection [, string $queue_name = "" ] )
public array consume ([ array $options = array() ] )
public int declare ([ string $queue_name = "" [, int $flags = AMQP_AUTODELETE ]] )
public bool delete ( string $queue_name )
public array get ([ int $flags = AMQP_NOACK ] )
public bool purge ( string $queue_name )
public bool unbind ( string $exchange_name , string $routing_key )
}

AMQPQueue::ack

(No version information available, might only be in SVN)

AMQPQueue::ackAccuse réception d'un message

Description

public bool AMQPQueue::ack ( int $delivery_tag [, int $flags = NULL ] )

Cette méthode autorise un accusé de réception d'un message qui a été reçu avec le drapeau AMQP_NOACK via la méthode AMQPQueue::get() ou la méthode AMQPQueue::consume().

Liste de paramètres

delivery_tag

Le drapeau du message délivré.

flags

Le seul drapeau valide qui peut être passé est AMQP_MULTIPLE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



AMQPQueue::bind

(PECL amqp >= Unknown)

AMQPQueue::bindLie la file d'attente fournie à une clé sur un échange

Description

public bool AMQPQueue::bind ( string $exchange_name , string $routing_key )

Cette méthode lie la file d'attente fournie à la clé spécifiée sur un échange donné.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

exchange_name

Le nom de l'échange.

routing_key

La clé à utiliser.

Valeurs de retour



AMQPQueue::cancel

(PECL amqp >= Unknown)

AMQPQueue::cancelAnnule un lien à une file d'attente

Description

public bool AMQPQueue::cancel ([ string $consumer_tag = "" ] )

Annule une file d'attente déjà liée à un échange et une clé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

consumer_tag

Le nom de la file d'attente à annuler, si l'objet de file d'attente n'est pas représentatif d'une file.

Valeurs de retour



AMQPQueue::__construct

(PECL amqp >= Unknown)

AMQPQueue::__constructCrée une instance d'un objet AMQPQueue

Description

AMQPQueue::__construct ( AMQPConnection $amqp_connection [, string $queue_name = "" ] )

Crée une instance AMQPQueue représentant une file d'attente AMQP sur un courtier.

Liste de paramètres

amqp_connection

Un objet AMQPConnection valide.

queue_name

Le nom de la file d'attente à construire. Si le nom n'est pas spécifié, le courtier en génèrera un.

Valeurs de retour



AMQPQueue::consume

(PECL amqp >= Unknown)

AMQPQueue::consumeLe but de consume

Description

public array AMQPQueue::consume ([ array $options = array() ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Le paramètre options est un tableau d'options d'analyse. Les clés utilisées dans le tableau options sont : min, max, et ack. Toute autre clé sera ignoée.

Pour chaque option manquante, l'extension vérifiera la configuration équivalente dans le fichier php.ini ou bien utilisera la valeur par défaut.

Valeurs de retour

Un tableau contenant le message à analyser. Le nombre de messages retourné sera d'au moins le nombre fourni par le paramètre min du tableau options, mais pas plus que le nombre fourni par le paramètre max.

Exemples

Exemple #1 Exemple avec AMQPQueue::consume()

<?php

/* Création d'une connexion utilisant toutes les informations d'authentification par défaut : */
$connection = new AMQPConnection();
$connection->connect();

/* création d'un objet de file d'attente */
$queue = new AMQPQueue($connection);

// Déclaration de la file d'attente
$queue->declare('myqueue');

$options = array(
 
'min' => 1,
 
'max' => 10,
 
'ack' => true
);

// Récupère les messages
$messages $queue->consume($options);

foreach (
$messages as $message) {
 echo 
$message['message_body'];
}

?>



AMQPQueue::declare

(PECL amqp >= Unknown)

AMQPQueue::declareDéclare une nouvelle file d'attente

Description

public int AMQPQueue::declare ([ string $queue_name = "" [, int $flags = AMQP_AUTODELETE ]] )

Déclare une nouvelle file d'attente sur un courtier.

Liste de paramètres

queue_name

Le nom de la file d'attente à déclarer.

flags

Un masque de drapeaux : AMQP_AUTODELETE, AMQP_PASSIVE, AMQP_DURABLE, AMQP_NOACK.

Valeurs de retour

Retourne le nombre de messages.



AMQPQueue::delete

(PECL amqp >= Unknown)

AMQPQueue::deleteEfface une file d'attente ainsi que son contenu

Description

public bool AMQPQueue::delete ( string $queue_name )

Efface une file d'attente depuis un courtier ainsi que son contenu, y compris les messages non lus, avec ou sans accusés de réception.

Liste de paramètres

queue_name

Le nom de la file d'attente à effacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



AMQPQueue::get

(PECL amqp >= Unknown)

AMQPQueue::getRécupère le prochain message depuis la file d'attente

Description

public array AMQPQueue::get ([ int $flags = AMQP_NOACK ] )

Récupère le prochain message depuis la file d'attente.

Liste de paramètres

flags

Un masque de drapeaux : AMQP_NOACK.

Valeurs de retour

Retourne un tableau qui peut contenir les clés suivantes : routing_key, exchange, delivery_tag, Content-type, Content-encoding, type, timestamp, priority, expiration, user_id, app_id, message_id, Reply-to, count, msg.



AMQPQueue::purge

(PECL amqp >= Unknown)

AMQPQueue::purgePurge le contenu d'une file d'attente

Description

public bool AMQPQueue::purge ( string $queue_name )

Purge le contenu d'une file d'attente.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

queue_name

Le nom de la file d'attente à purger.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



AMQPQueue::unbind

(PECL amqp >= Unknown)

AMQPQueue::unbindSupprime un lien entre une file d'attente et une clé

Description

public bool AMQPQueue::unbind ( string $exchange_name , string $routing_key )

Supprime un lien entre une file d'attente et une clé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

exchange_name

Le nom de l'échange sur laquelle la file d'attente est liée.

routing_key

La clé utilisée pour le lien avec la file d'attente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire




Base de données de hachage constante


Introduction

CHDB (base de données de hachage constante) est une base de données clé-valeur rapide pour les données constantes, réalisée en utilisant un fichier mappé en mémoire, et fournissant les fonctionnalités suivantes :

  • Chargement initial extrêmement rapide, suivant la taille de la base de données.

  • Seules les pages du fichier qui sont actuellement utilisées sont chargées depuis le disque.

  • Une fois la page chargée, elle est partagée entre plusieurs processus.

  • Les pages chargées sont mises en cache entre les requêtes et les processus.

Une utilisation typique de CHDB est une alternative rapide pour définir plusieurs constantes PHP.

CHDB est implémenté en interne comme une table de hachage utilisant une fonction de » hachage parfait, garantissant ainsi un temps de recherche inégalé.



Installation/Configuration

Sommaire


Pré-requis

Ce module utilise » cmph (version 0.9) pour fournir la fonction » de hachage parfaite.

cmph 0.9 est nécessaire pour installer ce module.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/chdb

» cmph (version 0.9) est nécessaire pour installer cette extension. Si cmph est insatallé dans un dossier non standard, utilisez l'option --with-libcmph-dir=DIR , où DIR est le préfixe d'installation cmph.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Exemple #1 Création d'un fichier

<?php

$data 
= array(
    
'key1' => 'value1',
    
'key2' => 'value2',
    
// ...
);
chdb_create('data.chdb'$data);

?>

L'exemple ci-dessus génère un fichier chdb nommé data.chdb et contenant les paires clé-valeur définies dans $data.

Exemple #2 Chargement et affichage d'un fichier file

<?php

$chdb 
= new chdb('data.chdb');
$value1 $chdb->get('key1');
$value2 $chdb->get('key2');

echo 
$value1PHP_EOL;
echo 
$value2PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

value1
value2


La classe chdb

Introduction

Représente un fichier chdb chargé.

Synopsis de la classe

chdb {
/* Methodes */
__construct ( string $pathname )
public string get ( string $key )
}

chdb::__construct

(PECL chdb >= 0.1.0)

chdb::__constructCrée une nouvelle instance chdb

Description

chdb::__construct ( string $pathname )

Charge un fichier chdb, en le mappant en mémoire.

Note:

Bien que quelques vérifications sont effectuées sur le fichier spécifié, elles le sont surtout pour éviter les erreurs courantes (par exemple, charger un fichier qui n'est pas une base de données chdb, ou bien un fichier qui n'est pas compatible avec le système courant). Un fichier chdb construit de manière malveillante peut être dangereux s'il est chargé, aussi, les fichiers chdb doivent être partagés et traités avec les mêmes protections utilisées pour les bibliothèques partagées PHP.

Liste de paramètres

pathname

Le nom du fichier à charger.

Erreurs / Exceptions

Lance une exception si le fichier chdb n'a pu être chargé avec succès.

Note:

Un fichier chdb valide peut ne pas être chargé s'il a été créé sur une architecture avec un endian différent, avec une version de chdb différente, ou si le fichier est trop gros pour être mappé en mémoire (dans le cas de gros fichier sur les architectures 32-bit). Dans ces cas, le chargement échoue en lançant une exception, mais sans effectuer d'opération illégale.



chdb::get

(PECL chdb >= 0.1.0)

chdb::getRécupère la valeur associée à une clé

Description

public string chdb::get ( string $key )

Récupère la valeur associée avec une clé depuis la base de données chdb.

Liste de paramètres

key

La clé dont nous voulons récupérer la valeur.

Valeurs de retour

Retourne une chaîne de caractères contenant la valeur associée avec le paramètre key fourni, ou NULL si la clé n'a pu être trouvée.

Exemples

Exemple #1 Exemple avec chdb::get()

<?php

$data 
= array(
    
'key1' => 'value1',
    
'key2' => 'value2',
    
// ...
);
chdb_create('data.chdb'$data);

$chdb = new chdb('data.chdb');
$value1 $chdb->get('key1');
$value2 $chdb->get('key2');

echo 
$value1PHP_EOL;
echo 
$value2PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

value1
value2

Sommaire



Fonctions chdb


chdb_create

(PECL chdb >= 0.1.0)

chdb_createCrée un fichier chdb

Description

bool chdb_create ( string $pathname , array $data )

chdb_create() crée un fichier chdb contenant les paires clé-valeur spécifiées.

Note:

Les fichiers chdb ne sont pas portables entre les environnements little-endian et big-endian. Mise à part cela, ils sont portables sur les différentes architectures. De plus, la compatibilité entre les différentes versions de chdb n'est pas garantie.

Liste de paramètres

pathname

Le nom du fichier à créer.

Si un fichier avec le même nom existe déjà, il sera écrasé.

data

Un tableau contenant les paires clé-valeur à stocker dans le fichier chdb.

Les valeurs et les clés sont convertis en chaîne de caractères avant d'être écrites dans le fichiers, vu que chdb ne supporte que les chaînes de caractères. Notez que les chaînes binaires sont également supportées, que ce soit comme clé ou comme valeur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception si le fichier chdb n'a pu être créé.

Exemples

Exemple #1 Exemple avec chdb_create()

<?php

$data 
= array(
    
'key1' => 'value1',
    
'key2' => 'value2',
    
// ...
);
chdb_create('data.chdb'$data);

?>

L'exemple ci-dessus génère un fichier chdb nommé data.chdb, contenant les paires clé-valeur définies dans la variable $data.


Sommaire




Bibliothèque d'URL client


Introduction

PHP supporte libcurl, une bibliothèque créée par Daniel Stenberg, qui vous permet de vous connecter et de communiquer avec différents types de serveurs, et ce, avec différents types de protocoles. libcurl supporte actuellement les protocoles http, https, ftp, gopher, telnet, DICT, file et LDAP. libcurl supporte également les certificats HTTPS, HTTP POST, HTTP PUT, le téléchargement FTP (ceci pouvant également être effectué via l'extension ftp de PHP), les formulaires de téléchargement HTTP, les serveurs mandataires (proxy), les cookies et l'identification utilisateur/mot de passe.

Ces fonctions ont été ajoutées en PHP 4.0.2.



Installation/Configuration

Sommaire


Pré-requis

Afin de pouvoir utiliser les fonctions cURL dans PHP, vous devez installer le paquet » libcurl. PHP requiert d'utiliser libcurl 7.0.2-beta ou supérieur. En PHP 4.2.3, vous devez utiliser libcurl version 7.9.0 ou supérieur. Depuis PHP 4.3.0, vous devez utiliser libcurl version 7.9.8 ou supérieur. PHP 5.0.0 requiert l'utilisation de libcurl version 7.10.5 ou supérieur.



Installation

Pour utiliser cURL depuis les scripts PHP, vous devez compiler celui-ci avec l'option --with-curl[=DIR] où DIR est le chemin jusqu'au dossier contenant les dossiers lib et include. Dans le dossier include, il doit se trouver un dossier appelé curl, qui contient notamment les fichiers easy.h et curl.h. Il doit aussi se trouver un fichier nommé libcurl.a dans le dossier lib. À partir de PHP 4.3.0, vous pouvez aussi configurer PHP pour qu'il utilise cURL comme gestionnaire d'URL avec l'option --with-curlwrappers .

Note: Note aux utilisateurs Win32
Afin d'activer ce module dans l'environnement Windows, libeay32.dll et ssleay32.dll doivent être présents dans votre PATH. Vous n'avez pas besoin de libcurl.dll du site cURL.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit 2 types de ressources : un gestionnaire cURL et un gestionnaire multiple cURL.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Une description ainsi que la façon dont on utilise ces constantes se trouvent dans la documentation des fonctions curl_setopt() et curl_getinfo().

CURLOPT_AUTOREFERER (entier)
Disponible depuis PHP 5.1.0
CURLOPT_COOKIESESSION (entier)
Disponible depuis PHP 5.1.0
CURLOPT_DNS_USE_GLOBAL_CACHE (entier)
CURLOPT_DNS_CACHE_TIMEOUT (entier)
CURLOPT_FTP_SSL (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_TRY (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_ALL (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_CONTROL (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_NONE (entier)
Disponible depuis PHP 5.2.0
CURLOPT_PRIVATE (entier)
Disponible depuis PHP 5.2.4
CURLOPT_FTPSSLAUTH (entier)
Disponible depuis PHP 5.1.0
CURLOPT_PORT (entier)
CURLOPT_FILE (entier)
CURLOPT_INFILE (entier)
CURLOPT_INFILESIZE (entier)
CURLOPT_URL (entier)
CURLOPT_PROXY (entier)
CURLOPT_VERBOSE (entier)
CURLOPT_HEADER (entier)
CURLOPT_HTTPHEADER (entier)
CURLOPT_NOPROGRESS (entier)
CURLOPT_NOBODY (entier)
CURLOPT_FAILONERROR (entier)
CURLOPT_UPLOAD (entier)
CURLOPT_POST (entier)
CURLOPT_FTPLISTONLY (entier)
CURLOPT_FTPAPPEND (entier)
CURLOPT_FTP_CREATE_MISSING_DIRS (entier)
CURLOPT_NETRC (entier)
CURLOPT_FOLLOWLOCATION (entier)
Cette constante n'est pas disponible lorsque open_basedir ou safe_mode est actif.
CURLOPT_FTPASCII (entier)
CURLOPT_PUT (entier)
CURLOPT_MUTE (entier)
CURLOPT_USERPWD (entier)
CURLOPT_PROXYUSERPWD (entier)
CURLOPT_RANGE (entier)
CURLOPT_TIMEOUT (entier)
CURLOPT_TIMEOUT_MS (entier)
CURLOPT_TCP_NODELAY (entier)
Disponible depuis PHP 5.2.1
CURLOPT_POSTFIELDS (entier)
CURLOPT_PROGRESSFUNCTION (entier)
Disponible depuis PHP 5.3.0
CURLOPT_REFERER (entier)
CURLOPT_USERAGENT (entier)
CURLOPT_FTPPORT (entier)
CURLOPT_FTP_USE_EPSV (entier)
CURLOPT_LOW_SPEED_LIMIT (entier)
CURLOPT_LOW_SPEED_TIME (entier)
CURLOPT_RESUME_FROM (entier)
CURLOPT_COOKIE (entier)
CURLOPT_SSLCERT (entier)
CURLOPT_SSLCERTPASSWD (entier)
CURLOPT_WRITEHEADER (entier)
CURLOPT_SSL_VERIFYHOST (entier)
CURLOPT_COOKIEFILE (entier)
CURLOPT_SSLVERSION (entier)
CURLOPT_TIMECONDITION (entier)
CURLOPT_TIMEVALUE (entier)
CURLOPT_CUSTOMREQUEST (entier)
CURLOPT_STDERR (entier)
CURLOPT_TRANSFERTEXT (entier)
CURLOPT_RETURNTRANSFER (entier)
CURLOPT_QUOTE (entier)
CURLOPT_POSTQUOTE (entier)
CURLOPT_INTERFACE (entier)
CURLOPT_KRB4LEVEL (entier)
CURLOPT_HTTPPROXYTUNNEL (entier)
CURLOPT_FILETIME (entier)
CURLOPT_WRITEFUNCTION (entier)
CURLOPT_READFUNCTION (entier)
CURLOPT_PASSWDFUNCTION (entier)
CURLOPT_HEADERFUNCTION (entier)
CURLOPT_MAXREDIRS (entier)
CURLOPT_MAXCONNECTS (entier)
CURLOPT_CLOSEPOLICY (entier)
CURLOPT_FRESH_CONNECT (entier)
CURLOPT_FORBID_REUSE (entier)
CURLOPT_RANDOM_FILE (entier)
CURLOPT_EGDSOCKET (entier)
CURLOPT_CONNECTTIMEOUT (entier)
CURLOPT_CONNECTTIMEOUT_MS (entier)
CURLOPT_SSL_VERIFYPEER (entier)
CURLOPT_CAINFO (entier)
CURLOPT_CAPATH (entier)
CURLOPT_COOKIEJAR (entier)
CURLOPT_SSL_CIPHER_LIST (entier)
CURLOPT_BINARYTRANSFER (entier)
CURLOPT_NOSIGNAL (entier)
CURLOPT_PROXYTYPE (entier)
CURLOPT_BUFFERSIZE (entier)
CURLOPT_HTTPGET (entier)
CURLOPT_HTTP_VERSION (entier)
CURLOPT_SSLKEY (entier)
CURLOPT_SSLKEYTYPE (entier)
CURLOPT_SSLKEYPASSWD (entier)
CURLOPT_SSLENGINE (entier)
CURLOPT_SSLENGINE_DEFAULT (entier)
CURLOPT_SSLCERTTYPE (entier)
CURLOPT_CRLF (entier)
CURLOPT_ENCODING (entier)
CURLOPT_PROXYPORT (entier)
CURLOPT_UNRESTRICTED_AUTH (entier)
CURLOPT_FTP_USE_EPRT (entier)
CURLOPT_HTTP200ALIASES (entier)
CURLOPT_HTTPAUTH (entier)
CURLAUTH_BASIC (entier)
CURLAUTH_DIGEST (entier)
CURLAUTH_GSSNEGOTIATE (entier)
CURLAUTH_NTLM (entier)
CURLAUTH_ANY (entier)
CURLAUTH_ANYSAFE (entier)
CURLOPT_PROXYAUTH (entier)
CURLCLOSEPOLICY_LEAST_RECENTLY_USED (entier)
CURLCLOSEPOLICY_LEAST_TRAFFIC (entier)
CURLCLOSEPOLICY_SLOWEST (entier)
CURLCLOSEPOLICY_CALLBACK (entier)
CURLCLOSEPOLICY_OLDEST (entier)
CURLINFO_PRIVATE (entier)
Disponible depuis PHP 5.2.4
CURLINFO_EFFECTIVE_URL (entier)
CURLINFO_HTTP_CODE (entier)
CURLINFO_HEADER_OUT (entier)
Disponible depuis PHP 5.1.3
CURLINFO_HEADER_SIZE (entier)
CURLINFO_REQUEST_SIZE (entier)
CURLINFO_TOTAL_TIME (entier)
CURLINFO_NAMELOOKUP_TIME (entier)
CURLINFO_CONNECT_TIME (entier)
CURLINFO_PRETRANSFER_TIME (entier)
CURLINFO_SIZE_UPLOAD (entier)
CURLINFO_SIZE_DOWNLOAD (entier)
CURLINFO_SPEED_DOWNLOAD (entier)
CURLINFO_SPEED_UPLOAD (entier)
CURLINFO_FILETIME (entier)
CURLINFO_SSL_VERIFYRESULT (entier)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (entier)
CURLINFO_CONTENT_LENGTH_UPLOAD (entier)
CURLINFO_STARTTRANSFER_TIME (entier)
CURLINFO_CONTENT_TYPE (entier)
CURLINFO_REDIRECT_TIME (entier)
CURLINFO_REDIRECT_COUNT (entier)
CURL_TIMECOND_IFMODSINCE (entier)
CURL_TIMECOND_IFUNMODSINCE (entier)
CURL_TIMECOND_LASTMOD (entier)
CURL_VERSION_IPV6 (entier)
CURL_VERSION_KERBEROS4 (entier)
CURL_VERSION_SSL (entier)
CURL_VERSION_LIBZ (entier)
CURLVERSION_NOW (entier)
CURLE_OK (entier)
CURLE_UNSUPPORTED_PROTOCOL (entier)
CURLE_FAILED_INIT (entier)
CURLE_URL_MALFORMAT (entier)
CURLE_URL_MALFORMAT_USER (entier)
CURLE_COULDNT_RESOLVE_PROXY (entier)
CURLE_COULDNT_RESOLVE_HOST (entier)
CURLE_COULDNT_CONNECT (entier)
CURLE_FTP_WEIRD_SERVER_REPLY (entier)
CURLE_FTP_ACCESS_DENIED (entier)
CURLE_FTP_USER_PASSWORD_INCORRECT (entier)
CURLE_FTP_WEIRD_PASS_REPLY (entier)
CURLE_FTP_WEIRD_USER_REPLY (entier)
CURLE_FTP_WEIRD_PASV_REPLY (entier)
CURLE_FTP_WEIRD_227_FORMAT (entier)
CURLE_FTP_CANT_GET_HOST (entier)
CURLE_FTP_CANT_RECONNECT (entier)
CURLE_FTP_COULDNT_SET_BINARY (entier)
CURLE_PARTIAL_FILE (entier)
CURLE_FTP_COULDNT_RETR_FILE (entier)
CURLE_FTP_WRITE_ERROR (entier)
CURLE_FTP_QUOTE_ERROR (entier)
CURLE_HTTP_NOT_FOUND (entier)
CURLE_WRITE_ERROR (entier)
CURLE_MALFORMAT_USER (entier)
CURLE_FTP_COULDNT_STOR_FILE (entier)
CURLE_READ_ERROR (entier)
CURLE_OUT_OF_MEMORY (entier)
CURLE_OPERATION_TIMEOUTED (entier)
CURLE_FTP_COULDNT_SET_ASCII (entier)
CURLE_FTP_PORT_FAILED (entier)
CURLE_FTP_COULDNT_USE_REST (entier)
CURLE_FTP_COULDNT_GET_SIZE (entier)
CURLE_HTTP_RANGE_ERROR (entier)
CURLE_HTTP_POST_ERROR (entier)
CURLE_SSL_CONNECT_ERROR (entier)
CURLE_FTP_BAD_DOWNLOAD_RESUME (entier)
CURLE_FILE_COULDNT_READ_FILE (entier)
CURLE_LDAP_CANNOT_BIND (entier)
CURLE_LDAP_SEARCH_FAILED (entier)
CURLE_LIBRARY_NOT_FOUND (entier)
CURLE_FUNCTION_NOT_FOUND (entier)
CURLE_ABORTED_BY_CALLBACK (entier)
CURLE_BAD_FUNCTION_ARGUMENT (entier)
CURLE_BAD_CALLING_ORDER (entier)
CURLE_HTTP_PORT_FAILED (entier)
CURLE_BAD_PASSWORD_ENTERED (entier)
CURLE_TOO_MANY_REDIRECTS (entier)
CURLE_UNKNOWN_TELNET_OPTION (entier)
CURLE_TELNET_OPTION_SYNTAX (entier)
CURLE_OBSOLETE (entier)
CURLE_SSL_PEER_CERTIFICATE (entier)
CURLE_GOT_NOTHING (entier)
CURLE_SSL_ENGINE_NOTFOUND (entier)
CURLE_SSL_ENGINE_SETFAILED (entier)
CURLE_SEND_ERROR (entier)
CURLE_RECV_ERROR (entier)
CURLE_SHARE_IN_USE (entier)
CURLE_SSL_CERTPROBLEM (entier)
CURLE_SSL_CIPHER (entier)
CURLE_SSL_CACERT (entier)
CURLE_BAD_CONTENT_ENCODING (entier)
CURLE_LDAP_INVALID_URL (entier)
CURLE_FILESIZE_EXCEEDED (entier)
CURLE_FTP_SSL_FAILED (entier)
CURLFTPAUTH_DEFAULT (entier)
Disponible depuis PHP 5.1.0
CURLFTPAUTH_SSL (entier)
Disponible depuis PHP 5.1.0
CURLFTPAUTH_TLS (entier)
Disponible depuis PHP 5.1.0
CURLPROXY_HTTP (entier)
CURLPROXY_SOCKS5 (entier)
CURL_NETRC_OPTIONAL (entier)
CURL_NETRC_IGNORED (entier)
CURL_NETRC_REQUIRED (entier)
CURL_HTTP_VERSION_NONE (entier)
CURL_HTTP_VERSION_1_0 (entier)
CURL_HTTP_VERSION_1_1 (entier)
CURLM_CALL_MULTI_PERFORM (entier)
CURLM_OK (entier)
CURLM_BAD_HANDLE (entier)
CURLM_BAD_EASY_HANDLE (entier)
CURLM_OUT_OF_MEMORY (entier)
CURLM_INTERNAL_ERROR (entier)
CURLMSG_DONE (entier)


Exemples

Sommaire


Une fois PHP compilé avec le support cURL, vous pouvez commencer à utiliser les fonctions cURL. La première des choses à faire est d'initialiser une session cURL avec la fonction curl_init(), puis, vous pouvez définir toutes vos options pour le transfert avec la fonction curl_setopt(), et enfin, vous pouvez exécuter la session avec curl_exec() et y mettre fin avec la fonction curl_close(). Voici un exemple qui utilise les fonctions cURL pour récupérer la page d'accueil du site example.com dans un fichier :

Exemple #1 Utilisation du module cURL pour récupérer la page d'accueil de example.com

<?php

$ch 
curl_init("http://www.example.com/");
$fp fopen("example_homepage.txt""w");

curl_setopt($chCURLOPT_FILE$fp);
curl_setopt($chCURLOPT_HEADER0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>




Fonctions cURL


curl_close

(PHP 4 >= 4.0.2, PHP 5)

curl_closeFerme une session CURL

Description

void curl_close ( resource $ch )

Ferme une session cURL et libère toutes les ressources réservées. L'identifiant cURL ch est aussi effacé.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Initialise une session cURL et récupère une page web

<?php
// création d'une nouvelle ressource cURL
$ch curl_init();

// configuration de l'URL et d'autres options
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADER0);

// récupération de l'URL et affichage sur le naviguateur
curl_exec($ch);

// fermeture de la session cURL
curl_close($ch);
?>

Voir aussi



curl_copy_handle

(PHP 5)

curl_copy_handleCopie une ressource cURL avec toutes ses préférences

Description

resource curl_copy_handle ( resource $ch )

Copie une ressource cURL, retournant une nouvelle ressource cURL avec les mêmes préférences.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne une nouvelle ressource cURL.

Exemples

Exemple #1 Copie d'une ressource cURL

<?php
// crée une nouvelle ressource cURL
$ch curl_init();

// assigne URL et autres options appropriées
curl_setopt($chCURLOPT_URL'http://www.example.com/');
curl_setopt($chCURLOPT_HEADER0);

// copie la ressource
$ch2 curl_copy_handle($ch);

// attrape l'URL (http://www.example.com/) et le passe au navigateur
curl_exec($ch2);

// ferme les ressources curl et libère les ressources systèmes
curl_close($ch2);
curl_close($ch);
?>



curl_errno

(PHP 4 >= 4.0.3, PHP 5)

curl_errnoRetourne le dernier message d'erreur cURL

Description

int curl_errno ( resource $ch )

Retourne le numéro d'erreur de la dernière opération cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le numéro de l'erreur ou 0 si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec curl_errno()

<?php
// Création d'un gestionnaire curl vers une URL inexistante
$ch curl_init('http://404.php.net/');

// Exécution
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_exec($ch);

// Vérifie si une erreur survient
if(curl_errno($ch))
{
    echo 
'Erreur Curl : ' curl_error($ch);
}

// Fermeture du gestionnaire
curl_close($ch);
?>

Voir aussi



curl_error

(PHP 4 >= 4.0.3, PHP 5)

curl_errorRetourne une chaîne contenant le dernier message d'erreur cURL

Description

string curl_error ( resource $ch )

Retourne un message clair représentant la dernière erreur cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le message d'erreur ou '' (chaîne vide) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec curl_error()

<?php
// Création d'un gestionnaire curl vers une URL inexistante
$ch curl_init('http://404.php.net/');
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);

if(
curl_exec($ch) === false)
{
    echo 
'Erreur Curl : ' curl_error($ch);
}
else
{
    echo 
'L\'opération s\'est terminée sans aucune erreur';
}

// Fermeture du gestionnaire
curl_close($ch);
?>

Voir aussi



curl_exec

(PHP 4 >= 4.0.2, PHP 5)

curl_execExécute une session cURL

Description

mixed curl_exec ( resource $ch )

Exécute la session cURL fournie.

Cette fonction doit être appelée après l'initialisation et le paramétrage d'une session cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Cependant, si l'option CURLOPT_RETURNTRANSFER est définie, la fonction retournera le résultat en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple #1 Récupère une page web

<?php
// Création d'une nouvelle ressource cURL
$ch curl_init();

// Configuration de l'URL et d'autres options
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADER0);

// Récupération de l'URL et affichage sur le naviguateur
curl_exec($ch);

// Fermeture de la session cURL
curl_close($ch);
?>

Voir aussi



curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfoLit les informations détaillant un transfert cURL

Description

mixed curl_getinfo ( resource $ch [, int $opt = 0 ] )

curl_getinfo() lit les informations concernant le transfert ch.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

opt

Ce paramètre peut prendre l'une des valeurs suivantes :

  • CURLINFO_EFFECTIVE_URL : dernière URL réelle
  • CURLINFO_HTTP_CODE : dernier code HTTP reçu
  • CURLINFO_FILETIME : date distante du document, et -1 si la date du document distant est inconnue.
  • CURLINFO_TOTAL_TIME : durée de la transaction en secondes pour le dernier transfert
  • CURLINFO_NAMELOOKUP_TIME : durée de résolution du nom de domaine en secondes
  • CURLINFO_CONNECT_TIME : durée d'établissement de la connexion en secondes
  • CURLINFO_PRETRANSFER_TIME : durée en secondes, entre le début de la transaction et de début du transfert de fichiers
  • CURLINFO_STARTTRANSFER_TIME : durée en secondes jusqu'à ce que le premier octet soit sur le point d'être transféré
  • CURLINFO_REDIRECT_TIME : durée en secondes de toutes les étapes de redirection avant que la transaction finale ne soit débutée
  • CURLINFO_SIZE_UPLOAD : nombre total d'octets envoyés
  • CURLINFO_SIZE_DOWNLOAD : nombre total d'octets téléchargés
  • CURLINFO_SPEED_DOWNLOAD : vitesse moyenne de téléchargement
  • CURLINFO_SPEED_UPLOAD : vitesse moyenne d'envoi
  • CURLINFO_HEADER_SIZE : taille des en-têtes reçus
  • CURLINFO_HEADER_OUT : la chaîne de requête envoyée. Pour que cela fonctionne, appelez curl_setopt() avec l'option CURLINFO_HEADER_OUT.
  • CURLINFO_REQUEST_SIZE : taille totale des requêtes envoyées. Actuellement, uniquement pour les requêtes HTTP
  • CURLINFO_SSL_VERIFYRESULT : résultat de la vérification de la certification SSL demandée par CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD : taille du corps du téléchargement, lu dans l'en-tête Content-Length:
  • CURLINFO_CONTENT_LENGTH_UPLOAD : taille spécifiée de l'envoi.
  • CURLINFO_CONTENT_TYPE : Content-Type: du document demandé. NULL indique que le serveur n'a pas envoyé d'en-tête Content-Type:

Valeurs de retour

Si opt est fourni, la valeur retournée sera une chaîne. Sinon, ce sera un tableau associatif contenant les éléments suivants : (qui correspond à opt):

  • "url"
  • "content_type"
  • "http_code"
  • "header_size"
  • "request_size"
  • "filetime"
  • "ssl_verify_result"
  • "redirect_count"
  • "total_time"
  • "namelookup_time"
  • "connect_time"
  • "pretransfer_time"
  • "size_upload"
  • "size_download"
  • "speed_download"
  • "speed_upload"
  • "download_content_length"
  • "upload_content_length"
  • "starttransfer_time"
  • "redirect_time"
  • "certinfo"
  • "request_header" (Existe seulement si CURLINFO_HEADER_OUT est utilisé via un appel à curl_setopt())

Historique

Version Description
5.1.3 Ajout de CURLINFO_HEADER_OUT.

Exemples

Exemple #1 Exemple avec curl_getinfo()

<?php
// Création d'un gestionnaire curl
$ch curl_init('http://www.yahoo.com/');

// Exécution
curl_exec($ch);

// Vérification si une erreur est survenue
if(!curl_errno($ch))
{
 
$info curl_getinfo($ch);

 echo 
'La requête a mis ' $info['total_time'] . ' secondes à être envoyée à ' $info['url'];
}

// Fermeture du gestionnaire
curl_close($ch);
?>

Notes

Note:

Les informations founies par cette fonction sont conservées si la connexion est réutilisée. La donnée précédemment utilisée est donc retournée à moins que celle-ci ne soit écrasée en interne entre temps.



curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_initInitialise une session cURL

Description

resource curl_init ([ string $url = NULL ] )

Initialise une nouvelle session et retourne un identifiant de session cURL à utiliser avec les fonctions curl_setopt(), curl_exec() et curl_close().

Liste de paramètres

url

Si fourni, alors CURLOPT_URL prendra cette valeur. Vous pouvez manuellement fixer cette valeur avec la fonction curl_setopt().

Valeurs de retour

Retourne une session cURL en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Initialiser une session cURL et récupérer une page web

<?php
// initialisation de la session
$ch curl_init();

// configuration des options
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADER0);

// exécution de la session
curl_exec($ch);

// fermeture des ressources
curl_close($ch);
?>

Voir aussi



curl_multi_add_handle

(PHP 5)

curl_multi_add_handleAjoute une ressource cURL à un cURL multiple

Description

int curl_multi_add_handle ( resource $mh , resource $ch )

Ajoute la session ch au gestionnaire multiple mh

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne 0 en cas de succès, ou un des codes erreurs CURLM_XXX.

Exemples

Exemple #1 Exemple avec curl_multi_add_handle()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute en parallèle.

<?php
// Création des ressources cURL
$ch1 curl_init();
$ch2 curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1CURLOPT_URL"http://www.example.com/");
curl_setopt($ch1CURLOPT_HEADER0);
curl_setopt($ch2CURLOPT_URL"http://www.php.net/");
curl_setopt($ch2CURLOPT_HEADER0);

// Création du gestionnaire multiple
$mh curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
// Exécute le gestionnaire
do {
    
curl_multi_exec($mh,$running);
} while(
$running 0);

// Ferme tous les gestionnaires
curl_multi_remove_handle($mh$ch1);
curl_multi_remove_handle($mh$ch2);
curl_multi_close($mh);
?>

Voir aussi



curl_multi_close

(PHP 5)

curl_multi_closeTermine un jeu de sessions cURL

Description

void curl_multi_close ( resource $mh )

Ferme un jeu de gestionnaires cURL.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec curl_multi_close()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute en parallèle.

<?php
// Création des ressources
$ch1 curl_init();
$ch2 curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1CURLOPT_URL"http://www.example.com/");
curl_setopt($ch1CURLOPT_HEADER0);
curl_setopt($ch2CURLOPT_URL"http://www.php.net/");
curl_setopt($ch2CURLOPT_HEADER0);

// Création du gestionnaire cURL multiple
$mh curl_multi_init();

// Ajout des deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
// Exécute le gestionnaire
do {
    
curl_multi_exec($mh,$running);
} while (
$running 0);
// Ferme les gestionnaires
curl_multi_remove_handle($mh$ch1);
curl_multi_remove_handle($mh$ch2);
curl_multi_close($mh);

?>

Voir aussi



curl_multi_exec

(PHP 5)

curl_multi_execExécute les sous-requêtes de la session cURL

Description

int curl_multi_exec ( resource $mh , int &$still_running )

Exécute chaque gestionnaire de la pile. Cette méthode peut être appelée même si un gestionnaire à besoin de lire ou d'écrire des données.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

still_running

Une référence à un drapeau, qui annonce si les opérations sont toujours en cours.

Valeurs de retour

Un code cURL, défini dans les constantes prédéfinies cURL.

Note:

Cette fonction retourne que des erreurs au regard de la pile. Des problèmes surviennent toujours sur des transferts individuels même lorsque cette fonction retourne CURLM_OK.

Exemples

Exemple #1 Exemple avec curl_multi_exec()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute en parallèle.

<?php
// Création des ressources cURL
$ch1 curl_init();
$ch2 curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1CURLOPT_URL"http://lxr.php.net/");
curl_setopt($ch1CURLOPT_HEADER0);
curl_setopt($ch2CURLOPT_URL"http://www.php.net/");
curl_setopt($ch2CURLOPT_HEADER0);

// Création du gestionnaire multiple
$mh curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$active null;
// Exécute le gestionnaire
do {
    
$mrc curl_multi_exec($mh$active);
} while (
$mrc == CURLM_CALL_MULTI_PERFORM);

while (
$active && $mrc == CURLM_OK) {
    if (
curl_multi_select($mh) != -1) {
        do {
            
$mrc curl_multi_exec($mh$active);
        } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

// Ferme les gestionnaires
curl_multi_remove_handle($mh$ch1);
curl_multi_remove_handle($mh$ch2);
curl_multi_close($mh);

?>

Voir aussi



curl_multi_getcontent

(PHP 5)

curl_multi_getcontentRetourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER

Description

string curl_multi_getcontent ( resource $ch )

Si CURLOPT_RETURNTRANSFER est une option définie pour un gestionnaire spécifique, alors cette fonction retournera le contenu de ce gestionnaire cURL, sous la forme d'une chaîne de caractères.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le contenu du gestionnaire cURL, si CURLOPT_RETURNTRANSFER est défini.

Voir aussi



curl_multi_info_read

(PHP 5)

curl_multi_info_readLit les informations sur les transferts actuels

Description

array curl_multi_info_read ( resource $mh [, int &$msgs_in_queue = NULL ] )

Appel le gestionnaire multiple s'il y a des messages ou des informations issus des transferts individuels. Les messages peuvent inclure des informations comme un code erreur du transfert, ou juste le fait que le transfert est terminé.

Les appels répétés à cette fonction retournera un nouveau résultat à chaque fois, tant que FALSE n'est pas retourné, indiquant qu'il n'y a plus rien à récupérer pour le moment. L'entier présent dans le paramètre msgs_in_queue représente le nombre de messages restant une fois cette fonction appelée.

Avertissement

Les données pointées par la ressource retournée, ne survivront pas à l'appel de la fonction curl_multi_remove_handle().

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

msgs_in_queue

Nombre de messages encore présents dans la file d'attente

Valeurs de retour

Retourne un tableau associatif contenant le message en cas de succès, FALSE si une erreur survient.

Contenu du tableau retourné
Key: Value:
msg La constante CURLMSG_DONE. Les autres valeurs retournées sont actuellement non disponibles.
result Une des constantes CURLE_*. Si tout s'est bien déroulé, la constante CURLE_OK sera retournée.
handle Ressource de type curl indiquant le gestionnaire concerné.

Exemples

Exemple #1 Exemple avec curl_multi_info_read()

<?php

$urls 
= array(
   
"http://www.cnn.com/",
   
"http://www.bbc.co.uk/",
   
"http://www.yahoo.com/"
);

$mh curl_multi_init();

foreach (
$urls as $i => $url) {
    
$conn[$i] = curl_init($url);
    
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER1);
    
curl_multi_add_handle($mh$conn[$i]);
}

do {
    
$status curl_multi_exec($mh$active);
    
$info curl_multi_info_read($mh);
    if (
false !== $info) {
        
var_dump($info);
    }
} while (
$status === CURLM_CALL_MULTI_PERFORM || $active);

foreach (
$urls as $i => $url) {
    
$res[$i] = curl_multi_getcontent($conn[$i]);
    
curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)

Historique

Version Description
5.2.0 Le paramètre msgs_in_queue a été ajouté.

Voir aussi



curl_multi_init

(PHP 5)

curl_multi_initRetourne un nouveau cURL multiple

Description

resource curl_multi_init ( void )

Autorise l'exécution de multiples gestionnaires cURL en parallèle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un gestionnaire cURL multiple en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec curl_multi_init()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute en parallèle.

<?php
// Création des ressources cURL
$ch1 curl_init();
$ch2 curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1CURLOPT_URL"http://www.example.com/");
curl_setopt($ch1CURLOPT_HEADER0);
curl_setopt($ch2CURLOPT_URL"http://www.php.net/");
curl_setopt($ch2CURLOPT_HEADER0);

// Création du gestionnaire multiple cURL
$mh curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
// Exécute le gestionnaire
do {
    
usleep(10000);
    
curl_multi_exec($mh,$running);
} while (
$running 0);

// Ferme les gestionnaires
curl_multi_remove_handle($mh$ch1);
curl_multi_remove_handle($mh$ch2);
curl_multi_close($mh);

?>

Voir aussi



curl_multi_remove_handle

(PHP 5)

curl_multi_remove_handleRetire un cURL multiple d'un jeu de cURL

Description

int curl_multi_remove_handle ( resource $mh , resource $ch )

Retire un gestionnaire ch donné du gestionnaire mh. Lorsque le gestionnaire ch a été retiré, il est de nouveau parfaitement correct d'exécuter la fonction curl_exec() sur ce gestionnaire. Le fait de retirer le gestionnaire ch en cours d'utilisation stoppe tous les transferts en cours.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne un gestionnaire cURL en cas de succès, FALSE si une erreur survient.

Voir aussi



curl_multi_select

(PHP 5)

curl_multi_selectAttend une activité sur n'importe quelle connexion curl_multi

Description

int curl_multi_select ( resource $mh [, float $timeout = 1.0 ] )

Patiente tant qu'il y a de l'activité sur une des connexions curl_multi.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

timeout

Durée maximale, en secondes, à attendre une réponse.

Valeurs de retour

Retourne le nombre de sockets contenues dans le jeu de sockets, en cas de succès. En cas d'échec, la fonction retournera -1 sur un échec de sélection ou lors d'un dépassement du délai d'attente (depuis l'appel du sous système de sélection).

Voir aussi



curl_setopt_array

(PHP 5 >= 5.1.3)

curl_setopt_arrayFixe plusieurs options pour un transfert cURL

Description

bool curl_setopt_array ( resource $ch , array $options )

Fixe plusieurs options pour une session cURL. Cette fonction est utile pour configurer un grand nombre d'options cURL sans appeler à chaque fois curl_setopt().

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

options

Un tableau spécifiant quelles options à fixer avec leurs valeurs. Les clés devraient être des constantes valides de curl_setopt() ou leur entier équivalent.

Valeurs de retour

Retourne TRUE si toutes les options ont été fixées correctement. Si une option ne peut pas être fixée correctement, FALSE est retourné immédiatement, en ignorant toutes les options futures dans le tableau options.

Exemples

Exemple #1 Initialisation d'une nouvelle session cURL et récupération d'une page web

<?php
// crée une nouvelle ressource cURL
$ch curl_init();

// fixe l'URL et les autres options appropriées
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 
CURLOPT_HEADER => false
                
);

curl_setopt_array($ch$options);

// attrape l'URL et la passe au navigateur
curl_exec($ch);

// ferme la ressource cURL et libère les ressources systèmes
curl_close($ch);
?>

Avant PHP 5.1.3, cette fonction peut être simulée avec :

Exemple #2 Notre propre implémentation de la fonction curl_setopt_array()

<?php
if (!function_exists('curl_setopt_array')) {
   function 
curl_setopt_array(&$ch$curl_options)
   {
       foreach (
$curl_options as $option => $value) {
           if (!
curl_setopt($ch$option$value)) {
               return 
false;
           }
       }
       return 
true;
   }
}
?>

Notes

Note:

Avec la fonction curl_setopt(), le fait de passer un tableau comme valeur de la constante CURLOPT_POST fera que les données seront encodées comme multipart/form-data, tandis que le fait de passer une chaîne encodée URL fera que les données seront encodées comme application/x-www-form-urlencoded.

Voir aussi



curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setoptDéfinit une option de transmission cURL

Description

bool curl_setopt ( resource $ch , int $option , mixed $value )

curl_setopt() définit l'option de transfert cURL option, avec la valeur value pour la requête ch.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

option

L'option CURLOPT_XXX à définir.

value

La valeur à définir pour option.

value doit être un bool pour les valeurs suivantes du paramètre option :

Option Définissez le paramètre value à Notes
CURLOPT_AUTOREFERER TRUE pour spécifier automatiquement le champ Referer: dans les requêtes où une redirection Location: suit.
CURLOPT_BINARYTRANSFER TRUE pour retourner les données brutes (données binaires) lorsque CURLOPT_RETURNTRANSFER est utilisé.
CURLOPT_COOKIESESSION TRUE pour marquer ceci comme un nouveau cookie "session". Cela forcera libcurl à ignorer tous les cookies qui sont prêts à être chargés qui sont des "cookies de session" provenant des sessions antérieures. Par défaut, libcurl enregistre et charge toujours tous les cookies, indépendamment s'ils sont des cookies de session ou pas. Les cookies de session sont des cookies sans date d'expiration et existeront que pour cette "session" seulement.
CURLOPT_CERTINFO TRUE pour sortir les informations de certification SSL vers STDERR pour les transferts sécurisés. Disponible depuis PHP 5.3.2. Requière CURLOPT_VERBOSE d'être activé.
CURLOPT_CRLF TRUE pour convertir les nouvelles lignes Unix en nouvelles lignes CRLF pendant le transfert.
CURLOPT_DNS_USE_GLOBAL_CACHE TRUE pour utiliser un cache DNS global. Cette option n'est pas compatible avec les threads et est activée par défaut.
CURLOPT_FAILONERROR TRUE pour que PHP traite silencieusement les codes HTTP supérieurs ou égaux à 400. Le comportement par défaut est de retourner la page normalement, en ignorant ce code.
CURLOPT_FILETIME TRUE pour tenter de récupérer la date de modification du document distant. Vous pouvez également retrouver cette valeur en utilisant l'option CURLINFO_FILETIME avec curl_getinfo().
CURLOPT_FOLLOWLOCATION TRUE pour suivre toutes les en-têtes "Location: " que le serveur envoie dans les en-têtes HTTP (notez que cette fonction est récursive et que PHP suivra toutes les en-têtes "Location: " qu'il trouvera à moins que CURLOPT_MAXREDIRS ne soit définie).
CURLOPT_FORBID_REUSE TRUE pour forcer la connexion à se fermer explicitement lorsque le processus est terminé et ne sera pas mise en cache pour être réutilisée.
CURLOPT_FRESH_CONNECT TRUE pour forcer à utiliser une nouvelle connexion au lieu de celle en cache.
CURLOPT_FTP_USE_EPRT TRUE pour utiliser EPRT (et LPRT) lors de l'activation des téléchargements FTP. Utilisez FALSE pour désactiver EPRT et LPRT et ainsi, n'utiliser que PORT.
CURLOPT_FTP_USE_EPSV TRUE pour tenter tout d'abord une commande EPSV pour les transferts FTP avant de revenir à une commande PASV. Définissez cette option à FALSE pour désactiver EPSV.
CURLOPT_FTPAPPEND TRUE pour que PHP ajoute les informations au fichier distant, plutôt que de l'écraser.
CURLOPT_FTPASCII Un alias de CURLOPT_TRANSFERTEXT. Utilisez celui-là à la place.
CURLOPT_FTPLISTONLY TRUE pour ne lister que les noms d'un dossier FTP.
CURLOPT_HEADER TRUE pour inclure l'en-tête dans la valeur de retour.
CURLINFO_HEADER_OUT TRUE pour suivre la chaîne de requête handle. Disponible depuis PHP 5.1.3. Le préfixe CURLINFO_ est intentionnel.
CURLOPT_HTTPGET TRUE pour réinitialiser la méthode de requête HTTP à GET. Sachant que GET est la valeur par défaut, cela n'est uniquement nécessaire que si la méthode de requête a été changée.
CURLOPT_HTTPPROXYTUNNEL TRUE pour effectuer un tunnel à travers un proxy HTTP.
CURLOPT_MUTE TRUE pour que PHP soit totalement silencieux concernant toutes les fonctions cURL.
CURLOPT_NETRC TRUE pour que PHP analyse votre fichier ~./netrc et utilise votre nom de compte et mot de passe sur le site distant que vous souhaitez contacter.
CURLOPT_NOBODY TRUE pour que le corps du transfert ne soit pas inclus dans la valeur de retour. La méthode de demande est définie à HEAD. Le fait de modifier cette option à la valeur FALSE ne modifie pas la méthode GET.
CURLOPT_NOPROGRESS

TRUE pour désactiver la barre de progression des transferts cURL.

Note:

PHP définit automatiquement cette option à TRUE. Ne changez cette valeur que le temps du déboguage.

CURLOPT_NOSIGNAL TRUE pour ignorer toutes les fonctions cURL qui cause l'envoi d'un signal au processus PHP. Activée par défaut dans les SAPI multithreadés, les options d'expiration peut toujours être utilisées. Ajouté dans cURL 7.10.
CURLOPT_POST TRUE pour que PHP fasse un HTTP POST. Un POST est un encodage normal application/x-www-from-urlencoded, utilisé couramment par les formulaires HTML.
CURLOPT_PUT TRUE pour que le chargement se fasse par HTTP PUT. Le fichier à charger doit être fixé avec les options CURLOPT_INFILE et CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER TRUE retourne directement le transfert sous forme de chaîne de la valeur retournée par curl_exec() au lieu de l'afficher directement.
CURLOPT_SSL_VERIFYPEER FALSE pour arrêter CURL de vérifier le certificat. Les certificats alternatifs peuvent être spécifiés avec l'option CURLOPT_CAINFO (ajouté dans CURL 7.9.8) ou un répertoire de certificat peut être spécifié avec l'option CURLOPT_CAPATH. Tout comme CURL 7.10, CURL installe un paquet par défaut. CURLOPT_SSL_VERIFYHOST doit aussi être positionnée à 1 ou 0 si CURLOPT_SSL_VERIFYPEER est désactivée (par défaut à 2). TRUE par défaut depuis cURL 7.10. Paquet installé par défaut depuis cURL 7.10.
CURLOPT_TRANSFERTEXT TRUE pour utiliser le mode ASCII pour les transferts FTP. Pour LDAP, il récupère les données en texte plein au lieu d'HTML. Sur les systèmes Windows, STDOUT ne sera pas définie en mode binaire.
CURLOPT_UNRESTRICTED_AUTH TRUE pour garder l'envoi du nom de l'utilisateur ainsi que le mot de passe lorsque l'on suit les chemins (en utilisant CURLOPT_FOLLOWLOCATION), même si le nom d'hôte change.
CURLOPT_UPLOAD TRUE pour que PHP prépare un chargement.
CURLOPT_VERBOSE TRUE pour afficher tous les événements. Écrit la sortie sur STDERR ou dans le fichier spécifié en utilisant CURLOPT_STDERR.

value doit être un integer pour les valeurs suivantes du paramètres option :

Option Définissez le paramètre value à Notes
CURLOPT_BUFFERSIZE La taille du buffer à utiliser pour chaque lecture. Cependant, il n'y a aucune garantie que cette requête soit accomplie. Ajouté en cURL 7.10.
CURLOPT_CLOSEPOLICY Soit CURLCLOSEPOLICY_LEAST_RECENTLY_USED, soit CURLCLOSEPOLICY_OLDEST. Il y a trois autres constantes CURLCLOSEPOLICY_ mais CURL ne les supporte pas encore.
CURLOPT_CONNECTTIMEOUT Le nombre de secondes à attendre durant la tentative de connexion. Utilisez 0 pour attendre indéfiniment.
CURLOPT_CONNECTTIMEOUT_MS Le nombre de millisecondes à entendre durant la tentative de connexion. Utilisez 0 pour attendre indéfiniment. Si libcurl est construit pour utiliser le système standard de résolution de noms, cette partie de la connexion utilisera toujours la seconde résolution pour le délai d'attente maximal avec un délai d'attente maximal minimum autorisé d'une seconde. Ajouté en cURL 7.16.2. Disponible depuis PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT Le temps en seconde que CURL doit conserver les entrées DNS en mémoire. Cette option est définie à 120 secondes (2 minutes) par défaut.
CURLOPT_FTPSSLAUTH La méthode d'identification FTP, lorsqu'elle est activée : CURLFTPAUTH_SSL (tente SSL en premier), CURLFTPAUTH_TLS (tente TLS en premier) ou CURLFTPAUTH_DEFAULT (laisse cURL décider). Ajouté en cURL 7.12.2.
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE (défaut, laisse cURL décider la version à utiliser), CURL_HTTP_VERSION_1_0 (force HTTP/1.0), ou CURL_HTTP_VERSION_1_1 (force HTTP/1.1).
CURLOPT_HTTPAUTH

La méthode d'identification HTTP à utiliser. Ces options sont : CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY et CURLAUTH_ANYSAFE.

Vous pouvez utiliser le séparateur | ou un opérateur pour combiner plus d'une méthode. Si vous faites cela, CURL interrogera le serveur pour voir quelles sont les méthodes supportées et prendra la meilleur.

CURLAUTH_ANY est un alias pour CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE est un alias pour CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE La taille attendue, en octets, du fichier lors du téléchargement d'un fichier depuis un site distant. Notez que l'utilisation de cette option n'arrêtera pas libcurl d'envoyer de plus de données, de la même façon que ce qui est envoyé dépend de l'option CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT La vitesse de transfert minimale en octets par secondes en dessous de laquelle, et pendant CURLOPT_LOW_SPEED_TIME secondes, PHP considérera qu'elle est trop lente, et annulera le transfert.
CURLOPT_LOW_SPEED_TIME Le temps en secondes, pendant lequel si le transfert reste en dessous de CURLOPT_LOW_SPEED_LIMIT, PHP considérera que la connexion est trop lente, et l'annulera.
CURLOPT_MAXCONNECTS Le nombre maximal de connexions persistantes autorisées. Lorsque la limite est atteinte, l'option CURLOPT_CLOSEPOLICY est utilisé pour afficher les connexions fermées.
CURLOPT_MAXREDIRS Le nombre maximal de redirections HTTP à suivre. Utilisez cette option avec l'option CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT Le numéro du port de connexion, à la place de la valeur par défaut utilisée par le protocole.
CURLOPT_PROTOCOLS

Champ de bits de valeurs CURLPROTO_*. S'il est utilisé, ce champ limite les protocoles qui peuvent être utilisés durant un transfert. Cela vous permet de limiter le nombre de protocoles utilisés par la libcurl, tout en la compilant avec un grand nombre d'entre eux. Par défaut, libcurl va accepter tous les protocoles qu'elle supporte. Voyez aussi CURLOPT_REDIR_PROTOCOLS.

Les options valides de protocoles sont : CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_ALL

Ajouté en cURL 7.19.4.
CURLOPT_PROXYAUTH La méthode d'identification HTTP à utiliser pour la connexion à un proxy. Utilisez la même méthode que celle décrite dans CURLOPT_HTTPAUTH. Pour une identification avec un proxy, seuls CURLAUTH_BASIC et CURLAUTH_NTLM sont actuellement supportés. Ajouté en CURL 7.10.7.
CURLOPT_PROXYPORT Le numéro du port du proxy à utiliser pour la connexion. Ce numéro de port peut également être défini dans l'option CURLOPT_PROXY.
CURLOPT_PROXYTYPE Soit CURLPROXY_HTTP (par défaut), soit CURLPROXY_SOCKS5. Ajouté en cURL 7.10.
CURLOPT_REDIR_PROTOCOLS Champ de bits de constantes CURLPROTO_*. S'il est utilisé, ce champ limite les protocoles que libcurl peut utiliser pour un transfert, après une redirection lorsque CURLOPT_FOLLOWLOCATION est actif. Cela permet de spécifier une sous-partie des protocoles compilés avec libcurl. Par défaut, libcurl va autoriser tous les protocoles, hormis FILE et SCP. C'est une différence importante avec les versions précédents la 7.19.4, qui suivaient inconditionnellement tous les protocoles supportés. Voyez aussi CURLOPT_PROTOCOLS pour connaître la liste des valeurs des constantes. Ajoutés en cURL 7.19.4.
CURLOPT_RESUME_FROM L'offset, en octets, à partir duquel vous voulez commencer le transfert.
CURLOPT_SSL_VERIFYHOST 1 pour vérifier l'existence d'un nom commun dans le certificat SSL. 2 pour vérifier l'existence d'un nom commun et vérifier qu'il correspond avec le nom d'hôte fourni.
CURLOPT_SSLVERSION La version de SSL (2 ou 3) à utiliser. Par défaut, PHP essayera de le déterminer lui-même, bien que dans certains cas, il vous faudra le faire manuellement.
CURLOPT_TIMECONDITION Comment CURLOPT_TIMEVALUE est traité. Utilisez CURL_TIMECOND_IFMODSINCE pour retourner la page uniquement si elle a été modifiée depuis le temps spécifié par CURLOPT_TIMEVALUE. Si elle n'a pas été modifiée, un en-tête HTTP "304 Not Modified" sera retourné en supposant que CURLOPT_HEADER vaut TRUE. Utilisez CURL_TIMECOND_IFUNMODSINCE pour faire l'inverse. CURL_TIMECOND_IFMODSINCE est par défaut.
CURLOPT_TIMEOUT Le temps maximum d'exécution de la fonction cURL.
CURLOPT_TIMEOUT_MS Le nombre maximal de millisecondes autorisé aux fonctions cURL pour l'exécution. Si libcurl est construit pour utiliser le système standard de résolution de noms, cette partie de la connexion utilisera toujours la seconde résolution pour le délai d'attente maximal avec un délai d'attente maximal minimum autorisé d'une seconde. Ajouté en cURL 7.16.2. Disponible depuis PHP 5.2.3.
CURLOPT_TIMEVALUE Le temps en secondes depuis le 1er janvier 1970. Cette valeur sera utilisée comme spécifié dans l'option CURLOPT_TIMECONDITION. Par défaut, CURL_TIMECOND_IFMODSINCE sera utilisée.

value doit être une chaîne pour les valeurs suivantes du paramètres option :

Option Définissez le paramètre value à Notes
CURLOPT_CAINFO Le nom d'un fichier contenant un ou plusieurs certificats pour vérifier la concordance. Cela n'a de sens que si vous l'utilisez en combinaison de l'option CURLOPT_SSL_VERIFYPEER. Nécessite un chemin absolu.
CURLOPT_CAPATH Un dossier qui contient les certificats. Utilisez cette option avec l'option CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE Le contenu de l'en-tête "Cookie: ", à transmettre dans l'en-tête HTTP. Notez que les cookies sont séparées par des points-virgule, suivi d'un d'espace (e.g., "fruit=pomme; couleur=rouge")
CURLOPT_COOKIEFILE Le nom du fichier contenant les données de cookie. Le fichier de cookie peut être au format Netscape, ou simplement des en-têtes HTTP écrits dans un fichier.
CURLOPT_COOKIEJAR Le nom de fichier pour y sauvegarder tous les cookies internes lorsque la connexion se ferme, par exemple après un appel à curl_close.
CURLOPT_CUSTOMREQUEST

Une méthode de requête qui sera utilisée à la place de "GET" ou "HEAD" lors des requêtes HTTP. Cette commande est pratique pour effectuer un "DELETE" ou une autre commande HTTP exotique. Les valeurs valides sont "GET", "POST", "CONNECT" et plus ; i.e. n'entrez pas une requête HTTP ici. Pour le moment, entrez "GET /index.html HTTP/1.0\r\n\r\n" serait incorrect.

Note:

N'utilisez pas cette commande sans vous assurer que le serveur l'accepte.

CURLOPT_EGDSOCKET Comme CURLOPT_RANDOM_FILE excepté que vous passez une chaîne qui contient un nom de fichier vers le socket Entropy Gathering Daemon.
CURLOPT_ENCODING Le contenu des en-têtes "Accept-Encoding: " et active le décodage de la réponse. Les encodages supportés sont "identity", "deflate" et "gzip". Si une chaîne vide "" est utilisé, un en-tête contenant tous les types d'encodage supportés est envoyé. Ajouté en cURL 7.10.
CURLOPT_FTPPORT La valeur qui sera utilisée pour récupérer l'adresse IP utilisée pour l'instruction FTP "PORT". L'instruction POST indique au serveur distant de se connecter à cette adresse IP. La chaîne peut être une adresse IP, un nom d'hôte, un nom d'interface réseau (sous UNIX), ou juste '-', pour utiliser les IP par défaut du système.
CURLOPT_INTERFACE Le nom de l'interface à utiliser. Cela peut être le nom d'une interface, une adresse IP ou encore le nom de l'hôte.
CURLOPT_KRB4LEVEL Le degré de sécurité KRB4 (Kerberos 4). Chacune des valeurs (dans l'ordre du plus petit au plus grand) suivantes sont valides : "clear", "safe", "confidential", "private".. Si la chaîne passée ne correspond pas à une de ces valeurs, la valeur "private" sera définie. Positionner cette valeur à NULL revient à désactiver la sécurité KRB4. Actuellement, la sécurité KRB4 fonctionne uniquement avec les transaction FTP.
CURLOPT_POSTFIELDS Toutes les données à passer lors d'une opération de HTTP POST. Pour envoyer un fichier, préfixez le nom du fichier avec un @ et utilisez le chemin complet. Le type de fichier peut être explicitement spécifié en faisant suivre le nom du fichier par le type au format ';type=mimetype'. Ce paramètre peut être passé sous la forme d'une chaîne encodée URL, comme 'para1=val1&para2=val2&...' ou sous la forme d'un tableau dont le nom du champ est la clé, et les données du champ la valeur. Si le paramètre value est un tableau, l'en-tête Content-Type sera définie à multipart/form-data. Depuis PHP 5.2.0, les fichiers utilisés dans cette fonction et préfixés par le symbole @ doivent être présents sous forme de tableau pour fonctionner.
CURLOPT_PROXY Le nom du proxy HTTP au tunnel qui le demande.
CURLOPT_PROXYUSERPWD Un nom d'utilisateur et un mot de passe formatés sous la forme "[username]:[password]" à utiliser pour la connexion avec le proxy.
CURLOPT_RANDOM_FILE Un nom de fichier à utiliser pour interroger le générateur de nombre aléatoire pour SSL.
CURLOPT_RANGE La plage de valeurs à récupérer sous la forme "X-Y", où les valeurs de X ou Y peuvent être omises. Le transfert HTTP supporte aussi plusieurs intervalles, séparés par des virgules : "X-Y,N-M".
CURLOPT_REFERER Le contenu de l'en-tête "Referer: " à utiliser dans une requête HTTP.
CURLOPT_SSL_CIPHER_LIST Une liste de chiffrements à utiliser avec SSL. Par exemple, RC4-SHA et TLSv1 sont des listes valides de chiffrements.
CURLOPT_SSLCERT Le nom de fichier du certificat, au format PEM.
CURLOPT_SSLCERTPASSWD Le mot de passe nécessaire pour utiliser le certificat CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE Le format de votre certificat. Les formats supportés sont "PEM" (par défaut), "DER", et "ENG". Ajouté en cURL 7.9.3.
CURLOPT_SSLENGINE L'identifiant pour le moteur de chiffrement de votre clé privée spécifié dans CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT L'identifiant pour le moteur de chiffrement utilisé pour les opérations de chiffrement asymétrique.
CURLOPT_SSLKEY Un nom de fichier contenant votre clé privée SSL.
CURLOPT_SSLKEYPASSWD

Le mot de passe secret utilisé par votre clé SSL privée spécifié dans CURLOPT_SSLKEY.

Note:

Du fait que cette option contient un mot de passe sensible, souvenez-vous de conserver le script PHP qui le contient en toute sécurité.

CURLOPT_SSLKEYTYPE Le type de votre clé SSL privée spécifié dans CURLOPT_SSLKEY. Les types de clé supportés sont "PEM" (par défaut), "DER", et "ENG".
CURLOPT_URL L'URL à récupérer. Vous pouvez aussi choisir cette valeur lors de l'appel à curl_init().
CURLOPT_USERAGENT Le contenu de l'en-tête "User-Agent: " à utiliser dans une requête HTTP.
CURLOPT_USERPWD Un nom d'utilisateur et un mot de passe formatés sous la forme "[username]:[password]" à utiliser pour la connexion.

value doit être un tableau pour les valeurs suivantes du paramètres option :

Option Définissez le paramètre value à Notes
CURLOPT_HTTP200ALIASES Un tableau de réponses HTTP 200 qui sera traité comme réponses valides et non comme des erreurs. Ajouté en CURL 7.10.3.
CURLOPT_HTTPHEADER Un tableau de champs d'en-têtes HTTP à définir, au format array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE Un tableau de commandes FTP à exécuter sur le serveur après que la requête FTP se soit exécutée.
CURLOPT_QUOTE Un tableau de commandes FTP à exécuter sur le serveur avant la requête FTP.

value doit être une ressource (utilisant fopen(), par exemple) pour les valeurs suivantes du paramètre option :

Option Définissez le paramètre value à
CURLOPT_FILE Le fichier où sera écrit le transfert. Par défaut, STDOUT (la fenêtre du navigateur).
CURLOPT_INFILE Le fichier lu par le transfert lors du chargement.
CURLOPT_STDERR Un chemin alternatif à utiliser pour afficher les erreurs au lieu de STDERR.
CURLOPT_WRITEHEADER Le fichier où sera écrit les parties d'en-tête du transfert.

value doit être une chaîne de caractères qui sera un nom valide de fonction de rappel pour les valeurs suivantes du paramètre option :

Option Définissez le paramètre value à
CURLOPT_HEADERFUNCTION Le nom d'une fonction de rappel qui prend deux paramètres. Le premier est la ressource CURL, le second, une chaîne contenant les données de l'en-tête à écrire. En utilisant cette fonction de rappel, il est de votre responsabilité de l'écriture des données de l'en-tête. Retourne le nombre d'octets écrits.
CURLOPT_PASSWDFUNCTION Le nom d'une fonction de rappel qui prend trois paramètres. Le premier est la ressource CURL, le second, une chaîne contenant un mot de passe de prompt et le troisième, est la longueur maximale du mot de passe. Retourne une chaîne contenant le mot de passe.
CURLOPT_PROGRESSFUNCTION Le nom de la fonction de rappel lorsque la fonction de rappel prend 3 paramètres. Le premier est la ressource cURL, le second est la ressource de description de fichier, et le troisième, est la longueur. Retourne la chaîne de caractères contenant les données.
CURLOPT_READFUNCTION Le nom d'une fonction de rappel où la fonction de rappel prend trois paramètres. Le premier est une ressource cURL, le second, une ressource de flux fournie à cURL via l'option CURLOPT_INFILE, et le troisième, la quantité maximale de données à lire. La fonction de rappel doit retourner une chaîne dont la taille est inférieure ou égale à la quantité de données demandées, habituellement en les lisant depuis la ressource de flux passée. Elle doit retourner une chaîne vide pour signaler la fin EOF.
CURLOPT_WRITEFUNCTION Le nom d'une fonction de rappel où la fonction de rappel prend deux paramètres. Le premier est la ressource CURL et le second, une chaîne contenant les données à écrire. En utilisant cette fonction de rappel, il devient de votre responsabilité d'écrire les données. Doit retourner le nombre exact d'octets écrits ou le transfert échouera avec une erreur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.10 Ajout de CURLOPT_PROTOCOLS et CURLOPT_REDIR_PROTOCOLS.
5.1.0 Ajout de CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH et CURLOPT_TIMECONDITION.
5.0.0 Ajout de CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE et CURLOPT_HTTP200ALIASES.

Exemples

Exemple #1 Initialisation d'une nouvelle session CURL et recherche d'une page Web

<?php
// Création d'une ressource cURL
$ch curl_init();

// Définition de l'URL et autres options appropriées
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADERfalse);

// Récupération de l'URL et passage au navigateur
curl_exec($ch);

// Fermeture de la ressource cURL et libération des ressources systèmes
curl_close($ch);
?>

Exemple #2 Télécharger un fichier sur un serveur

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch curl_init();

$data = array('name' => 'Foo''file' => '@/home/user/test.png');

curl_setopt($chCURLOPT_URL'http://localhost/upload.php');
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$data);

curl_exec($ch);
?>

L'exemple ci-dessus va afficher :

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)

Notes

Note:

Le fait de passer un tableau à la constante CURLOPT_POSTFIELDS encodera les données comme multipart/form-data, tandis que le fait de passer une chaîne encodée URL encodera les données comme application/x-www-form-urlencoded.

Voir aussi



curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_versionRetourne la version courante de cURL

Description

array curl_version ([ int $age = CURLVERSION_NOW ] )

Retourne des informations sur la version cURL.

Liste de paramètres

age

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

Indice Description de la valeur
version_number numéro de version cURL 24 bit
version numéro de version cURL, sous la forme d'une chaîne de caractères
ssl_version_number numéro de version OpenSSL 24 bit
ssl_version numéro de version OpenSSL, sous la forme d'une chaîne de caractères
libz_version numéro de version zlib, sous la forme d'une chaîne de caractères
host Informations sur l'hôte sur lequel cURL a été construit
age  
features Un masque de constantes CURL_VERSION_XXX
protocols Un tableau de noms de protocoles supportés par cURL

Exemples

Exemple #1 Exemple avec curl_version()

Cet exemple analyse les fonctionnalités disponibles dans la version courante de cURL en utilisant le masque 'features' retourné par la fonction curl_version().

<?php
// Récupère la version de cURL, sous la forme d'un tableau
$version curl_version();

// Voici les champs qui peuvent être utilisés
// afin de vérifier les fonctionnalités présentes dans cURL
$bitfields = Array(
             
'CURL_VERSION_IPV6'
             
'CURL_VERSION_KERBEROS4'
             
'CURL_VERSION_SSL'
             
'CURL_VERSION_LIBZ'
             
);


foreach(
$bitfields as $feature)
{
    echo 
$feature . ($version['features'] & constant($feature) ? ' présente' ' absente');
    echo 
PHP_EOL;
}
?>


Sommaire




Moniteur d'altération de fichiers


Introduction

FAM surveille les fichiers et les dossiers, notifiant les applications intéressées sur les modifications. Plus d'informations sur FAM sont disponibles sur » http://oss.sgi.com/projects/fam/.

Un script PHP peut spécifier une liste de fichiers à surveiller par FAM, en utilisant les fonctions fournies par cette extension.

Le processus FAM débute lors de la première connexion à une application utilisant FAM. Le processus se termine lorsque toutes les connexions ont été fermées.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Cette extension utilisent les fonctions de la bibliothèque » FAM, développé par SGI. Toutefois, vous devez installer la bibliothèque FAM.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/fam.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Il y a deux types de ressources utilisées par le module FAM. La première est la connexion au service FAM, retournée par la fonction fam_open(), et la seconde, une ressource de moniteur, retournée par les fonctions fam_monitor_XXX.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes d'événements FAM
Constante Description
FAMChanged (entier) Une valeur qui a été modifiée pour un fichier ou un dossier. Elle est accessible via fstat(1).
FAMDeleted (entier) Un fichier ou un dossier a été effacé.
FAMStartExecuting (entier) Un fichier exécutable a été lancé.
FAMStopExecuting (entier) Un fichier exécutable a fini de s'exécuter.
FAMCreated (entier) Un fichier a été créé dans un dossier.
FAMMoved (entier) Cet événement ne se produit jamais.
FAMAcknowledge (entier) Événement survenu en réponse à fam_cancel_monitor().
FAMExists (entier) Un événement survenu suite à une commande de surveillance d'un fichier ou d'un dossier. Lorsque le dossier est sous surveillance, un événement est généré pour ce dossier et tous ses fichiers.
FAMEndExist (entier) Un événement après le dernier événement.


Fonctions FAM


fam_cancel_monitor

(PHP 5 <= 5.0.5)

fam_cancel_monitorTermine le monitoring

Description

bool fam_cancel_monitor ( resource $fam , resource $fam_monitor )

Termine la surveillance d'une ressource.

De plus un événement FAMAcknowledge survient.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fam_close

(PHP 5 <= 5.0.5)

fam_closeFerme la connexion FAM

Description

void fam_close ( resource $fam )

Ferme une connexion au service FAM.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • fam_monitor_open()



fam_monitor_collection

(PHP 5 <= 5.0.5)

fam_monitor_collectionSurveille les changements d'une collection de fichiers dans un dossier

Description

resource fam_monitor_collection ( resource $fam , string $dirname , int $depth , string $mask )

Surveille une collection de fichiers dans le dossier spécifié.

Une événement FAM sera généré lorsque le statut d'un fichier changera. Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

dirname

Chemin vers le dossier contenant les fichiers à surveiller

depth

La profondeur maximale de recherche à partir de ce dossier

mask

Un masque restreignant les noms de fichier

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi



fam_monitor_directory

(PHP 5 <= 5.0.5)

fam_monitor_directorySurveiller les changements dans un dossier

Description

resource fam_monitor_directory ( resource $fam , string $dirname )

Surveiller un dossier et tous ses fichiers.

Un événement FAM sera généré à chaque fois que le statut du dossier (i.e. le résultat de la fonction stat() sur ce dossier) ou de son contenu (ie. le résultat de readdir()) changera.

Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

dirname

Chemin vers le dossier surveillé

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi



fam_monitor_file

(PHP 5 <= 5.0.5)

fam_monitor_fileSurveille un fichier régulier pour les changements

Description

resource fam_monitor_file ( resource $fam , string $filename )

Met en place le monitoring pour un fichier. Un événement FAM sera généré à chaque fois que le statut du fichier (i.e. le résultat de la fonction stat() sur ce fichier) changera.

Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

filename

Chemin vers le fichier surveillé

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi



fam_next_event

(PHP 5 <= 5.0.5)

fam_next_eventRetourne le prochain événement FAM en attente

Description

array fam_next_event ( resource $fam )

Retourne l'événement FAM suivant dans la file d'attente.

Cette fonction bloquera tant qu'un événement sera disponible, ce qui peut être vérifié en appelant fam_pending().

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Retourne un tableau contenant un code événement FAM dans l'entrée "code", le chemin vers le fichier ciblé dans l'entrée "filename" et optionnellement un nom d'hôte dans l'entrée "hostname".

Les codes événements possibles sont détaillés dans la partie constantes de cette section.

Voir aussi

  • fam_pending() - Vérifie si des événements FAM sont disponibles



fam_open

(PHP 5 <= 5.0.5)

fam_openOuvre une connexion vers le démon FAM

Description

resource fam_open ([ string $appname ] )

Ouvre une connexion vers le démon du service FAM.

Liste de paramètres

appname

chaîne de caractères identifiant l'application pour les journaux de logs.

Valeurs de retour

Retourne une ressource représentant une connexion à un service FAM en cas de succès, ou FALSE si une erreur survient.

Voir aussi



fam_pending

(PHP 5 <= 5.0.5)

fam_pendingVérifie si des événements FAM sont disponibles

Description

int fam_pending ( resource $fam )

Vérifie si des événements FAM sont disponibles.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Retourne une valeur différente de zéro si des évènements sont disponibles pour être récupérés avec fam_next_event().

Voir aussi



fam_resume_monitor

(PHP 5 <= 5.0.5)

fam_resume_monitorReprend un monitoring suspendu

Description

bool fam_resume_monitor ( resource $fam , resource $fam_monitor )

Reprend le monitoring d'une ressource précédemment suspendu avec fam_suspend_monitor().

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



fam_suspend_monitor

(PHP 5 <= 5.0.5)

fam_suspend_monitorSuspend temporairement le monitoring

Description

bool fam_suspend_monitor ( resource $fam , resource $fam_monitor )

fam_suspend_monitor() suspend temporairement le monitoring d'une ressource.

Le monitoring peut être repris par la suite à l'aide de fam_resume_monitor() sans avoir à en recréer un nouveau.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




FTP


Introduction

Les fonctions de cette extension implémentent l'accès au client à un serveur de fichier qui gère le protocole FTP comme défini dans la RFC » http://www.faqs.org/rfcs/rfc959. Cette extension permet un accès détaillé au serveur FTP fournissant un éventail de commandes pour vos scripts. Si vous voulez seulement lire ou écrire un fichier sur un serveur FTP, utilisez plutôt le gestionnaire ftp:// avec les fonctions de système de fichiers qui fournissent une interface simple et intuitive.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour activer le module FTP de votre configuration PHP, il faut utiliser l'option --enable-ftp .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension utilise une ressource représentant l'identifiant du lien de connexion FTP, retournée par la fonction ftp_connect() ou la fonction ftp_ssl_connect().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FTP_ASCII (entier)

FTP_TEXT (entier)

FTP_BINARY (entier)

FTP_IMAGE (entier)

FTP_TIMEOUT_SEC (entier)

Voir ftp_set_option() pour les détails.

Les constantes suivantes ont été introduites en PHP 4.3.0.

FTP_AUTOSEEK (entier)

Voir ftp_set_option() pour les détails.

FTP_AUTORESUME (entier)

Détermine automatiquement la position de reprise (RESUME) et la position de début pour les requêtes GET et PUT (ne fonctionne qu'avec FTP_AUTOSEEK)

FTP_FAILED (entier)

Le mode asynchrone a échoué

FTP_FINISHED (entier)

Le mode asynchrone a terminé

FTP_MOREDATA (entier)

Le mode asynchrone est encore actif



Exemples

Sommaire


Exemple #1 Exemple avec FTP

<?php
// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
    echo 
"La connexion FTP a échoué !";
    echo 
"Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name";
    exit;
} else {
    echo 
"Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
}

// Chargement d'un fichier
$upload ftp_put($conn_id$destination_file$source_fileFTP_BINARY); 

// Vérification du status du chargement
if (!$upload) {
    echo 
"Le chargement FTP a échoué!";
} else {
    echo 
"Chargement de $source_file vers $ftp_server en tant que $destination_file";
}

// Fermeture du flux FTP
ftp_close($conn_id);
?>




Fonctions FTP


ftp_alloc

(PHP 5)

ftp_allocAlloue de l'espace pour un téléchargement de fichier

Description

bool ftp_alloc ( resource $ftp_stream , int $filesize [, string &$result ] )

ftp_alloc() envoie la commande FTP ALLO pour allouer un espace sur le serveur FTP de filesize octets.

Note:

De nombreux serveur FTP ne supportent pas cette commande. Ces serveurs peuvent retourner un code d'erreur (FALSE) qui indique que la commande n'est pas supportée, ou (TRUE) pour dire que la préallocation n'est pas nécessaire : le client continue alors ses opérations de la même façon. À cause de cela, il est préférable de n'utiliser cette fonction qu'avec les serveurs qui requièrent spécifiquement cette fonction.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

filesize

Le nombre d'octets à allouer.

result

Une représentation textuelle de la réponse du serveur qui sera retournée par référence dans result si une variable est fournie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_alloc()

<?php

$file 
"/home/user/myfile";

// Connexion au serveur
$conn_id ftp_connect('ftp.example.com');
$login_result ftp_login($conn_id'anonymous''user@example.com');

if (
ftp_alloc($conn_idfilesize($file), $result)) {
  echo 
"Espace alloué avec succès sur le serveur. Envoi de $file.\n";
  
ftp_put($conn_id'/incomming/myfile'$fileFTP_BINARY);
} else {
  echo 
"Impossible d'allouer l'espace sur le serveur. Réponse du serveur : $result\n";
}

ftp_close($conn_id);

?>

Voir aussi

  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_fput() - Charge un fichier sur un serveur FTP



ftp_cdup

(PHP 4, PHP 5)

ftp_cdupChange de dossier et passe au dossier parent

Description

bool ftp_cdup ( resource $ftp_stream )

ftp_cdup() change de dossier et passe au dossier parent.

Liste de paramètres

ftp_stream

L'identifiant du lien de la connexion FTP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_cdup()

<?php
// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec nom d'utilisateur et mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Modifie le dossier courant en html
ftp_chdir($conn_id'html');

echo 
ftp_pwd($conn_id); // /html 

// Retour au dossier parent
if (ftp_cdup($conn_id)) { 
  echo 
"succès de cdup\n";
} else {
  echo 
"Echec de cdup\n";
}

echo 
ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Voir aussi



ftp_chdir

(PHP 4, PHP 5)

ftp_chdirModifie le dossier FTP courant

Description

bool ftp_chdir ( resource $ftp_stream , string $directory )

ftp_chdir() modifie le dossier courant en directory.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le dossier cible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si le changement échoue, PHP lancera également une alerte.

Exemples

Exemple #1 Exemple avec ftp_chdir()

<?php

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server); 

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass); 

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
    die(
"Echec de la connexion FTP !");
}

echo 
"Dossier courant : " ftp_pwd($conn_id) . "\n";

// Tentative de modification du dossier en "somedir"
if (ftp_chdir($conn_id"somedir")) {
    echo 
"Le dossier courant est maintenant : " ftp_pwd($conn_id) . "\n";
} else { 
    echo 
"Impossible de changer de dossier\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • ftp_cdup() - Change de dossier et passe au dossier parent
  • ftp_pwd() - Retourne le nom du dossier courant



ftp_chmod

(PHP 5)

ftp_chmodModifie les droits d'un fichier via FTP

Description

int ftp_chmod ( resource $ftp_stream , int $mode , string $filename )

ftp_chmod() modifie les droits d'accès au fichier filename sur le serveur FTP ftp_stream, en lui attribuant les droits de mode, spécifié sous la forme d'un entier en base octale.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

mode

La nouvelle permission, donnée en tant que valeur octale.

filename

Le fichier distant.

Valeurs de retour

Retourne les nouvelles permissions du fichier en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_chmod()

<?php
$file 
'public_html/index.php';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tentative de modification des permissions du fichier $file en 644
if (ftp_chmod($conn_id0644$file) !== false) {
 echo 
"Les permissions du fichier $file ont été modifiées avec succès en 644\n";
} else {
 echo 
"Impossible de modifier les permissions du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • chmod() - Change le mode du fichier



ftp_close

(PHP 4 >= 4.2.0, PHP 5)

ftp_closeFerme une connexion FTP

Description

bool ftp_close ( resource $ftp_stream )

ftp_close() ferme la connexion ftp_stream et libère les ressources.

Note:

Après avoir appelé cette fonction, vous ne pouvez plus utiliser l'ancienne connexion, et vous devez en ouvrir une nouvelle avec ftp_connect().

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_close()

<?php

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Affichage du dossier courant
echo ftp_pwd($conn_id); // /

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi



ftp_connect

(PHP 4, PHP 5)

ftp_connectOuvre une connexion FTP

Description

resource ftp_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] )

ftp_connect() ouvre une connexion FTP avec l'hôte host.

Liste de paramètres

host

L'adresse du serveur FTP. Ce paramètre ne doit jamais avoir de slash final et ne doit pas être préfixé par ftp://.

port

Ce paramètre spécifie un numéro de port alternatif pour la connexion. S'il est omis ou définie à zéro, alors le port par défaut utilisé sera 21.

timeout

Ce paramètre spécifie le délai de connexion pour toutes les opérations de sous séquences du réseau. S'il est omis, la valeur par défaut sera 90 secondes. Le délai de connexion peut être modifié et interrogé à n'importe quel moment avec les moments ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne un flux FTP en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_connect()

<?php

$ftp_server 
"ftp.example.com";

// Mise en place d'une connexion
$conn_id ftp_connect($ftp_server) or die("Impossible de se connecter au serveur $ftp_server"); 

?>

Historique

Version Description
4.2.0 timeout a été ajouté.

Voir aussi



ftp_delete

(PHP 4, PHP 5)

ftp_deleteEfface un fichier sur un serveur FTP

Description

bool ftp_delete ( resource $ftp_stream , string $path )

ftp_delete() efface le fichier path sur un serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

path

Le fichier à effacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_delete()

<?php
$file 
'public_html/old.txt';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tente d'effacer le fichier $file
if (ftp_delete($conn_id$file)) {
 echo 
"$file effacé avec succès\n";
} else {
 echo 
"Impossible d'effacer le fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>



ftp_exec

(PHP 4 >= 4.0.3, PHP 5)

ftp_execExécute une commande sur un serveur FTP

Description

bool ftp_exec ( resource $ftp_stream , string $command )

ftp_exec() envoie une commande SITE EXEC au serveur FTP, pour qu'il exécute le programme command.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

command

La commande à exécuter.

Valeurs de retour

Retourne TRUE si la commande a été exécutée avec succès (le serveur envoie le code réponse : 200); sinon, retourne FALSE.

Exemples

Exemple #1 Exemple avec ftp_exec()

<?php

// Initialisation de la variable
$command 'ls -al >files.txt';

// Initialisation de la connexion
$conn_id ftp_connect($ftp_server);

// Identification
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Éxécution d'une commande
if (ftp_exec($conn_id$command)) {
    echo 
"$command a été exécuté avec succès\n";
} else {
    echo 
"Impossible d\'exécuter : $command\n";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Voir aussi



ftp_fget

(PHP 4, PHP 5)

ftp_fgetTélécharge un fichier via FTP dans un fichier local

Description

bool ftp_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_fget() télécharge le fichier remote_file depuis le serveur FTP et l'écrit dans le fichier identifié par handle.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

handle

Un pointeur de fichier ouvert dans lequel on écrit les données.

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

resumepos

La position du fichier distant à partir de laquelle le téléchargement commence.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_fget()

<?php

// Chemin vers le fichier distant
$remote_file 'somefile.txt';
$local_file 'localfile.txt';

// Ouverture du fichier pour écriture
$handle fopen('local_file.txt''w');

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tente de téléchargement le fichier $remote_file et de le sauvegarder dans $handle
if (ftp_fget($conn_id$handle$remote_fileFTP_ASCII0)) {
 echo 
"Ecriture dans le fichier $local_file avec succès\n";
} else {
 echo 
"Il y a un problème lors du téléchargement du fichier $remote_file dans $local_file\n";
}

// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
fclose($handle);
?>

Historique

Version Description
4.3.0 resumepos a été ajouté.

Voir aussi

  • ftp_get() - Télécharge un fichier depuis un serveur FTP
  • ftp_nb_get() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_fget() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)



ftp_fput

(PHP 4, PHP 5)

ftp_fputCharge un fichier sur un serveur FTP

Description

bool ftp_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

ftp_fput() charge les données issues du fichier identifié par handle jusqu'à la fin du fichier.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

handle

Un pointeur de fichier ouvert sur le fichier local. La lecture s'arrête à la fin du fichier.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_fput()

<?php

// Ouverture de quelques fichiers pour lecture
$file 'somefile.txt';
$fp fopen($file'r');

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tente de charger le fichier $file
if (ftp_fput($conn_id$file$fpFTP_ASCII)) {
    echo 
"Chargement avec succès du fichier $file\n";
} else {
    echo 
"Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
fclose($fp);

?>

Historique

Version Description
4.3.0 startpos a été ajouté.

Voir aussi

  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_nb_fput() - Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_put() - Envoie un fichier sur un serveur FTP (non-bloquant)



ftp_get_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_get_optionLit différentes options pour la connexion FTP courante

Description

mixed ftp_get_option ( resource $ftp_stream , int $option )

ftp_get_option() retourne la valeur de l'option option depuis la connexion FTP spécifiée.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

option

Actuellement, les options suivantes sont supportées :

Options FTP supportées
FTP_TIMEOUT_SEC Retourne le délai de connexion courant utilisé pour les opérations sur le réseau.
FTP_AUTOSEEK Retourne TRUE si cette option est active, FALSE sinon.

Valeurs de retour

Retourne la valeur en cas de succès, ou FALSE si l'option option n'est pas supportée. Dans le dernier cas, un message d'alerte est également envoyé.

Exemples

Exemple #1 Exemple avec ftp_get_option()

<?php
// Récupération du délai de connexion du flux FTP courant
$timeout ftp_get_option($conn_idFTP_TIMEOUT_SEC);
?>

Voir aussi



ftp_get

(PHP 4, PHP 5)

ftp_getTélécharge un fichier depuis un serveur FTP

Description

bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_get() télécharge le fichier remote_file depuis le serveur FTP, et le sauve dans le fichier local local_file.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

local_file

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

resumepos

La position dans le fichier distant à partir duquel on commence le téléchargement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_get()

<?php

// Définition de quelques variables
$local_file 'local.zip';
$server_file 'server.zip';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
if (ftp_get($conn_id$local_file$server_fileFTP_BINARY)) {
    echo 
"Le fichier $local_file a été écris avec succès\n";
} else {
    echo 
"Il y a un problème\n";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Historique

Version Description
4.3.0 resumepos a été ajouté.

Voir aussi

  • ftp_pasv() - Active ou désactive le mode passif
  • ftp_fget() - Télécharge un fichier via FTP dans un fichier local
  • ftp_nb_get() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_fget() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)



ftp_login

(PHP 4, PHP 5)

ftp_loginIdentification sur un serveur FTP

Description

bool ftp_login ( resource $ftp_stream , string $username , string $password )

ftp_login() identifie le flux FTP sur le serveur, avec le nom d'utilisateur username et le mot de passe password.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

username

Le nom de l'utilisateur (USER).

password

Le mot de passe (PASS).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si l'identification échoue, PHP lancera une alerte.

Exemples

Exemple #1 Exemple avec ftp_login()

<?php

$ftp_server 
"ftp.example.com";
$ftp_user "foo";
$ftp_pass "bar";

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 

// Tentative d'identification
if (@ftp_login($conn_id$ftp_user$ftp_pass)) {
    echo 
"Connecté en tant que $ftp_user@$ftp_server\n";
} else {
    echo 
"Connexion impossible en tant que $ftp_user\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>



ftp_mdtm

(PHP 4, PHP 5)

ftp_mdtm Retourne la date de dernière modification d'un fichier sur un serveur FTP

Description

int ftp_mdtm ( resource $ftp_stream , string $remote_file )

ftp_mdtm() lit la date de dernière modification d'un fichier distant.

Note:

Tous les serveurs ne supportent pas cette fonctionnalité !

Note:

ftp_mdtm() ne fonctionne pas avec les dossiers.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le fichier depuis lequel on doit extraire la date de dernière modification.

Valeurs de retour

Retourne la date de dernière modification en tant que timestamp Unix en cas de succès, ou -1 si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_mdtm()

<?php

$file 
'somefile.txt';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

//  Récupération de la date de dernière modification
$buff ftp_mdtm($conn_id$file);

if (
$buff != -1) {
    
// somefile.txt was last modified on: March 26 2003 14:16:41.
    
echo "$file a été modifié pour la dernière fois : " date("F d Y H:i:s."$buff);
} else {
    echo 
"Impossible de récupérer mdtime";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>



ftp_mkdir

(PHP 4, PHP 5)

ftp_mkdirCrée un dossier sur un serveur FTP

Description

string ftp_mkdir ( resource $ftp_stream , string $directory )

ftp_mkdir() crée le dossier nommé directory sur le serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le nom du dossier qui doit être créé.

Valeurs de retour

Retourne le nom du dossier créé en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_mkdir()

<?php

$dir 
'www';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identication avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tentative de création du dossier $dir
if (ftp_mkdir($conn_id$dir)) {
 echo 
"Le dossier $dir a été créé avec succès\n";
} else {
 echo 
"Il y a eu un problème lors de la création du dossier $dir\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi



ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_continueReprend le téléchargement d'un fichier (non bloquant)

Description

int ftp_nb_continue ( resource $ftp_stream )

ftp_nb_continue() reprend le téléchargement d'un fichier sur la connexion ftp_stream, de manière asynchrone.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_continue()

<?php

// Initialisation du téléchargement
$ret ftp_nb_get($my_connection"test""README"FTP_BINARY);
while (
$ret == FTP_MOREDATA) {

   
// Continue le téléchargement...
   
$ret ftp_nb_continue($my_connection);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Il y a eu une erreur pendant le téléchargement du fichier...";
   exit(
1);
}
?>



ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fgetLit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

int ftp_nb_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_nb_fget() lit le fichier remote_file présent sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fget() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

handle

Un pointeur de fichier ouvert dans lequel les données sont écrites.

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soir FTP_ASCII ou FTP_BINARY.

resumepos

La position dans le fichier distant à partir de laquelle le téléchargement doit commencer.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_fget()

<?php

// Ouverture de quelques fichiers pour lecture
$file 'index.php';
$fp fopen($file'w');

$conn_id ftp_connect($ftp_server);

$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Initialise le téléchargement
$ret ftp_nb_fget($conn_id$fp$fileFTP_BINARY);
while (
$ret == FTP_MOREDATA) {

   
// Faites ce que vous voulez...
   
echo ".";

   
// Continue le téléchargement...
   
$ret ftp_nb_continue($conn_id);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Il y a eu une erreur pendant le téléchargement du fichier...";
   exit(
1);
}

// Ferme le pointeur de fichier
fclose($fp);
?>

Voir aussi

  • ftp_nb_get() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_fget() - Télécharge un fichier via FTP dans un fichier local
  • ftp_get() - Télécharge un fichier depuis un serveur FTP



ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fputÉcrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)

Description

int ftp_nb_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

ftp_nb_fput() écrit le fichier remote_file présent sur la machine locale, sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fput() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier soit téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

handle

Un pointeur de fichier vers un fichier local. La lecture s'arrête à la fin du fichier.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Retourne FTP_FAILED, FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_fput()

<?php

$file 
'index.php';

$fp fopen($file'r');

$conn_id ftp_connect($ftp_server);

$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Initialise le chargement
$ret ftp_nb_fput($conn_id$file$fpFTP_BINARY);
while (
$ret == FTP_MOREDATA) {

   
// Faites ce que vous voulez...
   
echo ".";

   
// Continue le chargement...
   
$ret ftp_nb_continue($conn_id);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Il y a eu un problème lors du chargement du fichier...";
   exit(
1);
}

fclose($fp);
?>

Voir aussi

  • ftp_nb_put() - Envoie un fichier sur un serveur FTP (non-bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_fput() - Charge un fichier sur un serveur FTP



ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_getLit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

int ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_nb_get() lit le fichier remote_file présent sur le serveur FTP ftp_stream et le sauvegarde dans un fichier local.

La différence entre cette fonction et ftp_fget() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

local_file

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII ou FTP_BINARY.

resumepos

La position dans le fichier distant à partir de laquelle le téléchargement doit commencer.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_get()

<?php

// Initialise le téléchargement
$ret ftp_nb_get($my_connection"test""README"FTP_BINARY);
while (
$ret == FTP_MOREDATA) {
   
   
// Faites ce que vous voulez...
   
echo ".";

   
// Continue le téléchargement...
   
$ret ftp_nb_continue($my_connection);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Il y a eu un problème lors du téléchargement...";
   exit(
1);
}
?>

Exemple #2 Reprise d'un téléchargement avec ftp_nb_get()

<?php

// Initialise
$ret ftp_nb_get($my_connection"test""README"FTP_BINARY
                      
filesize("test"));
// Ou : $ret = ftp_nb_get($my_connection, "test", "README", 
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
   
   
// Faites ce que vous voulez...
   
echo ".";

   
// Continue le téléchargement...
   
$ret ftp_nb_continue($my_connection);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Il y a eu un problème lors du téléchargement du fichier...";
   exit(
1);
}
?>

Exemple #3 Reprise d'un téléchargement à la position 100 dans un nouveau fichier avec ftp_nb_get()

<?php

// Désactive l'Autoseek
ftp_set_option($my_connectionFTP_AUTOSEEKfalse);

// Initialisation
$ret ftp_nb_get($my_connection"newfile""README"FTP_BINARY100);
while (
$ret == FTP_MOREDATA) {

   
/* ... */
   
   // Continue le téléchargement...
   
$ret ftp_nb_continue($my_connection);
}
?>

Dans l'exemple ci-dessus, newfile est 100 octets plus petit que README sur le site FTP, car nous avons commencé à lire à l'offset 100. Si nous n'avions pas désactivé l'option FTP_AUTOSEEK, les premiers 100 octets du fichier newfile seraient complétés avec '\0'.

Voir aussi

  • ftp_nb_fget() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_fget() - Télécharge un fichier via FTP dans un fichier local
  • ftp_get() - Télécharge un fichier depuis un serveur FTP



ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_putEnvoie un fichier sur un serveur FTP (non-bloquant)

Description

int ftp_nb_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos = 0 ] )

ftp_nb_put() écrit le fichier remote_file présent sur la machine locale, sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fput() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier soit téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

local_file

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Retourne FTP_FAILED, FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_put()

<?php

// Initialisation du chargement
$ret ftp_nb_put($my_connection"test.remote""test.local"FTP_BINARY);
while (
$ret == FTP_MOREDATA) {

   
// Faites ce que vous voulez...
   
echo ".";

   
// Continue le chargement...
   
$ret ftp_nb_continue($my_connection);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Il y a eu un problème lors du chargement du fichier...";
   exit(
1);
}
?>

Exemple #2 Reprise d'un chargement avec ftp_nb_put()

<?php

// Initialisation
$ret ftp_nb_put($my_connection"test.remote""test.local",
                      
FTP_BINARYftp_size("test.remote"));
// Ou : $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   
// Faites ce que vous voulez...
   
echo ".";

   
// Continue le chargement...
   
$ret ftp_nb_continue($my_connection);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Il y a eu un problème lors du chargement...";
   exit(
1);
}
?>

Voir aussi

  • ftp_nb_fput() - Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_fput() - Charge un fichier sur un serveur FTP



ftp_nlist

(PHP 4, PHP 5)

ftp_nlistRetourne la liste des fichiers d'un dossier

Description

array ftp_nlist ( resource $ftp_stream , string $directory )

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le dossier à lister. Ce paramètre peut également inclure des arguments, e.g. ftp_nlist($conn_id, "-la /your/dir"); Notez que ce paramètre n'est pas échappé, il peut donc y avoir des comportements non-désirés si le nom des fichiers contient des espaces ou d'autres caractères.

Valeurs de retour

Retourne un tableau de nom de fichiers présent dans le dossier spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_nlist()

<?php

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Récupération du contenu d'un dossier
$contents ftp_nlist($conn_id".");

// Affichage de $contents
var_dump($contents);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Voir aussi

  • ftp_rawlist() - Fait une liste détaillée des fichiers d'un dossier



ftp_pasv

(PHP 4, PHP 5)

ftp_pasvActive ou désactive le mode passif

Description

bool ftp_pasv ( resource $ftp_stream , bool $pasv )

ftp_pasv() active ou non le mode passif. En mode passif, les données de connexion sont initiées par le client, plutôt que par le serveur. Ce mode peut être nécessaire lorsque le client est derrière un pare-feu.

Notez que ftp_pasv() ne peut être appelée qu'après une identification réussie, sinon, la fonction échouera.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

pasv

Si TRUE, le mode passif est activé, sinon, il est désactivé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_pasv()

<?php
$file 
'somefile.txt';
$remote_file 'readme.txt';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Activation du mode passif
ftp_pasv($conn_idtrue);

// Chargement d'un fichier
if (ftp_put($conn_id$remote_file$fileFTP_ASCII)) {
 echo 
"Le fichier $file a été chargé avec succès\n";
} else {
 echo 
"Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>



ftp_put

(PHP 4, PHP 5)

ftp_putCharge un fichier sur un serveur FTP

Description

bool ftp_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos = 0 ] )

ftp_put() enregistre le fichier local_file sur le serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de la connexion FTP.

remote_file

Le chemin vers le fichier distant.

local_file

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_put()

<?php
$file 
'somefile.txt';
$remote_file 'readme.txt';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Charge un fichier
if (ftp_put($conn_id$remote_file$fileFTP_ASCII)) {
 echo 
"Le fichier $file a té chargé avec succès\n";
} else {
 echo 
"Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Historique

Version Description
4.3.0 startpos a été ajouté.

Voir aussi

  • ftp_pasv() - Active ou désactive le mode passif
  • ftp_fput() - Charge un fichier sur un serveur FTP
  • ftp_nb_fput() - Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_put() - Envoie un fichier sur un serveur FTP (non-bloquant)



ftp_pwd

(PHP 4, PHP 5)

ftp_pwdRetourne le nom du dossier courant

Description

string ftp_pwd ( resource $ftp_stream )

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne le nom du dossier courant ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_pwd()

<?php

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Change le dossier en public_html
ftp_chdir($conn_id'public_html');

// Affiche le dossier courant
echo ftp_pwd($conn_id); // /public_html

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi



ftp_quit

(PHP 4, PHP 5)

ftp_quitAlias de ftp_close()

Description

Cette fonction est un alias de : ftp_close().



ftp_raw

(PHP 5)

ftp_rawEnvoie une commande FTP brute

Description

array ftp_raw ( resource $ftp_stream , string $command )

ftp_raw() envoie la commande FTP brute command au serveur FTP identifié par ftp_stream.

Liste de paramètres

ftp_stream

La ressource de connexion FTP.

command

La commande à exécuter.

Valeurs de retour

Retourne la réponse du serveur en tant que tableau de chaînes. Aucune analyse n'est faite sur la chaîne réponse, ni si ftp_raw() détermine si la commande a réussi.

Exemples

Exemple #1 Utilisation de ftp_raw() pour s'identifier manuellement sur un serveur FTP

<?php
$fp 
ftp_connect("ftp.example.com");

/* Ceci est l'équivalent de  : 
   ftp_login($fp, "joeblow", "secret"); 
 */

ftp_raw($fp"USER joeblow");
ftp_raw($fp"PASS secret");
?>

Voir aussi

  • ftp_exec() - Exécute une commande sur un serveur FTP



ftp_rawlist

(PHP 4, PHP 5)

ftp_rawlistFait une liste détaillée des fichiers d'un dossier

Description

array ftp_rawlist ( resource $ftp_stream , string $directory [, bool $recursive = false ] )

ftp_rawlist() exécute la commande FTP LIST, et retourne le résultat dans un tableau.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le chemin vers le dossier.

recursive

Si défini à TRUE, la commande sera LIST -R.

Valeurs de retour

Retourne un tableau où les éléments correspondent à une ligne de texte.

La sortie n'est jamais analysée. L'identifiant du type système retourné par la fonction ftp_systype() peut être utilisé pour déterminer comment les résultats doivent être interprétés.

Exemples

Exemple #1 Exemple avec ftp_rawlist()

<?php

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Récupère la liste des fichiers de /
$buff ftp_rawlist($conn_id'/');

// Fermeture de la connexion
ftp_close($conn_id);

// Affiche le buffer
var_dump($buff);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Historique

Version Description
4.3.0 recursive a été ajouté.

Voir aussi

  • ftp_nlist() - Retourne la liste des fichiers d'un dossier



ftp_rename

(PHP 4, PHP 5)

ftp_renameRenomme un fichier sur un serveur FTP

Description

bool ftp_rename ( resource $ftp_stream , string $oldname , string $newname )

ftp_rename() renomme le fichier ou le dossier from en to, sur le serveur ftp_stream.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

oldname

L'ancien nom du dossier / fichier.

newname

Le nouveau nom.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_rename()

<?php
$old_file 
'somefile.txt.bak';
$new_file 'somefile.txt';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tentative de renommage de $old_file en $new_file
if (ftp_rename($conn_id$old_file$new_file)) {
 echo 
"Renommage avec succès de $old_file en $new_file\n";
} else {
 echo 
"Il y a eu un problème lors du renommage de $old_file en $new_file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>



ftp_rmdir

(PHP 4, PHP 5)

ftp_rmdirEfface un dossier FTP

Description

bool ftp_rmdir ( resource $ftp_stream , string $directory )

ftp_rmdir() efface le dossier directory.

Liste de paramètres

ftp_stream

L'identification du lien de connexion FTP.

directory

Le dossier à effacer. Ce doit être soit un chemin absolu, soit un chemin relatif vers un dossier vide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_rmdir()

<?php

$dir 
'www/';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Tentative d'effacement du dossier $dir
if (ftp_rmdir($conn_id$dir)) {
    echo 
"Le dossier $dir a été effacé avec succès\n";
} else {
    echo 
"Il y a eu un problème lors de l'effacement du dossier $dir\n";
}

ftp_close($conn_id);

?>

Voir aussi



ftp_set_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_set_optionModifie les options de la connexion FTP

Description

bool ftp_set_option ( resource $ftp_stream , int $option , mixed $value )

ftp_set_option() contrôle diverses options de connexion pour une connexion FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

option

Actuellement, les options suivantes sont supportées :

Options FTP supportées
FTP_TIMEOUT_SEC Modifie le délai de connexion en secondes utilisé pour toutes les fonctions au réseau. value doit être un entier plus grand que 0. Le délai de connexion par défaut est de 90 secondes.
FTP_AUTOSEEK Lorsqu'actif, les requêtes GET ou PUT avec un paramètre resumepos ou startpos se positionnera d'abord à la position désirée dans le fichier. Ceci est actif par défaut.

value

Ce paramètre dépend de l'option option que l'on veut modifier.

Valeurs de retour

Retourne TRUE si l'option a pû être modifiée, FALSE sinon. Un message d'alerte sera envoyé si option n'est pas supportée ou bien si la valeur value ne correspond pas à la valeur attendue pour l'option option donnée.

Exemples

Exemple #1 Exemple avec ftp_set_option()

<?php
// Définition du délai de connexion à 10 secondes
ftp_set_option($conn_idFTP_TIMEOUT_SEC10);
?>

Voir aussi



ftp_site

(PHP 4, PHP 5)

ftp_siteExécute la commande SITE sur un serveur FTP

Description

bool ftp_site ( resource $ftp_stream , string $command )

ftp_site() exécute la commande SITE sur le serveur FTP.

Les commandes SITE ne sont pas normalisées, et peuvent varier d'un serveur à l'autre. Elles permettent de gérer notamment les permissions de fichiers, et les groupes.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

command

La commande SITE. Notez que ce paramètre n'est pas échappé, il peut donc y avoir des comportements non-désirés si le nom des fichiers contient des espaces ou d'autres caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Envoi d'une commande SITE à un serveur FTP

<?php
// Connexion au serveur FTP
$conn ftp_connect('ftp.example.com');
if (!
$conn) die('Impossible de se connecter au serveur ftp.example.com');

// Identification avec l'utilisateur "user" et le mot de passe "pass"
if (!ftp_login($conn'user''pass')) die('Erreur d\'identification au serveur ftp.example.com');

// Résultat : commande "SITE CHMOD 0600 /home/user/privatefile" sur le serveur ftp
if (ftp_site($conn'CHMOD 0600 /home/user/privatefile')) {
   echo 
"La commande a été exécutée avec succès.\n";
} else {
   die(
'La commande a échouée.');
}
?>

Voir aussi



ftp_size

(PHP 4, PHP 5)

ftp_sizeRetourne la taille d'un fichier

Description

int ftp_size ( resource $ftp_stream , string $remote_file )

ftp_size() retourne la taille d'un fichier donné en octets.

Note:

Tous les serveurs ne supportent pas cette fonctionnalité.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le fichier distant.

Valeurs de retour

Retourne la taille du fichier en cas de succès, ou -1 si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_size()

<?php

$file 
'somefile.txt';

// Mise en place d'une connexion basique
$conn_id ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Récupération de la taille du fichier $file
$res ftp_size($conn_id$file);

if (
$res != -1) {
    echo 
"La taille du fichier $file est de $res octets";
} else {
    echo 
"Impossible de récupérer la taille du fichier";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Voir aussi

  • ftp_rawlist() - Fait une liste détaillée des fichiers d'un dossier



ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connectOuvre une connexion FTP sécurisée avec SSL

Description

resource ftp_ssl_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] )

ftp_ssl_connect() ouvre explicitement une connexion FTP sécurisée avec SSL sur l'hôte host spécifié.

Note: Pourquoi cette fonction peut ne pas exister ?

ftp_ssl_connect() n'est disponible que si le module ftp et le support OpenSSL sont compilés statiquement dans PHP, cela signifie que, sous Windows, cette fonction sera indéfinie dans la version officielle de PHP. Afin d'utiliser cette fonction sous Windows, vous devez compiler vos propres binaires PHP.

Note:

ftp_ssl_connect() n'est pas prévu pour fonctionner avec sFTP. Pour utiliser sFTP avec PHP, repportez-vous à la fonction ssh2_sftp().

Liste de paramètres

host

L'adresse FTP du serveur. Ce paramètre ne doit pas comporter de slash final et ne doit pas être préfixé par ftp://.

port

Ce paramètre spécifie un port alternatif de connexion. S'il est omis ou défini à zéro, alors le port par défaut FTP, 21, sera utilisé.

timeout

Ce paramètre spécifie le délai de connexion pour toutes les opérations sur le réseau. S'il est omis, la valeur par défaut sera de 90 secondes. Ce délai de connexion peut être modifié et consulté à tout moment avec les fonctions ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne un flux SSL-FTP en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.2 Cette fonction retourne FALSE lorsqu'elle ne peut pas utiliser une connexion SSL, au lieu d'utiliser à la place une connexion non-SSL.

Exemples

Exemple #1 Exemple avec ftp_ssl_connect()

<?php

// Mise en place d'une connexion basique
$conn_id ftp_ssl_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

echo 
ftp_pwd($conn_id); // /

// Fermeture de la connexion SSL
ftp_close($conn_id);
?>

Voir aussi



ftp_systype

(PHP 4, PHP 5)

ftp_systypeRetourne un identifiant de type de serveur FTP

Description

string ftp_systype ( resource $ftp_stream )

ftp_systype() retourne le type de serveur FTP distant.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne le type de serveur distant ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_systype()

<?php

// Connexion ftp
$ftp ftp_connect('ftp.example.com');
ftp_login($ftp'user''password');

// Récupération du type de serveur
if ($type ftp_systype($ftp)) {
    echo 
"Example.com est exécuté par $type\n";
} else {
    echo 
"Impossible de récupérer le type du serveur";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Example.com est exécuté par UNIX


Sommaire

  • ftp_alloc — Alloue de l'espace pour un téléchargement de fichier
  • ftp_cdup — Change de dossier et passe au dossier parent
  • ftp_chdir — Modifie le dossier FTP courant
  • ftp_chmod — Modifie les droits d'un fichier via FTP
  • ftp_close — Ferme une connexion FTP
  • ftp_connect — Ouvre une connexion FTP
  • ftp_delete — Efface un fichier sur un serveur FTP
  • ftp_exec — Exécute une commande sur un serveur FTP
  • ftp_fget — Télécharge un fichier via FTP dans un fichier local
  • ftp_fput — Charge un fichier sur un serveur FTP
  • ftp_get_option — Lit différentes options pour la connexion FTP courante
  • ftp_get — Télécharge un fichier depuis un serveur FTP
  • ftp_login — Identification sur un serveur FTP
  • ftp_mdtm — Retourne la date de dernière modification d'un fichier sur un serveur FTP
  • ftp_mkdir — Crée un dossier sur un serveur FTP
  • ftp_nb_continue — Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_nb_fget — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_fput — Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_get — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_put — Envoie un fichier sur un serveur FTP (non-bloquant)
  • ftp_nlist — Retourne la liste des fichiers d'un dossier
  • ftp_pasv — Active ou désactive le mode passif
  • ftp_put — Charge un fichier sur un serveur FTP
  • ftp_pwd — Retourne le nom du dossier courant
  • ftp_quit — Alias de ftp_close
  • ftp_raw — Envoie une commande FTP brute
  • ftp_rawlist — Fait une liste détaillée des fichiers d'un dossier
  • ftp_rename — Renomme un fichier sur un serveur FTP
  • ftp_rmdir — Efface un dossier FTP
  • ftp_set_option — Modifie les options de la connexion FTP
  • ftp_site — Exécute la commande SITE sur un serveur FTP
  • ftp_size — Retourne la taille d'un fichier
  • ftp_ssl_connect — Ouvre une connexion FTP sécurisée avec SSL
  • ftp_systype — Retourne un identifiant de type de serveur FTP



Gupnp


Introduction

GUPnP est un framework open source orienté objet pour créer des périphériques UPnP et des points de contrôle, écrit en C en utilisant GObject et libsoup. Cette extension s'appuie sur GUPnP et fournit une API similaire. Toutes les sources ainsi qu'une documentation complémentaire peuvent être obtenues depuis le » site officiel.



Installation/Configuration

Sommaire


Pré-requis

Afin d'utiliser les fonctions PECL/Gupnp, vous devez installer la » bibilothèque gUPnP version 0.12.7 ou suivante. Elles nécessitent aussi glib-2.0, gssdp-1.0, libsoup-2.4 ou suivantes.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gupnp

Note: Si ./configure n'arrive pas à trouver les fichiers libgupnp (par exemple, si ils ont été installés dans un dossier personnalisé), utilisez la commande ./configure --with-gupnp=$PREFIX, où $PREFIX représente le chemin d'installation de libgupnp.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GUPNP_TYPE_BOOLEAN (integer)
GUPNP_TYPE_INT (integer)
GUPNP_TYPE_LONG (integer)
GUPNP_TYPE_DOUBLE (integer)
GUPNP_TYPE_FLOAT (integer)
GUPNP_TYPE_STRING (integer)
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE (integer)
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE (integer)
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE (integer)
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE (integer)
GUPNP_SIGNAL_ACTION_INVOKED (integer)
GUPNP_SIGNAL_NOTIFY_FAILED (integer)
GUPNP_SIGNAL_SUBSCRIPTION_LOST (integer)
GUPNP_CONTROL_ERROR_INVALID_ACTION (integer)
GUPNP_CONTROL_ERROR_INVALID_ARGS (integer)
GUPNP_CONTROL_ERROR_OUT_OF_SYNC (integer)
GUPNP_CONTROL_ERROR_ACTION_FAILED (integer)



Exemples

Sommaire


Parcours des périphériques et des services

Cet exemple montre comment obtenir des informations sur tous les périphériques et les services. Une boucle infinie (en utilisant CLI) est démarrée et si un périphérique ou un service disponible est trouvé, la fonction de rappel correspondante sera appelée.

Exemple #1 Recherche tous les périphériques et services UPnP.

<?php

/* Fonction de rappel pour les périphériques disponibles */
function device_proxy_available_cb($proxy$arg)
{
    
$info gupnp_device_info_get($proxy);

    
$type $info['device_type'];
    
$location $info['location'];

    
printf("Device available:\n");
    
printf("\ttype:     %s\n"$type);
    
printf("\tlocation: %s\n"$location);
}

/* Fonction de rappel pour les services disponibles */
function service_proxy_available_cb($proxy$arg)
{
    
$info gupnp_service_info_get($proxy);

    
$type $info['service_type'];
    
$location $info['location'];

    
printf("Service available:\n");
    
printf("\ttype:     %s\n"$type);
    
printf("\tlocation: %s\n"$location);
}

/* Création du contexte UPnP */
$context gupnp_context_new();
if (!
$context) {
    
printf("Error creating the GUPnP context\n");
    exit(-
1);
}

/* Nous sommes intéressé par tout ! */
$cp gupnp_control_point_new($context"ssdp:all");

/* Définit les fonctions de rappel */
gupnp_control_point_callback_set($cp
    
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE'device_proxy_available_cb');
gupnp_control_point_callback_set($cp
    
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE'service_proxy_available_cb');

/* Commence le parcours (boucle infinie, il faut utiliser le raccourci clavier Ctrl-C pour l'interrompre) */
gupnp_control_point_browse_start($cp);

?>



Implémentation du périphérique BinaryLight

Ceci est un exemple de périphérique/service UPnP, implémentant les services BinaryLight et SwitchPower pour émuler une interruption de lumière.

L'interface utilisateur a été simplifiée afin de montrer les conceptes et les méthodes basiques.

Exemple #1 Implémentation d'un serveur lumineux

<?php

/* Définit la cible */
function set_target_cb($service$action$arg)
{
    
/* Récupère la nouvelle valeur cible */
    
$target gupnp_service_action_get($action'NewTargetValue'GUPNP_TYPE_BOOLEAN);

    
/* Si la nouvelle cible ne correspond pas au statut courant, on modifie
       le statut et nous émettons une notification de modification du statut. */
    
if ($target != $GLOBALS['status']) {
        
$GLOBALS['status'] = $target;
        
gupnp_service_notify($service'Status'GUPNP_TYPE_BOOLEAN$GLOBALS['status']);
        
printf("The light is now %s.\n"$GLOBALS['status'] ? "on" "off");
    }

    
/* Retourne le succès de l'opération au client */
    
gupnp_service_action_return($action);
}

/* Récupère la cible */
function get_target_cb($service$action$arg)
{
    
gupnp_service_action_set($action'RetTargetValue'GUPNP_TYPE_BOOLEAN$GLOBALS['status']);
    
gupnp_service_action_return($action);
}

/* Récupère le statut */
function get_status_cb($service$action$arg)
{
    
gupnp_service_action_set($action'ResultStatus'GUPNP_TYPE_BOOLEAN$GLOBALS['status']);
    
gupnp_service_action_return($action);
}

/* Par défaut, la lumière est éteinte */
$GLOBALS['status'] = false;
printf("The light is now %s.\n"$GLOBALS['status'] ? "on" "off");

/* Création du contexte UPnP */
$context gupnp_context_new();
if (!
$context) {
    
printf("Erreur lors de la création du contexte GUPnP\n");
    exit(-
1);
}

/* Héberge le dossier qui contient le fichier de description du périphérique et du service */
gupnp_context_host_path($context"./web""");

/* Crée un nouveau périphérique racine */
$location "/BinaryLight.xml";
$dev gupnp_root_device_new($context$location);
gupnp_root_device_set_available($devtrue);

/* Récupère le service de modification de lumière depuis le périphérique racine */
$service_type "urn:schemas-upnp-org:service:SwitchPower:1";
$service gupnp_device_info_get_service($dev$service_type);
if (!
$service) {
    die(
"Impossible de récupérer le service SwitchPower1\n");
}

/* Définit la fonction de rappel pour l'action GetStatus */
gupnp_device_action_callback_set($serviceGUPNP_SIGNAL_ACTION_INVOKED"GetStatus"
    
"get_status_cb""action data, GetStatus");

/* Définit la fonction de rappel pour l'action GetTarget */
gupnp_device_action_callback_set($serviceGUPNP_SIGNAL_ACTION_INVOKED"GetTarget"
    
"get_target_cb""action data, GetTarget");

/* Définit la fonction de rappel pour l'action SetTarget */
gupnp_device_action_callback_set($serviceGUPNP_SIGNAL_ACTION_INVOKED"SetTarget"
    
"set_target_cb""action data, SetTarget");

/* Exécute la boucle principale */
gupnp_root_device_start($dev);

?>

Exemple #2 Implémentation du client lumineux

<?php

function service_proxy_available_cb($proxy$arg)
{
    
$mode $arg['mode'];

    
printf("Set subscribed\n");
    
gupnp_service_proxy_set_subscribed($proxytrue);

    
/* Ajout une notification si le statut a changé */
    
if (!gupnp_service_proxy_add_notify($proxy"Status"
            
GUPNP_TYPE_BOOLEAN"status_changed_cb"NULL)) {
        
printf("Echec de l'ajout de la notification\n");
    }
    
    if (
$mode == 'TOGGLE') {
        
/* Nous basculons, aussi, en premier lieu, nous récupérons le statut courant */
        
$target gupnp_service_proxy_action_get($proxy'GetStatus''ResultStatus'GUPNP_TYPE_BOOLEAN);

        
/* Et ensuite, nous basculons */
        
$target = ! $target;
    } else {
        
/* Mode est un booléen, aussi, la cible est le mode que nous venons de choisir
           enumeration values. */
        
$target = ($mode == 'ON') ? true false;
    }

    
/* Définit la cible */
    
if (!gupnp_service_proxy_action_set($proxy'SetTarget''NewTargetValue'$targetGUPNP_TYPE_BOOLEAN)) {
        
printf("Impossible de basculer\n");
    } else {
        
printf("Set switch to %s.\n"$target "on" "off");
    }
    
    
/* Arrêt de la recherche */
    
gupnp_control_point_browse_stop($arg['cp']);
}

function 
status_changed_cb($variable$value$arg)
{
    
printf("Le statut a changé\n");
    
printf("\tvariable name: %s\n"$variable);
    
printf("\tvalue: %s\n", (int)$value);
    
printf("\n");
}

/* Vérifie et analyse les arguments de la ligne de commande */
if (count($argv) != 2) {
    
printf("Usage: light-client.php [on|off|toggle]\n");
    exit(-
1);
}

if (
$argv[1] == "on") {
    
$mode 'ON';
} elseif (
$argv[1] == "off") {
    
$mode 'OFF';
} elseif (
$argv[1] == "toggle") {
    
$mode 'TOGGLE';
} else {
    
usage ();
    exit(-
1);
}

/* Crée un contexte UPnP */
$context gupnp_context_new();
if (!
$context) {
    
printf("Erreur lors de la création du contexte GUPnP\n");
    exit(-
1);
}

/* Crée un point de contrôle, et cherche les services SwitchPower */
$cp gupnp_control_point_new ($context,
        
"urn:schemas-upnp-org:service:SwitchPower:1");

/* Connexion à la fonction de rappel utilisée lorsque le service est trouvé */
$cb "service_proxy_available_cb";
$arg = array('mode' => $mode'cp' => $cp);
gupnp_control_point_callback_set($cpGUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE$cb$arg);

/* Commence la recherche */
gupnp_control_point_browse_start($cp);

?>




Fonctions Gupnp


gupnp_context_get_host_ip

(PECL gupnp >= 0.1.0)

gupnp_context_get_host_ipRécupère l'adresse IP

Description

string gupnp_context_get_host_ip ( resource $context )

Récupère l'adresse IP utilisée.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

Valeurs de retour

Retourne l'adresse IP du contexte courant, et FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère l'adresse de l'hôte

<?php

/* Crée le contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Récupère l'adresse IP du contexte UPnP */
$ip gupnp_context_get_host_ip($context);
echo 
$ip;

?>

Voir aussi



gupnp_context_get_port

(PECL gupnp >= 0.1.0)

gupnp_context_get_portRécupère le port

Description

int gupnp_context_get_port ( resource $context )

Récupère le port sur lequel fonctionne le serveur SOAP.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

Valeurs de retour

Retourne le numéro du port pour le contexte courant et FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère le numéro du port

<?php

/* Crée le contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Récupère le numéro du port du contexte UPnP */
$port gupnp_context_get_port($context);
echo 
$port;

?>

Voir aussi



gupnp_context_get_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_get_subscription_timeoutRécupère le délai d'expiration lors de la souscription aux événements

Description

int gupnp_context_get_subscription_timeout ( resource $context )

Récupère le délai d'expiration lors de la souscription (en secondes) ou 0 signifiant qu'il n'y a pas de délai d'attente.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

Valeurs de retour

Le délai d'attente lors de la souscription aux événements, en secondes.

Voir aussi



gupnp_context_host_path

(PECL gupnp >= 0.1.0)

gupnp_context_host_pathDémarre l'hébergement

Description

bool gupnp_context_host_path ( resource $context , string $local_path , string $server_path )

Démarre l'hébergement de local_path sur server_path. Les fichiers avec le chemin local_path.LOCALE (si ils existent) seront servis lorsque LOCALE est spécifié dans l'en-tête Accept-Language de la requête.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

local_path

Chemin vers le fichier ou le dossier local à héberger.

server_path

Chemin du serveur Web où local_path doit être hébergé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et définit le chemin de l'hôte

<?php

/* Crée le contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Héberge le dossier courant */
gupnp_context_host_path($context"./web""");

?>

Voir aussi



gupnp_context_new

(PECL gupnp >= 0.1.0)

gupnp_context_newCrée un nouveau contexte

Description

resource gupnp_context_new ([ string $host_ip [, int $port = 0 ]] )

Crée un nouveau contexte avec le host_ip et le port spécifié.

Liste de paramètres

host_ip

L'adresse IP de l'hôte local, ou NULL pour utiliser l'adresse IP de la première interface qui n'est pas une interface de boucle locale.

port

Le port à utiliser, ou 0 si vous ne voulez pas vous préoccuper du port à utiliser.

Valeurs de retour

Un identifiant de contexte.

Exemples

Exemple #1 Crée un nouveau contexte UPnP

<?php

/* Crée un contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

?>

Erreurs / Exceptions

Émet une alerte de type E_WARNING si la création du contexte échoue.



gupnp_context_set_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_set_subscription_timeoutDéfinit le délai d'attente des événements de sousscription

Description

void gupnp_context_set_subscription_timeout ( resource $context , int $timeout )

Définit le délai d'attente des événements de souscription (en secondes). Notez que chaque souscription côté client sera automatiquement renouvelée.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

timeout

Le délai d'attente des événements de souscription, en secondes. Utilisez la valeur 0 si vous ne voulez pas que les événements de souscription échouent en raison d'un quelconque délai d'attente.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



gupnp_context_timeout_add

(PECL gupnp >= 0.1.0)

gupnp_context_timeout_addDéfinit une fonction à appeler à intervalle régulier

Description

bool gupnp_context_timeout_add ( resource $context , int $timeout , mixed $callback [, mixed $arg ] )

Définit une fonction à appeler à intervalle régulier.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

timeout

Un délai d'attente, en millisecondes.

callback

La fonction de rappel à appeler à chaque période de temps définie par le paramètre timeout. Typiquement, la fonction de rappel prend les arguments arg.

arg

Données utilisateur pour le callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et définit la fonction de rappel

<?php

$user_data 
"user data";

function 
timeout_cb($arg)
{
    
printf("Call timeout_cb, user data: '%s'"$arg);
    return 
true;
}

/* Crée un contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Crée un périphérique racine */
$dev gupnp_root_device_new($context"/devicedesc.xml");

/* Définit la fonction de rappel */
gupnp_context_timeout_add($context5000"timeout_cb"$user_data);

/* Exécution de la boucle principale */
gupnp_root_device_start($dev);

?>

Erreurs / Exceptions

Émet une alerte de type E_WARNING lorsque la fonction de rappel n'est pas valide.

Voir aussi



gupnp_context_unhost_path

(PECL gupnp >= 0.1.0)

gupnp_context_unhost_pathInterrompt l'hébergement

Description

bool gupnp_context_unhost_path ( resource $context , string $server_path )

Interrompt l'hébergement d'un fichier ou d'un dossier sur le chemin server_path.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

server_path

Chemin du serveur Web où est localisé le fichier ou le dossier hébergé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_control_point_browse_start

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_startCommence la recherche

Description

bool gupnp_control_point_browse_start ( resource $cpoint )

Commence la recherche et appel la fonction de rappel définie par l'utilisateur.

Liste de paramètres

cpoint

Un identifiant de point de contrôle, retourné par la fonction gupnp_control_point_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et commence la recherche

<?php

function device_proxy_available_cb($proxy$arg)
{
    
$info gupnp_device_info_get($proxy);

    
$type $info['device_type'];
    
$location $info['location'];

    
printf("Device available:\n");
    
printf("type:     %s\n"$type);
    
printf("location: %s\n"$location);
}

/* Crée un nouveau contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Nous sommes intéresser par tout ! */
$cp gupnp_control_point_new($context"ssdp:all");

gupnp_control_point_callback_set($cp
    
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE'device_proxy_available_cb');

/* Commence la recherche */
gupnp_control_point_browse_start($cp);

?>

Voir aussi



gupnp_control_point_browse_stop

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_stopInterrompt la recherche

Description

bool gupnp_control_point_browse_stop ( resource $cpoint )

Interrompt la recherche et appel la fonction de rappel définie par l'utilisateur.

Liste de paramètres

cpoint

Un identifiant de point de contrôle, retourné par la fonction gupnp_control_point_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_control_point_callback_set

(PECL gupnp >= 0.1.0)

gupnp_control_point_callback_setDéfinit la fonction de rappel pour le point de contrôle

Description

bool gupnp_control_point_callback_set ( resource $cpoint , int $signal , mixed $callback [, mixed $arg ] )

Définit la fonction de rappel pour le point de contrôle pour un signal donné.

Liste de paramètres

cpoint

Un identifiant de point de contrôle, retourné par la fonction gupnp_control_point_new().

signal

La valeur du signal. Le signal peut prendre une des valeurs suivantes :

GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE
Émis lorsqu'un nouveau périphérique devient disponible.
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE
Émis lorsqu'un périphérique devient indisponible.
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE
Émis lorsqu'un nouveau service devient disponible.
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE
Émis lorsqu'un service devient indisponible.

callback

La fonction de rappel pour un signal spécifique. Typiquement, la fonction de rappel prend 2 arguments. Le paramètre proxy sera le premier, et arg, le second.

arg

Données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un nouveau contexte UPnP et commence la recherche

<?php

function device_proxy_available_cb($proxy$arg)
{
    
$info gupnp_device_info_get($proxy);

    
$type $info['device_type'];
    
$location $info['location'];

    
printf("Device available:\n");
    
printf("type:     %s\n"$type);
    
printf("location: %s\n"$location);
}

/* Crée un contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Nous sommes intéressé par tout ! */
$cp gupnp_control_point_new($context"ssdp:all");

gupnp_control_point_callback_set($cp
    
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE'device_proxy_available_cb');

/* Démarre la recherche */
gupnp_control_point_browse_start($cp);

?>

Erreurs / Exceptions

Émets une alerte de type E_WARNING si la fonction de rappel n'est pas valide.

Voir aussi



gupnp_control_point_new

(PECL gupnp >= 0.1.0)

gupnp_control_point_newCrée un nouveau point de contrôle

Description

resource gupnp_control_point_new ( resource $context , string $target )

Crée un nouveau point de contrôle avec la cible spécifiée.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

target

La cible de recherche. target doit être un service ou un nom de périphérique, comme urn:schemas-upnp-org:service:WANIPConnection:1 ou urn:schemas-upnp-org:device:MediaRenderer:1.

Valeurs de retour

Un identifiant de point de contrôle.



gupnp_device_action_callback_set

(PECL gupnp >= 0.1.0)

gupnp_device_action_callback_setDéfinit la fonction de rappel pour un périphérique

Description

bool gupnp_device_action_callback_set ( resource $root_device , int $signal , string $action_name , mixed $callback [, mixed $arg ] )

Définit une fonction de rappel pour un signal et une action.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

signal

La valeur du signal. Le signal peut prendre une des valeurs suivantes :

GUPNP_SIGNAL_ACTION_INVOKED
Émis lorsqu'une action est invoquée. Le gestionnaire doit exécuter l'action et doit appeler soit la fonction gupnp_service_action_return(), soit la fonction gupnp_service_action_return_error().
GUPNP_SIGNAL_NOTIFY_FAILED
Émis lorsqu'une notification au client échoue.

action_name

Le nom de l'action.

callback

La fonction de rappel pour un certain signal. Typiquement, la fonction de rappel prend 3 arguments. Le premier est le paramètre service, le second, l'identifiant du paramètre action (dans le cas d'un signal GUPNP_SIGNAL_ACTION_INVOKED) ou le message du paramètre error (dans le cas d'un signal GUPNP_SIGNAL_NOTIFY_FAILED), et le troisième, le paramètre arg.

arg

Les données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING lorsque la fonction de rappel n'est pas valide, ou lorsque le signal n'est pas valide.

Voir aussi



gupnp_device_info_get_service

(PECL gupnp >= 0.1.0)

gupnp_device_info_get_serviceRécupère le service avec son type

Description

resource gupnp_device_info_get_service ( resource $root_device , string $type )

Récupère le service avec son type, ou FALSE si le service n'a pu être trouvé.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

type

Le type du service à récupérer.

Valeurs de retour

Un identifiant de service.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère des informations sur le service du périphérique

<?php

/* Crée un contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Création d'un périphérique racine */
$location "/BinaryLight1.xml";
$dev gupnp_root_device_new($context$location);

/* Définit le périphérique racine comme disponble */
gupnp_root_device_set_available($devtrue);

/* Récupère le service de basculement depuis le périphérique racine */
$service_type "urn:schemas-upnp-org:service:SwitchPower:1";
$service gupnp_device_info_get_service($dev$service_type);
if (!
$service) {
    die(
"Impossible de récupérer le service SwitchPower1\n");
}

?>



gupnp_device_info_get

(PECL gupnp >= 0.1.0)

gupnp_device_info_getRécupère les informations d'un périphérique racine

Description

array gupnp_device_info_get ( resource $root_device )

Récupère les informations d'un périphérique racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Retourne un tableau contenant les informations sur un périphérique racine (comme la localisation, l'URL, l'UDN, etc.).



gupnp_root_device_get_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_availableVérifie si un périphérique racine est disponible

Description

bool gupnp_root_device_get_available ( resource $root_device )

Vérifie si le périphérique racine root_device est disponible ou non (en plus de son existance).

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_root_device_get_relative_location

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_relative_locationRécupère le chemin relatif d'un périphérique racine

Description

string gupnp_root_device_get_relative_location ( resource $root_device )

Récupère le chemin relatif d'un périphérique racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Le chemin relatif du périphérique racine.



gupnp_root_device_new

(PECL gupnp >= 0.1.0)

gupnp_root_device_newCrée un nouveau périphérique racine

Description

resource gupnp_root_device_new ( resource $context , string $location , string $description_dir )

Crée un nouveau périphérique racine, télécharge et analyse automatiquement sa localisation.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

location

Localisation du fichier de description de ce périphérique, relatif à la racine HTTP.

Valeurs de retour

Un identifiant de périphérique racine.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère les informations de service du périphérique

<?php

/* Crée un contexte UPnP */
$context gupnp_context_new();

if (!
$context) {
 die(
"Erreur lors de la création du contexte GUPnP\n");
}

/* Crée le périphérique racine */
$location "/BinaryLight1.xml";
$dev gupnp_root_device_new($context$location);

?>

Voir aussi



gupnp_root_device_set_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_set_availableDéfinit si le périphérique racine est disponible ou non

Description

bool gupnp_root_device_set_available ( resource $root_device , bool $available )

Contrôle si le périphérique racine est disponible ou non (annonce sa présence).

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par gupnp_root_device_new().

available

Définissez à TRUE si root_device doit être disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_root_device_start

(PECL gupnp >= 0.1.0)

gupnp_root_device_startDémarre la boucle principale

Description

bool gupnp_root_device_start ( resource $root_device )

Démarre la boucle principale du serveur racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par gupnp_root_device_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_root_device_stop

(PECL gupnp >= 0.1.0)

gupnp_root_device_stopInterrompt la boucle principale

Description

bool gupnp_root_device_stop ( resource $root_device )

Interrompt la boucle principale du serveur racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_action_getRécupère les arguments de l'action spécifiée

Description

mixed gupnp_service_action_get ( resource $action , string $name , int $type )

Récupère les arguments de l'action spécifiée.

Liste de paramètres

action

Un identifiant d'action du service.

name

Le nom de la variable à récupérer.

type

Le type de la variable à récupérer. Peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

Valeurs de retour

La valeur de la variable.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type de la variable n'est pas correctement défini.

Voir aussi



gupnp_service_action_return_error

(PECL gupnp >= 0.1.0)

gupnp_service_action_return_errorRetourne le code erreur

Description

bool gupnp_service_action_return_error ( resource $action , int $error_code [, string $error_description ] )

Retourne le code erreur.

Liste de paramètres

action

Un identifiant d'action du service.

error_code

Le code erreur. Le signal peut être une des valeurs suivantes, ou défini par l'utilisateur :

GUPNP_CONTROL_ERROR_INVALID_ACTION
Le nom de l'action est invalide.
GUPNP_CONTROL_ERROR_INVALID_ARGS
Les arguments de l'action sont invalides.
GUPNP_CONTROL_ERROR_OUT_OF_SYNC
N'est plus synchronisé (obsolète).
GUPNP_CONTROL_ERROR_ACTION_FAILED
L'action a échoué.

error_description

La description de l'erreur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_action_return

(PECL gupnp >= 0.1.0)

gupnp_service_action_returnRetourne le succès de l'action

Description

bool gupnp_service_action_return ( resource $action )

Retourne le succès de l'action.

Liste de paramètres

action

Un identifiant d'action du service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_action_setDéfinit les valeurs à retourner par une action spécifique

Description

bool gupnp_service_action_set ( resource $action , string $name , int $type , mixed $value )

Définit les valeurs à retourner par une action spécifique.

Liste de paramètres

action

Un identifiant d'action du service.

name

Le nom de la variable à récupérer.

type

Le type de la variable à récupérer. Peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

value

La valeur de la variable à récupérer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type de la variable n'est pas correctement défini ou si la valeur n'est pas du type défini.

Voir aussi



gupnp_service_freeze_notify

(PECL gupnp >= 0.1.0)

gupnp_service_freeze_notifySuspend les notifications

Description

bool gupnp_service_freeze_notify ( resource $service )

Fait que les nouvelles notifications sont placées en file d'attente tant que la fonction gupnp_service_thaw_notify() n'est pas appelée.

Liste de paramètres

service

Un identifiant de service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_info_get_introspection

(PECL gupnp >= 0.1.0)

gupnp_service_info_get_introspectionRécupère l'introspection des ressources du service

Description

mixed gupnp_service_info_get_introspection ( resource $proxy [, mixed $callback [, mixed $arg ]] )

Récupère l'introspection des ressources du service ou enregistre une fonction de rappel si le paramètre correspondant est fourni.

Liste de paramètres

proxy

Un identifiant de proxy du service.

callback

La fonction de rappel à appeler lors l'objet d'introspection est prêt. Typiquement, la fonction de rappel prend 3 paramètres. Le premier est le paramètre introspection, le second, le paramètre error, et le troisième, le paramètre arg.

arg

Les données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Retourne TRUE si la fonction de rappel a été définie. Retourne l'identifiant de l'introspection si la fonction de rappel a été omise.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si la fonction de rappel n'est pas valide.



gupnp_service_info_get

(PECL gupnp >= 0.1.0)

gupnp_service_info_getRécupère les informations complètes d'un service

Description

array gupnp_service_info_get ( resource $proxy )

Récupère les informations complètes d'un service.

Liste de paramètres

proxy

Un identifiant de proxy du service.

Valeurs de retour

Retourne un tableau contenant les informations d'un service (comme la localisation, l'URL, l'UDN, etc.).



gupnp_service_introspection_get_state_variable

(PECL gupnp >= 0.1.0)

gupnp_service_introspection_get_state_variableRetourne le statut de la variable d'une donnée

Description

array gupnp_service_introspection_get_state_variable ( resource $introspection , string $variable_name )

Retourne le statut de la variable d'une donnée, par son nom fourni par le paramètre variable_name dans ce service.

Liste de paramètres

introspection

Un identifiant d'introspection.

variable_name

Le nom de la variable à récupérer.

Valeurs de retour

Retourne le statut de la variable d'une donnée, ou FALSE.



gupnp_service_notify

(PECL gupnp >= 0.1.0)

gupnp_service_notifyNotifie les clients connectés

Description

bool gupnp_service_notify ( resource $service , string $name , int $type , mixed $value )

Notifie les clients connectés que la propriété a changé en la valeur spécifiée.

Liste de paramètres

service

Un identifiant de service.

name

Le nom de la variable.

type

Le type de la variable. Peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

value

La valeur de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type de la variable n'est pas correctement définie, ou si la valeur ne correspond au type défini.

Voir aussi



gupnp_service_proxy_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_getEnvoi l'action au service et récupère la valeur

Description

mixed gupnp_service_proxy_action_get ( resource $proxy , string $action , string $name , int $type )

Envoi l'action avec les paramètres au service via le proxy de façon synchrone, et récupère la valeur.

Liste de paramètres

proxy

Un identifiant de proxy du service.

action

Une action.

name

Le nom de l'action.

type

Le type de la variable à récupérer. Le type peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

Valeurs de retour

Retourne la valeur de l'action.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type défini de l'action est incorrect, ou si l'envoi de l'action est impossible.

Voir aussi



gupnp_service_proxy_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_setEnvoie une action au service et définit la valeur

Description

bool gupnp_service_proxy_action_set ( resource $proxy , string $action , string $name , mixed $value , int $type )

Envoie une action avec des paramètres au service exposé par un proxy de façon synchrone, et définit la valeur.

Liste de paramètres

proxy

Un identifiant de service de proxy.

action

Une action.

name

Le nom de l'action.

value

La valeur de l'action.

type

Le type de l'action. Le type peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type n'est pas correctement défini, ou si l'on ne peut envoyer l'action.

Voir aussi



gupnp_service_proxy_add_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_add_notifyDéfinit une fonction de rappel pour la notification de modification d'une variable

Description

bool gupnp_service_proxy_add_notify ( resource $proxy , string $value , int $type , mixed $callback [, mixed $arg ] )

Définit une fonction de rappel à appeler à chaque réception d'une notification de modification d'une variable.

Liste de paramètres

proxy

Un identifiant de service de proxy.

value

La variable pour laquelle nous devons ajouter une notification.

type

Le type de l'action. Le type peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

callback

La fonction de rappel à appeler lors de modification de variables. Typiquement, la fonction de rappel prend 3 paramètres ; le premier, le paramètre variable, le second, le paramètre value, et le troisième, arg.

arg

Données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_proxy_callback_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_callback_setDéfinit la fonction de rappel pour un service de proxy pour un signal donné

Description

bool gupnp_service_proxy_callback_set ( resource $proxy , int $signal , mixed $callback [, mixed $arg ] )

Définit la fonction de rappel pour un service de proxy pour un signal donné.

Liste de paramètres

proxy

Un identifiant de service de proxy.

signal

La valeur du signal.

GUPNP_SIGNAL_SUBSCRIPTION_LOST
Émis lorsque la souscription à ce service a été perdue en raison d'une erreur sur la condition.

callback

La fonction de rappel pour un signal donné. Typiquement, la fonction de rappel prend 2 arguments ; le premier, le paramètre error, et le second, le paramètre arg.

arg

Données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING lorsque la fonction de rappel n'est pas valide ou lorsque le signal n'est pas valide.



gupnp_service_proxy_get_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_get_subscribedVérifie si la souscription à un service est valide

Description

bool gupnp_service_proxy_get_subscribed ( resource $proxy )

Vérifie si la souscription à un service est valide.

Liste de paramètres

proxy

Un identifiant à un service de proxy.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_proxy_remove_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_remove_notifyAnnule une notification de modification de variable

Description

bool gupnp_service_proxy_remove_notify ( resource $proxy , string $value )

Annule une notification de modification de variable.

Liste de paramètres

proxy

un identifiant de service de proxy.

value

La variable dont nous souhaitons ajouter une notification.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_proxy_send_action

(PECL gupnp >= 0.2.0)

gupnp_service_proxy_send_actionEnvoie une action avec plusieurs paramètres de façon synchrone

Description

array gupnp_service_proxy_send_action ( resource $proxy , string $action , array $in_params , array $out_params )

Envoie une action avec les paramètres in_params au service exposé par le proxy de façon synchrone et retourne out_params avec des valeurs, ou FALSE si une erreur survient.

Liste de paramètres

proxy

Un identifiant de service de proxy.

action

Une action.

in_params

Un tableau de paramètres. Chaque entrée de in_params est supposée contenir un tableau de nom, type et valeur de chaque paramètre.

out_params

Un tableau de paramètres résultants. Chaque entrée de out_params est supposée contenir un tableau de nom, type de chaque paramètre.

Valeurs de retour

Retourne le tableau de valeurs out_params ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le paramètre in_params ou le paramètre out_params n'est pas correctement défini, ou si l'action n'a pu être envoyée.

Voir aussi



gupnp_service_proxy_set_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_set_subscribedS'abonne (se désabonne) à un service

Description

bool gupnp_service_proxy_set_subscribed ( resource $proxy , bool $subscribed )

S'abonne (se désabonne) à un service.

Liste de paramètres

proxy

Un identifiant de service de proxy.

subscribed

Définit à TRUE pour s'abonne au service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



gupnp_service_thaw_notify

(PECL gupnp >= 0.1.0)

gupnp_service_thaw_notifyEnvoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles

Description

bool gupnp_service_thaw_notify ( resource $service )

Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles.

Liste de paramètres

service

Un identifiant de service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




Hyperwave


Introduction

Hyperwave a été développé par » IICM à Graz. Son nom original était Hyper-G et il a pris le nom de Hyperwave lors de sa commercialisation (en 1996).

Hyperwave n'est pas gratuit. La version actuelle est la 5.5, disponible à » http://www.hyperwave.com/. Une version limitée à 30 jours peut être demandée.

Voir aussi le module Hyperwave API.

HIS est un système d'information similaire à une base de données, (HIS, Hyperwave Information Server). HIS se concentre sur l'enregistrement et la gestion des documents. Un document peut être n'importe quelle donnée, qui peut être stockée dans un fichier. Chaque document est accompagné par un enregistrement. Cet enregistrement contient des méta données à propos du document. Ces méta données sont des listes d'attributs qui peuvent être étendues par l'utilisateur. Un attribut est une paire clé/valeur de la forme : clé =valeur. L'enregistrement complet contient autant de paires que le désire l'utilisateur. Le nom d'un attribut n'a pas besoin d'être unique, c'est-à-dire qu'une même clé peut apparaître plusieurs fois dans un enregistrement. Cela peut être utile si vous devez donner un titre à votre document en plusieurs langues, par exemple. Dans un cas pareil, la convention est que chaque valeur de titre est précédée par deux lettres et deux points, tel que : "fr:Titre en français" ou "de:Titel in deutsch". D'autres attributs comme une description ou des mots-clés sont aussi susceptibles de recourir à ce genre de procédé. Vous pouvez aussi remplacer l'abréviation de langage par une autre chaîne, tant qu'elle est séparée de la valeur par les deux points.

Chaque enregistrement a une représentation native qui contient toutes les paires clé/valeur, séparées par un retour à la ligne. L'extension Hyperwave reconnaît une autre représentation qui est un tableau associatif, où les attributs servent de clés. Les attributs multilingues étant gérés sous la forme d'un autre tableau associatif, dont les clés sont les chaînes de langue. En fait, tous les attributs multiformes sont gérés sous la forme de tableau associatif. (Cela n'est pas encore complètement codé. Uniquement les attributs de titre, description et mots-clé sont traités correctement).

En dehors des documents, tous les hyperliens contenus dans un document sont enregistrés dans un autre enregistrement. Les hyperliens qui sont à l'intérieur d'un document en seront supprimés, et enregistrés dans des objets particuliers au moment de l'insertion dans la base de données. L'enregistrement des hyperliens contient les informations d'origine et d'objectif. Afin d'accéder au document original, vous devrez lire le document sans les liens, puis lire les liens et les réinsérer (les fonctions hw_pipedocument() et hw_gettext() le font pour vous. L'avantage de séparer les liens du document est évident : une fois qu'un document, cible d'un hyperlien, a été renommé, le liens peut facilement être modifié. Le document contenant le lien n'est pas modifié pour autant. Vous pouvez même ajouter un lien à un document sans le modifier.

Dire que hw_pipedocument() et hw_gettext() font l'insertion automatiquement n'est pas aussi simple qu'il y paraît. L'insertion implique une certaine hiérarchie de documents. Sur un serveur web, la hiérarchie est fournie par le système de fichiers, mais Hyperwave dispose de sa propre hiérarchie et les noms de fichiers ne reflètent pas la position d'un objet dans cette hiérarchie. Ainsi, la création de liens requiert en premier lieu la construction de la hiérarchie et de l'espace des noms dans une hiérarchie web et un espace de nom web. La différence fondamentale entre Hyperwave et le web est qu'il y a une distinction claire entre les noms et la hiérarchie dans Hyperwave. Le nom ne contient aucune information à propos de la position de l'objet dans la hiérarchie. Sur le web, le nom contient les informations de localisation dans la hiérarchie. Cela conduit à deux méthodes d'accès : soit la hiérarchie Hyperwave et le nom de l'objet sont inscrits dans l'URL. Pour simplifier les choses, une deuxième approche est pratiquée. L'objet Hyperwave de nom "mon_objet" correspond à l'URL "http://hote/mon_objet", peu importe alors où il est rangé dans la hiérarchie. Un objet dont le nom est "parent/mon_objet" peut être le fils de l'objet "mon_objet" dans la hiérarchie Hyperwave, bien que ce soit le contraire en convention web, et cela risque de perturber l'utilisateur.

Ayant pris cette décision, un deuxième problème surgit : comment faire l'interface avec PHP ? L'URL http://hote/mon_objet n'appellera aucun script PHP à moins que vous ne demandiez à votre serveur web de le remplacer par autre chose, comme : "http://host/php3_script/mon_objet" et le script "php3_script" utilise la variable $PATH_INFO pour rechercher l'objet "mon_objet" sur le serveur Hyperwave. Il y a juste un petit inconvénient, qui peut facilement être corrigé. Réécrire une URL ne vous permettra aucun accès aux autres documents du serveur web. Un script de recherche dans le serveur Hyperwave serait impossible. Il vous faudra donc au moins une autre règle pour exclure certaines URL, comme celles qui commencent par http://host/Hyperwave. Voici, de manière simple, comment partager un espace de nom entre un serveur web et un serveur Hyperwave serveur.

Basé sur le mécanisme précédent, on trouve l'insertion dans les documents.

Il est plus compliqué d'avoir PHP ne fonctionnant pas comme un module de serveur, ou un script CGI, mais comme une application indépendante. Dans ce cas, il est utile d'inscrire la hiérarchie et le nom de fichier Hyperwave dans le système de fichier. Mais comme cela risque d'entrer en conflit avec le séparateur de dossier ("/"), il faut le remplacer par un autre caractère,. "_".

Le protocole réseau pour communiquer avec un serveur Hyperwave est appelé » HG-CSP (Hyper-G Client/Server Protocol). Il est basé sur des messages qui initient des actions, comme lire l'en-tête de fichier. Dans les premières versions de Hyperwave Server, deux clients natifs (Harmony, Amadeus) étaient fournis pour permettre la communication avec le serveur. Ils ont disparu lors de la commercialisation de Hyperwave. En tant qu'ersatz, un client appelé wavemaster est désormais fourni. wavemaster est un espèce de convertisseur de protocole de HTTP en HG-CSP. L'idée est de faire toute l'administration de la base et la visualisation des documents par une interface web. Le wavemaster implémente un jeu d'emplacement pour certaines actions de personnalisation de l'interface. Ce jeu est appelé PLACE language. PLACE pêche encore par le manque de nombreuses fonctions de programmation et le manque d'évolutivité. Cela a conduit à l'utilisation de JavaScript ce qui ne rend pas la vie facile.

Que PHP supporte Hyperwave permet de combler ces manques. PHP implémente tous les messages définis par HG-CSP mais fourni d'autres commandes puissantes, comme celle de lire des documents complets.

Hyperwave dispose de sa propre terminologie pour localiser certaines informations. Cette terminologie a été largement étendue. Presque toutes les fonctions utilisent l'un des types de données suivants :

  • object ID : un entier unique pour chaque objet sur le serveur Hyperwave. C'est aussi un des attributs de l'enregistrement de l'objet (ObjectID). Les object ids sont souvent utilisés comme paramètre d'entrée pour spécifier un objet.
  • object record : une chaîne contenant des paires clé=valeur. Les paires sont séparées par un retour à la ligne. Un enregistrement d'objet peut facilement être converti en tableau, avec la fonction hw_objrec2array(). De nombreuses fonctions retournent un objet record. Ces fonctions ont leur nom qui finit par obj.
  • object array : un tableau associatif qui contient tous les attributs d'un objet. La clé est l'attribut. Si un attribut apparaît plusieurs fois, il sera représenté sous la forme d'un tableau associatif ou indexé. Les attributs qui dépendent des langues (comme title, keyword ou description) seront représentés sous la forme d'un tableau associatif dont les clés seront les abréviations de langues. Tous les autres attributs à valeur multiple prendront la forme d'un tableau indexé.
  • hw_document : ce type est un nouveau type de données, qui contient le document lui-même, comme HTML, PDF etc. Il est optimisé pour les documents HTML mais peut s'utiliser avec n'importe quel format.

De nombreuses fonctions qui retournent un tableau d'enregistrements, retournent aussi un tableau associé, avec des informations statistiques. Ce tableau est le dernier élément du tableau d'enregistrements. Les statistiques contiennent les entrées suivantes :

Hidden
Nombre d'objets dont l'attribut PresentationHints est Hidden.
CollectionHead
Nombre d'objets dont l'attribut PresentationHints est CollectionHead.
FullCollectionHead
Nombre d'objets dont l'attribut PresentationHints est FullCollectionHead.
CollectionHeadNr
Index du premier objet du tableau d'enregistrement avec l'attribut PresentationHints à CollectionHead.
FullCollectionHeadNr
Index du premier objet du tableau d'enregistrement avec l'attribut PresentationHints est FullCollectionHead.
Total
Total : nombre d'enregistrements.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requiert un serveur Hyperwave, téléchargeable sur le site de » http://www.hyperwave.com/.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/hyperwave.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration HyperWave
Nom Défaut Modifiable Historique
hyperwave.allow_persistent "0" PHP_INI_SYSTEM Disponible depuis PHP 4.3.2. Supprimé depuis PHP 5.0.0.
hyperwave.default_port "418" PHP_INI_ALL Supprimé depuis PHP 5.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

HW_ATTR_LANG (entier)
HW_ATTR_NR (entier)
HW_ATTR_NONE (entier)


Intégration avec Apache

L'extension Hyperwave est utilisée de manière optimale lorsque PHP est compilé comme module Apache. Dans ce cas, le serveur Hyperwave sous-jacent peut être caché quasiment totalement aux utilisateurs, si Apache utilise son moteur d'écriture. Les explications suivantes vous éclaireront :

Étant donné que PHP avec l'extension Hyperwave et Apache tend à remplacer la solution native basée sur Wavemaster, je vais supposer que le serveur Apache servira seulement d'interface Hyperwave. Ce n'est pas nécessaire, mais cela simplifie grandement la configuration. Le concept est très simple. Premièrement, vous avez besoin d'un script PHP qui évalue la variable $_ENV['PATH_INFO'] et considère que cette valeur est un objet Hyperwave. Appelons ce script "Hyperwave". L'URL http://votre.hote/Hyperwave/nom_objet retourne l'objet Hyperwave dont le nom est "nom_objet". Le script doit alors réagir suivant le type de l'objet. Si c'est un groupe, il devra probablement retourner une liste de fils. Si c'est un document, il pourra retourner son type MIME et son contenu. Une amélioration peut être obtenue en utilisant le moteur de réécriture d'Apache. D'un point de vue utilisateur, il est plus direct si l'URL http://votre.hote/nom_objet retourne l'objet. La règle de réécriture est simple :

Exemple #1 Configuration d'Apache pour HyperWave

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Maintenant, toutes les URL pointent sur un objet Hyperwave. Cela conduit à un problème simple. Il n'y a pas d'autre façon d'exécuter, c'est-à-dire rechercher, un autre script que ce script "Hyperwave". Cela pourra être corrigé avec une autre règle telle que :

Exemple #2 Configuration d'Apache pour HyperWave (2)

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
Le dossier /usr/local/apache/htdocs/hw sera ainsi réservé pour d'autres scripts et fichiers. Assurez-vous que cette règle est évaluée avant la première règle que nous avons défini. Il y a juste un léger inconvénient : tous les objets Hyperwave qui commencent par "hw/" seront cachés. Alors, assurez-vous que vous n'utilisez pas de tels noms. Si vous avez besoin d'autres dossiers, par exemple, un dossier d'images, ajoutez simplement d'autres règles. N'oubliez pas de lancer le moteur de réécriture avec.

Exemple #3 Démarrer les règles de réécriture d'Apache pour HyperWave

RewriteEngine on
Mon expérience m'a montré que vous aurez besoin des scripts suivants :
  • Retourne l'objet lui-même
  • Pour autoriser la recherche
  • S'identifier
  • Choisir une configuration
  • Un script pour chaque fonction supplémentaire, comme afficher un objet, afficher des informations sur les utilisateurs, afficher le statut du serveur, etc.

Une alternative pour le moteur de réécriture est l'utilisation de la directive Apache ErrorDocument, mais sachez alors que ErrorDocument n'effectue pas les redirections de méthodes POST.



Fonctions Hyperwave

À faire

Il reste encore beaucoup à faire :

  • La fonction hw_InsertDocument doit être séparée en deux : hw_insertobject() et hw_putdocument().
  • Les noms de nombreuses fonctions ne sont pas encore fixés.
  • La majorité des fonctions requièrent la connexion courante comme premier paramètre. Cela conduit à beaucoup de frappe clavier, même s'il n'y a souvent qu'une seule connexion en jeu. Une connexion par défaut améliorerait ceci.
  • La conversion depuis un objet record en un objet array a besoin de gérer les attributs multiples.


hw_Array2Objrec

(PHP 4)

hw_Array2ObjrecConvertit un tableau en un objet

Description

string hw_array2objrec ( array $object_array )

Convertit un object_array en un objet. Les attributs multiples tels que "Title" en différentes langues seront traités correctement.

Liste de paramètres

object_array

Le tableau.

Valeurs de retour

Retourne l'objet.

Voir aussi



hw_changeobject

(PHP 4)

hw_changeobjectChange les attributs d'un objet (obsolète)

Description

bool hw_changeobject ( int $link , int $objid , array $attributes )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



hw_Children

(PHP 4)

hw_ChildrenListe les identifiants d'objets fils Hyperwave

Description

array hw_children ( int $connection , int $objectID )

Liste les identifiants d'objets fils Hyperwave.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant d'objet.

Valeurs de retour

Retourne un tableau avec les identifiants des objets fils. Chaque identifiant d'objet est celui d'un des fils du groupe dont l'identifiant est objectID. Ce tableau contient tous les fils, documents et groupes.



hw_ChildrenObj

(PHP 4)

hw_ChildrenObjListe des objets records des objets fils

Description

array hw_childrenobj ( int $connection , int $objectID )

Retourne un tableau avec des objets records.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant d'objet.

Valeurs de retour

Retourne un tableau avec des objets records. Chaque objet records est celui d'un des fils du groupe dont l'id est objectID. Ce tableau contient tous les fils, documents et groupes.



hw_Close

(PHP 4)

hw_CloseFerme la connexion Hyperwave

Description

bool hw_close ( int $connection )

Ferme la connexion Hyperwave.

Liste de paramètres

connection

L'identifiant de connection.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



hw_Connect

(PHP 4)

hw_ConnectOuvre une connexion Hyperwave

Description

int hw_connect ( string $host , int $port [, string $username ], string $password )

Ouvre une connexion Hyperwave. Vous pouvez avoir plusieurs connexions simultanées.

Liste de paramètres

host

Le nom du serveur hôte.

port

Le numéro du port du serveur.

username

Le nom d'utilisateur Hyperwave. S'il est omis, aucune identification avec le serveur ne sera effectuée. Cela correspond à l'utilisation d'un utilisateur anonyme.

password

Le mot de passe pour l'utilisateur username. Garder à l'esprit que le mot de passe n'est pas crypté.

Valeurs de retour

Retourne un index de connection en cas de succès, ou FALSE si la connection n'a pû être effectuée.

Voir aussi



hw_connection_info

(PHP 4)

hw_connection_infoAffiche des informations sur la connexion au serveur Hyperwave

Description

void hw_connection_info ( int $link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



hw_cp

(PHP 4)

hw_cpCopie des objets HyperWave

Description

int hw_cp ( int $connection , array $object_id_array , int $destination_id )

Copie les objets ayant les identifiants object_id_array, et crée un groupe ayant l'objet id destination_id.

Liste de paramètres

connection

L'identifiant de connection.

object_id_array

Un tableau d'objets ids.

destination_id

L'identifiant de la collection cible.

Valeurs de retour

Retourne le nombre d'objets copiés.

Voir aussi



hw_Deleteobject

(PHP 4)

hw_DeleteobjectEfface des objets

Description

bool hw_deleteobject ( int $connection , int $object_to_delete )

Efface l'objet dont l'identifiant est object_to_delete. Toutes les instances de l'objet object_to_delete seront effacées.

Liste de paramètres

connection

L'idenfitiant de connection.

object_to_delete

L'identifiant de l'objet.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_DocByAnchor

(PHP 4)

hw_DocByAnchorIdentifiant d'objet de l'objet dans l'ancrage

Description

int hw_docbyanchor ( int $connection , int $anchorID )

Retourne l'identifiant d'objet de l'objet dans l'ancrage anchorID.

Liste de paramètres

connection

L'identifiant de connection.

anchorID

L'identifiant de l'ancrage.

Valeurs de retour

Retourne l'identifiant d'objet du document.



hw_DocByAnchorObj

(PHP 4)

hw_DocByAnchorObjAttributs de l'objet dans l'ancrage

Description

string hw_docbyanchorobj ( int $connection , int $anchorID )

Retourne les attributs de l'objet dans l'ancrage anchorID.

Liste de paramètres

connection

L'identifiant de connection.

anchorID

L'identifiant de l'ancrage.

Valeurs de retour

Retourne un objet d'enregistrement.



hw_Document_Attributes

(PHP 4)

hw_Document_AttributesObject record de hw_document

Description

string hw_document_attributes ( int $hw_document )

Retourne les attributs du document.

Pour la compatibilité ascendante, hw_documentattributes() est aussi accepté, mais il est déconseillé.

Liste de paramètres

hw_document

L'identifiant du document.

Valeurs de retour

Retourne l'objet record du document.

Voir aussi



hw_Document_BodyTag

(PHP 4)

hw_Document_BodyTagBalise de corps d'un document

Description

string hw_document_bodytag ( int $hw_document [, string $prefix ] )

Retourne la balise BODY du document hw_document. Si le document est un document HTML, la balise BODY doit être affichée avant le document.

Pour la compatibilité ascendante, hw_documentbodytag() est aussi accepté, mais il est déconseillé.

Liste de paramètres

hw_document

L'identifiant du document.

prefix

Valeurs de retour

Retourne la balise BODY, sous la forme d'une chaîne de caractères.

Voir aussi



hw_Document_Content

(PHP 4)

hw_Document_ContentRécupère le contenu d'un document

Description

string hw_document_content ( int $hw_document )

Récupère le contenu d'un document.

Liste de paramètres

hw_document

L'idenfitiant du document.

Valeurs de retour

Retourne la balise BODY du document hw_document. Si le document est un document HTML, la balise BODY doit être affichée avant le document.

Voir aussi



hw_Document_SetContent

(PHP 4)

hw_Document_SetContentModifie/remplace le contenu d'un document

Description

bool hw_document_setcontent ( int $hw_document , string $content )

Modifie/remplace le contenu du document hw_document par la valeur de content. Si le document est un document HTML, le contenu représente tout ce qui est placé au-delà de la balise BODY. Les informations de HEAD et de la balise BODY sont enregistrées dans les attributs. Si vous fournissez aussi ces informations dans le corps du document, le serveur Hyperwave modifiera les attributs. Cela n'est cependant pas une bonne idée. Si la fonction échoue, l'ancien contenu est restauré.

Liste de paramètres

hw_document

L'identifiant du document.

content

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_Document_Size

(PHP 4)

hw_Document_SizeTaille d'un document

Description

int hw_document_size ( int $hw_document )

Récupère la taille d'un document.

Pour la compatibilité ascendante, hw_documentsize() est aussi accepté, mais il est déconseillé.

Liste de paramètres

hw_document

L'identifiant du document.

Valeurs de retour

Retourne la taille en octets du document.

Voir aussi



hw_dummy

(PHP 4)

hw_dummyFonction sans objet pour Hyperwave

Description

string hw_dummy ( int $link , int $id , int $msgid )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



hw_EditText

(PHP 4)

hw_EditTextRécupère un document texte

Description

bool hw_edittext ( int $connection , int $hw_document )

Charge le texte du document sur le serveur. Les attributs du document ne doivent pas être modifiés tant que le document est en train d'être édité.

Cette fonction n'est disponible que sur les documents texte. Elle n'ouvrira pas de canal de transfert, et donc, bloquera le script durant le transfert.

Liste de paramètres

connection

L'identifiant de connection.

hw_document

L'identifiant du document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_Error

(PHP 4)

hw_ErrorRetourne le code d'erreur

Description

int hw_error ( int $connection )

Retourne le dernier code erreur, issue de la dernière commande.

Liste de paramètres

connection

L'identifiant de connection.

Valeurs de retour

Retourne le dernier code erreur, ou 0 s'il n'y a pas d'erreur.

Voir aussi



hw_ErrorMsg

(PHP 4)

hw_ErrorMsgRetourne un message d'erreur

Description

string hw_errormsg ( int $connection )

Retourne une chaîne contenant le dernier message d'erreur.

Liste de paramètres

connection

L'identifiant de connection.

Valeurs de retour

Retourne une chaîne contenant le dernier message d'erreur ou 'No Error' (pas d'erreur). Si FALSE est retourné, cela signifie que la fonction a échoué.

Voir aussi



hw_Free_Document

(PHP 4)

hw_Free_DocumentLibère la mémoire

Description

bool hw_free_document ( int $hw_document )

Libère la mémoire occupée par le document Hyperwave.

Liste de paramètres

hw_document

L'idenfitiant du document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



hw_GetAnchors

(PHP 4)

hw_GetAnchorsIdentifiants des ancrages d'un document

Description

array hw_getanchors ( int $connection , int $objectID )

Retourne un tableau contenant les identifiants des ancrages du document objectID.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

Valeurs de retour

Retourne un tableau d'objet ids.



hw_GetAnchorsObj

(PHP 4)

hw_GetAnchorsObjAttributs des ancrages d'un document

Description

array hw_getanchorsobj ( int $connection , int $objectID )

Retourne un tableau d'attributs des ancrages du document objectid.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

Valeurs de retour

Retourne un tableau d'objet records.



hw_GetAndLock

(PHP 4)

hw_GetAndLockRetourne les attributs et verrouille l'objet

Description

string hw_getandlock ( int $connection , int $objectID )

Retourne les attributs et verrouille l'objet objectID. Le verrouillage empêchera les autres utilisateurs d'y accéder jusqu'à ce qu'il soit déverrouillé.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

Valeurs de retour

Retourne l'objet record pour l'objet dont l'ID est objectID.

Voir aussi



hw_GetChildColl

(PHP 4)

hw_GetChildCollIdentifiant d'objets des groupes fils

Description

array hw_getchildcoll ( int $connection , int $objectID )

Retourne un tableau contenant les identifiants d'objets des groupes fils du groupe objectID. Cette fonction ne retournera pas d'identifiants d'objets des documents fils.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

Valeurs de retour

Retourne un tableau d'objet ids.

Voir aussi



hw_GetChildCollObj

(PHP 4)

hw_GetChildCollObjObjet record d'un groupe d'enfants

Description

array hw_getchildcollobj ( int $connection , int $objectID )

Retourne un tableau d'object record. Chaque object record appartient à un groupe d'enfants de la collection objectID. La fonction ne retournera pas de documents enfants.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant d'objet.

Valeurs de retour

Retourne un tableau d'objet records.

Voir aussi



hw_GetChildDocColl

(PHP 4)

hw_GetChildDocCollIdentifiant des documents fils d'un groupe

Description

array hw_getchilddoccoll ( int $connection , int $objectID )

Retourne un tableau avec les id des documents fils d'une collection.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

Valeurs de retour

Retourne un tableau d'objets ids.

Voir aussi



hw_GetChildDocCollObj

(PHP 4)

hw_GetChildDocCollObjAttributs des documents fils d'un groupe

Description

array hw_getchilddoccollobj ( int $connection , int $objectID )

Retourne un tableau contenant les attributs des documents fils du groupe objectID.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

Valeurs de retour

Retourne un tableau d'objets records.

Voir aussi



hw_GetObject

(PHP 4)

hw_GetObjectLit les attributs d'un objet Hyperwave

Description

mixed hw_getobject ( int $connection , mixed $objectID [, string $query ] )

Retourne les attributs de l'objet dont l'identifiant est objectid, si le second paramètre est un entier.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'idenfitiant de l'objet, ou un tableau d'identifiants.

query

La requête a la syntaxe suivante :

<expr> ::= "(" <expr> ")" |
           "!" &lt;expr> |          /* NOT */
           <expr> "||" <expr> |  /* OR */
           <expr> "&amp;&amp;" <expr> |  /* AND */
           <attribute> <operator> <value>

<attribute> ::= /* n'importe quel attribut (Title, Author, DocumentType ...) */

<operator> ::= "=" |    /* égal */
               "<" |    /* moins que (comparaison de type chaîne) */
               ">" |    /* plus que (comparaison de type chaîne) */
               "~"      /* recherche par expression rationnelle */
query permet de sélectionner une nouvelle fois certains objets dans la liste des objets donnés. Contrairement aux autres requêtes, celle-ci peut utiliser des attributs non indexés. Le nombre d'attributs retournés dépend de la requête de la requête et des autorisations d'accès aux objets.

Valeurs de retour

Retourne un objet record pour l'identifiant d'objet donné, si le second paramètre est un entier.

Si ce second paramètre est un tableau, la fonction retournera un tableau d'attributs. Dans ce cas, le dernier paramètre est aussi évalué.

Voir aussi



hw_GetObjectByQuery

(PHP 4)

hw_GetObjectByQueryRecherche un objet

Description

array hw_getobjectbyquery ( int $connection , string $query , int $max_hits )

Recherche un objet sur tout le serveur et retourne un tableau d' object ids.

Liste de paramètres

connection

L'identifiant de connection.

query

La requête ne fonctionnera qu'avec des attributs indexés.

max_hits

Le nombre maximum d'objets est limité par max_hits. Si max_hits vaut -1, il n'y a pas de limite.

Valeurs de retour

Retourne un tableau d'objets ids.

Voir aussi



hw_GetObjectByQueryColl

(PHP 4)

hw_GetObjectByQueryCollRecherche un objet dans un groupe

Description

array hw_getobjectbyquerycoll ( int $connection , int $objectID , string $query , int $max_hits )

Recherche un objet sur tout le groupe objectID et retourne un tableau d'object records.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de la collection.

query

La requête ne fonctionnera qu'avec des attributs indexés.

max_hits

Le nombre maximum d'objet est limité par objectID. Si objectID vaut -1 il n'y a pas de limite.

Valeurs de retour

Retourne un tableau d'objets ids.

Voir aussi



hw_GetObjectByQueryCollObj

(PHP 4)

hw_GetObjectByQueryCollObjRecherche un objet dans un groupe

Description

array hw_getobjectbyquerycollobj ( int $connection , int $objectID , string $query , int $max_hits )

Recherche un objet sur tout le groupe objectID et retourne un tableau d'object records.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de la collection.

query

La requête ne fonctionnera qu'avec des attributs indexés.

max_hits

Le nombre maximum d'objets est limité par objectID. Si objectid vaut -1 il n'y a pas de limite.

Valeurs de retour

Retourne un tableau d'objets records.

Voir aussi



hw_GetObjectByQueryObj

(PHP 4)

hw_GetObjectByQueryObjRecherche un objet

Description

array hw_getobjectbyqueryobj ( int $connection , string $query , int $max_hits )

Recherche un objet sur tout le serveur et retourne un tableau d' object records.

Liste de paramètres

connection

L'identifiant de connection.

query

La requête ne fonctionnera qu'avec des attributs indexés.

max_hits

Le nombre maximum d'objets est limité par max_hits. Si max_hits vaut -1, il n'y a pas de limite.

Valeurs de retour

Retourne un tableau d'objets records.

Voir aussi



hw_GetParents

(PHP 4)

hw_GetParentsIdentifiant d'objet des parents

Description

array hw_getparents ( int $connection , int $objectID )

Retourne un tableau indexé avec les identifiants des objets parents de objectID.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant d'objet.

Valeurs de retour

Retourne un tableau indexé avec les identifiants des objets parents de objectID.



hw_GetParentsObj

(PHP 4)

hw_GetParentsObjAttributs des parents

Description

array hw_getparentsobj ( int $connection , int $objectID )

Retourne un tableau indexé, avec les attributs et un tableau associé d'informations statistiques à propos des attributs. Ce tableau associé est le dernier élément du tableau retourné. Chaque attribut appartient au père de l'objet objectID.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant d'objet.

Valeurs de retour

Retourne un tableau indexé, avec les attributs et un tableau associé d'informations statistiques à propos des attributs. Ce tableau associé est le dernier élément du tableau retourné.




hw_GetRemote

(PHP 4)

hw_GetRemoteRetourne un document distant

Description

int hw_getremote ( int $connection , int $objectID )

Retourne un document distant.

Les documents distants sont, en Hyperwave, des documents lus depuis une source externe. La plupart des documents éloignés sont des pages web externes, ou des requêtes sur une base de données.

Afin de pouvoir accéder à des sources externes, grâce aux documents distants, Hyperwave introduit l'interface HGI (Hyperwave Gateway Interface) qui est similaire à CGI. Actuellement, seuls les protocoles de FTP, HTTP et certaines bases de données sont accessibles avec HGI.

hw_getremote() retourne le document de la source distante. Si vous voulez utiliser cette fonction, il vous faut vous familiariser avec HGIs. Il est aussi préférable d'utiliser PHP plutôt que Hyperwave pour accéder aux sources externes. Le support des bases de données sera plus difficile avec Hyperwave que PHP.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

Valeurs de retour

Retourne le document distant.

Voir aussi



hw_getremotechildren

(PHP 4)

hw_getremotechildrenRetourne les fils d'un document distant

Description

mixed hw_getremotechildren ( int $connection , string $object_record )

Retourne les fils d'un document distant. Les fils d'un document distant sont des documents distants eux mêmes. Cela est cohérent si une requête sur une base de données doit être rendue plus sélective, comme expliqué dans Hyperwave Programmers' Guide.

Si vous voulez utiliser cette fonction, vous devez être très avec familier HGIs. Il vaut mieux PHP plutôt que Hyperwave pour accéder aux fichiers distants. Le support de base de données y est bien meilleur.

Liste de paramètres

connection

L'identifiant de connection.

object_record

L'objet record.

Valeurs de retour

Si le nombre de fils est 1, la fonction va retourner le document lui-même, formaté Hyperwave Gateway Interface (HGI). Si le nombre de fils est supérieur à 1, la fonction retournera un tableau d'attributs qui pourra servir à une nouvelle requête avec hw_getremotechildren(). Ces attributs sont virtuels et n'existent pas sur le serveur Hyperwave, et ainsi, n'ont pas d'identifiant d'objet valide. L'ordre exact de ces objets est du ressort de HGI.

Voir aussi



hw_GetSrcByDestObj

(PHP 4)

hw_GetSrcByDestObjRetourne les ancrages qui pointent sur un objet

Description

array hw_getsrcbydestobj ( int $connection , int $objectID )

Retourne les attributs de tous les ancrages qui pointent sur objectID.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet. L'objet peut être soit un document, soit un ancrage, de type destination.

Valeurs de retour

Retourne un tableau d'objets records.

Voir aussi



hw_GetText

(PHP 4)

hw_GetTextRécupère un document texte

Description

int hw_gettext ( int $connection , int $objectID [, mixed $rootID/prefix ] )

Retourne le document de l'objet objectID. Si le document possède des ancrages qui peuvent être insérés, ils le seront déjà.

hw_gettext() n'est opérationnelle qu'avec des documents de pur texte. Elle n'ouvrira pas de canal spécial de transfert et, ainsi, bloquera le script le temps du transfert.

Liste de paramètres

connection

L'identifiant de connection.

objectID

L'identifiant de l'objet.

rootID/prefix

L'option rootID/prefix peut être une chaîne ou un entier. Si c'est un entier, il détermine la méthode d'insertion des liens dans le document. Par défaut, il vaut 0 et les liens seront construits en fonction du nom de l'objet cible. Cela sert beaucoup dans les applications web. Si un lien pointe sur un objet avec le nom 'film_internet' le lien HTML sera <A HREF="/film_internet">. La position réelle de la source et de la cible dans la hiérarchie seront ignorés. Vous devrez modificer votre site web pour qu'il réécrive les URL, comme '/mon_script.php3/film_internet'. 'mon_script.php3' devra analyser $PATH_INFO et savoir rechercher le document '/mon_script.php3/film_internet'. Si vous ne voulez pas de ce comportement, vous pouvez affecter à rootID/prefix n'importe quel prefixe. Dans ce cas, ce sera une chaîne.

Si rootID/prefix est un entier différent de 0 le lien sera construit avec tous les noms de la hiérarchie, en commençant à l'objet d'identifiant rootID/prefix, et séparé par des slash.

Si, par exemple, le document 'film_internet' est situé à 'a-b-c-film_internet' et '-' qui sert de séparateur hiérarchique de niveau sur le serveur Hyperwave et le document source est situé dans 'a-b-d-source' alors, le lien HTML sera : <A HREF="../c/film_internet">. Cela est très pratique si vous voulez télécharger tout le contenu d'un serveur sur un disque, et faire une carte du système sur votre disque.

Valeurs de retour

Retourne le document texte.

Voir aussi



hw_getusername

(PHP 4)

hw_getusernameNom de l'utilisateur actuellement identifié

Description

string hw_getusername ( int $connection )

Retourne le nom d'utilisateur utilisé par la connexion.

Liste de paramètres

connection

L'identifiant de connection.

Valeurs de retour

Retourne le nom de l'utilisateur, sous la forme d'une chaîne de caractères.



hw_Identify

(PHP 4)

hw_IdentifyIdentifie un utilisateur

Description

string hw_identify ( int $link , string $username , string $password )

Identifie un utilisateur dont le nom d'utilisateur est username et le mot de passe password. L'identification n'est valide que pour la session en cours. Je ne pense pas que cette fonction serve souvent. Dans la plupart des cas, il est plus simple de s'identifier lors de l'ouverture de la connexion.

Liste de paramètres

link

L'identifiant de connection.

username

Le nom d'utilisateur.

password

Le mot de passe.

Voir aussi



hw_InCollections

(PHP 4)

hw_InCollectionsVérifie qu'un identifiant d'objet est dans un groupe

Description

array hw_incollections ( int $connection , array $object_id_array , array $collection_id_array , int $return_collections )

Vérifie qu'un ensemble d'objets (documents ou groupes) donnés par object_id_array fait partie des groupes listés par object_id_array.

Liste de paramètres

connection

L'identifiant de connection.

object_id_array

Un tableau d'objets ids.

collection_id_array

Un tableau de collection d'identifiants.

return_collections

Lorsque défini à 0, le sous-ensemble d'identifiants qui fait parti d'un groupe (i.e., les documents ou les collections qui sont des enfants d'une ou plusieurs collections d'identifiant de collection ou ces sous-collections, récursivement) est retourné sous la forme d'un tableau.

Lorsque défini à 1, le jeu de collections qui a un ou plusieurs objets ayant des sous-jeux comme enfants, est retourné, sous la forme d'un tableau. Cette option permet au client de, e.g., mettre en lumière la partie de la collection qui contient les résultats de la précédente requête, sous une forme graphique.

Valeurs de retour

Retourne un tableau d'objets ids.



hw_Info

(PHP 4)

hw_InfoInformations à propos d'une connexion

Description

string hw_info ( int $connection )

Retournes des informations à propos de la connexion.

Liste de paramètres

connection

L'identifiant de connexion.

Valeurs de retour

Retourne les informations de la connexion courante. La chaîne retournée a le format suivant : <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping>



hw_InsColl

(PHP 4)

hw_InsCollInsère une collection

Description

int hw_inscoll ( int $connection , int $objectID , array $object_array )

Insère une nouvelle collection, avec les attributs object_array dans le groupe objectID.

Liste de paramètres

connection

L'identifiant de connexion.

objectID

object_array

Valeurs de retour



hw_InsDoc

(PHP 4)

hw_InsDocInsère un document

Description

int hw_insdoc ( resource $connection , int $parentID , string $object_record [, string $text ] )

Insère un nouveau document avec les attributs object_record, dans le groupe parentID.

Si vous voulez insérer un document de type général, utilisez plutôt hw_insertdocument().

Liste de paramètres

connection

L'identifiant de connexion.

parentID

L'identifiant du groupe.

object_record

Les attributs de l'objet.

text

Si fourni, le texte ascii sera également inséré.

Valeurs de retour

Voir aussi



hw_insertanchors

(PHP 4 >= 4.0.4)

hw_insertanchorsInsère uniquement des ancres dans du texte

Description

bool hw_insertanchors ( int $hwdoc , array $anchorecs , array $dest [, array $urlprefixes ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



hw_InsertDocument

(PHP 4)

hw_InsertDocumentInsère un document dans un groupe

Description

int hw_insertdocument ( int $connection , int $parent_id , int $hw_document )

Insère un document dans un groupe donné.

Le document doit avoir été créé auparavant avec hw_new_document(). Assurez-vous que les attributs du nouveau document contiennent au moins les indications suivantes : "Type", "DocumentType", "Title" et "Name". Vous aurez aussi parfois besoin de définir MimeType.

Liste de paramètres

connection

L'idenfitiant de connexion.

parent_id

L'identifiant de groupe.

hw_document

L'identifiant du document.

Valeurs de retour

Retourne l'identifiant de l'objet du nouveau document, ou FALSE.

Voir aussi



hw_InsertObject

(PHP 4)

hw_InsertObjectInsère un objet record

Description

int hw_insertobject ( int $connection , string $object_rec , string $parameter )

Insère un objet record sur le serveur.

Note : si vous voulez insérer une ancre, l'attribut Position doit être mis à la valeur start/end (début ou fin) ou encore 'invisible'. Les positions invisibles sont nécessaires si l'annotation n'a pas de liens correspondant dans le texte de l'annotation.

Liste de paramètres

connection

L'identifiant de connexion.

object_rec

L'objet peut être n'importe quel objet hyperwave valide.

parameter

Reportez-vous à la documentation HG-CSP pour des informations détaillées sur la valeur de ce paramètre.

Voir aussi



hw_mapid

(PHP 4)

hw_mapidReprésente un id global en un id virtuel local

Description

int hw_mapid ( int $connection , int $server_id , int $object_id )

Représente l'id d'un objet global de n'importe quel serveur Hyperwave, même si vous ne vous y êtes pas connecté avec hw_connect(), avec un id d'objet local virtuel.

Cet id d'objet local peut alors être utilisé comme n'importe quel id d'objet : par exemple on peut obtenir l'enregistrement d'objet avec la fonction hw_getobject().

Note : afin d'utiliser cette fonction, vous devez lever le flag F_DISTRIBUTED, ce qui ne peut être fait qu'à la compilation. Par défaut, il n'est pas levé. Lisez les commentaires de début du fichier hg_comm.c

Liste de paramètres

connection

L'identifiant de connexion.

server_id

L'id du serveur est la première partie de l'id global (GOid) de l'objet, qui est en fait une adresse IP.

object_id

L'identifiant de l'objet.

Valeurs de retour

Retourne l'identifiant de l'objet virtuel.



hw_Modifyobject

(PHP 4)

hw_ModifyobjectModifie les attributs d'object record

Description

bool hw_modifyobject ( int $connection , int $object_to_change , array $remove , array $add [, int $mode ] )

Permet d'effacer, d'ajouter ou de modifier les attributs d'un objet. L'objet est repéré par son identifiant object_to_change. Le premier tableau, remove, est la liste des attributs à effacer. Le deuxième tableau, add, est celle des attributs à ajouter. Afin de modifier un attribut, il vous faudra dont l'effacer, puis l'ajouter à nouveau. hw_modifyobject() effacera toujours les attributs avant de les ajouter, à moins que la valeur de l'attribut à effacer ne soit pas une chaîne, ou un tableau.

Les clés des deux tableaux sont les noms des attributs. La valeur de chaque élément peut être un tableau, une chaîne ou n'importe quoi d'autre. Dans le cas du tableau, la valeur de l'attribut est construite en séparant chaque élément par un point virgule. Dans le cas de la chaîne, elle sert directement de valeur. Une chaîne vide provoquera un effacement de l'attribut. Si la valeur n'est ni un tableau, ni une chaîne, aucune opération ne sera effectuée. Cela est nécessaire si vous voulez ajouter un attribut complètement nouveau, pas seulement une nouvelle valeur pour un attribut existant. Si le tableau d'effacement contenait une chaîne vide comme attribut, le serveur tenterait d'effacer l'attribut, ce qui échouerait de toute manière, car cet attribut n'existe pas. L'ajout de cet attribut échouerait aussi. Affecter la valeur de 0 à cet attribut ne l'effacerait pas, et l'ajout fonctionnerait.

Si vous voulez changer l'attribut "Nom" de valeur courante "livres" en "articles" vous devrez faire deux tableaux, et appeler hw_modifyobject().

Exemple #1 Modification d'un attribut

<?php
// $connect est une connexion valide
// $objid est l'identifiant de l'objet
$remarr = array("Name" => "books");
$addarr = array("Name" => "articles");
$hw_modifyobject($connect$objid$remarr$addarr);
?>
Afin d'effacer/ajouter une paire nom=valeur aux attributs d'un objet, utilisez simplement les tableaux d'effacement et d'ajout, et laissez le dernier/troisième paramètre vide. Si l'attribut est le premier de ce nom à ajouter, donnez une valeur entière à cet élément.

Exemple #2 Ajouter un nouvel attribut

<?php
// $connect est une connexion Hyperwave valide
// $objid est l'identifiant de l'objet à modifier
$remarr = array("Name" => 0);
$addarr = array("Name" => "articles");
$hw_modifyobject($connect$objid$remarr$addarr);
?>

Note: Les attributs multilingues, tels que "Title", peuvent être modifiés de deux façons : soit en fournissant la valeur de ces attributs de manière native (langue :valeur), soit en fournissant un tableau avec les éléments de chaque langue, comme décrit ci-dessus. L'exemple deviendrait alors :

Exemple #3 Modifier l'attribut de Titre

<?php
$remarr 
= array("Title" => "en:Books");
$addarr = array("Title" => "en:Articles");
$hw_modifyobject($connect$objid$remarr$addarr);
?>
ou

Exemple #4 Modifier l'attribut Title

<?php
$remarr 
= array("Title" => array("en" => "Books"));
$addarr = array("Title" => array("en" => "Articles""ge"=>"Artikel"));
$hw_modifyobject($connect$objid$remarr$addarr);
?>
Ceci supprime l'entrée anglaise "Books" et ajoute l'entrée "Articles" et l'entrée allemande "Artikel".

Exemple #5 Suppression d'un attribut

<?php
$remarr 
= array("Title" => "");
$addarr = array("Title" => "en:Articles");
$hw_modifyobject($connect$objid$remarr$addarr);
?>

Note: Cet exemple va effacer tous les attributs avec le nom "Title" et ajouter un nouvel attribut "Title". Cela peut être pratique pour effacer des attributs récursivement.

Note: Si vous devez effacer tous les attributs avec un certain nom, vous devez passer une chaîne vide comme valeur.

Note: Seuls les attributs "Title", "Description" et "Keyword" gèrent correctement le préfixe de langue. Pour les autres attributs qui ne portent pas de préfixe de langage, le préfixe "xx" sera assigné.

Note: L'attribut "Name" est un peu particulier. Dans certains cas, il ne peut pas être complètement effacé. Vous aurez alors le message "Change of base attribute" (l'apparition de cette erreur n'est pas très claire). Ainsi, vous aurez à ajouter une nouvelle entrée pour "Name" puis, effacer l'ancien.

Note: Il ne faut pas encadrer cette fonction par des appels à hw_getandlock() et hw_unlock(). hw_modifyobject() le fait de manière interne.

Liste de paramètres

connection

L'identifiant de connexion.

object_to_change

L'objet à changer.

remove

Un tableau d'attributs à effacer.

add

Un tableau d'attributs à ajouter.

mode

Le dernier paramètre détermine si la modification est récursive ou pas. 1 signifie que la modification est récursive. Si un objet ne peut pas être modifié, il sera ignoré. hw_error() n'indiquera alors pas toujours d'erreur, même si certains objets n'ont pas pu être modifiés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



hw_mv

(PHP 4)

hw_mvDéplace un objet

Description

int hw_mv ( int $connection , array $object_id_array , int $source_id , int $destination_id )

Déplace les objets dont les identifiants sont passés dans le tableau source_id, depuis le source_id dans le destination_id.

Liste de paramètres

connection

L'identifiant de connexion.

object_id_array

Un tableau d'objets ids.

source_id

L'identifiant du groupe source.

destination_id

L'identifiant du groupe de destination. Si destination_id vaut 0, les objets ne seront plus insérés dans le groupe (ni dans le serveur). Dans ce cas, si une instance était la dernière instance d'un objet, l'objet sera effacé. Si vous voulez effacer toutes les instances d'un coup, utilisez hw_deleteobject().

Valeurs de retour

Retourne le nombre d'objets déplacés.

Voir aussi



hw_New_Document

(PHP 4)

hw_New_DocumentCrée un nouveau document

Description

int hw_new_document ( string $object_record , string $document_data , int $document_size )

Retourne un nouveau document Hyperwave avec comme données document_data et comme attributs object_record.

Cette fonction n'insère pas l'objet dans le serveur Hyperwave.

Liste de paramètres

object_record

L'objet record.

document_data

Les données du document.

document_size

La taille du document. Doit correspondre à la taille des données document_data.

Valeurs de retour

Retourne le nouveau document Hyperwave.

Voir aussi



hw_objrec2array

(PHP 4)

hw_objrec2arrayConvertit les attributs d'un objet en tableau

Description

array hw_objrec2array ( string $object_record [, array $format ] )

Convertit les attributs object_record d'un objet en un tableau.

Liste de paramètres

object_record

L'objet record.

format

Un tableau associatif, avec les attributs comme index, le nom, et la valeur étant l'une des suivantes : HW_ATTR_LANG ou HW_ATTR_NONE.

Valeurs de retour

Retourne un tableau. Les clés du tableau seront les noms des attributs. Les attributs multiples comme "Title", dans différentes langues, seront rassemblés dans un autre tableau. Une clé est la partie gauche d'un attribut. Cette partie doit être longue d'au moins deux caractères.

Les autres valeurs multiples d'un attribut sans préfixe forment un tableau indexé. Si le paramètre optionnel format est omis, les attributs "Title", "Description" et "Keyword" seront traités comme des attributs de langue, et les attributs "Group", "Parent" et "HtmlAttr" le seront comme des attributs non préfixés, à valeur multiples. En passant un tableau qui contient le type de chaque attribut, vous pouvez modifier ce comportement.

Voir aussi



hw_Output_Document

(PHP 4)

hw_Output_DocumentAffiche le document hw_document

Description

bool hw_output_document ( int $hw_document )

Affiche hw_document sans la balise BODY.

Pour la compatibilité ascendante, hw_outputdocument() est aussi accepté, mais il est déconseillé.

Liste de paramètres

hw_document

L'identifiant du document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



hw_pConnect

(PHP 4)

hw_pConnectCrée une connexion persistante

Description

int hw_pconnect ( string $host , int $port [, string $username ], string $password )

Ouvre une connexion persistante à un serveur Hyperwave. Vous pouvez ouvrir plusieurs connexions persistantes simultanées.

Liste de paramètres

host

Le nom d'hôte du serveur.

port

Le numéro du port du serveur.

username

Le nom d'utilisateur Hyperwave. S'il n'est pas fourni, aucune identification avec le serveur ne sera effectuée. Ce sera une connexion anonyme.

password

Le mot de passe. Attention, il ne sera pas crypté.

Valeurs de retour

Retourne un index de connexion en cas de succès, ou FALSE si la connexion n'a pû être établie.

Voir aussi



hw_PipeDocument

(PHP 4)

hw_PipeDocumentRécupère un document

Description

int hw_pipedocument ( int $connection , int $objectID [, array $url_prefixes ] )

Retourne le document Hyperwave d'objet id objectID. Si le document a des ancrages, ils seront insérés.

Le document sera transmis via une connexion de données spéciale, qui ne bloque pas la connexion de contrôle (ie, le serveur n'attend pas la fin du transfert pour rendre la main).

Liste de paramètres

connection

L'identifiant de connexion.

objectID

L'identifiant de l'objet.

url_prefixes

Valeurs de retour

Retourne le document Hyperwave.

Voir aussi



hw_Root

(PHP 4)

hw_RootObjet id de la racine

Description

int hw_root ( void )

Retourne l'objet ID de la racine. Actuellement, cet identifiant est toujours 0. L'ensemble des fils de la racine est celui du serveur courant.

Valeurs de retour

Retourne 0.



hw_setlinkroot

(PHP 4)

hw_setlinkrootConfigure l'identifiant vers lequel les liens sont calculés

Description

int hw_setlinkroot ( int $link , int $rootid )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



hw_stat

(PHP 4)

hw_statRetourne le statut de la chaîne

Description

string hw_stat ( int $link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



hw_Unlock

(PHP 4)

hw_UnlockDéverrouille un objet

Description

bool hw_unlock ( int $connection , int $objectID )

Déverrouille un document, et laisse l'accès aux autres utilisateurs.

Liste de paramètres

connection

L'identifiant de connexion.

objectID

L'identifiant de l'objet document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_Who

(PHP 4)

hw_WhoListe des utilisateurs actuellement identifiés

Description

array hw_who ( int $connection )

Récupère la liste des utilisateurs actuellement identifiés.

Liste de paramètres

connection

L'identifiant de la connexion.

Valeurs de retour

Retourne un tableau contenant la liste des utilisateurs actuellement connectés au serveur Hyperwave. Chaque élément du tableau est lui-même un tableau qui contient l'identifiant de l'élément, le nom, le système, la date de connexion (onSinceDate), l'heure de connexion (onSinceTime), la durée de connexion (TotalTime ) et self. 'self' vaut 1 si cette entrée appartient à l'utilisateur qui a appelé la fonction.


Sommaire




Hyperwave API


Introduction

Hyperwave a été développé à l'» IICM à Graz. Le projet a commencé avec le nom de Hyper-G, puis il est devenu Hyperwave, lors de sa commercialisation en 1996.

Hyperwave n'est pas un logiciel libre. Sa version courante, la 5.5, est disponible à » http://www.hyperwave.com/. Une version limitée dans le temps est disponible gratuitement (30 jours).

Voir aussi le module Hyperwave.

Hyperwave est un système d'information comparable à une base de données (HIS, Hyperwave Information Server). Il se concentre sur le stockage et la gestion de documents. Un document peut être n'importe quelle pièce de données qui peut être stockée dans un fichier. Chaque document est accompagné de son propre enregistrement. L'enregistrement contient les métadonnées du document. Les métadonnées sont des listes d'attributs qui peuvent être manipulés par l'utilisateur. Certains attributs sont gérés par le serveur Hyperwave, les autres peuvent être modifiés par l'utilisateur.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0.



Installation/Configuration

Sommaire


Pré-requis

Depuis 2001, il y a un SDK Hyperwave disponible. Il supporte Java, JavaScript et C++. Cette extension PHP est basée sur l'interface C++. Pour activer le support hwapi de PHP, vous devez installer le SDK d'abord.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/hwapi.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration HyperWave
Nom Défaut Modifiable Historique
hwapi.allow_persistent "0" PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Hyperwave API Fonctions

intégration dans Apache

L'intégration dans Apache et éventuellement d'autres serveurs est déjà décrite dans le module Hyperwave, qui a été la première extension à se connecter au serveur Hyperwave.

Classes

L'API fournie avec l'extension HW_API est complètement orientée objet. Elle est très similaire à l'interface C++ du SDK Hyperwave. Elle est constituée des classes suivantes :

  • HW_API
  • HW_API_Object
  • HW_API_Attribute
  • HW_API_Error
  • HW_API_Content
  • HW_API_Reason
Certains classes basiques comme HW_API_String, HW_API_String_Array, etc., qui existent dans le SDK Hyperwave SDK n'ont pas été implémentées, car PHP a de puissants ersatz pour elles.

Chaque classe dispose de certaines méthodes, dont les noms sont identiques à leur alter ego du SDK Hyperwave SDK. Le passage des arguments à ces fonctions diffère de toutes les autres extensions PHP, mais est proche de l'API C++ du SDK Hyperwave. Au lieu de passer plusieurs paramètres, ils sont tous placés dans un tableau associatif, et transmis sous la forme d'un seul paramètre. Les paramètres les plus communs sont listés ci-dessous. Si d'autres paramètres sont nécessaires, ils seront documentés à chaque cas.

  • objectIdentifier Le nom ou l'identifiant de l'objet, e.g. "rootcollection", "0x873A8768 0x00000002".
  • parentIdentifier Le nom ou l'identifiant de l'objet qui est considéré comme parent.
  • object Une instance de la classe HW_API_Object.
  • parameters Une instance de la classe HW_API_Object.
  • version La version de l'objet.
  • mode Un entier qui détermine la méthode d'exécution de l'opération.
  • attributeSelector Un tableau de chaînes de caractères, chacun contenant le nom d'un attribut. C'est le cas si vous lisez des enregistrements d'objets, et que vous voulez inclure certains attributs.
  • objectQuery Une requête pour sélectionner certains objets dans une liste. Elle est utilisée pour réduire le nombre d'objets qui a été livré par une fonction comme hw_api->children() ou hw_api->find().

Note:

Les méthodes retournant un booléen peuvent retourner TRUE, FALSE ou un objet HW_API_Error.


hw_api_attribute->key

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute->keyRetourne la clé d'un attribut

Description

string hw_api_attribute::key ( void )

Retourne la clé d'un attribut.

Valeurs de retour

Retourne la clé d'un attribut, sous la forme d'une chaîne de caractères.



hw_api_attribute->langdepvalue

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute->langdepvalueRetourne la valeur d'un attribut dans une langue

Description

string hw_api_attribute::langdepvalue ( string $language )

Retourne la valeur d'un attribut dans une langue donnée.

Liste de paramètres

language

Valeurs de retour

Retourne la valeur d'un attribut dans la langue donnée, sous la forme d'une chaîne de caractères.



hw_api_attribute->value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute->valueRetourne la valeur d'un attribut

Description

string hw_api_attribute::value ( void )

Retourne la valeur d'un attribut.

Valeurs de retour

Retourne la valeur, sous la forme d'une chaîne de caractères.



hw_api_attribute->values

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute->valuesRetourne toutes les valeurs de l'attribut

Description

array hw_api_attribute::values ( void )

Retourne toutes les valeurs de l'attribut.

Valeurs de retour

Retourne un tableau de valeurs de l'attribut.



hw_api_attribute

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attributeCrée une nouvelle instance de la classe hw_api_attribute

Description

HW_API_Attribute hw_api_attribute ([ string $name [, string $value ]] )

Crée une nouvelle instance de la classe hw_api_attribute avec le nom et la valeur fournis.

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Retourne une instance de la classe hw_api_attribute.



hw_api->checkin

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->checkinArchive un objet

Description

bool hw_api::checkin ( array $parameter )

Archive un objet ou une hiérarchie d'objets. Le paramètre obligatoire parameter contient un "objectIdentifier" et les éléments optionnels "version", "comment", "mode" et "objectQuery". "version" spécifie la version de l'objet. Elle est constituée de versions majeure et mineure, séparées par des virgules. Si une version n'existe pas, la version mineure est incrémentée. "mode" peut être l'une des constantes suivantes :

HW_API_CHECKIN_NORMAL
Archive et valide l'objet. L'objet doit être un document.
HW_API_CHECKIN_RECURSIVE
Si l'objet à archiver est une collection, tous les fils seront vérifiés récursivement, s'ils sont des documents. Tenter d'archiver une collection générera une erreur.
HW_API_CHECKIN_FORCE_VERSION_CONTROL
Archive un objet même s'il ne passe pas sous le contrôle de versions.
HW_API_CHECKIN_REVERT_IF_NOT_CHANGED
Vérifie s'il existe une version différente de la dernière version. À moins que cela ne soit le cas, l'objet sera alors archivé.
HW_API_CHECKIN_KEEP_TIME_MODIFIED
Conserve la date de modification de l'objet le plus récent.
HW_API_CHECKIN_NO_AUTO_COMMIT
L'objet n'est pas automatiquement validé lors de l'archivage.

Liste de paramètres

parameter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_api->checkout

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->checkoutExtrait un objet

Description

bool hw_api::checkout ( array $parameter )

Extrait un objet ou toute une hiérarchie d'objets.

Liste de paramètres

parameter

Le paramètre parameter contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "version", "mode" et "objectQuery". "mode" peut prendre l'une des valeurs suivantes :

HW_API_CHECKIN_NORMAL
Extrait un objet. L'objet doit être un document.
HW_API_CHECKIN_RECURSIVE
Si l'objet à extraire est une collection, tous les fils seront extraits récursivement si ce sont des documents. Extraire une collection générera une erreur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_api->children

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->childrenRetourne le fils d'un objet

Description

array hw_api::children ( array $parameter )

Retrouve le fils d'une collection ou l'attribut d'un document. Le fils peut être ensuite filtré en spécifiant une requête d'objet.

Liste de paramètres

parameter

Le paramètre parameter contient les éléments requis "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery".

Valeurs de retour

La valeur retournée est un tableau d'objets de type HW_API_Object ou HW_API_Error.

Voir aussi



hw_api_content->mimetype

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content->mimetypeRetourne le type MIME

Description

string hw_api_content::mimetype ( void )

Retourne le type MIME du contenu.

Valeurs de retour

Retourne le type MIME, sous la forme d'une chaîne de caractères.



hw_api_content->read

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content->readLit le contenu

Description

string hw_api_content::read ( string $buffer , int $len )

Lit len octets dans le buffer buffer.

Liste de paramètres

buffer

len

Nombre d'octets à lire.

Valeurs de retour



hw_api->content

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->contentRetourne le contenu d'un objet

Description

HW_API_Content hw_api::content ( array $parameter )

Retourne le contenu d'un document sous la forme d'un objet de type hw_api_content.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectidentifier" et l'élément optionnel "returnvalues". Le mode peut être l'une des constantes suivantes : HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS ou HW_API_CONTENT_PLAIN.

HW_API_CONTENT_ALLLINKS signifie qu'il faut insérer toutes les ancres même si la destination n'est pas accessible.

HW_API_CONTENT_REACHABLELINKS indique à hw_api_content() qu'il faut insérer uniquement les destinations accessibles, et HW_API_CONTENT_PLAIN conduit à un document sans aucun lien.

Valeurs de retour

Retourne une instance de la classe hw_api_content.



hw_api->copy

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->copyCopie physique

Description

hw_api_content hw_api::copy ( array $parameter )

Fait une copie physique incluant le contenu éventuel, et retourne un nouvel objet ou un objet d'erreur.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectIdentifier" et "destinationParentIdentifier" et l'élément optionnel "attributeSelector".

Valeurs de retour

Retourne la copie de l'objet.



hw_api->dbstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->dbstatRetourne des statistiques sur le serveur de bases

Description

hw_api_object hw_api::dbstat ( array $parameter )

Retourne des statistiques sur le serveur de bases.

Liste de paramètres

parameter

Valeurs de retour



hw_api->dcstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->dcstatRetourne des statistiques sur le serveur de cache de document

Description

hw_api_object hw_api::dcstat ( array $parameter )

Retourne des statistiques sur le serveur de cache de document.

Liste de paramètres

parameter

Valeurs de retour



hw_api->dstanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->dstanchorsListe toutes les ancres de destination

Description

array hw_api::dstanchors ( array $parameter )

Liste toutes les ancres de destination.

Liste de paramètres

parameter

Le paramètre parameter contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery".

Valeurs de retour

Voir aussi



hw_api->dstofsrcanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->dstofsrcanchorRetourne la destination d'une ancre source

Description

hw_api_object hw_api::dstofsrcanchor ( array $parameter )

Retourne l'objet de destination sur lequel pointe l'ancre source spécifiée. L'objet de destination peut être une ancre de destination ou un document entier.

Liste de paramètres

parameter

Le paramètre parameter contient l'élément obligatoire "objectIdentifier" et le paramètre optionnel "attributeSelector".

Valeurs de retour



hw_api_error->count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error->countRetourne le nombre d'erreurs

Description

int hw_api_error::count ( void )

Retourne le nombre d'erreurs.

Valeurs de retour

Retourne le nombre d'erreurs, sous la forme d'un entier.



hw_api_error->reason

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error->reasonRetourne la première raison d'erreur

Description

HW_API_Reason hw_api_error::reason ( void )

Retourne la première raison d'erreur.

Valeurs de retour

Voir aussi



hw_api->find

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->findRecherche des objets

Description

array hw_api::find ( array $parameter )

Recherche des objets grâce à leur clé d'exécution et/ou grâce à une requête en texte plein. Les objets trouvés peuvent alors être filtrés à nouveau par une requête optionnelle. Les objets sont triés par importance. La seconde opération de recherche est relativement lente, et ses résultats peuvent être limités à certaines valeurs. Cela permet de réaliser des recherches incrémentales, chacune retournant un sous-ensemble de tous les documents trouvés, en partant d'un index donné.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectquery", "scope", "languages" et "attributeselector". En cas de recherche incrémentale, les éléments optionnels "startIndex", "numberOfObjectsToGet" et "exactMatchUnit" peuvent aussi être passés.

Valeurs de retour



hw_api->ftstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->ftstatRetourne des statistiques sur le serveur de textes

Description

hw_api_object hw_api::ftstat ( array $parameter )

Retourne des statistiques sur le serveur de textes.

Liste de paramètres

parameter

Valeurs de retour



hwapi_hgcsp

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hwapi_hgcspRetourne un objet de classe hw_api

Description

HW_API hwapi_hgcsp ( string $hostname [, int $port ] )

Ouvre une connexion au serveur Hyperwave sur l'hôte hostname. Le protocole utilisé est HGCSP.

Liste de paramètres

hostname

Le nom de l'hôte.

port

Si vous l'omettez, le port 418 sera utilisé.

Valeurs de retour

Retourne une instance de la classe HW_API.



hw_api->hwstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->hwstatRetourne les statistiques sur le serveur Hyperwave

Description

hw_api_object hw_api::hwstat ( array $parameter )

Retourne les statistiques sur le serveur Hyperwave.

Liste de paramètres

parameter

Valeurs de retour



hw_api->identify

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->identifyS'identifie auprès du serveur Hyperwave

Description

bool hw_api::identify ( array $parameter )

S'identifie auprès du serveur Hyperwave.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "username" et "password".

Valeurs de retour

Retourne un objet du type HW_API_Error si l'identification a échoué, ou bien TRUE si cela a fonctionné.



hw_api->info

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->infoRetourne des informations sur la configuration du serveur

Description

array hw_api::info ( array $parameter )

Retourne des informations sur la configuration du serveur.

Liste de paramètres

parameter

Valeurs de retour



hw_api->insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->insertInsère un nouvel objet

Description

hw_api_object hw_api::insert ( array $parameter )

Insère un nouvel objet. Le type d'objet peut être "user", "group", "document" ou "anchor". Suivant le type de l'autre objet, des attributs supplémentaires doivent être assignés.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "object" et "content" (si l'objet est un document) et les éléments optionnels "parameters", "mode" et "attributeSelector". "object" doit contenir tous les attributs de l'objet. "parameters" est un objet qu contient les attributs supplémentaires, comme ceux de destination (attribut "Parent"). "content" est une combinaison des constantes suivantes :

HW_API_INSERT_NORMAL
L'objet est inséré sur le serveur.
HW_API_INSERT_FORCE_VERSION_CONTROL
HW_API_INSERT_AUTOMATIC_CHECKOUT
HW_API_INSERT_PLAIN
HW_API_INSERT_KEEP_TIME_MODIFIED
HW_API_INSERT_DELAY_INDEXING

Valeurs de retour

Voir aussi



hw_api->insertanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->insertanchorInsère un nouvel objet de type ancre

Description

hw_api_object hw_api::insertanchor ( array $parameter )

Cette fonction est un raccourci pour hwapi_insert(). Elle insère un objet de type ancre ("anchor") et assigne les attributs nécessaires.

Liste de paramètres

parameter

Le paramètre parameter contient les éléments obligatoires "object" et "documentIdentifier" et les éléments optionnels "destinationIdentifier", "parameter", "hint" et "attributeSelector". L'élément "documentIdentifier" spécifie le document d'insertion de l'ancre. La cible de l'ancre est spécifiée par "destinationIdentifier" s'il existe. Si la cible n'existe pas, l'élément "hint" doit être configuré avec le nom de l'objet qui est prévu pour être inséré ultérieurement. Une fois que l'insertion a été faite, la cible sera résolue automatiquement.

Valeurs de retour



hw_api->insertcollection

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->insertcollectionInsère un nouvel objet de type collection

Description

hw_api_object hw_api::insertcollection ( array $parameter )

Cette fonction est un raccourci pour la fonction hwapi_insert(). Elle insère un objet de type collection et lui assigne certains attributs obligatoires.

Liste de paramètres

parameter

parameter est un tableau qui contient les éléments obligatoires "object" et "parentIdentifier", et les éléments optionnels "parameter" et "attributeSelector". Voyez hwapi_insert() pour connaître le détail de chaque élément.

Valeurs de retour



hw_api->insertdocument

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->insertdocumentInsère un nouvel objet de type document

Description

hw_api_object hw_api::insertdocument ( array $parameter )

Cette fonction est un raccourci pour hwapi_insert(). Il insère un objet avec un contenu et assigne certains attributs obligatoires.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "object", "parentIdentifier" et "content" et les éléments optionnels "mode", "parameter" et "attributeSelector".

Voir la fonction hwapi_insert() pour la signification de chacun des éléments.

Valeurs de retour




hw_api->lock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->lockVerrouille un objet

Description

bool hw_api::lock ( array $parameter )

Verrouille un objet pour le faire éditer exclusivement par l'utilisateur qui appelle cette fonction. L'objet ne peut être déverrouillé que par cet utilisateur ou par le système.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les paramètres optionnels "mode" et "objectquery".

"mode" détermine comment l'objet est verrouillé. HW_API_LOCK_NORMAL signifie que l'objet est verrouillé jusqu'à son déverrouillage. HW_API_LOCK_RECURSIVE est uniquement valide pour une collection et verrouille tous les objets de la collection et des sous-collections. HW_API_LOCK_SESSION signifie que l'objet est verrouillé aussi longtemps que tient la session en cours.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_api->move

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->moveDéplace un objet d'une collection à l'autre

Description

bool hw_api::move ( array $parameter )

Déplace un objet d'une collection à l'autre.

Liste de paramètres

parameter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_api_content

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_contentCrée une nouvelle instance de la classe hw_api_content

Description

HW_API_Content hw_api_content ( string $content , string $mimetype )

Crée une nouvelle instance de l'objet depuis la chaîne content.

Liste de paramètres

content

mimetype

Le type MIME du contenu.

Valeurs de retour



hw_api_object->assign

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object->assignClone un objet

Description

bool hw_api_object::assign ( array $parameter )

Clone les attributs d'un objet.

Liste de paramètres

parameter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



hw_api_object->attreditable

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object->attreditableVérifie si un attribut est éditable

Description

bool hw_api_object::attreditable ( array $parameter )

Vérifie si un attribut est éditable.

Liste de paramètres

parameter

Valeurs de retour

Retourne TRUE si l'attribut est éditable, FALSE sinon.



hw_api_object->count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object->countRetourne le nombre d'attributs

Description

int hw_api_object::count ( array $parameter )

Retourne le nombre d'attributs.

Liste de paramètres

parameter

Valeurs de retour

Retourne le nombre d'attributs, sous la forme d'un entier.



hw_api_object->insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object->insertInsère un nouvel attribut HyperWave

Description

bool hw_api_object::insert ( HW_API_Attribute $attribute )

Insère un nouvel attribut HyperWave.

Liste de paramètres

attribute

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



hw_api_object

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_objectCrée une nouvelle instance de la classe hw_api_object

Description

hw_api_object hw_api_object ( array $parameter )

Crée une nouvelle instance de la classe hw_api_object.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi



hw_api_object->remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object->removeSupprime un attribut HyperWave

Description

bool hw_api_object::remove ( string $name )

Supprime l'attribut HyperWave.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



hw_api_object->title

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object->titleRetourne le titre de l'attribut

Description

string hw_api_object::title ( array $parameter )

Retourne le titre de l'attribut.

Liste de paramètres

parameter

Valeurs de retour

Retourne le titre, sous la forme d'une chaîne de caractères.



hw_api_object->value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object->valueRetourne la valeur de l'attribut

Description

string hw_api_object::value ( string $name )

Retourne la valeur de l'attribut.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Retourne la valeur de l'attribut name, ou FALSE si une erreur survient.



hw_api->object

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->objectLit les informations d'attribut

Description

hw_api_object hw_api::object ( array $parameter )

Lit les informations d'attribut d'un objet de n'importe quelle version. Elle ne retournera pas le contenu du document.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "version".

Valeurs de retour

L'objet retourné est une instance de la classe HW_API_Object en cas de succès ou HW_API_Error en cas d'erreur.

Exemples

Cet exemple simple lit un objet et vérifie les erreurs.

Exemple #1 Lit un objet Hyperwave et le vérifie

<?php
function handle_error($error)
{
  
$reason $error->reason(0);
  echo 
"Type: <b>";
  switch (
$reason->type()) {
    case 
0:
      echo 
"Erreur";
      break;
    case 
1:
      echo 
"Alerte";
      break;
    case 
2:
      echo 
"Message";
      break;
  }
  echo 
"</b><br />\n";
  echo 
"Description : " $reason->description("en") . "<br />\n";
}

function 
list_attr($obj)
{
  echo 
"<table>\n";
  
$count $obj->count();
  for (
$i=0$i<$count$i++) {
    
$attr $obj->attribute($i);
    
printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             
$attr->key(), $attr->value());
  }
  echo 
"</table>\n";
}

$hwapi hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection""attributeSelector"=>array("Title""Name""DocumentType"));
$root $hwapi->object($parms);
if (
get_class($root) == "HW_API_Error") {
  
handle_error($root);
  exit;
}
list_attr($root);
?>

Voir aussi



hw_api->objectbyanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->objectbyanchorRetourne l'objet propriétaire d'une ancre

Description

hw_api_object hw_api::objectbyanchor ( array $parameter )

Cette fonction retourne l'objet propriétaire d'une ancre.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et l'élément optionnel "attributeSelector".

Valeurs de retour



hw_api->parents

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->parentsRetourne le parent d'un objet

Description

array hw_api::parents ( array $parameter )

Lit le parent d'un objet. Le parent peut être filtré en spécifiant un objet de requête.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectidentifier" et les éléments optionnels "attributeselector" et "objectquery".

Valeurs de retour

La valeur retournée est un tableau d'objets de type HW_API_Object ou HW_API_Error.

Voir aussi



hw_api_reason->description

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason->descriptionRetourne la description d'une raison

Description

string hw_api_reason::description ( void )

Retourne la description d'une raison.

Valeurs de retour

Retourne la description, sous la forme d'une chaîne de caractères.



hw_api_reason->type

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason->typeRetourne le type de raison

Description

HW_API_Reason hw_api_reason::type ( void )

Retourne le type de raison.

Valeurs de retour

Retourne une instance de la classe HW_API_Reason.



hw_api->remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->removeEfface un objet

Description

bool hw_api::remove ( array $parameter )

Efface un objet avec un parent spécifique. Les collections seront effacées récursivement.

Liste de paramètres

parameter

Vous pouvez passez un objet optionnel de requête pour filtrer les objets qui seront effacés. Un objet sera effacé physiquement si c'est sa dernière instance.

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectidentifier" et "parentidentifier". Si vous souhaitez effacer un utilisateur ou un groupe, "parentidentifier" peut être omis.

L'élément optionnel "mode" détermine comment l'effacement est réalisé. En mode normal, l'objet sera effacé physiquement lorsque toutes ses instances seront supprimées. En mode physique, toutes les instances d'un objet seront supprimées immédiatement. En mode "removelinks" toutes les références vers et depuis l'objet seront aussi effacées. En mode "nonrecursif", l'effacement n'est pas récursif. Effacer une collection qui n'est pas vide causera une erreur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



hw_api->replace

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->replaceRemplace un objet

Description

hw_api_object hw_api::replace ( array $parameter )

Remplace les attributs et le contenu d'un objet.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectIdentifier" et "object", puis les paramètres optionnels "content", "parameters", "mode" et "attributeSelector". "objectIdentifier" contient l'objet qui doit être remplacé. "object" contient le nouvel objet. "content" contient le nouveau contenu. "parameters" contient des informations supplémentaires pour les documents HTML. HTML_Language est l'abréviation de la langue pour le titre. HTML_Base est l'attribut de base pour le contenu du document HTML.

"mode" peut être la combinaison de l'une des constantes suivantes :

HW_API_REPLACE_NORMAL
L'objet sur le serveur est remplacé par l'objet passé.
HW_API_REPLACE_FORCE_VERSION_CONTROL
HW_API_REPLACE_AUTOMATIC_CHECKOUT
HW_API_REPLACE_AUTOMATIC_CHECKIN
HW_API_REPLACE_PLAIN
HW_API_REPLACE_REVERT_IF_NOT_CHANGED
HW_API_REPLACE_KEEP_TIME_MODIFIED

Valeurs de retour

Voir aussi



hw_api->setcommittedversion

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->setcommittedversionValide une version autre que la dernière

Description

hw_api_object hw_api::setcommittedversion ( array $parameter )

Valide une version du document. La version validée est celle qui est visible par les utilisateurs ayant un accès en lecture. Par défaut, la dernière version est celle qui est validée.

Liste de paramètres

parameter

Valeurs de retour



hw_api->srcanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->srcanchorsRetourne la liste de toutes les ancres

Description

array hw_api::srcanchors ( array $parameter )

Retourne la liste de toutes les ancres d'un objet.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery".

Valeurs de retour

Voir aussi



hw_api->srcsofdst

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->srcsofdstRetourne les sources d'un objet de destination

Description

array hw_api::srcsofdst ( array $parameter )

Retourne les sources d'un objet de destination. L'objet de destination peut être une ancre ou un document complet.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery". La fonction retourne un tableau d'objet ou une erreur.

Valeurs de retour



hw_api->unlock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->unlockDéverrouille un objet HyperWave verrouillé

Description

bool hw_api::unlock ( array $parameter )

Déverrouille un objet verrouillé. Seuls l'utilisateur qui a verrouillé un objet et l'administrateur système peuvent le déverrouiller.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires de objectIdentifier et les paramètres optionnels de mode et objectquery. La signification de mode est la même que dans la fonction hwapi_lock().

Valeurs de retour

Retourne TRUE en cas de succès, ou un objet de la classe HW_API_Error.

Voir aussi



hw_api->user

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->userRetourne le propriétaire d'un objet

Description

hw_api_object hw_api::user ( array $parameter )

Retourne le propriétaire d'un objet.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi



hw_api->userlist

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api->userlistRetourne la liste des utilisateurs connectés

Description

array hw_api::userlist ( array $parameter )

Retourne la liste de tous les utilisateurs connectés.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi


Sommaire




HTTP


Introduction

Cette extension HTTP fournit un jeu de fonctionnalités puissant pour les applications majeures.

Elle gère facilement les URL, les dates, les redirections, les en-têtes et les messages dans un contexte HTTP (entrant et sortant). Elle fournit également la négociation du client au niveau du langage et du jeu de caractères, mais aussi une façon sûre d'envoyer des données avec mise en cache et des possibilités de reprise.

Elle fournit également des fonctionnalités de requête et de parallélisme très puissantes lorsqu'elle est construite avec le support CURL.

En plus des références de l'API, dans ce manuel, vous pourrez trouver des informations sur la façon d'installer et de configurer mais aussi quelles sont les constantes qui sont prédéfinies dans les sections suivantes :



Installation/Configuration

Sommaire


Pré-requis

La classe HttpResponse requiert au moins PHP v5.1. Toutes les autres classes sont disponibles depuis PHP v5.0.

Note: Attention tout de même, quelques méthodes ne sont pas disponibles avec PHP v5.0.

Installation sur Windows

Afin de pouvoir charger cette extension sous Windows, vous devez également charger les extensions PHP suivantes : hash, iconv et SPL.

Installation sur les autres systèmes

L'extension doit avoir été compilé avec le support » libcurl pour activer la fonctionnalité des requêtes (--with-http-curl-requests). Une version de bibliothèque supérieure ou égale à v7.12.3 est nécessaire.

Pour activer le support d'envoie et de réception de réponses compressées, l'extension doit avoir été compilé avec le support » zlib (--with-http-zlib-compression). Une version de bibliothèque supérieure ou égale à v1.2.2 est nécessaire.

La découverte du type de contenu peut être activée en compilant l'extension avec le support » libmagic (--with-http-magic-mime).



Installation/Configuration

Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/pecl_http.

Note: Le nom officiel de cet extension est pecl_http.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration HTTP
Nom Défaut Modifiable Description
http.etag.mode "MD5" PHP_INI_ALL L'algorithme de hashage utilisé pour générer l'ETag. MD5, SHA1, et CRC32 sont également disponibles. Si l'extension hash est disponible, tous les algorithmes fournis par celle-ci sont également disponibles.
http.log.cache "" PHP_INI_ALL Le chemin (ou l'URL de gestion du flux) vers un fichier de log dans lequel on écrit en cache les requêtes réussies.
http.log.redirect "" PHP_INI_ALL Le chemin (ou l'URL de gestion de flux) vers un fichier de log dans lequel on écrit les redirections.
http.log.not_found "" PHP_INI_ALL Le chemin (ou l'URL de gestion de flux) vers un fichier de log dans lequel on écrit les erreurs de type "file not found".
http.log.allowed_methods "" PHP_INI_ALL Le chemin (ou l'URL de gestion de flux) vers un fichier de log dans lequel on écrit les violations "allowed methods".
http.log.composite "" PHP_INI_ALL Le chemin (ou l'URL de gestion de flux) vers un fichier de log dans lequel on écrit tous les événements.
http.request.methods.allowed "" PHP_INI_ALL Méthodes de demande permises. Si le client envoie une demande avec une méthode de demande autre qu'une listée ici, PHP sortira avec un statut "405 Method not allowed". Voir la directive de configuration INI http.force_exit pour savoir ce que signifie "exits".
http.request.methods.custom "" PHP_INI_PERDIR|PHP_INI_SYSTEM Méthodes de demande personnalisées. Si vous voulez utiliser n'importe quelle méthode de demande non-standard, vous pouvez l'enregistrer avec la configuration INI ou avec la fonction http_request_method_register().
http.request.datashare.cookie "0" PHP_INI_SYSTEM Si la globale HttpRequestDataShare doit, par défaut, partager les cookies d'information.
http.request.datashare.dns "1" PHP_INI_SYSTEM Si la globale HttpRequestDataShare doit, par défaut, partager les informations de recherche sur les noms.
http.request.datashare.ssl "0" PHP_INI_SYSTEM Si la globale HttpRequestDataShare doit, par défaut, partager les informations de session SSL. Ceci n'est pas encore implémenté dans libcurl.
http.request.datashare.connect "0" PHP_INI_SYSTEM Si la globale HttpRequestDataShare doit, par défaut, partager les informations de connexion. Ceci n'est pas encore implémenté dans libcurl.
http.persistent.handles.limit "-1" PHP_INI_SYSTEM Le nombre maximal de connexions persistantes à conserver actives.
http.persistent.handles.ident "GLOBAL" PHP_INI_ALL L'identification utilisée avec les connexions persistantes.
http.send.inflate.start_auto "0" PHP_INI_PERDIR|PHP_INI_SYSTEM Si l'on doit automatiquement commencer le gestionnaire de compression de sortie.
http.send.inflate.start_flags "0" PHP_INI_ALL Initialisation de la configuration pour le gestionnaire de compression de sortie.
http.send.deflate.start_auto "0" PHP_INI_PERDIR|PHP_INI_SYSTEM Si l'on doit automatiquement commencer le gestionnaire de décompression de sortie.
http.send.deflate.start_flags "0" PHP_INI_ALL Initialisation de la configuration pour le gestionnaire de décompression de sortie. Voir les constantes de décompression.
http.send.not_found_404 "1" PHP_INI_ALL Si l'on doit sortir automatiquement avec un statut "404 Not found", si http_send_file() n'est pas capable de trouver le fichier spécifique. Voir la directive de configuration INI http.force_exit pour savoir ce que signifie "exits".
http.only_exceptions "0" PHP_INI_ALL Si toutes les alertes et erreurs doivent émettre des exceptions.
http.force_exit "1" PHP_INI_ALL Chaque occasion où "exits with a status of..." est mentionné, cause habituellement l'arrêt du moteur de script. Désactiver cette option si vous voulez plutôt commencer un gestionnaire de sortie auxiliaire (vers dev/null) et continuer l'exécution du script.



Types de ressources

Cette extension définit une ressource de flux, retournée par la fonction http_get_request_body_stream() et la fonction HttpResponse::getStream().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes utilisables avec la fonction http_support()
HTTP_SUPPORT (integer)
requête vers cette constante retournera toujours TRUE
HTTP_SUPPORT_REQUESTS (integer)
si le support des requêtes HTTP est fourni, i.e. le support libcurl est compilé
HTTP_SUPPORT_MAGICMIME (integer)
si le support de l'interrogation du type de contenu des messages HTTP est fourni, i.e. le support libmagic est compilé
HTTP_SUPPORT_ENCODINGS (integer)
si le support de l'encodage zlib est fourni, i.e. le support libz est compilé
HTTP_SUPPORT_SSLREQUESTS (integer)
si l'on peut envoyer des demandes HTTP via SSL, i.e. libcurl est compilé avec le support SSL
Constantes utilisables avec la fonction http_parse_params()
HTTP_PARAMS_ALLOW_COMMA (integer)
autorise les virgules, en plus des points-virgules, en tant que séparateur
HTTP_PARAMS_ALLOW_FAILURE (integer)
continue l'analyse après qu'une erreur ne soit survenue
HTTP_PARAMS_RAISE_ERROR (integer)
lance une alerte PHP lors d'erreurs d'analyse
HTTP_PARAMS_DEFAULT (integer)
l'ensemble des trois valeurs ci-dessus
Constantes utilisables avec la fonction http_parse_cookie() et la valeur retournée
HTTP_COOKIE_PARSE_RAW (integer)
ne pas url-encoder les valeurs
HTTP_COOKIE_SECURE (integer)
si "secure" a été trouvé dans la liste des paramètres du cookie
HTTP_COOKIE_HTTPONLY (integer)
si "httpOnly" a été trouvé dans la liste des paramètres du cookie
Constantes utilisables avec la fonction http_deflate() et la classe HttpDeflateStream
HTTP_DEFLATE_LEVEL_DEF (integer)
HTTP_DEFLATE_LEVEL_MIN (integer)
HTTP_DEFLATE_LEVEL_MAX (integer)
HTTP_DEFLATE_TYPE_ZLIB (integer)
HTTP_DEFLATE_TYPE_GZIP (integer)
HTTP_DEFLATE_TYPE_RAW (integer)
HTTP_DEFLATE_STRATEGY_DEF (integer)
HTTP_DEFLATE_STRATEGY_FILT (integer)
HTTP_DEFLATE_STRATEGY_HUFF (integer)
HTTP_DEFLATE_STRATEGY_RLE (integer)
HTTP_DEFLATE_STRATEGY_FIXED (integer)
Constantes utilisables avec les classes HttpDeflateStream et HttpInflateStream
HTTP_ENCODING_STREAM_FLUSH_NONE (integer)
ne pas envoyer
HTTP_ENCODING_STREAM_FLUSH_SYNC (integer)
flush synchronisé uniquement
HTTP_ENCODING_STREAM_FLUSH_FULL (integer)
toutes les données sont envoyées
Constantes utilisées pour le rapport d'erreurs et d'exceptions
HTTP_E_RUNTIME (integer)
erreur d'exécution
HTTP_E_INVALID_PARAM (integer)
un paramètre invalide a été passé
HTTP_E_HEADER (integer)
header() ou opération similaire a échoué
HTTP_E_MALFORMED_HEADERS (integer)
erreur d'analyse d'un en-tête HTTP
HTTP_E_REQUEST_METHOD (integer)
méthode de demande inconnue/invalide
HTTP_E_MESSAGE_TYPE (integer)
avec un type de message d'une opération incompatible
HTTP_E_ENCODING (integer)
erreur d'encodage/décodage
HTTP_E_REQUEST (integer)
échec de la demande
HTTP_E_REQUEST_POOL (integer)
échec dans la file de demande
HTTP_E_SOCKET (integer)
exception d'un socket
HTTP_E_RESPONSE (integer)
échec d'une réponse
HTTP_E_URL (integer)
URL invalide
HTTP_E_QUERYSTRING (integer)
échec dans l'opération de requête
Constantes utilisables avec la classe HttpMessage
HTTP_MSG_NONE (integer)
le message n'est pas d'un type spécifique
HTTP_MSG_REQUEST (integer)
style du message de la demande
HTTP_MSG_RESPONSE (integer)
style du message de la réponse
Constantes utilisables avec la classe HttpQueryString
HTTP_QUERYSTRING_TYPE_BOOL (integer)
HTTP_QUERYSTRING_TYPE_INT (integer)
HTTP_QUERYSTRING_TYPE_FLOAT (integer)
HTTP_QUERYSTRING_TYPE_STRING (integer)
HTTP_QUERYSTRING_TYPE_ARRAY (integer)
HTTP_QUERYSTRING_TYPE_OBJECT (integer)
Constantes utilisables pour httpauthtype option de demande
HTTP_AUTH_BASIC (integer)
utilise l'identification "basic"
HTTP_AUTH_DIGEST (integer)
utilise l'identification "digest"
HTTP_AUTH_NTLM (integer)
utilise l'identification "NTLM"
HTTP_AUTH_GSSNEG (integer)
utilise l'identification "GSS-NEGOTIATE"
HTTP_AUTH_ANY (integer)
tente n'importe quel schéma d'identification
Constantes utilisables pour la version du protocole HTTP option de demande
HTTP_VERSION_ANY (integer)
aucune version de protocole HTTP spécifique
HTTP_VERSION_1_0 (integer)
HTTP version 1.0
HTTP_VERSION_1_1 (integer)
HTTP version 1.1
Constantes utilisables pour le type du protocole SSL et la version option de demande
HTTP_SSL_VERSION_ANY (integer)
aucune version du protocole SSL spécifique
HTTP_SSL_VERSION_TLSv1 (integer)
utilise TLSv1 uniquement
HTTP_SSL_VERSION_SSLv3 (integer)
utilise SSLv3 uniquement
HTTP_SSL_VERSION_SSLv2 (integer)
utilise SSLv2 uniquement
Constantes utilisées par le proxytype option de demande
HTTP_PROXY_SOCKS4 (integer)
le proxy est un proxy de type SOCKS4
HTTP_PROXY_SOCKS5 (integer)
le proxy est un proxy de type SOCKS5
HTTP_PROXY_HTTP (integer)
proxy HTTP standard
Constantes utilisées pour le ipresolve option de demande
HTTP_IPRESOLVE_V4 (integer)
utilise IPv4 uniquement pour la recherche de noms
HTTP_IPRESOLVE_V6 (integer)
utilise IPv6 uniquement pour la recherche de noms
HTTP_IPRESOLVE_ANY (integer)
utilise n'importe quel mécanisme uniquement pour la recherche de noms
Constantes prédéfinies pour la méthode de demande HTTP
HTTP_METH_GET (integer)
HTTP_METH_HEAD (integer)
HTTP_METH_POST (integer)
HTTP_METH_PUT (integer)
HTTP_METH_DELETE (integer)
HTTP_METH_OPTIONS (integer)
HTTP_METH_TRACE (integer)
HTTP_METH_CONNECT (integer)
HTTP_METH_PROPFIND (integer)
HTTP_METH_PROPPATCH (integer)
HTTP_METH_MKCOL (integer)
HTTP_METH_COPY (integer)
HTTP_METH_MOVE (integer)
HTTP_METH_LOCK (integer)
HTTP_METH_UNLOCK (integer)
HTTP_METH_VERSION_CONTROL (integer)
HTTP_METH_REPORT (integer)
HTTP_METH_CHECKOUT (integer)
HTTP_METH_CHECKIN (integer)
HTTP_METH_UNCHECKOUT (integer)
HTTP_METH_MKWORKSPACE (integer)
HTTP_METH_UPDATE (integer)
HTTP_METH_LABEL (integer)
HTTP_METH_MERGE (integer)
HTTP_METH_BASELINE_CONTROL (integer)
HTTP_METH_MKACTIVITY (integer)
HTTP_METH_ACL (integer)
Constantes utilisables avec la fonction http_redirect()
HTTP_REDIRECT (integer)
demande la méthode de redirection applicable
HTTP_REDIRECT_PERM (integer)
redirection permanente (301 Moved permanently)
HTTP_REDIRECT_FOUND (integer)
redirection standard (302 Found)

Note: Les RFC 1945 et RFC 2068 spécifies que le client n'est pas autorisé à changer la méthode de la demande de redirection. Cependant, la plupart des implémentations des agents utilisateurs existants gèrent une réponse 302 comme s'il s'agissait d'une réponse 303, effectuant un GET sur la valeur du champ au regard de la méthode de la demande originale. Les codes statut 303 et 307 ont été ajoutés pour les serveurs qui veulent, sans ambiguïté, effectuer un effacement, ce qui est attendu par le client.

HTTP_REDIRECT_POST (integer)
redirection applicable aux demandes POST (303 See other)
HTTP_REDIRECT_PROXY (integer)
redirection de proxy (305 Use proxy)
HTTP_REDIRECT_TEMP (integer)
redirection temporaire (307 Temporary Redirect)
Constantes utilisables avec la fonction http_build_url()
HTTP_URL_REPLACE (integer)
remplace chaque partie de la première URL lorsqu'elles font parties de la seconde
HTTP_URL_JOIN_PATH (integer)
joins les chemins relatifs
HTTP_URL_JOIN_QUERY (integer)
joins les chaînes de requête
HTTP_URL_STRIP_USER (integer)
enlève toutes les informations d'identification utilisateur
HTTP_URL_STRIP_PASS (integer)
enlève toutes les informations d'identification concernant le mot de passe
HTTP_URL_STRIP_AUTH (integer)
enlève toutes les informations d'identification
HTTP_URL_STRIP_PORT (integer)
enlève les numéros de port explicites
HTTP_URL_STRIP_PATH (integer)
enlève le chemin complet
HTTP_URL_STRIP_QUERY (integer)
enlève la chaîne de requête
HTTP_URL_STRIP_FRAGMENT (integer)
enlève n'importe quel fragment (#identifier)
HTTP_URL_STRIP_ALL (integer)
enlève tout


Options utilisables avec la classe HttpRequest et les fonctions relatives

Options relatives aux délais d'expiration
timeout (integer)
durée maximale en secondes pendant laquelle la demande en entière peut terminer son action
connecttimeout (integer)
durée maximale en secondes pour se connecter. Incluant la résolution du nom
dns_cache_timeout (integer)
durée maximale en secondes avant de faire expirer une entrée DNS du cache
Options relatives aux URL
url (string)
l'URL de la demande
port (integer)
utilise un autre port que celui spécifié dans l'URL
redirect (integer)
si l'on doit effectuer une redirection et combien l'on doit suivre ; par défaut, 0
unrestrictedauth (bool)
si l'on doit continuer d'envoyer des identifiants lors des redirections vers un hôte différent
referer (string)
l'URL référante à envoyer
Options associées aux cookies
encodecookies (bool)
si les cookies personnalisés doivent être url-encodés avant l'envoi
cookies (array)
liste des cookies, sous la forme d'un tableau associatif , sous cette forme : array("cookie" => "value")
cookiestore (string)
chemin vers un fichier où les cookies sont/seront stockés
cookiesession (bool)
si vaut TRUE, ne charge pas les cookies de session depuis le magasin de cookies
Options relatives aux en-têtes
useragent (string)
l'agent utilisateur à envoyer ; par défaut, PECL::HTTP/x.y.z (PHP/x.y.z); omis si explicitement défini par une chaîne vide
lastmodified (int)
timestamp pour l'en-tête If-(Un)Modified-Since
etag (string)
etag pour l'en-tête If-(None-)Match
headers (array)
liste des en-têtes personnalisés, sous la forme d'un tableau : array("header" => "value")
Options relatives à l'identification
httpauth (string)
Identification HTTP, au format "user:pass"
httpauthtype (int)
constantes représentant les types d'identification HTTP
(array)
Options relatives aux proxy
proxyhost (string)
hôte du proxy, dans le format "host[:port]"
proxyport (int)
utilise un port différent pour le proxy que celui spécifié dans proxyhost
proxytype (int)
constantes des types de proxy HTTP
proxyauth (string)
identifiant du proxy, au format "user:pass"
proxyauthtype (int)
constantes des types d'identification
Options liées au transfert
compress (bool)
si l'on doit demander ou accepter une réponse dont le contenu est encodé gzip/deflate
resume (int)
commence le téléchargement à la position spécifié si le serveur le supporte (indiqué par le code réponse 206)
range (array)
tableau de tableaux, chaque contenant deux entiers, spécifiant l'intervalle de téléchargement si le serveur le supporte (indiqué par le code réponse 206) ; uniquement reconnu si l'option "resume" est vide
Options qui imposent des limites
maxfilesize (integer)
taille maximale de fichier pouvant être téléchargé ; n'a aucun effet, si la taille de l'entité demandé est inconnu (e.g. pages dynamiques avec un encodage de transfert, etc.)
low_speed_limit (int)
la vitesse minimale de transfert qu'une demande réussie peut avoir
low_speed_time (int)
la durée durant laquelle low_speed_limit doit être transféré pour une demande réussie
max_send_speed (int)
vitesse maximale d'envoi, en octets par seconde
max_recv_speed (int)
vitesse maximale de réception, en octets par seconde
Options de Callback
onprogress (callback)
progression du callback
Options réseaux
interface (string)
interface réseau de sortie (ifname, ip ou hostname)
portrange (array)
2 entiers spécifiant la rangée de port de sortie à essayer
SSL options
ssl (array)

Note: Les options SSL sont définies via un tableau contenant un nom d'option de demande simple "ssl".

cert (string)
chemin vers le certificat
certtype (string)
type du certificat
certpasswd (string)
mot de passe du certificat
key (string)
chemin vers la clé
keytype (string)
type de la clé
keypasswd (string)
mot de passe pour la clé
engine (string)
moteur ssl à utiliser
version (int)
version ssl à utiliser
verifypeer (bool)
si l'on doit vérifier le pair
verifyhost (bool)
si l'on doit vérifier l'hôte
cipher_list (string)
liste des algorithmes de chiffrements autorisés
cainfo (string)
capath (string)
random_file (string)
egdsocket (string)


Classe HttpDeflateStream

Synopsis de la classe

HttpDeflateStream {
public void __construct ([ int $flags = 0 ] )
public HttpDeflateStream factory ([ int $flags = 0 [, string $class_name = "HttpDeflateStream" ]] )
public string finish ([ string $data ] )
public string flush ([ string $data ] )
public string update ( string $data )
}

Membres de la classe

Constantes pré-définies

Type Nom Description
int TYPE_GZIP encodage gzip
int TYPE_ZLIB zlib AKA encodage compressé
int TYPE_RAW encodage compressé
int LEVEL_DEF degré de compression par défaut
int LEVEL_MIN degré de compression minimum
int LEVEL_MAX degré de compression maximum
int STRATEGY_DEF stratégie par défaut
int STRATEGY_FILT stratégie filtrée
int STRATEGY_HUFF stratégie Huffman
int STRATEGY_RLE stratégie RLE
int STRATEGY_FIXED stratégie fixe
int FLUSH_NONE pas de flush forcé
int FLUSH_SYNC synchronisation du flush
int FLUSH_FULL flush complet

Exemples

Exemple #1 Exemple avec HttpDeflateStream

<?php
$stream 
= new HttpDeflateStream(
    
HttpDeflateStream::TYPE_GZIP |
    
HttpDeflateStream::LEVEL_MAX |
    
HttpDeflateStream::FLUSH_SYNC);

echo 
$stream->update($data);
echo 
$stream->finish();
?>


HttpDeflateStream::__construct

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::__constructConstructeur de la classe HttpDeflateStream

Description

public void HttpDeflateStream::__construct ([ int $flags = 0 ] )

Créé une nouvelle instance de l'objet HttpDeflateStream.

Voir la table des constantes des flux pour les flags possibles.

Liste de paramètres

flags

flags d'initialisation

Voir aussi



HttpDeflateStream::factory

(PECL pecl_http >= 1.4.0)

HttpDeflateStream::factoryClasse HttpDeflateStream

Description

public HttpDeflateStream HttpDeflateStream::factory ([ int $flags = 0 [, string $class_name = "HttpDeflateStream" ]] )

Crée une nouvelle instance de l'objet HttpDeflateStream.

Voir la tableau des constantes du flux de compression pour les valeurs possibles de flags.

Liste de paramètres

flags

Drapeaux d'initialisation

class_name

nom de la sous classe de HttpDeflateStream

Voir aussi



HttpDeflateStream::finish

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::finishFinalise un flux compressé

Description

public string HttpDeflateStream::finish ([ string $data ] )

Finalise le flux compressé. Le flux compressé peut être réutilisé après sa finalisation.

Liste de paramètres

data

données à compresser

Valeurs de retour

Retourne la partie finale des données compressées.



HttpDeflateStream::flush

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::flushEnvoi un flux compressé

Description

public string HttpDeflateStream::flush ([ string $data ] )

Envoi le flux compressé.

Liste de paramètres

data

plus de données à compresser

Valeurs de retour

Retourne quelques données compressées sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.



HttpDeflateStream::update

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::updateMet à jour le flux compressé

Description

public string HttpDeflateStream::update ( string $data )

Passe plus de données via le flux compressé.

Liste de paramètres

data

données à compresser

Valeurs de retour

Retourne les données compressées en cas de succès ou FALSE si une erreur survient.


Sommaire



Classe HttpInflateStream

Synopsis de la classe

HttpInflateStream {
public void __construct ([ int $flags = 0 ] )
public HttpInflateStream factory ([ int $flags = 0 [, string $class_name = "HttpInflateStream" ]] )
public string finish ([ string $data ] )
public string flush ([ string $data ] )
public string update ( string $data )
}

Membres de la classe

Constantes

Type Nom Description
int FLUSH_NONE pas de flush forcé
int FLUSH_SYNC synchronisation du flush
int FLUSH_FULL flush complet

Note:

Le flush n'a habituellement aucun effet sur les flux décompressés.

Exemples

Exemple #1 Exemple avec HttpInflateStream

<?php
$stream 
= new HttpInflateStream;
echo 
$stream->update($data);
echo 
$stream->finish();
?>


HttpInflateStream::__construct

(PECL pecl_http >= 1.0.0)

HttpInflateStream::__constructConstructeur de la classe HttpInflateStream

Description

public void HttpInflateStream::__construct ([ int $flags = 0 ] )

Créé une nouvelle instance de l'objet HttpInflateStream.

Voir la table des constantes décompressées pour les flags possibles.

Liste de paramètres

flags

Flags d'initialisation

Voir aussi



HttpInflateStream::factory

(PECL pecl_http >= 1.4.0)

HttpInflateStream::factoryClasse HttpInflateStream

Description

public HttpInflateStream HttpInflateStream::factory ([ int $flags = 0 [, string $class_name = "HttpInflateStream" ]] )

Crée une nouvelle instance de l'objet HttpInflateStream.

Voir le tableau des constantes de décompression pour les valeurs possibles de flags.

Liste de paramètres

flags

Drapeaux d'initialisation

class_name

nom de la sous classe de HttpInflateStream

Voir aussi



HttpInflateStream::finish

(PECL pecl_http >= 0.21.0)

HttpInflateStream::finishFinalise un flux décompressé

Description

public string HttpInflateStream::finish ([ string $data ] )

Finalise le flux décompressé. Le flux décompressé peut être réutilisé après sa finalisation.

Liste de paramètres

data

données à décompresser

Valeurs de retour

Retourne la partie finale des données décompressées.



HttpInflateStream::flush

(PECL pecl_http >= 0.21.0)

HttpInflateStream::flushEnvoi un flux décompressé

Description

public string HttpInflateStream::flush ([ string $data ] )

Envoi le flux décompressé.

Note:

L'envoi n'a habituellement aucun effet sur les flux décompressés.

Liste de paramètres

data

plus de données à décompresser

Valeurs de retour

Retourne quelques données décompressées sous la forme d'une chaîne décompressée ou FALSE si une erreur survient.



HttpInflateStream::update

(PECL pecl_http >= 0.21.0)

HttpInflateStream::updateMet à jour un flux décompressé

Description

public string HttpInflateStream::update ( string $data )

Passe plus de données via le flux décompressé.

Liste de paramètres

data

données à décompresser

Valeurs de retour

Retourne les données décompressées ou FALSE si une erreur survient.


Sommaire



Classe HttpMessage

Synopsis de la classe

HttpMessage implements Iterator , Countable , Serializable {
public void addHeaders ( array $headers [, bool $append = false ] )
public void __construct ([ string $message ] )
public HttpMessage detach ( void )
static public HttpMessage factory ([ string $raw_message [, string $class_name = "HttpMessage" ]] )
static public HttpMessage fromEnv ( int $message_type [, string $class_name = "HttpMessage" ] )
static public HttpMessage fromString ([ string $raw_message [, string $class_name = "HttpMessage" ]] )
public string getBody ( void )
public string getHeader ( string $header )
public array getHeaders ( void )
public string getHttpVersion ( void )
public HttpMessage getParentMessage ( void )
public string getRequestMethod ( void )
public string getRequestUrl ( void )
public int getResponseCode ( void )
public string getResponseStatus ( void )
public int getType ( void )
public string guessContentType ( string $magic_file [, int $magic_mode = MAGIC_MIME ] )
public void prepend ( HttpMessage $message [, bool $top = true ] )
public HttpMessage reverse ( void )
public bool send ( void )
public void setBody ( string $body )
public void setHeaders ( array $headers )
public bool setHttpVersion ( string $version )
public bool setRequestMethod ( string $method )
public bool setRequestUrl ( string $url )
public bool setResponseCode ( int $code )
public bool setResponseStatus ( string $status )
public void setType ( int $type )
public HttpRequest|HttpResponse toMessageTypeObject ( void )
public string toString ([ bool $include_parent = false ] )
}

Membres de la classe

Propriétés

Propriété de l'instance
Modificateurs Type Nom Description
protected entier type type du message
protected chaîne de caractères body corps du message
protected float httpVersion version du protocole HTTP
protected tableau headers en-têtes du message
protected chaîne de caractères requestMethod nom de la méthode de la requête
protected requestUrl string URL de la requête
protected int responseCode code réponse
protected string responseStatus statut du message de la réponse
protected HttpMessage parentMessage référence vers le message parent

Note:

Aucune de ces propriétés par défaut ne peuvent être accédées par référence, ni par notation clé/index de tableau, ni être utilisées dans des opérations d'incrémentation ou décrémentation.

Constantes pré-définies

Type Nom Description
int TYPE_NONE message ne contient pas de type spécifique
int TYPE_REQUEST message est un message HTTP du style message
int TYPE_RESPONSE message est un message HTTP du style réponse

HttpMessage::addHeaders

(PECL pecl_http >= 0.10.0)

HttpMessage::addHeadersAjoute des en-têtes

Description

public void HttpMessage::addHeaders ( array $headers [, bool $append = false ] )

Ajoute des en-têtes. Si le paramètre append vaut TRUE, les en-têtes avec les mêmes noms seront séparés, sinon, ils seront écrasés.

Liste de paramètres

headers

tableau associatif contenant les en-têtes HTTP additionnels à ajouter aux en-têtes existants du message

append

si ce paramètre vaut TRUE et qu'un en-tête avec le même nom existe déjà, cet en-tête sera converti en un tableau associatif contenant les différentes valeurs de l'en-tête, sinon, il sera écrasé avec la nouvelle valeur de l'en-tête

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpMessage::__construct

(PECL pecl_http >= 0.10.0)

HttpMessage::__constructConstructeur de la classe HttpMessage

Description

public void HttpMessage::__construct ([ string $message ] )

Instancie un nouvel objet HttpMessage.

L'objet construit représente le dernier message de la chaîne passée. S'il y a des messages précédents, ils peuvent être accéder via HttpMessage::getParentMessage().

Liste de paramètres

message

un ou plusieurs messages HTTP consécutifs

Erreurs / Exceptions

Lance une exception HttpMalformedHeaderException.



HttpMessage::detach

(PECL pecl_http >= 0.22.0)

HttpMessage::detachDétache un HttpMessage

Description

public HttpMessage HttpMessage::detach ( void )

Retourne un clone de l'objet HttpMessage, détaché de ses messages parents.

Liste de paramètres

Valeurs de retour

Retourne un copie de l'objet détaché HttpMessage.



HttpMessage::factory

(PECL pecl_http >= 1.4.0)

HttpMessage::factoryCrée HttpMessage pour une chaîne

Description

static public HttpMessage HttpMessage::factory ([ string $raw_message [, string $class_name = "HttpMessage" ]] )

Crée un objet HttpMessage pour une chaîne.

Liste de paramètres

raw_message

un ou des messages consécutifs HTTP

class_name

une classe étendant HttpMessage

Valeurs de retour

Retourne un objet HttpMessage en cas de succès, ou NULL si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpMalformedHeadersException.

Voir aussi



HttpMessage::fromEnv

(PECL pecl_http >= 1.5.0)

HttpMessage::fromEnvCrée HttpMessage pour l'environnement

Description

static public HttpMessage HttpMessage::fromEnv ( int $message_type [, string $class_name = "HttpMessage" ] )

Crée un objet HttpMessage pour l'environnement du script.

Liste de paramètres

message_type

Le type de message. Voir les constantes type de HttpMessage.

class_name

une classe étendant HttpMessage

Valeurs de retour

Retourne un objet HttpMessage en cas de succès, ou NULL si une erreur survient.

Voir aussi



HttpMessage::fromString

(PECL pecl_http 0.10.0-1.3.3)

HttpMessage::fromStringCrée un HttpMessage depuis une chaîne de caractères

Description

static public HttpMessage HttpMessage::fromString ([ string $raw_message [, string $class_name = "HttpMessage" ]] )

Crée un objet HttpMessage depuis une chaîne de caractères.

Cet alias est déprécié et n'existe que pour des raisons de comptabilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Liste de paramètres

raw_message

un ou plusieurs messages HTTP consécutifs

class_name

une classe étendant la classe HttpMessage

Valeurs de retour

Retourne un objet HttpMessage en cas de succès, ou NULL si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpMalformedHeadersException.

Voir aussi



HttpMessage::getBody

(PECL pecl_http >= 0.10.0)

HttpMessage::getBodyRécupère le corps du message

Description

public string HttpMessage::getBody ( void )

Récupère le corps du HttpMessage.

Valeurs de retour

Retourne le corps du message sous la forme d'une chaîne de caractères.



HttpMessage::getHeader

(PECL pecl_http >= 1.1.0)

HttpMessage::getHeaderRécupère les en-têtes

Description

public string HttpMessage::getHeader ( string $header )

Récupère les en-têtes du message.

Liste de paramètres

header

nom de l'en-tête

Valeurs de retour

Retourne la valeur de l'en-tête en cas de succès, ou NULL si l'en-tête n'existe pas.



HttpMessage::getHeaders

(PECL pecl_http >= 0.10.0)

HttpMessage::getHeadersRécupère les en-têtes du message

Description

public array HttpMessage::getHeaders ( void )

Récupère les en-têtes du message.

Valeurs de retour

Retourne un tableau associatif contenant les en-têtes du message HTTP.



HttpMessage::getHttpVersion

(PECL pecl_http >= 0.10.0)

HttpMessage::getHttpVersionRécupère la version HTTP

Description

public string HttpMessage::getHttpVersion ( void )

Récupère la version du protocole HTTP du message.

Valeurs de retour

Retourne la version du protocole HTTP sous la forme d'une chaîne de caractères.



HttpMessage::getParentMessage

(PECL pecl_http >= 0.10.0)

HttpMessage::getParentMessageRécupère le message parent

Description

public HttpMessage HttpMessage::getParentMessage ( void )

Récupère le message parent.

Valeurs de retour

Retourne l'objet parent HttpMessage.

Erreurs / Exceptions

Lance une exception HttpRuntimeException.



HttpMessage::getRequestMethod

(PECL pecl_http >= 0.10.0)

HttpMessage::getRequestMethodRécupère la méthode de la demande

Description

public string HttpMessage::getRequestMethod ( void )

Récupère la méthode de la demande du message.

Valeurs de retour

Retourne le nom de la méthode de la demande en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST.



HttpMessage::getRequestUrl

(PECL pecl_http >= 0.21.0)

HttpMessage::getRequestUrlRécupère l'URL de la demande

Description

public string HttpMessage::getRequestUrl ( void )

Récupère l'URL de la demande du message.

Liste de paramètres

Valeurs de retour

Retourne l'URL de la demande sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST.



HttpMessage::getResponseCode

(PECL pecl_http >= 0.10.0)

HttpMessage::getResponseCodeRécupère le code réponse

Description

public int HttpMessage::getResponseCode ( void )

Récupère le code réponse du message.

Valeurs de retour

Retourne le code réponse HTTP si le message est du type HttpMessage::TYPE_RESPONSE, FALSE sinon.



HttpMessage::getResponseStatus

(PECL pecl_http >= 0.23.0)

HttpMessage::getResponseStatusRécupère le statut de la réponse

Description

public string HttpMessage::getResponseStatus ( void )

Récupère le statut de la réponse du message (i.e. la chaîne suivant le code réponse).

Valeurs de retour

Retourne le statut de la réponse HTTP si le message est du type HttpMessage::TYPE_RESPONSE, FALSE sinon.



HttpMessage::getType

(PECL pecl_http >= 0.10.0)

HttpMessage::getTypeRécupère le type du message

Description

public int HttpMessage::getType ( void )

Récupère le type de message. Le type du message peut être HTTP_MSG_NONE, HTTP_MSG_REQUEST ou HTTP_MSG_RESPONSE.

Valeurs de retour

Retourne le HttpMessage::TYPE.



HttpMessage::guessContentType

(PECL pecl_http >= 1.0.0)

HttpMessage::guessContentTypeDemande le type de contenu

Description

public string HttpMessage::guessContentType ( string $magic_file [, int $magic_mode = MAGIC_MIME ] )

Demande le type de contenu du corps du message via libmagic.

Liste de paramètres

magic_file

la base de données magic.mime à utiliser

magic_mode

balises pour libmagic

Valeurs de retour

Retourne le type de contenu en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpRuntimeException ou HttpInvalidParamException.



HttpMessage::prepend

(PECL pecl_http >= 0.22.0)

HttpMessage::prependAjoute un message

Description

public void HttpMessage::prepend ( HttpMessage $message [, bool $top = true ] )

Ajoute un message au message HTTP.

Liste de paramètres

message

Objet HttpMessage à ajouter

top

si l'on doit ajouter le message au plus haut ou à droite de ce message

Erreurs / Exceptions

Lance une exception HttpInvalidParamException si le message se trouve dans la même chaîne de message.



HttpMessage::reverse

(PECL pecl_http >= 0.23.0)

HttpMessage::reverseRenverse la chaîne du message

Description

public HttpMessage HttpMessage::reverse ( void )

Réordonne la chaîne du message dans un ordre inverse.

Valeurs de retour

Retourne l'objet HttpMessage.



HttpMessage::send

(PECL pecl_http >= 0.10.0)

HttpMessage::sendEnvoie le message

Description

public bool HttpMessage::send ( void )

Envoie le message en fonction de son type (réponse ou demande).

Ceci fournit des fonctionnalités limitées par rapport à HttpRequest et HttpResponse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpMessage::setBody

(PECL pecl_http >= 0.14.0)

HttpMessage::setBodyDéfinit le corps du message

Description

public void HttpMessage::setBody ( string $body )

Définit le corps du message HttpMessage.

Note:

N'oubliez pas de mettre à jour tous les en-têtes en fonction.

Liste de paramètres

body

le nouveau corps du message



HttpMessage::setHeaders

(PECL pecl_http >= 0.10.0)

HttpMessage::setHeadersDéfinit les en-têtes

Description

public void HttpMessage::setHeaders ( array $headers )

Définit de nouveaux en-têtes.

Liste de paramètres

headers

tableau associatif contenant les nouveaux en-têtes HTTP, qui remplaceront tous les précédents en-têtes HTTP du message



HttpMessage::setHttpVersion

(PECL pecl_http >= 0.10.0)

HttpMessage::setHttpVersionDéfinit la version HTTP

Description

public bool HttpMessage::setHttpVersion ( string $version )

Définit la version du protocole HTTP du message.

Liste de paramètres

version

la version du protocole HTTP

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si la version fournie n'est pas dans l'intervalle (1.0/1.1).



HttpMessage::setRequestMethod

(PECL pecl_http >= 0.10.0)

HttpMessage::setRequestMethodDéfinit la méthode de la demande

Description

public bool HttpMessage::setRequestMethod ( string $method )

Définit la méthode de la demande du message HTTP.

Liste de paramètres

method

le nom de la méthode de la demande

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST ou si une méthode de demande invalide est fournie.



HttpMessage::setRequestUrl

(PECL pecl_http >= 0.21.0)

HttpMessage::setRequestUrlDéfinit l'URL de la demande

Description

public bool HttpMessage::setRequestUrl ( string $url )

Définit l'URL de la demande du message HTTP.

Liste de paramètres

url

l'URL de la demande

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST ou si l'URL fournie était vide.



HttpMessage::setResponseCode

(PECL pecl_http >= 0.10.0)

HttpMessage::setResponseCodeDéfinit le code réponse

Description

public bool HttpMessage::setResponseCode ( int $code )

Définit le code réponse du message de la réponse HTTP.

Liste de paramètres

code

Code de la réponse HTTP

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_RESPONSE ou si le code réponse n'est pas dans l'intervalle (100-510).



HttpMessage::setResponseStatus

(PECL pecl_http >= 0.23.0)

HttpMessage::setResponseStatusDéfinit le statut de la réponse

Description

public bool HttpMessage::setResponseStatus ( string $status )

Définit le statut de la réponse du message HTTP (i.e. la chaîne suivant le code réponse).

Liste de paramètres

status

le texte du statut de la réponse

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE si le message n'est pas du type HttpMessage::TYPE_RESPONSE.



HttpMessage::setType

(PECL pecl_http >= 0.10.0)

HttpMessage::setTypeDéfinit le type de message

Description

public void HttpMessage::setType ( int $type )

Définit le type de message. Le type de message peut être HTTP_MSG_NONE, HTTP_MSG_REQUEST ou HTTP_MSG_RESPONSE.

Liste de paramètres

type

Le HttpMessage::TYPE



HttpMessage::toMessageTypeObject

(PECL pecl_http >= 0.22.0)

HttpMessage::toMessageTypeObjectCrée un objet HTTP en fonction du type de message

Description

public HttpRequest|HttpResponse HttpMessage::toMessageTypeObject ( void )

Crée un objet en fonction du type de message.

Liste de paramètres

Valeurs de retour

Retourne soit un objet HttpRequest, soit un objet HttpResponse en cas de succès, ou NULL si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpRuntimeException, HttpMessageTypeException ou HttpHeaderException.



HttpMessage::toString

(PECL pecl_http >= 0.10.0)

HttpMessage::toStringRécupère la représentation du message sous la forme d'une chaîne de caractères

Description

public string HttpMessage::toString ([ bool $include_parent = false ] )

Récupère la représentation du message sous la forme d'une chaîne de caractères.

Liste de paramètres

include_parent

spécifie si la chaîne retournée doit contenir tous les messages parents

Valeurs de retour

Retourne le message sous la forme d'une chaîne de caractères.


Sommaire



Classe HttpQueryString

Synopsis de la classe

HttpQueryString implements ArrayAccess , Serializable {
final public void __construct ([ bool $global = true [, mixed $add ]] )
public mixed get ([ string $key [, mixed $type = 0 [, mixed $defval = NULL [, bool $delete = false ]]]] )
public HttpQueryString mod ( mixed $params )
public string set ( mixed $params )
static public HttpQueryString singleton ([ bool $global = true ] )
public array toArray ( void )
public string toString ( void )
public bool xlate ( string $ie , string $oe )
}

Membres de la classe

Propriétés

Propriétés de l'instance
Modificateurs Type Nom Description
private array queryArray paramètres de la requête
private string queryString paramètres linéarisés de la requête
Propriétés statiques
Modificateurs Type Nom Description
private array instance gestion des singletons

Constantes pré-définies

Type Nom Description
int TYPE_BOOL récupération des paramètres de la requête sous la forme d'un booléen
int TYPE_INT récupération des paramètres de la requête sous la forme d'un entier
int TYPE_FLOAT récupération des paramètres de la requête sous la forme d'un nombre à virgules flottantes
int TYPE_STRING récupération des paramètres de la requête sous la forme d'une chaîne de caractères
int TYPE_ARRAY récupération des paramètres de la requête sous la forme d'un tableau
int TYPE_OBJECT récupération des paramètres de la requête sous la forme d'un objet

HttpQueryString::__construct

(PECL pecl_http >= 0.22.0)

HttpQueryString::__constructConstructeur de la classe HttpQueryString

Description

final public void HttpQueryString::__construct ([ bool $global = true [, mixed $add ]] )

Crée une nouvelle instance de l'objet HttpQueryString.

Opère sur et modifie $_GET et $_SERVER['QUERY_STRING'] si le paramètre global = TRUE vaut TRUE.

Liste de paramètres

global

si l'on doit opérer directement sur $_GET et $_SERVER['QUERY_STRING']

add

paramètres additionnels/initiaux de la requête

Erreurs / Exceptions

Lance une exception HttpRuntimeException.



HttpQueryString::get

(PECL pecl_http >= 0.22.0)

HttpQueryString::getRécupère (une partie) de la requête

Description

public mixed HttpQueryString::get ([ string $key [, mixed $type = 0 [, mixed $defval = NULL [, bool $delete = false ]]]] )

Récupère (une partie) de la requête.

Le type de paramètre est soir une constante HttpQueryString::TYPE_*, soit une abréviation comme "b" pour booléen, "i" pour entier, "f" pour nombre décimal, "s" pour chaîne, "a" pour tableau et "o" pour un objet stdClass.

Liste de paramètres

key

clé du paramètre de la requête à récupérer

type

type de la variable

defval

valeur par défaut si la clé n'existe pas

delete

si l'on doit effacer la paire clé/valeur de la requête

Valeurs de retour

Retourne la valeur du paramètre de la requête ou la requête complète si aucune clé n'est spécifié en cas de succès, ou la valeur par défaut si la clé n'existe pas.



HttpQueryString::mod

(PECL pecl_http >= 1.1.0)

HttpQueryString::modModifie la copie de la requête

Description

public HttpQueryString HttpQueryString::mod ( mixed $params )

Copie l'objet représentant la requête et définit les paramètres sur son clone.

Liste de paramètres

params

paramètres de la requête à ajouter

Valeurs de retour

Retourne un nouvel objet HttpQueryString.



HttpQueryString::set

(PECL pecl_http >= 0.22.0)

HttpQueryString::setDéfinit les paramètres de la requête

Description

public string HttpQueryString::set ( mixed $params )

Définit les paramètres de la requête. Les valeurs NULL effaceront les variables.

Liste de paramètres

params

paramètres à ajouter

Valeurs de retour

Retourne la requête courante.



HttpQueryString::singleton

(PECL pecl_http >= 0.25.0)

HttpQueryString::singletonRécupère un instance simple de HttpQueryString

Description

static public HttpQueryString HttpQueryString::singleton ([ bool $global = true ] )

Récupère une instance simple (différente de la configuration globale).

Liste de paramètres

global

si l'on doit utiliser $_GET et $_SERVER['QUERY_STRING']

Valeurs de retour

Retourne toujours la même instance de HttpQueryString vis-à-vis de la configuration globale.

Erreurs / Exceptions

Lance une exception HttpRuntimeException.



HttpQueryString::toArray

(PECL pecl_http >= 0.22.0)

HttpQueryString::toArrayRécupère la requête sous la forme d'un tableau

Description

public array HttpQueryString::toArray ( void )

Récupère la requête sous la forme d'un tableau associatif.

Valeurs de retour

Retourne un tableau représentant la requête.



HttpQueryString::toString

(PECL pecl_http >= 0.22.0)

HttpQueryString::toStringRécupère la requête

Description

public string HttpQueryString::toString ( void )

Récupère la requête.

Liste de paramètres

Valeurs de retour

Retourne la requête sous la forme d'une chaîne de caractères.



HttpQueryString::xlate

(PECL pecl_http >= 0.25.0)

HttpQueryString::xlateModifie le jeu de caractères de la requête

Description

public bool HttpQueryString::xlate ( string $ie , string $oe )

Convertit la requête depuis le jeu de caractères source ie en le jeu de caractères de destination oe.

Avertissement

N'utilisez pas de jeux de caractères qui contiennent des octets vides, comme l'UTF-16.

Note:

Cette méthode nécessite d'activer et de charger l'extension iconv.

Liste de paramètres

ie

jeu de caractères source

oe

jeu de caractères désiré

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



Classe HttpRequest

Synopsis de la classe

HttpRequest {
public bool addCookies ( array $cookies )
public bool addHeaders ( array $headers )
public bool addPostFields ( array $post_data )
public bool addPostFile ( string $name , string $file [, string $content_type = "application/x-octetstream" ] )
public bool addPutData ( string $put_data )
public bool addQueryData ( array $query_params )
public bool addRawPostData ( string $raw_post_data )
public bool addSslOptions ( array $options )
public void clearHistory ( void )
public void __construct ([ string $url [, int $request_method = HTTP_METH_GET [, array $options ]]] )
public bool enableCookies ( void )
public string getContentType ( void )
public array getCookies ( void )
public array getHeaders ( void )
public HttpMessage getHistory ( void )
public int getMethod ( void )
public array getOptions ( void )
public array getPostFields ( void )
public array getPostFiles ( void )
public string getPutData ( void )
public string getPutFile ( void )
public string getQueryData ( void )
public string getRawPostData ( void )
public string getRawRequestMessage ( void )
public string getRawResponseMessage ( void )
public HttpMessage getRequestMessage ( void )
public string getResponseBody ( void )
public int getResponseCode ( void )
public array getResponseCookies ([ int $flags = 0 [, array $allowed_extras ]] )
public array getResponseData ( void )
public mixed getResponseHeader ([ string $name ] )
public mixed getResponseInfo ([ string $name ] )
public HttpMessage getResponseMessage ( void )
public string getResponseStatus ( void )
public array getSslOptions ( void )
public string getUrl ( void )
public bool resetCookies ([ bool $session_only = false ] )
public HttpMessage send ( void )
public bool setContentType ( string $content_type )
public bool setCookies ([ array $cookies ] )
public bool setHeaders ([ array $headers ] )
public bool setMethod ( int $request_method )
public bool setOptions ([ array $options ] )
public bool setPostFields ( array $post_data )
public bool setPostFiles ( array $post_files )
public bool setPutData ([ string $put_data ] )
public bool setPutFile ([ string $file = "" ] )
public bool setQueryData ( mixed $query_data )
public bool setRawPostData ([ string $raw_post_data ] )
public bool setSslOptions ([ array $options ] )
public bool setUrl ( string $url )
}

Membres de la classe

Propriétés

Propriétés de l'instance
Modificateurs Type Nom Description
protected tableau options options de demande pour configurer la demande ; voir options de demande
protected tableau postFields donnée de formulaire :
array("nomduchamp" => "valeurduchamp")
protected tableau postFiles fichiers à télécharger :
array(array("name" => "image", "file" => "/home/u/images/u.png", "type" => "image/png"))
protected tableau responseInfo information (statistique) à propos des demandes/réponses ; voir information de demande/réponse
protected HttpMessage responseMessage le message de réponse
protected entier responseCode le code numérique de réponse
protected chaîne de caractères responseStatus le texte littéral du statut de la réponse
protected entier method La méthode de la demande à utiliser
protected chaîne de caractères url l'URL de la demande
protected chaîne de caractères contentType le type de contenu à utiliser pour les demandes POST brutes
protected chaîne de caractères rawPostData les données POST brutes
protected chaîne de caractères queryData les paramètres de la requête
protected chaîne de caractères putFile le fichier à télécharger avec une demande PUT
protected chaîne de caractères putData les données brutes à télécharger avec une requête PUT
protected HttpMessage history l'historique complet demande/réponse si l'enregistrement de l'historique est activé
public booléen recordHistory si l'on doit activer l'enregistrement de l'historique

Constantes pré-définies

Type Nom Description
entier METH_GET méthode de demande GET
entier METH_HEAD méthode de demande HEAD
entier METH_POST méthode de demande POST
entier METH_PUT méthode de demande PUT
entier METH_DELETE méthode de demande DELETE
entier METH_OPTIONS méthode de demande OPTIONS
entier METH_TRACE méthode de demande TRACE
entier METH_CONNECT méthode de demande CONNECT
entier METH_PROPFIND méthode de demande PROPFIND
entier METH_PROPPATCH méthode de demande PROPPATCH
entier METH_MKCOL méthode de demande MKCOL
entier METH_COPY méthode de demande COPY
entier METH_MOVE méthode de demande MOVE
entier METH_LOCK méthode de demande LOCK
entier METH_UNLOCK méthode de demande UNLOCK
entier METH_VERSION_CONTROL méthode de demande VERSION-CONTROL
entier METH_REPORT méthode de demande REPORT
entier METH_CHECKOUT méthode de demande CHECKOUT
entier METH_CHECKIN méthode de demande CHECKIN
entier METH_UNCHECKOUT méthode de demande UNCHECKOUT
entier METH_MKWORKSPACE méthode de demande MKWORKSPACE
entier METH_UPDATE méthode de demande UPDATE
entier METH_LABEL méthode de demande LABEL
entier METH_MERGE méthode de demande MERGE
entier METH_BASELINE_CONTROL méthode de demande BASELINE-CONTROL
entier METH_MKACTIVITY méthode de demande MKACTIVITY
entier METH_ACL méthode de demande ACL
entier VERSION_1_0 version 1.0 du protocole HTTP
entier VERSION_1_1 version 1.1 du protocole HTTP
entier VERSION_ANY n'importe quelle version du protocole HTTP
entier AUTH_BASIC identification basique
entier AUTH_DIGEST identification digest
entier AUTH_NTLM identification NTLM
entier AUTH_GSSNEG identification négociée GSS
entier AUTH_ANY n'importe quelle identification
entier PROXY_SOCKS4 proxy SOCKS v4
entier PROXY_SOCKS5 proxy SOCKS v5
entier PROXY_HTTP proxy HTTP
entier SSL_VERSION_TLSv1 utilisation de TLS v1
entier SSL_VERSION_SSLv2 utilisation de SSL v2
entier SSL_VERSION_SSLv3 utilisation de SSL v3
entier SSL_VERSION_ANY utilisation de n'importe quelle méthode SSL/TLS
entier IPRESOLVE_V4 résoudre via IPv4 uniquement
entier IPRESOLVE_V6 résoudre via IPv6 uniquement
entier IPRESOLVE_ANY utilisation de n'importe quelle méthode de résolution

HttpRequest::addCookies

(PECL pecl_http >= 0.10.0)

HttpRequest::addCookiesAjoute des cookies

Description

public bool HttpRequest::addCookies ( array $cookies )

Ajoute un cookie personnalisé.

Note: L'option de demande encodecookies contrôle si la valeur du cookie doit être url-encodée via la fonction urlencode().

Note: Affecte n'importe quelle méthode de demande.

Liste de paramètres

cookies

un tableau associatif contenant toutes les paires nom/valeurs des cookies à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec HttpRequest::addCookies()

<?php
$r 
= new HttpRequest;
$r->addCookies(
    array(
        
"nom_du_cookie" => "valeur du cookie",
    )
);
?>

Voir aussi



HttpRequest::addHeaders

(PECL pecl_http >= 0.10.0)

HttpRequest::addHeadersAjoute des en-têtes

Description

public bool HttpRequest::addHeaders ( array $headers )

Ajoute des paires nom/valeur aux en-têtes demandés.

Liste de paramètres

headers

un tableau associatif contenant les paires nom/valeur additionnelles d'en-têtes

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::addPostFields

(PECL pecl_http >= 0.10.0)

HttpRequest::addPostFieldsAjoute des champs POST

Description

public bool HttpRequest::addPostFields ( array $post_data )

Ajoute des entrées de données POST, laissant inchangées les données précédemment définies, tant qu'une entrée POST avec le même nom n'existe pas déjà.

Affecte uniquement POST et les requêtes personnalisées.

Liste de paramètres

post_data

un tableau associatif contenant les champs POST

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::addPostFile

(PECL pecl_http >= 0.10.0)

HttpRequest::addPostFileAjoute un fichier en POST

Description

public bool HttpRequest::addPostFile ( string $name , string $file [, string $content_type = "application/x-octetstream" ] )

Ajoute un fichier à une requête POST, laissant inchangés les fichiers précédemment définis.

Affecte uniquement les requêtes POST et les requêtes personnalisées. Ne peut être utilisé avec les lignes de données POST.

Liste de paramètres

name

Le nom de l'élément de formulaire

file

le chemin vers le fichier

content_type

le type de contenu du fichier

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si le type de contenu ne semble pas contenir une première ou une seconde partie de type de contenu.



HttpRequest::addPutData

(PECL pecl_http >= 0.25.0)

HttpRequest::addPutDataAjoute des données PUT

Description

public bool HttpRequest::addPutData ( string $put_data )

Ajoute des données PUT, laissant inchangées les données précédemment définies.

Affecte uniquement les requêtes PUT.

Liste de paramètres

put_data

les données à concaténer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::addQueryData

(PECL pecl_http >= 0.10.0)

HttpRequest::addQueryDataAjoute des paramètres à une requête

Description

public bool HttpRequest::addQueryData ( array $query_params )

Ajoute des paramètres à la liste des paramètres d'une requête, laissant inchangés les paramètres précédemment définis.

Affecte tous les types de requêtes.

Liste de paramètres

query_params

un tableau associatif contenant les champs de la requête à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::addRawPostData

(PECL pecl_http 0.14.0-1.4.1)

HttpRequest::addRawPostDataAjoute une ligne de données POST

Description

public bool HttpRequest::addRawPostData ( string $raw_post_data )

Ajoute une ligne de données POST, laissant inchangée la précédente ligne de données POST.

Ajoute uniquement les données POST et les demandes personnalisées.

Liste de paramètres

raw_post_data

la ligne de données POST à concaténer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::addSslOptions

(PECL pecl_http >= 0.12.0)

HttpRequest::addSslOptionsAjoute des options SSL

Description

public bool HttpRequest::addSslOptions ( array $options )

Définit des options additionnelles SSL.

Liste de paramètres

options

un tableau associatif contenant les options additionnelles spécifiques à SSL

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::clearHistory

(PECL pecl_http >= 0.15.0)

HttpRequest::clearHistoryEfface l'historique

Description

public void HttpRequest::clearHistory ( void )

Efface tous les messages de l'historique.

Note:

L'historique est enregistré uniquement si la variable recordHistory a été activée.



HttpRequest::__construct

(PECL pecl_http >= 0.10.0)

HttpRequest::__constructConstructeur de HttpRequest

Description

public void HttpRequest::__construct ([ string $url [, int $request_method = HTTP_METH_GET [, array $options ]]] )

Instancie un nouvel objet HttpRequest.

Liste de paramètres

url

L'URL cible de la requête

request_method

la méthode de requête à utiliser

options

un tableau associatif avec les options de la requête

Erreurs / Exceptions

Lance une exception HttpException.



HttpRequest::enableCookies

(PECL pecl_http >= 1.0.0)

HttpRequest::enableCookiesActive les cookies

Description

public bool HttpRequest::enableCookies ( void )

Active l'envoi automatique des cookies.

Note:

Noter qu'en fait, les cookies définis seront envoyés de toute façon.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::getContentType

(PECL pecl_http >= 0.10.0)

HttpRequest::getContentTypeRécupère le type de contenu

Description

public string HttpRequest::getContentType ( void )

Récupère le type de contenu précédemment défini.

Valeurs de retour

Retourne le dernier type de contenu précédemment défini en tant que chaîne de caractères.



HttpRequest::getCookies

(PECL pecl_http >= 0.10.0)

HttpRequest::getCookiesRécupère les cookies

Description

public array HttpRequest::getCookies ( void )

Récupère les cookies précédemment définis.

Valeurs de retour

Retourne un tableau associatif contenant tous les cookies précédemment définis.



HttpRequest::getHeaders

(PECL pecl_http >= 0.10.0)

HttpRequest::getHeadersRécupère les en-têtes

Description

public array HttpRequest::getHeaders ( void )

Récupère les en-têtes précédemment définis.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes actuellement définis.



HttpRequest::getHistory

(PECL pecl_http >= 0.15.0)

HttpRequest::getHistoryRécupère l'historique

Description

public HttpMessage HttpRequest::getHistory ( void )

Récupère toutes des requêtes envoyées et les réponses reçues en tant qu'objet HttpMessage.

Si vous voulez enregistrer l'historique, définissez la variable HttpRequest::recordHistory à TRUE.

L'objet retourné référence la dernière réponse reçue, utilisez HttpMessage::getParentMessage() pour accéder aux données des requêtes envoyées et des réponses reçues précédemment.

Valeurs de retour

Retourne un objet HttpMessage représentant l'historique complète des requêtes/réponses.

Erreurs / Exceptions

Lance une exception HttpRuntimeException.



HttpRequest::getMethod

(PECL pecl_http >= 0.10.0)

HttpRequest::getMethodRécupère une méthode

Description

public int HttpRequest::getMethod ( void )

Récupère la dernière méthode précédemment définies.

Valeurs de retour

Retourne la méthode actuellement définie.



HttpRequest::getOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::getOptionsRécupère les options

Description

public array HttpRequest::getOptions ( void )

Récupère les options précédemment définies.

Valeurs de retour

Retourne un tableau associatif contenant les options actuellement définies.



HttpRequest::getPostFields

(PECL pecl_http >= 0.10.0)

HttpRequest::getPostFieldsRécupère les champs POST

Description

public array HttpRequest::getPostFields ( void )

Récupère les données POST précédemment définies.

Liste de paramètres

Valeurs de retour

Retourne les champs POST précédemment définies sous la forme d'un tableau associatif.



HttpRequest::getPostFiles

(PECL pecl_http >= 0.10.0)

HttpRequest::getPostFilesRécupère les fichiers POST

Description

public array HttpRequest::getPostFiles ( void )

Récupère tous les fichiers POST précédemment ajoutés.

Valeurs de retour

Retourne un tableau contenant les fichiers POST actuellement définis.



HttpRequest::getPutData

(PECL pecl_http >= 0.25.0)

HttpRequest::getPutDataRécupère des données PUT

Description

public string HttpRequest::getPutData ( void )

Récupère des données PUT précédemment définies.

Valeurs de retour

Retourne une chaîne contenant les données PUT actuellement définies.



HttpRequest::getPutFile

(PECL pecl_http >= 0.10.0)

HttpRequest::getPutFileRécupère un fichier PUT

Description

public string HttpRequest::getPutFile ( void )

Récupère un fichier PUT précédemment défini.

Valeurs de retour

Retourne une chaîne contenant le chemin vers le fichier PUT actuellement défini.



HttpRequest::getQueryData

(PECL pecl_http >= 0.10.0)

HttpRequest::getQueryDataRécupère les données de la requête

Description

public string HttpRequest::getQueryData ( void )

Récupère les données de la requête courante sous la forme d'une chaîne encodée URL.

Valeurs de retour

Retourne une chaîne contenant la requête encodée URL.



HttpRequest::getRawPostData

(PECL pecl_http 0.14.0-1.4.1)

HttpRequest::getRawPostDataRécupère les données POST

Description

public string HttpRequest::getRawPostData ( void )

Récupère les données POST précédemment définies.

Liste de paramètres

Valeurs de retour

Retourne une chaîne contenant les données POST actuellement définies.



HttpRequest::getRawRequestMessage

(PECL pecl_http >= 0.21.0)

HttpRequest::getRawRequestMessageRécupère le message de la requête

Description

public string HttpRequest::getRawRequestMessage ( void )

Récupère le message HTTP envoyé.

Liste de paramètres

Valeurs de retour

Retourne un message HttpMessage sous la forme d'une chaîne de caractères.



HttpRequest::getRawResponseMessage

(PECL pecl_http >= 0.21.0)

HttpRequest::getRawResponseMessageRécupère le message de réponse

Description

public string HttpRequest::getRawResponseMessage ( void )

Récupère la réponse HTTP complète.

Liste de paramètres

Valeurs de retour

Retourne la réponse complète du serveur web, incluant les en-têtes sous la forme d'une chaîne de caractères.



HttpRequest::getRequestMessage

(PECL pecl_http >= 0.11.0)

HttpRequest::getRequestMessageRécupère le message de la requête

Description

public HttpMessage HttpRequest::getRequestMessage ( void )

Récupère le message HTTP envoyé.

Si les redirections sont permises et que plusieurs réponses sont reçues, la donnée fait référence à la dernière réponse reçue. Utilisez HttpMessage::getParentMessage() pour accéder aux données des requêtes précédemment envoyées dans le cycle des requêtes.

Note:

Noter que les messages des requêtes internes sont immuables, ce qui signifie que le message de la requête reçu via HttpRequest::getRequestMessage() sera toujours identique pour une même requête, indépendamment des modifications que vous pouvez faire sur l'objet retourné.

Valeurs de retour

Retourne un objet HttpMessage représentant la requête envoyée.

Erreurs / Exceptions

Lance une exception HttpMalformedHeadersException ou une exception HttpEncodingException.



HttpRequest::getResponseBody

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseBodyRécupère le corps de la réponse

Description

public string HttpRequest::getResponseBody ( void )

Récupère le corps de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fait référence à la dernière réponse reçue.

Liste de paramètres

Valeurs de retour

Retourne une chaîne contenant le corps de la réponse.



HttpRequest::getResponseCode

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseCodeRécupère le code de la réponse

Description

public int HttpRequest::getResponseCode ( void )

Récupère le code de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Valeurs de retour

Retourne un entier représentant le code de la réponse.



HttpRequest::getResponseCookies

(PECL pecl_http >= 0.23.0)

HttpRequest::getResponseCookiesRécupère la réponse des cookies

Description

public array HttpRequest::getResponseCookies ([ int $flags = 0 [, array $allowed_extras ]] )

Récupère la réponse des cookies après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Liste de paramètres

flags

flags http_parse_cookie()

allowed_extras

permet des clés traitées comme des informations supplémentaires au lieu des noms de cookies

Valeurs de retour

Retourne un tableau d'objets stdClass comme http_parse_cookie() peut retourné.



HttpRequest::getResponseData

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseDataRécupère les données de la réponse

Description

public array HttpRequest::getResponseData ( void )

Récupère les données de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Valeurs de retour

Retourne un tableau associatif avec une clé "headers" contenant un tableau associatif de tous les en-têtes de la réponse, ainsi qu'une clé "body" contenant une chaîne avec le corps de la réponse.



HttpRequest::getResponseHeader

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseHeaderRécupère les en-têtes de la réponse

Description

public mixed HttpRequest::getResponseHeader ([ string $name ] )

Récupère les en-têtes de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Liste de paramètres

name

nom de l'en-tête à lire ; si ce paramètre est vide, tous les en-têtes de la réponse seront retournés.

Valeurs de retour

Retourne soit une chaîne de caractères correspondant à la valeur de l'en-têtes correspondant au nom fourni, FALSE en cas d'échec ou un tableau associatif contenant tous les en-têtes de la réponse.



HttpRequest::getResponseInfo

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseInfoRécupère les informations de la réponse

Description

public mixed HttpRequest::getResponseInfo ([ string $name ] )

Récupère les informations de la réponse après l'envoi de la requête.

Voir la fonction http_get() pour une liste complète des informations retournées.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Liste de paramètres

name

nom de l'information à lire ; si ce paramètre est vide ou omis, un tableau associatif contenant toutes les informations disponibles sera retourné.

Valeurs de retour

Retourne soit un scalaire contenant la valeur de l'information correspondant au nom demandé si fourni, FALSE en cas d'échec ou un tableau associatif contenant toutes les informations disponibles.



HttpRequest::getResponseMessage

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseMessageRécupère le message de la réponse

Description

public HttpMessage HttpRequest::getResponseMessage ( void )

Récupère la réponse complète sous la forme d'un objet HttpMessage après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue. Utilisez HttpMessage::getParentMessage() pour accéder aux données des réponses précédemment reçues dans ce cycle de requêtes.

Valeurs de retour

Retourne un objet HttpMessage de la réponse.

Erreurs / Exceptions

Lance une exception HttpException ou une exception HttpRuntimeException.



HttpRequest::getResponseStatus

(PECL pecl_http >= 0.23.0)

HttpRequest::getResponseStatusRécupère le statut de la réponse

Description

public string HttpRequest::getResponseStatus ( void )

Récupère le statut de la réponse (i.e. la chaîne après le code de la réponse) après l'envoi du message.

Valeurs de retour

Retourne une chaîne contenant le texte du statut de la réponse.



HttpRequest::getSslOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::getSslOptionsRécupère les options SSL

Description

public array HttpRequest::getSslOptions ( void )

Récupère les options SSL précédemment définies.

Valeurs de retour

Retourne un tableau associatif contenant les options SSL précédemment définies.



HttpRequest::getUrl

(PECL pecl_http >= 0.10.0)

HttpRequest::getUrlRécupère l'url

Description

public string HttpRequest::getUrl ( void )

Récupère l'url de la requête précédemment définie.

Valeurs de retour

Retourne l'url de la requête actuellement définie sous la forme d'une chaîne de caractères.



HttpRequest::resetCookies

(PECL pecl_http >= 1.0.0)

HttpRequest::resetCookiesEfface les cookies

Description

public bool HttpRequest::resetCookies ([ bool $session_only = false ] )

Efface tous les cookies automatiquement reçus/envoyés.

Note:

Noter que les cookies personnalisés ne sont pas affectés.

Liste de paramètres

session_only

si l'on doit effacer uniquement les cookies de session (nécessite libcurl >= v7.15.4, ou libcurl >= v7.14.1)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::send

(PECL pecl_http >= 0.10.0)

HttpRequest::sendEnvoi une requête

Description

public HttpMessage HttpRequest::send ( void )

Envoi une requête HTTP.

Note:

Bien qu'une exception peut avoir été lancée, le transfert peut avoir réussi, au moins, partiellement, vous devriez donc vérifier les valeurs retournées des différentes méthodes HttpRequest::getResponse*().

Valeurs de retour

Retourne la réponse reçue sous la forme d'un objet HttpMessage.

Erreurs / Exceptions

Lance une exception HttpRuntimeException, HttpRequestException, HttpMalformedHeaderException ou HttpEncodingException.

Exemples

Exemple #1 Exemple GET

<?php
$r 
= new HttpRequest('http://example.com/feed.rss'HttpRequest::METH_GET);
$r->setOptions(array('lastmodified' => filemtime('local.rss')));
$r->addQueryData(array('category' => 3));
try {
    
$r->send();
    if (
$r->getResponseCode() == 200) {
        
file_put_contents('local.rss'$r->getResponseBody());
    }
} catch (
HttpException $ex) {
    echo 
$ex;
}
?>

Exemple #2 Exemple POST

<?php
$r 
= new HttpRequest('http://example.com/form.php'HttpRequest::METH_POST);
$r->setOptions(array('cookies' => array('lang' => 'de')));
$r->addPostFields(array('user' => 'mike''pass' => 's3c|r3t'));
$r->addPostFile('image''profile.jpg''image/jpeg');
try {
    echo 
$r->send()->getBody();
} catch (
HttpException $ex) {
    echo 
$ex;
}
?>



HttpRequest::setContentType

(PECL pecl_http >= 0.10.0)

HttpRequest::setContentTypeDéfinit le type de contenu

Description

public bool HttpRequest::setContentType ( string $content_type )

Définit le type de contenu que la requête POST devra avoir.

Liste de paramètres

content_type

le type de contenu de la requête (primaire/secondaire)

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE si le type de contenu ne semble pas contenu une partie primaire et secondaire.



HttpRequest::setCookies

(PECL pecl_http >= 0.12.0)

HttpRequest::setCookiesDéfinit un cookie

Description

public bool HttpRequest::setCookies ([ array $cookies ] )

Définit un cookie personnalisé.

Liste de paramètres

cookies

un tableau associatif contenant les paires nom/valeur des cookies ; si ce paramètre est vide ou omis, tous les cookies précédemment définis seront effacés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setHeaders

(PECL pecl_http >= 0.12.0)

HttpRequest::setHeadersDéfinit un en-tête

Description

public bool HttpRequest::setHeaders ([ array $headers ] )

Définit des en-têtes.

Liste de paramètres

headers

un tableau associatif contenant les paires nom/valeur des en-têtes ; si ce paramètre est vide ou omis, tous les en-têtes précédemment définis seront effacés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setMethod

(PECL pecl_http >= 0.10.0)

HttpRequest::setMethodDéfinit la méthode

Description

public bool HttpRequest::setMethod ( int $request_method )

Définit la méthode de la requête.

Liste de paramètres

request_method

la méthode de la requête à utiliser.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::setOptionsDéfinit des options

Description

public bool HttpRequest::setOptions ([ array $options ] )

Définit des options de requêtes à utiliser.

Voir la liste complète des options de demande.

Liste de paramètres

options

un tableau associatif, dont les valeurs écraseront les options de requêtes actuellement définies ; si ce paramètre est vide ou omis, les options de l'objet HttpRequest seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setPostFields

(PECL pecl_http >= 0.10.0)

HttpRequest::setPostFieldsDéfinit les champs POST

Description

public bool HttpRequest::setPostFields ( array $post_data )

Définit les entrées des données POST, écrasant les données POST précédemment définies.

Affecte uniquement les données POST et les requêtes personnalisées.

Liste de paramètres

post_data

un tableau associatif contenant les champs POST ; si ce paramètre est vide ou omis, les données POST seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setPostFiles

(PECL pecl_http >= 0.10.0)

HttpRequest::setPostFilesDéfinit les fichiers POST

Description

public bool HttpRequest::setPostFiles ( array $post_files )

Définit les fichiers POST, écrasant les fichiers POST précédemment définis.

Affecte uniquement les fichiers POST et les requêtes. Ne peut pas être utilisé avec les données POST.

Liste de paramètres

post_files

un tableau contenant les fichiers POST ; si ce paramètre est vide ou omis, les fichiers POST seront effacés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setPutData

(PECL pecl_http >= 0.25.0)

HttpRequest::setPutDataDéfinit les données PUT

Description

public bool HttpRequest::setPutData ([ string $put_data ] )

Définit les données PUT à envoyer, écrasant les données PUT précédemment définies.

Affecte uniquement les requêtes PUT.

Uniquement soit des données PUT, soit des fichiers PUT peuvent être utilisés pour chaque requête. Les données PUT sont prioritaires et seront utilisées même si un fichier PUT est défini.

Liste de paramètres

put_data

les données à télécharger

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setPutFile

(PECL pecl_http >= 0.10.0)

HttpRequest::setPutFileDéfinit le fichier PUT

Description

public bool HttpRequest::setPutFile ([ string $file = "" ] )

Définit le fichier PUT. Affecte uniquement les requêtes PUT.

Liste de paramètres

file

le chemin vers le fichier à envoyer ; si ce paramètre est vide ou omis, le fichier PUT sera effacé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setQueryData

(PECL pecl_http >= 0.10.0)

HttpRequest::setQueryDataDéfinit les données de la requête

Description

public bool HttpRequest::setQueryData ( mixed $query_data )

Définit les paramètres URL de la requête à utiliser, écrasant les paramètres de requête précédemment définis.

Affecte tous les types de requêtes.

Liste de paramètres

query_data

une chaîne ou un tableau associatif contenant la chaîne de la requête préencodée ou les champs de la requête à encoder ; si ce paramètre est vide ou omis, les données de la requête seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setRawPostData

(PECL pecl_http 0.14.0-1.4.1)

HttpRequest::setRawPostDataDéfinit les données POST

Description

public bool HttpRequest::setRawPostData ([ string $raw_post_data ] )

Définit les données par ligne POST à envoyer, écrasant les données par ligne POST précédemment définies. N'oubliez pas de spécifier le type de contenu. Affecte uniquement les données POST et les requêtes personnalisées.

Uniquement soit les champs POST, soit les données par ligne POST peuvent être utilisés pour chaque requête. Les données par ligne POST sont prioritaires et seront utilisées même si des champs POST sont définis.

Liste de paramètres

raw_post_data

données par ligne POST raw post data

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setSslOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::setSslOptionsDéfinit les options SSL

Description

public bool HttpRequest::setSslOptions ([ array $options ] )

Définit des options SSL.

Liste de paramètres

options

un tableau associatif contenant les options spécifiques à SSL ; si ce paramètre est vide ou omis, les options SSL seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



HttpRequest::setUrl

(PECL pecl_http >= 0.10.0)

HttpRequest::setUrlDéfinit l'URL

Description

public bool HttpRequest::setUrl ( string $url )

Définit l'URL de la requête.

Liste de paramètres

url

l'URL de la requête

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



Classe HttpRequestPool

Synopsis de la classe

HttpRequestPool implements Iterator , Countable {
public bool attach ( HttpRequest $request )
void __construct ([ HttpRequest $request ] )
void __destruct ( void )
bool detach ( HttpRequest $request )
array getAttachedRequests ( void )
array getFinishedRequests ( void )
void reset ( void )
bool send ( void )
protected bool socketPerform ( void )
protected bool socketSelect ([ float $timeout = 0 ] )
}

Membres de la classe

Propriétés

La classe HttpRequestPool n'a aucune propriété.

Constantes pré-définies

La classe HttpRequestPool n'a aucune constante.


HttpRequestPool::attach

(PECL pecl_http >= 0.10.0)

HttpRequestPool::attachAttache un objet HttpRequest

Description

public bool HttpRequestPool::attach ( HttpRequest $request )

Attache un objet HttpRequest à ce HttpRequestPool.

Avertissement

Définissez toutes les options avant d'effectuer l'attachement !

Liste de paramètres

request

un objet HttpRequest qui n'est pas déjà attaché à un objet HttpRequestPool

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpInvalidParamException, HttpRequestException, HttpRequestPoolException, HttpEncodingException.



HttpRequestPool::__construct

(PECL pecl_http >= 0.10.0)

HttpRequestPool::__constructConstructeur de la classe HttpRequestPool

Description

void HttpRequestPool::__construct ([ HttpRequest $request ] )

Instancie un nouvel objet HttpRequestPool. Un HttpRequestPool est capable d'envoyer plusieurs HttpRequests en parallèle.

Accepte une infinité de paramètres optionnels, chacun se référant à un objet HttpRequest.

Liste de paramètres

request

objet HttpRequest à attacher

Erreurs / Exceptions

Lance une exception HttpRequestPoolException (HttpRequestException, HttpInvalidParamException).

Exemples

Exemple #1 Exemple avec HttpRequestPool

<?php
try {
    
$pool = new HttpRequestPool(
        new 
HttpRequest('http://www.google.com/'HttpRequest::METH_HEAD),
        new 
HttpRequest('http://www.php.net/'HttpRequest::METH_HEAD)
    );
    
$pool->send();
    foreach(
$pool as $request) {
        
printf("%s is %s (%d)\n",
            
$request->getUrl(),
            
$request->getResponseCode() ? 'active' 'non active',
            
$request->getResponseCode()
        );
    }
} catch (
HttpException $e) {
    echo 
$e;
}
?>



HttpRequestPool::__destruct

(PECL pecl_http >= 0.10.0)

HttpRequestPool::__destructDestructeur de la classe HttpRequestPool

Description

void HttpRequestPool::__destruct ( void )

Détruit l'objet HttpRequestPool.



HttpRequestPool::detach

(PECL pecl_http >= 0.10.0)

HttpRequestPool::detachDétache un objet HttpRequest

Description

bool HttpRequestPool::detach ( HttpRequest $request )

Détache un objet HttpRequest depuis ce HttpRequestPool.

Liste de paramètres

request

un objet HttpRequest attaché à cet objet HttpRequestPool

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpInvalidParamException, HttpRequestPoolException.



HttpRequestPool::getAttachedRequests

(PECL pecl_http >= 0.16.0)

HttpRequestPool::getAttachedRequestsRécupère les requêtes attachées

Description

array HttpRequestPool::getAttachedRequests ( void )

Récupère les objets HttpRequest attachés.

Liste de paramètres

Valeurs de retour

Retourne un tableau contenant tous les objets HttpRequest actuellement attachés.



HttpRequestPool::getFinishedRequests

(PECL pecl_http >= 0.16.0)

HttpRequestPool::getFinishedRequestsRécupère les requêtes terminées

Description

array HttpRequestPool::getFinishedRequests ( void )

Récupère les objets HttpRequest attachés qui ont terminés leurs travaux.

Liste de paramètres

Valeurs de retour

Retourne un tableau contenant tous les objets HttpRequest attachés qui ont terminés leurs travaux.



HttpRequestPool::reset

(PECL pecl_http >= 0.10.0)

HttpRequestPool::resetEfface la file d'attente des requêtes

Description

void HttpRequestPool::reset ( void )

Détache tous les objets HttpRequest attachés.



HttpRequestPool::send

(PECL pecl_http >= 0.10.0)

HttpRequestPool::sendEnvoie toutes les requêtes

Description

bool HttpRequestPool::send ( void )

Envoie tous les objets HttpRequest attachés en parallèle.

Liste de paramètres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpRequestPoolException (HttpSocketException, HttpRequestException, HttpMalformedHeaderException).



HttpRequestPool::socketPerform

(PECL pecl_http >= 0.15.0)

HttpRequestPool::socketPerformEffectue une action sur le socket

Description

protected bool HttpRequestPool::socketPerform ( void )

Retourne TRUE tant que chaque requête a terminé sa transaction.

Valeurs de retour

Retourne TRUE tant que chaque requête a terminé sa transaction.

Exemples

Exemple #1 Exemple avec HttpRequestPool::socketPerform()

<?php
class MyPool extends HttpRequestPool
{
    public function 
send()
    {
        while (
$this->socketPerform()) {
            if (!
$this->socketSelect()) {
                throw new 
HttpSocketExcpetion;
            }
        }
    }

    protected final function 
socketPerform()
    {
        
$result parent::socketPerform();
        foreach (
$this->getFinishedRequests() as $r) {
            
$this->detach($r);
            
// gestion de la réponse lorsque la requête se termine
        
}
        return 
$result;
    }
}
?>



HttpRequestPool::socketSelect

(PECL pecl_http >= 0.10.0)

HttpRequestPool::socketSelectSélectionne un socket

Description

protected bool HttpRequestPool::socketSelect ([ float $timeout = 0 ] )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



Classe HttpResponse

Synopsis de la classe

HttpResponse {
static void capture ( void )
static int getBufferSize ( void )
static bool getCache ( void )
static string getCacheControl ( void )
static string getContentDisposition ( void )
static string getContentType ( void )
static string getData ( void )
static string getETag ( void )
static string getFile ( void )
static bool getGzip ( void )
static mixed getHeader ([ string $name ] )
static int getLastModified ( void )
static string getRequestBody ( void )
static resource getRequestBodyStream ( void )
static array getRequestHeaders ( void )
static resource getStream ( void )
static double getThrottleDelay ( void )
static string guessContentType ( string $magic_file [, int $magic_mode = MAGIC_MIME ] )
static void redirect ([ string $url [, array $params [, bool $session = false [, int $status ]]]] )
static bool send ([ bool $clean_ob = true ] )
static bool setBufferSize ( int $bytes )
static bool setCache ( bool $cache )
static bool setCacheControl ( string $control [, int $max_age = 0 [, bool $must_revalidate = true ]] )
static bool setContentDisposition ( string $filename [, bool $inline = false ] )
static bool setContentType ( string $content_type )
static bool setData ( mixed $data )
static bool setETag ( string $etag )
static bool setFile ( string $file )
static bool setGzip ( bool $gzip )
static bool setHeader ( string $name [, mixed $value [, bool $replace = true ]] )
static bool setLastModified ( int $timestamp )
static bool setStream ( resource $stream )
static bool setThrottleDelay ( float $seconds )
static bool status ( int $status )
}

Membres de la classe

Propriétés

Propriétés statiques
Modificateurs Type Nom Description
protected booléen cache si l'on doit mettre en cache la réponse
protected booléen gzip si l'on doit compresser gzip l'entité d'envoi à la volée
protected chaîne de caractères eTag l'ETag généré ou personnalisé
protected entier lastModified le timestamp généré ou personnalisé pour la dernière modification
protected chaîne de caractères cacheControl configuration du Cache-Control
protected chaîne de caractères contentType le Content-Type de l'entité d'envoi
protected chaîne de caractères contentDisposition le Content-Disposition de l'entité d'envoi
protected entier bufferSize la taille du buffer utilisée pour l'étranglement
protected double throttleDelay le délai d'attente, en secondes, lors de l'étranglement

Constantes pré-définies

Type Nom Description
entier REDIRECT méthode de redirection demandée à appliquer
entier REDIRECT_PERM redirection permanente (301 Moved permanently)
entier REDIRECT_FOUND redirection standard (302 Found)
entier REDIRECT_POST redirection applicable aux demandes POST (303 See other)
entier REDIRECT_PROXY redirection de proxy (305 Use proxy)
entier REDIRECT_TEMP redirection temporaire (307 Temporary Redirect)

HttpResponse::capture

(PECL pecl_http >= 0.10.0)

HttpResponse::captureCapture la sortie du script

Description

static void HttpResponse::capture ( void )

Capture la sortie du script.

Exemples

Exemple #1 Exemple avec HttpResponse::capture()

<?php
HttpResponse
::setCache(true);
HttpResponse::capture();
// script follows
?>

Voir aussi



HttpResponse::getBufferSize

(PECL pecl_http >= 0.10.0)

HttpResponse::getBufferSizeRécupère la taille du buffer

Description

static int HttpResponse::getBufferSize ( void )

Récupère la taille du buffer.

Valeurs de retour

Retourne un entier représentant la taille du buffer courant en octets.

Voir aussi



HttpResponse::getCache

(PECL pecl_http >= 0.10.0)

HttpResponse::getCacheRécupère le cache

Description

static bool HttpResponse::getCache ( void )

Récupère la configuration du cache courant.

Valeurs de retour

Retourne TRUE si le cache est disponible, FALSE sinon.

Voir aussi



HttpResponse::getCacheControl

(PECL pecl_http >= 0.10.0)

HttpResponse::getCacheControlRécupère l'en-tête Cache-Control

Description

static string HttpResponse::getCacheControl ( void )

Récupère l'en-tête Cache-Control courant.

Valeurs de retour

Retourne la configuration du contrôle du cache courant sous la forme d'une chaîne de caractères comme envoyée dans l'en-tête.

Voir aussi



HttpResponse::getContentDisposition

(PECL pecl_http >= 0.10.0)

HttpResponse::getContentDispositionRécupère l'en-tête Content-Disposition

Description

static string HttpResponse::getContentDisposition ( void )

Récupère l'en-tête Content-Disposition courant.

Valeurs de retour

Retourne le contenu de l'en-tête Content-Disposition courant sous la forme d'une chaîne de caractères comme envoyée à l'en-tête.

Voir aussi



HttpResponse::getContentType

(PECL pecl_http >= 0.10.0)

HttpResponse::getContentTypeRécupère l'en-tête Content-Type

Description

static string HttpResponse::getContentType ( void )

Récupère l'en-tête Content-Type courant.

Valeurs de retour

Retourne l'en-tête Content-Type courant sous la forme d'une chaîne de caractères.

Voir aussi



HttpResponse::getData

(PECL pecl_http >= 0.10.0)

HttpResponse::getDataRécupère les données

Description

static string HttpResponse::getData ( void )

Récupère les données précédemment définies à envoyer.

Valeurs de retour

Retourne une chaîne contenant les données précédemment définies à envoyer.

Voir aussi



HttpResponse::getETag

(PECL pecl_http >= 0.10.0)

HttpResponse::getETagRécupère l'ETag

Description

static string HttpResponse::getETag ( void )

Récupère l'ETag calculé ou précédemment défini.

Valeurs de retour

Retourne l'ETag calculé ou précédemment défini sous la forme d'une chaîne.

Voir aussi



HttpResponse::getFile

(PECL pecl_http >= 0.10.0)

HttpResponse::getFileRécupère le fichier

Description

static string HttpResponse::getFile ( void )

Récupère le fichier précédemment défini à envoyer.

Valeurs de retour

Retourne le chemin précédemment défini vers le fichier à envoyer, sous la forme d'une chaîne de caractères.

Voir aussi



HttpResponse::getGzip

(PECL pecl_http >= 0.10.0)

HttpResponse::getGzipRécupère la configuration gzip

Description

static bool HttpResponse::getGzip ( void )

Récupère la configuration courante du gzip.

Valeurs de retour

Retourne TRUE si la compression GZip est active, FALSE sinon.

Voir aussi



HttpResponse::getHeader

(PECL pecl_http >= 0.12.0)

HttpResponse::getHeaderRécupère un en-tête

Description

static mixed HttpResponse::getHeader ([ string $name ] )

Récupère un(des) en-tête(s) à envoyer.

Note:

Ne fonctionnera pas comme prévu avec les SAPIs suivants : Apache2 w/PHP < 5.1.3.

Liste de paramètres

name

spécifie le nom de l'en-tête à lire ; si ce paramètre est vide ou omis, un tableau associatif contenant tous les en-têtes sera retourné

Valeurs de retour

Retourne soit une chaîne contenant la valeur de l'en-tête correspondant au nom, soit FALSE si une erreur survient, soit un tableau associatif contenant tous les en-têtes.

Voir aussi



HttpResponse::getLastModified

(PECL pecl_http >= 0.12.0)

HttpResponse::getLastModifiedRécupère l'en-tête Last-Modified

Description

static int HttpResponse::getLastModified ( void )

Récupère la date de l'en-tête Last-Modified calculée ou précédemment définie.

Valeurs de retour

Retourne un timestamp Unix calculé ou précédemment défini.

Voir aussi



HttpResponse::getRequestBody

(PECL pecl_http >= 0.10.0)

HttpResponse::getRequestBodyRécupère le corps de la demande

Description

static string HttpResponse::getRequestBody ( void )

Cette fonction est un alias de : http_get_request_body().



HttpResponse::getRequestBodyStream

(PECL pecl_http >= 0.10.0)

HttpResponse::getRequestBodyStreamRécupère le flux du corps de la demande

Description

static resource HttpResponse::getRequestBodyStream ( void )

Cette fonction est un alias de : http_get_request_body_stream().



HttpResponse::getRequestHeaders

(PECL pecl_http >= 0.10.0)

HttpResponse::getRequestHeadersRécupère les en-têtes de la demande

Description

static array HttpResponse::getRequestHeaders ( void )

Cette fonction est un alias de : http_get_request_headers().



HttpResponse::getStream

(PECL pecl_http >= 0.10.0)

HttpResponse::getStreamRécupère le flux

Description

static resource HttpResponse::getStream ( void )

Récupère la ressource précédemment définie à envoyer.

Liste de paramètres

Valeurs de retour

Retourne la ressource précédemment définie.

Voir aussi



HttpResponse::getThrottleDelay

(PECL pecl_http >= 0.10.0)

HttpResponse::getThrottleDelayRécupère le délai de la commande

Description

static double HttpResponse::getThrottleDelay ( void )

Récupère le délai courant de la commande.

Valeurs de retour

Retourne le délai de la commande courante, en secondes.

Voir aussi



HttpResponse::guessContentType

(PECL pecl_http >= 0.13.0)

HttpResponse::guessContentTypeDevine le type de contenu

Description

static string HttpResponse::guessContentType ( string $magic_file [, int $magic_mode = MAGIC_MIME ] )

Essaie de deviner le type de contenu à l'aide de libmagic.

Si c'est un succès, le type de contenu sera automatiquement défini comme type de contenu de la réponse.

Liste de paramètres

magic_file

spécifie la base de données magic.mime à utiliser

magic_mode

balises pour libmagic

Valeurs de retour

Retourne le type de contenu trouvé en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpRuntimeException, HttpInvalidParamException.

Voir aussi



HttpResponse::redirect

(PECL pecl_http >= 0.10.0)

HttpResponse::redirectRedirection

Description

static void HttpResponse::redirect ([ string $url [, array $params [, bool $session = false [, int $status ]]]] )

Cette fonction est un alias de : http_redirect().



HttpResponse::send

(PECL pecl_http >= 0.10.0)

HttpResponse::sendEnvoie la réponse

Description

static bool HttpResponse::send ([ bool $clean_ob = true ] )

Envoie la réponse.

Si c'est un succès, le script se termine et une entrée dans l'historique est écrite si le directive de configuration INI http.log.cache est défini. Voir la directive de configuration INI http.force_exit pour savoir ce que signifie "exits".

Liste de paramètres

clean_ob

si l'on doit détruire tous les gestionnaires de sortie précédemment démarrés ainsi que leurs buffers

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec HttpResponse::send()

<?php
HttpResponse
::setCache(true);
HttpResponse::setContentType('application/pdf');
HttpResponse::setContentDisposition("$user.pdf"false);
HttpResponse::setFile('sheet.pdf');
HttpResponse::send();
?>

Voir aussi



HttpResponse::setBufferSize

(PECL pecl_http >= 0.10.0)

HttpResponse::setBufferSizeDéfinit la taille du buffer

Description

static bool HttpResponse::setBufferSize ( int $bytes )

Définit la taille du buffer du mécanisme.

Note: Fournit un mécanisme d'étranglement, qui gèrera le processus courant tant que l'entité n'aura pas été complètement envoyé.

Note:

Ne fonctionnera pas comme prévu avec les SAPIs suivants : FastCGI.

Liste de paramètres

bytes

la taille, en octets

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setCache

(PECL pecl_http >= 0.10.0)

HttpResponse::setCacheDéfinit le cache

Description

static bool HttpResponse::setCache ( bool $cache )

Si l'on doit mettre en cache l'entrée.

Ceci rend nécessaire la mise en cache des en-têtes ainsi que la vérification des en-têtes If-Modified-Since et If-None-Match du client. Si un de ces en-têtes correspond, le code statut 304 Not Modified sera envoyé.

Note:

Si vous utilisez les sessions, assurez-vous que l'option de configuration session.cache_limiter contient quelque chose de plus approprié que no-cache !

Liste de paramètres

cache

si l'on doit mettre en cache

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setCacheControl

(PECL pecl_http >= 0.10.0)

HttpResponse::setCacheControlDéfinit l'en-tête cache-control

Description

static bool HttpResponse::setCacheControl ( string $control [, int $max_age = 0 [, bool $must_revalidate = true ]] )

Définit l'en-tête personnalisé cache-control, habituellement de type privé ou public;

Liste de paramètres

control

la configuration du contrôle du cache primaire

max_age

la durée de validité, en secondes, suggère combien de temps l'entrée du cache est valide côté client

must_revalidate

si l'entrée du cache doit être revalidé par le client à chaque requête

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le contrôle ne correspond pas à public, private ou no-cache.

Voir aussi



HttpResponse::setContentDisposition

(PECL pecl_http >= 0.10.0)

HttpResponse::setContentDispositionDéfinit l'en-tête Content-Disposition

Description

static bool HttpResponse::setContentDisposition ( string $filename [, bool $inline = false ] )

Définit l'en-tête Content-Disposition. L'en-tête Content-Disposition est très utile si les données actuellement envoyées, provenant d'un fichier ou quelque chose de similaire, doivent être sauvegardées par le client/utilisateur (i.e. via la fenêtre de dialogue des navigateurs "Enregistrer sous...").

Liste de paramètres

filename

le nom du fichier à afficher dans la fenêtre "Sauvegarder sous..."

inline

si défini à TRUE et que l'agent utilisateur sait gérer ce type de contenu, la fenêtre de sauvegarde du navigateur ne s'affichera pas

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setContentType

(PECL pecl_http >= 0.10.0)

HttpResponse::setContentTypeDéfinit l'en-tête content-type

Description

static bool HttpResponse::setContentType ( string $content_type )

Définit l'en-tête content-type de l'entité envoyée.

Liste de paramètres

content_type

le type de contenu de l'entité envoyée (primaire/secondaire)

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le type de contenu semble ne pas contenir de partie primaire et secondaire.

Voir aussi



HttpResponse::setData

(PECL pecl_http >= 0.10.0)

HttpResponse::setDataDéfinit les données

Description

static bool HttpResponse::setData ( mixed $data )

Définit les données à envoyer.

Note: Les en-têtes ETag et Last-Modified précédemment calculés ou définis, doivent être recalculés et redéfinis.

Liste de paramètres

data

les données à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setETag

(PECL pecl_http >= 0.10.0)

HttpResponse::setETagDéfinit l'ETag

Description

static bool HttpResponse::setETag ( string $etag )

Définit l'ETag personnalisé. Utilisez ceci uniquement si vous savez ce que vous faîtes.

Liste de paramètres

etag

l'ETag

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setFile

(PECL pecl_http >= 0.10.0)

HttpResponse::setFileDéfinit le fichier

Description

static bool HttpResponse::setFile ( string $file )

Définit le fichier à envoyer.

Note: Les en-têtes ETag et Last-Modified précédemment calculés ou définis, doivent être recalculés et redéfinis.

Liste de paramètres

file

le chemin vers le fichier à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setGzip

(PECL pecl_http >= 0.10.0)

HttpResponse::setGzipDéfinit le mode gzip

Description

static bool HttpResponse::setGzip ( bool $gzip )

Active à la volée le mode gzip pour l'entité envoyée.

Liste de paramètres

gzip

si l'on doit activer le mode GZip ou non

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setHeader

(PECL pecl_http >= 0.12.0)

HttpResponse::setHeaderDéfinit un en-tête HTTP

Description

static bool HttpResponse::setHeader ( string $name [, mixed $value [, bool $replace = true ]] )

Définit un en-tête HTTP.

Liste de paramètres

name

le nom de l'en-tête

value

la valeur de l'en-tête ; si ce paramètre n'est pas définit, aucun en-tête avec ce nom ne sera envoyé

replace

si l'on doit remplacer un en-tête éventuel déjà existant

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setLastModified

(PECL pecl_http >= 0.12.0)

HttpResponse::setLastModifiedDéfinit l'en-tête Last-Modified

Description

static bool HttpResponse::setLastModified ( int $timestamp )

Définit la date pour l'en-tête Last-Modified personnalisé.

Liste de paramètres

timestamp

un timestamp Unix représentant la date de dernière modification de l'entité envoyée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setStream

(PECL pecl_http >= 0.10.0)

HttpResponse::setStreamDéfinit le flux

Description

static bool HttpResponse::setStream ( resource $stream )

Définit la ressource à envoyer.

Note: Les en-têtes ETag et Last-Modified précédemment calculés ou définis, doivent être recalculés et redéfinis.

Liste de paramètres

stream

flux déjà ouvert depuis lequel les données à envoyer doivent être lues

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::setThrottleDelay

(PECL pecl_http >= 0.10.0)

HttpResponse::setThrottleDelayDéfinit le délai de la commande

Description

static bool HttpResponse::setThrottleDelay ( float $seconds )

Définit le délai de la commande.

Note: Fournit un mécanisme d'étranglement, qui gèrera le processus courant tant que l'entité n'aura pas été complètement envoyé.

Note:

Ne fonctionnera pas comme prévu avec les SAPIs suivants : FastCGI.

Liste de paramètres

seconds

secondes à attendre entre chaque envoi

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



HttpResponse::status

(PECL pecl_http >= 0.12.0)

HttpResponse::statusEnvoi le statut de la réponse HTTP

Description

static bool HttpResponse::status ( int $status )

Cette fonction est un alias de : http_send_status().


Sommaire



HTTP Fonctions

Les fonctions relatives à HTTP se trouvant précédemment sur cette page se trouvent désormais dans la catégorie réseau.

Les fonctions suivantes n'ont pas besoin de la présence du module HTTP : header(), headers_list(), headers_sent(), setcookie() et setrawcookie().


http_cache_etag

(PECL pecl_http >= 0.1.0)

http_cache_etagMise en cache en fonction de l'ETag

Description

bool http_cache_etag ([ string $etag ] )

Tente de mettre en cache l'entité envoyée en fonction de l'ETag soit fourni, soit généré par l'algorithme de hashage spécifié par l'directive de configuration INI http.etag.mode.

Si l'en-tête If-None-Match du client correspond à l'ETag fourni/calculé, le corps est considéré comme étant en cache côté client et un code statut 304 Not Modified est émis.

Une entrée dans l'historique est écrite dans l'historique de cache si le directive de configuration INI http.log.cache est défini et que la mise en cache est un succès.

Note: Cette fonction doit être utilisée avec les fonctions http_send_data(), http_send_file() et http_send_stream().

Si cette fonction est utilisée en dehors de l'API http_send_*(), il facilite ob_etaghandler().

Liste de paramètres

etag

ETag personnalisé

Valeurs de retour

Retourne FALSE ou exits en cas de succès avec un en-tête 304 Not Modified si l'entité est mis en cache. Voir la directive de configuration INI http.force_exit pour savoir ce que signifie "exits".

Exemples

Exemple #1 Exemple avec http_cache_etag()

<?php
http_cache_etag
();
http_send_data("data");
?>

Voir aussi



http_cache_last_modified

(PECL pecl_http >= 0.1.0)

http_cache_last_modifiedMise en cache en fonction de la date de dernière modification

Description

bool http_cache_last_modified ([ int $timestamp_or_expires ] )

Tente de mettre en cache l'entité envoyé en fonction de sa date de dernière modification.

Si l'argument fourni est plus grand que 0, il sera considéré comme un timestamp Unix et sera envoyé comme date de dernière modification. S'il vaut 0 ou s'il est omis, la date courante sera envoyée comme en-tête Last-Modified. S'il est négatif, il sera considéré comme une date d'expiration, en secondes, ce qui signifie que si la date de dernière modification demandée n'est pas dans l'intervalle de la période calculée, l'en-tête Last-Modified sera mise à jour et le corps actuel sera envoyé.

Une entrée dans l'historique sera écrite dans l'historique du cache si le directive de configuration INI http.log.cache est défini et que la mise en cache est un succès.

Note: Cette fonction doit être utilisée avec les fonctions http_send_data(), http_send_file() et http_send_stream().

Liste de paramètres

timestamp_or_expires

Timestamp Unix

Valeurs de retour

Retourne FALSE ou exits en cas de succès avec un en-tête 304 Not Modified si l'entité est mis en cache. Voir la directive de configuration INI http.force_exit pour savoir ce que signifie "exits".

Exemples

Exemple #1 Exemple avec http_cache_last_modified()

Mise en cache pour 5 secondes.

<?php
http_cache_last_modified
(-5);
printf("%s\n"http_date());
?>

Voir aussi



http_chunked_decode

(PECL pecl_http >= 0.1.0)

http_chunked_decodeDécode un fragment de donnée encodé

Description

string http_chunked_decode ( string $encoded )

Décode un fragment de chaîne encodée.

Liste de paramètres

encoded

Fragment de chaîne encodée

Valeurs de retour

Retourne la chaîne décodée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_chunked_decode()

<?php
$string 
"".
    
"05\r\n".
    
"this \r\n".
    
"07\r\n".
    
"string \r\n".
    
"12\r\n".
    
"is chunked encoded\r\n".
    
"01\n\r\n".
    
"00";
echo 
http_chunked_decode($string);
?>

L'exemple ci-dessus va afficher :

this string is chunked encoded



http_deflate

(PECL pecl_http >= 0.15.0)

http_deflateCompresse des données

Description

string http_deflate ( string $data [, int $flags = 0 ] )

Compresse des données avec gzip, zlib AKA deflate ou l'encodage raw deflate.

Voir la table des constantes de compression pour les valeurs possibles pour le paramètre flags.

Liste de paramètres

data

chaîne contenant les données qui doivent être encodées

flags

Options de compression

Valeurs de retour

Retourne la chaîne encodée en cas de succès, ou NULL si une erreur survient.

Voir aussi



http_inflate

(PECL pecl_http >= 0.15.0)

http_inflateDécompresse des données

Description

string http_inflate ( string $data )

Décompresse des données compressées avec gzip, deflate AKA zlib ou l'encodage raw deflate.

Liste de paramètres

data

chaîne contenant les données compressées

Valeurs de retour

Retourne la chaîne décodée en cas de succès, ou NULL si une erreur survient.

Voir aussi




http_date

(PECL pecl_http >= 0.1.0)

http_dateCompose une date respectant la RFC HTTP

Description

string http_date ([ int $timestamp ] )

Compose une date HTTP valide au regard de la RFC 1123, tel que : Wed, 22 Dec 2004 11:34:47 GMT.

Liste de paramètres

timestamp

Timestamp Unix ou le temps actuel, si omis

Valeurs de retour

Retourne une date HTTP sous la forme d'une chaîne de caractères.

Voir aussi

  • date() - Formate une date/heure locale



http_get_request_body_stream

(PECL pecl_http >= 0.22.0)

http_get_request_body_streamRécupère le corps demandé sous la forme d'un flux

Description

resource http_get_request_body_stream ( void )

Crée un flux pour lire le corps demandé (e.g. données POST ou PUT).

Cette fonction ne peut être utilisée qu'une seule dois si la méthode de la demande est autre chose que POST.

Liste de paramètres

Valeurs de retour

Retourne le corps demandé sous la forme d'un flux en cas de succès, ou NULL si une erreur survient.

Voir aussi



http_get_request_body

(PECL pecl_http >= 0.10.0)

http_get_request_bodyRécupère le corps demandé sous la forme d'une chaîne de caractères

Description

string http_get_request_body ( void )

Récupère le corps demandé (e.g. données POST ou PUT).

Cette fonction ne peut pas être utilisée après la fonction http_get_request_body_stream() si la méthode de la demande est autre chose que POST.

Liste de paramètres

Valeurs de retour

Retourne le corps demandé sous la forme d'une chaîne de caractères, ou NULL si une erreur survient.

Voir aussi



http_get_request_headers

(PECL pecl_http >= 0.10.0)

http_get_request_headersRécupère les en-têtes sous la forme d'un tableau

Description

array http_get_request_headers ( void )

Récupère une liste d'en-têtes HTTP entrants.

Liste de paramètres

Valeurs de retour

Retourne un tableau associatif d'en-têtes entrants.

Voir aussi



http_match_etag

(PECL pecl_http >= 0.1.0)

http_match_etagCherche un ETag particulier

Description

bool http_match_etag ( string $etag [, bool $for_range = false ] )

Cherche l'ETag fourni dans l'en-tête HTTP If-Match ou If-None-Match du client.

Liste de paramètres

etag

l'ETag à chercher

for_range

si défini à TRUE, l'en-tête habituellement utilisé pour valider l'intervalle HTTP sera analysé

Valeurs de retour

Retourne TRUE si l'ETag correspond ou l'en-tête contient une astérisque ("*"), FALSE sinon.

Voir aussi



http_match_modified

(PECL pecl_http >= 0.1.0)

http_match_modifiedVérifie la date de dernière modification

Description

bool http_match_modified ([ int $timestamp = -1 [, bool $for_range = false ]] )

Vérifie si le timestamp Unix fourni est valide vis-à-vis de l'en-tête HTTP If-Modified-Since ou If-Unmodified-Since du client.

Liste de paramètres

timestamp

Timestamp Unix ou la date courante si ce paramètre est omis

for_range

si défini à TRUE, l'en-tête habituellement utilisé pour valider l'intervalle HTTP sera vérifié

Valeurs de retour

Retourne TRUE si le timestamp représente une date plus récente que l'en-tete, FALSE sinon.

Voir aussi



http_match_request_header

(PECL pecl_http >= 0.10.0)

http_match_request_headerCherche n'importe quel en-tête

Description

bool http_match_request_header ( string $header , string $value [, bool $match_case = false ] )

Cherche un en-tête HTTP entrant.

Liste de paramètres

header

le nom de l'en-tête (insensible à la casse)

value

la valeur de l'en-tête qui doit être comparée

match_case

si la valeur doit être comparée en respectant la casse

Valeurs de retour

Retourne TRUE si la valeur de l'en-tête correspond, FALSE sinon.

Voir aussi



http_support

(PECL pecl_http >= 0.15.0)

http_supportVérifie le support HTTP interne

Description

int http_support ([ int $feature = 0 ] )

Vérifie les fonctionnalités qui nécessitent des bibliothèques externes.

Voir la table des constantes supportées pour les valeurs possibles pour l'argument feature.

Liste de paramètres

feature

Fonctionnalité à vérifier

Valeurs de retour

Retourne un entier si la fonctionnalité demandée est supportée, ou un bitmask contenant toutes les fonctionnalités supportées si le paramètre feature est omis.

Exemples

Exemple #1 Exemple avec http_support()

<?php
if (!http_support(HTTP_SUPPORT_REQUESTS)) {
    die(
"Besoin du support de demande HTTP !\n");
}
?>



http_negotiate_charset

(PECL pecl_http >= 0.1.0)

http_negotiate_charsetJeu de caractères préféré pour la négociation avec les clients

Description

string http_negotiate_charset ( array $supported [, array &$result ] )

Cette fonction négocie le jeu de caractères préféré par les clients basé sur les entêtes HTTP Accept-Charset.

Liste de paramètres

supported

tableau contenant les jeux de caractères supportés comme valeurs

result

doit contenir un tableau contenant les résultats de la négociation

Valeurs de retour

Retourne le jeu de caractères négocié ou le jeu de caractères par défaut (i.e. première entrée du tableau) si aucun ne correspond.

Exemples

Exemple #1 Exemple avec http_negotiate_charset()

<?php
$charsets 
= array(
    
'iso-8859-1'// default
    
'iso-8859-2',
    
'iso-8859-15',
    
'utf-8'
);

$pref http_negotiate_charset($charsets$result);

if (
strcmp($pref'iso-8859-1')) {
    
iconv_set_encoding('internal_encoding''iso-8859-1');
    
iconv_set_encoding('output_encoding'$pref);
    
ob_start('ob_iconv_handler');
}

print_r($result);
?>



http_negotiate_content_type

(PECL pecl_http >= 0.19.0)

http_negotiate_content_typeNégocie avec le client le type de contenu préféré

Description

string http_negotiate_content_type ( array $supported [, array &$result ] )

Cette fonction négocie avec le client le type de contenu préféré, basé sur son en-tête Accept. Le quantificateur est reconnu et les types de contenu sans quantificateur sont notés de façon plus élevés.

Liste de paramètres

supported

tableau contenant les types de contenu supportés, sous la forme de valeurs

result

sera rempli avec un tableau contenant les résultats de la négociation

Valeurs de retour

Retourne le type de contenu négocié ou le type de contenu par défaut (i.e. première entrée du tableau) si aucun ne correspond.

Exemples

Exemple #1 Exemple avec http_negotiate_content_type()

<?php
$content_types 
= array('application/xhtml+xml''text/html');
http_send_content_type(http_negotiate_content_type($content_types));
?>



http_negotiate_language

(PECL pecl_http >= 0.1.0)

http_negotiate_languageNégocie le langage préféré par les clients

Description

string http_negotiate_language ( array $supported [, array &$result ] )

Cette fonction négocie le langage préféré par les clients, basé sur les en-têtes HTTP Accept-Language.

Liste de paramètres

supported

tableau contenant les langages supportés en tant que valeurs

result

contient un tableau, contenant les résultats de la négociation

Valeurs de retour

Retourne le langage négocié ou le langage par défaut (i.e. première entrée du tableau) si aucun ne correspond.

Exemples

Exemple #1 Exemple avec http_negotiate_language()

<?php
$langs 
= array(
    
'en-US',// défaut
    
'fr',
    
'fr-FR',
    
'de',
    
'de-DE',
    
'de-AT',
    
'de-CH',
);

include 
'./langs/'http_negotiate_language($langs$result) .'.php';

print_r($result);
?>



ob_deflatehandler

(PECL pecl_http >= 0.21.0)

ob_deflatehandlerGestionnaire de sortie de compression

Description

string ob_deflatehandler ( string $data , int $mode )

À utiliser avec la fonction ob_start().

Note: Ce gestionnaire de sortie ne peut être utilisé qu'une seule fois.

Le gestionnaire de sortie de compression ne peut être utilisé qu'une seule fois.

Cela rentre en conflit avec la compression ob_gzhandler() et zlib.output_compression et ne doit pas être utilisé après ext/mbstring mb_output_handler() et ext/session URL-Rewriter (i.e. session.use_trans_sid).

Voir aussi



ob_etaghandler

(PECL pecl_http >= 0.10.0)

ob_etaghandlerGestionnaire de sortie ETag

Description

string ob_etaghandler ( string $data , int $mode )

À utiliser avec la fonction ob_start().

Le gestionnaire de buffer de sortie génère un ETag avec l'algorithme de hashage spécifié par directive de configuration INI http.etag.mode.

Ce gestionnaire de sortie est utilisé par la fonction http_cache_etag().

Voir aussi



ob_inflatehandler

(PECL pecl_http >= 0.21.0)

ob_inflatehandlerGestionnaire de sortie de décompression

Description

string ob_inflatehandler ( string $data , int $mode )

À utiliser avec la fonction ob_start().

Les mêmes restrictions sont appliquées que pour la fonction ob_deflatehandler().

Voir aussi




http_parse_headers

(PECL pecl_http >= 0.10.0)

http_parse_headersAnalyse les entêtes HTTP

Description

array http_parse_headers ( string $header )

Analyse les entêtes HTTP et les placent dans un tableau associatif.

Liste de paramètres

header

chaîne contenant les en-têtes HTTP

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_parse_headers()

<?php
$headers 
"content-type: text/html; charset=UTF-8\r\n".
  
"Server: Funky/1.0\r\n".
  
"Set-Cookie: foo=bar\r\n".
  
"Set-Cookie: baz=quux\r\n".
  
"Folded: works\r\n\ttoo\r\n";
print_r(http_parse_headers($headers));
?>

L'exemple ci-dessus va afficher :

Array
(
  [Content-Type] => text/html; chatset=UTF-8
  [Server] => Funky/1.0
  [Set-Cookie] => Array
  (
    [0] => foo=bar
    [1] => baz=quux
  )
  [Folded] => works
    too
)

Voir aussi



http_parse_message

(PECL pecl_http >= 0.12.0)

http_parse_messageAnalyse un message HTTP

Description

object http_parse_message ( string $message )

Analyse le message HTTP dans un objet simple récursif.

Liste de paramètres

message

chaîne contenant un message HTTP simple ou plusieurs messages HTTP consécutifs

Valeurs de retour

Retourne une structure d'objets hiérarchiques des messages analysés.

Exemples

Exemple #1 Exemple avec http_parse_message()

<?php
define 
('URL''http://www.example.com/');
print_r(http_parse_message(http_get(URL, array('redirect' => 3))));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

stdClass object
(
  [type] => 2
  [httpVersion] => 1.1
  [responseCode] => 200
  [headers] => Array 
  (
    [Content-Length] => 3
    [Server] => Apache
  )
  [body] => Hi!
  [parentMessage] => stdClass object
  (
    [type] => 2
    [httpVersion] => 1.1
    [responseCode] => 302
    [headers] => Array 
    (
      [Content-Length] => 0
      [Location] => ...
    )
    [body] =>
    [parentMessage] => ...
  )
)

Voir aussi



http_parse_params

(PECL pecl_http >= 1.0.0)

http_parse_paramsAnalyse la liste des paramètres

Description

object http_parse_params ( string $param [, int $flags = HTTP_PARAMS_DEFAULT ] )

Analyse la liste des paramètres.

Voir la table des constantes analysées pour les valeurs possibles de l'argument flags.

Liste de paramètres

param

Paramètres

flags

Flags d'analyse

Valeurs de retour

Retourne la liste des paramètres sous la forme d'un objet stdClass.

Exemples

Exemple #1 Exemple avec http_parse_params()

<?php
var_dump
(http_parse_params("text/html; charset=\"utf8\""));
?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["params"]=>
  array(2) {
    [0]=>
    string(9) "text/html"
    [1]=>
    array(1) {
      ["charset"]=>
      string(4) "utf8"
    }
  }
}

Voir aussi



http_persistent_handles_clean

(PECL pecl_http >= 1.5.0)

http_persistent_handles_cleanNettoie le gestionnaire persistant

Description

string http_persistent_handles_clean ([ string $ident ] )

Nettoie, et ferme, le gestionnaire persistant, optionnellement identifié par le paramètre ident.

Liste de paramètres

clean

La chaîne d'identification

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



http_persistent_handles_count

(PECL pecl_http >= 1.5.0)

http_persistent_handles_countRécupère les statistiques sur le gestionnaire persistant

Description

object http_persistent_handles_count ( void )

Récupère les statistiques sur l'utilisation du gestionnaire persistant.

Liste de paramètres

Valeurs de retour

Retourne les statistiques sur l'utilisation du gestionnaire persistant sous la forme d'un objet stdClass en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_persistent_handles_count()

<?php
print_r
(http_persistent_handles_count());
?>

L'exemple ci-dessus va afficher :

stdClass Object
(
    [http_request] => Array
        (
            [GLOBAL] => Array
                (
                    [used] => 0
                    [free] => 1
                )

        )

    [http_request_datashare] => Array
        (
            [GLOBAL] => Array
                (
                    [used] => 1
                    [free] => 0
                )

        )

    [http_request_pool] => Array
        (
        )

)

Voir aussi



http_persistent_handles_ident

(PECL pecl_http >= 1.5.0)

http_persistent_handles_identRécupère/définit l'identification du gestionnaire persistant

Description

string http_persistent_handles_ident ([ string $ident ] )

Récupère/définit l'identification du gestionnaire persistant.

Liste de paramètres

ident

La chaîne d'identification

Valeurs de retour

Retourne la précédente identification sous la forme d'une chaîne de caractères en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_persistent_handles_ident()

<?php
echo http_persistent_handles_ident("CUSTOM"), "\n";
echo 
http_persistent_handles_ident("MyApp1"), "\n";
http_get("http://www.example.com/");
print_r(http_persistent_handles_count());
?>

L'exemple ci-dessus va afficher :


GLOBAL
CUSTOM
stdClass Object
(
[http_request] => Array
(
[MyApp1] => Array
(
[used] => 0
[free] => 1
)

)

[http_request_datashare] => Array
(
[GLOBAL] => Array
(
[used] => 1
[free] => 0
)

)

[http_request_pool] => Array
(
)

)

Voir aussi



http_get

(PECL pecl_http >= 0.1.0)

http_getEffectue une requête GET

Description

string http_get ( string $url [, array $options [, array &$info ]] )

Effectue une requête HTTP GET sur l'URL fournie.

Voir la liste complète des options de demande.

Liste de paramètres

url

URL

options

options de demande

info

Doit contenir les informations requête/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_get()

<?php
$response 
http_get("http://www.example.com/", array("timeout"=>1), $info);
print_r($info);
?>

L'exemple ci-dessus va afficher :

array (
  'effective_url' => 'http://www.example.com/',
  'response_code' => 302,
  'connect_code' => 0,
  'filetime' => -1,
  'total_time' => 0.212348,
  'namelookup_time' => 0.038296,
  'connect_time' => 0.104144,
  'pretransfer_time' => 0.104307,
  'starttransfer_time' => 0.212077,
  'redirect_time' => 0,
  'redirect_count' => 0,
  'size_upload' => 0,
  'size_download' => 218,
  'speed_download' => 1026,
  'speed_upload' => 0,
  'header_size' => 307,
  'request_size' => 103,
  'ssl_verifyresult' => 0,
  'ssl_engines' =>
  array (
    0 => 'dynamic',
    1 => 'cswift',
    2 => 'chil',
    3 => 'atalla',
    4 => 'nuron',
    5 => 'ubsec',
    6 => 'aep',
    7 => 'sureware',
    8 => '4758cca',
  ),
  'content_length_download' => 218,
  'content_length_upload' => 0,
  'content_type' => 'text/html',
  'httpauth_avail' => 0,
  'proxyauth_avail' => 0,
  'num_connects' => 1,
  'os_errno' => 0,
  'error' => '',
)



http_head

(PECL pecl_http >= 0.1.0)

http_headEffectue une requête HEAD

Description

string http_head ( string $url [, array $options [, array &$info ]] )

Effectue une requête HTTP HEAD sur l'URL fournie.

Voir la liste complète des options de demande.

Liste de paramètres

url

URL

options

options de demande

info

information de demande/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.



http_post_data

(PECL pecl_http >= 0.1.0)

http_post_dataEffectue une requête POST avec des données préencodées

Description

string http_post_data ( string $url , string $data [, array $options [, array &$info ]] )

Effectue une requête HTTP POST sur l'URL fournie.

Voir la liste complète des options de demande.

Liste de paramètres

url

URL

data

chaîne contenant les données préencodées à envoyer par méthode POST

options

options de demande

info

information de demande/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.



http_post_fields

(PECL pecl_http >= 0.10.0)

http_post_fieldsEffectue une requête POST avec des données à encoder

Description

string http_post_fields ( string $url , array $data [, array $files [, array $options [, array &$info ]]] )

Effectue une requête HTTP POST sur l'URL fournie.

Voir la liste complète des options de demande.

Liste de paramètres

url

URL

data

tableau associatif de valeurs POST

files

tableau de fichiers à envoyer par méthode POST

options

options de demande

info

information de demande/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_post_fields()

<?php
$fields 
= array(
    
'name' => 'mike',
    
'pass' => 'se_ret'
);
$files = array(
    array(
        
'name' => 'uimg',
        
'type' => 'image/jpeg',
        
'file' => './profile.jpg',
    )
);

$response http_post_fields("http://www.example.com/"$fields$files);
?>



http_put_data

(PECL pecl_http >= 0.25.0)

http_put_dataEffectue une requête PUT avec des données

Description

string http_put_data ( string $url , string $data [, array $options [, array &$info ]] )

Effectue une requête HTTP PUT sur l'URL fournie.

Voir la liste complète des options de demande.

Liste de paramètres

url

URL

data

corps de la requête PUT

options

options de demande

info

information de demande/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.



http_put_file

(PECL pecl_http >= 0.10.0)

http_put_fileEffectue une requête PUT avec un fichier

Description

string http_put_file ( string $url , string $file [, array $options [, array &$info ]] )

Effectue une requête HTTP PUT sur l'URL fournie.

Voir la liste complète des options de demande.

Liste de paramètres

url

URL

file

le fichier à envoyer par méthode PUT

options

options de demande

info

information de demande/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.



http_put_stream

(PECL pecl_http >= 0.10.0)

http_put_streamEffectue une requête PUT avec un flux

Description

string http_put_stream ( string $url , resource $stream [, array $options [, array &$info ]] )

Effectue une requête HTTP PUT sur l'URL fournie.

Voir la liste complète des options de demande.

Liste de paramètres

url

URL

stream

le flux à lire pour le corps de la requête PUT

options

options de demande

info

information de demande/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.



http_request_body_encode

(PECL pecl_http >= 1.0.0)

http_request_body_encodeEncode le corps de la requête

Description

string http_request_body_encode ( array $fields , array $files )

Génère un corps de requête encodé x-www-form-urlencoded.

Liste de paramètres

fields

champs POST

files

fichiers POST

Valeurs de retour

Retourne une chaîne encodée en cas de succès ou FALSE si une erreur survient.



http_request_method_exists

(PECL pecl_http >= 0.10.0)

http_request_method_existsVérifie si la méthode de requête existe

Description

int http_request_method_exists ( mixed $method )

Vérifie si la méthode de requête est enregistrée (ou disponible, par défaut).

Liste de paramètres

method

nom ou l'ID de la méthode de requête

Valeurs de retour

Retourne TRUE si la méthode de requête est connue, FALSE sinon.



http_request_method_name

(PECL pecl_http >= 0.10.0)

http_request_method_nameRécupère le nom de la requête

Description

string http_request_method_name ( int $method )

Récupère la représentation littérale de la méthode de requête standard ou enregistrée.

Liste de paramètres

method

l'ID de la méthode de requête

Valeurs de retour

Retourne le nom de la méthode de requête sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.



http_request_method_register

(PECL pecl_http >= 0.10.0)

http_request_method_registerEnregistre une méthode de requête

Description

int http_request_method_register ( string $method )

Enregistre une méthode de requête personnalisée.

Liste de paramètres

method

le nom de la méthode de requête à enregistrer

Valeurs de retour

Retourne l'ID de la méthode de requête en cas de succès ou FALSE si une erreur survient.



http_request_method_unregister

(PECL pecl_http >= 0.10.0)

http_request_method_unregisterRetire une méthode de requête

Description

bool http_request_method_unregister ( mixed $method )

Retire une méthode personnalisée de requête précédemment enregistrée.

Liste de paramètres

method

Le nom ou l'ID de la méthode de requête

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



http_request

(PECL pecl_http >= 1.0.0)

http_requestEffectue une requête personnalisée

Description

string http_request ( int $method , string $url [, string $body [, array $options [, array &$info ]]] )

Effectue une requête HTTP personnalisée sur l'URL suppliée.

Voir la liste complète des options de demande.

Liste de paramètres

method

Méthode de la requête

url

URL

body

Corps de la requête

options

options de demande

info

information de demande/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.



http_redirect

(PECL pecl_http >= 0.1.0)

http_redirectEffectue une redirection HTTP

Description

bool http_redirect ([ string $url [, array $params [, bool $session = false [, int $status = 0 ]]]] )

Effectue une redirection vers l'URL fournie.

L'url fournie sera traité par la fonction http_build_url(), le paramètre params sera traité par la fonction http_build_str() et l'identifiant de session sera ajouté si le paramètre session vaut true. Vous pouvez utiliser une des constantes de redirection pour plus de confort. Reportez-vous à la » RFC 2616 pour connaître le code réponse de redirection à utiliser et dans quelle situation. Par défaut, PHP décidera quel statut à la réponse convient le mieux.

Pour rester conforme à la RFC, "Redirecting to <a>URL</a>." doit être affiché, si le client ne redirige pas immédiatement, et que la méthode de la requête était différent de HEAD.

Une entrée sera écrite dans l'historique de la redirection, si le directive de configuration INI http.log.redirect est définit et que la redirection réussit.

Liste de paramètres

url

l'URL de redirection

params

tableau associatif de paramètres de la requête

session

si l'on doit ou pas ajouter les informations de session

status

code du statut de la réponse personnalisée

Valeurs de retour

Retourne FALSE ou exits en cas de succès avec un code statut spécifique. Voir la directive de configuration INI http.force_exit pour savoir ce que signifie "exits".

Exemples

Exemple #1 Exemple avec http_redirect()

<?php
http_redirect
("relpath", array("name" => "value"), trueHTTP_REDIRECT_PERM);
?>

L'exemple ci-dessus va afficher :

HTTP/1.1 301 Moved Permanently
X-Powered-By: PHP/5.2.2
Content-Type: text/html
Location: http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc

Redirecting to <a href="http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc">http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc</a>.

Voir aussi

  • la classe HttpResponse si vous utilisez PHP 5.1 et supérieur



http_send_content_disposition

(PECL pecl_http >= 0.10.0)

http_send_content_dispositionEnvoi l'en-tête Content-Disposition

Description

bool http_send_content_disposition ( string $filename [, bool $inline = false ] )

Envoi l'en-tête Content-Disposition. L'en-tête Content-Disposition est très utile si les données actuellement envoyées, provenant d'un fichier ou quelque chose de similaire, doivent être sauvegardées par le client/utilisateur (i.e. via la fenêtre de dialogue des navigateurs "Enregistrer sous...").

Note: Cette fonction doit être utilisée avec les fonctions http_send_data(), http_send_file() et http_send_stream().

Liste de paramètres

filename

le nom du fichier à utiliser pour la boîte de dialogue "Enregistrer sous..."

inline

si défini à TRUE et que l'agent utilisateur sait comme gérer le type de contenu, ce paramètre fera probablement ne pas apparaître de fenêtre de dialogue

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



http_send_content_type

(PECL pecl_http >= 0.10.0)

http_send_content_typeEnvoi le type de contenu

Description

bool http_send_content_type ([ string $content_type = "application/x-octetstream" ] )

Envoi le type de contenu d'entité envoyé.

Note: Cette fonction doit être utilisée avec les fonctions http_send_data(), http_send_file() et http_send_stream().

Liste de paramètres

content_type

le type de contenu désiré (primaire/secondaire)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte de niveau E_WARNING lorsque le content_type ne semble pas contenir une partie primaire et secondaire.

Voir aussi



http_send_data

(PECL pecl_http >= 0.1.0)

http_send_dataEnvoi des données arbitraires

Description

bool http_send_data ( string $data )

Envoi des données par ligne avec le support (multiple) des requêtes.

Liste de paramètres

data

données à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



http_send_file

(PECL pecl_http >= 0.1.0)

http_send_fileEnvoi un fichier

Description

bool http_send_file ( string $file )

Envoi un fichier avec le support (multiple) des requêtes.

Le fonctionnement de cette fonction ainsi que ses futures actions dépendent des directive de configuration INIs : http.send.not_found_404 et http.log.not_found.

Si l'directive de configuration INI http.send.not_found_404 est active et l'directive de configuration INI http.log.not_found pointe vers un fichier accessible en écriture, un message sera écrit lorsque le paramètre file n'aura pu être trouvé.

Liste de paramètres

file

le fichier à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_send_file()

<?php
http_send_content_disposition
("document.pdf"true);
http_send_content_type("application/pdf");
http_throttle(0.12048);
http_send_file("../report.pdf");
?>

L'exemple ci-dessus va afficher :

HTTP/1.1 206 Partial Content
X-Powered-By: PHP/5.2.2
Accept-Ranges: bytes
Content-Length: 12345
Content-Range: bytes 0-12344
Content-Type: application/pdf
Content-Disposition: inline; filename="document.pdf"

%PDF...

Voir aussi



http_send_last_modified

(PECL pecl_http >= 0.1.0)

http_send_last_modifiedEnvoi l'en-tête Last-Modified

Description

bool http_send_last_modified ([ int $timestamp ] )

Envoi un en-tête Last-Modified avec une date HTTP valide.

Note: Cette fonction doit être utilisée avec les fonctions http_send_data(), http_send_file() et http_send_stream().

Liste de paramètres

timestamp

un timestamp Unix, convertit en une date HTTP valide ; si ce paramètre est omis, la date courante sera utilisée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • la classe HttpResponse si vous utilisez PHP 5.1 et supérieur



http_send_status

(PECL pecl_http >= 0.1.0)

http_send_statusEnvoi le statut réponse HTTP

Description

bool http_send_status ( int $status )

Envoi le code statut HTTP.

Liste de paramètres

status

code statut HTTP (100-599)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • la classe HttpResponse si vous utilisez PHP 5.1 et supérieur



http_send_stream

(PECL pecl_http >= 0.1.0)

http_send_streamEnvoi un flux

Description

bool http_send_stream ( resource $stream )

Envoi un flux déjà ouvert avec le support (multiple) des requêtes.

Liste de paramètres

stream

flux à lire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



http_throttle

(PECL pecl_http >= 0.10.0)

http_throttleÉtranglement HTTP

Description

void http_throttle ( float $sec [, int $bytes = 40960 ] )

Définit le délai d'étranglement et envoie la taille du buffer.

Note: Cette fonction doit être utilisée avec les fonctions http_send_data(), http_send_file() et http_send_stream().

Note: Fournit un mécanisme d'étranglement, qui gèrera le processus courant tant que l'entité n'aura pas été complètement envoyé.

Note:

Ne fonctionnera pas comme prévu avec les SAPIs suivants : FastCGI.

Liste de paramètres

sec

secondes à attendre après chaque partie envoyée

bytes

la taille d'une partie en octets

Exemples

Exemple #1 Exemple avec http_throttle()

Envoi un fichier à une vitesse approximative de 20 ko/s.

<?php
// ~ 20 ko/s
# http_throttle(1, 20000);
# http_throttle(0.5, 10000);
# http_throttle(0.1, 2000);
http_send_file('document.pdf');
?>

Voir aussi



http_build_str

(PECL pecl_http >= 0.23.0)

http_build_strConstruit une URL à partir d'une chaîne de caractères

Description

string http_build_str ( array $query [, string $prefix [, string $arg_separator = ini_get("arg_separator.output") ]] )

Cette fonction est l'inverse de la fonction parse_str().

Liste de paramètres

query

tableau associatif de paramètres pour la construction de l'URL

prefix

Préfixe de premier niveau

arg_separator

séparateur à utiliser (par défaut, ce sera le contenu de la variable de configuration INI arg_separator.output) ou "&" si rien n'est défini

Valeurs de retour

Retourne l'URL construite sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi



http_build_url

(PECL pecl_http >= 0.21.0)

http_build_urlConstruit une URL

Description

string http_build_url ([ mixed $url [, mixed $parts [, int $flags = HTTP_URL_REPLACE [, array &$new_url ]]]] )

Construit une URL.

Les parties de la seconde URL seront ajoutées dans la première en fonction des arguments.

Liste de paramètres

url

partie(s) d'une URL sous la forme d'une chaîne ou un tableau associatif comme retourné par la fonction parse_url()

parts

la même chose que le premier argument

flags

un masque de constantes HTTP_URL ; HTTP_URL_REPLACE est la valeur par défaut

new_url

si défini, il sera ajouté avec les parties de l'URL composée comme retournée par la fonction parse_url()

Valeurs de retour

Retourne la nouvelle URL sous la forme d'une chaîne en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec http_build_url()

<?php
echo http_build_url("http://user@www.example.com/pub/index.php?a=b#files",
         array(
                 
"scheme" => "ftp",
                 
"host" => "ftp.example.com",
                 
"path" => "files/current/",
                  
"query" => "a=c"
          
),
         
HTTP_URL_STRIP_AUTH HTTP_URL_JOIN_PATH HTTP_URL_JOIN_QUERY HTTP_URL_STRIP_FRAGMENT
);
?>

L'exemple ci-dessus va afficher :

ftp://ftp.example.com/pub/files/current/?a=c

Voir aussi


Sommaire




Intégration PHP / Java


Introduction

Il y a deux moyens de connecter PHP et Java : soit en intégrant PHP dans un environnement de Servlet Java, ce qui est la solution la plus stable et la plus efficace, soit en intégrant Java directement dans PHP. La première solution est fournie par le module SAPI qui s'interface avec un serveur de Servlet, la dernière par cette extension.

L'extension Java fournit un moyen simple et efficace pour créer et invoquer des méthodes d'un objet Java depuis PHP. La JVM est créée avec JNI, et tout fonctionne en intra-processus.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Vous devez installer Java VM sur votre machine pour utiliser cette extension.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/java.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0

Note: PHP 4 specific notes

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Java en utilisant l'option de configuration --with-java[=DIR]DIR représente le dossier d'installation de base de votre JDK. Cette extension ne peut être compilée qu'en tant qu'extension partagée. Des instructions complémentaires sur la compilation peuvent être trouvées dans php-src/ext/java/README.

Les utilisateurs de Windows doivent activer la bibliothèque php_java.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées.

Pour activer ce module dans un environnement Windows avec PHP <= 4.0.6, vous devez rendre la bibliothèque jvm.dll disponible pour votre PATH système. Aucune autre bibliothèque DLL n'est nécessaire pour les version de PHP > 4.0.6.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Java
Nom Défaut Modifiable Historique
java.class.path NULL PHP_INI_ALL  
java.home NULL PHP_INI_ALL  
java.library.path NULL PHP_INI_ALL  
java.library JAVALIB PHP_INI_ALL  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Java Servlet SAPI

L'interface PHP 4 sapi/servlet est construite sur un mécanisme défini par l'extension Java, qui permet à PHP d'être exécuté comme une servlet. L'avantage immédiat d'un point de vue PHP est que les serveurs web qui supportent les servlets gèrent rigoureusement les machines virtuelles. Les instructions d'installation du module Servlet SAPI sont disponibles dans le fichier php4/sapi/README. Notes :

  • Bien que ce code soit prévu pour fonctionner sur n'importe quel serveur à Servlet, il n'a été testé qu'avec le module Apache Jakarta/tomcat (jusqu'à aujourd'hui). Les remontées de bogues, les réussites et les patches nécessaires pour faire fonctionner ce code sur d'autres serveurs sont fortement encouragés !
  • PHP a l'habitude de changer le dossier de travail. Le serveur SAPI/Servlet le changera à nouveau, mais tant que PHP fonctionnera, le moteur de servlet ne pourra pas charger de classes dans le CLASSPATH, si le dossier est spécifié avec un chemin relatif, ou ne pourra pas trouver le dossier d'administration et de compilation des tâches JSP.



Exemples

Sommaire


Exemple #1 Exemple avec Java

<?php
// Créer une instance de la classe Java java.lang.System dans PHP
$system = new Java('java.lang.System');

// Accéder aux propriétés
echo 'Java version=' $system->getProperty('java.version') . '<br />';
echo 
'Java vendor=' $system->getProperty('java.vendor') . '<br />';
echo 
'OS=' $system->getProperty('os.name') . ' ' .
             
$system->getProperty('os.version') . ' on ' .
             
$system->getProperty('os.arch') . ' <br />';

// Exemple avec java.util.Date
$formatter = new Java('java.text.SimpleDateFormat',
                      
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo 
$formatter->format(new Java('java.util.Date'));
?>

Exemple #2 Exemple avec AWT

<?php
// Cet exemple ne fonctionne qu'en mode CLI.

$frame  = new Java('java.awt.Frame''PHP');
$button = new Java('java.awt.Button''Hello Java World!');

$frame->add('North'$button);
$frame->validate();
$frame->pack();
$frame->visible True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>
Notes :
  • new Java() crée une nouvelle instance d'une classe, si un constructeur valable est disponible. Si aucun paramètre n'est passé, et le constructeur par défaut est utile pour accéder à ces classes telles que "java.lang.System", qui fournissent leur fonctionnalités via des méthodes statiques.
  • Lors de l'accès aux membres d'une instance, PHP commencera par rechercher les membres Bean, puis les champs publics. En d'autres termes, "print $date.time" sera d'abord résolu par "$date.getTime()", puis par "$date.time";
  • Les membres statiques et d'instance sont accessibles avec la même syntaxe. De plus, si un objet est de type "java.lang.Class", les membres statiques de la classe (champs et méthodes) sont accessibles.
  • Les exceptions sont transformées en alertes PHP, et résultat NULL. Les alertes peuvent être supprimées en préfixant l'appel par l'opérateur >. Les fonctions suivantes peuvent être utilisées pour lire et effacer la dernière erreur remontée :

  • Les surcharges de fonctions sont des problèmes épineux, étant données les différences de type de valeurs entre les deux /bin/bash: q: command not found mais efficace pour déterminer la meilleur fonction à utiliser. De plus, les noms de méthodes ne sont pas sensibles à la casse en PHP, ce qui augmente le nombre de conflits potentiels. Une fois qu'une méthode est sélectionnée, les paramètres sont transtypés, avec une perte d'information potentielle non négligeable (par exemple, les nombres à virgules flottante en double précisions seront convertis en booléen).
  • Traditionnellement en PHP, les tableaux et les tables de hashage peuvent être interchangées, et fonctionnent de la même façon. Notez que les tables de hashage de PHP ne peuvent être indexées qu'avec des entiers ou des chaînes, et que le type primitif de tableau de Java ne peut comporter de trous dans les index. Notez aussi que les valeurs sont passées par valeur, ce qui peut être coûteux en mémoire et en temps.




Fonctions Java


java_last_exception_clear

(PHP 4 >= 4.0.2)

java_last_exception_clearEfface la dernière exception Java

Description

void java_last_exception_clear ( void )

Efface la dernière exception Java.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir la documentation sur la fonction java_last_exception_get() pour un exemple.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



java_last_exception_get

(PHP 4 >= 4.0.2)

java_last_exception_getLit la dernière exception Java

Description

object java_last_exception_get ( void )

Lit la dernière exception Java.

Valeurs de retour

Retourne un objet représentant la dernière exception.

Exemples

L'exemple ci-dessous montre l'utilisation du gestionnaire d'exceptions java depuis PHP :

Exemple #1 Gestionnaire d'exceptions Java

<?php
$stack 
= new Java('java.util.Stack');
$stack->push(1);

// Cela doit marcher
$result $stack->pop();
$ex java_last_exception_get();
if (!
$ex) {
  echo 
"$result\n";
}

// Cela doit échouer (le rapport d'erreurs est supprimé par @)
$result = @$stack->pop();
$ex java_last_exception_get();
if (
$ex) {
  echo 
$ex->toString();
}

// Efface la dernière exception
java_last_exception_clear();
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Sommaire




Lightweight Directory Access Protocol


Introduction

LDAP signifie : Lightweight Directory Access Protocol (Protocole léger d'accès aux annuaires). C'est un protocole utilisé pour accéder aux "serveurs de dossiers". Ces serveurs sont des bases de données particulières, qui stockent les informations sous forme d'arborescence.

Le concept d'arborescence est similaire à celui de la structure de votre système de fichier, hormis le fait que dans ce contexte, la racine s'appelle "le monde", et que le premier niveau de sous-dossier s'appelle "pays". Les niveaux encore en dessous sont des "compagnies" "organisation" ou "places", et encore plus bas, vous trouverez des "personnes" et même des "équipements" et "documents".

Pour identifier un fichier dans votre disque, vous utilisez un chemin tel que

   /usr/local/mon_application/documents
  

Le slash indique une division dans la référence, et la séquence est lue de gauche à droite.

l'équivalent d'une référence globale en LDAP s'appelle un "nom distingué" ("distinguished name"), aussi appelé "dn". Un exemple de dn serait :

  cn=Jean Dupond,ou=Comptabilité,o=Ma Compagnie,c=FR
  

La virgule marque la séparation de chaque division comme référence, et la séquence est lue de droite à gauche. Il faut donc lire :

   country = FR
   organization = Ma Compagnie
   organizationalUnit = Comptabilité
   commonName = Jean Dupond
  

De la même façon qu'il n'y a pas de règle obligatoire sur comment organiser les fichiers sur un disque dur, un responsable de serveur de dossiers peut organiser le serveur comme cela lui semble le plus pratique. Cependant, il y a des conventions à utiliser. Le principe est que vous ne pouvez pas accéder à un serveur de dossier à moins que vous ne connaissiez sa structure, de même que vous ne pouvez écrire une base de données sans en connaître les tables et les bases.

Bien plus d'informations sont disponibles aux URL suivantes (en anglais) :

Le SDK Netscape contient un guide du programmeur (» Programmer's Guide) très utile, au format HTML (et en anglais).



Installation/Configuration

Sommaire


Pré-requis

Vous devez télécharger et compiler les bibliothèques clientes LDAP depuis soit » OpenLDAP ou » Bind9.net pour assurer le support LDAP.



Installation

Le support LDAP de PHP n'est pas activé par défaut. Vous devez utiliser l'option de configuration --with-ldap[=DIR] lorsque vous compilez PHP, où DIR est le répertoire d'installation du serveur LDAP. Pour activer le support SASL, assurez-vous que l'option de configuration --with-ldap-sasl[=DIR] est utilisée et que le fichier sasl.h existe sur votre système.

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libeay32.dll et ssleay32.dll

Les versions antérieures à PHP 4.3.0 nécessitent la bibliothèque libsasl.dll.

Pour pouvoir utiliser les bibliothèques Oracle LDAP, un environnement Oracle propre doit être défini.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration LDAP
Nom Défaut Modifiable Historique
ldap.max_links "-1" PHP_INI_SYSTEM  
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

La plupart des fonctions LDAP opère sur des ressources retournées par les fonctions LDAP (e.g. ldap_connect() retourne un identifiant de lien LDAP positif requis par plusieurs fonctions LDAP).




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

LDAP_DEREF_NEVER (entier)
LDAP_DEREF_SEARCHING (entier)
LDAP_DEREF_FINDING (entier)
LDAP_DEREF_ALWAYS (entier)
LDAP_OPT_DEREF (entier)
Applique des règles alternatives pour suivre les alias sur le serveur.
LDAP_OPT_SIZELIMIT (entier)

Spécifie le nombre maximum d'entrées qui peuvent être retournées d'une position de recherche.

Note: La limite réelle peut aussi être donnée du coté du serveur. La plus petite des deux sera celle utilisée.

LDAP_OPT_TIMELIMIT (entier)
Spécifie le nombre de secondes à attendre les résultats de recherche.

Note: La limite réelle peut aussi être donnée du coté du serveur. La plus petite des deux sera celle utilisée.

LDAP_OPT_NETWORK_TIMEOUT (entier)
Option pour ldap_set_option() qui permet de définir le timeout. (Disponible depuis PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (entier)
Spécifie la version du protocole LDAP à utiliser (V2 ou V3).
LDAP_OPT_ERROR_NUMBER (entier)
LDAP_OPT_REFERRALS (entier)
Spécifie si oui ou non suivre les référrants retournés par le serveur.
LDAP_OPT_RESTART (entier)
LDAP_OPT_HOST_NAME (entier)
LDAP_OPT_ERROR_STRING (entier)
LDAP_OPT_MATCHED_DN (entier)
LDAP_OPT_SERVER_CONTROLS (entier)
Spécifie une liste de contrôles serveurs à envoyer avec chaque requête.
LDAP_OPT_CLIENT_CONTROLS (entier)
Spécifie une liste de contrôles clients à envoyer avec chaque requête.
LDAP_OPT_DEBUG_LEVEL (entier)
Spécifie un niveau pour les traces de déboguage, sous forme de masque de bits.
GSLC_SSL_NO_AUTH (entier)
GSLC_SSL_ONEWAY_AUTH (entier)
GSLC_SSL_TWOWAY_AUTH (entier)


Utiliser les fonctions LDAP de PHP

Avant d'utiliser les fonctions LDAP, vous devez connaître

  • Le nom ou l'adresse du serveur de dossiers que vous voudrez utiliser

  • Le "base dn" du serveur (la partie du dossier monde qui est disponible sur ce serveur, ce qui peut être "o=Ma Compagnie,c=FR")

  • Le mot de passe éventuel d'accès au serveur (de nombreux serveurs fournissent un accès anonyme en lecture, mais requièrent des mots de passe pour tout le reste).

La séquence LDAP typique que vous exécuterez sera la suivante :

ldap_connect()    // établit une connexion au serveur
   |
ldap_bind()       // connexion anonyme ou identifiée
   |
réalisation de commandes comme des recherches ou des
modifications, puis affichage du résultat.
   |
ldap_close()      // déconnexion
  



Exemples

Sommaire


Lit les informations sur toutes les entrées dont le nom commence par "S" sur le serveur de dossier, puis affiche le nom et l'adresse email.

Exemple #1 Recherche avec LDAP

<?php
// La séquence de base avec LDAP est 
// connexion, liaison, recherche, interprétation du résultat
// déconnexion

echo '<h3>requête de test de LDAP</h3>';
echo 
'Connexion ...';
$ds=ldap_connect("localhost");  // doit être un serveur LDAP valide !
echo 'Le résultat de connexion est ' $ds '<br />';

if (
$ds) { 
    echo 
'Liaison ...'
    
$r=ldap_bind($ds);     // connexion anonyme, typique
                                     // pour un accès en lecture seule.
    
echo 'Le résultat de connexion est ' $r '<br />';

    echo 
'Recherchons (sn=S*) ...';
    
// Recherche par nom
    
$sr=ldap_search($ds,"o=My Company, c=US""sn=S*");  
    echo 
'Le résultat de la recherche est ' $sr '<br />';

    echo 
'Le nombre d\'entrées retournées est ' ldap_count_entries($ds,$sr
         . 
'<br />';

    echo 
'Lecture des entrées ...<br />';
    
$info ldap_get_entries($ds$sr);
    echo 
'Données pour ' $info["count"] . ' entrées:<br />';

    for (
$i=0$i<$info["count"]; $i++) {
        echo 
'dn est : ' $info[$i]["dn"] . '<br />';
        echo 
'premiere entree cn : ' $info[$i]["cn"][0] . '<br />';
        echo 
'premier email : ' $info[$i]["mail"][0] . '<br />';
    }

    echo 
'Fermeture de la connexion';
    
ldap_close($ds);

} else {
    echo 
'<h4>Impossible de se connecter au serveur LDAP.</h4>';
}
?>



Fonctions LDAP


ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5)

ldap_8859_to_t61Convertit les caractères 8859 en caractères t61

Description

string ldap_8859_to_t61 ( string $value )

Convertit les caractères ISO-8859 en caractères t61.

Cette fonction est utile si vous devez utiliser un serveur LDAPv2.

Liste de paramètres

value

Le texte à convertir.

Valeurs de retour

Retourne la conversion en t61 du texte value.

Voir aussi



ldap_add

(PHP 4, PHP 5)

ldap_addAjoute une entrée dans un dossier LDAP

Description

bool ldap_add ( resource $link_identifier , string $dn , array $entry )

Ajoute une entrée dans un dossier LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Un tableau avec les informations sur la nouvelle entrée. Ces valeurs sont indexées individuellement. En cas de valeurs multiples pour un attribut, elle sont indexées numériquement, à partir de 0.

<?php
$entree
["attribut1"] = "value";
$entree["attribut2"][0] = "value1";
$entree["attribut2"][1] = "value2";
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple complet avec identification LDAP

<?php
$ds 
ldap_connect("localhost");  // on suppose que le serveur LDAP est sur le serveur local

if ($ds) {
    
// Connexion avec une identité qui permet les modifications
    
$r ldap_bind($ds"cn=root, o=My Company, c=US""secret");

    
// Prépare les données
    
$info["cn"] = "John Jones";
    
$info["sn"] = "Jones";
    
$info["mail"] = "jonj@example.com";
    
$info["objectclass"] = "person";

    
// Ajoute les données au dossier
    
$r ldap_add($ds"cn=John Jones, o=My Company, c=US"$info);

    
ldap_close($ds);
} else {
    echo 
"Impossible de se connecter au serveur LDAP";
}
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



ldap_bind

(PHP 4, PHP 5)

ldap_bindAuthentification au serveur LDAP

Description

bool ldap_bind ( resource $link_identifier [, string $bind_rdn = NULL [, string $bind_password = NULL ]] )

Authentification au serveur LDAP avec le RDN et le mot de passe spécifiés.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

bind_rdn

bind_password

Si bind_rdn et bind_password ne sont pas spécifiés, un authentification anonyme est essayé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Authentification avec LDAP

<?php

// Eléments d'authentification LDAP
$ldaprdn  'uname';     // DN ou RDN LDAP
$ldappass 'password';  // Mot de passe associé

// Connexion au serveur LDAP
$ldapconn ldap_connect("ldap.example.com")
    or die(
"Impossible de se connecter au serveur LDAP.");

if (
$ldapconn) {

    
// Connexion au serveur LDAP
    
$ldapbind ldap_bind($ldapconn$ldaprdn$ldappass);

    
// Vérification de l'authentification
    
if ($ldapbind) {
        echo 
"Connexion LDAP réussie...";
    } else {
        echo 
"Connexion LDAP échouée...";
    }

}

?>

Exemple #2 Connexion anonyme à un serveur LDAP

<?php

// Connexion anonyme à un serveur LDAP

// Connexion au serveur LDAP
$ldapconn ldap_connect("ldap.example.com")
    or die(
"Impossible de se connecter au serveur LDAP.");

if (
$ldapconn) {

    
// Authentification anonyme
    
$ldapbind ldap_bind($ldapconn);

    if (
$ldapbind) {
        echo 
"Connexion LDAP anonmye réussie...";
    } else {
        echo 
"Connexion LDAP anonmye échouée...";
    }

}

?>

Voir aussi



ldap_close

(PHP 4, PHP 5)

ldap_closeAlias de ldap_unbind()

Description

Cette fonction est un alias de : ldap_unbind().



ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compareCompare une entrée avec des valeurs d'attributs

Description

mixed ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value )

Sert à comparer la valeur value de l'attribut attribute à la valeur du même attribut de l'entrée dn.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le DN de l'entrée LDAP.

attribute

Le nom de l'attribut.

value

La valeur comparée.

Valeurs de retour

Retourne TRUE si la valeur value correspond, sinon, retourne FALSE. Retourne -1 si une erreur survient.

Exemples

L'exemple suivant montre comment vérifier que deux mots de passe correspondent, dont l'un est celui d'une entrée du serveur LDAP.

Exemple #1 Exemple complet de vérification de mot de passe avec lDAP

<?php

$ds
=ldap_connect("localhost");  // doit être un serveur LDAP valide!

if ($ds) {

    
// Authentification
    
if (ldap_bind($ds)) {

        
// Préparation des données
        
$dn "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        
$value "secretpassword";
        
$attr "password";

        
// Comparaison des valeurs
        
$r=ldap_compare($ds$dn$attr$value);

        if (
$r === -1) {
            echo 
"Error: " ldap_error($ds);
        } elseif (
$r === true) {
            echo 
"Password correct.";
        } elseif (
$r === false) {
            echo 
"Mal choisi ! Mot de passe incorrect !";
        }

    } else {
        echo 
"Impossible de se connecter au serveur LDAP.";
    }

    
ldap_close($ds);

} else {
    echo 
"Impossible de se connecter au serveur LDAP.";
}
?>

Notes

Avertissement

ldap_compare() ne peut PAS être utilisé pour comparer des valeurs binaires !



ldap_connect

(PHP 4, PHP 5)

ldap_connectConnexion à un serveur LDAP

Description

resource ldap_connect ([ string $hostname = NULL [, int $port = 389 ]] )

Établit une connexion avec un serveur LDAP situé sur l'hôte hostname et port.

Liste de paramètres

hostname

Si vous utilisez OpenLDAP 2.x.x, vous pouvez spécifier une URL au lieu d'un nom d'hôte. Pour utiliser LDAP avec SSL, compilez OpenLDAP 2.x.x avec le support SSL, configurez PHP avec SSL, et utilisez ldaps://hostname/ comme nom d'hôte.

port

Le port utilisé pour la connexion. Inutile lors de l'utilisation d'URL.

Valeurs de retour

Retourne un identifiant positif de serveur LDAP en cas de succès, ou bien FALSE en cas d'erreur. Lorsque OpenLDAP 2.x.x est utilisé, ldap_connect() retournera toujours une ressource car il ne se connectera pas mais initialisera uniquement les paramètres de connexion. Actuellement, la connexion intervient avec le prochain appel aux fonctions ldap_*, habituellement avec la fonction ldap_bind().

Sans argument, l'identifiant de la dernière connexion ouverte sera retourné.

Historique

Version Description
4.0.4 Les supports URL et SSL ont été ajoutés.

Exemples

Exemple #1 Exemple de connexion à un serveur LDAP

<?php

// LDAP variables
$ldaphost "ldap.example.com";  // votre serveur LDAP
$ldapport 389;                 // votre port de serveur LDAP

// Connexion LDAP
$ldapconn ldap_connect($ldaphost$ldapport)
          or die(
"Impossible de se connecter au serveur LDAP $ldaphost");

?>

Exemple #2 Exemple de connexion à un serveur LDAP SSL

<?php

// Assurez-vous que l'hôte est correct
// et que vous avez un certificat valide
$ldaphost "ldaps://ldap.example.com/";

// Connexion LDAP
$ldapconn ldap_connect($ldaphost)
          or die(
"Impossible de se connecter au serveur LDAP {$ldaphost}");

?>

Voir aussi



ldap_count_entries

(PHP 4, PHP 5)

ldap_count_entriesCompte le nombre d'entrées après une recherche

Description

int ldap_count_entries ( resource $link_identifier , resource $result_identifier )

Retourne le nombre d'entrées trouvées dans le résultat result_identifier, sur la connexion link_identifier.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Le résultat interne LDAP.

Valeurs de retour

Retourne le nombre d'entrées dans le résultat, ou FALSE si une erreur survient.



ldap_delete

(PHP 4, PHP 5)

ldap_deleteEfface une entrée dans un dossier

Description

bool ldap_delete ( resource $link_identifier , string $dn )

Efface une entrée spécifique d'un dossier LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ldap_add() - Ajoute une entrée dans un dossier LDAP



ldap_dn2ufn

(PHP 4, PHP 5)

ldap_dn2ufnConvertit un DN en format UFN (User Friendly Naming)

Description

string ldap_dn2ufn ( string $dn )

Convertit le DN dn dans un format plus lisible humainement, en supprimant les types des noms.

Liste de paramètres

dn

Le DN de l'entrée LDAP.

Valeurs de retour

Retourne l'UFN.



ldap_err2str

(PHP 4, PHP 5)

ldap_err2strConvertit un numéro d'erreur LDAP en message d'erreur

Description

string ldap_err2str ( int $errno )

Retourne le message lisible expliquant l'erreur dont le numéro est errno. Bien que les numéros d'erreur LDAP soient standardisés, différentes bibliothèques retournent des messages différents ou même des textes d'erreur localisés. N'utilisez jamais les messages d'erreur pour identifier une erreur, mais bien les numéros.

Liste de paramètres

errno

Le numéro de l'erreur.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Énumérer tous les messages d'erreur LDAP

<?php
  
for ($i=0$i<100$i++) {
    
printf("Erreur numéro $i: %s<br />\n"ldap_err2str($i));
  }
?>

Voir aussi

  • ldap_errno() - Retourne le numéro d'erreur LDAP de la dernière commande exécutée
  • ldap_error() - Retourne le message LDAP de la dernière commande LDAP



ldap_errno

(PHP 4, PHP 5)

ldap_errnoRetourne le numéro d'erreur LDAP de la dernière commande exécutée

Description

int ldap_errno ( resource $link_identifier )

Retourne le numéro d'erreur standard, généré par la dernière commande LDAP, pour la connexion link_identifier. Ce numéro peut être converti en message textuel avec ldap_err2str().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Retourne le numéro d'erreur LDAP généré par la dernière commande.

Exemples

À moins que vous n'abaissiez suffisamment le niveau d'erreur dans php.ini, ou que vous ne préfixiez vos commandes LDAP avec @ (arobase) pour supprimer les affichages, les erreurs LDAP s'afficheront aussi dans la sortie HTML.

Exemple #1 Générer et intercepter une erreur

<?php
// Cet exemple contient une erreur, que nous interecepterons.
$ld ldap_connect("localhost");
$bind ldap_bind($ld);
// erreur de syntaxe dans l'expression du filtre (errno 87),
// doit être "objectclass=*" pour fonctionner.
$res =  @ldap_search($ld"o=Myorg, c=DE""objectclass");
if (!
$res) {
    echo 
"LDAP-Errno: " ldap_errno($ld) . "<br />\n";
    echo 
"LDAP-Error: " ldap_error($ld) . "<br />\n";
    die(
"Argh!<br />\n");
}
$info ldap_get_entries($ld$res);
echo 
$info["count"] . " entrées correspondent.<br />\n";
?>

Voir aussi

  • ldap_err2str() - Convertit un numéro d'erreur LDAP en message d'erreur
  • ldap_error() - Retourne le message LDAP de la dernière commande LDAP



ldap_error

(PHP 4, PHP 5)

ldap_errorRetourne le message LDAP de la dernière commande LDAP

Description

string ldap_error ( resource $link_identifier )

retourne le message d'erreur lié à la connexion link_identifier. Même si les numéros d'erreur LDAP sont standardisés, différentes bibliothèques retournent différents messages, ou parfois, des messages en langue locale. Ne vous fiez pas au message d'erreur, mais bien au numéro d'erreur.

À moins que vous n'abaissiez suffisamment le niveau d'erreur dans php.ini, ou que vous ne préfixiez vos commandes LDAP avec @ pour supprimer les affichages, les erreurs LDAP s'afficheront aussi dans la sortie HTML.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Retourne un message d'erreur LDAP.

Voir aussi

  • ldap_err2str() - Convertit un numéro d'erreur LDAP en message d'erreur
  • ldap_errno() - Retourne le numéro d'erreur LDAP de la dernière commande exécutée



ldap_explode_dn

(PHP 4, PHP 5)

ldap_explode_dnSépare les différents composants d'un DN

Description

array ldap_explode_dn ( string $dn , int $with_attrib )

Sert à extraire les différents composants du DN dn. Chaque composant s'appelle un Nom Distingué Relatif (Relative Distinguished Name ou encore RDN).

Liste de paramètres

dn

Le nom DN de l'entrée LDAP.

with_attrib

Sert à préciser si les RDN sont retournés seuls, ou bien avec leurs attributs. Pour obtenir les attributs en même temps que les RDN (au format attribut=valeur), donnez à with_attrib la valeur de 0 et, sinon, donnez lui la valeur de 1.

Valeurs de retour

Retourne un tableau de tous les composants DN. Le premier élément du tableau a une clé count et représente le nombre de valeurs retournées ; les autres éléments sont les composants DN indexés numériquement.



ldap_first_attribute

(PHP 4, PHP 5)

ldap_first_attributeRetourne le premier attribut

Description

string ldap_first_attribute ( resource $link_identifier , resource $result_entry_identifier )

Retourne le premier attribut de l'entrée fournie. Les autres attributs sont lus grâce à la fonction ldap_next_attribute(), appelée aussi souvent que nécessaire.

Similairement à la lecture des entrées, les attributs sont lus les uns après les autres, pour une entrée.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

ber_identifier

Le paramètre ber_identifier est l'identifiant de pointeur en mémoire locale. Il est passé par référence. Le même paramètre ber_identifier est passé à la fonction ldap_next_attribute(), qui modifiera ce pointeur.

Note:

Ce paramètre n'est plus disponible depuis qu'il est géré automatiquement par PHP. Pour une compatibilité ascendante, PHP ne lancera pas d'erreur si ce paramètre est renseigné.

Valeurs de retour

Retourne le premier attribut de l'entrée en cas de succès, et FALSE si une erreur survient.

Historique

Version Description
5.2.4 Le paramètre ber_identifier a été supprimé. Il est maintenant géré automatiquement par PHP.

Voir aussi



ldap_first_entry

(PHP 4, PHP 5)

ldap_first_entryRetourne la première entrée

Description

resource ldap_first_entry ( resource $link_identifier , resource $result_identifier )

Retourne la première entrée du résultat. Celles qui suivent seront lues grâce à la fonction lap_next_entry(), en l'appelant aussi souvent que nécessaire.

Les entrées d'un résultat LDAP sont lues séquentiellement avec les fonctions ldap_first_entry() et ldap_next_entry().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Valeurs de retour

Retourne la première entrée en cas de succès, FALSE si une erreur survient.

Voir aussi



ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_first_referenceRetourne la première référence

Description

resource ldap_first_reference ( resource $link , resource $result )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_free_result

(PHP 4, PHP 5)

ldap_free_resultLibère la mémoire du résultat

Description

bool ldap_free_result ( resource $result_identifier )

Libère toute la mémoire allouée en interne pour stocker le résultat result_identifier. Si l'appel de cette fonction est omis, toute la mémoire sera libérée automatiquement à la fin du script.

Typiquement, toute la mémoire allouée pour le résultat LDAP est libérée à la fin du script. Si le script effectue des recherches intensives, qui retournent des résultats de grandes taille, ldap_free_result() peut être utilisée pour réduire la consommation de mémoire.

Liste de paramètres

result_identifier

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



ldap_get_attributes

(PHP 4, PHP 5)

ldap_get_attributesLit les attributs d'une entrée

Description

array ldap_get_attributes ( resource $link_identifier , resource $result_entry_identifier )

Lit les attributs et les valeurs pour une entrée d'un résultat de recherche.

Une fois que vous avez repéré une entrée dans un dossier, vous pouvez obtenir plus d'informations sur elle avec cette fonction. Elle pourrait être utilisée dans le cadre d'une application qui cartographie les dossiers et les entrées. Dans de nombreuses applications, vous recherchez des entrées ayant un attribut précis, sans vous soucier des autres attributs.

return_value["count"] = nombre d'attributs dans l'entrée
return_value[0] = premier attribut
return_value[n] = n-ième attribut

return_value["attribute"]["count"] = nombre de valeurs de l'attribut
return_value["attribute"][0] = première valeur de l'attribut
return_value["attribute"][i] = (i+1)-ème valeur de l'attribut

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne le détail des informations d'une entrée sous la forme d'un tableau multidimensionnel ou FALSE en cas d'erreur.

Exemples

Exemple #1 Affiche la liste des attributs d'une entrée

<?php
// $ds est une ressource de connexion valide

// $sr est une recherche valide, issue d'une opération
// précédente

$entry ldap_first_entry($ds$sr);

$attrs ldap_get_attributes($ds$entry);

echo 
$attrs["count"] . " attributs dans cette entrée :<p>";

for (
$i=0$i $attrs["count"]; $i++) {
    echo 
$attrs[$i] . "<br />";
}
?>

Voir aussi



ldap_get_dn

(PHP 4, PHP 5)

ldap_get_dnLit le DN d'une entrée

Description

string ldap_get_dn ( resource $link_identifier , resource $result_entry_identifier )

Lit le DN d'une entrée d'un résultat.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne le DN de l'entrée du résultat, ou FALSE si une erreur survient.



ldap_get_entries

(PHP 4, PHP 5)

ldap_get_entriesLit toutes les entrées du résultat

Description

array ldap_get_entries ( resource $link_identifier , resource $result_identifier )

Lit toutes les entrées du résultat fourni, ainsi que les attributs et les valeurs multiples.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Valeurs de retour

Retourne toutes les entrées du résultat sous la forme d'un tableau multidimensionnel, ou FALSE en cas d'erreur.

La structure du tableau est la suivante. L'index d'attribut est converti en minuscules (les attributs sont sensibles à la casse pour les serveurs de dossiers, mais ne le sont pas lorsqu'ils sont utilisés comme index de tableaux).

return_value["count"] = nombre d'entrées dans le résultat
return_value[0] : se réfère aux détails de la première entrée

return_value[i]["dn"] =  DN de la n-ième entrée du résultat

return_value[i]["count"] = nombre d'attributs de la n-ième entrée
return_value[i][j] = Nom du j-ième attribut de la i-ème entrée du résultat

return_value[i]["attribute"]["count"] = nombre de valeur des attributs de la i-ième entrée
return_value[i]["attribute"][j] = j-ième valeur de la n-ième entrée

Voir aussi



ldap_get_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_get_optionLit/écrit la valeur courante d'une option

Description

bool ldap_get_option ( resource $link_identifier , int $option , mixed &$retval )

Définit la valeur retval à l'option spécifié.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option Type
LDAP_OPT_DEREF entier
LDAP_OPT_SIZELIMIT entier
LDAP_OPT_TIMELIMIT entier
LDAP_OPT_NETWORK_TIMEOUT entier
LDAP_OPT_PROTOCOL_VERSION entier
LDAP_OPT_ERROR_NUMBER entier
LDAP_OPT_REFERRALS booléen
LDAP_OPT_RESTART booléen
LDAP_OPT_HOST_NAME chaîne de caractères
LDAP_OPT_ERROR_STRING chaîne de caractères
LDAP_OPT_MATCHED_DN chaîne de caractères
LDAP_OPT_SERVER_CONTROLS tableau
LDAP_OPT_CLIENT_CONTROLS tableau

retval

Valeur à définir pour l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Vérification de la version du protocole

<?php
// $ds doit être une ressource de connexion valide
if (ldap_get_option($dsLDAP_OPT_PROTOCOL_VERSION$version)) {
    echo 
"Nous utilisons le protocole version $version\n";
} else {
    echo 
"Impossible de déterminer la version du protocole.\n";
}
?>

Notes

Note:

Cette fonction n'est disponible qu'avec OpenLDAP 2.x.x OU Netscape Directory SDK x.x, et a été ajoutée en PHP 4.0.4.

Voir aussi



ldap_get_values_len

(PHP 4, PHP 5)

ldap_get_values_lenLit toutes les valeurs binaires d'une entrée

Description

array ldap_get_values_len ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Lit toutes les valeurs binaires d'une entrée d'un résultat.

Cette fonction s'utilise exactement comme la fonction ldap_get_values(), hormis le fait qu'elle gère les données binaires, et non les chaînes de caractères.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

attribute

Valeurs de retour

Retourne un tableau de valeurs pour l'attribut en cas de succès, et FALSE en cas d'erreur. Les valeurs sont accessibles individuellement, avec les index numériques du tableau. L'indexation commence à 0. Le nombre de valeurs retournées est disponible à l'index 'count' du tableau retourné.

Voir aussi



ldap_get_values

(PHP 4, PHP 5)

ldap_get_valuesLit toutes les valeurs d'une entrée LDAP

Description

array ldap_get_values ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Lit toutes les valeurs de l'attribut d'une entrée dans un résultat.

L'utilisation de la fonction result_entry_identifier requiert un résultat de recherche, et doit donc être précédée d'une recherche LDAP, et de l'une des fonctions permettant d'accéder à une entrée.

Votre application doit contenir des informations permettant de lire certains attributs (comme "nom" ou "mail"), ou bien vous devrez utiliser la fonction ldap_get_attributes() pour savoir quels sont les attributs qui existent pour une entrée donnée.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

attribute

Valeurs de retour

Retourne un tableau de valeurs pour l'attribut, ou FALSE en cas d'erreur. Le nombre de valeurs retournées est disponible à l'index 'count' du tableau retourné. Les valeurs sont accessibles individuellement, avec les index numériques du tableau. L'indexation commence à 0.

LDAP permet plus d'une entrée par attribut, ce qui permet de stocker plusieurs adresses emails par personne, tout en n'utilisant qu'une étiquette "mail" :

    return_value["count"] = nombre de valeurs de l'attribut
    return_value[0] = première valeur de l'attribut
    return_value[i] = i-ième valeur de l'attribut
    

Exemples

Exemple #1 Liste toutes les valeurs de l'attribut "mail" d'une entrée

<?php
// $ds doit être une ressource de connexion valide

// $sr doit être une ressource de résultat valide, obtenue avec une des fonctions de
//     recherche LDAP.

// $entry est une entrée LDAP valide, obtenue avec une des fonctions
//        LDAP qui retourne une entrée

$values ldap_get_values($ds$entry,"mail");

echo 
$values["count"] . " adresses email pour cette entrée.<br />";

for (
$i=0$i $values["count"]; $i++) {
    echo 
$values[$i] . "<br />";
}
?>

Voir aussi



ldap_list

(PHP 4, PHP 5)

ldap_listRecherche dans un niveau

Description

resource ldap_list ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec l'option LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL signifie que la recherche ne peut retourner des entrées que dans le niveau qui est immédiatement sous le niveau base_dn (c'est l'équivalent de la commande ls, pour obtenir la liste des fichiers et dossiers du dossier courant).

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN du dossier.

filter

attributes

Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourné, quelque soit le type de l'attribut demandé.

L'utilisation de ce paramètre est plus efficace que l'action par défaut (qui est de retourner tous les attributs ainsi que leurs valeurs associées). L'utilisation de ce paramètre doit pour cette raison être considéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur mais vous pouvez l'utiliser pour être plus restrictif.

deref

Spécifie le nombre d'alias qui doivent être gérés pendant la recherche. Il peut être un parmi les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés.
  • LDAP_DEREF_SEARCHING - les alias doivent être déréférencés pendant la recherche mais pas lors de la localisation de l'objet de base de la recherche.
  • LDAP_DEREF_FINDING - les alias doivent être déréférencés lors de la localisation de l'objet de base mais pas durant la recherche.
  • LDAP_DEREF_ALWAYS - les alias doivent toujours être déréférencés.

Valeurs de retour

Retourne un identifiant de résultats pour la recherche, ou FALSE si une erreur survient.

Historique

Version Description
4.0.5 Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.
4.0.2 Les paramètres attrsonly, sizelimit, timelimit et deref ont été ajoutés.

Exemples

Exemple #1 Produit une liste de tous les services d'une société

<?php
// $ds doit être une ressource de connexion valide

$basedn "o=My Company, c=US";
$justthese = array("ou");

$sr ldap_list($ds$basedn"ou=*"$justthese);

$info ldap_get_entries($ds$sr);

for (
$i=0$i $info["count"]; $i++) {
    echo 
$info[$i]["ou"][0];
}
?>

Voir aussi



ldap_mod_add

(PHP 4, PHP 5)

ldap_mod_addAjoute un attribut à l'entrée courante

Description

bool ldap_mod_add ( resource $link_identifier , string $dn , array $entry )

Ajoute l'attribut entry à l'entrée dn. Elle effectue la modification au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_add().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



ldap_mod_del

(PHP 4, PHP 5)

ldap_mod_delEfface un attribut à l'entrée courante

Description

bool ldap_mod_del ( resource $link_identifier , string $dn , array $entry )

Efface l'attribut entry de l'entrée dn. Elle effectue la modification au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_delete().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ldap_mod_replace

(PHP 4, PHP 5)

ldap_mod_replaceRemplace un attribut dans l'entrée courante

Description

bool ldap_mod_replace ( resource $link_identifier , string $dn , array $entry )

Remplace l'attribut entry de l'entrée dn. Elle effectue le remplacement au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_modify().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



ldap_modify

(PHP 4, PHP 5)

ldap_modifyModifie une entrée LDAP

Description

bool ldap_modify ( resource $link_identifier , string $dn , array $entry )

Modifie l'entrée identifiée par dn, avec les valeurs fournies dans entry. La structure de entry est la même que détaillée dans ldap_add().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



ldap_next_attribute

(PHP 4, PHP 5)

ldap_next_attributeLit l'attribut suivant

Description

string ldap_next_attribute ( resource $link_identifier , resource $result_entry_identifier )

Lit l'attribut suivant d'une entrée. Le premier appel à ldap_next_attribute() est fait avec le result_entry_identifier retourné par ldap_first_attribute().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

ber_identifier

Le statut interne du pointeur est maintenu par ce paramètre.

Note:

Ce paramètre n'est plus disponible depuis qu'il est géré automatiquement par PHP. Pour une compatibilité ascendante, PHP ne lancera pas d'erreur s'il est renseigné.

Valeurs de retour

Retourne le prochain attribut de l'entrée en cas de succès, et FALSE si une erreur survient.

Historique

Version Description
5.2.4 Le paramètre ber_identifier a été supprimé. Il est maintenant géré automatiquement par PHP.

Voir aussi



ldap_next_entry

(PHP 4, PHP 5)

ldap_next_entryLit la prochaine entrée

Description

resource ldap_next_entry ( resource $link_identifier , resource $result_entry_identifier )

Lit la prochaine entrée du résultat. Des appels répétés à ldap_next_entry() retourneront toutes les entrées jusqu'à ce qu'il n'y en ait plus. Le premier appel doit être fait avec la fonction ldap_first_entry(). Le paramètre result_entry_identifier est celui qui a été retourné par la fonction ldap_first_entry().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne l'identifiant de la prochaine entrée du résultat, où la première entrée a été lue par la fonction ldap_first_entry(). S'il n'y a plus d'entrées dans le résultat, FALSE est retourné.

Voir aussi



ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_next_referenceLit la référence suivante

Description

resource ldap_next_reference ( resource $link , resource $entry )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_referenceExtrait les informations d'une référence d'entrée

Description

bool ldap_parse_reference ( resource $link , resource $entry , array &$referrals )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_resultExtrait des informations d'un résultat

Description

bool ldap_parse_result ( resource $link , resource $result , int &$errcode [, string &$matcheddn [, string &$errmsg [, array &$referrals ]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_read

(PHP 4, PHP 5)

ldap_readLit une entrée

Description

resource ldap_read ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec la configuration LDAP_SCOPE_BASE. C'est équivalent à lire une entrée dans un dossier.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN du dossier.

filter

Un filtre ne peut être vide. Si vous voulez lire toutes les informations d'une entrée, utilisez le filtre "objectClass=*". Si vous savez quels sont les types qui sont utilisés dans le serveur de dossiers, vous pouvez aussi utiliser un filtre approprié, comme "objectClass=inetOrgPerson".

attributes

Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourné, quelque soit le type de l'attribut demandé.

L'utilisation de ce paramètre est plus efficace que l'action par défaut (qui est de retourner tous les attributs ainsi que leurs valeurs associées). L'utilisation de ce paramètre doit pour cette raison être considéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur mais vous pouvez l'utiliser pour être plus restrictif.

deref

Spécifie le nombre d'alias qui doivent être gérés pendant la recherche. Il peut être un parmi les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés.
  • LDAP_DEREF_SEARCHING - les alias doivent être déréférencés pendant la recherche mais pas lors de la localisation de l'objet de base de la recherche.
  • LDAP_DEREF_FINDING - les alias doivent être déréférencés lors de la localisation de l'objet de base mais pas durant la recherche.
  • LDAP_DEREF_ALWAYS - les alias doivent toujours être déréférencés.

Valeurs de retour

Retourne un identifiant de résultat de recherche, ou FALSE si une erreur survient.

Historique

Version Description
4.0.5 Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.
4.0.2 Les paramètres attrsonly, sizelimit, timelimit et deref ont été ajoutés.



ldap_rename

(PHP 4 >= 4.0.5, PHP 5)

ldap_renameModifie le nom d'une entrée

Description

bool ldap_rename ( resource $link_identifier , string $dn , string $newrdn , string $newparent , bool $deleteoldrdn )

Modifie l'entrée dn, autant pour son nom que pour sa localisation.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

newrdn

Le nouveau RDN.

newparent

La nouvelle entrée parent/supérieure.

deleteoldrdn

Si ce paramètre vaut TRUE, l'ancienne valeur RDN est supprimée. Sinon elle est conservée comme une valeur non distinguée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

ldap_rename() ne fonctionne actuellement qu'avec LDAPv3. Vous pouvez être obligé d'utiliser ldap_set_option() avant de vous lier pour pouvoir utiliser LDAPv3. Cette fonction est uniquement disponible lorsque vous utilisez OpenLDAP 2.x.x OU Netscape Directory SDK x.x.

Voir aussi



ldap_sasl_bind

(PHP 5)

ldap_sasl_bindAuthentification au serveur LDAP en utilisant SASL

Description

bool ldap_sasl_bind ( resource $link [, string $binddn = NULL [, string $password = NULL [, string $sasl_mech = NULL [, string $sasl_realm = NULL [, string $sasl_authc_id = NULL [, string $sasl_authz_id = NULL [, string $props = NULL ]]]]]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Conditions d'utilisation
ldap_sasl_bind() nécessite le support SASL (sasl.h). Assurez-vous que l'option de configuration --with-ldap-sasl est utilisée lors de la compilation de PHP, sinon, cette fonction ne sera pas définie.

Historique

Version Description
5.3.3 Le support Windows a été ajouté.




ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_optionModifie la valeur d'une option LDAP

Description

bool ldap_set_option ( resource $link_identifier , int $option , mixed $newval )

Modifie la valeur de l'option option en remplaçant la valeur courante par newval.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option Type Disponible depuis
LDAP_OPT_DEREF entier  
LDAP_OPT_SIZELIMIT entier  
LDAP_OPT_TIMELIMIT entier  
LDAP_OPT_NETWORK_TIMEOUT entier PHP 5.3.0
LDAP_OPT_PROTOCOL_VERSION entier  
LDAP_OPT_ERROR_NUMBER entier  
LDAP_OPT_REFERRALS booléen  
LDAP_OPT_RESTART booléen  
LDAP_OPT_HOST_NAME chaîne de caractères  
LDAP_OPT_ERROR_STRING chaîne de caractères  
LDAP_OPT_MATCHED_DN chaîne de caractères  
LDAP_OPT_SERVER_CONTROLS tableau  
LDAP_OPT_CLIENT_CONTROLS tableau  

Les options LDAP_OPT_SERVER_CONTROLS et LDAP_OPT_CLIENT_CONTROLS requièrent une liste de contrôles, ce qui signifie que la valeur doit être un tableau de contrôles. Un contrôle est constitué d'un oid l'identifiant, une valeur optionnelle value, et un flag optionnel de "criticalité" (criticality). En PHP, un contrôle est défini sous la forme d'un tableau, donc les clés sont oid avec une chaîne comme valeur, et deux clés optionnelles. Ces clés sont value avec une chaîne comme valeur, et iscritical avec une valeur booléenne. Par défaut, iscritical vaut FALSE. Voir le fichier » draft-ietf-ldapext-ldap-c-api-xx.txt pour plus de détails. Reportez-vous au second exemple pour une illustration.

newval

La nouvelle valeur pour l'option option spécifiée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification de la version du protocole

<?php
// $ds doit être une ressource de connexion valide
if (ldap_set_option($dsLDAP_OPT_PROTOCOL_VERSION3)) {
    echo 
"Version LDAPv3";
} else {
    echo 
"Impossible de modifier la version du protocole à 3";
}
?>

Exemple #2 Modification des contrôles du serveur

<?php
// $ds doit être une ressource de connexion valide de
// contrôle sans valeur
$ctrl1 = array("oid" => "1.2.752.58.10.1""iscritical" => true);
// iscritical vaut par défaut FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10""value" => "magic");
// tente d'utiliser les deux contrôles
if (!ldap_set_option($dsLDAP_OPT_SERVER_CONTROLS, array($ctrl1$ctrl2))) {
    echo 
"Impossible de modifier les contrôles du serveur";
}
?>

Notes

Note:

Cette fonction n'est disponible que lorsque vous utilisez OpenLDAP 2.x.x ou Netscape Directory SDK x.x.

Voir aussi



ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5)

ldap_set_rebind_procConfigure une fonction de retour pour refaire des liaisons lors de recherche de référants

Description

bool ldap_set_rebind_proc ( resource $link , callback $callback )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_sort

(PHP 4 >= 4.2.0, PHP 5)

ldap_sortTrie les entrées d'un résultat LDAP

Description

bool ldap_sort ( resource $link , resource $result , string $sortfilter )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5)

ldap_start_tlsDémarre TLS

Description

bool ldap_start_tls ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5)

ldap_t61_to_8859Convertit les caractères t6 en caractères 8859

Description

string ldap_t61_to_8859 ( string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ldap_unbind

(PHP 4, PHP 5)

ldap_unbindDéconnecte d'un serveur LDAP

Description

bool ldap_unbind ( resource $link_identifier )

Déconnecte d'un serveur LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




Lotus Notes


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/notes.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Lotus Notes


notes_body

(PHP 4 >= 4.0.5)

notes_bodyOuvre le message msg_number dans la boîte aux lettres et le serveur précisés

Description

array notes_body ( string $server , string $mailbox , int $msg_number )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_copy_db

(PHP 4 >= 4.0.5)

notes_copy_dbCopie une base de données Lotus Notes

Description

bool notes_copy_db ( string $from_database_name , string $to_database_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_create_db

(PHP 4 >= 4.0.5)

notes_create_dbCrée une base Lotus Notes

Description

bool notes_create_db ( string $database_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_create_note

(PHP 4 >= 4.0.5)

notes_create_noteCrée une note à partir du formulaire form_name

Description

bool notes_create_note ( string $database_name , string $form_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_drop_db

(PHP 4 >= 4.0.5)

notes_drop_dbSupprime une base Lotus Notes

Description

bool notes_drop_db ( string $database_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_find_note

(PHP 4 >= 4.0.5)

notes_find_noteRetourne un identifiant de note, dans le serveur database_name

Description

int notes_find_note ( string $database_name , string $name [, string $type ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_header_info

(PHP 4 >= 4.0.5)

notes_header_infoOuvre le message msg_number dans la boîte aux lettres et le serveur spécifiés

Description

object notes_header_info ( string $server , string $mailbox , int $msg_number )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_list_msgs

(PHP 4 >= 4.0.5)

notes_list_msgsRetourne les notes rangées dans database_name

Description

bool notes_list_msgs ( string $db )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_mark_read

(PHP 4 >= 4.0.5)

notes_mark_readMarque la note note_id comme lue par l'utilisateur user_name

Description

bool notes_mark_read ( string $database_name , string $user_name , string $note_id )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_mark_unread

(PHP 4 >= 4.0.5)

notes_mark_unreadMarque la note note_id comme non lue pour l'utilisateur user_name

Description

bool notes_mark_unread ( string $database_name , string $user_name , string $note_id )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_nav_create

(PHP 4 >= 4.0.5)

notes_nav_createCrée un nom de navigateur dans database_name

Description

bool notes_nav_create ( string $database_name , string $name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.




notes_unread

(PHP 4 >= 4.0.5)

notes_unreadRetourne l'identifiant de la note non lue pour l'utilisateur user_name

Description

array notes_unread ( string $database_name , string $user_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



notes_version

(PHP 4 >= 4.0.5)

notes_versionLit la version de Lotus Notes

Description

float notes_version ( string $database_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire




Memcache


Introduction

Le module Memcache fournit une interface procédurale maniable ainsi qu'orientée objet à Memcache, un démon fortement efficace dans la gestion du cache, qui est principalement destiné à faire baisser la charge des bases de données dans les applications web dynamiques.

Le module Memcache fournit également un gestionnaire de session (memcache).

Plus d'informations concernant Memcache peuvent être consultées sur » http://www.memcached.org/.



Installation/Configuration

Sommaire


Pré-requis

Ce module utilise les fonctions de la bibliothèque » zlib pour supporter la compression des données à la volée. Zlib est donc requis pour installer ce module.

PHP 4.3.3 ou supérieur est requis pour utiliser l'extension Memcache.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/memcache.

Note:

Il est possible de désactiver le support du gestionnaire de sessions memcache. L'option 'pecl install' vous le permet (activé par défaut), cependant, lors de la compilation statique dans PHP, l'option de configuration --disable-memcache-session peut être utilisée.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration memcache
Nom Défaut Modifiable Historique
memcache.allow_failover "1" PHP_INI_ALL Disponible depuis memcache 2.0.2.
memcache.max_failover_attempts "20" PHP_INI_ALL Disponible depuis memcache 2.1.0.
memcache.chunk_size "8192" PHP_INI_ALL Disponible depuis memcache 2.0.2.
memcache.default_port "11211" PHP_INI_ALL Disponible depuis memcache 2.0.2.
memcache.hash_strategy "standard" PHP_INI_ALL Disponible depuis memcache 2.2.0.
memcache.hash_function "crc32" PHP_INI_ALL Disponible depuis memcache 2.2.0.
session.save_handler "files" PHP_INI_ALL Supporté depuis memcache 2.1.2
session.save_path "" PHP_INI_ALL Supporté depuis memcache 2.1.2
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

memcache.allow_failover booléen

Si l'on doit basculer sur d'autres serveurs en cas d'erreur.

memcache.max_failover_attempts entier

Définit combien de serveurs à essayer lorsque l'on fixe ou récupère des données. Utilisez seulement en conjonction avec memcache.allow_failover.

memcache.chunk_size entier

Les données doivent être transférées en morceaux de cette taille ; Configurer cette valeur à une petite valeur provoque plus d'écritures sur le réseau. Essayez d'augmenter cette valeur à 32768 si vous rencontrez des ralentissements inexplicables.

memcache.default_port chaîne de caractères

Le numéro du port TCP par défaut à utiliser lors de la connexion au serveur memcache si aucun autre port n'est spécifié.

memcache.hash_strategy string

Contrôle la stratégie à appliquer lors du mappage des clés sur les serveurs. Définir cette valeur à consistent pour activer la cohérence de hashage qui permet aux serveurs d'être ajoutés ou supprimés de la réserver sans pour autant avoir besoin d'effectuer un nouveau mappage des clés. Définir cette valeur à standard fera que l'ancienne stratégie sera utilisée.

memcache.hash_function string

Contrôle la fonction de hashage à appliquer lors du mappage des clés sur les serveurs, crc32 utilisera le CRC32 standard, tandis que fnv utilisera FNV-1a.

session.save_handler chaîne de caractères

Utilisez memcache comme gestionnaire de session en définissant cette valeur à memcache.

session.save_path chaîne de caractères

Définit les URL serveur, séparées par une virgule, à utiliser pour le stockage des sessions, par exemple : "tcp://host1:11211, tcp://host2:11211".

Chaque URL peut contenir des paramètres qui seront appliqués au serveur, de la même façon que pour la méthode Memcache::addServer(). Par exemple : "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"



Types de ressources

Il n'y a qu'une seule ressource utilisée par le module Memcache : c'est le lien identifiant représentant la connexion du serveur de cache.




Constantes pré-définies

Constantes MemCache
Nom Description
MEMCACHE_COMPRESSED (entier) Utilisée pour activer à la volée la compression des données avec les fonctions Memcache::set(), Memcache::add() et Memcache::replace().
MEMCACHE_HAVE_SESSION (integer) 1 si le gestionnaire de session Memcache est disponible, 0 sinon.


Exemples

Sommaire


Exemple #1 Exemple avec l'extension Memcache

Dans cet exemple, un objet est sauvegardé dans le cache et ensuite, affiché. Les objets ainsi que les autres types non-scalaires sont linéarisés avant d'être sauvegardé ; il est donc impossible d'y stocker des ressources (i.e. identifiant de connexion et autres) dans le cache.

<?php

$memcache 
= new Memcache;
$memcache->connect('localhost'11211) or die ("Connexion impossible");

$version $memcache->getVersion();
echo 
"Version du serveur : ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr 'test';
$tmp_object->int_attr 123;

$memcache->set('key'$tmp_objectfalse10) or die ("Echec de la sauvegarde des données sur le serveur");
echo 
"Les données ont été stockées dans le cache (les données expireront dans 10 secondes)<br/>\n";

$get_result $memcache->get('key');
echo 
"Données depuis le cache :<br/>\n";

var_dump($get_result);

?>

Exemple #2 Utilisation de memcache comme gestionnaire de session

<?php

$session_save_path 
"tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10,  ,tcp://$host:$port  ";
ini_set('session.save_handler''memcache');
ini_set('session.save_path'$session_save_path);

?>




La classe Memcache

Introduction

Représente une connection vers un pool de serveurs memcache.

Synopsis de la classe

Memcache {
bool add ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback [, int $timeoutms ]]]]]]]] )
bool close ( void )
bool connect ( string $host [, int $port [, int $timeout ]] )
int decrement ( string $key [, int $value = 1 ] )
bool delete ( string $key [, int $timeout = 0 ] )
bool flush ( void )
string get ( string $key [, int &$flags ] )
array getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
int getServerStatus ( string $host [, int $port = 11211 ] )
array getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
string getVersion ( void )
int increment ( string $key [, int $value = 1 ] )
bool pconnect ( string $host [, int $port [, int $timeout ]] )
bool replace ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool set ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool setCompressThreshold ( int $threshold [, float $min_savings ] )
bool setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callback $failure_callback ]]]]] )
}

Memcache::add

(PECL memcache >= 0.2.0)

Memcache::addAjoute un élément dans le server

Description

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::add() stocke la variable var avec la clé key seulement si cette clé n'existe pas déja dans le serveur. La fonction memcache_add() exécute la même action.

Liste de paramètres

key

La clé à associer à l'élément.

var

La variable à stocker. Les chaines et les entiers sont stockés tel quels, les autres types sont sérialisés.

flag

Utilisez MEMCACHE_COMPRESSED pour compresser l'élément (utilise zlib).

expire

Temps d'expiration de l'élément. Si égal à zéro, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de secondes partant du temps actuel, mais dans ce cas le nombre de secondes ne doit pas exceder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne FALSE si la clé existe déja. Pour le reste, le comportement de Memcache::add() est le même que Memcache::set().

Exemples

Exemple #1 Exemple avec Memcache::add()

<?php

$memcache_obj 
memcache_connect("localhost"11211);

/* procedural API */
memcache_add($memcache_obj'var_key''test variable'false30);

/* OO API */
$memcache_obj->add('var_key''test variable'false30);

?>

Voir aussi



Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServerAjoute un serveur memcache à la liste de connexion

Description

bool Memcache::addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback [, int $timeoutms ]]]]]]]] )

Memcache::addServer() ajoute un serveur à la liste de connexion. La connexion, qui a été ouverte avec la fonction Memcache::addServer(), sera automatiquement fermée à la fin de l'exécution du script ; vous pouvez également la fermer manuellement avec la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_add_server().

Lors de l'utilisation de cette méthode (contrairement aux méthodes Memcache::connect() et Memcache::pconnect()), la connexion au réseau n'est pas établie sans qu'elle ne soit nécessaire. De plus, il n'y a aucun inconvénient à ajouter beaucoup de serveurs à la liste, même s'ils ne seront pas tous utilisés.

Le basculement peut se produire à n'importe quel moment avec n'importe quelle méthode tant que les autres serveurs sont disponibles, la requête n'émettra pas d'erreur. N'importe quel interface de connexion ou niveau d'erreurs de serveur Memcache (à l'exception du manque de mémoire) peut lancer le basculement. Des erreurs normales de client comme l'ajout d'une clé existante ne lancera pas un basculement.

Note:

Cette fonction a été ajoutée à la version de Memcache 2.0.0.

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions. Ce paramètre peut également spécifier d'autres transporteurs comme unix:///path/to/memcached.sock pour utiliser les sockets Unix, et dans ce cas, port doit également être défini à 0.

port

Pointe au port où memcache écoute pour des connexions. Définissez ce paramètre à 0 lors de l'utilisation des sockets Unix.

persistent

Contrôle l'utilisation d'une connexion persistante. La valeur par défaut est TRUE.

weight

Nombre d'entrées à créer pour ce serveur qui en retour contrôle sa probabilité d'être choisi. La probabilité est relative au poids total de tous les serveurs.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

retry_interval

Contrôle combien de fois un serveur qui échoue sera tenté à nouveau, la valeur par défaut est de 15 secondes. Si ce paramètre vaut -1, aucune nouvelle tentative ne sera effectuée. Ni ce paramètre, ni le paramètre persistent n'ont d'effet lorsque cette extension est chargée dynamiquement via la fonction dl().

Chaque structure de connexion échouée a son propre dépassement de temps et avant que celui-ci expire, il sera sauté lors de la sélection du processus pour servir une requête. Une fois expiré, la connexion sera correctement reconnectée ou marquée comme échouée pour un autre intervalle de retry_interval secondes. L'effet typique est que chaque enfant de serveur Web essaiera la connexion chaque retry_interval secondes lorsqu'il sert une page.

status

Contrôle si le serveur doit être indiqué comme étant en ligne. Quand ce paramètre vaut FALSE et le paramètre retry_interval vaut -1, cela permet de conserver un serveur qui a échoué dans la liste et n'affectera pas l'algorithme de distribution des clés. Les demandes pour ce serveur échoueront immédiatement suivant la configuration du paramètre memcache.allow_failover. Par défaut, ce paramètre vaut TRUE, signifiant que le serveur doit être considéré comme étant en ligne.

failure_callback

Permet à l'utilisateur de spécifier une fonction de rappel permettant de contourner une erreur. La fonction de rappel est exécutée avant d'atteindre la limite de tentative. La fonction prend deux paramètres ; le nom de l'hôte et le port du serveur qui a échoué.

timeoutms

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::addServer()

<?php

/* API orientée objet */

$memcache = new Memcache;
$memcache->addServer('memcache_host'11211);
$memcache->addServer('memcache_host2'11211);

/* API procédurale */

$memcache_obj memcache_connect('memcache_host'11211);
memcache_add_server($memcache_obj'memcache_host2'11211);

?>

Voir aussi



Memcache::close

(PECL memcache >= 0.4.0)

Memcache::closeFerme la connexion avec le serveur Memcache

Description

bool Memcache::close ( void )

Memcache::close() ferme la connexion au serveur Memcache. Cette fonction ne ferme pas les connexions persistantes qui seront fermées uniquement lors du redémarrage du serveur web. Vous pouvez également utiliser la fonction memcache_close().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::close()

<?php

/* API procédurale */
$memcache_obj memcache_connect('memcache_host'11211);
/* 
faites quelque chose ici ..
*/
memcache_close($memcache_obj);

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host'11211);
/* 
faites quelque chose ici ..
*/
$memcache_obj->close();

?>

Voir aussi



Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connectOuvre une connexion avec le serveur Memcache

Description

bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )

Memcache::connect() établie une connexion avec le serveur de cache Memcache. La connexion, qui a été ouverte en utilisant la fonction Memcache::connect() sera automatiquement fermée à la fin de votre script. Vous pouvez néanmoins la refermer en utilisant la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_connect().

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions. Ce paramètre peut également spécifier d'autres transporteurs comme unix:///path/to/memcached.sock pour utiliser les sockets Unix, et, dans ce cas, port doit également être définit à 0.

port

Pointe au port où memcache écoute pour des connexions. Définissez ce paramètre à 0 lors de l'utilisation des sockets Unix.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::connect()

<?php

/* API procédurale */

$memcache_obj memcache_connect('memcache_host'11211);

/* API orientée objet */

$memcache = new Memcache;
$memcache->connect('memcache_host'11211);

?>

Voir aussi



Memcache::decrement

(PECL memcache >= 0.2.0)

Memcache::decrementDécrémente la valeur d'un élément

Description

int Memcache::decrement ( string $key [, int $value = 1 ] )

Memcache::decrement() décrémente la valeur de l'élément par value. De la même façon que la fonction memcache::increment(), la valeur courante de l'élément est tout d'abord convertie en numérique et seulement ensuite, on soustrait la valeur value.

Note:

La nouvelle valeur de l'élément ne peut être inférieure à zéro.

Note:

N'utilisez pas la fonction Memcache::decrement() avec les éléments stockés compressés. Dans ce cas, l'appel à la fonction Memcache::get() échouera.

Memcache::decrement() ne crée pas d'élément s'il n'existe pas. Vous pouvez également utiliser la fonction memcache_decrement().

Liste de paramètres

key

Clé de l'élément à décrémenter.

value

Décrémente l'élément par value.

Valeurs de retour

Retourne la valeur du nouvel élément en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::decrement()

<?php

/* API proécédurale */
$memcache_obj memcache_connect('memcache_host'11211);
/* décrémentation de l'élément par 2 */
$new_value memcache_decrement($memcache_obj'test_item'2);

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host'11211);
/* décrémentation de l'élément par 3 */
$new_value $memcache_obj->decrement('test_item'3);
?>

Voir aussi



Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::deleteEfface un élément du serveur de cache

Description

bool Memcache::delete ( string $key [, int $timeout = 0 ] )

Memcache::delete() efface l'élément identifié par la clé key.

Liste de paramètres

key

La clé associée à l'élément à supprimer.

timeout

Ce paramètre obsolète n'est pas supporté, et vaut par défaut 0 seconde. N'utilisez pas ce paramètre.

Historique

Version Description
Inconnu Il n'est pas recommandé d'utiliser le paramètre timeout. Son comportement diffère suivants les versions de memcached, mais le fait de lui passer la valeur 0 est sans danger. Les autres valeurs pour cette fonctionnalité obsolète peut conduire à une erreur de fonctionnement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::delete()

<?php

/* API procédurale */
$memcache_obj memcache_connect('memcache_host'11211);

/* l'élément sera effacé par la serveur de cache */
memcache_delete($memcache_obj'key_to_delete');

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host'11211);

$memcache_obj->delete('key_to_delete');

?>

Voir aussi



Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flushEfface tous les éléments existant sur le serveur de cache

Description

bool Memcache::flush ( void )

Memcache::flush() invalide immédiatement tous les éléments existant sur le serveur de cache. Memcache::flush() ne libère aucune ressource actuellement, il marque uniquement tous les éléments comme ayant expirés, donc la mémoire occupée sera réutilisée avec de nouveaux éléments. Vous pouvez également utiliser la fonction memcache_flush().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::flush()

<?php

/* API procédurale */
$memcache_obj memcache_connect('memcache_host'11211);

memcache_flush($memcache_obj);

/* API orientée objet */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host'11211);

$memcache_obj->flush();

?>



Memcache::get

(PECL memcache >= 0.2.0)

Memcache::getRécupère un élément du serveur de cache

Description

string Memcache::get ( string $key [, int &$flags ] )
array Memcache::get ( array $keys [, array &$flags ] )

Memcache::get() retourne les données précédemment stockées dans l'élément identifié par la clé key s'il existe sur le serveur au moment de l'appel.

Vous pouvez passer un tableau de clés à la fonction Memcache::get() pour obtenir un tableau de valeurs. Le tableau résultant contiendra seulement les paires de clé-valeur trouvées.

Liste de paramètres

key

La clé ou le tableau de clés à récupérer.

flags

Si ce paramètre est présent, il représentera les drapeaux des valeurs à récupérer. Ces drapeaux sont les mêmes que ceux donnés en exemple de la fonction Memcache::set(). L'octet le plus faible de la valeur est réservé à un usage interne de pecl/memcache (e.g. pour indiquer le statut de compression et de linéarisation).

Valeurs de retour

Retourne une chaîne de caractères associée avec le paramètre key ou FALSE en cas d'échec ou si key n'a pas été trouvé.

Exemples

Exemple #1 Exemple avec Memcache::get()

<?php

/* API procédurale */
$memcache_obj memcache_connect('memcache_host'11211);
$var memcache_get($memcache_obj'some_key');

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host'11211);
$var $memcache_obj->get('some_key');

/* 
Vous pouvez également utiliser un tableau de clés en tant que paramètre.
Si un tel élément n'est pas trouvé sur le serveur, le tableau
résultat ne comprendra simplement pas une telle clé.
*/

/* API procédurale */
$memcache_obj memcache_connect('memcache_host'11211);
$var memcache_get($memcache_obj, Array('some_key''another_key'));

/* API Orientée Objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host'11211);
$var $memcache_obj->get(Array('some_key''second_key'));

?>



Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStatsRécupère des statistiques de tous les serveurs dans la liste

Description

array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

Memcache::getExtendedStats() retourne un tableau associatif à deux dimensions avec des statistiques de serveurs. Les clés des tableaux correspondent à hôte:port des serveurs et les valeurs contiennent des statistiques du serveur individuel. Un serveur en échec aura ses entrées correspondantes fixées à FALSE. Vous pouvez également utiliser la fonction memcache_get_extended_stats().

Note:

Cette fonction a été ajoutée à la version de Memcache 2.0.0.

Liste de paramètres

type

Le type de statistiques à récupérer. Les valeurs valides sont : "reset", "malloc", "maps", "cachedump", "slabs", "items", "sizes". Suivant les spécifications du protocole memcached, ces arguments optionnels sont susceptibles d'être modifiés suivant les besoins des développeurs de memcache.

slabid

Utilisé avec le paramètre type définit à cachedump pour identifier le slab à récupérer. La commande cachedump met à mal le serveur et ne doit être utilisée que dans un but de déboguage.

limit

Utilisé avec le paramètre type définit à cachedump pour limiter le nombre d'entrées à récupérer.

Avertissement

Le type de statistique cachedump a été supprimé du processus memcached pour des contraintes de sécurité.

Valeurs de retour

Retourne un tableau associatif à avec des statistiques des serveurs ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec Memcache::getExtendedStats()

<?php
    $memcache_obj 
= new Memcache;
    
$memcache_obj->addServer('memcache_host'11211);
    
$memcache_obj->addServer('failed_host'11211);
    
    
$stats $memcache_obj->getExtendedStats();
    
print_r($stats);
?>

L'exemple ci-dessus va afficher :

Array
(
    [memcache_host:11211] => Array
        (
            [pid] => 3756
            [uptime] => 603011
            [time] => 1133810435
            [version] => 1.1.12
            [rusage_user] => 0.451931
            [rusage_system] => 0.634903
            [curr_items] => 2483
            [total_items] => 3079
            [bytes] => 2718136
            [curr_connections] => 2
            [total_connections] => 807
            [connection_structures] => 13
            [cmd_get] => 9748
            [cmd_set] => 3096
            [get_hits] => 5976
            [get_misses] => 3772
            [bytes_read] => 3448968
            [bytes_written] => 2318883
            [limit_maxbytes] => 33554432
        )

    [failed_host:11211] => false
)

Voir aussi



Memcache::getServerStatus

(PECL memcache >= 2.1.0)

Memcache::getServerStatusRetourne le statut du serveur

Description

int Memcache::getServerStatus ( string $host [, int $port = 11211 ] )

Memcache::getServerStatus() retourne le statut en ligne/hors ligne du serveur. Vous pouvez également utiliser la fonction memcache_get_server_status().

Note:

Cette fonction a été ajoutée en Memcache version 2.1.0.

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions.

port

Pointe au port où memcache écoute pour des connexions.

Valeurs de retour

Retourne le statut du serveur. 0 si le serveur échoue, une valeur différente de zéro sinon.

Exemples

Exemple #1 Exemple avec Memcache::getServerStatus()

<?php

/* API orientée objet */
$memcache = new Memcache;
$memcache->addServer('memcache_host'11211);
echo 
$memcache->getServerStatus('memcache_host'11211);

/* API procédurale */
$memcache memcache_connect('memcache_host'11211);
echo 
memcache_get_server_status($memcache'memcache_host'11211);

?>

Voir aussi



Memcache::getStats

(PECL memcache >= 0.2.0)

Memcache::getStatsLit les statistiques du serveur

Description

array Memcache::getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

Memcache::getStats() retourne un tableau associatif avec les statistiques du serveur. Les index du tableau correspondent aux paramètres de statistiques, et la valeur associée est la valeur de ces statistiques. Vous pouvez aussi utiliser la fonction memcache_get_stats().

Liste de paramètres

type

Le type de statistiques à récupérer. Les valeurs valides sont {"reset", "malloc", "maps", "cachedump", "slabs", "items", "sizes". Suivant les spécifications du protocole memcached, ces arguments optionnels sont susceptibles d'être modifiés suivant les besoins des développeurs de memcache.

slabid

Utilisé avec le paramètre type définit à cachedump pour identifier le slab à récupérer. La commande cachedump met à mal le serveur et ne doit être utilisée que dans un but de déboguage.

limit

Utilisé avec le paramètre type définit à cachedump pour limiter le nombre d'entrées à récupérer.

Valeurs de retour

Retourne un tableau associatif des statistiques d'un serveur ou FALSE si une erreur survient.

Voir aussi



Memcache::getVersion

(PECL memcache >= 0.2.0)

Memcache::getVersionRetourne le numéro de version du serveur

Description

string Memcache::getVersion ( void )

Memcache::getVersion() retourne une chaîne avec le numéro de version du serveur. Vous pouvez aussi utiliser la fonction memcache_get_version().

Valeurs de retour

Retourne une chaîne de caractères du numéro de version de serveur ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::getVersion()

<?php

/* API orientée objet */
$memcache = new Memcache;
$memcache->connect('memcache_host'11211);
echo 
$memcache->getVersion();

/* API procédurale */
$memcache memcache_connect('memcache_host'11211);
echo 
memcache_get_version($memcache);

?>

Voir aussi



Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::incrementIncrément la valeur d'un élément

Description

int Memcache::increment ( string $key [, int $value = 1 ] )

Memcache::increment() incrémente la valeur d'un élément identifié par la clé key par la valeur value. Si l'élément identifié par la clé key n'est pas de type numérique et ne peut être converti en nombre, la valeur de cette élément sera défini à value. Memcache::increment() ne crée pas un élément s'il n'existe pas.

Note:

N'utilisez pas memcache::increment() avec les éléments stockés compressés. Dans ce cas, l'appel à la fonction Memcache::get() échouera.

Vous pouvez également utiliser la fonction memcache_increment().

Liste de paramètres

key

Clé de l'élément à incrémenter.

value

Incrémente l'élément par value.

Valeurs de retour

Retourne la valeur du nouvel élément en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::increment()

<?php

/* API procédurale */
$memcache_obj memcache_connect('memcache_host'11211);
/* incrémentation du compteur de 2 */
$current_value memcache_increment($memcache_obj'counter'2);

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host'11211);
/* incrémentation du compteur de 3 */
$current_value $memcache_obj->increment('counter'3);

?>

Voir aussi



Memcache::pconnect

(PECL memcache >= 0.4.0)

Memcache::pconnectOuvre un connexion persistante à un serveur de cache

Description

bool Memcache::pconnect ( string $host [, int $port [, int $timeout ]] )

Memcache::pconnect() est similaire à la fonction Memcache::connect() avec la différence que la connexion sera persistante. Ce type de connexion n'est pas fermé à la fin du script et par la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_pconnect().

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions. Ce paramètre peut également spécifier d'autres transporteurs comme unix:///path/to/memcached.sock pour utiliser les sockets Unix, et, dans ce cas, port doit également être défini à 0.

port

Pointe au port où memcache écoute pour des connexions. Définissez ce paramètre à 0 lors de l'utilisation des sockets Unix.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::pconnect()

<?php

/* API procédurale */
$memcache_obj memcache_pconnect('memcache_host'11211);

/* API orientée objet */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host'11211);

?>

Voir aussi



Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replaceRemplace une valeur d'un élément existant

Description

bool Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::replace() est utilisé pour remplacer la valeur d'un élément identifié par la clé key. Dans le cas où l'élément identifié par la clé key n'existe pas, la fonction Memcache::replace() retournera FALSE. Pour le reste, la fonction Memcache::replace() fonctionne de la même façon que la fonction Memcache::set(). Vous pouvez également utiliser la fonction memcache_replace().

Liste de paramètres

key

La clé qui sera associée avec l'élément.

var

La variable à enregistrer. Les chaînes de caractères et les entiers sont enregistrer comme tels, les autres types sont enregistrés de manière sérialisée.

flag

Utilisez MEMCACHE_COMPRESSED pour enregistrer l'élément compressé (utilise zlib).

expire

Temps d'expiration pour l'élément. S'il égal 0, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de seconde en commençant par la date d'aujourd'hui, mais dans le dernier cas, le nombre de secondes ne doit pas excéder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::replace()

<?php

$memcache_obj 
memcache_connect('memcache_host'11211);

/* API procédurale */
memcache_replace($memcache_obj"test_key""some variable"false30);

/* API orientée objet */
$memcache_obj->replace("test_key""some variable"false30);

?>

Voir aussi



Memcache::set

(PECL memcache >= 0.2.0)

Memcache::setStocke des données dans le serveur de cache

Description

bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::set() stocke l'élément var avec la clé key sur le serveur de cache. Le paramètre expire représente le délai en secondes d'expiration de l'élément. S'il vaut 0, l'élément n'expirera jamais (mais le serveur de cache ne garantie pas que cet élément sera toujours stocké, il peut être effacé du cache pour faire de la place à d'autres éléments). Vous pouvez utiliser la constante MEMCACHE_COMPRESSED comme valeur du paramètre flag si vous voulez utiliser la compression à la volée (utilisation de la bibliothèque zlib).

Note:

Souvenez-vous que les ressources (i.e. identifiant de fichiers ou de connexion) ne peuvent pas être stockées dans le cache, car elles ne peuvent pas être représentées linéairement.

Vous pouvez également utiliser la fonction memcache_set().

Liste de paramètres

key

La clé qui sera associée avec l'élément.

var

La variable à enregistrer. Les chaînes de caractères et les entiers sont enregistrés comme tels, les autres types sont enregistrés de manière sérialisée.

flag

Utilisez MEMCACHE_COMPRESSED pour enregistrer l'élément compressé (utilise zlib).

expire

Temps d'expiration pour l'élément. S'il égal 0, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de seconde en commençant par la date d'aujourd'hui, mais dans le dernier cas, le nombre de secondes ne doit pas excéder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::set()

<?php
/* API procédurale */

/* connexion au serveur de cache */
$memcache_obj memcache_connect('memcache_host'11211);

/*
définie la valeur de l'élément identifié par la clé 'var_key' ;
utilisation de la valeur 0 pour le flag ;
la compression n'est pas utilisée ;
le délai d'expiration vaut 30 secondes
*/
memcache_set($memcache_obj'var_key''quelques variables'030);

echo 
memcache_get($memcache_obj'var_key');

?>

Exemple #2 Exemple avec Memcache::set()

<?php
/* API orientée objet */

$memcache_obj = new Memcache;

/* connexion au serveur de cache */
$memcache_obj->connect('memcache_host'11211);

/*
définie la valeur de l'élément identifié par la clé 'var_key' ;
utilisation de la compression à la volée ;
le délai d'expiration vaut 50 secondes
*/
$memcache_obj->set('var_key''quelques grosses variables'MEMCACHE_COMPRESSED50);

echo 
$memcache_obj->get('var_key');

?>

Voir aussi



Memcache::setCompressThreshold

(PECL memcache >= 2.0.0)

Memcache::setCompressThresholdActive la compression automatique des valeurs larges

Description

bool Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )

Memcache::setCompressThreshold() active la compression automatique des valeurs larges. Vous pouvez également utiliser la fonction memcache_set_compress_threshold().

Note:

Cette fonction a été ajoutée à la version de Memcache 2.0.0.

Liste de paramètres

threshold

Contrôle la taille de la valeur minimale avant d'essayer de compresser automatiquement.

min_saving

Spécifie le nombre minimum de sauvegarde pour enregistrer les valeurs compressées. La valeur fournie doit être comprise entre 0 et 1. La valeur par défaut est 0.2, ce qui donne un minimum de 20% de sauvegarde de compression.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::setCompressThreshold()

<?php

/* API orientée objet */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host'11211);
$memcache_obj->setCompressThreshold(200000.2);

/* API procédurale */

$memcache_obj memcache_connect('memcache_host'11211);
memcache_set_compress_threshold($memcache_obj200000.2);

?>



Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParamsModifit les paramètres et les statuts du serveur pendant l'exécution

Description

bool Memcache::setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callback $failure_callback ]]]]] )

Memcache::setServerParams() modifie les paramètres du serveur durant l'exécution. Vous pouvez également utiliser la fonction memcache_set_server_params().

Note:

Cette fonction a été ajoutée en Memcache version 2.1.0.

Liste de paramètres

host

Hôte où memcache écoute pour des connexions.

port

Port où memcache écoute pour des connexions.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

retry_interval

Contrôle combien de fois la connexion à un serveur qui échoue sera essayée : la valeur par défaut est de 15 secondes. Si ce paramètre vaut -1, aucune nouvelle tentative ne sera effectuée. Ni ce paramètre, ni le paramètre persistent n'ont d'effet lorsque cette extension est chargée dynamiquement via la fonction dl().

status

Contrôle si le serveur doit être indiqué comme étant en ligne. Quand ce paramètre vaut FALSE et le paramètre retry_interval vaut -1, cela permet de conserver un serveur qui a échoué dans la liste et n'affectera pas l'algorithme de distribution des clés. Les demandes pour ce serveur échoueront immédiatement suivant la configuration du paramètre memcache.allow_failover. Par défaut, ce paramètre vaut TRUE, signifiant que le serveur doit être considéré comme étant en ligne.

failure_callback

Permet à l'utilisateur de spécifier une fonction de rappel permettant de contourner une erreur. Le fonction est exécutée avant d'atteindre la limite de tentative. La fonction prend deux paramètres ; le nom de l'hôte et le port du serveur qui a échoué.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::setServerParams()

<?php

function _callback_memcache_failure($host$port) {
    print 
"memcache '$host:$port' failed";
}

/* API orientée objet */

$memcache = new Memcache;

// Ajoute le serveur en mode hors ligne
$memcache->addServer('memcache_host'11211false11, -1false);

// Replace le serveur en ligne
$memcache->setServerParams('memcache_host'11211115true'_callback_memcache_failure');

/* API procédurale */

$memcache_obj memcache_connect('memcache_host'11211);
memcache_set_server_params($memcache_obj'memcache_host'11211115true'_callback_memcache_failure');

?>

Voir aussi


Sommaire



Fonctions Memcache


memcache_debug

(PECL memcache >= 0.2.0)

memcache_debugActive ou non l'affichage des informations de déboguage

Description

bool memcache_debug ( bool $on_off )

memcache_debug() active l'affichage des informations de déboguage si le paramètre on_off vaut TRUE et le désactive s'il vaut FALSE.

Note:

memcache_debug() est accessible uniquement si PHP a été compilé avec l'option --enable-debug et retournera toujours TRUE dans ce cas. Sinon, cette fonction n'aura aucun effet et retournera toujours FALSE.

Liste de paramètres

on_off

Active l'affichage de débogue si égal à TRUE. Désactive l'affichage de débogue si égal à FALSE.

Valeurs de retour

Retourne TRUE si PHP était compilé avec l'option --enable-debug, autrement retourne FALSE.


Sommaire

  • memcache_debug — Active ou non l'affichage des informations de déboguage



Memcached


Introduction

» memcached est un système à haute performance, distribué et en mémoire, de cache d'objet, générique par nature, mais principalement destiné à l'utilisation avec des sites Web dynamiques, pour soulager les bases de données.

Cette extension utilise la bibliothèque libmemcached pour assurer les communications avec les serveurs memcached. Elle fournit aussi un gestionnaire de sessions, appelé memcached.

Des informations sur libmemcached sont disponibles à » http://libmemcached.org/libMemcached.html.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requiert la bibliothèque cliente » libmemcached.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/memcached

Si libmemcached est installé dans un dossier non-standard, utilisez l'option --with-libmemcached-dir=DIR , où DIR est le préfixe d'installation libmemcached. Ce dossier doit contenir le fichier include/libmemcached/memcached.h.

Zlib est nécessaire pour le support de la compression. Pour spécifier un dossier d'installation non-standard de Zlib, utilisez la directive --with-zlib-dir=DIR , où DIR est le préfixe d'installation.

Le support du gestionnaire de sessions est activé par défaut. Pour le désactiver, utilisez --disable-memcached-session .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Memcached::OPT_COMPRESSION

Active ou désactive la compression du contenu. Si elle est activée, les éléments qui dépassent une taille (actuellement 100 octets), seront compressés durant le stockage, et décompressés au déstockage, de manière transparente.

Type : boolean, par défaut : TRUE.

Memcached::OPT_SERIALIZER

Spécifie la fonction de linéarisation à utiliser pour les valeurs non scalaires. Les fonctions valides sont Memcached::SERIALIZER_PHP et Memcached::SERIALIZER_IGBINARY. Le dernier n'est supporté que si memcached est configuré avec l'option --enable-memcached-igbinary et que l'extension igbinary est chargée.

Type : integer, par défaut : Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

La fonction de linéarisation par défaut de PHP.

Memcached::SERIALIZER_IGBINARY

La fonction » igbinary. Au lieu d'une représentation textuelle, cette fonction stocke les structures PHP dans un format compact et binaire, avec un gain de temps et d'espace.

Memcached::SERIALIZER_JSON

La fonction de linéarisation JSON. Requière PHP 5.2.10 +.

Memcached::OPT_PREFIX_KEY

Cette option peut être utilisée pour créer un "domaine" pour vos clés. La valeur spécifiée ici sera préfixée à chaque clé. Elle ne peut pas être plus longue que 128 caractères, et réduira d'autant la taille maximale de clé disponible. Le préfixe est appliqué uniquement aux clés d'élément, et non pas aux clés de serveur.

Type : string, par défaut : "".

Memcached::OPT_HASH

Spécifie l'algorithme de hashage utilisé pour les clé. Les valeurs valides sont fournies avec les constantes Memcached::HASH_*. Chaque algorithme de hashage a ses avantages et inconvénients. Utilisez celui qui est donné par défaut, si vous ne comprenez pas, ou que peu vous importe.

Type : integer, par défaut : Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

L'algorithme par défaut (Jenkins one-at-a-time) de hashage.

Memcached::HASH_MD5

L'algorithme de hashage par MD5

Memcached::HASH_CRC

L'algorithme de hashage par CRC

Memcached::HASH_FNV1_64

L'algorithme de hashage par FNV1_64

Memcached::HASH_FNV1A_64

L'algorithme de hashage par FNV1_64A

Memcached::HASH_FNV1_32

L'algorithme de hashage par FNV1_32

Memcached::HASH_FNV1A_32

L'algorithme de hashage par FNV1_32A

Memcached::HASH_HSIEH

L'algorithme de hashage par Hsieh

Memcached::HASH_MURMUR

L'algorithme de hashage par Murmur

Memcached::OPT_DISTRIBUTION

Spécifie la méthode de distribution des clés sur les serveurs. Actuellement, cette option supporte les modulo et le hashage cohérent. Le hashage cohérent fournit la meilleure distribution, et permet aux serveurs d'être ajouté au groupe avec un minimum de pertes de cache.

Type : integer, par défaut : Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

L'algorithme de distribution par modulo

Memcached::DISTRIBUTION_CONSISTENT

L'algorithme de distribution par hashage cohérent

Memcached::OPT_LIBKETAMA_COMPATIBLE

Active ou non la compatibilité avec le comportement type libketama. Quand cette option est activée, l'algorithme de hashage est MD5, et la distribution est le hashage cohérent. Ceci est pratique car d'autres client qui utilisent libketama (Python, Ruby, etc.) avec la même configuration serveur seront capables d'utiliser les mêmes clés, de manière transparente.

Note:

Cette option est hautement recommandée, si vous voulez utiliser le hashage cohérente, et il est probable qu'elle soit activée par défaut dans de futures versions.

Type : boolean, par défaut : FALSE.

Memcached::OPT_BUFFER_WRITES

Active ou non la bufferisation d'entrée / sortie. La bufferisation fait que les commandes de stockage mettent en buffer, au lieu de faire des envois. Toute action qui lit des données fait que le buffer d'écriture est envoyé au serveur distant. La fermeture de la connexion ou son arrêt vont aussi forcer l'envoi des données du buffer.

Type : boolean, par défaut : FALSE.

Memcached::OPT_BINARY_PROTOCOL

Activez cette option pour utiliser le protocole binaire. Notez que vous ne pouvez pas changer cette option pour une connexion déjà ouverte.

Type : boolean, par défaut : FALSE.

Memcached::OPT_NO_BLOCK

Active ou non les transferts asynchrones. Ceci est le mode de transfert le plus rapide, pour les fonctions de stockage.

Type : boolean, par défaut : FALSE.

Memcached::OPT_TCP_NODELAY

Active ou non les connexions sans délai des sockets (cela peut être un gain de performances dans certains environnements.

Type : boolean, par défaut : FALSE.

Memcached::OPT_SOCKET_SEND_SIZE

La taille maximale du buffer d'envoi par socket, en octets.

Type : integer, par défaut : varie par plate-forme et configuration du noyau.

Memcached::OPT_SOCKET_RECV_SIZE

La taille maximale du buffer de réception par socket, en octets.

Type : integer, par défaut : varie par plate-forme et configuration du noyau.

Memcached::OPT_CONNECT_TIMEOUT

En mode non-bloquant, cette option configure le délai d'expiration durant la connexion de la socket, en millisecondes.

Type : integer, par défaut : 1000.

Memcached::OPT_RETRY_TIMEOUT

La durée, en secondes, d'attente avant de tenter à nouveau une connexion qui a échouée.

Type : integer, par défaut : 0.

Memcached::OPT_SEND_TIMEOUT

Délai d'expiration d'envoi pour la socket, en microsecondes. Dans les cas où vous utilisez une socket non bloquante, cela vous permettra d'avoir des délais d'expiration en envoi de données, malgré tout.

Type : integer, par défaut : 0.

Memcached::OPT_RECV_TIMEOUT

Délai d'expiration de réception pour la socket, en microsecondes. Dans les cas où vous utilisez une socket non bloquante, cela vous permettra d'avoir des délais d'expiration en réception de données, malgré tout.

Type : integer, par défaut : 0.

Memcached::OPT_POLL_TIMEOUT

Délai d'expiration pour le polling de connexions, en millisecondes.

Type : integer, par défaut : 1000.

Memcached::OPT_CACHE_LOOKUPS

Active ou non le cache de DNS.

Type : boolean, par défaut : FALSE.

Memcached::OPT_SERVER_FAILURE_LIMIT

Spécifie la limite du nombre d'échec de connexions. Le serveur sera alors retiré de la liste après autant d'échec de connexions en succession.

Type : integer, par défaut : 0.

Memcached::HAVE_IGBINARY

Indique si le support de la fonction de linéarisation igbinary est activé.

Type : boolean.

Memcached::HAVE_JSON

Indique si la fonction de linéarisation JSON est disponible.

Type : boolean.

Memcached::GET_PRESERVE_ORDER

Une option pour Memcached::getMulti() et Memcached::getMultiByKey() afin de s'assurer que les clés sont retournées dans le même ordre que leur ordre de requête. Les clés inexistantes prennent alors la valeur NULL

Memcached::RES_SUCCESS

L'opération a réussi.

Memcached::RES_FAILURE

L'opération a échoué, d'une manière ou d'une autre.

Memcached::RES_HOST_LOOKUP_FAILURE

La recherche DNS a échoué.

Memcached::RES_UNKNOWN_READ_FAILURE

Echec de lecture sur le réseau.

Memcached::RES_PROTOCOL_ERROR

Mauvaise commande dans le protocole memcached.

Memcached::RES_CLIENT_ERROR

Erreur du coté du client.

Memcached::RES_SERVER_ERROR

Erreur du coté du serveur.

Memcached::RES_WRITE_FAILURE

Echec de l'écriture sur le réseau.

Memcached::RES_DATA_EXISTS

Echec de la comparaison et échange : l'élément que vous essayez de stocker a été modifié depuis votre dernière lecture.

Memcached::RES_NOTSTORED

L'élément n'a pas été stocké, mais pas à cause d'une erreur. Ceci est normal, et signifie qu'une condition pour un ajout "add" ou un remplacement "replace" n'a pas été satisfait, ou qu'un élément a été mise dans une queue d'effacement.

Memcached::RES_NOTFOUND

L'élément avec cette clé n'a pas été trouvé (avec une opération "get" ou "cas").

Memcached::RES_PARTIAL_READ

Erreur de lecture partielle sur le réseau.

Memcached::RES_SOME_ERRORS

Des erreurs sont survenir durant une lecture multiple.

Memcached::RES_NO_SERVERS

Liste de serveurs vide.

Memcached::RES_END

Fin de jeu de résultats.

Memcached::RES_ERRNO

Erreur système.

Memcached::RES_BUFFERED

L'opération a été bufferisée.

Memcached::RES_TIMEOUT

Le délai d'exécution de l'opération a expiré.

Memcached::RES_BAD_KEY_PROVIDED

Mauvaise clé.

Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Impossible de créer une socket.

Memcached::RES_PAYLOAD_FAILURE

Échec de traitement : impossible de compresser, décompresser ou linéariser la valeur.



Délai d'expiration

Certaines commandes de stockage imposent l'envoie d'un délai d'expiration (relatif à un élément ou à une commande émise par le client), sur le serveur. Dans ce cas, cette valeur doit être envoyée sous la forme d'un timestamp Unix (nombre de secondes depuis le 1er janvier 1970, sous forme d'entier), ou d'un nombre de secondes depuis l'heure courante. Dans le dernier cas, ce nombre de secondes ne peut pas excéder 30 jours, soit 60*60*24*30 secondes; si la valeur d'expiration est plus grande que cette valeur, le serveur le considérera comme un timestamp, plutôt qu'un délai.

Si la valeur d'expiration est 0 (la valeur par défaut), l'élément n'expire jamais, même s'il peut être effacé par le serveur pour faire de la place aux autres éléments.



Fonctions de rappel

Sommaire


Fonctions de rappel de résultats

Les fonctions de rappel de résultats (type callback) sont appelées par les fonctions Memcached::getDelayed() ou Memcached::getDelayedBykey(), pour chaque élément du jeu de résultat. Les fonctions de rappel reçoivent un objet Memcached et un tableau avec les informations sur l'élément. La fonction de rappel n'a pas besoin de retourner quoi que ce soit.

Exemple #1 Exemple de fonction de rappel de résultats

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);
$items = array(
    
'key1' => 'value1',
    
'key2' => 'value2',
    
'key3' => 'value3'
);
$m->setMulti($items);
$m->getDelayed(array('key1''key3'), true'result_cb');

function 
result_cb($memc$item)
{
    
var_dump($item);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["key"]=>
  string(4) "key1"
  ["value"]=>
  string(6) "value1"
  ["cas"]=>
  float(49)
}
array(3) {
  ["key"]=>
  string(4) "key3"
  ["value"]=>
  string(6) "value3"
  ["cas"]=>
  float(50)
}


Fonctions de rappel sur clé absente

Les fonctions de rappel sur clé absente sont appelées quand un élément ne peut pas être lu sur le serveur. La fonction de rappel reçoit un objet Memcached, la clé demandée, et une valeur de variable par référence. La fonction de rappel est alors responsable d'affecter la valeur, puis de retourner TRUE ou FALSE. Si la fonction de rappel retourne TRUE Memcached va stocker la valeur ainsi créée dans le serveur, et la retourner à la fonction appelante. Seules Memcached::get() et Memcached::getByKey() supportent ces fonctions, car le protocole memcache ne fournit aucune information sur l'absence de clé dans une requête multiclé.

Exemple #1 Fonctions de rappel sur clé absente

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$profile_info $m->get('user:'.$user_id'user_info_cb');

function 
user_info_cb($memc$key, &$value)
{
    
$user_id substr($key5);
    
/* Lit un profil dans une base de données */
    /* ... */
    
$value $profile_info;
    return 
true;
}
?>



Support des sessions

Memcached fournit un gestionnaire de sessions qui peut être utilisé pour stocker les sessions sur memcache. Une instance distincte de memcached est utilisé en interne, ce qui fait que vous pouvez avoir un pool de serveur différent, si nécessaire. Les clés de sessions sont stockés avec le préfixe memc.sess.key., alors soyez-en conscience si vous utilisez le même serveur pour les sessions et pour le cache.

session.save_handler string

Donnez-lui la valeur de memcached pour activer le support des sessions sur memcached.

session.save_path string

Définit une liste de valeurs séparés par des virgules, avec la syntaxe nomdhote:port, à utiliser pour le pool de serveurs de sessions. Par exemple, "sess1:11211, sess2:11211".



La classe Memcached

Introduction

Représente une connexion avec un serveur memcache.

Synopsis de la classe

Memcached {
__construct ([ string $persistent_id ] )
public bool add ( string $key , mixed $value [, int $expiration ] )
public bool addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool addServer ( string $host , int $port [, int $weight = 0 ] )
public bool addServers ( array $servers )
public bool append ( string $key , string $value )
public bool appendByKey ( string $server_key , string $key , string $value )
public bool cas ( float $cas_token , string $key , mixed $value [, int $expiration ] )
public bool casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )
public int decrement ( string $key [, int $offset = 1 ] )
public bool delete ( string $key [, int $time = 0 ] )
public bool deleteByKey ( string $server_key , string $key [, int $time = 0 ] )
public array fetch ( void )
public array fetchAll ( void )
public bool flush ([ int $delay = 0 ] )
public mixed get ( string $key [, callback $cache_cb [, float &$cas_token ]] )
public mixed getByKey ( string $server_key , string $key [, callback $cache_cb [, float &$cas_token ]] )
public bool getDelayed ( array $keys [, bool $with_cas [, callback $value_cb ]] )
public bool getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callback $value_cb ]] )
public mixed getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )
public array getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )
public mixed getOption ( int $option )
public int getResultCode ( void )
public string getResultMessage ( void )
public array getServerByKey ( string $server_key )
public array getServerList ( void )
public array getStats ( void )
public array getVersion ( void )
public int increment ( string $key [, int $offset = 1 ] )
public bool prepend ( string $key , string $value )
public bool prependByKey ( string $server_key , string $key , string $value )
public bool replace ( string $key , mixed $value [, int $expiration ] )
public bool replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool set ( string $key , mixed $value [, int $expiration ] )
public bool setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool setMulti ( array $items [, int $expiration ] )
public bool setMultiByKey ( string $server_key , array $items [, int $expiration ] )
public bool setOption ( int $option , mixed $value )
}

Memcached::add

(PECL memcached >= 0.1.0)

Memcached::addAjoute un nouvel élément sous une nouvelle clé

Description

public bool Memcached::add ( string $key , mixed $value [, int $expiration ] )

Memcached::add() est similaire à Memcached::set(),mais l'opération échoue si la clé key existe déjà.

Liste de paramètres

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne la constante Memcached::RES_NOTSTORED si la clé existe déjà.

Voir aussi



Memcached::addByKey

(PECL memcached >= 0.1.0)

Memcached::addByKeyAjoute un élément sur un serveur désigné

Description

public bool Memcached::addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::addByKey() est fonctionnellement équivalent à Memcached::add(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner la constante Memcached::RES_NOTSTORED si la clé existe déjà.

Voir aussi



Memcached::addServer

(PECL memcached >= 0.1.0)

Memcached::addServerAjoute un serveur au pool

Description

public bool Memcached::addServer ( string $host , int $port [, int $weight = 0 ] )

Memcached::addServer() ajoute le serveur indiqué au pool de serveurs. Aucune connexion n'est établie à ce moment-là, mais si vous utilisez la clé de distribution par hashage cohérent (via Memcached::DISTRIBUTION_CONSISTENT ou Memcached::OPT_LIBKETAMA_COMPATIBLE), certaines structures internes vont être mises à jour. Par conséquent, si vous devez ajouter plusieurs serveurs, il est recommandé d'utiliser Memcached::addServers() pour que la mise à jour n'arrive qu'une seule fois.

Le même serveur peut apparaître plusieurs fois dans le pool, car aucune recherche de doublon n'est faite. Ce n'est pas recommandé : utilisez plutôt le paramètre weight pour augmenter le poids d'un serveur dans la sélection.

Liste de paramètres

host

Le nom d'hôte du serveur. Si le nom d'hôte est invalide, les fonctions d'état d'opération vont retourner le code de résultat Memcached::RES_HOST_LOOKUP_FAILURE.

port

Le port sur lequel memcache fonctionne. Généralement, c'est 11211.

weight

Le poids du serveur relativement au poids total de tous les serveurs. Cela contrôle la probabilité qu'un serveur soit sélectionné durant les opérations. Cette option n'est utilisée qu'avec la distribution cohérente, et généralement, cela correspond au total de mémoire disponible sur ce serveur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::cas()

<?php
$m 
= new Memcached();

/* Ajoute deux serveurs, et le second est deux fois
   plus sollicité que le premier */
$m->addServer('mem1.domain.com'1121133);
$m->addServer('mem2.domain.com'1121167);
?>

Voir aussi



Memcached::addServers

(PECL memcached >= 0.1.1)

Memcached::addServersAjoute plusieurs serveurs au pool

Description

public bool Memcached::addServers ( array $servers )

Memcached::addServers() ajoute les serveurs servers au pool de serveurs. Chaque entrée dans servers doit être un tableau, contenant le nom d'hôte, et optionnellement son poids. Aucune connexion n'est établie au serveur à ce moment-là.

Le même serveur peut apparaître plusieurs fois dans le pool, car aucune vérification de duplication n'est faite. Ce n'est pas recommandé. Au lieu de cela, il vaut mieux utiliser le paramètre weight pour augmenter le poids du serveur.

Liste de paramètres

array

Un tableau de serveurs à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::cas()

<?php
$m 
= new Memcached();

$servers = array(
    array(
'mem1.domain.com'1121133),
    array(
'mem2.domain.com'1121167)
);
$m->addServers($servers);
?>

Voir aussi



Memcached::append

(PECL memcached >= 0.1.0)

Memcached::appendAjoute des données à un élément

Description

public bool Memcached::append ( string $key , string $value )

Memcached::append() ajouter les données de value à la fin d'un élément existant. La raison qui fait que value doit être une chaîne est que les autres types ne supportent pas cette opération.

Note:

Si la constante Memcached::OPT_COMPRESSION est activée, l'opération va échouer, et une alerte sera émise, car le préfixage de données compressée n'est pas possible.

Liste de paramètres

key

La clé de l'élément à suffixer.

value

La chaîne suffixée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::append()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);
$m->setOption(Memcached::OPT_COMPRESSIONfalse);

$m->set('foo''abc');
$m->append('foo''def');
var_dump($m->get('foo'));
?>

L'exemple ci-dessus va afficher :

string(6) "abcdef"

Voir aussi



Memcached::appendByKey

(PECL memcached >= 0.1.0)

Memcached::appendByKeyAjoute des données à un élément

Description

public bool Memcached::appendByKey ( string $server_key , string $key , string $value )

Memcached::appendByKey() est fonctionnellement équivalent à Memcached::append(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

key

La clé de l'élément à qui ajouter des données.

value

La chaîne à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi



Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::casCompare et échange un élément

Description

public bool Memcached::cas ( float $cas_token , string $key , mixed $value [, int $expiration ] )

Memcached::cas() effectue une opération de "check and set" (littéralement, vérifie et assigne), de manière à ce que l'élément ne soit stocké que si aucune autre client ne l'a mise à jour depuis qu'il a été lu par le client courant. La vérification est faîte via le paramètre cas_token qui est une valeur 64 bits unique, assignée à l'élément par memcached. Voyez la documentation de Memcached::get*() pour savoir comment obtenir cette valeur. Notez que cette valeur est représentée par un nombre décimal, à cause de limitations dans l'espace des entiers de PHP.

Liste de paramètres

cas_token

Valeur unique associée à un élément existant. Généré par memcached.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner la constante Memcached::RES_DATA_EXISTS si l'élément que vous essayez de stocker a été modifié depuis votre dernière lecture.

Exemples

Exemple #1 Exemple avec Memcached::cas()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

do {
    
/* Lit une IP et son CAS */
    
$ips $m->get('ip_block'null$cas);
    
/* Si l'IP n'existe pas encore, on la crèe et on fait un
       ajout atomique qui va échouer si l'IP a déjà été ajoutée */
    
if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        
$ips = array($_SERVER['REMOTE_ADDR']);
        
$m->add('ip_block'$ips);
    
/* Sinon, on ajoute l'IP à la liste, et on la stocke avec l'opération
       compare-and-swap et le token, qui va échouer si la liste a été mise à jour */
    
} else { 
        
$ips[] = $_SERVER['REMOTE_ADDR'];
        
$m->cas($cas'ip_block'$ips);
    }   
} while (
$m->getResultCode() != Memcached::RES_SUCCESS);

?>

Voir aussi



Memcached::casByKey

(PECL memcached >= 0.1.0)

Memcached::casByKeyCompare et échange un élément sur un serveur

Description

public bool Memcached::casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::casByKey() est fonctionnellement équivalent à Memcached::cas(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

cas_token

Valeur unique, associée à un élément existant. Généré par memcache.

server_key

La clé d'identification du serveur de stockage.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner Memcached::RES_DATA_EXISTS si l'élément que vous essayez de stocker a été modifié depuis votre dernière lecture.

Voir aussi



Memcached::__construct

(PECL memcached >= 0.1.0)

Memcached::__constructCrée un objet Memcached

Description

Memcached::__construct() ([ string $persistent_id ] )

Crée un objet Memcached représentant la connexion au serveur memcache.

Liste de paramètres

persistent_id

Par défaut, les instances Memcached sont détruites à la fin de la requête. Pour créer un objet qui persiste entre les requêtes, utilisez le paramètre persistent_id pour spécifier un identifiant unique pour l'instance. Tous les objets créés avec le même identifiant persistent_id partageront la même connexion.

Valeurs de retour

Un objet Memcached.

Exemples

Exemple #1 Création d'un objet Memcached

<?php
/* Création d'un objet classique */
$m1 = new Memcached();
echo 
get_class($m);

/* Création d'un objet persistant */
$m2 = new Memcached('story_pool');
$m3 = new Memcached('story_pool');

/* maitnenant $m2 et $m3 partagent la même connexion */
?>



Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrementDécrémente une valeur numérique

Description

public int Memcached::decrement ( string $key [, int $offset = 1 ] )

Memcached::decrement() décrémente la valeur numérique de offset unités. Si l'élément n'est pas numérique, il est traité comme la valeur 0. Memcached::decrement() va échouer si l'élément n'existe pas.

Liste de paramètres

key

La clé de l'élément à décrémenter.

offset

La quantité avec laquelle diminuer l'élément.

Valeurs de retour

Retourne la nouvelle valeur de l'élément en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::append()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->set('counter'5);
$m->decrement('counter');
var_dump($m->get('counter'));

$m->decrement('counter'10);
var_dump($m->get('counter'));
?>

L'exemple ci-dessus va afficher :

int(4)
int(0)

Voir aussi



Memcached::delete

(PECL memcached >= 0.1.0)

Memcached::deleteEfface un élément

Description

public bool Memcached::delete ( string $key [, int $time = 0 ] )

Memcached::delete() efface l'élément représenté par la clé key du serveur. Le paramètre time est la durée, en seconde (ou la date Unix) durant laquelle le client veut que le serveur refuse les opérations add et replace sur cette clé. Durant ce laps de temps, l'élément est mis dans une queue d'effacement, ce qui signifie qu'il ne sera pas possible d'utiliser la commande get, mais les commandes add and replace avec cette clé vont aussi échouer (la commande set va fonctionner, toutefois). Après ce laps de temps, l'élément sera effectivement effacé du serveur. Le paramètre time vaut par défaut 0, ce qui signifie que l'élément sera effacé immédiatement, et que les prochains stockages seront acceptés.

Liste de paramètres

key

La clé a effacer.

time

La durée d'effacement sur le serveur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::append()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->delete('key1');
?>

Voir aussi



Memcached::deleteByKey

(PECL memcached >= 0.1.0)

Memcached::deleteByKeySupprime un élément d'un serveur spécifique

Description

public bool Memcached::deleteByKey ( string $server_key , string $key [, int $time = 0 ] )

Memcached::deleteByKey() est fonctionnellement équivalente à Memcached::delete(), hormis la variable libre server_key qui peut être utilisée pour diriger la variable key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

key

La clé à effacer.

time

La durée d'attente de l'effacement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi



Memcached::fetch

(PECL memcached >= 0.1.0)

Memcached::fetchLit le prochain résultat

Description

public array Memcached::fetch ( void )

Memcached::fetch() lit le prochain résultat de la dernière requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le résultat suivant, ou bien FALSE sinon. La méthode Memcached::getResultCode() va retourner Memcached::RES_END si le jeu de résultats est fini.

Exemples

Exemple #1 Exemple avec Memcached::append()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->set('int'99);
$m->set('string''a simple string');
$m->set('array', array(1112));

$m->getDelayed(array('int''array'), true);
while (
$result $m->fetch()) {
    
var_dump($result);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["key"]=>
  string(3) "int"
  "value"]=>
  int(99)
  ["cas"]=>
  float(2363)
}
array(3) {
  ["key"]=>
  string(5) "array"
  ["value"]=>
  array(2) {
    [0]=>
    int(11)
    [1]=>
    int(12)
  }
  ["cas"]=>
  float(2365)
}

Voir aussi



Memcached::fetchAll

(PECL memcached >= 0.1.0)

Memcached::fetchAllLit tous les autres éléments

Description

public array Memcached::fetchAll ( void )

Memcached::fetchAll() lit tous les éléments de la dernière requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les résultats ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::append()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->set('int'99);
$m->set('string''a simple string');
$m->set('array', array(1112));

$m->getDelayed(array('int''array'), true);
var_dump($m->fetchAll());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Voir aussi



Memcached::flush

(PECL memcached >= 0.1.0)

Memcached::flushInvalide tous les éléments du cache

Description

public bool Memcached::flush ([ int $delay = 0 ] )

Memcached::flush() invalide tous les éléments du cache, immédiatement (par défaut), ou après un délai de delay secondes. Après une invalidation, aucun élément ne sera retourné en réponse à une commande de lecture (à moins qu'il ne soit stocké une nouvelle fois sous la même clé, après l'opération de Memcached::flush()). Cette opération ne libère pas la mémoire occupée par les éléments existants : cela se fera graduellement, avec le stockage des nouveaux éléments.

Liste de paramètres

delay

Le nombre de secondes d'attente avant l'invalidation.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::flush()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

/* invalide tous les éléments dans 10 secondes */
$m->flush(10);
?>



Memcached::get

(PECL memcached >= 0.1.0)

Memcached::getLit un élément

Description

public mixed Memcached::get ( string $key [, callback $cache_cb [, float &$cas_token ]] )

Memcached::get() lit un élément qui a été stocké précédemment avec la clé key. Si l'élément est trouvé, et que la variable cas_token a été fournie, elle contiendra la valeur CAS pour cet élément. Voyez Memcached::cas() pour savoir comment utiliser les CAS. Une Fonction de rappel en cas d'absence peut être spécifiée avec le paramètre cache_cb.

Liste de paramètres

key

La clé de l'élément à lire.

cache_cb

Une fonction de rappel en cas d'absence ou NULL.

cas_token

La variable où stocker le CAS.

Valeurs de retour

Retourne la valeur stockée dans le cache, ou bien FALSE sinon. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::get() 1

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->set('foo'100);
var_dump($m->get('foo'));
?>

L'exemple ci-dessus va afficher :

int(100)

Exemple #2 Exemple avec Memcached::get() 2

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

if (!(
$ip $m->get('ip_block'))) {
    if (
$m->getResultCode() == Memcached::RES_NOTFOUND) {
        
$ip = array();
        
$m->set('ip_block'$ip);
    } else {
        
/* log error */
        /* ...       */
    
}
}
?>

Voir aussi



Memcached::getByKey

(PECL memcached >= 0.1.0)

Memcached::getByKeyLit un élément sur un serveur spécifique

Description

public mixed Memcached::getByKey ( string $server_key , string $key [, callback $cache_cb [, float &$cas_token ]] )

Memcached::getByKey() est fonctionnellement équivalente à Memcached::get(), hormis le fait que la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

key

La clé de l'élément à lire.

cache_cb

Fonction de rappel en cas d'absence, ou NULL

cas_token

La variable dans laquelle stocker le CAS.

Valeurs de retour

Retourne la valeur stockée dans le cache, ou FALSE sinon. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi



Memcached::getDelayed

(PECL memcached >= 0.1.0)

Memcached::getDelayedLit plusieurs éléments

Description

public bool Memcached::getDelayed ( array $keys [, bool $with_cas [, callback $value_cb ]] )

Memcached::getDelayed() émet une commande à memcache pour lire plusieurs clé qui sont spécifiées dans le tableau keys. La méthode n'attend pas la réponse et retourne immédiatement. Lorsque vous êtes prêts à lire les éléments, appelez les méthodes Memcached::fetch() ou Memcached::fetchAll(). Si with_cas vaut TRUE le CAS sera aussi lu.

Au lieu de lire les résultats explicitement, vous pouvez spécifier une fonction de rappel de résultats via le paramètre value_cb.

Liste de paramètres

keys

Un tableau de clé à lire.

with_cas

S'il faut lire les CAS.

value_cb

Une fonction de rappel de résultats, ou NULL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::getDelayed()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->set('int'99);
$m->set('string''a simple string');
$m->set('array', array(1112));

$m->getDelayed(array('int''array'), true);
var_dump($m->fetchAll());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Voir aussi



Memcached::getDelayedByKey

(PECL memcached >= 0.1.0)

Memcached::getDelayedByKeyLit plusieurs éléments sur un serveur

Description

public bool Memcached::getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callback $value_cb ]] )

Memcached::getDelayedByKey() est fonctionnellement équivalent à Memcached::getDelayed(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

keys

Un tableau de clé à lire.

with_cas

S'il faut aussi lire les CAS.

value_cb

Une fonction de rappel de résultats, ou NULL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi



Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMultiLit plusieurs éléments

Description

public mixed Memcached::getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )

Memcached::getMulti() est similaire à la méthode Memcached::get(), mais au lieu d'un seul élément, elle sait lire plusieurs éléments spécifiés par le tableau keys. Si la variable cas_tokens est fournie, elle contiendra les CAS de chaque valeur trouvée.

Note:

Contrairement à Memcached::get(), il n'est pas possible à de spécifier un fonction de rappel en cas d'absence pour la fonction Memcached::getMulti(), car le protocole de memcache ne fournit pas d'information sur les clés qui n'ont pas été trouvée.

Le paramètre flags sert à spécifier des options supplémentaires pour Memcached::getMulti(). Actuellement, la seule option disponible est Memcached::GET_PRESERVE_ORDER qui garantit que les clés sont retournées dans le même ordre que celui de leur requête.

Liste de paramètres

keys

Un tableau de clé à lire.

cas_tokens

La variable où stocker les CAS des éléments trouvés.

flags

Les options pour cette opération.

Valeurs de retour

Retourne un tableau d'élément lus ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::append()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$items = array(
    
'key1' => 'value1',
    
'key2' => 'value2',
    
'key3' => 'value3'
);
$m->setMulti($items);
$result $m->getMulti(array('key1''key3''badkey'), $cas);
var_dump($result$cas);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

Exemple #2 Exemple avec Memcached::GET_PRESERVE_ORDER

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$data = array(
    
'foo' => 'foo-data',
    
'bar' => 'bar-data',
    
'baz' => 'baz-data',
    
'lol' => 'lol-data',
    
'kek' => 'kek-data',
);

$m->setMulti($data3600);

$null null;
$keys array_keys($data);
$keys[] = 'zoo';
$got $m->getMulti($keys$nullMemcached::GET_PRESERVE_ORDER);

foreach (
$got as $k => $v) {
    echo 
"$k $v\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo 

Voir aussi



Memcached::getMultiByKey

(PECL memcached >= 0.1.0)

Memcached::getMultiByKeyLit plusieurs éléments d'un serveur spécifique

Description

public array Memcached::getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )

Memcached::getMultiByKey() est fonctionnellement équivalent à Memcached::getMulti(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

keys

Un tableau de clé à lire.

cas_tokens

La variable où stocker les CAS des éléments trouvés.

flags

Les options de l'opération.

Valeurs de retour

Retourne le tableau des éléments trouvés ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi



Memcached::getOption

(PECL memcached >= 0.1.0)

Memcached::getOptionLit une option Memcached

Description

public mixed Memcached::getOption ( int $option )

Retourne la valeur de l'option Memcached option. Ces options sont définies par libmemcached, et d'autres sont spécifiques à cette extension. Voyez constantes Memcached pour plus d'informations.

Liste de paramètres

option

Une des constantes Memcached::OPT_*.

Valeurs de retour

Retourne la valeur de l'option demandée, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Lecture des options Memcached

<?php
$m 
= new Memcached();
var_dump($m->getOption(Memcached::OPT_COMPRESSION));
var_dump($m->getOption(Memcached::OPT_POLL_TIMEOUT));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
int(1000)

Voir aussi



Memcached::getResultCode

(PECL memcached >= 0.1.0)

Memcached::getResultCodeRetourne le code de résultat de la dernière opération

Description

public int Memcached::getResultCode ( void )

Memcached::getResultCode() retourne une des constantes Memcached::RES_* qui indique l'état du résultat de la dernière opération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code de résultat de la dernière opération Memcached.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->add('foo''bar');
if (
$m->getResultCode() == Memcached::RES_NOTSTORED) {
    
/* ... */
}
?>



Memcached::getResultMessage

(PECL memcached >= 1.0.0)

Memcached::getResultMessageRetourne un message décrivant le résultat de la dernière opération

Description

public string Memcached::getResultMessage ( void )

Memcached::getResultMessage() retourne une chaîne qui décrit le code résultat de la dernière méthode Memcached exécutée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Message décrivant le résultat de la dernière opération Memcached.

Exemples

Exemple #1 Exemple avec Memcached::getResultMessage()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->add('foo''bar'); // Succès la première fois
$m->add('foo''bar');
echo 
$m->getResultMessage(),"\n";
?>

L'exemple ci-dessus va afficher :

NOT STORED



Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKeyDirige une clé sur un serveur

Description

public array Memcached::getServerByKey ( string $server_key )

Memcached::getServerByKey() retourne le serveur qui devrait être sélectionné par une clé server_key dans les opérations de type Memcached::*ByKey().

Liste de paramètres

server_key

La clé d'identification du serveur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m 
= new Memcached();
$m->addServers(array(
    array(
'mem1.domain.com'1121140),
    array(
'mem2.domain.com'1121140),
    array(
'mem3.domain.com'1121120),
));

$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLEtrue);

var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["host"]=>
  string(15) "mem3.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(20)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}



Memcached::getServerList

(PECL memcached >= 0.1.0)

Memcached::getServerListListe les serveurs du pool memcached

Description

public array Memcached::getServerList ( void )

Memcached::getServerList() retourne la liste de tous les serveurs qui sont dans sa liste.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La liste de tous les serveurs du pool.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m 
= new Memcached();
$m->addServers(array(
    array(
'mem1.domain.com'1121120),
    array(
'mem2.domain.com'1131180),
));
var_dump($m->getServerList());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["host"]=>
    string(15) "mem1.domain.com"
    ["port"]=>
    int(11211)
    ["weight"]=>
    int(20)
  }
  [1]=>
  array(3) {
    ["host"]=>
    string(15) "mem2.domain.com"
    ["port"]=>
    int(11311)
    ["weight"]=>
    int(80)
  }
}



Memcached::getStats

(PECL memcached >= 0.1.0)

Memcached::getStatsLit des statistiques du pool de serveurs

Description

public array Memcached::getStats ( void )

Memcached::getStats() retourne un tableau contenant l'état de toutes les machines en fonctionnement. Voyez le » protocole memcached pour plus de détails sur ces statistiques.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de statistiques de serveurs, une entrée par serveur.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

print_r($m->getStats());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [localhost:11211] => Array
        (
            [pid] => 4933
            [uptime] => 786123
            [threads] => 1
            [time] => 1233868010
            [pointer_size] => 32
            [rusage_user_seconds] => 0
            [rusage_user_microseconds] => 140000
            [rusage_system_seconds] => 23
            [rusage_system_microseconds] => 210000
            [curr_items] => 145
            [total_items] => 2374
            [limit_maxbytes] => 67108864
            [curr_connections] => 2
            [total_connections] => 151
            [connection_structures] => 3
            [bytes] => 20345
            [cmd_get] => 213343
            [cmd_set] => 2381
            [get_hits] => 204223
            [get_misses] => 9120
            [evictions] => 0
            [bytes_read] => 9092476
            [bytes_written] => 15420512
            [version] => 1.2.6
        )

)



Memcached::getVersion

(PECL memcached >= 0.1.5)

Memcached::getVersionLit les informations de version du pool serveur

Description

public array Memcached::getVersion ( void )

Memcached::getVersion() retourne un tableau contenant les informations de version disponibles de tous les serveurs memcache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Tableau de versions de serveurs, une par serveur.

Exemples

Exemple #1 Exemple avec Memcached::getVersion()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

print_r($m->getVersion());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [localhost:11211] => 1.2.6
)



Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::incrementIncrémente numériquement un élément

Description

public int Memcached::increment ( string $key [, int $offset = 1 ] )

Memcached::increment() incrémente la valeur numérique de offset unités. Si l'élément n'est pas numérique, il est traité comme la valeur 0. Memcached::increment() va échouer si l'élément n'existe pas.

Liste de paramètres

key

La clé de l'élément à incrémenter.

offset

La quantité avec laquelle augmenter l'élément.

Valeurs de retour

Retourne la nouvelle valeur de l'élément, en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->set('counter'0);
$m->increment('counter');
$m->increment('counter'10);
var_dump($m->get('counter'));

$m->set('key''abc');
$m->increment('counter');
?>

L'exemple ci-dessus va afficher :

int(11)
string(1) "1"

Voir aussi



Memcached::prepend

(PECL memcached >= 0.1.0)

Memcached::prependPréfixe des données à un élément existant

Description

public bool Memcached::prepend ( string $key , string $value )

Memcached::prepend() ajouter les données de value au début d'un élément existant. La raison qui fait que value doit être une chaîne est que les autres types ne supportent pas cette opération.

Note:

Si la constante Memcached::OPT_COMPRESSION est activée, l'opération va échouer, et une alerte sera émise, car le préfixage de données compressée n'est pas possible.

Liste de paramètres

key

La clé de l'élément à préfixer.

value

La chaîne préfixée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner Memcached::RES_NOTSTORED si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);
$m->setOption(Memcached::OPT_COMPRESSIONfalse);

$m->set('foo''abc');
$m->prepend('foo''def');
var_dump($m->get('foo'));
?>

L'exemple ci-dessus va afficher :

string(6) "defabc"

Voir aussi



Memcached::prependByKey

(PECL memcached >= 0.1.0)

Memcached::prependByKeyPréfixe un élément existant

Description

public bool Memcached::prependByKey ( string $server_key , string $key , string $value )

Memcached::prependByKey() est fonctionnellement équivalent à Memcached::prepend(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

key

La clé de l'élément à préfixer.

value

La chaîne à préfixer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi



Memcached::replace

(PECL memcached >= 0.1.0)

Memcached::replaceRemplace un élément sous une clé

Description

public bool Memcached::replace ( string $key , mixed $value [, int $expiration ] )

Memcached::replace() est similaire à Memcached::set(), mais l'opération va échouer si la clé key n'existe pas sur le serveur.

Liste de paramètres

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi



Memcached::replaceByKey

(PECL memcached >= 0.1.0)

Memcached::replaceByKeyRemplace un élément spécifique sur un serveur désigné

Description

public bool Memcached::replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::replaceByKey() est fonctionnellement équivalent à la fonction Memcached::replace(), hormis le fait que la variable libre server_key peut être utilisée pour diriger la clé key vers un serveur spécifique. Ceci est utile si vous voulez conserver un groupe de variables groupées sur un serveur.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner Memcached::RES_NOTSTORED si la clé n'existe pas.

Voir aussi



Memcached::set

(PECL memcached >= 0.1.0)

Memcached::setStocke un élément

Description

public bool Memcached::set ( string $key , mixed $value [, int $expiration ] )

Memcached::set() stocke la valeur value sur une serveur memcache, avec la clé d'identification key. Le paramètre expiration permet de contrôler le délai d'expiration automatique de la valeur.

La valeur peut être n'importe quelle type de valeur PHP, hormis une ressource, car elles ne peuvent pas être représentée sous forme linéaire. Si l'option Memcached::OPT_COMPRESSION est activée, la valeur linéarisée sera aussi compressée avant stockage.

Liste de paramètres

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$m->set('int'99);
$m->set('string''a simple string');
$m->set('array', array(1112));
/* L''object' va etre détruit dans 5 minutes */
$m->set('object', new stdclasstime() + 300);


var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(99)
string(15) "a simple string"
array(2) {
  [0]=>
  int(11)
  [1]=>
  int(12)
}
object(stdClass)#1 (0) {
}

Voir aussi



Memcached::setByKey

(PECL memcached >= 0.1.0)

Memcached::setByKeyStocke un élément sur un serveur spécifique

Description

public bool Memcached::setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::setByKey() est fonctionnellement équivalente à Memcached::set(), hormis le fait que la variable libre server_key peut être utilisée pour envoyer la clé key sur un serveur spécifique. Ceci est utile si vous voulez grouper certaines clés sur un serveur.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::setByKey()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

/* Conserve les blocs d'IP sur un serveur */
$m->setByKey('api-cache''block-ip:169.254.253.252'1);
$m->setByKey('api-cache''block-ip:169.127.127.202'1);
?>

Voir aussi



Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMultiStocke plusieurs éléments

Description

public bool Memcached::setMulti ( array $items [, int $expiration ] )

Memcached::setMulti() est similaire à Memcached::set(), et au lieu de stocker une seule paire clé / valeur, elle fonctionne sur plusieurs éléments via items. Le délai d'expiration expiration s'applique à tous les éléments dans leur ensemble.

Liste de paramètres

items

Un tableau de paires clé/valeur à stocker sur le serveur.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::setMulti()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$items = array(
    
'key1' => 'value1',
    
'key2' => 'value2',
    
'key3' => 'value3'
);
$m->setMulti($itemstime() + 300);
?>

Voir aussi



Memcached::setMultiByKey

(PECL memcached >= 0.1.0)

Memcached::setMultiByKeyStocke plusieurs éléments sur un serveur

Description

public bool Memcached::setMultiByKey ( string $server_key , array $items [, int $expiration ] )

Memcached::setMultiByKey() est l'équivalent fonctionnel de Memcached::setMulti(), hormis le fait que le paramètre libre server_key peut être utilisé pour diriger les clés de items vers un serveur spécifique. Ceci est utile si vous voulez conserver certaines clés groupées sur un seul serveur.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage.

items

Un tableau de paires clé/valeur à stocker sur le serveur.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi



Memcached::setOption

(PECL memcached >= 0.1.0)

Memcached::setOptionConfigure une option Memcached

Description

public bool Memcached::setOption ( int $option , mixed $value )

Memcached::setOption() configure une valeur de l'option Memcached option avec la valeur value. Certaines options correspondent à celles définies dans libmemcached, et d'autres sont spécifiques à l'extension. Voyez les constantes Memcached pour plus d'informations.

Les options listées ci-dessous requièrent des valeurs fournies par les constantes :

  • Memcached::OPT_HASH requiert une constante Memcached::HASH_*.

  • Memcached::OPT_DISTRIBUTION requiert une constante Memcached::DISTRIBUTION_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Configuration d'une option Memcached

<?php
$m 
= new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
$m->setOption(Memcached::OPT_HASHMemcached::HASH_MURMUR);
$m->setOption(Memcached::OPT_PREFIX_KEY"widgets");
echo 
"Le préfixe de la clé est maintenant : "$m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

L'exemple ci-dessus va afficher :

bool(true)
Le préfixe de la clé est maintenant : widgets

Voir aussi


Sommaire




Gearman


Introduction

» Gearman est un framework applicatif générique pour distribuer des tâches à plusieurs machines ou plusieurs processus. Il permet à une application d'effectuer des tâches en parallèle, de distribuer la charge de calcul et de faire des appels de fonctions entre plusieurs langages. Ce framework peut être utilisé dans nombre d'applications, des sites web haute-disponibilité au transport d'événements de réplication de base de données.

Cette extension fournit des classes pour écrire des clients ou des agents Gearman.



Installation/Configuration

Sommaire


Pré-requis

Cette extension nécessite la bibliothèque » libgearman ainsi qu'un serveur Gearman.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gearman



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Valeurs de retour. Cherchez toujours une chaîne de caractères d'erreur dans GearmanClient::error() ou GearmanWorker() car davantage de détails peuvent être disponibles :

GEARMAN_SUCCESS (integer)
Quelque soit l'action entreprise, elle a été couronnée de succès.
GEARMAN_IO_WAIT (integer)
En mode non-bloquant, un événement qui aurait été bloquant a été atteint.
GEARMAN_ERRNO (integer)
Une erreur système. Cherchez dans GearmanClient::errno() ou GearmanWorker::errno() le code d'erreur système qui a été retourné.
GEARMAN_NO_ACTIVE_FDS (integer)
GearmanClient::wait() ou GearmanWorker() a été appelé sans connexion.
GEARMAN_UNEXPECTED_PACKET (integer)
Indique que quelque chose de grave est survenu dans gearmand. S'applique seulement à GearmanWorker.
GEARMAN_GETADDRINFO (integer)
La résolution DNS a échoué (hôte ou port invalide, etc).
GEARMAN_NO_SERVERS (integer)
Aucun appel à GearmanClient::addServer() n'a été fait avant de soumettre une tâche.
GEARMAN_LOST_CONNECTION (integer)
Perte de connexion pendant une requête.
GEARMAN_MEMORY_ALLOCATION_FAILURE (integer)
L'allocation mémoire a échoué (plus de mémoire disponible).
GEARMAN_SERVER_ERROR (integer)
Quelque chose s'est mal passé avec le serveur Gearman qui n'a pas pu traiter la requête comme il se doit.
GEARMAN_WORK_DATA (integer)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Envoyé pour mettre à jour le cliet avec les données de la tâche courante. Un agent l'utilise quadn il a besoin d'envoyer des mises à jour, d'envoyer des résultats partiels ou pour évacuer les données lors de tâches longues.
GEARMAN_WORK_WARNING (integer)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Met à jour le client avec un avertissement. Le comportement est le même qu'avec GEARMAN_WORK_DATA, sauf qu'il devrait être traité comme un avertissement plutôt que comme les données d'une réponse normale.
GEARMAN_WORK_STATUS (integer)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Envoyé pour mettre à jour le statut d'une tâche longue. Utilisez GearmanClient::doStatus() pour obtenir le pourcentage de complétion de la tâche.
GEARMAN_WORK_EXCEPTION (integer)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Indique qu'une tâche a échoué en levant une exception donnée.
GEARMAN_WORK_FAIL (integer)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Indique qu'une tâche a échoué.
GEARMAN_COULD_NOT_CONNECT (integer)
Echec de la connexion aux serveurs.
GEARMAN_INVALID_FUNCTION_NAME (integer)
Tentative de référencement d'une fonction avec un nom NULL ou utilisation de l'interface de rappel sans spécifier les rappels.
GEARMAN_INVALID_WORKER_FUNCTION (integer)
Tentative de référencement d'une fonction avec une fonction de rappel NULL.
GEARMAN_NO_REGISTERED_FUNCTIONS (integer)
Quand un agent reçoit une tâche pour une fonction qu'il n'a pas référencée.
GEARMAN_NO_JOBS (integer)
Pour un agent non-bloquant, quand GearmanWorker::work() n'a aucune tâche active.
GEARMAN_ECHO_DATA_CORRUPTION (integer)
Après GearmanClient::echo() ou GearmanWorker::echo(), les données retournées ne correspondent pas aux données envoyées.
GEARMAN_NEED_WORKLOAD_FN (integer)
Quand le client a fait le choix de diffuser la charge de travail sur une tâche, mais n'a pas spécifié de fonction de retour de la charge de travail.
GEARMAN_PAUSE (integer)
Pour l'interface de tâche cliente non-bloquante, peut être retourné à partir du retour de la tâche pour "mettre en pause" l'appel et le retour de GearmanClient::runTasks(). Appelez de nouveau GearmanClient::runTasks() pour continuer.
GEARMAN_UNKNOWN_STATE (integer)
Erreur d'état client/agent interne.
GEARMAN_SEND_BUFFER_TOO_SMALL (integer)
Erreur interne : a essayé d'évacuer davantage de données que possible dans un paquet atomique, à cause de tailles de tampons codées en dur.
GEARMAN_TIMEOUT (integer)
La limite de temps de l'agent/du client a été atteinte.

Les options GearmanClient :

GEARMAN_CLIENT_NON_BLOCKING (integer)
Lance le client en mode non-bloquant.
GEARMAN_CLIENT_UNBUFFERED_RESULT (integer)
Permet au client de lire les données par paquets plutôt que ce soit la bibliothèque qui mette en tampon les données et les transmette.
GEARMAN_CLIENT_FREE_TASKS (integer)
Libère automatiquement les objets des tâches une fois celles-ci effectées. C'est le paramétrage par défaut de cette extension pour éviter les fuites de mémoire.

Les options GearmanWorker :

GEARMAN_WORKER_NON_BLOCKING (integer)
Lance l'agent en mode non-bloquant.
GEARMAN_WORKER_GRAB_UNIQ (integer)
Retourne l'identifiant unique alloué au client en plus du descripteur de tâche.

Configuration de base de Gearman :

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (integer)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (integer)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (integer)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (integer)
GEARMAN_MAX_ERROR_SIZE (integer)
GEARMAN_PACKET_HEADER_SIZE (integer)
GEARMAN_JOB_HANDLE_SIZE (integer)
GEARMAN_OPTION_SIZE (integer)
GEARMAN_UNIQUE_SIZE (integer)
GEARMAN_MAX_COMMAND_ARGS (integer)
GEARMAN_ARGS_BUFFER_SIZE (integer)
GEARMAN_SEND_BUFFER_SIZE (integer)
GEARMAN_RECV_BUFFER_SIZE (integer)
GEARMAN_WORKER_WAIT_TIMEOUT (integer)



Exemples

Sommaire


Exemple #1 Client et agen Gearman simple

Cet exemple montre un client et un agent simple. Le client envoie une chaîne de caractères au serveur de travaux, et l'agent inverse la chaîne de caractères et la retourne. Le travail est exécuté de façon synchronisée.

<?php

# Crée un nouveau client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo 
"Envoie du travail\n";

# Envoie le travail d'inversion
do
{
  
$result $gmclient->do("reverse""Hello!");

  
# Vérifie les paquets et les erreurs retournés.
  
switch($gmclient->returnCode())
  {
    case 
GEARMAN_WORK_DATA:
      echo 
"Données : $result\n";
      break;
    case 
GEARMAN_WORK_STATUS:
      list(
$numerator$denominator)= $gmclient->doStatus();
      echo 
"Statut : $numerator/$denominator complete\n";
      break;
    case 
GEARMAN_WORK_FAIL:
      echo 
"Échec\n";
      exit;
    case 
GEARMAN_SUCCESS:
      break;
    default:
      echo 
"Code retourné : " $gmclient->returnCode() . "\n";
      exit;
  }
}
while(
$gmclient->returnCode() != GEARMAN_SUCCESS);

?>
<?php

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur. Modifie la fonction
# de l'agent en "reverse_fn_fast" pour en améliorer la rapidité avec aucun affichage.
$gmworker->addFunction("reverse""reverse_fn");

print 
"Attente d'un travail...\n";
while(
$gmworker->work())
{
  if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo 
"return_code : " $gmworker->returnCode() . "\n";
    break;
  }
}

function 
reverse_fn($job)
{
  echo 
"Travail reçu : " $job->handle() . "\n";

  
$workload $job->workload();
  
$workload_size $job->workloadSize();

  echo 
"Charge de l'agent : $workload ($workload_size)\n";

  
# Cette boucle n'est pas nécessaire, mais montre simplement le fonctionnement
  
for ($x0$x $workload_size$x++)
  {
    echo 
"Envoie du statut : " . ($x 1) . "/$workload_size complete\n";
    
$job->sendStatus($x$workload_size);
    
sleep(1);
  }

  
$resultstrrev($workload);
  echo 
"Résultat : $result\n";

  
# On retourne ce que l'on veut au client.
  
return $result;
}

# Une version plus simple et moins verbeuse de la fonction ci-dessus pourrait être :
function reverse_fn_fast($job)
{
  return 
strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

% php reverse_worker.php
Début
Attente d'un travail...
Travail reçu : H:foo.local:36
Charge de l'agent : Hello! (6)
Envoie du statut : 1/6 complete
Envoie du statut : 2/6 complete
Envoie du statut : 3/6 complete
Envoie du statut : 4/6 complete
Envoie du statut : 5/6 complete
Envoie du statut : 6/6 complete
Résultat : !olleH
% php reverse_client.php
Début
Envoie du travail
Statut : 1/6 complete
Statut : 2/6 complete
Statut : 3/6 complete
Statut : 4/6 complete
Statut : 5/6 complete
Statut : 6/6 complete
Succès : !olleH



Exemple #1 Client et agent Gearman simple, en arrière-plan

Cet exemple montre un client et un agent simple. Le client envoie une chaîne de caractères au serveur de travaux en tant que travail d'arrière-plan, et l'agent renverse la chaîne de caractères. Notez que vu l'exécution asynchrone de l'agent, le client n'attend pas la fin et qu'il sort (y compris lorsqu'il ne reçoit pas les résultats).

<?php

# Crée un objet client
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost)
$gmclient->addServer();

# Exécute le client en arrière-plan
$job_handle $gmclient->doBackground("reverse""this is a test");

if (
$gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo 
"Mauvais code retour\n";
  exit;
}

echo 
"fait !\n";

?>
<?php

echo "Début\n";

# Crée un nouvel agent
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" sur le serveur. Modifie la fonction de l'agent en
# "reverse_fn_fast" pour une exécution plus rapide sans affichage.
$gmworker->addFunction("reverse""reverse_fn");

print 
"Attente d'un travail...\n";
while(
$gmworker->work())
{
  if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo 
"return_code : " $gmworker->returnCode() . "\n";
    break;
  }
}

function 
reverse_fn($job)
{
  echo 
"Travail reçu : " $job->handle() . "\n";

  
$workload $job->workload();
  
$workload_size $job->workloadSize();

  echo 
"Charge de l'agent : $workload ($workload_size)\n";

  
# Cette boucle n'est pas nécessaire, mais nous l'utilisons pour en comprendre le fonctionnement
  
for ($x0$x $workload_size$x++)
  {
    echo 
"Envoi du statut : " . ($x 1) . "/$workload_size complete\n";
    
$job->sendStatus($x$workload_size);
    
sleep(1);
  }

  
$resultstrrev($workload);
  echo 
"Résultat : $result\n";

  
# Retourne ce que l'on veut au client.
  
return $result;
}

# Une version plus simple et moins vebeuse de la fonction ci-dessus serait :
function reverse_fn_fast($job)
{
  return 
strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

% php reverse_worker.php
Début
Attente d'un travail...
Travail reçu : H:foo.local:41
Charge de l'agent : this is a test (14)
1/14 complete
2/14 complete
3/14 complete
4/14 complete
5/14 complete
6/14 complete
7/14 complete
8/14 complete
9/14 complete
10/14 complete
11/14 complete
12/14 complete
13/14 complete
14/14 complete
Résultat : tset a si siht
% php reverse_client_bg.php
Fait !



Exemple #1 Client et agent Gearman simple, avec la soumission de tâches

Dans cet exemple, le client "reverse" a été étendu pour exécuter 2 tâches en parallèle. L'agent "reverse" est inchangé, mise à part qu'il retourne des données durant le processus.

<?php

# Crée un client gearman
$gmc= new GearmanClient();

# Ajoute un serveur par défaut (localhost)
$gmc->addServer();

# Enregistre quelques fonctions de rappel
$gmc->setCreatedCallback("reverse_created");
$gmc->setDataCallback("reverse_data");
$gmc->setStatusCallback("reverse_status");
$gmc->setCompleteCallback("reverse_complete");
$gmc->setFailCallback("reverse_fail");

# Définit quelques données arbitraires pour l'application
$data['foo'] = 'bar';

# Ajoute 2 tâches
$task$gmc->addTask("reverse""foo"$data);
$task2$gmc->addTaskLow("reverse""bar"NULL);

# Exécute les tâches en parallèle (en assumant plusieurs agents)
if (! $gmc->runTasks())
{
    echo 
"ERREUR " $gmc->error() . "\n";
    exit;
}

echo 
"Fait !\n";

function 
reverse_created($task)
{
    echo 
"Créé : " $task->jobHandle() . "\n";
}

function 
reverse_status($task)
{
    echo 
"STATUT : " $task->jobHandle() . " - " $task->taskNumerator() . 
         
"/" $task->taskDenominator() . "\n";
}

function 
reverse_complete($task)
{
    echo 
"TERMINÉ : " $task->jobHandle() . ", " $task->data() . "\n";
}

function 
reverse_fail($task)
{
    echo 
"ÉCHEC : " $task->jobHandle() . "\n";
}

function 
reverse_data($task)
{
    echo 
"DONNÉES : " $task->data() . "\n";
}

?>
<?php

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avecle serveur. Modifie la fonction de l'agent en
# "reverse_fn_fast" pour être plus rapide sans affichage.
$gmworker->addFunction("reverse""reverse_fn");

print 
"Attente d'un travail...\n";
while(
$gmworker->work())
{
  if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo 
"return_code : " $gmworker->returnCode() . "\n";
    break;
  }
}

function 
reverse_fn($job)
{
  echo 
"Travail reçu : " $job->handle() . "\n";

  
$workload $job->workload();
  
$workload_size $job->workloadSize();

  echo 
"Charge de l'agent : $workload ($workload_size)\n";

  
# Cette boucle n'est pas nécessaire, mais nous l'utilisons pour en comprendre le fonctionnement
  
for ($x0$x $workload_size$x++)
  {
    echo 
"Envoi du statut : " . ($x 1) . "/$workload_size complete\n";
    
$job->sendStatus($x+1$workload_size);
    
$job->sendData(substr($workload$x1));
    
sleep(1);
  }

  
$resultstrrev($workload);
  echo 
"Résultat : $result\n";

  
# Retourne ce que l'on veut au client.
  
return $result;
}

# Une version plus simple et moins vebeuse de la fonction ci-dessus serait :
function reverse_fn_fast($job)
{
  return 
strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

% php reverse_worker.php
Début
Attente d'un travail...
Travail reçu : H:foo.local:45
Charge de l'agent : foo (3)
1/3 complete
2/3 complete
3/3 complete
Result: oof
Travail reçu : H:foo.local:44
Charge de l'agent : bar (3)
1/3 complete
2/3 complete
3/3 complete
Résultat : rab
% php reverse_client_task.php
Créé : H:foo.local:44
Créé : H:foo.local:45
STATUT : H:foo.local:45 - 1/3
DONNÉES : f
STATUT : H:foo.local:45 - 2/3
DONNÉES : o
STATUT : H:foo.local:45 - 3/3
DONNÉES : o
TERMINÉ : H:foo.local:45, oof
STATUT : H:foo.local:44 - 1/3
DONNÉES : b
STATUT : H:foo.local:44 - 2/3
DONNÉES : a
STATUT : H:foo.local:44 - 3/3
DONNÉES : r
TERMINÉ : H:foo.local:44, rab
FAIT




La classe GearmanClient

Introduction

Représente une classe pour se connecter à un serveur de tâches Gearman et lui soumettre des requêtes pour appliquer des fonctions sur les données fournies. La fonction appliquée doit faire partie de celles référencées par un agent Gearman et les données traitées restent opaques du point de vue du serveur de tâches.

Synopsis de la classe

GearmanClient {
/* Méthodes */
public bool addOptions ( int $options )
public bool addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )
public bool addServers ([ string $servers = 127.0.0.1:4730 ] )
public GearmanTask addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskStatus ( string $job_handle [, string &$context ] )
public bool clearCallbacks ( void )
public GearmanClient clone ( void )
__construct ( void )
public string context ( void )
public string data ( void )
public string do ( string $function_name , string $workload [, string $unique ] )
public string doBackground ( string $function_name , string $workload [, string $unique ] )
public string doHigh ( string $function_name , string $workload [, string $unique ] )
public string doHighBackground ( string $function_name , string $workload [, string $unique ] )
public string doJobHandle ( void )
public string doLow ( string $function_name , string $workload [, string $unique ] )
public string doLowBackground ( string $function_name , string $workload [, string $unique ] )
public array doStatus ( void )
public bool echo ( string $workload )
public string error ( void )
public int getErrno ( void )
public array jobStatus ( string $job_handle )
public bool removeOptions ( int $options )
public int returnCode ( void )
public bool runTasks ( void )
public void setClientCallback ( callback $callback )
public bool setCompleteCallback ( callback $callback )
public bool setContext ( string $context )
public bool setCreatedCallback ( string $callback )
public bool setData ( string $data )
public bool setDataCallback ( callback $callback )
public bool setExceptionCallback ( callback $callback )
public bool setFailCallback ( callback $callback )
public bool setOptions ( int $options )
public bool setStatusCallback ( callback $callback )
public bool setTimeout ( int $timeout )
public bool setWarningCallback ( callback $callback )
public bool setWorkloadCallback ( callback $callback )
public int timeout ( void )
}

GearmanClient::addOptions

(PECL gearman >= 0.6.0)

GearmanClient::addOptionsAjoute des options au client

Description

public bool GearmanClient::addOptions ( int $options )

Ajoute une ou plusieurs options à celles déjà présentes.

Liste de paramètres

options

Les options à ajouter

Valeurs de retour

Retourne toujours TRUE.



GearmanClient::addServer

(PECL gearman >= 0.5.0)

GearmanClient::addServerAjoute un serveur de tâches au client

Description

public bool GearmanClient::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )

Ajoute un serveur de tâches à une liste de serveurs qui peuvent être utilisés pour accomplir une tâche. Aucune entrée/sortie sur un socket n'est faite ici; le serveur est juste ajouté à la liste.

Liste de paramètres

host

Le nom d'hôte du serveur de travaux.

port

Le port du serveur de travaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de deux serveurs

<?php

# Crée notre objet client.
$gmclient= new GearmanClient();

# Ajoute deux serveurs de tâches, le premier écoutant sur le port par défaut, 4730
$gmclient->addServer("10.0.0.1"); 
$gmclient->addServer("10.0.0.2"7003);

?>

Voir aussi



GearmanClient::addServers

(PECL gearman >= 0.5.0)

GearmanClient::addServersAjoute une liste de serveurs de tâches au client

Description

public bool GearmanClient::addServers ([ string $servers = 127.0.0.1:4730 ] )

Ajoute une liste de serveurs de tâches qui peuvent être utilisés pour accomplir une tâche. Aucune entrée/sortie sur un socket n'est faite ici; les serveurs sont juste ajoutés à la liste complète de serveurs.

Liste de paramètres

servers

Une liste de serveurs, séparés par des virgules, chacun étant spécifié selon le format 'host:port'.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de deux serveurs

<?php

# Crée notre objet client.
$gmclient= new GearmanClient();

# Ajoute plusieurs serveurs de tâches, le premier écoutant sur le port par défaut, 4730
$gmclient->addServers("10.0.0.1,10.0.0.2:7003");

?>

Voir aussi



GearmanClient::addTask

(PECL gearman >= 0.5.0)

GearmanClient::addTaskAjoute une tâche à exécuter en parallèle

Description

public GearmanTask GearmanClient::addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche à exécuter en parallèle d'autres tâches. Appelez cette méthode pour toutes les tâches à exécuter en parallèle, puis, appelez la méthode GearmanClient::runTasks() pour exécuter les tâches. Notez qu'il est nécessaire d'avoir assez d'agents disponibles pour exécuter en parallèle toutes les tâches.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si l tâche n'a pu être ajoutée.

Exemples

Exemple #1 Ajout de 2 tâches

<?php

# Crée un client gearman
$gmclient= new GearmanClient(); 

# Ajoute le serveur de travaux par défaut
$gmclient->addServer(); 

# Ajoute une tâche exécutant la fonction "reverse" sur la chaîne "Hello World!"
$gmclient->addTask("reverse""Hello World!"null"1"); 

# Ajoute une autre tâche exécutant la fonction "reverse" sur la chaîne "!dlroW olleH"
$gmclient->addTask("reverse""!dlroW olleH"null"2"); 

# Définit une fonction à appeler lorsque le travail est terminé
$gmclient->setCompleteCallback("complete"); 

# Exécute les tâches
$gmclient->runTasks(); 

function 
complete($task

  print 
"Terminé : " $task->unique() . ", " $task->data() . "\n"
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Terminé : 2, Hello World!
Terminé : 1, !dlroW olleH

Exemple #2 Ajout de 2 tâches en passant le contexte de l'application

<?php

$client 
= new GearmanClient();
$client->addServer();

# Ajout de quelques tâches contenant un marqueur à l'emplacement duquel le résultat doit être placé
$results = array();
$client->addTask("reverse""Hello World!", &$results"t1");
$client->addTask("reverse""!dlroW olleH", &$results"t2");

$client->setCompleteCallback("reverse_complete");
$client->runTasks();

# Le résultat doit être maintenant contenu dans les fonctions de rappel
foreach ($results as $id => $result)
   echo 
$id ": " $result['handle'] . ", " $result['data'] . "\n";


function 
reverse_complete($task$results)
{
   
$results[$task->unique()] = array("handle"=>$task->jobHandle(), "data"=>$task->data());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

t2: H.foo:21, Hello World!
t1: H:foo:22, !dlroW olleH

Voir aussi



GearmanClient::addTaskBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskBackgroundAjoute une tâche d'arrière-plan pour une exécution en parallèle

Description

public GearmanTask GearmanClient::addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche d'arrière-plan pour une exécution en parallèle d'autres tâches. Appelez cette méthode pour toutes les tâches à exécuter en parallèle, puis, appelez la méthode GearmanClient::runTasks() pour réaliser les tâches.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche n'a pu être ajoutée.

Exemples

Exemple #1 2 tâches dont une en arrière-plan

Cet exemple montre la différence entre l'exécution en arrière-plan et une exécution normale. Le client ajoute 2 tâches qui doivent exécuter la même fonction, mais une a été ajoutée avec la méthode addTaskBackground(). Une fonction de rappel est définie afin de surveiller la progression du travail. Un agent simple avec un délai artificiel rapporte la progression et le client la traite via la fonction de rappel. 2 agents sont exécutés dans cet exemple. Notez que la tâche en arrière-plan n'est pas affichée par le client.

<?php

# Le script client

# Crée un client Gearman
$gmc= new GearmanClient();

# Ajoute un serveur de travaux par défaut
$gmc->addServer();

# Définit 2 fonctions de rappel afin de surveiller la progression
$gmc->setCompleteCallback("reverse_complete");
$gmc->setStatusCallback("reverse_status");

# Ajoute une tâche pour la fonction "reverse"
$task$gmc->addTask("reverse""Hello World!"null"1");

# Ajoute une autre tâche, mais cette fois, en arrière-plan
$task$gmc->addTaskBackground("reverse""!dlroW olleH"null"2");

if (! 
$gmc->runTasks())
{
    echo 
"ERREUR " $gmc->error() . "\n";
    exit;
}

echo 
"FAIT\n";

function 
reverse_status($task)
{
    echo 
"STATUT : " $task->unique() . ", " $task->jobHandle() . " - " $task->taskNumerator() . 
         
"/" $task->taskDenominator() . "\n";
}

function 
reverse_complete($task)
{
    echo 
"TERMINÉ : " $task->unique() . ", " $task->data() . "\n";
}

?>
<?php

# Le script de l'agent

echo "Début\n";

# Crée un agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" sur ce serveur.
$gmworker->addFunction("reverse""reverse_fn");

print 
"Attente d'un travail...\n";
while(
$gmworker->work())
{
  if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo 
"return_code: " $gmworker->returnCode() . "\n";
    break;
  }
}

function 
reverse_fn($job)
{
  echo 
"Travail reçu : " $job->handle() . "\n";

  
$workload $job->workload();
  
$workload_size $job->workloadSize();

  echo 
"Charge de l'agent : $workload ($workload_size)\n";

  
# Cette boucle n'est pas nécessaire, mais permet de comprendre le fonctionnement
  
for ($x0$x $workload_size$x++)
  {
    echo 
"Envoi du statut : " . ($x 1) . "/$workload_size complete\n";
    
$job->sendStatus($x+1$workload_size);
    
$job->sendData(substr($workload$x1));
    
sleep(1);
  }

  
$resultstrrev($workload);
  echo 
"Résultat : $result\n";

  
# On retourne au client ce que l'on veut.
  
return $result;
}

?>

L'agent affiche, pour les 2 travaux :

Travail reçu : H:foo.local:65
Charge de l'agent : !dlroW olleH (12)
1/12 complete
Travail reçu : H:foo.local:66
Charge de l'agent : Hello World! (12)
1/12 complete
2/12 complete
2/12 complete
3/12 complete
3/12 complete
4/12 complete
4/12 complete
5/12 complete
5/12 complete
6/12 complete
6/12 complete
7/12 complete
7/12 complete
8/12 complete
8/12 complete
9/12 complete
9/12 complete
10/12 complete
10/12 complete
11/12 complete
11/12 complete
12/12 complete
12/12 complete
Résultat : !dlroW olleH
Résultat : Hello World!

Affichage du client :

STATUT : 1, H:foo.local:66 - 1/12
STATUT : 1, H:foo.local:66 - 2/12
STATUT : 1, H:foo.local:66 - 3/12
STATUT : 1, H:foo.local:66 - 4/12
STATUT : 1, H:foo.local:66 - 5/12
STATUT : 1, H:foo.local:66 - 6/12
STATUT : 1, H:foo.local:66 - 7/12
STATUT : 1, H:foo.local:66 - 8/12
STATUT : 1, H:foo.local:66 - 9/12
STATUT : 1, H:foo.local:66 - 10/12
STATUT : 1, H:foo.local:66 - 11/12
STATUT : 1, H:foo.local:66 - 12/12
TERMINÉ : 1, !dlroW olleH
FAIT

Voir aussi



GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighAjoute une tâche de forte priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de forte priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une forte priorité seront sélectionnée dans la queue avant celle de priorité plus faible.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Exemples

Exemple #1 Une tâche de forte priorité en même temps que deux tâches normales

Une tâche de forte priorité est ajoutée en plus de deux autres tâches. Un seul agent est disponible, de telle façon que les tâches s'exécutent une à une, avec celle de forte priorité en premier.

<?php

# crée le client Gearman
$gmc= new GearmanClient();

# ajoute le serveur par défaut
$gmc->addServer();

# fixe le retour quand la tâche est complétée
$gmc->setCompleteCallback("inverse_complete");

# ajoute des tâches, l'une ayant une forte priorité
$task$gmc->addTask("inverse""Bonjour le monde!"null"1");
$task$gmc->addTaskHigh("inverse""!ednom el ruojnoB"null"2");
$task$gmc->addTask("inverse""Bonjour le monde!"null"3");

if (! 
$gmc->runTasks())
{
    echo 
"ERROR " $gmc->error() . "\n";
    exit;
}
echo 
"Fait\n";

function 
inverse_complete($task)
{
    echo 
"Complétée : " $task->unique() . ", " $task->data() . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Complétée : 2, Bonjour le monde!
Complétée : 3, !ednom el ruojnoB
Complétée : 1, !ednom el ruojnoB
Fait

Voir aussi



GearmanClient::addTaskHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighBackgroundAjoute une tâche de fond de forte priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de fond de forte priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une forte priorité seront sélectionnée dans la queue avant celle de priorité plus faible.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Voir aussi



GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowAjoute une tâche de faible priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de faible priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une faible priorité seront sélectionnée dans la queue après celle de priorité plus forte.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Exemples

Exemple #1 Une tâche de faible priorité en même temps que deux tâches normales

Une tâche de faible priorité est ajoutée en plus de deux autres tâches. Un seul agent est disponible, de telle façon que les tâches s'exécutent une à une, avec celle de faible priorité en dernier.

<?php

# crée le client Gearman
$gmc= new GearmanClient();

# ajoute le serveur par défaut
$gmc->addServer();

# fixe le retour quand la tâche est complétée
$gmc->setCompleteCallback("inverse_complete");

# ajoute des tâches, l'une ayant une faible priorité
$task$gmc->addTask("inverse""Bonjour le monde!"null"1");
$task$gmc->addTaskLow("inverse""!ednom el ruojnoB"null"2");
$task$gmc->addTask("inverse""Bonjour le monde!"null"3");

if (! 
$gmc->runTasks())
{
    echo 
"ERROR " $gmc->error() . "\n";
    exit;
}
echo 
"Fait\n";

function 
inverse_complete($task)
{
    echo 
"Complétée : " $task->unique() . ", " $task->data() . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Complétée : 3, !ednom el ruojnoB
Complétée : 1, !ednom el ruojnoB
Complétée : 2, Bonjour le monde!
Fait

Voir aussi



GearmanClient::addTaskLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowBackgroundAjoute une tâche de fond de faible priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de fond de faible priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une faible priorité seront sélectionnée dans la queue après celle de priorité plus forte.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Voir aussi



GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatusAjoute une tâche pour obtenir le statut

Description

public GearmanTask GearmanClient::addTaskStatus ( string $job_handle [, string &$context ] )

Utilisé pour demander le statut au serveur Gearman, qui appellera le retour de statut spécifié (grâce à GearmanClient::setStatusCallback()).

Liste de paramètres

job_handle

Les descripteur pour la tâche dont on souhaite le statut

context

Les données à passer au retour de statut, généralement une référence à un tableau ou à un objet

Valeurs de retour

Un objet GearmanTask.

Exemples

Exemple #1 Surveiller l'accomplissement de plusieurs tâches de fond

Un délai artificiel est introduit dans l'agent de cet exemple pour simuler un processus long. Il n'y a qu'un agent qui est lancé dans cet exemple.

<?php

/* crée notre objet */
$gmclient= new GearmanClient();

/* ajoute le serveur par défaut */
$gmclient->addServer();

/* lance une tâche de fond et sauvegarde les descripteurs */
$handles = array();
$handles[0] = $gmclient->doBackground("inverse""Bonjour le monde!");
$handles[1] = $gmclient->doBackground("inverse""!ednom el ruojnoB");

$gmclient->setStatusCallback("inverse_statut");

/* Interroge le serveur pour voir quand les tâches de fond se terminent; */
/* une meilleure méthode consiste à appeler les retours d'événement */
do
{
   
/* Utilise la variable de contexte pour savoir combien de tâches ont été effectuées */
   
$done 0;
   
$gmclient->addTaskStatus($handles[0], &$done);
   
$gmclient->addTaskStatus($handles[1], &$done);
   
$gmclient->runTasks();
   echo 
"Fait : $done\n";
   
sleep(1);
}
while (
$done != 2);

function 
inverse_statut($task$done)
{
   if (!
$task->isKnown())
      
$done++;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 2

Voir aussi



GearmanClient::clearCallbacks

(PECL gearman >= 0.5.0)

GearmanClient::clearCallbacksEfface toutes les fonctions de rappel des tâches

Description

public bool GearmanClient::clearCallbacks ( void )

Efface toutes les fonctions de rappel des tâches précédemment définies.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours TRUE.

Voir aussi



GearmanClient::clone

(PECL gearman >= 0.5.0)

GearmanClient::cloneCrée une copie de l'objet GearmanClient

Description

public GearmanClient GearmanClient::clone ( void )

Crée une copie de l'objet GearmanClient.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une classe GearmanClient en cas de succès, FALSE si une erreur survient.



GearmanClient::__construct

(PECL gearman >= 0.5.0)

GearmanClient::__constructCrée une instance GearmanClient

Description

GearmanClient::__construct ( void )

Crée une instance GearmanClient représentant un client qui se connecte à un serveur de tâches et y enregistre des tâches à effectuer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanClient.

Voir aussi



GearmanClient::context

(PECL gearman >= 0.6.0)

GearmanClient::contextRécupère le contexte de l'application

Description

public string GearmanClient::context ( void )

Récupère le contexte de l'application précédemment définie avec la méthode GearmanClient::setContext().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données de contexte identiques à celles définies avec la fonction GearmanClient::setContext()

Voir aussi



GearmanClient::data

(PECL gearman <= 0.5.0)

GearmanClient::dataRécupère les données de l'application (obsolète)

Description

public string GearmanClient::data ( void )

Récupère les données de l'application précédemment définies avec la méthode GearmanClient::setData().

Note:

Cette méthode a été remplacée par la méthode GearmanClient::setContext() en version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les mêmes données que celles définies avec la méthode GearmanClient::setData()

Voir aussi



GearmanClient::do

(PECL gearman >= 0.5.0)

GearmanClient::doExécute une seule tâche et retourne le résultat

Description

public string GearmanClient::do ( string $function_name , string $workload [, string $unique ] )

Exécute une seule tâche et retourne une représentation sous forme de chaîne de caractères du résultat. C'est aux méthodes GearmanClient et GearmanWorker de valider le format du résultat.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Une représentation sous forme de chaîne de caractères du résultat de l'exécution de la tâche.

Exemples

Exemple #1 Soumission d'une seule tâche avec un retour immédiat

<?php

# Code du client

echo "Début\n";

# Crée un client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo 
"Envoi d'un travail\n";

$result $gmclient->do("reverse""Hello!");

echo 
"Succès : $result\n";

?>
<?php

echo "Début\n";

# Crée un agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur. Modifie la fonction en
# "reverse_fn_fast" pour une exécution plus rapide sans affiche.
$gmworker->addFunction("reverse""reverse_fn");

print 
"Attente d'un travail...\n";
while(
$gmworker->work())
{
  if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo 
"return_code: " $gmworker->returnCode() . "\n";
    break;
  }
}

function 
reverse_fn($job)
{
  return 
strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Début
Envoi d'un travail
Succès : !olleH

Exemple #2 Soumission d'un travail et récupération incrémentale du statut

Un travail est soumis et le script boucle pour récupérer les informations de statut. L'agent a un délai artificiel pour récupérer les résultats lors d'une exécution longue d'un travail mais aussi l'envoi des statuts et des données. Chaque sous-séquence appèle la méthode GearmanClient::do() permettant de produire des informations de statut sur le travail en cours.

<?php

# Code du client

# Crée un client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo 
"Envoi d'un travail\n";

# Envoi du travail
do
{
  
$result $gmclient->do("reverse""Hello!");
  
# Vérifie les paquets et les erreurs retournés.

  
switch($gmclient->returnCode())
  {
    case 
GEARMAN_WORK_DATA:
      echo 
"Données : $result\n";
      break;
    case 
GEARMAN_WORK_STATUS:
      list(
$numerator$denominator)= $gmclient->doStatus();
      echo 
"Statut : $numerator/$denominator complete\n";
      break;
    case 
GEARMAN_WORK_FAIL:
      echo 
"Échec\n";
      exit;
    case 
GEARMAN_SUCCESS:
      break;
    default:
      echo 
"RET : " $gmclient->returnCode() . "\n";
      echo 
"Erreur : " $gmclient->error() . "\n";
      echo 
"N° de l'erreur : " $gmclient->getErrno() . "\n";
      exit;
  }
}
while(
$gmclient->returnCode() != GEARMAN_SUCCESS);

echo 
"Succès : $result\n";

?>
<?php

# Code de l'agent

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur.
$gmworker->addFunction("reverse""reverse_fn");

print 
"Attente d'un travail...\n";
while(
$gmworker->work())
{
  if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo 
"return_code: " $gmworker->returnCode() . "\n";
    break;
  }
}

function 
reverse_fn($job)
{
  echo 
"Travail reçu : " $job->handle() . "\n";

  
$workload $job->workload();
  
$workload_size $job->workloadSize();

  echo 
"Charge de l'agent: $workload ($workload_size)\n";

  
# Cette boucle n'est pas nécessaire, mais montre le fonctionnement
  
for ($x0$x $workload_size$x++)
  {
    echo 
"Envoi du statut : " $x "/$workload_size complete\n";
    
$job->sendStatus($x+1$workload_size);
    
$job->sendData(substr($workload$x1));
    
sleep(1);
  }

  
$resultstrrev($workload);
  echo 
"Résultat : $result\n";

  
# Nous retournons ce que l'on souhaite au client.
  
return $result;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

L'agent affiche :

Début
Attente d'un travail...
Travail reçu : H:foo.local:106
Charge de l'agent : Hello! (6)
1/6 complete
2/6 complete
3/6 complete
4/6 complete
5/6 complete
6/6 complete
Résultat : !olleH

Le client affiche :

Début
Envoi d'un travail
Statut : 1/6 complete
Données : H
Statut : 2/6 complete
Données : e
Statut : 3/6 complete
Données : l
Statut : 4/6 complete
Données : l
Statut : 5/6 complete
Données : o
Statut : 6/6 complete
Données : !
Succès : !olleH

Voir aussi



GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackgroundExécute une tâche en arrière-plan

Description

public string GearmanClient::doBackground ( string $function_name , string $workload [, string $unique ] )

Exécute une tâche en arrière-plan, retourne le gestionnaire de travaux qui pourra être utilisé pour récupérer le statut de la tâche en cours.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le gestionnaire de travaux pour la tâche soumise.

Exemples

Exemple #1 Soumet et surveille un travail en arrière-plan

L'agent de cet exemple a un délai artificiel introduit pour simuler un travail dont l'exécution prend beaucoup de temps. Le script du client vérifie périodiquement le statut du travail en cours.

<?php

/* Crée un client */
$gmclient= new GearmanClient();

/* Ajoute un serveur par défaut */
$gmclient->addServer();

/* Exécute le client */
$job_handle $gmclient->doBackground("reverse""this is a test");

if (
$gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo 
"Code retour erroné\n";
  exit;
}

$done false;
do
{
   
sleep(3);
   
$stat $gmclient->jobStatus($job_handle);
   if (!
$stat[0]) // the job is known so it is not done
      
$done true;
   echo 
"Exécution : " . ($stat[1] ? "true" "false") . ", numérateur : " $stat[2] . ", dénominateur : " $stat[3] . "\n";
}
while(!
$done);

echo 
"fait !\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exécution : true, numérateur : 3, dénominateur : 14
Exécution : true, numérateur : 6, dénominateur : 14
Exécution : true, numérateur : 9, dénominateur : 14
Exécution : true, numérateur : 12, dénominateur : 14
Exécution : false, numérateur : 0, dénominateur : 0
fait !

Voir aussi



GearmanClient::doHigh

(PECL gearman >= 0.5.0)

GearmanClient::doHighExécute une seule tâche en priorité haute

Description

public string GearmanClient::doHigh ( string $function_name , string $workload [, string $unique ] )

Exécute une seule tâche en priorité haute et retourne une représentation du résultat sous la forme d'une chaîne de caractères. C'est aux fonctions GearmanClient et GearmanWorker d'accorder le format du résultat. Les tâches en priorités hautes seront exécutées avant celles dont la priorité est normale, voire, basse dans la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le résultat de la tâche sous la forme d'une chaîne de caractères.

Voir aussi



GearmanClient::doHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::doHighBackgroundExécute une tâche en priorité haute en arrière plan

Description

public string GearmanClient::doHighBackground ( string $function_name , string $workload [, string $unique ] )

Exécute une tâche en priorité haute en arrière plan, et retourne un gestionnaire de travail qui peut être utilisé pour récupérer le statut de la tâche. Les tâches en priorité haute seront exécutées avant les normales et les basses de la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le gestionnaire de travail de la tâche ajoutée.

Voir aussi



GearmanClient::doJobHandle

(PECL gearman >= 0.5.0)

GearmanClient::doJobHandleRécupère le gestionnaire de travaux pour la tâche en cours

Description

public string GearmanClient::doJobHandle ( void )

Récupère le gestionnaire de travaux pour la tâche en cours. Il peut être utilisé lors de multiples appels à la méthode GearmanClient::do(). Le gestionnaire de travaux peut alors être utilisé pour récupérer les informations sur la tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le gestionnaire de travaux pour la tâche en cours.

Voir aussi



GearmanClient::doLow

(PECL gearman >= 0.5.0)

GearmanClient::doLowExécute une seule tâche en priorité basse

Description

public string GearmanClient::doLow ( string $function_name , string $workload [, string $unique ] )

Exécute une seule tâche en priorité basse et retourne une représentation sous forme de chaîne de caractères du résultat. Il convient aux méthodes GearmanClient et GearmanWorker de valider le format du résultat. Les tâches dont la priorité est normale ou haute seront traitées en priorité par rapport aux tâches dont la priorité est basse dans la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Une représentation sous forme de chaîne de caractères du résultat de la tâche en cours.

Voir aussi



GearmanClient::doLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::doLowBackgroundExécute une tâche en priorité basse en arrière-plan

Description

public string GearmanClient::doLowBackground ( string $function_name , string $workload [, string $unique ] )

Exécute une tâche en priorité basse en arrière-plan, puis, retourne le gestionnaire de travaux qui pourra être utilisé pour récupérer le statut de la tâche en cours. Les tâches dont la priorité est normale et haute auront la priorité sur celle dont la priorité est basse dans la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le gestionnaire de travaux de la tâche soumise.

Voir aussi



GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatusRécupère le statut de la tâche en cours

Description

public array GearmanClient::doStatus ( void )

Retourne le statut de la tâche en cours. Il pourra être utilisé lors de multiples appels à la méthode GearmanClient::do().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau représentant le pourcentage de réalisation fourni sous la forme d'une fraction, dont le premier élément est le numérateur, et le second, le dénominateur.

Exemples

Exemple #1 Récupère le statut d'un travail dont l'exécution prend du temps

L'agent dans cet exemple a un délai artificiel ajouté lors de l'exécution de la fonction. Après chaque délai, il appèle la méthode GearmanJob::status() dont le client récupère l'information.

<?php

echo "Début\n";

# Crée un client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo 
"Envoi d'un travail\n";

# Envoi du travail
do
{
  
$result $gmclient->do("reverse""Hello!");

  
# Vérifie les différents paquets et erreurs retournés.
  
switch($gmclient->returnCode())
  {
    case 
GEARMAN_WORK_DATA:
      break;
    case 
GEARMAN_WORK_STATUS:
      
# Récupère le statut du travail en cours
      
list($numerator$denominator)= $gmclient->doStatus();
      echo 
"Statut : $numerator/$denominator complete\n";
      break;
    case 
GEARMAN_WORK_FAIL:
      echo 
"Échec \n";
      exit;
    case 
GEARMAN_SUCCESS:
      break;
    default:
      echo 
"RET : " $gmclient->returnCode() . "\n";
      exit;
  }
}
while(
$gmclient->returnCode() != GEARMAN_SUCCESS);

echo 
"Succès : $result\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Début
Envoi d'un travail
Statut : 1/6 complete
Statut : 2/6 complete
Statut : 3/6 complete
Statut : 4/6 complete
Statut : 5/6 complete
Statut : 6/6 complete
Succès : !olleH

Voir aussi



GearmanClient::echo

(PECL gearman >= 0.5.0)

GearmanClient::echoEnvoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour

Description

public bool GearmanClient::echo ( string $workload )

Envoi des données arbitraires à tous les serveurs de travaux afin de vérifier qu'ils les affichent bien en retour. Les données envoyées ne sont pas utilisées ou analysées, mais uniquement aux fins de test et de débogage.

Liste de paramètres

workload

Données arbitraires linéarisées

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



GearmanClient::error

(PECL gearman >= 0.5.0)

GearmanClient::errorRetourne la dernière erreur rencontrée sous forme de chaîne de caractères

Description

public string GearmanClient::error ( void )

Retourne la dernière erreur rencontrée sous forme de chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères humainement lisibile représentant la dernière erreur survenue.

Voir aussi



GearmanClient::getErrno

(PECL gearman >= 0.5.0)

GearmanClient::getErrnoRécupère la valeur d'errno

Description

public int GearmanClient::getErrno ( void )

Retourne la valeur d'errno dans le vas d'une valeur de retour GEARMAN_ERRNO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une valeur d'errno Gearman valide.

Voir aussi



GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

GearmanClient::jobStatus -- gearman_job_statusRécupère le statut d'un travail en arrière-plan

Description

Object oriented style (method):

public array GearmanClient::jobStatus ( string $job_handle )

Récupère le statut d'un travail en arrière-plan pour le gestionnaire de travaux fourni. Les informations de statut spécifient si le travail est connu, si le travail est actuellement en cours d'exécution, ainsi que le pourcentage de réalisation.

Liste de paramètres

job_handle

Le gestionnaire de travaux assigné par le serveur Gearman

Valeurs de retour

Un tableau contenant les informations de statut pour le travail correspondant au gestionnaire de travaux fourni. Le premier élément est un booléen indiquant si le travail est connu, le second est un booléen indiquant si le travail est en cours d'exécution, le troisième et le quatrième correspondent au numérateur et dénominateur du pourcentage de réalisation.

Exemples

Exemple #1 Surveille le statut d'un travail en arrière-plan mettant du temps à s'exécuter

<?php

/* Crée un client */
$gmclient= new GearmanClient();

/* Ajoute un serveur par défaut */
$gmclient->addServer();

/* Exécute le client */
$job_handle $gmclient->doBackground("reverse""this is a test");

if (
$gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo 
"Mauvais code retour\n";
  exit;
}

$done false;
do
{
   
sleep(3);
   
$stat $gmclient->jobStatus($job_handle);
   if (!
$stat[0]) // le travail est connu, signifiant qu'il n'est pas terminé
      
$done true;
   echo 
"Exécution : " . ($stat[1] ? "true" "false") . ", numérateur : " $stat[2] . ", dénominateur : " $stat[3] . "\n";
}
while(!
$done);

echo 
"fait !\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exécution : true, numérateur : 3, dénominateur : 14
Exécution : true, numérateur : 6, dénominateur : 14
Exécution : true, numérateur : 9, dénominateur : 14
Exécution : true, numérateur : 12, dénominateur : 14
Exécution : false, numérateur : 0, dénominateur : 0
fait !

Voir aussi



GearmanClient::removeOptions

(PECL gearman >= 0.6.0)

GearmanClient::removeOptionsSupprime les options du client

Description

public bool GearmanClient::removeOptions ( int $options )

Supprime une ou plusieurs options.

Liste de paramètres

options

Les options à supprimer.

Valeurs de retour

Retourne toujours TRUE.



GearmanClient::returnCode

(PECL gearman >= 0.5.0)

GearmanClient::returnCodeRécupère le dernier code Gearman retourné

Description

public int GearmanClient::returnCode ( void )

Retourne le dernier code Gearman retourné.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code retour Gearman valide.



GearmanClient::runTasks

(PECL gearman >= 0.5.0)

GearmanClient::runTasksExécute une liste de tâches en parallèle

Description

public bool GearmanClient::runTasks ( void )

Pour un jeu de tâches précédemment ajoutées avec les méthodes GearmanClient::addTask(), GearmanClient::addTaskHigh(), GearmanClient::addTaskLow(), GearmanClient::addTaskBackground(), GearmanClient::addTaskHighBackground(), ou GearmanClient::addTaskLowBackground(), cette méthode démarre l'exécution des tâches en parallèle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setClientCallback

(PECL gearman <= 0.5.0)

GearmanClient::setClientCallbackDéfinit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche (obsolète)

Description

public void GearmanClient::setClientCallback ( callback $callback )

Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche. La fonction de rappel prend un seul argument, un objet GearmanTask.

Note:

Cette méthode a été remplacée par la méthode GearmanClient::setDataCallback() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

callback

Une fonction ou un méthode à appeler

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallbackDéfinit une fonction à appeler une fois la tâche terminée

Description

public bool GearmanClient::setCompleteCallback ( callback $callback )

Définit une fonction à appeler lorsqu'une tâche se termine. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setContext

(PECL gearman >= 0.6.0)

GearmanClient::setContextDéfinit le contexte d'une application

Description

public bool GearmanClient::setContext ( string $context )

Définit une chaîne arbitraire à fournir comme contexte de l'application qui pourra être récupérée plus tard via la méthode GearmanClient::context().

Liste de paramètres

context

Données de contexte

Valeurs de retour

Retourne toujours TRUE.

Voir aussi



GearmanClient::setCreatedCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCreatedCallbackDéfinit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente

Description

public bool GearmanClient::setCreatedCallback ( string $callback )

Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente du serveur de travaux gearman. La fonction de rappel doit accepter un seul argument, un objet GearmanClient.

Liste de paramètres

callback

Une fonction à appeler

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setData

(PECL gearman <= 0.5.0)

GearmanClient::setDataDéfinit les données de l'application (obsolète)

Description

public bool GearmanClient::setData ( string $data )

Définit les données de l'application qui pourront ensuite être récupérées via la méthode GearmanClient::data().

Note:

Cette méthode a été remplacée par la méthode GearmanCient::setContext() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

data

Valeurs de retour

Retourne toujours TRUE.

Voir aussi



GearmanClient::setDataCallback

(PECL gearman >= 0.6.0)

GearmanClient::setDataCallbackDéfinit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche

Description

public bool GearmanClient::setDataCallback ( callback $callback )

Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction ou une méthode à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setExceptionCallback

(PECL gearman >= 0.5.0)

GearmanClient::setExceptionCallbackDéfinit une fonction de rappel pour les exceptions émises par l'agent

Description

public bool GearmanClient::setExceptionCallback ( callback $callback )

Spécifie une fonction à appeler lorsqu'un agent émet une exception.

Liste de paramètres

callback

Fonction à appeler lorsque l'agent émet une exception.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setFailCallback

(PECL gearman >= 0.5.0)

GearmanClient::setFailCallbackDéfinit une fonction de rappel à appeler lorsqu'un travail échoue

Description

public bool GearmanClient::setFailCallback ( callback $callback )

Définit une fonction de rappel à utiliser lorsqu'une tâche échoue. La fonction doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setOptions

(PECL gearman >= 0.5.0)

GearmanClient::setOptionsDéfinit les options du client

Description

public bool GearmanClient::setOptions ( int $options )

Définit une ou plusieurs options du client.

Liste de paramètres

options

Les options à définir.

Valeurs de retour

Retourne toujours TRUE.



GearmanClient::setStatusCallback

(PECL gearman >= 0.5.0)

GearmanClient::setStatusCallbackDéfinit une fonction de rappel pour collecter les statuts d'un tâche

Description

public bool GearmanClient::setStatusCallback ( callback $callback )

Définit une fonction de rappel à utiliser pour récupérer les informations de statut mis à jour depuis l'agent. La fonction doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeoutDéfinit le délai d'attente d'une activité du socket I/O

Description

public bool GearmanClient::setTimeout ( int $timeout )

Définit le délai d'attente d'une activité du socket I/O.

Liste de paramètres

timeout

Un intervalle de temps, en millisecondes.

Valeurs de retour

Retourne toujours TRUE.



GearmanClient::setWarningCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWarningCallbackDéfinit une fonction de rappel lors de l'émission d'alerte depuis l'agent

Description

public bool GearmanClient::setWarningCallback ( callback $callback )

Définit une fonction à appeler lorsqu'un agent lance une alerte. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::setWorkloadCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWorkloadCallbackDéfinit une fonction de rappel lors de la réception de mises à jour de données incrémentales

Description

public bool GearmanClient::setWorkloadCallback ( callback $callback )

Définit une fonction à appeler lorsqu'un agent a besoin d'envoyer des données avant la fin d'un travail. Un agent peut le faire lorsqu'il doit envoyer des mises à jour, envoyer des résultats partiels, ou envoyer des données en temps réel lors de l'exécution de travaux qui prennent beaucoup de temps. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanClient::timeout

(PECL gearman >= 0.6.0)

GearmanClient::timeoutRécupère la valeur du délai d'activité du socket I/O

Description

public int GearmanClient::timeout ( void )

Retourne la valeur du délai, en millisecondes, à attendre une activité du socket I/O.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le délai d'attente, en millisecondes, d'une activité I/O. Une valeur négative signifie que le délai est infinie.

Voir aussi


Sommaire



La classe GearmanJob

Introduction

Description de la classe.

Synopsis de la classe

GearmanJob {
/* Méthodes */
public bool complete ( string $result )
__construct ( void )
public bool data ( string $data )
public bool exception ( string $exception )
public bool fail ( void )
public string functionName ( void )
public string handle ( void )
public int returnCode ( void )
public bool sendComplete ( string $result )
public bool sendData ( string $data )
public bool sendException ( string $exception )
public bool sendFail ( void )
public bool sendStatus ( int $numerator , int $denominator )
public bool sendWarning ( string $warning )
public bool setReturn ( string $gearman_return_t )
public bool status ( int $numerator , int $denominator )
public string unique ( void )
public bool warning ( string $warning )
public string workload ( void )
public int workloadSize ( void )
}

GearmanJob::complete

(PECL gearman <= 0.5.0)

GearmanJob::completeEnvoie les résultats ainsi que le statut complet (obsolète)

Description

public bool GearmanJob::complete ( string $result )

Envoie les résultats ainsi que le statut complet mis à jour pour ce travail.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendComplete() dans la version 0.6.0 de l'extension Gearman.

Liste de paramètres

result

Les données linéarisées du résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::__construct

(PECL gearman >= 0.5.0)

GearmanJob::__constructCrée une nouvelle instance GearmanJob

Description

GearmanJob::__construct ( void )

Crée une nouvelle instance GearmanJob représentant un travail assigné à un agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanJob.



GearmanJob::data

(PECL gearman <= 0.5.0)

GearmanJob::dataEnvoie des données pour un travail en cours d'exécution (obsolète)

Description

public bool GearmanJob::data ( string $data )

Envoie des données vers un serveur de travaux (et à tous les clients à l'écoute) pour ce travail.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendData() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

data

Données linéarisées arbitraires.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::exception

(PECL gearman <= 0.5.0)

GearmanJob::exceptionEnvoie une exception pour un travail en cours d'exécution (obsolète)

Description

public bool GearmanJob::exception ( string $exception )

Envoie l'exception fournie lorsque ce travail est en cours d'exécution.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendException() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

exception

Une description d'exception.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::fail

(PECL gearman <= 0.5.0)

GearmanJob::failEnvoie un statut d'échec (obsolète)

Description

public bool GearmanJob::fail ( void )

Envoie un statut d'échec pour ce travail, indiquant que le travail a échoué de façon inattendu (à contrario d'un échec avec une émission d'une exception donnée).

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendFail() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::functionName

(PECL gearman >= 0.5.0)

GearmanJob::functionNameRécupère le nom de la fonction

Description

public string GearmanJob::functionName ( void )

Retourne le nom de la fonction pour ce travail. C'est la fonction exécutée par l'agent pour exécuter le travail.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la fonction.

Voir aussi



GearmanJob::handle

(PECL gearman >= 0.5.0)

GearmanJob::handleRécupère le gestionnaire de travaux

Description

public string GearmanJob::handle ( void )

Retourne le gestionnaire de travaux assigné par le serveur de travaux.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un gestionnaire de travaux.

Voir aussi



GearmanJob::returnCode

(PECL gearman >= 0.5.0)

GearmanJob::returnCodeRécupère le dernier code retourné

Description

public int GearmanJob::returnCode ( void )

Retourne le dernier code retourné par le serveur de travaux.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code de retour valide Gearman.

Voir aussi



GearmanJob::sendComplete

(PECL gearman >= 0.6.0)

GearmanJob::sendCompleteEnvoie le résultat ainsi que le statut complet

Description

public bool GearmanJob::sendComplete ( string $result )

Envoie les données du résultat ainsi que le statut complet mis à jour pour ce travail.

Liste de paramètres

result

Les données linéarisées du résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::sendData

(PECL gearman >= 0.6.0)

GearmanJob::sendDataEnvoie les données pour un travail en cours d'exécution

Description

public bool GearmanJob::sendData ( string $data )

Envoie les données au serveur de travaux (et à tous les clients à l'écoute) pour ce travail.

Liste de paramètres

data

Données linéarisées arbitraires.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::sendException

(PECL gearman >= 0.6.0)

GearmanJob::sendExceptionEnvoie une exception pour un travail en cours d'exécution

Description

public bool GearmanJob::sendException ( string $exception )

Envoie l'exception fournie lors de l'exécution de ce travail.

Liste de paramètres

exception

Une description d'exception.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::sendFail

(PECL gearman >= 0.6.0)

GearmanJob::sendFailEnvoie un statut d'échec

Description

public bool GearmanJob::sendFail ( void )

Envoie un statut d'échec pour ce travail, indiquant que le travail a échoué de façon inatendue (à contrario d'une erreur émettant une exception).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::sendStatus

(PECL gearman >= 0.6.0)

GearmanJob::sendStatusEnvoie un statut

Description

public bool GearmanJob::sendStatus ( int $numerator , int $denominator )

Envoie des informations de statut au serveur de travaux ainsi qu'à tous les clients à l'écoute. Utilisez cette méthode pour spécifier le pourcentage de réalisation du travail courant.

Liste de paramètres

numerator

Le numérateur du taux de réalisation, sous forme d'une fraction.

denominator

Le dénominateur du taux de réalisation, sous forme d'une fraction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::sendWarning

(PECL gearman >= 0.6.0)

GearmanJob::sendWarningEnvoie une alerte

Description

public bool GearmanJob::sendWarning ( string $warning )

Envoie une alerte pour ce travail pendant son exécution.

Liste de paramètres

warning

Un message d'alerte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::setReturn

(PECL gearman >= 0.5.0)

GearmanJob::setReturnDéfinit une valeur de retour

Description

public bool GearmanJob::setReturn ( string $gearman_return_t )

Définit une valeur de retour pour ce travail, indiquant la façon dont s'est terminée ce travail.

Liste de paramètres

gearman_return_t

Une valeur de retour valide Gearman.

Valeurs de retour



GearmanJob::status

(PECL gearman <= 0.5.0)

GearmanJob::statusEnvoie un statut (obsolète)

Description

public bool GearmanJob::status ( int $numerator , int $denominator )

Envoie des informations de statut au serveur de travaux ainsi qu'à tous les clients à l'écoute. Utilisez cette méthode pour spécifier le pourcentage de réalisation d'un travail.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendStatus() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

numerator

Le numérateur du taux de réalisation, sous forme d'une fraction.

denominator

Le dénominateur du taux de réalisation, sous forme d'une fraction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::unique

(PECL gearman >= 0.5.0)

GearmanJob::uniqueRécupère l'identifiant unique

Description

public string GearmanJob::unique ( void )

Retourne l'identifiant unique pour ce travail. L'identifiant est assigné par le client.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant unique.

Voir aussi



GearmanJob::warning

(PECL gearman <= 0.5.0)

GearmanJob::warningEnvoie une alerte (obsolète)

Description

public bool GearmanJob::warning ( string $warning )

Envoie une alerte pour ce travail lors de son exécution.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendWarning() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

warning

Un message d'alerte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



GearmanJob::workload

(PECL gearman >= 0.5.0)

GearmanJob::workloadRécupère la charge de travail

Description

public string GearmanJob::workload ( void )

Récupère la charge pour ce travail. Ceux sont les données linéarisées à analyser par l'agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données linéarisées.

Voir aussi



GearmanJob::workloadSize

(PECL gearman >= 0.5.0)

GearmanJob::workloadSizeRécupère la taille de la charge de travail

Description

public int GearmanJob::workloadSize ( void )

Retourne la taille de la charge pour ce travail (les données que l'agent doit traiter) en octets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille, en octets.

Voir aussi


Sommaire



La classe GearmanTask

Introduction

Description de la classe.

Synopsis de la classe

GearmanTask {
/* Méthodes */
__construct ( void )
public GearmanTask create ( void )
public string data ( void )
public int dataSize ( void )
public string function ( void )
public string functionName ( void )
public bool isKnown ( void )
public bool isRunning ( void )
public string jobHandle ( void )
public array recvData ( int $data_len )
public int returnCode ( void )
public int sendData ( string $data )
public int sendWorkload ( string $data )
public int taskDenominator ( void )
public int taskNumerator ( void )
public string unique ( void )
public string uuid ( void )
}

GearmanTask::__construct

(PECL gearman >= 0.5.0)

GearmanTask::__constructCrée une instance GearmanTask

Description

GearmanTask::__construct ( void )

Crée une instance GearmanTask représentant une tâche à soumettre au serveur de tâches.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanTask.



GearmanTask::create

(PECL gearman <= 0.5.0)

GearmanTask::createCrée une tâche (obsolète)

Description

public GearmanTask GearmanTask::create ( void )

Retourne un nouvel objet GearmanTask.

Note:

Cette méthode a été supprimée depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanTask ou FALSE si une erreur survient.



GearmanTask::data

(PECL gearman >= 0.5.0)

GearmanTask::dataRécupère les données retournées par une tâche

Description

public string GearmanTask::data ( void )

Retourne les données retournées d'une tâche par un agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données linéarisées, ou FALSE s'il n'y a aucune donnée.

Voir aussi



GearmanTask::dataSize

(PECL gearman >= 0.5.0)

GearmanTask::dataSizeRécupère la taille des données retournées

Description

public int GearmanTask::dataSize ( void )

Retourne la taille des données retournées d'une tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille des données, ou FALSE s'il n'y a pas de données.

Voir aussi



GearmanTask::function

(PECL gearman <= 0.5.0)

GearmanTask::functionRécupère le nom de la fonction associée (obsolète)

Description

public string GearmanTask::function ( void )

Retourne le nom de la fonction associée à cette tâche, i.e., la fonction appelée par l'agent Gearman.

Note:

Cette méthode a été remplacée par la méthode GearmanTask::functionName() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nom de fonction.



GearmanTask::functionName

(PECL gearman >= 0.6.0)

GearmanTask::functionNameRécupère le nom de la fonction associée

Description

public string GearmanTask::functionName ( void )

Retourne le nom de la fonction associée à cette tâche, i.e., la fonction appelée par l'agent Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nom de fonction.



GearmanTask::isKnown

(PECL gearman >= 0.5.0)

GearmanTask::isKnownVérifie si une tâche est connue

Description

public bool GearmanTask::isKnown ( void )

Récupère les informations de statut si la tâche est connue sur le serveur de travaux.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la tâche est connue, FALSE sinon.



GearmanTask::isRunning

(PECL gearman >= 0.5.0)

GearmanTask::isRunningVérifie si la tâche est actuellement en fonctionnement

Description

public bool GearmanTask::isRunning ( void )

Indique si la tâche est actuellement en fonctionnement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la tâche est en fonctionnement, FALSE sinon.



GearmanTask::jobHandle

gearman_job_handle

(PECL gearman >= 0.5.0)

GearmanTask::jobHandle -- gearman_job_handleRécupère le gestionnaire de travaux

Description

public string GearmanTask::jobHandle ( void )

Récupère le gestionnaire de travaux pour cette tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le gestionnaire de travaux.

Voir aussi



GearmanTask::recvData

(PECL gearman >= 0.5.0)

GearmanTask::recvDataLit le travail ou les données retournées par une tâche dans un buffer

Description

public array GearmanTask::recvData ( int $data_len )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

data_len

Longueur des données à lire.

Valeurs de retour

Un tableau dont le premier élément est la longueur des données lues, et le second, le buffer de données. Retourne FALSE si la lecture échoue.

Voir aussi



GearmanTask::returnCode

(PECL gearman >= 0.5.0)

GearmanTask::returnCodeRécupère le dernier code retourné

Description

public int GearmanTask::returnCode ( void )

Retourne le dernier code retourné par Gearman pour une tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code valide de retour Gearman.

Voir aussi



GearmanTask::sendData

(PECL gearman <= 0.5.0)

GearmanTask::sendDataEnvoie des données pour une tâche (obsolète)

Description

public int GearmanTask::sendData ( string $data )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

data

Données à envoyer à l'agent.

Valeurs de retour

La longueur des données envoyées, ou FALSE si l'envoi a échoué.

Voir aussi



GearmanTask::sendWorkload

(PECL gearman >= 0.6.0)

GearmanTask::sendWorkloadEnvoie les données pour une tâche

Description

public int GearmanTask::sendWorkload ( string $data )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

data

Données à envoyer à l'agent.

Valeurs de retour

La longueur des données çà envoyer, ou FALSE si l'envoi échoue.

Voir aussi



GearmanTask::taskDenominator

(PECL gearman >= 0.5.0)

GearmanTask::taskDenominatorRécupère le dénominateur du taux de réalisation

Description

public int GearmanTask::taskDenominator ( void )

Retourne le dénominateur du taux de réalisation de la tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nombre entre 0 et 100, ou FALSE s'il ne peut être déterminé.

Voir aussi



GearmanTask::taskNumerator

(PECL gearman >= 0.5.0)

GearmanTask::taskNumeratorRécupère le numérateur du taux de réalisation

Description

public int GearmanTask::taskNumerator ( void )

Retourne le numérateur du taux de réalisation de la tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nombre entre 0 et 100, ou FALSE s'il ne peut être déterminé.

Voir aussi



GearmanTask::unique

(PECL gearman >= 0.6.0)

GearmanTask::uniqueRécupère l'identifiant unique de la tâche

Description

public string GearmanTask::unique ( void )

Retourne l'identifiant unique de la tâche. Il est assigné par la méthode GearmanClient, contrairement au gestionnaire de travaux qui est défini par le serveur de travaux Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant unique, ou FALSE si aucun identifiant n'a été assigné.

Voir aussi



GearmanTask::uuid

(PECL gearman <= 0.5.0)

GearmanTask::uuidRécupère l'identifiant unique pour une tâche (obsolète)

Description

public string GearmanTask::uuid ( void )

Retourne l'identifiant unique pour une tâche. Il est assigné par la méthode GearmanClient, contrairement au gestionnaire de travaux qui est défini par le serveur de travaux Gearman.

Note:

Cette méthode a été remplacée par la méthode GearmanTask::unique() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant unique, ou FALSE si aucun identifiant n'est assigné.

Voir aussi


Sommaire



La classe GearmanWorker

Introduction

Description de la classe.

Synopsis de la classe

GearmanWorker {
/* Méthodes */
public bool addFunction ( string $function_name , callback $function [, mixed &$context [, int $timeout ]] )
public bool addOptions ( int $option )
public bool addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )
public bool addServers ( string $servers = 127.0.0.1:4730 )
public void clone ( void )
__construct ( void )
public bool echo ( string $workload )
public string error ( void )
public int getErrno ( void )
public int options ( void )
public bool register ( string $function_name [, int $timeout ] )
public bool removeOptions ( int $option )
public int returnCode ( void )
public bool setOptions ( int $option )
public bool setTimeout ( int $timeout )
public int timeout ( void )
public bool unregister ( string $function_name )
public bool unregisterAll ( void )
public bool wait ( void )
public bool work ( void )
}

GearmanWorker::addFunction

(PECL gearman >= 0.5.0)

GearmanWorker::addFunctionEnregistre et ajoute une fonction de rappel

Description

public bool GearmanWorker::addFunction ( string $function_name , callback $function [, mixed &$context [, int $timeout ]] )

Enregistre une fonction de rappel avec le serveur de travaux et spécifie un rappel correspondant à cette fonction. Optionnellement, fixe des données de contexte de l'application à utiliser lorsque la fonction de rappel est appelée, ainsi qu'un délai maximal d'exécution.

Liste de paramètres

function_name

Le nom de la fonction à enregistrer avec le serveur de travaux

function

Une fonction de rappel à appeler lorsqu'un travail est soumis

context

Une référence à des données de contexte de l'application qui peuvent être modifiées par la fonction de l'agent.

timeout

Un intervalle de temps, en secondes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Agent simple qui utilise des données de contexte de l'application

<?php

# Crée un agent Gearman
$worker= new GearmanWorker(); 

# Ajoute le serveur par défaut (localhost)
$worker->addServer(); 

# Définie une variable qui contient les données de l'application
$count0

# Ajoute la fonction "reverse"
$worker->addFunction("reverse""reverse_cb", &$count);

# Démarre l'agent
while ($worker->work());

function 
reverse_cb($job$count

  
$count++; 
  return 
"$count: " strrev($job->workload()); 


?>

Exécution d'un client qui soumet 2 travaux pour la fonction reverse affichera quelque chose comme :

1: olleh
2: dlrow

Voir aussi



GearmanWorker::addOptions

(PECL gearman >= 0.6.0)

GearmanWorker::addOptionsAjout des options à l'agent

Description

public bool GearmanWorker::addOptions ( int $option )

Ajout une ou des options à l'agent.

Liste de paramètres

option

Les options à ajouter

Valeurs de retour

Retourne toujours TRUE.

Voir aussi



GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServerAjoute un serveur de travaux

Description

public bool GearmanWorker::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )

Ajoute un serveur de travaux à cet agent. Il sera ajouter à une liste de serveurs à utiliser pour exécuter les travaux. Aucun socket I/O n'intervient ici.

Liste de paramètres

host

Le nom d'hôte du serveur de travaux.

port

Le port du serveur de travaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de serveurs Gearman

<?php
$worker
= new GearmanWorker(); 
$worker->addServer("10.0.0.1"); 
$worker->addServer("10.0.0.2"7003);
?>

Voir aussi



GearmanWorker::addServers

(PECL gearman >= 0.5.0)

GearmanWorker::addServersAjoute plusieurs serveurs de travaux

Description

public bool GearmanWorker::addServers ( string $servers = 127.0.0.1:4730 )

Ajoute un ou plusieurs serveurs de travaux à l'agent. Ils seront ajoutés à une liste de serveurs qui pourront être utilisés pour exécuter des travaux. Aucun socket I/O n'intervient ici.

Liste de paramètres

servers

Une liste de serveurs de travaux séparés par une virgule, au format hôte:port. Si le port n'est pas spécifié, la valeur par défaut utilisée sera 4730.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de 2 serveurs de travaux

<?php

$worker
= new GearmanWorker(); 
$worker->addServers("10.0.0.1,10.0.0.2:7003");

?>

Voir aussi



GearmanWorker::clone

(PECL gearman >= 0.5.0)

GearmanWorker::cloneCrée une copie d'un agent

Description

public void GearmanWorker::clone ( void )

Crée une copie d'un agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanWorker.



GearmanWorker::__construct

(PECL gearman >= 0.5.0)

GearmanWorker::__constructCrée une instance GearmanWorker

Description

GearmanWorker::__construct ( void )

Crée une nouvelle instance de GearmanWorker représentant un agent qui se connecte au serveur de travaux et accepte des tâches à exécuter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanWorker.

Voir aussi



GearmanWorker::echo

(PECL gearman >= 0.6.0)

GearmanWorker::echoTest la réponse d'un serveur de travaux

Description

public bool GearmanWorker::echo ( string $workload )

Envois les données à tous les serveurs de travaux pour vérifier si ils les retournent. C'est une fonction de test pour vérifier si les serveurs de travaux répondent correctement.

Liste de paramètres

workload

Données linéarisées arbitraires.

Valeurs de retour

Retourne une valeur standard Gearman.

Voir aussi

  • GearmanClient::echo() - Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour



GearmanWorker::error

(PECL gearman >= 0.5.0)

GearmanWorker::error Récupère la dernière erreur survenue

Description

public string GearmanWorker::error ( void )

Retourne la dernière erreur survenue, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une erreur, sous la forme d'une chaîne de caractères.

Voir aussi



GearmanWorker::getErrno

(PECL gearman >= 0.5.0)

GearmanWorker::getErrnoRécupère la errno

Description

public int GearmanWorker::getErrno ( void )

Retourne la valeur de errno dans le cas d'une valeur de retour GEARMAN_ERRNO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une errno valide.

Voir aussi



GearmanWorker::options

(PECL gearman >= 0.6.0)

GearmanWorker::optionsRécupère les options de l'agent

Description

public int GearmanWorker::options ( void )

Récupère les options précédemment définies pour l 'agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les options actuellement définies pour l'agent.

Voir aussi



GearmanWorker::register

(PECL gearman >= 0.6.0)

GearmanWorker::registerEnregistre une fonction sur un serveur de travaux

Description

public bool GearmanWorker::register ( string $function_name [, int $timeout ] )

Enregistre un nom de fonction avec un serveur de travaux avec un optionnel délai maximal d'exécution. Ce délai spécifie le nombre de secondes que le serveur doit attendre avant de marquer une tâche comme ayant échouée. Si ce délai est défini à zéro, il n'y aura aucun délai.

Liste de paramètres

function_name

Le nom de la fonction à enregistrer avec le serveur de travaux.

timeout

Un intervalle de temps, en secondes.

Valeurs de retour

Une valeur de retour Gearman standard.

Voir aussi



GearmanWorker::removeOptions

(PECL gearman >= 0.6.0)

GearmanWorker::removeOptionsSupprime des options de l'agent

Description

public bool GearmanWorker::removeOptions ( int $option )

Supprime une ou plusieurs options de l'agent.

Liste de paramètres

option

Les options à supprimer

Valeurs de retour

Retourne toujours TRUE.

Voir aussi



GearmanWorker::returnCode

(PECL gearman >= 0.5.0)

GearmanWorker::returnCodeRécupère le dernier code Gearman retourné

Description

public int GearmanWorker::returnCode ( void )

Retourne le dernier code Gearman retourné.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code de retour Gearman valide.

Voir aussi



GearmanWorker::setOptions

(PECL gearman >= 0.5.0)

GearmanWorker::setOptionsDéfinit les options de l'agent

Description

public bool GearmanWorker::setOptions ( int $option )

Définit une ou plusieurs options de l'agent.

Liste de paramètres

option

Les options à définir.

Valeurs de retour

Retourne toujours TRUE.

Voir aussi



GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeoutDéfinit le délai d'attente maximal d'activité du socket I/O

Description

public bool GearmanWorker::setTimeout ( int $timeout )

Définit l'intervalle de temps à attendre une activité du socket I/O.

Liste de paramètres

timeout

Un intervalle de temps, en millisecondes. Une valeur négative indique que le délai sera infini.

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Un agent simple qui attend 5 secondes

<?php

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre une fonction "reverse" avec le serveur.
$gmworker->addFunction("reverse""reverse_fn");

# Définit le délai d'attente à 5 secondes
$gmworker->setTimeout(5000);

echo 
"Attente d'un travail...\n";
while(@
$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
  if (
$gmworker->returnCode() == GEARMAN_TIMEOUT)
  {
    
# Normalement, vous devriez faire quelques lignes utiles ici...
    
echo "Délai d'attente expiré. Attente du prochain travail...\n";
    continue;
  }

  if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo 
"return_code: " $gmworker->returnCode() . "\n";
    break;
  }
}

echo 
"Fait\n";

function 
reverse_fn($job)
{
  return 
strrev($job->workload());
}

?>

L'exécution d'un agent avec aucun travail de soumis générera un affichage qui ressemblera à quelques choses comme :

Début
Attente d'un travail...
Délai d'attente expiré. Attente du prochain travail...
Délai d'attente expiré. Attente du prochain travail...
Délai d'attente expiré. Attente du prochain travail...

Voir aussi



GearmanWorker::timeout

(PECL gearman >= 0.6.0)

GearmanWorker::timeoutRécupère le délai d'attente de l'activité du socket I/O

Description

public int GearmanWorker::timeout ( void )

Retourne le délai d'attente courant, en millisecondes, de l'activité du socket I/O.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une période de temps, en millisecondes. Une valeur négative indique que le délai est infini.

Voir aussi



GearmanWorker::unregister

(PECL gearman >= 0.6.0)

GearmanWorker::unregisterSupprime une fonction des serveurs de travaux

Description

public bool GearmanWorker::unregister ( string $function_name )

Supprime une fonction des serveurs de travaux, faisant ainsi qu'aucun travail ne sera envoyé à l'agent pour cette fonction.

Liste de paramètres

function_name

Le nom d'une fonction à supprimer du serveur de travaux.

Valeurs de retour

Une valeur de retour standard Gearman.

Voir aussi



GearmanWorker::unregisterAll

(PECL gearman >= 0.6.0)

GearmanWorker::unregisterAllSupprime toutes les fonctions des serveurs de travaux

Description

public bool GearmanWorker::unregisterAll ( void )

Supprime toutes les fonctions précédemment enregistrées, s'assurant ainsi qu'aucun travail ne sera envoyé à l'agent avec ces fonctions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une valeur de retour standard Gearman.

Voir aussi



GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::waitAttente une activité d'un ou plusieurs serveurs de travaux

Description

public bool GearmanWorker::wait ( void )

Met à attente l'agent d'une activité d'un ou plusieurs serveurs de travaux lors d'un fonctionnement en mode I/O non bloquant. En cas d'échec, une alerte de niveau E_WARNING sera émise avec le contenu de la dernière erreur Gearman survenue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécution d'un agent en mode non bloquant

<?php

echo "Début\n";

# Crée un nouvel agent
$worker= new GearmanWorker();

# Rend l'agent non bloquant
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING); 

# Ajoute un serveur par défaut (localhost, port 4730)
$worker->addServer(); 

# Ajoute une fonction "reverse"
$worker->addFunction('reverse''reverse_fn');

# Tente de récupérer un travail
while (@$worker->work() ||
       
$worker->returnCode() == GEARMAN_IO_WAIT ||
       
$worker->returnCode() == GEARMAN_NO_JOBS)
{
  if (
$worker->returnCode() == GEARMAN_SUCCESS)
    continue;

  echo 
"Attente du premier travail...\n";
  if (!@
$worker->wait()) 
  { 
    if (
$worker->returnCode() == GEARMAN_NO_ACTIVE_FDS
    { 
      
# Nous ne sommes connectés à aucun serveur ; nous attendons donc un peu
      # avant de tenter une reconnexion.
      
sleep(5); 
      continue; 
    } 
    break; 
  } 


echo 
"Erreur de l'agent : " $worker->error() . "\n";

function 
reverse_fn($job)
{
  return 
strrev($job->workload());
}


?>

Voir aussi



GearmanWorker::work

(PECL gearman >= 0.5.0)

GearmanWorker::workAttend et exécute un travail

Description

public bool GearmanWorker::work ( void )

Attend un travail et appèle la fonction de rappel correspondante. Émets une alerte de type E_WARNING contenant la dernière erreur Gearman survenue si le code retourné n'est pas une des constantes suivantes : GEARMAN_SUCCESS, GEARMAN_IO_WAIT, ou GEARMAN_WORK_FAIL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec GearmanWorker::work()

<?php

# Crée un agent
$worker = new GearmanWorker(); 

# Ajoute un serveur de travaux par défaut (localhost)
$worker->addServer(); 

# Ajoute la fonction "reverse"
$worker->addFunction("reverse""my_reverse_function"); 

# Démarre l'écoute de l'agent afin de récupérer un travail
while ($worker->work()); 
 
function 
my_reverse_function($job

  return 
strrev($job->workload()); 
}

?>

Voir aussi


Sommaire




mqseries


Introduction

Cette extension fournit une interface de communication avec les serveurs de queue d'IBM WebSphere MQ.

L'interface imite l'API du client C de WebSphere MQ Series autant que possible, en utilisant les mêmes conventions de noms et fonctionnalités. Afin de comprendre le fonctionnement de cette extension, un minimum de connaissance de l'interface C est nécessaire.

Pour les MQ-options, MQ-structures, MQ-results etc., reportez-vous au "WebSphere MQ Application Programming Guide" et "WebSphere MQ Application Programming Reference".



Installation/Configuration

Sommaire


Pré-requis

Une installation fonctionnelle IBM WebSphere MQ. Pour la compilation de l'extension, le SDK de IBM WebSphere MQ est aussi nécessaire.

Note: Soyez prévenus que lorsque vous fonctionne avec le client IBM WebSphere MQ, certaines méthodes ne sont pas disponibles. Ce n'est pas un problème avec l'extension, mais simplement la manière de fonctionner de WebSphere MQ Client Interface.

Pré-requis d'installation sur une plate-forme non-windows

Compilez l'extension et placez-la dans le dossier d'extension de PHP.

Pré-requis d'installation sur une plate-forme Windows

Pas de pré-requis additionnel.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mqseries.

Note: Le nom officiel de cette extension est mqseries.

Il y a deux moyens de se connecter au gestionnaire de queue. Ils dépendent de comment l'extension a été compilée.

  • Premièrement, et aussi par défaut, il y a la bibliothèque mqic. En compilant et liant l'extension avec les bibliothèques IBM WebSphere MQSeries, on peut se connecter à la Queue manager avec l'interface client. Les connexions distantes sont aussi possibles de cette manière.

  • L'autre moyen est de compiler et lier les bibliothèques mqm. En utilisant ces bibliothèques, il est possible d'utiliser le gestionnaire de transaction du serveur de queue.

Actuellement, la sélection de ces bibliothèques se fait en modifiant le fichier config.m4.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Pas de paramètre de configuration particulier.



Types de ressources

Cette extension définit une ressource de connexion et de object_handle.

Les fonctions mqseries_conn() et mqseries_connx() définissent des ressources de connexion.

La fonction mqseries_open() définit une ressource d'object_handle.




Constantes pré-définies

Pour chaque constante WebSphere MQ Constant, il y a un équivalent mqseries.

Pour les définitions et utilisation, reportez-vous au "WebSphere MQ Application Programming Guide" et "WebSphere MQ Application Programming Reference red books".

Le nom des constantes mqseries est fait en préfixant le nom de la constante WebSphere MQ avec MQSERIES_. Par exemple, les constantes de CompletionCode sont :

mqseries constants
Constante PHP Constante MQ
MQSERIES_MQCC_OK MQCC_OK
MQSERIES_MQCC_WARNING MQCC_WARNING
MQSERIES_MQCC_FAILED MQCC_FAILED
MQSERIES_MQCC_UNKNOWN MQCC_UNKNOWN



mqseries Fonctions


mqseries_back

(PECL mqseries >= 0.10.0)

mqseries_backMQSeries MQBACK

Description

void mqseries_back ( resource $hconn , resource &$compCode , resource &$reason )

mqseries_back() indique au gestionnaire de queue que tous les messages lus et écrits depuis le dernier point de synchronisation doivent être annulés. Les messages qui font partie d'une unité de travail seront effacés. Les messages lus comme unité de travail seront reinsérés dans la queue.

Using mqseries_back() fonctionne aussi en conjonction avec mqseries_begin() et uniquement lorsqu'on se connecte directement au gestionnaire de queues : cela ne fonctionne pas via l'interface mqclient.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_back()

<?php     
    mqseries_back
($conn$comp_code$reason);

    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
    }
?>

Notes

Note:

mqseries_back() ne fonctionne pas lorsqu'un client MQSeries Client se connecter au Queue Manager.

Voir aussi



mqseries_begin

(PECL mqseries >= 0.10.0)

mqseries_beginMQseries MQBEGIN

Description

void mqseries_begin ( resource $hconn , array $beginOptions , resource &$compCode , resource &$reason )

mqseries_begin() commence une unité de travail, coordonnée par le gestionnaire de queue, et impliquant éventuellement des gestionnaires de ressources externes.

Using mqseries_begin() commence une unitée de travail. Soit mqseries_back(), soit mqseries_cmit() termineront l'unité de travail.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_begin()

<?php
    $mqbo 
= array();
    
mqseries_begin$conn
                    
$mqbo,
                    
$comp_code,
                    
$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
/* reason code 2121 is a warning for more information see MQSeries reference manual.*/
        
if ($reason !== 2121) {
            
printf("CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
        }
    }
?>

Notes

Note:

mqseries_begin() ne fonctionne pas lorsqu'un client MQSeries Client se connecter au Queue Manager.

Voir aussi



mqseries_close

(PECL mqseries >= 0.10.0)

mqseries_closeMQSeries MQCLOSE

Description

void mqseries_close ( resource $hconn , resource $hobj , int $options , resource &$compCode , resource &$reason )

mqseries_close() relache l'accès à un objet, et est l'inverse de la fonction mqseries_open().

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

options

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_close()

<?php
    mqseries_close
($conn$objMQSERIES_MQCO_NONE$comp_code$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("close CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
    }
?>

Voir aussi



mqseries_cmit

(PECL mqseries >= 0.10.0)

mqseries_cmitMQSeries MQCMIT

Description

void mqseries_cmit ( resource $hconn , resource &$compCode , resource &$reason )

mqseries_cmit() indique au gestionnaire de queue que l'application a atteint un point de synchronisation, et que tous les messages qui ont été lus et écrits depuis le dernier point de synchronisation ont été rendus permanants. Les messages placés dans la queue comme unité de travail sont maintenant accessibles autres applications. Les messages lus comme unité de travail sont maintenant détruits.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_cmit()

<?php
    mqseries_cmit
($conn$comp_code$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("cmit CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
    }
?>

Notes

Note:

mqseries_back() ne fonctionne pas lorsqu'un client MQSeries Client se connecter au Queue Manager.

Voir aussi



mqseries_conn

(PECL mqseries >= 0.10.0)

mqseries_connMQSeries MQCONN

Description

void mqseries_conn ( string $qManagerName , resource &$hconn , resource &$compCode , resource &$reason )

mqseries_conn() établit la connexion avec le gestionnaire de queues. Il fournit une ressource de connexion, qui est utilisée par les autres fonctions de l'extension.

Liste de paramètres

qManagerName

Nom du gestionnaire de queues.

Nom du gestionnaire de queues avec qui l'application veut se connecter.

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_conn()

<?php
    mqseries_conn
('WMQ1'$conn$comp_code$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {  
        
printf("conn CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
        exit;
    }
?>

Voir aussi



mqseries_connx

(PECL mqseries >= 0.10.0)

mqseries_connxMQSeries MQCONNX

Description

void mqseries_connx ( string $qManagerName , array &$connOptions , resource &$hconn , resource &$compCode , resource &$reason )

mqseries_connx() établit la connexion avec gestionnaire de queues. Il fournit une ressource de connexionm qui est utilisée par les autres fonctions de l'extension.

Liste de paramètres

qManagerName

Nom du gestionnaire de queues.

Nom du gestionnaire de queues avec qui l'application veut se connecter.

connOps

Options qui contrôle les actions de la fonction

Voir aussi la structure MQCNO.

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_connx()

<?php
    $mqcno 
= array(
        
'Version' => MQSERIES_MQCNO_VERSION_2,
        
'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        
'MQCD' => array('ChannelName' => 'MQNX9420.CLIENT',
        
'ConnectionName' => 'localhost',
        
'TransportType' => MQSERIES_MQXPT_TCP)
    );

    
mqseries_connx('MQNX9420'$mqcno$conn$comp_code,$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {  
        
printf("Connx CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
        exit;
    }
 
?>

Voir aussi



mqseries_disc

(PECL mqseries >= 0.10.0)

mqseries_discMQSeries MQDISC

Description

void mqseries_disc ( resource $hconn , resource &$compCode , resource &$reason )

mqseries_disc() ferme la connexion entre le gestionnaire de queues et l'application. C'est l'inverse de mqseries_conn() et mqseries_connx().

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_disc()

<?php
    mqseries_disc
($conn$comp_code$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("disc CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
    }
?>

Voir aussi



mqseries_get

(PECL mqseries >= 0.10.0)

mqseries_getMQSeries MQGET

Description

void mqseries_get ( resource $hConn , resource $hObj , array &$md , array &$gmo , int &$bufferLength , string &$msg , int &$data_length , resource &$compCode , resource &$reason )

mqseries_get() lit un message dans une queue locale, qui a été ouverte avec la fonction mqseries_open().

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

md

Ressource de message (MQMD).

gmo

Options de message

bufferLength

Taille attendue du buffer de résultat

msg

Buffer contenant le message lu depuis l'objet.

data_length

Taille réelle du buffer

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_get()

<?php
// open connection to the queue manager
    
mqseries_conn('WMQ1'$conn$comp_code$reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
    
mqseries_open(
                
$conn,
                array(
'ObjectName' => 'TESTQ'),
                
MQSERIES_MQOO_INPUT_AS_Q_DEF MQSERIES_MQOO_FAIL_IF_QUIESCING MQSERIES_MQOO_OUTPUT,
                
$obj,
                
$comp_code,
                
$reason);
// $obj now holds the reference to the object (TESTQ)

// setup empty message descriptor.
    
$mdg = array();
// setup get message options    
    
$gmo = array('Options' => MQSERIES_MQGMO_FAIL_IF_QUIESCING MQSERIES_MQGMO_WAIT'WaitInterval' => 3000);

// get the message from the queueu    
    
mqseries_get($conn$obj$mdg$gmo255$msg$data_length$comp_code$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("GET CompCode:%d Reason:%d Text:%s<br>"$comp_code$reasonmqseries_strerror($reason));
    }
    
 
// open connection to the queue manager
    
mqseries_conn('WMQ1'$conn$comp_code$reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
    
mqseries_open(
                
$conn,
                array(
'ObjectName' => 'TESTQ'),
                
MQSERIES_MQOO_INPUT_AS_Q_DEF MQSERIES_MQOO_FAIL_IF_QUIESCING MQSERIES_MQOO_OUTPUT,
                
$obj,
                
$comp_code,
                
$reason);
// $obj now holds the reference to the object (TESTQ)
    
?>

Voir aussi



mqseries_inq

(PECL mqseries >= 0.10.0)

mqseries_inqMQSeries MQINQ

Description

void mqseries_inq ( resource $hconn , resource $hobj , int $selectorCount , array $selectors , int $intAttrCount , resource &$intAttr , int $charAttrLength , resource &$charAttr , resource &$compCode , resource &$reason )

mqseries_inq() retourne un tableau d'entiers et un jeu de chaînes de caractères qui représentent un objet.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

selectorCount

Nombre de sélecteurs.

selectors

Tableau d'attributs de sélecteurs.

intAttrLength

Nombre d'attributs entiers.

intAttr

Tableau d'attributs entiers.

charAttrLength

Taille du buffer d'attributs de caractère.

charAttr

Attribut de caractère.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_inq()

<?php
    $int_attr 
= array();
    
$char_attr "";
    
    
mqseries_inq($conn$obj1, array(MQSERIES_MQCA_Q_MGR_NAME), 0$int_attr48$char_attr$comp_code$reason);
    
    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("INQ CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
    } else {
        echo 
"INQ QManager name result ".$char_attr."<br>\n";
    }
?>

Voir aussi



mqseries_open

(PECL mqseries >= 0.10.0)

mqseries_openMQSeries MQOPEN

Description

void mqseries_open ( resource $hconn , array &$objDesc , int $option , resource &$hobj , resource &$compCode , resource &$reason )

mqseries_open() établit un accès à un objet.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

objDesc

Ressource d'objet

options

Options qui contrôlent les actions de la fonction.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_open()

<?php
    $mqods 
= array('ObjectName' => 'TESTQ');
    
mqseries_open(
                
$conn,
                
$mqods,
                
MQSERIES_MQOO_INPUT_AS_Q_DEF MQSERIES_MQOO_FAIL_IF_QUIESCING MQSERIES_MQOO_OUTPUT,
                
$obj,
                
$comp_code,
                
$reason);
    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("open CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
        exit;
    }
?>

Voir aussi



mqseries_put1

(PECL mqseries >= 0.10.0)

mqseries_put1MQSeries MQPUT1

Description

void mqseries_put1 ( resource $hconn , resource &$objDesc , resource &$msgDesc , resource &$pmo , string $buffer , resource &$compCode , resource &$reason )

mqseries_put1() ajoute un message dans la queue. Cette dernière n'a pas besoin d'être ouverte.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

objDesc

Object descriptor. (MQOD)

Cette structure identifie la queue dans laquelle le message sera ajouté.

msgDesc

Ressource de message (MQMD).

pmo

Options d'ajout du message (MQPMO).

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



mqseries_put

(PECL mqseries >= 0.10.0)

mqseries_putMQSeries MQPUT

Description

void mqseries_put ( resource $hConn , resource $hObj , array &$md , array &$pmo , string $message , resource &$compCode , resource &$reason )

mqseries_put() ajoute un message dans une queue, ou une liste de distribution. La queue ou la liste de distribution doivent être ouvertes.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

md

Ressource de message (MQMD).

pmo

Option d'ajout de message

message

Le message à mettre dans la queue.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_put()

<?php
// open connection to the queue manager
    
mqseries_conn('WMQ1'$conn$comp_code$reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connectio to the testq queueu
    
mqseries_open(
                
$conn,
                array(
'ObjectName' => 'TESTQ'),
                
MQSERIES_MQOO_INPUT_AS_Q_DEF MQSERIES_MQOO_FAIL_IF_QUIESCING MQSERIES_MQOO_OUTPUT,
                
$obj,
                
$comp_code,
                
$reason);
// $obj now holds the reference to the object (TESTQ)

// setup the message descriptor array. Check MQSeries reference manuals.
    
$md = array(
                
'Version' => MQSERIES_MQMD_VERSION_1,
                
'Expiry' => MQSERIES_MQEI_UNLIMITED,
                
'Report' => MQSERIES_MQRO_NONE,
                
'MsgType' => MQSERIES_MQMT_DATAGRAM,
                
'Format' => MQSERIES_MQFMT_STRING,
                
'Priority' => 1,
                
'Persistence' => MQSERIES_MQPER_PERSISTENT);

// setup the put message options.
    
$pmo = array('Options' => MQSERIES_MQPMO_NEW_MSG_ID|MQSERIES_MQPMO_SYNCPOINT);
    
// put the message 'Ping' on the queueu.
    
mqseries_put($conn$obj$md$pmo'Ping'$comp_code$reason);

    if (
$comp_code !== MQSERIES_MQCC_OK) {
        
printf("put CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
    }

// close the object reference $obj    
    
mqseries_close($conn$objMQSERIES_MQCO_NONE$comp_code$reason);

// disconnect from the queue manager.    
    
mqseries_disc($conn$comp_code$reason);
    
?>

Voir aussi



mqseries_set

(PECL mqseries >= 0.10.0)

mqseries_setMQSeries MQSET

Description

void mqseries_set ( resource $hconn , resource $hobj , int $selectorcount , array $selectors , int $intattrcount , array $intattrs , int $charattrlength , array $charattrs , resource &$compCode , resource &$reason )

La fonction mqseries_set() sert à changer les attributs d'un objet représenté par une ressource. L'objet doit être une queue.

Liste de paramètres

hConn

Connection handle.

La ressource qui représente la connexion au gestionnaire de queues.

compCode

Code de complétion.

reason

Le code de qualitification du compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



mqseries_strerror

(PECL mqseries >= 0.10.0)

mqseries_strerrorRetourne le message d'erreur correspondant au code de résultat

Description

string mqseries_strerror ( int $reason )

mqseries_strerror() retourne le message d'erreur correspondant au code de résultat.

Liste de paramètres

reason

La raison qui qualifie le compCode.

Valeurs de retour

La chaîne de représentation de la raison du message d'erreur.

Exemples

Exemple #1 Exemple avec mqseries_strerror()

<?php
    
if ($comp_code !== MQSERIES_MQCC_OK) {
        
printf("open CompCode:%d Reason:%d Text:%s<br>\n"$comp_code$reasonmqseries_strerror($reason));
        exit;
    }
?>

L'exemple ci-dessus va afficher :

Connx CompCode:2 Reason:2059 Text:Queue manager not available for connection.                    


Sommaire




Net Gopher


Introduction

Le protocole gopher, comme définie par la » RFC 1436, est généralement considéré comme l'ancêtre du protocole moderne HTTP. Cependant, gopher a été également conçu pour fournir des références à des ressources non-gopher comme telnet, wais, nntp et, toujours, http. Cette extension ajoute le support gopher aux gestionnaires d'URL, et fournit une fonction utile gopher_parsedir() pour lister les dossiers formatés gopher.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Prérequis : PHP version 4.3.0 ou supérieure.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/net_gopher



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes Net_Gopher
Constante Valeur Description
GOPHER_DOCUMENT 0 Document standart text/plain.
GOPHER_DIRECTORY 1 Une ressource contenant une liste de dossiers formatée gopher.
GOPHER_BINHEX 4 Un fichier binaire encodé BinHex.
GOPHER_DOSBINARY 5 Une archive binaire formaté DOS.
GOPHER_UUENCODED 6 Un fichier UUEncoded.
GOPHER_BINARY 9 Un fichier binaire générique.
GOPHER_INFO 255 Une entrée informative.
GOPHER_HTTP 254 Une référence vers une ressource HTTP.
GOPHER_UNKNOWN -1 Une entrée non reconnue.


Exemples

Sommaire


Exemple simple

<?php
readfile
("gopher://gopher.example.com/somedocument");
?>



Fonctions Gopher


gopher_parsedir

(PECL net_gopher >= 0.1)

gopher_parsedirTranspose une entrée d'un dossier formaté gopher dans un tableau associatif

Description

array gopher_parsedir ( string $dirent )

gopher_parsedir() transpose une entrée d'un dossier formaté gopher dans un tableau associatif.

Gopher retourne des documents text/plain pour les documents demandés. Une requête vers un dossier (comme /) retournera des séries de lignes encodées à chaque ligne est une entrée du dossier ou une ligne d'informations.

Liste de paramètres

dirent

L'entrée du dossier.

Valeurs de retour

Retourne un tableau associatif dont les composants sont :

  • type - Une constante GOPHER_XXX.
  • title - Le nom de la ressource.
  • path - Le chemin vers la ressource.
  • host - Le nom du domaine de l'hôte qui possède ce document (ou dossier).
  • port - Le port de connexion sur l'hôte host.

En cas d'échec, l'entrée additionnelle data du tableau retourné contiendra la ligne analysée.

Exemples

Exemple #1 Affichage hypothétique depuis gopher://gopher.example.com/

0All about my gopher site.               /allabout.txt               gopher.example.com    70
9A picture of my cat.                    /pics/cat.png               gopher.example.com    70
1A collection of my writings.            /stories                    gopher.example.com    70
hThe HTTP version of this site.          URL:http://www.example.com  gopher.example.com    70
1Mirror of this site in Spain.           /                           gopher.ejemplo.co.es  70
iWelcome to my gopher site.                                          error.host            1
iPlease select one of the options above                              error.host            1
iSend complaints to /dev/null                                        error.host            1
iLong live gopher!                                                   error.host            1

Dans l'exemple précédent, le dossier racine de gopher.example.com reconnaît un DOCUMENT identifié par 0 et se trouvant à l'adresse gopher://gopher.example.com:70/allabout.txt. Il reconnaît également deux autres dossiers (qui ont leur propre liste de fichiers) à l'adresse gopher://gopher.exmaple.com:70/stories et à l'adresse gopher://gopher.ejemplo.co.es:70/. Il y a également un fichier binaire, un lien vers une url HTTP et plusieurs lignes d'informations.

En passant chaque ligne du listing de ce dossier à la fonction gopher_parsedir(), un tableau associatif est formé contenant une version analysée des données.

Exemple #2 Exemple avec gopher_parsedir()

<?php

$directory 
file("gopher://gopher.example.com");

foreach(
$directory as $dirent) {
    
print_r(gopher_parsedir($dirent));
}
?>

L'exemple ci-dessus va afficher :

Array (
  [type] => 0
  [title] => All about my gopher site.
  [path] => /allabout.txt
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 9
  [title] => A picture of my cat.
  [path] => /pics/cat.png
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => A collection of my writings.
  [path] => /stories
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 254
  [title] => The HTTP version of this site.
  [path] => URL:http://www.example.com
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => Mirror of this site in Spain.
  [path] => /
  [host] => gopher.ejemplo.co.es
  [port] => 70
)
Array (
  [type] => 255
  [title] => Welcome to my gopher site.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Please select one of the options above.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Send complaints to /dev/null
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Long live gopher!
  [path] =>
  [host] => error.host
  [port] => 1
)


Sommaire

  • gopher_parsedir — Transpose une entrée d'un dossier formaté gopher dans un tableau associatif



Réseau


Introduction

Fournit diverses fonctions réseaux.



Installation/Configuration

Sommaire


Pré-requis

Les fonctions checkdnsrr(), getmxrr() et dns_get_record() nécessitent Bind sous Linux.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour le réseau
Nom Défaut Modifiable Historique
define_syslog_variables "0" PHP_INI_ALL Obsolète en PHP 5.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

define_syslog_variables booléen

Définit s'il faut ou pas définir les différentes variables de syslog, (e.g. $LOG_PID, $LOG_CRON, etc.). Éteindre cette fonctionnalité est recommandé pour les performances. Durant l'exécution, vous pouvez définir ces variables en appelant define_syslog_variables().



Types de ressources

Cette extension définit une ressource de pointeur de fichier, retourné par les fonctions fsockopen() et pfsockopen().




Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Options de openlog()
Constante Description
LOG_CONS S'il y a une erreur lors de l'envoi de données au système d'historique, l'erreur sera écrite directement sur la console système.
LOG_NDELAY Ouvre la connexion à l'historique immédiatement
LOG_ODELAY (par défaut) retarde l'ouverture de la connexion jusqu'à ce que le premier message soit archivé
LOG_NOWAIT
LOG_PERROR Affiche aussi le message sur la sortie standard
LOG_PID Ajoute le PID dans chaque message
Facilité de syslog()
Constante Description
LOG_AUTH sécurité/autorisation message (utilisez LOG_AUTHPRIV à la place sur les systèmes où cette constante n'est pas définie)
LOG_AUTHPRIV sécurité/autorisation message (privé)
LOG_CRON démon de temps (cron et at)
LOG_DAEMON autres démons systèmes
LOG_KERN messages noyau
LOG_LOCAL0 ... LOG_LOCAL7 réservées pour une utilisation locale, elles ne sont pas disponibles sous Windows
LOG_LPR imprimante système
LOG_MAIL système de mail
LOG_NEWS système de news USENET
LOG_SYSLOG messages générés en interne par le démon syslogd
LOG_USER messages génériques utilisateurs
LOG_UUCP système UUCP
Priorités de syslog() (en ordre décroissant)
Constante Description
LOG_EMERG Le système est inutilisable
LOG_ALERT Une mesure doit être prise immédiatement
LOG_CRIT Conditions critiques
LOG_ERR Erreurs
LOG_WARNING Alertes
LOG_NOTICE Notes (normales mais significatives)
LOG_INFO Message d'informations
LOG_DEBUG Message de déboguage
Options dns_get_record()
Constante Description
DNS_A Adresse IPv4
DNS_MX Champs serveur Mail (MX)
DNS_CNAME Champs alias (Nom canonique) (A)
DNS_NS Champs de serveur autorité (NS)
DNS_PTR Champs de pointeur (PTR)
DNS_HINFO Champs d'informations d'hôte (HINFO) (voir la » Operating System Names pour la signification de ces valeurs)
DNS_SOA Champs de délégation d'autorité (SOA)
DNS_TXT Texte
DNS_ANY Tous les champs. Sur la plupart des systèmes, cela retourne tous les champs, mais il ne faut pas s'y fier. Utilisez DNS_ALL.
DNS_AAAA Adresse IPv6
DNS_ALL Sollicite itérativement le serveur pour chaque type de champ.


Fonctions réseaux


checkdnsrr

(PHP 4, PHP 5)

checkdnsrrRésolution DNS d'une adresse IP

Description

bool checkdnsrr ( string $host [, string $type = "MX" ] )

Recherche l'enregistrement DNS de type type correspondant à l'hôte host.

Liste de paramètres

host

host peut être soit une adresse IP au format numérique, soit un nom d'hôte.

type

type peut être l'une des valeurs suivantes : A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT ou ANY.

Valeurs de retour

Retourne TRUE si un enregistrement a été trouvé, et FALSE en cas d'erreur ou si aucun enregistrement n'a été trouvé.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows.
5.2.4 Le type TXT a été ajouté.
5.0.0 Le type AAAA a été ajouté.

Notes

Note:

Pour une compatibilité avec Windows avant son implémentation, essayez la classe » PEAR : » Net_DNS.

Voir aussi

  • dns_get_record() - Lit les données DNS associées à un hôte
  • getmxrr() - Retourne les enregistrements MX d'un hôte
  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbynamel() - Retourne la liste d'IPv4 correspondante à un hôte
  • la page du manuel man named(8)



closelog

(PHP 4, PHP 5)

closelogFerme la connexion à l'historique système

Description

bool closelog ( void )

closelog() ferme le pointeur qui sert à écrire dans l'historique système. L'utilisation de closelog() est optionnelle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • syslog() - Génère un message dans l'historique système
  • openlog() - Ouvre la connexion à l'historique système



define_syslog_variables

(PHP 4, PHP 5)

define_syslog_variablesInitialise toutes les variables relatives aux fonctions syslog

Description

void define_syslog_variables ( void )

Initialise toutes les variables utilisées dans les fonctions syslog.

Valeurs de retour

Aucune valeur n'est retournée.

Variables Syslog
Variable Valeur de la constante Signification Notes
$LOG_EMERG LOG_EMERG Le système n'est pas utilisable  
$LOG_ALERT LOG_ALERT Une action immédiate est requise  
$LOG_CRIT LOG_CRIT Conditions critiques  
$LOG_ERR LOG_ERR    
$LOG_WARNING LOG_WARNING    
$LOG_NOTICE LOG_NOTICE    
$LOG_INFO LOG_INFO    
$LOG_DEBUG LOG_DEBUG    
$LOG_KERN LOG_KERN    
$LOG_USER LOG_USER Niveau utilisateur générique  
$LOG_MAIL LOG_MAIL Enregistre au niveau email  
$LOG_DAEMON LOG_DAEMON Autres démons systèmes  
$LOG_AUTH LOG_AUTH    
$LOG_SYSLOG LOG_SYSLOG   Non disponible sous Netware
$LOG_LPR LOG_LPR    
$LOG_NEWS LOG_NEWS Nouvelle Usenet Non disponible sous HP-UX
$LOG_CRON LOG_CRON   Non disponible sous toutes les plateformes
$LOG_AUTHPRIV LOG_AUTHPRIV   Non disponible sous AIX
$LOG_LOCAL0 LOG_LOCAL0   Non disponible sous Windows et Netware
$LOG_LOCAL1 LOG_LOCAL1   Non disponible sous Windows et Netware
$LOG_LOCAL2 LOG_LOCAL2   Non disponible sous Windows et Netware
$LOG_LOCAL3 LOG_LOCAL3   Non disponible sous Windows et Netware
$LOG_LOCAL4 LOG_LOCAL4   Non disponible sous Windows et Netware
$LOG_LOCAL5 LOG_LOCAL5   Non disponible sous Windows et Netware
$LOG_LOCAL6 LOG_LOCAL6   Non disponible sous Windows et Netware
$LOG_LOCAL7 LOG_LOCAL7   Non disponible sous Windows et Netware
$LOG_PID LOG_PID    
$LOG_CONS LOG_CONS    
$LOG_ODELAY LOG_ODELAY    
$LOG_NDELAY LOG_NDELAY    
$LOG_NOWAIT LOG_NOWAIT   Non disponible sous BeOS
$LOG_PERROR LOG_PERROR   Non disponible sous AIX
Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Exemples

Exemple #1 Exemple avec define_syslog_variables()

<?php
// Vérifie si les variables syslog sont définies
if(!get_cfg_var('define_syslog_variables'))
{
    
define_syslog_variables();
}

// Ouverture de l'historique
openlog(''$LOG_ODELAY$LOG_MAIL $LOG_USER);

// On continue le script ...
?>

Historique

Version Description
5.3.0 Cette fonction lance maintenant des alertes de type E_DEPRECATED.

Voir aussi

  • openlog() - Ouvre la connexion à l'historique système
  • syslog() - Génère un message dans l'historique système
  • closelog() - Ferme la connexion à l'historique système



dns_check_record

(PHP 5)

dns_check_recordAlias de checkdnsrr()

Description

Cette fonction est un alias de : checkdnsrr().



dns_get_mx

(PHP 5)

dns_get_mxAlias de getmxrr()

Description

Cette fonction est un alias de : getmxrr().



dns_get_record

(PHP 5)

dns_get_recordLit les données DNS associées à un hôte

Description

array dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl ]]] )

Lit les données DNS associées à l'hôte hostname.

Liste de paramètres

hostname

hostname doit être un nom d'hôte DNS valide, comme www.example.com. Des résolutions inversées peuvent être faites avec la notation in-addr.arpa, mais la fonction gethostbyaddr() est plus efficace pour faire des résolutions inverses.

Note:

En terme de standards DNS, les adresses email sont données au format utilisateur.hote (par exemple : webmestre.example.com au contraire du format webmestre@example.com). N'oubliez pas de vérifier cette adresse et de la modifier si nécessaire avant de la passer à la fonction mail().

type

Par défaut, dns_get_record() va rechercher toutes les ressources associées à hostname. Pour limiter la taille de la requête, le paramètre optionnel type peut prendre l'une des valeurs constantes suivantes : DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL ou DNS_ANY.

Note:

À cause des performances excentriques de la bibliothèque libresolv, suivant les plates-formes, DNS_ANY ne retournera pas toujours tous les enregistrements, et l'option DNS_ALL, bien que plus lente, le fera de manière plus sûre.

authns

Passé par référence, et, s'il est fourni, recevra les enregistrements de ressources pour les Authoritative Name Servers.

addtl

Passé par référence, et, s'il est fourni, recevra tous les enregistrements supplémentaires.

Valeurs de retour

dns_get_record() retourne un tableau de tableaux associatifs, ou FALSE si une erreur survient. Chaque tableau contient au minimum les index suivants :

Attributs de base DNS
Attribut Signification
host L'enregistrement de l'espace de nom DNS qui est décrit par les autres données.
class dns_get_record() ne retourne que la classe d'enregistrement Internet et, en tant que tel, cet index vaudra toujours IN.
type Chaîne de caractère contenant le type d'enregistrement. Des attributs supplémentaires seront aussi disponibles dans le tableau suivant la valeur de ce type. Reportez-vous à la table ci-dessous.
ttl "Time To Live" : durée avant expiration de l'enregistrement. Cette valeur est différente de la durée avant expiration originale, mais plutôt cette valeur moins la durée depuis la dernière interrogation du serveur DNS responsable.

Autres index disponibles suivant le type DNS
Type Valeur supplémentaire
A ip: une adresse IPv4, au format numérique.
MX pri : priorité du serveur de mail. Les nombres faibles indiquent une priorité importante. target : FQDN du serveur de mail. Voir aussi dns_get_mx().
CNAME target : FQDN du nom de l'espace DNS qui sert d'alias à cet enregistrement.
NS target : FQDN du nom de serveur qui est responsable de ce nom de domaine.
PTR target : nom de domaine vers lequel cet enregistrement
TXT txt : chaîne de caractères arbitrairement associée à cet enregistrement.
HINFO cpu : numéro IANA désignant le processeur de la machine référencée par cet enregistrement. os : numéro IANA désignant le système d'exploitation de la machine référencée par cet enregistrement. Voir » Operating System Names pour connaître la signification de ces valeurs.
SOA mname : FQDN de la source de cet enregistrement. rname : adresse email du contact administratif de ce domaine. serial : numéro de série du nom de domaine. refresh : intervalle de rafraîchissement (en secondes) que les serveurs de noms secondaires doivent utiliser pour mettre en cache ce nom de domaine. retry : durée (en secondes) d'attente après un rafraîchissement échoué, avant de faire une seconde tentative. expire : durée maximale (en secondes) de conservation d'une copie des données de zone sans pouvoir faire de rafraîchissement. minimum-ttl : durée minimale (en secondes) pendant laquelle un client conserve des données de zone avant qu'il ne soumette une nouvelle requête. Cette configuration peut être annulée par d'autres enregistrements.
AAAA ipv6: adresse IPv6
A6(PHP >= 5.1.0) masklen : longueur (en octets) à hériter depuis la cible spécifiée par chain. ipv6 : adresse pour que cet enregistrement spécifique fusionne avec chain. chain : l'enregistrement parent à fusionner avec les données ipv6.
SRV pri : (priorité) les priorités les plus basses doivent être utilisées en premier. weight : classement pour choisir aléatoirement parmi les serveurs targets. target et port : nom d'hôte et port où le service est disponible. Pour plus d'informations, voir : » RFC 2782
NAPTR order et pref : équivalent à pri et weight ci-dessus. flags, services, regex, et replacement : paramètres tels que définis dans la » RFC 2915.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows.
5.3.0 Avant cette version, si le paramètre authns est passé, le paramètre addtl était également nécessaire.

Exemples

Exemple #1 Exemple avec dns_get_record()

<?php
$result 
dns_get_record("php.net");
print_r($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Exemple #2 Exemple avec dns_get_record() et DNS_ANY

Comme il est très courant de rechercher l'IP d'un serveur, une fois que le champ MX a été résolu, dns_get_record() retournera aussi un tableau dans le paramètre addtl qui contiendra les enregistrements associés. authns est aussi retourné en contenant une liste des serveurs autorité.

<?php
/* Demande tous ("ANY") les enregistrements pour php.net, 
   puis crée les tableaus $authns et $addtl
   contenant une liste des noms de serveurs, et tous
   les enregistrements qui vont avec
   */
$result dns_get_record("php.net"DNS_ANY$authns$addtl);
echo 
"Result = ";
print_r($result);
echo 
"Auth NS = ";
print_r($authns);
echo 
"Additional = ";
print_r($addtl);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Result = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

Notes

Note:

Pour une compatibilité avec les versions non supportées, comme sur les systèmes *BSD (incluant Mac), utilisez la classe » PEAR » Net_DNS.

Voir aussi



fsockopen

(PHP 4, PHP 5)

fsockopenOuvre une socket de connexion Internet ou Unix

Description

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

Initialise une connexion par socket à la ressource spécifiée par hostname.

PHP supporte les cibles dans les domaines Internet et Unix comme décrit dans Liste des modes de transport de sockets disponibles. Une liste des types de transports peut également être trouvée en utilisant la fonction stream_get_transports().

La socket sera ouverte par défaut en mode bloquant. Vous pouvez changer de mode en utilisant : stream_set_blocking().

Liste de paramètres

hostname

Si le support OpenSSL est installé, vous pouvez préfixer hostname avec ssl:// ou tls:// pour utiliser une connexion cliente SSL ou TLS sur TCP/IP pour vous connectez à l'hôte distant.

port

Le numéro du port.

errno

Si fourni, contient le numéro de l'erreur système qui survient lors de l'appel système à connect().

Si la valeur retournée par errno est 0 et que la fonction retourne FALSE, ce peut être une indication laissant penser que l'erreur est survenue avant l'appel à connect(). La plupart du temps, cela est du à un problème d'initialisation du socket.

errstr

Le message d'erreur, sous la forme d'une chaîne de caractères.

timeout

Le délai d'attente maximal, en secondes.

Note:

Si vous avez besoin de définir un délai limite pour lire/écrire des données à travers cette socket, utilisez la fonction stream_set_timeout(), car le paramètre timeout de la fonction fsockopen() est uniquement appliqué lors de la connexion de la socket.

Valeurs de retour

fsockopen() retourne un pointeur de fichier qui peut être utilisé avec d'autres fonctions fichiers, telles fgets(), fgetss(), fputs(), fclose() et feof(). Si l'appel échoue, la fonction retourne FALSE.

Erreurs / Exceptions

Lance une alerte de type E_WARNING si le paramètre hostname n'est pas un domaine valide.

Historique

Version Description
4.3.0 Ajout du support du paramètre timeout sous les systèmes win32.
4.3.0 Ajout du support SSL et TLS via TCP/IP.

Exemples

Exemple #1 Exemple avec fsockopen()

<?php
$fp 
fsockopen("www.example.com"80$errno$errstr30);
if (!
$fp) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
$out "GET / HTTP/1.1\r\n";
    
$out .= "Host: www.example.com\r\n";
    
$out .= "Connection: Close\r\n\r\n";

    
fwrite($fp$out);
    while (!
feof($fp)) {
        echo 
fgets($fp128);
    }
    
fclose($fp);
}
?>

Exemple #2 Utilisation d'une connexion UDP

L'exemple ci-dessous décrit comment lire la date et l'heure grâce à un service UDP "daytime" (port 13), sur votre propre machine.

<?php
$fp 
fsockopen("udp://127.0.0.1"13$errno$errstr);
if (!
$fp) {
    echo 
"ERREUR : $errno - $errstr<br />\n";
} else {
    
fwrite($fp"\n");
    echo 
fread($fp26);
    
fclose($fp);
}
?>

Notes

Note:

Suivant les environnements, le type 'domaine Unix' ou l'option timeout ne sont pas toujours disponibles.

Avertissement

Les sockets UDP semblent quelques fois avoir été ouvertes sans erreur, même si l'hôte distant n'est pas accessible. L'erreur apparaît alors uniquement lorsque vous tentez de lire/écrire sur la socket. La raison de cela est que UDP est un protocole "connectionless", ce qui signifie que le système ne tentera pas d'établir un lien pour la socket tant qu'il ne doit pas recevoir/envoyer de données.

Note: Lors de la spécification d'adresses IPv6 au format numérique (e.g. fe80::1) vous devez placer l'adresse IP entre crochets. Par exemple : tcp://[fe80::1]:80.

Voir aussi



gethostbyaddr

(PHP 4, PHP 5)

gethostbyaddrRetourne le nom d'hôte correspondant à une IP

Description

string gethostbyaddr ( string $ip_address )

gethostbyaddr() retourne le nom d'hôte correspondant à l'IP ip_address.

Liste de paramètres

ip_address

L'adresse IP de l'hôte.

Valeurs de retour

Retourne le nom de l'hôte ou l'adresse IP non modifiée en cas d'échec.

Exemples

Exemple #1 Exemple avec gethostbyaddr()

<?php
$hostname 
gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo 
$hostname;
?>

Voir aussi



gethostbyname

(PHP 4, PHP 5)

gethostbynameRetourne l'adresse IPv4 correspondant à un hôte

Description

string gethostbyname ( string $hostname )

Retourne l'adresse IPv4 correspondant à l'hôte hostname.

Liste de paramètres

hostname

Le nom de l'hôte.

Valeurs de retour

Retourne l'adresse IPv4, ou une chaîne contenant le nom d'hôte inchangé en cas d'échec.

Exemples

Exemple #1 Exemple avec gethostbyname()

<?php
$ip 
gethostbyname('www.example.com');

echo 
$ip;
?>

Voir aussi

  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • gethostbynamel() - Retourne la liste d'IPv4 correspondante à un hôte
  • inet_pton() - Convertit une adresse IP lisible en sa représentation in_addr
  • inet_ntop() - Convertit un paquet d'adresses internet en une représentation humainement lisible



gethostbynamel

(PHP 4, PHP 5)

gethostbynamelRetourne la liste d'IPv4 correspondante à un hôte

Description

array gethostbynamel ( string $hostname )

Retourne la liste d'IPv4 correspondant à l'hôte hostname.

Liste de paramètres

hostname

Le nom de l'hôte.

Valeurs de retour

Retourne un tableau d'adresses IPv4, ou FALSE si hostname n'a pu être résolu.

Exemples

Exemple #1 Exemple avec gethostbynamel()

<?php
$hosts 
gethostbynamel('www.example.com');
print_r($hosts);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 192.0.34.166
)

Voir aussi

  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • checkdnsrr() - Résolution DNS d'une adresse IP
  • getmxrr() - Retourne les enregistrements MX d'un hôte
  • La page du manuel named(8)



gethostname

(PHP >= 5.3.0)

gethostnameLit le nom de l'hôte

Description

string gethostname ( void )

gethostname() lit le nom d'hôte standard pour la machine hôte.

Valeurs de retour

Retourne une chaîne avec le nom d'hôte, en cas de succès et sinon FALSE.

Exemples

Exemple #1 Exemple avec gethostname()

<?php
echo gethostname(); // doit afficher i.e : sandie

// Ou, une option qui fonctionne également avant PHP 5.3
echo php_uname('n'); // doit afficher i.e : sandie
?>

Voir aussi

  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • php_uname() - Retourne les informations sur le système d'exploitation



getmxrr

(PHP 4, PHP 5)

getmxrrRetourne les enregistrements MX d'un hôte

Description

bool getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] )

Effectue une recherche DNS pour obtenir les enregistrements MX de l'hôte hostname.

Liste de paramètres

hostname

Le nom d'hôte Internet.

mxhosts

La liste des enregistrements MX est placée dans le tableau mxhosts.

weight

Si le tableau weight est fourni, il sera rempli par les informations de poids.

Valeurs de retour

Retourne TRUE si des enregistrements sont trouvés, et FALSE si une erreur est rencontrée, ou si la recherche échoue.

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sous Windows.

Notes

Note:

Cette fonction ne doit pas être utilisée à des fin de vérification d'adresses. Seuls les serveurs de mails trouvés dans les enregistrements DNS sont retournés. Suivant la » RFC 2821 lorsque aucun serveur de mail n'est listé, hostname doit être utilisé comme serveur de mail, avec la priorité 0.

Note:

Pour une compatibilité avec les versions non supportées, utilisez la classe » PEAR : » Net_DNS.

Voir aussi



getprotobyname

(PHP 4, PHP 5)

getprotobynameRetourne le numéro de protocole associé à un nom de protocole

Description

int getprotobyname ( string $name )

getprotobyname() retourne le numéro de protocole associé avec le nom de protocole name, comme dans /etc/protocols.

Liste de paramètres

name

Le nom du protocole.

Valeurs de retour

Retourne le numéro du protocole, ou -1 si le protocole n'est pas trouvé.

Exemples

Exemple #1 Exemple avec getprotobyname()

<?php
$protocol 
'tcp';
$get_prot getprotobyname($protocol);
if (
$get_prot == -1) {
    echo 
'Protocole invalide';
} else {
    echo 
'Protocole #' $get_prot;
}
?>

Voir aussi



getprotobynumber

(PHP 4, PHP 5)

getprotobynumberRetourne le nom de protocole associé à un numéro de protocole

Description

string getprotobynumber ( int $number )

getprotobynumber() retourne le nom de protocole associé avec le numéro de protocole name, comme dans /etc/protocols.

Liste de paramètres

number

Le numéro du protocole.

Valeurs de retour

Retourne le nom du protocole, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi

  • getprotobyname() - Retourne le numéro de protocole associé à un nom de protocole



getservbyname

(PHP 4, PHP 5)

getservbynameRetourne le numéro de port associé à un service Internet et un protocole

Description

int getservbyname ( string $service , string $protocol )

getservbyname() retourne le numéro de port associé au service service et au protocole protocol, comme dans /etc/services.

Liste de paramètres

service

Le nom du service Internet, sous la forme d'une chaîne de caractères.

protocol

protocol vaut soit "tcp", soit "udp" (en minuscule).

Valeurs de retour

Retourne le numéro du port, ou FALSE si service ou protocol n'est pas trouvé.

Exemples

Exemple #1 Exemple avec getservbyname()

<?php
$services 
= array('http''ftp''ssh''telnet''imap',
'smtp''nicname''gopher''finger''pop3''www');

foreach (
$services as $service) {
    
$port getservbyname($service'tcp');
    echo 
$service ": " $port "<br />\n";
}
?>

Voir aussi



getservbyport

(PHP 4, PHP 5)

getservbyportRetourne le service Internet qui correspond au port et protocole

Description

string getservbyport ( int $port , string $protocol )

getservbyport() cherche le service internet associé au port port pour le protocole protocol comme dans /etc/services.

Liste de paramètres

port

Le numéro du port.

protocol

protocol vaut soit "tcp", soit "udp" (en minuscule).

Valeurs de retour

Retourne le nom du service Internet, sous la forme d'une chaîne de caractères.

Voir aussi

  • getservbyname() - Retourne le numéro de port associé à un service Internet et un protocole



header_remove

(PHP 5 >= 5.3.0)

header_removeSupprime un entête HTTP

Description

void header_remove ([ string $name ] )

Supprime un entête HTTP précédemment ajouté avec header().

Liste de paramètres

name

Le nom de l'entête à supprimer.

Note: Ce paramètre est insensible à la casse.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Supprimer un entête HTTP avec header_remove()

<?php
header
("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo"); 
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

X-Bar: Baz

Exemple #2 Supprimer tous les entêtes HTTP avec header_remove()

<?php
header
("X-Foo: Bar");
header("X-Bar: Baz");
header_remove(); 
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Attention

Cette fonction va supprimer tous les entêtes configuré par PHP, y compris les cookies, les sessions et les entêtes X-Powered-By.

Voir aussi



header

(PHP 4, PHP 5)

headerEnvoie un en-tête HTTP

Description

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

header() permet de spécifier l'en-tête HTTP string lors de l'envoi des fichiers HTML. Reportez-vous à » HTTP/1.1 Specification pour plus d'informations sur les en-têtes HTTP.

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

<html>
<?php
/* Ceci produira une erreur. Notez la sortie si dessus,
 * qui se trouve avant l'appel à la fonction header() */
header('Location: http://www.example.com/');
?>

Liste de paramètres

string

L'en-tête.

Il y a deux en-têtes spéciaux. Le premier commence par la chaîne "HTTP/" (insensible à la casse), qui est utilisée pour signifier le statut HTTP à envoyer. Par exemple, si vous avez configuré Apache pour utiliser les scripts PHP pour gérer les requêtes vers des fichiers inexistants (en utilisant la directive ErrorDocument), vous voulez-vous assurer que le script génère un code statut correct.

<?php
header
("HTTP/1.0 404 Not Found");
?>

Avec FastCGI vous devez utiliser ceci pour une réponse 404:

<?php
header
("Status: 404 Not Found");
?>

Le deuxième type d'appel spécial est "Location:". Non seulement il renvoie un en-tête au client, mais, en plus, il envoie un statut REDIRECT (302) au navigateur tant qu'un code statut 201 ou 3xx n'a pas été envoyé.

<?php
header
("Location: http://www.example.com/"); /* Redirection du navigateur */

/* Assurez-vous que la suite du code ne soit pas exécutée une fois la redirection effectuée. */
exit;
?>

replace

Le paramètre optionnel replace indique si la fonction header() doit remplacer un en-tête précédemment émis, ou bien ajouter un autre en-tête du même type. Par défaut, un nouvel en-tête va écraser le précédent, mais si vous passez FALSE dans cet argument, vous pouvez forcer les en-têtes multiples pour un même type d'en-tête. Par exemple :

<?php
header
('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM'false);
?>

http_response_code

Force le code réponse HTTP à la valeur spécifiée.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
4.4.2 et 5.1.2 Cette fonction prévient l'envoi de plus d'un en-tête en même temps pour lutter contre les attaques par injection d'en-tête.
4.3.0 Ajout du paramètre http_response_code.
4.0.4 Ajout du paramètre replace.

Exemples

Exemple #1 Boîte de téléchargement

Si vous voulez que vos utilisateur recoivent une alerte pour sauver les fichiers générés, comme si vous génériez un fichier PDF, vous pouvez utiliser l'en-tête » Content-Disposition pour fournir un nom de fichier par défaut, à afficher dans le dialogue de sauvegarde.

<?php
// Vous voulez afficher un pdf
header('Content-type: application/pdf');

// Il sera nommé downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// Le source du PDF original.pdf
readfile('original.pdf');
?>

Exemple #2 Directives concernant la mise en cache

Les scripts PHP génèrent souvent du HTML dynamiquement, qui ne doit pas être mis en cache, ni par le client, ni par les proxy intermédiaires. On peut forcer la désactivation du cache de nombreux clients et proxy avec :

<?php
header
("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé
?>

Note:

Vous pouvez vous rendre compte que vos pages ne sont jamais mises en cache même si vous utilisez tous les en-têtes ci-dessus. Il existe toute une collection de paramètres que les utilisateurs peuvent modifier sur leur navigateur pour modifier le comportement par défaut du cache. En envoyant les en-têtes ci-dessus, vous pouvez imposer vos propres valeurs.

De plus, les paramètres session_cache_limiter() et session.cache_limiter peuvent être utilisés pour générer les en-têtes de caches corrects, lorsque les sessions sont utilisées.

Notes

Note:

Vous pouvez utiliser le système de cache (output buffering) pour contourner ce problème. Tous vos textes générés seront mis en buffer sur le serveur jusqu'à ce que vous les envoyiez. Vous pouvez utiliser les fonctions ob_start() et ob_end_flush() dans vos scripts, ou en modifiant la directive de configuration output_buffering dans votre fichier php.ini ou vos fichiers de configuration du serveur.

Note:

Le code statut HTTP doit toujours être le premier à être envoyé au client, au regard de l'actuel header() qui peut être le premier ou non. Le statut peut être écrasé en appelant header() avec un nouveau statut à n'importe quel moment même si l'en-tête HTTP a déjà été envoyé.

Note:

Il y a un bogue sous Microsoft Internet Explorer 4.01 qui empêche cet en-tête de fonctionner. Il n'y a pas d'autre solution. Il y a aussi un bogue dans Microsoft Internet Explorer 5.5 qui interfère avec ceci, mais qui peut être résolu en utilisant le Service Pack 2 ou plus récent.

Note: Si safe mode est activé, l'UID du script est ajouté à la partie realm des en-têtes WWW-Authenticate que vous envoyez avec cet en-tête.

Note:

HTTP/1.1 demande une URI absolue comme argument de » Location:, y compris le protocole, hôte et chemin absolu. Mais certains navigateurs acceptent les URI relatives. Vous pouvez généralement utiliser les variables globales $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] et dirname() pour construire vous-même une URI absolue :

<?php
/* Redirection vers une page différente du même dossier */
$host  $_SERVER['HTTP_HOST'];
$uri   rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Note:

L'ID de session n'est pas passé avec l'en-tête Location même si session.use_trans_sid est activé. Il doit être passé manuellement en utilisant la constante SID.

Voir aussi



headers_list

(PHP 5)

headers_listRetourne la liste des en-têtes de réponse du script courant

Description

array headers_list ( void )

headers_list() retourne un tableau avec la liste des en-têtes qui seront transmis au navigateur. Pour déterminer si ces en-têtes ont été déjà envoyés ou pas, utilisez la fonction headers_sent().

Valeurs de retour

Retourne un tableau indexé numériquement d'en-têtes.

Exemples

Exemple #1 Exemple avec headers_list()

<?php

/* setcookie() va ajouter un en-tête */
setcookie('foo''bar');

/* Définit un en-tête de réponse
Il sera ignoré par la majorité des navigateurs */
header("X-Sample-Test: foo");

/* Spécification de la réponse en texte simple */
header('Content-type: text/plain');

/* Quels sont les en-têtes qui vont être envoyés ? */
var_dump(headers_list());

?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.1.3"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

Voir aussi



headers_sent

(PHP 4, PHP 5)

headers_sentIndique si les en-têtes HTTP ont déjà été envoyés

Description

bool headers_sent ([ string &$file [, int &$line ]] )

Vérifie si les en-têtes HTTP ont déjà été envoyés.

Vous ne pouvez plus envoyer d'en-têtes avec la fonction header() une fois que le bloc d'en-tête a été fermé. En utilisant cette fonction, vous pouvez au moins éviter de voir s'afficher les erreurs HTTP reliées. Une autre option consiste à utiliser le contrôle de sortie.

Liste de paramètres

file

Si les paramètres optionnels file et line sont fournis, headers_sent() va placer le nom du fichier source et le numéro de ligne qui ont débuté l'affichage, dans les variables file et line.

line

Le numéro de la ligne où la sortie a eu lieu.

Valeurs de retour

headers_sent() retourne FALSE si aucun en-tête n'a été envoyé, ou TRUE sinon.

Historique

Version Description
4.3.0 Ajout des paramètres optionnels file et line.

Exemples

Exemple #1 Exemple avec headers_sent()

<?php

// Si aucun en-tête n'a été envoyé, envoyons-en un
if (!headers_sent()) {
    
header('Location: http://www.example.com/');
    exit;
}

// Voici un exemple d'utilisation des paramètres optionnels de fichier et de ligne
// disponibles depuis PHP 4.3.0. Notez que $filename et $linenum sont
// transmis pour utilisation ultérieure. Ne les assignez pas avant de les utiliser.
if (!headers_sent($filename$linenum)) {
    
header('Location: http://www.example.com/');
    exit;

// Vous allez probablement déclencher une erreur ici
} else {

   echo 
"Les en-têtes ont déjà été envoyés, depuis le fichier $filename à la ligne $linenum\n" .
   
"Il est donc impossible de vous rediriger automatiquement, aussi veuillez
   cliquez <a href=\"http://www.example.com\">ici</a>.\n"
;
   exit;
}

?>

Voir aussi

  • ob_start() - Enclenche la tamporisation de sortie
  • trigger_error() - Déclenche une erreur utilisateur
  • headers_list() - Retourne la liste des en-têtes de réponse du script courant
  • header() - Envoie un en-tête HTTPpour plus de détails sur les tenants et aboutissants.



inet_ntop

(PHP 5 >= 5.1.0)

inet_ntopConvertit un paquet d'adresses internet en une représentation humainement lisible

Description

string inet_ntop ( string $in_addr )

Convertit une adresse 32 bit IPv4 ou 128 bit IPv6 (si PHP a été compilé avec le support IPv6) en une chaîne représentant une famille d'adresses.

Liste de paramètres

in_addr

Une adresse 32 bit IPv4, ou 128 bit IPv6.

Valeurs de retour

Retourne une représentation de l'adresse, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec inet_ntop()

<?php
$packed 
chr(127) . chr(0) . chr(0) . chr(1);
$expanded inet_ntop($packed);

/* Affiche : 127.0.0.1 */
echo $expanded;

$packed str_repeat(chr(0), 15) . chr(1);
$expanded inet_ntop($packed);

/* Affiche : ::1 */
echo $expanded;
?>

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur les plate-formes Windows.

Voir aussi

  • long2ip() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
  • inet_pton() - Convertit une adresse IP lisible en sa représentation in_addr



inet_pton

(PHP 5 >= 5.1.0)

inet_ptonConvertit une adresse IP lisible en sa représentation in_addr

Description

string inet_pton ( string $address )

Convertit une adresse IPv4 ou IPv6 (si PHP a été compilé avec le support IPv6) humainement lisible en une structure binaire appropriée de famille d'adresses 32 bit ou 128 bit.

Liste de paramètres

address

Une adresse IPv4 ou IPv6.

Valeurs de retour

Retourne la représentation in_addr de l'adresse fournie par le paramètre address ou FALSE si le paramètre address fourni a une synthaxe invalide (par exemple, une adresse IPv4 sans point, ou une adresse IPv6 sans virgule).

Exemples

Exemple #1 Exemple avec inet_pton()

<?php
$in_addr 
inet_pton('127.0.0.1');

$in6_addr inet_pton('::1');
?>

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur les plate-formes Windows.

Voir aussi

  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
  • long2ip() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • inet_ntop() - Convertit un paquet d'adresses internet en une représentation humainement lisible



ip2long

(PHP 4, PHP 5)

ip2longConvertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale

Description

int ip2long ( string $ip_address )

Génère une adresse IPv4 à partir de son équivalent numérique.

ip2long() fonctionne également avec des adresses IP incomplètes. Lisez » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm pour plus d'informations.

Liste de paramètres

ip_address

Une adresse au format standard.

Valeurs de retour

Retourne une adresse IPv4, ou FALSE si ip_address est invalide.

Historique

Version Description
5.2.10 Avant cette version, ip2long() retourne parfois un nombre valide même si la valeur passée n'est pas une adresse pointée (IPv4).
5.0.0 Avant cette version, ip2long() retournait -1 en cas d'échec.

Exemples

Exemple #1 Exemple avec ip2long()

<?php
$ip 
gethostbyname('www.example.com');
$out "Les URLS suivantes sont équivalentes :<br />\n";
$out .= 'http://www.example.com/, http://' $ip '/, and http://' sprintf("%u"ip2long($ip)) . "/<br />\n";
echo 
$out;
?>

Exemple #2 Affichage d'une adresse IP

Ce second exemple montre comment afficher une adresse convertie à l'aide de la fonction printf() en PHP 4 et en PHP 5 :

<?php
$ip   
gethostbyname('www.example.com');
$long ip2long($ip);

if (
$long == -|| $long === FALSE) {
    echo 
'IP invalide, merci d\'essayer encore';
} else {
    echo 
$ip   "\n";           // 192.0.34.166
    
echo $long "\n";           // -1073732954
    
printf("%u\n"ip2long($ip)); // 3221234342
}
?>

Exemple #3 Validation d'adresse IP

ip2long() ne devrait pas être utilisée comme seule méthode pour valider une adresse IP. Combinez-la avec long2ip() :

<?php
// s'assure que les IPs sont valides. Convertit également une IP incomplète 
// en un format valide comme expliqué plus haut.
$ip long2ip(ip2long("127.0.0.1")); // "127.0.0.1"
$ip long2ip(ip2long("10.0.0")); // "10.0.0.0"
$ip long2ip(ip2long("10.0.256")); // "10.0.1.0"
?>

Notes

Note:

Comme les entiers PHP sont signés et que beaucoup d'adresses IP peuvent être des entiers négatifs sur les architectures 32-bits, vous devez utiliser le motif "%u" de la fonction sprintf() ou de la fonction printf() pour récupérer la représentation sous forme de chaîne de caractères d'une adresse IP non signé.

Note:

ip2long() devrait retourner FALSE pour l'adresse IP 255.255.255.255 en PHP 5 <= 5.0.2. Ce comportement a été modifié en PHP 5.0.3 où il retournait -1 (comme en PHP 4).

Voir aussi

  • long2ip() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • sprintf() - Retourne une chaîne formatée



long2ip

(PHP 4, PHP 5)

long2ipConvertit une adresse IP (IPv4) en adresse IP numérique

Description

string long2ip ( string $proper_address )

long2ip() génère une adresse IP (format aaa.bbb.ccc.ddd) à partir de sa représentation littérale.

Liste de paramètres

proper_address

Une représentation d'une adresse.

Valeurs de retour

Retourne l'adresse IP Internet, sous la forme d'une chaîne de caractères.

Voir aussi

  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale



openlog

(PHP 4, PHP 5)

openlogOuvre la connexion à l'historique système

Description

bool openlog ( string $ident , int $option , int $facility )

openlog() ouvre la connexion à l'historique système.

L'utilisation de openlog() est optionnelle. Cette fonction sera automatiquement appelée par la fonction syslog() si nécessaire, auquel cas ident vaudra par défaut FALSE.

Liste de paramètres

ident

La chaîne ident sera ajoutée à chaque message.

option

L'argument option indique les options de journalisation utilisées pour générer le message.

Options pour la fonction openlog()
Constante Description
LOG_CONS Si une erreur survient lors de l'envoi des données au gestionnaire d'historique, écrire directement l'erreur sur la console.
LOG_NDELAY Ouvre immédiatement une connexion au gestionnaire d'historique.
LOG_ODELAY Retarde l'ouverture de la connexion jusqu'à ce que le premier message soit enregistré (par défaut).
LOG_PERROR Envoie le message au gestionnaire standard.
LOG_PID Inclut le PID à chaque message.
Vous pouvez utiliser une ou plusieurs de ces options. Pour les combiner, utiliser l'opérateur OR. Par exemple, pour ouvrir immédiatement la connexion, écrire sur la console et inclure le PID de chaque message, utilisez : LOG_CONS | LOG_NDELAY | LOG_PID.

facility

L'argument facility sert à indiquer quel programme enregistre ce message. Cela vous permet de spécifier (sur la machine d'historique) comment traiter les messages venant de plusieurs serveurs.

Paramètre facility d'openlog()
Constante Description
LOG_AUTH sécurité/messages d'autorisation (utilisez LOG_AUTHPRIV, pour remplacer cette constante sur les systèmes où elle est définie).
LOG_AUTHPRIV sécurité/messages d'autorisation (privé)
LOG_CRON démon horloge (cron et at)
LOG_DAEMON autres démons système
LOG_KERN noyau (kernel)
LOG_LOCAL0 ... LOG_LOCAL7 réservé pour utilisation locale. Inutilisable sous Windows
LOG_LPR imprimante (line printer subsystem)
LOG_MAIL messagerie mail
LOG_NEWS USENET : groupes de news (newsgroup)
LOG_SYSLOG messages générés en interne par syslogd
LOG_USER messages utilisateurs génériques
LOG_UUCP sous-système UUCP

Note:

LOG_USER est le seul type valide sous les environnements Windows.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • syslog() - Génère un message dans l'historique système
  • closelog() - Ferme la connexion à l'historique système



pfsockopen

(PHP 4, PHP 5)

pfsockopenOuvre une socket de connexion Internet ou Unix persistante

Description

resource pfsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

pfsockopen() se comporte exactement comme fsockopen() mais la connexion ouverte le reste, même après la fin du script. C'est la version persistante de fsockopen().

Liste de paramètres

Pour plus d'informations sur les paramètres, reportez-vous à la documentation sur la fonction fsockopen().

Voir aussi

  • fsockopen() - Ouvre une socket de connexion Internet ou Unix



setcookie

(PHP 4, PHP 5)

setcookieEnvoie un cookie

Description

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

setcookie() définit un cookie qui sera envoyé avec le reste des en-têtes. Comme pour les autres en-têtes, les cookies doivent être envoyés avant toute autre sortie (c'est une restriction du protocole HTTP, pas de PHP). Cela vous impose d'appeler cette fonction avant toute balise <html> ou <head>.

Une fois que le cookie a été placé, il est accessible dans les variables globales $_COOKIE ou bien $HTTP_COOKIE_VARS. Notez que les superglobales comme $_COOKIE deviennent disponibles depuis PHP 4.1.0. Les valeurs de cookies existent aussi dans la variable $_REQUEST.

Liste de paramètres

Tous les arguments sauf name (nom) sont optionnels. Si seul le nom est présent, le cookie portant ce nom sera supprimé du navigateur de l'internaute. Vous pouvez aussi utiliser une chaîne vide ("") comme valeur, pour ignorer un argument. Comme l'argument expire est un entier, il ne peut pas être ignoré avec une chaîne vide, vous devez utiliser le zéro pour cela (0).

La » RFC 2109 est la référence pour l'interprétation des paramètres passés à setcookie().

name

Le nom du cookie.

value

La valeur du cookie. Cette valeur est stockée sur l'ordinateur du client ; ne stockez pas d'informations importantes. Si le paramètre name vaut 'cookiename', alors cette valeur est retrouvée en utilisant $_COOKIE['cookiename'].

expire

Le temps après lequel le cookie expire. C'est un timestamp Unix, donc, ce sera un nombre de secondes depuis l'époque Unix (1 Janvier 1970). En d'autres termes, vous devriez fixer cette valeur à l'aide de la fonction time() en y ajoutant le nombre de secondes après lequel on veut que le cookie expire. Vous pouvez utiliser aussi mktime(). time()+60*60*24*30 fera expirer le cookie dans 30 jours. Si vous ne spécifiez pas ce paramètre ou s'il vaut 0, le cookie expirera à la fin de la session (lorsque le navigateur sera fermé).

Note:

Vous pourrez noter que le paramètre expire prend un timestamp unique, et non pas la date au format Jour, JJ-Mois-AAAA HH:MM:SS GMT, car PHP fait la conversion en interne.

path

Le chemin sur le serveur sur lequel le cookie sera disponible. Si la valeur est '/', le cookie sera disponible sur l'ensemble du domaine domain. Si la valeur est '/foo/', le cookie sera uniquement disponible dans le répertoire /foo/ ainsi que tous ses sous-répertoires comme /foo/bar/ dans le domaine domain. La valeur par défaut est le répertoire courant où le cookie a été défini.

domain

Le domaine où le cookie est disponible. Pour rendre le cookie disponible sur tous les sous-domaines de example.com, vous devez mettre la valeur '.example.com'. Le point (.) n'est pas requis mais est nécessaire pour la compatibilité avec encore plus de navigateurs. Positionnez le à www.example.com et le cookie sera disponible uniquement sur le sous-domaine www. Reportez-vous aux » spécifications pour plus de détails.

secure

Indique si le cookie doit uniquement être transmis à travers une connexion sécurisée HTTPS depuis le client. Lorsqu'il est positionné à TRUE, le cookie ne sera envoyé que si la connexion est sécurisée. Côté serveur, c'est au développeur d'envoyer ce genre de cookie uniquement sur les connexions sécurisées (e.g. en utilisant la variable $_SERVER["HTTPS"]).

httponly

Lorsque ce paramètre vaut TRUE, le cookie ne sera accessible que par le protocole HTTP. Cela signifie que le cookie ne sera pas accessible via des langages de scripts, comme Javascript. Cette configuration permet de limiter les attaques via XSS (bien qu'elle ne soit pas supportée par tous les navigateurs). Ajouté en PHP 5.2.0. TRUE ou FALSE

Valeurs de retour

Si quelque chose a été envoyé sur la sortie standard avant l'appel à cette fonction, setcookie() échouera et retournera FALSE. Si setcookie() réussi, elle retournera TRUE. Cela n'indique pas si le client accepte ou pas le cookie.

Exemples

Quelques exemples d'envoi de cookies :

Exemple #1 Exemple d'envoi d'un cookie avec setcookie()

<?php
$value 
'Valeur de test';

setcookie("TestCookie"$value);
setcookie("TestCookie"$valuetime()+3600);  /* expire dans 1 heure */
setcookie("TestCookie"$valuetime()+3600"/~rasmus/"".example.com"1);
?>

Notez que la partie "valeur" du cookie sera automatiquement encodée URL lorsque vous envoyez le cookie et, lorsque vous le recevez, il sera automatiquement décodé et affecté à la variable du même nom que le cookie. Si vous ne souhaitez pas ce comportement par défaut, vous pouvez utiliser la fonction setrawcookie(). Pour voir le résultat, essayez les scripts suivants :

<?php
// Afficher un cookie
echo $_COOKIE["TestCookie"];
echo 
$HTTP_COOKIE_VARS["TestCookie"];

// Une autre méthode pour afficher tous les cookies
print_r($_COOKIE);
?>

Exemple #2 Exemple d'effacement d'un cookie avec setcookie()

Pour effacer un cookie sur le client, vous devez toujours vous assurer que sa date d'expiration est passée, pour déclencher le mécanisme du navigateur client. Voici comment procéder :

<?php
// Utilisation de la date courante, moins une heure
setcookie ("TestCookie"""time() - 3600);
setcookie ("TestCookie"""time() - 3600"/~rasmus/"".example.com"1);
?>

Exemple #3 setcookie() et les tableaux

Vous pouvez aussi utiliser les cookies avec des tableaux, en utilisant la notation des tableaux. Cela a pour effet de créer autant de cookies que votre tableau a d'éléments, mais lorsque les cookies seront reçus par votre script, les valeurs seront placées dans un tableau :

<?php
// Définit les cookies
setcookie("cookie[three]""cookiethree");
setcookie("cookie[two]""cookietwo");
setcookie("cookie[one]""cookieone");

// Après le rechargemet de la page, nous les affichons
if (isset($_COOKIE['cookie'])) {
    foreach (
$_COOKIE['cookie'] as $name => $value) {
        
$name htmlspecialchars($name);
        
$value htmlspecialchars($value);        
        echo 
"$name : $value <br />\n";
    }
}
?>

L'exemple ci-dessus va afficher :

three : cookiethree
two : cookietwo
one : cookieone

Historique

Version Description
5.2.0 Le paramètre httponly a été ajouté.

Notes

Note:

Vous pouvez utiliser la bufferisation de sortie pour pouvoir envoyer du contenu avant d'appeler cette fonction, avec la contrepartie que toute votre page sera envoyée en une fois. Vous pouvez faire cela en appelant ob_start() et ob_end_flush() dans votre script, ou en activant la directive output_buffering dans votre fichier de configuration php.ini ou dans le fichier de configuration de votre serveur.

Note:

Si la directive PHP register_globals est positionnée à on, la valeur du cookie est aussi disponible dans une variable. Dans l'exemple ci-dessous, $TestCookie existe. Il est vivement recommandé d'utiliser $_COOKIE.

Erreurs communes :

  • Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire. Le délai d'expiration est défini en utilisant le paramètre expire. Une façon simple de vérifier le positionnement du cookie est d'utiliser print_r($_COOKIE);.
  • Les cookies doivent être effacés avec les mêmes paramètres que ceux utilisés lors de leur création. Si l'argument value est une chaîne vide ou vaut FALSE et que les autres arguments sont exactement les mêmes que lors du positionnement du cookie, alors le cookie sera effacé du client. En interne, l'effacement est réalisé en positionnant la valeur à 'deleted' et la date d'expiration à une année dans le passé.
  • Du fait que l'assignation d'une valeur valant FALSE à un cookie tente de l'effacer, vous ne devriez pas utiliser de booléen. À la place, utilisez 0 pour FALSE et 1 pour TRUE.
  • Les noms des cookies peuvent être des tableaux de noms et seront disponibles dans vos scripts PHP sous la forme de tableaux mais des cookies différents seront placés sur le client. Utilisez explode() pour placer un cookie avec des noms et des valeurs multiples. Il n'est pas recommandé d'utiliser la fonction serialize() pour réaliser ceci, car cela peut conduire à des problèmes de sécurité.

Les appels multiples à la fonction setcookie() seront effectués dans l'ordre.

Voir aussi



setrawcookie

(PHP 5)

setrawcookieEnvoie un cookie sans encoder sa valeur en URL

Description

bool setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

setrawcookie() est exactement la même que setcookie() excepté que la valeur du cookie ne sera pas automatiquement encodée URL lors de l'envoi au navigateur.

Liste de paramètres

Pour plus d'informations, reportez-vous à la documentation de la fonction setcookie().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.0 Ajout du paramètre httponly.

Voir aussi



socket_get_status

(PHP 4, PHP 5)

socket_get_statusAlias de stream_get_meta_data()

Description

Cette fonction est un alias de : stream_get_meta_data().



socket_set_blocking

(PHP 4, PHP 5)

socket_set_blockingAlias de stream_set_blocking()

Description

Cette fonction est un alias de : stream_set_blocking().



socket_set_timeout

(PHP 4, PHP 5)

socket_set_timeoutAlias de stream_set_timeout()

Description

Cette fonction est un alias de : stream_set_timeout().



syslog

(PHP 4, PHP 5)

syslogGénère un message dans l'historique système

Description

bool syslog ( int $priority , string $message )

syslog() génère un message qui sera inscrit dans l'historique par le système.

Pour plus d'informations sur comment mettre en place un gestionnaire d'historique, reportez-vous au manuel Unix, page 5 syslog.conf (5). D'autres informations sur les systèmes d'historique et leurs options sont aussi disponibles dans le manuel syslog (3) des machines Unix.

Liste de paramètres

priority

priority est une combinaison des valeurs d'accès et de niveau. Les valeurs possibles sont :

Priorités syslog() (en ordre décroissant)
Constante Description
LOG_EMERG système inutilisable
LOG_ALERT une décision doit être prise immédiatement
LOG_CRIT condition critique
LOG_ERR condition d'erreur
LOG_WARNING condition d'alerte
LOG_NOTICE condition normale, mais significative
LOG_INFO message d'information
LOG_DEBUG message de déboguage

message

Le message à envoyer. Attention : les caractères %m seront remplacés par l'erreur (sous forme de chaîne), présente dans errno.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec syslog()

<?php
// ouverture de syslog, ajout du PID et envoi simultané du
// message à la sortie standard et à un mécanisme
// spécifique
openlog("myScriptLog"LOG_PID LOG_PERRORLOG_LOCAL0);

// quelques lignes de code

if (authorized_client()) {
    
// faire quelquechose
} else {
    
// client non autorisé!
    // notation de la tentative
    
$access date("Y/m/d H:i:s");
    
syslog(LOG_WARNING"Unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>

Notes

Avec Windows NT, l'historique est pris en charge par le log d'événements.

Note:

L'utilisation de LOG_LOCAL0 à LOG_LOCAL7 pour le paramètre facility de la fonction openlog() n'est pas disponible sous Windows.

Voir aussi

  • openlog() - Ouvre la connexion à l'historique système
  • closelog() - Ferme la connexion à l'historique système


Sommaire

  • checkdnsrr — Résolution DNS d'une adresse IP
  • closelog — Ferme la connexion à l'historique système
  • define_syslog_variables — Initialise toutes les variables relatives aux fonctions syslog
  • dns_check_record — Alias de checkdnsrr
  • dns_get_mx — Alias de getmxrr
  • dns_get_record — Lit les données DNS associées à un hôte
  • fsockopen — Ouvre une socket de connexion Internet ou Unix
  • gethostbyaddr — Retourne le nom d'hôte correspondant à une IP
  • gethostbyname — Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbynamel — Retourne la liste d'IPv4 correspondante à un hôte
  • gethostname — Lit le nom de l'hôte
  • getmxrr — Retourne les enregistrements MX d'un hôte
  • getprotobyname — Retourne le numéro de protocole associé à un nom de protocole
  • getprotobynumber — Retourne le nom de protocole associé à un numéro de protocole
  • getservbyname — Retourne le numéro de port associé à un service Internet et un protocole
  • getservbyport — Retourne le service Internet qui correspond au port et protocole
  • header_remove — Supprime un entête HTTP
  • header — Envoie un en-tête HTTP
  • headers_list — Retourne la liste des en-têtes de réponse du script courant
  • headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés
  • inet_ntop — Convertit un paquet d'adresses internet en une représentation humainement lisible
  • inet_pton — Convertit une adresse IP lisible en sa représentation in_addr
  • ip2long — Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
  • long2ip — Convertit une adresse IP (IPv4) en adresse IP numérique
  • openlog — Ouvre la connexion à l'historique système
  • pfsockopen — Ouvre une socket de connexion Internet ou Unix persistante
  • setcookie — Envoie un cookie
  • setrawcookie — Envoie un cookie sans encoder sa valeur en URL
  • socket_get_status — Alias de stream_get_meta_data
  • socket_set_blocking — Alias de stream_set_blocking
  • socket_set_timeout — Alias de stream_set_timeout
  • syslog — Génère un message dans l'historique système



RRDtool


Introduction

L'extension PECL/rrd propose un lien avec la bibliothèque C RRDtool. RRDtool est une norme dans l'industrie open source, fournissant une historisation des données d'authentification à haute performance, ainsi qu'un système de représentation graphique des données de séries chronologiques.

Page d'accueil RRDtool : » http://www.mrtg.org/rrdtool/.



Installation/Configuration

Sommaire


Pré-requis

Vous devez installer d'abord la bibliothèque librrd afin d'utiliser l'extension PECL/rrd. Vérifiez si votre distribution favorite Linux propose le paquet librrd-dev. PECL/rrd est testé avec librrd 1.4.3, les anciennes versions ou les plus récentes peuvent ou non fonctionner. L'installation PECL/rrd est testé avec PHP 5.3.2 ou suivants.

Avertissement

Librrd et donc l'extension elle-même ne sont pas, la plupart du temps, thread safe. Il y a beaucoup d'états globaux et partagés dans librrd. Ce peut être dangereux d'utiliser cette extension en environnement multi-thread comme Apache 2 mpm worker. S'il y a plusieurs requêtes parallèles, une d'entre elles peut modifier l'état global de la bibliothèque librrd, affectant ainsi les autres requêtes en cours d'exécution.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/rrd.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemple procédural PECL/rrd

Exemple #1 Utilisation procédurale de rrd

<?php
$rrdFile 
dirname(__FILE__) . "/speed.rrd";

//création d'un fichier rrd
rrd_create($rrdFile,
 array(
  
"--start",920804400,
  
"DS:speed:COUNTER:600:U:U",
  
"RRA:AVERAGE:0.5:1:24",
  
"RRA:AVERAGE:0.5:6:10"
  
)
);

//Mise à jour d'un fichier rrd
rrd_update($rrdFile,
 array(
  
"920804700:12345",
  
"920805000:12357"
  
)
);

//Affichage du graphique
rrd_graph(dirname(__FILE__) . "/speed.png",
 array(
  
"--start""920804400",
  
"--end""920808000",
  
"--vertical-label""m/s",
  
"DEF:myspeed=$rrdFile:speed:AVERAGE",
  
"CDEF:realspeed=myspeed,1000,*",
  
"LINE2:realspeed#FF0000"
 
)
);
?>



Exemple orienté objet de PECL/rrd

Exemple #1 Utilisation orientée objet de rrd

<?php
$rrdFile 
dirname(__FILE__) . "/speed.rrd";
$outputPngFile dirname(__FILE__) . "/speed.png";

$creator = new RRDCreator($rrdFile"now -10d"500);
$creator->addDataSource("speed:COUNTER:600:U:U");
$creator->addArchive("AVERAGE:0.5:1:24");
$creator->addArchive("AVERAGE:0.5:6:10");
$creator->save();

$updator = new RRDUpdater($rrdFile);
$updator->update(array("speed" => "12345"), "920804700");
$updator->update(array("speed" => "12357"), "920805000");

$graphObj = new RRDGraph($outputPngFile);
$graphObj->setOptions(
 array(
  
"--start" => "920804400",
  
"--end" => 920808000,
  
"--vertical-label" => "m/s",
  
"DEF:myspeed=$rrdFile:speed:AVERAGE",
  
"CDEF:realspeed=myspeed,1000,*",
  
"LINE2:realspeed#FF0000"
 
)
);
$graphObj->save();
?>




Fonctions RRD


rrd_create

(PECL rrd >= 0.9.0)

rrd_createCrée un fichier de base de données rrd

Description

bool rrd_create ( string $filename , array $options )

Crée un fichier de base de données rrd.

Liste de paramètres

filename

Nom de fichier du nouveau fichier rrd.

options

Options pour la création rrd - listes de chaînes. Reportez-vous à la page man de rrd pour une liste complète des options disponibles pour la création.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



rrd_error

(PECL rrd >= 0.9.0)

rrd_errorRécupère le message de la dernière erreur survenue

Description

string rrd_error ( void )

Récupère le message de la dernière erreur survenue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le dernier message d'erreur.



rrd_fetch

(PECL rrd >= 0.9.0)

rrd_fetchRécupère les données pour le graphique

Description

array rrd_fetch ( string $filename , array $options )

Récupère les données pour le graphique depuis le fichier de base de données RRD sous la forme d'un tableau. Cette fonction a le même résultat que la fonction rrd_graph(), mais les données récupérées sont retournées sous la forme d'un tableau, aucun fichier image n'est créé.

Liste de paramètres

filename

Nom de fichier de la base de données RRD.

options

Tableau d'options pour la spécification de la résolution.

Valeurs de retour

Retourne des informations sur les données de graphique récupérées.



rrd_first

(PECL rrd >= 0.9.0)

rrd_firstRécupère le timestamp du premier échantillon depuis le fichier RRD

Description

int rrd_first ( string $file [, int $raaindex = 0 ] )

Retourne les données du premier échantillon depuis le RRD spécifié du fichier RRD.

Liste de paramètres

file

Nom de fichier de la base de données RRD.

raaindex

Le numéro d'index du RRA à examiner. La valeur par défaut est 0.

Valeurs de retour

Timestamp unix, ou FALSE si une erreur survient.



rrd_graph

(PECL rrd >= 0.9.0)

rrd_graphCrée une image depuis des données

Description

array rrd_graph ( string $filename , array $options )

Crée une image depuis un fichier RRD.

Liste de paramètres

filename

Nom du fichier de la base de données RRD.

options

Options pour la génération de l'image. Reportez-vous à la page man du graphique RRD pour toutes les options possibles. Toutes les options (définitions de données, définitions des variables, etc.) sont autorisées.

Valeurs de retour

Tableau contenant les informations sur l'image générée, ou FALSE si une erreur survient.



rrd_info

(PECL rrd >= 0.9.0)

rrd_infoRécupère les informations sur un fichier RRD

Description

array rrd_info ( string $filename )

Retourne les informations sur un fichier de base de données RRD.

Liste de paramètres

file

Nom de fichier de la base de données RRD.

Valeurs de retour

Tableau contenant les informations sur le fichier RRD demandé, ou FALSE si une erreur survient.



rrd_last

(PECL rrd >= 0.9.0)

rrd_lastRécupère le timestamp unix du premier échantillon

Description

int rrd_last ( string $filename )

Retourne le timestamp UNIX de la mise à jour la plus récente de la base de données RRD.

Liste de paramètres

filename

Nom de fichier de la base de données RRD.

Valeurs de retour

Timestamp Unix des données les plus récentes de la base de données RRD.



rrd_lastupdate

(PECL rrd >= 0.9.0)

rrd_lastupdateRécupère les informations sur les dernières données mises à jour

Description

array rrd_lastupdate ( string $filename )

Récupère un tableau de timestamp unix et les valeurs stockées pour chaque date de la dernière mise à jour du fichier de base de données RRD.

Liste de paramètres

file

Nom de fichier de la base de données RRD.

Valeurs de retour

Tableau d'informations sur la dernière mise à jour, ou FALSE si une erreur survient.



rrd_restore

(PECL rrd >= 0.9.0)

rrd_restoreRestaure le fichier RRD depuis une sauvegarde XML

Description

bool rrd_restore ( string $xml_file , string $rrd_file [, array $options ] )

Restaure le fichier RRD depuis une sauvegarde XML.

Liste de paramètres

xml_file

Nom de fichier XML de la sauvegarde du fichier original de base de données RRD.

rrd_file

Nom du fichier de la base de données RRD qui sera restauré.

options

Tableau d'options pour la restauration. Reportez-vous à la page man de la restauration RRD.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.



rrd_tune

(PECL rrd >= 0.9.0)

rrd_tuneAffine des options d'en-tête d'un fichier de base de données RRD

Description

bool rrd_tune ( string $filename , array $options )

Modifie quelques options de l'en-tête d'un fichier de base de données RRD, comme le fait de renommer la source des données.

Liste de paramètres

filename

Nom du fichier de la base de données RRD.

options

Options avec les propriétés du fichier de la base de données RRD qui doivent être modifiés. Reportez-vous à la page man correspondante de RRD pour plus de détails.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.



rrd_update

(PECL rrd >= 0.9.0)

rrd_updateMet à jour une base de données RRD

Description

bool rrd_update ( string $filename , array $options )

Met à jour le fichier d'une base de données RRD. Les données d'entrée sont la date/heure, interpolée suivant les propriétés du fichier de la base de données RRD.

Liste de paramètres

filename

Nom du fichier de la base de données RRD. Cette base de données sera mise à jour.

options

Options pour la mise à jour de la base de données RRD - liste de chaînes. Reportez-vous à la page man correspondante pour une liste complète des options.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si une erreur survient.



rrd_xport

(PECL rrd >= 0.9.0)

rrd_xportExporte les informations d'une base de données

Description

array rrd_xport ( array $options )

Exporte les informations d'un fichier de base de données RRD. Ces données peuvent être converties en fichier XML via un script PHP de l'espace utilisateur puis, être utilisées pour restaurer le fichier de base de données RRD.

Liste de paramètres

options

Tableau d'options pour l'exportation ; reportez-vous à la page man correspondante.

Valeurs de retour

Tableau contenant les informations du fichier de base de données RRD, ou FALSE si une erreur survient.


Sommaire

  • rrd_create — Crée un fichier de base de données rrd
  • rrd_error — Récupère le message de la dernière erreur survenue
  • rrd_fetch — Récupère les données pour le graphique
  • rrd_first — Récupère le timestamp du premier échantillon depuis le fichier RRD
  • rrd_graph — Crée une image depuis des données
  • rrd_info — Récupère les informations sur un fichier RRD
  • rrd_last — Récupère le timestamp unix du premier échantillon
  • rrd_lastupdate — Récupère les informations sur les dernières données mises à jour
  • rrd_restore — Restaure le fichier RRD depuis une sauvegarde XML
  • rrd_tune — Affine des options d'en-tête d'un fichier de base de données RRD
  • rrd_update — Met à jour une base de données RRD
  • rrd_xport — Exporte les informations d'une base de données


La classe RRDCreator

Introduction

Classe pour créer des fichiers de base de données RRD.

Synopsis de la classe

RRDCreator {
/* Méthodes */
public void addArchive ( string $description )
public void addDataSource ( string $description )
public void __construct ( string $path [, string $startTime [, int $step = 0 ]] )
public bool save ( void )
}

RRDCreator::addArchive

(PECL rrd >= 0.9.0)

RRDCreator::addArchiveAjoute des valeurs de données RRA - archive pour chaque source de données

Description

public void RRDCreator::addArchive ( string $description )

Ajoute une définition RRA de la description de l'archive. Une archive consiste en une nombre de valeurs de données ou de statistiques pour chaque sources de données définies (DS). Les sources de données sont définies par la méthode RRDCreator::addDataSource(). Vous devez appeler cette méthode pour chaque archive demandée.

Liste de paramètres

description

Définition de l'archive RRA. Le format est identique à la définition RRA dans la commande de création RRD. Reportez-vous à la page man de création RRD pour plus de détails.

Valeurs de retour

Aucune valeur n'est retournée.



RRDCreator::addDataSource

(PECL rrd >= 0.9.0)

RRDCreator::addDataSourceAjoute une définition de source de données pour la base de données RRD

Description

public void RRDCreator::addDataSource ( string $description )

RRD peut accepter des entrées depuis diverses sources de données (DS), i.e. un trafic entrant et sortant. Cette méthode ajoute une source de données par sa description. Vous devez appeler cette méthode pour chaque source de données.

Liste de paramètres

description

Définition de la source de données (DS). Le format est identique à la définition d'un DS dans la commande de création RRD. Reportez-vous à la page man de la création RRD pour plus de détails.

Valeurs de retour

Aucune valeur n'est retournée.



RRDCreator::__construct

(PECL rrd >= 0.9.0)

RRDCreator::__constructCrée une nouvelle instance RRDCreator

Description

public void RRDCreator::__construct ( string $path [, string $startTime [, int $step = 0 ]] )

Crée une nouvelle instance RRDCreator.

Liste de paramètres

path

Chemin vers le nouveau fichier de base de données RRD créé.

startTime

Date/heure pour la première valeur de la base de données RRD. Ce paramètre supporte tous les formats qui sont supportés par l'appel de création RRD.

intstep

Intervalle de base, en secondes, d'insertion des données dans la base de données RRD.

Valeurs de retour

Aucune valeur n'est retournée.



RRDCreator::save

(PECL rrd >= 0.9.0)

RRDCreator::saveSauvegarde la base de données RRD dans un fichier

Description

public bool RRDCreator::save ( void )

Sauvegarde la base de données RRD dans un fichier, dont le nom est défini par la méthode RRDCreator::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



La classe RRDGraph

Introduction

Classe pour exporter les données depuis une base de données RRD vers un fichier image.

Synopsis de la classe

RRDGraph {
/* Méthodes */
public void __construct ( string $path )
public array save ( void )
public array saveVerbose ( void )
public void setOptions ( array $options )
}

RRDGraph::__construct

(PECL rrd >= 0.9.0)

RRDGraph::__constructCrée une nouvelle instance RRDGraph

Description

public void RRDGraph::__construct ( string $path )

Crée une nouvelle instance RRDGraph. Cette instance est responsable du rendu du résultat de la requête à la base de données RRD dans l'image.

Liste de paramètres

path

Chemin complet pour la nouvelle image créée.

Valeurs de retour

Aucune valeur n'est retournée.



RRDGraph::save

(PECL rrd >= 0.9.0)

RRDGraph::saveSauvegarde le résultat d'une requête dans une image

Description

public array RRDGraph::save ( void )

Sauvegarde le résultat d'une requête de base de données RRD dans une image définie par la méthode RRDGraph::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les informations sur l'image générée, ou FALSE si une erreur survient.



RRDGraph::saveVerbose

(PECL rrd >= 0.9.0)

RRDGraph::saveVerboseSauvegarde une requête de base de données RRD dans l'image et retourne les informations verbeuses sur le graphique généré.

Description

public array RRDGraph::saveVerbose ( void )

Sauvegarde la requête de base de données RRD dans le fichier image défini par la méthode RRDGraph::__construct() et retourne les informations verbeuses sur le graphique généré ; si "-" est utilisé comme nom de fichier image, les données de l'image seront également retournées dans le tableau résultant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les informations détaillées sur l'image généré, optionnellement, incluant les données de l'image, ou FALSE si une erreur survient.



RRDGraph::setOptions

(PECL rrd >= 0.9.0)

RRDGraph::setOptionsDéfinit les options d'exportation d'un graphique RRD

Description

public void RRDGraph::setOptions ( array $options )

Liste de paramètres

options

Liste les options pour la génération de l'image depuis un fichier de base de données RRD. Peut être une liste d'options, ou une liste de chaînes avec des clés pour une meilleure lisibilité. Reportez-vous à la page man du graphique RRD pour une liste des options disponibles.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RRDGraph::setOptions()

<?php
$graphObj
->setOptions(array(
  
"--start" => "920804400",
   
"--end" => 920808000,
    
"--vertical-label" => "m/s",
    
"DEF:myspeed=$rrdFile:speed:AVERAGE",
    
"CDEF:realspeed=myspeed,1000,*",
    
"LINE2:realspeed#FF0000"
));
?>


Sommaire



La classe RRDUpdater

Introduction

Classe pour mettre à jour un fichier de base de données RRD.

Synopsis de la classe

RRDUpdater {
/* Méthodes */
public void __construct ( string $path )
public bool update ( array $values [, string $time = time() ] )
}

RRDUpdater::__construct

(PECL rrd >= 0.9.0)

RRDUpdater::__constructCrée une nouvelle instance RRDUpdater

Description

public void RRDUpdater::__construct ( string $path )

Crée une nouvelle instance RRDUpdater. Cette instance est chargée de la mise à jour du fichier de base de données RRD.

Liste de paramètres

path

Chemin du système de fichier vers le fichier de base de données RRD à mettre à jour.

Valeurs de retour

Aucune valeur n'est retournée.



RRDUpdater::update

(PECL rrd >= 0.9.0)

RRDUpdater::updateMet à jour un fichier de base de données RRD

Description

public bool RRDUpdater::update ( array $values [, string $time = time() ] )

Met à jour le fichier RRD défini via la méthode RRDUpdater::__construct(). Le fichier est mis à jour avec des valeurs spécifiques.

Liste de paramètres

values

Données à utiliser pour la mise à jour. La clé est le nom de la source des données.

time

La date/heure pour la mise à jour de RRD avec une donnée particulière. La valeur par défaut est la date/heure courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception Exception en cas d'erreur.

Exemples

Exemple #1 Exemple avec RRDUpdater::update()

<?php
$updator 
= new RRDUpdater("speed.rrd");
//Mise à jour de la source de données "speed" avec la valeur "12411"
//pour la date/heure définie par le timestamp "920807700"
$updator->update(array("speed" => "12411"), "920807700");
?>


Sommaire




SAM - Messagerie asynchrone


Introduction

Cette extension fournit un accès aux fonctionnalités des systèmes de messageries et de mise en file d'attente, comme les produits de la famille IBM WebSphere MQSeries, depuis des scripts PHP. L'interface a été conçue pour rendre simple les tâches les plus communes comme délivrer des messages simples à la file d'attente, mais permet aussi aux utilisateurs plus expérimentés d'effectuer des opérations plus complexes. Pour la plupart des utilisateurs, les configurations des options complexes peuvent être tout simplement ignorées.

L'extension SAM est un framework qui fournit une API simple qui peut être utilisée pour accéder à plusieurs systèmes de messagerie. Actuellement, le paquet inclut un support interne pour le protocole de messagerie MQTT (MQ Telemetry Transport) ainsi que pour les produits de messagerie IBM et Queuing middleware. SAM a été conçu pour être extensible à d'autres systèmes de messagerie et ainsi, des extensions peuvent être écrites en C ou en PHP.



Installation/Configuration

Sommaire


Pré-requis

L'extension SAM interface la messagerie IBM ainsi que les produits de mise en file d'attente en utilisant un jeu de bibliothèques et du code côté client. Ce paquet est disponible en téléchargement gratuit dans le guide du support IBM pack IA94. Il y a une description de ce paquet ainsi que des liens de téléchargements dans l'article "» Introduction à XMS - L'API IBM Message Service".

Si vous voulez utiliser SAM pour accéder à l'infrastructure de messagerie et de mise en file d'attente dans un WebSphere MQ, alors vous devriez également installer un gestionnaire local de mise en file d'attente MQ ou installer la paquet client WebSphere MQ. Le paquet client est disponible librement en tant qu'un pack support (» MQC6).

Si vous voulez juste tester l'envoi de message depuis et vers une application WebSphere en utilisant le protocole WebSphere Platform Messaging (WPM), alors, vous n'avez pas besoin d'installer le paquet MQC6.

Après avoir installé ces paquets, vous devez vous assurer que le binaire XMS, si vous l'utilisez, et que le client MQ sont accessibles via la variable d'environnement PATH afin qu'Apache et PHP puissent trouver les bibliothèques nécessaires.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sam.

Le framework SAM et le support MQTT peuvent être construits et utilisés sans aucun élément supplémentaire. Le support pour les protocoles autres que MQTT est fourni via un jeu de bibliothèques et du code côté client, comme XMS.

Si vous ne souhaitez utiliser que le support interne MQTT, alors, vous pouvez construire et configurer SAM en tant qu'extension ou simplement vous référer à php_sam.php grâce aux fonctions require() ou require_once() dans votre script PHP. Dans ce cas, vous devez uniquement installer le code, sans construire l'extension via l'installeur PEAR :

pecl install -B SAM

Étapes d'installation sous Linux

L'extension SAM est fournie en tant que module PECL. Vous devriez donc pouvoir la télécharger et l'installer en une seule étape, comme ceci :

pecl install sam
(Suivant votre environnement PHP, vous devrez probablement être "root" pour faire ceci.)

Assurez-vous que le module a été chargé par PHP, en ajoutant la ligne suivante à votre php.ini :

extension=sam.so
Si vous voulez utiliser le support XMS afin d'accéder à la messagerie IBM, vous devez également activer l'extension SAM XMS.
extension=sam_xms.so

Si vous ne pouvez pas utiliser l'installeur PEAR, vous pouvez télécharger l'extension et la construire manuellement :

pear download sam          #téléchargement de sam-<version>.tgz
tar -xzf sam-<version>.tgz
cd sam-<version>
phpize
./configure
make
make install               #vous devriez devoir être root pour cette étape

Pour avoir la toute dernière source, vous devriez extraire les sources depuis SVN et la construire en utilisant les instructions qui se trouvent dans ce manuel.

Étapes d'installation sous Windows

Vous devez construire l'extension SAM pour Windows car il n'existe pas de binaire précompilé. L'extension peut être construite en utilisant les procédures standards de construction des extensions Windows.

Vous devez avoir les sources de PHP pour lesquelles l'extension SAM doit être utilisée. Les sources doivent être décompressées dans le répertoire de votre choix.

Vous devez également avoir les bibliothèques et en-têtes utilisés par les extensions PHP, disponibles sur http://www.php.net/extra/win32build.zip et doivent être décompressés dans le même dossier de travail.

Vous devriez obtenir quelque chose comme :

c:\php-build\-
              |
              |---php-5.0.5--|---build
              |              |---ext
              |              |--- ...
              |
              |---win32build--|---bin
                              |---include
                              |---lib

Vous devez avoir également un compilateur, par exemple, la version gratuite de Visual Studio C++ Express que vous trouverez sur le site web de Microsoft. Vous devez aussi avoir le SDK Microsoft Windows Platform qui est également disponible sur le site web de Microsoft.

Téléchargez les sources de l'extension SAM (pear download sam) ou en utilisant SVN et copiez les fichiers dans un nouveau dossier "sam" du dossier "ext" des sources PHP.

Pour construire l'extension, ouvrez un environnement de construction Windows via

menu->Tous les programmes->microsoft platform SDK for windows->
open build environment window->windows 200 build environment->
set windows 2000 build environment (retail)

Ceci devrait ouvrir une fenêtre de commande avec toutes les variables d'environnements définies afin d'accéder à la plate-forme SDK, etc. Vous devez ensuite définir les variables d'environnements pour Visual Studio en lançant la commande vcvars32.bat dans la fenêtre.

Déplacez-vous dans votre dossier de travail, e.g. cd c:\php-build. Ensuite, assurez-vous que les utilitaires win32build soient accessibles en ajoutant la variable d'environnement suivante :

set PATH=..\win32build\bin;%PATH%

Exécutez la commande buildconf.bat. Ceci devrait reconstruire le fichier configure.js.

Exécutez la commande cscript avec les options appropriées. Pour uniquement construire l'extension SAM et le support MQTT, utilisez :

cscript /nologo configure.js --with-sam
Pour construire le framework SAM et le support XMS, utilisez :
cscript /nologo configure.js --with-sam --with-sam_xms="c:\program files\ibm\xms"

Le paramètre additionnel passé à SAM est le chemin d'installation vers les bibliothèques XMS et d'exécution qui ont été installées comme décrit en début de ce manuel.

Vous pouvez spécifier d'autres paramètres cscript dont vous avez besoin pour inclure et exclure des éléments de votre construction de PHP ou des options sélectionnées.

En supposant que tout est Ok jusqu'ici pour vous, vous pouvez maintenant lancer la construction !

nmake php_sam.dll
De plus, si vous utilisez le support XMS, vous devrez construire l'extension sam_xms :
nmake php_sam_xms.dll

Si vous avez utiliser Visual Studio 2005 pour construire les bibliothèques DLL, alors lisez ce qui suit pour les étapes additionnelles que vous devez effectuer avant d'aller plus loin.

Les bibliothèques DLLs créées (php_sam.dll, et, optionnellement php_sam_xms.dll) peuvent maintenant être copiées dans le sous répertoire approprié de votre installation de PHP. Assurez-vous que le(s) module(s) est(sont) chargé(s) par PHP, en ajoutant la ligne suivante à votre php.ini :

extension=php_sam.dll
Si vous voulez utiliser le support XMS pour accéder à IBM Messaging and Queuing family, vous devez également activer l'extension SAM XMS.
extension=php_sam_xms.dll

Étapes additionnelles pour Visual Studio 2005

Si vous construisez l'extension SAM avec le compilateur et les outils Microsoft Visual Studio 2005, vous devez effectuer une étape supplémentaire dans le processus de compilation afin de vous assurer que la bibliothèque php_sam.dll soit capable de se lier aux bibliothèques C durant l'exécution. Cette étape ajoute la dépendance directement dans la DLL. Déplacez-vous dans le répertoire où la bibliothèque php_sam.dll a été générée (habituellement le dossier Release_TS ou Debug_TS du dossier des sources PHP) et exécutez l'incantation magique suivante :

mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2
Si vous utilisez les capacités XMS, vous devez effectuer la même chose avec la bibliothèque SAM XMS :
mt.exe -manifest php_sam_xms.dll.manifest -outputresource:php_sam_xms.dll;2

Si vous construisez l'extension SAM en utilisant le compilateur et les bibliothèques Microsoft Visual Studio 2005, vous devriez aussi vous assurer que les composants d'exécution sont présents sur le système sur lequel vous voulez utiliser SAM. Ceci peut être fait en installation Visual Studio 2005 ou en utilisant le » paquet d'exécution librement distribuable.



Configuration à l'exécution

Support des protocoles et liage

Le framework SAM peut être étendu pour supporter d'autres protocoles de messagerie et d'autre mécanismes de connexion. Pour ajouter le support d'un nouveau protocole ou connexion, une classe doit être définie, soit sous la forme d'une extension C, soit sous la forme d'un script PHP, et un script "usine" doit être créé. La classe doit implémenter toutes les méthodes de la classe SAMConnection, car elle n'hérite pas de la classe SAMConnection. Le script d'usine doit être appelé par le framework SAM pour créer une instance de la classe implémentée. La façon dont SAM choisit quel utilitaire à appeler, est basée sur le protocole spécifié en tant que premier paramètre de l'appel à "connect".

Par défaut, le support interne MQTT sera utilisé si une connexion est spécifiée à un protocole SAM_MQTT ("mqtt") ; pour les autres protocoles, SAM tente d'utiliser l'extension XMS. Pour ajouter le support de protocoles supplémentaires ou pour modifier le comportement par défaut, des entrées doivent être ajoutées dans le php.ini dans la section [sam]. Le liage par défaut est équivalent aux entrées suivantes :

[sam]
sam.factory.mqtt=mqtt
sam.factory.wmq=xms
sam.factory.wmq:client=xms
sam.factory.wmq:bindings=xms
sam.factory.wpm=xms
sam.factory.rtt=xms
Comme nous pouvons le voir dans ces exemples, les entrées prennent la forme de "sam.factory.pppp=xxx" où pppp est le protocole spécifié lors de l'appel à la connexion et xxx est le suffixe d'usine. Note : SAM définit des constantes pour ces protocoles, comme SAM_WMQ=wmq, SAM_WPM=wpm, SAM_RTT=rtt, SAM_MQTT=mqtt, etc.

Lors de l'identification du code support à utiliser lors d'un appel à connexion, SAM cherche le nom du protocole dans les entrées du php.ini, puis, invoque un script d'usine nommé sam_factory_xxx.php. Si aucune entrée n'est trouvée, le support par défaut utilisé sera XMS.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SAM_AUTO (chaîne de caractères)
Comportement automatique
SAM_BOOLEAN (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_BUS (chaîne de caractères)
Attribut de connexion à utiliser pour définir le nom du service bus entreprise à s'y connecter.
SAM_BYTE (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_BYTES (chaîne de caractères)
Description du type du corps du message.
SAM_CORRELID (chaîne de caractères)
Attribut utilisé lors de la réception, de l'envoi et de l'effacement pour identifier les messages.
SAM_DELIVERYMODE (chaîne de caractères)
Propriété de l'en-tête du message.
SAM_DOUBLE (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_ENDPOINTS (chaîne de caractères)
Attribut de connexion à utiliser pour définir les "endpoints" possibles à s'y connecter.
SAM_FLOAT (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_HOST (chaîne de caractères)
Attribut de connexion à utiliser pour définir le nom de l'hôte du serveur de messagerie requis.
SAM_INT (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_LONG (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_MANUAL (chaîne de caractères)
Comportement manuel (contrôlé par le script)
SAM_MESSAGEID (chaîne de caractères)
Attribut utilisé lors de la réception et de l'effacement pour identifier les messages.
SAM_MQTT (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole MQTT (MQ Telemetry Transport).
SAM_MQTT_CLEANSTART (bool)
Option de connexion optionnel indiquant à un serveur MQTT que toutes les connexions précédentes de ce client doivent être effacées et que ces souscriptions doivent également être effacées lorsque le client se déconnecte explicitement ou de façon inattendu.
SAM_NON_PERSISTENT (chaîne de caractères)
Attribut de connexion utilisé pour rendre la connexion non persistante sur le serveur de messagerie.
SAM_PASSWORD (chaîne de caractères)
Attribut de connexion utilisé pour définir le mot de passe pour l'utilisateur utilisé pour la connexion au serveur de messagerie.
SAM_PERSISTENT (chaîne de caractères)
Attribut de connexion utilisé pour rendre la connexion persistante sur le serveur de messagerie.
SAM_PORT (chaîne de caractères)
Attribut de connexion utilisé pour spécifier le numéro du port sur lequel le serveur de messagerie écoute.
SAM_PRIORITY (chaîne de caractères)
Option utilisée pour spécifier la priorité de délivrance des demandes.
SAM_REPLY_TO (chaîne de caractères)
Propriété du message utilisée pour spécifier l'adresse de la réponse.
SAM_RTT (chaîne de caractères)
Définition du protocole de connexion sélectionnant le protocole IBM Realtime Transport utilisé pour la communication avec le serveur de messagerie.
SAM_STRING (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_TARGETCHAIN (chaîne de caractères)
Attribut de connexion utilisé pour définit la chaîne identifiant la cible.
SAM_TEXT (chaîne de caractères)
Description du type de corps du message.
SAM_TIMETOLIVE (chaîne de caractères)
Option du message envoyé utilisé pour spécifier la durée de vie d'un message.
SAM_TRANSACTIONS (chaîne de caractères)
Attribut de connexion utilisé pour définir le comportement transactionnel. Peut être définit à SAM_AUTO (par défaut) ou SAM_MANUAL.
SAM_USERID (chaîne de caractères)
Attribut de connexion utilisé pour définir le compte à utiliser pour se connecter au serveur de messagerie.
SAM_WAIT (chaîne de caractères)
Propriété reçue à utiliser pour spécifier le délai d'attente maximal à utiliser lors de la réception d'un message.
SAM_WMQ (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie.
SAM_WMQ_BINDINGS (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie local.
SAM_WMQ_CLIENT (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie distant.
SAM_WMQ_TARGET_CLIENT (chaîne de caractères)
Option utilisé sur les demandes envoyées pour spécifier le mode du client cible. Elle peut valoir, par défaut, "jms" ou "mq". La valeur par défaut est "jms", ce qui signifie qu'un en-tête RFH2 est envoyé avec le message, tandis qu'avec "mq", aucun en-tête RFH2 n'est envoyé.
SAM_WPM (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere Platform Messaging pour la communication avec un serveur de messagerie WebSphere Application Server.


Exemples

Sommaire


Connexions

Afin d'exécuter des fonctions de messageries et de mise en file d'attente, une connexion doit être établie avec un serveur de messagerie en créant un objet SAMConnection et en appelant sa méthode "connect", avec quelques propriétés de connexion, afin de connecter le script PHP au serveur de messagerie. Pendant le temps où l'objet SAMConnection n'est pas détruit, la connexion sera maintenue et disponible. Tous les objets SAMConnection seront détruis lorsque le script PHP se terminera.

Quelques propriétés par défaut peuvent être utilisées pour la connexion au serveur de messagerie mais le script PHP doit spécifier au minimum le protocole à utiliser.

Exemple #1 Création d'une connexion et connexion à un serveur de messagerie distant WebSphere MQSeries

<?php
$conn 
= new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'myhost.mycompany.com',
                              
SAM_PORT => 1506,
                              
SAM_BROKER => 'mybroker'));
?>

Exemple #2 Création d'une connexion et connexion à un serveur distant WebSphere Application

<?php
$conn 
= new SAMConnection();
$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              
SAM_BUS => 'Bus1',
                              
SAM_TARGETCHAIN => 'InboundBasicMessaging'));
?>

Exemple #3 Création d'un connexion et connexion à un serveur MQTT

<?php
$conn 
= new SAMConnection();
$conn->connect(SAM_MQTT, array(SAM_HOST => 'myhost.mycompany.com',
                               
SAM_PORT => 1883));
?>



Messages

Les messages envoyés et reçus depuis les files d'attente sont représentés par l'objet SAMMessage. L'objet SAMMessage contient le corps du message (s'il existe) ainsi que les propriétés des en-têtes associés au message. L'objet SAMMessage est soit fourni en tant que paramètre d'une opération sur un message, ou retourné comme résultat.

Exemple #1 Création d'un message avec un corps texte simple

<?php
$msg 
= new SAMMessage('This is a simple text message');
?>

Les messages doivent avoir des propriétés d'en-têtes associés, qui permettent le contrôle du transport du message ou fournissent des informations futures sur l'application réceptrice. Par défaut, les propriétés des messages sont délivrées au système de messagerie sous la forme de chaînes de caractères et dans ce cas, peuvent être définies comme ceci :

Exemple #2 Définition d'une propriété de formatage de texte en utilisant la syntaxe par défaut

<?php
$msg
->header->myPropertyName 'textData';
?>

Si vous voulez passer des informations sur le type, une syntaxe alternative peut être utilisée où la valeur et le type sont passés dans un tableau associatif :

Exemple #3 Définition d'une propriété en spécifiant le type

<?php
$msg
->header->myPropertyName = array(3.14159SAM_FLOAT);
?>

Les propriétés peuvent également être extraites depuis l'en-tête d'un message.

Exemple #4 Récupération d'une propriété depuis l'en-tête d'un message

<?php
$myProperty 
$msg->header->myPropertyName;
?>



Opérations de messagerie

Toutes les opérations de messagerie sont exécutées via des appels aux méthodes sur l'objet de connexion. Pour ajouter un message à la file d'attente, la méthode "send" est utilisée, tandis que pour obtenir un message depuis la file d'attente, la méthode "receive" est utilisée. D'autres méthodes offrent d'autres fonctionnalités comme la publication, la souscription ou encore le contrôle sur les transactions.

Exemple #1 Ajout d'un message à la file d'attente et réception de la réponse

<?php
$msg 
= new SAMMessage('Ceci est un message texte simple');
$msg->header->SAM_REPLY_TO 'queue://receive/test';
$correlid $conn->send('queue://send/test'$msg);

if (!
$correlid) {
  
// The Send failed!
  
echo "Send failed ($conn->errno$conn->error";
} else {
  
$resp $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>



Publication/Souscription à un sujet

SAM permet d'envoyer des messages soit à la file d'attente, ou, pour WebSphere MQ et WPM, de publier/souscrire à des sujets. L'envoi à un sujet est spécifié à SAM de la façon habituelle, i.e. sous la forme 'topic://fred', plutôt que sous la forme 'queue://AQUEUE', utilisée pour une opération de point à point. Pour publier/souscrire, il est tout simplement nécessaire de spécifier le correct du courtier lors de l'appel à la méthode "connect" de l'objet SAMConnect et le sujet désiré dans l'argument de destination des appels aux méthodes "send" et "receive" de l'objet SAMConnect. L'interface PHP est cependant identique au model point à point.

Par défaut, SAM crée des souscriptions non durables lors de l'utilisation des fonctionnalités de publication/souscription. Cela signifie que si l'application cliente est inactive lorsque les messages sont publiés sur un sujet, alors il ne les recevra pas lorsqu'il redemarrera. SAM permet également des souscriptions durables à un sujet lors de l'utilisation de WPM ou WebSphere. Le but de ces souscriptions est de permettre aux données d'être reçues par une application cliente même si le client n'est plus actif au moment où les données sont publiées.

Les souscriptions durables sont spécifiées en utilisant l'appel à la méthode "suscribe" de l'objet SAMConnect. Cette méthode prend le sujet destinataire en tant qu'argument d'entrée et retourne l'identifiant de souscription qui pourra être utilisé lors des prochains appels à la méthode "receive". Lorsque la souscription n'est plus nécessaire, la méthode "unsubscribe" de l'objet SAMConnection dot être utilisée pour effacer la souscription.

Exemple #1 Création d'une souscription durable à un sujet

<?php

$subName 
$conn->subscribe('topic://A');

if (!
$subName) {
   echo 
"Échec de la souscription";
} else {
    
# Souscription Ok
    // ...
}
?>

Exemple #2 Souscription à un sujet en utilisant un serveur WebSphere Platform Messaging (WPM)

<?php
$conn 
= new SAMConnection();
// Note: Pour une publication/souscription sur un WPM, lors de la connexion, le nom du moteur de messagerie
// qui gère la souscription durable (SAM_WPM_DUR_SUB_HOME) doit être spécifié.
$conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              
SAM_BUS => 'Bus1',
                              
SAM_TARGETCHAIN => 'InboundBasicMessaging',
                              
SAM_WPM_DUR_SUB_HOME => 'MyMachineNode01.server1-Bus1'));

$subName $conn->subscribe('topic://A');

if (!
$subName) {
   echo 
"Échec de la souscription";
} else {
    
# Souscription Ok
   // ...
}
?>

Exemple #3 Réception des données publiées en utilisant une souscription durable

<?php

$msg 
$conn->receive($subName);
if (
$msg) {
   echo 
"Réception d'un message Ok";
} else {
    echo 
"Échec de la réception";
}

?>

Exemple #4 Effacement d'une souscription durable à un sujet

<?php

if (!$conn->unsubscribe($subName)) {
   echo 
"Échec lors de l'effacement de la souscription";
}

?>



Gestion des erreurs

Toutes les méthodes SAMConnection qui fournissent un accès aux opérations de messagerie retourne FALSE si une erreur survient durant le processus. En plus de cela, l'objet SAMConnection a deux propriétés, "errno" et "error", qui fournissent respectivement le numéro et la description de la dernière erreur survenue sur la connexion.

Exemple #1 Gestion d'une erreur depuis une méthode qui ne retourne aucun résultat

<?php
if (!$conn->commit()) {
    
// Le commit a échoué !
    
echo "Le commit a échoué : ($conn->errno$conn->error";
}
?>

Exemple #2 Gestion d'une erreur depuis une méthode qui retourne un résultat

<?php
$correlid 
$conn->send('queue://send/test'$msg);

if (!
$correlid) {
    
//L'envoi a échoué !
    
echo "L'envoi a échoué : ($conn->errno$conn->error";
} else {
  
/* ... */
}
?>




Fonctions SAM

Classes pré-définies

SAMConnection

Objet représentant une connexion à un serveur de messagerie

Constructeur

  • new SAMConnection : construit un nouvel objet de connexion permettant une connexion à une infrastructure de messagerie.

Méthodes

  • commit : une méthode qui valide un travail.

  • connect : une méthode qui connecte un script PHP à un serveur de messagerie.

  • disconnect : une méthode qui déconnecte un script PHP d'un serveur de messagerie.

  • isConnected : une méthode qui vérifie si un script PHP est connecté à un serveur de messagerie.

  • peek : une méthode qui reçoit un message depuis la file d'attente sans pour autant l'effacer de la file d'attente.

  • peekAll : une méthode qui reçoit un ou plusieurs messages depuis la file d'attente sans pour autant les effacer de la file d'attente.

  • receive : une méthode qui reçoit un message depuis la file d'attente ou depuis une souscription.

  • remove : une méthode qui efface un message depuis la file d'attente.

  • rollback : une méthode qui annule un travail.

  • send : une méthode qui envoie un message à une file d'attente ou sur un sujet.

  • setDebug : une méthode qui active ou non l'affichage des informations de déboguage

  • subscribe : une méthode qui crée une souscription à un ou plusieurs sujets.

  • unsubscribe : une méthode qui détruit une suscription à un ou plusieurs sujets.

Propriétés

  • errno : le numéro de la dernière erreur survenue sur la connexion. Cette propriété est définie à 0 si la dernière opération a réussi.

  • error : la description de la dernière erreur survenue sur la connexion.

SAMMessage

Objet représentant un message à envoyer ou à recevoir.

Constructeur

Propriétés

  • body : le corps du message.

  • header : les propriétés d'en-tête du message.


SAMConnection->commit

(PECL sam >= 0.1.0)

SAMConnection->commitValide le travail courant

Description

bool SAMConnection::commit ( void )

L'appel à la méthode "commit" sur un objet de connexion valide toutes les transactions courantes.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Validation du travail courant

<?php
  
if (!$conn->commit()) {
    
// Échec de la validation !
    
echo "La validation a échoué : ($conn->errno$conn->error";
  }
?>



SAMConnection->connect

(PECL sam >= 0.1.0)

SAMConnection->connectÉtablie une connexion à un serveur de messagerie

Description

bool SAMConnection::connect ( string $protocol [, array $properties ] )

L'appel à la méthode "connect" sur un objet SAMConnection connecte le script PHP à un serveur de messagerie. Aucun message ne peut être envoyé ou reçu tant qu'une connexion n'est pas établie.

Liste de paramètres

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM MQSeries (WMQ)

<?php

$conn
->connect(SAM_WMQ, array(SAM_HOST => 'Myhost.myco.com'SAM_PORT => 1506SAM_BROKER => 'MyBroker'));

?>

Exemple #2 Création d'une connexion avec contrôle des transactions, hôte par défaut et valeur du port de communication

<?php

$conn
->connect(SAM_WMQ, array(SAM_BROKER => 'MyBroker'SAM_TRANSACTIONS => SAM_MANUAL));

?>

Exemple #3 Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM WebSphere Platform Messaging (WPM)

<?php

$conn
->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
SAM_BUS => 'Bus1'SAM_TARGETCHAIN => 'InboundBasicMessaging'));

?>



SAMConnection->__construct

(PECL sam >= 0.1.0)

SAMConnection->__constructCrée une nouvelle connexion à un serveur de messagerie

Description

SAMConnection::__construct ( void )

Crée un nouvel objet SAMConnection.

Exemples

Exemple #1 Création d'un nouvel objet de connexion SAM et une connexion à un serveur de messagerie

<?php

$conn 
= new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => localhostSAM_PORT => 1414SAM_BROKER => 'bull'));

?>



SAMConnection->disconnect

(PECL sam >= 0.1.0)

SAMConnection->disconnectDéconnexion d'un serveur de messagerie

Description

bool SAMConnection::disconnect ( void )

L'appel à la méthode "disconnect" d'un objet SAMConnection déconnecte le script PHP d'un serveur de messagerie. Aucun message ne peut être envoyé ou reçu tant qu'une connexion n'a pas été établie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Déconnexion d'un serveur de messagerie

<?php

$conn
->disconnect();

?>



SAMConnection->errno

(PECL sam >= 0.1.0)

SAMConnection->errnoRécupère le numéro de la dernière erreur issue d'une opération SAM

Description

int $errno;

Contient le code erreur de la dernière opération SAM sur la connexion. Si la dernière opération a réussie, cette propriété contient 0.

Valeurs de retour

Un entier supérieur à 0 indique le type de la dernière erreur rencontrée sur la connexion. 0 indique que la dernière opération a réussie.

Exemples

Exemple #1 Exemple d'utilisation du numéro et de la description de l'erreur

<?php
$conn 
= new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost'SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!
$conn->send('topic://test'$msg)) {
    
// L'envoi a échoué !
    
echo "L'envoi a échoué : ($conn->errno$conn->error";
}
?>



SAMConnection->error

(PECL sam >= 0.1.0)

SAMConnection->errorRécupère la description de la dernière erreur d'une opération SAM

Description

string $error;

Contient la description de la dernière erreur survenue sur la connexion. Si la dernière opération a réussie, cette propriété contiendra une chaîne vide.

Valeurs de retour

Une chaîne de caractères contenant la description de la dernière erreur rencontrée sur la connexion. Une chaîne vide indique que la dernière opération sur la connexion a réussi.

Exemples

Exemple #1 Exemple d'utilisation du numéro et de la description d'une erreur

<?php
$conn 
= new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost'SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!
$conn->send('topic://test'$msg)) {
    
// L'envoi a échoué !
    
echo "L'envoi a échoué : ($conn->errno$conn->error";
}
?>



SAMConnection->isConnected

(PECL sam >= 0.1.0)

SAMConnection->isConnectedVérifie si une connexion est établie avec un serveur de messagerie

Description

bool SAMConnection::isConnected ( void )

L'appel à la méthode "isConnected" sur un objet de connexion vérifie si le script PHP est connecté à un serveur de messagerie. Aucun message ne peut être envoyé, ni reçu tant qu'une connexion n'a pas été établie à un serveur de messagerie.

Valeurs de retour

Cette méthode retourne TRUE si l'objet SAMConnection est connecté à une serveur de messagerie, FALSE sinon.

Exemples

Exemple #1 Vérifie si la connexion est établie à un serveur de messagerie

<?php

if ($conn->isConnected()) {
  echo 
'Connexion active.';
} else {
  echo 
'Aucune connexion acitve !';
}

?>



SAMConnection->peek

(PECL sam >= 0.1.0)

SAMConnection->peekLit un message depuis la file d'attente sans l'effacer

Description

SAMMessage SAMConnection::peek ( string $target [, array $properties ] )

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle on lit le message.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété Valeurs possibles
SAM_CORRELID C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID C'est l'identifiant du message à lire.

Valeurs de retour

Cette méthode retourne un objet SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération du prochain message depuis la file d'attente sans l'effacer

<?php
$msg 
$conn->peek('queue://receive/test');

if (!
$msg) {
  
// Échec de la lecture !
  
echo "Échec de la lecture : ($conn->errno$conn->error";
}
?>

Exemple #2 Récupération d'un message spécifique depuis la file d'attente sans l'effacer

<?php
$msg 
$conn->peek('queue://receive/test', array(SAM_MESSAGEID => $messageId));
?>



SAMConnection->peekAll

(PECL sam >= 0.2.0)

SAMConnection->peekAllLit un ou plusieurs messages depuis la file d'attente sans les effacer

Description

array SAMConnection::peekAll ( string $target [, array $properties ] )

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle les messages doivent être lus.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété Valeurs possibles
SAM_CORRELID C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID C'est l'identifiant du message à lire.

Valeurs de retour

Cette méthode retourne un tableau d'objets SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération de tous les messages d'une file d'attente sans les effacer

<?php
$msgArray 
$conn->peekAll('queue://receive/test');
if (
$msgArray) {
   foreach ( 
$msgArray as $key => $msg) {
       echo 
"Message $key: body = $msg->body\n";
   }
} else {
   echo 
"Échec de PeekAll ($conn->errno$conn->error";
}
?>

Exemple #2 Récupération de tous les messages d'une file d'attente correspondant à un identifiant de corrélation

<?php

$msgArray 
$conn->peekAll('queue://receive/test', array(SAM_CORRELID => $correlId ));
if (
$msgArray) {

   foreach ( 
$msgArray as $key => $msg) {
         echo 
"Message $key: body = $msg->body\n";
   }
} else {
   echo 
"Erreur de lecture : ($conn->errno$conn->error";
}

?>

Voir aussi



SAMConnection->receive

(PECL sam >= 0.1.0)

SAMConnection->receiveReçoit un message depuis une file d'attente ou d'une souscription

Description

SAMMessage SAMConnection::receive ( string $target [, array $properties ] )

Liste de paramètres

target

L'identité de la file d'attente, du sujet ou de la souscription depuis lequel le message est reçu.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération de réception :

Nom de la propriété Valeurs possibles
SAM_CORRELID Utilisé pour demander la réception d'un message en se basant sur l'identifiant de corrélation du message.
SAM_MESSAGEID Utilisé pour demander la réception d'un message en se basant sur l'identifiant du message.
SAM_WAIT Délai d'attente maximal en millisecondes permettant de contrôler le temps d'attente de réception du message avant de retourner une erreur si aucun message n'est disponible sur la file d'attente ou sur le sujet. La valeur par défaut est 0, ce qui signifie que le délai est infini et doit donc être utilisée avec précaution car la demande attendra jusqu'au temps limite d'exécution PHP si aucun message n'est disponible.

Valeurs de retour

Cette méthode retourne un objet SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple #1 Réception d'un message depuis la file d'attente

<?php
$msg 
$conn->receive('queue://receive/test');

if (!
$msg) {
  
// La réception a échoué !
  
echo "La réception a échoué : ($conn->errno$conn->error";
}
?>

Exemple #2 Réception d'un message depuis la file d'attente avec des options

Dans cet exemple, l'option SAM_CORRELID est utilisé pour spécifier un identifiant de corrélation à utiliser pour identifier le message à recevoir ainsi qu'un délai d'attente maximal de 10 secondes.

<?php

$msg 
$conn->receive('queue://receive/test', array(SAM_CORRELID => $tokenSAM_WAIT => 10000));

?>

Exemple #3 Réception d'un message depuis une souscription

Dans cet exemple, nous montrons comment réceptionner un message depuis un identifiant de souscription.

<?php
$msg 
$conn->receive($subscriptionName);

if (!
$msg) {
  
// La réception a échoué !
  
echo "La réception a échoué : ($conn->errno$conn->error";
}
?>

Noter que $subscriptionName est un identifiant de souscription retourné lors d'un précédent appel à une souscription.

Voir aussi



SAMConnection->remove

(PECL sam >= 0.1.0)

SAMConnection->removeEfface un message depuis la file d'attente

Description

SAMMessage SAMConnection::remove ( string $target [, array $properties ] )

Efface un message depuis la file d'attente.

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle le message doit être effacé.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres permettant le contrôle de l'opération.

Nom de la propriété Valeurs possibles
SAM_CORRELID C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID C'est l'identifiant du message à effacer.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Effacement d'un message depuis la file d'attente en utilisant un identifiant de message

<?php
if (!$conn->remove('queue://receive/test', array(SAM_MESSAGEID => $messageId))) {
  
// L'effacement a échoué !
  
echo "L'effacement a échoué : ($conn->errno$conn->error";
}
?>



SAMConnection->rollback

(PECL sam >= 0.1.0)

SAMConnection->rollbackAnnulation d'un travail

Description

bool SAMConnection::rollback ( void )

Annulation d'un travail.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Annulation d'un travail

<?php
if (!$conn->rollback()) {
  
// L'annulation a échoué !
  
echo "L'annulation a échoué : ($conn->errno$conn->error";
}
?>



SAMConnection->send

(PECL sam >= 0.1.0)

SAMConnection->sendEnvoie un message à une file d'attente ou le publie sur un sujet

Description

string SAMConnection::send ( string $target , SAMMessage $msg [, array $properties ] )

La méthode "send" est utilisée pour envoyer un message à une file d'attente spécifique ou le publier à un sujet spécifique. La méthode retourne l'identifiant de corrélation qui peut être utilisé comme sélecteur pour identifier les messages réponses.

Liste de paramètres

target

Si l'on envoie un message, ce sera l'identité de la file d'attente (queue://queuename) ou, si on le publie à un sujet spécifique, l'identité du sujet (topic://topicname) auquel le message doit être délivré.

msg

Le message à envoyer ou à publier.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété Valeurs de la propriété
SAM_DELIVERYMODE Indique si le serveur de messagerie doit s'assurer de la délivrance du message ou s'il accepte que les messages soient perdus en cas de défaillance du serveur de messagerie. La valeur de cette propriété peut être définie soit à SAM_PERSISTENT, pour indiquer que la perte des messages n'est pas acceptable, soit à SAM_NON_PERSISTENT si la perte de messages est acceptable. Le comportement résultant de l'envoi dépendra des capacités du serveur de messagerie auquel est connecté le script PHP. Si le serveur ne supporte pas les messages persistants et que SAM_PERSISTENT est spécifié, l'envoi échouera avec une erreur indiquant que la fonctionnalité n'est pas disponible.
SAM_PRIORITY Une valeur numérique entre 0 et 9 indique la priorité de délivrance du message. Une valeur de priorité de 0 indique une priorité basse, alors que 9 indique une priorité haute. Si aucune priorité n'est spécifiée, une valeur par défaut sera passée, dépendant du serveur de messagerie utilisé.
SAM_CORRELID Une chaîne à assigner comme identifiant de corrélation pour ce message. Si aucune valeur n'est fournie, le serveur de messagerie peut assigner une valeur automatiquement.
SAM_TIMETOLIVE Une durée, en millisecondes, indiquant combien de temps le serveur de messagerie doit retenir le message dans une file d'attente avant de le jeter. La valeur par défaut est 0 indiquant que le message doit être retenu indéfiniment.
SAM_WMQ_TARGET_CLIENT Cette propriété n'est valide que lors de l'utilisation de WebSphere MQ et indique si l'on doit inclure un en-tête RFH2 dans le message. Cette option doit être définie à 'jms' ou 'mq'. Par défaut, elle vaut 'jms' ce qui signifie que l'en-tête RFH2 est incluse. Si la valeur 'mq' est spécifiée, alors, aucun en-tête RFH2 ne sera inclus dans le message.

Valeurs de retour

Un identifiant de corrélation qui peut être utilisé dans un appel de réception en tant que sélecteur pour obtenir toutes les réponses, ou FALSE si une erreur survient.

Note:

Note : un identifiant de corrélation ne sera retourné qu'en cas d'un envoi réussi à une file d'attente (queue://xxxx) et dans ce cas, sera l'identité du message sur la file d'attente. Si l'envoi est destiné à publier des données, la valeur retournée sera TRUE, car aucun identifiant de corrélation ne sera disponible.

Exemples

Exemple #1 Envoi d'un message à une file d'attente

<?php
$msg 
= new SAMMessage('Ceci est un message simple');
$correlId $conn->send('queue://send/test'$msg);
if (!
$correlId) {
    
// L'envoi a échoué !
    
echo "L'envoi a échoué : ($conn->errno$conn->error";
}

?>

Exemple #2 Publication d'un message sur un sujet

<?php
$msg 
= new SAMMessage('Ceci est un élément simple');
if (!
$conn->send('topic://test'$msg)) {
    
// L'envoi a échoué !
    
echo "L'envoi a échoué : ($conn->errno$conn->error";
}
?>

Exemple #3 Envoi une demande et réceptionne la réponse

<?php
$msg 
= new SAMMessage('Ceci est un message simple');
$msg->header->SAM_REPLY_TO 'queue://receive/test';
$correlid $conn->send('queue://send/test'$msg);

if (!
$correlid) {
    
// L'envoi a échoué !
    
echo "L'envoi a échoué : ($conn->errno$conn->error";
} else {
    
$resp $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>



SAMConnection::setDebug

(PECL sam >= 1.1.0)

SAMConnection::setDebugActive ou non l'affiche des informations de déboguage

Description

La méthode "setdebug" est utilisée pour activer ou non l'affichage des informations de déboguage. Le framework SAM fournira des entrées de méthode/fonction et sortira une trace en plus d'informations connexes. L'implémentation spécifique du protocole fournira également des messages supplémentaires.

void SAMConnection::setDebug ( bool $switch )

Liste de paramètres

switch

Si ce paramètre est défini à TRUE, l'affichage additionnelle des informations de déboguage sera fournie. Si la valeur est définie à FALSE, l'affichage de déboguage sera interrompue.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Activation de l'affichage de déboguage

<?php
$conn
->setdebug(TRUE);
?>

Exemple #2 Désactivation de l'affichage de déboguage

<?php
$conn
->setdebug(FALSE);
?>



SAMConnection->subscribe

(PECL sam >= 0.1.0)

SAMConnection->subscribeCrée une souscription à un sujet spécifique

Description

string SAMConnection::subscribe ( string $targetTopic )

La méthode "subscribe" est utilisée pour créer une nouvelle souscription à un sujet spécifique.

Liste de paramètres

targetTopic

L'identité du sujet (topic://topicname) à souscrire.

Valeurs de retour

Un identifiant de souscription qui peut être utilisé dans une sous-séquence de réception en tant que sélecteur pour obtenir n'importe quelles données du sujet ou FALSE si une erreur survient. L'identifiant de souscription doit être utilisé dans l'appel de réception en tant que nom du sujet.

Exemples

Exemple #1 Souscription à un sujet

<?php
$subid 
$conn->subscribe('topic://A');
if (!
$subid) {
  
// La souscription a échoué !
  
echo "La souscription a échoué : ($conn->errno$conn->error";
}
?>



SAMConnection->unsubscribe

(PECL sam >= 0.1.0)

SAMConnection->unsubscribeAnnule une souscription à un sujet spécifique

Description

bool SAMConnection::unsubscribe ( string $subscriptionId [, string $targetTopic ] )

La méthode "unsubscribe" est utilisée pour effacer une souscription existante à un sujet spécifique.

Liste de paramètres

subscriptionId

L'identifiant d'une souscription existante tel que retourné par un appel à la méthode "subscribe".

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Efface une souscription

<?php
if (!$conn->unsubscribe($subid)) {
  
// La souscription a échoué !
  
echo "La souscription a échoué : ($conn->errno$conn->error";
}
?>



SAMMessage->body

(PECL sam >= 0.1.0)

SAMMessage->bodyDéfinit le corps d'un message

Description

string $body;

La propriété "body" contient le corps actuel du message. Il peut ne pas toujours avoir été défini.

Exemples

Exemple #1 Définition d'un texte dans le corps d'un message

<?php
$msg 
= new SAMMessage();
$msg->body 'Ceci est un texte simple.';

?>

Voir aussi



SAMMessage->__construct

(PECL sam >= 0.1.0)

SAMMessage->__constructCrée un nouvel objet de message

Description

SAMMessage::__construct ([ mixed $body ] )

Crée un nouvel objet SAMMessage et, optionnellement, le corps d'un message.

Liste de paramètres

body

Le corps optionnel du message.

Exemples

Exemple #1 Création d'un message

<?php

$msg 
= new SAMMessage();

?>

Exemple #2 Création d'un message avec un texte simple

<?php

$msg 
= new SAMMessage('Ceci est un message simple.');

?>



SAMMessage->header

(PECL sam >= 0.1.0)

SAMMessage->headerLes propriétés d'en-tête d'un message

Description

object $header;

La propriété header est un conteneur pour n'importe quel système ou propriétés utilisateur dont l'espace est associé au message.

Les propriétés peuvent être assignées par l'expéditeur du message pour contrôler la façon dont le gestionnaire de messagerie va le gérer ou peuvent être assignées par le système de messagerie lui-même pour communiquer au récepteur des informations additionnelles sur le message ou la façon dont il doit le gérer.

Quelques propriétés sont comprises par SAM dans le cas où les constantes y ont été définies. Cependant, la majorité des propriétés sont ignorées par l'implémentation de SAM et simplement passées aux systèmes de messagerie permettant ainsi à l'application d'utiliser les noms des propriétés spécifiques à la messagerie ou pour définir vos propres propriétés "utilisateur".

Les propriétés SAM définies sont les suivantes :

Nom de la propriété Valeurs possibles
SAM_MESSAGEID Lorsqu'un message est reçu, ce champs contient l'identifiant unique du message alloué par le système de messagerie. Lorsqu'un message est envoyé, ce champs est ignoré.
SAM_REPLY_TO Une chaîne de caractères fournissant l'identifiant de la file d'attente à laquelle les réponses à ce message doit être posté.
SAM_TYPE

Une indication du type de message à envoyer. La valeur peut être SAM_TEXT, indiquant que le contenu du corps du message est du texte, ou SAM_BYTES, indiquant que le contenu du corps du message contient des formats définis.

La façon dont cette propriété est utilisée dépend du serveur de messagerie. Pour le moment, un serveur de messagerie qui supporte les spécifications JMS (Java Message Service) interprète cette valeur et envoie des messages du type "jms_text" et "jms_bytes". De plus, si la propriété SAM_TYPE est définie à SAM_TEXT, les données fournies pour le corps du message est supposées être encodées UTF8.

Lors de la configuration des valeurs de ces propriétés, il est souvent utile de fournir un indice quant au format dans lequel la propriété doit être délivrée au serveur de messagerie. Par défaut, les valeurs des propriétés sont délivrées en tant que texte et la syntaxe simple suivante peut être utilisée pour définir une valeur :

Exemple #1 Définition d'une propriété au format texte en utilisant la syntaxe par défaut

<?php
$msg 
= new SAMMessage();

$msg->header->myPropertyName 'textData';
?>

Si vous voulez passer une information sur le type, une syntaxe alternative peut être utilisée où la valeur et le type sont passés dans un tableau associatif :

Exemple #2 Définition d'une propriété au format texte en utilisant un type

<?php
$msg 
= new SAMMessage();

$msg->header->myPropertyName = array('textData'SAM_STRING);
?>

Lorsque vous passez le type, il doit être un parmi les valeurs des constantes SAM définies, tel que dans le tableau suivant :

Constante Description du type
SAM_BOOLEAN Toute valeur passée sera interprétée comme logique, TRUE ou FALSE. Si la valeur n'a pû être interprétée en tant qu'une valeur booléenne PHP, la valeur passée au système de messagerie sera indéfinie.
SAM_BYTE Une valeur entière signée sur 8-bit. SAM tentera de convertir la valeur spécifiée en une valeur sur un octet à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pu être déterminée en tant que valeur binaire signé sur 8-bit, les données peuvent être perdues pendant la conversion.
SAM_DOUBLE Une valeur longue, à virgule flottante. SAM tentera de convertir la valeur spécifiée en une valeur à virgule flottante avec 15 unités de précision à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur à virgule flottante avec 15 unités de précision, les données peuvent être perdues pendant la conversion.
SAM_FLOAT Une valeur courte, à virgule flottante. SAM tentera de convertir la valeur spécifiée en une valeur à virgule flottante avec 7 unités de précision à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur à virgule flottante avec 7 unités de précision, les données peuvent être perdues pendant la conversion.
SAM_INT Une valeur entière signée 32-bit. SAM tentera de convertir la valeur spécifiée en une valeur entière, signée 32-bit à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pu être déterminée en tant que valeur entière signée 32-bit, les données peuvent être perdues pendant la conversion.
SAM_LONG Une valeur entière signée 64-bit. SAM tentera de convertir la valeur spécifiée en une valeur entière, signée 64-bit à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur entière signée 64-bit, les données peuvent être perdues pendant la conversion.
SAM_STRING SAM interprétera la valeur spécifiée en tant que chaîne de caractères et la passera au système de messagerie.

Exemples

Exemple #3 Définition des propriétés en tant d'expéditeur d'un message

<?php
$msg 
= new SAMMessage('Ceci est un message test');

// définisstion des propriétés spécifiques à SAM...
$msg->header->SAM_REPLY_TO 'queue://test/replyQueue';

// définition des propriétés arbitraires...
//
// une chaîne par défaut
$msg->header->myStringProp1 'une chaîne';
// une chaîne avec un type
$msg->header->myStringProp2 = array('une autre chaîne'SAM_STRING);

// un booléen
$msg->header->myBoolProp = array(FALSESAM_BOOL);

// format numérique
$msg->header->myIntProp = array(32768SAM_INT);
$msg->header->myLongProp = array(9876543SAM_LONG);
$msg->header->myByteProp1 = array(123SAM_BYTE);
$msg->header->myByteProp2 = array('12'SAM_BYTE);
$msg->header->myFloatProp = array(3.141592SAM_FLOAT);
$msg->header->myDoubleProp = array(3.14159265358979SAM_DOUBLE);
?>

Exemple #4 Récupération d'une valeurs depuis un message

<?php

// accès à une propriété spécifique
$intProp $msg->header->MyIntProp;

// accès à une propriété spécifique
$encoding $msg->header->JMS_IBM_Msgtype;

?>

Voir aussi


Sommaire




SNMP


Introduction

L'extension SNMP fournit un jeu de fonctionnalités simple et fonctionnel pour gérer les périphériques distantes via le protocole Simple Network Managment.

Vu qu'il agit comme un wrapper de la bibliothèque Net-SNMP (ou UCD-SNMP sur les vieux systèmes), tous les concepts sont identiques et les fonctions PHP modifient leurs comportements suivant les fichiers de configuration Net-SNMP et les variables d'environnement.

Plus d'informations sur Net-SNMP peuvent être trouvées sur http://www.net-snmp.org/.



Installation/Configuration

Sommaire


Pré-requis

Afin d'utiliser les fonctions SNMP sous Unix, vous devez installer le paquet » NET-SNMP. Sous Windows, ces fonctions ne sont disponibles que pour NT, et non pour Win95/98.



Installation

Important : afin d'utiliser le paquet UCD SNMP, vous devez mettre la variable NO_ZEROLENGTH_COMMUNITY à 1 avant de compiler. Après avoir configuré UCD SNMP, éditez le fichier config.h ou le fichier acconfig.h et recherchez la valeur NO_ZEROLENGTH_COMMUNITY. Décommentez la ligne contenant le #define. Cela doit ressembler à ceci :

#define NO_ZEROLENGTH_COMMUNITY 1
Ensuite, compilez PHP avec l'option --with-snmp[=DIR] .

Si vous rencontrez des erreurs étranges de "segmentation fault", lors de l'utilisation des commandes SNMP, c'est que vous n'avez pas suivi les recommandations précédentes. Si vous ne voulez pas recompiler UCD SNMP, vous pouvez aussi recompiler PHP avec l'option --enable-ucd-snmp-hack qui évitera cette erreur.

Les versions 5.3.0, 5.3.1 et 5.3.2 de PHP n'ont pas de support SNMP. Le support SNMP a été restauré en PHP 5.3.3.

La distribution Windows contient des fichiers nécessaires à SNMP dans le dossier mibs. Ce dossier doit être déplacé dans DRIVE:\usr\mibs, où DRIVE doit être remplacé par la lettre de driver où PHP est installé, c'est-à-dire, par exemple c:\usr\mibs.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Pour snmp_set_oid_output_format()
SNMP_OID_OUTPUT_FULL (entier)
Depuis 5.2.0
SNMP_OID_OUTPUT_NUMERIC (entier)
Depuis 5.2.0
Pour snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (entier)
SNMP_VALUE_PLAIN (entier)
SNMP_VALUE_OBJECT (entier)
Types SNMP tels que retournés si SNMP_VALUE_OBJECT a été utilisé avec snmp_set_valueretrieval()
SNMP_BIT_STR (entier)
SNMP_OCTET_STR (entier)
SNMP_OPAQUE (entier)
SNMP_NULL (entier)
SNMP_OBJECT_ID (entier)
SNMP_IPADDRESS (entier)
SNMP_COUNTER (entier)
SNMP_UNSIGNED (entier)
SNMP_TIMETICKS (entier)
SNMP_UINTEGER (entier)
SNMP_INTEGER (entier)
SNMP_COUNTER64 (entier)


Fonctions SNMP


snmp_get_quick_print

(PHP 4, PHP 5)

snmp_get_quick_print Lit la valeur courante de l'option quick_print de la bibliothèque UCD

Description

bool snmp_get_quick_print ( void )

snmp_get_quick_print() retourne la valeur courante, stockée dans la bibliothèque UCD, de l'option quick_print. Par défaut, quick_print est désactivée.

Valeurs de retour

Retourne TRUE si quick_print est actif, FALSE sinon.

Exemples

Exemple #1 Exemple avec snmp_get_quick_print()

<?php
$quickprint 
snmp_get_quick_print();
?>

Voir aussi

  • snmp_set_quick_print() - Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP pour une description complète sur ce que fait quick_print.



snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_get_valueretrieval Retourne la méthode avec laquelle les valeurs SNMP seront retournées

Description

int snmp_get_valueretrieval ( void )

Valeurs de retour

Une des constantes SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN, SNMP_VALUE_OBJECT.

Exemples

Exemple #1 Exemple avec snmp_get_valueretrieval

<?php
 $ret 
snmpget('localhost''public''IF-MIB::ifName.1');
 if (
snmp_get_valueretrieval() == SNMP_VALUE_OBJECT) {
   echo 
$ret->value;
 } else {
   echo 
$ret;
 }

Voir aussi



snmp_read_mib

(PHP 5)

snmp_read_mib Lit et analyse un fichier MIB dans l'arbre actif MIB

Description

bool snmp_read_mib ( string $filename )

Cette fonction est utilisée pour charger des MIBs additionnelles, i.e. spécifiques aux fabricants, ainsi, les OIDs humainement lisibles comme VENDOR-MIB::foo.1 au lieu des OIDs numériques peuvent être utilisés.

L'ordre de chargement des MIBs est important ; la bibliothèque Net-SNMP affichera des alertes si les objets référencés ne peuvent pas être résolus.

Liste de paramètres

filename

Le nom de fichier du MIB.

Exemples

Exemple #1 Exemple avec snmp_read_mib()

<?php
 print_r
snmprealwalk('localhost''public''.1.3.6.1.2.1.2.3.4.5') );
 
 
snmp_read_mib('./FOO-BAR-MIB.txt');
 
print_rsnmprealwalk('localhost''public''FOO-BAR-MIB::someTable' );
?>

L'exemple ci-dessous affichera quelque chose comme :

     
Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)



snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5)

snmp_set_enum_print Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier

Description

bool snmp_set_enum_print ( int $enum_print )

Cette fonction permet de basculer si snmpwalk/snmpget etc. doit automatiquement chercher les valeurs énumérées dans le MIB et les retourne avec leur chaîne humainement lisible.

Liste de paramètres

enum_print

Vu que la valeur est interprétée comme un booléen par la bibliothèque Net-SNMP library, il peut valoir "0" ou "1".

Exemples

Exemple #1 Exemple avec snmp_set_enum_print()

<?php
 snmp_set_enum_print
(0);
 echo 
snmpget('localhost''public''IF-MIB::ifOperStatus.3') . "\n";
 
snmp_set_enum_print(1);
 echo 
snmpget('localhost''public''IF-MIB::ifOperStatus.3') . "\n";
?>

L'exemple ci-dessus affichera :

      
 INTEGER: up(1)
 INTEGER: 1

Notes

Note:

snmp_set_enum_print() est uniquement disponible lors de l'utilisation de la bibliothèque UCD SNMP. Cette fonction n'est pas disponible lors de l'utilisation de la bibliothèque SNMP de Windows.



snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5)

snmp_set_oid_numeric_print Retourne tous les objets y compris leur identifiant d'objet dans celui spécifié

Description

void snmp_set_oid_numeric_print ( int $oid_format )

Cette fonction est un alias de : snmp_set_oid_output_format().

Historique

Version Description
5.2.0 Depuis PHP 5.2.0.

Voir aussi



snmp_set_oid_output_format

(PHP 5 >= 5.2.0)

snmp_set_oid_output_formatDéfinit le format de sortie OID

Description

bool snmp_set_oid_output_format ( int $oid_format = SNMP_OID_OUTPUT_MODULE )

snmp_set_oid_output_format() définit le format de sortie afin qu'il soit complet ou numérique.

Liste de paramètres

oid_format
constantes
SNMP_OID_OUTPUT_FULL La forme complète, comme "iso.org.dod...."
SNMP_OID_OUTPUT_NUMERIC La forme numérique, comme ".1.3.6.1.4.1.8072.3.2.10"
SNMP_OID_OUTPUT_MODULE La forme courte, comme "NET-SNMP-TC::linux"
SNMP_OID_OUTPUT_SUFFIX  
SNMP_OID_OUTPUT_UCD  
SNMP_OID_OUTPUT_NONE  

Les 4 dernières constantes ont été ajoutées en PHP 5.3.6 permettant ainsi de résoudre le bogue #53862.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

snmp_set_oid_output_format() n'est disponible que lors de l'utilisation de la bibliothèque UCD SNMP. Cette fonction n'est pas disponible lors de l'utilisation de la bibliothèque SNMP de Windows.

Exemples

Exemple #1 Exemple avec snmprealwalk()

<?php

 snmp_read_mib
("/usr/share/mibs/netsnmp/NET-SNMP-TC");

 
// défaut ou SNMP_OID_OUTPUT_MODULE en PHP >= 5.3.6
 
print_rsnmprealwalk('localhost''public''RFC1213-MIB::sysObjectID') );

 
snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
 
print_rsnmprealwalk('localhost''public''RFC1213-MIB::sysObjectID') );

 
snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
 
print_rsnmprealwalk('localhost''public''RFC1213-MIB::sysObjectID') );
?>

L'exemple ci-dessus affichera :

 Array
 (
    [RFC1213-MIB::sysObjectID.0] => OID: NET-SNMP-TC::linux
 )
 Array
 (
    [.1.3.6.1.2.1.1.2.0] => OID: .1.3.6.1.4.1.8072.3.2.10
 )
 Array
 (
    [.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0] => OID: .iso.org.dod.internet.private.enterprises.netSnmp.netSnmpEnumerations.netSnmpAgentOIDs.linux
 )



snmp_set_quick_print

(PHP 4, PHP 5)

snmp_set_quick_printÉcrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP

Description

bool snmp_set_quick_print ( bool $quick_print )

Fixe la valeur de l'option quick_print de la bibliothèque UCD SNMP. Lorsqu'elle a la valeur de (1), la bibliothèque SNMP retournera des valeurs 'rapides'. Cela signifie que seule, la valeur sera retournée. Lorsque l'option quick_print n'est pas activée (par défaut), la bibliothèque UCD SNMP va afficher d'autres informations (telles que l'adresse IP (IpAddress) ou OID). De plus, si quick_print n'est pas activée, la bibliothèque affichera aussi des valeurs hexadécimales supplémentaires pour toutes les chaînes de trois caractères ou moins.

Par défaut, UCD SNMP retourne des valeurs détaillées, et quick_print sert à ne retourner que la valeur.

Actuellement, les chaînes sont toujours retournées avec des guillemets supplémentaires. Ceci sera corrigé ultérieurement.

Liste de paramètres

quick_print

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Modifier quick_print est plus fréquent lorsqu'on utilise les valeurs retournées que lorsqu'on les affiche.

Exemple #1 Exemple avec snmp_set_quick_print()

<?php
snmp_set_quick_print
(0);
$a snmpget("127.0.0.1""public"".1.3.6.1.2.1.2.2.1.9.1");
echo 
"$a\n";
snmp_set_quick_print(1);
$a snmpget("127.0.0.1""public"".1.3.6.1.2.1.2.2.1.9.1");
echo 
"$a\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

'Timeticks: (0) 0:00:00.00'
'0:00:00.00'

Voir aussi



snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_set_valueretrieval Spécifie la méthode avec laquelle les valeurs SNMP seront retournées

Description

bool snmp_set_valueretrieval ( int $method = SNMP_VALUE_LIBRARY )

Liste de paramètres

mehod
types
SNMP_VALUE_LIBRARY Les valeurs retournées seront celles retournées par la bibliothèque Net-SNMP.
SNMP_VALUE_PLAIN Les valeurs retournées seront brutes, sans l'ajout du type SNMP.
SNMP_VALUE_OBJECT Les valeurs retournées seront des objets avec les propriétés "value" et "type", où la seconde est une des constantes SNMP_OCTET_STR, SNMP_COUNTER etc..

Exemples

Exemple #1 Exemple avec snmp_set_valueretrieval()

<?php
 snmp_set_valueretrieval
(SNMP_VALUE_LIBRARY);
 
$ret snmpget('localhost''public''IF-MIB::ifName.1');
 
// $ret = "STRING: lo"

 
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
 
$ret snmpget('localhost''public''IF-MIB::ifName.1');
 
// $ret = "lo";

 
snmp_set_valueretrieval(SNMP_VALUE_OBJECT);
 
$ret snmpget('localhost''public''IF-MIB::ifName.1');
 
// stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, voir les constantes
 //   [value] => lo
 // )

?>

Voir aussi



snmp2_get

(No version information available, might only be in SVN)

snmp2_getRécupère un objet SNMP

Description

string snmp2_get ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_get() est utilisée pour lire la valeur d'un objet SNMP spécifié par le paramètre object_id.

Liste de paramètres

host

L'agent SNMP.

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmp2_get()

<?php
$syscontact 
snmp2_get("127.0.0.1""public""system.SysContact.0");
?>

Voir aussi



snmp2_getnext

(No version information available, might only be in SVN)

snmp2_getnextRécupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni

Description

string snmp2_getnext ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_get_next() est utilisée pour lire la valeur de l'objet SNMP qui suit immédiatement l'objet object_id spécifié.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP qui précède celui voulu.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmp2_get_next()

<?php
$nameOfSecondInterface 
snmp2_get_netxt('localhost''public''IF-MIB::ifName.1';
?>

Voir aussi



snmp2_real_walk

(No version information available, might only be in SVN)

snmp2_real_walkRetourne tous les objets incluant les identifiants de leurs objets respectifs

Description

array snmp2_real_walk ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_real_walk() est utilisée pour parcourir un nombre d'objets SNMP en commençant par l'objet identifié par object_id et retourne non seulement leurs valeurs, mais aussi les identifiants de leurs objets.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP qui précède celui désiré.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès ou FALSE une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmp2_real_walk()

<?php
 print_r
(snmp2_real_walk("localhost""public""IF-MIB::ifName"));
?>

L'exemple ci-dessus affichera quelque chose comme :

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Voir aussi

  • snmp2_walk() - Récupère tous les objets SNMP depuis un agent



snmp2_set

(No version information available, might only be in SVN)

snmp2_setDéfinit la valeur d'un objet SNMP

Description

bool snmp2_set ( string $host , string $community , string $object_id , string $type , string $value [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_set() est utilisée pour définir la valeur d'un objet SNMP spécifié par son identifiant object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté d'écriture.

object_id

L'identifiant de l'objet SNMP.

type

Le MIB définit le type de chaque identifiant de l'objet. Il doit être spécifié sous la forme d'un seul caractère depuis la liste suivante.

types
=Le type est fourni depuis le MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Si OPAQUE_SPECIAL_TYPES a été défini lors de la compilation de la bibliothèque SNMP, les valeurs suivantes sont également disponibles :

types
Uint64 non signé
Iint64 signé
Ffloat
Ddouble

La plupart de ces valeurs utilise le type ASN.1 correspondant. 's', 'x', 'd' et 'b' sont tous des façons différentes de spécifier une valeur OCTET STRING, et le type 'u' non signé est également utilisé pour gérer les valeurs Gauge32.

Si les fichiers MIBs sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en les spécifiant dans la configuration libsnmp, '=' peut être utilisé en tant que paramètre type pour tous les identifiants d'objets qui pourront être automatiquement lus depuis le MIB.

Notez qu'il y a 2 façons de définir une variable de type BITS comme, i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}"

  • Utilisation du type "b" et une liste d'octets, comme :

    snmpset('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
    avec l'inconvénient que le succès de l'opération ne sera pas facilement vérifiable avec snmpget() pour les OID identiques i.e. 0xF8.

  • Utilisation du type "x" et un nombre héxadécimal mais sans (!) le préfixe habituel "0x" :

    snmpset('FOO-MIB::bar.42', 'x', 'F0');

value

La nouvelle valeur.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si l'hôte SNMP rejète le type de données, une alerte de type E_WARNING sera émis, comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Si un OID inconnu ou invalide est spécifié, l'alerte émise contiendra probablement ceci : "Could not add variable".

Exemples

Exemple #1 Exemple avec snmp2_set()

<?php
  snmp2_set
("localhost""public""IF-MIB::ifAlias.3""s""foo");
?>

Voir aussi



snmp2_walk

(No version information available, might only be in SVN)

snmp2_walkRécupère tous les objets SNMP depuis un agent

Description

array snmp2_walk ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_walk() est utilisée pour lire toutes les valeurs depuis un agent SNMP spécifié par le paramètre hostname.

Liste de paramètres

host

L'agent SNMP (serveur).

community

La communauté de lecture.

object_id

Si NULL, object_id sera la racine de l'arbre des objets SNMP et tous les objets de cet arbre seront retournés sous la forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP sous cet object_id seront retournés.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où un délai d'expiration survient.

Valeurs de retour

Retourne un tableau de valeurs d'objet SNMP en commençant par l'objet object_id ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snm2_pwalk()

<?php
$a 
snmp2_walk("127.0.0.1""public""");

foreach (
$a as $val) {
    echo 
"$val\n";
}

?>

La fonction ci-dessus devrait retourner tous les objets SNMP depuis l'agent SNMP fonctionnant en local. Une étape suivante parcourt les valeurs avec une boucle.

Voir aussi

  • snmp2_real_walk() - Retourne tous les objets incluant les identifiants de leurs objets respectifs



snmp3_get

(No version information available, might only be in SVN)

snmp3_getRécupère un objet SNMP

Description

string snmp3_get ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_get() est utilisée pour lire la valeur d'un objet SNMP spécifié par l'identifiant object_id.

Liste de paramètres

host

Le nom de l'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 or SHA)

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocole privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmp3_get()

<?php
$nameOfSecondInterface 
snmp3_get('localhost''james''authPriv''SHA''secret007''AES''secret007''IF-MIB::ifName.2');
?>

Voir aussi



snmp3_getnext

(No version information available, might only be in SVN)

snmp3_getnextRécupère l'objet SNMP qui suit immédiatement l'objet fourni

Description

string snmp3_getnext ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_getnext() est utilisée pour lire la valeur d'un objet SNMP qui suit immédiatement celui spécifié par l'identifiant object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le degré de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocoloe privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où un délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès ou FALSE si une erreur survient. Dans le cas d'une erreur, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmp3_getnext()

<?php
$nameOfSecondInterface  
snmp3_getnext('localhost''james''authPriv''SHA''secret007',  'AES''secret007''IF-MIB::ifName.1');
?>

Voir aussi



snmp3_real_walk

(No version information available, might only be in SVN)

snmp3_real_walk Retourne tous les objets incluant les identifiants de leurs objets respectifs

Description

array snmp3_real_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_real_walk() est utilisée pour parcourir un nombre d'objets SNMP en commençant par l'objet dont l'identifiant est object_id et retourne non seulement leurs valeurs, mais aussi les identifiants des objets associés.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocole privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où un délai d'expiration survient.

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès, ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de niveau E_WARNING est émise.

Exemples

Exemple #1 Exemple avec snmp3_real_walk()

<?php
 var_export
(snmp3_real_walk('localhost''james''authPriv''SHA''secret007''AES''secret007''IF-MIB::ifName'));
?>

L'exemple ci-dessus affichera quelque chose comme :

array (
  'IF-MIB::ifName.1' => 'STRING: lo',
  'IF-MIB::ifName.2' => 'STRING: eth0',
  'IF-MIB::ifName.3' => 'STRING: eth2',
  'IF-MIB::ifName.4' => 'STRING: sit0',
  'IF-MIB::ifName.5' => 'STRING: sixxs',
)

Voir aussi

  • snmpwalk() - Reçoit tous les objets SNMP d'un agent



snmp3_set

(No version information available, might only be in SVN)

snmp3_setDescription

Description

bool snmp3_set ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id , string $type , string $value [, string $timeout = 1000000 [, string $retries = 5 ]] )

snmp3_set() est utilisé pour définir la valeur d'un objet SNMP spécifié par le paramètre object_id.

Même si le niveau de sécurité n'utilise pas d'authentification ou de protocole privée par mot de passe, des valeurs valides doivent être spécifiées.

Liste de paramètres

host

Le nom de l'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

La protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète pour l'authentification.

priv_protocol

Le protocole privé (DES ou AES)

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

type

Le MIB définit le type de chaque identifiant d'objet. Il doit être spécifié sous la forme d'un seul caractère depuis la liste suivante.

types
=Le type est fourni par le MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Si OPAQUE_SPECIAL_TYPES a été défini lors de la compilation de la bibliothèque SNMP, les valeurs suivantes sont également valides :

types
Uint64 non signé
Iint64 signé
Ffloat
Ddouble

La plupart de ces valeurs utilise le type correspondant ASN.1. 's', 'x', 'd' et 'b' sont des façons différentes de spécifier une valeur OCTET STRING et le type non signé 'u' est également utilisé pour gérer les valeurs Gauge32.

Si les fichiers MIB sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en le spécifiant dans la configuration de libsnmp, '=' doit être utilisé comme paramètre type pour tous les identifiants d'objet comme le type qui pourra être automatiquement lu depuis le MIB.

Notez qu'il existe 2 façons de définir une variable de type BITS, comme i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}"

  • Utilisation d'un type "b" et une liste de nombres comme :

    snmpset('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
    avec le désavantage que le succès de l'opération n'est pas facilement vérifiable avec snmpget() pour les OID identiques sachant qu'ils retournent i.e. 0xF8.

  • Utilisation d'un type "x" et d'un nombre héxadécimal mais sans(!) le préfixe usuel "0x" :

    snmpset('FOO-MIB::bar.42', 'x', 'F0');

value

La nouvelle valeur.

timeout

Le nombre de millisecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration est atteint.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si l'hôte SNMP rejète le type de données, une alerte de type E_WARNING comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." est affiché. Si un OID inconnu ou invalide est spécifié, l'alerte sera probablement "Could not add variable".

Exemples

Exemple #1 Exemple avec snmp3_set()

<?php
  snmp3_set
('localhost''james''authPriv''SHA''secret007''AES''secret007''IF-MIB::ifAlias.3''s'"foo");
?>



snmp3_walk

(No version information available, might only be in SVN)

snmp3_walkRécupère tous les objets SNMP depuis un agent

Description

array snmp3_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_walk() est utilisée pour lire toutes les valeurs depuis un agent SNMP spécifié par le paramètre hostname.

Même si le niveau de sécurité n'utilise pas de protocole d'authentification, des valeurs valides doivent être spécifiées.

Liste de paramètres

host

Le nom de l'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom de l'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocole privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

Si vaut NULL, object_id sera la racine de l'arbre des objets SNMP et tous les objets sous-jacents sont retournés sous forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP sous l'objet object_id seront retournés.

timeout

Le nombre de microsecondes avant le premier délai d'expiration

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau de valeurs d'objets SNMP en commençant depuis l'objet object_id comme racine, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmp3_walk()

<?php
$ret 
snmp3_walk('localhost''james''authPriv''SHA''secret007''AES''secret007''IF-MIB::ifName');
var_export($ret);
?>

L'appel à la fonction précédente retournera tous les objets SNMP depuis l'agent SNMP s'exécutant sur localhost:

      
array (
  0 => 'STRING: lo',
  1 => 'STRING: eth0',
  2 => 'STRING: eth2',
  3 => 'STRING: sit0',
  4 => 'STRING: sixxs',
)

Voir aussi

  • snmp3_real_walk() - Retourne tous les objets incluant les identifiants de leurs objets respectifs



snmpget

(PHP 4, PHP 5)

snmpgetReçoit un objet SNMP

Description

string snmpget ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpget() sert à lire une valeur d'un objet SNMP représenté par object_id.

Liste de paramètres

hostname

L'agent SNMP.

community

La communauté de lecture.

object_id

L'objet SNMP.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre d'essais lorsque le délai maximal d'attente survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmpget()

<?php
$syscontact 
snmpget("127.0.0.1""public""system.SysContact.0");
?>

Voir aussi

  • snmpset() - Définit la valeur d'un objet SNMP



snmpgetnext

(PHP 5)

snmpgetnextRécupère un objet SNMP qui suit immédiatement l'objet fourni

Description

string snmpgetnext ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

La fonction snmpgetnext() est utilisée pour lire la valeur d'un objet SNMP qui suit immédiatement l'objet dont l'identifiant est spécifié par le paramètre object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

The SNMP object id which precedes the wanted one.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmpgetnext()

<?php
$nameOfSecondInterface 
snmpgetnetxt('localhost''public''IF-MIB::ifName.1';
?>

Voir aussi



snmprealwalk

(PHP 4, PHP 5)

snmprealwalkRetourne tous les objets, y compris les identifiants respectifs inclus dans l'objet

Description

array snmprealwalk ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

La fonction snmprealwalk() est utilisée pour parcourir des objets SNMP, en commençant à l'objet identifié par object_id et retourne non seulement les valeurs mais aussi les identifiants des objets.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP qui précède celui désiré.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmprealwalk()

<?php
 print_r
(snmprealwalk("localhost""public""IF-MIB::ifName"));
?>

The above will output something like:

     
    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Voir aussi

  • snmpwalk() - Reçoit tous les objets SNMP d'un agent



snmpset

(PHP 4, PHP 5)

snmpsetDéfinit la valeur d'un objet SNMP

Description

bool snmpset ( string $host , string $community , string $object_id , string $type , mixed $value [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpset() sert à définir la valeur de l'objet SNMP spécifié par object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP.

type

Le MIB définit le type de chaque identifiant d'objet. Il doit être spécifié sous la forme d'un seul caractère, depuis la liste suivante.

types
=Le type est pris depuis le MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Si OPAQUE_SPECIAL_TYPES a été défini lors de la compilation de la bibliothèque SNMP, les types suivants sont aussi valides :

types
Uint64 non signé
Iint64 signé
Ffloat
Ddouble

La plupart de ces types utilise le type correspondant ASN.1. 's', 'x', 'd', et 'b' sont tous des façons différentes de spécifier une valeur OCTET STRING , et le type non signé 'u' est également utilisé pour gérer les valeurs Gauge32.

Si les MIB-Files sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en le spécifiant dans la configuration libsnmp, '=' pourra être utilisé comme paramètre type pour tous les identifiants d'objets et pourront être lus automatiquement depuis le MIB.

Notez qu'il y a 2 façons de définir une variable de type BITS : "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}"

  • Utilisez le type "b" et une liste de numéros d'octets, comme :

    snmpset('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
    avec le désavantage que la vérification du succès de l'opération ne sera pas facilement vérifiable sachant que snmpget() pour un même OID retournera, i.e. 0xF8.

  • Utilisez le type "x" et un nombre hexadécimal mais sans (!) le préfixe "0x" habituel :

    snmpset('FOO-MIB::bar.42', 'x', 'F0');

value

La nouvelle valeur.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre d'essais avant d'atteindre le délai maximal d'attente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si l'hôte SNMP rejète le type de données, une alerte de type E_WARNING comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." sera affiché. Si un OID inconnu ou invalide est spécifié, le contenu de l'alerte sera probablement "Could not add variable".

Exemples

Exemple #1 Exemple avec snmpset()

<?php
  snmpset
("localhost""public""IF-MIB::ifAlias.3""s""foo");
?>

Voir aussi



snmpwalk

(PHP 4, PHP 5)

snmpwalkReçoit tous les objets SNMP d'un agent

Description

array snmpwalk ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpwalk() est utilisé pour lire toutes les valeurs d'un agent SNMP spécifié par hostname.

Liste de paramètres

hostname

L'agent SNMP (serveur).

community

La communauté de lecture.

object_id

Si NULL, object_id est pris comme racine des objets SNMP et tous les objets de cet arbre sont retournés sous la forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP suivant cet object_id sont retournés.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau de valeurs de l'objet SNMP, en commençant par object_id ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmpwalk()

<?php
$a 
snmpwalk("127.0.0.1""public""");

foreach (
$a as $val) {
    echo 
"$val\n";
}

?>

L'appel à la fonction ci-dessus retournera tous les objets SNMP depuis l'agent SNMP exécuté sur l'hôte local. On parcourt les valeurs via une boucle.

Voir aussi

  • snmprealwalk() - Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet



snmpwalkoid

(PHP 4, PHP 5)

snmpwalkoidDemande d'informations d'arbre sur une entité du réseau

Description

array snmpwalkoid ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpwalkoid() est utilisé pour lire tous les identifiant d'objets ainsi que leurs valeurs respectives depuis l'agent SNMP spécifié par hostname.

L'existence de snmpwalkoid() et snmpwalk() a des raisons historiques. Les deux fonctions fournissent des compatibilités ascendantes. Utilisez plutôt la fonction snmprealwalk().

Liste de paramètres

hostname

L'agent SNMP.

community

La communauté de lecture.

object_id

Si NULL, object_id est pris comme racine des objets SNMP et tous les objets de cet arbre sont retournés sous la forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP suivant cet object_id sont retournés.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre de tentative dans le cas où le délai d'attente maximal survient.

Valeurs de retour

Retourne un tableau associatif contenant les identifiants des objets ainsi que leurs valeurs respectives, à partir de object_id, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmpwalkoid()

<?php
$a 
snmpwalkoid("127.0.0.1""public""");
for (
reset($a); $i key($a); next($a)) {
    echo 
"$i$a[$i]<br />\n";
}
?>

L'appel à la fonction ci-dessus retournera tous les objets SNMP depuis l'agent SNMP exécuté sur l'hôte local. On parcourt les valeurs via une boucle.

Voir aussi

  • snmpwalk() - Reçoit tous les objets SNMP d'un agent


Sommaire

  • snmp_get_quick_print — Lit la valeur courante de l'option quick_print de la bibliothèque UCD
  • snmp_get_valueretrieval — Retourne la méthode avec laquelle les valeurs SNMP seront retournées
  • snmp_read_mib — Lit et analyse un fichier MIB dans l'arbre actif MIB
  • snmp_set_enum_print — Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier
  • snmp_set_oid_numeric_print — Retourne tous les objets y compris leur identifiant d'objet dans celui spécifié
  • snmp_set_oid_output_format — Définit le format de sortie OID
  • snmp_set_quick_print — Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP
  • snmp_set_valueretrieval — Spécifie la méthode avec laquelle les valeurs SNMP seront retournées
  • snmp2_get — Récupère un objet SNMP
  • snmp2_getnext — Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni
  • snmp2_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs
  • snmp2_set — Définit la valeur d'un objet SNMP
  • snmp2_walk — Récupère tous les objets SNMP depuis un agent
  • snmp3_get — Récupère un objet SNMP
  • snmp3_getnext — Récupère l'objet SNMP qui suit immédiatement l'objet fourni
  • snmp3_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs
  • snmp3_set — Description
  • snmp3_walk — Récupère tous les objets SNMP depuis un agent
  • snmpget — Reçoit un objet SNMP
  • snmpgetnext — Récupère un objet SNMP qui suit immédiatement l'objet fourni
  • snmprealwalk — Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet
  • snmpset — Définit la valeur d'un objet SNMP
  • snmpwalk — Reçoit tous les objets SNMP d'un agent
  • snmpwalkoid — Demande d'informations d'arbre sur une entité du réseau



Sockets


Introduction

L'extension socket implémente une interface bas niveau avec les fonctions de communication par socket, basées sur les sockets BSD si populaires, et fournit la possibilité de fonctionner aussi bien sous forme de client que de serveur.

Pour une interface socket cliente plus générique, voyez stream_socket_client(), stream_socket_server(), fsockopen() et pfsockopen().

Lorsque vous utilisez ces fonctions, il est important de vous rappeler que si de nombreuses fonctions ont le même nom que leur équivalent en langage C, elles ont souvent des déclarations différentes. Lisez attentivement les descriptions pour éviter des confusions.

Cela dit, ceux qui ne sont pas familiers avec la programmation par socket peuvent toujours trouver beaucoup de documentation dans les pages de manuel Unix appropriées, et il y a une grande quantité d'introductions en langage C sur le web, qui peuvent être facilement réutilisées, avec des adaptations mineures. » UNIX Socket FAQ est un bon début.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Les fonctions de socket décrites ici font partie d'une extension PHP qui doit être activée lors de la compilation en utilisant l'option --enable-sockets , avec la commande configure.

Note: Le support des adresses IPv6 a été ajouté en PHP 5.0.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

socket_accept(), socket_create_listen() et socket_create() retournent des ressources sur les sockets.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

AF_UNIX (entier)
AF_INET (entier)
AF_INET6 (entier)
Uniquement disponible si PHP est compilé avec le support IPv6.
SOCK_STREAM (entier)
SOCK_DGRAM (entier)
SOCK_RAW (entier)
SOCK_SEQPACKET (entier)
SOCK_RDM (entier)
MSG_OOB (entier)
MSG_WAITALL (entier)
MSG_PEEK (entier)
MSG_DONTROUTE (entier)
MSG_EOR (entier)
Indisponible sur les plate-formes Windows.
MSG_EOF (entier)
Indisponible sur les plate-formes Windows.
SO_DEBUG (entier)
SO_REUSEADDR (entier)
SO_KEEPALIVE (entier)
SO_DONTROUTE (entier)
SO_LINGER (entier)
SO_BROADCAST (entier)
SO_OOBINLINE (entier)
SO_SNDBUF (entier)
SO_RCVBUF (entier)
SO_SNDLOWAT (entier)
SO_RCVLOWAT (entier)
SO_SNDTIMEO (entier)
SO_RCVTIMEO (entier)
SO_TYPE (entier)
SO_ERROR (entier)
TCP_NODELAY (entier)
Utilisé pour désactiver l'algorithme Nagle TCP. Ajouté en PHP 5.2.7.
SOL_SOCKET (entier)
PHP_NORMAL_READ (entier)
PHP_BINARY_READ (entier)
SOL_TCP (entier)
SOL_UDP (entier)

Les constantes suivantes ne sont définies que sous Windows.

SOCKET_EINTR (entier)
SOCKET_EBADF (entier)
SOCKET_EACCES (entier)
SOCKET_EFAULT (entier)
SOCKET_EINVAL (entier)
SOCKET_EMFILE (entier)
SOCKET_EWOULDBLOCK (entier)
SOCKET_EINPROGRESS (entier)
SOCKET_EALREADY (entier)
SOCKET_ENOTSOCK (entier)
SOCKET_EDESTADDRREQ (entier)
SOCKET_EMSGSIZE (entier)
SOCKET_EPROTOTYPE (entier)
SOCKET_ENOPROTOOPT (entier)
SOCKET_EPROTONOSUPPORT (entier)
SOCKET_ESOCKTNOSUPPORT (entier)
SOCKET_EOPNOTSUPP (entier)
SOCKET_EPFNOSUPPORT (entier)
SOCKET_EAFNOSUPPORT (entier)
SOCKET_EADDRINUSE (entier)
SOCKET_EADDRNOTAVAIL (entier)
SOCKET_ENETDOWN (entier)
SOCKET_ENETUNREACH (entier)
SOCKET_ENETRESET (entier)
SOCKET_ECONNABORTED (entier)
SOCKET_ECONNRESET (entier)
SOCKET_ENOBUFS (entier)
SOCKET_EISCONN (entier)
SOCKET_ENOTCONN (entier)
SOCKET_ESHUTDOWN (entier)
SOCKET_ETOOMYREFS (entier)
SOCKET_ETIMEDOUT (entier)
SOCKET_ECONNREFUSED (entier)
SOCKET_ELOOP (entier)
SOCKET_ENAMETOOLONG (entier)
SOCKET_EHOSTDOWN (entier)
SOCKET_EHOSTUNREACH (entier)
SOCKET_ENOTEMPTY (entier)
SOCKET_EPROCLIM (entier)
SOCKET_EUSERS (entier)
SOCKET_EDUOT (entier)
SOCKET_ESTALE (entier)
SOCKET_EREMOTE (entier)
SOCKET_EDISCON (entier)
SOCKET_SYSNOTREADY (entier)
SOCKET_VERNOTSUPPORTED (entier)
SOCKET_NOTINITIALISED (entier)
SOCKET_HOST_NOT_FOUND (entier)
SOCKET_TRY_AGAIN (entier)
SOCKET_NO_RECOVERY (entier)
SOCKET_NO_DATA (entier)
SOCKET_NO_ADDRESS (entier)

Les constantes suivantes sont disponibles uniquement sur les plate-formes Unix. Chaque constantes n'est définie que si leur équivalent est défini au niveau système.

SOCKET_EPERM (entier)
Opération non permise.
SOCKET_ENOENT (entier)
Le fichier ou dossier n'existe pas.
SOCKET_EINTR (entier)
Appel système interrompu.
SOCKET_EIO (entier)
Erreur E/S.
SOCKET_ENXIO (entier)
Le volume ou l'adresse n'existe pas.
SOCKET_E2BIG (entier)
Liste d'arguments trop longue.
SOCKET_EBADF (entier)
Mauvais numéro de fichier.
SOCKET_EAGAIN (entier)
Essayez encore.
SOCKET_ENOMEM (entier)
Plus de mémoire.
SOCKET_EACCES (entier)
Droits insuffisants.
SOCKET_EFAULT (entier)
Mauvaise adresse.
SOCKET_ENOTBLK (entier)
Bloc device nécessaire.
SOCKET_EBUSY (entier)
Device or ressource occupé.
SOCKET_EEXIST (entier)
Le fichier existe.
SOCKET_EXDEV (entier)
Lien inter-volumes.
SOCKET_ENODEV (entier)
Ce device n'existe pas.
SOCKET_ENOTDIR (entier)
Ce n'est pas un dossier.
SOCKET_EISDIR (entier)
C'est un dossier.
SOCKET_EINVAL (entier)
Argument invalide.
SOCKET_ENFILE (entier)
Dépassement de capacité de table de fichier.
SOCKET_EMFILE (entier)
Trop de fichiers ouverts.
SOCKET_ENOTTY (entier)
Ce n'est pas un typewriter.
SOCKET_ENOSPC (entier)
Plus d'espace sur le disque.
SOCKET_ESPIPE (entier)
Positionnement invalide.
SOCKET_EROFS (entier)
Système de fichiers en lecture seule.
SOCKET_EMLINK (entier)
Trop de liens.
SOCKET_EPIPE (entier)
Pipe interrompu.
SOCKET_ENAMETOOLONG (entier)
Nom de fichier trop long.
SOCKET_ENOLCK (entier)
Pas de verrou disponible.
SOCKET_ENOSYS (entier)
Fonction non implémentée.
SOCKET_ENOTEMPTY (entier)
Dossier non vide.
SOCKET_ELOOP (entier)
Trop de liens symboliques.
SOCKET_EWOULDBLOCK (entier)
L'opération va bloquer.
SOCKET_ENOMSG (entier)
Pas de message du type demandé.
SOCKET_EIDRM (entier)
Identifiant supprimé.
SOCKET_ECHRNG (entier)
Numéro de canal hors de validité.
SOCKET_EL2NSYNC (entier)
Le niveau 2 n'est pas synchronisé.
SOCKET_EL3HLT (entier)
Niveau 3 arrêté.
SOCKET_EL3RST (entier)
Niveau 3 relancé.
SOCKET_ELNRNG (entier)
Numéro de lien hors de validité.
SOCKET_EUNATCH (entier)
Pilote de protocole non attaché.
SOCKET_ENOCSI (entier)
Pas de structure CSI structure disponible.
SOCKET_EL2HLT (entier)
Niveau 2 arrêté.
SOCKET_EBADE (entier)
Échange invalide.
SOCKET_EBADR (entier)
Pointeur de requête invalide.
SOCKET_EXFULL (entier)
Echange complet.
SOCKET_ENOANO (entier)
Pas de anode.
SOCKET_EBADRQC (entier)
Code de requête invalide.
SOCKET_EBADSLT (entier)
Slot invalide.
SOCKET_ENOSTR (entier)
Le device n'est pas un flux.
SOCKET_ENODATA (entier)
Pas de données disponible.
SOCKET_ETIME (entier)
Minuteur expiré.
SOCKET_ENOSR (entier)
Plus de ressources de flux.
SOCKET_ENONET (entier)
La machine n'est pas sur le réseau.
SOCKET_EREMOTE (entier)
L'objet est distant.
SOCKET_ENOLINK (entier)
Le lien a été coupé.
SOCKET_EADV (entier)
Erreur d'advertise.
SOCKET_ESRMNT (entier)
Erreur de srmount.
SOCKET_ECOMM (entier)
Erreur de communication durant l'envoi.
SOCKET_EPROTO (entier)
Erreur de protocole.
SOCKET_EMULTIHOP (entier)
Tentative de multihop.
SOCKET_EBADMSG (entier)
Le message ne contient pas de données.
SOCKET_ENOTUNIQ (entier)
Nom en doublon sur le réseau network.
SOCKET_EBADFD (entier)
Pointeur de fichier dans un état incohérent.
SOCKET_EREMCHG (entier)
L'adresse distante a changé.
SOCKET_ERESTART (entier)
L'appel système interrompu doit être relancé.
SOCKET_ESTRPIPE (entier)
Erreur de flux de pipe.
SOCKET_EUSERS (entier)
Trop d'utilisateurs.
SOCKET_ENOTSOCK (entier)
Opération de socket sur un flux non-socket.
SOCKET_EDESTADDRREQ (entier)
Adresse de destination obligatoire.
SOCKET_EMSGSIZE (entier)
Message trop long.
SOCKET_EPROTOTYPE (entier)
Mauvais type de protocole pour une socket.
SOCKET_EPROTOOPT (entier)
Protocole non disponible.
SOCKET_EPROTONOSUPPORT (entier)
Protocole non supporté.
SOCKET_ESOCKTNOSUPPORT (entier)
Type de socket non supporté.
SOCKET_EOPNOTSUPP (entier)
Opération non supporté par le point de transport.
SOCKET_EPFNOSUPPORT (entier)
Famille de protocole non supportée.
SOCKET_EAFNOSUPPORT (entier)
Famille d'adresse non supportée par le protocole.
SOCKET_ADDRINUSE (entier)
Adresse déjà en cours d'utilisation.
SOCKET_EADDRNOTAVAIL (entier)
Impossible d'assigner l'adresse demandée.
SOCKET_ENETDOWN (entier)
Le réseau est planté.
SOCKET_ENETUNREACH (entier)
Le réseau est inaccessible.
SOCKET_ENETRESET (entier)
Le réseau a abandonné la connexion à cause d'un redémarrage.
SOCKET_ECONNABORTED (entier)
L'application a causé l'annulation de la connexion.
SOCKET_ECONNRESET (entier)
Connexion reset par l'hôte.
SOCKET_ENOBUFS (entier)
Plus d'espace disponible dans le buffer.
SOCKET_EISCONN (entier)
Le point de transport est déjà connecté.
SOCKET_ENOTCONN (entier)
Le point de transport n'est pas connecté.
SOCKET_ESHUTDOWN (entier)
Impossible d'envoyer des données après l'extinction du point de transfert.
SOCKET_ETOOMANYREFS (entier)
Trop de références : impossible de recoller.
SOCKET_ETIMEDOUT (entier)
La connexion a expiré.
SOCKET_ECONNREFUSED (entier)
Connexion refusée.
SOCKET_EHOSTDOWN (entier)
L'hôte est inactif.
SOCKET_EHOSTUNREACH (entier)
Pas de route jusqu'à l'hôte.
SOCKET_EALREADY (entier)
Opération déjà en cours.
SOCKET_EINPROGRESS (entier)
Opération maintenant en cours.
SOCKET_EISNAM (entier)
Est un type de fichier nommé.
SOCKET_EREMOTEIO (entier)
Erreur d'E/S distante.
SOCKET_EDQUOT (entier)
Quota dépassé.
SOCKET_ENOMEDIUM (entier)
Pas de media trouvé.
SOCKET_EMEDIUMTYPE (entier)
Mauvais type de media.


Exemples

Exemple #1 Exemple de socket : serveur TCP/IP simple

Cet exemple montre comment créer un serveur simple. Changez les variables address et port pour vous adapter à votre configuration, et exécutez-le. Vous pourrez alors vous connecter au serveur avec une commande comme ceci : telnet 192.168.1.53 10000 (en supposant que l'adresse et le port correspondent à votre configuration). Tout ce que vous saisissez après cela sera envoyé au serveur, et affiché en retour. Pour vous déconnecter, tapez 'quit'.

#!/usr/local/bin/php -q
<?php
error_reporting
(E_ALL);

/* Autorise l'exécution infinie du script, en attente de connexion. */
set_time_limit(0);

/* Active le vidage implicite des buffers de sortie, pour que nous
 * puissions voir ce que nous lisons au fur et à mesure. */
ob_implicit_flush();

$address '192.168.1.53';
$port 10000;

if ((
$sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) === false) {
    echo 
"socket_create() a échoué : raison : " socket_strerror(socket_last_error()) . "\n";
}

if (
socket_bind($sock$address$port) === false) {
    echo 
"socket_bind() a échoué : raison : " socket_strerror(socket_last_error($sock)) . "\n";
}

if (
socket_listen($sock5) === false) {
    echo 
"socket_listen() a échoué : raison : " socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    if ((
$msgsock socket_accept($sock)) === false) {
        echo 
"socket_accept() a échoué : raison : " socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    
/* Send instructions. */
    
$msg "\Bienvenue sur le serveur de test PHP.\n" .
        
"Pour quitter, tapez 'quit'. Pour éteindre le serveur, tapez 'shutdown'.\n";
    
socket_write($msgsock$msgstrlen($msg));

    do {
        if (
false === ($buf socket_read($msgsock2048PHP_NORMAL_READ))) {
            echo 
"socket_read() a échoué : raison : " socket_strerror(socket_last_error($msgsock)) . "\n";
            break 
2;
        }
        if (!
$buf trim($buf)) {
            continue;
        }
        if (
$buf == 'quit') {
            break;
        }
        if (
$buf == 'shutdown') {
            
socket_close($msgsock);
            break 
2;
        }
        
$talkback "PHP: You said '$buf'.\n";
        
socket_write($msgsock$talkbackstrlen($talkback));
        echo 
"$buf\n";
    } while (
true);
    
socket_close($msgsock);
} while (
true);

socket_close($sock);
?>

Exemple #2 Exemple avec les sockets : client TCP/IP simple

Cet exemple implémente un client HTTP simple. Il se connecte simplement à une page, envoie une requête HEAD, affiche le résultat et se termine.

<?php
error_reporting
(E_ALL);

echo 
"<h2>Connexion TCP/IP</h2>\n";

/* Lit le port du service WWW. */
$service_port getservbyname('www''tcp');

/* Lit l'adresse IP du serveur de destination */
$address gethostbyname('www.example.com');

/* Cree une socket TCP/IP. */
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
if (
$socket === false) {
    echo 
"socket_create() a échoué : raison :  " socket_strerror(socket_last_error()) . "\n";
} else {
    echo 
"OK.\n";
}

echo 
"Essai de connexion à '$address' sur le port '$service_port'...";
$result socket_connect($socket$address$service_port);
if (
$socket === false) {
    echo 
"socket_connect() a échoué : raison : ($result) " socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo 
"OK.\n";
}

$in "HEAD / HTTP/1.0\r\n\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out '';

echo 
"Envoi de la requête HTTP HEAD...";
socket_write($socket$instrlen($in));
echo 
"OK.\n";

echo 
"Lire la réponse : \n\n";
while (
$out socket_read($socket2048)) {
    echo 
$out;
}

echo 
"Fermeture de la socket...";
socket_close($socket);
echo 
"OK.\n\n";
?>



Erreurs de socket

L'extension socket a été écrite pour fournir une interface utilisable avec les puissantes sockets fournies par BSD. Un soin particulier a été apporté pour que les fonctions soient aussi efficaces sous Unix que sous Windows. Presque toutes les fonctions de sockets peuvent échouer dans certaines circonstances, et émettent ainsi un message d'alerte E_WARNING décrivant l'erreur. Parfois, cela ne se fait pas selon les souhaits du développeur. Par exemple, la fonction socket_read() peut tout à coup émettre un message E_WARNING car la connexion a été inopinément interrompue. Il est commun de supprimer les erreurs avec l'opérateur @ et de traiter les erreurs avec la fonction socket_last_error(), au niveau de l'application. Vous pouvez appeler socket_strerror() avec le code d'erreur pour connaître le message d'erreur, humainement lisible. Reportez-vous à leur description pour plus de détails.

Note:

Les messages E_WARNING générés par l'extension socket sont en anglais, mais ils s'afficheront en fonction de la configuration locale (LC_MESSAGES):

Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet



Fonctions sur les sockets


socket_accept

(PHP 4 >= 4.1.0, PHP 5)

socket_acceptAccepte une connexion sur une socket

Description

resource socket_accept ( resource $socket )

Une fois que la socket socket a été créée avec la fonction socket_create(), liée à un nom avec la fonction socket_bind(), et mise en attente de connexion avec la fonction socket_listen(), socket_accept() va accepter les connexions sur cette socket. Une fois qu'une connexion est faite, une nouvelle ressource de socket est retournée. Elle peut être utilisée pour les communications. S'il y a plusieurs connexions en attente, la première sera utilisée. S'il n'y a pas de connexion en attente, socket_accept() se bloquera jusqu'à ce qu'une connexion se présente. Si socket a été rendue non-bloquante, grâce à socket_set_blocking() ou socket_set_nonblock(), FALSE sera retourné.

La ressource de socket retournée par socket_accept() ne doit pas être utilisée pour accepter de nouvelles connexions. La socket originale socket, qui est en attente, reste ouverte et peut être réutilisée.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

Valeurs de retour

Retourne une nouvelle ressource de socket en cas de succès ou FALSE en cas d'erreur. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur, humainement lisible.

Voir aussi



socket_bind

(PHP 4 >= 4.1.0, PHP 5)

socket_bindLie un nom à une socket

Description

bool socket_bind ( resource $socket , string $address [, int $port = 0 ] )

Lie le nom donné par address à l'interface de connexion décrite par socket. Ceci doit être effectué avant qu'une connexion ne soit établie en utilisant socket_connect() ou socket_listen().

Liste de paramètres

socket

Une ressource de socket valide créée par la fonction socket_create().

address

Si la socket est de la famille AF_INET, le paramètre address est une IP numérique (i.e. 127.0.0.1).

Si la socket est de la famille AF_UNIX, le paramètre address le chemin d'une socket de domaine Unix (i.e. /tmp/my.sock).

port (optionnel)

Le paramètre port est uniquement utilisé lors de la liaison à une socket AF_INET et désigne le port sur lequel écouter pour une connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Le code erreur peut être récupéré avec la fonction socket_last_error(). Ce code peut être passé à la fonction socket_strerror() pour récupérer le message textuel de l'erreur.

Exemples

Exemple #1 Utilisation de socket_bind() pour définir l'adresse de la source

<?php
// Création d'une nouvelle socket
$sock socket_create(AF_INETSOCK_STREAMSOL_TCP);

// Une liste d'adresse IP, par exemple, appartenent à l'ordinateur
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Lie l'adresse de la source
socket_bind($sock$sourceips['madcoder']);

// Connexion à l'adresse de destination
socket_connect($sock'127.0.0.1'80);

// Écriture
$request 'GET / HTTP/1.1' "\r\n" .
'Host: example.com' "\r\n\r\n";
socket_write($sock$request);

// Fermeture
socket_close($sock);

?>

Notes

Note:

Cette fonction doit être utilisée sur la socket avant la fonction socket_connect().

Note:

Note de compatibilité avec Windows 9x/ME : socket_last_error() peut retourner un code erreur invalide lorsque vous tentez de lier une socket avec une adresse fausse, qui n'appartient pas à la machine.

Voir aussi



socket_clear_error

(PHP 4 >= 4.2.0, PHP 5)

socket_clear_errorEfface toutes les erreurs précédemment générées par une socket

Description

void socket_clear_error ([ resource $socket ] )

Efface tous les codes d'erreur qui ont été enregistrés pour la socket socket, ou bien pour la socket générale.

socket_clear_error() permet de remettre à zéro les codes d'erreur d'une socket ou de la socket globale. Cela peut être utile pour détecter l'avènement d'une erreur durant une partie de l'application.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



socket_close

(PHP 4 >= 4.1.0, PHP 5)

socket_closeFerme une socket

Description

void socket_close ( resource $socket )

socket_close() ferme la socket socket et détruit toutes les ressources qui y sont liées. Cette fonction est spécifique aux sockets et ne peut être utilisée avec les autres types de ressource.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



socket_connect

(PHP 4 >= 4.1.0, PHP 5)

socket_connectCrée une connexion sur une socket

Description

bool socket_connect ( resource $socket , string $address [, int $port = 0 ] )

Crée une nouvelle connexion en utilisant la ressource socket socket, qui doit être une ressource de socket valide, créée par la fonction socket_create().

Liste de paramètres

socket

address

Le paramètre address est soit une adresse valide IPv4 (e.g. 127.0.0.1) si socket vaut AF_INET, soit une adresse valide IPv6 (e.g. ::1) si le support IPv6 est actif et que le paramètre socket vaut AF_INET6, soit un chemin vers un socket de domaine Unix, si la famille de sockets vaut AF_UNIX.

port

Le paramètre port n'est utilisé et mandaté que lors d'une connexion à un socket AF_INET ou AF_INET6, et désigne le port de l'hôte distant sur lequel la connexion doit être effectuée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Note:

Si le socket est non-bloquant, alors cette fonction retourne FALSE avec l'erreur suivant : Operation now in progress.

Voir aussi



socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listenOuvre une socket sur un port pour accepter les connexions

Description

resource socket_create_listen ( int $port [, int $backlog = 128 ] )

socket_create_listen() créée une nouvelle ressource de socket, de type AF_INET, mise en attente sur toutes les interfaces locales, pour le port port.

socket_create_listen() sert à simplifier la création de nouvelles sockets destinées à être mises en attente, et accepter de nouvelles connexions.

Liste de paramètres

port

Le port que l'on doit écouter sur toutes les interfaces.

backlog

Le paramètre backlog définit la taille maximum de la queue de connexions en attente. SOMAXCONN peut être utilisée comme valeur pour le paramètre backlog. Reportez-vous à socket_listen() pour plus de détails.

Valeurs de retour

socket_create_listen() retourne une nouvelle ressource de socket en cas de succès et FALSE en cas d'erreur. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Notes

Note:

Si vous voulez créer une socket qui n'écoute que certaines interfaces, vous devez utiliser socket_create(), socket_bind() et socket_listen().

Voir aussi



socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pairCrée une paire de sockets identiques et les stocke dans un tableau

Description

bool socket_create_pair ( int $domain , int $type , int $protocol , array &$fd )

socket_create_pair() crée une paire de sockets identiques et les stocke dans fd. Cette fonction est utilisée couramment dans IPC (InterProcess Communication).

Liste de paramètres

domain

Le paramètre domain spécifie la famille du protocole à utiliser par la socket. Voir la documentation sur la fonction socket_create() pour une liste complète.

type

Le paramètre type spécifie le type de communication à utiliser par la socket. Voir la documentation sur la fonction socket_create() pour une liste complète.

protocol

Le paramètre protocol définit un protocole spécifique dans le domaine spécifié domain pour être utilisé lors d'une communication sur une socket retournée. La valeur appropriée peut être retrouvée par son nom en utilisant la fonction getprotobyname(). Si le protocole désiré est TCP ou UDP, les constantes correspondantes SOL_TCP et SOL_UDP peuvent être utilisées.

Voir la documentation sur la fonction socket_create() pour une liste complète des protocoles supportés.

fd

Une référence vers un tableau dans lequel les deux ressources de sockets seront insérées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Cette fonction a été ré-activée sous Windows.
4.3.0 Cette fonction, à cause d'un bogue, a été désactivée sous Windows.

Exemples

Exemple #1 Exemple avec socket_create_pair()

<?php
$sockets 
= array();

/* On Windows we need to use AF_INET */
$domain = (strtoupper(substr(PHP_OS03)) == 'WIN' AF_INET AF_UNIX);

/* Création de la paire de sockets */
if (socket_create_pair($domainSOCK_STREAM0$sockets) === false) {
    echo 
"socket_create_pair a échoué. Raison : ".socket_strerror(socket_last_error());
}
/* Send and Recieve Data */
if (socket_write($sockets[0], "ABCdef123\n"strlen("ABCdef123\n")) === false) {
    echo 
"socket_write() a échoué. Raison : ".socket_strerror(socket_last_error($sockets[0]));
}
if ((
$data socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ) === false) {
    echo 
"socket_read() a échoué. Raison : ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Fermeture des sockets */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Exemple #2 Exemple IPC avec socket_create_pair()

<?php
$ary 
= array();
$strone 'Message depuis le parent.';
$strtwo 'Message depuis le fils.';
if (
socket_create_pair(AF_UNIXSOCK_STREAM0$ary) === false) {
    echo 
"socket_create_pair() a échoué. Raison : ".socket_strerror(socket_last_error());
}
$pid pcntl_fork();
if (
$pid == -1) {
    echo 
'Impossible de dupliquer le processus.';
} elseif (
$pid) {
    
/* parent */
    
socket_close($ary[0]);
    if (
socket_write($ary[1], $stronestrlen($strone)) === false) {
        echo 
"socket_write() a échoué. Raison : ".socket_strerror(socket_last_error($ary[1]));
    }
    if (
socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo 
"Recieved $strtwo\n";
    }
    
socket_close($ary[1]);
} else {
    
/* fils */
    
socket_close($ary[1]);
    if (
socket_write($ary[0], $strtwostrlen($strtwo)) === false) {
        echo 
"socket_write() a échoué. Raison : ".socket_strerror(socket_last_error($ary[0]));
    }
    if (
socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo 
"Réception de $strone\n";
    }
    
socket_close($ary[0]);
}
?>

Voir aussi



socket_create

(PHP 4 >= 4.1.0, PHP 5)

socket_createCrée une socket

Description

resource socket_create ( int $domain , int $type , int $protocol )

socket_create() crée un point de communication (une socket) et retourne une ressource de socket. Une connexion typique réseau est composée de deux sockets : une qui joue le rôle de client et l'autre celui du serveur.

Liste de paramètres

domain

Le paramètre domain spécifie la famille de protocoles à utiliser par la socket.

Famille d'adresses / protocoles disponibles
Domaine Description
AF_INET Protocole basé sur IPv4. TCP et UDP sont les protocoles communs de cette famille de protocoles.
AF_INET6 Protocole basé sur IPv6. TCP et UDP sont les protocoles communs de cette famille de protocoles. Le support a été ajouté en PHP 5.0.0.
AF_UNIX Famille de protocoles locales de communication. Le rendement élevé et des moindres coûts supplémentaires lui font une grande force d'IPC (Interprocess Communication).
type

Le paramètre type sélectionne le type de communication à utiliser par la socket.

Types de sockets disponibles
Type Description
SOCK_STREAM Fournit des flux d'octets ordonnancés, fiables, full-duplex, raccordés sur la base. Un mécanisme de transmission des données "out-of-band" peut être supporté. Le protocole TCP est basé sur ce type de sockets.
SOCK_DGRAM Support des datagrammes (moins de connexion, message non garanti d'une longueur maximum fixe). Le protocole UDP est basé sur ce type de sockets.
SOCK_SEQPACKET Fournit un chemin de transmission de données séquentiel, fiable, connecté à la base par deux chemins pour les datagrammes de longueur maximale fixe ; un consommateur est requis pour lire la totalité d'un paquet avec chaque appel à la lecture.
SOCK_RAW Fournit l'accès brut de protocole de réseau. Ce type spécial de socket peut être utilisé pour construire manuellement tout type de protocole. Une utilisation commune de ce type de sockets est le traitement des requêtes ICMP (comme le ping).
SOCK_RDM Fournit une couche fiable de datagramme qui ne garantit pas l'ordre des données. Ce type de socket est le plus susceptible de ne pas être implémenté sur votre système d'exploitation.
protocol

Le paramètre protocol définit le protocole spécifique pour le domaine domain à utiliser lors de communications sur une socket retournée. La valeur appropriée peut être retrouvée par son nom en utilisant la fonction getprotobyname(). Si le protocole désiré est TCP ou UDP, les constantes correspondantes SOL_TCP et SOL_UDP peuvent être utilisées.

Protocoles Communs
Nom Description
icmp Le protocole ICMP (Internet Control Message Protocol) est utilisé tout d'abord par les passerelles et les hôtes pour reporter les erreurs dans des communications de datagramme. La commande "ping" (présente dans les systèmes de production modernes) est un exemple d'application utilisant le protocole ICMP.
udp Le protocole UDP (User Datagramm Protocol) est un protocole sans connexion, incertain avec les longueurs d'enregistrements fixes. De ce fait, UDP requiert une quantité minimum de protocole aérienne.
tcp Le protocole TCP (Transmission Control Protocol) est un protocole fiable, connecté sur la base, orienté flux et full-duplex. TCP garantit que chaque paquet est reçu dans l'ordre dans lequel il a été envoyé. Si quelques paquets sont perdus pendant la communication, TCP retransmettra ces paquets tant que l'hôte destinataire ne les aura pas reçu entièrement. Pour des raisons de fiabilité et de performance, l'implémentation TCP, elle-même, décide des frontières appropriées d'octets de la couche fondamentale de communication du datagramme. Par conséquent, les applications TCP doivent autoriser la possibilité de transmission partielle d'enregistrements.

Valeurs de retour

socket_create() retourne une ressource de socket en cas de succès et FALSE sinon. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Historique

Version Description
5.0.0 La constante AF_INET6 a été introduite.

Erreurs / Exceptions

Si une valeur invalide est spécifiée au paramètre domain ou au paramètre type, la fonction socket_create() prendra comme paramètres par défaut respectivement AF_INET et SOCK_STREAM et générera un message d'alerte (E_WARNING).

Voir aussi



socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_optionLit les options de la socket

Description

mixed socket_get_option ( resource $socket , int $level , int $optname )

socket_get_option() récupère la valeur de l'option spécifiée par le paramètre optname pour la socket spécifiée par le paramètre socket.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

level

Le paramètre level spécifie la couche de protocole de l'option. Par exemple, pour connaître les options de la couche socket, la valeur SOL_SOCKET du paramètre level sera utilisée. Les autres degrés, comme TCP, peuvent être utilisés en spécifiant le numéro du protocole de cette couche. Les numéros de protocoles peuvent être trouvés en utilisant la fonction getprotobyname().

optname
Options disponibles pour les sockets
Option Description Type
SO_DEBUG Reporte si les informations de déboguage sont enregistrées ou pas. int
SO_BROADCAST Reporte si la transmission des annonces globales est supportée ou pas. int
SO_REUSEADDR Reporte si les adresses locales peuvent être réutilisées ou pas. int
SO_KEEPALIVE Reporte si les connexions sont persistantes avec des transmissions périodiques de messages ou pas. Si la socket connectée échoue en réponse à ces messages, la connexion est interrompue et le processus écrira à cette socket une notification avec un signal SIGPIPE. int
SO_LINGER

Reporte si la socket socket s'attarde sur la fonction socket_close() si des données sont présentes ou pas. Par défaut, lorsque la socket est fermée, socket_close() tente d'envoyer toutes les données qui ne l'ont pas encore été.

Si l_onoff ne vaut pas zéro et que l_linger vaut zéro, toutes les données qui n'ont pas encore été envoyées seront annulées et RST (réinitialisation) sera envoyé dans le cas d'une connexion orientée socket.

D'un autre côté, si l_onoff ne vaut pas zéro et l_linger ne vaut pas zéro, socket_close() bloquera tant que les données non envoyées ne le seront pas ou pendant le temps spécifié par l_linger. Si la socket est non-bloquante, socket_close() échouera et retournera une erreur.

array. Le tableau contiendra 2 clés : l_onoff et l_linger.
SO_OOBINLINE Reporte si la socket socket part sur des données en ligne out-of-band ou pas. int
SO_SNDBUF Reporte les informations sur la taille du tampon envoyé. int
SO_RCVBUF Reporte les informations sur la taille du tampon reçu. int
SO_ERROR Reporte les informations sur le statut de l'erreur et le vide. int (ne peut être défini par la fonction socket_set_option())
SO_TYPE Reporte le type de la socket socket (e.g. SOCK_STREAM). int (ne peut être défini par la fonction socket_set_option())
SO_DONTROUTE Reporte si les messages sortants dévient les équipements standard de cheminement. int
SO_RCVLOWAT Reporte le nombre minimal d'octets au processus pour les opérations entrantes sur la socket socket. int
SO_RCVTIMEO Reporte la valeur du délai d'exécution pour les opérations entrantes. array. Le tableau contiendra 2 clés : sec qui est la partie représentant les secondes de la valeur du délai d'attente et usec qui est la partie représentant les microsecondes.
SO_SNDTIMEO Reporte la valeur du délai d'exécution spécifiant le temps maximal d'exécution pour les fonctions sortantes bloquantes parce que la commande d'écoulement empêche des données d'être envoyé. array. Le tableau contiendra 2 clés : secqui est la partie représentant les secondes de la valeur du délai d'attente et usec qui est la partie représentant les microsecondes.
SO_SNDLOWAT Reporte le nombre minimal d'octets au processus pour les opérations sortantes sur la socket socket. int
TCP_NODELAY Indique si l'algorithme Nagle TCP est désactivé. int

Valeurs de retour

Retourne la valeur de l'option fournie, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_option()

<?php
$socket 
socket_create_listen(1223);

$linger = array('l_linger' => 1'l_onoff' => 1);
socket_set_option($socketSOL_SOCKETSO_LINGER$linger);

var_dump(socket_get_option($socketSOL_SOCKETSO_REUSEADDR));
?>

Historique

Version Description
4.3.0 Le nom de cette fonction a changé. Avant, elle s'appelait socket_getopt().



socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeernameInterroge l'autre extrémité de la communication

Description

bool socket_getpeername ( resource $socket , string &$address [, int &$port ] )

Interroge l'autre extrémité de la communication.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

address

Si la socket socket est de type AF_INET, ou AF_INET6 socket_getpeername() retournera l'adresse IP de l'hôte, en notation numérique (e.g. 127.0.0.1 ou fe80::1) dans le paramètre address, et si le paramètre optionnel port est présent, elle retournera aussi le port de la communication établie.

Si la socket socket est de type AF_UNIX, socket_getpeername() retournera le chemin sur le système de fichiers (e.g. /var/run/daemon.sock) dans le paramètre address.

port

Si fourni, ce devra être le port associé à l'adresse du paramètre address.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. socket_getpeername() peut aussi retourner FALSE si le type de la socket n'est ni AF_INET AF_INET6, ni AF_UNIX, auquel cas le dernier code d'erreur socket n'est pas modifié.

Notes

Note:

socket_getsockname() ne doit pas être utilisée avec les sockets AF_UNIX créées avec socket_accept(). Seules les sockets créées avec socket_connect() ou une socket serveur primaire suivant un appel à socket_bind() retourneront des valeurs logiques.

Note:

Pour faire en sorte que la fonction socket_getpeername() retourne une valeur cohérente, le socket sur lequel la fonction est appelée doit évidemment être un pour qui le conscepte de "peer" a du sens.

Voir aussi



socket_getsockname

(PHP 4 >= 4.1.0, PHP 5)

socket_getsocknameInterroge la socket locale

Description

bool socket_getsockname ( resource $socket , string &$addr [, int &$port ] )

Note: socket_getsockname() ne doit pas être utilisée avec les sockets AF_UNIX créées avec socket_connect(). Seules les sockets suivant un appel de socket_bind() retourneront des valeurs logiques.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

addr

Si la socket socket est de type AF_INET, ou AF_INET6, socket_getsockname() retournera l'adresse IP locale, en notation numérique (e.g. 127.0.0.1 ou fe80::1) dans le paramètre address, et si le paramètre optionnel port est présent, elle retournera aussi le port de la communication établie.

Si la socket socket est de type AF_UNIX, socket_getsockname() retournera le chemin sur le système de fichiers (e.g. /var/run/daemon.sock) dans le paramètre address.

port

Si fourni, ce devra être le port associé à l'adresse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. socket_getsockname() peut aussi retourner FALSE si le type de la socket n'est ni AF_INET, ni AF_INET, ni AF_UNIX, auquel cas le dernier code d'erreur socket n'est pas modifié.

Voir aussi



socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_errorLit la dernière erreur générée par une socket

Description

int socket_last_error ([ resource $socket ] )

Si une ressource de socket est passée à cette fonction, la dernière erreur qui aura été générée par cette socket sera retournée. Si la ressource de socket est omise, le dernier code d'erreur généré est retourné. Ce comportement est particulièrement pratique pour des fonctions comme socket_create() qui ne retourne pas de socket en cas d'échec, et socket_select() qui peut échouer sans raison directement liée à la socket. Le code d'erreur peut être transmis à socket_strerror() qui retourne un message d'erreur lisible.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

Valeurs de retour

Retourne le code erreur associé au socket.

Exemples

Exemple #1 Exemple avec socket_last_error()

<?php
$socket 
= @socket_create(AF_INETSOCK_STREAMSOL_TCP);

if (
$socket === false) {
    
$errorcode socket_last_error();
    
$errormsg socket_strerror($errorcode);

    die(
"Couldn't create socket: [$errorcode$errormsg");
}
?>

Notes

Note:

socket_last_error() n'efface pas le code d'erreur. Utilisez plutôt la fonction socket_clear_error() pour cela.



socket_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_listenAttend une connexion sur une socket

Description

bool socket_listen ( resource $socket [, int $backlog = 0 ] )

Une fois que la socket socket a été créée avec la fonction socket_create() et liée à un nom avec la fonction socket_bind(), elle peut être mise en attente de connexion entrante.

socket_listen() ne fonctionne qu'avec des sockets de type SOCK_STREAM et SOCK_SEQPACKET.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

backlog

Un nombre maximum de backlog connexions seront mises en attente de traitement. Si une demande de connexion arrive et que la queue est pleine, le client recevra une erreur indiquant ECONNREFUSED, ou, si le protocole de support accepte les retransmissions, la requête sera ignorée pour que les tentatives ultérieures finissent par réussir.

Note:

Le nombre maximum passé dans le paramètre backlog dépend essentiellement de la plate-forme de support. Sur Linux, il est tronqué automatiquement à SOMAXCONN. Sous Windows, si la constante SOMAXCONN est passée, le service responsable des sockets choisira une valeur maximum raisonnable. Il n'y a pas de méthode pour deviner la valeur réellement choisie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Voir aussi



socket_read

(PHP 4 >= 4.1.0, PHP 5)

socket_readLit des données d'une socket

Description

string socket_read ( resource $socket , int $length [, int $type = PHP_BINARY_READ ] )

socket_read() lit des données dans la socket socket, qui doit être une ressource créée par socket_accept() ou socket_accept().

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

length

Elle lit un maximum de length octets. Sinon, vous pouvez utiliser \r, \n ou \0 pour terminer la lecture (suivant la valeur choisie pour type, voir ci-dessous).

type

Le paramètre optionnel type peut prendre l'une des valeurs constantes suivantes :

  • PHP_BINARY_READ (Défaut) - utilise la fonction système recv(). Capable de lire les données binaires.
  • PHP_NORMAL_READ - la lecture s'arrête aux \n et \r

Valeurs de retour

socket_read() retourne les données sous forme de chaîne en cas de succès, et FALSE sinon (y compris si l'hôte distant a fermé la connexion). Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Note:

socket_read() retourne une chaîne de longueur zéro (""), lorsqu'il n'y a plus de données à lire.

Historique

Version Description
4.1.0 La valeur par défaut du paramètre type est passée de PHP_NORMAL_READ à PHP_BINARY_READ

Voir aussi



socket_recv

(PHP 4 >= 4.1.0, PHP 5)

socket_recvReçoit des données d'une socket connectée

Description

int socket_recv ( resource $socket , string &$buf , int $len , int $flags )

La fonction socket_recv() reçoit len octets de données dans buf depuis socket. socket_recv() peut être utilisée pour récupérer des données depuis des sockets connectées. Aussi, des drapeaux permettent de changer le comportement de la fonction.

buf est passé par référence, il doit donc être présente dans la liste des arguments. Les données reçues depuis la socket par socket_recv() seront retournées dans buf.

Liste de paramètres

socket

socket doit être une ressource de socket précédemment créee par socket_create().

buf

Les données reçues seront transmises dans buf. Si une erreur survient, si la connexion est fermée ou si aucune donnée n'est disponible, buf vaudra alors NULL.

len

Jusqu'à len octets seront lus depuis l'hôte distant.

flags

La valeur de flags peut être une combinaison des drapeaux suivants, groupés au moyen de l'opérateur binaire OR (|).

Valeurs possibles de flags
Flag Description
MSG_OOB Traite des données hors de bande.
MSG_PEEK Reçoit les données depuis le début de la queue sans pour autant les supprimer de la queue.
MSG_WAITALL Bloque avant qu'au moins len sont reçues. Cependant, si un signal est intercépté ou si la connexion est terminée, la fonction pourra retourner moins de données.
MSG_DONTWAIT Si ce drapeau est spécifié, la fonction retournera ses données alors qu'en temps normal elle aurait bloqué.

Valeurs de retour

socket_recv() retourne le nombre d'octets reçus, ou FALSE si une erreur est apparue. Le code d'erreur actuel peut être récupéré en appelant socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour avoir une représentation textuelle de l'erreur.

Exemples

Exemple #1 Exemples avec socket_recv()

Cet exemple est une réécriture de l'exemple pris sur Exemples pour utiliser socket_recv().

<?php
error_reporting
(E_ALL);

echo 
"<h2>TCP/IP Connection</h2>\n";

/* Récupère le port du service WWW. */
$service_port getservbyname('www''tcp');

/* Récupère l'adresse IP de l'hôte cible. */
$address gethostbyname('www.example.com');

/* Crée une socket TCP/IP. */
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
if (
$socket === false) {
    echo 
"socket_create() a échoué: raison: " socket_strerror(socket_last_error()) . "\n";
} else {
    echo 
"OK.\n";
}

echo 
"Tentative de connexion à '$address' sur le port '$service_port'...";
$result socket_connect($socket$address$service_port);
if (
$result === false) {
    echo 
"socket_connect() a échoué.\nRaison: ($result) " socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo 
"OK.\n";
}

$in "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out '';

echo 
"Envoi d'une requête HTTP HEAD...";
socket_write($socket$instrlen($in));
echo 
"OK.\n";

echo 
"Lecture de la réponse:\n\n";
$buf 'Ceci est mon buffer.';
if (
false !== ($bytes socket_recv($socket$buf2048MSG_WAITALL))) {
    echo 
"$bytes octets lus depuis socket_recv(). Fermeture de la socket...";
} else {
    echo 
"socket_recv() a échoué; raison: " socket_strerror(socket_last_error($socket)) . "\n";
}
socket_close($socket);

echo 
$buf "\n";
echo 
"OK.\n\n";
?>

L'exemple ci-dessus produit un résultat ressemblant à celà:

<h2>TCP/IP Connection</h2>
OK.
Tentative de connexion à '208.77.188.166' sur le port '80'...OK.
Envoi d'une requête HTTP HEAD...OK.
Lecture de la réponse:

Fermeture de la socket...HTTP/1.1 200 OK
Date: Mon, 14 Sep 2009 08:56:36 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8

OK.



socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5)

socket_recvfromReçoit des données d'une socket, connectée ou pas

Description

int socket_recvfrom ( resource $socket , string &$buf , int $len , int $flags , string &$name [, int &$port ] )

La fonction socket_recvfrom() reçoit len octets de données du buffer buf depuis name sur le port port (si la socket n'est pas du type AF_UNIX), en utilisant socket. socket_recvfrom() peut être utilisé pour récupérer les données depuis des sockets connectées ou non. De plus, un ou plusieurs drapeaux peuvent être spécifiés pour modifier ce comportement.

Les paramètres name et port doivent être passés par référence. Si la socket n'est pas connectée, name contiendra l'adresse internet de l'hôte distant ou le chemin du socket Unix. Si la socket est connectée, name vaut NULL. De plus, le paramètre port contiendra le port de l'hôte distant dans le cas d'une socket AF_INET ou AF_INET6.

Liste de paramètres

socket

Le paramètre socket doit être une ressource de socket créé par la fonction socket_create().

buf

Les données récupérées seront placées dans la variable spécifiée par ce paramètre.

len

Jusqu'à len octets doivent être récupérés de l'hôte distant.

flags

La valeur de ce paramètre peut être une combinaison des drapeaux suivants, joints par un OU binaire (|).

Valeurs possibles pour flags
Drapeau Description
MSG_OOB Processus en dehors de la bande de données.
MSG_PEEK Reçoit les données depuis le début de la file de réception sans les supprimer de cette file.
MSG_WAITALL Bloque tant qu'au moins len octets n'ont pas été reçus. Cependant, si un signal est reçu ou l'hôte distant se déconnecte, la fonction pourra retourner moins de données.
MSG_DONTWAIT Lorsque ce drapeau est défini, la fonction retourne des données même si elle devrait rester bloquer.
name

Si la socket est du type AF_UNIX, name sera le chemin vers ce fichier. Sinon, pour les sockets non-connectées, name est l'adresse IP de l'hôte distant, ou NULL si la socket est connectée.

port

Cet argument ne s'applique qu'aux sockets AF_INET et AF_INET6, et spécifie le port distant depuis lequel les données sont reçues. Si la socket est connectée, port vaudra NULL.

Valeurs de retour

socket_recvfrom() retourne le nombre d'octets reçus, ou FALSE si une erreur survient. Le code erreur actuel peut être retrouvé en appelant la fonction socket_last_error(). Ce code erreur peut être passé à la fonction socket_strerror() afin de récupérer une explication textuelle de l'erreur.

Exemples

Exemple #1 Exemple avec socket_recvfrom()

<?php
error_reporting
(E_ALL E_STRICT);

$socket socket_create(AF_INETSOCK_DGRAMSOL_UDP);
socket_bind($socket'127.0.0.1'1223);

$from '';
$port 0;
socket_recvfrom($socket$buf120$from$port);

echo 
"Réception de $buf depuis l'adresse distant $from et du port distant $portPHP_EOL;
?>

Cet exemple initialise une socket UDP sur le port 1223 de l'adresse 127.0.0.1 et affiche au moins 12 caractères reçus depuis l'hôte distant.

Historique

Version Description
4.3.0 socket_recvfrom() est maintenant compatible avec les données binaires.

Voir aussi



socket_select

(PHP 4 >= 4.1.0, PHP 5)

socket_selectExécute l'appel système select() un tableau de sockets avec une durée d'expiration

Description

int socket_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] )

socket_select() accepte un tableau de sockets et attend qu'elles changent de statut. Ceux qui sont familiers avec les sockets de BSD reconnaîtront dans ces tableaux de sockets les jeux de pointeurs de fichiers. Trois tableaux indépendants de ressources de sockets sont surveillés.

Liste de paramètres

read

Les sockets listées dans le paramètre read seront surveillées en lecture : pour savoir quand elles sont disponibles en lecture (plus précisément, si une lecture ne va pas bloquer, en particulier, une ressource de socket a déjà atteint une fin de fichier, auquel cas socket_read() retournera une chaîne de taille zéro).

write

Les sockets listées dans write seront surveillées en écriture : pour voir si une écriture ne va pas bloquer.

except

Les sockets listées dans except seront surveillées pour leurs exceptions.

tv_sec

Les paramètres tv_sec et tv_usec ensembles forment le paramètre timeout (durée de vie). Le timeout est la durée maximale de temps avant que socket_select() ne se termine. tv_sec peut être zéro, ce qui fera que socket_select() retournera immédiatement. C'est très pratique pour faire du polling (sondage). Si tv_sec est NULL (pas de timeout), socket_select() peut se bloquer indéfiniment.

tv_usec

Avertissement

En sortie de fonction, les tableaux sont modifiées pour indiquer quelles sockets ont changé d'état.

Vous n'avez pas besoin de passer tous les tableaux à socket_select(). Vous pouvez les omettre, ou utiliser un tableau vide, ou encore NULL à la place. N'oubliez pas que ces tableaux sont passés par référence et seront modifiés par socket_select().

Note:

À cause d'une limitation du moteur Zend actuel, il n'est pas possible de passer une constante comme NULL directement comme paramètre à cette fonction, qui attend une valeur par référence. À la place, utilisez un tableau temporaire ou une expression dont le membre de gauche est une variable temporaire :

Exemple #1 Passer NULL à socket_select()

<?php
$e 
NULL;
socket_select($r$w$e0);
?>

Valeurs de retour

En cas de succès, socket_select() retourne le nombre de sockets contenues dans les tableaux modifiés. Ce nombre peut être zéro si la durée maximale d'attente a été atteinte. En cas d'erreur, FALSE est retourné. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error().

Note:

Assurez-vous bien d'utiliser l'opérateur === lorsque vous vérifiez les erreurs. Étant donnée que socket_select() peut retourner 0, la comparaison avec FALSE via == donnerait TRUE :

Exemple #2 Analyser le résultat de socket_select()

<?php
$e 
NULL;
if (
false === socket_select($r$w$e0)) {
    echo 
"socket_select() a échoué. Raison : " .
        
socket_strerror(socket_last_error()) . "\n";
}
?>

Exemples

Exemple #3 Exemple avec socket_select()

<?php
/* Prépare le tableau read (socket surveillées en lecture) */
$read   = array($socket1$socket2);
$write  NULL;
$except NULL;
$num_changed_sockets socket_select($read$write$except0);

if (
$num_changed_sockets === false) {
  
/* Gestion des erreurs */
} else if ($num_changed_sockets 0) {
  
/* Au moins une des sockets a été modifiée */
}
?>

Notes

Note:

Méfiez-vous des implémentations de sockets, qui doivent être manipulées avec délicatesse. Quelques règles de base :

  • Vous devez toujours essayer d'utiliser socket_select() sans timeout. Votre programme ne devrait avoir rien à faire si il n'y a pas de données disponibles. Le code qui dépend d'un timeout est généralement peu portable, et difficile à déboguer.
  • Une socket ne doit pas être ajoutée à l'un des tableaux en paramètre, si vous ne souhaitez pas vérifier le résultat après l'appel à socket_select(). Après le retour de socket_select(), toutes les sockets dans tous les tableaux doivent être vérifiées. Toute socket qui est disponible en écriture ou en lecture doit être utilisée pour écrire ou lire.
  • Si vous écrivez ou lisez avec une socket retournée dans un tableau, soyez conscient qu'elle ne pourra pas écrire ou lire toutes les données que vous demandez. Soyez prêt à ne pouvoir lire qu'un seul octet.
  • Il est commun à la plupart des implémentations de socket que la seule exception interceptée par les sockets dans le tableau except soit le cas des données hors limites, reçues par une socket.

Voir aussi



socket_send

(PHP 4 >= 4.1.0, PHP 5)

socket_sendEnvoie des données à une socket connectée

Description

int socket_send ( resource $socket , string $buf , int $len , int $flags )

La fonction socket_send() envoie len octets à la socket socket depuis le buffer buf.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

buf

Un buffer contenant les données qui seront envoyées sur l'hôte distant.

len

Le nombre d'octets qui doivent être envoyés à l'hôte distant depuis le buffer buf.

flags

La valeur du paramètre flags peut être une combinaison des drapeaux suivants, joints par un OU binaire (|).

Valeurs possibles pour flags
MSG_OOB Traite les données OOB (out-of-band).
MSG_EOR Indique un marqueur d'enregistrement. Les données envoyées complètent l'enregistrement.
MSG_EOF Termine l'envoi via le socket et inclue une notification appropriée à la fin des données envoyées. Les données envoyées complètent la transaction.
MSG_DONTROUTE Ignore le routage, utilise une interface directe.

Valeurs de retour

Retourne le nombre d'octets envoyés, ou FALSE si une erreur survient.

Voir aussi

  • socket_sendto() - Envoie une message à une socket, qu'elle soit connectée ou pas



socket_sendto

(PHP 4 >= 4.1.0, PHP 5)

socket_sendtoEnvoie une message à une socket, qu'elle soit connectée ou pas

Description

int socket_sendto ( resource $socket , string $buf , int $len , int $flags , string $addr [, int $port = 0 ] )

socket_sendto() envoie len octets issus du buffer buf via la socket socket, vers le port port, à l'adresse addr.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

buf

Les données à envoyer seront prises depuis le buffer buf.

len

len octets depuis buf doivent être envoyés.

flags

Peut être une combinaison des drapeaux suivants, joints par un OU binaire (|).

Valeurs possibles pour flags
MSG_OOB Traite les données OOB (out-of-band).
MSG_EOR Indique un marqueur d'enregistrement. Les données envoyées complètent l'enregistrement.
MSG_EOF Termine l'envoi via le socket et inclue une notification appropriée à la fin des données envoyées. Les données envoyées complètent la transaction.
MSG_DONTROUTE Ignore le routage, utilise une interface directe.

addr

L'adresse IP de l'hôte distant.

port

port est le numéro de port sur lequel les données doivent être envoyées.

Valeurs de retour

socket_sendto() retourne le nombre d'octets envoyés sur l'hôte distant ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_sendto()

<?php
$sock 
socket_create(AF_INETSOCK_DGRAMSOL_UDP);

$msg "Ping !";
$len strlen($msg);

socket_sendto($sock$msg$len0'127.0.0.1'1223);
socket_close($sock);
?>

Voir aussi



socket_set_block

(PHP 4 >= 4.2.0, PHP 5)

socket_set_blockMet la socket en mode bloquant

Description

bool socket_set_block ( resource $socket )

socket_set_block() supprime l'option O_NONBLOCK de la socket spécifiée par socket.

Lorsqu'une opération (e.g. réception, envoie, connexion, acceptation, ...) est effectuée sur une socket non-bloquante, le script ne se met pas en pause tant qu'elle reçoit un signal. Au lieu de cela, si l'opération doit résulter en un blocage, la fonction appelée échouera.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_block()

<?php
$socket 
socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

Cet exemple crée un socket écoutant toutes les interfaces du port 1223 et définit la socket en mode O_BLOCK. socket_accept() patientera tant qu'il y aura une connexion à accepter.

Voir aussi



socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5)

socket_set_nonblockSélectionne le mode non bloquant d'un pointeur de fichier

Description

bool socket_set_nonblock ( resource $socket )

La fonction socket_set_nonblock() configure l'option O_NONBLOCK pour la socket spécifiée par le paramètre socket.

Lorsqu'une opération (e.g. réception, envoie, connexion, acceptation, ...) est effectuée sur une socket non-bloquante, le script ne se met pas en pause tant qu'elle reçoit un signal. Au lieu de cela, si l'opération doit résulter en un blocage, la fonction appelée échouera.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_nonblock()

<?php
$socket 
socket_create_listen(1223);
socket_set_nonblock($socket);

socket_accept($socket);
?>

Cet exemple crée un socket écoutant toutes les interfaces sur port 1223 et définit la socket en mode O_NONBLOCK. socket_accept() échouera immédiatement s'il y a une connexion en attente exactement à ce moment là.

Voir aussi



socket_set_option

(PHP 4 >= 4.3.0, PHP 5)

socket_set_optionModifie les options de socket

Description

bool socket_set_option ( resource $socket , int $level , int $optname , mixed $optval )

socket_set_option() configure l'option spécifiée par optname, au niveau de protocole level à la valeur pointée par optval pour la socket spécifiée par socket.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

level

Le paramètre level spécifie la couche du protocole de l'option. Par exemple, pour modifier une option de la couche socket, un niveau égal à SOL_SOCKET va être utilisé. Les autres niveaux, comme TCP, peuvent être utilisés en spécifiant un numéro de protocole pour ce niveau. Les numéros de protocoles peuvent être utilisés en utilisant la fonction getprotobyname().

optname

Les options disponibles sont les mêmes que pour la fonction socket_get_option().

optval

La valeur de l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_option()

<?php
$socket 
socket_create(AF_INETSOCK_STREAMSOL_TCP);

if (!
is_resource($socket)) {
    echo 
'Impossible de créer la socket : 'socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!
socket_set_option($socketSOL_SOCKETSO_REUSEADDR1)) {
    echo 
'Impossible de définir l'option du socket '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '
127.0.0.1', 1223)) {
    echo '
Impossible de lier la socket '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
    echo '
Impossible de récupérer l'option du socket : 'socket_strerror(socket_last_error()) . PHP_EOL;
} else if (
$rval !== 0) {
    echo 
'SO_REUSEADDR est défini sur la socket !' PHP_EOL;
}
?>

Historique

Version Description
4.3.0 La fonction a été renommée. Elle s'appelait, avant, socket_setopt().



socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdownÉteint une socket en lecture et/ou écriture

Description

bool socket_shutdown ( resource $socket [, int $how = 2 ] )

socket_shutdown() vous permet d'empêcher les données entrantes ou sortantes ou les deux (par défaut) d'être émises via la socket socket.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

how

La valeur du paramètre how peut être une des valeurs suivantes :

Valeurs possibles pour how
0 Empêche la lecture de la socket
1 Empêche l'écriture de la socket
2 Empêche l'écriture et la lecture de la socket

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



socket_strerror

(PHP 4 >= 4.1.0, PHP 5)

socket_strerrorRetourne une chaîne décrivant un message d'erreur

Description

string socket_strerror ( int $errno )

socket_strerror() prend un code d'erreur comme paramètre errno. Cette valeur est souvent retournée par la fonction socket_last_error(). La fonction retourne le message d'erreur correspondant.

Note:

Bien que les messages d'erreur générés par l'extension socket soient en anglais, le système gérant les messages de cette fonction dépend de la locale courante (LC_MESSAGES).

Liste de paramètres

errno

Une numéro d'erreur de socket valide, comme produit par la fonction socket_last_error().

Valeurs de retour

Retourne le message d'erreur associé avec le paramètre errno.

Exemples

Exemple #1 Exemple avec socket_strerror()

<?php
if (false == ($socket = @socket_create(AF_INETSOCK_STREAMSOL_TCP))) {
   echo 
"socket_create() a échoué : raison : " socket_strerror(socket_last_error()) . "\n";
}

if (
false == (@socket_bind($socket'127.0.0.1'80))) {
   echo 
"socket_bind() a échoué : raison : " socket_strerror(socket_last_error($socket)) . "\n";
}
?>

L'affichage attendu pour l'exemple du dessus (en supposant que vous essayer d'exécuter le script sans les droits Administrateur) :

socket_bind() a échoué : raison : Permission denied

Voir aussi



socket_write

(PHP 4 >= 4.1.0, PHP 5)

socket_writeÉcrit dans une socket

Description

int socket_write ( resource $socket , string $buffer [, int $length = 0 ] )

socket_write() écrit dans la socket socket les données du buffer buffer.

Liste de paramètres

socket

buffer

Le buffer à écrire.

length

Le paramètre optionnel length peut spécifier explicitement la taille des données qui doivent être écrites. Si cette longueur est plus grande que la taille du buffer, elle sera ramenée automatiquement à la taille du buffer lui-même.

Valeurs de retour

socket_write() retourne le nombre d'octets qui ont pu être écrits dans la socket ou FALSE si une erreur survient. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur, humainement lisible.

Note:

Il est parfaitement valide pour socket_write() de retourner zéro, ce qui signifie qu'aucun octet n'a été écrit. Soyez bien sûr d'utiliser l'opérateur === pour comparer le retour de la fonction avec FALSE, et détecter un cas d'erreur.

Notes

Note:

socket_write() n'écrit pas nécessairement tous les octets du buffer fourni. Il est valide que, suivant certaines configuration de buffer réseau, seulement une certaine quantité de données, même un octet, soit écrit, y compris si votre buffer est plus grand. Vous devez alors vous assurer que vous n'avez pas oublié de transmettre le reste de vos données.

Voir aussi


Sommaire




Fonctions Shell2 sécurisé


Introduction

La liaison à la bibliothèque » libssh2 fournit un accès à des ressources (shell, exécution distante, tunneling, transfert de fichiers) sur une machine distante en utilisant un transport crypté sécurisé.



Installation/Configuration

Sommaire


Pré-requis

Les bibliothèques » OpenSSL et » libssh2 sont nécessaires. Assurez-vous que les bibliothèques de développement sont installées ; typiquement, le nom du paquet est openssl-dev.

Note: La version 0.4 ou suivante de la bibliothèque libssh2 est nécessaire ; malgré tout, il est possible qu'une nouvelle version de pecl/ssh2 nécessite une version plus récente (voir les notes de version).



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ssh2.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SSH2_FINGERPRINT_MD5 (integer)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que hash MD5.
SSH2_FINGERPRINT_SHA1 (integer)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que hash SHA1.
SSH2_FINGERPRINT_HEX (integer)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que chaîne hexits.
SSH2_FINGERPRINT_RAW (integer)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que chaîne de caractères 8-bit.
SSH2_TERM_UNIT_CHARS (integer)
Flag spécifiant à la fonction ssh2_shell() que les paramètres width et height sont fournis sous la forme de taille de caractères.
SSH2_TERM_UNIT_PIXELS (integer)
Flag spécifiant à la fonction ssh2_shell() que les paramètres width et height sont fournis sous la forme de pixels.
SSH2_DEFAULT_TERM_WIDTH (integer)
Largeur par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (integer)
Hauteur par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (integer)
Unité par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_STREAM_STDIO (integer)
Flag pour que la fonction ssh2_fetch_stream() demande un sous-canal STDIO.
SSH2_STREAM_STDERR (integer)
Flag pour que la fonction ssh2_fetch_stream() demande un sous-canal STDERR.
SSH2_DEFAULT_TERMINAL (string)
Type par défaut du terminal (e.g. "vt102", "ansi", "xterm", "vanilla") demandé par la fonction ssh2_shell().


Fonctions Shell2


ssh2_auth_hostbased_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_hostbased_fileIdentification en utilisant une clé d'hôte publique

Description

bool ssh2_auth_hostbased_file ( resource $session , string $username , string $hostname , string $pubkeyfile , string $privkeyfile [, string $passphrase [, string $local_username ]] )

Identification en utilisant une clé d'hôte publique lue depuis un fichier.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu via la fonction ssh2_connect().

username

hostname

pubkeyfile

privkeyfile

passphrase

Si privkeyfile est chiffré (et il doit l'être), la phrase secrète doit être fournie.

local_username

Si local_username est omis, alors la valeur de username sera utilisée pour cela.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Identification en utilisant une clé d'hôte publique

<?php
$connection 
ssh2_connect('shell.example.com'22, array('hostkey'=>'ssh-rsa'));

if (
ssh2_auth_hostbased_file($connection'remoteusername''myhost.example.com',
                             
'/usr/local/etc/hostkey_rsa.pub',
                             
'/usr/local/etc/hostkey_rsa''secret',
                             
'localusername')) {
  echo 
"Identification en utilisant une clé d'hôte publique avec succès\n";
} else {
  die(
'Echec de l\'identification en utilisant une clé d\'hôte publique avec succès');
}
?>

Notes

Note:

ssh2_auth_hostbased_file() nécessite libssh2 >= 0.7 et PHP/SSH2 >= 0.7.



ssh2_auth_none

(PECL ssh2 >= 0.9.0)

ssh2_auth_noneIdentification en tant que "none"

Description

mixed ssh2_auth_none ( resource $session , string $username )

Tente une identification en tant que "none", qui, habituellement, échoue (et doit échouer). Mis à part l'échec, cette fonction doit retourner un tableau contenant les méthodes d'identification acceptées.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu avec la fonction ssh2_connect().

username

Nom d'utilisateur distant.

Valeurs de retour

Retourne TRUE si le serveur accepte "none" comme méthode d'identification, ou un tableau de méthodes d'identification acceptées en cas d'échec.

Exemples

Exemple #1 Récupération de la liste des méthodes d'identification

<?php
$connection 
ssh2_connect('shell.example.com'22);

$auth_methods ssh2_auth_none($connection'user');

if (
in_array('password'$auth_methods)) {
  echo 
"Le serveur supporte l'identification à mot de passe\n";
}
?>



ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_passwordIdentification via SSH en utilisant un mot de passe en clair

Description

bool ssh2_auth_password ( resource $session , string $username , string $password )

Identification via SSH en utilisant un mot de passe en clair.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

username

Nom d'utilisateur distant.

password

Mot de passe pour l'utilisateur username.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Identification avec un mot de passe

<?php
$connection 
ssh2_connect('shell.example.com'22);

if (
ssh2_auth_password($connection'username''secret')) {
  echo 
"Identification réussi !\n";
} else {
  die(
'Echec de l\'identification...');
}
?>



ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_fileIdentification en utilisant une clé publique

Description

bool ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile [, string $passphrase ] )

Identification en utilisant une clé publique, lue depuis un fichier.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

username

pubkeyfile

privkeyfile

passphrase

Si privkeyfile est chiffré (et doit l'être), la passe-phrase doit être fournie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Identification en utilisant une clé publique

<?php
$connection 
ssh2_connect('shell.example.com'22, array('hostkey'=>'ssh-rsa'));

if (
ssh2_auth_pubkey_file($connection'username',
                          
'/home/username/.ssh/id_rsa.pub',
                          
'/home/username/.ssh/id_rsa''secret')) {
  echo 
"Identification réussie en utilisant une clé publique\n";
} else {
  die(
'Echec de l\'identification en utilisant une clé publique');
}
?>



ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connectConnexion à un serveur SSH

Description

resource ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] )

Établit une connexion à un serveur SSH distant.

Une fois connecté, le client doit vérifier la clé hôte du serveur en utilisant la fonctionssh2_fingerprint(), puis s'identifier en utilisant soit un mot de passe, soit une clé publique.

Liste de paramètres

host

port

methods

methods doit être un tableau associatif avec plus de quatre paramètres, comme décrit ci-dessous. methods peut contenir n'importe quel ou tous les paramètres suivants.

Options de connexion SSH
Index Signification Valeurs supportées *
kex La liste des méthodes d'échange à annoncer, séparées par une virgule, par ordre de préférence. diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, et diffie-hellman-group-exchange-sha1
hostkey La liste des méthodes de clés d'hôte à annoncer, séparées par une virgule, par ordre de préférence. ssh-rsa et ssh-dss
client_to_server Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le client vers le serveur.  
server_to_client Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le serveur vers le client.  

* - Les valeurs supportées sont dépendantes des méthodes supportées par la bibliothèque. Voir la documentation » libssh2 pour plus d'informations.

client_to_server et server_to_client doivent être un tableau associatif avec n'importe quel ou tous les paramètres suivants.
Index Signification Valeurs supportées *
crypt Liste des méthodes de chiffrement à annoncer, séparées par une virgule, par ordre de préférence. rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, et none**
comp Liste des méthodes de compression à annoncer, séparées par une virgule, par ordre de préférence. zlib et none
mac Liste des méthodes MAC à annoncer, séparées par une virgule, par ordre de préférence. hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, et none**

Note: Chiffrement et méthode MAC "none"

Pour des raisons de sécurité, none est désactivé par la bibliothèque » libssh2 à moins qu'il soit activé explicitement durant la compilation en utilisant les options appropriées du ./configure. Voir la documentation sur la bibliothèque pour plus d'informations.

callbacks

callbackss doit être un tableau associatif contenant n'importe quel ou tous les paramètres suivants.

Paramètres de rappel
Index Signification Prototype
ignore Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_IGNORE est reçu void ignore_cb($message)
debug Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DEBUG est reçu void debug_cb($message, $language, $always_display)
macerror Nom de la fonction à appeler lorsqu'un paquet est reçu mais que le code message d'identification échoue. Si le la fonction de rappel retourne TRUE, l'erreur sera ignorée, sinon, la connexion se terminera. bool macerror_cb($packet)
disconnect Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DISCONNECT est reçu void disconnect_cb($reason, $message, $language)

Valeurs de retour

Retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ssh2_connect()

Ouverture d'une connexion forçant 3des-cbc lors de l'envoi de paquets, n'importe quel chiffrement AES lors de la réception de paquets, aucune compression dans les deux directions, et un échange de clés Group1.

<?php
/* Notification à l'utilisateur si le serveur termine la connexion */
function my_ssh_disconnect($reason$message$language) {
  
printf("Server disconnected with reason code [%d] and message: %s\n",
         
$reason$message);
}

$methods = array(
  
'kex' => 'diffie-hellman-group1-sha1',
  
'client_to_server' => array(
  
'crypt'            => '3des-cbc',
  
'comp'             => 'none'),
  
'server_to_client' => array(
  
'crypt'            => 'aes256-cbc,aes192-cbc,aes128-cbc',
  
'comp'             => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection ssh2_connect('shell.example.com'22$methods$callbacks);
if (!
$connection) die('Échec de la connexion');
?>

Voir aussi



ssh2_exec

(PECL ssh2 >= 0.9.0)

ssh2_execExécute une commande sur un serveur distant

Description

resource ssh2_exec ( resource $session , string $command [, string $pty [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Exécute une commande sur un serveur distant.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

command

pty

env

env peut être passé sous la forme d'un tableau associatif de paires nom/valeur, à définir dans l'environnement cible.

width

Largeur du terminal virtuel.

height

Hauteur du terminal virtuel.

width_height_type

width_height_type peut valoir SSH2_TERM_UNIT_CHARS ou SSH2_TERM_UNIT_PIXELS.

Valeurs de retour

Retourne un flux en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécution d'une commande

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

$stream ssh2_exec($connection'/usr/local/bin/php -i');
?>

Voir aussi



ssh2_fetch_stream

(PECL ssh2 >= 0.9.0)

ssh2_fetch_streamParcours un flux étendu de données

Description

resource ssh2_fetch_stream ( resource $channel , int $streamid )

Parcourt un sous-flux alternatif associé à un flux de canal SSH2. Le protocole SSH2 définie actuellement un seul sous-flux, STDERR, qui a un identifiant de sous-flux de SSH2_STREAM_STDERR (défini à 1).

Liste de paramètres

channel

streamid

Un canal de flux SSH2.

Valeurs de retour

Retourne la ressource, représentant le flux demandé.

Exemples

Exemple #1 Ouverture d'un shell et récupération du flux stderr qui lui est associé

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

$stdio_stream ssh2_shell($connection);
$stderr_stream ssh2_fetch_stream($stdio_streamSSH2_STREAM_STDERR);
?>

Voir aussi



ssh2_fingerprint

(PECL ssh2 >= 0.9.0)

ssh2_fingerprintRécupère l'empreinte d'un serveur distant

Description

string ssh2_fingerprint ( resource $session [, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX ] )

Récupère l'empreinte d'un serveur distant.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

flags

flags peut être soit SSH2_FINGERPRINT_MD5 ou SSH2_FINGERPRINT_SHA1 associé logiquement avec SSH2_FINGERPRINT_HEX ou SSH2_FINGERPRINT_RAW.

Valeurs de retour

Retourne l'empreinte, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Comparaison d'une empreinte à une valeur connue

<?php
$known_host 
'6F89C2F0A719B30CC38ABDF90755F2E4';

$connection ssh2_connect('shell.example.com'22);

$fingerprint ssh2_fingerprint($connection,
               
SSH2_FINGERPRINT_MD5 SSH2_FINGERPRINT_HEX);

if (
$fingerprint != $known_host) {
  die(
"HOSTKEY MISMATCH!\n" .
      
"Attaque Man-In-The-Middle possible ?");
}
?>



ssh2_methods_negotiated

(PECL ssh2 >= 0.9.0)

ssh2_methods_negotiatedRetourne une liste de méthodes négociées

Description

array ssh2_methods_negotiated ( resource $session )

Retourne une liste de méthodes négociées.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

Valeurs de retour

Exemples

Exemple #1 Détermine quelles méthodes ont été négociées

<?php
$connection 
ssh2_connect('shell.example.com'22);
$methods ssh2_methods_negotiated($connection);

echo 
"Clé de cryptage négociée en utilisant : {$methods['kex']}\n";
echo 
"Identification du serveur en utilisant {$methods['hostkey']}";
echo 
"Empreinte : " ssh2_fingerprint($connection) . "\n";

echo 
"Méthodes de transmission des paquets client vers serveur :\n";
echo 
"\tCrypt: {$methods['client_to_server']['crypt']}\n";
echo 
"\tComp: {$methods['client_to_server']['comp']}\n";
echo 
"\tMAC: {$methods['client_to_server']['mac']}\n";

echo 
"Méthodes de transmission des paquets serveur vers client :\n";
echo 
"\tCrypt: {$methods['server_to_client']['crypt']}\n";
echo 
"\tComp: {$methods['server_to_client']['comp']}\n";
echo 
"\tMAC: {$methods['server_to_client']['mac']}\n";

?>

Voir aussi



ssh2_publickey_add

(PECL ssh2 >= 0.10)

ssh2_publickey_addAjoute une clé publique autorisée

Description

bool ssh2_publickey_add ( resource $pkey , string $algoname , string $blob [, bool $overwrite = false [, array $attributes ]] )

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Liste de paramètres

pkey

Ressource Publickey Subsystem créée par ssh2_publickey_init().

algoname

Algorithme de clé publique (exemple) : ssh-dss, ssh-rsa

blob

Blob de clé publique comme données binaires brutes

overwrite

Si la clé spécifiée existe déjà, devrait-elle être écrasée ?

attributes

Tableau associatif d'attributs pour assigner à cette clé publique. Référez-vous à ietf-secsh-publickey-subsystem pour une liste des attributs supportés. Pour marquer un attribut comme obligatoire, précédez son nom par un astérisque. Si le serveur n'est pas capable de supporter un attribut marqué comme obligatoire, il abandonnera le processus d'ajout.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout d'une clé publique avec ssh2_publickey_add()

<?php
$ssh2 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($ssh2'jdoe''password');
$pkey ssh2_publickey_init($ssh2);

$keyblob base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10='
);

ssh2_publickey_add($pkey'ssh-rsa'$keyblobfalse, array('comment'=>"John's Key"));
?>

Voir aussi



ssh2_publickey_init

(PECL ssh2 >= 0.10)

ssh2_publickey_initInitialise un Publickey Subsystem (sous-système de clé publique)

Description

resource ssh2_publickey_init ( resource $session )

Demande le subsystem de la clé publique à partir d'un serveur SSH2 déjà connecté.

Le publickey subsystem permet à un client déjà connecté et identifié de gérer la liste des clés publiques autorisées enregistrée sur le serveur cible dans une manière d'implémentation agnostique. Si le serveur ne supporte pas le publickey subsystem, la fonction ssh2_publickey_init() retournera FALSE.

Liste de paramètres

session

Valeurs de retour

Retourne une ressource SSH2 Publickey Subsystem pour utiliser avec toutes les autres méthodes ssh2_publickey_*() ou FALSE si une erreur survient.

Notes

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Voir aussi



ssh2_publickey_list

(PECL ssh2 >= 0.10)

ssh2_publickey_listListe les clés publiques actuellement autorisées

Description

array ssh2_publickey_list ( resource $pkey )

Liste les clés publiques actuellement autorisées.

Liste de paramètres

pkey

Ressource Publickey Subsystem.

Valeurs de retour

Retourne un tableau de clés indexées numériquement, chacune d'elle est un tableau associatif contenant : nom, blob et éléments attrs.

Élément de clé publique
Clé Tableau Signification
name Nom de l'algorithme utilisé par cette clé publique, par exemple : ssh-dss ou ssh-rsa.
blob Blob de clé publique comme données binaires brutes.
attrs Attributs assignés à cette clé publique. L'attribut le plus commun et seulement celui supporté par la clé publique version 1 des serveurs est comment, qui peut être n'importe quelle forme de chaîne de caractères.

Exemples

Exemple #1 Liste des clés autorisées avec ssh2_publickey_list()

<?php
$ssh2 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($ssh2'jdoe''secret');
$pkey ssh2_publickey_init($ssh2);

$list ssh2_publickey_list($pkey);

foreach(
$list as $key) {
  echo 
"Clé : {$key['name']}\n";
  echo 
"Blob : " chunk_split(base64_encode($key['blob']), 40"\n") . "\n";
  echo 
"Commentaire : {$key['attrs']['comment']}\n\n";
}
?>

L'exemple ci-dessus va afficher :

Clé : ssh-rsa
Blob : AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Commentaire : Clé de John

Clé : ssh-rsa
Blob : AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Commentaire : Clé d'Alice

Notes

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Voir aussi



ssh2_publickey_remove

(PECL ssh2 >= 0.10)

ssh2_publickey_removeSupprime un clé publique autorisée

Description

bool ssh2_publickey_remove ( resource $pkey , string $algoname , string $blob )

Supprime un clé publique autorisée.

Liste de paramètres

pkey

Ressource Publickey Subsystem

algoname

Algorithme de clé publique (exemple) : ssh-dss, ssh-rsa

blob

Blob de clé publique comme données binaires brutes

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Voir aussi



ssh2_scp_recv

(PECL ssh2 >= 0.9.0)

ssh2_scp_recvDemande un fichier via SCP

Description

bool ssh2_scp_recv ( resource $session , string $remote_file , string $local_file )

Copie un fichier depuis un serveur distant vers le système de fichiers local.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

remote_file

Chemin vers le fichier distant.

local_file

Chemin vers le fichier local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Téléchargement d'un fichier via SCP

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

ssh2_scp_recv($connection'/remote/filename''/local/filename');
?>

Voir aussi



ssh2_scp_send

(PECL ssh2 >= 0.9.0)

ssh2_scp_sendEnvoie un fichier via SCP

Description

bool ssh2_scp_send ( resource $session , string $local_file , string $remote_file [, int $create_mode = 0644 ] )

Copie un fichier depuis le système de fichiers local vers un serveur distant.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

local_file

Chemin vers le fichier local.

remote_file

Chemin vers le fichier distant.

create_mode

Le fichier sera créé avec le mode spécifié par create_mode.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Chargement d'un fichier via SCP

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

ssh2_scp_send($connection'/local/filename''/remote/filename'0644);
?>

Voir aussi



ssh2_sftp_lstat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_lstatStatue un lien symbolique

Description

array ssh2_sftp_lstat ( resource $sftp , string $path )

Statue un lien symbolique sur le système de fichiers distant sans suivre le lien.

Cette fonction est similaire à l'utilisation de la fonction lstat() avec le gestionnaire ssh2.sftp:// en PHP 5 et retourne les mêmes valeurs.

Liste de paramètres

sftp

path

Chemin vers le lien symbolique distant.

Valeurs de retour

Voir la documentation de la fonction stat() pour les détails concernant les valeurs retournées.

Exemples

Exemple #1 Statue un lien symbolique via SFTP

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

$sftp ssh2_sftp($connection);
$statinfo ssh2_sftp_lstat($sftp'/path/to/symlink');

$filesize $statinfo['size'];
$group $statinfo['gid'];
$owner $statinfo['uid'];
$atime $statinfo['atime'];
$mtime $statinfo['mtime'];
$mode $statinfo['mode'];
?>

Voir aussi

  • ssh2_sftp_stat() - Statue un fichier sur un système de fichiers distant
  • lstat() - Retourne les informations sur un fichier ou un lien symbolique
  • stat() - Renvoie les informations à propos d'un fichier



ssh2_sftp_mkdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_mkdirCrée un dossier

Description

bool ssh2_sftp_mkdir ( resource $sftp , string $dirname [, int $mode = 0777 [, bool $recursive = false ]] )

Crée un dossier sur le système de fichiers distant.

Cette fonction est similaire à la fonction mkdir() avec le gestionnaire ssh2.sftp://.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte avec la fonction ssh2_sftp().

dirname

Chemin du nouveau dossier.

mode

Permissions du nouveau dossier.

recursive

Si recursive vaut TRUE, tous les dossiers requis pour dirname seront également automatiquement créés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un dossier sur un serveur distant

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');
$sftp ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp'/home/username/newdir');
/* Ou :  mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

Voir aussi




ssh2_sftp_realpath

(PECL ssh2 >= 0.9.0)

ssh2_sftp_realpathRésout le chemin réel d'un chemin fourni

Description

string ssh2_sftp_realpath ( resource $sftp , string $filename )

Traduit un nom de fichier filename en son chemin réellement effectif sur le système de fichiers distant.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

filename

Valeurs de retour

Retourne le chemin réel, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Résoudre un nom de chemin

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');
$sftp ssh2_sftp($connection);

$realpath ssh2_sftp_realpath($sftp'/home/username/../../../..//./usr/../etc/passwd');
/* $realpath est maintenant : '/etc/passwd' */
?>

Voir aussi



ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_renameRenomme un fichier distant

Description

bool ssh2_sftp_rename ( resource $sftp , string $from , string $to )

Renomme un fichier distant.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

from

Le fichier courant à renommer.

to

Le nouveau nom du fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Renommer un fichier via sftp

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');
$sftp ssh2_sftp($connection);

ssh2_sftp_rename($sftp'/home/username/oldname''/home/username/newname');
?>

Voir aussi

  • rename() - Renomme un fichier ou un dossier



ssh2_sftp_rmdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rmdirEfface un dossier

Description

bool ssh2_sftp_rmdir ( resource $sftp , string $dirname )

Efface un dossier du système de fichiers distant.

Cette fonction est similaire à l'utilisation de la fonction rmdir() avec le gestionnaire ssh2.sftp://.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

dirname

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Effacement d'un dossier sur un serveur distant

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');
$sftp ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp'/home/username/deltodel');
/* Ou :  rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

Voir aussi



ssh2_sftp_stat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_statStatue un fichier sur un système de fichiers distant

Description

array ssh2_sftp_stat ( resource $sftp , string $path )

Statue un fichier sur un système de fichiers distant, en suivant les liens symboliques.

Cette fonction est similaire à l'utilisation de la fonction stat() avec le gestionnaire ssh2.sftp:// en PHP 5 et retourne les mêmes valeurs.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

path

Valeurs de retour

Voir la documentation de la fonction stat() pour les détails concernant les valeurs retournées.

Exemples

Exemple #1 Statut d'un fichier via SFTP

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

$sftp ssh2_sftp($connection);
$statinfo ssh2_sftp_stat($sftp'/path/to/file');

$filesize $statinfo['size'];
$group $statinfo['gid'];
$owner $statinfo['uid'];
$atime $statinfo['atime'];
$mtime $statinfo['mtime'];
$mode $statinfo['mode'];
?>

Voir aussi

  • ssh2_sftp_lstat() - Statue un lien symbolique
  • lstat() - Retourne les informations sur un fichier ou un lien symbolique
  • stat() - Renvoie les informations à propos d'un fichier





ssh2_sftp

(PECL ssh2 >= 0.9.0)

ssh2_sftpInitialise un sous-système SFTP

Description

resource ssh2_sftp ( resource $session )

Demande un sous-système SFTP depuis un serveur déjà connecté SSH2.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

Valeurs de retour

Cette méthode retourne une ressource SSH2 SFTP pour utilisation avec toutes les méthodes ssh2_sftp_*() ainsi que le gestionnaire ouvert ssh2.sftp://.

Exemples

Exemple #1 Ouverture d'un fichier via SFTP

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

$sftp ssh2_sftp($connection);

$stream fopen("ssh2.sftp://$sftp/path/to/file"'r');
?>

Voir aussi



ssh2_shell

(PECL ssh2 >= 0.9.0)

ssh2_shellDemande un shell interactif

Description

resource ssh2_shell ( resource $session [, string $term_type = "vanilla" [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Ouvre un shell sur le serveur distant et lui alloue un flux.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

term_type

term_type doit correspondre à une des entrées du fichier /etc/termcap du système cible.

env

env doit être passé en tant qu'un tableau associatif de paire nom/valeur à définir dans l'environnement cible.

width

Largeur du terminal virtuel.

height

Hauteur du terminal virtuel.

width_height_type

width_height_type doit être soit SSH2_TERM_UNIT_CHARS, soit SSH2_TERM_UNIT_PIXELS.

Valeurs de retour

Exemples

Exemple #1 Exécution d'une commande

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

$stream ssh2_shell($connection'vt102'null8024SSH2_TERM_UNIT_CHARS);
?>

Voir aussi



ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnelOuvre un tunnel à travers un serveur distant

Description

resource ssh2_tunnel ( resource $session , string $host , int $port )

Ouvre un socket vers un hôte/port arbitraire via un serveur connecté SSH.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

host

port

Valeurs de retour

Exemples

Exemple #1 Ouverture d'un tunnel sur un hôte arbitraire

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_pubkey_file($connection'username''id_dsa.pub''id_dsa');

$tunnel ssh2_tunnel($connection'10.0.0.101'12345);
?>

Voir aussi


Sommaire




Client Stomp


Introduction

Cette extension permet aux applications php de communiquer avec tout les Brokers de message compatibles Stomp à travers un API objet ou procédural simple. » Site officiel de Stomp



Installation/Configuration

Sommaire


Pré-requis

PECL/stomp requiert PHP 5.2.2 ou plus récent.

Paquet » OpenSSL paquet >= 0.9.6. L'extension openssl est aussi requise si vous désirez utiliser stomp à travers SSL.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/stomp



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Stomp Options de configuration
Nom Défaut Modifiable Historique
stomp.default_broker tcp://localhost:61613 PHP_INI_ALL
stomp.default_connection_timeout_sec 2 PHP_INI_ALL
stomp.default_connection_timeout_usec 0 PHP_INI_ALL
stomp.default_read_timeout_sec 2 PHP_INI_ALL
stomp.default_read_timeout_usec 0 PHP_INI_ALL

Voici un éclaircissement sur l'utilisation des directives de configuration.

stomp.default_broker string

URI par défaut du Broker de message utilisé à la connexion si aucun autre URI n'est spécifié.

stomp.default_connection_timeout_sec integer

Le nombre de secondes entières du délai d'expiration de connexion.

stomp.default_connection_timeout_usec integer

Le nombre de microsecondes entières du délai d'expiration de connexion.

stomp.default_read_timeout_sec integer

Le nombre de secondes entières du délai d'expiration de lecture.

stomp.default_read_timeout_usec integer

Le nombre de microsecondes entières du délai d'expiration de lecture.



Types de ressources

Il n'y a qu'une seule ressource utilisée par l'extension stomp : c'est le lien identifiant représentant la connexion stomp.




Exemples

Exemple #1 Style orienté objet

<?php

$queue  
'/queue/foo';
$msg    'bar';

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

/* envoi d'un message à la file 'foo' */
$stomp->send($queue$msg);

/* souscription aux messages de la file 'foo' */
$stomp->subscribe($queue);

/* lecture d'un message */
$frame $stomp->readFrame();

if (
$frame->body === $msg) {
    
var_dump($frame);

    
/* confirmation de la réception du message */
    
$stomp->ack($frame);
}

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Exemple #2 Style procédural

<?php

$queue  
'/queue/foo';
$msg    'bar';

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* vérification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link$queue$msg, array('transaction' => 't1'));

/* validation de la transaction */
stomp_commit($link't1');

/* souscription aux messages de la file 'foo' */
stomp_subscribe($link$queue);

/* lecture d'un message */
$frame stomp_read_frame($link);

if (
$frame['body'] === $msg) {
    
var_dump($frame);

    
/* confirmation de la réception du message */
    
stomp_ack($link$frame['headers']['message-id']);
}

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}



Stomp Fonctions


stomp_connect_error

(PECL stomp >= 0.3.0)

stomp_connect_errorRetourne une chaîne décrivant la dernière erreur de connexion

Description

string stomp_connect_error ( void )

Retourne une chaîne décrivant la dernière erreur de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne décrivant l'erreur, ou NULL si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec stomp_connect_error()

<?php
$link 
stomp_connect('http://localhost:61613');

if(!
$link) {
    die(
'Connection failed: ' stomp_connect_error());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connection failed: Invalid Broker URI scheme



stomp_version

(PECL stomp >= 0.1.0)

stomp_versionRécupère la version de l'extension Stomp

Description

string stomp_version ( void )

Retourne une chaîne contenant la version de l'extension Stomp.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Version de l'extension Stomp.

Exemples

Exemple #1 Exemple avec stomp_version()

<?php

var_dump
(stomp_version());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "0.2.0"


Sommaire



La classe Stomp

Introduction

Représente une connexion entre PHP et un Broker de message compatible Stomp.

Synopsis de la classe

Stomp {
/* Méthodes */
public bool abort ( string $transaction_id [, array $headers ] )
public bool ack ( mixed $msg [, array $headers ] )
public bool begin ( string $transaction_id [, array $headers ] )
public bool commit ( string $transaction_id [, array $headers ] )
__construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )
public bool __destruct ( void )
public string error ( void )
public array getReadTimeout ( void )
public string getSessionId ( void )
public bool hasFrame ( void )
public stompframe readFrame ([ string $class_name = "stompFrame" ] )
public bool send ( string $destination , mixed $msg [, array $headers ] )
public void setReadTimeout ( int $seconds [, int $microseconds ] )
public bool subscribe ( string $destination [, array $headers ] )
public bool unsubscribe ( string $destination [, array $headers ] )
}

Stomp::abort

stomp_abort

(PECL stomp >= 0.1.0)

Stomp::abort -- stomp_abortAnnule une transaction en cours

Description

Style orienté objet (méthode) :

public bool Stomp::abort ( string $transaction_id [, array $headers ] )

Style procédural :

bool stomp_abort ( resource $link , string $transaction_id [, array $headers ] )

Annule une transaction en cours.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

transaction_id

ID de la transaction à annuler.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

/* début de la transaction */
$stomp->begin('t1');

/* envoi d'un message à la file 'foo' */
$stomp->send('/queue/foo''bar', array('transaction' => 't1'));

/* annulation de la transaction */
$stomp->abort('t1');

/* fermeture de la connexion */
unset($stomp);
?>

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('tcp://localhost:61613');

/* vérification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link'/queue/foo''bar', array('transaction' => 't1'));

/* annulation de la transaction */
stomp_abort($link't1');

/* fermeture de la connexion */
stomp_close($link);

?>



Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ackValide la réception d'un message

Description

Style orienté objet (méthode) :

public bool Stomp::ack ( mixed $msg [, array $headers ] )

Style procédural :

bool stomp_ack ( resource $link , mixed $msg [, array $headers ] )

Valide la réception d'un message par une souscription.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

msg

Le message où l'identifiant du message à valider.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Exemple #1 Style orienté objet

<?php

$queue  
'/queue/foo';
$msg    'bar';

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

/* envoi d'un message à la file 'foo' */
$stomp->send($queue$msg);

/* souscription aux messages de la file 'foo' */
$stomp->subscribe($queue);

/* lecture d'un message */
$frame $stomp->readFrame();

if (
$frame->body === $msg) {
    
/* confirmation de la réception du message */
    
$stomp->ack($frame);
}

/* supprime la souscription à la file 'foo' */
$stomp->unsubscribe($queue);

/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

$queue  
'/queue/foo';
$msg    'bar';

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* vérification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link$queue$msg, array('transaction' => 't1'));

/* validation de la transaction */
stomp_commit($link't1');

/* souscription aux messages de la file 'foo' */
stomp_subscribe($link$queue);

/* lecture d'un message */
$frame stomp_read_frame($link);

if (
$frame['body'] === $msg) {
    
/* confirmation de la réception du message */
    
stomp_ack($link$frame['headers']['message-id']);
}

/* supprime la souscription à la file 'foo' */
stomp_unsubscribe($link$queue);

/* fermeture de la connexion */
stomp_close($link);

?>



Stomp::begin

stomp_begin

(PECL stomp >= 0.1.0)

Stomp::begin -- stomp_beginDébute une transaction

Description

Style orienté objet (méthode) :

public bool Stomp::begin ( string $transaction_id [, array $headers ] )

Style procédural :

bool stomp_begin ( resource $link , string $transaction_id [, array $headers ] )

Débute une transaction.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

transaction_id

Identifiant de la transaction.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_commit() ou stomp_abort().



Stomp::commit

stomp_commit

(PECL stomp >= 0.1.0)

Stomp::commit -- stomp_commitValide une transaction en cours

Description

Style orienté objet (méthode) :

public bool Stomp::commit ( string $transaction_id [, array $headers ] )

Style procédural :

bool stomp_commit ( resource $link , string $transaction_id [, array $headers ] )

Valide une transaction en cours.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

transaction_id

Identifiant de la transaction.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

/* début de la transaction */
$stomp->begin('t1');

/* envoi d'un message à la file 'foo' */
$stomp->send('/queue/foo''bar', array('transaction' => 't1'));

/* validation de la transaction */
$stomp->commit('t1');

/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('tcp://localhost:61613');

/* vérification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link'/queue/foo''bar', array('transaction' => 't1'));

/* validation de la transaction */
stomp_commit($link't1');

/* fermeture de la connexion */
stomp_close($link);

?>



Stomp::__construct

stomp_connect

(PECL stomp >= 0.1.0)

Stomp::__construct -- stomp_connectOuvre une connexion

Description

Style orienté objet (constructeur) :

Stomp::__construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )

Style procédural :

resource stomp_connect ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )

Ouvre une connexion à un Broker de message compatible Stomp.

Liste de paramètres

broker

URI du Broker.

username

Nom d'utilisateur.

password

Mot de passe.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Historique

Version Description
1.0.1 Le paramètre headers à été ajouté

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

/* fermeture de la connexion */
stomp_close($link);

?>



Stomp::__destruct

stomp_close

(PECL stomp >= 0.1.0)

Stomp::__destruct -- stomp_closeFerme une connection

Description

Style orienté objet (destructeur) :

public bool Stomp::__destruct ( void )

Style procédural :

bool stomp_close ( resource $link )

Ferme une connexion préalablement ouverte.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir stomp_connect().



Stomp::error

stomp_error

(PECL stomp >= 0.1.0)

Stomp::error -- stomp_errorRécupère la dernière erreur stomp

Description

Style orienté objet (méthode) :

public string Stomp::error ( void )

Style procédural :

string stomp_error ( resource $link )

Récupère la dernière erreur stomp.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne une chaîne décrivant la dernière erreur ou FALSE si aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

var_dump($stomp->error());

if (!
$stomp->abort('unknown-transaction', array('receipt' => 'foo'))) {
    
var_dump($stomp->error());
}

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
string(43) "Invalid transaction id: unknown-transaction"

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

var_dump(stomp_error($link));

if (!
stomp_abort($link'unknown-transaction', array('receipt' => 'foo'))) {
    
var_dump(stomp_error($link));
}

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
string(43) "Invalid transaction id: unknown-transaction"



Stomp::getReadTimeout

stomp_get_read_timeout

(PECL stomp >= 0.3.0)

Stomp::getReadTimeout -- stomp_get_read_timeoutRécupère le délai d'expiration de lecture

Description

Style orienté objet (méthode) :

public array Stomp::getReadTimeout ( void )

Style procédural :

array stomp_get_read_timeout ( resource $link )

Récupère le délai d'expiration de lecture.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne un tableau associatif avec 2 éléments : sec et usec.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

var_dump($stomp->getReadTimeout());

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

var_dump(stomp_get_read_timeout($link));

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}



Stomp::getSessionId

stomp_get_session_id

(PECL stomp >= 0.1.0)

Stomp::getSessionId -- stomp_get_session_idRetourne l'identifiant de la session courante

Description

Style orienté objet (méthode) :

public string Stomp::getSessionId ( void )

Style procédural :

string stomp_get_session_id ( resource $link )

Retourne l'identifiant de la session courante.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne une chaîne contenant l'identifiant de la session ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

var_dump($stomp->getSessionId());

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(35) "ID:php.net-52873-1257291895530-4:14"

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

var_dump(stomp_get_session_id($link));

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(35) "ID:php.net-52873-1257291895530-4:14"



Stomp::hasFrame

stomp_has_frame

(PECL stomp >= 0.1.0)

Stomp::hasFrame -- stomp_has_frameIndique si un message est en attente de lecture ou non

Description

Style orienté objet (méthode) :

public bool Stomp::hasFrame ( void )

Style procédural :

bool stomp_has_frame ( resource $link )

Indique si un message est en attente de lecture ou non.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne TRUE si un message est en attente de lecture, ou FALSE dans le cas contraire.



Stomp::readFrame

stomp_read_frame

(PECL stomp >= 0.1.0)

Stomp::readFrame -- stomp_read_frameLit le prochain message

Description

Style orienté objet (méthode) :

public stompframe Stomp::readFrame ([ string $class_name = "stompFrame" ] )

Style procédural :

array stomp_read_frame ( resource $link )

Lit le prochain message. Il est possible d'instancier un objet d'une classe spécifique, et de passer les paramètres au constructeur de cette classe.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

class_name

Le nom de la classe à instancier. Si ce paramètre n'est pas spécifié, un objet stompFrame est retourné.

Valeurs de retour

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Historique

Version Description
Stomp 0.4.0 Le paramètre class_name a été ajouté.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

/* souscription aux messages de la file 'foo' */
$stomp->subscribe('/queue/foo');

/* lecture d'un message */
var_dump($stomp->readFrame());

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

/* souscription aux messages de la file 'foo' */
stomp_subscribe($link'/queue/foo');

/* lecture d'un message */
$frame stomp_read_frame($link);

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}



Stomp::send

stomp_send

(PECL stomp >= 0.1.0)

Stomp::send -- stomp_sendEnvoi un message

Description

Style orienté objet (méthode) :

public bool Stomp::send ( string $destination , mixed $msg [, array $headers ] )

Style procédural :

bool stomp_send ( resource $link , string $destination , mixed $msg [, array $headers ] )

Envoi un message au Broker de message.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

destination

Destination du message.

msg

Message à envoyer.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_ack().



Stomp::setReadTimeout

stomp_set_read_timeout

(PECL stomp >= 0.3.0)

Stomp::setReadTimeout -- stomp_set_read_timeoutDéfinit le délai d'expiration de lecture

Description

Style orienté objet (méthode) :

public void Stomp::setReadTimeout ( int $seconds [, int $microseconds ] )

Style procédural :

void stomp_set_read_timeout ( resource $link , integer $seconds [, integer $microseconds ] )

Définit le délai d'expiration de lecture pour une connexion stomp.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

seconds

Le nombre de secondes entières du délai d'expiration de lecture à définir.

microseconds

Le nombre de microsecondes entières du délai d'expiration de lecture à définir.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    
$stomp = new Stomp('tcp://localhost:61613');
} catch(
StompException $e) {
    die(
'Connection failed: ' $e->getMessage());
}

$stomp->setReadTimeout(10);
    
/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

/* connexion */
$link stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die(
'Connection failed: ' stomp_connect_error());
}

stomp_set_read_timeout($link10);
    
/* fermeture de la connexion */
stomp_close($link);

?>



Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribeSouscrit à l'écoute d'une destination donnée

Description

Style orienté objet (méthode) :

public bool Stomp::subscribe ( string $destination [, array $headers ] )

Style procédural :

bool stomp_subscribe ( resource $link , string $destination [, array $headers ] )

Souscrit à l'écoute d'une destination donnée.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

destination

Destination à écouter.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_ack().



Stomp::unsubscribe

stomp_unsubscribe

(PECL stomp >= 0.1.0)

Stomp::unsubscribe -- stomp_unsubscribeSupprime une souscription existante

Description

Style orienté objet (méthode):

public bool Stomp::unsubscribe ( string $destination [, array $headers ] )

Style procédural :

bool stomp_unsubscribe ( resource $link , string $destination [, array $headers ] )

Supprime une souscription existante.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

destination

Souscription à supprimer.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_ack().


Sommaire



La classe StompFrame

Introduction

Représente un message envoyé ou reçu par un Broker de message compatible stomp.

Synopsis de la classe

StompFrame {
/* Propriétés */
public $command ;
public $headers ;
public $body ;
/* Méthodes */
__construct ([ string $command [, array $headers [, string $body ]]] )
}

Propriétés

command

Commande du message.

headers

En-têtes du message (tableau).

body

Corps du message.


StompFrame::__construct

(PECL stomp >= 0.1.0)

StompFrame::__constructConstructeur

Description

StompFrame::__construct ([ string $command [, array $headers [, string $body ]]] )

Constructeur.

Liste de paramètres

command

Commande du message.

headers

En-têtes du message (tableau).

body

Corps du message.


Sommaire



La classe StompException

Introduction

Représente une erreur émise par l'extension stomp. Voir le chapitre sur les Exceptions pour plus d'informations sur les exceptions en PHP.

Synopsis de la classe

StompException étend Exception {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
/* Méthodes */
public string getDetails ( void )
}

StompException::getDetails

(No version information available, might only be in SVN)

StompException::getDetailsRécupère les détails de l'exception

Description

public string StompException::getDetails ( void )

Récupère les détails de l'exception.

Valeurs de retour

chaîne de caractères contenant les détails de l'exception.


Sommaire




Subversion


Introduction

Cette extension implémente les fonctions PHP pour » Subversion (SVN), un système de contrôle de versions, permettant aux scripts PHP de communiquer avec les référentiels SVN et les copies de travail, sans utiliser directement des appels aux exécutables svn.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Les binaires Subversion ne sont pas nécessaires pour utiliser cette extension. Cependant, lors de la compilation de l'extension, libsvn (les en-têtes Subversion) doit être disponible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/svn

Si ./configure n'arrive pas à trouver les fichiers SVN (par exemple, Subversion a été installé avec un préfixe de dossier personnalisé), utilisez la commande ./configure --with-svn=$USR_PATH pour spécifier le dossier où include/subversion-1/ se trouve.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Avertissement

Si cette extension est compilée avec la bibliothèque libsvn 1.3, les fonctions qui fonctionnent avec les copies de travail échoueront sur les copies de travail créées par Subversion 1.4.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SVN_REVISION_HEAD (entier)
Nombre magique (-1) spécifiant la révision HEAD
Constantes utilisables avec svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (chaîne de caractères)
Propriété pour le nom d'utilisateur par défaut, à utiliser lors de l'identification de base
SVN_AUTH_PARAM_DEFAULT_PASSWORD (chaîne de caractères)
Propriété pour le mot de passe par défaut, à utiliser lors de l'identification de base
SVN_AUTH_PARAM_NON_INTERACTIVE (chaîne de caractères)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (chaîne de caractères)
SVN_AUTH_PARAM_NO_AUTH_CACHE (chaîne de caractères)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (chaîne de caractères)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (chaîne de caractères)
SVN_AUTH_PARAM_CONFIG (chaîne de caractères)
SVN_AUTH_PARAM_SERVER_GROUP (chaîne de caractères)
SVN_AUTH_PARAM_CONFIG_DIR (chaîne de caractères)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (chaîne de caractères)
Propriété personnalisée pour ignorer les erreurs de vérification du certificat SSL
Constantes de système de fichiers
SVN_FS_CONFIG_FS_TYPE (chaîne de caractères)
Clé de configuration qui détermine le type de système de fichiers
SVN_FS_TYPE_BDB (chaîne de caractères)
Le système de fichiers est Berkeley-DB
SVN_FS_TYPE_FSFS (chaîne de caractères)
Le système de fichiers est "système de fichiers natifs"
Constantes de propriétés réservées
SVN_PROP_REVISION_DATE (chaîne de caractères)
svn:date
SVN_PROP_REVISION_ORIG_DATE (chaîne de caractères)
svn:original-date
SVN_PROP_REVISION_AUTHOR (chaîne de caractères)
svn:author
SVN_PROP_REVISION_LOG (chaîne de caractères)
svn:log
Constantes de statut des copies de travail
SVN_WC_STATUS_NONE (int)
Le statut n'existe pas
SVN_WC_STATUS_UNVERSIONED (int)
L'élément n'est pas versionné dans la copie de travail
SVN_WC_STATUS_NORMAL (int)
L'élément existe, rien d'autre n'intervient
SVN_WC_STATUS_ADDED (int)
L'élément est programmé pour être ajouté
SVN_WC_STATUS_MISSING (int)
L'élément est versionné mais est absent de la copie de travail
SVN_WC_STATUS_DELETED (int)
L'élément est marqué pour effacement
SVN_WC_STATUS_REPLACED (int)
L'élément a été supprimé, puis, ajouté à nouveau
SVN_WC_STATUS_MODIFIED (int)
L'élément (texte ou propriété) a été modifié
SVN_WC_STATUS_MERGED (int)
Les modifications de l'élément local ont été fusionnées avec les modifications du référentiel
SVN_WC_STATUS_CONFLICTED (int)
Les modifications de l'élément local entrent en conflit avec les modifications du référentiel
SVN_WC_STATUS_IGNORED (int)
L'élément n'est pas versionné mais est configuré pour être ignoré
SVN_WC_STATUS_OBSTRUCTED (int)
L'élément non versionné s'apprête à être une ressource versionnée
SVN_WC_STATUS_EXTERNAL (int)
Le chemin non versionné a été rempli en utilisant svn:externals
SVN_WC_STATUS_INCOMPLETE (int)
Le dossier ne contient pas une liste complète d'entrées
Constantes de type de noeud
SVN_NODE_NONE (int)
Absent
SVN_NODE_FILE (int)
Fichier
SVN_NODE_DIR (int)
Dossier
SVN_NODE_UNKNOWN (int)
Quelque chose que Subversion n'arrive pas à identifier


Fonctions SVN


svn_add

(PECL svn >= 0.1.0)

svn_addPrévoit l'ajout d'un élément dans le dossier de travail

Description

bool svn_add ( string $path [, bool $recursive = true [, bool $force = false ]] )

Ajoute un fichier, un dossier ou un lien symbolique, en utilisant le chemin path dans le dossier de travail. L'élément sera ajouté au référentiel au prochain appel de la fonction svn_commit() sur la copie de travail.

Liste de paramètres

path

Chemin de l'élément à ajouter.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

recursive

Si l'élément est un dossier, si l'on doit ou non ajouter récursivement tout son contenu. Par défaut, vaut TRUE

force

Si vaut TRUE, Subversion cherchera récursivement dans les dossiers versionnés existants afin d'ajouter tous les fichiers qui ne sont actuellement pas versionnés. Par défaut, vaut FALSE

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple avec svn_add()

Dans un dossier de travail où la commande svn status retourne :

$ svn status
?      foobar.txt

...ce code:

<?php
svn_add
('foobar.txt');
?>

...marquera le fichier foobar.txt comme fichier à ajouter dans le dossier.



svn_auth_get_parameter

(PECL svn >= 0.1.0)

svn_auth_get_parameterRécupère un paramètre d'identification

Description

string svn_auth_get_parameter ( string $key )

Récupère le paramètre d'identification dont la clé est key. Pour une list de clés valides ainsi que leurs significations, consultez la liste des constantes d'identification.

Liste de paramètres

key

Nom de la clé. Utilisez une constante d'identification définie par cette extension pour spécifier une clé..

Valeurs de retour

Retourne la valeur du paramètre dont la clé est key ; retourne NULL si le paramètre n'existe pas.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi



svn_auth_set_parameter

(PECL svn >= 0.1.0)

svn_auth_set_parameterSpécifie un paramètre d'identification

Description

void svn_auth_set_parameter ( string $key , string $value )

Spécifie le paramètre d'identification key à la valeur value. Pour une liste de clés valides ainsi que leurs significations, reportez-vous à la liste des constantes d'identification.

Liste de paramètres

key

Nom de la clé. Utilisez une constante d'identification définie par cette extension pour spécifier la clé.

value

Valeur à définir pour la nouvelle clé. Le format de la valeur varie avec le paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'identification

Cet exemple configure SVN avec, comme nom d'utilisateur "Bob" et comme mot de passe "abc123" :

<?php
svn_auth_set_parameter
(SVN_AUTH_PARAM_DEFAULT_USERNAME'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD'abc123');
?>

Voir aussi



svn_blame

(PECL svn >= 0.3.0)

svn_blameRécupère les condamnations SVN pour un fichier

Description

array svn_blame ( string $repository_url [, int $revision_no = SVN_REVISION_HEAD ] )

Récupère les condamnations SVN pour un fichier à partir d'une URL du référentiel.

Liste de paramètres

repository_url

L'URL du référentiel.

revision_no

Le numéro de révision.

Valeurs de retour

Un tableau des informations de condamnation SVN séparées par ligne qui incluent le numéro de révision, le numéro de ligne, la ligne de code, l'auteur et la date.

Exemples

Exemple #1 Exemple d'utilisation de svn_blame()

<?php
$svnurl 
'http://svn.example.org/svnroot/foo/trunk/index.php';

print_rsvn_blame($svnurl) );

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] = Array
          (
           [rev] = 1
           [line_no] = 1
           [line] = Hello World
           [author] = joesmith
           [date] = 2007-07-02T05:51:26.628396Z
          )
    [1] = Array
          ...

Voir aussi

  • svn_diff() - Compare deux chemins, récursivement
  • svn_logs()
  • svn_status() - Récupère le statut des fichiers et des dossiers de la copie de travail



svn_cat

(PECL svn >= 0.1.0)

svn_catRécupère le contenu d'un fichier du référentiel

Description

string svn_cat ( string $repos_url [, int $revision_no ] )

Récupère le contenu du fichier pointé par l'URL repos_url du référentiel, optionnellement, à la révision revision_no.

Liste de paramètres

repos_url

URL de l'élément du référentiel.

revision_no

Numéro de révision de l'élément à récupérer ; par défaut, vaut HEAD.

Valeurs de retour

Retourne le contenu de l'élément depuis le référentiel en cas de succès, et FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple récupère le contenu d'un fichier, à la révision 28 :

<?php
$contents 
svn_cat('http://www.example.com/svnroot/calc/gui.c'28)
?>



svn_checkout

(PECL svn >= 0.1.0)

svn_checkoutExtrait une copie de travail depuis un référentiel

Description

bool svn_checkout ( string $repos , string $targetpath [, int $revision [, int $flags = 0 ]] )

Extrait une copie de travail depuis le référentiel repos vers targetpath à la révision revision.

Liste de paramètres

repos

URL du dossier dans le référentiel à extraire.

targetpath

Chemin local du dossier dans lequel on effectue l'extraction

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

revision

Numéro de révision du référentiel à extraire. Par défaut, vaut HEAD, la révision la plus récente.

flags

Toute combinaison de SVN_NON_RECURSIVE et SVN_IGNORE_EXTERNALS.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre comment extraire un dossier depuis un référentiel vers un dossier nommé "calc" :

<?php
svn_checkout
('http://www.example.com/svnroot/calc/trunk'dirname(__FILE__) . '/calc');
?>

L'utilisation de dirname(__FILE__) est nécessaire afin de convertir le chemin relatif du dossier calc en un chemin absolu. Si calc existe, vous pouvez également utiliser realpath() pour récupérer un chemin absolu.

Voir aussi



svn_cleanup

(PECL svn >= 0.1.0)

svn_cleanupNettoie, récursivement, un dossier de travail, en finissant les opérations incomplètes et en supprimant les verrous

Description

bool svn_cleanup ( string $workingdir )

Nettoie, récursivement, un dossier de travail workingdir, en finissant les opérations incomplètes et en supprimant les verrous. À utiliser lorsque la copie de travail n'est plus fonctionnelle.

Liste de paramètres

workingdir

Chemin vers le dossier local de travail, à nettoyer.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre comment nettoyer une copie de travail d'un dossier nommé "help-me" :

<?php
svn_cleanup
(realpath('help-me'));
?>

La fonction realpath() doit être appelée, vu la mauvaise gestion des chemins relatifs par SVN.



svn_client_version

(PECL svn >= 0.1.0)

svn_client_versionRécupère la version des bibliothèques clientes SVN

Description

string svn_client_version ( void )

Récupère la version des bibliothèques clientes SVN.

Valeurs de retour

Numéro de la version, habituellement sous la forme x.y.z.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

<?php
echo svn_client_version();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1.3.1



svn_commit

(PECL svn >= 0.1.0)

svn_commitEnvoie les modifications depuis la copie locale vers le référentiel

Description

array svn_commit ( string $log , array $targets [, bool $dontrecurse ] )

Livre les modifications effectuées sur les fichiers locaux énumérés par le tableau targets dans le référentiel, avec le message log. Les dossiers contenus dans le tableau targets seront livrés récursivement tant que le paramètre dontrecurse n'a pas été défini à TRUE.

Note: Cette fonction ne contient aucun paramètre spécifique à l'identification, aussi, le nom d'utilisateur et le mot de passe doivent être définis en utilisant la fonction svn_auth_set_parameter()

Liste de paramètres

log

Message d'historisation à utiliser lors de la livraison.

targets

Tableau de chemins locaux des fichiers à livrer.

Avertissement

Ce paramètre doit être un tableau ; une chaîne pour une cible unique n'est pas acceptée.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

dontrecurse

Drapeau de type booléen pour désactiver la récursivité lors de la livraison de dossiers dans le tableau targets. Par défaut, vaut FALSE.

Valeurs de retour

Retourne un tableau, sous la forme :

array(
    0 => numéro (entier) de révision de la livraison
    1 => Date et heure (format ISO 8601) de la livraison
    2 => nom d'utilisateur de la personne ayant livré
)

Retourne FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple livre le dossier "calculator" dans le référentiel, en utilisant comme nom d'utilisateur "Bob" et comme mot de passe "abc123" :

<?php
svn_auth_set_parameter
(SVN_AUTH_PARAM_DEFAULT_USERNAME'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD'abc123');
var_dump(svn_commit('Message d\'historisation de Bob', array(realpath('calculator'))));
?>

L'exemple ci-dessus va afficher :

array(
  0 => 1415,
  1 => '2007-05-26T01:44:28.453125Z',
  2 => 'Bob'
)

Voir aussi



svn_delete

(PECL svn >= 0.4.0)

svn_deleteEfface un élément d'un dossier de travail ou d'un dépôt

Description

bool svn_delete ( string $path [, bool $force = false ] )

Efface un fichier, un dossier ou un lien symbolique, suivant le path utilisé, depuis un dossier de travail. L'élément sera effacé depuis le dépôt au prochain appel à la fonction svn_commit() sur le dossier de travail.

Liste de paramètres

path

Chemin vers l'élément à effacer.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

force

Si vaut TRUE, le fichier sera effacé même s'il a des modifications locales. Sinon, les modifications locales feront échouées la fonction. Par défaut, vaut FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_diff

(PECL svn >= 0.1.0)

svn_diffCompare deux chemins, récursivement

Description

array svn_diff ( string $path1 , int $rev1 , string $path2 , int $rev2 )

Compare deux chemins, path1 et path2, récursivement.

Note:

Ce n'est pas un véritable utilitaire de comparaison. Seuls les fichiers locaux qui sont versionnés peuvent être comparés : les autres fichiers échoueront.

Liste de paramètres

path1

Premier chemin. Peut être une URL vers un fichier/dossier d'un référentiel SVN ou un chemin vers un fichier/dossier local.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

Avertissement

Si un chemin vers un fichier local n'a que des antislashs et aucun slashs, cette extension échouera. Remplacez toujours tous les antislashs avec des slashs lorsque vous utilisez cette fonction.

rev1

Numéro de révision du premier chemin. Utilisez la constante SVN_REVISON_HEAD pour spécifier la révision la plus récente.

path2

Deuxième chemin à comparer. Voir le paramètre path1 pour la description.

rev2

Numéro de révision du second chemin. Voir le paramètre rev2 pour la description.

Valeurs de retour

Retourne un tableau contenant 2 flux : le premier représente la sortie de la comparaison, et le second contient les erreurs. Les flux peuvent être lus en utilisant la fonction fread(). Retourne FALSE ou NULL si une erreur survient.

La sortie du comparateur peut, par défaut, être au format de comparaison unifié Subversion, mais un » moteur externe de comparaison peut être utilisé, suivant la configuration SVN.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction et récupère le contenu depuis les flux :

<?php
list($diff$errors) = svn_diff(
    
'http://www.example.com/svnroot/trunk/foo'SVN_REVISION_HEAD,
    
'http://www.example.com/svnroot/branches/dev/foo'SVN_REVISION_HEAD
);
if (!
$diff) exit;
$contents '';
while (!
feof($diff)) {
  
$contents .= fread($diff8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>

L'exemple ci-dessus va afficher :

Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo        (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
 // further diff output

Exemple #2 Comparaison de deux révisions d'un chemin du référentiel

Cet exemple implémente un gestionnaire permettant à un utilisateur de comparer facilement deux révisions d'un élément en utilisant un chemin de référentiel externe (la syntaxe par défaut est verbeuse) :

<?php
function svn_diff_same_item($path$rev1$rev2) {
    return 
svn_diff($path$rev1$path$rev2);
}
?>

Exemple #3 Comparaison, plus portable, de deux fichiers locaux

Cet exemple implémente un gestionnaire permettant de comparer deux fichiers locaux, de façon plus portable en gérant le problème de realpath() et le bogue sur les antislashs :

<?php
function svn_diff_local($path1$rev1$path2$rev2) {
    
$path1 str_replace('\\''/'realpath($path1));
    
$path2 str_replace('\\''/'realpath($path2));
    return 
svn_diff($path1$rev1$path2$rev2);
}
?>



svn_export

(PECL svn >= 0.3.0)

svn_exportExporte le contenu d'un dossier SVN

Description

bool svn_export ( string $frompath , string $topath [, bool $working_copy = true [, int $revision_no = -1 ]] )

Exporte le contenu soit d'une copie de travail, soit d'un référentiel dans un dossier "propre".

Liste de paramètres

frompath

Le chemin du dossier à exporter.

topath

Le chemin du nouveau dossier.

working_copy

Si TRUE, ceci exportera aussi les fichiers non-livrés de la copie de travail.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'utilisation de svn_export()

<?php
$working_dir     
'../';
$new_working_dir '/home/user/devel/foo/trunk';

svn_export($working_dir$new_working_dir);
?>

Voir aussi

  • svn_import() - Importe un chemin non-versionné dans un référentiel



svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txnStoppe une transaction

Description

bool svn_fs_abort_txn ( resource $txn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Stoppe une transaction, retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_apply_text

(PECL svn >= 0.2.0)

svn_fs_apply_textCrée et retourne un flux à utiliser pour modifier un fichier

Description

resource svn_fs_apply_text ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée et retourne un flux à utiliser pour modifier un fichier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_begin_txn2

(PECL svn >= 0.2.0)

svn_fs_begin_txn2Crée une nouvelle transaction

Description

resource svn_fs_begin_txn2 ( resource $repos , int $rev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une nouvelle transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_change_node_prop

(PECL svn >= 0.2.0)

svn_fs_change_node_propRetourne TRUE si tout est Ok, FALSE sinon

Description

bool svn_fs_change_node_prop ( resource $root , string $path , string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_check_path

(PECL svn >= 0.1.0)

svn_fs_check_pathDétermine quel type d'élément est pointé par un chemin donné

Description

int svn_fs_check_path ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Détermine quel type d'élément est pointé par un chemin donné.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_contents_changed

(PECL svn >= 0.2.0)

svn_fs_contents_changedRetourne TRUE si le contenu est différent, FALSE sinon

Description

bool svn_fs_contents_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si le contenu est différent, FALSE sinon

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copyCopie un fichier ou un dossier

Description

bool svn_fs_copy ( resource $from_root , string $from_path , resource $to_root , string $to_path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Copie un fichier ou un dossier ; retourne TRUE en cas de succès, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_deleteSupprime un fichier ou un dossier

Description

bool svn_fs_delete ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime un fichier ou un dossier ; retourne TRUE en cas de succès, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_dir_entries

(PECL svn >= 0.1.0)

svn_fs_dir_entriesÉnumère les éléments d'un dossier

Description

array svn_fs_dir_entries ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Énumère les éléments d'un dossier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_file_contents

(PECL svn >= 0.1.0)

svn_fs_file_contentsRetourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée

Description

resource svn_fs_file_contents ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_file_length

(PECL svn >= 0.1.0)

svn_fs_file_lengthRetourne le taille d'un fichier pour une révision donnée

Description

int svn_fs_file_length ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le taille d'un fichier pour une révision donnée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dirRetourne TRUE si le chemin pointe vers un dossier, FALSE sinon

Description

bool svn_fs_is_dir ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_fileRetourne TRUE si le chemin pointe vers un fichier, FALSE sinon

Description

bool svn_fs_is_file ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dirCrée un nouveau dossier

Description

bool svn_fs_make_dir ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un nouveau dossier, retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_fileCrée un fichier vide

Description

bool svn_fs_make_file ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un fichier vide, retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_node_created_rev

(PECL svn >= 0.1.0)

svn_fs_node_created_revRetourne la révision dans laquelle le chemin, sous fsroot, a été créé

Description

int svn_fs_node_created_rev ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la révision dans laquelle le chemin, sous fsroot, a été créé.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_node_prop

(PECL svn >= 0.1.0)

svn_fs_node_propRetourne la valeur d'une propriété d'un noeud

Description

string svn_fs_node_prop ( resource $fsroot , string $path , string $propname )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la valeur d'une propriété d'un noeud.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_props_changed

(PECL svn >= 0.2.0)

svn_fs_props_changedRetourne TRUE si les propriétés sont différentes, FALSE sinon

Description

bool svn_fs_props_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si les propriétés sont différentes, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_revision_prop

(PECL svn >= 0.1.0)

svn_fs_revision_propRécupère la valeur d'une propriété nommée

Description

string svn_fs_revision_prop ( resource $fs , int $revnum , string $propname )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère la valeur d'une propriété nommée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_revision_root

(PECL svn >= 0.1.0)

svn_fs_revision_rootRécupère un gestionnaire sur une révision spécifique sur la racine du référentiel

Description

resource svn_fs_revision_root ( resource $fs , int $revnum )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère un gestionnaire sur une révision spécifique de la racine du référentiel.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_txn_root

(PECL svn >= 0.2.0)

svn_fs_txn_rootCrée et retourne une transaction

Description

resource svn_fs_txn_root ( resource $txn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée et retourne une transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_fs_youngest_rev

(PECL svn >= 0.1.0)

svn_fs_youngest_revRetourne le numéro de la révision la plus récente du système de fichier

Description

int svn_fs_youngest_rev ( resource $fs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le numéro de la révision la plus récente du système de fichier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_import

(PECL svn >= 0.2.0)

svn_importImporte un chemin non-versionné dans un référentiel

Description

bool svn_import ( string $path , string $url , bool $nonrecursive )

Livre un chemin path non-versionné dans le référentiel à l'URL url. Si path est un dossier et nonrecursive vaut FALSE, le dossier sera importé récursivement.

Liste de paramètres

path

Chemin vers le fichier ou le dossier à importer.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

url

URL du référentiel dans lequel on importe.

nonrecursive

Si l'on doit ou non effectuer une importation récursive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple monte un usage classique de cette fonction. Pour importer un dossier nommé "new-files" dans le référentiel à l'URL "http://www.example.com/svnroot/incoming/abc", utilisez :

<?php
svn_import
(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc'false);
?>

Voir aussi



svn_log

(PECL svn >= 0.1.0)

svn_logRécupère le message d'historisation d'une URL du référentiel

Description

array svn_log ( string $repos_url [, int $start_revision [, int $end_revision [, int $limit = 0 [, int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY ]]]] )

svn_log() récupère l'historique complète de l'élément correspondant à l'URL repos_url, ou l'historique d'une révision spécifique si start_revision est spécifié. Cette fonction est équivalent à la commande svn log --verbose -r $start_revision $repos_url.

Avertissement

Pour les référentiels dont l'historique est important, la sortie peut être énorme (un tableau dont chaque élément représente une révision). Cette fonction ne supporte pas le drapeau --limit NUM, ni un intervalle de révisions (start_revision doit être un entier).

Liste de paramètres

repos_url

URL dans le référentiel de l'élément dont on doit récupérer l'historique.

start_revision

Numéro de révision de la première historisation à récupérer. Utilisez la constante SVN_REVISON_HEAD pour récupérer l'historisation de la révision la plus récente.

end_revision

Numéro de révision de la dernière historisation à récupérer. Par défaut vaut start_revision s'elle est spécifié sinon vaut la constante SVN_REVISION_INITIAL.

limit

Nombre d'historisations à récupérer.

flags

Toutes combinaisons de SVN_OMIT_MESSAGES, SVN_DISCOVER_CHANGED_PATHS et SVN_STOP_ON_COPY.

Valeurs de retour

En cas de succès, cette fonction retourne un tableau de fichiers au format :

[0] => Tableau, ordonné du numéro de révision le plus grand, au plus petit
(
    [rev] => numéro de révision
    [author] => nom de l'auteur
    [msg] => message d'historisation
    [date] => date, au format ISO 8601, i.e. date('c')
    [paths] => Tableau, décrivant les fichiers modifiés
        (
            [0] => Array
                (
                    [action] => lettre, spécifiant la modification
                    [path] =>  chemin absolu du référentiel vers le fichier modifié
                )
            [1] => ...
        )
)
[1] => ...

Note:

La sortie sera toujours un tableau indexé numériquement de tableaux, même s'il n'y en a aucun, ou seulement un seul message d'historisation.

La valeur de action est une sous-partie de » la sortie de statut dans la première colonne, où les valeurs possibles sont :

Actions
Lettre Description
M L'élément a été modifié
A L'élément a été ajouté
D L'élément a été effacé
R L'élément a été remplacé

Si aucune modification n'a été effectué à l'élément, un tableau vide sera retourné.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple avec svn_log()

<?php
print_r
svn_log('http://www.example.com/'23) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'Add cheese and salami to our sandwich.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)



svn_ls

(PECL svn >= 0.1.0)

svn_lsRetourne la liste du contenu d'un dossier d'un référentiel, optionnellement à la révision fournie

Description

array svn_ls ( string $repos_url [, int $revision_no = SVN_REVISION_HEAD [, bool $recurse = false [, bool $peg = false ]]] )

Cette fonction interroge l'URL du référentiel et retourne une liste des fichiers et dossiers, optionnellement depuis une révision spécifique. C'est l'équivalent de la commande svn list $repos_url[@$revision_no]

Note:

Cette fonction ne fonctionne pas avec les copies de travail. repos_url DOIT être une URL de référentiel.

Liste de paramètres

url

URL du référentiel, e.g. http://www.example.com/svnroot. Pour accéder à un référentiel local Subversion via le système de fichiers, utilisez l'URI suivant : file:///home/user/svn-repos

revision

Numéro de révision à utiliser. S'il est omis, HEAD sera utilisé.

recurse

Active la récursivité.

Valeurs de retour

En cas de succès, cette fonction retourne un tableau de fichiers, listés sous la forme :

[0] => Array
    (
        [created_rev] => numéro de révision de la dernière édition
        [last_author] => nom de l'auteur de la dernière édition
        [size] => taille du fichier
        [time] => date et heure de la dernière édition, au format 'M d H:i'
                  ou 'M d Y', suivant l'âge du fichier
        [time_t] => timestamp Unix de la dernière édition
        [name] => nom du fichier ou du dossier
        [type] => type, peut être 'file' ou 'dir'
    )
[1] => ...

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple avec svn_ls()

<?php
print_r
svn_ls('http://www.example.com/svnroot/') );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)



svn_mkdir

(PECL svn >= 0.4.0)

svn_mkdirCrée un dossier dans la copie de travail ou dans le référentiel

Description

bool svn_mkdir ( string $path [, string $log_message ] )

Crée un dossier dans la copie de travail ou dans le référentiel.

Liste de paramètres

path

Le chemin vers la copie de travail ou le référentiel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • svn_add() - Prévoit l'ajout d'un élément dans le dossier de travail
  • svn_copy()



svn_repos_create

(PECL svn >= 0.1.0)

svn_repos_createCrée un nouveau référentiel Subversion

Description

resource svn_repos_create ( string $path [, array $config [, array $fsconfig ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un nouveau référentiel Subversion dans le chemin fourni.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_repos_fs_begin_txn_for_commit

(PECL svn >= 0.2.0)

svn_repos_fs_begin_txn_for_commitCrée une nouvelle transaction

Description

resource svn_repos_fs_begin_txn_for_commit ( resource $repos , int $rev , string $author , string $log_msg )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une nouvelle transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_repos_fs_commit_txn

(PECL svn >= 0.2.0)

svn_repos_fs_commit_txnLivre une transaction et retourne la nouvelle révision

Description

int svn_repos_fs_commit_txn ( resource $txn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Livre une transaction et retourne la nouvelle révision.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_repos_fs

(PECL svn >= 0.1.0)

svn_repos_fsRécupère un gestionnaire du système de fichiers

Description

resource svn_repos_fs ( resource $repos )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère un gestionnaire du système de fichiers.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_repos_hotcopy

(PECL svn >= 0.1.0)

svn_repos_hotcopyEffectue une copie à chaud du référentiel

Description

bool svn_repos_hotcopy ( string $repospath , string $destpath , bool $cleanlogs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Effectue une copie à chaud du référentiel situé dans repospath vers destpath.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_repos_open

(PECL svn >= 0.1.0)

svn_repos_openOuvre un verrou partagé sur un référentiel

Description

resource svn_repos_open ( string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ouvre un verrou partagé sur un référentiel.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_repos_recover

(PECL svn >= 0.1.0)

svn_repos_recoverExécute les procédures de récupération du référentiel

Description

bool svn_repos_recover ( string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Exécute les procédures de récupération du référentiel.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



svn_revert

(PECL svn >= 0.3.0)

svn_revertRevenir en arrière sur les changements de la copie de travail

Description

bool svn_revert ( string $path [, bool $recursive = false ] )

Revient en arrière sur tout changement local du chemin dans la copie de travail.

Liste de paramètres

path

Le chemin vers l'élément dans la copie de travail.

recursive

Optionnellement applique ceci récursivement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • svn_delete() - Efface un élément d'un dossier de travail ou d'un dépôt
  • svn_export() - Exporte le contenu d'un dossier SVN



svn_status

(PECL svn >= 0.1.0)

svn_statusRécupère le statut des fichiers et des dossiers de la copie de travail

Description

array svn_status ( string $path [, int $flags = 0 ] )

Retourne le statut des fichiers et des dossiers de la copie de travail, en fournissant les modifications, les ajouts, les suppressions, ainsi que les autres modifications des éléments de la copie de travail.

Liste de paramètres

path

Chemin local vers le fichier ou le dossier dont on souhaite récupérer le statut.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

flags

Toute combinaison de SVN_NON_RECURSIVE, SVN_ALL (indépendamment du statut de modification), SVN_SHOW_UPDATES (les entrées seront ajoutées pour les éléments qui ne sont pas à jour), SVN_NO_IGNORE (néglige les propriétés svn:ignore lors de l'analyse des nouveaux fichiers) et SVN_IGNORE_EXTERNALS.

Valeurs de retour

Retourne un tableau indexé numériquement de tableaux associatifs détaillant le statut des éléments du référentiel :

Array (
    [0] => Array (
        // information sur l'élément
    )
    [1] => ...
)

L'information sur un élément est un tableau associatif qui peut contenir les clés suivantes :

path
Chemin vers le fichier/dossier de cette entrée sur le système de fichiers local.
text_status
Statut du texte de l'élément. Référez-vous aux constantes de statut pour les valeurs possibles.
repos_text_status
Statut du texte de l'élément dans le référentiel. Ne survient que si update est défini à TRUE. Référez-vous aux constantes de statut pour les valeurs possibles.
prop_status
Statut de la propriété de l'élément. Référez-vous aux constantes de statut pour les valeurs possibles.
repos_prop_status
Statut de la propriété de l'élément dans le référentiel. Ne survient que si update est défini à TRUE. Référez-vous aux constantes de statut pour les valeurs possibles.
locked
Si l'élément est verrouillé. (Définit que si TRUE.)
copied
Si l'élément a été copié ou non (prévu pour l'ajout avec la journalisation). (Définit que si TRUE.)
switched
Si l'élément a changé de référentiel de référence, en utilisant la commande switch. (Définit que si TRUE)

Ces clés ne sont définies que si l'élément est versionné :

name
Nom de base de l'élément dans le référentiel.
url
URL de l'élément dans le référentiel.
repos
URL de base du référentiel.
revision
Révision de l'élément dans la copie de travail.
kind
Type de l'élément, i.e. fichier ou dossier. Référez-vous aux constantes de type pour les valeurs possibles.
schedule
Action prévue pour l'élément, i.e. ajout ou suppression. Les constantes pour ces nombres magiques ne sont pas disponibles, elles peuvent être émulées en utilisant :
<?php
if (!defined('svn_wc_schedule_normal')) {
    
define('svn_wc_schedule_normal',  0); // rien de spécial
    
define('svn_wc_schedule_add',     1); // élément à ajouté
    
define('svn_wc_schedule_delete',  2); // élément à supprimé
    
define('svn_wc_schedule_replace'3); // élément à ajouté et effacé
}
?>
deleted
Si l'élément a été supprimé, mais les révisions parentes existent toujours (Définit que si TRUE.)
absent
Si l'élément est absent, mais que Subversion sait qu'il devrait se trouver ici. (Définit que si TRUE.)
incomplete
Si l'entrée du fichier pour un dossier est incomplète. (Définit que si TRUE.)
cmt_date
Timestamp Unix de la date de la dernière validation. (Non-Affecté par le paramètre update).
cmt_rev
Révision de la dernière livraison. (Non-Affecté par le paramètre update).
cmt_author
Nom de l'auteur de la dernière livraison. (Non-Affecté par le paramètre update).
prop_time
Timestamp Unix représentant la date/heure de la dernière mise à jour des propriétés.
text_time
Timestamp Unix représentant la date/heure de la dernière mise à jour du texte.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction.

<?php
print_r
(svn_status(realpath('wc')));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // l'élément a été modifié
        [repos_text_status] => 1 // Aucune information disponible, utilisez update
        [prop_status] => 3 // aucun changement
        [repos_prop_status] => 1 // Aucune information disponible, utilisez update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // fichier
        [schedule] => 0 // aucune action de prévue
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Voir aussi



svn_update

(PECL svn >= 0.1.0)

svn_updateMet à jour la copie de travail

Description

int svn_update ( string $path [, int $revno = SVN_REVISION_HEAD [, bool $recurse = true ]] )

Met à jour la copie de travail pointée par le chemin path à la révision revno. Si recurse vaut TRUE, les dossiers seront mis à jour récursivement.

Liste de paramètres

path

Chemin vers la copie de travail locale.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

revno

Numéro de révision vers lequel mettre à jour ; vaut par défaut SVN_REVISION_HEAD.

recurse

Si l'on doit ou non mettre à jour les dossiers récursivement.

Valeurs de retour

Retourne le nouveau numéro de révision en cas de succès, ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction :

<?php
echo svn_update(realpath('working-copy'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

234

Voir aussi


Sommaire




TCP Wrappers


Introduction

L'extension TCP wrappers fournit un mécanisme classique Unix conçu pour vérifier si le client est capable de se connecter à partir d'une IP donnée.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/tcpwrap.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions TCP


tcpwrap_check

(PECL tcpwrap >= 0.1.0)

tcpwrap_checkVérification Tcpwrap

Description

bool tcpwrap_check ( string $daemon , string $address [, string $user [, bool $nodns = false ]] )

tcpwrap_check() consulte les fichiers /etc/hosts.allow et /etc/hosts.deny pour vérifier si l'accès au service daemon est permis ou pas pour un client.

Liste de paramètres

daemon

Le nom du service.

address

L'adresse distante du client. Peut être soit une adresse IP, soit un nom de domaine.

user

Un nom d'utilisateur, optionnel.

nodns

Si address ressemble à un nom de domaine, DNS est utilisé pour le résoudre en adresse IP ; définissez nodns à TRUE pour éviter ce comportement.

Valeurs de retour

Cette fonction retourne TRUE si l'accès doit être autorisé, FALSE sinon.

Exemples

Exemple #1 Refuser toutes les connexions depuis localhost

Si votre fichier /etc/hosts.deny contient :

php: 127.0.0.1

Et votre code ressemble à :

<?php
if (!tcpwrap_check('php'$_SERVER['REMOTE_ADDR'])) {
  die(
'Vous n\'êtes pas le bienvenu ici');
}
?>

Voir aussi

Pour plus de détails, consultez la page man de hosts_access(3).


Sommaire




YAZ


Introduction

Cette extension offre une interface PHP à la bibliothèque YAZ qui implémente le » protocole Z39.50 pour récupérer des informations. Avec cette extension, vous pouvez simplement implémenter une origine Z39.50 (client) qui cherche ou analyse des cibles Z39.50 (serveurs) en parallèle.

Ce module simplifie l'utilisation complexe du protocole Z39.50. Il supporte les connexions persistantes de façon similaire aux APIs RDB, qui sont disponibles pour PHP. Cela signifie que les sessions sont conservées mais partagées entre les utilisateurs, évitant ainsi les étapes de connexion et d'initialisation dans la plupart des cas.

YAZ est disponible sur » http://www.indexdata.dk/yaz/. Vous pouvez trouver des informations supplémentaires, des exemples de scripts, etc. pour cette extension sur » http://www.indexdata.dk/phpyaz/.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.



Installation/Configuration

Sommaire


Pré-requis

Récupérez YAZ (support ANSI/NISO Z39.50) et installez-le. YAZ peut être récupéré sous forme de source ou sous forme de paquets pré-compilés depuis l'» archive YAZ. Les systèmes comme Debian GNU/Linux, Suse Linux, FreeBSD ont également YAZ fournis dans leurs distributions.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/yaz

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note: Information spécifique aux utilisateurs de Windows

php_yaz.dll dépend de la bibliothèque yaz.dll. Le fichier yaz.dll fait parti du ZIP Win32 depuis le site de PHP. Il fait également parti de l'installation Windows YAZ, disponible depuis l' » espace YAZ WIN32.

Sous Windows, n'oubliez pas d'ajouter le dossier PHP à votre PATH pour que le fichier yaz.dll soit trouvé par votre système.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Yaz
Nom Défaut Modifiable Historique
yaz.max_links "100" PHP_INI_ALL Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.0.0.
yaz.log_file NULL PHP_INI_ALL Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

PHP/YAZ garde les traces des connexions avec les cibles (Z-Associations). Une ressource représente une connexion à une cible.

Le script ci-dessous montre la fonctionnalité de recherche parallèle de l'API. Lorsqu'appelée sans argument, elle affiche une requête ; sinon, elle cherche la cible donnée dans le tableau host.

Exemple #1 Recherche parallèle en utilisant Yaz

<?php
$host
=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts count($host);
if (empty(
$query) || count($host) == 0) {
    echo 
'<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        test GILS
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        test local
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    Requête RPN:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Search" />
    </form>
    '
;
} else {
    echo 
'Votre recherche pour ' htmlspecialchars($query) . '<br />';
    for (
$i 0$i $num_hosts$i++) {
        
$id[] = yaz_connect($host[$i]);
        
yaz_syntax($id[$i], "usmarc");
        
yaz_range($id[$i], 110);
        
yaz_search($id[$i], "rpn"$query);
    }
    
yaz_wait();
    for (
$i 0$i $num_hosts$i++) {
        echo 
'<hr />' $host[$i] . ':';
        
$error yaz_error($id[$i]);
        if (!empty(
$error)) {
            echo 
"Erreur : $error";
        } else {
            
$hits yaz_hits($id[$i]);
            echo 
"Nombre de résultat(s) : $hits";
        }
        echo 
'<dl>';
        for (
$p 1$p <= 10$p++) {
            
$rec yaz_record($id[$i], $p"string");
            if (empty(
$rec)) continue;
            echo 
"<dt><b>$p</b></dt><dd>";
            echo 
nl2br($rec);
            echo 
"</dd>";
        }
        echo 
'</dl>';
    }
}
?>



YAZ Fonctions


yaz_addinfo

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_addinfoRetourne plus de détails après une erreur

Description

string yaz_addinfo ( resource $id )

Retourne plus de détails après une erreur pour la dernière requête sur le serveur.

Avec certains serveurs, cette fonction peut retourner la même chaîne de caractères que la fonction yaz_error().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Une chaîne de caractères contenant des informations additionnelles ou une chaîne de caractères vide si la dernière opération était réussie ou si aucune information additionnelle n'était fournie par le serveur.

Voir aussi



yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_confConfigure l'analyseur CCL

Description

void yaz_ccl_conf ( resource $id , array $config )

Cette fonction configure l'analyseur CCL de requête pour un serveur avec les définitions de points d'accès (CCL qualifiers) et leur équivalent en RPN.

Pour faire correspondre une requête CCL spécifique à RPN, utilisez la fonction yaz_ccl_parse().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

config

Un tableau de configuration. Chaque clé du tableau est le nom du champ CCL et la valeur correspondante contient une chaîne de caractères qui spécifie la correspondance au RPN.

La correspondance est une séquence de paires d'attributs type et d'attributs valeur. L'attribut type et l'attribut valeur sont séparés par un signe égal (=). Chaque paire est séparée par un espace.

Des informations supplémentaires peuvent être trouvées sur la page » CCL.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Dans l'exemple ci-dessous, l'analyseur CCL est configuré pour supporter trois champs CCL : ti, au et isbn. Chaque champ correspond à leur équivalent BIB-1. On assume que la variable $id est l'ID de la connexion.

Exemple #1 Configuration CCL

<?php
$fields 
= array(
  
"ti" => "1=4",
  
"au"   => "1=1",
  
"isbn" => "1=7"
);
yaz_ccl_conf($id$field);
?>

Voir aussi



yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parseAppelle l'analyseur CCL

Description

bool yaz_ccl_parse ( resource $id , string $query , array &$result )

Cette fonction appelle l'analyseur CCL. Il convertit une requête CCL FIND en une requête RPN qui peut être passée à yaz_search() pour effectuer une recherche.

Pour définir un champ CCL valide, utilisez la fonction yaz_ccl_conf() avant d'utiliser cette fonction.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

query

La requête CCL FIND.

result

Si la fonction a été exécutée correctement, cet argument sera un tableau contenant la requête RPN valide sous la clé rpn.

Lors d'un échec, trois index sont écrits dans ce tableau pour indiquer la cause de l'échec :

  • errorcode - le code d'erreur CCL (entier)

  • errorstring - l'erreur CCL en chaîne de caractères

  • errorpos - position approximée dans la requête qui est en échec (entier qui est la position d'un caractère)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Analyse CCL

Nous allons essayer de chercher en utilisant CCL. Dans l'exemple ci-dessous, $ccl est une requête CCL.

<?php

yaz_ccl_conf
($id$fields);  // voir l'exemple sur la fonction yaz_ccl_conf
if (!yaz_ccl_parse($id$ccl, &$cclresult)) {
    echo 
'Erreur : ' $cclresult["errorstring"];
} else {
    
$rpn $cclresult["rpn"];
    
yaz_search($id"rpn"$rpn);
}
?>


yaz_close

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_closeFerme une connexion YAZ

Description

bool yaz_close ( resource $id )

Ferme la connexion donnée par le paramètre id.

Note:

Cette fonction fermera seulement une connexion non persistante ouverte en mettant l'option persistent à FALSE avec yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



yaz_connect

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_connectPrépare une connexion à un serveur Z39.50

Description

mixed yaz_connect ( string $zurl [, mixed $options ] )

Cette fonction retourne une ressource de connexion en cas de succès et 0 en cas d'échec.

yaz_connect() prépare une connexion à un serveur Z39.50. Cette fonction n'est pas bloquante, et ne tente pas d'établir une connexion. En fait, elle ne fait que préparer la connexion pour exécution ultérieure par yaz_wait().

Note:

Le proxy » YAZ est un proxy Z39.50 librement disponible.

Liste de paramètres

zurl

Une chaîne de caractères qui prend la forme host[:port][/database]. Si le port est omis, le port 210 est utilisé. Si la base de données est omise, Default est utilisée.

options

Si donné comme une chaîne de caractères, cela sera traité comme la chaîne d'authentification Z39.50 V2 (OpenAuth).

Si donné comme un tableau, le contenu du tableau sert en tant qu'options.

user

Utilisateur pour authentification.

group

Groupe pour authentification.

password

Mot de passe pour authentification.

cookie

Cookie pour session (proxy YAZ).

proxy

Proxy pour connexion (proxy YAZ).

persistent

Un booléen. Si TRUE la connexion est persistante; Si FALSE la connexion n'est pas persistante. Par défaut les connexions sont persistantes.

Note:

Si vous ouvrez une connexion persistante, vous ne serez pas capable de la fermer plus tard avec yaz_close().

piggyback

Un booléen. Si TRUE piggyback est activé pour les recherches. Si FALSE piggyback est désactivé. Par défaut piggyback est activé.

L'activation de piggyback est plus efficace : il sauvegarde habituellement les allers-retours du réseau pour les premières lectures de résultats. Cependant, quelque serveurs Z39.50 ne supportent pas piggyback ou ils ignorent ce jeu de noms. Pour ceux-ci, piggyback devrait être désactivé.

charset

Une chaîne de caractères qui spécifie le jeu de caractères qui sera utilisé dans le langage Z39.50 et le jeu de caractères pour les négociations. Utilisez une chaîne de caractères comme : ISO-8859-1, UTF-8, UTF-16.

La plupart des serveurs Z39.50 ne supportent pas cette option (et, pour ceux-ci, cet argument est ignoré). Plusieurs serveurs utilisent l'encodage ISO-8859-1 pour les requêtes et les messages. Les enregistrements MARC21/USMARC ne sont pas affectés par cette configuration.

preferredMessageSize

Un entier qui spécifie la taille maximale en octets pour toutes les entrées qui seront retournées par la cible durant la récupération. Voyez le » standard Z39.50 pour plus d'informations.

Note:

Cette option est supportée dans PECL YAZ 1.0.5 ou supérieure.

maximumRecordSize

Un entier qui spécifie la taille maximale en octets pour une seule entrée qui sera retournée par la cible durant la récupération. Cette entité est référée à Exceptional-record-size dans le » standard Z39.50.

Note:

Cette option est supportée dans PECL YAZ 1.0.5 ou supérieure.

Valeurs de retour

Une ressource de connexion en cas de réussite, FALSE en cas d'erreur.

Historique

Version Description
4.1.0 Le paramètre options a été ajouté.

Voir aussi



yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database Spécifie la base d'une session YAZ

Description

bool yaz_database ( resource $id , string $databases )

Cette fonction vous permet de changer de base de données à l'intérieur de la session en spécifiant une ou plusieurs bases de données à utiliser dans la recherche, récupération de données, etc. Écrase les bases de données spécifiées dans l'appel de yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

databases

Une chaîne de caractères contenant une ou plusieurs bases de données. Plusieurs bases de données sont séparées par un signe plus +.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element Spécifie le type d'éléments YAZ à lire

Description

bool yaz_element ( resource $id , string $elementset )

Cette fonction spécifie le type d'éléments à lire.

Appelez cette fonction avant yaz_search() ou yaz_present() pour spécifier un type d'élément pour les enregistrements à récupérer.

Note:

Si cette fonction semble sans effet, voyez la description de l'option piggybacking dans yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

elementset

La plupart des serveurs supportent F (pour les enregistrements complets) et B (pour les enregistrements brefs).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errnoRetourne le numéro d'erreur

Description

int yaz_errno ( resource $id )

Retourne un numéro d'erreur pour le serveur (dernière requête) identifié par id.

yaz_errno() devrait être appelée après chaque requête pour chaque serveur - (après le retour de yaz_wait()) pour déterminer le succès ou l'échec de la dernière opération (c'est-à-dire la recherche).

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un code d'erreur. Le code d'erreur est soit un code diagnostique Z39.50 (habituellement un diagnostique Bib-1), soit un code d'erreur côté client qui est généré par PHP/YAZ lui-même, par exemple "Connection failed", "Init Rejected", etc.

Voir aussi



yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errorRetourne une description de l'erreur

Description

string yaz_error ( resource $id )

yaz_error() retourne un message d'erreur en anglais correspondant au dernier numéro d'erreur retourné par yaz_errno().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un message d'erreur pour le serveur (dernière requête), identifié par le paramètre id. Une chaîne de caractères vide est retournée si la dernière opération était réussie.

Voir aussi



yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result Inspecte le résultat d'un service étendu

Description

array yaz_es_result ( resource $id )

Cette fonction inspecte le dernier résultat d'un service étendu depuis un serveur. Un service étendu est initié par la fonction yaz_item_order() ou la fonction yaz_es().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un tableau avec l'élément targetReference pour la référence pour l'opération de service étendu (généré et retourné depuis le serveur).

Voir aussi

  • yaz_es() - Prépare pour une Requête de Service Étendu



yaz_es

(PECL yaz >= 0.9.0)

yaz_es Prépare pour une Requête de Service Étendu

Description

void yaz_es ( resource $id , string $type , array $args )

Cette fonction prépare pour une Requête de Service Étendu. Les Services Étendus sont de la famille des nombreux Z39.50, comme "Record Update", "Item Order", "Database administration", etc.

Note:

Plusieurs serveurs Z39.50 ne supportent pas les Services Étendus.

La fonction yaz_es() crée des paquets d'une Requête de Service Étendu et les place dans une queue d'opérations. Utilisez yaz_wait() pour envoyer la/les requête(s) au serveur. À la fin de yaz_wait(), le résultat de l'opération de Service Étendu devrait être obtenu avec un appel à yaz_es_result().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

type

Une chaîne de caractères qui représente le type de Service Étendu : itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Chaque type est spécifié dans la section suivante.

args

Un tableau avec les options de service étendu et les options spécifiques du paquet. Les options sont identiques à celles offertes par l'API C de ZOOM C. Référez-vous à ZOOM » Services Étendus.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Mise à Jour d'Enregistrements

<?php
$con 
yaz_connect("myhost/database");
$args = array (
    
"record" => "<gils><title>un titre</title></gils>",
    
"syntax" => "xml",
    
"action" => "specialUpdate"
);
yaz_es($con"update"$args);
yaz_wait();
$result yaz_es_result($id);
?>

Voir aussi



yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_optionRetourne la valeur d'une option de connexion YAZ

Description

string yaz_get_option ( resource $id , string $name )

Retourne la valeur de l'option spécifiée par name.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

name

Le nom de l'option.

Valeurs de retour

Retourne la valeur de l'option spécifiée ou une chaîne de caractères vide si l'option n'était pas définie.

Voir aussi

  • La description de yaz_set_option() - Modifie une ou plusieurs options de connexion YAZ pour les options disponibles



yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits Retourne le nombre de résultats de la dernière recherche

Description

int yaz_hits ( resource $id [, array &$searchresult ] )

yaz_hits() retourne le nombre de résultats de la dernière recherche.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

searchresult

Tableau de résultats pour des informations de résultats de recherche détaillés.

Valeurs de retour

Retourne le nombre de résultats pour la dernière recherche ou 0 si aucune recherche n'a été effectuée.

Le tableau de résultats de recherche (s'il est fourni) contient des informations qui sont retournées par un serveur Z39.50 dans le format SearchResult-1 d'une réponse de recherche. Le format SearchResult-1 peut être utilisé pour obtenir des informations à propos du nombre de résultats pour des parties de requête (sous-requête). En particulier, il est possible d'obtenir le nombre de résultats pour les termes de recherche individuels dans une requête. L'information pour la première sous-requête est dans $array[0], la seconde sous-requête dans $array[1] et ainsi de suite.

Membres de searchresult
Élément Description
id Sous-requête ID2 (chaîne de caractères)
count Nombre de résultats (entier)
subquery.term Terme de sous-requête (chaîne de caractères)
interpretation.term Terme interprété de sous-requête (chaîne de caractères)
recommendation.term Terme recommandé de sous-requête (chaîne de caractères)

Note:

Le service de SearchResult requiert PECL YAZ 1.0.5 ou supérieur et YAZ 2.1.9 ou supérieur.

Note:

Très peu d'implémentations de Z39.50 supportent le service de SearchResult.



yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder Prépare une requête Z39.50 Item Order avec le paquet ILL-Request

Description

void yaz_itemorder ( resource $id , array $args )

Cette fonction prépare une requête de type "Extended Services" en utilisant le "Profile" avec "Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1)". Reportez-vous » ici ou aux » spécifications.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

args

Doit être un tableau associatif avec les informations à propos de l'ordre des items des requêtes qui seront envoyées. La clé du tableau est le nom du chemin tag ASN.1 correspondant. Par exemple, le ISBN sous le Item-ID a la clé item-id,ISBN.

Les paramètres de requête IIL sont :

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note
      

Il y a aussi quelques paramètres du paquet Extended Services Request et ItemOrder :

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item
      

Valeurs de retour

Aucune valeur n'est retournée.



yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_presentPrépare à la lecture (Z39.50 present)

Description

bool yaz_present ( resource $id )

Cette fonction prépare PHP à la lecture des résultats, après une recherche.

La fonction yaz_range() doit être appelée avant celle-ci pour spécifier la plage de résultats à lire.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range Spécifie le nombre maximal de résultats à lire

Description

void yaz_range ( resource $id , int $start , int $number )

Spécifie le nombre maximal de résultat à lire.

Cette fonction doit être appelée avant la fonction yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

start

Spécifie la position du premier enregistrement à récupérer. Les numéros des requêtes vont de 1 à yaz_hits().

number

Spécifie le nombre d'enregistrements qui doivent être récupérés.

Valeurs de retour

Aucune valeur n'est retournée.



yaz_record

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_recordRetourne un résultat

Description

string yaz_record ( resource $id , int $pos , string $type )

La fonction yaz_record() retourne un enregistrement dans le jeu de résultats courant à la position spécifiée par le paramètre pos.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

pos

La position de l'enregistrement. Les positions des enregistrements dans un jeu de résultats sont numérotés de 1 jusqu'au nombre retourné par yaz_hits().

type

Le type spécifie la forme du résultat retourné.

Note:

C'est l'application qui est responsable pour s'assurer que les résultats retournés à partir du serveur Z39.50/SRW sont dans un format correct. Le type donné spécifie seulement une conversion qui doit avoir lieu sur le côté client (dans PHP/YAZ).

Sans compter la conversion du transfert de résultats de chaîne de caractères en tableau, PHP/YAZ est aussi possible d'effectuer une conversion de jeu de caractères du résultat. En particulier pour USMARC/MARC21 qui est recommandé puisque ces résultats sont normalement retournés dans le jeu de caractères MARC-8 qui n'est pas supporté par les navigateurs, etc. Pour spécifier une conversion, ajoutez ; charset=from, to ou from est le jeu de caractères orignal du résultat et to est le jeu de résultats à obtenir (comme vu par PHP).

string

L'enregistrement est retourné comme une chaîne de caractères pour affichage simple. Dans ce mode, tous les enregistrements MARC sont convertis dans un format ligne par ligne puisque ISO2709 est difficile à lire. Les enregistrements XML et SUTRS sont retournés dans leur format original. GRS-1 est retourné dans un format ligne par ligne (laid).

Ce format est approprié si les enregistrements seront affichés rapidement (pour déboguage) ou parce que ce n'est pas faisable d'effectuer un affichage approprié.

xml

L'enregistrement est retourné comme une chaîne de caractères XML si possible. Dans ce mode, tous les enregistrements MARC sont convertis en » MARCXML. Les enregistrements XML et SUTRS sont retournés dans leur format original. GRS-1 n'est pas supporté.

Ce format est similaire à string à l'exception que les enregistrements MARC sont convertis en MARCXML

Ce format est approprié si les enregistrements sont analysés par la suite par un analyseur XML ou un processeur XSLT.

raw

L'enregistrement est retourné comme une chaîne de caractères dans sa forme originale. Ce type est approprié pour MARC, XML et SUTRS. Il ne fonctionne pas pour GRS-1.

Les enregistrements MARC sont retournés comme une chaîne de caractères ISO2709. XML et SUTRS sont retournés comme des chaînes de caractères.

syntax

La syntaxe de l'enregistrement est retournée comme une chaîne de caractères, par exemple USmarc, GRS-1, XML, etc.

database

Le nom de la base de données associée aux résultats à la position est retourné comme une chaîne de caractères.

array

L'enregistrement est retourné comme un tableau qui réfléchit la structure GRS-1. Ce type est approprié pour MARC et GRS-1. XML, SUTRS ne sont pas supportés et, si l'enregistrement actuel est XML ou SUTRS, une chaîne de caractères vide sera retournée.

Le tableau retourné consiste en une liste correspondant à chaque feuille/noeud interne de GRS-1. Chaque item de la liste consiste à une sous-liste avec le premier élément path et data (si les données sont disponibles).

Le chemin, qui est une chaîne de caractères, contient une liste de chaque composant de l'arbre (de la structure des enregistrements GRS-1) depuis la racine vers l'extrémité. Chaque composant est une paire de type de balise/valeur sous la forme (type, value

Les balises de chaîne de caractères ont normalement une correspondance avec le type tag 3. MARC peut aussi être retourné comme un tableau (ils sont convertis en GRS-1 de manière interne).

Valeurs de retour

Retourne l'enregistrement à la position pos ou une chaîne vide si aucun enregistrement n'existe à la position donnée.

Si aucun enregistrement de base de données n'existe à la position donnée une chaîne vide est retournée.

Exemples

Exemple #1 Tableau pour des enregistrements GRS-1

Considérez les enregistrements GRS-1

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
Cet enregistrement a deux noeuds à la racine. Le premier élément de la racine est (4,52) [tag type 4, tag value 52], et a comme donnée Robert M. Pirsig. Le deuxième élément de la racine (4,70) a un sous-arbre avec un élément simple (4,90). (4,90) a maintenant un sous-arbre (2,7) avec comme donnée Transworld Publishers, ltd..

Si cet enregistrement est présent à la position $p, alors

<?php

$ar 
yaz_record($id$p"array");
print_r($ar);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Exemple #2 Travail avec MARCXML

Le script PHP ci-dessous retourne un enregistrement MARC21/USMARC comme MARCXML. L'enregistrement original est retourné dans le jeu de caractères marc-8 (inconnu de beaucoup d'analyseur XML), donc nous le convertissons en UTF-8 (que tous les analyseurs XML supportent).

<?php
$rec 
yaz_record($id$p"xml; charset=marc-8,utf-8");
?>

L'enregistrement $rec peut être obtenu avec le processeur Sablotron XSLT comme cela :

<?php

$xslfile 
'display.xsl';
$processor xslt_create();
$parms = array('/_xml' => $rec);
$res xslt_process($processor'arg:/_xml'$xslfileNULL$parms);
xslt_free($processor);
$res preg_replace("'</?html[^>]*>'"''$res);
echo 
$res;

?>

En PHP 5, l'extension XSL peut être utilisée à la place de Sablotron XSLT.



yaz_scan_result

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan_resultRetourne le résultat d'un scan

Description

array yaz_scan_result ( resource $id [, array &$result ] )

yaz_scan_result() retourne un tableau contenant les termes reçus de l'hôte, lors de la dernière requête de scan.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

result

Si donné, ce tableau sera modifié pour contenir des informations additionnelles prises à partir de la réponse Scan :

  • number - Nombre d'entrées retournées

  • stepsize - Grandeur de pas

  • position - Position du terme

  • status - Statut du scan

Valeurs de retour

Retourne un tableau (0..n-1) où n est le nombre de termes retournés. Chaque valeur est une paire où le premier item est un terme et le second item est un le nombre de résultats.



yaz_scan

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scanPrépare un scan YAZ

Description

void yaz_scan ( resource $id , string $type , string $startterm [, array $flags ] )

yaz_scan() prépare une requête "Z39.50 Scan Request" sur la connexion YAZ spécifiée.

Pour réellement transférer la requête "Scan Request" au serveur et recevoir le "Scan Response", la fonction yaz_wait() doit être appelée. Après la fin de yaz_wait(), appelez yaz_error() et yaz_scan_result() pour connaître la réponse.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

type

Actuellement seulement le type rpn est supporté.

startterm

Point de départ du scan.

La forme dans laquelle le terme de départ est spécifié est donnée par le paramètre type.

La syntaxe de ce paramètre est similaire à la requête RPN comme décrite dans yaz_search(). Cela consiste à aucune ou plusieurs spécifications d'opérateur @attr, ensuite suivies par exactement une seule marque.

flags

Ce paramètre optionnel spécifie des informations supplémentaires pour contrôler le comportement de la requête de scan. Trois index sont actuellement lus à partir du tableau d'options : number (nombre de termes demandés), position (position préférée du terme) et stepSize (grandeur de pas préférée).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Fonction PHP qui analyse les titres sur un serveur YAZ

<?php
function scan_titles($id$startterm)
{
  
yaz_scan($id"rpn""@attr 1=4 " $startterm);
  
yaz_wait();
  
$errno yaz_errno($id);
  if (
$errno == 0) {
    
$ar yaz_scan_result($id$options);
    echo 
'Scan ok; ';
    foreach (
$options as $key => $val) {
      echo 
"$key = $val ";
    }
    echo 
'<br /><table>';
    while (list(
$key, list($k$term$tcount)) = each($ar)) {
      if (empty(
$k)) continue;
      echo 
"<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo 
'</table>';
  } else {
    echo 
"Erreur de Scan. Erreur : " yaz_error($id) . "<br />";
  }
}
?>



yaz_schema

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_schemaSpécifie le schéma de lecture

Description

void yaz_schema ( resource $id , string $schema )

yaz_schema() spécifie le schéma de lecture.

cette fonction devrait être appelée avant yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

schema

Doit être spécifié comme un OID (Object Identifier) dans une notation par point brut (comme 1.2.840.10003.13.4) ou comme un des schémas connus enregistrés : GILS-schema, Holdings, Zthes, ...

Valeurs de retour

Aucune valeur n'est retournée.




yaz_set_option

(PECL yaz >= 0.9.0)

yaz_set_optionModifie une ou plusieurs options de connexion YAZ

Description

void yaz_set_option ( resource $id , string $name , string $value )
void yaz_set_option ( resource $id , array $options )

Modifie une ou plusieurs options sur la connexion donnée.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

name ou options

Peut être soit une chaîne de caractères ou un tableau.

Si donné comme chaîne de caractères, cela sera le nom de l'option à spécifier. Vous devrez donner sa valeur value.

Si donné comme tableau, cela sera un tableau associatif (nom de l'option => valeur de l'option).

Options de connexion PHP/YAZ
Nom Description
implementationName Nom de l'implémentation du serveur
implementationVersion Version de l'implémentation du serveur
implementationId ID de l'implémentation du serveur
schema Schéma de lecture. Par défaut, aucun schéma n'est utilisé. Modifier cette option équivaut à utiliser la fonction yaz_schema()
preferredRecordSyntax Syntaxe des enregistrements en lecture. Par défaut, il n'y a pas de syntaxe. Modifier cette option équivaut à utiliser la fonction yaz_syntax()
start Décalage du premier enregistrement à lire, via la fonction yaz_search() ou yaz_present(). Les enregistrements sont numérotés à partir de 0. Modifier cette option, en combinaison avec l'option count, équivaut à utiliser la fonction yaz_range(), hormis le fait que les enregistrements sont numérotés à partir de 1 avec yaz_range()
count Nombre maximal d'enregistrements à lire via yaz_search() et yaz_present().
elementSetName element-set-name en lecture. Modifier cette option équivaut à utiliser la fonction yaz_element().
value

La nouvelle valeur de l'option. Utilisez cet argument seulement si l'argument précédent est une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.



yaz_sort

(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)

yaz_sortConfigure les critères de tri

Description

void yaz_sort ( resource $id , string $criteria )

Cette fonction configure les critères de tri et active le tri Z39.50.

Appelez cette fonction avant yaz_search(). Si elle est utilisée conjointement avec yaz_search(), une commande Z39.50 Sort sera envoyée après chaque retour de recherche et avant que les résultats ne soient lus avec Z39.50 Present (yaz_present()).

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

criteria

Une chaîne de caractères qui prend la forme de field1 flags1 field2 flags2 où field1 spécifie les attributs primaires pour le tri, field2 le second, etc.

Le champ spécifie soit un attribut numérique, combinaison consistant de paires type=value séparées par des virgules (c'est-à-dire 1=4,2=1), soit il peut être spécifié en une chaîne de caractères (c'est-à-dire titre). Le flags est une séquence des caractères suivants qui ne peuvent être séparés par aucun espace.

Options de tri
a

Tri ascendant

d

Tri descendant

i

Tri insensible à la casse

s

Tri sensible à la casse

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Critères de Tri

Pour effectuer des tris avec l'attribut Bib1 du champ "title", de manière insensible à la casse, vous pouvez utiliser le critère suivant :

1=4 ia

Si le second critère de tri doit être l'auteur, en tenant compte de la casse, et dans l'ordre alphabétique, vous pouvez utiliser :

1=4 ia 1=1003 sa



yaz_syntax

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_syntaxSpécifie la syntaxe de lecture des lignes

Description

void yaz_syntax ( resource $id , string $syntax )

yaz_syntax() spécifie la syntaxe de lecture des lignes.

Cette fonction devrait être appelée avant yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

syntax

Doit être spécifié comme un OID (Object Identifier) dans une notation par point brut (comme 1.2.840.10003.5.10) ou comme une des syntaxes d'enregistrement connues et enregistrées (sutrs, usmarc, grs1, xml, etc.).

Valeurs de retour

Aucune valeur n'est retournée.



yaz_wait

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_waitAttend l'exécution d'une requête

Description

mixed yaz_wait ([ array &$options ] )

Cette fonction exécute une activité réseau (bloquée) pour les demandes en attente qui ont été préparées par les fonctions yaz_connect() yaz_search(), yaz_present(), yaz_scan() et yaz_itemorder()

yaz_wait() se termine lorsque tous les hôtes ont terminé leurs requêtes (éventuellement en cas d'erreur).

Liste de paramètres

options

Un tableau associatif des options :

timeout

Spécifie un délai d'attente en secondes. Si un serveur n'a pas répondu dans les délais, il est considéré comme mort et yaz_wait() se termine. La valeur par défaut pour le délai est de 15 secondes.

event

Un booléen.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. En mode événement, la fonction retourne une ressource ou FALSE si une erreur survient.


Sommaire




YP/NIS


Introduction

NIS (feu Yellow Pages / Pages jaunes) permet la gestion par le réseau de fichiers d'administration importants (tel un fichier de mot de passe). Pour plus d'informations, reportez-vous au manuel NIS, ou à » Introduction to YP/NIS (en anglais). Il existe un livre en anglais » Managing NFS and NIS" par Hal Stern.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Aucun prérequis pour pouvoir accéder à ces fonctionnalités, en dehors des fonctions standards Unix qui sont toujours disponibles (soit libc, soit libnsl : le script de configuration détectera celle que vous utilisez).



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/yp



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

YPERR_ACCESS (integer)
violation d'accès (ajouté récemment et uniquement disponible depuis PECL SVN actuellement)
YPERR_BADARGS (entier)
Les arguments de la fonction sont incorrects.
YPERR_BADDB (entier)
La base de données YP est incorrecte.
YPERR_BUSY (entier)
La base de données est occupée.
YPERR_DOMAIN (entier)
Impossible de se connecter au serveur sur ce domaine.
YPERR_KEY (entier)
Clé introuvable dans cette carte.
YPERR_MAP (entier)
Carte introuvable sur ce domaine.
YPERR_NODOM (entier)
Le nom du domaine local n'est pas défini.
YPERR_NOMORE (entier)
Plus d'enregistrements dans la base de données.
YPERR_PMAP (entier)
Communication avec portmapper impossible.
YPERR_RESRC (entier)
Échec dans l'allocation de la ressource.
YPERR_RPC (entier)
Échec RPC - le domaine n'a pu être contacté
YPERR_YPBIND (entier)
Communication impossible avec ypbind
YPERR_YPERR (entier)
Erreur yp interne ou du client.
YPERR_YPSERV (entier)
Communication impossible avec ypserv.
YPERR_VERS (entier)
Version yp incorrecte.


Fonctions YP/NIS


yp_all

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_allTraverse la carte et applique une fonction sur chaque entrée

Description

void yp_all ( string $domain , string $map , string $callback )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

callback

Valeurs de retour

Aucune valeur n'est retournée.



yp_cat

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_catRetourne une tableau contenant la carte entière

Description

array yp_cat ( string $domain , string $map )

Retourne une tableau contenant toutes les entrées de la carte.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Retourne toutes les entrées de la carte sous forme de tableau associatif dont les clés et les valeurs sont respectivement les clés et les entrées de la carte.



yp_err_string

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_err_stringRetourne la chaîne correspondant à l'erreur donnée

Description

string yp_err_string ( int $errorcode )

Retourne la chaîne d'erreur associée au code erreur errorcode. Très pratique pour savoir exactement ce qui n'a pas fonctionné.

Liste de paramètres

errorcode

Le code erreur.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec yp_err_string()

<?php
echo "Erreur : " yp_err_string(yp_errno());
?>

Voir aussi

  • yp_errno() - Retourne le code d'erreur de la dernière opération NIS



yp_errno

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_errnoRetourne le code d'erreur de la dernière opération NIS

Description

int yp_errno ( void )

Retourne le code d'erreur de la dernière opération NIS.

Valeurs de retour

Retourne une des constantes YPERR_XXX.

Voir aussi



yp_first

(PHP 4, PHP 5 <= 5.0.5)

yp_firstRetourne la première paire clé/valeur d'une carte donnée

Description

array yp_first ( string $domain , string $map )

Retourne la première paire clé/valeur de la carte map du domaine domain.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Retourne le première paire clé/valeur d'une carte donnée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_first()

<?php
$entry 
yp_first($domain"passwd.byname");

$key key($entry);
$value $entry[$key];

echo 
"La première entrée de cette carte est " $key " et sa valeur est " $value;
?>

Voir aussi



yp_get_default_domain

(PHP 4, PHP 5 <= 5.0.5)

yp_get_default_domainRetourne le domaine NIS par défaut

Description

string yp_get_default_domain ( void )

Retourne le nom de domaine NIS par défaut. Ce nom de domaine peut être utilisé pour les futurs appels NIS.

Un domaine NIS peut être décrit comme un regroupement de cartes NIS. Tous les hôtes qui ont besoin d'informations s'attachent à un domaine. Référez-vous aux documents cités en début de document pour plus de détails.

Valeurs de retour

Retourne le domaine par défaut du noeud ou FALSE si une erreur survient. Peut être utilisé en tant que domaine pour les prochains appels NIS.

Exemples

Exemple #1 Exemple avec le domaine par défaut

<?php
$domain 
yp_get_default_domain();
echo 
"Le domaine par défaut est : " $domain;
?>



yp_master

(PHP 4, PHP 5 <= 5.0.5)

yp_masterRetourne le nom de la machine maître pour une carte

Description

string yp_master ( string $domain , string $map )

Retourne le nom de la machine maître d'une carte.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Exemples

Exemple #1 Exemple pour un maître NIS

<?php
$number 
yp_master($domain$mapname);
echo 
'Le maître pour cette carte est : ' $master;
?>

Voir aussi



yp_match

(PHP 4, PHP 5 <= 5.0.5)

yp_matchRetourne la ligne associée

Description

string yp_match ( string $domain , string $map , string $key )

Retourne la valeur associée à la clé key pour la carte map.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

key

Cette clé doit être exacte.

Valeurs de retour

Retourne la valeur, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_match()

<?php
$entry 
yp_match($domain"passwd.byname""joe");
echo 
"La valeur trouvée est : " $entry;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

Voir aussi



yp_next

(PHP 4, PHP 5 <= 5.0.5)

yp_nextRetourne la paire clé/valeur suivante d'une carte donnée

Description

array yp_next ( string $domain , string $map , string $key )

Retourne la prochaine paire clé/valeur de la carte map après la clé key spécifiée.

Liste de paramètres

domain

map

key

Valeurs de retour

Retourne la prochaine paire clé/valeur en tant que tableau, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_next()

<?php
$entry 
yp_next($domain"passwd.byname""joe");

if (!
$entry) {
    echo 
"Plus d'autres entrées.\n";
    echo 
"<!--" yp_errno() . ": " yp_err_string() . "-->";
}

$key key($entry);

echo 
"L'entrée suivante après \"joe\" a la clé " $key
      
" et la valeur " $entry[$key];
?>

Voir aussi



yp_order

(PHP 4, PHP 5 <= 5.0.5)

yp_orderRetourne le numéro d'ordre d'une carte

Description

int yp_order ( string $domain , string $map )

Retourne le numéro d'ordre d'une carte.

Liste de paramètres

domain

map

Valeurs de retour

Retourne le numéro d'ordre pour la carte, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_order()

<?php
$number 
yp_order($domain$mapname);
echo 
'Le numéro d\'ordre de cette carte est : ' $number;
?>

Voir aussi


Sommaire

  • yp_all — Traverse la carte et applique une fonction sur chaque entrée
  • yp_cat — Retourne une tableau contenant la carte entière
  • yp_err_string — Retourne la chaîne correspondant à l'erreur donnée
  • yp_errno — Retourne le code d'erreur de la dernière opération NIS
  • yp_first — Retourne la première paire clé/valeur d'une carte donnée
  • yp_get_default_domain — Retourne le domaine NIS par défaut
  • yp_master — Retourne le nom de la machine maître pour une carte
  • yp_match — Retourne la ligne associée
  • yp_next — Retourne la paire clé/valeur suivante d'une carte donnée
  • yp_order — Retourne le numéro d'ordre d'une carte




Extensions spécifiques aux moteurs de recherche


mnoGoSearch


Introduction

Ces fonctions donnent l'accès à mnoGoSearch (anciennement UdmSearch), moteur de recherche du monde libre. mnoGoSearch est un moteur de recherche complet, destiné aux intranet et serveurs web, distribué sous licence GNU. mnoGoSearch offre des fonctionnalités unique, qui en font un excellent outil pour un grand nombre d'applications de recherche dans votre site : recherche de recettes de cuisines ou dans les journaux, recherche dans un site FTP, dans les groupes de news, etc. Il offre un système d'indexation de textes pour les fichiers HTML, PDF et documents textes. MnoGoSearch est constitué de deux parties : l'indexeur, qui effectue les recherches et le moteur de recherche. L'indexeur passe en revue récursivement les sites HTTP, FTP, NEWS ou encore les fichiers locaux, et enregistre des métadonnées dans les bases MySQL, pour optimiser les recherches ultérieures. Une fois que tous les documents ont été référencés, ils sont accessibles au moteur de recherche. Celui-ci est utilisable par interface web. Les langages C CGI, Perl et PHP sont supportés pour effectuer les recherches.

Plus de détails sur le site officiel de mnoGoSearch : » http://www.mnogosearch.org/.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.



Installation/Configuration

Sommaire


Pré-requis

Téléchargez mnoGosearch sur le site » http://www.mnogosearch.org/ et installez-le sur votre système. Vous aurez besoin de la version 3.1.10 ou plus récente de mnoGoSearch, pour pouvoir utiliser ces fonctions.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mnogosearch.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note:

PHP supporte naturellement MySQL. Il faut savoir que mnoGoSearch n'est pas compatible avec la bibliothèque interne de PHP, et ne peut fonctionner qu'avec les bibliothèques génériques MySQL. Par conséquent, si vous utilisez mnoGoSearch avec MySQL, indiquez le dossier d'installation de MySQL durant la configuration avec l'option : --with-mnogosearch --with-mysql=/usr .



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

UDM_FIELD_URLID (entier)
UDM_FIELD_URL (entier)
UDM_FIELD_CONTENT (entier)
UDM_FIELD_TITLE (entier)
UDM_FIELD_KEYWORDS (entier)
UDM_FIELD_DESC (entier)
UDM_FIELD_DESCRIPTION (entier)
UDM_FIELD_TEXT (entier)
UDM_FIELD_SIZE (entier)
UDM_FIELD_RATING (entier)
UDM_FIELD_SCORE (entier)
UDM_FIELD_MODIFIED (entier)
UDM_FIELD_ORDER (entier)
UDM_FIELD_CRC (entier)
UDM_FIELD_CATEGORY (entier)
UDM_FIELD_LANG (entier)
UDM_FIELD_CHARSET (entier)
UDM_PARAM_PAGE_SIZE (entier)
UDM_PARAM_PAGE_NUM (entier)
UDM_PARAM_SEARCH_MODE (entier)
UDM_PARAM_CACHE_MODE (entier)
UDM_PARAM_TRACK_MODE (entier)
UDM_PARAM_PHRASE_MODE (entier)
UDM_PARAM_CHARSET (entier)
UDM_PARAM_LOCAL_CHARSET (entier)
UDM_PARAM_BROWSER_CHARSET (entier)
UDM_PARAM_STOPTABLE (entier)
UDM_PARAM_STOP_TABLE (entier)
UDM_PARAM_STOPFILE (entier)
UDM_PARAM_STOP_FILE (entier)
UDM_PARAM_WEIGHT_FACTOR (entier)
UDM_PARAM_WORD_MATCH (entier)
UDM_PARAM_MAX_WORD_LEN (entier)
UDM_PARAM_MAX_WORDLEN (entier)
UDM_PARAM_MIN_WORD_LEN (entier)
UDM_PARAM_MIN_WORDLEN (entier)
UDM_PARAM_ISPELL_PREFIXES (entier)
UDM_PARAM_ISPELL_PREFIX (entier)
UDM_PARAM_PREFIXES (entier)
UDM_PARAM_PREFIX (entier)
UDM_PARAM_CROSS_WORDS (entier)
UDM_PARAM_CROSSWORDS (entier)
UDM_PARAM_VARDIR (entier)
UDM_PARAM_DATADIR (entier)
UDM_PARAM_HLBEG (entier)
UDM_PARAM_HLEND (entier)
UDM_PARAM_SYNONYM (entier)
UDM_PARAM_SEARCHD (entier)
UDM_PARAM_QSTRING (entier)
UDM_PARAM_REMOTE_ADDR (entier)
UDM_LIMIT_CAT (entier)
UDM_LIMIT_URL (entier)
UDM_LIMIT_TAG (entier)
UDM_LIMIT_LANG (entier)
UDM_LIMIT_DATE (entier)
UDM_PARAM_FOUND (entier)
UDM_PARAM_NUM_ROWS (entier)
UDM_PARAM_WORDINFO (entier)
UDM_PARAM_WORD_INFO (entier)
UDM_PARAM_SEARCHTIME (entier)
UDM_PARAM_SEARCH_TIME (entier)
UDM_PARAM_FIRST_DOC (entier)
UDM_PARAM_LAST_DOC (entier)
UDM_MODE_ALL (entier)
UDM_MODE_ANY (entier)
UDM_MODE_BOOL (entier)
UDM_MODE_PHRASE (entier)
UDM_CACHE_ENABLED (entier)
UDM_CACHE_DISABLED (entier)
UDM_TRACK_ENABLED (entier)
UDM_TRACK_DISABLED (entier)
UDM_PHRASE_ENABLED (entier)
UDM_PHRASE_DISABLED (entier)
UDM_CROSS_WORDS_ENABLED (entier)
UDM_CROSSWORDS_ENABLED (entier)
UDM_CROSS_WORDS_DISABLED (entier)
UDM_CROSSWORDS_DISABLED (entier)
UDM_PREFIXES_ENABLED (entier)
UDM_PREFIX_ENABLED (entier)
UDM_ISPELL_PREFIXES_ENABLED (entier)
UDM_ISPELL_PREFIX_ENABLED (entier)
UDM_PREFIXES_DISABLED (entier)
UDM_PREFIX_DISABLED (entier)
UDM_ISPELL_PREFIXES_DISABLED (entier)
UDM_ISPELL_PREFIX_DISABLED (entier)
UDM_ISPELL_TYPE_AFFIX (entier)
UDM_ISPELL_TYPE_SPELL (entier)
UDM_ISPELL_TYPE_DB (entier)
UDM_ISPELL_TYPE_SERVER (entier)
UDM_MATCH_WORD (entier)
UDM_MATCH_BEGIN (entier)
UDM_MATCH_SUBSTR (entier)
UDM_MATCH_END (entier)


Fonctions mnoGoSearch


udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_add_search_limitAjoute différentes limitations de recherche

Description

bool udm_add_search_limit ( resource $agent , int $var , string $val )

udm_add_search_limit() ajoute différentes limitations de recherche.

Liste de paramètres

agent

Un identifiant d'Agent, obtenu après un appel à udm_alloc_agent().

var

Nom du paramètre de limitation. Les valeurs possibles pour var sont :

  • UDM_LIMIT_URL : définit les limitations sur les URL, pour limiter les recherches à une partie de la base. Ce paramètre supporte les jokers SQL "%" et "_" : "%" remplace n'importe quel nombre de caractères, même zéro caractères, et "_" remplace exactement un caractère. Par exemple, http://www.example.___/catalog peut remplacer http://www.example.com/catalog ou http://www.example.net/catalog.
  • UDM_LIMIT_TAG : définit les limitations par étiquettes. Lors de l'indexation, vous pouvez assigner des étiquettes sur différentes parties d'un site. Les étiquettes de mnoGoSearch 3.1.x sont des lignes, qui peuvent contenir les jokers "%" et "_" : "%" remplace n'importe quel nombre de caractères, même zéro caractères, et "_" remplace exactement un caractère. Par exemple, si vous avez les étiquettes ABCD et ABCE, la limitation de recherche ABC_ limitera la recherche à ces deux étiquettes.
  • UDM_LIMIT_LANG : définit les limitations par langue.
  • UDM_LIMIT_CAT : définit les limitations par catégorie. Les catégories sont similaires aux étiquettes, mais elles peuvent être imbriquées. Vous pouvez donc placer des catégories dans d'autres catégories. Vous devez utiliser deux caractères pour chaque niveau. Vous pouvez utiliser des nombres hexadécimaux allant de 0 à F ou bien sûr une base de 36, allant de 0 à Z. Par exemple la catégorie supérieure "Auto" vaut 01. Si elle a une sous catégorie "Renault", cette dernière sera repérée par 01 (catégorie mère) suivie de 01 (dans sa catégorie), ce qui donne "0101". Si "Auto" a une autre sous-catégorie "Peugeot", cette dernière aura le numéro 02, et sera identifiée par 0102. Si "Peugeot" a elle-même une autre sous-catégorie, "Moteur", elle sera numéroté 01, et identifiée uniquement par 010201. Si vous voulez restreindre les recherches à cette catégorie uniquement, passez cat=010201.
  • UDM_LIMIT_DATE : définit les limitations par date de modification du document.

    Format de la valeur : une chaîne de caractères, dont le premier caractère est < ou >, puis une date au format unixtimestamp. Par exemple :

    <?php
    udm_add_search_limit
    ($udmUDM_LIMIT_DATE"&lt;908012006");
    ?>

    Si > est utilisé, la recherche sera limitée aux documents dont la date de modification est plus grande que celle qui a été entrée. Avec <, c'est le contraire.

val

Définit la valeur du paramètre courant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agent_arrayAlloue une session mnoGoSearch

Description

resource udm_alloc_agent_array ( array $databases )

udm_alloc_agent_array() sert à créer un agent avec des connexions à de multiples bases de données.

Liste de paramètres

databases

Le paramètre databases est un tableau qui contient une URL par élément, de manière analogue au premier paramètre de udm_alloc_agent().

Valeurs de retour

Retourne une ressource représentant un identifiant en cas de succès ou FALSE si une erreur survient.

Voir aussi



udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agentAlloue une session mnoGoSearch

Description

resource udm_alloc_agent ( string $dbaddr [, string $dbmode ] )

Alloue une session mnoGoSearch.

Liste de paramètres

dbaddr

dbaddr - est une description de base de données formatée comme une URL. Les options (type, hôte, nom de base de données, port, utilisateur ou mot de passe) servent à se connecter à la base de données SQL. Ne passez aucune valeur si vous souhaitez utiliser le support des fichiers texte intégré. Sinon, utilisez le format : DBAddr DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Actuellement, les valeurs de DBType possibles sont : mysql, pgsql, msql, solid, mssql, oracle, ibase. En fait, si vous avez ajouté un support natif, cette option est inutile. Mais les utilisateurs ODBC doivent spécifier une des valeurs supportées. Si votre type de base de données n'est pas supporté, utilisez le terme unknown.

dbmode

dbmode - Vous pouvez sélectionner le mode de stockage des mots dans la base de données. Si vous indiquez "single", tous les mots seront stockés dans la même table. Si vous indiquez multi, ils seront situés dans différentes tables, suivant leur taille. Le mode multi est généralement plus rapide, mais requiert plus de tables. Si le mode crc est sélectionné, mnoGoSearch enregistrera un entier de 32 bits, calculé avec l'algorithme CRC32, plutôt que des mots. Ce mode requiert moins d'espace disque, et il est beaucoup plus rapide que les modes single et multi. crc-multi utilise la même technique de stockage que le mode crc, mais il stocke aussi les mots dans différentes tables suivant leur taille. Format: DBMode single/multi/crc/crc-multi.

Note:

dbaddr et dbmode doivent correspondre à ceux utilisés durant l'indexation.

Valeurs de retour

Retourne un agent mnogosearch en cas de succès, FALSE en cas d'erreur. Cette fonction crée une session avec les paramètres de base de données.

Notes

Note:

En réalité, udm_alloc_agent() n'ouvre pas de connexion, et donc, ne vérifie ni le nom d'utilisateur, ni le mot de passe. La connexion à une base de données et les vérifications des login / mot de passe sont réalisées à l'appel de la fonction udm_find().



udm_api_version

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_api_versionLit la version de l'API mnoGoSearch

Description

int udm_api_version ( void )

Lit la version de l'API mnoGoSearch.

udm_api_version() permet aux utilisateurs d'identifier quelles sont les API disponibles. Par exemple, udm_get_doc_count() n'est disponible qu'à partir de mnoGoSearch 3.1.11.

Valeurs de retour

udm_api_version() retourne le numéro de version de l'API mnoGoSearch. Par exemple, si mnoGosearch 3.1.10 est utilisé, udm_api_version() retournera 30110.

Exemples

Exemple #1 Exemple avec udm_api_version()

<?php
if (udm_api_version() >= 30111) {
    echo  
"Nombre total d'URL dans la base : " udm_get_doc_count($udm) . "<br />\n";
}
?>



udm_cat_list

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_listListe toutes les catégories de même niveau

Description

array udm_cat_list ( resource $agent , string $category )

Liste toutes les catégories de même niveau.

Cette fonction est pratique pour réaliser des arbres à partir des catégories.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

category

Valeurs de retour

Retourne un tableau contenant la liste de toutes les catégories de même niveau que la catégorie category courante.

Le tableau est constitué de paires. Les index pairs contiennent les chemins de catégories, les index impairs les noms des catégories correspondantes.

$array[0] contiendra '020300'
  $array[1] contiendra 'Audi'
  $array[2] contiendra '020301'
  $array[3] contiendra 'BMW'
  $array[4] contiendra '020302'
  $array[5] contiendra 'Opel'
  ...
 etc.

Exemples

Voici un exemple de rendu des liens du niveau courant :

Audi
  BMW
  Opel
  ...

Exemple #1 Exemple avec udm_cat_list()

<?php
 $cat_list_arr 
udm_cat_list($udm_agent$cat);
 
$cat_list '';
 for (
$i=0$i<count($cat_list_arr); $i+=2) {
    
$path $cat_list_arr[$i];
    
$name $cat_list_arr[$i+1];
    
$cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br />";
 }
?>

Voir aussi



udm_cat_path

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_pathLit le chemin de la catégorie courante

Description

array udm_cat_path ( resource $agent , string $category )

Retourne un tableau listant les catégories depuis la racine jusqu'à la catégorie courante.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

category

Valeurs de retour

Le tableau est constitué de paires. Les index pairs contiennent les chemins de catégories, les index impairs les noms des catégories correspondantes.

Par exemple, l'appel $array=udm_cat_path($agent, '02031D'); peut retourner le tableau suivant :

 $array[0] contiendra ''
 $array[1] contiendra 'Root'
 $array[2] contiendra '02'
 $array[3] contiendra 'Sport'
 $array[4] contiendra '0203'
 $array[5] contiendra 'Auto'
 $array[4] contiendra '02031D'
 $array[5] contiendra 'Ferrari'

Exemples

Exemple #1 Spécifier une catégorie avec un format hiérarchisé : '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr 
udm_cat_path($udm_agent$cat);
  
$cat_path '';
  for (
$i=0$i<count($cat_path_arr); $i+=2) {
    
$path $cat_path_arr[$i];
    
$name $cat_path_arr[$i+1];
    
$cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

Voir aussi



udm_check_charset

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_check_charsetVérifie si un jeu de caractères est supporté par mnogosearch

Description

bool udm_check_charset ( resource $agent , string $charset )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



udm_check_stored

(PHP 4 >= 4.2.0)

udm_check_storedVérifie la connexion MnoGoSearch avec le document stocké

Description

int udm_check_stored ( resource $agent , int $link , string $doc_id )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_clear_search_limitsAnnule toutes les limitations de recherche MnoGoSearch

Description

bool udm_clear_search_limits ( resource $agent )

udm_clear_search_limits() annule toutes les limitations de recherche imposées.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

Retourne TRUE.

Voir aussi



udm_close_stored

(PHP 4 >= 4.2.0)

udm_close_storedFerme la connexion MnoGoSearch avec le document enregistré

Description

int udm_close_stored ( resource $agent , int $link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



udm_crc32

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_crc32Retourne la somme de contrôle CRC32 d'une chaîne

Description

int udm_crc32 ( resource $agent , string $str )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



udm_errno

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_errnoNuméro d'erreur mnoGoSearch

Description

int udm_errno ( resource $agent )

Récupère le numéro d'erreur mnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

Valeurs de retour

Retourne le numéro d'erreur mnoGoSearch, ou bien 0 s'il n'y en a aucune.



udm_error

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_errorMessage d'erreur mnoGoSearch

Description

string udm_error ( resource $agent )

Récupère le message d'erreur mnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

Valeurs de retour

udm_errno() retourne le message d'erreur mnoGoSearch, ou une chaîne vide s'il n'y en a pas.



udm_find

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_findEffectue une recherche

Description

resource udm_find ( resource $agent , string $query )

Effectue une recherche.

La recherche en elle-même. Le premier argument agent est la session, le second est la requête (query). Pour rechercher, entrez les mots avec lesquels vous voulez faire une recherche, puis cliquez sur le bouton d'envoi. Par exemple, "mysql odbc". Vous ne devez pas utiliser de guillemets doubles ", car ils sont utilisés par mnoGoSearch pour séparer une requête en mots. Avec l'exemple ci-dessus, mnoGoSearch va rechercher les pages contenant "mysql" et/ou "odbc". Les meilleures réponses seront classées en premier, et affichées en tête de liste. Si vous sélectionnez le mode de recherche "tous" ("ALL"), la recherche va retourner les documents qui contiennent l'un ou l'autre des mots que vous avez entré. Dans le cas où vous utilisez le mode "ANY", la recherche retourne la liste des documents qui contiennent l'un ou l'autre des mots. Si vous voulez accéder aux fonctions avancées de recherche, vous pouvez utiliser le mode "BOOL", qui vous permet d'entrer directement des requêtes.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

query

mnoGoSearch utilise les opérateurs booléens suivants :

& - AND, ET logique. Par exemple, "mysql & odbc". mnoGoSearch recherche toutes les URL qui contiennent à la fois les mots "mysql" et "odbc".

| - OR, OU logique. Par exemple, "mysql | odbc". mnoGoSearch recherche toutes les URL qui contiennent soit "mysql", soit "odbc".

~ - NOT, NON logique. Par exemple, "mysql & ~odbc". mnoGoSearch recherche toutes les URL qui contiennent le mot "mysql" mais ne contiennent pas le mot "odbc". Attention : la requête "~odbc" ne trouvera rien !

() - Groupement de commandes pour les requêtes complexes : par exemple, "(mysql | msql) & ~postgres". Le mode par requête est simple et puissant à la fois. Vous pouvez utiliser les commandes booléennes habituelles avec ce mode.

Valeurs de retour

Retourne un identifiant de résultat en cas de succès ou FALSE si une erreur survient.



udm_free_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_agentDétruit une session mnoGoSearch

Description

int udm_free_agent ( resource $agent )

Détruit l'agent de recherche créé par udm_alloc_agent().

Liste de paramètres

agent

Un lien vers un agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_ispell_dataLibère la mémoire allouée pour ispell par MnoGoSearch

Description

bool udm_free_ispell_data ( int $agent )

Libère la mémoire allouée pour ispell par MnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

udm_free_ispell_data() retourne toujours TRUE.

Notes

Note:

udm_free_ispell_data() est supportée à partir de la version 3.1.12 de mnoGoSearch et elle ne fait strictement rien avec les versions précédentes.



udm_free_res

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_resLibère un résultat mnoGoSearch

Description

bool udm_free_res ( resource $res )

Libère un résultat mnoGoSearch.

Liste de paramètres

res

Un lien vers un identifiant de résultat, reçu après l'appel à la fonction udm_find().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_doc_countLit le nombre total de documents dans les bases MnoGoSearch

Description

int udm_get_doc_count ( resource $agent )

udm_get_doc_count() retourne le nombre de documents dans les bases de données.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

Retourne le nombre de documents.

Notes

Note:

udm_get_doc_count() est supportée à partir de la version mnoGoSearch 3.1.11 ou plus récent.



udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_fieldLit un champ de résultat

Description

string udm_get_res_field ( resource $res , int $row , int $field )

Lit un champ de résultat mnoGoSearch.

Liste de paramètres

res

res - un identifiant de résultat, obtenu après un appel à udm-find.

row

row - le numéro du lien dans la page courante. Il peut valoir de 0 jusqu'à UDM_PARAM_NUM_ROWS-1.

field

field - l'identifiant de champ, et peut prendre l'une des valeurs suivantes :

  • UDM_FIELD_URL : champ URL
  • UDM_FIELD_CONTENT : champ Content-type (par exemple, text/html).
  • UDM_FIELD_CATEGORY - Champ catégorie du document. Utilisez udm_cat_path() pour récupérer le chemin complet de la catégorie courante depuis le dossier racine. (Ce paramètre est valable uniquement depuis la version 4.0.6 de PHP et suivantes)
  • UDM_FIELD_TITLE : titre du document.
  • UDM_FIELD_KEYWORDS : mots-clés du document (balise META KEYWORDS).
  • UDM_FIELD_DESC : description du document (balise META DESCRIPTION).
  • UDM_FIELD_TEXT : corps du document (balise body, les premières lignes pour donner une idée du document).
  • UDM_FIELD_SIZE : taille du document.
  • UDM_FIELD_URLID : identifiant unique de l'URL.
  • UDM_FIELD_RATING : score de la page (calculé par mnoGoSearch).
  • UDM_FIELD_MODIFIED : date de modification au format unixtimestamp.
  • UDM_FIELD_ORDER : le nombre de documents trouvés.
  • UDM_FIELD_CRC : la valeur CRC du document.

Valeurs de retour

Retourne la valeur du champ field dans la ligne row, du résultat res, et FALSE si une erreur survient.



udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_paramLit les paramètres de résultats mnoGoSearch

Description

string udm_get_res_param ( resource $res , int $param )

Lit les paramètres de résultats mnoGoSearch.

Liste de paramètres

res

res - identifiant de résultat, obtenu après un appel à udm_find().

param

param - peut prendre les valeurs suivantes :

  • UDM_PARAM_NUM_ROWS - Nombre de liens trouvés dans le groupe de résultat courant. C'est la valeur de UDM_PARAM_PAGE_SIZE pour tous les groupes, sauf le dernier.
  • UDM_PARAM_FOUND - Nombre total de résultats trouvés.
  • UDM_PARAM_WORDINFO - Informations sur les mots trouvés, c'est-à-dire que la recherche "un bon livre" retournera "un: stopword, bon:5637, livre: 120"
  • UDM_PARAM_SEARCHTIME - Temps de recherche en secondes
  • UDM_PARAM_FIRST_DOC - Le numéro du premier document affiché dans le groupe.
  • UDM_PARAM_LAST_DOC - Le numéro du dernier document affiché dans le groupe.

Valeurs de retour

udm_get_res_param() retourne les paramètres de résultats en cas de succès, FALSE en cas d'erreur.



udm_hash32

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_hash32Retourne une somme de contrôle Hash32

Description

int udm_hash32 ( resource $agent , string $str )

udm_hash32() prend la chaîne str et retourne un nombre presque unique sur 32 octets.

Liste de paramètres

agent

Un lien vers un agent, reçu après l'appel à la fonction udm_alloc_agent().

str

La chaîne d'entrée.

Valeurs de retour

Retourne la somme de contrôle, sur 32 octets.

Voir aussi



udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_load_ispell_dataCharge les données ispell

Description

bool udm_load_ispell_data ( resource $agent , int $var , string $val1 , string $val2 , int $flag )

udm_load_ispell_data() charge des données ispell.

Après avoir utilisé cette fonction, pensez à libérer les données de la mémoire avec udm_free_ispell_data(), même si vous utilisez le mode UDM_ISPELL_TYPE_SERVER.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

var

Paramètre indiquant la source des données ispell. Peut prendre une des valeurs suivantes :

  • UDM_ISPELL_TYPE_DB indique que les données ispell doivent être chargées depuis la base SQL. Dans ce cas, les paramètres val1 et val2 sont ignorés et doivent être laissés vides. flag doit être égal à 1.

    Note:

    flag indique qu'après le chargement des données ispell à partir de la source, elles doivent être triées (c'est nécessaire au bon fonctionnement d'ispell). Dans le cas où vous chargez les données depuis un fichier, il peut y avoir plusieurs appels à udm_load_ispell_data(), et il ne vaut pas la peine de trier les valeurs après chaque appel, mais uniquement à la fin. Étant donné qu'en mode DB, toutes les données sont chargées en une seule fois, ce paramètre doit avoir la valeur de 1. Dans ce mode, en cas d'erreur, par exemple si la table ispell est absente, la fonction retournera FALSE et le code d'erreur, avec son message, seront accessibles avec udm_error() et udm_errno().

  • UDM_ISPELL_TYPE_AFFIX indique que les données ispell doivent être chargées depuis un fichier et initie le chargement. Dans ce cas, val1 définit le code de langue en deux lettres, et val2 est le chemin jusqu'aux fichiers. Notez que si vous utilisez un chemin relatif, le module recherche les fichiers non pas dans UDM_CONF_DIR, mais directement avec le chemin courant, où le script est exécuté. En cas d'erreur avec ce mode, si le fichier est absent, la fonction retourne FALSE, et un message d'erreur sera affiché. Les messages d'erreur ne sont pas accessibles avec udm_error() et udm_errno(), puisque ces fonctions ne traitent que les messages SQL. Reportez-vous à la description du paramètre flag pour la constante UDM_ISPELL_TYPE_DB.

    Exemple #1 Exemple avec udm_load_ispell_data()

    <?php
    if ((! udm_load_ispell_data($udmUDM_ISPELL_TYPE_AFFIX'en''/opt/ispell/en.aff'0)) ||
        (! 
    udm_load_ispell_data($udmUDM_ISPELL_TYPE_AFFIX'ru''/opt/ispell/ru.aff'0)) ||
        (! 
    udm_load_ispell_data($udmUDM_ISPELL_TYPE_SPELL'en''/opt/ispell/en.dict'0)) ||
        (! 
    udm_load_ispell_data($udmUDM_ISPELL_TYPE_SPELL'ru''/opt/ispell/ru.dict'1))) {
        exit;
    }
    ?>

    Note:

    flag prend la valeur 1 si c'est le dernier appel à cette fonction.

  • UDM_ISPELL_TYPE_SPELL indique que les données ispell doivent être chargées depuis un fichier, et initie le chargement du dictionnaire. Dans ce cas, val1 définit le code langue sur deux lettres, et val2 le chemin du fichier. Notez que si vous utilisez un chemin relatif, le module recherche les fichiers non pas dans UDM_CONF_DIR, mais directement avec le chemin courant, où le script est exécuté. En cas d'erreur avec ce mode, si le fichier est absent, la fonction retourne FALSE, et un message d'erreur sera affiché. Les messages d'erreur ne sont pas accessibles avec udm_error() et udm_errno(), puisque ces fonctions ne traitent que les messages SQL. Reportez-vous à la description du paramètre flag dans UDM_ISPELL_TYPE_DB.

    <?php
    if ((! udm_load_ispell_data($udmUDM_ISPELL_TYPE_AFFIX'en''/opt/ispell/en.aff'0)) ||
       (! 
    udm_load_ispell_data($udmUDM_ISPELL_TYPE_AFFIX'ru''/opt/ispell/ru.aff'0)) ||
       (! 
    udm_load_ispell_data($udmUDM_ISPELL_TYPE_SPELL'en''/opt/ispell/en.dict'0)) ||
       (! 
    udm_load_ispell_data($udmUDM_ISPELL_TYPE_SPELL'ru''/opt/ispell/ru.dict'1))) {
     exit;
     }
    ?>

    Note:

    flag prend la valeur 1 si c'est le dernier appel à cette fonction.

  • UDM_ISPELL_TYPE_SERVER active le support des serveurs ispell. val1 indique alors l'adresse de l'hôte qui supporte le serveur ispall. val2 n'est pas encore utilisé, mais dans les cas futurs, il indiquera le numéro de port utilisé par le serveur ispell. flag n'est pas utile, car les données sont déjà triées.

    Les serveurs Spelld lisent les données d'orthographe dans une configuration séparée (par défaut /usr/local/mnogosearch/etc/spelld.conf), les trie et les stocke en mémoire. Avec les clients, le serveur communique de deux façons : vers les indexeurs, tout le contenu de la mémoire est transféré pour que l'indexeur travaille plus vite ; vers le moteur de recherche, il reçoit les mots à normaliser et les rend au client corrigés. Cela permet une plus grande rapidité d'exécution, en comparaison des modes db et text (notamment, les tris et les chargements sont beaucoup plus rapides).

    udm_load_ispell_data() en mode UDM_ISPELL_TYPE_SERVER ne charge pas vraiment les données ispell, mais définit simplement l'adresse du serveur. En fait, le serveur sera automatiquement utilisé par udm_find() lors des recherches. En cas d'erreur, (par exemple si le serveur ispell ne fonctionne pas ou que l'hôte indiqué est invalide), la conversion sera annulée, mais aucun message d'erreur ne sera affiché.

    Note:

    Cette fonction est disponible à partir de mnoGoSearch 3.1.12.

    Exemple :
    <?php
    if (!udm_load_ispell_data($udmUDM_ISPELL_TYPE_SERVER''''1)) {
        echo 
    "Erreur au chargement de la bibliothèque ispell sur le serveur<br />\n";
        exit;
    }
    ?>

Le mode le plus rapide est UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT est plus lent, et UDM_ISPELL_TYPE_DB est le plus lent. Ce classement est vrai pour mnoGoSearch 3.1.10 - 3.1.11. Il est prévu d'accélérer le mode DB dans les versions futures, et cela sera plus rapide que le mode TEXT.

val1

val2

flag

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #2 Exemple avec udm_load_ispell_data()

<?php
if (! udm_load_ispell_data($udmUDM_ISPELL_TYPE_DB''''1)) {
  
printf("Erreur #%d: '%s'\n"udm_errno($udm), udm_error($udm));
  exit;
}
?>



udm_open_stored

(PHP 4 >= 4.2.0)

udm_open_storedOuvre une connexion MnoGoSearch avec un document stocké

Description

int udm_open_stored ( resource $agent , string $storedaddr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_set_agent_paramModifie les paramètres de l'agent MnoGoSearch

Description

bool udm_set_agent_param ( resource $agent , int $var , string $val )

Modifie les paramètres de l'agent MnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

var

Les paramètres suivants et leurs valeurs sont disponibles :

  • UDM_PARAM_PAGE_NUM - Utilisé pour choisir le numéro de groupe de résultat (les résultats sont retournés par groupe, commençant à 0, avec UDM_PARAM_PAGE_SIZE résultats par page).
  • UDM_PARAM_PAGE_SIZE - Nombre de résultats affichés par page.
  • UDM_PARAM_SEARCH_MODE - Mode de recherche. Les valeurs suivantes sont disponibles : UDM_MODE_ALL - recherche tous les mots ; UDM_MODE_ANY - recherche l'un des mots ; UDM_MODE_PHRASE - recherche une phrase; UDM_MODE_BOOL - recherche booléenne. Voir udm_find() pour plus de détails sur les recherches booléennes.
  • UDM_PARAM_CACHE_MODE - Active/désactive le cache. Lorsque le cache est activé, le moteur de recherche va stocker les résultats sur le disque. Lorsque deux requêtes seront similaires, il pourra retourner les résultats plus rapidement, sans recherche. Valeurs disponibles : UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.
  • UDM_PARAM_TRACK_MODE - Active le mode de suivi de requête. Depuis la version 3.1.2, mnoGoSearch dispose d'un suivi de requête. Notez que ce suivi n'est implémenté qu'avec les versions SQL et n'est pas disponible avec les bases de données intégrées. Pour utiliser ce suivi, vous devez créer des tables de suivi. Pour mysql, utilisez le script create/mysql/track.txt. Lorsque vous effectuez une recherche avec l'interface, ces tables stockeront les mots recherchés ainsi que le nombre de mots trouvés, et la date. Valeurs disponibles : UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.
  • UDM_PARAM_PHRASE_MODE - indique si les index des bases de données utilisent des phrases (paramètre "phrase" dans indexer.conf). Valeurs disponibles : UDM_PHRASE_ENABLED et UDM_PHRASE_DISABLED. Notez bien que si la recherche par phrase est activée (UDM_PHRASE_ENABLED), il est toujours possible de faire des recherches dans d'autres modes, (ANY, ALL, BOOL ou PHRASE). En version 3.1.10 de mnoGoSearch, la recherche par phrase n'est supportée que pour les modes SQL et intégré, tandis qu'en 3.1.11, la recherche par phrase est supportée par le mode cache. Exemple de recherche par phrase : "Arizona desert" : cette requête retourne tous les documents qui contiennent les mots "Arizona desert" comme une phrase. Notez que vous devez mettre des guillemets doubles autour des phrases.
  • UDM_PARAM_CHARSET - Définit le jeu de caractères local. Valeurs disponibles : tous les jeux supportés par mnoGoSearch. koi8-r, cp1251, ...
  • UDM_PARAM_STOPFILE - Définit le nom et le chemin du fichier de mots ignorés. Il y a une petite différence avec mnoGoSearch : avec mnoGoSearch, si le chemin est NULL ou relatif, il est utilisé à partir de UDM_CONF_DIR, alors qu'en PHP, le module va rechercher à partir du chemin courant, c'est-à-dire celui du script courant.
  • UDM_PARAM_STOPTABLE - Charge la liste des mots ignorés depuis une table SQL. Vous pouvez utiliser plusieurs tables SQL. Cette commande n'a aucun effet si mnoGoSearch n'a pas été compilé avec le support de base de données.
  • UDM_PARAM_WEIGHT_FACTOR - Représente le poids relatif des différentes parties d'un document. Actuellement, le corps, titre, mots-clés, descriptions et url sont supportés. Pour activer cette fonctionnalité, utilisez le degré 2 des commandes *Weight, dans le fichier indexer.conf. Imaginons que vous avez choisi les poids suivants :
          URLWeight     1
          BodyWeight    2
          TitleWeight   4
          KeywordWeight 8
          DescWeight    16
             
    Comme l'indexeur utilise l'opérateur de bits OR pour mesurer le poids des mots, il est possible que le même mot soit trouvé plusieurs fois dans le même document lors des recherches. Un mot qui n'apparaît qu'une fois dans le corps sera défini par 00000010 (notation binaire). Un mot qui apparaîtra dans plusieurs parties pourra avoir la notation 00011111. La valeur de ce paramètre est une chaîne de chiffres hexadécimaux, sous la forme ABCDE. Chaque chiffre est un facteur correspondant à un poids affecté à une partie du document. Pour la situation décrite ci-dessus :
       E est le facteur de poids 1  (URL Weight bit)
       D est le facteur de poids 2  (BodyWeight bit)
       C est le facteur de poids 4  (TitleWeight bit)
       B est le facteur de poids 8  (KeywordWeight bit)
       A est le facteur de poids 16 (DescWeight bit)
             
    Exemples : UDM_PARAM_WEIGHT_FACTOR=00001 ne recherche que dans les URL. UDM_PARAM_WEIGHT_FACTOR=00100 ne recherche que dans les Titres. UDM_PARAM_WEIGHT_FACTOR=11100 recherche dans les Titres, Mots-clés, Description mais pas dans le Corps ou les URL. UDM_PARAM_WEIGHT_FACTOR=F9421 recherche dans :
        Description avec un poids de 15  (F hex)
        Mots-clés avec un poids de 9
        Titre avec un poids de  4
        Corps avec un poids de 2
        URL avec un poids de 1
             
    Si UDM_PARAM_WEIGHT_FACTOR est omis, la valeur par défaut est utilisée.
  • UDM_PARAM_WORD_MATCH - Recherche des mots. Vous pouvez utiliser ce paramètre pour choisir le type de recherche de mots. Cette fonctionnalité n'est valable qu'en mode "single" et "multi", avec les bases SQL ou intégrée. Elle ne fonctionne pas en mode intégré, ni avec d'autres modes, car les CRC ne supportent pas les recherches de sous-chaînes. Les valeurs disponibles sont : UDM_MATCH_BEGIN - début de mot; UDM_MATCH_END - fin de mot; UDM_MATCH_WORD - tout le mot; UDM_MATCH_SUBSTR - une sous-partie de mot.
  • UDM_PARAM_MIN_WORD_LEN - définit les tailles extrêmes de mots. Tout mot plus court que la limite inférieure est ignoré. Notez que ce paramètre est inclusif, c'est-à-dire que si UDM_PARAM_MIN_WORD_LEN=3, un mot de 3 caractères ne sera pas ignoré, alors qu'un mot de 2 caractères le sera. Par défaut, la valeur est de 1.
  • UDM_PARAM_ISPELL_PREFIXES - Valeurs possibles : UDM_PREFIXES_ENABLED et UDM_PREFIXES_DISABLED. Ces valeurs activent et désactivent le support des préfixes. Par exemple, si le mot "testé" est placé dans la requête de recherche, les mots tels "test", "tester", etc. seront aussi recherchés. Les suffixes sont supportés par défaut. Les préfixes modifient généralement le sens des mots. Par exemple, si vous cherchez "testé", vous ne souhaitez pas trouver "protesté" ou "contesté". Le support des préfixes peut cependant être utilisé pour des raisons d'orthographe. Pour activer ispell, vous devez charger les données ispell avec la fonction udm_load_ispell_data().
  • UDM_PARAM_CROSS_WORDS - Active ou désactive le support "CROSS_WORDS". Valeurs possibles : UDM_CROSS_WORDS_ENABLED et UDM_CROSS_WORDS_DISABLED. La fonctionnalité "CROSS_WORDS" vous permet d'effectuer des recherches dans les balises (entre <a href="xxx"> </a>), pour utiliser le nom du lien. Ce mode fonctionne avec les bases de données SQL et n'est pas supporté par les modes intégrés ou le cache.
  • UDM_PARAM_VARDIR - spécifie un chemin précis sur le disque où l'indexeur enregistre les données lorsqu'il utilise le cache et les bases de données internes. Par défaut, le dossier /var de l'installation de mnoGoSearch est utilisé.

val

Historique

Version Description
4.1.0 Ajout de la constante UDM_PARAM_VARDIR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: CROSS_WORDS est supporté à partir de mnoGoSearch 3.1.11.


Sommaire




Client Sphinx


Introduction

Cette extension fournit une interface avec la bibliothèque de recherche Sphinx. Sphinx est un moteur de recherche indépendant, qui propose une recherche en texte intégrale rapide, efficace et pertinente. Sphinx est conçu pour s'intégrer avec les bases de données SQL, et les langages de scripts. Sphinx et ses bibliothèques clientes sont disponibles sur » le site officiel



Installation/Configuration

Sommaire


Pré-requis

PECL/sphinx requiert PHP 5.2.2 ou plus récent.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sphinx

Si ./configure rencontre des problèmes pour trouver les fichiers libsphinxclient (par exemple, s'il a été installé dans un dossier particulier), utilisez ./configure --with-sphinx=$PREFIX, où $PREFIX est le préfixe de l'installation de libsphinxclient.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SEARCHD_OK (integer)
SEARCHD_ERROR (integer)
SEARCHD_RETRY (integer)
SEARCHD_WARNING (integer)
SPH_MATCH_ALL (integer)
SPH_MATCH_ANY (integer)
SPH_MATCH_PHRASE (integer)
SPH_MATCH_BOOLEAN (integer)
SPH_MATCH_EXTENDED (integer)
SPH_MATCH_FULLSCAN (integer)
SPH_MATCH_EXTENDED2 (integer)
SPH_RANK_PROXIMITY_BM25 (integer)
SPH_RANK_BM25 (integer)
SPH_RANK_NONE (integer)
SPH_RANK_WORDCOUNT (integer)
SPH_SORT_RELEVANCE (integer)
SPH_SORT_ATTR_DESC (integer)
SPH_SORT_ATTR_ASC (integer)
SPH_SORT_TIME_SEGMENTS (integer)
SPH_SORT_EXTENDED (integer)
SPH_SORT_EXPR (integer)
SPH_FILTER_VALUES (integer)
SPH_FILTER_RANGE (integer)
SPH_FILTER_FLOATRANGE (integer)
SPH_ATTR_INTEGER (integer)
SPH_ATTR_TIMESTAMP (integer)
SPH_ATTR_ORDINAL (integer)
SPH_ATTR_BOOL (integer)
SPH_ATTR_FLOAT (integer)
SPH_ATTR_MULTI (integer)
SPH_GROUPBY_DAY (integer)
SPH_GROUPBY_WEEK (integer)
SPH_GROUPBY_MONTH (integer)
SPH_GROUPBY_YEAR (integer)
SPH_GROUPBY_ATTR (integer)
SPH_GROUPBY_ATTRPAIR (integer)



Exemples

Exemple #1 Exemple simple

<?php

$s 
= new SphinxClient;
$s->setServer("localhost"6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result $s->query("test");

var_dump($result);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(10) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(3) {
    [0]=>
    string(7) "subject"
    [1]=>
    string(4) "body"
    [2]=>
    string(6) "author"
  }
  ["attrs"]=>
  array(0) {
  }
  ["matches"]=>
  array(1) {
    [3]=>
    array(2) {
      ["weight"]=>
      int(1)
      ["attrs"]=>
      array(0) {
      }
    }
  }
  ["total"]=>
  int(1)
  ["total_found"]=>
  int(1)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["to"]=>
    array(2) {
      ["docs"]=>
      int(1)
      ["hits"]=>
      int(1)
    }
  }
}


La classe SphinxClient

Introduction

La classe SphinxClient fournit une interface orientée objet avec Sphinx.

Synopsis de la classe

SphinxClient {
/* Méthodes */
public int addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] )
public array buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )
public array buildKeywords ( string $query , string $index , bool $hits )
public bool close ( void )
__construct ( void )
public string escapeString ( string $string )
public string getLastError ( void )
public string getLastWarning ( void )
public bool open ( void )
public array query ( string $query [, string $index = "*" [, string $comment = "" ]] )
public void resetFilters ( void )
public void resetGroupBy ( void )
public array runQueries ( void )
public bool setArrayResult ( bool $array_result = false )
public bool setConnectTimeout ( float $timeout )
public bool setFieldWeights ( array $weights )
public bool setFilter ( string $attribute , array $values [, bool $exclude = false ] )
public bool setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = false ] )
public bool setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = false ] )
public bool setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )
public bool setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] )
public bool setGroupDistinct ( string $attribute )
public bool setIDRange ( int $min , int $max )
public bool setIndexWeights ( array $weights )
public bool setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] )
public bool setMatchMode ( int $mode )
public bool setMaxQueryTime ( int $qtime )
public bool setOverride ( string $attribute , int $type , array $values )
public bool setRankingMode ( int $ranker )
public bool setRetries ( int $count [, int $delay = 0 ] )
public bool setSelect ( string $clause )
public bool setServer ( string $server , int $port )
public bool setSortMode ( int $mode [, string $sortby ] )
public array status ( void )
public int updateAttributes ( string $index , array $attributes , array $values [, bool $mva = false ] )
}

SphinxClient::addQuery

(PECL sphinx >= 0.1.0)

SphinxClient::addQueryAjoute une requête à un batch multiple

Description

public int SphinxClient::addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] )

Ajoute une requête à un batch multi-requête. Cette méthode n'affecte pas la configuration courante (tri, filtrage, regroupement, etc.).

Liste de paramètres

query

La chaîne de requête.

index

Un nom d'index (ou des noms).

comment

Valeurs de retour

Retourne un index dans le tableau de résultat, qui sera retourné par SphinxClient::runQueries ou FALSE sinon.



SphinxClient::buildExcerpts

(PECL sphinx >= 0.1.0)

SphinxClient::buildExcerptsConstruit les extraits de texte

Description

public array SphinxClient::buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )

Se connecte à searchd, et l'interroge pour générer des extraits de texte à partir des documents fournis, et retourne le résultat.

Liste de paramètres

docs

Un tableau de chaînes avec le contenu des documents.

index

Le nom d'index.

words

Les mots clés à mettre en valeur.

opts

Un tableau associatif avec les options de mise en valeur.

Options de mise en valeur
Option Description
"before_match" Une chaîne à insérer avant le mot clé. Par défaut vaut "<b>".
"after_match" Une chaîne à insérer après le mot clé. Par défaut vaut "</b>".
"chunk_separator" Une chaîne à insérer entre les extraits. Par défaut vaut " ... ".
"limit" Taille maximale d'un extrait, en symboles. Entier, par défaut vaut 256.
"around" Nombre de mots à afficher autour du mot-clé. Entier, par défaut vaut 5.
"exact_phrase" S'il faut mettre en valeur la phrase de recherche complète, ou bien les mots-clé individuels. Booléen, par défaut vaut FALSE.
"single_passage" S'il faut extraire le meilleur passage uniquement. Par défaut vaut FALSE.

Valeurs de retour

Retourne un tableau d'extraits, en cas de succès ou FALSE si une erreur survient.



SphinxClient::buildKeywords

(PECL sphinx >= 0.1.0)

SphinxClient::buildKeywordsExtrait les mots-clés d'une requête

Description

public array SphinxClient::buildKeywords ( string $query , string $index , bool $hits )

Extrait les mots-clés de la requête query en utilisant l'analyseur donné par index, optionnellement avec des statistiques d'occurrences par mot-clé.

Liste de paramètres

query

Une requête dont il faut extraire les mots-clés.

index

Un index pour obtenir les configurations d'analyse et les statistiques d'occurrences.

hits

Une option pour activer ou désactiver les statistiques de mots-clés.

Valeurs de retour

Retourne un tableau de tableaux associatifs avec les informations par mot-clé.



SphinxClient::close

(PECL sphinx >= 1.0.3)

SphinxClient::closeFerme une connexion persistante ouverte

Description

public bool SphinxClient::close ( void )

Ferme une connexion persistante ouverte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Historique

Version PECL/sphinx Description
1.0.3 Ajout de SphinxClient::close(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



SphinxClient::__construct

(PECL sphinx >= 0.1.0)

SphinxClient::__constructCrée un nouvel objet SphinxClient

Description

SphinxClient::__construct ( void )

Crée un nouvel objet SphinxClient.

Liste de paramètres

Cette fonction ne contient aucun paramètre.



SphinxClient::escapeString

(PECL sphinx >= 0.1.0)

SphinxClient::escapeStringProtège les caractères spéciaux

Description

public string SphinxClient::escapeString ( string $string )

Protège les caractères qui sont traités de manière particulière par l'analyseur.

Liste de paramètres

string

La chaîne à protéger.

Valeurs de retour

Retourne la chaîne protégée.



SphinxClient::getLastError

(PECL sphinx >= 0.1.0)

SphinxClient::getLastErrorLit le dernier message d'erreur

Description

public string SphinxClient::getLastError ( void )

Retourne le dernier message d'erreur. S'il n'y a pas eu d'erreur lors des appels à l'API, une chaîne vide est retournée. Cette méthode ne remet pas à zéro les messages, donc vous pouvez l'appeler aussi souvent que vous voulez.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le dernier message d'erreur, ou une chaîne vide s'il n'y a pas eu d'erreur.



SphinxClient::getLastWarning

(PECL sphinx >= 0.1.0)

SphinxClient::getLastWarningLit la dernière alerte

Description

public string SphinxClient::getLastWarning ( void )

Retourne le dernier message d'alerte. S'il n'y a pas eu d'alerte lors des appels à l'API, une chaîne vide est retournée. Cette méthode ne remet pas à zéro les messages, donc vous pouvez l'appeler aussi souvent que vous voulez.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le dernier message d'alerte, ou une chaîne vide s'il n'y a pas eu d'alerte.



SphinxClient::open

(PECL sphinx >= 1.0.3)

SphinxClient::openÉtablit une connexion persistante avec le serveur

Description

public bool SphinxClient::open ( void )

Établit une connexion persistante avec le serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Historique

Version PECL/sphinx Description
1.0.3 Ajout de SphinxClient::open(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



SphinxClient::query

(PECL sphinx >= 0.1.0)

SphinxClient::queryExécute une requête de recherche

Description

public array SphinxClient::query ( string $query [, string $index = "*" [, string $comment = "" ]] )

Se connecte au serveur searchd, exécute une requête de recherche, puis lit les résultats obtenus.

Liste de paramètres

query

La chaîne de requête.

index

Un nom d'index (ou plusieurs noms).

comment

Valeurs de retour

En cas de réussite, la fonction SphinxClient::query() retourne une liste d'occurrences, et des statistiques de requête. Le jeu de résultats est un tableau associatif avec les index suivants :

Structure du jeu de résultats
Index Description
"matches" Un tableau avec les identifiants de documents comme clé, et leur poids et attributs comme valeur.
"total" Le nombre total de résultats trouvés, et lus (cela dépend de la configuration)
"total_found" Le nombre total de document trouvés, en accord avec la requête
"words" Un tableau de mots (avec casse standard et racine), ainsi que des statistiques de mot comme valeur
"error" Le message d'erreur de requête, tel de signalé par searchd
"warning" L'alerte, rapportée par searchd



SphinxClient::resetFilters

(PECL sphinx >= 0.1.0)

SphinxClient::resetFiltersSupprime tous les filtres

Description

public void SphinxClient::resetFilters ( void )

Supprime tous les filtres courant. Cet appel est normalement nécessaire quand vous utilisez des requêtes multiples. Vous pouvez configurer différents filtres pour différentes requêtes d'un jeu de requêtes. Pour cela, vous devez appeler SphinxClient::resetFilters() et ajouter les nouveaux filtres à chaque appel.

Valeurs de retour

Aucune valeur n'est retournée.



SphinxClient::resetGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::resetGroupBySupprime toutes les configurations de regroupement

Description

public void SphinxClient::resetGroupBy ( void )

Supprime toutes les directives de regroupement et désactive les regroupements. Cet appel est normalement uniquement nécessaire quand vous utilisez des requêtes multiples.

Valeurs de retour

Aucune valeur n'est retournée.



SphinxClient::runQueries

(PECL sphinx >= 0.1.0)

SphinxClient::runQueriesExécute une série de requêtes de recherche

Description

public array SphinxClient::runQueries ( void )

Se connecte à searchd, exécute une série de requêtes avec SphinxClient::addQuery, obtient et retourne un jeu de résultats.

Valeurs de retour

Retourne FALSE en cas d'échec, et un tableau de résultats sinon.



SphinxClient::setArrayResult

(PECL sphinx >= 0.1.0)

SphinxClient::setArrayResultChange le format du tableau de résultats

Description

public bool SphinxClient::setArrayResult ( bool $array_result = false )

Contrôle le format du jeu de résultats : si les résultats doivent être retournés sous forme de tableau numérique ou associatif.

Liste de paramètres

array_result

Si array_result est FALSE, les résultats sont retournés sous forme de tableau associatif, avec les identifiants de documents sous forme de clé, et les autres informations (poids, attributs) comme valeurs. Si array_result vaut TRUE, les résultats sont retournés sous forme d'un tableau numérique, comprenant aussi les informations d'identification.

Valeurs de retour

Retourne toujours TRUE.



SphinxClient::setConnectTimeout

(PECL sphinx >= 0.1.0)

SphinxClient::setConnectTimeoutConfigure le délai d'expiration de connexion

Description

public bool SphinxClient::setConnectTimeout ( float $timeout )

Configure le délai d'expiration de connexion (en secondes) pour une connexion à searchd.

Liste de paramètres

timeout

Délai en secondes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setFieldWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setFieldWeightsConfigure le poids des champs

Description

public bool SphinxClient::setFieldWeights ( array $weights )

Donne un poids différent à chaque champ.

Le calcul de la pertinence peut être affecté par les poids de chaque champ. Voyez la » documentation Sphinx pour une explication sur la modification du classement. Cet appel vous permet de spécifier des valeurs différente de celles par défaut pour les poids dans les recherches en texte intégral.

Le poids doit être un entier de 32 bits : veillez à ne pas être bloqués par la limite de ces entiers. Le poids final est aussi un entier de 32 bits. Le poids par défaut est 1. Les champs inconnus sont ignorés.

Liste de paramètres

weights

Un tableau associatif de noms de champ et leur poids.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setFilter

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterAjoute un nouveau filtre entier

Description

public bool SphinxClient::setFilter ( string $attribute , array $values [, bool $exclude = false ] )

Ajoute un nouveau filtre entier à la liste des filtres courante.

Liste de paramètres

attribute

Un nom d'attribut.

values

Un tableau de valeurs entières.

exclude

S'il vaut TRUE, les documents sont exclus du résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setFilterFloatRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterFloatRangeAjoute un nouveau filtre décimal

Description

public bool SphinxClient::setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = false ] )

Ajoute un nouveau filtre décimal à la liste des filtres en cours. Seul les documents qui ont une valeur attribute dans leur index, dont la valeur est entre min et max (y compris les valeurs égales exactement à min et max) seront acceptées (ou rejetées, si exclude vaut TRUE).

Liste de paramètres

attribute

Un nom d'attribut.

min

Valeur minimale.

max

Valeur maximale.

exclude

Si cette option vaut TRUE, les documents associés seront exclus de la liste de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setFilterRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterRangeAjoute un nouveau filtre d'intervalle

Description

public bool SphinxClient::setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = false ] )

Ajoute un nouveau filtre entier à la liste des filtres en court. Seul les documents qui ont une valeur attribute dans leur index, dont la valeur est entre min et max (y compris les valeurs égales exactement à min et max) seront acceptées (ou rejetées, si exclude vaut TRUE).

Liste de paramètres

attribute

Un nom d'attribut.

min

Valeur minimale.

max

Valeur maximale.

exclude

Si cette option vaut TRUE, les documents associés seront exclus de la liste de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setGeoAnchor

(PECL sphinx >= 0.1.0)

SphinxClient::setGeoAnchorConfigure le point d'origine pour les calculs géographiques

Description

public bool SphinxClient::setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )

Configure le point d'origine pour les calculs géographiques.

Une fois que l'origine est configurée, vous pouvez utiliser l'attribut magique "@geodist" dans vos filtres et vos expressions de tri.

Liste de paramètres

attrlat

Nom de l'attribut de latitude.

attrlong

Nom de l'attribut de longitude.

latitude

Latitude d'origine en radians.

longitude

Longitude d'origine en radians.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupByConfigure les attributs de regroupement

Description

public bool SphinxClient::setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] )

Configure les attributs de regroupement, de mode de tri de gropue, et active les regroupements.

Les fonctionnalités de regroupement sont similaires à la clause GROUP BY de SQL. Les résultats produits par cette fonction sont les mêmes que ceux de la requêtes SQL suivante : SELECT ... GROUP BY $func($attribute) ORDER BY $groupsort.

Liste de paramètres

attribute

Une chaîne contenant le nom de l'attribut de regroupement.

func

Une constante, qui choisit la fonction appliquée au groupe de résultats, pour effectuer le regroupement.

groupsort

Une clause optionnelle qui contrôle le tri du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setGroupDistinct

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupDistinctConfigure les calculs au niveau des valeurs distinctes

Description

public bool SphinxClient::setGroupDistinct ( string $attribute )

Configure les attributs pour les valeurs dans les regroupements distincts. Uniquement utilisable dans les requêtes de regroupement. Pour chaque groupe, toutes les valeurs de attribute sont stockées, puis leur nombre de leur valeurs distinctes sont calculées et retournées au client. Cette fonction est similaire à la clause COUNT(DISTINCT) en SQL.

Liste de paramètres

attribute

Une chaîne contenant un nom d'attribut de regroupement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setIDRange

(PECL sphinx >= 0.1.0)

SphinxClient::setIDRangeConfigure l'intervalle de validité des identifiants de document

Description

public bool SphinxClient::setIDRange ( int $min , int $max )

Configure l'intervalle de validité des identifiants de document. Par défaut, l'intervalle est de 0 à 0, c'est à dire sans limite. Seuls, les documents qui ont un identifiant entre les valeurs min et max (incluant les identifiants égaux exactements à min et max) seront retournés.

Liste de paramètres

min

Valeur minimale d'identifiant.

max

Valeur maximale d'identifiant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setIndexWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setIndexWeightsConfigure les poids de chaque index

Description

public bool SphinxClient::setIndexWeights ( array $weights )

Configure les poids de chaque index, et active ces poids pour calculer la pertinence à travers les index.

Liste de paramètres

weights

Un tableau associatif avec les noms des index comme clé, et les poids comme valeur. Par défaut, un tableau vide correspond à la désactivation des poids d'index.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setLimits

(PECL sphinx >= 0.1.0)

SphinxClient::setLimitsConfigure l'offset et la limite du résultat

Description

public bool SphinxClient::setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] )

Configure l'offset du résultat et la quantité de résultats à retourner au client à partir de cette position (avec l'argument limit). Peut aussi controler la taille maximale du jeu de résultats de la requête avec le paramètre max_matches, et le seuil minimum de résultats avec cutoff.

Liste de paramètres

offset

L'offset dans le résultat.

limit

Le nombre de résultats à retenir.

max_matches

Contrôle le nombre de résultats que searchd va conserver en RAM durant la recherche.

cutoff

Utilisé pour des contrôles avancés de performances. Il indique à searchd d'arrêter sa recherche lorsque cutoff ont été trouvés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setMatchMode

(PECL sphinx >= 0.1.0)

SphinxClient::setMatchModeConfigure le mode de recherche en texte intégral

Description

public bool SphinxClient::setMatchMode ( int $mode )

Configure le mode de recherche en texte intégral. mode est une des constantes listées ci-dessous :

Modes de recherche
Constante Description
SPH_MATCH_ALL Recherche tous les mots de la requête (mode par défaut).
SPH_MATCH_ANY Recherche n'importe quel mot de la requête.
SPH_MATCH_PHRASE Recherche la requête comme une phrase.
SPH_MATCH_BOOLEAN Recherche la requête comme une expression booléenne.
SPH_MATCH_EXTENDED Recherche la requête comme une expression Sphinx, dans son langage interne.
SPH_MATCH_FULLSCAN Active la recherche intégrale.
SPH_MATCH_EXTENDED2 Identique à SPH_MATCH_EXTENDED avec le classement et la recherche par quorum en plus.

Liste de paramètres

mode

Mode de recherche.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setMaxQueryTime

(PECL sphinx >= 0.1.0)

SphinxClient::setMaxQueryTimeConfigure la durée maximale de recherche

Description

public bool SphinxClient::setMaxQueryTime ( int $qtime )

Configure la durée maximale de recherche.

Liste de paramètres

qtime

La durée maximale d'exécution de la requête, en millisecondes. Elle doit être un entier non-négatif. Par défaut, vaut 0, soit, aucune limite.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setOverride

(PECL sphinx >= 1.0.3)

SphinxClient::setOverrideDéfinit temporairement la valeur d'attribut pour un document

Description

public bool SphinxClient::setOverride ( string $attribute , int $type , array $values )

Définit temporairement (pour une requête) la valeur d'attribut d'un document. Cette fonctionnalité vous permet d'écraser temporairement les valeurs d'attribut d'une mise à jour pour une requête, laissant toutes les autres requêtes inchangées. Ceci est utile pour personnaliser les données.

Liste de paramètres

attribute

Le nom de l'attribut.

type

Le type de l'attribut. Ne supporte que les attributs scalaires.

values

Tableau de valeurs d'attribut, qui lie les identifiants du document dont les valeurs doivent être écrasées.

Historique

Version PECL/sphinx Description
1.0.3 Ajout de SphinxClient::setOverride(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setRankingMode

(PECL sphinx >= 0.1.0)

SphinxClient::setRankingModeConfigure le mode de classement

Description

public bool SphinxClient::setRankingMode ( int $ranker )

Configure le mode de classement. Uniquement disponible avec le mode de recherche SPH_MATCH_EXTENDED2.

Ranking modes
Constante Description
SPH_RANK_PROXIMITY_BM25 Mode de classement par défaut, avec un calcul de proximité et un tri BM25.
SPH_RANK_BM25 Mode de classement statistique, qui utilise le classement BM25 uniquement (similaire à celui de nombreux autres moteurs de recherche en texte intégral). Ce mode est plus rapide, mais peut conduire à des résultats de piètre qualité sur les requêtes qui requièrent plus d'un mot clé.
SPH_RANK_NONE Désactive le classement. Ce mode est le plus rapide. Il est essentiellement équivalent à une recherche booléenne, avec un poids de 1 associé à chaque occurrence.

Liste de paramètres

ranker

Mode de classement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setRetries

(PECL sphinx >= 0.1.0)

SphinxClient::setRetriesConfigure le nombre de tentatives et le délai d'expiration

Description

public bool SphinxClient::setRetries ( int $count [, int $delay = 0 ] )

Configure le nombre de tentatives et le délai d'expiration.

En cas d'indisponibilité temporaire, searchd tente de se reconnecter count fois par agent. delay est le délai d'attente entre chaque tentative, exprimé en millisecondes. Les tentatives sont désactivées par défaut. Notez que cet appel ne va pas forcer l'API à effectuer de multiples tentatives en cas d'échec : c'est searchd qui le fera.

Liste de paramètres

count

Le nombre de tentatives.

delay

Le délai entre les tentatives, en millisecondes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setSelect

(PECL sphinx >= 1.0.1)

SphinxClient::setSelectDéfinit une clause à la sélection

Description

public bool SphinxClient::setSelect ( string $clause )

Définit la clause de sélection, liste les attributs à récupérer ainsi que les expressions pour exécution et récupération.

Liste de paramètres

clause

Clause sous la forme SQL.

Historique

Version PECL/sphinx Description
1.0.1 Ajout de SphinxClient::setSelect(), disponible uniquement si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setServer

(PECL sphinx >= 0.1.0)

SphinxClient::setServerConfigure l'hôte et le port searchd

Description

public bool SphinxClient::setServer ( string $server , int $port )

Configure l'hôte et le port searchd. Toutes les requêtes suivantes seront envoyées au nouvel hôte. Par défaut, l'hôte et le port sont 'localhost' et 3312, respectivement.

Liste de paramètres

server

IP ou nom d'hôte.

port

Numéro de port.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::setSortMode

(PECL sphinx >= 0.1.0)

SphinxClient::setSortModeConfigure le mode de tri

Description

public bool SphinxClient::setSortMode ( int $mode [, string $sortby ] )

Configure le mode de tri. Les modes possibles sont listés ci-dessous.

Sorting modes
Constante Description
SPH_SORT_RELEVANCE Tri par pertinence, en ordre décroissant (meilleures occurences en premier).
SPH_SORT_ATTR_DESC Tri par un attribut, en ordre décroissant (plus grandes valeurs en premier).
SPH_SORT_ATTR_ASC Tri par un attribut, en ordre croissant (plus petites valeurs en premier).
SPH_SORT_TIME_SEGMENTS Tri par segment de temps (dernière heure, jour, semaine, mois), en ordre descendant, et par pertinence en ordre décroissant.
SPH_SORT_EXTENDED Tri par combinaison de colonnes, comme en SQL.
SPH_SORT_EXPR Tri par expression arithmétique.

Liste de paramètres

mode

Mode de tri.

sortby

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SphinxClient::status

(PECL sphinx >= 1.0.3)

SphinxClient::statusRécupère le statut de searchd

Description

public array SphinxClient::status ( void )

Récupère le statut de searchd, et retourne un tableau contenant les paires noms/valeurs des variables représentant le statut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Historique

Version PECL/sphinx Description
1.0.3 Ajout de SphinxClient::status(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Retourne un tableau associatif contenant les statistiques du serveur de recherche, ou FALSE si une erreur survient.



SphinxClient::updateAttributes

(PECL sphinx >= 0.1.0)

SphinxClient::updateAttributesModifie les attributs d'un document

Description

public int SphinxClient::updateAttributes ( string $index , array $attributes , array $values [, bool $mva = false ] )

Moifie un attribut dans un document.

Liste de paramètres

index

Le nom de l'index à modifier.

attributes

Un tableau de noms d'attributs, qui liste les attributs qui doivent être modifiées.

values

Un tableau associatif contenant les identifiants de documents comme clé, et un tableau d'attribut avec le nom des attributs et leur valeur.

Valeurs de retour

Retourne le nombre de documents réellement modifiées (0 ou plus), en cas de succès, et FALSE on failure.


Sommaire




Indexation Swish


Introduction

L'extension swish fournit la liaison avec l'API Swish-e. Swish-e est l'acronyme de "Simple Web Indexing System for Humans - Enhanced". Il s'agit d'un programme de code source libre pour l'indexation et la recherche. Swish-e lui-même est régi par la licence GPL, mais utilise une clause qui permet aux applications de se lier à la bibliothèque si chaque copie de travail est accompagnée par l'URL de Swish-e code source. Ce lien est : » http://swish-e.org.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

PECL/swish requiert PHP 5.1.3 ou plus récent.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/swish.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Swish::META_TYPE_UNDEF (entier)
Swish::META_TYPE_STRING (entier)
Swish::META_TYPE_ULONG (entier)
Swish::META_TYPE_DATE (entier)
Swish::IN_FILE_BIT (entier)
Swish::IN_TITLE_BIT (entier)
Swish::IN_HEAD_BIT (entier)
Swish::IN_BODY_BIT (entier)
Swish::IN_COMMENTS_BIT (entier)
Swish::IN_HEADER_BIT (entier)
Swish::IN_EMPHASIZED_BIT (entier)
Swish::IN_META_BIT (entier)
Swish::IN_FILE (entier)
Swish::IN_TITLE (entier)
Swish::IN_HEAD (entier)
Swish::IN_BODY (entier)
Swish::IN_COMMENTS (entier)
Swish::IN_HEADER (entier)
Swish::IN_EMPHASIZED (entier)
Swish::IN_META (entier)
Swish::IN_ALL (entier)


Exemples

Sommaire


Utilisation simple

Exemple #1 Requête de recherche simple

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$results $swish->query("test OR text");

    echo 
"Trouvé "$results->hits" résultats\n";
    while (
$result $results->nextResult()) {
        
var_dump($result);
        break; 
//arrête après le premier résultat
    
}

} catch (
SwishException $e) {
    echo 
"Erreur : "$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé 9 résultats
object(SwishResult)#3 (8) {
  ["swishreccount"]=>
  int(1)
  ["swishrank"]=>
  int(1000)
  ["swishfilenum"]=>
  int(10)
  ["swishdbfile"]=>
  string(13) "index.swish-e"
  ["swishdocpath"]=>
  string(23) "README.SUBMITTING_PATCH"
  ["swishtitle"]=>
  NULL
  ["swishdocsize"]=>
  int(4557)
  ["swishlastmodified"]=>
  int(1072136752)
}



Fonctions Swish


Swish::__construct

(PECL swish >= 0.1.0)

Swish::__constructConstruit un objet Swish

Description

void Swish::__construct ( string $index_names )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_names

La liste de fichiers d'index séparés par des espaces.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple avec Swish::__construct()

<?php

try {
    
$swish = new Swish("index1 index2");
} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

foreach (
$swish->indexes as $index) {
    
var_dump($index["name"]);
    
var_dump($index["headers"]["Total Words"]);
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(6) "index1"
int(1888)
string(6) "index2"
int(2429)



Swish->getMetaList

(PECL swish >= 0.1.0)

Swish->getMetaListRécupère la liste de méta-données de l'index

Description

array Swish->getMetaList ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

Le nom du fichier d'index.

Valeurs de retour

Retourne un tableau de méta-données pour un index donné.

Exemples

Exemple #1 Exemple simple avec Swish->getMetaList()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
var_dump($swish->getMetaList("index.swish-e"));

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(3) {
    ["Name"]=>
    string(12) "swishdefault"
    ["Type"]=>
    int(0)
    ["ID"]=>
    int(1)
  }
}



Swish->getPropertyList

(PECL swish >= 0.1.0)

Swish->getPropertyListRécupère la liste de propriétés pour un index

Description

array Swish->getPropertyList ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

Le nom du fichier d'index.

Valeurs de retour

Retourne un tableau de propriétés pour un index donné.

Exemples

Exemple #1 Exemple simple avec Swish->getPropertyList()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$properties $swish->getPropertyList("index.swish-e");
    foreach (
$properties as $prop) {
        echo 
$prop["Name"],"\n";
    }

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

swishreccount
swishrank
swishfilenum
swishdbfile
swishdocpath
swishtitle
swishdocsize
swishlastmodified



Swish->prepare

(PECL swish >= 0.1.0)

Swish->preparePrépare une requête de recherche

Description

object Swish->prepare ([ string $query ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Prépare et retourne un objet de recherche que vous pouvez utiliser pour un nombre illimité de requêtes.

Liste de paramètres

query

Chaîne de requête optionnelle. La requête peut être aussi spécifiée en utilisant la méthode SwishSearch->execute().

Valeurs de retour

Retourne un objet SwishSearch.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec Swish->prepare()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare("search query");
    
$results $search->execute();
    echo 
"Trouvé : "$results->hits" résultats\n";

    
$results $search->execute("new search");

    echo 
"Trouvé : "$results->hits" résultats\n";
} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé : 2 résultats
Trouvé : 5 résultats



Swish->query

(PECL swish >= 0.1.0)

Swish->queryExécute une requête et retourne un objet de résultats

Description

object Swish->query ( string $query )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Une méthode rapide pour exécuter une requête avec les paramètres par défaut.

Liste de paramètres

query

Chaîne de recherche.

Valeurs de retour

Retourne un objet SwishResults.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec Swish->query()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$results $swish->query("test query");

    echo 
"Trouvé : "$results->hits" résultats\n";

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé : 1 résultats



SwishResult->getMetaList

(PECL swish >= 0.1.0)

SwishResult->getMetaListRécupère une liste de méta-données

Description

array SwishResult->getMetaList ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Retourne le même tableau que swish->getmetalist(), mais utilise le fichier d'index à partir la variable résultat.



SwishResult->stem

(PECL swish >= 0.1.0)

SwishResult->stemTronque le mot donné

Description

array SwishResult->stem ( string $word )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Tronque le mot en se basant sur le mode flou utilisé pendant l'indexation. Chaque objet de résultat est lié à son index, donc les résultats sont basés sur cet index.

Liste de paramètres

word

Le mot à tronquer.

Valeurs de retour

Retourne un tableau contenant les variantes du mot tronqué (normalement qu'une seule).

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec SwishResult->stem()

<?php

try {

    
$swish = new Swish("ext/swish/tests/index.swish-e");
    
$results $swish->query("testing OR others");

    if (
$result $results->nextResult()) {
        
var_dump($result->stem("testing")); // les résultats dépendent de la troncature du mot dans l'index
        
var_dump($result->stem("others"));
    }

} catch (
SwishException $e) {
    echo 
"Erreur : "$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  string(4) "test"
}
array(1) {
  [0]=>
  string(5) "other"
}



SwishResults->getParsedWords

(PECL swish >= 0.1.0)

SwishResults->getParsedWordsRécupère un tableau de mots analysés

Description

array SwishResults->getParsedWords ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

indexi_name

Le nom de l'index utilisé pour initialiser l'objet Swish.

Valeurs de retour

Un tableau de mots analysés avec les mots non significatifs supprimés. La liste des mots analysés peut être utile pour mettre en évidence les termes de recherche dans les résultats.

Exemples

Exemple #1 Exemple simple avec SwishResults->getParsedWords()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$results $swish->query("'some characters' and numbers");

    
var_dump($results->getParsedWords("index.swish-e"));
    
var_dump($results->indexes[0]['parsed_words']); // même résultat de manière différente

} catch (SwishException $e) {
    echo 
"Erreur : "$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}
array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}



SwishResults->getRemovedStopwords

(PECL swish >= 0.1.0)

SwishResults->getRemovedStopwordsRécupère un tableau de mots non significatifs supprimés de la requête

Description

array SwishResults->getRemovedStopwords ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

Le nom de l'index utilisé pour initialiser l'objet Swish.

Valeurs de retour

Retourne un tableau de mots non significatifs supprimés de la requête.



SwishResults->nextResult

(PECL swish >= 0.1.0)

SwishResults->nextResultRécupère le prochain résultat de la recherche

Description

object SwishResults->nextResult ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Retourne le prochain objet SwishResult dans l'ensemble de résultats ou FALSE s'il n'y a plus de résultat disponible.

Exemples

Exemple #1 Exemple simple avec SwishResults->nextResult()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute("lost");
    while(
$result $results->nextResult()) {
        
/* faire quelque chose avec l'objet résultat */
    
}

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>



SwishResults->seekResult

(PECL swish >= 0.1.0)

SwishResults->seekResultSpécifie le pointeur de recherche à une position donnée

Description

int SwishResults->seekResult ( int $position )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

position

Position commençant par zéro. Ne peut être inférieur à zéro.

Valeurs de retour

Retourne la nouvelle position en cas de succès.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec SwishResults->seekResult()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute("lost");

    
var_dump($results->seekResult(0)); // ceci fonctionnera
    
var_dump($results->seekResult(100)); // ceci échouera

} catch (SwishException $e) {
    echo 
"Erreur : "$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
Erreur : No more results



SwishSearch->execute

(PECL swish >= 0.1.0)

SwishSearch->executeExécute la recherche et récupère les résultats

Description

object SwishSearch->execute ([ string $query ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cherche le(s) fichier(s) d'index en se basant sur les paramètres dans l'objet de recherche.

Liste de paramètres

query

La chaîne de requête est un paramètre optionnel, elle peut être aussi spécifiée en utilisant la méthode Swish->prepare(). La requête est préservée entre les exécutions, ainsi vous pouvez la paramétrer une fois, mais vous pouvez exécuter la recherche plusieurs fois.

Valeurs de retour

Retourne l'objet SwishResults.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec SwishSearch->execute()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute("query");
    echo 
"Trouvé lors de la première requête : "$results->hits" résultats\n";

    
$results $search->execute("new OR query");
    echo 
"Trouvé lors de la seconde requête : "$results->hits" résultats\n";

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 2 résultats
Trouvé lors de la seconde requête : 12 résultats



SwishSearch->resetLimit

(PECL swish >= 0.1.0)

SwishSearch->resetLimitRéinitialise les limites de recherche

Description

void SwishSearch->resetLimit ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Réinitialise les limites de recherche précédemment fixées par SwishSearch->setLimit.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch->resetLimit()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute("time");
    echo 
"Trouvé lors de la première requête : "$results->hits" résultats\n";

    
$search->setLimit("swishdocsize""3000""6000"); // limite par la taille du document, entre 3000 et 6000 octets
    
$results $search->execute("time");
    echo 
"Trouvé lors de la seconde requête : "$results->hits" résultats\n";

    
$search->resetLimit();
    
$results $search->execute("time");
    echo 
"Trouvé lors de la troisième requête : "$results->hits" résultats\n";

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Trouvé lors de la seconde requête : 2 résultats
Trouvé lors de la troisième requête : 5 résultats



SwishSearch->setLimit

(PECL swish >= 0.1.0)

SwishSearch->setLimitSpécifie les limites de recherche

Description

void SwishSearch->setLimit ( string $property , string $low , string $high )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

property

Nom de la propriété du résultat de recherche.

low

La plus petite valeur de la propriété.

high

La plus grande valeur de la propriété.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SwishSearch->setLimit()

<?php
try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute("time");
    echo 
"Trouvé lors de la première requête : "$results->hits" résultats\n";

    
$i 0;
    while(
$result $results->nextResult()) {
        echo 
"Résultat #", ++$i" - "$result->swishdocsize" octets\n";
    }

    
$search->setLimit("swishdocsize""3000""6000"); // limite par la taille du document, entre 3000 et 6000 octets
    
$results $search->execute("time");
    echo 
"Trouvé lors de la seconde requête : "$results->hits" résultats\n";

    
$i 0;
    while(
$result $results->nextResult()) {
        echo 
"Résultat #", ++$i" - "$result->swishdocsize" octets\n";
    }

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Résultat #1 - 4261 octets
Résultat #2 - 37937 octets
Résultat #3 - 7126 octets
Résultat #4 - 15427 octets
Résultat #5 - 4768 octets
Trouvé lors de la seconde requête : 2 résultats
Résultat #1 - 4261 octets
Résultat #2 - 4768 octets



SwishSearch->setPhraseDelimiter

(PECL swish >= 0.1.0)

SwishSearch->setPhraseDelimiterSpécifie le délimiteur de phrase

Description

void SwishSearch->setPhraseDelimiter ( string $delimiter )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

delimiter

Caractère de délimitation de phrase. Le délimiteur par défaut est le guillemet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch->setPhraseDelimiter()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute('"every time"'); // recherche pour "every time"
    
echo "Trouvé lors de la première requête : "$results->hits" résultats\n";

    
$search->setPhraseDelimiter("'");
    
$results $search->execute("'every time'"); // la même requête, mais utilisant un délimiteur différent
    
echo "Trouvé lors de la seconde requête : "$results->hits" résultats\n";

    
$search->setPhraseDelimiter('"');
    
$results $search->execute("'every time'"); // recherche pour "every" et "time"
    
echo "Trouvé lors de la troisième requête : "$results->hits" résultats\n";

    
// Regardons les mots analysés
    
var_dump($results->getParsedWords("index.swish-e"));

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 1 résultats
Trouvé lors de la seconde requête : 1 résultats
Trouvé lors de la troisième requête : 2 résultats
array(2) {
  [0]=>
  string(5) "every"
  [1]=>
  string(4) "time"
}



SwishSearch->setSort

(PECL swish >= 0.1.0)

SwishSearch->setSortSpécifie l'ordre

Description

void SwishSearch->setSort ( string $sort )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

sort

L'ordre des résultats est une chaîne de caractères contenant le nom d'une propriété de résultat combinée avec une direction ("asc" ou "desc"). Exemples : "swishrank desc", "swishdocpath asc", "swishtitle asc", "swishdocsize desc", "swishlastmodified desc" etc.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch->setSort()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute("time");
    echo 
"Trouvé lors de la première requête : "$results->hits" résultats\n";

    
$i 0;
    while(
$result $results->nextResult()) {
        echo 
"Résultat #", ++$i" - "$result->swishdocsize" octets\n";
    }

    
$search->setSort("swishdocsize desc"); // ordonne par taille de document
    
$results $search->execute("time");
    echo 
"Trouvé lors de la seconde requête : "$results->hits" résultats\n";

    
$i 0;
    while(
$result $results->nextResult()) {
        echo 
"Résultat #", ++$i" - "$result->swishdocsize" octets\n";
    }

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Hit #1 - 4261 octets
Hit #2 - 37937 octets
Hit #3 - 7126 octets
Hit #4 - 15427 octets
Hit #5 - 4768 octets
Trouvé lors de la seconde requête : 5 résultats
Hit #1 - 37937 octets
Hit #2 - 15427 octets
Hit #3 - 7126 octets
Hit #4 - 4768 octets
Hit #5 - 4261 octets



SwishSearch->setStructure

(PECL swish >= 0.1.0)

SwishSearch->setStructureSpécifie le flag de structure dans l'objet de recherche

Description

void SwishSearch->setStructure ( int $structure )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

structure

Le flag de structure est un masque de bit utilisé pour limiter la recherche à certaines parties de documents HTML (comme "title", "meta", "body" etc.). Ces valeurs possibles sont listées ci-dessous. Pour combiner plusieurs valeurs, utilisez l'opérateur OR, voyez l'exemple ci-dessous.

  • Swish::IN_FILE

  • Swish::IN_TITLE

  • Swish::IN_HEAD

  • Swish::IN_BODY

  • Swish::IN_COMMENTS

  • Swish::IN_HEADER

  • Swish::IN_EMPHASIZED

  • Swish::IN_META

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch->setStructure()

<?php

try {

    
$swish = new Swish("index.swish-e");
    
$search $swish->prepare();

    
$results $search->execute("time");
    echo 
"Trouvé lors de la première requête : "$results->hits" résultats\n";

    
$search->setStructure(Swish::IN_TITLE|Swish::IN_HEAD); // cherche dans le title et head
    
$results $search->execute("time");
    echo 
"Trouvé lors de la seconde requête : "$results->hits" résultats\n";

    
$search->setStructure(Swish::IN_ALL); //cherche dans tout le document, la valeur par défaut
    
$results $search->execute("time");
    echo 
"Trouvé lors de la troisième requête : "$results->hits" résultats\n";

} catch (
SwishException $e) {
    echo 
$e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Trouvé lors de la seconde requête : 0 résultats
Trouvé lors de la troisième requête : 5 résultats


Sommaire




Apache Solr


Introduction

L'extension Solr autorise la communication avec le serveur Apache Solr en PHP 5.

L'extension Solr est une bibliothèque rapide, légère et riche qui autorise les développeurs PHP à communiquer efficacement avec les instances de serveur Solr.

Elle est compatible avec les versions 1.3 et 1.4 d'Apache Solr.

Elle contient des outils pour ajouter des documents mais aussi pour faire des mises à jour sur le serveur Solr.

Elle contient également des outils qui permettent de construire des requêtes avancées à destination du serveur pour y rechercher des documents.



Installation/Configuration

Sommaire


Pré-requis

PHP en version 5.2.11 et suivant est requis.

Les extensions libxml et curl doivent aussi être activées afin de rendre disponible l'extension Apache Solr.

libxml2 en version 2.6.31 et suivant est requis.

libcurl en version 7.18.0 et suivant est aussi requis.

Les versions de bibliothèque ci-dessus sont nécessaires et tenter de modifier le code pour compiler cette extension avec des bibliothèques de version différente n'est pas recommandé. Cela pourrait échouer avec des erreurs qui pourraient être très difficile à déboguer.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/solr.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note:

Le module Solr peut être compilé en mode de déboguage en passant l'option de configuration --enable-solr-debug.

Lors d'une compilation manuelle, assurez-vous d'inclure le support curl et libxml.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SOLR_MAJOR_VERSION (integer)
SOLR_MINOR_VERSION (integer)
SOLR_PATCH_VERSION (integer)
SOLR_EXTENSION_VERSION (string)



Fonctions Solr


solr_get_version

(PECL solr >= 0.9.1)

solr_get_versionRetourne la version courante de l'extension Solr utilisée par Apache

Description

string solr_get_version ( void )

Cette fonction retourne la version courante de l'extension, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un chaîne de caractères en cas de succès, et FALSE si une erreur survient.

Erreurs / Exceptions

Cette fonction ne lance aucune erreur ni exception.

Exemples

Exemple #1 Exemple avec solr_get_version()

<?php

$solr_version 
solr_get_version();

print 
$solr_version;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


0.9.6

Voir aussi


Sommaire

  • solr_get_version — Retourne la version courante de l'extension Solr utilisée par Apache


Exemples

Exemples d'utilisation de l'extension Apache Solr en PHP.

Exemple #2 Contenu du fichier BootStrap

<?php

/* Domain name of the Solr server */
define('SOLR_SERVER_HOSTNAME''solr.example.com');

/* Whether or not to run in secure mode */
define('SOLR_SECURE'true);

/* HTTP Port to connection */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 8983));

/* HTTP Basic Authentication Username */
define('SOLR_SERVER_USERNAME''admin');

/* HTTP Basic Authentication password */
define('SOLR_SERVER_PASSWORD''changeit');

/* HTTP connection timeout */
/* This is maximum time in seconds allowed for the http data transfer operation. Default value is 30 seconds */
define('SOLR_SERVER_TIMEOUT'10);

/* File name to a PEM-formatted private key + private certificate (concatenated in that order) */
define('SOLR_SSL_CERT''certs/combo.pem');

/* File name to a PEM-formatted private certificate only */
define('SOLR_SSL_CERT_ONLY''certs/solr.crt');

/* File name to a PEM-formatted private key */
define('SOLR_SSL_KEY''certs/solr.key');

/* Password for PEM-formatted private key file */
define('SOLR_SSL_KEYPASSWORD''StrongAndSecurePassword');

/* Name of file holding one or more CA certificates to verify peer with*/
define('SOLR_SSL_CAINFO''certs/cacert.crt');

/* Name of directory holding multiple CA certificates to verify peer with */
define('SOLR_SSL_CAPATH''certs/');

?>

Exemple #3 Ajout d'un document à l'index

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id'334455);
$doc->addField('cat''Software');
$doc->addField('cat''Lucene');

$updateResponse $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 446
        )

)

Exemple #4 Fusion d'un document dans un autre

<?php

include "bootstrap.php";

$doc = new SolrDocument();

$second_doc = new SolrDocument();

$doc->addField('id'1123);

$doc->features "PHP Client Side";
$doc->features "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   'Information Technology';

$second_doc->addField('cat''Lucene Search');

$second_doc->merge($doctrue);

print_r($second_doc->toArray());


?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

        )

)

Exemple #5 Recherche de documents - réponses sous la forme d'un objet SolrObject

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response $client->query($query);

$response $query_response->getResponse();

print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334456
                        )

                    [1] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334455
                        )

                    [2] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: héllo (hello with an accent over the e)
                                )

                            [id] => SOLR1000
                            [timestamp] => 2009-09-04T20:38:55.906
                        )

                )

        )

)

Exemple #6 Recherche de documents - réponses sous la forme d'un objet SolrDocument

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response $client->query($query);

$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);

$response $query_response->getResponse();

print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 19740
                        )

                    [1] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25485
                        )

                    [2] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25052
                        )

                )

        )

)

Exemple #7 Exemple simple avec TermsComponent

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

$query->setTermsField('cat');

$updateResponse $client->query($query);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [electronics] => 14
                    [Lucene] => 4
                    [Software] => 4
                    [memory] => 3
                    [card] => 2
                    [connector] => 2
                    [drive] => 2
                    [graphics] => 2
                    [hard] => 2
                    [monitor] => 2
                )

        )

)

Exemple #8 Exemple simple avec TermsComponent en utilisant un préfixe

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix 'c';

$query->setTermsField('cat')->setTermsPrefix($prefix);

$updateResponse $client->query($query);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                    [camera] => 1
                    [copier] => 1
                )

        )

)

Exemple #9 Exemple simple avec TermsComponent en spécifiant une fréquence minimale

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix 'c';

/* Return only terms with a frequency of 2 or greater */
$min_frequency 2;

$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);

$updateResponse $client->query($query);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 0
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                )

        )

)

Exemple #10 Exemple simple avec Facet

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);

$updateResponse $client->query($query);

$response_array $updateResponse->getResponse();

$facet_data $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
            [1] => 3
            [184] => 3
            [2] => 3
            [3200] => 3
            [400] => 3
            [500] => 3
            [ddr] => 3
            [i] => 3
            [ipod] => 3
            [memori] => 3
            [pc] => 3
            [pin] => 3
            [pod] => 3
            [sdram] => 3
            [system] => 3
            [unbuff] => 3
            [canon] => 2
            [corsair] => 2
            [drive] => 2
            [hard] => 2
            [mb] => 2
            [n] => 2
            [power] => 2
            [retail] => 2
            [video] => 2
            [x] => 2
        )

)

Exemple #11 Exemple simple avec Facet et un champ optionnel d'écrasement pour mincount

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4'name');

$updateResponse $client->query($query);

$response_array $updateResponse->getResponse();

$facet_data $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Exemple #12 Connexion à un serveur SSL

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
    
'timeout'  => SOLR_SERVER_TIMEOUT,
    
'secure'   => SOLR_SECURE,
    
'ssl_cert' => SOLR_SSL_CERT_ONLY,
    
'ssl_key'  => SOLR_SSL_KEY,
    
'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
    
'ssl_cainfo' => SOLR_SSL_CAINFO,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4'name');

$updateResponse $client->query($query);

$response_array $updateResponse->getResponse();

$facet_data $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)


La classe SolrUtils

Introduction

Contient des méthodes utiles pour récupérer la version de l'extension courante et préparer les requêtes.

Contient également des méthodes pour échapper les chaînes utilisées dans les requêtes et analyser les réponses XML.

Synopsis de la classe

abstract SolrUtils {
/* Méthodes */
public static SolrObject digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] )
public static string escapeQueryChars ( string $str )
public static string getSolrVersion ( void )
public static string queryPhrase ( string $str )
}

SolrUtils::digestXmlResponse

(PECL solr >= 0.9.2)

SolrUtils::digestXmlResponseAnalyse une réponse XML dans un SolrObject

Description

public static SolrObject SolrUtils::digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] )

Cette méthode analyse une réponse XML depuis un serveur Apache Solr dans un SolrObject. Lance une exception SolrException si une erreur survient.

Liste de paramètres

xmlresponse

La réponse XML depuis le serveur Solr.

parse_mode

Utilisez SolrResponse::PARSE_SOLR_OBJ ou SolrResponse::PARSE_SOLR_DOC

Valeurs de retour

Retourne l'objet SolrObject représentant la réponse XML.

Si le paramètre parse_mode vaut SolrResponse::PARSE_SOLR_OBJ, les documents Solr seront analysés comme des instances SolrObject.

S'il vaut SolrResponse::PARSE_SOLR_DOC, ils seront analysés comme des instances SolrDocument.



SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryCharsProtège une requête

Description

public static string SolrUtils::escapeQueryChars ( string $str )

Le support Lucene protège les caractères spéciaux faisant partis de la syntaxe de la requête.

La liste actuelle des caractères spéciaux est :

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

Ces caractères font partis de la qyntaxe de la requête et doivent être échappés.

Liste de paramètres

str

Chaîne à protéger.

Valeurs de retour

Retourne la chaîne protégée ou FALSE si une erreur survient.



SolrUtils::getSolrVersion

(PECL solr >= 0.9.2)

SolrUtils::getSolrVersionRécupère la version courant de l'extension Solr

Description

public static string SolrUtils::getSolrVersion ( void )

Récupère la version courante Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La version courante de l'extension Apache Solr.



SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrasePrépare une phrase depuis une chaîne non protégée par Lucene

Description

public static string SolrUtils::queryPhrase ( string $str )

Prépare une phrase depuis une chaîne non protégée par Lucene.

Liste de paramètres

str

La phrase Lucene.

Valeurs de retour

Retourne la partie de la phrase contenue entre guillemets.


Sommaire



La classe SolrInputDocument

Introduction

Représente un document Solr qui est sur le point d'être envoyé à l'index Solr.

Synopsis de la classe

final SolrInputDocument {
/* Constantes */
const integer SolrInputDocument::SORT_DEFAULT = 1 ;
const integer SolrInputDocument::SORT_ASC = 1 ;
const integer SolrInputDocument::SORT_DESC = 2 ;
/* Méthodes */
public bool addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] )
public bool clear ( void )
public void __clone ( void )
__construct ( void )
public bool deleteField ( string $fieldName )
public void __destruct ( void )
public bool fieldExists ( string $fieldName )
public float getBoost ( void )
public SolrDocumentField getField ( string $fieldName )
public float getFieldBoost ( string $fieldName )
public int getFieldCount ( void )
public array getFieldNames ( void )
public bool merge ( SolrInputDocument $sourceDoc [, bool $overwrite = true ] )
public bool reset ( void )
public bool setBoost ( float $documentBoostValue )
public bool setFieldBoost ( string $fieldName , float $fieldBoostValue )
public bool sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] )
public array toArray ( void )
}

Constantes pré-définies

Constantes de la classe SolrInputDocument

SolrInputDocument::SORT_DEFAULT

Tri par défaut des champs.

SolrInputDocument::SORT_ASC

Tri les champs de façon croissant.

SolrInputDocument::SORT_DESC

Tri les champs de façon décroissant.

SolrInputDocument::SORT_FIELD_NAME

Tri les champs par leur nom.

SolrInputDocument::SORT_FIELD_VALUE_COUNT

Tri les champs par le nombre de valeurs.

SolrInputDocument::SORT_FIELD_BOOST_VALUE

Tri les champs par la valeur de boost.


SolrInputDocument::addField

(PECL solr >= 0.9.2)

SolrInputDocument::addFieldAjoute un champ au document

Description

public bool SolrInputDocument::addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] )

Pour des champs à valeur multiple, si une valeur de boost valide est spécifiée, la valeur spécifiée sera multipliée par la valeur de boost courant pour ce champ.

Liste de paramètres

fieldName

Le nom du champ.

fieldValue

La valeur du champ.

fieldBoostValue

Le boost de ce champ. Cette valeur ne peut être négative. Vous pouvez passer une valeur inférieure à 1.0 mais elle doit être supérieure à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrInputDocument::clear

(PECL solr >= 0.9.2)

SolrInputDocument::clearRéinitialise le document d'entrée

Description

public bool SolrInputDocument::clear ( void )

Réinitialise le document en supprimant tous les champs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrInputDocument::__clone

(PECL solr >= 0.9.2)

SolrInputDocument::__cloneCrée une copie de l'objet SolrDocument

Description

public void SolrInputDocument::__clone ( void )

Cette méthode ne devrait pas être appelée directement. Elle est utilisée pour créer une copie interne de l'objet SolrInputDocument.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Crée une nouvelle instance SolrInputDocument.



SolrInputDocument::__construct

(PECL solr >= 0.9.2)

SolrInputDocument::__constructConstructeur

Description

SolrInputDocument::__construct ( void )

Constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune.



SolrInputDocument::deleteField

(PECL solr >= 0.9.2)

SolrInputDocument::deleteFieldEfface un champ d'un document

Description

public bool SolrInputDocument::deleteField ( string $fieldName )

Efface un champ d'un document.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrInputDocument::__destruct

(PECL solr >= 0.9.2)

SolrInputDocument::__destructDestructeur

Description

public void SolrInputDocument::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune.



SolrInputDocument::fieldExists

(PECL solr >= 0.9.2)

SolrInputDocument::fieldExistsVérifie si un champ existe

Description

public bool SolrInputDocument::fieldExists ( string $fieldName )

Vérifie si un champ existe.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne TRUE si le champ existe, et FALSE sinon.



SolrInputDocument::getBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getBoostRécupère la valeur courante du boost pour le document

Description

public float SolrInputDocument::getBoost ( void )

Récupère la valeur courante du boost pour le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur du boost en cas de succès, et FALSE si une erreur survient.



SolrInputDocument::getField

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldRécupère un champ par son nom

Description

public SolrDocumentField SolrInputDocument::getField ( string $fieldName )

Récupère un champ par son nom.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne un objet SolrDocumentField en cas de succès, et FALSE si une erreur survient.



SolrInputDocument::getFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldBoostRécupère la valeur du boost pour un champ donné

Description

public float SolrInputDocument::getFieldBoost ( string $fieldName )

Récupère la valeur du boost pour un champ donné.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne la valeur du boost pour le champ, ou FALSE si une erreur survient.



SolrInputDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldCountRetourne le nombre de champs du document

Description

public int SolrInputDocument::getFieldCount ( void )

Retourne le nombre de champs du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès ou FALSE si une erreur survient.



SolrInputDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldNamesRetourne un tableau contenant tous les champs du document

Description

public array SolrInputDocument::getFieldNames ( void )

Retourne un tableau contenant tous les champs du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et FALSE si une erreur survient.



SolrInputDocument::merge

(PECL solr >= 0.9.2)

SolrInputDocument::mergeFusionne un document d'entrée dans un autre

Description

public bool SolrInputDocument::merge ( SolrInputDocument $sourceDoc [, bool $overwrite = true ] )

Fusionne un document d'entrée dans un autre.

Liste de paramètres

sourceDoc

Le document source.

overwrite

Si vaut TRUE, il remplacera les champs correspondant dans le document cible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Dans le futur, cette méthode sera modifiée pour retourner le nombre de champs du nouveau document.



SolrInputDocument::reset

(PECL solr >= 0.9.2)

SolrInputDocument::resetAlias de SolrInputDocument::clear

Description

public bool SolrInputDocument::reset ( void )

Alias de SolrInputDocument::clear.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrInputDocument::setBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setBoostDéfinit la valeur de boost pour le document

Description

public bool SolrInputDocument::setBoost ( float $documentBoostValue )

Définit la valeur de boost pour le document.

Liste de paramètres

documentBoostValue

La valeur de boost pour ce document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrInputDocument::setFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setFieldBoostDéfinit la valeur de boost pour un champ

Description

public bool SolrInputDocument::setFieldBoost ( string $fieldName , float $fieldBoostValue )

Définit la valeur de boost pour un champ. Ceci remplacera la valeur de boost courante pour ce champ.

Liste de paramètres

fieldName

Le nom du champ.

fieldBoostValue

La valeur de boost.



SolrInputDocument::sort

(PECL solr >= 0.9.2)

SolrInputDocument::sortTri les champs du document

Description

public bool SolrInputDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] )

Les champs sont réarrangés suivant les critères spécifiés et la direction du tri
   
   Les champs peuvent être triés par leurs valeurs de boost, leurs noms et leurs nombres de valeurs.
   
   Le paramètre $order_by peut être une valeur parmi :
   
   * SolrInputDocument::SORT_FIELD_NAME
   * SolrInputDocument::SORT_FIELD_BOOST_VALUE
   * SolrInputDocument::SORT_FIELD_VALUE_COUNT
   
   La direction de tri peut être une valeur parmi :
   
   * SolrInputDocument::SORT_DEFAULT
   * SolrInputDocument::SORT_ASC
   * SolrInputDocument::SORT_DESC

Liste de paramètres

sortOrderBy

Le critère de tri

sortDirection

La direction du tri

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrInputDocument::toArray

(PECL solr >= 0.9.2)

SolrInputDocument::toArrayRetourne un représentation sous forme de tableau du document d'entrée

Description

public array SolrInputDocument::toArray ( void )

Retourne un représentation sous forme de tableau du document d'entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une représentation sous forme de tableau des champs et FALSE si une erreur survient.


Sommaire



La classe SolrDocument

Introduction

Représente un document Solr récupéré suite à une requête.

Synopsis de la classe

final SolrDocument implements ArrayAccess , Iterator , Traversable , Serializable {
/* Constantes */
const integer SolrDocument::SORT_DEFAULT = 1 ;
const integer SolrDocument::SORT_ASC = 1 ;
const integer SolrDocument::SORT_DESC = 2 ;
const integer SolrDocument::SORT_FIELD_NAME = 1 ;
/* Méthodes */
public bool addField ( string $fieldName , string $fieldValue )
public bool clear ( void )
public void __clone ( void )
__construct ( void )
public SolrDocumentField current ( void )
public bool deleteField ( string $fieldName )
public void __destruct ( void )
public bool fieldExists ( string $fieldName )
public SolrDocumentField __get ( string $fieldName )
public SolrDocumentField getField ( string $fieldName )
public int getFieldCount ( void )
public array getFieldNames ( void )
public SolrInputDocument getInputDocument ( void )
public bool __isset ( string $fieldName )
public string key ( void )
public bool merge ( SolrDocument $sourceDoc [, bool $overwrite = true ] )
public void next ( void )
public bool offsetExists ( string $fieldName )
public SolrDocumentField offsetGet ( string $fieldName )
public void offsetSet ( string $fieldName , string $fieldValue )
public void offsetUnset ( string $fieldName )
public bool reset ( void )
public void rewind ( void )
public string serialize ( void )
public bool __set ( string $fieldName , string $fieldValue )
public bool sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] )
public array toArray ( void )
public void unserialize ( string $serialized )
public bool __unset ( string $fieldName )
public bool valid ( void )
}

Constantes pré-définies

Types de noeud SolrDocument

SolrDocument::SORT_DEFAULT

Mode par défaut pour le tri des champs du document.

SolrDocument::SORT_ASC

Tri croissant des champs.

SolrDocument::SORT_DESC

Tri décroissant des champs.

SolrDocument::SORT_FIELD_NAME

Tri les champs par leurs noms.

SolrDocument::SORT_FIELD_VALUE_COUNT

Tri les champs par le nombre de valeurs dans chaque champ.

SolrDocument::SORT_FIELD_BOOST_VALUE

Tri les champs par leurs valeurs de boost.


SolrDocument::addField

(PECL solr >= 0.9.2)

SolrDocument::addFieldAjoute un champ au document

Description

public bool SolrDocument::addField ( string $fieldName , string $fieldValue )

Cette méthode ajoute un champ à l'instance SolrDocument.

Liste de paramètres

fieldName

Le nom du champ.

fieldValue

La valeur du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::clear

(PECL solr >= 0.9.2)

SolrDocument::clearEfface tous les champs du document

Description

public bool SolrDocument::clear ( void )

Réinitialise l'objet courant. Efface tous les champs et réinitialise le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::__clone

(PECL solr >= 0.9.2)

SolrDocument::__cloneCrée une copie de l'objet SolrDocument

Description

public void SolrDocument::__clone ( void )

Crée une copie de l'objet SolrDocument. À ne pas appeler directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

None.



SolrDocument::__construct

(PECL solr >= 0.9.2)

SolrDocument::__constructConstructeur

Description

SolrDocument::__construct ( void )

Construit un nouvel objet SolrDocument

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



SolrDocument::current

(PECL solr >= 0.9.2)

SolrDocument::currentRécupère le champ courant

Description

public SolrDocumentField SolrDocument::current ( void )

Récupère le champ courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le champ courant.



SolrDocument::deleteField

(PECL solr >= 0.9.2)

SolrDocument::deleteFieldEfface un champ du document

Description

public bool SolrDocument::deleteField ( string $fieldName )

Efface un champ du document.

Liste de paramètres

fieldName

Nom du champ

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::__destruct

(PECL solr >= 0.9.2)

SolrDocument::__destructDestructeur

Description

public void SolrDocument::__destruct ( void )

Destructeur pour SolrDocument.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



SolrDocument::fieldExists

(PECL solr >= 0.9.2)

SolrDocument::fieldExistsVérifie si un champ existe dans le document

Description

public bool SolrDocument::fieldExists ( string $fieldName )

Vérifie si le champ demandé est un champ valide du document.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne TRUE si le champ est présent, ou FALSE sinon.



SolrDocument::__get

(PECL solr >= 0.9.2)

SolrDocument::__getAccède à un champ comme une propriété

Description

public SolrDocumentField SolrDocument::__get ( string $fieldName )

Méthode magique pour accéder au champ comme à une propriété.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne une instance SolrDocumentField.



SolrDocument::getField

(PECL solr >= 0.9.2)

SolrDocument::getFieldRécupère un champ par son nom

Description

public SolrDocumentField SolrDocument::getField ( string $fieldName )

Récupère un champ par son nom.

Liste de paramètres

fieldName

Nom du champ.

Valeurs de retour

Retourne un objet SolrDocumentField en cas de succès, ou FALSE si une erreur survient.



SolrDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrDocument::getFieldCountRécupère le nombre de champs du document

Description

public int SolrDocument::getFieldCount ( void )

Récupère le nombre de champs du document. Les champs à valeur multiple sont comptés une seule fois.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, FALSE sinon.



SolrDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrDocument::getFieldNamesRécupère un tableau de noms de champs du document

Description

public array SolrDocument::getFieldNames ( void )

Récupère un tableau de noms de champs du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les noms des champs du document.



SolrDocument::getInputDocument

(PECL solr >= 0.9.2)

SolrDocument::getInputDocumentRetourne un objet SolrInputDocument équivalent à l'objet

Description

public SolrInputDocument SolrDocument::getInputDocument ( void )

Retourne un objet SolrInputDocument équivalent à l'objet. Utile si vous voulez re-soumettre/mettre à jour un document issue d'une requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrInputDocument en cas de succès, et NULL si une erreur survient.



SolrDocument::__isset

(PECL solr >= 0.9.2)

SolrDocument::__issetVérifie si un champ existe

Description

public bool SolrDocument::__isset ( string $fieldName )

Vérifie si un champ existe.

Liste de paramètres

fieldName

Nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::key

(PECL solr >= 0.9.2)

SolrDocument::keyRécupère la clé courante

Description

public string SolrDocument::key ( void )

Récupère la clé courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé courante.



SolrDocument::merge

(PECL solr >= 0.9.2)

SolrDocument::mergeFusionne la source à l'objet SolrDocument courant

Description

public bool SolrDocument::merge ( SolrDocument $sourceDoc [, bool $overwrite = true ] )

Fusionne la source à l'objet SolrDocument courant.

Liste de paramètres

sourceDoc

La source du document.

overwrite

Si vaut TRUE alors les champs dont les noms sont identiques dans le document destinataire seront écrasés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::next

(PECL solr >= 0.9.2)

SolrDocument::nextDéplace le pointeur interne sur le champ suivant

Description

public void SolrDocument::next ( void )

Déplace le pointeur interne sur le champ suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur retournée.



SolrDocument::offsetExists

(PECL solr >= 0.9.2)

SolrDocument::offsetExistsVérifie si un champ particulier existe

Description

public bool SolrDocument::offsetExists ( string $fieldName )

Vérifie si un champ particulier existe. Méthode utilisée lorsque l'objet est traité comme un tableau.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::offsetGet

(PECL solr >= 0.9.2)

SolrDocument::offsetGetRécupère un champ

Description

public SolrDocumentField SolrDocument::offsetGet ( string $fieldName )

Utilisé pour récupérer un champ lorsque l'objet est traité comme un tableau.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne un objet SolrDocumentField.



SolrDocument::offsetSet

(PECL solr >= 0.9.2)

SolrDocument::offsetSetAjoute un champ au document

Description

public void SolrDocument::offsetSet ( string $fieldName , string $fieldValue )

Utilisé lorsque l'objet est traité comme un tableau, pour ajouter un champ au document.

Liste de paramètres

fieldName

Le nom du champ.

fieldValue

Le valeur du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::offsetUnset

(PECL solr >= 0.9.2)

SolrDocument::offsetUnsetEfface un champ

Description

public void SolrDocument::offsetUnset ( string $fieldName )

Efface un champ du document.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Aucune valeur retournée.



SolrDocument::reset

(PECL solr >= 0.9.2)

SolrDocument::resetAlias de SolrDocument::clear()

Description

public bool SolrDocument::reset ( void )

Alias de SolrDocument::clear()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::rewind

(PECL solr >= 0.9.2)

SolrDocument::rewindRéinitialise le pointeur interne au début

Description

public void SolrDocument::rewind ( void )

Réinitialise le pointeur interne au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur retournée.



SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serializeUtilisé pour une linéarisation personnalisée

Description

public string SolrDocument::serialize ( void )

Utilisé pour une linéarisation personnalisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le document Solr linéarisé.



SolrDocument::__set

(PECL solr >= 0.9.2)

SolrDocument::__setAjoute un champ au document

Description

public bool SolrDocument::__set ( string $fieldName , string $fieldValue )

Ajoute un champ au document. Utilisé pour définir les champs comme nouvelles propriétés.

Liste de paramètres

fieldName

Nom du champ.

fieldValue

Valeur du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::sort

(PECL solr >= 0.9.2)

SolrDocument::sortTrie les champs du document

Description

public bool SolrDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] )

Les champs sont triés suivant les critères spécifiés et la direction de tri
   
   Les champs peuvent être triés par leurs valeurs, leurs noms ou leurs nombres de valeurs.
   
   Le paramètre sortOrderBy peut être une constante parmi :
   
   * SolrDocument::SORT_FIELD_NAME
   * SolrDocument::SORT_FIELD_BOOST_VALUE
   * SolrDocument::SORT_FIELD_VALUE_COUNT
   
   sortDirection peut être une constante parmi :
   
   * SolrDocument::SORT_DEFAULT
   * SolrDocument::SORT_ASC
   * SolrDocument::SORT_DESC
   
   La direction par défaut est ASC.

Liste de paramètres

sortOrderBy

Le critère de tri.

sortDirection

La direction du tri.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::toArray

(PECL solr >= 0.9.2)

SolrDocument::toArrayRécupère un tableau représentant le document

Description

public array SolrDocument::toArray ( void )

Récupère un tableau représentant le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau représentant le document.

Exemples

Exemple #1 Exemple avec SolrDocument::toArray()

<?php

$doc 
= new SolrDocument();

$doc->addField('id'1123);

$doc->features "PHP Client Side";
$doc->features "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   'Information Technology';

print_r($doc->toArray());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

        )

)



SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserializeLinéarisation personnalisée d'objets SolrDocument

Description

public void SolrDocument::unserialize ( string $serialized )

Linéarisation personnalisée d'objets SolrDocument.

Liste de paramètres

serialized

Une représentation XML du document.

Valeurs de retour

Aucune.



SolrDocument::__unset

(PECL solr >= 0.9.2)

SolrDocument::__unsetEfface un champ du document

Description

public bool SolrDocument::__unset ( string $fieldName )

Efface un champ du document lorsqu'il est accessible sous la forme d'une propriété de l'objet.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrDocument::valid

(PECL solr >= 0.9.2)

SolrDocument::validVérifie si la position courant interne est toujours valide

Description

public bool SolrDocument::valid ( void )

Vérifie si la position courant interne est toujours valide. Utilisée lors d'opérations foreach.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si la position courante n'est plus valide.


Sommaire



La classe SolrDocumentField

Introduction

Représente un champ d'un document Solr. Toutes les propriétés sont en lecture seule.

Synopsis de la classe

final SolrDocumentField {
/* Propriétés */
readonly public string $name ;
readonly public float $boost ;
readonly public array $values ;
/* Méthodes */
__construct ( void )
public void __destruct ( void )
}

Propriétés

name

Le nom du champ.

boost

La valeur de boost du champ.

values

Un tableau de valeurs pour ce champ.


SolrDocumentField::__construct

(PECL solr >= 0.9.2)

SolrDocumentField::__constructConstructeur

Description

SolrDocumentField::__construct ( void )

Constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune.



SolrDocumentField::__destruct

(PECL solr >= 0.9.2)

SolrDocumentField::__destructDestructeur

Description

public void SolrDocumentField::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien.


Sommaire



La classe SolrObject

Introduction

Les propriétés de cet objet peuvent également être accédées en utilisant une syntaxe de type tableau. Elles sont toutes en lecture seule.

Synopsis de la classe

final SolrObject implements ArrayAccess {
/* Méthodes */
__construct ( void )
public void __destruct ( void )
public array getPropertyNames ( void )
public bool offsetExists ( string $property_name )
public mixed offsetGet ( string $property_name )
public void offsetSet ( string $property_name , string $property_value )
public void offsetUnset ( string $property_name )
}

SolrObject::__construct

(PECL solr >= 0.9.2)

SolrObject::__constructCrée un objet Solr

Description

SolrObject::__construct ( void )

Crée un objet Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien

Exemples

Exemple #1 Exemple avec SolrObject::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()



SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destructDestructeur

Description

public void SolrObject::__destruct ( void )

Le destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien.



SolrObject::getPropertyNames

(PECL solr >= 0.9.2)

SolrObject::getPropertyNamesRécupère un tableau contenant les noms de toutes les propriétés

Description

public array SolrObject::getPropertyNames ( void )

Récupère un tableau contenant les noms de toutes les propriétés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau.



SolrObject::offsetExists

(PECL solr >= 0.9.2)

SolrObject::offsetExistsVérifie si une propriété existe

Description

public bool SolrObject::offsetExists ( string $property_name )

Vérifie si une propriété existe. Cette méthode est utilisée lorsque l'objet est traité comme un tableau.

Liste de paramètres

property_name

Le nom de la propriété.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrObject::offsetGet

(PECL solr >= 0.9.2)

SolrObject::offsetGetRécupère une propriété

Description

public mixed SolrObject::offsetGet ( string $property_name )

Récupère la valeur d'une propriété. Cette méthode est utilisée lorsque l'objet est traité comme un tableau.

Liste de paramètres

property_name

Le nom de la propriété.

Valeurs de retour

Retourne la valeur de la propriété.



SolrObject::offsetSet

(PECL solr >= 0.9.2)

SolrObject::offsetSetDéfinit la valeur d'une propriété

Description

public void SolrObject::offsetSet ( string $property_name , string $property_value )

Définit la valeur de la propriété. Cette méthode est utilisée lorsque l'objet est traité comme un tableau. Cet objet est en lecture seule. Vous ne devriez jamais utiliser cette méthode.

Liste de paramètres

property_name

Le nom de la propriété.

property_value

La nouvelle valeur.

Valeurs de retour

Rien.



SolrObject::offsetUnset

(PECL solr >= 0.9.2)

SolrObject::offsetUnsetDéfinit la valeur de la propriété

Description

public void SolrObject::offsetUnset ( string $property_name )

Définit la valeur de la propriété. Cette méthode est utilisée lorsque l'objet est traité comme un tableau. Cet objet est en lecture seule. Vous ne devriez jamais utiliser cette méthode.

Liste de paramètres

property_name

Le nom de la propriété.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SolrObject::offsetUnset()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Sommaire



La classe SolrClient

Introduction

Utilisée pour envoyer des requêtes au serveur Solr. Actuellement, le clonage et la linéarisation des instances SolrClient ne sont pas supportés.

Synopsis de la classe

final SolrClient {
/* Constantes */
const integer SolrClient::SEARCH_SERVLET_TYPE = 1 ;
const integer SolrClient::UPDATE_SERVLET_TYPE = 2 ;
const integer SolrClient::PING_SERVLET_TYPE = 8 ;
const integer SolrClient::TERMS_SERVLET_TYPE = 16 ;
const string SolrClient::DEFAULT_SEARCH_SERVLET = select ;
const string SolrClient::DEFAULT_UPDATE_SERVLET = update ;
const string SolrClient::DEFAULT_THREADS_SERVLET = admin/threads ;
const string SolrClient::DEFAULT_PING_SERVLET = admin/ping ;
const string SolrClient::DEFAULT_TERMS_SERVLET = terms ;
/* Méthodes */
public SolrUpdateResponse addDocument ( SolrInputDocument $doc [, bool $allowDups = false [, int $commitWithin = 0 ]] )
public void addDocuments ( array $docs [, bool $allowDups = false [, int $commitWithin = 0 ]] )
public SolrUpdateResponse commit ([ int $maxSegments = "1" [, bool $waitFlush = true [, bool $waitSearcher = true ]]] )
public __construct ( array $clientOptions )
public SolrUpdateResponse deleteById ( string $id )
public SolrUpdateResponse deleteByIds ( array $ids )
public SolrUpdateResponse deleteByQueries ( array $queries )
public SolrUpdateResponse deleteByQuery ( string $query )
public void __destruct ( void )
public string getDebug ( void )
public array getOptions ( void )
public SolrUpdateResponse optimize ([ int $maxSegments = "1" [, bool $waitFlush = true [, bool $waitSearcher = true ]]] )
public SolrPingResponse ping ( void )
public SolrQueryResponse query ( SolrParams $query )
public void request ( string $raw_request )
public SolrUpdateResponse rollback ( void )
public void setResponseWriter ( string $responseWriter )
public bool setServlet ( int $type , string $value )
public void threads ( void )
}

Constantes pré-définies

Types de noeud SolrClient

SolrClient::SEARCH_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de recherche.

SolrClient::UPDATE_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de mise à jour.

SolrClient::THREADS_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de threads.

SolrClient::PING_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de ping.

SolrClient::TERMS_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de termes.

SolrClient::DEFAULT_SEARCH_SERVLET

Ceci est la valeur initiale pour le servlet de recherche.

SolrClient::DEFAULT_UPDATE_SERVLET

Ceci est la valeur initiale pour le servlet de mise à jour.

SolrClient::DEFAULT_THREADS_SERVLET

Ceci est la valeur initiale pour le servlet de threads.

SolrClient::DEFAULT_PING_SERVLET

Ceci est la valeur initiale pour le servlet de ping.

SolrClient::DEFAULT_TERMS_SERVLET

Ceci est la valeur initiale pour le servlet de termes utilisé pour le TermsComponent.


SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocumentAjoute un document à l'index

Description

public SolrUpdateResponse SolrClient::addDocument ( SolrInputDocument $doc [, bool $allowDups = false [, int $commitWithin = 0 ]] )

Cette méthode ajoute un document à l'index.

Liste de paramètres

doc

L'instance SolrInputDocument.

allowDups

Si FALSE, les doublons seront écrasés.

commitWithin

Nombre de millisecondes après lequel le document doit être valié. Disponible depuis Solr 1.4

Valeurs de retour

Retourne un objet SolrUpdateResponse et lance une exception SolrClientException si une erreur survient.

Exemples

Exemple #1 Exemple avec SolrClient::addDocument() example

<?php

$options 
= array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id'334455);
$doc->addField('cat''Software');
$doc->addField('cat''Lucene');

$updateResponse $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Voir aussi



SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocumentsAjoute une collection d'instances SolrInputDocument à l'index

Description

public void SolrClient::addDocuments ( array $docs [, bool $allowDups = false [, int $commitWithin = 0 ]] )

Ajoute une collection de documents à l'index.

Liste de paramètres

docs

Un tableau contenant la collection d'instances SolrInputDocument. Ce tableau doit être une variable réelle.

allowDups

Si FALSE, les doublons seront écrasés.

commitWithin

Nombre de millisecondes pendant lequel le document doit être validé. Disponible depuis Solr 1.4.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception SolrClientException si une erreur survient.

Exemples

Exemple #1 Exemple avec SolrClient::addDocuments()

<?php

$options 
= array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id'334455);
$doc->addField('cat''Software');
$doc->addField('cat''Lucene');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id'334456);

$docs = array($doc$doc2);

$updateResponse $client->addDocuments($docs);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

Voir aussi



SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commitCommit tous les ajouts/modifications effectués sur l'index

Description

public SolrUpdateResponse SolrClient::commit ([ int $maxSegments = "1" [, bool $waitFlush = true [, bool $waitSearcher = true ]]] )

Commit tous les ajouts/modifications effectués sur l'index.

Liste de paramètres

maxSegments

Optimisation à au moins ce nombre de segments. Disponible depuis Solr 1.3.

waitFlush

Attend jusqu'à ce que les modifications de l'index soient effectives sur le disque.

waitSearcher

Attend jusqu'à ce qu'un nouvel objet de recherche soit ouvert et enregistré comme objet de recherche principal, rendant visible les modifications.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception SolrClientException si une erreur survient.

Voir aussi



SolrClient::__construct

(PECL solr >= 0.9.2)

SolrClient::__constructConstructeur de l'objet SolrClient

Description

public SolrClient::__construct ( array $clientOptions )

Constructeur de l'objet SolrClient.

Liste de paramètres

clientOptions

Tableau contenant les clés suivantes :

- secure          (Valeur booléen indiquant si l'on doit se connecter en mode sécurisé)
 - hostname        (Le nom d'hôte du serveur Solr)
 - port            (Le numéro du port)
 - path            (Le chemin vers solr)
 - wt              (Le nom du gestionnaire d'écriture i.e. xml, phpnative)
 - login           (Le nom d'utilisateur à utiliser pour l'authentification HTTP Authentication, si nécessaire)
 - password        (Le mot de passe pour l'authentification HTTP)
 - proxy_host      (Le nom d'hôte du serveur de proxy, si nécessaire)
 - proxy_port      (Le port du proxy)
 - proxy_login     (Le nom d'utilisateur pour le proxy)
 - proxy_password  (Le mot de passe pour le proxy)
 - timeout         (Nombre de secondes maximales autorisées pour les opérations de transfert de données HTTP. Par défaut, 30 secondes)
 - ssl_cert        (Nom du fichier PEM contenant la clé privée et le certificat privé (concaténé dans cet ordre) )
 - ssl_key         (Nom du fichier PEM contenant la clé privée seulement)
 - ssl_keypassword (Mot de passe pour la clé privée)
 - ssl_cainfo      (Nom du ou des certificats CA utilisés pour la vérification)
 - ssl_capath      (Nom du dossier contenant les certificats CA utilisés pour la vérification )
 
 Notez que si le fichier ssl_cert ne contient que le certificat privé, vous devez spécifier un fichier ssl_key.
 
 L'option ssl_keypassword n'est nécessaire que si l'option ssl_cert ou l'option ssl_key options est définie.

Exemples

Exemple #1 Exemple avec SolrClient::__construct()

<?php

$options 
= array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
    
'path'     => SOLR_PATH_TO_SOLR,
    
'wt'       => SOLR_PHP_NATIVE_RESPONSE_WRITER,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id'334455);
$doc->addField('cat''Software');
$doc->addField('cat''Lucene');

$updateResponse $client->addDocument($doc);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Voir aussi



SolrClient::deleteById

(PECL solr >= 0.9.2)

SolrClient::deleteByIdEffacement par Id

Description

public SolrUpdateResponse SolrClient::deleteById ( string $id )

Efface un document en spécifiant son ID. L'ID est la valeur du champ uniqueKey déclaré dans le schéma.

Liste de paramètres

id

La valeur du champ uniqueKey déclaré dans le schéma.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception SolrClientException en cas d'échec.

Voir aussi



SolrClient::deleteByIds

(PECL solr >= 0.9.2)

SolrClient::deleteByIdsEffacement par Ids

Description

public SolrUpdateResponse SolrClient::deleteByIds ( array $ids )

Efface une collection de documents représentée par le jeu d'Ids spécifié.

Liste de paramètres

ids

Un tableau d'Ids, représentant le champ uniqueKey déclaré dans le schéma de chaque document.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception SolrClientException en cas d'échec.

Voir aussi



SolrClient::deleteByQueries

(PECL solr >= 0.9.2)

SolrClient::deleteByQueriesEfface tous les documents correspondant à des requêtes

Description

public SolrUpdateResponse SolrClient::deleteByQueries ( array $queries )

Efface tous les documents correspondant à des requêtes.

Liste de paramètres

queries

Un tableau de requêtes.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception SolrClientException en cas d'échec.

Voir aussi



SolrClient::deleteByQuery

(PECL solr >= 0.9.2)

SolrClient::deleteByQueryEfface tous les documents correspondant à une requête

Description

public SolrUpdateResponse SolrClient::deleteByQuery ( string $query )

Efface tous les documents correspondant à la requête fournie.

Liste de paramètres

query

La requête.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception SolrClientException en cas d'échec.

Voir aussi



SolrClient::__destruct

(PECL solr >= 0.9.2)

SolrClient::__destructDestructeur pour SolrClient

Description

public void SolrClient::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Destructeur pour SolrClient.

Voir aussi



SolrClient::getDebug

(PECL solr >= 0.9.7)

SolrClient::getDebugRécupère les données de débogage de la dernière tentative de connexion

Description

public string SolrClient::getDebug ( void )

Retourne les données de débogage de la dernière tentative de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'y a aucune donnée à retourner.



SolrClient::getOptions

(PECL solr >= 0.9.6)

SolrClient::getOptionsRécupère les options clientes définies en interne

Description

public array SolrClient::getOptions ( void )

Récupère les options clientes définies en interne. Très utile pour déboguer. Les valeurs retournées sont en lecture seule et ne peuvent être définies que lors de l'instanciation de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant toutes les options de l'objet SolrClient définies en interne.

Voir aussi



SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimizeDéfragmente l'index

Description

public SolrUpdateResponse SolrClient::optimize ([ int $maxSegments = "1" [, bool $waitFlush = true [, bool $waitSearcher = true ]]] )

Défragmente l'index afin de rendre la recherche plus performante.

Liste de paramètres

maxSegments

Optimise jusqu'à ce nombre de fragments. Disponible depuis Solr 1.3.

waitFlush

S'interrompt jusqu'à ce que les modifications de l'index sont sauvegardées sur le disque.

waitSearcher

S'interrompt jusqu'à ce qu'un nouvel objet de recherche soit ouvert et enregistré comme objet principal, rendant les modifications visibles.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, ou lance une exception SolrClientException en cas d'échec.

Voir aussi



SolrClient::ping

(PECL solr >= 0.9.2)

SolrClient::pingVérifie si le serveur Solr est disponible

Description

public SolrPingResponse SolrClient::ping ( void )

Vérifie si le serveur Solr est toujours disponible. Envoi une requête HEAD au serveur Apache Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrPingResponse en cas de succès, et lance une exception SolrClientException en cas d'échec.

Exemples

Exemple #1 Exemple avec SolrClient::ping()

<?php
$options 
= array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$pingresponse $client->ping();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :




SolrClient::query

(PECL solr >= 0.9.2)

SolrClient::queryEnvoi une requête au serveur

Description

public SolrQueryResponse SolrClient::query ( SolrParams $query )

Envoi une requête au serveur.

Liste de paramètres

query

Un objet SolrParam. Il est recommandé d'utiliser un objet SolrQuery pour des requêtes avancées.

Valeurs de retour

Retourne un objet SolrQueryResponse en cas de succès, et lance un objet SolrClientException en cas d'échec.

Exemples

Exemple #1 Exemple avec SolrClient::query()

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response $client->query($query);

$response $query_response->getResponse();

print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :




SolrClient::request

(PECL solr >= 0.9.2)

SolrClient::requestEnvoi une requête brute de mise à jour

Description

public void SolrClient::request ( string $raw_request )

Envoi une requête XML brute de mise à jour au serveur.

Liste de paramètres

raw_request

Une chaîne XML contenant la requête brute vers le serveur.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès. Lance une exception SolrClientException en cas d'échec.

Exemples

Exemple #1 Exemple avec SolrClient::request()

<?php
$options 
= array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$update_response $client->request("<commit/>");

$response $update_response->getResponse();

print_r($response);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...



SolrClient::rollback

(PECL solr >= 0.9.2)

SolrClient::rollbackAnnule les ajouts/effacements effectués sur l'index depuis le dernier commit

Description

public SolrUpdateResponse SolrClient::rollback ( void )

Annule les ajouts/effacements effectués sur l'index depuis le dernier commit. Cette méthode n'appelle aucun événement, ni ne crée de nouvelle recherche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, ou lance une exception SolrClientException si une erreur survient.

Voir aussi



SolrClient::setResponseWriter

(PECL solr >= 0.9.11)

SolrClient::setResponseWriterDéfinit le gestionnaire à utiliser pour préparer la réponse depuis Solr

Description

public void SolrClient::setResponseWriter ( string $responseWriter )

Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr.

Liste de paramètres

responseWriter

Un parmi les suivants :

- xml
 - phpnative

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SolrClient::setResponseWriter()

<?php

// Ceci est ma classe personnalisée pour les objets
class SolrClass
{
   public 
$_properties = array();

   public function 
__get($property_name) {
      
      if (
property_exists($this$property_name)) {
      
          return 
$this->$property_name;
      
      } else if (isset(
$_properties[$property_name])) {
      
          return 
$_properties[$property_name];
      }
      
      return 
null;
   }
}

$options = array
(
  
'hostname' => 'localhost',
  
'port' => 8983,
  
'path' => '/solr/core1'
);

$client = new SolrClient($options);

// Ceci utilise la classe org.apache.solr.request.PHPNativeResponseWriter sur Solr
// Reportez-vous aux pages suivantes pour plus de détails
// https://issues.apache.org/jira/browse/SOLR-1967
// http://wiki.apache.org/solr/QueryResponseWriter
// http://wiki.apache.org/solr/SolPHP
$client->setResponseWriter("phpnative");

//$response = $client->ping();

$query = new SolrQuery();

$query->setQuery("*:*");

$query->set("objectClassName""SolrClass");

$query->set("objectPropertiesStorageMode"1); // 0 pour des propriétés indépendantes, 1 pour des propriétés combinées

try
{

$response $client->query($query);

$resp $response->getResponse();

print_r($response);

print_r($resp);

} catch (
Exception $e) {

print_r($e);

}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :




SolrClient::setServlet

(PECL solr >= 0.9.2)

SolrClient::setServletModifie le type d'un servlet en une nouvelle valeur

Description

public bool SolrClient::setServlet ( int $type , string $value )

Modifie le type d'un servlet en une nouvelle valeur.

Liste de paramètres

type

Une constante parmis :

- SolrClient::SEARCH_SERVLET_TYPE
 - SolrClient::UPDATE_SERVLET_TYPE
 - SolrClient::THREADS_SERVLET_TYPE
 - SolrClient::PING_SERVLET_TYPE
 - SolrClient::TERMS_SERVLET_TYPE

value

La nouvelle valeur du servlet

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrClient::threads

(PECL solr >= 0.9.2)

SolrClient::threadsVérifie le statut des threads

Description

public void SolrClient::threads ( void )

Vérifie le statut des threads.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrGenericResponse.


Sommaire



La classe SolrResponse

Introduction

Représente une réponse du serveur Solr.

Synopsis de la classe

abstract SolrResponse {
/* Constantes */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
/* Propriétés */
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Méthodes */
public string getDigestedResponse ( void )
public int getHttpStatus ( void )
public string getHttpStatusMessage ( void )
public string getRawRequest ( void )
public string getRawRequestHeaders ( void )
public string getRawResponse ( void )
public string getRawResponseHeaders ( void )
public string getRequestUrl ( void )
public SolrObject getResponse ( void )
public bool setParseMode ([ int $parser_mode = 0 ] )
public bool success ( void )
}

Propriétés

http_status

Le statut http de la réponse.

parser_mode

Méthode d'analyse des documents Solr : instances SolrObject ou SolrDocument.

success

Si une erreur est survenue ou non durant la requête.

http_status_message

Message détaillé du statut http.

http_request_url

L'URL de la requête.

http_raw_request_headers

Une chaîne d'en-têtes brutes envoyée lors de la requête.

http_raw_request

La requête brute à envoyer au serveur.

http_raw_response_headers

Les en-têtes de réponse reçus du serveur Solr.

http_raw_response

Le message de réponse reçu par le serveur Solr.

http_digested_response

La réponse au format linéarisé PHP.

Constantes pré-définies

Constantes de la classe SolrResponse

SolrResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.


SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponseRécupère la réponse XML sous la forme de données PHP linéarisées

Description

public string SolrResponse::getDigestedResponse ( void )

Récupère la réponse XML sous la forme de données PHP linéarisées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse XML sous la forme de données PHP linéarisées.



SolrResponse::getHttpStatus

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusRécupère le statut HTTP de la réponse

Description

public int SolrResponse::getHttpStatus ( void )

Récupère le statut HTTP de la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le statut HTTP de la réponse.



SolrResponse::getHttpStatusMessage

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusMessageRécupère plus de détails sur le statut HTTP

Description

public string SolrResponse::getHttpStatusMessage ( void )

Récupère plus de détails sur le statut HTTP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne plus de détails sur le statut HTTP.



SolrResponse::getRawRequest

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestRécupère la requête brute envpyée au serveur Solr

Description

public string SolrResponse::getRawRequest ( void )

Récupère la requête brute envpyée au serveur Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la requête brute envpyée au serveur Solr.



SolrResponse::getRawRequestHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestHeadersRécupère les en-têtes brutes de la requête envoyée au serveur Solr

Description

public string SolrResponse::getRawRequestHeaders ( void )

Récupère les en-têtes brutes de la requête envoyée au serveur Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les en-têtes brutes de la requête envoyée au serveur Solr.



SolrResponse::getRawResponse

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseRécupère la réponse brute du serveur

Description

public string SolrResponse::getRawResponse ( void )

Récupère la réponse brute du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse brute du serveur.



SolrResponse::getRawResponseHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseHeadersRécupère les en-têtes brutes de la réponse du serveur

Description

public string SolrResponse::getRawResponseHeaders ( void )

Récupère les en-têtes brutes de la réponse du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les en-têtes brutes de la réponse du serveur.



SolrResponse::getRequestUrl

(PECL solr >= 0.9.2)

SolrResponse::getRequestUrlRécupère l'URL complète de la requête émise au serveur

Description

public string SolrResponse::getRequestUrl ( void )

Récupère l'URL complète de la requête émise au serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'URL complète de la requête émise au serveur.



SolrResponse::getResponse

(PECL solr >= 0.9.2)

SolrResponse::getResponseRécupère l'objet SolrObject représentant la réponse XML du serveur

Description

public SolrObject SolrResponse::getResponse ( void )

Récupère l'objet SolrObject représentant la réponse XML du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet SolrObject représentant la réponse XML du serveur.



SolrResponse::setParseMode

(PECL solr >= 0.9.2)

SolrResponse::setParseModeDéfinit le mode d'analyse

Description

public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )

Définit le mode d'analyse.

Liste de paramètres

parser_mode

SolrResponse::PARSE_SOLR_DOC analyse les documents avec SolrDocument. SolrResponse::PARSE_SOLR_OBJ analyse les documents avec SolrObjects.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



SolrResponse::success

(PECL solr >= 0.9.2)

SolrResponse::successVérifie si la requête au serveur a réussi

Description

public bool SolrResponse::success ( void )

Vérifie si la requête au serveur a réussi.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la requête a réussi, FALSE sinon.


Sommaire



La classe SolrQueryResponse

Introduction

Représente une réponse à une requête.

Synopsis de la classe

final SolrQueryResponse extends SolrResponse {
/* Constantes */
/* Propriétés */
/* Méthodes */
__construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Propriétés

http_status

Le statut http de la réponse.

parser_mode

Méthode d'analyse des documents Solr : instances SolrObject ou SolrDocument.

success

Si une erreur est survenue ou non durant la requête.

http_status_message

Message détaillé du statut http.

http_request_url

L'URL de la requête.

http_raw_request_headers

Une chaîne d'en-têtes brutes envoyée lors de la requête.

http_raw_request

La requête brute a envoyé au serveur.

http_raw_response_headers

Les en-têtes de réponse reçus du serveur Solr.

http_raw_response

Le message de réponse reçu par le serveur Solr.

http_digested_response

La réponse au format linéarisé PHP.

Constantes pré-définies

Constantes de la classe SolrQueryResponse

SolrQueryResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrQueryResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.


SolrQueryResponse::__construct

(PECL solr >= 0.9.2)

SolrQueryResponse::__constructConstructeur

Description

SolrQueryResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien



SolrQueryResponse::__destruct

(PECL solr >= 0.9.2)

SolrQueryResponse::__destructDestructeur

Description

public void SolrQueryResponse::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Sommaire



La classe SolrUpdateResponse

Introduction

Représente une réponse à une requête de mise à jour.

Synopsis de la classe

final SolrUpdateResponse extends SolrResponse {
/* Constantes */
/* Propriétés */
/* Méthodes */
__construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Propriétés

http_status

Le statut http de la réponse.

parser_mode

Méthode d'analyse des documents Solr : instances SolrObject ou SolrDocument.

success

Si une erreur est survenue ou non durant la requête.

http_status_message

Message détaillé du statut http.

http_request_url

L'URL de la requête.

http_raw_request_headers

Une chaîne d'en-têtes brutes envoyée lors de la requête.

http_raw_request

La requête brute à envoyer au serveur.

http_raw_response_headers

Les en-têtes de réponse reçus du serveur Solr.

http_raw_response

Le message de réponse reçu par le serveur Solr.

http_digested_response

La réponse au format linéarisé PHP.

Constantes pré-définies

Constantes de la classe SolrUpdateResponse

SolrUpdateResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrUpdateResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.


SolrUpdateResponse::__construct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__constructConstructeur

Description

SolrUpdateResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien



SolrUpdateResponse::__destruct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__destructDestructeur

Description

public void SolrUpdateResponse::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Sommaire



La classe SolrPingResponse

Introduction

Représente une réponse à une requête de type ping au serveur Solr.

Synopsis de la classe

final SolrPingResponse extends SolrResponse {
/* Constantes */
/* Propriétés */
/* Méthodes */
__construct ( void )
public void __destruct ( void )
public string getResponse ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Propriétés

http_status

Le statut http de la réponse.

parser_mode

Méthode d'analyse des documents Solr : instances SolrObject ou SolrDocument.

success

Si une erreur est survenue ou non durant la requête.

http_status_message

Message détaillé du statut http.

http_request_url

L'URL de la requête.

http_raw_request_headers

Une chaîne d'en-têtes brutes envoyée lors de la requête.

http_raw_request

La requête brute à envoyer au serveur.

http_raw_response_headers

Les en-têtes de réponse reçus du serveur Solr.

http_raw_response

Le message de réponse reçu par le serveur Solr.

http_digested_response

La réponse au format linéarisé PHP.

Constantes pré-définies

Constantes de la classe SolrPingResponse

SolrPingResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrPingResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.


SolrPingResponse::__construct

(PECL solr >= 0.9.2)

SolrPingResponse::__constructConstructeur

Description

SolrPingResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien



SolrPingResponse::__destruct

(PECL solr >= 0.9.2)

SolrPingResponse::__destructDestructeur

Description

public void SolrPingResponse::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien



SolrPingResponse::getResponse

(PECL solr >= 0.9.2)

SolrPingResponse::getResponseRécupère la réponse du serveur

Description

public string SolrPingResponse::getResponse ( void )

Récupère la réponse du serveur. Normalement, la réponse devrait être vide car la requête est de type HEAD.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne vide.


Sommaire



La classe SolrGenericResponse

Introduction

Représente une réponse du serveur Solr.

Synopsis de la classe

final SolrGenericResponse extends SolrResponse {
/* Constantes */
/* Propriétés */
/* Méthodes */
__construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Propriétés

http_status

Le statut http de la réponse.

parser_mode

Méthode d'analyse des documents Solr : instances SolrObject ou SolrDocument.

success

Si une erreur est survenue ou non durant la requête.

http_status_message

Message détaillé du statut http.

http_request_url

L'URL de la requête.

http_raw_request_headers

Une chaîne d'en-têtes brutes envoyée lors de la requête.

http_raw_request

La requête brute à envoyer au serveur.

http_raw_response_headers

Les en-têtes de réponse reçus du serveur Solr.

http_raw_response

Le message de réponse reçu par le serveur Solr.

http_digested_response

La réponse au format linéarisé PHP.

Constantes pré-définies

Constantes de la classe SolrGenericResponse

SolrGenericResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrGenericResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.


SolrGenericResponse::__construct

(PECL solr >= 0.9.2)

SolrGenericResponse::__constructConstructeur

Description

SolrGenericResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien



SolrGenericResponse::__destruct

(PECL solr >= 0.9.2)

SolrGenericResponse::__destructDestructeur

Description

public void SolrGenericResponse::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Sommaire



La classe SolrParams

Introduction

Représente une collection de paires nom-valeur envoyées au serveur Solr lors d'une requête.

Synopsis de la classe

abstract SolrParams implements Serializable {
/* Méthodes */
final public SolrParams add ( string $name , string $value )
public SolrParams addParam ( string $name , string $value )
final public mixed get ( string $param_name )
final public mixed getParam ([ string $param_name ] )
final public array getParams ( void )
final public array getPreparedParams ( void )
final public string serialize ( void )
final public void set ( string $name , string $value )
public SolrParams setParam ( string $name , string $value )
final public string toString ([ bool $url_encode = false ] )
final public void unserialize ( string $serialized )
}

SolrParams::add

(PECL solr >= 0.9.2)

SolrParams::addAlias de SolrParams::addParam

Description

final public SolrParams SolrParams::add ( string $name , string $value )

Alias de SolrParams::addParam.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne une instance d'un objet SolrParams en cas de succès.



SolrParams::addParam

(PECL solr >= 0.9.2)

SolrParams::addParamAjoute un paramètre à l'objet

Description

public SolrParams SolrParams::addParam ( string $name , string $value )

Ajoute un paramètre à l'objet. Cette méthode est utilisée pour les paramètres pouvant être spécifiés plusieurs fois.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne un objet SolrParam en cas de succès, et FALSE si une erreur survient.



SolrParams::get

(PECL solr >= 0.9.2)

SolrParams::getAlias de SolrParams::getParam

Description

final public mixed SolrParams::get ( string $param_name )

Alias de SolrParams::getParam.

Liste de paramètres

param_name

Nom du paramètre.

Valeurs de retour

Retourne une chaîne de caractères ou un tableau suivant le type du paramètre.



SolrParams::getParam

(PECL solr >= 0.9.2)

SolrParams::getParamRetourne la valeur d'un paramètre

Description

final public mixed SolrParams::getParam ([ string $param_name ] )

Retourne la valeur d'un paramètre.

Liste de paramètres

param_name

Nom du paramètre.

Valeurs de retour

Retourne une chaîne de caractères ou un tableau suivant le type du paramètre.



SolrParams::getParams

(PECL solr >= 0.9.2)

SolrParams::getParamsRetourne un tableau de paramètres non encodés URL

Description

final public array SolrParams::getParams ( void )

Retourne un tableau de paramètres non encodés URL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de paramètres non encodés URL.



SolrParams::getPreparedParams

(PECL solr >= 0.9.2)

SolrParams::getPreparedParamsRetourne un tableau de paramètres encodés URL

Description

final public array SolrParams::getPreparedParams ( void )

Retourne un tableau de paramètres encodés URL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de paramètres encodés URL.



SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serializeUtilisé pour une linéarisation personnalisée

Description

final public string SolrParams::serialize ( void )

Utilisé pour une linéarisation personnalisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Utilisé pour une linéarisation personnalisée.



SolrParams::set

(PECL solr >= 0.9.2)

SolrParams::setAlias de SolrParams::setParam

Description

final public void SolrParams::set ( string $name , string $value )

Alias de SolrParams::setParam.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne une instance de l'objet SolrParams en cas de succès.



SolrParams::setParam

(PECL solr >= 0.9.2)

SolrParams::setParamDéfinit un paramètre à une valeur spécifique

Description

public SolrParams SolrParams::setParam ( string $name , string $value )

Définit un paramètre à une valeur spécifique. À n'utiliser que pour les paramètres ne pouvant être spécifiés qu'une seule fois. Les appels suivants sur le même paramètre écraseront la précédente valeur.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne un objet SolrParam en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SolrParams::setParam()

<?php

$param 
= new SolrParam();

$param->setParam('q''solr')->setParam('rows'2);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :





SolrParams::toString

(PECL solr >= 0.9.2)

SolrParams::toStringRetourne tous les paramètres de l'objet

Description

final public string SolrParams::toString ([ bool $url_encode = false ] )

Retourne tous les paramètres de l'objet, sous la forme de paire nom-valeur.

Liste de paramètres

url_encode

Si l'on doit retourner les valeurs encodées URL.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et FALSE si une erreur survient.



SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserializeUtilisé pour la linéarisation personnalisée

Description

final public void SolrParams::unserialize ( string $serialized )

Utilisé pour la linéarisation personnalisée.

Liste de paramètres

serialized

La représentation linéarisée de l'objet.

Valeurs de retour

Aucune.


Sommaire



La classe SolrModifiableParams

Introduction

Représente une collection de paires nom-valeur envoyées au serveur Solr lors d'une requête.

Synopsis de la classe

SolrModifiableParams extends SolrParams implements Serializable {
/* Méthodes */
__construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
final public SolrParams SolrParams::add ( string $name , string $value )
public SolrParams SolrParams::addParam ( string $name , string $value )
final public mixed SolrParams::get ( string $param_name )
final public mixed SolrParams::getParam ([ string $param_name ] )
final public array SolrParams::getParams ( void )
final public array SolrParams::getPreparedParams ( void )
final public string SolrParams::serialize ( void )
final public void SolrParams::set ( string $name , string $value )
public SolrParams SolrParams::setParam ( string $name , string $value )
final public string SolrParams::toString ([ bool $url_encode = false ] )
final public void SolrParams::unserialize ( string $serialized )
}

SolrModifiableParams::__construct

(PECL solr >= 0.9.2)

SolrModifiableParams::__constructConstructeur

Description

SolrModifiableParams::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune



SolrModifiableParams::__destruct

(PECL solr >= 0.9.2)

SolrModifiableParams::__destructDestructeur

Description

public void SolrModifiableParams::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Sommaire



La classe SolrQuery

Introduction

Représente une collection de paires nom-valeur envoyées au serveur Solr lors d'une requête.

Synopsis de la classe

SolrQuery extends SolrModifiableParams implements Serializable {
/* Constantes */
const integer SolrQuery::ORDER_ASC = 0 ;
const integer SolrQuery::ORDER_DESC = 1 ;
const integer SolrQuery::FACET_SORT_INDEX = 0 ;
const integer SolrQuery::FACET_SORT_COUNT = 1 ;
const integer SolrQuery::TERMS_SORT_INDEX = 0 ;
const integer SolrQuery::TERMS_SORT_COUNT = 1 ;
/* Propriétés */
/* Méthodes */
public SolrQuery addFacetDateField ( string $dateField )
publicSolrQuery addFacetDateOther ( string $value [, string $field_override ] )
publicSolrQuery addFacetField ( string $field )
publicSolrQuery addFacetQuery ( string $facetQuery )
publicSolrQuery addField ( string $field )
publicSolrQuery addFilterQuery ( string $fq )
publicSolrQuery addHighlightField ( string $field )
publicSolrQuery addMltField ( string $field )
publicSolrQuery addMltQueryField ( string $field , float $boost )
publicSolrQuery addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )
publicSolrQuery addStatsFacet ( string $field )
public SolrQuery addStatsField ( string $field )
__construct ([ string $q ] )
publicvoid __destruct ( void )
public bool getFacet ( void )
public string getFacetDateEnd ([ string $field_override ] )
public array getFacetDateFields ( void )
public string getFacetDateGap ([ string $field_override ] )
public string getFacetDateHardEnd ([ string $field_override ] )
public array getFacetDateOther ([ string $field_override ] )
public string getFacetDateStart ([ string $field_override ] )
public array getFacetFields ( void )
public int getFacetLimit ([ string $field_override ] )
public string getFacetMethod ([ string $field_override ] )
public int getFacetMinCount ([ string $field_override ] )
public bool getFacetMissing ([ string $field_override ] )
public int getFacetOffset ([ string $field_override ] )
public string getFacetPrefix ([ string $field_override ] )
public array getFacetQueries ( void )
public int getFacetSort ([ string $field_override ] )
public array getFields ( void )
public array getFilterQueries ( void )
public bool getHighlight ( void )
public string getHighlightAlternateField ([ string $field_override ] )
public array getHighlightFields ( void )
public string getHighlightFormatter ([ string $field_override ] )
public string getHighlightFragmenter ([ string $field_override ] )
public int getHighlightFragsize ([ string $field_override ] )
public bool getHighlightHighlightMultiTerm ( void )
public int getHighlightMaxAlternateFieldLength ([ string $field_override ] )
public int getHighlightMaxAnalyzedChars ( void )
public bool getHighlightMergeContiguous ([ string $field_override ] )
public string getHighlightRegexPattern ( void )
public float getHighlightRegexSlop ( void )
public bool getHighlightRequireFieldMatch ( void )
public string getHighlightSimplePost ([ string $field_override ] )
public string getHighlightSimplePre ([ string $field_override ] )
public int getHighlightSnippets ([ string $field_override ] )
public bool getHighlightUsePhraseHighlighter ( void )
public bool getMlt ( void )
public bool getMltBoost ( void )
public int getMltCount ( void )
public array getMltFields ( void )
public int getMltMaxNumQueryTerms ( void )
public int getMltMaxNumTokens ( void )
public int getMltMaxWordLength ( void )
public int getMltMinDocFrequency ( void )
public int getMltMinTermFrequency ( void )
public int getMltMinWordLength ( void )
public array getMltQueryFields ( void )
public string getQuery ( void )
public int getRows ( void )
public array getSortFields ( void )
public int getStart ( void )
public bool getStats ( void )
public array getStatsFacets ( void )
public array getStatsFields ( void )
public bool getTerms ( void )
public string getTermsField ( void )
public bool getTermsIncludeLowerBound ( void )
public bool getTermsIncludeUpperBound ( void )
public int getTermsLimit ( void )
public string getTermsLowerBound ( void )
public int getTermsMaxCount ( void )
public int getTermsMinCount ( void )
public string getTermsPrefix ( void )
public bool getTermsReturnRaw ( void )
public int getTermsSort ( void )
public string getTermsUpperBound ( void )
public int getTimeAllowed ( void )
publicSolrQuery removeFacetDateField ( string $field )
publicSolrQuery removeFacetDateOther ( string $value [, string $field_override ] )
publicSolrQuery removeFacetField ( string $field )
publicSolrQuery removeFacetQuery ( string $value )
publicSolrQuery removeField ( string $field )
publicSolrQuery removeFilterQuery ( string $fq )
publicSolrQuery removeHighlightField ( string $field )
publicSolrQuery removeMltField ( string $field )
publicSolrQuery removeMltQueryField ( string $queryField )
publicSolrQuery removeSortField ( string $field )
publicSolrQuery removeStatsFacet ( string $value )
publicSolrQuery removeStatsField ( string $field )
publicSolrQuery setEchoHandler ( bool $flag )
publicSolrQuery setEchoParams ( string $type )
publicSolrQuery setExplainOther ( string $query )
publicSolrQuery setFacet ( bool $flag )
publicSolrQuery setFacetDateEnd ( string $value [, string $field_override ] )
publicSolrQuery setFacetDateGap ( string $value [, string $field_override ] )
publicSolrQuery setFacetDateHardEnd ( bool $value [, string $field_override ] )
publicSolrQuery setFacetDateStart ( string $value [, string $field_override ] )
publicSolrQuery setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )
publicSolrQuery setFacetLimit ( int $limit [, string $field_override ] )
publicSolrQuery setFacetMethod ( string $method [, string $field_override ] )
publicSolrQuery setFacetMinCount ( int $mincount [, string $field_override ] )
publicSolrQuery setFacetMissing ( bool $flag [, string $field_override ] )
publicSolrQuery setFacetOffset ( int $offset [, string $field_override ] )
publicSolrQuery setFacetPrefix ( string $prefix [, string $field_override ] )
publicSolrQuery setFacetSort ( int $facetSort [, string $field_override ] )
publicSolrQuery setHighlight ( bool $flag )
publicSolrQuery setHighlightAlternateField ( string $field [, string $field_override ] )
publicSolrQuery setHighlightFormatter ( string $formatter [, string $field_override ] )
publicSolrQuery setHighlightFragmenter ( string $fragmenter [, string $field_override ] )
publicSolrQuery setHighlightFragsize ( int $size [, string $field_override ] )
publicSolrQuery setHighlightHighlightMultiTerm ( bool $flag )
publicSolrQuery setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )
publicSolrQuery setHighlightMaxAnalyzedChars ( int $value )
publicSolrQuery setHighlightMergeContiguous ( bool $flag [, string $field_override ] )
publicSolrQuery setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )
publicSolrQuery setHighlightRegexPattern ( string $value )
publicSolrQuery setHighlightRegexSlop ( float $factor )
publicSolrQuery setHighlightRequireFieldMatch ( bool $flag )
publicSolrQuery setHighlightSimplePost ( string $simplePost [, string $field_override ] )
publicSolrQuery setHighlightSimplePre ( string $simplePre [, string $field_override ] )
publicSolrQuery setHighlightSnippets ( int $value [, string $field_override ] )
publicSolrQuery setHighlightUsePhraseHighlighter ( bool $flag )
publicSolrQuery setMlt ( bool $flag )
publicSolrQuery setMltBoost ( bool $flag )
publicSolrQuery setMltCount ( int $count )
publicSolrQuery setMltMaxNumQueryTerms ( int $value )
publicSolrQuery setMltMaxNumTokens ( int $value )
publicSolrQuery setMltMaxWordLength ( int $maxWordLength )
publicSolrQuery setMltMinDocFrequency ( int $minDocFrequency )
publicSolrQuery setMltMinTermFrequency ( int $minTermFrequency )
publicSolrQuery setMltMinWordLength ( int $minWordLength )
publicSolrQuery setOmitHeader ( bool $flag )
publicSolrQuery setQuery ( string $query )
publicSolrQuery setRows ( int $rows )
publicSolrQuery setShowDebugInfo ( bool $flag )
publicSolrQuery setStart ( int $start )
publicSolrQuery setStats ( bool $flag )
publicSolrQuery setTerms ( bool $flag )
publicSolrQuery setTermsField ( string $fieldname )
publicSolrQuery setTermsIncludeLowerBound ( bool $flag )
publicSolrQuery setTermsIncludeUpperBound ( bool $flag )
publicSolrQuery setTermsLimit ( int $limit )
publicSolrQuery setTermsLowerBound ( string $lowerBound )
publicSolrQuery setTermsMaxCount ( int $frequency )
publicSolrQuery setTermsMinCount ( int $frequency )
publicSolrQuery setTermsPrefix ( string $prefix )
publicSolrQuery setTermsReturnRaw ( bool $flag )
publicSolrQuery setTermsSort ( int $sortType )
publicSolrQuery setTermsUpperBound ( string $upperBound )
publicSolrQuery setTimeAllowed ( int $timeAllowed )
/* Méthodes héritées */
public void SolrModifiableParams::__destruct ( void )
}

Constantes pré-définies

Types de noeud SolrQuery

SolrQuery::ORDER_ASC

Utilisé pour spécifier une direction croissante du tri.

SolrQuery::ORDER_DESC

Utilisé pour spécifier une direction décroissante du tri.

SolrQuery::FACET_SORT_INDEX

Utilisé pour spécifier que le facet doit être trié par son index

SolrQuery::FACET_SORT_COUNT

Utilisé pour spécifier que le facet doit être trié par son total.

SolrQuery::TERMS_SORT_INDEX

Utilisé dans TermsComponent

SolrQuery::TERMS_SORT_COUNT

Utilisé dans TermsComponent


SolrQuery::addFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateFieldLie un facet.date

Description

public SolrQuery SolrQuery::addFacetDateField ( string $dateField )

Cette méthode vous permet de spécifier un champ qui doit être traité comme une facette.

Elle peut être utilisée plusieurs fois avec différents noms de champs pour indiquer plusieurs champs de facette.

Liste de paramètres

dateField

Le nom du champ date.

Valeurs de retour

Retourne un objet SolrQuery.



SolrQuery::addFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateOtherAjoute une autre paramètre facet.date.other

Description

publicSolrQuery SolrQuery::addFacetDateOther ( string $value [, string $field_override ] )

Définit le paramètre facet.date.other. Accepte un paramètre optionnel permettant d'écraser la valeur.

Liste de paramètres

value

La valeur à utiliser.

field_override

Le nom du champ pour l'écrasement.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retourné est utilisée.



SolrQuery::addFacetField

(PECL solr >= 0.9.2)

SolrQuery::addFacetFieldAjoute un autre champ à la facette

Description

publicSolrQuery SolrQuery::addFacetField ( string $field )

Ajoute un autre champ à la facette.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::addFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::addFacetQueryAjoute une requête de facette

Description

publicSolrQuery SolrQuery::addFacetQuery ( string $facetQuery )

Ajoute une requête de facette.

Liste de paramètres

facetQuery

La requête de facette

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::addField

(PECL solr >= 0.9.2)

SolrQuery::addFieldSpécifie quel champ doit retourner le résultat

Description

publicSolrQuery SolrQuery::addField ( string $field )

Cette méthode est utilisé pour spécifier un jeu de champs à retourner, permettant ainsi de limiter la quantité d'informations retournées.

Cette méthode doit être appelée plusieurs fois ; une fois par nom de champ.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant.



SolrQuery::addFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::addFilterQuerySpécifie un filtre de requête

Description

publicSolrQuery SolrQuery::addFilterQuery ( string $fq )

Spécifie un filtre de requête.

Liste de paramètres

fq

Le filtre de requête

Valeurs de retour

Retourne l'objet SolrQuery courant.



SolrQuery::addHighlightField

(PECL solr >= 0.9.2)

SolrQuery::addHighlightFieldLie un hl.fl

Description

publicSolrQuery SolrQuery::addHighlightField ( string $field )

Lie un hl.fl. Ceci est utilisé pour spécifier le champ à mettre en évidence.

Liste de paramètres

field

Nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::addMltField

(PECL solr >= 0.9.2)

SolrQuery::addMltFieldSpécifie un champ à utiliser pour les similitudes

Description

publicSolrQuery SolrQuery::addMltField ( string $field )

Lie un mlt.fl. Il spécifie qu'un champ doit être utilisé pour les similitudes.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::addMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::addMltQueryFieldLie un mlt.qf

Description

publicSolrQuery SolrQuery::addMltQueryField ( string $field , float $boost )

Lie un mlt.qf. Utilisé pour spécifier les champs de requêtes ainsi que leurs renforts.

Liste de paramètres

field

Le nom du champ

boost

La valeur du renfort

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::addSortField

(PECL solr >= 0.9.2)

SolrQuery::addSortFieldUtilisé pour contrôler le tri du résultat

Description

publicSolrQuery SolrQuery::addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )

Utilisé pour contrôler le tri du résultat.

Liste de paramètres

field

Le nom du champ

order

La direction du tri. Doit être soit SolrQuery::ORDER_ASC, soit SolrQuery::ORDER_DESC.

Valeurs de retour

Retourne l'objet SolrQuery courant.



SolrQuery::addStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::addStatsFacetRécupère un sous résultat pour y trouver des valeurs d'une facette donnée

Description

publicSolrQuery SolrQuery::addStatsFacet ( string $field )

Récupère un sous résultat pour y trouver des valeurs d'une facette donnée. Lie un champ stats.facet.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet courant SolrQuery, si la valeur retournée est utilisée.



SolrQuery::addStatsField

(PECL solr >= 0.9.2)

SolrQuery::addStatsFieldLie un paramètre stats.field

Description

public SolrQuery SolrQuery::addStatsField ( string $field )

Lie un paramètre stats.field. Cette méthode ajoute un autre paramètre stats.field.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::__construct

(PECL solr >= 0.9.2)

SolrQuery::__constructConstructeur

Description

SolrQuery::__construct ([ string $q ] )

Constructeur.

Liste de paramètres

q

Requête de recherche optionnelle

Valeurs de retour

Aucun



SolrQuery::__destruct

(PECL solr >= 0.9.2)

SolrQuery::__destructDestructeur

Description

publicvoid SolrQuery::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucun.



SolrQuery::getFacet

(PECL solr >= 0.9.2)

SolrQuery::getFacetRetourne la valeur du paramètre de facette

Description

public bool SolrQuery::getFacet ( void )

Retourne la valeur du paramètre de facette.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateEndRetourne la valeur du paramètre facet.date.end

Description

public string SolrQuery::getFacetDateEnd ([ string $field_override ] )

Retourne la valeur du paramètre facet.date.end. Cette méthode accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFacetDateFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateFieldsRetourne tous les champs facet.date

Description

public array SolrQuery::getFacetDateFields ( void )

Retourne tous les champs facet.date.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne tous les champs facet.date sous la forme d'un tableau ou NULL si aucun n'a été défini.



SolrQuery::getFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateGapRécupère la valeur du paramètre facet.date.gap

Description

public string SolrQuery::getFacetDateGap ([ string $field_override ] )

Récupère la valeur du paramètre facet.date.gap. La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.



SolrQuery::getFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateHardEndRécupère la valeur du paramètre facet.date.hardend

Description

public string SolrQuery::getFacetDateHardEnd ([ string $field_override ] )

Récupère la valeur du paramètre facet.date.hardend . La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.



SolrQuery::getFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateOtherRécupère la valeur du paramètre facet.date.other

Description

public array SolrQuery::getFacetDateOther ([ string $field_override ] )

Récupère la valeur du paramètre facet.date.other. La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.



SolrQuery::getFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateStartRécupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ

Description

public string SolrQuery::getFacetDateStart ([ string $field_override ] )

Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ. Accepte un champ optionnel pour l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si le paramètre n'est pas défini.



SolrQuery::getFacetFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetFieldsRécupère toutes les facettes des champs

Description

public array SolrQuery::getFacetFields ( void )

Récupère toutes les facettes des champs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant tous les champs et NULL si aucun n'a été défini.



SolrQuery::getFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::getFacetLimitRécupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs

Description

public int SolrQuery::getFacetLimit ([ string $field_override ] )

Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs. Cette méthode accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::getFacetMethodRécupère la valeur du paramètre facet.method

Description

public string SolrQuery::getFacetMethod ([ string $field_override ] )

Récupère la valeur du paramètre facet.method. La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.



SolrQuery::getFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::getFacetMinCountRécupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse

Description

public int SolrQuery::getFacetMinCount ([ string $field_override ] )

Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::getFacetMissingRécupère l'état courant du paramètre facet.missing

Description

public bool SolrQuery::getFacetMissing ([ string $field_override ] )

Récupère l'état courant du paramètre facet.missing. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::getFacetOffsetRécupère la position dans la liste des contraintes à utiliser pour la pagination

Description

public int SolrQuery::getFacetOffset ([ string $field_override ] )

Récupère la position dans la liste des contraintes à utiliser pour la pagination. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::getFacetPrefixRécupère le préfixe de la facette

Description

public string SolrQuery::getFacetPrefix ([ string $field_override ] )

Récupère le préfixe de la facette.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFacetQueries

(PECL solr >= 0.9.2)

SolrQuery::getFacetQueriesRécupère toutes les facettes des requêtes

Description

public array SolrQuery::getFacetQueries ( void )

Récupère toutes les facettes des requêtes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun paramètre n'a été défini.



SolrQuery::getFacetSort

(PECL solr >= 0.9.2)

SolrQuery::getFacetSortRetourne le type de tri de la facette

Description

public int SolrQuery::getFacetSort ([ string $field_override ] )

Retourne un entier (SolrQuery::FACET_SORT_INDEX ou SolrQuery::FACET_SORT_COUNT).

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier (SolrQuery::FACET_SORT_INDEX ou SolrQuery::FACET_SORT_COUNT) en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getFields

(PECL solr >= 0.9.2)

SolrQuery::getFieldsRécupère la liste des champs qui seront retournés dans la réponse

Description

public array SolrQuery::getFields ( void )

Récupère la liste des champs qui seront retournés dans la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getFilterQueries

(PECL solr >= 0.9.2)

SolrQuery::getFilterQueriesRécupère un tableau de filtres de requêtes

Description

public array SolrQuery::getFilterQueries ( void )

Récupère un tableau de filtres de requêtes. Ce sont les requêtes qui peuvent être utilisées pour restreindre le jeu de documents qui peut être retourné, sans influencer le score.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlight

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRécupère l'état du paramètre h1

Description

public bool SolrQuery::getHighlight ( void )

Retourne un booléen indiquant si les extraits mis en évidence doivent être générés dans la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::getHighlightAlternateFieldRécupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde

Description

public string SolrQuery::getHighlightAlternateField ([ string $field_override ] )

Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'a été défini.



SolrQuery::getHighlightFields

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFieldsRécupère tous les champs pour lesquels Solr doit mettre en évidence un extrait

Description

public array SolrQuery::getHighlightFields ( void )

Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'a été défini.



SolrQuery::getHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFormatterRécupère le formatage utilisé pour mettre en évidence la sortie

Description

public string SolrQuery::getHighlightFormatter ([ string $field_override ] )

Récupère le formatage utilisé pour mettre en évidence la sortie.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragmenterRécupère le générateur d'extrait de texte pour la mise en évidence

Description

public string SolrQuery::getHighlightFragmenter ([ string $field_override ] )

Récupère le générateur d'extrait de texte pour la mise en évidence. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragsizeRetourne le nombre de caractères des fragments à considérer pour la mise en évidence

Description

public int SolrQuery::getHighlightFragsize ([ string $field_override ] )

Retourne le nombre de caractères des fragments à considérer pour la mise en évidence. Zéro signifie aucun fragments. Le champ entier devrait être utilisé.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::getHighlightHighlightMultiTermRetourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes

Description

public bool SolrQuery::getHighlightHighlightMultiTerm ( void )

Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAlternateFieldLengthRetourne le nombre maximal de caractères du champ à retourner

Description

public int SolrQuery::getHighlightMaxAlternateFieldLength ([ string $field_override ] )

Retourne le nombre maximal de caractères du champ à retourner.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAnalyzedCharsRetourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés

Description

public int SolrQuery::getHighlightMaxAnalyzedChars ( void )

Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMergeContiguousRetourne si l'on doit rassembler les fragments contigus en un seul fragment

Description

public bool SolrQuery::getHighlightMergeContiguous ([ string $field_override ] )

Retourne si l'on doit rassembler les fragments contigus en un seul fragment. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexMaxAnalyzedCharsRetourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex

Description

public int SolrQuery::getHighlightRegexMaxAnalyzedChars ( void )

Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexPatternRécupère l'expression rationnelle utilisée pour la fragmentation

Description

public string SolrQuery::getHighlightRegexPattern ( void )

Récupère l'expression rationnelle utilisée pour la fragmentation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexSlopRécupère le facteur de déviation depuis la taille du fragment idéal

Description

public float SolrQuery::getHighlightRegexSlop ( void )

Retourne le facteur utilisé par l'expression rationnelle de fragmentation pour la déviation depuis la taille idéal du fragment afin d'accommoder l'expression rationnelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un double en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRequireFieldMatchRetourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier

Description

public bool SolrQuery::getHighlightRequireFieldMatch ( void )

Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePostRécupère le texte qui doit apparaître après le terme mise en évidence

Description

public string SolrQuery::getHighlightSimplePost ([ string $field_override ] )

Récupère le texte qui doit apparaître après le terme mise en évidence. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePreRetourne le texte qui doit apparaître avant le terme mise en évidence

Description

public string SolrQuery::getHighlightSimplePre ([ string $field_override ] )

Retourne le texte qui doit apparaître avant le terme mise en évidence. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSnippetsRécupère le nombre maximal d'extraits mis en évidence à générer par champ

Description

public int SolrQuery::getHighlightSnippets ([ string $field_override ] )

>Récupère le nombre maximal d'extraits mis en évidence à générer par champ. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightUsePhraseHighlighterRécupère l'état du paramètre hl.usePhraseHighlighter

Description

public bool SolrQuery::getHighlightUsePhraseHighlighter ( void )

Retourne si l'on doit utiliser SpanScorer pour mettre en évidence les termes d'une phrase uniquement lorsqu'ils apparaissent dans la phrase de requête du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getMlt

(PECL solr >= 0.9.2)

SolrQuery::getMltRetourne si les résultats MoreLikeThis doivent être activés

Description

public bool SolrQuery::getMlt ( void )

Retourne si les résultats MoreLikeThis doivent être activés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getMltBoost

(PECL solr >= 0.9.2)

SolrQuery::getMltBoostRetourne si la requête doit être améliorée en utilisant la pertinence des termes

Description

public bool SolrQuery::getMltBoost ( void )

Retourne si la requête doit être améliorée en utilisant la pertinence des termes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getMltCount

(PECL solr >= 0.9.2)

SolrQuery::getMltCountRécupère le nombre de documents similaires à retourner pour chaque résultat

Description

public int SolrQuery::getMltCount ( void )

Récupère le nombre de documents similaires à retourner pour chaque résultat.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getMltFields

(PECL solr >= 0.9.2)

SolrQuery::getMltFieldsRécupère tous les champs à utiliser pour la similarité

Description

public array SolrQuery::getMltFields ( void )

Récupère tous les champs à utiliser pour la similarité.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumQueryTermsRetourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête

Description

public int SolrQuery::getMltMaxNumQueryTerms ( void )

Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si le nombre maximal n'est pas défini.



SolrQuery::getMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumTokensRetourne le nombre maximal de jokers à analyser dans chaque champ du document

Description

public int SolrQuery::getMltMaxNumTokens ( void )

Retourne le nombre maximal de jokers à analyser dans chaque champ du document qui n'est pas stocké avec le support TermVector.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si le nombre maximal de jokers n'est pas défini.



SolrQuery::getMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxWordLengthRetourne la longueur minimale des mots en deçà de laquelle ils seront ignorés

Description

public int SolrQuery::getMltMaxWordLength ( void )

Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si la longueur n'est pas définie.



SolrQuery::getMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinDocFrequencyRetourne le seuil de fréquence d'apparition des mots

Description

public int SolrQuery::getMltMinDocFrequency ( void )

Retourne le seuil de fréquence d'apparition des mots en deçà duquel ils seront ignorés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si le seuil n'est pas défini.



SolrQuery::getMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinTermFrequencyRetourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source

Description

public int SolrQuery::getMltMinTermFrequency ( void )

Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si la fréquence n'est pas définie.



SolrQuery::getMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMinWordLengthRetourne la longueur minimum d'un mot en deça duquel il sera ignoré

Description

public int SolrQuery::getMltMinWordLength ( void )

Retourne la longueur minimum d'un mot en deça duquel il sera ignoré.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si la longueur n'est pas définie.



SolrQuery::getMltQueryFields

(PECL solr >= 0.9.2)

SolrQuery::getMltQueryFieldsRetourne les champs de la requête ainsi que leurs boosts

Description

public array SolrQuery::getMltQueryFields ( void )

Retourne les champs de la requête ainsi que leurs boosts.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun champ n'est défini.



SolrQuery::getQuery

(PECL solr >= 0.9.2)

SolrQuery::getQueryRetourne la requête principale

Description

public string SolrQuery::getQuery ( void )

Retourne la requête principale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si indéfini.



SolrQuery::getRows

(PECL solr >= 0.9.2)

SolrQuery::getRowsRetourne le nombre maximal de documents

Description

public int SolrQuery::getRows ( void )

Retourne le nombre maximal de documents depuis le jeu complet de résultats à retourner au client à chaque requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si indéfini.



SolrQuery::getSortFields

(PECL solr >= 0.9.2)

SolrQuery::getSortFieldsRetourne tous les champs de tri

Description

public array SolrQuery::getSortFields ( void )

Retourne tous les champs de tri.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun paramètre n'est défini.



SolrQuery::getStart

(PECL solr >= 0.9.2)

SolrQuery::getStartRetourne la position dans le jeu complet de résultats

Description

public int SolrQuery::getStart ( void )

Retourne la position dans le jeu complet de résultats de la requête à partir de laquelle on doit commencer à retourner les documents.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si indéfini.



SolrQuery::getStats

(PECL solr >= 0.9.2)

SolrQuery::getStatsVérifie si les statistiques sont actives ou non

Description

public bool SolrQuery::getStats ( void )

Vérifie si les statistiques sont actives ou non.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si indéfini.



SolrQuery::getStatsFacets

(PECL solr >= 0.9.2)

SolrQuery::getStatsFacetsRetourne toutes les statistiques définies

Description

public array SolrQuery::getStatsFacets ( void )

Retourne toutes les statistiques définies.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucune n'est définie.



SolrQuery::getStatsFields

(PECL solr >= 0.9.2)

SolrQuery::getStatsFieldsRetourne les statistiques des champs

Description

public array SolrQuery::getStatsFields ( void )

Retourne les statistiques des champs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getTerms

(PECL solr >= 0.9.2)

SolrQuery::getTermsVérifie si le TermsComponent est activé ou non

Description

public bool SolrQuery::getTerms ( void )

Vérifie si le TermsComponent est activé ou non

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si indéfini.



SolrQuery::getTermsField

(PECL solr >= 0.9.2)

SolrQuery::getTermsFieldRécupère le champ depuis lequel les termes sont récupérés

Description

public string SolrQuery::getTermsField ( void )

Récupère le champ depuis lequel les termes sont récupérés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun champ n'est défini.



SolrQuery::getTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeLowerBoundVérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats

Description

public bool SolrQuery::getTermsIncludeLowerBound ( void )

Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeUpperBoundVérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats

Description

public bool SolrQuery::getTermsIncludeUpperBound ( void )

Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès et NULL si aucun n'est défini.



SolrQuery::getTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::getTermsLimitRetourne le nombre maximal de termes que Solr peut retourner

Description

public int SolrQuery::getTermsLimit ( void )

Retourne le nombre maximal de termes que Solr peut retourner.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun nombre n'est défini.



SolrQuery::getTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsLowerBoundRetourne le terme sur lequel on doit commencer

Description

public string SolrQuery::getTermsLowerBound ( void )

Retourne le terme sur lequel on doit commencer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun terme n'est défini.



SolrQuery::getTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMaxCountRetourne la fréquence maximale des documents

Description

public int SolrQuery::getTermsMaxCount ( void )

Retourne la fréquence maximale des documents.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucune fréquence n'est retournée.



SolrQuery::getTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMinCountRetourne la fréquence minimale des documents

Description

public int SolrQuery::getTermsMinCount ( void )

Retourne la fréquence minimale des documents à retourner aux fins d'inclusion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucune fréquence n'est définie.



SolrQuery::getTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::getTermsPrefixRetourne le préfixe du terme

Description

public string SolrQuery::getTermsPrefix ( void )

Retourne le préfixe utilisé pour restreindre les termes. Ainsi, seuls les termes qui commencent par ce préfixe correspondront à la recherche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::getTermsReturnRawSi l'on doit retourner ou non les caractères brutes

Description

public bool SolrQuery::getTermsReturnRaw ( void )

Retourne un booléen indiquant si l'on doit retourner ou non les caractères brutes des termes indexés, suivant s'ils sont humainement lisibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès et NULL si aucun n'est défini.



SolrQuery::getTermsSort

(PECL solr >= 0.9.2)

SolrQuery::getTermsSortRetourne un entier indiquant le nombre de termes stockés

Description

public int SolrQuery::getTermsSort ( void )

SolrQuery::TERMS_SORT_INDEX indique que les termes sont retournés triés sur l'index. SolrQuery::TERMS_SORT_COUNT implique que les termes sont stockés par la fréquence des termes (le plus grand nombre en premier).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsUpperBoundRetourne le terme sur lequel on doit s'arrêter

Description

public string SolrQuery::getTermsUpperBound ( void )

Retourne le terme sur lequel on doit s'arrêter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.



SolrQuery::getTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::getTimeAllowedRetourne le délai d'exécution autorisé pour une requête

Description

public int SolrQuery::getTimeAllowed ( void )

Retourne le délai d'exécution, en millisecondes, autorisé pour une requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun délai n'est défini.



SolrQuery::removeFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateFieldSupprime un champ date

Description

publicSolrQuery SolrQuery::removeFacetDateField ( string $field )

Supprime un champ date.

Liste de paramètres

field

Le nom du champ à supprimer

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateOtherSupprime un paramètre facet.date.other

Description

publicSolrQuery SolrQuery::removeFacetDateOther ( string $value [, string $field_override ] )

Supprime un paramètre facet.date.other.

Liste de paramètres

value

La valeur

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeFacetField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetFieldSupprime un paramètre facet.date

Description

publicSolrQuery SolrQuery::removeFacetField ( string $field )

Supprime un paramètre facet.date.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFacetQuerySupprime un paramètre facet.query

Description

publicSolrQuery SolrQuery::removeFacetQuery ( string $value )

Supprime un paramètre facet.query.

Liste de paramètres

value

La valeur

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeField

(PECL solr >= 0.9.2)

SolrQuery::removeFieldEfface un champ depuis la liste des champs

Description

publicSolrQuery SolrQuery::removeField ( string $field )

Efface un champ depuis la liste des champs.

Liste de paramètres

field

Nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFilterQuerySupprime un filtre de requête

Description

publicSolrQuery SolrQuery::removeFilterQuery ( string $fq )

Supprime un filtre de requête.

Liste de paramètres

fq

Le filtre de requête à supprimer

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeHighlightField

(PECL solr >= 0.9.2)

SolrQuery::removeHighlightFieldSupprime un des champs utilisés pour la mise en évidence

Description

publicSolrQuery SolrQuery::removeHighlightField ( string $field )

Supprime un des champs utilisés pour la mise en évidence.

Liste de paramètres

field

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeMltField

(PECL solr >= 0.9.2)

SolrQuery::removeMltFieldSupprime un des champs moreLikeThis

Description

publicSolrQuery SolrQuery::removeMltField ( string $field )

Supprime un des champs moreLikeThis.

Liste de paramètres

field

Nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::removeMltQueryFieldSupprime un des champs moreLikeThis de la requête

Description

publicSolrQuery SolrQuery::removeMltQueryField ( string $queryField )

Supprime un des champs moreLikeThis de la requête.

Liste de paramètres

queryField

Le champ de la requête

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeSortField

(PECL solr >= 0.9.2)

SolrQuery::removeSortFieldSupprime un champ de tri

Description

publicSolrQuery SolrQuery::removeSortField ( string $field )

Supprime un champ de tri

Liste de paramètres

field

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFacetSupprime un paramètre stats.facet

Description

publicSolrQuery SolrQuery::removeStatsFacet ( string $value )

Supprime un paramètre stats.facet.

Liste de paramètres

value

La valeur

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::removeStatsField

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFieldSupprime un paramètre stats.field

Description

publicSolrQuery SolrQuery::removeStatsField ( string $field )

Supprime un paramètre stats.field.

Liste de paramètres

field

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setEchoHandler

(PECL solr >= 0.9.2)

SolrQuery::setEchoHandlerBascule le paramètre echoHandler

Description

publicSolrQuery SolrQuery::setEchoHandler ( bool $flag )

Si définit à TRUE, Solr placera le nom du gestionnaire utilisé dans la réponse au client à des fins de débogage.

Liste de paramètres

flag

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setEchoParams

(PECL solr >= 0.9.2)

SolrQuery::setEchoParamsDétermine les paramètres à inclure dans la réponse

Description

publicSolrQuery SolrQuery::setEchoParams ( string $type )

Indique à Solr les paramètres à inclure dans la réponse aux fins de déboguage :

- none - n'inclure aucun paramètre
- explicit - inclure les paramètres explicitement spécifiés par le client dans la requête
- all - inclure tous les paramètres impliqués dans la requête, soit spécifiés explicitement par le client, soit implicitement.

Liste de paramètres

type

Le type de paramètres à inclure.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setExplainOther

(PECL solr >= 0.9.2)

SolrQuery::setExplainOtherDéfinit le paramètre de requête explainOther

Description

publicSolrQuery SolrQuery::setExplainOther ( string $query )

Définit le paramètre de requête explainOther.

Liste de paramètres

query

La requête Lucene identifiant un jeu de documents

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacet

(PECL solr >= 0.9.2)

SolrQuery::setFacetLie un paramètre facet. Active ou désactive les facet

Description

publicSolrQuery SolrQuery::setFacet ( bool $flag )

Active ou désactive les facet.

Liste de paramètres

value

TRUE pour activer les facet, FALSE pour les désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateEndLie un facet.date.end

Description

publicSolrQuery SolrQuery::setFacetDateEnd ( string $value [, string $field_override ] )

Lie un facet.date.end

Liste de paramètres

value

Voir facet.date.end

field_override

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateGapLie un facet.date.gap

Description

publicSolrQuery SolrQuery::setFacetDateGap ( string $value [, string $field_override ] )

Lie un facet.date.gap

Liste de paramètres

value

Voir facet.date.gap

field_override

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateHardEndLie un facet.date.hardend

Description

publicSolrQuery SolrQuery::setFacetDateHardEnd ( bool $value [, string $field_override ] )

Lie un facet.date.hardend

Liste de paramètres

value

Voir facet.date.hardend

field_override

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateStartLie un facet.date.start

Description

publicSolrQuery SolrQuery::setFacetDateStart ( string $value [, string $field_override ] )

Lie un facet.date.start.

Liste de paramètres

value

Voir facet.date.start

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetEnumCacheMinDefaultFrequency

(PECL solr >= 0.9.2)

SolrQuery::setFacetEnumCacheMinDefaultFrequencyDéfinit la fréquence minimale du document utilisée pour déterminer le comptage des termes

Description

publicSolrQuery SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )

Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes.

Liste de paramètres

value

La fréquence minimale.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::setFacetLimitLie un facet.limit

Description

publicSolrQuery SolrQuery::setFacetLimit ( int $limit [, string $field_override ] )

Lie un facet.limit. Définit le nombre maximal de contraintes qui doit être retourné pour les champs facet.

Liste de paramètres

limit

Le nombre maximal de contraintes.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::setFacetMethodSpécifie le type d'algorithme à utiliser pour un champ facet

Description

publicSolrQuery SolrQuery::setFacetMethod ( string $method [, string $field_override ] )

Spécifie le type d'algorithme à utiliser pour un champ facet.

Liste de paramètres

method

La méthode à utiliser.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::setFacetMinCountLie un facet.mincount

Description

publicSolrQuery SolrQuery::setFacetMinCount ( int $mincount [, string $field_override ] )

Définit le nombre minimal pour les champs facet qui doit être inclus dans la réponse.

Liste de paramètres

mincount

Le nombre minimal.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::setFacetMissingLie un facet.missing

Description

publicSolrQuery SolrQuery::setFacetMissing ( bool $flag [, string $field_override ] )

Utilisé pour indiquer que, en plus des contraintes relatives aux termes d'un champ facet, un comptage de tous les résultats correspondants qui n'ont pas de valeur pour le champ doit être calculé.

Liste de paramètres

flag

TRUE pour activer cette fonctionnalité. FALSE pour la désactiver.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::setFacetOffsetDéfinit la position dans la liste des contraintes pour la pagination

Description

publicSolrQuery SolrQuery::setFacetOffset ( int $offset [, string $field_override ] )

Définit la position dans la liste des contraintes pour la pagination.

Liste de paramètres

offset

La position.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::setFacetPrefixSpécifie un préfixe utilisé pour limiter les termes

Description

publicSolrQuery SolrQuery::setFacetPrefix ( string $prefix [, string $field_override ] )

Spécifie un préfixe utilisé pour limiter les termes.

Liste de paramètres

prefix

Le préfixe.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setFacetSort

(PECL solr >= 0.9.2)

SolrQuery::setFacetSortDétermine le tri des facet

Description

publicSolrQuery SolrQuery::setFacetSort ( int $facetSort [, string $field_override ] )

Détermine le tri des facet.

Liste de paramètres

facetSort

Utilisez SolrQuery::FACET_SORT_INDEX pour trier sur l'index, ou SolrQuery::FACET_SORT_COUNT pour trier sur le total.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlight

(PECL solr >= 0.9.2)

SolrQuery::setHighlightActive ou désactive la coloration

Description

publicSolrQuery SolrQuery::setHighlight ( bool $flag )

Le fait de définir à TRUE active la coloration des extraits à générer dans la réponse à la requête.

Le fait de définir à FALSE désactive la coloration.

Liste de paramètres

flag

Active ou désactive la coloration

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::setHighlightAlternateFieldSpécifie le champ de sauvegarde à utiliser

Description

publicSolrQuery SolrQuery::setHighlightAlternateField ( string $field [, string $field_override ] )

Si un extrait ne peut être généré en raison de termes ne correspondant pas, la méthode peut spécifier un champ à utiliser comme sauvegarde ou comme résumé par défaut.

Liste de paramètres

field

Le nom du champ de sauvegarde

field_override

Le nom du champ qui sera écrasé par cette configuration.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFormatterSpécifie un formateur pour la sortie colorisée

Description

publicSolrQuery SolrQuery::setHighlightFormatter ( string $formatter [, string $field_override ] )

Spécifie un formateur pour la sortie colorisée.

Liste de paramètres

formatter

Actuellement, la seule valeur est "simple".

field_override

Le nom du champ.



SolrQuery::setHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragmenterDéfinit un générateur d'extraits de texte pour le texte colorisé

Description

publicSolrQuery SolrQuery::setHighlightFragmenter ( string $fragmenter [, string $field_override ] )

Définit un générateur d'extraits de texte pour le texte colorisé.

Liste de paramètres

fragmenter

Le fragmenteur standart est gap. Une autre option est regex, qui tente de créer des fragments qui correspondent à une certain expression rationnelle.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragsizeLa taille du fragment à considérer pour la coloration

Description

publicSolrQuery SolrQuery::setHighlightFragsize ( int $size [, string $field_override ] )

Définit la taille, en caractères, du fragments à considérer pour la coloration. "0" indique que la valeur du champ complet doit être utilisée (aucune fragmentation).

Liste de paramètres

size

La taille, en caractères, du fragment à considérer pour la coloration.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::setHighlightHighlightMultiTermUtilise SpanScorer pour coloriser les termes d'une phrase

Description

publicSolrQuery SolrQuery::setHighlightHighlightMultiTerm ( bool $flag )

Utilise SpanScorer pour coloriser les termes d'une phrase uniquement lorsqu'ils apparaissent dans la phrase de requête du document.

Liste de paramètres

flag

Si l'on doit utiliser ou non SpanScorer pour coloriser les termes de la phrase uniquement lorsqu'ils apparaissent dans la phrase de requête du document.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAlternateFieldLengthDéfinit le nombre maximal de caractères du champ à retourner

Description

publicSolrQuery SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )

Si SolrQuery::setHighlightAlternateField() passe la valeur TRUE, ce paramètre spécifie le nombre maximal de caractères du champ à retourner.

Toutes les valeurs inférieures ou égales à 0 signifient qu'il n'y a pas de limite.

Liste de paramètres

fieldLength

La longueur du champ.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAnalyzedCharsSpécifie le nombre de caractères dans un document pour y chercher des extraits correspondants

Description

publicSolrQuery SolrQuery::setHighlightMaxAnalyzedChars ( int $value )

Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants.

Liste de paramètres

value

Le nombre de caractères dans un document pour y chercher des extraites correspondants

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMergeContiguousSi l'on doit rassembler les fragments proches dans un seul fragment

Description

publicSolrQuery SolrQuery::setHighlightMergeContiguous ( bool $flag [, string $field_override ] )

Si l'on doit rassembler les fragments proches dans un seul fragment.

Liste de paramètres

value

Si l'on doit rassembler les fragments proches dans un seul fragment.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexMaxAnalyzedCharsSpécifie le nombre maximal de caractères à analyser

Description

publicSolrQuery SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )

Spécifie le nombre maximal de caractères à analyser dans un champ lors de l'utilisateur du formatteur regex.

Liste de paramètres

maxAnalyzedChars

Le nombre maximal de caractères à analyser dans un champ lors de l'utilisateur du formatteur regex.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexPatternSpécifie l'expression rationnelle pour la fragmentation

Description

publicSolrQuery SolrQuery::setHighlightRegexPattern ( string $value )

Spécifie l'expression rationnelle pour la fragmentation. Peut être utilisé pour extraire des phrases.

Liste de paramètres

value

L'expression rationnelle pour la fragmentation. Peut être utilisé pour extraire des phrases.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexSlopDéfinit le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment

Description

publicSolrQuery SolrQuery::setHighlightRegexSlop ( float $factor )

Le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment ( spécifié par SolrQuery::setHighlightFragsize ) pour arranger l'expression rationnelle.

Liste de paramètres

factor

Le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRequireFieldMatchChamp correspondant requis lors de la colorisation

Description

publicSolrQuery SolrQuery::setHighlightRequireFieldMatch ( bool $flag )

Si TRUE, alors le champ ne sera colorisé que si la requête correspond dans ce champ particulier.

Ne fonctionne que si SolrQuery::setHighlightUsePhraseHighlighter() a été défini à TRUE.

Liste de paramètres

flag

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePostDéfinit le texte qui doit apparaître après un terme colorisé

Description

publicSolrQuery SolrQuery::setHighlightSimplePost ( string $simplePost [, string $field_override ] )

Définit le texte qui doit apparaître après un terme colorisé.

Liste de paramètres

simplePost

Définit le texte qui doit apparaître après un terme colorisé.

The default is </em>

field_override

Le nom du champ.



SolrQuery::setHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePreDéfinit le texte qui doit apparaître avant un terme colorisé

Description

publicSolrQuery SolrQuery::setHighlightSimplePre ( string $simplePre [, string $field_override ] )

Définit le texte qui doit apparaître avant un terme colorisé.

The default is <em>

Liste de paramètres

simplePre

Le texte qui doit apparaître avant un terme colorisé

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSnippetsDéfinit le nombre maximal d'extraits à coloriser par champ

Description

publicSolrQuery SolrQuery::setHighlightSnippets ( int $value [, string $field_override ] )

Définit le nombre maximal d'extraits à coloriser par champ.

Liste de paramètres

value

Le nombre maximal d'extraits à coloriser par champ.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightUsePhraseHighlighterSi l'on doit coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête

Description

publicSolrQuery SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag )

Si l'on doit utiliser SpanScorer pour coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête du document.

Liste de paramètres

value

Si l'on doit utiliser SpanScorer pour coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête du document.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMltActive ou désactive moreLikeThis

Description

publicSolrQuery SolrQuery::setMlt ( bool $flag )

Active ou désactive moreLikeThis

Liste de paramètres

flag

TRUE pour l'activer, FALSE pour le désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltBoost

(PECL solr >= 0.9.2)

SolrQuery::setMltBoostSi la requête doit être stimulée par la pertinence des termes

Description

publicSolrQuery SolrQuery::setMltBoost ( bool $flag )

Si la requête doit être stimulée par la pertinence des termes.

Liste de paramètres

value

À définir à TRUE ou à FALSE.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltCount

(PECL solr >= 0.9.2)

SolrQuery::setMltCountDéfinit le nombre de documents similaires à retourner à chaque résultat

Description

publicSolrQuery SolrQuery::setMltCount ( int $count )

Définit le nombre de documents similaires à retourner à chaque résultat.

Liste de paramètres

count

Le nombre de documents similaires à retourner à chaque résultat

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumQueryTermsDéfinit le nombre maximal de termes de requête à inclure

Description

publicSolrQuery SolrQuery::setMltMaxNumQueryTerms ( int $value )

Définit le nombre maximal de termes de requête à inclure dans chaque requête générée.

Liste de paramètres

value

Le nombre maximal de termes de requête à inclure dans chaque requête générée.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumTokensSpécifie le nombre maximal de motifs à analyser

Description

publicSolrQuery SolrQuery::setMltMaxNumTokens ( int $value )

Spécifie le nombre maximal de motifs à analyser dans chaque champ d'exemple du document qui n'est pas stocké avec le support TermVector.

Liste de paramètres

value

Le nombre maximal de motifs à analyser.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxWordLengthDéfinit la longueur maximale d'un mot

Description

publicSolrQuery SolrQuery::setMltMaxWordLength ( int $maxWordLength )

Définit la longueur maximale d'un mot en dessus duquel les mots seront ignorés.

Liste de paramètres

maxWordLength

La longueur maximale d'un mot en dessus duquel les mots seront ignorés

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinDocFrequencyDéfinit la fréquence mltMinDoc

Description

publicSolrQuery SolrQuery::setMltMinDocFrequency ( int $minDocFrequency )

Définit la fréquence à partir de laquelle les mots seront ignorés si ils n'apparaissent pas dans les documents.

Liste de paramètres

minDocFrequency

La fréquence à partir de laquelle les mots seront ignorés si ils n'apparaissent pas dans les documents

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinTermFrequencyDéfinit la fréquence en dessous de laquelle les termes seront ignorés dans le document source

Description

publicSolrQuery SolrQuery::setMltMinTermFrequency ( int $minTermFrequency )

Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source.

Liste de paramètres

minTermFrequency

La fréquence en dessous de laquelle les termes seront ignorés dans le document source

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMinWordLengthDéfinit la longueur minimale d'un mot

Description

publicSolrQuery SolrQuery::setMltMinWordLength ( int $minWordLength )

Définit la longueur minimale d'un mot en dessous de laquelle il sera ignoré.

Liste de paramètres

minWordLength

La longueur minimale d'un mot en dessous de laquelle il sera ignoré.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setOmitHeader

(PECL solr >= 0.9.2)

SolrQuery::setOmitHeaderExclut l'en-tête des résultats retournés

Description

publicSolrQuery SolrQuery::setOmitHeader ( bool $flag )

Exclut l'en-tête des résultats retournés.

Liste de paramètres

flag

TRUE pour exclure l'en-tête des résultats.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setQuery

(PECL solr >= 0.9.2)

SolrQuery::setQueryDéfinit la requête de recherche

Description

publicSolrQuery SolrQuery::setQuery ( string $query )

Définit la requête de recherche.

Liste de paramètres

query

La requête de recherche

Valeurs de retour

Retourne l'objet SolrQuery courant.



SolrQuery::setRows

(PECL solr >= 0.9.2)

SolrQuery::setRowsSpécifie le nombre maximal de lignes à retourner dans le résultat

Description

publicSolrQuery SolrQuery::setRows ( int $rows )

Spécifie le nombre maximal de lignes à retourner dans le résultat.

Liste de paramètres

rows

Le nombre maximal de lignes à retourner.

Valeurs de retour

Retourne l'objet SolrQuery courant.



SolrQuery::setShowDebugInfo

(PECL solr >= 0.9.2)

SolrQuery::setShowDebugInfoDrapeau pour afficher les informations de débogage

Description

publicSolrQuery SolrQuery::setShowDebugInfo ( bool $flag )

Drapeau pour afficher les informations de débogage.

Liste de paramètres

flag

Si l'on doit ou non afficher les informations de débogage. TRUE ou FALSE.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setStart

(PECL solr >= 0.9.2)

SolrQuery::setStartSpécifie le nombre maximal de lignes à ignorer

Description

publicSolrQuery SolrQuery::setStart ( int $start )

Spécifie le nombre maximal de lignes à ignorer. Utile pour paginer les résultats.

Liste de paramètres

start

Le nombre de lignes à ignorer.

Valeurs de retour

Retourne l'objet SolrQuery courant.



SolrQuery::setStats

(PECL solr >= 0.9.2)

SolrQuery::setStatsActive ou désactive le composant statistique

Description

publicSolrQuery SolrQuery::setStats ( bool $flag )

Active ou désactive le composant statistique.

Liste de paramètres

flag

TRUE pour activer le composant statistique, FALSE pour le désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTerms

(PECL solr >= 0.9.2)

SolrQuery::setTermsActive ou désactive le TermsComponent

Description

publicSolrQuery SolrQuery::setTerms ( bool $flag )

Active ou désactive le TermsComponent.

Liste de paramètres

flag

TRUE pour l'activer, FALSE pour le désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsField

(PECL solr >= 0.9.2)

SolrQuery::setTermsFieldDéfinit le nom du champ dans lequel les termes seront récupérés

Description

publicSolrQuery SolrQuery::setTermsField ( string $fieldname )

Définit le nom du champ dans lequel les termes seront récupérés.

Liste de paramètres

fieldname

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeLowerBoundInclut le terme inférieure liée dans le jeu de résultat

Description

publicSolrQuery SolrQuery::setTermsIncludeLowerBound ( bool $flag )

Inclut le terme inférieure liée dans le jeu de résultat.

Liste de paramètres

flag

Inclut le terme inférieure liée dans le jeu de résultat.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeUpperBoundInclut le terme supérieure liée dans le jeu de résultat

Description

publicSolrQuery SolrQuery::setTermsIncludeUpperBound ( bool $flag )

Inclut le terme supérieure liée dans le jeu de résultat.

Liste de paramètres

flag

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::setTermsLimitDéfinit le nombre maximal de termes à retourner

Description

publicSolrQuery SolrQuery::setTermsLimit ( int $limit )

Définit le nombre maximal de termes à retourner.

Liste de paramètres

limit

Le nombre maximal de termes à retourner. Tous les termes seront retournés si la limite est négative.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsLowerBoundSpécifie le terme de départ

Description

publicSolrQuery SolrQuery::setTermsLowerBound ( string $lowerBound )

Spécifie le terme de départ.

Liste de paramètres

lowerBound

Le terme

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMaxCountDéfinit la fréquence maximale du document

Description

publicSolrQuery SolrQuery::setTermsMaxCount ( int $frequency )

Définit la fréquence maximale du document.

Liste de paramètres

frequency

La fréquence maximale du document.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMinCountDéfinit la fréquence minimale d'un document

Description

publicSolrQuery SolrQuery::setTermsMinCount ( int $frequency )

Définit la fréquence minimale d'un document.

Liste de paramètres

frequency

La fréquence minimale.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::setTermsPrefixRestreint les termes correspondants qui commencent avec un préfixe donné

Description

publicSolrQuery SolrQuery::setTermsPrefix ( string $prefix )

Restreint les termes correspondants qui commencent avec un préfixe donné.

Liste de paramètres

prefix

Le préfixe.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::setTermsReturnRawRetourne les caractères brutes d'un terme indexé

Description

publicSolrQuery SolrQuery::setTermsReturnRaw ( bool $flag )

Si vaut TRUE, retourne les caractères brutes d'un terme indexé, suivant s'ils sont humainement lisibles.

Liste de paramètres

value

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsSort

(PECL solr >= 0.9.2)

SolrQuery::setTermsSortSpécifie la façon dont seront triés les termes retournés

Description

publicSolrQuery SolrQuery::setTermsSort ( int $sortType )

Si SolrQuery::TERMS_SORT_COUNT, les termes seront triés par leur fréquence (ceux dont la fréquence est la plus élevée en premier). Si SolrQuery::TERMS_SORT_INDEX, retourne les termes suivants leurs indexes.

Liste de paramètres

sortType

SolrQuery::TERMS_SORT_INDEX ou SolrQuery::TERMS_SORT_COUNT

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsUpperBoundDéfinit le terme à partir duquel on doit stopper

Description

publicSolrQuery SolrQuery::setTermsUpperBound ( string $upperBound )

Définit le terme à partir duquel on doit stopper.

Liste de paramètres

upperBound

Le terme.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.



SolrQuery::setTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::setTimeAllowedLe temps allouée pour faire une recherche

Description

publicSolrQuery SolrQuery::setTimeAllowed ( int $timeAllowed )

Le temps allouée pour faire une recherche. Cette valeur ne s'applique qu'aux recherches et non aux requêtes en général. Le temps est en millisecondes. Les valeurs inférieures ou égales à zéro impliquent aucune restriction de temps. Les résultats partiels peuvent être retournés, s'il y en a.

Liste de paramètres

timeAllowed

Le temps allouée pour faire une recherche.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Sommaire



La classe SolrException

Introduction

C'est la classe de base pour toutes les exceptions lancées par les classes de l'extension Solr.

Synopsis de la classe

SolrException extends Exception {
/* Propriétés */
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

message

Le message d'erreur.

code

Le code erreur.

file

Le fichier source PHP de l'espace utilisateur d'où l'exception a été générée.

line

La ligne du fichier source PHP de l'espace utilisateur d'où l'exception a été générée.

sourceline

La ligne du fichier source de l'espace C d'où l'exception a été générée.

sourcefile

Le fichier source de l'espace C d'où l'exception a été générée.

zif_name

La fonction de l'espace C d'où l'exception a été générée.


SolrException::getInternalInfo

(PECL solr >= 0.9.2)

SolrException::getInternalInfoRécupère des informations internes lorsqu'une exception a été lancée

Description

public array SolrException::getInternalInfo ( void )

Récupère des informations internes lorsqu'une exception a été lancée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes lorsqu'une exception a été lancée. Utilisé uniquement dans un cadre de débogage pour les développeurs de l'extension.


Sommaire



La classe SolrClientException

Introduction

Une exception est lancée lorsqu'une erreur survient pendant l'exécution d'une requête vers le serveur depuis le client.

Synopsis de la classe

SolrClientException extends SolrException {
/* Propriétés */
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
public array SolrException::getInternalInfo ( void )
}

Propriétés

message

Le message d'erreur.

code

Le code erreur.

file

Le fichier source PHP de l'espace utilisateur d'où l'exception a été générée.

line

La ligne du fichier source PHP de l'espace utilisateur d'où l'exception a été générée

sourceline

La ligne du fichier source de l'espace C d'où l'exception a été générée.

sourcefile

Le fichier source de l'espace C d'où l'exception a été générée.

zif_name

La fonction de l'espace C d'où l'exception a été générée.


SolrClientException::getInternalInfo

(PECL solr >= 0.9.2)

SolrClientException::getInternalInfoRetourne des informations internes sur l'endroit d'où est lancée l'exception

Description

public array SolrClientException::getInternalInfo ( void )

Retourne des informations internes sur l'endroit d'où est lancée l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes sur l'endroit d'où est lancée l'exception. Utilisé uniquement par les developpeurs de l'extension.


Sommaire



La classe SolrIllegalArgumentException

Introduction

Cet objet est lancé lorsqu'un argument illégal ou invalide est passé à une méthode.

Synopsis de la classe

SolrIllegalArgumentException extends SolrException {
/* Propriétés */
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
public array SolrException::getInternalInfo ( void )
}

Propriétés

message

Le message d'erreur.

code

Le code erreur.

file

Le fichier source PHP de l'espace utilisateur d'où l'exception a été générée.

line

La ligne du fichier source PHP de l'espace utilisateur d'où l'exception a été générée.

sourceline

La ligne du fichier source de l'espace C d'où l'exception a été générée.

sourcefile

Le fichier source de l'espace C d'où l'exception a été générée.

zif_name

La fonction de l'espace C d'où l'exception a été générée.


SolrIllegalArgumentException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalArgumentException::getInternalInfoRetourne des informations sur l'endroit d'où l'exception a été émise

Description

public array SolrIllegalArgumentException::getInternalInfo ( void )

Retourne des informations sur l'endroit d'où l'exception a été émise.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes d'où l'exception a été émise. Utilisé uniquement pour le déboguage par les développeurs de l'extension.


Sommaire



La classe SolrIllegalOperationException

Introduction

Cet objet est lancé lorsqu'une opération illégale ou non supportée est effectuée sur l'objet.

Synopsis de la classe

SolrIllegalOperationException extends SolrException {
/* Propriétés */
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
public array SolrException::getInternalInfo ( void )
}

Propriétés

message

Le message d'erreur.

code

Le code erreur.

file

Le fichier source PHP de l'espace utilisateur d'où l'exception a été générée.

line

La ligne du fichier source PHP de l'espace utilisateur d'où l'exception a été générée.

sourceline

La ligne du fichier source de l'espace C d'où l'exception a été générée.

sourcefile

Le fichier source de l'espace C d'où l'exception a été générée.

zif_name

La fonction de l'espace C d'où l'exception a été générée.


SolrIllegalOperationException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalOperationException::getInternalInfoRécupère des informations internes lorsqu'une exception a été lancée

Description

public array SolrIllegalOperationException::getInternalInfo ( void )

Récupère des informations internes lorsqu'une exception a été lancée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes lorsqu'une exception a été lancée. Utilisé uniquement dans un cadre de débogage pour les développeurs de l'extension.


Sommaire





Extensions spécifiques aux serveurs


Apache


Introduction

Ces fonctions ne sont disponibles que lorsque PHP est exécuté comme module d'Apache.

Note: Depuis PHP 4.3.2, PATH_TRANSLATED n'est plus défini implicitement sous Apache 2 SAPI contrairement à Apache 1, où cette variable était définie avec la même valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'était pas définie par Apache. Cette modification a été effectuée afin de répondre aux spécifications CGI stipulant que PATH_TRANSLATED ne doit exister que si PATH_INFO est définie. Les utilisateurs d'Apache 2 doivent utiliser la directive AcceptPathInfo = On dans le fichier httpd.conf afin de définir la variable PATH_INFO.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour une installation de PHP sous Apache, lisez le chapitre sur l'installation.



Configuration à l'exécution

Le comportement du module PHP d'Apache peut être configuré dans le fichier php.ini. Les configurations du php.ini peuvent être remplacées par l'option php_flag dans le fichier de configuration du serveur, ou dans les fichiers locaux .htaccess.

Exemple #1 Désactiver l'analyse des fichiers PHP dans un dossier avec .htaccess

php_flag engine off

Options de configuration Apache
Nom Défaut Modifiable Historique
engine "1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
child_terminate "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
last_modified "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
xbithack "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

engine booléen

Active ou non PHP. Cette directive est utile uniquement pour le module Apache. Elle est utilisée par les sites qui souhaitent activer ou non PHP, au cas par cas, par dossier ou par dossier virtuel. En utilisant engine off au bon endroit dans le fichier httpd.conf, PHP peut être activé ou non.

child_terminate booléen

Spécifie si les scripts PHP peuvent réclamer la fin des processus fils en fin de requête. Voir aussi apache_child_terminate().

last_modified booléen

Envoie la date de modification des scripts PHP dans l'en-tête HTTP Last-Modified:.

xbithack booléen

Analyse les fichiers avec l'exécutable PHP, indépendamment de leur extension.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Apache


apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminateTermine le processus Apache après cette requête

Description

bool apache_child_terminate ( void )

apache_child_terminate() va programmer le processus Apache pour qu'il se termine une fois la requête PHP courante terminée. Cela peut servir à terminer un processus après un script qui aurait consommé beaucoup de mémoire. En effet, la mémoire est généralement libérée de manière interne, mais pas rendue au système.

Valeurs de retour

Retourne TRUE si PHP fonctionne en tant que module d'Apache 1, que la version d'Apache n'est pas multithread et que la directive PHP child_terminate est activée (désactivée par défaut). Si ces conditions ne sont pas respectées, FALSE est retourné et une erreur de niveau E_WARNING est générée.

Notes

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • exit() - Affiche un message et termine le script courant



apache_get_modules

(PHP 4 >= 4.3.2, PHP 5)

apache_get_modulesRetourne la liste des modules Apache chargés

Description

array apache_get_modules ( void )

Retourne la liste des modules Apache chargés.

Valeurs de retour

Un tableau contenant les modules Apache chargés.

Historique

Version Description
5.0.0 Cette fonction est devenue disponible lors de l'utilisation d'Apache 1 ou de l'API "filter" de PHP Apache 2. Avant cette version, elle n'était disponible qu'en utilisant l'API "handler" d'Apache 2.

Exemples

Exemple #1 Exemple avec apache_get_modules()

<?php
print_r
(apache_get_modules());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)



apache_get_version

(PHP 4 >= 4.3.2, PHP 5)

apache_get_versionRécupère la version d'Apache

Description

string apache_get_version ( void )

Récupère la version d'Apache.

Valeurs de retour

Retourne la version d'Apache en cas de réussite ou FALSE si une erreur survient.

Historique

Version Description
4.3.4 Devenue disponible avec Apache 1.
5.0.0 Devenue disponible avec l'API "filter" d'Apache 2.

Exemples

Exemple #1 Exemple avec apache_get_version()

<?php
$version 
apache_get_version();
echo 
"$version\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Apache/1.3.29 (Unix) PHP/4.3.4 

Voir aussi

  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP



apache_getenv

(PHP 4 >= 4.3.0, PHP 5)

apache_getenvLit une variable de processus Apache

Description

string apache_getenv ( string $variable [, bool $walk_to_top ] )

Récupère une variable d'environnement d'Apache.

Cette fonction requiert Apache 2, autrement elle est indéfinie.

Liste de paramètres

variable

La variable d'environnement Apache.

walk_to_top

Si passé à TRUE, récupération de la variable de haut niveau disponible pour toutes les couches d'Apache.

Valeurs de retour

La valeur de la variable d'environnement d'Apache en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec apache_getenv()

L'exemple suivant montre comment récupérer la valeur de la variable d'environnement SERVER_ADDR.

<?php
$ret 
apache_getenv("SERVER_ADDR");
echo 
$ret;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

42.24.42.240

Voir aussi



apache_lookup_uri

(PHP 4, PHP 5)

apache_lookup_uri Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant

Description

object apache_lookup_uri ( string $filename )

Cette fonction effectue une requête partielle pour l'URI spécifiée. Cette requête permet juste de récupérer toutes les informations importantes à propos de la ressource concernée.

Cette fonction n'est supportée que si PHP est installé en tant que module d'Apache.

Liste de paramètres

filename

Le nom du fichier (URI) qui sera demandé.

Valeurs de retour

Un objet des informations relatives à l'URI. Les propriétés de l'objet sont les suivantes :

  • status
  • the_request
  • status_line
  • method
  • content_type
  • handler
  • uri
  • filename
  • path_info
  • args
  • boundary
  • no_cache
  • no_local_copy
  • allowed
  • send_bodyct
  • bytes_sent
  • byterange
  • clength
  • unparsed_uri
  • mtime
  • request_time

Exemples

Exemple #1 Exemple avec apache_lookup_uri()

<?php
$info 
apache_lookup_uri('index.php?var=value');
print_r($info);

if (
file_exists($info->filename)) {
    echo 
'le fichier existe !';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
le fichier existe !



apache_note

(PHP 4, PHP 5)

apache_noteAffiche ou affecte le paramètre "apache request notes"

Description

string apache_note ( string $note_name [, string $note_value ] )

Cette fonction est une abstraction des commandes table_get et table_set d'Apache. Elle édite la table des notes qui existe lors d'une requête. Le but de cette table est de permettre aux modules Apache de communiquer.

L'utilité de la fonction apache_note() est de passer des informations d'un module vers un autre, durant la même requête.

Liste de paramètres

note_name

Le nom de la note.

note_value

La valeur de la note.

Valeurs de retour

Si la fonction est appelée avec un argument, elle renvoie la valeur courante de la variable note_name. Si elle est appelée avec deux arguments, elle affecte à la note note_name la valeur note_value et elle retournera la valeur précédente de la variable note_name. Si la note ne peut être récupérée, FALSE est retourné.

Exemples

Exemple #1 Passage d'informations entre PHP et Perl

<?php

apache_note
('name''Fredrik Ekengren');

// Appel du script Perl
virtual("/perl/some_script.pl");

$result apache_note("resultdata");
?>
# Récupération de l'objet de demande Apache
my $r = Apache->request()->main();

# Récupération des données passées
my $name = $r->notes('name');

# Des traitements

# Envoi du résultat vers PHP
$r->notes('resultdata', $result);

Exemple #2 Valeurs d'identification dans le fichier access.log

<?php

apache_note
('sessionID'session_id());

?>
# "%{sessionID}n" peut être utilisé dans la directive LogFormat

Voir aussi

  • virtual() - Effectue une sous-requête Apache



apache_request_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_request_headersRécupère tous les en-têtes HTTP de la requête

Description

array apache_request_headers ( void )

Récupère tous les en-têtes HTTP de la requête courante.

Cette fonction n'est supportée que si PHP est installé en tant que module d'Apache.

Valeurs de retour

Un tableau associatif avec tous les en-têtes HTTP de la requête courante ou FALSE en cas d'échec.

Historique

Version Description
4.3.3

Note:

Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

4.3.0 Avant PHP 4.3.0, apache_request_headers() s'appelait getallheaders(). Depuis PHP 4.3.0, getallheaders() est un alias de la fonction apache_request_headers().

Exemples

Exemple #1 Exemple avec apache_request_headers()

<?php
$headers 
apache_request_headers();

foreach (
$headers as $header => $value) {
    echo 
"$header$value <br />\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

Notes

Note:

Vous pouvez aussi obtenir les valeurs des variables CGI communes en les lisant dans l'environnement, ce qui fonctionne, que vous soyez ou non en module Apache. Utilisez la fonction phpinfo() pour connaître la liste des variables d'environnement disponibles.

Voir aussi



apache_reset_timeout

(PHP 5 >= 5.1.0)

apache_reset_timeoutRemet à sa position initiale le temporisateur d'Apache

Description

bool apache_reset_timeout ( void )

apache_reset_timeout() remet à sa position initiale le temporisateur d'Apache, qui vaut par défaut 300 secondes. Avec des appels à set_time_limit(0); ignore_user_abort(true) et des appels périodiques à apache_reset_timeout(), Apache peut, théoriquement, fonctionner sans arrêt.

Cette fonction nécessite Apache 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction est désactivée par le safe-mode

Voir aussi



apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headersRécupère tous les en-têtes de réponse HTTP

Description

array apache_response_headers ( void )

Récupère tous les en-têtes de réponse HTTP.

Valeurs de retour

Un tableau de tous les en-têtes de réponse d'Apache en cas de réussite ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apache_response_headers()

<?php
print_r
(apache_response_headers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Notes

Note:

Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Voir aussi



apache_setenv

(PHP 4 >= 4.2.0, PHP 5)

apache_setenvModifie une variable de processus Apache

Description

bool apache_setenv ( string $variable , string $value [, bool $walk_to_top = false ] )

apache_setenv() définit la valeur de la variable d'environnement Apache spécifiée par le paramètre variable.

Note:

Lors de la définition d'une variable d'environnement Apache, la variable $_SERVER correspondante n'est pas modifiée.

Liste de paramètres

variable

La variable d'environnement qui sera modifiée.

value

La nouvelle valeur de variable.

walk_to_top

Si passé à TRUE, assignation de la variable de haut niveau disponible pour toutes les couches d'Apache.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apache_setenv()

<?php
apache_setenv
("EXAMPLE_VAR""Exemple de Valeur");
?>

Notes

Note:

apache_setenv() peut être utilisée conjointement à apache_getenv() à travers plusieurs pages ou pour définir des variables à passer aux fichiers inclus coté serveur (.shtml) via des scripts PHP.

Voir aussi



getallheaders

(PHP 4, PHP 5)

getallheadersRécupère tous les en-têtes de la requête HTTP

Description

array getallheaders ( void )

Récupère tous les en-têtes de la requête HTTP.

Cette fonction est un alias de la fonction apache_request_headers(). Lisez la documentation de apache_request_headers() pour plus d'informations sur le fonctionnement de cette fonction.

Cette fonction n'est supportée que si PHP est installé en tant que module d'Apache.

Valeurs de retour

Un tableau associatif avec tous les en-têtes HTTP de la requête courante ou FALSE en cas d'échec.

Historique

Version Description
4.3.0 Devient un alias pour apache_request_headers(). Essentiellement, cette fonction a été renommée. Cela est dû au fait que cette fonction ne fonctionne que sous Apache.

Exemples

Exemple #1 Exemple avec getallheaders()

<?php

foreach (getallheaders() as $name => $value) {
    echo 
"$name$value\n";
}

?>

Notes

Note:

Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Voir aussi



virtual

(PHP 4, PHP 5)

virtualEffectue une sous-requête Apache

Description

bool virtual ( string $filename )

virtual() est une fonction spécifique au serveur Apache. Elle est similaire à la directive "<!--#include virtual...-->" lorsque vous utilisez le module mod_include d'Apache. Cette fonction effectue une sous-requête Apache. C'est très utile lorsque vous voulez analyser des scripts CGI, des fichiers .shtml ou n'importe quel autre type de fichier à travers le serveur Apache. Il est à noter que lors de l'utilisation avec des scripts CGI, ces derniers doivent générer un en-tête valide, c'est-à-dire, au minimum un en-tête Content-Type.

Pour exécuter une sous-requête, tous les tampons sont arrêtés et vidés vers le navigateur, les en-têtes restants le sont aussi.

Liste de paramètres

filename

Le fichier sur lequel la commande virtuelle sera effectuée.

Valeurs de retour

Exécute une commande virtuelle en cas de succès ou retourne FALSE en cas d'échec.

Historique

Version Description
4.0.6 Cette fonction peut être utilisée sur des fichiers PHP. Toutefois, il est conseillé d'utiliser les fonctions include() et require() pour les fichiers PHP.

Exemples

Voir la fonction apache_note() pour un exemple.

Notes

Avertissement

La chaîne requise peut être passée au fichier inclus, mais $_GET est copié depuis le script parent et seule la variable $_SERVER['QUERY_STRING'] est transmise en passant la chaîne requise. La chaîne requise passée fonctionne uniquement sous Apache 2. Les fichiers demandés ne sont pas listés dans les logs d'accès Apache.

Note:

Les variables d'environnement fixées dans le fichier demandé ne sont pas visibles dans le fichier appelant.

Note:

Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Voir aussi

  • apache_note() - Affiche ou affecte le paramètre "apache request notes"


Sommaire




Administration d'IIS


Introduction

Cette extension n'est disponible que pour Windows. Elle fournit des fonctions d'administration de Microsoft Internet Information Server (IIS). Cette extension inclut des fonctions pour créer des sites web et des dossiers virtuels, ainsi que pour configurer la sécurité et le extensions de scripts. Ces fonctions ont été ajoutées en PHP 4.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/iisfunc.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

IIS_READ (entier)
IIS_WRITE (entier)
IIS_EXECUTE (entier)
IIS_SCRIPT (entier)
IIS_ANONYMOUS (entier)
IIS_BASIC (entier)
IIS_NTLM (entier)
IIS_STARTING (entier)
IIS_STOPPED (entier)
IIS_PAUSED (entier)
IIS_RUNNING (entier)


Fonctions IIS


iis_add_server

(PECL iisfunc SVN)

iis_add_serverCrée un nouveau serveur web virtuel

Description

int iis_add_server ( string $path , string $comment , string $server_ip , int $port , string $host_name , int $rights , int $start_server )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_get_dir_security

(PECL iisfunc SVN)

iis_get_dir_securityLit la configuration de sécurité du dossier

Description

int iis_get_dir_security ( int $server_instance , string $virtual_path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_get_script_map

(PECL iisfunc SVN)

iis_get_script_mapLit le mappage de script dans un dossier virtuel donné

Description

string iis_get_script_map ( int $server_instance , string $virtual_path , string $script_extension )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_get_server_by_comment

(PECL iisfunc SVN)

iis_get_server_by_commentRetourne le numéro d'instance associé à un Comment

Description

int iis_get_server_by_comment ( string $comment )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_get_server_by_path

(PECL iisfunc SVN)

iis_get_server_by_pathRetourne le numéro d'instance associé avec le chemin

Description

int iis_get_server_by_path ( string $path )

Chaque serveur virtuel sous IIS est représenté par un numéro d'instance. iis_get_server_by_path() trouve ce numéro d'instance à partir du chemin physique jusqu'à la racine du dossier.

Liste de paramètres

path

Le chemin vers le dossier racine

Valeurs de retour

Retourne le numéro d'instance du serveur.



iis_get_server_rights

(PECL iisfunc SVN)

iis_get_server_rightsLit les droits du serveur

Description

int iis_get_server_rights ( int $server_instance , string $virtual_path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_get_service_state

(PECL iisfunc SVN)

iis_get_service_stateRetourne l'état du service défini par ServiceId

Description

int iis_get_service_state ( string $service_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_remove_server

(PECL iisfunc SVN)

iis_remove_serverSupprime le serveur IIS représenté par ServerInstance

Description

int iis_remove_server ( int $server_instance )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_set_app_settings

(PECL iisfunc SVN)

iis_set_app_settingsCrée un espace d'exécution pour une application dans un dossier virtuel

Description

int iis_set_app_settings ( int $server_instance , string $virtual_path , string $application_scope )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_set_dir_security

(PECL iisfunc SVN)

iis_set_dir_securityModifie la configuration de sécurité du dossier

Description

int iis_set_dir_security ( int $server_instance , string $virtual_path , int $directory_flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_set_script_map

(PECL iisfunc SVN)

iis_set_script_mapModifie le mappage de script pour un dossier virtuel

Description

int iis_set_script_map ( int $server_instance , string $virtual_path , string $script_extension , string $engine_path , int $allow_scripting )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_set_server_rights

(PECL iisfunc SVN)

iis_set_server_rightsModifie les droits du serveur

Description

int iis_set_server_rights ( int $server_instance , string $virtual_path , int $directory_flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_start_server

(PECL iisfunc SVN)

iis_start_serverDémarre le serveur web virtuel

Description

int iis_start_server ( int $server_instance )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_start_service

(PECL iisfunc SVN)

iis_start_serviceDémarre le service IIS identifié par ServiceId

Description

int iis_start_service ( string $service_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_stop_server

(PECL iisfunc SVN)

iis_stop_serverStoppe le serveur web virtuel

Description

int iis_stop_server ( int $server_instance )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



iis_stop_service

(PECL iisfunc SVN)

iis_stop_serviceStoppe le service IIS identifié par ServiceId

Description

int iis_stop_service ( string $service_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire




NSAPI


Introduction

Ces fonctions ne sont disponibles que lorsque vous utilisez PHP comme module NSAPI avec les serveurs Netscape/iPlanet/Sun.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Pour l'installation de PHP sur les serveurs Netscape/iPlanet/Sun voyez la section NSAPI (UNIX, Windows) dans le chapitre d'installation.



Configuration à l'exécution

Le comportement du module PHP NSAPI est affecté par le fichier de configuration php.ini. Les configurations du fichier php.ini peuvent être remplacées par d'autres paramètres de la fonction php4_execute dans obj.conf

Options de configuration NSAPI
Nom Défaut Modifiable Historique
nsapi.read_timeout 60 PHP_INI_ALL Disponible depuis PHP 4.3.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

nsapi.read_timeout entier

Configure la durée d'attente des données envoyées en méthode POST par le client.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions NSAPI

Voir aussi

NSAPI implémente un sous-ensemble des fonctions du module Apache, pour un maximum de compatibilité.

Fonctions Apache implémentées par NSAPI
Fonction Apache (uniquement un alias) Fonction NSAPI Description
apache_request_headers() nsapi_request_headers() Lit tous les en-têtes de requête HTTP
apache_response_headers() nsapi_response_headers() Lit tous les en-têtes de réponse HTTP
getallheaders() nsapi_request_headers() Lit tous les en-têtes de requête HTTP
virtual() nsapi_virtual() Fait une sous-requête NSAPI


nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_request_headersLit tous les en-têtes de requête HTTP sur un serveur Netscape

Description

array nsapi_request_headers ( void )

nsapi_request_headers() retourne un tableau associatif avec tous les en-têtes HTTP de la requête courante. C'est uniquement disponible si PHP fonctionne en tant que module NSAPI.

Note:

Avant PHP 4.3.3, getallheaders() n'était disponible que pour les serveurs Apaches. Depuis PHP 4.3.3, getallheaders() est un alias de la fonction nsapi_request_headers() si vous utilisez ce module.

Note:

Vous pouvez aussi obtenir une valeur des variables CGI communes en lisant dans la variable $_SERVER, qui fonctionne si vous utilisez PHP en tant que module NSAPI ou non.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes HTTP.

Exemples

Exemple #1 Exemple avec nsapi_request_headers()

<?php
$headers 
nsapi_request_headers();
                   
foreach (
$headers as $header => $value) {
  echo 
"$header$value <br />\n";
}
?>



nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_response_headers Lit tous les en-têtes de réponse HTTP sur Netscape serveur

Description

array nsapi_response_headers ( void )

nsapi_response_headers() lit tous les en-têtes de réponse HTTP sur Netscape serveur.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes de réponse NSAPI.

Voir aussi



nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5)

nsapi_virtualEffectue une sous-requête NSAPI

Description

bool nsapi_virtual ( string $uri )

virtual() est une fonction spécifique NSAPI, qui est l'équivalent de <!--#include virtual...--> en SSI (fichiers .shtml). Elle effectue une sous-requête NSAPI. C'est pratique pour inclure des scripts CGI ou .shtml ou d'autres choses que vous voulez faire analyser par le serveur web.

Pour exécuter une sous-requête, tous les buffers doivent être vidés vers le navigateur, ainsi que les en-têtes.

Vous ne pouvez pas faire de requêtes récursives avec cette fonction, vers un autre script PHP. Si vous voulez inclure des scripts PHP utilisez la fonction include() ou require().

Note:

Cette fonction dépend d'une fonctionnalité non documentée de Netscape/iPlanet/Sun. Utilisez phpinfo() pour vérifier si elle est disponible. En environnement Unix, cela devrait toujours fonctionner, sous Windows, cela dépend du nom du fichier ns-httpdXX.dll.

Lisez la note à propos des sous-requêtes dans la section NSAPI (UNIX, Windows) si vous avez ce problème.

Liste de paramètres

uri

L'URI du script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire





Extensions sur les Sessions


Fonctions sur le gestionnaire de session Mohawk


Introduction

msession est une interface avec un démon de sessions rapides, qui permet de gérer les sessions localement ou à distance. Il est conçu pour fournir une gestion de sessions cohérente pour une ferme de serveurs PHP. Plus d'informations sur les msession et le démon sont disponibles sur le site » http://www.mohawksoft.org/?q=node/8.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.3.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/msession.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.3



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Msession


msession_connect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_connectOuvre la connexion au serveur msession

Description

bool msession_connect ( string $host , string $port )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_count

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_countCompte le nombre de sessions

Description

int msession_count ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_create

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_createCrée une session

Description

bool msession_create ( string $session [, string $classname [, string $data ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_destroy

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_destroyDétruit une session

Description

bool msession_destroy ( string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_disconnect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_disconnectFerme la connexion au serveur msession

Description

void msession_disconnect ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_find

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_findTrouve toutes les sessions avec un nom et une valeur

Description

array msession_find ( string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_get_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_arrayLit un tableau de variables msession

Description

array msession_get_array ( string $session )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_get_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_dataLit les données de la session

Description

string msession_get_data ( string $session )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_get

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_getLit une valeur dans une session

Description

string msession_get ( string $session , string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_inc

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_incIncrémente une valeur dans une session

Description

string msession_inc ( string $session , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_list

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_listListe toutes les sessions

Description

array msession_list ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_listvar

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_listvarListe les sessions contenant une variable

Description

array msession_listvar ( string $name )

Utilisée pour rechercher les sessions ayant des attributs communs.

Liste de paramètres

name

Le nom à chercher.

Valeurs de retour

Retourne un tableau associatif des valeurs que prend la variable de session name dans les différentes sessions en cours.



msession_lock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_lockVerrouille une session

Description

int msession_lock ( string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_plugin

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_pluginAppel une fonction d'échappement dans les plugins de personnalité msession

Description

string msession_plugin ( string $session , string $val [, string $param ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_randstr

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_randstrLit une chaîne aléatoire

Description

string msession_randstr ( int $param )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_set_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_arrayDéfinit les variables msession depuis un tableau

Description

void msession_set_array ( string $session , array $tuples )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_set_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_dataDéfinit les données de session

Description

bool msession_set_data ( string $session , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_set

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_setModifie une valeur dans la session

Description

bool msession_set ( string $session , string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_timeout

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_timeoutLit et/ou modifie la durée de vie d'une session

Description

int msession_timeout ( string $session [, int $param ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_uniq

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_uniqRécupère un identifiant unique

Description

string msession_uniq ( int $param [, string $classname [, string $data ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



msession_unlock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_unlockDéverrouille une session

Description

int msession_unlock ( string $session , int $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire




Gestion des sessions


Introduction

Le support des sessions de PHP est un moyen de préserver des données entre plusieurs accès. Cela vous permet de créer des applications personnalisées, et d'augmenter l'attrait de votre site.

Chaque visiteur accédant à votre page web se voit assigner un identifiant unique, appelé "identifiant de session". Il peut être stocké soit dans un cookie, soit propagé dans l'URL.

Le support des sessions vous permet d'enregistrer un nombre illimité de variables qui doivent être préservées entre les requêtes. Lorsqu'un visiteur accède à votre site, PHP va vérifier automatiquement (si session.auto_start est activé) ou sur demande (explicitement avec session_start() ou implicitement avec session_register()) s'il existe une session du même nom. Si c'est le cas, l'environnement précédemment sauvé sera recréé.

Attention

Si vous activez session.auto_start alors le seul moyen de mettre des objets en session est de charger les définitions de classe avec auto_prepend_file dans lequel vous chargez les définitions dont vous avez besoin, ou bien vous devrez utiliser serialize() sur votre objet, et unserialize() pour le récupérer.

Toutes les variables sont sérialisées après l'exécution du script PHP. Les variables qui sont indéfinies sont marquées comme telles. Lors des accès ultérieurs, elles ne seront pas définies, jusqu'à ce que l'utilisateur le fasse.

Avertissement

Quelques types de données ne peuvent pas être linéarisés pour être stockés dans les sessions. Cela inclut les variables de type resource ou les objets avec des références circulaires (i.e. objet qui passe une référence à lui-même à un autre objet).

Note:

Notez que lorsque vous travaillez avec les sessions, un enregistrement dans la session ne sera pas créé tant que la variable ne sera pas enregistrée en utilisant la fonction session_register() ou en ajoutant une clé à la variable super-globale $_SESSION. Cela n'est vrai que si vous avez débuté une session en appelant la fonction session_start().

Note:

PHP 5.2.2 a introduit une fonctionnalité non documentée pour stocker dans le dossier "/tmp" même si open_basedir est activé, et "/tmp" n'est pas explicitement ajouté dans les chemins autorisés. Cette fonctionnalité a été retirée de PHP depuis PHP 5.3.0.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Note:

Optionnellement, vous pouvez utiliser l'allocation de mémoire partagée (mm), développé par Ralf S.Engelschall, pour stocker votre session. Vous devez télécharger » mm et l'installer. Cette option n'est pas disponible pour les environnements Windows. Notez que le module de stockage de session mm ne garantit pas les verrous de sessions en cas d'accès multiples à la même session. Il peut être plus approprié d'utiliser un système de fichiers basé en mémoire partagée (comme tmpfs sur Solaris/Linux ou /dev/md sur BSD) pour stocker les sessions dans des fichiers, car ils seront proprement verrouillés. Les données de session sont stockées en mémoire ainsi, elles seront effacées lors du redémarrage du serveur web.



Installation

Le support des sessions est activé par défaut. Si vous souhaitez l'exclure de PHP, vous devez utiliser l'option --disable-session lors de l'exécution du script de configuration. Pour utiliser la mémoire vive pour le stockage des sessions, compilez PHP avec l'option --with-mm[=DIR] .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note:

Par défaut, toutes les données relatives à une session particulière seront stockées dans un fichier du répertoire spécifié par session.save_path dans les options du fichier php.ini. Un fichier pour chaque session sera créé. Cela est dû au fait qu'une session est ouverte (un fichier est créé) mais aucune donnée n'est écrite dans ce fichier. Notez que ce comportement est un effet des limitations d'utilisation du système de fichiers et il est possible qu'un gestionnaire de session personnalisé (par exemple, un qui utilise une base de données) ne garde aucune trace des sessions où aucune donnée n'y a été enregistrée.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les sessions
Nom Défaut Modifiable Historique
session.save_path "" PHP_INI_ALL  
session.name "PHPSESSID" PHP_INI_ALL  
session.save_handler "files" PHP_INI_ALL  
session.auto_start "0" PHP_INI_ALL  
session.gc_probability "1" PHP_INI_ALL  
session.gc_divisor "100" PHP_INI_ALL Disponible depuis PHP 4.3.2.
session.gc_maxlifetime "1440" PHP_INI_ALL  
session.serialize_handler "php" PHP_INI_ALL  
session.cookie_lifetime "0" PHP_INI_ALL  
session.cookie_path "/" PHP_INI_ALL  
session.cookie_domain "" PHP_INI_ALL  
session.cookie_secure "" PHP_INI_ALL Disponible depuis PHP 4.0.4.
session.cookie_httponly "" PHP_INI_ALL Disponible depuis PHP 5.2.0.
session.use_cookies "1" PHP_INI_ALL  
session.use_only_cookies "1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
session.referer_check "" PHP_INI_ALL  
session.entropy_file "" PHP_INI_ALL  
session.entropy_length "0" PHP_INI_ALL  
session.cache_limiter "nocache" PHP_INI_ALL  
session.cache_expire "180" PHP_INI_ALL  
session.use_trans_sid "0" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible depuis PHP 4.0.3.
session.bug_compat_42 "1" PHP_INI_ALL Disponible depuis PHP 4.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
session.bug_compat_warn "1" PHP_INI_ALL Disponible depuis PHP 4.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
session.hash_function "0" PHP_INI_ALL Disponible depuis PHP 5.0.0.
session.hash_bits_per_character "4" PHP_INI_ALL Disponible depuis PHP 5.0.0.
url_rewriter.tags "a=href,area=href,frame=src,form=,fieldset=" PHP_INI_ALL Disponible depuis PHP 4.0.4.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Le système de sessions dispose d'un grand nombre de directives dans le fichier php.ini. En voici une présentation :

session.save_handler string
Définit le nom du gestionnaire de session qui est utilisé pour stocker et relire les données. Par défaut, c'est le système intégré par fichiers : files. Noter que les extensions individuelles doivent enregistrer leurs propres gestionnaires de session. Voir aussi session_set_save_handler().
session.save_path string
Définit le chemin qui doit être passé au gestionnaire de sauvegarde. Si vous décidez de choisir le gestionnaire par défaut (par fichiers), cet argument sera utilisé comme dossier de sauvegarde des sessions. Voir aussi session_save_path().

Il y a un argument optionnel N à cette directive qui détermine la profondeur de répertoires où votre fichier de session sera stocké. Par exemple, si vous définissez '5;/tmp', votre fichier sera situé dans /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If. Si vous voulez utiliser N, vous devez créer tous ces répertoires avant de les utiliser. Un petit script shell existe dans ext/session pour réaliser ces créations et il se nomme mod_files.sh, et sa version Windows porte le nom mod_files.bat. Notez également que si N est utilisé et est supérieur à 0, alors la routine automatique gc (garbage collection) ne sera pas exécutée ; voir une copie de php.ini pour plus d'informations. Également, si vous utilisez N, assurez-vous d'entourer session.save_path de "doubles guillemets" car le séparateur (;) est également utilisé pour les commentaires dans php.ini.

Avertissement

Si vous laissez cette option configurée avec un dossier accessible en lecture à tout le monde, comme /tmp (par défaut), les autres utilisateurs pourront exploiter ces sessions en obtenant la liste de fichiers dans ce dossier.

Note: Avant PHP 4.3.6, les utilisateurs de Windows doivent changer cette valeur de variable pour que les fonctions de sessions de PHP fonctionnent. Indiquez un chemin de dossier valide, par exemple : c:/temp.

session.name string
Spécifie le nom de la session, qui sera utilisé comme nom de cookie. Il ne doit contenir que des caractères alphanumériques. Par défaut, c'est PHPSESSID. Voir aussi session_name().
session.auto_start booléen
Spécifie si le module de session doit démarrer automatiquement au début de chaque script PHP. Par défaut, c'est 0 (désactivé).
session.serialize_handler string
Définit le nom du gestionnaire qui est utilisé pour linéariser et délinéariser les données. Actuellement, le format interne à PHP (nommé php ou php_binary) et WDDX (nommé wddx) sont supportés. WDDX est seulement disponible, si PHP a été compilé avec l'option WDDX. Par défaut, c'est php.
session.gc_probability entier
Spécifie la probabilité, exprimée en pourcentage, en conjonction de session.gc_divisor, que la routine gc (garbage collection) soit démarrée à chaque requête. La valeur par défaut est 1. Voir session.gc_divisor pour plus de détails.
session.gc_divisor entier
session.gc_divisor en conjonction avec session.gc_probability définit la probabilité que la routine gc (garbage collection) soit démarrée à chaque début de session. La probabilité est calculée en utilisant gc_probability/gc_divisor, par exemple 1/100 signifie qu'il y a 1 % de chance pour que la routine gc démarre à chaque requête. La valeur par défaut est 100.
session.gc_maxlifetime entier
Spécifie la durée de vie des données sur le serveur, en nombre de secondes. Après cette durée, les données seront considérées comme obsolètes, et peuvent potentiellement être supprimées. Les données peuvent devenir obsolètes lors du démarrage de la session (suivant session.gc_probability et session.gc_divisor).

Note:

Si des scripts différents ont des valeurs différentes de session.gc_maxlifetime mais partagent le même endroit pour y stocker les données de session, alors, le script dont la valeur est la plus petite effacera la donnée. Dans ce cas, utilisez cette directive conjointement avec session.save_path.

Note: Si vous utilisez le gestionnaire de sessions par fichier, qui est fourni par défaut, votre système doit garder la trace des dates de dernier accès aux fichiers (atime). La FAT de Windows ne le fait pas, il vous faudra donc trouver un autre système pour gérer les sessions qui ont expiré. Depuis PHP 4.2.3, on utilise mtime (date de modification) au lieu de atime. Ainsi, vous n'aurez plus de souci avec les systèmes de fichiers qui ne gèrent pas atime.

session.referer_check entier
Contient une sous-chaîne que vous souhaitez retrouver dans tous les en-têtes HTTP Referer. Si cet en-tête a été envoyé par le client et que la sous-chaîne n'a pas été trouvée, l'identifiant de session sera considéré comme invalide. Par défaut, cette option est une chaîne vide.
session.entropy_file string
Est un chemin jusqu'à une source externe (un fichier), qui sera utilisée comme source additionnelle d'entropie pour la création de l'identifiant de session. Des exemples valides sont /dev/random et /dev/urandom, qui sont disponibles sur tous les systèmes Unix. Cette fonctionnalité est supportée sous Windows depuis PHP 5.3.3. Le fait de définir session.entropy_length à une valeur différente de zéro fera que PHP utilisera l'API aléatoire de Windows comme source d'entropie.
session.entropy_length entier
Spécifie le nombre d'octets qui seront lus dans le fichier défini ci-dessus. Par défaut, il vaut 0, c'est-à-dire inactif.
session.use_cookies booléen
Spécifie si le module utilisera les cookies pour stocker les données de session sur le client. Par défaut, il vaut 1, c'est-à-dire actif.
session.use_only_cookies booléen
Spécifie si le module doit utiliser seulement les cookies pour stocker les identifiants de sessions du côté du navigateur. En l'activant, vous éviterez les attaques qui utilisent des identifiants de sessions dans les URL. Cette configuration a été ajoutée en PHP 4.3.0. Par défaut, vaut 1 (activé) depuis PHP 6.0.
session.cookie_lifetime entier
Spécifie la durée de vie du cookie en secondes. La valeur de 0 signifie : "Jusqu'à ce que le navigateur soit éteint". La valeur par défaut est 0. Voir aussi session_get_cookie_params() et session_set_cookie_params().

Note:

Le timestamp représentant la durée de vie du cookie est définit par rapport au temps du serveur, qui n'est pas forcément le même que le temps du navigateur.

session.cookie_path string
Spécifie le chemin utilisé lors de la création du cookie. Par défaut, il vaut /. Voir aussi session_get_cookie_params() et session_set_cookie_params().
session.cookie_domain string
Spécifie le domaine utilisé lors de la création du cookie. Par défaut, il ne vaut rien, cela signifie que c'est le nom de l'hôte du serveur qui génère le cookie en accord avec les spécifications sur les cookies. Voir aussi session_get_cookie_params() et session_set_cookie_params().
session.cookie_secure booléen
Spécifie que les cookies ne doivent être émis que sur des connexions sécurisées. Par défaut, cette option est à off. Cette option a été ajoutée en PHP 4.0.4. Voir aussi session_get_cookie_params() et session_set_cookie_params().
session.cookie_httponly booléen
Marque le cookie pour qu'il ne soit accessible que via le protocole HTTP. Cela signifie que le cookie ne sera pas accessible par les langage de script, comme Javascript. Cette configuration permet de limiter les attaques comme les attaques XSS (bien qu'elle n'est pas supporté par tous les navigateurs).
session.cache_limiter string
Spécifie le type de contrôle de cache utilisé pour les pages avec sessions. Les valeurs possibles sont : nocache, private, private_no_expire, public. Par défaut, il vaut nocache. Voir aussi session_cache_limiter() pour connaître la signification de ces valeurs.
session.cache_expire entier
Spécifie la durée de vie des données de sessions, en minutes. Cette option n'a aucune conséquence sur le contrôle de cache. Par défaut, il vaut 180 (3 heures). Voir aussi session_cache_expire().
session.use_trans_sid booléen
Spécifie si le support du SID est transparent ou pas. Par défaut vaut 0 (désactivé).

Note: En PHP 4.1.2 ou plus ancien, cette option est activée en utilisant l'option de compilation --enable-trans-sid. Depuis PHP 4.2.0, cette option est toujours activée. Le système de gestion des sessions par URL pose un risque supplémentaire de sécurité : un utilisateur peut envoyer son URL avec l'identifiant de session par email à un ami, ou bien le mettre dans ses signets. Cela diffusera alors l'identifiant de session.

session.bug_compat_42 booléen
Les versions de PHP antérieures à la version 4.2.3 disposaient d'une fonctionnalité/bogue non documentée, qui vous permettait d'initialiser une variable de session dans le contexte global, même si register_globals était désactivé. PHP 4.3.0 et plus récent vous préviendra de l'utilisation de cette fonctionnalité si vous avez aussi activé session.bug_compat_warn. Cette fonctionnalité/bogue peut être désactivée en désactivant cette directive.
session.bug_compat_warn booléen
Les versions de PHP antérieures à la version 4.2.3 disposaient d'une fonctionnalité/bogue non documentée, qui vous permettait d'initialiser une variable de session dans le contexte global, même si register_globals était désactivé. PHP 4.3.0 et plus récent vous préviendra de l'utilisation de cette fonctionnalité si vous avez activé session.bug_compat_42 et session.bug_compat_warn.
session.hash_function mixed
session.hash_function vous permet de spécifier la fonction de hachage à utiliser pour générer les identifiants de session. '0' signifie MD5 (128 bits) et '1' signifie SHA-1 (160 bits).

Depuis PHP 5.3.0, il est également possible de spécifier n'importe quel algorithme fourni par l'extension hash (s'il est disponible), comme sha512 ou whirlpool. Une liste complète d'algorithmes peut être obtenue avec la fonction hash_algos().

Note:

Disponible depuis PHP 5.

session.hash_bits_per_character entier
session.hash_bits_per_character vous permet de définir le nombre de bits utilisés pour chaque caractère lors des conversions des données binaires en éléments lisibles. Les valeurs possibles sont '4' (0-9, a-f), '5' (0-9, a-v), et '6' (0-9, a-z, A-Z, "-", ",").

Note:

Disponible depuis PHP 5.

session.url_rewriter.tags string
Spécifie quelles sont les balises HTML qui doivent être réécrites si le support transparent du SID est activé. Par défaut, il vaut a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=.

Note: Si vous voulez vous conformer aux spécifications HTML/XHTML strictes, supprimez l'entrée form et utilisez le tag <fieldset> autour de votre balise form.

Les options track_vars et register_globals influencent le comportement des sessions, leur stockage et leur restauration.

Note:

Depuis PHP 4.0.3, track_vars est toujours activé.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SID (chaîne de caractères)
Constante contenant le nom de la session et l'identifiant en cours, sous la forme "name=ID" ou une chaîne vide si l'identifiant de session a été défini dans un cookie de session. C'est la même valeur que celle retournée par la fonction session_id().


Exemples

Sommaire


Note:

Depuis PHP 4.1.0, $_SESSION est disponible comme variable globale, au même titre que $_POST, $_GET, $_REQUEST, etc. Contrairement à $HTTP_SESSION_VARS, $_SESSION est toujours globale. Par conséquent, vous n'avez pas besoin d'utiliser le mot réservé global avec $_SESSION. Notez que cette documentation a été modifiée pour utiliser $_SESSION. Vous pouvez toujours le remplacer par $HTTP_SESSION_VARS si vous préférez l'ancienne version. Notez également que vous devez démarrer votre session en utilisant la fonction session_start() avant d'utiliser la variable super-globale $_SESSION.

Les clés du tableau $_SESSION sont sujettes aux mêmes limitations que les variables PHP habituelles, c'est-à-dire qu'elles ne peuvent pas commencer par un nombre, mais commencer par une lettre ou un souligné '_'. Pour plus de détails, reportez-vous à la section sur les variables.

Si register_globals est désactivé, seuls les éléments du tableau global $_SESSION contiendront les variables enregistrées dans la session. Les variables de sessions relues seront uniquement disponibles dans $_SESSION.

L'utilisation de $_SESSION (ou $HTTP_SESSION_VARS avec PHP 4.0.6 et plus ancien) est recommandé pour une meilleure sécurité et un code plus facilement entretenu. Avec $_SESSION, il n'y a pas besoin d'utiliser les fonctions session_register(), session_unregister() et session_is_registered(). Les variables de sessions sont accessibles comme toute autre variable.

Exemple #1 Enregistrer une variable avec $_SESSION.

<?php
session_start
();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
if (!isset($_SESSION['count'])) {
  
$_SESSION['count'] = 0;
} else {
  
$_SESSION['count']++;
}
?>

Exemple #2 Retirer une variable de session avec $_SESSION et register_globals inactif.

<?php
session_start
();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
unset($_SESSION['count']);
?>

Attention

N'utilisez PAS la fonction unset() avec $_SESSION sous la forme unset($_SESSION) sinon, cela rendra impossible l'enregistrement de données dans la session en utilisant la super-globale $_SESSION.

Avertissement

Vous ne pouvez pas utiliser les références sur des variables de session car il n'y a aucune manière faisable de restaurer une référence vers une autre variable.

Si register_globals est activé, alors toutes les variables globales peuvent être enregistrées comme variables de session, et toutes les variables de sessions seront reconstituées comme variables globales. Comme PHP doit savoir quels variables globales sont enregistrées comme variables de sessions, l'utilisateur doit enregistrer les variables avec session_register() tandis que $HTTP_SESSION_VARS et $_SESSION ne nécessitent pas session_register().

Attention

Avant PHP 4.3.0, si vous utilisez $_SESSION et que vous avez désactivé register_globals , n'utilisez pas session_register(), session_is_registered() ou session_unregister(). Désactiver register_globals est recommandé pour des raisons de sécurité et de performances.

Si register_globals est activé, alors les variables globales et les entrées dans le tableau $_SESSION seront des références sur la même valeur pour les valeurs qui auront été enregistrées avant le démarrage de la session (donc, dans les page précédentes). Cependant, si la variable a été enregistrée avec $_SESSION, alors, la variable globale est disponible jusqu'à la prochaine requête.

De plus, si vous enregistrez une nouvelle variable avec la fonction session_register(), l'entrée dans l'environnement global et $_SESSION ne fera pas de référence vers la même valeur jusqu'à la prochaine utilisation de session_start() (ceci s'applique à PHP 4.2.3 et avant seulement). C'est à dire qu'une modification dans les variables globales ne sera pas répercutée dans les entrées de $_SESSION. Il est peu probable que cela ait un impact en pratique et, de plus, cela a été corrigé en PHP 4.3.0.



Passer l'identifiant de session (session ID)

Il y a deux méthodes de propagation de l'identifiant de session :

  • Cookies
  • Par URL

Le module de session supporte les deux méthodes. Les cookies sont optimaux, mais comme ils ne sont pas sûrs (tous les internautes ne les acceptent pas), ils ne sont pas fiables. La seconde méthode place l'identifiant de session directement dans les URL.

PHP est capable de faire cela de manière transparente, lorsqu'il est compilé avec l'option --enable-trans-sid. Si vous activez cette option et que l'option d'exécution session.use_trans_sid est activée, les URLs relatives seront modifiées pour contenir l'identifiant de session automatiquement.

Note:

L'option arg_separator.output de php.ini vous permet de personnaliser le séparateur d'arguments. Pour être complètement en accord avec les spécifications XHTML, spécifiez &amp; ici.

Alternativement, vous pouvez utiliser la constante SID qui est définie si la session a commencé. Si le client n'envoie pas un cookie de session approprié, il aura la forme session_name=session_id. Sinon, il vaudra une chaîne vide. Ainsi, vous pouvez dans tous les cas l'inclure dans l'URL.

L'exemple suivant vous montre comment enregistrer une variable et comment réaliser un lien correct avec une autre page, avec SID.

Exemple #1 Compter le nombre de passages d'un utilisateur sur une page

<?php

session_start
();

if (empty(
$_SESSION['count'])) {
 
$_SESSION['count'] = 1;
} else {
 
$_SESSION['count']++;
}
?>

<p>
 Bonjour visiteur, vous avez vu cette page <?php echo $_SESSION['count']; ?> fois.
</p>

<p>
 Pour continuer, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">cliquez ici</a>.
</p>

La fonction htmlspecialchars() est utilisée lors de l'affichage du SID dans le but de contrer les attaques XSS.

L'affichage du SID, comme montré dans l'exemple ci-dessus, n'est pas nécessaire si --enable-trans-sid a été utilisé pour compiler PHP.

Note:

Les URL non-relatives sont considérées comme externes au site, et ne recevront pas le SID, car c'est une fuite d'informations vers un autre site (envoi d'informations importantes).



Gestion personnalisée des sessions

Pour implémenter un stockage en base de données, ou toute autre méthode, vous aurez besoin de la fonction session_set_save_handler() pour paramétrer vos propres fonctions de stockage.




Sessions et sécurité

Lien externe : » Session fixation

Utiliser les sessions ne signifie pas que les données de session ne pourront être vues que par un seul utilisateur. Il est important de garder cela en tête lorsque vous stockez et affichez des données importantes. Lorsque vous stockez des données dans une session, il faut se demander quels seront les problèmes posés si quelqu'un d'autre accède à cette information, ou comment votre application est affectée si la session est en fait celle d'un autre.

Par exemple, si quelqu'un usurpe une session, il peut alors poster un message dans un forum sous une fausse identité. Quelle est la gravité de ce problème ? Ou bien, il peut accéder aux commandes d'un client, et même, modifier son panier d'achat. À priori, c'est moins problématique pour un fleuriste que pour un pharmacien. Si vous voulez résoudre ce souci de façon simple, il peut être utile d'activer session.use_only_cookies. Dans ce cas, les cookies devront être activés par le client, sinon, les sessions ne fonctionneront pas.

Les sessions reposent sur un identifiant de session, ce qui signifie que quelqu'un peut voler cet identifiant, rien qu'en volant l'ID. Ce vol peut être rendu très difficile, comme en utilisant les cookies, mais en aucun cas cela sera impossible. Les sessions dépendent aussi de la discipline de l'utilisateur qui referme son navigateur à la fin de la session pour tout clore proprement. De plus, même les cookies de session peuvent être surveillés sur un réseau, ou bien notés par un proxy car ils transitent en clair sur le réseau. Pour remédier à cela, vous devriez implémenter un chiffrage SSL sur votre plate-forme.



Fonctions Session


session_cache_expire

(PHP 4 >= 4.2.0, PHP 5)

session_cache_expireRetourne la configuration actuelle du délai d'expiration du cache

Description

int session_cache_expire ([ string $new_cache_expire ] )

session_cache_expire() retourne la configuration actuelle de session.cache_expire.

Le délai d'expiration du cache est remis à sa valeur par défaut de 180, stockée dans session.cache_limiter, au démarrage de la requête. Par conséquent, vous devez appeler session_cache_expire() à chaque requête (et avant que session_start() ne soit appelée).

Liste de paramètres

new_cache_expire

Si new_cache_expire est fourni, la configuration actuelle de cache expire sera remplacée par new_cache_expire.

Note: La directive new_cache_expire n'a de valeur que si session.cache_limiter a une valeur différente de nocache.

Valeurs de retour

Retourne la configuration courante de session.cache_expire. La valeur retournée doit être lue en minutes, et vaut par défaut, 180.

Exemples

Exemple #1 Exemple avec session_cache_expire()

<?php

/* Configure le limiteur de cache à 'private' */

session_cache_limiter('private');
$cache_limiter session_cache_limiter();

/* Configure le délai d'expiration à 30 minutes */
session_cache_expire(30);
$cache_expire session_cache_expire();

/* Démarre la session */

session_start();

echo 
"Le limiteur de cache est maintenant fixé à $cache_limiter<br />";
echo 
"La session en cache va expirer après $cache_expire minutes";
?>

Voir aussi



session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5)

session_cache_limiterLit et/ou modifie le limiteur de cache de session

Description

string session_cache_limiter ([ string $cache_limiter ] )

session_cache_limiter()retourne la configuration courante du limiteur de cache.

Le limiteur de cache contrôle les en-têtes HTTP envoyés au client. Certains en-têtes déterminent les règles de mise en cache de la page sur le navigateur. En configurant ce limiteur à nocache, par exemple, le navigateur ne mettra pas la page dans son cache. La valeur public, au contraire, permettra le cache. La valeur private désactive le cache pour le proxy et autorise le client à mettre en cache le contenu.

En mode private, l'en-tête Expire envoyé au client peut poser des problèmes à certains navigateurs, comme, notamment, Mozilla. Vous pouvez éviter ce problème avec le mode private_no_expire. L'en-tête Expire n'est jamais envoyé au navigateur pour ce mode.

Le limiteur de cache est remis à la valeur par défaut de session.cache_limiter à chaque démarrage de script PHP. Donc, vous devrez appeler session_cache_limiter() à chaque page, et avant session_start().

Liste de paramètres

cache_limiter

Si cache_limiter est fourni, le limiteur de cache est reconfiguré avec cette valeur.

Valeurs possibles
Valeurs Entêtes envoyés
public
Expires: (Quelque chose dans le futur, suivant session.cache_expire)
Cache-Control: public, max-age=(Quelque chose dans le futur, suivant session.cache_expire)
Last-Modified: (le timestamp correspondant à la dernière sauvegarde de la session)
private_no_expire
Cache-Control: private, max-age=(session.cache_expire dans le futur), pre-check=(session.cache_expire dans le futur)
Last-Modified: (le timestamp correspondant à la dernière sauvegarde de la session)
private
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private, max-age=(session.cache_expire dans le futur), pre-check=(session.cache_expire dans le futur)
Last-Modified: (le timestamp correspondant à la dernière sauvegarde de la session)
nocache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Valeurs de retour

Retourne le nom du limiteur de cache courant.

Historique

Version Description
4.2.0 Ajout du limiteur de cache private_no_expire.

Exemples

Exemple #1 Exemple avec session_cache_limiter()

<?php

/* configure le limiteur de cache à 'private' */

session_cache_limiter('private');
$cache_limiter session_cache_limiter();

echo 
"Le limiteur de cache vaut maintenant $cache_limiter<br />";
?>



session_commit

(PHP 4 >= 4.4.0, PHP 5)

session_commitAlias de session_write_close()

Description

Cette fonction est un alias de : session_write_close().



session_decode

(PHP 4, PHP 5)

session_decodeDécode les données de session

Description

bool session_decode ( string $data )

session_decode() décode les données de sessions fournies dans le paramètre data, et définit les variables ainsi contenues dans la session.

Liste de paramètres

data

Les données encodées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



session_destroy

(PHP 4, PHP 5)

session_destroyDétruit une session

Description

bool session_destroy ( void )

session_destroy() détruit toutes les données associées à la session courante. Cette fonction ne détruit pas les variables globales associées à la session, de même, elle ne détruit pas le cookie de session. Pour accéder à nouveau aux variables de session, la fonction session_start() doit être appelée de nouveau.

Pour détruire complètement une session, comme faire sortir l'utilisateur, l'identifiant de la session doit également être effacé. Si un cookie est utilisé pour propager l'identifiant de session (comportement par défaut), alors le cookie de session doit être effacé. La fonction setcookie() peut être utilisée pour cela.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Destruction d'une session avec $_SESSION

<?php
// Initialisation de la session.
// Si vous utilisez un autre nom
// session_name("autrenom")
session_start();

// Détruit toutes les variables de session
$_SESSION = array();

// Si vous voulez détruire complètement la session, effacez également
// le cookie de session.
// Note : cela détruira la session et pas seulement les données de session !
if (ini_get("session.use_cookies")) {
    
$params session_get_cookie_params();
    
setcookie(session_name(), ''time() - 42000,
        
$params["path"], $params["domain"],
        
$params["secure"], $params["httponly"]
    );
}

// Finalement, on détruit la session.
session_destroy();
?>

Notes

Note:

Utilisez uniquement la fonction session_unset() pour l'ancien code obsolète qui n'utilise pas les variables $_SESSION.

Voir aussi



session_encode

(PHP 4, PHP 5)

session_encodeEncode les données de session

Description

string session_encode ( void )

session_encode() retourne une chaîne contenant les variables de la session courante encodées et prêtes au stockage.

Valeurs de retour

Retourne le contenu encodé de la session courante.

Voir aussi




session_id

(PHP 4, PHP 5)

session_idLit et/ou modifie l'identifiant courant de session

Description

string session_id ([ string $id ] )

session_id() est utilisé pour récupérer ou définir l'identifiant de session pour la session courante.

La constante SID peut également être utilisée pour lire le nom de la session courante et l'identifiant de session à fournir dans les URL. Voyez aussi Gestion de session.

Liste de paramètres

id

Si id est fourni, il remplacera l'identifiant courant de session. session_id() doit alors être appelé avant session_start(). Suivant le gestionnaire de sessions que vous utilisez, tous les caractères ne seront pas acceptés dans cette valeur. Par exemple, le gestionnaire de sessions par défaut, basé sur les fichiers, n'accepte que les caractères compris dans l'intervalle a-z, A-Z et 0-9 !

Note: Lorsque vous utilisez les sessions avec les cookies, le fait de spécifier un id pour session_id() fera qu'un nouveau cookie sera toujours envoyé lors de l'appel à session_start(), sans ce soucier si l'identifiant de session courant est identique à celui qui vient d'être défini.

Valeurs de retour

session_id() retourne l'identifiant de session pour la session courante ou une chaîne vide ("") s'il n'y a pas de session courante (aucun identifiant de session n'existe).

Historique

Version Description
5.0.0 Les virgules , et tirets - sont autorisés dans le gestionnaire de session par fichiers.

Voir aussi



session_is_registered

(PHP 4, PHP 5)

session_is_registeredVérifie si une variable est enregistrée dans la session

Description

bool session_is_registered ( string $name )

Vérifie si une variable est enregistrée dans la session.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

name

Le nom de la variable.

Valeurs de retour

session_is_registered() retourne TRUE si la variable de nom name fait partie de la session courante, FALSE sinon.

Notes

Note:

Si $_SESSION (ou $HTTP_SESSION_VARS en PHP 4.0.6 et plus ancien) est utilisé, utilisez la fonction isset() pour vérifier la présence de la variable dans $_SESSION.

Attention

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register(), session_is_registered() et session_unregister().



session_module_name

(PHP 4, PHP 5)

session_module_nameLit et/ou modifie le module de session courant

Description

string session_module_name ([ string $module ] )

session_module_name() récupère le nom du module courant de session.

Liste de paramètres

module

Si module est fourni, cette valeur sera alors utilisée, et remplacera la valeur courante.

Valeurs de retour

Retourne le nom du module courant de session.



session_name

(PHP 4, PHP 5)

session_nameLit et/ou modifie le nom de la session

Description

string session_name ([ string $name ] )

session_name() retourne le nom de la session courante. Si le paramètre name est fourni, session_name() modifiera le nom de la session et retournera l'ancien nom de la session.

Le nom de la session est réinitialisé à la valeur par défaut, stockée dans session.name lors du démarrage. Ainsi, vous devez appeler session_name() pour chaque demande (et avant que les fonctions session_start() ou session_register() ne soient appelées).

Liste de paramètres

name

Le nom de session est utilisé comme nom de cookie ou nom de variable dans les URL. Il ne doit contenir que des caractères alphanumériques ; il doit être court et descriptif (surtout pour les utilisateurs ayant activé l'alerte cookie). Si name est fourni, le nom de la session courante sera remplacé par cette valeur.

Avertissement

Les noms de session ne peuvent contenir que des chiffres, au moins une lettre doit être présente. Sinon, un identifiant de session sera généré à chaque fois.

Valeurs de retour

Retourne le nom de la session courante.

Exemples

Exemple #1 Exemple avec session_name()

<?php

/* choisi le nom de session  : WebsiteID */

$previous_name session_name("WebsiteID");

echo 
"L'ancien nom de la session était $previous_name<br />";
?>

Voir aussi



session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id Remplace l'identifiant de session courant par un nouveau

Description

bool session_regenerate_id ([ bool $delete_old_session = false ] )

session_regenerate_id() va remplacer l'identifiant de session courant par un nouveau, généré automatiquement, tout en conservant les valeurs de session.

Liste de paramètres

delete_old_session

Si l'on doit effacer l'ancien fichier de session associé ou pas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.3 Avant cette version, si les cookies de session sont activés, l'utilisation de session_regenerate_id() provoquera également un nouveau cookie de session avec le nouvel identifiant de session.
5.1.0 Ajout du paramètre delete_old_session.

Exemples

Exemple #1 Exemple avec session_regenerate_id()

<?php
session_start
();

$old_sessionid session_id();

session_regenerate_id();

$new_sessionid session_id();

echo 
"Ancienne Session: $old_sessionid<br />";
echo 
"Nouvelle Session: $new_sessionid<br />";

print_r($_SESSION);
?>

Voir aussi



session_register

(PHP 4, PHP 5)

session_registerEnregistre une variable globale dans une session

Description

bool session_register ( mixed $name [, mixed $... ] )

session_register() enregistre toutes les variables de nom name dans la session courante. Le nombre de variables enregistrées est libre. Les noms peuvent être passés comme des chaînes, ou comme des tableaux contenant des chaînes ou des tableaux. Pour chaque nom, session_register() place la variable dans la session courante, pour la sauvegarde de fin de script.

Vous pouvez aussi créer une variable de session, simplement en ajoutant l'index approprié dans la variable $_SESSION ou $HTTP_SESSION_VARS (PHP < 4.1.0).

<?php
// L'utilisation de session_register() est déconseillée
$barney "Un gros dinosaure violet.";
session_register("barney");

// L'utilisation de $_SESSION est encouragée depuis PHP 4.1.0
$_SESSION["zim"] = "Un envahisseur d'une autre planète.";

// L'ancienne méthode avec $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "Il a un caleçon carré !";
?>

Si session_start() n'a pas été appelé avant cette fonction, un appel implicite à session_start() sans aucun paramètre sera fait. $_SESSION ne reproduit pas ce comportement et nécessite d'abord un appel à la fonction session_start().

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

name

Le nom de la variable ou du tableau contenant les noms des variables ou d'autres tableaux.

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Attention

Si vous voulez que votre script fonctionne indépendamment de la configuration de la directive register_globals, vous devez utiliser la variable $_SESSION. Tous les éléments de $_SESSION sont automatiquement enregistrés. Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée.

Note: register_globals : note importante

Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.

Attention

Cette fonction enregistre une variable globale. Si vous enregistrez une variable globale dans une fonction, vous devez vous assurer de la rendre globale, avec le mot clé global ou le tableau $GLOBALS[], ou bien utiliser un des tableaux de session ci-dessous.

Attention

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register(), session_is_registered() et session_unregister().

Note:

Il n'est actuellement pas possible d'enregistrer des ressources dans les sessions. Par exemple, vous ne pouvez pas créer de connexion à une base de données, et stocker la connexion dans une variable de session. Elle ne sera pas valide lors de la prochaine page. Les fonctions PHP qui retournent des ressources sont identifiées avec le type resource dans leurs définitions. Une liste de fonctions qui retournent des ressources sont disponible dans l'annexe types de ressources.

Si $_SESSION (ou $HTTP_SESSION_VARS pour les versions antérieures à PHP 4.0.6) est utilisé, assignez les variables à $_SESSION : i.e. $_SESSION['var'] = 'ABC';

Voir aussi



session_save_path

(PHP 4, PHP 5)

session_save_pathLit et/ou modifie le chemin de sauvegarde des sessions

Description

string session_save_path ([ string $path ] )

session_save_path() retourne le chemin du dossier actuellement utilisé pour sauver les données de sessions.

Liste de paramètres

path

Chemin des données de session. Si path est spécifié, le chemin du dossier sera modifié. session_save_path() doit être appelé avant session_start().

Note:

Sur certains systèmes d'exploitation, vous aurez à choisir un chemin vers un dossier capable de gérer un grand nombre de petits fichiers efficacement. Par exemple, sous Linux, reiserfs peut se rendre plus efficace que ext2fs.

Valeurs de retour

Retourne le chemin du dossier courant utilisé pour y stocker les données.

Voir aussi




session_set_save_handler

(PHP 4, PHP 5)

session_set_save_handlerConfigure les fonctions de stockage de sessions

Description

bool session_set_save_handler ( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc )

session_set_save_handler() configure les fonctions de stockage de sessions, et permet de choisir des fonctions utilisateurs pour sauver et relire toutes les sessions. Cette fonction est très pratique lorsqu'il faut sauver les données de sessions en utilisant une autre technique que le système par fichier fourni par défaut : notamment, stockage en base de données.

Liste de paramètres

open

Fonction d'ouverture, qui fonctionne comme un constructeur dans une classe, et qui est exécutée quand la session est ouverte. La fonction d'ouverture attend deux paramètres : le premier est le chemin de sauvegarde, et le second est le nom de la session.

close

Fonction de fermeture, qui fonctionne comme un destructeur de classe, et qui est exécuté lorsque le script se termine.

read

La fonction de lecture doit toujours retourner une chaîne, pour que le gestionnaire fonctionne comme prévu. Vous devez retourner une chaîne vide s'il n'y a pas de données à lire. Les valeurs retournées par les autres gestionnaires sont converties en booléen avant d'être retournées au script. TRUE pour la réussite, FALSE pour l'échec.

write

Fonction appelée lorsque les données de session sont sauvegardées. Cette fonction attend 2 paramètres : un identifiant et les données associés à ce dernier.

Note:

Le gestionnaire d'écriture n'est pas exécuté tant que le flot de sortie est ouvert. Par conséquent, l'affichage de messages de déboguage durant le gestionnaire d'écriture ne sera donc jamais visible depuis le navigateur. Si vous avez besoin de déboguage, nous vous suggérons d'écrire vos messages dans un fichier.

destroy

Le gestionnaire de destruction est exécuté quand une session est détruite avec la fonction session_destroy(). Il prend l'identifiant de session comme seul paramètre.

gc

Le collecteur est exécuté quand le collecteur de session est appelé, et il prend comme paramètre unique la durée de vie maximale d'une session.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec session_set_save_handler()

L'exemple suivant fournit un exemple de stockage des sessions semblable au système par défaut (par fichiers). Cet exemple peut facilement être adapté pour réaliser des sauvegardes en base de données, avec votre serveur préféré.

<?php
function open($save_path$session_name)
{
  global 
$sess_save_path;

  
$sess_save_path $save_path;
  return(
true);
}

function 
close()
{
  return(
true);
}

function 
read($id)
{
  global 
$sess_save_path;

  
$sess_file "$sess_save_path/sess_$id";
  return (string) @
file_get_contents($sess_file);
}

function 
write($id$sess_data)
{
  global 
$sess_save_path;

  
$sess_file "$sess_save_path/sess_$id";
  if (
$fp = @fopen($sess_file"w")) {
    
$return fwrite($fp$sess_data);
    
fclose($fp);
    return 
$return;
  } else {
    return(
false);
  }

}

function 
destroy($id)
{
  global 
$sess_save_path;

  
$sess_file "$sess_save_path/sess_$id";
  return(@
unlink($sess_file));
}

function 
gc($maxlifetime)
{
  global 
$sess_save_path;

  foreach (
glob("$sess_save_path/sess_*") as $filename) {
    if (
filemtime($filename) + $maxlifetime time()) {
      @
unlink($filename);
    }
  }
  return 
true;
}

session_set_save_handler("open""close""read""write""destroy""gc");

session_start();

// Utilisez vos sessions comme d'habitude

?>

Notes

Avertissement

Les gestionnaires d'écriture et de fermeture sont appelés après la destruction des objets depuis PHP 5.0.5. Ces destructeurs peuvent utiliser les sessions mais le gestionnaire de session ne peut pas utiliser les objets. Dans les versions antérieures, ils étaient appelés dans l'ordre inverse.

Il est possible d'appeler session_write_close() depuis le destructeur pour résoudre ce problème.

Avertissement

Le dossier de travail courant change suivant les SAPIs si la session est fermée à la fin du script. Il est possible de fermer la session plus tard, grâce à la fonction session_write_close().

Voir aussi



session_start

(PHP 4, PHP 5)

session_startInitialise une session

Description

bool session_start ( void )

session_start() crée une session ou restaure celle trouvée sur le serveur, via l'identifiant de session passé dans une requête GET, POST ou par un cookie.

Pour utiliser une session nommée, vous devez appeler session_name() avant d'appeler session_start().

Lorsque session.use_trans_sid est activé, la function session_start() enregistrera un gestionnaire interne de sortie pour la réécriture d'URL.

Si un utilisateur utilise ob_gzhandler ou l'équivalent ob_start(), l'ordre d'appel des fonctions est important pour une sortie correcte. Par exemple, ob_gzhandler doit être enregistré avant de démarrer la session.

Valeurs de retour

Retourne TRUE si une session a pu être démarrée avec succès, et FALSE sinon.

Historique

Version Description
5.3.0 Si une session n'arrive pas à démarrer, alors FALSE est retourné. Précédemment TRUE était retourné.
4.3.3 A partir de PHP 4.3.3, appeler session_start() après qu'une session sois déjà démarrée émettra une erreur E_NOTICE. De plus la deuxième session démarrée sera tout simplement ignorée.

Exemples

Exemple #1 Un exemple de session : page1.php

<?php
// page1.php

session_start();

echo 
'Bienvenue à la page numéro 1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Fonctionne si le cookie a été accepté
echo '<br /><a href="page2.php">page 2</a>';

// Ou bien, en indiquant explicitement l'identfiant de session
echo '<br /><a href="page2.php?' SID '">page 2</a>';
?>

Après avoir vu la page page1.php avec un navigateur, la seconde page page2.php va magiquement afficher les données de session. Lisez la référence sur les sessions pour des informations sur la propagation des identifiants de session, et l'utilisation de la constante SID.

Exemple #2 Un exemple de session : page2.php

<?php
// page2.php

session_start();

echo 
'Bienvenue sur la page numéro 2<br />';

echo 
$_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s'$_SESSION['time']);

// Vous pourriez utiliser la constante SID ici, tout comme dans la page page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

Notes

Note:

Pour utiliser des sessions basées sur les cookies, session_start() doit être appelée avant d'afficher quoi que ce soit dans le navigateur.

Note:

L'utilisation de zlib.output_compression est recommandée, à la place de ob_gzhandler().

Note:

Cette fonction va émettre plusieurs entêtes HTTP, en fonction de la configuration. Voyez session_cache_limiter() pour personnaliser ces entêtes.

Voir aussi



session_unregister

(PHP 4, PHP 5)

session_unregisterSupprime une variable de la session

Description

bool session_unregister ( string $name )

session_unregister() supprime la variable name de la session courante.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

name

Le nom de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Si $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 et plus ancien) est utilisé, utilisez unset() pour supprimer une variable de session. N'utilisez pas unset() directement sur $_SESSION sinon cela désactivera les fonctions spéciales du tableau superglobal $_SESSION.

Attention

session_unregister() ne supprime pas la variable globale correspondant au nom de name : elle empêche simplement que name soit sauvée de la session à la fin du script. Vous devez appeler unset() vous-même pour effacer la globale correspondante.

Attention

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register(), session_is_registered() et session_unregister().



session_unset

(PHP 4, PHP 5)

session_unsetDétruit toutes les variables d'une session

Description

void session_unset ( void )

session_unset() détruit toutes les variables de la session courante.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 ou plus ancien), utilisez unset() pour détruire une variable de session, i.e. unset($_SESSION['nomvariable']);.

Attention

Ne détruisez pas $_SESSION avec unset($_SESSION) car cela désactivera la possibilité d'enregistrer des variables de session à partir du tableau superglobal $_SESSION.



session_write_close

(PHP 4 >= 4.0.4, PHP 5)

session_write_closeÉcrit les données de session et ferme la session

Description

void session_write_close ( void )

Termine la session courante, après avoir stocké les données.

Les données de session sont généralement stockées à la fin de votre script, automatiquement, sans besoin d'appeler explicitement session_write_close(). Mais durant toute l'exécution du script, les données de session sont verrouillées en écriture, et un seul script peut opérer sur la session en même temps. Lorsque vous utilisez des frames avec des sessions, vous vous en rendrez compte en voyant les frames se rafraîchir les uns après les autres. Vous pouvez réduire le temps de calcul de ces pages en refermant la session aussitôt que possible, ce qui libère les données pour les autres scripts.

Valeurs de retour

Aucune valeur n'est retournée.


Sommaire




Sauvegarde d'Identifiant de session dans PostgreSQL


Introduction

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Ce module vous fournit un moyen additionnel pour sauvegarder vos identifiants de session pour les modules de session utilisant » PostgreSQL session en tant que sauvegarde du système. La sauvegarde d'identifiant de session user-level peut être aussi utilisée, mais ce module est écrit en C. Par conséquent, ce module est largement 2 fois plus rapide que la sauvegarde d'identifiant écrit en PHP.

Session PgSQL est conçu pour fonctionner avec n'importe quel sorte de sites web et offre certaines fonctionnalités avancées :

  • tables de session sont créées automatiquement
  • vidage de table de session automatique
  • meilleure récupération de place
  • support de multiples serveurs PostgreSQL
  • basculement de serveur de base de données automatique (changement)
  • chargement balancé de serveur de base de données automatique s'il y a multiples serveurs PostgreSQL.
  • court-circuit de UPDATE



Installation/Configuration

Sommaire


Pré-requis

Vous devez posséder au moins PHP >= 4.3.0, PostgreSQL >= 7.2.0 comme serveur de base de données. libpq qui vient avec PostgreSQL 7.2.0 ou supérieur (et les fichiers d'en-tête pour construction) et » libmm (et les fichiers d'en-tête).



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/session_pgsql.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

La sauvegarde d'identifiant de session de PostgreSQL est toujours en développement. Référez-vous au fichier README dans la distribution de source pour les détails de la configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Définitions de Table

Définition de table de session

CREATE TABLE php_session (
 sess_id            text,
 sess_name          text,
 sess_data          text,
 sess_created       integer,
 sess_modified      integer,
 sess_expire        integer,
 sess_addr_created  text,
 sess_addr_modified text,
 sess_counter       integer,
 sess_error         integer,
 sess_warning       integer,
 sess_notice        integer,
 sess_err_message   text,
 sess_custom        text
);

CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id);

Avertissement

Si vous utilisez HASH pour INDEX, vous aurez des problèmes de blocage lorsque la charge du serveur est très élevé. Même s'il est peu probable d'avoir un blocage sous des opérations normales, cela peut se produire. N'utilisez pas HASH pour INDEX.

Vous pouvez changer la table de session tant que tous les champs sont définis.

Définition de table de variables d'application

CREATE TABLE php_app_vars (
 app_modified       integer,
 app_name           text,
 app_vars           text
);



Constantes pré-définies

Cette extension ne définit aucune constante.



Session PgSQL Fonctions

Information Contact

Pour le moment, je n'ai pas vraiment le temps pour développer plus loin cette extension. Je créerai de plus en plus d'options dans un futur proche.

Si vous avez des commentaires, des bogues, des améliorations ou vous voulez aider le développement, vous pouvez me laisser un mail à » yohgaki@php.net. Toute aide est la bienvenue.


session_pgsql_add_error

(PECL session_pgsql SVN)

session_pgsql_add_errorIncrémente le nombre d'erreurs et fixe le dernier message d'erreur

Description

bool session_pgsql_add_error ( int $error_level [, string $error_message ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

error_level

error_message

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



session_pgsql_get_error

(PECL session_pgsql SVN)

session_pgsql_get_errorRetourne le nombre d'erreurs et le dernier message d'erreur

Description

array session_pgsql_get_error ([ bool $with_error_message = false ] )

Récupère le nombre d'erreurs et optionnellement les messages d'erreurs.

Liste de paramètres

with_error_message

Fixé à TRUE le message d'erreur littéral pour chaque erreur est aussi retourné.

Valeurs de retour

Le nombre d'erreurs est retourné comme array.

Voir aussi



session_pgsql_get_field

(PECL session_pgsql SVN)

session_pgsql_get_fieldRécupère la valeur de champ spécial

Description

string session_pgsql_get_field ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi



session_pgsql_reset

(PECL session_pgsql SVN)

session_pgsql_resetRemet la connexion à la session des serveurs de base de données

Description

bool session_pgsql_reset ( void )

Remet la connexion à la session des serveurs de base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



session_pgsql_set_field

(PECL session_pgsql SVN)

session_pgsql_set_fieldFixe la valeur d'un champ spécial

Description

bool session_pgsql_set_field ( string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

value

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



session_pgsql_status

(PECL session_pgsql SVN)

session_pgsql_statusRécupère le statut de l'identifiant de sauvegarde courant

Description

array session_pgsql_status ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire





Traitement du texte


BBCode


Introduction

Cette extension se propose de vous aider dans l'analyse du texte BBCode afin de le convertir en HTML ou dans un autre langage à base de balises. Elle utilise une analyse en un seul passage et est bien plus rapide qu'une approche basée sur les expressions rationnelles. De plus, elle vous aidera à obtenir du code HTML valide en réorganisant les balises d'ouverture et de fermeture et en fermant automatiquement les balises.

Depuis la version 0.10.1, cette extension supporte les arguments encadrés par des guillemets simples, des guillemets doubles, mais aussi des guillemets doubles échappés en HTML.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/bbcode

Une solution alternative, écrite en PHP, est le paquet PEAR » HTML_BBCodeParser.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Une seule ressource est utilisée par l'extension BBCode : BBCode_Container, retournée par la fonction bbcode_create().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

BBCODE_TYPE_NOARG (integer)
La balise BBCode n'accepte aucun argument.
BBCODE_TYPE_SINGLE (integer)
La balise BBCode n'a pas de balise fermante correspondante.
BBCODE_TYPE_ARG (integer)
La balise BBCode nécessite un argument.
BBCODE_TYPE_OPTARG (integer)
La balise BBCode accepte un argument optionnel.
BBCODE_TYPE_ROOT (integer)
La balise BBCode est la balise racine spéciale (niveau 0).
BBCODE_FLAGS_ARG_PARSING (integer)
La balise BBCode nécessite un sous argument d'analyse (l'argument sera également analysé par l'extension BBCode). Depuis la version 0.10.2, un autre analyseur peut être utilisé en tant qu'argument.
BBCODE_FLAGS_CDATA_NOT_ALLOWED (integer)
La balise BBCode n'accepte pas de contenu (il sera automatiquement supprimé).
BBCODE_FLAGS_SMILEYS_ON (integer) - depuis 0.10.2
La balise BBCode accepte les émoticônes.
BBCODE_FLAGS_SMILEYS_OFF (integer) - depuis 0.10.2
La balise BBCode n'accepte pas les émoticônes.
BBCODE_FLAGS_ONE_OPEN_PER_LEVEL (integer) - depuis 0.10.2
La balise BBCode se ferme automatiquement si une autre balise du même type est trouvée, au même niveau.
BBCODE_FLAGS_REMOVE_IF_EMPTY (integer) - depuis 0.10.2
La balise BBCode est automatiquement effacé si le contenu est vide ; cela permet d'alléger le code HTML.
BBCODE_FLAGS_DENY_REOPEN_CHILD (integer) - depuis 0.10.3
La valise BBCode ne permet pas d'inclure des balises enfants réouvertes lorsqu'elles ont été fermées automatiquement.
BBCODE_ARG_DOUBLE_QUOTE (integer) - depuis 0.10.2
C'est une option de l'analyseur, permettant l'encadrement des arguments avec des doubles guillemets ".
BBCODE_ARG_SINGLE_QUOTE (integer) - depuis 0.10.2
C'est une option de l'analyseur, permettant l'encadrement des arguments avec des guillemets simples '.
BBCODE_ARG_HTML_QUOTE (integer) - depuis 0.10.2
C'est une option de l'analyseur, permettant l'encadrement des arguments avec la version HTML des guillemets doubles &quot;.
BBCODE_ARG_QUOTE_ESCAPING (integer) - depuis 1.0.2
C'est une option de l'analyseur, permettant d'échapper les guillemets présents dans l'argument. Ceci permet de trouver le délimiteur dans la chaîne. Le caractère d'échappement est \. Il peut échapper n'importe quel caractère, y compris lui-même. S'il est trouvé devant un caractère qui ne peut être échappé, il sera supprimé. Le comportement par défaut est de ne pas utiliser l'échappement.
BBCODE_AUTO_CORRECT (integer) - depuis 0.10.2
C'est une option de l'analyseur permettant de changer la façon dont les erreurs sont traitées. Elle ferme automatiquement les balises dans l'ordre dans laquelle elles ont été ouvertes. Et traite les balises avec seulement une balise ouverte s'il y a une balise fermante.
BBCODE_CORRECT_REOPEN_TAGS (integer) - depuis 0.10.2
C'est une option de l'analyseur permettant de changer la façon dont les erreurs sont traitées. Elle réouvre automatiquement les balises si les balises de fermeture ne sont pas dans le bon ordre.
BBCODE_DISABLE_TREE_BUILD (integer) - depuis 0.10.2
C'est une option de l'analyseur permettant de désactiver l'analyse BBCode si seul le remplacement des émoticônes doit être effectué.
BBCODE_DEFAULT_SMILEYS_ON (integer) - depuis 0.10.2
C'est une option de l'analyseur permettant l'activation des émoticônes si aucune balise n'est fournie au niveau des balises.
BBCODE_DEFAULT_SMILEYS_OFF (integer) - depuis 0.10.2
C'est une option de l'analyseur permettant la désactivation des émoticônes si aucune balise n'est fournie au niveau des balises.
BBCODE_FORCE_SMILEYS_OFF (integer) - depuis 0.10.2
C'est une option de l'analyseur permettant la désactivation complète de l'analyse des émoticônes.
BBCODE_SMILEYS_CASE_INSENSITIVE (integer) - depuis 0.10.3
Utilise une détection insensible à la casse pour les émoticônes, au lieu d'une simple recherche binaire.
BBCODE_SET_FLAGS_SET (integer) - depuis 0.10.2
Ceci permet de définir un jeu complet de drapeaux de l'analyseur.
BBCODE_SET_FLAGS_ADD (integer) - depuis 0.10.2
Ceci permet d'activer un drapeau de l'analyseur.
BBCODE_SET_FLAGS_REMOVE (integer) - depuis 0.10.2
Ceci permet de désactiver un drapeau de l'analyseur.


Fonctions BBCode


bbcode_add_element

(PECL bbcode >= 0.9.0)

bbcode_add_elementAjoute un élément BBCode

Description

bool bbcode_add_element ( resource $bbcode_container , string $tag_name , array $tag_rules )

Ajoute une balise à une ressource BBCode_Container existante.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

tag_name

La nouvelle balise à ajouter au BBCode_Container tag_set.

tag_rules

Un tableau associatif contenant les règles d'analyse ; voir bbcode_create() pour les clés disponibles.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



bbcode_add_smiley

(PECL bbcode >= 0.10.2)

bbcode_add_smileyAjoute une émoticône à l'analyseur

Description

bool bbcode_add_smiley ( resource $bbcode_container , string $smiley , string $replace_by )

Ajoute une émoticône à l'analyseur.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

smiley

La chaîne qui représente l'émoticône.

replace_by

La chaîne qui remplace l'émoticône lorsqu'il sera trouvé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bbcode_add_smiley()

<?php
/*
 * Préparation du jeu de règles
 */
$arrayBBCode=array(
    
''=>         array('type'=>BBCODE_TYPE_ROOT,  
                       
'childs'=>'!i'),
    
'b'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<b>'
                       
'close_tag'=>'</b>'),
    
'u'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<u>'
                       
'close_tag'=>'</u>'
                       
'flags'=>BBCODE_FLAGS_SMILEYS_OFF),
    
'i'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<i>'
                       
'close_tag'=>'</i>'
                       
'childs'=>'b'),
);
/* 
 * Aalyse du texte
 */
$text=<<<EOF
[i] No parse Test [/i] :)
[b] Parsed, with smiley :( [/b]
[u] Parsed, with no smiley :D [/u]
EOF;
/*
 * Initialise l'analyseur
 */
$BBHandler=bbcode_create($arrayBBCode);
/*
 * Ajout une règle d'émoticône à l'analyseur
 */
bbcode_add_smiley($BBHandler":)""<img src=\"smiley.gif\" alt=\":)\" />");
bbcode_add_smiley($BBHandler":(""<img src=\"sad.gif\" alt=\":(\" />");
bbcode_add_smiley($BBHandler":D""<img src=\"happy.gif\" alt=\":D\" />");
bbcode_add_smiley($BBHandler":p""<img src=\"tong.gif\" alt=\":p\" />");
bbcode_add_smiley($BBHandler":|""<img src=\"special.gif\" alt=\":|\" />");
bbcode_add_smiley($BBHandler":6:""<img src=\"six.gif\" alt=\":6:\" />");
/*
 * Analyse le texte
 */
echo bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

[i] No parse Test [/i] <img src="smiley.gif" alt=":)" />
<b> Parsed, with smiley <img src="sad.gif" alt=":(" /> </b>
<u> Parsed, with no smiley :D </u>



bbcode_create

(PECL bbcode >= 0.9.0)

bbcode_createCrée une ressource BBCode

Description

resource bbcode_create ([ array $bbcode_initial_tags ] )

Cette fonction retourne une nouvelle ressource BBCode, utilisée pour analyser les chaînes BBCode.

Liste de paramètres

bbcode_initial_tags

Un tableau associatif contenant les noms des balises en tant que clés, et les paramètres requis afin d'analyser correctement le code BBCode en tant que valeurs. Les paires clés/valeurs suivantes sont supportées :

  • flags optionnel - un jeu de drapeaux, basé sur les constantes BBCODE_FLAGS_*.
  • type requis - un entier, indiquant le type de drapeau. Utilisez les constantes BBCODE_TYPE_*.
  • open_tag requis - la chaîne HTML de remplacement pour la balise ouvrante.
  • close_tag requis - la chaîne HTML de remplacement pour la balise fermante.
  • default_arg optionnel - utilise cette valeur en tant qu'argument par défaut si aucun n'est fourni et que tag_type est du type OPTARG.
  • content_handling optionnel - Indique la fonction de rappel utilisée pour modifier le contenu. La notation orientée objet est supportée uniquement depuis la version 0.10.1. La signature de la fonction de rappel est de la forme : (string $content, string $argument)
  • param_handling optionnel - Spécifie la fonction de rappel utilisée pour modifier l'argument. La notation orientée objet est supportée uniquement depuis la version 0.10.1. La signature de la fonction de rappel est de la forme : (string $content, string $argument)
  • childs optionnel - Liste des enfants acceptés en tant que balise. Le format de la liste est une succession de chaînes, séparées par une virgule. Si la liste commence par un point d'exclamation, ce sera la liste des enfants rejetées comme balises.
  • parent optionnel - Liste des enfants acceptés pour la balise. Le format de la liste est une succession de chaînes, séparées par une virgule.

Valeurs de retour

Retourne un BBCode_Container

Exemples

Exemple #1 Exemple avec bbcode_create()

<?php
$arrayBBCode
=array(
    
''=>         array('type'=>BBCODE_TYPE_ROOT,  'childs'=>'!i'),
    
'i'=>        array('type'=>BBCODE_TYPE_NOARG'open_tag'=>'<i>',
                    
'close_tag'=>'</i>''childs'=>'b'),
    
'url'=>      array('type'=>BBCODE_TYPE_OPTARG,
                    
'open_tag'=>'<a href="{PARAM}">''close_tag'=>'</a>',
                    
'default_arg'=>'{CONTENT}',
                    
'childs'=>'b,i'),
    
'img'=>      array('type'=>BBCODE_TYPE_NOARG,
                    
'open_tag'=>'<img src="''close_tag'=>'" />',
                    
'childs'=>''),
    
'b'=>        array('type'=>BBCODE_TYPE_NOARG'open_tag'=>'<b>',
                    
'close_tag'=>'</b>'),
);
$text=<<<EOF
[b]Bold Text[/b]
[i]Italic Text[/i]
[url]http://www.php.net/[/url]
[url=http://pecl.php.net/][b]Content Text[/b][/url]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[url=http://www.php.net/]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[/url]
EOF;
$BBHandler=bbcode_create($arrayBBCode);
echo 
bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

<b>Bold Text</b>
[i]Italic Text[/i]
<a href="http://www.php.net/">http://www.php.net/</a>
<a href="http://pecl.php.net/"><b>Content Text</b></a>
<img src="http://static.php.net/www.php.net/images/php.gif" />
<a href="http://www.php.net/">
[img]http://static.php.net/www.php.net/images/php.gif[/img]
</a>



bbcode_destroy

(PECL bbcode >= 0.9.0)

bbcode_destroyFerme une ressource BBCode_container

Description

bool bbcode_destroy ( resource $bbcode_container )

Cette fonction ferme la ressource ouverte par bbcode_create().

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



bbcode_parse

(PECL bbcode >= 0.9.0)

bbcode_parseAnalyse une chaîne en suivant le jeu de règles données

Description

string bbcode_parse ( resource $bbcode_container , string $to_parse )

Cette fonction analyse la chaîne to_parse en suivant les règles de bbcode_container, créé par bbcode_create()

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

to_parse

La chaîne à analyser.

Valeurs de retour

Retourne la chaine analysée, ou FALSE si une erreur survient.



bbcode_set_arg_parser

(PECL bbcode >= 0.10.2)

bbcode_set_arg_parserAttache un analyseur pour gérer un autre jeu de règles

Description

bool bbcode_set_arg_parser ( resource $bbcode_container , resource $bbcode_arg_parser )

Attache un autre analyseur à bbcode_container. Cet analyseur est utilisé uniquement lors que les arguments doivent être analysés. Si cette fonction n'est pas utilisée, l'analyseur par défaut est l'analyseur lui-même.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

bbcode_arg_parser

Ressource BBCode_Container, retournée par bbcode_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bbcode_set_arg_parser()

<?php
/*
 * Génération des règles de BBCode pour l'analyseur principal
 */
$arrayBBCode=array(
    
'quote'=>    array('type'=>BBCODE_TYPE_ARG,
                       
'open_tag'=>'<quote><h4>Source: {PARAM}</h4>'
                       
'close_tag'=>'</quote>',
                       
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|BBCODE_FLAGS_ARG_PARSING),
    
'b'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<b>''close_tag'=>'</b>'
                       
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    
'u'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<u>''close_tag'=>'</u>'
                       
'flags'=>BBCODE_FLAGS_SMILEYS_OFF BBCODE_FLAGS_REMOVE_IF_EMPTY BBCODE_FLAGS_SMILEYS_OFF),
    
'i'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<i>''close_tag'=>'</i>'
                       
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Génération des règles de BBCode pour les arguments
 */
$arrayBBCode_arg=array(
    
'b'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<b class="sub">''close_tag'=>'</b>'
                       
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    
'u'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<u>''close_tag'=>'</u>',
                       
'flags'=>BBCODE_FLAGS_SMILEYS_OFF BBCODE_FLAGS_REMOVE_IF_EMPTY BBCODE_FLAGS_SMILEYS_OFF),
    
'i'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<i>''close_tag'=>'</i>'
                       
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Texte qui sera traité
 */
$text=<<<EOF
[quote="[b]Test[/b]"]
Foo :)
[/quote]
[b]Bar example :)[/b] :)
EOF;
/*
 * Initialisation des deux analyseurs BBcode
 */
$BBHandler=bbcode_create($arrayBBCode);
$BBArgHandler=bbcode_create($arrayBBCode_arg);
/*
 * Configuration des deux analyseurs
 */
bbcode_set_flags($BBHandler,
                 
BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 
BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
bbcode_set_flags($BBArgHandler,
                 
BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 
BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
/*
 * Configuration de $BBArgHandler comme analyseur d'arguments
 */
bbcode_set_arg_parser($BBHandler,$BBArgHandler);
/*
 * Ajout de la gestion des émoticônes
 */
bbcode_add_smiley($BBHandler":)""<img src=\"smiley.gif\" alt=\":)\" />");
/*
 * Utilisation de l'analyseur principal 
 */
echo bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

<quote><h4>Source: <b class="sub">Test</b></h4>
Foo <img src="smiley.gif" alt=":)" />
</quote>
<b>Bar example :)</b> <img src="smiley.gif" alt=":)" />



bbcode_set_flags

(PECL bbcode >= 0.10.2)

bbcode_set_flagsSpécifie ou modifie des options d'analyseurs BBcode

Description

bool bbcode_set_flags ( resource $bbcode_container , int $flags [, int $mode = BBCODE_SET_FLAGS_SET ] )

Spécifie ou modifie des options d'analyseur BBCode.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

flags

Le jeu de drapeaux qui doivent être appliquée aux options de bbcode_container

mode

Une des constantes BBCODE_SET_FLAGS_* à utiliser, ou supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bbcode_set_flags()

<?php
/*
 * Préparation des règles
 */
$arrayBBCode=array(
    
'b'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<b>''close_tag'=>'</b>'),
    
'u'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<u>''close_tag'=>'</u>'),
    
'i'=>        array('type'=>BBCODE_TYPE_NOARG
                       
'open_tag'=>'<i>''close_tag'=>'</i>'),
);
/*
 * BBCode mal imbriqué
 */
$text="[i] Parser [b] Auto Correction [/i] at work [/b]\n";
$BBHandler=bbcode_create($arrayBBCode);
echo 
bbcode_parse($BBHandler,$text);
// Activation de la réouverture automatique des éléments fermés
bbcode_set_flags($BBHandler,BBCODE_CORRECT_REOPEN_TAGS
                 
BBCODE_SET_FLAGS_SET);
echo 
bbcode_parse($BBHandler,$text);

/*
 * BBCode mal imbriqué
 */
$text="[i] Parser [b] Auto Correction [/i] at work\n";
echo 
bbcode_parse($BBHandler,$text);
// Activation de la fermeture automatique des éléments ouverts
bbcode_set_flags($BBHandler,
                 
BBCODE_CORRECT_REOPEN_TAGS|BBCODE_AUTO_CORRECT
                 
BBCODE_SET_FLAGS_SET);
echo 
bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

<i> Parser <b> Auto Correction </b></i> at work 
<i> Parser <b> Auto Correction </b></i><b> at work </b>
<i> Parser [b] Auto Correction </i> at work
<i> Parser <b> Auto Correction </b></i><b> at work
</b>


Sommaire




Expressions rationnelles (compatible Perl)


Introduction

La syntaxe des masques utilisés dans ces fonctions ressemble fort à celle de Perl. Les expressions seront entourées de délimiteurs, slash (/), par exemple. Un délimiteur peut être n'importe quel caractère, tant qu'il n'est pas alphanumérique, un caractère blanc, l'antislash (\) ou le caractère nul (\0). Si un délimiteur doit être utilisé dans l'expression, il faudra le protéger avec un antislash. Depuis PHP 4.0.4, vous pouvez utiliser les délimiteurs (), {}, [], et <>, comme en Perl. Voir la syntaxe des masques pour plus d'explications.

Le délimiteur final peut être suivi d'options qui affecteront la recherche. Voir aussi options de recherche.

PHP supporte également les expressions rationnelles utilisant la syntaxe POSIX étendue (fonctions REGEX POSIX-extended).

Note:

Cette extension maintient un cache global par thread des expressions rationnelles compilées (jusqu'à 4096).

Avertissement

Vous devez être conscient des limitations de PCRE. Lisez » http://www.pcre.org/pcre.txt pour plus de détails.

La bibliothèque PCRE est un ensemble de fonctions qui implémentent les expressions rationnelles en utilisant la même syntaxe et sémantique que Perl 5 avec seulement quelques différence (voir plus bas). L'implémentation courante correspond à Perl 5.005.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

À partir de PHP 4.2.0, ces fonctions sont activées par défaut. Pour les anciennes versions, vous devez configurer et compiler PHP avec l'option --with-pcre-regex afin de pouvoir les utiliser. Utilisez --with-pcre-regex=DIR pour spécifier le répertoire où la bibliothèque PCRE est installée si vous n'utilisez pas la bibliothèque incluse dans PHP. Pour les versions plus anciennes de PHP, vous devez configurer et compiler PHP avec --with-pcre-regex[=DIR] pour pouvoir utiliser ces fonctions.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note:

Depuis PHP 5.3.0, cette extension ne peut plus être désactivée et est donc, toujours présente.

Il est cependant toujours possible de compiler PHP avec une bibliothèque externe PCRE, en utilisant l'option de compilation --with-pcre-regex=DIR

PCRE est un projet actif et au fur et à mesure où il change, les fonctionnalités PHP change également. Il est possible que certaines parties du manuel PHP soient obsolètes et qu'elles ne couvrent pas les nouvelles fonctionnalités que fournies PCRE. Pour une liste des modifications, reportez-vous au » changlog de la bibliothèques PCRE ainsi qu'à l'historique suivant de la version PCRE inclue dans PHP :

Historique des mises à jour de la bibliothèque PCRE inclue dans PHP
Version PHP Version PCRE mise à jour Notes
5.3.3 8.02  
5.3.2 8.00  
5.3.0 7.9  
5.2.7 7.8  
5.2.6 7.6  
5.2.5 7.3  
5.2.4 7.2  
5.2.2 7.0  
5.2.0 6.7  
5.1.0 6.2  
5.0.5 5.0  
5.0.0 4.5  
4.4.7 7.7  



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PCRE
Nom Défaut Modifiable Historique
pcre.backtrack_limit "100000" PHP_INI_ALL Disponible depuis PHP 5.2.0.
pcre.recursion_limit "100000" PHP_INI_ALL Disponible depuis PHP 5.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pcre.backtrack_limit entier

PCRE's backtracking limit.

pcre.recursion_limit entier

Limite de récurrence PCRE. Notez que si vous définissez cette valeur à un nombre très élevé, vous pourriez consommer tous les processus disponibles et, éventuellement, faire planter PHP (la taille limite de la pile imposée par le système sera atteinte).



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes PREG
Constante Description
PREG_PATTERN_ORDER Ordonne les résultats de façon à ce que $matches[0] contienne les résultats qui correspondent au masque entier, $matches[1] ceux qui correspondent à la première parenthèse capturante et ainsi de suite. Cette constante est utilisée avec preg_match_all().
PREG_SET_ORDER Les résultats sont classés de telle façon que $matches[0] contient la première série de résultat, $matches[1] la deuxième, etc. Cette constante est utilisée avec preg_match_all().
PREG_OFFSET_CAPTURE Voir la description de PREG_SPLIT_OFFSET_CAPTURE. Cette constante est utilisée depuis PHP 4.3.0 .
PREG_SPLIT_NO_EMPTY Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().
PREG_SPLIT_DELIM_CAPTURE Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées. Cette option a été ajoutée en PHP 4.0.5. Cette constante est utilisée avec preg_split().
PREG_SPLIT_OFFSET_CAPTURE Si cette constante est utilisée avec preg_split(), l'offset de début de résultat sera retourné, en plus de la chaîne résultat. Notez que cela change la nature du résultat retourné en un tableau contenant une chaîne à l'offset 0 et une chaîne contenant un offset à l'offset 1. Cette option est disponible depuis PHP 4.3.0.
PREG_NO_ERROR Retourné par la fonction preg_last_error() s'il n'y a pas d'erreur. Disponible depuis PHP 5.2.0.
PREG_INTERNAL_ERROR Retourné par la fonction preg_last_error() s'il y a une erreur interne PCRE. Disponible depuis PHP 5.2.0.
PREG_BACKTRACK_LIMIT_ERROR Retourné par la fonction preg_last_error() si backtrack limit a été atteint. Disponible depuis PHP 5.2.0.
PREG_RECURSION_LIMIT_ERROR Retourné par la fonction preg_last_error() si la limite de récurrence a été atteint. Disponible depuis PHP 5.2.0.
PREG_BAD_UTF8_ERROR Retourné par la fonction preg_last_error() si la dernière erreur est du à une malformation des données UTF-8 (uniquement lors de l'exécution d'une expression en mode UTF-8). Disponible depuis PHP 5.2.0.
PREG_BAD_UTF8_OFFSET_ERROR Retourné par la fonction preg_last_error() si l'offset ne correspond pas au début d'un point valide UTF-8 (uniquement lorsque l'on exécute une expression enmode UTF-8). Disponible depuis PHP 5.3.0.
PCRE_VERSION Version PCRE ainsi que la date de publication (i.e. "7.0 18-Dec-2006"). Disponible depuis PHP 5.2.4.


Exemples

Exemple #1 Exemples de masques valides

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Exemple #2 Exemples de masques invalides

  • /href='(.*)' - il manque le délimiteur de fin
  • /\w+\s*\w+/J - le modificateur 'J' est inconnu
  • 1-\d3-\d3-\d4| - il manque le délimiteur de début



Masques PCRE

Sommaire


Syntaxe des masques

Sommaire


Introduction

La syntaxe et la sémantique des expressions rationnelles supportées par PCRE sont décrites ci-dessous. Les expressions rationnelles sont aussi décrites dans la documentation Perl, et dans un grand nombre d'autres livres, avec de nombreux exemples. Le libre de Jeffrey Friedl "Mastering Regular Expressions", édité chez O'Reilly (ISBN 1-56592-257-3), les décrits en profondeur. Cette description est organisée comme une documentation de référence.

Une expression rationnelle est un masque appliqué à une chaîne sujet, de gauche à droite. La plupart des caractères se représentent eux-mêmes. Un exemple trivial : un masque qui serait "Le rapide renard gris", pourra correspondre à une partie de la chaîne sujet qui sera identique au masque, par exemple "Le rapide renard gris court dans la forêt",



Délimiteurs

Lors de l'utilisation des fonctions PCRE, il est nécessaire que le motif soit encadré par des délimiteurs. Un délimiteur peut être n'importe quel caractère alpha-numérique autre qu'un backslash ou qu'un espace.

Les délimiteurs les plus courants sont les slashes (/), dièses (#) et les tildes (~). Les exemples suivants ont tous des motifs encadrés avec des délimiteurs valides.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

Si le délimiteur doit être décrit dans le motif, il doit être échappé avec un backslash. Si le délimiteur apparait souvent dans le motif, choisir un autre délimiteur est une bonne idée pour en augmenter la lisibilité.

/http:\/\//
#http://#
La fonction preg_quote() peut être utilisée pour échapper une chaine et l'utiliser dans un motif. Son second paramètre optionnel sert à spécifier le délimiteur qui doit être échappé.

En complément des délimiteurs cités ci-dessus, il est aussi possible d'utiliser des parenthèses comme délimiteur où les parenthèses ouvrante et fermante sont respectivement les délimiteurs ouvrant et fermant.

{ceci est un motif}

Vous pouvez aussi utiliser des modificateurs de motif après le délimiteur final. L'exemple suivant montre une correspondance insensible à la casse.

#[a-z]#i



Métacaractères

La puissance des expressions rationnelles provient de leur capacité à autoriser des alternatives et des quantificateurs de répétition dans le masque. Ils sont encodés dans le masque par des métacaractères, qui ne représentent pas ce qu'ils sont, mais sont interprétés d'une certaine manière.

Il y a deux sortes de métacaractères : ceux qui sont reconnus n'importe où dans un masque, hormis entre crochets, et ceux qui sont reconnus entre crochets. À l'extérieur des crochets, les métacaractères sont :

\ antislash
Caractère de protection, avec de multiples usages
^ Accent circonflexe
Le début de la chaîne sujet (ou de ligne, en mode multilignes)
$ Dollar
La fin de la chaîne sujet (ou de ligne, en mode multilignes)
. Point
Remplace n'importe quel caractère, hormis le caractère de nouvelle ligne (par défaut) ;
[ Crochet ouvrant
Caractère de début de définition de classe
] Crochet fermant
Caractère de fin de définition de classe
| Barre verticale
Caractère de début d'alternative
( Parenthèse ouvrante
Caractère de début de sous-masque
) Parenthèse fermante
Caractère de fin de sous-masque
? Point d'interrogation
Étend le sens de (; quantificateur de 0 ou 1; quantificateur de minimisation (Voir les répétitions)
* Étoile
Quantificateur de 0 ou plus
+ Plus
Quantificateur de 1 ou plus
{ Accolade ouvrante
Caractère de début de quantificateur minimum/maximum
} Accolade fermante
Caractère de fin de quantificateur minimum/maximum
La partie du masque qui est entourée de crochets est appelée classe de caractères. Dans les classes de caractères, les seuls métacaractères autorisés sont :
\ antislash
Caractère de protection, avec de multiples usages
^ Accent circonflexe
Négation de la classe, mais uniquement si placé tout au début de la classe
- Moins
Indique un intervalle de caractères
] Crochet fermant
Termine la classe de caractères
La section suivante décrit l'utilisation de chaque métacaractère.



Séquences d'échappement

Le caractère antislash a de nombreuses utilisations. En premier lieu, s'il est suivi d'un caractère non alphanumérique, il ne prendra pas la signification spéciale qui y est rattachée. Cette utilisation de l'antislash comme caractère de protection s'applique à l'intérieur et à l'extérieur des classes de caractères.

Par exemple, pour rechercher le caractère étoile "*", il faut écrire dans le masque : "\*". Cela s'applique dans tous les cas, que le caractère qui suive soit un métacaractère ou non. C'est un moyen sûr pour s'assurer qu'un caractère sera recherché pour sa valeur littérale, plutôt que pour sa valeur spéciale. En particulier, pour rechercher les antislashs, il faut écrire : "\\".

Note:

La chaîne de caractères PHP simple ou double guillemet a une signification spéciale des antislashs. Donc, si \ doit être recherché avec une expression rationnelle \\, alors "\\\\" ou '\\\\' doit être utilisé dans le code PHP.

Si un masque est utilisé avec l'option PCRE_EXTENDED, les espaces blancs du masque, mais qui ne sont pas dans une classe de caractères, et les caractères entre dièse "#", ainsi que les nouvelles lignes sont ignorées. L'antislash peut être utilisé pour les protéger et ainsi rechercher un espace ou un dièse.

La deuxième utilité de l'antislash est de pouvoir coder des caractères invisibles dans les masques. Il n'y a pas de restriction sur la place de ces caractères invisibles, hormis pour le caractère nul qui doit terminer le masque. Lors de la préparation du masque, il est souvent plus pratique d'utiliser les séquences d'échappement suivantes, plutôt que le caractère binaire qu'elles représentent :

\a
alarme, c'est-à-dire le caractère BEL (hex 07)
\cx
"contrôle-x", avec x qui peut être n'importe quel caractère.
\e
escape (hex 1B)
\f
formfeed (hex 0C)
\n
nouvelle ligne (hex 0A)
\p{xx}
un caractère avec une propriété xx, voir les propriétés unicode pour plus d'informations
\P{xx}
un caracère sans propriété xx, voir les propriétés unicode pour plus d'informations
\r
retour chariot (hex 0D)
\t
tabulation (hex 09)
\xhh
caractère en hexadécimal, de code hh, voir les propriétés unicode pour plus d'informations
\ddd
caractère en octal, de code ddd, ou référence arrière

Dans la séquence "\cx" si "x" est en minuscule, il est converti en majuscule. Puis, le bit 6 (hex 40) est inversé. Ainsi "\cz" devient 1A, mais "\c{" devient hex 3B, tandis que "\c;" devient hex 7B.

Après "\x", deux caractères hexadécimaux sont lus (les lettres peuvent être en majuscule ou minuscule). En mode UTF-8, "\x{...}" est autorisée, où le contenu des accolades est une chaîne hexadécimale. Il sera interprété comme un caractère UTF-8 où le numéro de code est le numéro hexadécimal donné. La séquence d'échappement hexadécimale originale, \xhh, correspond à un caractère UTF-8 sur 2 octets si la valeur est plus grande que 127.

Après "\0", deux caractères octaux sont lus. Dans chacun des cas, le métacaractère tente de lire autant de caractères que possible. Ainsi, la séquence "\0\x\07" sera comprise comme deux caractères nuls, suivis d'un caractère alarme (BEL). Assurez-vous que vous fournissez suffisamment de chiffres après le métacaractère.

L'antislash de fin suivi par un nombre autre que 0 est compliqué. À l'extérieur d'une classe de caractère, PCRE le lit, et tous les nombres qui suivent, en tant que nombres décimaux. Si le nombre est plus petit que 10 ou s'il y a eu au moins précédemment une parenthèse gauche capturante dans l'expression, la séquence entière est prise en tant que référence arrière. Une description sur le fonctionnement est donnée plus tard, suivez la discussion sur les parenthèses des sous masques.

À l'intérieur d'un caractère de classe ou s'il est plus grand que 9, et qu'il n'y a pas eu assez de parenthèses ouvrantes auparavant, PCRE lit jusqu'à 3 chiffres octaux à la suite de l'antislash, et génère un octet unique, à partir des 8 bits de poids faible de la séquence. Tous les chiffres qui suivent ne sont pas interprétés, et se représentent eux-mêmes. Par exemple:

\040
une autre manière d'écrire un espace
\40
identique, dans la mesure où il n'y a pas 40 parenthèses ouvrantes auparavant
\7
est toujours une référence arrière
\11
peut être une référence de retour, ou une tabulation
\011
toujours une tabulation
\0113
est une tabulation suivie du caractère "3"
\113
est le caractère 113 (étant donné qu'il ne peut y avoir plus de 99 références arrières)
\377
est un octet dont tous les bits sont à 1
\81
peut être soit une référence arrière, soit un zéro binaire suivi des caractères "8" et "1"

Les valeurs octales supérieures ou égales à 100 ne doivent pas être introduites par un 0, car seuls les trois premiers octets seront lus.

Toutes les séquences qui définissent une valeur d'un seul octet peuvent être utilisées dans les classes de caractères, et à l'extérieur. De plus, dans une classe de caractères, la séquence "\b" est interprétée comme un caractère effacer (hex 08). À l'extérieur, elle peut avoir d'autres significations (voir ci-dessous).

On peut encore se servir de l'antislash pour préciser des types génériques de valeurs :

\d
tout caractère décimal
\D
tout caractère qui n'est pas un caractère décimal
\h
n'importe quel espace horizontal (depuis PHP 5.2.4)
\H
n'importe quel caractère qui n'est pas un espace horizontal (depuis PHP 5.2.4)
\s
tout caractère blanc
\S
tout caractère qui n'est pas un caractère blanc
\v
n'importe quel espace vertical (depuis PHP 5.2.4)
\V
n'importe quel caractère qui n'est pas un espace vertical (depuis PHP 5.2.4)
\w
tout caractère de "mot"
\W
tout caractère qui n'est pas un caractère de "mot"

Chaque paire précédente définit une partition de la table des caractères : les deux ensembles sont disjoints. Un caractère satisfera soit un métacaractère, soit l'autre.

Un caractère de "mot" sera une lettre, un chiffre ou le caractère souligné, c'est-à-dire un caractère qui pourra être une partie d'un mot Perl. La définition des lettres et chiffres est définie par les tables de caractères de PCRE, et peut varier suivant la table locale de caractères. Par exemple, dans la configuration "français" ("fr"), certains caractères ont des codes supérieurs à 128, pour les caractères accentués, et ils seront compris par le métacaractère \w.

Ces séquences de caractères peuvent apparaître à l'intérieur ou à l'extérieur des classes de caractères. Elles remplacent à chaque fois un caractère du type correspondant. Si cette séquence est placée en fin de masque, et qu'il n'y a plus de caractère à comparer dans la chaîne sujet, la recherche échoue.

La quatrième utilisation de l'antislash intervient lors d'assertions simples. Une assertion impose une condition à un certain point, sans remplacer de caractère. L'utilisation de sous-masques pour réaliser des assertions plus complexes est décrite plus bas. Les assertions avec antislash sont les suivantes :

\b
limite de mot
\B
pas limite de mot
\A
début de la chaîne sujet (indépendant du mode multilignes)
\Z
fin de la chaîne sujet ou nouvelle ligne à la fin de la chaîne sujet (indépendant du mode multilignes)
\G
position de la première occurrence trouvé dans la chaîne sujet
\z
fin de la chaîne sujet (indépendant du mode multilignes)

Ces assertions ne peuvent pas apparaître dans une classe de caractères (mais "\b" a une autre signification à l'intérieur d'une classe de caractères).

Une limite de mot est un emplacement dans la chaîne sujet ou un caractère et son suivant ne sont pas en même temps des caractères de mot (\w), ou le contraire (\W) (on peut le voir comme \w\W ou \W\w), ou encore le premier ou le dernier caractère est un caractère mot (\w).

Les assertions \A, \Z, et \z diffèrent des métacaractères ^ et $ dans la mesure où ils ne sont pas dépendants des options, notamment PCRE_MULTILINE ou PCRE_DOLLAR_ENDONLY. La différence entre \Z et \z tient au fait que \Z recherche les positions avant les nouvelles lignes et à la fin de la chaîne sujet, tandis que \z ne recherche que la fin de la chaîne.

L'assertion \G est réalisée uniquement lorsque la position courante de l'occurrence trouvée est au début de l'occurrence, comme spécifié par l'argument offset de la fonction preg_match(). Elle diffère de \A lorsque la valeur du paramètre offset est différente de zéro.

\Q et \E peuvent être utilisés pour ignorer les métacaractères dans le masque. Par exemple : \w+\Q.$.\E$ recherchera un ou plusieurs caractères suivis par la chaîne littérale .$. et ancrés à la fin de la chaîne.

\K peut être utilisé pour réinitialiser le résultat, depuis PHP 5.2.4. Par exemple, le masque foo\Kbar trouve "foobar", mais reporte q'il a trouvé "bar". L'utilisation de \K n'interfère pas avec la configuration des sous-chaînes capturantes. Par exemple, lorsque le masque (foo)\Kbar trouve "foobar", la première sous-chaîne sera toujours "foo".



Propriétés des caractères Unicode

Depuis PHP 5.1.0, trois nouvelles séquences d'échappement pour trouver des types de caractères sont disponibles lorsque le mode UTF-8 est sélectionné. Elles sont :

\p{xx}
un caractère avec les propriétés xx
\P{xx}
un caractère sans les propriétés xx
\X
une séquence étendue Unicode

Les noms des propriétés représentés par xx ci-dessus sont limités aux catégories de propriétés générales Unicode. Chaque caractère a exactement une seule de ces propriétés, spécifié par une abréviation sur deux caractères. Pour des raisons de compatibilité avec Perl, la négation peut être spécifiée en incluant un accent circonflexe entre l'accolade ouvrante et le nom de la propriété. Par exemple, \p{^Lu} équivaut à la même chose que \P{Lu}.

Si une seule lettre est spécifiée avec \p ou \P, il inclut toutes les propriétés qui commencent par cette lettre. Dans ce cas, en l'absence de négation, les accolades dans la séquence d'échappement sont optionnelles ; ceci revient à la même chose :

\p{L}
\pL
Codes des propriétés supportées
Propriétés Correspondance Notes
C Autre  
Cc Contrôle  
Cf Format  
Cn Non affecté  
Co Utilisation privée  
Cs Substitut  
L Lettre Inclut les propriétés suivantes : Ll, Lm, Lo, Lt et Lu.
Ll Lettre en minuscule  
Lm Lettre de modification  
Lo Autres lettres  
Lt Lettre titrée  
Lu Lettre en majuscule  
M Marque  
Mc Marque d'espacement  
Me Marque d'enfermement  
Mn Marque non espacée  
N Nombre  
Nd Nombre décimal  
Nl Nombre Lettre  
No Autres nombres  
P Ponctuation  
Pc Ponctuation de connecteur  
Pd Tiret de ponctuation  
Pe Ponctuation de fermeture  
Pf Ponctuation finale  
Pi Ponctuation initiale  
Po Autres ponctuations  
Ps Ponctuation ouvrante  
S Symbole  
Sc Symbole monétaire  
Sk Symbole de modification  
Sm Symbole mathématique  
So Autres symboles  
Z Séparateur  
Zl Séparateur de ligne  
Zp Séparateur de paragraphe  
Zs Séparateur d'espace  

Les propriétés étendues comme "Greek" ou "InMusicalSymbols" ne sont pas supportées par PCRE.

La sensibilité à la casse de la recherche n'affecte pas les séquences d'échappement. Par exemple, \p{Lu} cherche toujours et uniquement les lettres en majuscules

La séquence \X cherche n'importe quel numéro de caractères Unicode qui forme une séquence étendue Unicode. \X est l'équivalent de (?>\PM\pM*).

C'est-à-dire qu'il cherchera un caractère sans la propriété "Marque", suivi par zéro ou plus caractères avec la propriété "Marque", et traitera la séquence en tant que groupe atomique (voir ci-dessous). Les caractères avec la propriété "Marque" sont typiquement des accents qui affectent le caractère précédent.

La recherche de caractères par les propriétés Unicode n'est pas la méthode la plus rapide, car PCRE doit chercher une structure qui contient les données dans plus de quinze mille caractères. C'est pour cela que les séquences traditionnelles comme \d et \w n'utilisent pas les propriétés Unicode dans PCRE.



Ancres

En dehors d'une classe de caractères, avec les options par défaut, ^ est une assertion qui n'est vraie que si elle est placée tout au début de la chaîne. À l'intérieur d'une classe de caractères, ^ a un tout autre sens (voir ci-dessous).

^ n'a pas besoin d'être le premier caractère du masque, si plusieurs alternatives sont proposées, mais il doit être placé en premier dans chaque alternative. Si toutes les alternatives commencent par ^, alors le masque est dit ancré (il y a une autre construction qui porte cette appellation).

$ est une assertion qui n'est vraie que si elle est placée tout en fin de chaîne ou juste avant un caractère de nouvelle ligne qui serait le dernier caractère de la chaîne. À l'intérieur d'une classe de caractères, $ a un tout autre sens (voir ci-dessous). $ n'a pas besoin d'être le dernier caractère du masque, si plusieurs alternatives sont proposées, mais il doit être placé en dernier dans chaque alternative. Si toutes les alternatives finissent par $, alors le masque est dit ancré (il y a une autre construction qui porte cette appellation). $ n'a pas de valeur particulière dans une classe de caractères.

La signification de $ peut changer, de manière à l'amener à ce qu'il ne puisse se trouver qu'en toute fin de la chaîne sujet. Cela se fait en ajoutant l'option PCRE_DOLLAR_ENDONLY au moment de la compilation, ou de l'exécution. Cette option est inopérante sur \Z.

La signification de ^ peut changer, de manière à l'amener à ce qu'il puisse se trouver immédiatement avant et immédiatement après un caractère de nouvelle ligne "\n". Cela se fait en ajoutant l'option PCRE_MULTILINE au moment de la compilation ou de l'exécution. Par exemple, le masque /^abc$/ accepte la chaîne "def\nabc" uniquement en mode multilignes. Par conséquent, toutes les parties du masque qui commencent par "^" ne sont pas ancrées, en mode multilignes. L'option PCRE_DOLLAR_ENDONLY est ignorée si l'option PCRE_MULTILINE est choisie.

Notez que les métacaractères \A, \Z, et \z peuvent servir à repérer le début et la fin du sujet, et toutes les parties du masque qui commenceront par \A seront toujours ancrées, avec l'option PCRE_MULTILINE ou non.



Point

En dehors d'une classe de caractères, un point remplace n'importe quel caractère, même invisible et à l'exception du caractère de nouvelle ligne. Avec l'option PCRE_DOTALL le point remplace n'importe quel caractère, même le caractère de nouvelle ligne. La gestion des points et complètement indépendante de ^ et $. Le seul point commun est que les deux ont un comportement particulier vis-à-vis des caractères de nouvelle ligne. Le point n'a pas de comportement particulier dans une classe de caractères.

\C peut être utilisé pour chercher un seul octet. Il prend tout son sens en mode UTF-8 où le point correspond à un caractère entier qui peut être constitué de plusieurs octets.



Classes de caractères

Un crochet ouvrant [ introduit une classe de caractères, et le crochet fermant ]la conclut. Le crochet fermant n'a pas de signification en lui-même. Si le crochet fermant est nécessaire à l'intérieur d'une classe de caractères, il faut qu'il soit le premier caractère (après un ^ éventuel) ou protégé avec un antislash.

Une classe de caractères remplace un seul caractère dans la chaîne sujet, à moins que le premier caractère de la classe soit un accent circonflexe ^, qui représente une négation : le caractère ne doit pas se trouver dans la classe. Si ^ est nécessaire dans la classe, il suffit qu'il ne soit pas le premier caractère, ou bien qu'il soit protégé par un antislash.

Par exemple, le caractère [aeiou] remplace n'importe quelle voyelle minuscule, tandis que [^aeiou] remplace n'importe quelle caractère qui n'est pas une voyelle minuscule. ^ est une notation pratique pour spécifier des caractères qui sont dans une classe, en ne citant que ceux qui n'y sont pas. Le comportement est inchangé.

Avec l'option d'insensibilité à la casse, toutes les lettres d'une classe de caractères représentent en même temps la majuscule et la minuscule. Par exemple, [aeiou] représentera "A" ou "a", et [^aeiou] n'acceptera pas "A", tandis que sans l'option, elle l'accepterait.

Le caractère de nouvelle ligne n'est pas traité de manière spéciale dans les classes de caractères, quelque soit l'option PCRE_DOTALL ou PCRE_MULTILINE. Une classe telle que [^a] acceptera toujours une nouvelle ligne.

Le signe moins (-) est utilisé pour spécifier un intervalle de caractères, dans une classe. Par exemple, [d-m] remplace toutes les lettres entre d et m inclus. Si le caractère moins est requis dans une classe, il faut le protéger avec un antislash, ou le faire apparaître à une position où il ne pourra pas être interprété comme une indication d'intervalle, c'est-à-dire au début ou à la fin de la classe.

Il n'est pas possible d'avoir le caractère crochet fermant "]" comme fin d'intervalle. Un masque tel que [W-]46] est compris comme la classe de caractères contenant deux caractères ("W" et "-") suivie de la chaîne littérale "46]", ce qui fait qu'il va accepter "W46]" ou "-46]". Cependant, si "]" est protégé avec un antislash, le masque [W-\]46] est interprété comme une classe d'un seul caractère, contenant un intervalle de caractères. La valeur octale ou hexadécimale de "]" peut aussi être utilisée pour déterminer les limites de l'intervalle.

Les intervalles travaillent sur des séquences ASCII. Ils peuvent aussi être précisés avec des valeurs numériques : par exemple "[\000-\037]". Si cet intervalle inclut des lettres utilisées avec une option d'insensibilité de casse, les majuscules ou minuscules correspondantes seront aussi incluses. Par exemple, "[W-c]" est équivalent à "[][\^_`wxyzabc]", avec l'option d'insensibilité de casse. Si la table locale de caractères est "fr", "[\xc8-\xcb]" correspond aux caractères accentués.

Les types de caractères \d, \D, \S, \s, \w, \W peuvent aussi intervenir dans les classes de caractères. Par exemple, "[][\^_`wxyzabc][\dABCDEF]" acceptera n'importe quel caractère hexadécimal. Un accent circonflexe peut aussi être utilisé pour spécifier adroitement des ensembles de caractères plus restrictifs : par exemple [^\W_] accepte toutes les lettres et les chiffres, mais pas les soulignés.

Tous les caractères non alphanumériques autres que \, -, ^ (placés en début de chaîne) et ] n'ont pas de signification particulière, mais ils ne perdront rien à être protégés. Le délimiteur de motif est toujours spécial, et doit être protégé lorsqu'il est utilisé à l'intérieur d'une expression.

Perl supporte la notation POSIX pour les classes de caractères. Elles utilisent des noms entourés par [: et :]. PCRE supporte également cette notation. Par exemple, [01[:alpha:]%] trouve "0", "1", tout caractère numérique, ou encore le caractère "%". Les noms de classe supportés sont :

Classes de caractères
alnum lettres et chiffres
alpha lettres
ascii codes caractères 0 - 127
blank espace ou tabulation uniquement
cntrl caractères de contrôle
digit chiffres décimales (identique à \d)
graph caractères d'impression, excluant les espaces
lower lettres en minuscule
print caractères d'impression, incluant les espaces
punct caractères d'impression, excluant les lettres et les chiffres
space espace blanc (par tout à fait identique à \s)
upper lettres en majuscule
word caractères composant un mot (identique à \w)
xdigit chiffres hexadécimaux
Les caractères d'espacement (space) sont HT (9), LF (10), VT (11), FF (12), CR (13), et l'espace (32). Notez que cette liste inclut le caractère VT (code 11). Ceci rend la classe "space" différente de \s, qui n'inclut pas ce caractère VT (pour une raison de compatibilité Perl).

La classe word est une extension Perl, et blank est une extension GNU de Perl 5.8. La négation est une autre extension Perl ; elle est indiquée par le caractère ^ après un double-point. Par exemple, [12[:^digit:]] trouve "1", "2", mais aussi tout caractère qui n'est pas un chiffre.

En mode UTF-8, les caractères dont les valeurs sont supérieures à 128 ne seront trouvés par aucune des classes de caractères POSIX.



Alternatives

La barre verticale | sert à séparer des alternatives. Par exemple, dans le masque "/dupont|martin/" recherche soit "dupont", soit "martin". Le nombre d'alternatives n'est pas limité, et il est même possible d'utiliser la chaîne vide. Lors de la recherche, toutes les alternatives sont essayées, de gauche à droite, et la première qui est acceptée est utilisée. Si les alternatives sont dans un sous-masque, elle ne réussiront que si le masque principal réussi aussi.



Options internes

Les options PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED et PCRE_DUPNAMES peuvent être changées à l'intérieur du masque lui-même, avec des séquences mises entre "(?" et ")". Les options sont :

Options internes
i pour PCRE_CASELESS
m pour PCRE_MULTILINE
s pour PCRE_DOTALL
x pour PCRE_EXTENDED
U pour PCRE_UNGREEDY
X Pour PCRE_EXTRA
J Pour PCRE_INFO_JCHANGED

Par exemple, (?im) rend le masque insensible à la casse, et multilignes. Il est possible d'annuler ces options en les faisant précéder par un signe - : par exemple (?im-sx), ajoutera les options PCRE_CASELESS et PCRE_MULTILINE, mais annulera les options PCRE_DOTALL et PCRE_EXTENDED. Si une option apparaît avant et après le signe moins, l'option sera annulée.

Lorsqu'une modification d'option survient au degré le plus haut (et donc, pas dans les parenthèses du sous-masque), les modifications sont appliquées dans le reste du masque qui suit. Donc, /ab(?i)c/ valide uniquement "abc" et "abC".

Si une option intervient dans un sous-masque, le comportement est différent. C'est un changement de comportement apparu en Perl 5.005. Une option à l'intérieur d'un sous-masque n'affecte que cette partie du masque, ce qui fait que (a(?i)b)c acceptera abc et aBc, mais aucune autre chaîne (en supposant que PCRE_CASELESS n'est pas utilisé). Cela signifie que les options permettent d'avoir différentes configurations de recherche pour différentes parties du masque.Une séquence d'options dans une alternative affecte toute l'alternative. Par exemple : (a(?i)b|c) accepte "ab", "aB", "c", et "C", même si, comme dans le cas de "C", la première alternative qui porte l'option n'est pas prise en compte. Sinon, cela risque d'introduire des comportements très étranges

Les options spécifiques à PCRE telles PCRE_UNGREEDY et PCRE_EXTRA peuvent être modifiées de la même manière, en utilisant respectivement les caractères U et X. L'option (?X) est particulière, car elle doit toujours intervenir avant toutes les autres options, même au niveau du masque entier. Il vaut mieux l'activer au début du masque.



Sous-masques

Les sous-masques sont délimités par des parenthèses, et peuvent être imbriqués. Ajouter des sous-masques a deux utilités :

  1. Localiser un ensemble d'alternatives. Par exemple, le motif cat(aract|erpillar|) trouve un des mots "cat", "cataract", ou "caterpillar". Sans les parenthèses, cela trouverait "cataract", "erpillar" ou la chaine vide.

  2. Cela configure le sous-masque comme capturant. Lorsque tout le motif correspond, la portion de la sous-chaine qui correspond au sous-masque est passé à l'appelant grâce à l'argument ovector de pcre_exec(). Les parenthèses ouvrantes sont comptées depuis la gauche vers la droite (commençant à 1) jusqu'à obtenir le nombre des sous-masques capturants.

Par exemple, soit la chaîne sujet "le roi soleil" qui est utilisée avec le masque suivant : Le ((roi|prince) (soleil|charmant)), les sous-masques capturés sont "roi soleil", "roi", et "soleil", numérotés respectivement 1, 2, et 3.

L'ubiquité des parenthèses n'est pas toujours simple d'emploi. Il y a des moments où regrouper des sous-masques est nécessaire, sans pour autant capturer la valeur trouvée. Si une parenthèse ouvrante est suivie de "?:", le sous-masque ne capture pas la chaîne assortie, et ne sera pas compté lors de la numérotation des captures. Par exemple, avec la chaîne "le prince charmant", utilisé avec le masque Le (( ?roi|prince) (soleil|charmant)) les chaînes capturées seront "prince charmant" et "charmant", numérotés respectivement 1 et 2. Le nombre maximal de chaînes capturées est de 99, et le nombre total de sous-masques (capturant ou non) ne doit pas dépasser 200.

En guise de raccourci, si n'importe quelle option de configuration est requise au début des sous-masques non-capturants, les lettres d'option peuvent apparaître entre le signe "?" et le signe ":". Ainsi, les 2 masques

(?i:samedi|dimanche)
(?:(?i)samedi|dimanche)

captureront exactement les mêmes chaînes. Du fait que les branches alternatives sont testées de la gauche vers la droite, et que les options ne sont pas réinitialisées tant que le sous masque n'est pas atteint, une option de configuration d'une branche n'affecte pas les branches sous-jacentes ; ainsi, les 2 masques ci-dessus captureront "SAMEDI", mais aussi "Samedi".

Il est possible de nommer un sous masque en utilisant la syntaxe (?P<name>pattern). Ce sous masque sera alors indexé dans le tableau de concordance par sa position, ainsi que par son nom. PHP 5.2.2 a introduit 2 nouvelles syntaxes : (?<name>pattern) et (?'name'pattern).

Quelques fois, il est nécessaire d'avoir plusieurs correspondances en alternant les sous groupes dans une expression régulière. Normallement, chacun recevra son propre nombre de références arrières même si seulement un d'entre eux ne peut correspondre. Pour éviter cela, la syntaxe (?| permet d'autoriser les nombres dupliqués. Soit l'expression ci-après utilisée avec la chaine Sunday:

(?:(Sat)ur|(Sun))day

Ici Sunest stocké dans la référence arrière 2, alors que la référence arrière 1 est vide. La correspondance mène donc à Sat dans la référence arrière 1 alors que la référence arrière 2 n'existe pas. Changer le masque en utilisant (?| résoud ce problème:

(?|(Sat)ur|(Sun))day

Avec ce masque, à la fois Sun et Sat seront stockés dans la référence arrière 1.



Répétitions

Les répétitions sont spécifiées avec des quantificateurs, qui peuvent être placés à la suite des caractères suivants :

  • Un caractère unique, même s'il s'agit d'un métacaractère
  • Le métacaractère .
  • Une classe de caractères
  • Une référence de retour (voir section suivante)
  • Un sous-masque avec parenthèses (à moins que ce ne soit une assertion, voir plus loin)

Les quantificateurs généraux précisent un nombre minimum et maximum de répétitions possibles, donnés par deux nombres entre accolades, et séparés par une virgule. Ces nombres doivent être plus petits que 65536, et le premier nombre doit être égal ou inférieur au second. Par exemple z{2,4} accepte "zz", "zzz", ou "zzzz". L'accolade fermante n'a pas de signification par elle-même. Si le second nombre est omis, mais que la virgule est là, cela signifie qu'il n'y a pas de limite supérieure. Si le second nombre et la virgule sont omis, le quantificateur correspond au nombre exact de répétitions attendues. Par exemple : [aeiou]{3,} accepte n'importe quelle succession d'au moins 3 voyelles minuscules, tandis que \d{d} n'accepte que 8 chiffres exactement. Une accolade ouvrante qui apparaît à une position où un quantificateur n'est pas accepté, ou si la syntaxe des quantificateurs n'est pas respectée, sera considérée littérale. Par exemple, "{,6}" n'est pas un quantificateur, mais une chaîne de 4 caractères.

Le quantificateur {0} est autorisé, mais l'expression est alors ignorée.

Par convenance (et pour la compatibilité ascendante), les trois quantificateurs les plus communs ont une abréviation d'un seul caractère :

Quantificateurs sur un seul caractère
* équivalent à {0,}
+ équivalent à {1,}
? équivalent à {0,1}

Il est possible de constituer des boucles infinies en créant un sous-masque sans caractères, mais pourvu d'un quantificateur sans limite supérieure. Par exemple : (a?)*

Les versions plus anciennes de Perl et PCRE généraient alors une erreur au moment de la compilation. Cependant, étant donné qu'il existe des situations où ces constructions peuvent être utiles, ces masques sont désormais autorisés. Toutefois, si la répétition du sous-masque ne trouve aucun caractère, la boucle est interrompue.

Par défaut, les quantificateurs sont dits "gourmands", c'est à dire, qu'ils cherchent d'abord à trouver le nombre maximal de répétitions qui autorisent le succès de la recherche. L'exemple classique posé par cette gourmandise est la recherche de commentaires d'un programme en C. Les commentaires apparaissent entre les séquences /*....*/ et à l'intérieur de ces délimiteurs, les * et / sont autorisés. Appliquer le masque /\*.*\*/ à la chaîne /* premier commentaire */ aucun commentaire /* second commentaire */ ne peut réussir, car le masque travaille sur toute la chaîne, à cause de la gourmandise du caractère .*.

Cependant, un quantificateur suivi d'un point d'interrogation cesse d'être gourmand, et au contraire, ne recherche que le nombre minimum de répétition. Dans ces conditions, le masque /\*.*?\*/ trouvera bien les commentaires du code C. La signification des autres quantificateurs n'est pas changée. Attention à ne pas confondre l'utilisation du point d'interrogation ici avec son utilisation comme quantificateur lui-même. À cause de cette ambiguïté, il peut apparaître des situations où il faut le doubler : \d??\d Ce masque va tenter de lire un seul chiffre, mais le cas échéant, il acceptera 2 chiffres pour permettre à la recherche d'aboutir.

Si l'option PCRE_UNGREEDY est activée, (une option qui n'est pas disponible avec Perl) alors les quantificateurs sont non gourmands par défaut, mais peuvent être rendu gourmands au cas par cas, en ajoutant un point d'interrogation après. En d'autres termes, cette option inverse le comportement par défaut.

Les quantificateurs suivis par + sont "possessifs". Ils mangent autant de caractères que possible et ne retournent pas pour chercher le reste du masque. .*abc trouvera "abc", tandis que .*+abc ne le trouvera pas, car .*+ accapare totalement la chaîne. Les quantificateurs possessifs peuvent être utilisés pour accélérer le traitement.

Lorsqu'un sous-masque est quantifié avec un nombre minimum de répétitions, qui soit plus grand que 1, ou avec un maximum de répétitions, le masque compilé aura besoin de plus de place de stockage, proportionnellement au minimum et au maximum.

Si un masque commence par .* ou .{0,} et que l'option PCRE_DOTALL (équivalent en Perl à /s) est activée, c'est-à-dire en autorisant le remplacement des nouvelles lignes par un métacaractère, alors le masque est implicitement ancré, car tout ce qui suit va être mangé par la première séquence, et se comportera comme si le masque se terminait par le métacaractère \A. Dans le cas où on sait d'avance qu'il n'y aura pas de caractère de nouvelle ligne, activer l'option PCRE_DOTALL et commencer le masque par .* permet d'optimiser le masque. Alternativement, on peut utiliser ^ pour ancrer explicitement le masque.

Lorsqu'un sous-masque capturant est répété, la valeur capturée est la dernière. Par exemple, après que (inter[net]{3}\s*)+ ait été appliqué à "internet interne", la valeur de la chaîne capturée est "interne". Cependant, s'il y a des sous-masques imbriqués, la valeur capturée correspondante peut l'avoir été lors des précédentes itérations. Par exemple : /(a|(b))+/ accepte "aba" et la deuxième valeur capturée est "b".



Références arrières

En dehors des classes de caractères, un antislash suivi d'un nombre plus grand que 0 (et possiblement plusieurs chiffres) est une référence arrière (c'est à dire vers la gauche) dans le masque, en supposant qu'il y ait suffisamment de sous-masques capturants précédents.

Cependant, si le nombre décimal suivant l'antislash est plus petit que 10, il sera toujours considéré comme une référence arrière, et cela générera une erreur si le nombre de captures n'est pas suffisant. En d'autres termes, il faut qu'il existe suffisamment de parenthèses ouvrantes à gauche de la référence, surtout si la référence est inférieure à 10. Une "référence arrière vers l'avant" peut avoir du sens lorsqu'une répétition est isolée et que le sous masque à droite a participé dans l'itération précédente. Reportez-vous à la section "antislash" pour avoir de plus amples détails à propos du nombre de chiffres qui suivent l'antislash.

La référence arrière remplace ce qui a été capturé par un sous-masque dans le masque courant, plutôt que remplacer le sous-masque lui-même. Ainsi (calme|rapide) et \1ment trouvera "calme et calmement" et "rapide et rapidement", mais pas "calme et rapidement". Si la recherche tient compte de la casse, alors la casse de la chaîne capturée sera importante. Par exemple, ((?i)rah)\s+\1 trouve "rah rah" et "RAH RAH", mais pas "RAH rah", même si le sous-masque capturant initial ne tenait pas compte de la casse.

Il peut y avoir plusieurs références arrières dans le même sous-masque. Si un sous-masque n'a pas été utilisé dans une recherche, alors les références arrières échoueront. Par exemple (a|(bc))\2 ne réussira jamais si la chaîne sujet commence par "a" plutôt que par "bc". Étant donné qu'il peut y avoir jusqu'à 99 références arrières, tous les chiffres après l'antislash sont considérés comment faisant potentiellement partie de la référence arrière. Si le masque recherche un chiffre après la référence, alors il faut impérativement utiliser des délimiteurs pour terminer la référence arrière. Si l'option PCRE_EXTENDED est activée, on peut utiliser un espace. Sinon, un commentaire vide fait l'affaire.

Une référence arrière qui intervient à l'intérieur de parenthèses auxquelles elle fait référence échouera dès que le sous-masque sera utilisé. Par exemple, (a\1) échouera toujours. Cependant, ces références peuvent être utiles dans les sous-masques répétitifs. Par exemple, le masque "(a|b\1)+" pourra convenir pour "a", "aba", "ababba", etc. À chaque itération du sous-masque, la référence arrière utilise le résultat du dernier sous-masque. Pour que cela fonctionne, il faut que la première itération n'ait pas besoin d'utiliser la référence arrière. Cela arrive avec les alternatives, comme dans l'exemple ci-dessus, ou avec un quantificateur de minimum 0.

Depuis PHP 5.2.2, la séquence d'échappement \g peut être utilisée pour le référencement absolu et relatif des sous-masques. Cette séquence doit être suivie par un nombre non-signé ou négatif, entouré optionnellement par des accolades. La séquence \1, \g1 et \g{1} sont identiques. L'utilisation de ce masque avec un nombre non-signé peut aider à ne pas le confondre lors de l'utilisation de nombre suivi d'un anti-slash. Cette séquence aide à distinguer les références arrières lors de l'utilisation de caractères octales et rend également plus facile d'avoir une référence arrière suivie par un nombre litéral, i.e. \g{2}1.

L'utilisation de la séquence \g avec un nombre négatif indique une référence relative. Par exemple, (foo)(bar)\g{-1} trouvera la séquence "foobarbar" et (foo)(bar)\g{-2} trouvera la séquence "foobarfoo". Ceci peut être pratique dans ce gros masque comme alternative afin de conserver une trace du nombre de sous-masques afin de référencer un sous-masque précédant spécifique.

Les références arrières du sous-masque nommé peuvent être utilisées sous la forme (?P=name) ou, depuis PHP 5.2.2, via \k<name> ou \k'name'. De plus, PHP 5.2.4 a ajouté le support de \k{name} et de \g{name}.



Assertions

Une assertion est un test sur les caractères suivants ou précédents celui qui est en cours d'étude. Ce test ne consomme par de caractère (ie, on ne déplace pas le pointeur de caractères). Les assertions simples sont codées avec \b, \B, \A, \Z, \z, ^ et $, et sont décrites précédemment. Il existe cependant des types d'assertions plus complexes, codées sous la forme de sous-masques. Il en existe deux types : celles qui travaillent au-delà de la position courante, et celles qui travaillent en-deçà.

Une assertion se comporte comme un sous-masque, hormis le fait qu'elle ne déplace pas le pointeur de position. Les assertions avant commencent par (?= pour les assertions positives, et par (?!, pour les assertions négatives. Par exemple : \w+(?=;) s'assure qu'un mot est suivi d'un point-virgule, mais n'inclut pas le point virgule dans la capture et foo(?!bar) trouve toutes les occurrences de "foo" qui ne sont pas suivies par "bar". Notez que, (?!foo)bar en est proche, mais ne trouve pas une occurrence de "bar" qui soit précédée par quelque chose d'autre que "foo"; il trouve toutes les occurrences de "bar", quel que soit ce qui le précède, car l'assertion (?!foo) est toujours vraie quand les trois caractères suivants sont "bar". Une assertion arrière est ici nécessaire.

Les assertions arrières commencent par (?<= pour les assertions positives, et (?<! pour les assertions négatives. Par exemple : (?<!foo)bar trouve les occurrences de "bar" qui ne sont pas précédées par "foo". Le contenu d'une référence arrière est limité de telle façon que les chaînes qu'il utilise soient toujours de la même taille. Cependant, lorsqu'il y a plusieurs alternatives, elles n'ont pas besoin d'être de la même taille. Par exemple, (?<=bullock|donkey) est autorisé, tandis que (?<!dogs?|cats?) provoque une erreur de compilation. Les alternatives qui ont des longueurs différentes ne sont autorisées qu'au niveau supérieur des assertions arrières. C'est une amélioration du fonctionnement de Perl 5.005, qui impose aux alternatives d'avoir toutes la même taille. Une assertion telle que (?<=ab(c|de)) n'est pas autorisée, car l'assertion de bas niveau (la deuxième, ici) a deux alternatives de longueurs différentes. Pour la rendre acceptable, il faut écrire (?<=abc|abde) L'implémentation des assertions arrières déplace temporairement le pointeur de position vers l'arrière, et cherche à vérifier l'assertion. Si le nombre de caractères est différent, la position ne sera pas correcte, et l'assertion échouera. La combinaison d'assertions arrières avec des sous-masques peut être particulièrement pratique à fin des chaînes. Un exemple est donné à la fin de cette section.

Plusieurs assertions peuvent intervenir successivement. Par exemple, le masque (?<=\d{3})(?<!999)foo recherche les chaînes "foo" précédées par trois chiffres qui ne sont pas "999". Notez que chaque assertion est appliquées indépendamment, au même point de la chaîne à traiter. Tout d'abord, il est vérifié que les trois premiers caractères ont tous des chiffres, puis on s'assure que ces trois caractères ne sont pas "999". Le masque précédant n'accepte pas "foo" précédé de 6 caractères, les trois premiers étant des chiffres et les trois suivants étant différents de "999". Par exemple, ce masque n'acceptera pas la chaîne "123abcfoo". Pour ce faire, il faut utiliser le masque suivant : (?<=\d{3}...)(?<!999)foo.

Dans ce masque, la première assertion vérifie les six premiers caractères, s'assure que les trois premiers sont des entiers, et la deuxième assertion s'assure que les trois derniers caractères ne sont pas "999".

De plus, les assertions peuvent être imbriquées : (?<=(?<!foo)bar)baz recherche les occurrences de "baz" qui sont précédées par "bar", qui, à son tour, n'est pas précédé par "foo". Au contraire, (?<=\d{3}...(?<!999))foo est un autre masque, qui recherche les caractères "foo", précédés par trois chiffres, suivis de trois autres caractères qui ne forment pas "999".

Les assertions ne sont pas capturantes, et ne peuvent pas être répétées. Si une assertion contient des sous-masques capturants en son sein, ils seront compris dans le nombre de sous-masques capturants du masque entier. La capture est réalisée pour les assertions positives, mais cela n'a pas de sens pour les assertions négatives.

200 assertions au maximum sont autorisées.



Sous-masques uniques

Avec les quantificateurs de répétitions, l'échec d'une recherche conduit normalement à une autre recherche, avec un nombre différent de répétitions, pour voir si le masque ne s'applique pas dans d'autres conditions. Parfois, il est pratique d'éviter ce comportement, soit pour changer la nature de la recherche, soit pour la faire abandonner plus tôt, si on pense qu'il n'est pas besoin d'aller plus loin.

Considérons, par exemple, le masque \d+foo appliqué à la ligne 123456bar.

Après avoir tenté d'utiliser les 6 chiffres suivis de "foo" qui font échouer, l'action habituelle sera de réessayer avec 5 chiffres, puis avec 4, et ainsi de suite jusqu'à l'échec final. Un sous-masque évalué une seule fois permettrait d'indiquer que lorsqu'une partie du masque est trouvée, elle n'a pas besoin d'être réévaluée à chaque tentative. Ceci conduirait à ce que la recherche échoue immédiatement après le premier test. Ces assertions ont leur propre notation, commençant avec (?> comme ceci : (?>\d+)bar

Ce type de parenthèses verrouille le sous-masque qu'il contient une fois qu'il a été trouvé, et empêche un échec ultérieur d'y repasser, mais autorise à revenir plus loin en arrière.

Une autre description est que les sous-masques de ce type recherchent les chaînes de caractères, et ancre le sous-masque à l'intérieur de la chaîne.

Les sous-masques uniques ne sont pas capturants. Des cas simples comme ceux présentés ci-dessus peuvent être pris comme des situations maximales, qui réservent le maximum de caractères. En effet, alors que \d+ et \d+? ajustent le nombre de chiffres trouvés de manière à laisser la possibilité au masque de réussir, (?>\d+) ne peut retenir que la séquence entière de chiffres.

Cette construction peut contenir un nombre arbitraire de sous-masques complexes, et ils peuvent être imbriqués.

Les sous-masques uniques ne peuvent être utilisés qu'avec les assertions arrières, pour effectuer une recherche efficace en fin de chaîne. Considérons un masque simple tel abcd$ appliqué à une très longue chaîne qui ne lui correspond pas. À cause du système de recherche de gauche à droite, PCRE va commencer par rechercher un "a" dans la chaîne sujet, puis vérifier si ce qui suit convient au reste du masque. Si le masque est spécifié sous la forme ^.*abcd$ alors, la séquence .* remplace en premier lieu la chaîne entière, et échoue, repart en arrière, et remplace tous les caractères sauf le dernier, échoue, retourne en arrière, prend un caractère de moins, etc. et ainsi de suite. Encore une fois, la recherche du "a" passe en revue toute la chaîne de gauche à droite, ce qui n'est pas très efficace. Par contre, si le masque était écrit ^(?>.*)(?<=abcd) alors il n'y aurait pas de retour en arrière, pour satisfaire la séquence .*, car elle ne peut que remplacer toute la chaîne. L'assertion arrière consécutive va alors faire un test sur les 4 derniers caractères. Si elle échoue, la recherche est immédiatement interrompue. Pour les chaînes très longues, cette approche fait la différence en termes de performances et de temps de recherche.

Lorsqu'un masque contient une répétition illimitée dans un sous-masque, qui contient lui-même un nombre illimité de répétiteurs, l'utilisation des sous-masques à utilisation unique est la seule façon d'éviter l'échec de la recherche après un temps de calcul trop long. Le masque (\D+|<\d+>)*[!?] recherche un nombre illimité de sous-chaînes, qui contiennent soit des non chiffres, soit des chiffres inclus dans <>, suivi soit par ! ou par ?. Lorsqu'il trouve une solution, ce masque va très vite. Mais, lorsqu'il est appliqué à une chaîne telle : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, il lui faut beaucoup de temps pour annoncer un échec. Cela est dû au fait que la chaîne peut être divisée en deux sous-chaînes d'un grand nombre de façons, et qu'elles ont toutes été essayées. (Cet exemple utilisait [!?] plutôt qu'un caractère simple, car PCRE et PHP utilise une optimisation qui leur permettent de détecter rapidement l'échec lorsqu'un caractère unique est trouvé. Il se souvient du dernier caractère qui est attendu, et s'aperçoit rapidement qu'il n'y a pas ce caractère). Si le masque utilisé est ((?>\D+)|<\d+>)*[!?] les séquences de chiffres ne peuvent pas être trouvées, et l'échec intervient rapidement.



Les sous-masques conditionnels

Il est possible de lier un sous-masque à une condition, ou de choisir entre deux sous-masques alternatifs, en fonction du résultat d'une assertion, ou suivant les résultats de recherche précédents. Les deux formes possibles de sous-masques conditionnels sont

(?(condition)masque positif)
(?(condition) masque positif | masque négatif)

Si les conditions sont satisfaites, le masque positif est utilisé, sinon, le masque négatif est utilisé, si présent. S'il y a plus de deux alternatives, une erreur est générée à la compilation.

Il y a deux types de conditions : si le texte entre les parenthèses est une séquence de chiffres, alors la condition est satisfaite si le sous-masque correspondant à ce numéro a réussi. Considérons le masque suivant, qui contient des espaces non significatifs pour le rendre plus compréhensible (on supposera l'option PCRE_EXTENDED activée) et qui est divisée en trois parties pour simplifier les explications : ( \( )? [^()]+ (?(1) \) ).

La première partie recherche une parenthèse ouvrante optionnelle et, si elle existe, elle est capturée. La deuxième partie recherche un séquence de caractères qui ne contiennent pas de parenthèses. La troisième partie est conditionnée à la première, et s'assure que s'il y a une parenthèse ouvrante, il en existe une fermante. Si une parenthèse ouvrante a été trouvée, elle a été capturée, et donc la première capture existe, et la condition est exécutée. Sinon, elle est ignorée. Ce masque recherche donc une séquence de lettres, éventuellement placées entre parenthèse.

Si la condition est la chaîne (R), elle sera satisfaite si un appel récursif au masque ou au sous-masque a été fait. Au premier appel, la condition n'est pas vérifiée.

Si la condition n'est pas une séquence de chiffres, il faut que ce soit une assertion. Ce peut être une assertion positive ou négative, arrière ou avant. Considérons le masque suivant (même conditions que le précédent) et avec deux alternatives en seconde ligne :

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} )

La condition est une assertion avant positive, qui recherche une séquence optionnelle de caractères non-lettre. En d'autres termes, elle teste la présence d'au moins une lettre dans la chaîne sujet. Si une lettre est trouvée, la recherche se poursuit avec la première alternative, et sinon, avec la seconde. Ce masque recherche des chaînes de la forme dd-aaa-dd ou dd-dd-dd, avec "aaa" qui sont des lettres, et dd qui sont des chiffres.



Commentaires

La séquence (?# marque le début d'un commentaire, qui se termine à la prochaine parenthèse fermante. Les parenthèses imbriquées ne sont pas autorisées. Les caractères entre ces délimiteurs ne jouent alors aucun rôle dans le masque.

Si l'option PCRE_EXTENDED est activée, les caractères dièses # non protégés en dehors d'une classe de caractères introduisent un commentaire qui continuera jusqu'à la prochaine ligne dans le masque.



Masques récursifs

Considérons le cas où il faut rechercher dans une chaîne avec un niveau d'imbrications infini de parenthèses. Sans l'aide de la récursivité, le mieux que nous puissions obtenir est de créer un masque avec un niveau fixé de profondeur d'imbrication. Il n'est pas possible de traiter des masques à niveau d'imbrication variable. PCRE fournit un nouvel outil expérimental qui permet d'utiliser la récursivité dans les masques (entre autres). L'option (?R) est fournie pour servir la cause de la récursivité. Le masque suivant résout le problème des parenthèses (l'option PCRE_EXTENDED est utilisée pour ignorer les espaces) : \( ( (?>[^()]+) | (?R) )* \)

Tout d'abord, le masque recherche une parenthèse ouvrante. Puis, il recherche n'importe quel nombre de sous-chaînes qui sont soit des séquences de caractères non-parenthèses, ou bien une recherche récursive avec le même masque (i.e. une chaîne correctement incluse entre parenthèses). Finalement, il recherche une parenthèse fermante.

Cet exemple particulier contient un nombre illimité de répétitions imbriquées, ce qui fait que l'utilisation de sous-chaînes à utilisation unique pour rechercher les séquences de caractères non parenthèses est important, lorsqu'il s'applique à une chaîne qui n'est pas valide. Par exemple, si on l'applique à (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() la réponse arrive rapidement. Sinon, si les sous-chaînes à utilisation unique ne sont pas utilisées, la recherche peut prendre un temps très long, car il existe de très nombreuses combinaisons de + et * à tester avant de conclure à l'échec.

Les valeurs utilisées pour capturer les sous-masques sont celles utilisées par les niveaux les plus hauts de récursivité, auxquels la valeur est fixée. Si le masque précédent est utilisé avec (ab(cd)ef) la valeur de la parenthèse capturante est "ef", qui est la dernière valeur lue au niveau supérieur. Si de nouvelles parenthèses sont ajoutées, par exemple : \( ( ( (?>[^()]+) | (?R) )* ) \) alors la chaîne capturée est "ab(cd)ef", c'est-à-dire le contenu de la parenthèse capturante de plus haut niveau. S'il y a plus de 15 parenthèses capturantes dans une chaîne, PCRE doit utiliser plus de mémoire pour stocker ces données. S'il ne peut obtenir cette mémoire supplémentaire, il ne fait que sauver les 15 premières, car il n'y a pas moyen de générer une erreur de mémoire dans le cadre d'une récursivité.

(?1), (?2) et suivants peuvent être également utilisés pour les sous masques récursifs. Il est également possible d'utiliser les sous masques nommés : (?P>foo) ou (?P&name).

Si la syntaxe pour une référence de sous-masque récursif (soit par un nombre ou par un nom) est utilisée en dehors des parenthèses à laquelle elle fait référence, il opère comme une sous-routine dans un langage de programmation. Un exemple ci-dessus a montré que le masque (sens|respons)e and \1ibility trouvera "sense and sensibility" et "response and responsibility", mais pas "sense and responsibility". Si on utilise plutôt le masque (sens|respons)e and (?1)ibility alors, il trouvera "sense and responsibility" tout comme les deux autres chaînes. De telles références doivent, dépendant, suivre le sous-masque auquel elles se réfèrent.

La longueur maximale d'un sujet correspond au plus grand nombre positif qu'une variable entière peut contenir. Cependant, PCRE utilise la récursivité pour gérer les sous-masques et les répétitions infinies. Ce qui signifie que l'espace disponible pour la pile peut limiter la taille du sujet qui peut être passé à certains masques.



Performance

Certaines séquences de recherches sont plus efficaces que d'autres. Ainsi, il est plus efficace d'utiliser une classe de caractères telle que [aeiou] plutôt qu'une alternative (a|e|i|o|u). En général, le masque le plus simple, qui permette la recherche désirée est le plus efficace. Le livre de Jeffrey Friedl's contient de nombreuses études à propos de l'optimisation des expressions rationnelles.

Lorsqu'un masque commence par.* et que l'option PCRE_DOTALL est activée, le masque est implicitement ancré par PCRE, étant donné qu'il ne peut que rechercher au début de la chaîne. Cependant, si l'option PCRE_DOTALL n'est pas activée, PCRE ne peut faire aucune optimisation car le métacaractères point "." ne remplace pas une nouvelle ligne, et si la chaîne sujet contient des nouvelles lignes, le masque peut trouver une solution qui serait située juste après une de ces nouvelles lignes, et non pas seulement au début de la chaîne sujet. Par exemple, le masque, (.*)second acceptera la chaîne "premier \net second" (avec "\n" qui remplace la nouvelle ligne), et la première chaîne capturée sera "et". Afin d'effectuer la recherche, PCRE va essayer d'appliquer le masque à partir de chaque début de ligne.

Si vous utilisez un tel masque avec des chaînes qui ne contiennent pas de caractères de nouvelle ligne, les meilleures performances seront atteintes avec l'option PCRE_DOTALL, ou en ancrant le masque avec ^.*. Cela évite à PCRE de scanner toute la chaîne pour rechercher un caractère de nouvelle ligne et recommencer la recherche.

Attention aux masques qui contiennent des quantificateurs infinis imbriqués. Ils peuvent demander un temps de calcul très long, lorsque appliqués à une chaîne qui ne correspond pas à ce masque. Par exemple, (a+)*

Ce masque peut accepter "aaaa" de 33 manières différentes, et ce nombre croit rapidement avec la taille de la chaîne (le quantificateur * peut prendre les valeurs de 0, 1, 2, 3, ou 4, et pour chaque cas non nul, le quantificateur + peut prendre différentes valeurs). Lorsque le reste de la chaîne est tel que l'on s'achemine vers un échec, PCRE doit en principe vérifier toutes les possibilités, et cela prend un temps extrêmement long.

Un optimiseur repère les cas les plus simples, tel que (a+)*b où un caractère simple suit les quantificateurs. Avant de partir dans les procédures standards de recherche, PCRE s'assure qu'il y a au moins un "b" dans la chaîne, et si ce n'est pas le cas, l'échec est annoncé immédiatement. Sinon, il n'y a pas d'optimisation dans la recherche. Vous pouvez voir la différence de comportement avec le masque suivant : (a+)*\d. Le premier retourne un échec quasi-immédiatement, s'il est appliqué à une ligne de "a", alors que le second masque prend un temps significatif pour une chaîne de plus de 20 caractères.




Options de recherche

Les options de PCRE sont listées ci-dessous. Les noms entre parenthèses sont les noms internes à PCRE. Les espaces et les caractères de nouvelles lignes sont ignorés dans les modificateurs, les autres caractères causent des erreurs.

i (PCRE_CASELESS)
Effectue une recherche insensible à la casse.
m (PCRE_MULTILINE)
Par défaut, PCRE traite la chaîne sujet comme une seule ligne (même si cette chaîne contient des retours chariot). Le métacaractère "début de ligne" (^) ne sera valable qu'une seule fois, au début de la ligne, et le métacaractère "fin de ligne " ($) ne sera valable qu'à la fin de la chaîne, ou avant le retour chariot final (à moins que l'option D ne soit activée). C'est le même fonctionnement qu'en Perl. Lorsque cette option est activée, " début de ligne " et " fin de ligne " correspondront alors aux caractères suivant et précédent immédiatement un caractère de nouvelle ligne, en plus du début et de la fin de la chaîne. C'est le même fonctionnement que l'option Perl /m. S'il n'y a pas de caractère de nouvelle ligne "\n" dans la chaîne sujet, ou s'il n'y a aucune occurrence de ^ ou $ dans le masque, cette option ne sert à rien.
s (PCRE_DOTALL)
Avec cette option, le métacaractère point (.) remplace n'importe quel caractère, y compris les nouvelles lignes. Sans cette option, le caractère point ne remplace pas les nouvelles lignes. Cette option est équivalente à l'option Perl /s. Une classe de caractères négative telle que [^a] acceptera toujours les caractères de nouvelles lignes, indépendamment de cette option.
x (PCRE_EXTENDED)
Avec cette option, les caractères d'espacement sont ignorés, sauf lorsqu'ils sont échappés, ou à l'intérieur d'une classe de caractères, et tous les caractères entre # non échappés et en dehors d'une classe de caractères, et le prochain caractère de nouvelle ligne sont ignorés. C'est l'équivalent Perl de l'option /x : elle permet l'ajout de commentaires dans les masques compliqués. Notez bien, cependant, que cela ne s'applique qu'aux caractères de données. Les caractères d'espacement ne doivent jamais apparaître dans les séquences spéciales d'un masque, par exemple dans la séquence (?( qui introduit une parenthèse conditionnelle.
e (PREG_REPLACE_EVAL)
Avec cette option, preg_replace() effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l'évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche. Les guillemets simples, les guillemets doubles, les antislashs et les caractères NULL sont protégés avec des antislashs (\) dans les références arrières substituées.
Astuce

Assurez-vous que replacement constitue une chaîne de code PHP valide, sinon, PHP émettra une erreur d'analyse à la ligne contenant la fonction preg_replace().

Note:

Seule preg_replace() utilise cette option. Elle est ignorée par les autres.

A (PCRE_ANCHORED)
Avec cette option, le masque est ancré de force, c'est-à-dire que le masque doit s'appliquer juste au début de la chaîne sujet pour être considéré comme trouvé. Il est possible de réaliser le même effet en ajoutant les métacaractères adéquats, ce qui est la seule manière de le faire en Perl.
D (PCRE_DOLLAR_ENDONLY)
Avec cette option, le métacaractère $ ne sera valable qu'à la fin de la chaîne sujet. Sans cette option, $ est aussi valable avant une nouvelle ligne, si cette dernière est le dernier caractère de la chaîne. Cette option est ignorée si l'option m est activée. Il n'y a pas d'équivalent en Perl.
S
Lorsqu'un masque est utilisé plusieurs fois, cela vaut la peine de passer quelques instants de plus pour l'analyser et optimiser le code pour accélérer les traitements ultérieurs. Cette option force cette analyse plus poussée. Actuellement, cette analyse n'est utile que pour les masques non ancrés, qui ne commencent pas par un caractère fixe.
U (PCRE_UNGREEDY)
Cette option inverse la tendance à la gourmandise des expressions rationnelles. Vous pouvez aussi inverser cette tendance au coup par coup avec un ? mais cela rendra gourmand la séquence. Cette option n'est pas compatible avec Perl. Elle peut aussi être mise dans le masque avec l'option ?U dans le pattern ou par un point d'interrogation avant le quantificateur (.e.g. .*?).

Note:

Il n'est généralement pas possible de faire correspondre plus que la limite de pcre.backtrack_limit caractères en mode non gourmand.

X (PCRE_EXTRA)
Cette option ajoute d'autres fonctionnalités incompatibles avec le PCRE de Perl. Tous les antislashs suivis d'une lettre qui n'aurait pas de signification particulière causent une erreur, permettant la réservation de ces combinaisons pour des ajouts fonctionnels ultérieurs. Par défaut, comme en Perl, les antislashs suivis d'une lettre sans signification particulière sont traités comme des valeurs littérales. Actuellement, cette option ne déclenche pas d'autres fonctions.
J (PCRE_INFO_JCHANGED)
L'option (?J) interne de configuration modifie l'option locale PCRE_DUPNAMES. Permet la duplication de noms pour les sous-masques.
u (PCRE8)
Cette option désactive les fonctionnalités additionnelles de PCRE qui ne sont pas compatibles avec Perl. Les chaînes sont traitées comme des chaînes UTF-8. Cette option est disponible en PHP 4.1.0 et plus récent sur plate-forme Unix et en PHP 4.2.3 et plus récent sur plate-forme Windows.



Différences avec Perl

Les différences avec Perl 5.005 sont présentées ici :

  1. Par défaut, un caractère d'espacement correspond à n'importe quel caractère que la fonction C isspace() reconnaît, bien qu'il soit possible de recompiler la bibliothèque PCRE avec d'autres tables de caractères. Normalement, isspace() retourne TRUE pour les espaces, les retours chariot, les nouvelles lignes, les formfeed, les tabulations verticales et horizontales. Perl 5 n'accepte plus la tabulation verticale comme caractère d'espacement. La séquence \v qui était dans la documentation Perl depuis longtemps n'a jamais été reconnue. Cependant, la tabulation verticale elle-même était reconnue comme un caractère d'espacement jusqu'à la version 5.002. Avec les versions 5.004 et 5.005, l'option \s l'ignore.
  2. PRCE ne tolère pas la répétition de quantificateurs dans les expressions. Perl le permet, mais cela ne signifie pas ce que vous pourriez penser. Par exemple, (?!a){3} ne s'interprète pas : les trois caractères suivants ne sont pas des "a". En fait, cela s'interprète comme : le caractère suivant n'est pas "a" trois fois.
  3. Les occurrences de sous-masques qui interviennent dans des assertions négatives sont comptées, mais elles ne sont pas enregistrées dans le vecteur d'occurrences. Perl modifie ses variables numériques pour toutes les occurrences de sous-masque, avant que l'assertion ne vérifie le masque entier, et uniquement si les sous-masques ne trouvent qu'une seule occurrence.
  4. Bien que les caractères nul soient tolérés dans la chaîne de recherche, ils ne sont pas acceptés dans le masque, car le masque est utilisé comme une chaîne C standard, terminée par le caractère nul. Il faut donc utiliser la séquence d'échappement "\x00" dans le masque pour rechercher les caractères nul.
  5. Les séquences d'échappement suivantes ne sont pas supportées par Perl : \l, \u, \L, \U. En fait, elles sont implémentées par la gestion intrinsèque de chaînes Perl, et ne font pas partie de ses caractères spéciaux.
  6. L'assertion \G du Perl n'est pas supportée car elle n'est pas pertinente pour faire des recherches avec des masques uniques.
  7. De manière assez évidente, PCRE n'accepte pas la construction (?{code}) et (??{code}). Cependant, les masques récursifs sont supportés.
  8. Au moment de l'écriture de PCRE, Perl 5.005_02 avait quelques comportements étranges avec la capture des chaînes lorsqu'une partie du masque est redoublée. Par exemple, "aba" avec le masque /^(a(b)?)+$/ va affecter à $2 la valeur "b", mais la même manipulation avec "aabbaa" et /^(aa(bb)?)+$/ laissera $2 vide. Cependant, si le masque est remplacé par /^(aa(b(b))?)+$/ alors $2 (et d'ailleurs $3) seront correctement affectés. Avec le Perl 5.004, $2 sera correctement affecté dans les deux cas, et c'est aussi vrai avec PCRE. Si Perl évolue vers un autre comportement cohérent, PCRE s'adaptera probablement.
  9. Une autre différence encore non résolue est le fait qu'en Perl 5.005_02 le masque /^(a)?(?(1)a|b)+$/ accepte la chaîne "a", tandis que PCRE ne l'accepte pas. Cependant, que ce soit avec Perl ou PCRE /^(a)?a/ et "a" laisseront $1 vide.
  10. PCRE propose quelques extensions aux expressions rationnelles du Perl.

    1. (a) Bien que les assertions arrières (lookbehind) soient obligées de rechercher une chaîne de longueur fixe, toutes les assertions arrières peuvent avoir une longueur différente. Perl 5.005 leur impose d'avoir toutes la même longueur.
    2. (b) Si PCRE_DOLLAR_ENDONLY est activé, et que PCRE_MULTILINE ne l'est pas, le métacaractère $ ne s'applique qu'à la fin physique de la chaîne, et non pas avant les caractères de nouvelle ligne.
    3. (c) Si PCRE_EXTRA est activé, un antislash suivi d'une lettre sans signification spéciale est considéré comme une erreur.
    4. (d) Si PCRE_UNGREEDY est activé, la "gourmandise" des quantificateurs de répétition est inversée, ce qui est rend non gourmand par défaut, mais s'ils sont suivis de ?, il seront gourmands.



Differences avec les regex POSIX

Depuis PHP 5.3.0, l'extension des Regex POSIX est obsolète. Il y a un certain nombre de différences entre les regex POSIX et PCRE. Cette page liste les plus remarquables qu'il faut connaitre pour passer de l'un à lautre.

  1. Les fonctions PCRE demandent à ce que le motif soit entouré de délimiteurs.
  2. A la différence de POSIX, l'extension PCRE n'a pas de fonctions dédiées à la correspondance insensible à la casse. Au lieu de cela, il faut utiliser modificateur /i. D'autres modificateurs sont aussi disponibles.
  3. Les fonctions POSIX trouvent l'occurence la plus longue en partant de la gauche, mais PCRE s'arrête dès correspondance avec la première occurence. Si la chaine n'a aucune correspondance, cela ne crée pas de différence mais si il y a correspondance, cela peut avoir des effets dramatiques sur le resultat trouvé et le temps de recherche du motif. Pour illustrer cette différence, considérons l'exemple suivant tiré de "Mastering Regular Expressions" par Jeffrey Friedl. L'utilisation du motif one(self)?(selfsufficient)? sur la chaine oneselfsufficient avec PCRE donnera un résultat oneself, mais avec POSIX le résultat sera toute la chaine oneselfsufficient. Les deux sous-chaines correspondent à la chaine originale, mais POSIX utilise la plus longue comme résultat.

Remplacements de fonctions
POSIX PCRE
ereg_replace() preg_replace()
ereg() preg_match()
eregi_replace() preg_replace()
eregi() preg_match()
split() preg_split()
spliti() preg_split()
sql_regcase() No equivalent




Fonctions PCRE


preg_filter

(PHP 5 >= 5.3.0)

preg_filterRecherche et remplace avec une expression rationnelle

Description

mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

preg_filter() est identique à preg_replace(), mais elle ne fait que retourner les occurrences trouvées (éventuellement transformées). Pour plus de détails sur le fonctionnement de cette fonction, voyez preg_replace().

Valeurs de retour

Retourne un tableau si le paramètre subject est de type tableau ou une chaîne de caractères autrement.

Si aucune corrurence n'est trouvée ou si une erreur survient, un tableau vide sera retourné lorsque le paramètre subject est un tableau ou NULL sinon.

Exemples

Exemple #1 Exemple de comparaison de preg_filter() avec preg_replace()

<?php
$subject 
= array('1''a''2''b''3''A''B''4'); 
$pattern = array('/\d/''/[a-z]/''/[1a]/'); 
$replace = array('A:$0''B:$0''C:$0'); 

echo 
"preg_filter renvoie\n";
print_r(preg_filter($pattern$replace$subject)); 

echo 
"preg_replace renvoie\n";
print_r(preg_replace($pattern$replace$subject)); 
?>

L'exemple ci-dessus va afficher :

preg_filter renvoie
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
preg_replace renvoie
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [5] => A
    [6] => B
    [7] => A:4
)

Voir aussi



preg_grep

(PHP 4, PHP 5)

preg_grepRetourne un tableau avec les résultats de la recherche

Description

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )

preg_grep() retourne un tableau qui contient les éléments de input qui satisfont le masque pattern.

Liste de paramètres

pattern

Le motif à chercher, sous la forme d'une chaîne de caractères.

input

Le tableau d'entrée.

flags

Si cette option vaut PREG_GREP_INVERT, cette fonction retourne les éléments du tableau input qui ne correspondent pas au motif pattern.

Valeurs de retour

Retourne un tableau indexé, en utilisant les clé du tableau input d'entrée.

Historique

Version Description
4.2.0 Le paramètre flags a été ajouté.
4.0.4

Depuis cette version, le tableau retourné est indexé en utilisant les clés issues du tableau input.

Pour obtenir l'ancien comportement, utilisez la fonction array_values() sur le tableau retourné afin de réindexer les valeurs.

Exemples

Exemple #1 Exemple avec preg_grep()

<?php
// Recherche les nombres à virgule flottante dans le tableau
$fl_array preg_grep("/^(\d+)?\.\d+$/"$array);
?>

Voir aussi



preg_last_error

(PHP 5 >= 5.2.0)

preg_last_errorRetourne le code erreur de la dernière expression PCRE exécutée

Description

int preg_last_error ( void )

Retourne le code erreur de la dernière regex PCRE exécutée.

Exemple #1 Exemple avec preg_last_error()

<?php

preg_match
('/(?:\D+|<\d+>)*[!?]/''foobar foobar foobar');

if (
preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 
'Backtrack limit was exhausted!';
}

?>

L'exemple ci-dessus va afficher :

Backtrack limit was exhausted!

Valeurs de retour

Retourne une des constantes suivantes (expliquées sur cette page):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (voir aussi pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (voir aussi pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (depuis PHP 5.3.0)



preg_match_all

(PHP 4, PHP 5)

preg_match_allExpression rationnelle globale

Description

int preg_match_all ( string $pattern , string $subject , array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]] )

Analyse subject pour trouver l'expression pattern et met les résultats dans matches, dans l'ordre spécifié par flags.

Après avoir trouvé un premier résultat, la recherche continue jusqu'à la fin de la chaîne.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

subject

La chaîne d'entrée.

matches

Tableau contenant tous les résultats, dans un tableau multidimensionnel ordonné suivant le paramètre flags.

flags

Peut prendre une des deux valeurs suivantes (notez bien qu'il est incohérent d'utiliser PREG_PATTERN_ORDER avec PREG_SET_ORDER ) :

PREG_PATTERN_ORDER

L'ordre est tel que $matches[0] est un tableau qui contient les résultats qui satisfont le masque complet, $matches[1] est un tableau qui contient les résultats qui satisfont la première parenthèse capturante, etc.

<?php
preg_match_all
("|<[^>]+>(.*)</[^>]+>|U",
    
"<b>exemple : </b><div align=left>ceci est un test</div>",
    
$outPREG_PATTERN_ORDER);
echo 
$out[0][0] . ", " $out[0][1] . "\n";
echo 
$out[1][0] . ", " $out[1][1] . "\n";
?>

L'exemple ci-dessus va afficher :

<b>exemple : </b>, <div align=left>ceci est un test</div>
exemple : , ceci est un test

Ainsi, $out[0] est un tableau qui contient les résultats qui satisfont le masque complet, et $out[1] est un tableau qui contient les balises entre > et <.

PREG_SET_ORDER

Les résultats sont classés de telle façon que $matches[0] contient la première série de résultats, $matches[1] contient la deuxième, etc.

<?php
preg_match_all
("|<[^>]+>(.*)</[^>]+>|U",
    
"<b>exemple : </b><div align=\"left\">ceci est un test</div>",
    
$outPREG_SET_ORDER);
echo 
$out[0][0] . ", " $out[0][1] . "\n";
echo 
$out[1][0] . ", " $out[1][1] . "\n";
?>

L'exemple ci-dessus va afficher :

<b>exemple : </b>, exemple :
<div align="left">ceci est un test</div>, ceci est un test

PREG_OFFSET_CAPTURE

Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie le format de la valeur retournée, puisque chaque élément de réponse devient un tableau contenant la sous-chaîne résultat à l'index 0 et l'index de celle-ci dans la chaîne subject à l'index 1.

Si order est omis, PREG_PATTERN_ORDER est utilisé par défaut.

offset

Normalement, la recherche commence au début de la chaîne subject. Le paramètre optionnel offset peut être utilisé pour spécifier une position pour le début de la recherche (en octets).

Note:

Utiliser le paramètre offset ne revient pas à passer substr($subject, $offset) à preg_match_all() à la place de la chaîne subject, car pattern peut contenir des assertions comme ^, $ ou (?<=x). Lisez la documentation sur la fonction preg_match() pour des exemples.

Valeurs de retour

Retourne le nombre de résultats qui satisfont le masque complet, ou FALSE si une erreur survient.

Historique

Version Description
5.4.0 Le paramètre matches devient optionnel.
5.2.2 Les sous-masques nommés acceptent maintenant les syntaxes (?<name>), (?'name') ainsi que (?P<name>). Les précédentes versions n'acceptaient que la syntaxe (?P<name>).
4.3.3 Le paramètre offset a été ajouté.
4.3.0 Le drapeau PREG_OFFSET_CAPTURE a été ajouté.

Exemples

Exemple #1 Extraction de tous les numéros de téléphone d'un texte

<?php
preg_match_all
("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                
"Call 555-1212 or 1-800-555-1212"$phones);
?>

Exemple #2 Recherche les couples de balises HTML (gourmand)

<?php
// Cet exemple utilise les références arrières (\\2).
// Elles indiquent à l'analyseur qu'il doit trouver quelque chose qu'il
// a déjà repéré un peu plus tôt
// le nombre 2 indique que c'est le deuxième jeu de parenthèses
// capturante qui doit être utilisé (ici, ([\w]+)).
// L'antislash est nécessaire ici, car la chaîne est entre guillemets doubles

$html "<b>texte en gras</b><a href=howdy.html>cliquez moi</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/"$html$matchesPREG_SET_ORDER);

foreach (
$matches as $val) {
    echo 
"matched: " $val[0] . "\n";
    echo 
"part 1: " $val[1] . "\n";
    echo 
"part 2: " $val[2] . "\n";
    echo 
"part 3: " $val[3] . "\n";
    echo 
"part 4: " $val[4] . "\n\n";
}
?>

L'exemple ci-dessus va afficher :

matched: <b>texte en gras</b>
part 2: b
part 3: texte en gras
part 4: </b>

matched: <a href=howdy.html>cliquez moi</a>
part 1: <a href=howdy.html>
part 2: a
part 3: cliquez moi
part 4: </a>

Exemple #3 Utilisation d'un sous-masque nommé

<?php

$str 
= <<<FOO
a: 1
b: 2
c: 3
FOO;

preg_match_all('/(?P<name>\w+): (?P<digit>\d+)/'$str$matches);

/* Ceci fonctionne également en PHP 5.2.2 (PCRE 7.0) et suivants,
 * cependant, la forme ci-dessous est recommandée pour des raisons
 * de compatibilités ascendantes */
// preg_match_all('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => a: 1
            [1] => b: 2
            [2] => c: 3
        )

    [name] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [digit] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

)

Voir aussi



preg_match

(PHP 4, PHP 5)

preg_matchExpression rationnelle standard

Description

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Analyse subject pour trouver l'expression qui correspond à pattern.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

subject

La chaîne d'entrée.

matches

Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.

flags

Le paramètre flags peut prendre l'une des valeurs suivantes :

PREG_OFFSET_CAPTURE
Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie la valeur de matches qui devient un tableau dont chaque élément est un tableau contenant la chaîne correspondant au masque à l'offset 0 ainsi que l'offset de la chaîne dans subject à l'offset 1.

offset

Normalement, la recherche commence au début de la chaîne subject. Le paramètre optionnel offset peut être utilisé pour spécifier une position pour le début de la recherche (en octets).

Note:

Utiliser le paramètre offset ne revient pas à passer substr($subject, $offset) à preg_match_all() à la place de la chaîne subject, car pattern peut contenir des assertions comme ^, $ ou (?<=x). Comparez :

<?php
$subject 
"abcdef";
$pattern '/^def/';
preg_match($pattern$subject$matchesPREG_OFFSET_CAPTURE3);
print_r($matches);
?>

L'exemple ci-dessus va afficher :

Array
(
)

avec cet exemple :

<?php
$subject 
"abcdef";
$pattern '/^def/';
preg_match($patternsubstr($subject,3), $matchesPREG_OFFSET_CAPTURE);
print_r($matches);
?>

produira :

Array
(
    [0] => Array
        (
            [0] => def
            [1] => 0
        )

)

Valeurs de retour

preg_match() retourne le nombre de fois où le masque pattern a été trouvé. Cela peut aller de 0 (pas de solution) à un 1 car preg_match() s'arrête dès qu'elle a trouvé une première solution. preg_match_all(), au contraire, va continuer jusqu'à la fin de la chaîne subject. preg_match() retourne FALSE si une erreur survient.

Historique

Version Description
5.2.2 Les sous-masques nommés acceptent maintenant la syntaxe (?<name>) et (?'name') mais aussi (?P<name>). Les anciennes versions n'acceptaient que la syntaxe (?P<name>).
4.3.3 Le paramètre offset a été ajouté.
4.3.0 Le drapeau PREG_OFFSET_CAPTURE a été ajouté.
4.3.0 Le paramètre flags a été ajouté.

Exemples

Exemple #1 Trouve la chaîne "php"

<?php
// Le "i" après le délimiteur du pattern indique que la recherche ne sera pas sensible à la casse
if (preg_match("/php/i""PHP est le meilleur langage de script du web.")) {
    echo 
"Un résultat a été trouvé.";
} else {
    echo 
"Aucun résultat n'a été trouvé.";
}
?>

Exemple #2 Trouve le mot "web"

<?php
/* \b, dans le masque, indique une limite de mot, de façon à ce que le mot
 "web" uniquement soit repéré, et pas seulement des parties de mots comme
  dans "webbing" ou "cobweb" */
if (preg_match("/\bweb\b/i""PHP est le meilleur langage de script du web.")) {
    echo 
"Le mot a été trouvé.";
} else {
    echo 
"Le mot n'a pas été trouvé.";
}

if (
preg_match("/\bweb\b/i""PHP est le meilleur langage de script du web.")) {
    echo 
"Le mot a été trouvé.";
} else {
    echo 
"Le mot n'a pas été trouvé.";
}
?>

Exemple #3 Lire un nom de domaine dans une URL

<?php
// repérer le nom de l'hôte dans l'URL
preg_match('@^(?:http://)?([^/]+)@i',
    
"http://www.php.net/index.html"$matches);
$host $matches[1];

// repérer les deux derniers segments du nom de l'hôte
preg_match('/[^.]+\.[^.]+$/'$host$matches);
echo 
"Le nom de domaine est : {$matches[0]}\n";
?>

L'exemple ci-dessus va afficher :

Le nom de domaine est : php.net

Exemple #4 Utilisation des sous-masques nommés

<?php

$str 
'foobar: 2008';

preg_match('/(?P<name>\w+): (?P<digit>\d+)/'$str$matches);

/* Ceci fonctionne également en PHP 5.2.2 (PCRE 7.0) et suivants,
 * cependant, la syntaxe ci-dessous est recommandée pour des raisons
 * de compatibilités ascendantes */
// preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

Notes

Astuce

N'utilisez pas preg_match() si vous voulez uniquement savoir si une chaîne est contenue dans une autre. Utilisez dans ce cas les fonctions strpos() ou strstr(), qui sont beaucoup plus rapides.

Voir aussi



preg_quote

(PHP 4, PHP 5)

preg_quoteProtection des caractères spéciaux des expressions rationnelles

Description

string preg_quote ( string $str [, string $delimiter = NULL ] )

preg_quote() ajoute un antislash devant tous les caractères de la chaîne str. Cela est très utile si vous avez une chaîne qui va servir de masque, mais qui est générée durant l'exécution.

Les caractères spéciaux qui seront protégés sont les suivants : . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

Liste de paramètres

str

La chaîne d'entrée.

delimiter

Si l'argument optionnel delimiter est fourni, il sera aussi échappé. Ceci est pratique pour échapper le délimiteur requis par les fonctions PCRE. Le slash / est le délimiteur le plus répandu.

Valeurs de retour

Retourne la chaîne protégée.

Historique

Version Description
5.3.0 Le caractère - est maintenant protégé.

Exemples

Exemple #1 Exemple avec preg_quote()

<?php
$keywords 
'$40 pour un g3/400';
$keywords preg_quote($keywords'/');
echo 
$keywords// retourne \$40 pour un g3\/400
?>

Exemple #2 Mise en italique d'un mot dans un texte

<?php
// Dans cet exemple, preg_quote($word) sert à éviter que les astérisques
// prennent une valeur particulière dans l'expression rationnelle.

$textbody "Ce livre est *très* difficile à trouver.";
$word "*très*";
$textbody preg_replace ("/" preg_quote($word) . "/",
                          
"<i>" $word "</i>",
                          
$textbody);
?>

Notes

Note: Cette fonction gère les chaînes binaires.



preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callbackRechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback

Description

mixed preg_replace_callback ( mixed $pattern , callback $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

Le comportement de preg_replace_callback() est presque identique à celui de preg_replace(), hormis le fait qu'à la place du paramètre replacement, il faut spécifier une fonction de rappel callback qui sera appelée, avec les éléments trouvés en arguments.

Liste de paramètres

pattern

Le masque à chercher. Il peut être une chaîne de caractères ou un tableau contenant des chaînes.

callback

La fonction de rappel qui recevra le tableau d'éléments trouvés dans la chaîne subject. La fonction de rappel doit retourner la chaîne de remplacement.

Vous aurez souvent besoin de la fonction callback avec preg_replace_callback() à un seul endroit. Dans ce cas, vous pouvez simplement utiliser une fonction anonyme (depuis PHP 5.3.0) ou la fonction create_function() pour déclarer une fonction anonyme comme fonction de rappel pour preg_replace_callback(). En faisant cela, vous concentrez toutes les routines liées à votre remplacement à un seul endroit, et nous ne polluez par votre espace de noms de fonctions avec des fonctions à usage unique.

Exemple #1 preg_replace_callback() et create_function()

<?php
// Un filtre de ligne de commande Unix pour convertir les lettres
// en majuscule de début des paragraphe en minuscules

$fp fopen("php://stdin""r") or die("Impossible de lire la ligne de commande");
while (!
feof($fp)) {
    
$line fgets($fp);
    
$line preg_replace_callback(
        
'|<p>\s*\w|',
        
create_function(
            
// Les guillemets simples sont très importants ici
            // ou bien il faut protéger les caractères $ avec \$
            
'$matches',
            
'return strtolower($matches[0]);'
        
),
        
$line
    
);
    echo 
$line;
}
fclose($fp);
?>

subject

La chaîne ou le tableau de chaînes à chercher et à remplacer.

limit

Le nombre maximal de remplacement pour chaque masque dans chaque chaîne subject. Vaut par défaut -1 (aucune limite).

count

Si fournie, cette variable sera remplie avec le nombre de remplacements effectués.

Valeurs de retour

preg_replace_callback() retourne un tableau si le paramètre subject est un tableau, ou, sinon, une chaîne de caractères. Si une erreur survient, la valeur retournée sera NULL.

Si des correspondances sont trouvées, le nouveau sujet sera retourné, sinon le paramètre subject sera retourné, inchangé.

Historique

Version Description
5.1.0 Le paramètre count a été ajouté.

Exemples

Exemple #2 Exemple avec preg_replace_callback()

<?php
// Ce texte était vrai en 2002
// nous voulons le mettre a jour pour 2003
$text "Le premier avril est le 04/01/2002\n";
$text.= "Le dernier noël était le 12/24/2001\n";

// Fonction de callback
function next_year($matches)
{
  
// comme d'habitude : $matches[0] représente la valeur totale
  // $matches[1] représente la première parenthèse capturante
  
return $matches[1].($matches[2]+1);
}
echo 
preg_replace_callback(
            
"|(\d{2}/\d{2}/)(\d{4})|",
            
"next_year",
            
$text);

?>

L'exemple ci-dessus va afficher :

Le premier avril est le 04/01/2003
Le dernier noël était le 12/24/2002

Exemple #3 Exemple avec preg_replace_callback() en utilisant une structure récursive pour gérer du BB code

<?php
$input 
"plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";

function 
parseTagsRecursive($input)
{

    
$regex '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

    if (
is_array($input)) {
        
$input '<div style="margin-left: 10px">'.$input[1].'</div>';
    }

    return 
preg_replace_callback($regex'parseTagsRecursive'$input);
}

$output parseTagsRecursive($input);

echo 
$output;
?>

Voir aussi



preg_replace

(PHP 4, PHP 5)

preg_replaceRechercher et remplacer par expression rationnelle standard

Description

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

Analyse subject pour trouver l'expression rationnelle pattern et remplace les résultats par replacement.

Liste de paramètres

pattern

Le masque à chercher. Il peut être une chaîne ou un tableau de chaînes.

Plusieurs modificateurs PCRE sont également disponibles, incluant 'e' (PREG_REPLACE_EVAL), qui est spécifique à cette fonction.

replacement

La chaîne ou un tableau de chaînes pour le remplacement. Si ce paramètre est une chaîne et le paramètre pattern est un tableau, tous les masques seront remplacés par cette chaîne. Si les paramètres pattern et replacement sont des tableaux, chaque pattern sera remplacé son replacement associé. Si replacement à moins d'éléments que pattern, alors une chaîne vide est utilisée pour le reste des valeurs. Pour utiliser les antislashs dans le masque, vous devez les doubler ("\\\\").

replacement peut contenir des références de la forme \\n ou, (depuis PHP 4.0.4) $n. Cette dernière forme est recommandée. Ces références seront remplacées par le texte capturé par la n-ième parenthèse capturante du masque. n peut prendre des valeurs de 0 à 99, et \\0 ou $0, correspondent au texte de qui satisfait le masque complet. Les parenthèses ouvrantes sont comptées de gauche à droite (en commençant à 1) pour déterminer le numéro de parenthèse capturante.

Lorsque vous travaillez avec un masque de remplacement où une référence arrière est directement suivie par un nombre (i.e.: placer un nombre littéral immédiatement après une référence arrière), vous ne pouvez pas utiliser la syntaxe classique \\1 pour la référence arrière. \\11, par exemple, sera confus pour la fonction preg_replace() dans le sens où elle ne saura pas si vous désirez la référence arrière \\1 suivi du nombre 1 ou si vous désirez la référence arrière \\11 suivi de "rien". Dans ce cas, la solution est d'utiliser la syntaxe \${1}1. Cela créera une référence arrière isolée $1, suivi du nombre littéral 1.

Lorsque vous utilisez l'option e, cette fonction échappe quelques caractères (', ", \ et NULL) dans la chaîne qui remplace les références arrières. Ce comportement se justifie afin d'assurer qu'aucune erreur de syntaxe ne survient lors de l'utilisation des références arrières avec des guillemets simples et doubles (e.g. 'strlen(\'$1\')+strlen("$2")'). Assurez-vous d'être familier avec la syntaxe des chaînes afin de savoir exactement à quoi la chaîne interprétée doit ressembler.

subject

La chaîne ou le tableau contenant des chaînes à chercher et à remplacer.

Si subject est un tableau, alors l'opération sera appliquée à chacun des éléments du tableau, et le tableau sera retourné.

limit

Le nombre maximal de remplacement pour chaque masque dans chaque chaîne subject. Par défaut, vaut -1 (aucune limite).

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

preg_replace() retourne un tableau si le paramètre subject est un tableau, ou une chaîne sinon.

Si des correspondances sont trouvées, le nouveau subject sera retourné, sinon subject sera retourné à l'identique, ou NULL si une erreur survient.

Historique

Version Description
5.1.0 Ajout du paramètre count
4.0.4 Ajout de la forme '$n' pour le paramètre replacement
4.0.1 Ajout du paramètre limit

Exemples

Exemple #1 Utilisation des références arrières avec des littéraux numériques

<?php
$string 
'April 15, 2003';
$pattern '/(\w+) (\d+), (\d+)/i';
$replacement '${1}1,$3';
echo 
preg_replace($pattern$replacement$string);
?>

L'exemple ci-dessus va afficher :

April1,2003

Exemple #2 Utilisation de tableaux indexé avec preg_replace()

<?php
$string 
'Le renard marron agile saute par dessus le chien paresseux.';
$patterns = array();
$patterns[0] = '/agile/';
$patterns[1] = '/marron/';
$patterns[2] = '/renard/';
$replacements = array();
$replacements[2] = 'grizzly';
$replacements[1] = 'brun';
$replacements[0] = 'lent';
echo 
preg_replace($patterns$replacements$string);
?>

L'exemple ci-dessus va afficher :

Le grizzly brun lent saute par dessus le chien paresseux.

En triant les masques et les remplacements, vous devriez obtenir le résultat escompté.

<?php
ksort
($patterns);
ksort($replacements);
echo 
preg_replace($patterns$replacements$string);
?>

L'exemple ci-dessus va afficher :

Le lent grizzly brun saute par dessus le chien paresseux.

Exemple #3 Remplacement de plusieurs valeurs simultanément

<?php
$patterns 
= array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
                   
'/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2''$\1 =');
echo 
preg_replace($patterns$replace'{startDate} = 1999-5-27');
?>

L'exemple ci-dessus va afficher :

$startDate = 5/27/1999

Exemple #4 Utilisation de l'option 'e'

<?php
preg_replace
("/(<\/?)(\w+)([^>]*>)/e"
             
"'\\1'.strtoupper('\\2').'\\3'"
             
$html_body);
?>

Cela va mettre en majuscule toutes les balises HTML du texte.

Exemple #5 Suppression des espaces

Cet exemple supprime les espaces en trop dans une chaîne.

<?php
$str 
'foo   o';
$str preg_replace('/\s\s+/'' '$str);
// Affichera 'foo o'
echo $str;
?>

Exemple #6 Utilisation du paramètre count

<?php
$count 
0;

echo 
preg_replace(array('/\d/''/\s/'), '*''xp 4 to', -$count);
echo 
$count//3
?>

L'exemple ci-dessus va afficher :

xp***to
3

Notes

Note:

Lorsque vous utilisez des tableaux avec les paramètres pattern et replacement, les clés sont traitées dans l'ordre dans lequel elles apparaissent dans le tableau. Ce n'est pas forcément la même chose que l'ordre des index numériques. Si vous utilisez des index pour identifier quel pattern doit être replacé par quel replacement, il est recommandé de faire un tri ksort() sur chaque tableau avant de faire appel à preg_replace().

Voir aussi



preg_split

(PHP 4, PHP 5)

preg_splitÉclate une chaîne par expression rationnelle

Description

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

Éclate une chaîne par expression rationnelle.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

subject

La chaîne d'entrée.

limit

Si limit est spécifié, alors seules les limit premières sous-chaînes sont retournées avec le reste de la chaîne placé dans la dernière sous-chaîne. Si vous définissez le paramètre limit à -1, 0, ou NULL, cela signifie "aucune limite" et, vous pouvez utiliser la valeur NULL pour ignorer le paramètre flags.

flags

flags peut être la combinaison des options suivantes (combinées avec l'opérateur |):

PREG_SPLIT_NO_EMPTY
Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().
PREG_SPLIT_DELIM_CAPTURE
Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées.
PREG_SPLIT_OFFSET_CAPTURE

Si cette option est activée, pour chaque résultat, la position de celui-ci sera retournée. Notez que cela change la valeur retournée en un tableau où chaque élément est un tableau constitué de la chaîne trouvée à la position 0 et la position de la chaîne dans subject à la position 1.

Valeurs de retour

Retourne un tableau contenant les sous-chaînes de subject, séparées par les chaînes qui vérifient pattern.

Historique

Version Description
4.3.0 Le drapeau PREG_SPLIT_OFFSET_CAPTURE a été ajouté.
4.0.5 Le drapeau PREG_SPLIT_DELIM_CAPTURE a été ajouté.

Exemples

Exemple #1 Exemple avec preg_split() : Éclatement d'une chaîne de recherche

<?php
// scinde la phrase grâce aux virgules et espacements
// ce qui inclus les " ", \r, \t, \n et \f
$keywords preg_split("/[\s,]+/""langage hypertexte, programmation");
?>

Exemple #2 Scinder une chaîne en caractères

<?php
$str 
'string';
$chars preg_split('//'$str, -1PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Exemple #3 Scinde une chaîne et capture les positions

<?php
$str 
'langage hypertexte, programmation';
$chars preg_split('/ /'$str, -1PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => langage
            [1] => 0
        )

    [1] => Array
        (
            [0] => hypertexte,
            [1] => 8
        )

    [2] => Array
        (
            [0] => programmation
            [1] => 20
        )

)

Notes

Astuce

Si vous n'avez pas besoin de la puissance des expressions régulières, vous pouvez choisir des alternatives plus rapides (quoique plus simples) comme explode() ou str_split().

Voir aussi


Sommaire

  • preg_filter — Recherche et remplace avec une expression rationnelle
  • preg_grep — Retourne un tableau avec les résultats de la recherche
  • preg_last_error — Retourne le code erreur de la dernière expression PCRE exécutée
  • preg_match_all — Expression rationnelle globale
  • preg_match — Expression rationnelle standard
  • preg_quote — Protection des caractères spéciaux des expressions rationnelles
  • preg_replace_callback — Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
  • preg_replace — Rechercher et remplacer par expression rationnelle standard
  • preg_split — Éclate une chaîne par expression rationnelle



Expressions rationnelles


Introduction

Astuce

PHP supporte aussi des expressions rationnelles compatibles Perl, avec l'extension PCRE functions. Ces fonctions supportent des recherches non-gourmandes, des assertions, des sous-masques conditionnels et toute une gamme de fonctionnalités absentes des expressions rationnelles POSIX.

Avertissement

Ces expressions rationnelles ne sont pas compatibles avec les données binaires. Les expressions PCRE le sont.

Note:

Depuis PHP 5.3.0, cette extension est obsolète ; l'appel à n'importe quelle fonction de cette extension émettra une alerte de type E_DEPRECATED.

Les expressions rationnelles sont utilisées pour de complexes manipulations sur les chaînes de caractères. PHP utilise les expressions rationnelles avancées de POSIX (POSIX 1003.2). Pour avoir tous les détails sur ces expressions, reportez-vous aux » pages de manuel incluses dans le répertoire de la distribution PHP. Elles sont au format manpage : pour les lire, vous devrez utiliser la ligne de commande man /usr/local/src/regex/regex.7.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Avertissement

Ne changez pas la valeur de TYPE à moins que vous ne sachiez ce que vous faites.

Pour activer le support des expressions rationnelles en PHP vous devez compiler PHP avec l'option --with-regex[=TYPE] . TYPE peut prendre l'une des valeurs suivantes : "system", "apache", "php". La valeur par défaut est "php".

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Exemple #1 Exemples d'expressions rationnelles

<?php
/* Retourne true si "abc"
   est trouvé quelque part dans la chaîne $string. */
ereg("abc"$string);

/* Retourne true si  "abc"
   est trouvé au début de la chaîne $string. */
ereg("^abc"$string);

/* Retourne true si  "abc"
   est trouvé à la fin de la chaîne  $string. */
ereg("abc$"$string);

/* Retourne true si  le client
   est Netscape 2, 3 ou MSIE 3. */
eregi("(ozilla.[23]|MSIE.3)"$_SERVER["HTTP_USER_AGENT"]);

/* Recherche trois mots séparés par des espaces
   dans les chaînes $regs[1], $regs[2] et $regs[3]. */
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)"$string$regs); 

/* Insère une balise <br /> au début de la chaîne $string. */
$string ereg_replace("^""<br />"$string);

/* Insère une balise <br /> à la fin de la chaîne $string. */
$string ereg_replace("$""<br />"$string);

/* Supprime toutes les nouvelles lignes de $string. */
$string ereg_replace("\n"""$string);
?>



Fonctions POSIX Regex

Voir aussi

Pour des expressions rationnelles compatibles Perl, voyez l'extension PCRE. Les commandes de recherche plus simples (avec support des caractères jokers) sont fournies par la fonction fnmatch().


ereg_replace

(PHP 4, PHP 5)

ereg_replace>Remplacement par expression rationnelle

Description

string ereg_replace ( string $pattern , string $replacement , string $string )

Cette fonction effectue une recherche par expression rationnelle dans la chaîne string en recherchant les occurrences de pattern, puis les remplace par la chaîne replacement.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

pattern

Une expression rationnelle POSIX.

replacement

Si pattern contient des parenthèses capturantes, replacement pourra contenir des séquences de la forme \\digit, qui seront remplacées par le texte capturé par la parenthèse capturante numéro digit. \\0 correspond à la chaîne originale complète. De 0 à 9 parenthèses capturantes peuvent être utilisées. Les parenthèses peuvent être imbriquées, et leur numéro d'ordre est défini par leurs parenthèses ouvrantes.

string

La chaîne d'entrée.

Valeurs de retour

La chaîne modifiée est retournée. (Ce qui signifie que la chaîne originale sera retournée si aucune occurrence n'est trouvée.)

Exemples

Par exemple, le code suivant affiche "Ceci est un test" trois fois :

Exemple #1 Exemple avec ereg_replace()

<?php

$string 
"This is a test";
echo 
str_replace(" is"" was"$string);
echo 
ereg_replace("( )is""\\1was"$string);
echo 
ereg_replace("(( )is)""\\2was"$string);

?>

Il est à noter que si vous utilisez une valeur entière avec replacement, vous n'obtiendrez pas le résultat escompté, car ereg_replace() interprétera le nombre comme la valeur ordinale d'un caractère et l'appliquera. Par exemple :

Exemple #2 Exemple avec ereg_replace()

<?php
/* Ceci ne fonctionne pas comme attendu */
$num 4;
$string "This string has four words.";
$string ereg_replace('four'$num$string);
echo 
$string;   /* Affiche : 'This string has   words.' */

/* Ceci fonctionne comme attendu */
$num '4';
$string "This string has four words.";
$string ereg_replace('four'$num$string);
echo 
$string;   /* Affiche : 'This string has 4 words.' */
?>

Exemple #3 Remplacer les URL par des liens cliquables

<?php
$text 
ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     
"<a href=\"\\0\">\\0</a>"$text);
?>

Notes

Note:

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED. Voir la liste des différences pour vous aider dans la conversion en PCRE.

Astuce

preg_replace(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg_replace().

Voir aussi

  • ereg() - Recherche par expression rationnelle standard
  • eregi() - Recherche par expression rationnelle insensible à la casse
  • eregi_replace() - Remplacement par expression rationnelle insensible à la casse
  • str_replace() - Remplace toutes les occurrences dans une chaîne
  • preg_match() - Expression rationnelle standard



ereg

(PHP 4, PHP 5)

eregRecherche par expression rationnelle standard

Description

int ereg ( string $pattern , string $string [, array &$regs ] )

Recherche dans la chaîne string les séquences de caractères qui correspondent au masque pattern, en tenant compte de la casse.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

pattern

Expression rationnelle sensible à la casse.

string

La chaîne d'entrée.

regs

Si au moins une séquence est trouvée (éventuellement dans les parenthèses capturantes de pattern), et que la fonction est appelée avec un troisième argument regs, les résultats seront enregistrés dans regs.

$regs[1] contiendra la première parenthèse capturante (celle qui commence le plus tôt), $regs[2] contiendra la deuxième parenthèse capturante (celle qui commence après la première), et ainsi de suite. $regs[0] contient une copie de la chaîne.

Valeurs de retour

Retourne la longueur de l'occurrence trouvée si une occurrence a été trouvée dans la chaîne string et FALSE dans le cas contraire ou si une erreur est survenue.

Si le paramètre optionnel regs n'est pas passé à la fonction ou si la longueur du paramètre string vaut 0, la fonction retournera 1.

Historique

Version Description
4.1.0 Pour les versions de PHP inférieures ou égales à 4.1.0, $regs sera rempli d'exactement dix éléments, même s'il y a plus ou moins de dix parenthèses capturantes. Cela n'a aucun effet sur ereg() pour chercher plus de sous-chaînes. Si aucun résultat n'est trouvé, $regs ne sera pas altéré par ereg().

Exemples

Exemple #1 Exemple avec ereg()

L'exemple suivant prend une date au format ISO (YYYY-MM-DD) et l'affiche sous la forme DD.MM.YYYY :

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"$date$regs)) {
    echo 
"$regs[3].$regs[2].$regs[1]";
} else {
    echo 
"Format de date invalide : $date";
}
?>

Notes

Note:

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED. Voir la liste des différences pour vous aider dans la conversion en PCRE.

Note:

preg_match(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg().

Voir aussi

  • eregi() - Recherche par expression rationnelle insensible à la casse
  • ereg_replace() - >Remplacement par expression rationnelle
  • eregi_replace() - Remplacement par expression rationnelle insensible à la casse
  • preg_match() - Expression rationnelle standard
  • strpos() - Trouve la position d'un caractère dans une chaîne
  • strstr() - Trouve la première occurrence dans une chaîne
  • quotemeta() - Protège les métacaractères



eregi_replace

(PHP 4, PHP 5)

eregi_replaceRemplacement par expression rationnelle insensible à la casse

Description

string eregi_replace ( string $pattern , string $replacement , string $string )

Cette fonction est identique à ereg_replace(), hormis le fait qu'elle ne tient pas compte de la casse des caractères alphabétiques.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

pattern

Une expression rationnelle POSIX.

replacement

Si pattern contient des sous-masques mis entre parenthèses, replacement contiendra des sous-chaînes, sous la forme \\digit, qui seront remplacées par le texte correspondant au sous-masque mis entre parenthèses ; \\0 correspondra au contenu complet de la chaîne. Il est possible d'utiliser jusqu'à 9 sous-chaînes. Les parenthèses peuvent être imbriquées et seront comptées à partir de la parenthèse ouvrante.

string

La chaîne d'entrée.

Valeurs de retour

La chaîne modifiée est retournée. Si aucune correspondance n'est trouvée dans string, alors elle sera retournée sans aucune modification.

Exemples

Exemple #1 Mise en évidence des résultats de la recherche

<?php
$pattern 
'(>[^<]*)('quotemeta($_GET['search']) .')';
$replacement '\\1<span class="search">\\2</span>';
$body eregi_replace($pattern$replacement$body);
?>

Notes

Note:

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED. Voir la liste des différences pour vous aider dans la conversion en PCRE.

Voir aussi

  • ereg() - Recherche par expression rationnelle standard
  • eregi() - Recherche par expression rationnelle insensible à la casse
  • ereg_replace() - >Remplacement par expression rationnelle



eregi

(PHP 4, PHP 5)

eregiRecherche par expression rationnelle insensible à la casse

Description

int eregi ( string $pattern , string $string [, array &$regs ] )

Cette fonction est identique à ereg(), hormis le fait qu'elle ignore la casse des caractères lors de la recherche sur les caractères alphabétiques.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

pattern

Expression rationnelle insensible à la casse.

string

La chaîne d'entrée.

regs

Si des correspondances sont trouvées pour les sous-masques entre parenthèses de pattern et que la fonction est appelé avec le troisième argument regs, les correspondances seront stockées dans des éléments du tableau regs.

$regs[1] contiendra la sous-chaîne qui commence à la première parenthèse la plus à gauche ; $regs[2], la seconde, et ainsi de suite. $regs[0] contiendra une copie complète de la chaîne matchée.

Valeurs de retour

Retourne la longueur de la chaîne trouvée si une correspondance pour le masque pattern a été trouvée dans string, ou FALSE si aucune correspondance n'a été trouvée ou si une erreur est survenue.

Si le paramètre optionnel regs n'est pas fourni ou si la longueur de la chaîne trouvée vaut 0, cette fonction retourne 1.

Exemples

Exemple #1 Exemple avec eregi()

<?php
$string 
'XYZ';
if (
eregi('z'$string)) {
    echo 
"'$string' contient un 'z' ou un 'Z'!";
}
?>

Notes

Note:

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED. Voir la liste des différences pour vous aider dans la conversion en PCRE.

Voir aussi

  • ereg() - Recherche par expression rationnelle standard
  • ereg_replace() - >Remplacement par expression rationnelle
  • eregi_replace() - Remplacement par expression rationnelle insensible à la casse
  • stripos() - Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
  • stristr() - Version insensible à la casse de strstr



split

(PHP 4, PHP 5)

splitScinde une chaîne en un tableau, grâce à une expression rationnelle

Description

array split ( string $pattern , string $string [, int $limit = -1 ] )

Scinde la chaîne string dans un tableau grâce à une expression rationnelle.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

pattern

Expression rationnelle sensible à la casse.

Si vous voulez utiliser n'importe quel caractère spécial des expressions rationnelles, vous devez les échapper. Si vous pensez que split() (ou toute autre expression rationnelle) se comporte bizarrement, lisez d'abord le fichier regex.7, inclus dans le dossier regex/ de la distribution PHP . Il est au format manpage, et vous pourrez le lire avec une commande telle que man /usr/local/src/regex/regex.7.

string

La chaîne d'entrée.

limit

Si limit est défini, le tableau retourné contiendra un maximum de limit éléments avec le dernier élément contenant le reste de la chaîne string.

Valeurs de retour

Retourne un tableau de chaînes : chacune d'entre elle est une sous-chaîne de string délimitée par les occurrences trouvées de l'expression rationnelle pattern.

S'il y a n occurrences de pattern, le tableau retourné contiendra n+1 éléments. Par exemple, s'il n'y a aucune occurrence de pattern, un tableau d'un seul élément sera retourné. Bien sûr, cela reste vrai si string est une chaîne vide. Si une erreur survient, split() retournera FALSE.

Exemples

Exemple #1 Exemple avec split()

Pour scinder les 4 premiers champs d'une ligne du fichier /etc/passwd :

<?php
list($user$pass$uid$gid$extra) =
    
split(":"$passwd_line5);
?>

Exemple #2 Exemple avec split()

Pour analyser une date qui est délimitée par des /, des points ou des tirets :

<?php
// Les délimiteurs peuvent être des tirets, points ou slash
$date "04/30/1973";
list(
$month$day$year) = split('[/.-]'$date);
echo 
"Mois : $month; Jour : $day; Année : $year<br />\n";
?>

Notes

Note:

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED. Voir la liste des différences pour vous aider dans la conversion en PCRE.

Astuce

preg_split(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide à split(). Si vous n'avez pas besoin de la puissance des expressions rationnelles, il est plus rapide d'utiliser explode(), qui n'utilise pas le moteur d'expressions rationnelles.

Astuce

Pour les utilisateurs qui recherchent le moyen d'émuler la commande Perl @chars = split('', $str), voyez la fonction preg_split() ou la fonction str_split().

Voir aussi

  • preg_split() - Éclate une chaîne par expression rationnelle
  • spliti() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • str_split() - Convertit une chaîne de caractères en tableau
  • explode() - Coupe une chaîne en segments
  • implode() - Rassemble les éléments d'un tableau en une chaîne
  • chunk_split() - Scinde une chaîne
  • wordwrap() - Effectue la césure d'une chaîne



spliti

(PHP 4 >= 4.0.1, PHP 5)

splitiScinde une chaîne en un tableau, grâce à une expression rationnelle

Description

array spliti ( string $pattern , string $string [, int $limit = -1 ] )

Scinde la chaîne string dans un tableau, par expression rationnelle.

Cette fonction est identique à split(), hormis le fait qu'elle ignore la casse pour les caractères alphabétiques.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

pattern

Expression rationnelle insensible à la casse.

Si vous voulez effectuer la césure avec un caractère qui est considéré comme spécial par les expressions rationnelles, vous devez d'abord l'échapper. Si vous pensez que la fonction spliti() (ou tout autre fonction regex) fait quelque chose de bizarre, lisez le fichier regex.7, inclus dans le sous-dossier regex/ de la distribution PHP. Ce fichier est au format man, vous devrez donc utiliser la commande man /usr/local/src/regex/regex.7 pour le lire.

string

La chaîne d'entrée.

limit

Si limit est défini, le tableau retourné contiendra un maximum de limit éléments, dont le dernier élément contient le reste de la chaîne string.

Valeurs de retour

Retourne un tableau de chaînes, dont chaque élément est une sous-chaîne de string, formée par la césure réalisée grâce l'expression rationnelle pattern.

S'il y a n occurrences de pattern, le tableau retourné contiendra n+1 éléments. Par exemple, s'il n'y a pas d'occurrence de pattern, un tableau avec un seul élément sera retourné. Évidemment, ceci est également vrai si la chaîne string est vide. Si une erreur survient, spliti() retourne FALSE.

Exemples

Scinder une chaîne en utilisant la lettre 'a' comme séparateur :

Exemple #1 Exemple avec spliti()

<?php
$string 
"aBBBaCCCADDDaEEEaGGGA";
$chunks spliti ("a"$string5);
print_r($chunks);
?>

L'exemple ci-dessus va afficher :

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

Notes

Note:

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED. Voir la liste des différences pour vous aider dans la conversion en PCRE.

Voir aussi

  • preg_split() - Éclate une chaîne par expression rationnelle
  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • explode() - Coupe une chaîne en segments
  • implode() - Rassemble les éléments d'un tableau en une chaîne



sql_regcase

(PHP 4, PHP 5)

sql_regcasePrépare une expression rationnelle pour effectuer une recherche insensible à la casse

Description

string sql_regcase ( string $string )

Prépare une expression rationnelle pour une recherche insensible à la casse.

Avertissement

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

sql_regcase() retourne une expression rationnelle valide qui acceptera la chaîne string, et toutes les variantes majuscule/minuscule possibles de cette chaîne. Cette expression sera construite à partir de la chaîne string en remplaçant tous les caractères par des expressions entre crochets (des classes de caractères), contenant la lettre majuscule et minuscule. Les autres caractères ne sont pas modifiés.

Exemples

Exemple #1 Exemple avec sql_regcase()

<?php
echo sql_regcase("Foo - bar.");
?>

L'exemple ci-dessus va afficher :

[Ff][Oo][Oo] - [Bb][Aa][Rr].

Cette expression sert à effectuer des recherches insensibles à la casse avec d'autres logiciels, qui n'acceptent que les recherches sensibles à la casse.

Notes

Note:

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED. Voir la liste des différences pour vous aider dans la conversion en PCRE.


Sommaire

  • ereg_replace — >Remplacement par expression rationnelle
  • ereg — Recherche par expression rationnelle standard
  • eregi_replace — Remplacement par expression rationnelle insensible à la casse
  • eregi — Recherche par expression rationnelle insensible à la casse
  • split — Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • spliti — Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • sql_regcase — Prépare une expression rationnelle pour effectuer une recherche insensible à la casse



Hachages flous ssdeep


Introduction

ssdeep est un utilitaire pour créer et comparer les hachages flous appelés encore » contexte déclenché par morceaux de hachages.

Le hachage flou peut faire correspondre des signatures qui ont "...des séquences d'octets identiques, dans le même ordre, malgré le fait que les octets entre les séquences peuvent être différents aussi bien au niveau du contenu que de leurs longueurs". (» page du projet ssdeep)

Cette extension fournit les fonctions pour créer et comparer des hachages flous.



Installation/Configuration

Sommaire


Pré-requis

Cette extension nécessite la bibliothèque » ssdeep.



Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ssdeep.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions ssdeep


ssdeep_fuzzy_compare

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_compareCalcule le score de correspondance entre 2 signatures de hachages flous

Description

int ssdeep_fuzzy_compare ( string $signature1 , string $signature2 )

Calcule le score de correspondance entre la signature1 et la signature2 en utilisant le » contexte déclenché par morceaux de hachages, et retourne le score de correspondance.

Liste de paramètres

signature1

La chaîne représentant la première signature de hachage flou.

signature2

La chaîne représentant la seconde signature de hachage flou.

Valeurs de retour

Retourne un entier entre 0 et 100 en cas de succès, ou FALSE si une erreur survient.



ssdeep_fuzzy_hash_filename

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash_filenameCrée un hachage flou d'un fichier

Description

string ssdeep_fuzzy_hash_filename ( string $file_name )

ssdeep_fuzzy_hash_filename() calcule le hachage d'un fichier spécifié par le paramètre file_name en utilisant le » contexte déclenché par morceaux de hachages, et retourne le hachage correspondant.

Liste de paramètres

file_name

Le nom du fichier à hacher.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, ou bien FALSE si une erreur survient.



ssdeep_fuzzy_hash

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hashCrée un hachage flou depuis une chaîne de caractères

Description

string ssdeep_fuzzy_hash ( string $to_hash )

ssdeep_fuzzy_hash() calcule le hachage de la chaîne to_hash en utilisant le » contexte déclenché par morceaux de hachages, et retourne le hachage correspondant.

Liste de paramètres

to_hash

La chaîne de caractères à hacher.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE sinon.


Sommaire




Chaîne de caractères


Introduction

Ces fonctions permettent de manipuler des chaînes de caractères de différentes façons. Certaines fonctionnalités plus spécialisées sont disponibles dans les sections d'expressions rationnelles et de gestion des URL.

Pour plus de détails sur le comportement des chaînes de caractères, notamment avec les guillemets simples et doubles, les séquences d'échappement, reportez-vous à la section Chaînes de caractères dans la section Types.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CRYPT_SALT_LENGTH entier
CRYPT_STD_DES entier
CRYPT_EXT_DES entier
CRYPT_MD5 entier
CRYPT_BLOWFISH entier
HTML_SPECIALCHARS (entier)
HTML_ENTITIES (entier)
ENT_COMPAT (entier)
ENT_QUOTES (entier)
ENT_NOQUOTES (entier)
CHAR_MAX (entier)
LC_CTYPE (entier)
LC_NUMERIC (entier)
LC_TIME (entier)
LC_COLLATE (entier)
LC_MONETARY (entier)
LC_ALL (entier)
LC_MESSAGES (entier)
STR_PAD_LEFT (entier)
STR_PAD_RIGHT (entier)
STR_PAD_BOTH (entier)


Fonctions sur les chaînes de caractères

Voir aussi

Pour des fonctions encore plus puissantes de gestion et manipulation des chaînes, reportez-vous aux expressions rationnelles POSIX et expressions rationnelles Perl.


addcslashes

(PHP 4, PHP 5)

addcslashesAjoute des slash dans une chaîne, à la mode du langage C

Description

string addcslashes ( string $str , string $charlist )

Retourne la chaîne str, après avoir ajouté des antislashs devant tous les caractères qui sont présents dans la liste charlist.

Liste de paramètres

str

La chaîne à échapper.

charlist

Une liste de caractères à échapper. Si charlist contient les caractères \n, \r etc., ils seront convertis à la mode du langage C, alors que les autres caractères non-alphanumériques ayant un code ASCII inférieur à 26, et supérieur à 126 sont remplacés par leur représentation octale.

Lorsque vous définissez une séquence de caractères dans le paramètre charlist, assurez-vous que vous connaissez bien tous les caractères qui viennent entre vos limites d'intervalles.

<?php
echo addcslashes('foo[ ]''A..z');
// Affiche :  \f\o\o\[ \]
// Toutes les majuscules et minuscules seront échappées
// ... mais aussi les caractères [\]^_`
?>
De plus, si le premier caractère d'un intervalle a un code ASCII plus grand que le second, l'intervalle ne sera pas créé. Seules les bornes de l'intervalle et le caractère point (.) seront échappés. Utilisez la fonction ord() pour trouver la valeur ASCII d'un caractère.
<?php
echo addcslashes("zoo['.']"'z..A');
// Affiche :  \zoo['\.']
?>

Attention à l'utilisation des caractères tels que 0, a, b, f, n, r, t et v. Ils seront convertis en \0, \a, \b, \f, \n, \r, \t et \v. En PHP, \0 (NULL), \r (retour chariot), \n (nouvelle ligne), \v (tabulation horizontale) et \t (tabulation) sont prédéfinis comme séquences d'échappement, tandis qu'en C, ce sont toutes les séquences cités ci-dessus qui sont des séquences d'échappement.

Valeurs de retour

Retourne la chaîne, échappée.

Historique

Version Description
5.2.5 Les séquences \v et \f ont été ajoutées.

Exemples

charlist peut s'écrire "\0..\37", ce qui identifie tous les caractères ASCII dont le code est entre 0 et 37.

Exemple #1 Exemple avec addcslashes()

<?php
$escaped 
addcslashes($not_escaped"\0..\37!@\177..\377");
?>

Voir aussi



addslashes

(PHP 4, PHP 5)

addslashesAjoute des antislashs dans une chaîne

Description

string addslashes ( string $str )

Retourne la chaîne str, après avoir échappé tous les caractères qui doivent l'être, pour être utilisée dans une requête de base de données. Ces caractères sont les guillemets simples ('), guillemets doubles ("), antislash (\) et NUL (le caractère NULL).

Un exemple d'utilisation d'addslashes() est lorsque vous entrez des données dans une base de données. Par exemple, pour insérer le nom O'reilly dans la base, vous aurez besoin de le protéger. Il est fortement recommandé d'utiliser les fonctions de protection spécifiques à chaque base de données (telle que mysqli_real_escape_string() pour MySQL et pg_escape_string() pour PostGreSQL), mais si la base de données que vous utilisez n'a pas de fonction spécifique, et que cette base utilise \ pour protéger les caractères spéciaux, vous pouvez utiliser cette fonction. Grâce à elle, \ sera ajouté. Si la directive PHP magic_quotes_sybase est activée, ' sera protégé par un autre '.

La directive PHP magic_quotes_gpc est à on par défaut, et elle appelle addslashes() sur toutes les données GET, POST et COOKIE. N'utilisez pas addslashes() sur des données déjà protégées avec magic_quotes_gpc sinon vous doublerez les protections. La fonction get_magic_quotes_gpc() est utile pour vérifier ce paramètre.

Liste de paramètres

str

La chaîne à échapper.

Valeurs de retour

Retourne la chaîne échappée.

Exemples

Exemple #1 Exemple avec addslashes()

<?php
$str 
"Votre nom est-il O'reilly ?";

// Affiche : Votre nom est-il O\'reilly ?
echo addslashes($str);
?>

Voir aussi



bin2hex

(PHP 4, PHP 5)

bin2hexConvertit des données binaires en représentation hexadécimale

Description

string bin2hex ( string $str )

Retourne la chaîne str dont tous les caractères sont représentés par leur équivalent hexadécimal. La chaîne retournée est une chaîne ASCII. La conversion supporte les caractères binaires, et utilise les bits de poids forts en premier.

Liste de paramètres

str

Un caractère.

Valeurs de retour

Retourne la représentation hexadécimale de la chaîne fournie.

Voir aussi

  • pack() - Compacte des données dans une chaîne binaire
  • unpack() - Déconditionne des données depuis une chaîne binaire



chop

(PHP 4, PHP 5)

chopAlias de rtrim()

Description

Cette fonction est un alias de : rtrim().

Notes

Note:

chop() est différente de son équivalent Perl chop(), qui supprime le dernier caractère dans la chaîne.



chr

(PHP 4, PHP 5)

chrRetourne un caractère à partir de son code ASCII

Description

string chr ( int $ascii )

Retourne une chaîne d'un seul caractère, dont le code ASCII est donné par le paramètre ascii.

Cette fonction complète la fonction ord().

Liste de paramètres

ascii

Le code ascii.

Valeurs de retour

Retourne le caractère à partir de son code ASCII.

Exemples

Exemple #1 Exemple avec chr()

<?php
$str 
"The string ends in escape: ";

// Ajoute un caractère d'échappement à la fin de la chaîne $str
$str .= chr(27);

// Ceci est souvent plus pratique, et réalise la même chose

$str sprintf("The string ends in escape: %c"27);
?>

Voir aussi



chunk_split

(PHP 4, PHP 5)

chunk_splitScinde une chaîne

Description

string chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] )

Scinde la chaîne body en segments de chunklen octets de longueur. Cette fonction est très pratique pour convertir les résultats de base64_encode() au format de la RFC 2045. Elle insère le paramètre end tous les chunklen caractères.

Liste de paramètres

body

La chaîne à scinder.

chunklen

La taille de la portion.

end

Le caractère de fin de la séquence.

Valeurs de retour

Retourne la chaîne scindée.

Exemples

Exemple #1 Exemple avec chunk_split()

<?php
// Formater des données pour suivre la norme RFC 2045
$new_string chunk_split(base64_encode($data));
?>

Voir aussi

  • str_split() - Convertit une chaîne de caractères en tableau
  • explode() - Coupe une chaîne en segments
  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • wordwrap() - Effectue la césure d'une chaîne
  • » RFC 2045



convert_cyr_string

(PHP 4, PHP 5)

convert_cyr_stringConvertit une chaîne d'un jeu de caractères cyrillique à l'autre

Description

string convert_cyr_string ( string $str , string $from , string $to )

Convertit une chaîne d'un jeu de caractères cyrillique à l'autre.

Liste de paramètres

str

La chaîne à convertir.

from

Le jeu de caractères cyrillique, comme simple caractère.

to

Le jeu de caractères cyrillique cible, comme simple caractère.

Les caractères supportés sont :

  • k : koi8-r
  • w : windows-1251
  • i : iso8859-5
  • a : x-cp866
  • d : x-cp866
  • m : x-mac-cyrillic

Valeurs de retour

Retourne la chaîne convertie.

Notes

Note: Cette fonction gère les chaînes binaires.



convert_uudecode

(PHP 5)

convert_uudecodeDécode une chaîne au format uuencode

Description

string convert_uudecode ( string $data )

convert_uudecode() décode une chaîne au format uuencode.

Liste de paramètres

data

Les données, au format uuencode.

Valeurs de retour

Retourne les données décodées, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec convert_uudecode()

<?php
/* Pouvez-vous imaginer ce que cela va afficher ? :) */
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

Voir aussi

  • convert_uuencode() - Encode une chaîne de caractères en utilisant l'algorithme uuencode



convert_uuencode

(PHP 5)

convert_uuencodeEncode une chaîne de caractères en utilisant l'algorithme uuencode

Description

string convert_uuencode ( string $data )

convert_uuencode()encode une chaîne de caractères en utilisant l'algorithme uuencode.

Uuencode traduit toutes les chaînes (y compris les binaires) en caractères imprimables, pour assurer leur transmission sur Internet. Les données au format uuencode sont environ 35 % plus grandes que les originales.

Liste de paramètres

data

Les données à encoder.

Valeurs de retour

Retourne les données, au format uuencode.

Exemples

Exemple #1 Exemple avec convert_uuencode()

<?php
$some_string 
"test\ntext text\r\n";

echo 
convert_uuencode($some_string);
?>

Voir aussi



count_chars

(PHP 4, PHP 5)

count_charsRetourne des statistiques sur les caractères utilisés dans une chaîne

Description

mixed count_chars ( string $string [, int $mode = 0 ] )

count_chars() compte le nombre d'occurrences de tous les octets présents dans la chaîne string et retourne différentes statistiques.

Liste de paramètres

string

La chaîne analysée.

mode

Voir les valeurs retournées.

Valeurs de retour

Suivant la valeur de mode, count_chars() retourne les informations suivantes :

  • 0 : un tableau avec l'octet en index, et la fréquence correspondante pour chaque octet.
  • 1 : identique à 0, mais seules les fréquences supérieures à zéro sont listées.
  • 2 : identique à 0, mais seules les fréquences nulles sont listées.
  • 3 : une chaîne contenant tous les octets utilisés est retournée.
  • 4 : une chaîne contenant tous les octets non utilisés est retournée.

Exemples

Exemple #1 Exemple avec count_chars()

<?php
$data 
"Deux D et un F.";

foreach (
count_chars($data1) as $i => $val) {
   echo 
"Il y a $val occurence(s) de \"" chr($i) , "\" dans la phrase.\n";
}
?>

L'exemple ci-dessus va afficher :

Il y a 4 occurrence(s) de " " dans la phrase.
Il y a 1 occurrence(s) de "." dans la phrase.
Il y a 2 occurrence(s) de "D" dans la phrase.
Il y a 1 occurrence(s) de "F" dans la phrase.
Il y a 2 occurrence(s) de "e" dans la phrase.
Il y a 1 occurrence(s) de "n" dans la phrase.
Il y a 1 occurrence(s) de "t" dans la phrase.
Il y a 2 occurrence(s) de "u" dans la phrase.
Il y a 1 occurrence(s) de "x" dans la phrase.

Voir aussi

  • strpos() - Trouve la position d'un caractère dans une chaîne
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne



crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32Calcule la somme de contrôle CRC32

Description

int crc32 ( string $str )

Génère la somme de contrôle cyclique CRC32, calculée sur 32 bits, et appliquée à la chaîne str. Cette fonction est généralement utilisée pour valider l'intégrité de données durant une transmission.

Comme le type d'entier de PHP est signé, et que de nombreuses sommes de contrôle CRC32 aboutissent à un nombre négatif, vous devez utiliser le format "%u" de la fonction sprintf() ou printf() pour obtenir la représentation littérale de la somme de contrôle CRC32.

Liste de paramètres

str

Les données.

Valeurs de retour

Retourne la somme de contrôle crc32 de la chaîne str, sous la forme d'un entier.

Exemples

Exemple #1 Afficher une somme de contrôle CRC32

Cet exemple illustre comment afficher la somme de contrôle avec la fonction printf() :

<?php
$checksum 
crc32("Le vif zéphyr jubile sur les kumquats du clown gracieux.");
printf("%u\n"$checksum);
?>

Voir aussi

  • md5() - Calcule le md5 d'une chaîne
  • sha1() - Calcule le sha1 d'une chaîne de caractères



crypt

(PHP 4, PHP 5)

cryptHachage à sens unique (indéchiffrable)

Description

string crypt ( string $str [, string $salt ] )

Retourne la chaîne str chiffrée avec l'algorithme standard Unix DES, ou bien un des algorithmes disponibles sur la machine.

Certains systèmes supportent plus d'un type de hachage. En fait, il arrive que le chiffrement DES standard soit remplacé par un algorithme de chiffrement MD5. Le choix du type de hachage est effectué en se basant sur la valeur du salt. À l'installation, PHP détermine les possibilités de la fonction crypt(), et acceptera des salt pour d'autres types de chiffrements. Si aucun salt n'est fourni, PHP va en générer deux caractères (DES), à moins que le système par défaut soit MD5, auquel cas un salt compatible MD5 sera généré. PHP définit une constante appelée CRYPT_SALT_LENGTH permettant de vous indiquer la longueur du salt disponible pour le système de hachage utilisé.

crypt(), lorsqu'elle est utilisée avec le chiffrement standard DES, retourne le salt dans les deux premiers caractères de la chaîne retournée. Elle n'utilise que les 8 premiers caractères de str, ce qui fait que toutes les chaînes plus longues, qui ont les mêmes premiers 8 octets retourneront le même résultat (tant que le salt est toujours le même).

Sur les systèmes où crypt() supporte plusieurs types de hachages, les constantes suivantes sont mises à 0 ou 1, suivant que le type correspondant est disponible :

  • CRYPT_STD_DES : chiffrement DES standard à 2 caractères depuis la classe de caractères "./0-9A-Za-z". L'utilisation de caractères invalides dans le salt fera échouer la fonction crypt().
  • CRYPT_EXT_DES : Hachage DES étendu. Le "salt" sera une chaîne de 9 caractères composé d'un underscore, suivi de 4 octets du compteur d'itération puis 4 octets du "salt". Ces caractères seront encodés en tant que caractères imprimables, 6 octets par caractère, et dont le premier caractère au moins sera significatif. Les valeurs de 0 à 63 seront encodés comme "./0-9A-Za-z". L'utilisation de caractères invalides dans le salt fera échouer la fonction crypt().
  • CRYPT_MD5 : hachage MD5 à 12 caractères commençant par $1$
  • CRYPT_BLOWFISH : hachage Blowfish dont le salt est composé comme ceci ; $2a$, un paramètre à 2 chiffres, $, et 22 base64 chiffres depuis la classe de caractères "./0-9A-Za-z". L'utilisation de caractères en dehors de cette classe dans le salt fera que la fonction crypt() retournera une chaîne vide (de longueur 0). Le paramètre à 2 chiffres est le logarithme base-2 du compteur d'itération pour l'algorithme de hachage basé sur Blowfish sous jacent et doivent être dans l'intervalle 04-31. De la même façon, si vous utilisez une valeur en dehors de cet intervalle, la fonction crypt() échouera.
  • CRYPT_SHA256 - Hachage SHA-256 dont le salt est composé de 16 caractères préfixé par $5$. Si le salt commence par 'rounds=<N>$', la valeur numérique de N sera utilisée pour indiquer le nombre de fois que la boucle de hachage doit être exécutée, un peu comme le paramètre dans l'algorithme Blowfish. La valeur par défaut de rounds est de 5000, le minimum pouvant être de 1000 et le maximum, de 999,999,999. Tout autre sélection de N en dehors de cet intervalle sera tronqué à la plus proche des 2 limites.
  • CRYPT_SHA512 - Hachage SHA-512 dont le salt est composé de 16 caractères préfixé par $6$. Si le salt commence par 'rounds=<N>$', la valeur numérique de N sera utilisée pour indiquer le nombre de fois que la boucle de hachage doit être exécutée, un peu comme le paramètre dans l'algorithme Blowfish. La valeur par défaut de rounds est de 5000, le minimum pouvant être de 1000 et le maximum, de 999,999,999. Tout autre sélection de N en dehors de cet intervalle sera tronqué à la plus proche des 2 limites.

Note:

Depuis PHP 5.3.0, PHP dispose de sa propre implémentation, et l'utilisera si le système ne dispose pas de fonction crypt, ou de certains algorithmes.

Liste de paramètres

str

La chaîne à hacher.

salt

Si l'argument salt n'est pas fourni, le comportement est défini par l'implémentation de l'algorithme et peut provoquer des résultats inattendus.

Valeurs de retour

Retourne la chaîne hachée ou une chaîne qui sera inférieure à 13 caractères et qui est garantie de différer du salt en cas d'erreur.

Historique

Version Description
5.3.2 Ajout de SHA-256 et de SHA-512 basés sur l'» implementation de Ulrich Drepper.
5.3.2 Correction du comportement de Blowfish lors d'étape invalide où une chaîne d'échec ("*0" ou "*1") était retournée au lieu de retourner le DES dans ce cas.
5.3.0 PHP dispose maintenant de sa propre implémentation de crypt MD5, Standard DES, Extended DES et l'algorithme Blowfish. Il l'utilisera si le système ne fournit pas l'un ou l'autre des algorithmes.

Exemples

Exemple #1 Exemple avec crypt()

<?php
// laissons le salt initialisé par PHP
$password crypt('mypassword');

/*
  Il vaut mieux passer le résultat complet de crypt() comme salt nécessaire
  pour le chiffrement du mot de passe, pour éviter les problèmes entre les
  algorithmes utilisés (comme nous le disons ci-dessus, le chiffrement
  standard DES utilise un salt de 2 caractères, mais un chiffrement
  MD5 utilise un salt de 12).
*/
if (crypt($user_input$password) == $password) {
   echo 
"Mot de passe correct !";
}
?>

Exemple #2 Utilisation de crypt() avec htpasswd

<?php
// Définition du mot de passe
$password 'mypassword';

// Récupération du hash, on laisse le salt se générer automatiquement
$hash crypt($password);
?>

Exemple #3 Utilisation de crypt() avec différents types de chiffrement

<?php
if (CRYPT_STD_DES == 1) {
    echo 
'DES standard : ' crypt('rasmuslerdorf''rl') . "\n";
}

if (
CRYPT_EXT_DES == 1) {
    echo 
'DES étendu : ' crypt('rasmuslerdorf''_J9..rasm') . "\n";
}

if (
CRYPT_MD5 == 1) {
    echo 
'MD5 :          ' crypt('rasmuslerdorf''$1$rasmusle$') . "\n";
}

if (
CRYPT_BLOWFISH == 1) {
    echo 
'Blowfish :     ' crypt('rasmuslerdorf''$2a$07$usesomesillystringforsalt$') . "\n";
}

if (
CRYPT_SHA256 == 1) {
    echo 
'SHA-256 :      ' crypt('rasmuslerdorf''$5$rounds=5000$usesomesillystringforsalt$') . "\n";
}

if (
CRYPT_SHA512 == 1) {
    echo 
'SHA-512 :      ' crypt('rasmuslerdorf''$6$rounds=5000$usesomesillystringforsalt$') . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

DES standard : rl.3StKT.4T8M
DES étendu : _J9..rasmBYk8r9AiWNc
MD5 :          $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish :     $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
SHA-256 :      $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
SHA-512 :      $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

Notes

Note: Il n'existe pas de fonction de déchiffrement, car la fonction crypt() utilise un algorithme à un seul sens (injection).

Voir aussi

  • md5() - Calcule le md5 d'une chaîne
  • L'extension Mcrypt
  • La page de manuel Unix de la fonction crypt pour plus d'informations



echo

(PHP 4, PHP 5)

echoAffiche une chaîne de caractères

Description

void echo ( string $arg1 [, string $... ] )

Affiche tous les paramètres.

echo() n'est pas vraiment une fonction (c'est techniquement une structure du langage), cela fait que vous n'êtes pas obligé d'utiliser des parenthèses. echo() (contrairement à d'autres structures de langage) ne se comporte pas comme une fonction, il ne peut donc pas être utilisé dans le contexte d'une fonction. De même, si vous voulez passer plusieurs paramètres à echo(), les paramètres ne doivent pas être entourés de parenthèses.

echo() dispose aussi d'une version courte, où vous pouvez faire suivre la balise PHP ouvrante d'un signe égal (=). Cette syntaxe n'est possible que si la directive de configuration short_open_tag a été activée.

J'ai <?=$foo?> foo.

Liste de paramètres

arg1

Le paramètre à afficher.

...

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec echo()

<?php
echo "Bonjour le monde";

echo 
"Cet echo() se
répartit sur plusieurs lignes. Il affiche aussi les
nouvelles lignes"
;

echo 
"Cet echo() se\nrépartit sur plusieurs lignes. Il affiche aussi les\nnouvelles lignes";

echo 
"L'échappement de caractères se fait : \"comme ceci\".";

// Vous pouvez utiliser des variables avec echo()
$foo "foobar";
$bar "barbaz";

echo 
"foo is $foo"// foo vaut foobar

// Vous pouvez aussi utiliser des tableaux
$baz = array("value" => "foo");

echo 
"this is {$baz['value']} !"// c'est foo !

// Les guillemets simples annulent le remplacement des variables
echo 'foo is $foo'// foo vaut $foo

// Si vous n'utilisez pas d'autres caractères,
// vous pouvez afficher plusieurs variables
// en les séparant par des virgules
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

// Des personnes préfèrent passer plusieurs
// paramètres en utilisant la concaténation
echo 'Cette ''chaîne ''a été ''faite ''avec plusieurs paramètres.'chr(10);
echo 
'Cette ' 'chaîne ' 'a été ' 'faite ' 'à l\'aide de la concaténation.' "\n";

echo <<<END
Cette syntaxe s'intitule le "here document" et
permet d'afficher plusieurs lignes avec de
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
END;

// parce que echo() ne se comporte pas comme une fonction, le code suivant n'est pas valide.
($some_var) ? echo 'true' : echo 'false';

// Cependant, les lignes suivantes sont valides :
($some_var) ? print 'Oui' : print 'Non'// print est aussi une structure de langage, mais
                                   // il se comporte comme une fonction, donc,
                                   // il peut être utilisé dans ce contexte.
echo $some_var 'Oui''Non';
?>

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Voir aussi



explode

(PHP 4, PHP 5)

explodeCoupe une chaîne en segments

Description

array explode ( string $delimiter , string $string [, int $limit ] )

explode() retourne un tableau de chaînes, chacune d'elle étant une sous-chaîne du paramètre string extraite en utilisant le séparateur delimiter.

Liste de paramètres

delimiter

Le séparateur.

string

La chaîne initiale.

limit

Si limit est défini et positif, le tableau retourné contient, au maximum, limit éléments, et le dernier élément contiendra le reste de la chaîne.

Si le paramètre limit est négatif, tous les éléments, excepté les -limit derniers éléments sont retournés.

Si limit vaut zéro, il est traité comme valant 1.

Bien que implode() puisse, pour des raisons historiques, accepter ces paramètres dans n'importe quel ordre, explode() ne le peut pas. Vous devez vous assurer que le paramètre delimiter soit placé avant le paramètre string.

Valeurs de retour

Retourne un tableau de chaînes de caractères créées en découpant la chaîne du paramètre string en plusieurs morceaux suivant le paramètre delimiter.

Si delimiter est une chaîne vide (""), explode() retournera FALSE. Si delimiter contient une valeur qui n'est pas contenue dans string ainsi qu'une valeur négative pour le paramètre limit, alors explode() retournera un tableau vide, sinon, un tableau contenant la chaîne string entière.

Historique

Version Description
5.1.0 Le paramètre limit peut désormais être négatif
4.0.1 Le paramètre limit a été ajouté

Exemples

Exemple #1 Exemple avec explode()

<?php
// Exemple 1
$pizza  "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces explode(" "$pizza);
echo 
$pieces[0]; // piece1
echo $pieces[1]; // piece2

// Exemple 2
$data "foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user$pass$uid$gid$gecos$home$shell) = explode(":"$data);
echo 
$user// foo
echo $pass// *

?>

Exemple #2 Exemple avec explode()

<?php
$str 
'one|two|three|four';

// limit positif
print_r(explode('|'$str2));

// limit négatif (depuis PHP 5.1)
print_r(explode('|'$str, -1));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • preg_split() - Éclate une chaîne par expression rationnelle
  • str_split() - Convertit une chaîne de caractères en tableau
  • str_word_count() - Compte le nombre de mots utilisés dans une chaîne
  • strtok() - Coupe une chaîne en segments
  • implode() - Rassemble les éléments d'un tableau en une chaîne



fprintf

(PHP 5)

fprintfÉcrit une chaîne formatée dans un flux

Description

int fprintf ( resource $handle , string $format [, mixed $args [, mixed $... ]] )

Écrit la chaîne produite avec le format format dans le flux représenté par handle.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

format

Voir la documentation sur la fonction sprintf() pour une description du paramètre format.

args

...

Valeurs de retour

Retourne la longueur de la chaîne écrite.

Exemples

Exemple #1 fprintf() : Entiers avec zéros initiaux

<?php
if (!($fp fopen('date.txt''w'))) {
    return;
}

fprintf($fp"%04d-%02d-%02d"$year$month$day);
// écrira la date formatée ISO dans le fichier date.txt
?>

Exemple #2 fprintf() : Format monétaire

<?php
if (!($fp fopen('currency.txt''w'))) {
    return;
}

$money1 68.75;
$money2 54.35;
$money $money1 $money2;
// echo $money affichera "123.1";
$len fprintf($fp'%01.2f'$money);
// écrira "123.10" dans le fichier currency.txt

echo "écriture de $len octets dans le fichier currency.txt";
// utilisez la valeur retournée par fprintf pour déterminer le nombre d'octets écrits
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • vsprintf() - Retourne une chaîne formatée
  • number_format() - Formate un nombre pour l'affichage



get_html_translation_table

(PHP 4, PHP 5)

get_html_translation_tableRetourne la table de traduction des entités utilisée par htmlspecialchars() et htmlentities()

Description

array get_html_translation_table ([ int $table = HTML_SPECIALCHARS [, int $quote_style = ENT_COMPAT [, string $charset_hint ]]] )

get_html_translation_table() retourne la table de traduction des entités utilisée en interne par les fonctions htmlspecialchars() et htmlentities(), avec le jeu de caractères par défaut.

Note:

Les caractères spéciaux peuvent être encodés de différentes façon. E.g. " peut être encodé comme &quot;, &#34; ou &#x22. get_html_translation_table() retourne uniquement la forme la plus courante d'encodage.

Liste de paramètres

table

Il existe deux constantes (HTML_ENTITIES et HTML_SPECIALCHARS), qui vous permettent de spécifier la table que vous souhaitez.

quote_style

Et comme dans les fonctions htmlspecialchars() et htmlentities(), vous pouvez optionnellement spécifier le type de guillemets que vous voulez utiliser. Pour la description de ces modes, reportez-vous à htmlspecialchars().

charset_hint

Tout comme la fonction htmlentities(), Le troisième argument (optionnel) charset définie le jeu de caractères à utiliser lors de la conversion. Actuellement, le jeu de caractères ISO-8859-1 est utilisé comme jeu par défaut.

Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.

Jeux de caractères supportés
Jeux de caractères Alias Description
ISO-8859-1 ISO8859-1 Europe occidentale, Latin-1
ISO-8859-15 ISO8859-15 Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1(ISO-8859-1).
UTF-8   Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 ibm866, 866 Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 Windows-1252, 1252 Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R koi8-ru, koi8r Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 950 Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 936 Chinois simplifié, officiel.
BIG5-HKSCS   Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS SJIS, 932 Japonais
EUC-JP EUCJP Japonais

Note: Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

Valeurs de retour

Retourne la table de traduction, sous la forme d'un tableau.

Historique

Version Description
5.3.4 Le paramètre charset_hint a été ajouté.

Exemples

Exemple #1 Exemple avec la table de traduction des caractères en entités HTML

<?php
$trans 
get_html_translation_table(HTML_ENTITIES);
$str "Hallo & <Frau> & Krämer";
$encoded strtr($str$trans);

echo 
$encoded;
?>

L'exemple ci-dessus va afficher :

Hallo &amp; &lt;Frau&gt; &amp; Kr&auml;mer

Voir aussi



hebrev

(PHP 4, PHP 5)

hebrevConvertit un texte logique hébreux en texte visuel

Description

string hebrev ( string $hebrew_text [, int $max_chars_per_line = 0 ] )

Convertit un texte logique hébreux en texte visuel.

La fonction tente d'éviter la césure des mots.

Liste de paramètres

hebrew_text

Une chaîne d'entrée en hébreux.

max_chars_per_line

Le paramètre optionnel max_chars_per_line indique le nombre maximum de caractères par ligne dans le résultat.

Valeurs de retour

Retourne la chaîne visuelle.

Voir aussi

  • hebrevc() - Convertit un texte logique hébreux en texte visuel, avec retours à la ligne



hebrevc

(PHP 4, PHP 5)

hebrevcConvertit un texte logique hébreux en texte visuel, avec retours à la ligne

Description

string hebrevc ( string $hebrew_text [, int $max_chars_per_line = 0 ] )

hebrevc() est similaire à hebrev() à la différence qu'elle convertit les nouvelles lignes (\n) en "<br>\n".

La fonction tente d'éviter la césure des mots.

Liste de paramètres

hebrew_text

Une chaîne d'entrée en hébreux.

max_chars_per_line

Le paramètre optionnel max_chars_per_line indique le nombre maximum de caractères par lignes dans le résultat.

Valeurs de retour

Retourne la chaîne visuelle.

Voir aussi

  • hebrev() - Convertit un texte logique hébreux en texte visuel



html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decodeConvertit toutes les entités HTML en caractères normaux

Description

string html_entity_decode ( string $string [, int $quote_style = ENT_COMPAT [, string $charset = 'UTF-8' ]] )

html_entity_decode() est la fonction contraire de htmlentities() : elle convertit les entités HTML de la chaîne string en caractères normaux.

Liste de paramètres

string

La chaîne d'entrée.

quote_style

Le paramètre optionnel quote_style vous permet de définir ce qu'il adviendra des guillemets simples et doubles. Ce paramètre prend l'une des valeurs suivantes :

Constantes disponibles pour quote_style
Constante Description
ENT_COMPAT Convertit les guillemets doubles et ignore les guillemets simples.
ENT_QUOTES Convertit les guillemets doubles et les guillemets simples.
ENT_NOQUOTES Ne convertit aucun guillemet.

charset

Ce paramètre permet de choisir le jeu de caractères utilisé dans la conversion.

Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.

Jeux de caractères supportés
Jeux de caractères Alias Description
ISO-8859-1 ISO8859-1 Europe occidentale, Latin-1
ISO-8859-15 ISO8859-15 Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1(ISO-8859-1).
UTF-8   Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 ibm866, 866 Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 Windows-1252, 1252 Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R koi8-ru, koi8r Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 950 Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 936 Chinois simplifié, officiel.
BIG5-HKSCS   Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS SJIS, 932 Japonais
EUC-JP EUCJP Japonais

Note: Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

Valeurs de retour

Retourne la chaîne décodée.

Historique

Version Description
5.3.3 Le jeu de caractères par défaut a été modifié de ISO-8859-1 à UTF-8.
5.0.0 Le support des jeux de caractères multi-octets a été ajouté.

Exemples

Exemple #1 Décoder des entités HTML

<?php
$orig 
'J\'ai "sorti" le <strong>chien</strong> tout à l\'heure';
$a htmlentities($orig);
$b html_entity_decode($a);

echo 
$a// J'ai &quot;sorti&quot; le &lt;strong&gt;chien&lt;/strong&gt; tout &amp;agrave; l'heure
echo $b// J'ai "sorti" le <strong>chien</strong> tout à l'heure

// Pour les utilisateurs ayant des versions antérieures à PHP 4.3.0 :
function unhtmlentities($string)
{
   
// Remplace les entités numériques
    
$string preg_replace('~&#x([0-9a-f]+);~ei''chr(hexdec("\\1"))'$string);
    
$string preg_replace('~&#([0-9]+);~e''chr("\\1")'$string);
   
// Remplace les entités litérales
    
$trans_tbl get_html_translation_table(HTML_ENTITIES);
    
$trans_tbl array_flip($trans_tbl);
    return 
strtr($string$trans_tbl);
}

$c unhtmlentities($a);

echo 
$c// J'ai "sorti" le <strong>chien</strong> tout à l'heure

?>

Notes

Note:

Vous pourriez vous demander pourquoi trim(html_entity_decode('&nbsp;')); ne réduit pas la chaîne à la chaîne vide. C'est parce que l'entité &nbsp; n'est pas un code ASCII 32 (qui serait supprimé par trim()), mais un code ASCII 160 (0xa0) dans le jeu de caractères par défaut ISO 8859-1.

Voir aussi



htmlentities

(PHP 4, PHP 5)

htmlentitiesConvertit tous les caractères éligibles en entités HTML

Description

string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )

htmlentities() est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.

Si vous voulez réaliser l'opération inverse, vous devez utiliser la fonction html_entity_decode().

Liste de paramètres

string

La chaîne d'entrée.

flags

Comme htmlspecialchars(), cette fonction prend un deuxième argument optionnel flags, qui indique comment doivent être traités les guillemets doubles et simples. Il prend une des 3 constantes suivantes, la valeur par défaut étant ENT_COMPAT, optionnellement combinée avec une quatrième ENT_IGNORE (depuis PHP 5.3.0) :

Constantes disponibles pour flags
Constante Description
ENT_COMPAT Convertit les guillemets doubles, et ignore les guillemets simples.
ENT_QUOTES Convertit les guillemets doubles et les guillemets simples.
ENT_NOQUOTES Ignore les guillemets doubles et les guillemets simples.
ENT_IGNORE Ignore les séquences de caractères invalides plutôt que de retourner une chaine vide. Ajouté en PHP 5.3.0. Introduit pour des raisons de compatibilité, évitez de l'utiliser pour des raisons de sécurité.

charset

Comme htmlspecialchars(), cette fonction prend un troisième argument optionnel charset qui définit le jeu de caractères utilisé durant la conversion. Actuellement, le jeu de caractères ISO-8859-1 est utilisé par défaut.

Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.

Jeux de caractères supportés
Jeux de caractères Alias Description
ISO-8859-1 ISO8859-1 Europe occidentale, Latin-1
ISO-8859-15 ISO8859-15 Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1(ISO-8859-1).
UTF-8   Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 ibm866, 866 Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 Windows-1252, 1252 Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R koi8-ru, koi8r Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 950 Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 936 Chinois simplifié, officiel.
BIG5-HKSCS   Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS SJIS, 932 Japonais
EUC-JP EUCJP Japonais

Note: Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

double_encode

Lorsque double_encode est désactivé, PHP n'encodera pas les entités html existantes. Par défaut, tout est converti.

Valeurs de retour

Retourne la chaîne encodée.

Historique

Version Description
5.3.0 La constante ENT_IGNORE a été ajoutée.
5.2.3 Ajout du paramètre double_encode.
4.1.0 Ajout du paramètre charset.
4.0.3 Ajout du paramètre flags.

Exemples

Exemple #1 Exemple avec htmlentities()

<?php
$str 
'Un \'apostrophe\' en <strong>gras</strong>';

// Affiche : Un 'apostrophe' en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str);

// Affiche : Un &#039;apostrophe&#039; en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($strENT_QUOTES);
?>

Exemple #2 Utilisation de ENT_IGNORE

<?php
$str 
"\x8F!!!";

// Affiche une chaine vide
echo htmlentities($strENT_QUOTES"UTF-8");

// Affiche "!!!"
echo htmlentities($strENT_QUOTES ENT_IGNORE"UTF-8");
?>

Voir aussi



htmlspecialchars_decode

(PHP 5 >= 5.1.0)

htmlspecialchars_decode Convertit les entités HTML spéciales en caractères

Description

string htmlspecialchars_decode ( string $string [, int $quote_style = ENT_COMPAT ] )

Cette fonction est l'opposée de htmlspecialchars(). Elle convertit les entités HTML spéciales en caractères.

Les entités converties sont : &amp;, &quot; (lorsque ENT_NOQUOTES n'est pas activée), &#039; (lorsque ENT_QUOTES est activée), &lt; et &gt;.

Liste de paramètres

string

La chaîne de caractères à décoder

quote_style

Le style de guillemets. Une des constantes suivantes :

Constantes quote_style
Nom de la Constante Description
ENT_COMPAT Convertira les guillemets et laissera les apostrophes (valeur par défaut)
ENT_QUOTES Convertira les guillemets et les apostrophes
ENT_NOQUOTES Laissera les guillemets et les apostrophes non convertis

Valeurs de retour

Retourne la chaîne de caractères décodée.

Exemples

Exemple #1 Exemple avec htmlspecialchars_decode()

<?php
$str 
'<p>this -&gt; &quot;</p>';

echo 
htmlspecialchars_decode($str);

// notez ici que les guillemets ne sont pas convertis
echo htmlspecialchars_decode($strENT_NOQUOTES);
?>

L'exemple ci-dessus va afficher :

<p>this -> "</p>
<p>this -> &quot;</p>

Voir aussi



htmlspecialchars

(PHP 4, PHP 5)

htmlspecialcharsConvertit les caractères spéciaux en entités HTML

Description

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )

Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour être affichés. htmlspecialchars() remplace tous ces caractères par leur équivalent dans la chaîne string. Cette conversion est très pratique pour la programmation web. Si vous devez remplacer tous les caractères, utilisez plutôt htmlentities() à la place.

htmlspecialchars() est pratique pour éviter que des données fournies par les utilisateurs contiennent des balises HTML, comme pour un forum ou un chat.

Les remplacements effectués sont :

  • "&" (et commercial) devient "&amp;"
  • """ (guillemets doubles) devient "&quot;" lorsque ENT_NOQUOTES n'est pas utilisée.
  • "'" (guillemet simple) devient "&#039;" uniquement lorsque ENT_QUOTES est utilisée.
  • "<" (inférieur à) devient "&lt;"
  • ">" (supérieur à) devient "&gt;"

Liste de paramètres

string

La chaîne à convertir.

flags

L'argument optionnel flags indique comment doivent être traités les guillemets doubles, simples, ainsi que les caractères mutli-octets invalides. Vous pouvez utiliser l'une des constantes suivantes : ENT_COMPAT, la constante par défaut, va convertir les guillemets doubles et ignorer les guillemets simples; ENT_QUOTES va convertir les guillemets doubles et les guillemets simples; ENT_NOQUOTES va ignorer les guillemets doubles et les guillemets simples. De plus, depuis PHP 5.3.0, ces constantes peuvent être combinées avec ENT_IGNORE. Dans ce cas, les chaines qui contiennent des caractères invalides sont retournées sans ces caractères, plutot que de retourner une chaine vide. Evitez d'utiliser cet effet car cela peut introduire des vulnérabilités dans vos scripts.

charset

Jeu de caractères utilisé lors de la conversion. Par défaut, vaut ISO-8859-1.

Pour cette fonction, les jeux de caractères ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, et KOI8-R sont équivalents, à condition que le paramètre string soit valable pour le jeu de caractères, dans le sens où les caractères affectés par la fonction htmlspecialchars() occupent la même position dans tous ces jeux de caractères.

Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.

Jeux de caractères supportés
Jeux de caractères Alias Description
ISO-8859-1 ISO8859-1 Europe occidentale, Latin-1
ISO-8859-15 ISO8859-15 Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1(ISO-8859-1).
UTF-8   Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 ibm866, 866 Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 Windows-1252, 1252 Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R koi8-ru, koi8r Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 950 Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 936 Chinois simplifié, officiel.
BIG5-HKSCS   Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS SJIS, 932 Japonais
EUC-JP EUCJP Japonais

Note: Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

double_encode

Lorsque le paramètre double_encode est désactivé, PHP n'encodera pas les entités html existants ; par défaut, tout est converti.

Valeurs de retour

La chaîne convertie.

Si la chaîne d'entrée string contient une séquence de code invalide dans le paramètre charset fourni et que le drapeau ENT_IGNORE n'est pas défini, alors htmlspecialchars() retournera une chaîne vide.

Historique

Version Description
5.2.3 Ajout du paramètre double_encode.
4.1.0 Ajout du paramètre charset.

Exemples

Exemple #1 Exemple avec htmlspecialchars()

<?php
$new 
htmlspecialchars("<a href='test'>Test</a>"ENT_QUOTES);
echo 
$new// &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Notes

Note:

Notez que cette fonction ne fait aucun autre remplacement que ceux qui sont listés ci-dessus. Pour faire un remplacement total, voyez plutôt htmlentities().

Voir aussi



implode

(PHP 4, PHP 5)

implodeRassemble les éléments d'un tableau en une chaîne

Description

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

Rassemble les éléments d'un tableau en une chaîne.

Note:

implode() peut, pour des raisons historiques, accepter les paramètres dans un sens ou dans l'autre. Pour des raisons de cohérence avec explode(), toutefois, il est préférable d'utiliser l'ordre des arguments tels que documenté.

Liste de paramètres

glue

Par défaut, il vaut la chaîne vide ''. Ce n'est pas l'utilisation recommandée de la fonction implode(). Nous vous recommandons de toujours utiliser les deux paramètres pour être compatible avec les anciennes versions.

pieces

Le tableau de chaînes à rassembler.

Valeurs de retour

Retourne une chaîne contenant la représentation en chaîne de caractères de tous les éléments du tableau pieces, dans le même ordre, avec la chaîne glue, placée entre deux éléments.

Historique

Version Description
4.3.0 Le paramètre glue devient optionnel.

Exemples

Exemple #1 Exemple avec implode()

<?php

$array 
= array('lastname''email''phone');
$comma_separated implode(","$array);

echo 
$comma_separated// lastname,email,phone

// Chaîne vide lors de l'emploi d'un tableau vide :
var_dump(implode('hello', array())); // string(0) ""

?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • explode() - Coupe une chaîne en segments
  • preg_split() - Éclate une chaîne par expression rationnelle



join

(PHP 4, PHP 5)

joinAlias de implode()

Description

Cette fonction est un alias de : implode().



lcfirst

(PHP 5 >= 5.3.0)

lcfirstMet le premier caractère en minuscule

Description

string lcfirst ( string $str )

Retourne une chaîne dont le premier caractère de str a été mis en minuscule, si ce caractère est un caractère alphabétique.

Notez que 'alphabétique' est déterminé par la locale courante. Actuellement, dans la locale par défaut "C", les caractères comme a-umlaut (ä) ne sera pas converti.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne résultante.

Exemples

Exemple #1 Exemple avec lcfirst()

<?php
$foo 
'HelloWorld';
$foo lcfirst($foo);             // helloWorld

$bar 'HELLO WORLD!';
$bar lcfirst($bar);             // hELLO WORLD!
$bar lcfirst(strtoupper($bar)); // hELLO WORLD!
?>

Voir aussi

  • ucfirst() - Met le premier caractère en majuscule
  • strtolower() - Renvoie une chaîne en minuscules
  • strtoupper() - Renvoie une chaîne en majuscules
  • ucwords() - Met en majuscule la première lettre de tous les mots



levenshtein

(PHP 4 >= 4.0.1, PHP 5)

levenshteinCalcule la distance Levenshtein entre deux chaînes

Description

int levenshtein ( string $str1 , string $str2 )
int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )

La distance Levenshtein est définie comme le nombre minimal de caractères qu'il faut remplacer, insérer ou modifier pour transformer la chaîne str1 en str2. La complexité de l'algorithme est en O(m*n), où n et m sont les tailles respectives de str1 et str2 : c'est plutôt bien, en comparaison de similar_text(), qui est en O(max(n,m)**3), mais cela reste très coûteux.

Dans sa forme la plus simple, levenshtein() va prendre uniquement deux chaînes de caractères comme paramètres, et calculer simplement le nombre d'insertions, de remplacements et d'effacements nécessaires pour transformer str1 en str2.

La deuxième variante de la fonction prend trois paramètres supplémentaires qui représentent les coûts d'insertions, de remplacements et d'effacements. C'est une version plus générale de la première fonction, mais qui est un peu moins efficace.

Liste de paramètres

str1

Une des chaînes à évaluer.

str2

Une des chaînes à évaluer.

cost_ins

Définit le coût de l'insertion.

cost_rep

Définit le coût du remplacement.

cost_del

Définit le coût de l'effacement.

Valeurs de retour

Retourne la distance Levenshtein entre deux chaînes de caractères. Elle retournera -1 si l'un des deux arguments contient plus de 255 caractères.

Exemples

Exemple #1 Exemple avec levenshtein()

<?php
// mot mal orthographié
$input 'carrrot';

// tableau de mots à vérifier
$words  = array('apple','pineapple','banana','orange',
                
'radish','carrot','pea','bean','potato');

// aucune distance de trouvée pour le moment
$shortest = -1;

// boucle sur les des mots pour trouver le plus près
foreach ($words as $word) {

    
// calcule la distance avec le mot mis en entrée,
    // et le mot courant
    
$lev levenshtein($input$word);

    
// cherche une correspondance exacte
    
if ($lev == 0) {

        
// le mot le plus près est celui-ci (correspondance exacte)
        
$closest $word;
        
$shortest 0;

        
// on sort de la boucle ; nous avons trouvé une correspondance exacte
        
break;
    }

    
// Si la distance est plus petite que la prochaine distance trouvée
    // OU, si le prochain mot le plus près n'a pas encore été trouvé
    
if ($lev <= $shortest || $shortest 0) {
        
// définition du mot le plus près ainsi que la distance
        
$closest  $word;
        
$shortest $lev;
    }
}

echo 
"Mot entré : $input\n";
if (
$shortest == 0) {
    echo 
"Correspondance exacte trouvée : $closest\n";
} else {
    echo 
"Vous voulez dire : $closest ?\n";
}

?>

L'exemple ci-dessus va afficher :

Mot entré : carrrot
Vous voulez dire : carrot ?

Voir aussi



localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconvLit la configuration locale

Description

array localeconv ( void )

Retourne un tableau associatif contenant les informations de formats localisées pour les nombres et la monnaie.

Valeurs de retour

localeconv() retourne les formats en fonction de la configuration effectuée avec setlocale(). Le tableau associatif qui est retourné contient les index suivants :

Index du tableau Description
decimal_point Séparateur décimal
thousands_sep Séparateur de milliers
grouping Tableau contenant les regroupements numériques
int_curr_symbol Symbole monétaire international (i.e. EUR)
currency_symbol Symbole monétaire local (i.e. ¤)
mon_decimal_point Séparateur décimal monétaire
mon_thousands_sep Séparateur de milliers monétaires
mon_grouping Tableau contenant les regroupements numériques monétaires
positive_sign Signe des valeurs positives
negative_sign Signe des valeurs négatives
int_frac_digits Nombre international de décimales
frac_digits Nombre local de décimales
p_cs_precedes TRUE si le currency_symbol précède une valeur positive et FALSE s'il lui succède.
p_sep_by_space TRUE si un espace sépare currency_symbol d'une valeur positive, et FALSE sinon.
n_cs_precedes TRUE si currency_symbol précède une valeur négative, et FALSE s'il lui succède.
n_sep_by_space TRUE si un espace sépare currency_symbol d'une valeur négative, et FALSE sinon.
p_sign_posn
  • 0 - Des parenthèses entourent la valeur et le symbole monétaire
  • 1 - Le signe précède la valeur et le symbole monétaire
  • 2 - Le signe suit la valeur et le symbole monétaire
  • 3 - Le signe précède immédiatement la valeur et le symbole monétaire
  • 4 - Le signe suit immédiatement la valeur et le symbole monétaire
n_sign_posn
  • 0 - Des parenthèses entourent la valeur et le symbole monétaire
  • 1 - Le signe précède la valeur et le symbole monétaire
  • 2 - Le signe suit la valeur et le symbole monétaire
  • 3 - Le signe précède immédiatement la valeur et le symbole monétaire
  • 4 - Le signe suit immédiatement la valeur et le symbole monétaire

Les champs p_sign_posn et n_sign_posn contiennent une chaîne formatée d'options. Chaque nombre représente une des conditions listées ci-dessus.

Les champs de regroupements contiennent des tableaux qui définissent la manière dont les nombres doivent être regroupés. Par exemple, le champ de regroupement monétaire pour nl_NL (en mode UTF-8 avec le signe euro), contiendra deux éléments, avec les valeurs 3 et 3. Si un élément de tableau contient CHAR_MAX, aucun autre regroupement n'est fait. Si un élément de tableau contient 0, l'élément précédent doit être utilisé.

Exemples

Exemple #1 Exemple avec localeconv()

<?php
if (false !== setlocale(LC_ALL'nl_NL.UTF-8@euro')) {
    
$locale_info localeconv();
    
print_r($locale_info);
}
?>

L'exemple ci-dessus va afficher :

Array
(
    [decimal_point] => .
    [thousands_sep] =>
    [int_curr_symbol] => EUR
    [currency_symbol] => ¤
    [mon_decimal_point] => ,
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 1
    [p_sep_by_space] => 1
    [n_cs_precedes] => 1
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 2
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

Voir aussi

  • setlocale() - Modifie les informations de localisation



ltrim

(PHP 4, PHP 5)

ltrimSupprime les espaces (ou d'autres caractères) de début de chaîne

Description

string ltrim ( string $str [, string $charlist ] )

Supprime les espaces (ou d'autres caractères) de début de chaîne.

Liste de paramètres

str

La chaîne d'entrée.

charlist

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre charlist. Listez simplement les caractères que vous voulez supprimer dans ce paramètre. Avec .., vous pourrez spécifier des intervalles de caractères.

Valeurs de retour

Cette fonction retourne la chaîne str, après avoir supprimé les caractères invisibles de début de chaîne. Si le second paramètre charlist a été omis, ltrim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.
  • "\t" (ASCII 9 (0x09)), une tabulation.
  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
  • "\0" (ASCII 0 (0x00)), le caractère NUL.
  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Historique

Version Description
4.1.0 Ajout du paramètre charlist.

Exemples

Exemple #1 Exemple avec ltrim()

<?php

$text 
"\t\tThese are a few words :) ...  ";
$binary "\x09Example string\x0A";
$hello  "Hello World";
var_dump($text$binary$hello);

print 
"\n";


$trimmed ltrim($text);
var_dump($trimmed);

$trimmed ltrim($text" \t.");
var_dump($trimmed);

$trimmed ltrim($hello"Hdle");
var_dump($trimmed);

// Supprime les caractères de contrôle ASCII du début de $binary
// (de 0 à 31, inclusif)
$clean ltrim($binary"\x00..\x1F");
var_dump($clean);

?>

L'exemple ci-dessus va afficher :

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

Voir aussi

  • trim() - Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
  • rtrim() - Supprime les espaces (ou d'autres caractères) de fin de chaîne



md5_file

(PHP 4 >= 4.2.0, PHP 5)

md5_fileCalcule le md5 d'un fichier

Description

string md5_file ( string $filename [, bool $raw_output = false ] )

md5_file() calcule le MD5 du fichier filename en utilisant l'algorithme » RSA Data Security, Inc. MD5 Message-Digest Algorithm, puis retourne la valeur ainsi calculée. Le résultat est un nombre de 32 caractères hexadécimaux.

Liste de paramètres

filename

Le nom du fichier

raw_output

Lorsque TRUE, retourne le prétraitement en format binaire brut avec une grandeur de 16.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE autrement.

Historique

Version Description
5.0.0 Ajout du paramètre raw_output
5.1.0 La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme md5_file('http://example.com/..')

Exemples

Exemple #1 Exemple d'utilisation de md5_file()

<?php
$file 
'php-5.3.0alpha2-Win32-VC9-x64.zip';

echo 
'La signature MD5 du fichier ' $file ' est ' md5_file($file);
?>

Voir aussi

  • md5() - Calcule le md5 d'une chaîne
  • sha1_file() - Calcule le sha1 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32



md5

(PHP 4, PHP 5)

md5Calcule le md5 d'une chaîne

Description

string md5 ( string $str [, bool $raw_output = false ] )

Calcule le MD5 de la chaîne de caractères str en utilisant l'algorithme » RSA Data Security, Inc. MD5 Message-Digest Algorithm, et retourne le résultat.

Liste de paramètres

str

La chaîne.

raw_output

Si le paramètre optionnel raw_output est défini à TRUE, alors le md5 est retourné au format binaire brut avec une longueur de 16.

Valeurs de retour

Retourne le md5 de la chaîne, sous la forme d'un nombre hexadécimal de 32 caractères.

Historique

Version Description
5.0.0 Ajout du paramètre raw_output.

Exemples

Exemple #1 Exemple avec md5()

<?php
$str 
'apple';

if (
md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo 
"Voulez-vous une golden ou une spartan?";
}
?>

Voir aussi

  • md5_file() - Calcule le md5 d'un fichier
  • sha1_file() - Calcule le sha1 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32
  • sha1() - Calcule le sha1 d'une chaîne de caractères
  • hash() - Génère une valeur de hachage (empreinte numérique)



metaphone

(PHP 4, PHP 5)

metaphoneCalcule la clé metaphone

Description

string metaphone ( string $str [, int $phonemes = 0 ] )

Calcule la clé metaphone de str.

metaphone() est similaire à la fonction soundex() : elle créée une clé similaire pour des mots dont la prononciation est proche. C'est une fonction qui est plus précise que soundex() car elle prend en compte la prononciation anglaise. La clé metaphone générée est de taille variable.

Metaphone a été développée par Lawrence Philips <lphilips at verity dot com>. Cette méthode est décrite dans le livre ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Liste de paramètres

str

La chaîne d'entrée.

phonemes

Ce paramètre restreint la clé métaphone retournée à une longueur de phonemes caractères. La valeur par défaut est 0, ce qui signifie qu'aucune limitation ne sera appliquée.

Valeurs de retour

Retourne la clé metaphone, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec metaphone()

<?php
var_dump
(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "PRKRMNK"
string(6) "PRKRMR"

Exemple #2 Utilisation du paramètre phonemes

<?php
var_dump
(metaphone('programming'5));
var_dump(metaphone('programmer'5));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "PRKRM"
string(5) "PRKRM"



money_format

(PHP 4 >= 4.3.0, PHP 5)

money_formatMet un nombre au format monétaire

Description

string money_format ( string $format , float $number )

money_format() retourne une version formatée du nombre number. Cette fonction fait l'interface avec la fonction strfmon() de la bibliothèque C, à la différence près que cette implémentation ne convertit qu'un nombre à la fois.

Liste de paramètres

format

Le paramètre de format est constitué de la séquence suivante :

  • un caractère %

  • une configuration optionnelle

  • une taille de champ optionnelle

  • une précision à gauche optionnelle

  • une précision à droite optionnelle

  • un caractère de conversion obligatoire

Drapeaux

Une ou plusieurs des configurations suivantes sont utilisables :

=f

Le caractère = suivi par un octet unique f qui sera utilisé comme caractère de remplissage. Le caractère de remplissage par défaut est espace.

^

Désactive le groupage de caractères (tel que défini dans la configuration locale).

+ ou (

Spécifie le style de formatage pour les nombres positifs et négatifs. Si + est utilisé, les équivalents dans la configuration locale de + et - seront utilisés. Si ( est utilisé, les sommes négatives seront placées entre parenthèses. Si aucune spécification n'est fournie, la valeur par défaut est +.

!

Supprime le simple monétaire dans la chaîne finale.

-

Si fourni, cette configuration fait que les champs seront justifiés à gauche (complétés à droite), au contraire de la configuration par défaut qui est justifiée à droite, et complétée à gauche.

Taille du champ

w

Un nombre décimal qui spécifie la taille minimale du champ. Le champ sera complété à gauche, à moins que la configuration - ne soit utilisée. Par défaut, cette valeur est de 0.

Précision à gauche

#n

Le nombre maximal de chiffres (n) attendus à gauche du séparateur décimal (e.g. la virgule). Cette option est généralement utilisée pour conserver l'alignement de colonnes de nombres, en utilisant un caractère pour compléter le nombre si ce dernier a moins de n chiffres. Si le nombre réel de chiffres est plus grand que n, cette spécification est ignorée.

Si le groupage n'a pas été supprimé via la configuration ^, les séparateurs de groupage seront insérés avant le caractère de remplissage (le cas échéant). Les séparateurs ne seront pas appliqués aux caractères de remplissage, même si ce caractère est un nombre.

Pour s'assurer de l'alignement, tous les caractères apparaissant avant et après le nombre formaté, tels que les symboles monétaires ou les signes négatif et positif, seront placés au même endroit grâce à des espaces supplémentaires, afin que toutes les tailles des nombres soient les mêmes.

Précision à droite

.p

Un point suivi par un nombre de décimales (p). Si la valeur de p est 0 (zéro), le séparateur décimal et les décimales seront supprimés. Si aucune précision à droite n'est précisée, la valeur par défaut sera lue dans la configuration locale. Le nombre formaté sera alors arrondi pour satisfaire les contraintes d'affichage.

Caractères de conversion

i

Le nombre est formaté suivant le format monétaire international de la configuration locale (e.g. pour la France : 1 234,56 F).

n

Le nombre est formaté en fonction du format monétaire national (e.g. pour la configuration de_DE : EU1.234,56).

%

Retourne le caractère %.

number

Le nombre à formater.

Valeurs de retour

Retourne la chaîne formatée. Les caractères avant et après la chaîne formatée seront retournés, inchangés. Un valeur non-numérique pour number retourne NULL et émet une alerte E_WARNING.

Notes

Note:

La fonction money_format() est uniquement définie si le système a les capacités strfmon. Par exemple, Windows ne les a pas, donc, money_format() n'est pas définie sous Windows.

Note:

La catégorie LC_MONETARY de la configuration locale affecte le comportement de cette fonction. Utilisez setlocale() pour configurer correctement PHP avant d'utiliser cette fonction.

Exemples

Exemple #1 Exemple avec money_format()

Voici plusieurs exemples d'utilisation de la fonction money_format() avec différentes chaînes de formatage, et configurations locales.

<?php

$number 
1234.56;

// Affichons ce nombre au format international pour en_US
setlocale(LC_MONETARY'en_US');
echo 
money_format('%i'$number) . "\n";
// USD 1,234.56

// Et au format italien national avec 2 decimales
setlocale(LC_MONETARY'it_IT');
echo 
money_format('%.2n'$number) . "\n";
// L. 1.234,56

// Utilisation d'un nombre négatif
$number = -1234.5672;

// Format US national, avec les parenthèeses pour les nombres négatifs
// et 10 chiffres de précision à gauche
setlocale(LC_MONETARY'en_US');
echo 
money_format('%(#10n'$number) . "\n";
// ($        1,234.57)

// Format similaire au précédent, en ajoutant 2 décimales
// pour la précision à droite, et en utilisant le caractère de remplissage '*'
echo money_format('%=*(#10.2n'$number) . "\n";
// ($********1,234.57)

// Utilisons maintenant la justification à gauche, avec un champ de 14 caractères
// de long, sans groupage de chiffres, et en utilisant le format international
// pour de_DE
setlocale(LC_MONETARY'de_DE');
echo 
money_format('%=*^-14#8.2i'1234.56) . "\n";
// DEM 1234,56****

// Ajoutons encore à l'exemple précédent
setlocale(LC_MONETARY'en_GB');
$fmt 'La valeur finale est %i (après 10 %% de remise)';
echo 
money_format($fmt1234.56) . "\n";
// La valeur finale est GBP 1,234.56 (après 10 % de remise)

?>

Voir aussi

  • setlocale() - Modifie les informations de localisation
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • sprintf() - Retourne une chaîne formatée
  • printf() - Affiche une chaîne de caractères formatée
  • number_format() - Formate un nombre pour l'affichage



nl_langinfo

(PHP 4 >= 4.1.0, PHP 5)

nl_langinfoRassemble des informations sur la langue et la configuration locale

Description

string nl_langinfo ( int $item )

nl_langinfo() est utilisée pour accéder à chaque élément de la configuration locale. Contrairement à la fonction localeconv() qui renvoie tous les éléments, nl_langinfo() vous permet de sélectionner un élément précis.

Liste de paramètres

item

item peut être la valeur entière d'un élément, ou le nom de sa constante. Voici une liste des noms de constantes pour item qui peuvent être utilisés et leur description. Certaines constantes peuvent ne pas être définies, ou ne contenir aucune valeur pour certaines locales.

Constantes nl_langinfo()
Constante Description
Constantes de la catégorie LC_TIME
ABDAY_(1-7) Nom court du jour de la semaine.
DAY_(1-7) Nom du jour de la semaine (DAY_1 = Dimanche).
ABMON_(1-12) Nom abrégé du mois de l'année.
MON_(1-12) Nom du mois de l'année.
AM_STR Chaîne pour Ante meridian.
PM_STR Chaîne pour Post meridian.
D_T_FMT Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter la date et l'heure.
D_FMT Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter la date.
T_FMT Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter l'heure.
T_FMT_AMPM Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter l'heure au format 12 heures, avec ante/post meridian.
ERA Ère de substitution.
ERA_YEAR Année dans le format d'ère de substitution.
ERA_D_T_FMT Date et heure dans le format d'ère de substitution (chaîne pouvant être utilisée dans la fonction strftime()).
ERA_D_FMT Date dans le format d'ère de substitution (chaîne pouvant être utilisée dans la fonction strftime()).
ERA_T_FMT Heure dans le format d'ère de substitution (chaîne pouvant être utilisée dans la fonction strftime()).
Constantes de la catégorie LC_MONETARY
INT_CURR_SYMBOL Symbole monétaire international.
CURRENCY_SYMBOL Symbole monétaire local.
CRNCYSTR Même valeur que CURRENCY_SYMBOL.
MON_DECIMAL_POINT Caractère de virgule décimale.
MON_THOUSANDS_SEP Séparateur de centaine (groupes de trois lettres).
MON_GROUPING Comme l'élément "grouping".
POSITIVE_SIGN Signe pour les valeurs positives.
NEGATIVE_SIGN Signe pour les valeurs négatives.
INT_FRAC_DIGITS Chiffres partiels internationaux.
FRAC_DIGITS Chiffres partiels locaux.
P_CS_PRECEDES Retourne 1 si CURRENCY_SYMBOL précède une valeur positive.
P_SEP_BY_SPACE Retourne 1 si un espace sépare CURRENCY_SYMBOL d'une valeur positive.
N_CS_PRECEDES Retourne 1 si CURRENCY_SYMBOL précède une valeur négative.
N_SEP_BY_SPACE Retourne 1 si un espace sépare CURRENCY_SYMBOL d'une valeur négative.
P_SIGN_POSN
  • Retourne 0 si des parenthèses entourent la quantité et CURRENCY_SYMBOL.
  • Retourne 1 si la chaîne de signes précède la quantité et CURRENCY_SYMBOL.
  • Retourne 2 si la chaîne de signes suit la quantité et CURRENCY_SYMBOL.
  • Retourne 3 si la chaîne de signes précède immédiatement le CURRENCY_SYMBOL.
  • Retourne 4 si la chaîne de signes suit immédiatement le CURRENCY_SYMBOL.
N_SIGN_POSN
Constantes de la catégorie LC_NUMERIC
DECIMAL_POINT Caractère de virgule décimale.
RADIXCHAR Même valeur que DECIMAL_POINT.
THOUSANDS_SEP Caractère de séparation des centaines (groupe de trois lettres).
THOUSEP Même valeur que THOUSANDS_SEP.
GROUPING  
Constantes de la catégorie LC_MESSAGES
YESEXPR Chaîne d'expression rationnelle pour chercher l'entrée "yes".
NOEXPR Chaîne d'expression rationnelle pour chercher l'entrée "no".
YESSTR Affichage de la chaîne pour "yes".
NOSTR Affichage de la chaîne pour "no".
Constantes de la catégorie LC_CTYPE
CODESET Retourne une chaîne de caractères avec le nom du jeux de caractères.

Valeurs de retour

Retourne l'élément, sous la forme d'une chaîne de caractères ou FALSE si le paramètre item n'est pas valide.

Notes

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi



nl2br

(PHP 4, PHP 5)

nl2brInsère un retour à la ligne HTML à chaque nouvelle ligne

Description

string nl2br ( string $string [, bool $is_xhtml = true ] )

Retourne string après avoir inséré "<br />" ou '<br>' devant toutes les nouvelles lignes.

Liste de paramètres

string

La chaîne d'entrée.

is_xhtml

Produit des césures compatibles XHTML ou non.

Valeurs de retour

Retourne la chaîne modifiée.

Exemples

Exemple #1 Exemple avec nl2br()

<?php
echo nl2br("foo isn't\n bar");
?>

L'exemple ci-dessus va afficher :

foo isn't<br />
 bar

Exemple #2 Génération de code HTML valide avec le paramètre is_xhtml

<?php
echo nl2br("Welcome\r\nThis is my HTML document"false);
?>

L'exemple ci-dessus va afficher :

Welcome<br>
This is my HTML document

Historique

Version Description
5.3.0 Ajout du paramètre optionnel is_xhtml.
4.0.5 nl2br() est désormais compatible XHTML. Toutes les versions antérieures retourneront l'argument string avec "<br>" inséré devant les nouvelles lignes, au lieu de "<br />".

Voir aussi



number_format

(PHP 4, PHP 5)

number_formatFormate un nombre pour l'affichage

Description

string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )

Cette fonction accepte un, deux, ou quatre paramètres (et pas trois) :

Si seul le paramètre number est donné, il sera formaté sans partie décimale, mais avec une virgule entre chaque millier.

Si les deux paramètres number et decimals sont fournis, number sera formaté avec decimals décimales, un point (".") comme séparateur décimal et une virgule entre chaque millier.

Avec quatre paramètres, number sera formaté avec decimals décimales, dec_point comme séparateur décimal, et thousands_sep comme séparateur de milliers.

Valeurs de retour

Une version formatée du nombre number.

Liste de paramètres

number

Le nombre à formater.

decimals

Définit le nombre de décimal.

dec_point

Définit le séparateur pour le point décimal.

Cette fonction ne considère que le premier octet pour le séparateur. Ceci signifie que les caractères multi-octets ne fonctionneront PAS, la chaine résultante sera corrompue.

thousands_sep

Définit le séparateur des milliers.

Seul le premier octet du paramètre thousands_sep est utilisé. Par exemple, si vous utilisez &amp; comme séparateur de milliers, sur le nombre 1000, number_format() retournera 1&000.

Comme précisé au dessus dans la définition de dec_point, cette fonction le prend que le premier octet pour lire le séparateur. Ceci signifie que les caractères multi-octets ne fonctionneront pas, le résultat sera une séquence multi-octets cassée.

Exemples

Exemple #1 Exemple avec number_format()

En notation française, on utilise généralement deux chiffres après la virgule, une virgule comme séparateur décimal, et un espace comme séparateur de milliers. Cela donne :

<?php

$number 
1234.56;

// Notation anglaise (par défaut)
$english_format_number number_format($number);
// 1,235

// Notation française
$nombre_format_francais number_format($number2','' ');
// 1 234,56

$number 1234.5678;

// Notation anglaise sans séparateur des centaines
$english_format_number number_format($number2'.''');
// 1234.57

?>

Voir aussi

  • money_format() - Met un nombre au format monétaire
  • sprintf() - Retourne une chaîne formatée
  • printf() - Affiche une chaîne de caractères formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format



ord

(PHP 4, PHP 5)

ordRetourne le code ASCII d'un caractère

Description

int ord ( string $string )

Retourne le code ASCII du premier caractère de string.

Cette fonction est le contraire de chr().

Liste de paramètres

string

Un caractère.

Valeurs de retour

Retourne la valeur ASCII, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec ord()

<?php
$str 
"\n";
if (
ord($str) == 10) {
  echo 
"Le premier caractère de \$str est une nouvelle ligne\n";
}
?>

Voir aussi



parse_str

(PHP 4, PHP 5)

parse_strAnalyse une requête HTTP

Description

void parse_str ( string $str [, array &$arr ] )

Analyse la chaîne de caractères str comme s'il s'agissait d'une requête HTTP, passée via l'URL. Toutes les variables qu'elle y repère sont alors créées, avec leurs valeurs respectives.

Note:

Pour accéder à l'URL appelante QUERY_STRING, vous devez utiliser la variable $_SERVER['QUERY_STRING']. Il est aussi intéressant de lire la section sur les variables de sources externes.

Note:

La configuration de magic_quotes_gpc affecte l'affichage de cette fonction car parse_str() utilise le même mécanisme que PHP utilise pour propager les variables $_GET, $_POST, etc.

Liste de paramètres

str

La chaîne d'entrée.

arr

Si le second paramètre arr est fourni, les variables y seront stockées, sous forme d'index de tableau.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
4.0.3 Ajout du paramètre arr.

Exemples

Exemple #1 Exemple avec parse_str()

<?php
$str 
"first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo 
$first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str$output);
echo 
$output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

Voir aussi



print

(PHP 4, PHP 5)

printAffiche une chaîne de caractères

Description

int print ( string $arg )

Affiche le paramètre arg.

print() n'est pas vraiment une fonction (c'est techniquement une structure de langage). Cela fait que vous n'êtes pas obligé d'utiliser des parenthèses.

Liste de paramètres

arg

Les données d'entrée.

Valeurs de retour

Retourne 1, toujours.

Exemples

Exemple #1 Exemple avec print()

<?php
print("Bonjour le monde");

print 
"print() fonctionne aussi sans les parenthèses.";

print 
"Ce print() se
répartit sur plusieurs lignes. Il affiche aussi les
nouvelles lignes"
;

print 
"Ce print() se\nrépartit sur plusieurs lignes. Il affiche aussi les\nnouvelles lignes";

print 
"L'échappement de caractères se fait : \"comme ceci\".";

// Vous pouvez utiliser des variables avec print
$foo "foobar";
$bar "barbaz";

print 
"foo vaut $foo"// foo vaut foobar

// Vous pouvez aussi utiliser des tableaux
$bar = array("clé" => "foo");

print 
"c'est {$bar['clé']} !"// c'est foo !

// Les guillemets simples annulent le remplacement des variables
print 'foo vaut $foo'// foo vaut $foo

// Si vous n'utilisez pas d'autres caractères, vous 
// pouvez afficher simplement vos variables comme ceci
print $foo// foobar

print <<<END
Cette syntaxe s'intitule le "here document" et 
permet d'afficher plusieurs lignes avec de 
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
END;
?>

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Voir aussi



printf

(PHP 4, PHP 5)

printfAffiche une chaîne de caractères formatée

Description

int printf ( string $format [, mixed $args [, mixed $... ]] )

Affiche une chaîne de caractères formatée.

Liste de paramètres

format

Voir la documentation de la fonction sprintf() pour une description du paramètre format.

args

...

Valeurs de retour

Retourne la taille de la chaîne affichée.

Voir aussi

  • print() - Affiche une chaîne de caractères
  • sprintf() - Retourne une chaîne formatée
  • vprintf() - Affiche une chaîne formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • flush() - Vide les tampons de sortie



quoted_printable_decode

(PHP 4, PHP 5)

quoted_printable_decodeConvertit une chaîne quoted-printable en chaîne 8 bits

Description

string quoted_printable_decode ( string $str )

quoted_printable_decode() retourne la chaîne de caractères str, après l'avoir convertie du format quoted printable binaire 8 bits (en accord avec la » RFC2045, section 6.7, et non pas la » RFC2821, section 4.5.2, pour que les virgules additionnelles ne soient pas effacée du début de la ligne).

Cette fonction est similaire à imap_qprint(), hormis le fait qu'elle n'exige pas le module IMAP pour fonctionner.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne, convertie au format 8-bits.

Voir aussi



quoted_printable_encode

(PHP 5 >= 5.3.0)

quoted_printable_encodeConvertit une chaîne 8 bits en une chaîne quoted-printable

Description

string quoted_printable_encode ( string $str )

Retourne une chaîne quoted printable créée suivant les règles de » RFC2045, section 6.7.

Cette fonction est similaire à imap_8bit(), sauf qu'elle ne requiert par de module IMAP pour fonctionner.

Liste de paramètres

str

La chaîne à traiter.

Valeurs de retour

La chaîne encodée.

Voir aussi



quotemeta

(PHP 4, PHP 5)

quotemetaProtège les métacaractères

Description

string quotemeta ( string $str )

Retourne la chaîne str après avoir introduit un antislash (\) devant tous les caractères suivants :

. \ + * ? [ ^ ] ( $ )

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne dont les métacaractères ont été protégés ou FALSE si une chaîne vide est fournie dans le paramètre str.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • addslashes() - Ajoute des antislashs dans une chaîne
  • addcslashes() - Ajoute des slash dans une chaîne, à la mode du langage C
  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • nl2br() - Insère un retour à la ligne HTML à chaque nouvelle ligne
  • stripslashes() - Supprime les antislashs d'une chaîne
  • stripcslashes() - Décode une chaîne encodée avec addcslashes
  • preg_match() - Expression rationnelle standard
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles



rtrim

(PHP 4, PHP 5)

rtrimSupprime les espaces (ou d'autres caractères) de fin de chaîne

Description

string rtrim ( string $str [, string $charlist ] )

Retourne la chaîne str, après avoir supprimé tous les caractères blancs de fin de chaîne.

Appelée sans le second paramètre, rtrim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.
  • "\t" (ASCII 9 (0x09)), une tabulation.
  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
  • "\0" (ASCII 0 (0x00)), le caractère NUL.
  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Liste de paramètres

str

La chaîne d'entrée.

charlist

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre charlist. Listez simplement les caractères que vous voulez supprimer dans ce paramètre. Avec .., vous pourrez spécifier des intervalles de caractères.

Valeurs de retour

Retourne la chaîne modifiée.

Historique

Version Description
4.1.0 Ajout du paramètre charlist.

Exemples

Exemple #1 Exemple avec rtrim()

<?php

$text 
"\t\tThese are a few words :) ...  ";
$binary "\x09Example string\x0A";
$hello  "Hello World";
var_dump($text$binary$hello);

print 
"\n";

$trimmed rtrim($text);
var_dump($trimmed);

$trimmed rtrim($text" \t.");
var_dump($trimmed);

$trimmed rtrim($hello"Hdle");
var_dump($trimmed);

// enlève les caractères de contrôle ASCII à la fin de $binary
// (de 0 à 31 inclusif)
$clean rtrim($binary"\x00..\x1F");
var_dump($clean);

?>

L'exemple ci-dessus va afficher :

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

Voir aussi

  • trim() - Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
  • ltrim() - Supprime les espaces (ou d'autres caractères) de début de chaîne



setlocale

(PHP 4, PHP 5)

setlocaleModifie les informations de localisation

Description

string setlocale ( int $category , string $locale [, string $... ] )
string setlocale ( int $category , array $locale )

Modifie les informations de localisation.

Liste de paramètres

category

category est une constante (ou une chaîne) qui spécifie la catégorie de fonctions affectées par la configuration de localisation :

  • LC_ALL pour toutes les constantes suivantes
  • LC_COLLATE pour la comparaison de chaînes de caractères. Voir strcoll()
  • LC_CTYPE pour la classification et la conversion de caractères. Voir strtoupper()
  • LC_MONETARY pour localeconv()
  • LC_NUMERIC pour le séparateur décimal. Voir localeconv()
  • LC_TIME pour le format de date et d'heure avec strftime()
  • LC_MESSAGES pour les réponses système (disponible si PHP a été compilé avec libintl)

locale

Si locale est NULL ou la chaîne vide (""), les noms de locales seront pris dans l'environnement, à partir des variables de même nom que les catégories ci-dessus, ou depuis "LANG".

Si locale vaut NULL ou vaut "0", la configuration locale ne sera pas modifiée, et la configuration courante sera retournée.

Si locale est un tableau ou bien est suivi par des paramètres additionnels, alors chaque élément du tableau ou chaque paramètre tente d'être défini comme nouvelle locale jusqu'à ce qu'un réussisse. Cela est pratique si la locale est connue sous différents noms sur des systèmes différents ou bien pour prévoir une autre valeur en cas de non disponibilité de la locale choisie.

...

(Chaîne ou tableau de paramètres optionnel à essayer comme configuration de la locale jusqu'à réussite.)

Note:

Sous Windows, setlocale(LC_ALL, '') définit les noms de la locale depuis la configuration de la langue/de la région du système d'exploitation (accessible depuis le Panneau de Contrôle).

Valeurs de retour

Retourne la nouvelle configuration locale, ou FALSE si la localisation n'est pas implémentée sur votre plate-forme, si la variable de localisation n'existe pas, ou si la catégorie spécifiée n'est pas valide.

Un nom de catégorie invalide générera un message d'alerte. La liste des noms de locales/catégories peut être trouvée en consultant la » RFC 1766 ainsi que l'» ISO 639. Les différentes plates-formes possèdent des conventions de nommages différentes.

Note:

La valeur retournée par setlocale() dépend du système sur lequel PHP est installé. setlocale() retourne exactement ce que la fonction système setlocale retourne.

Historique

Version Description
5.3.0 Cette fonction émet désormais une alerte E_DEPRECATED si une chaîne est passée comme paramètre category au lieu d'une des constantes LC_*.
4.3.0 Passer plusieurs locales devient possible.
4.2.0 Passer category en tant que chaîne est déconseillé, utilisez les constantes mentionnées plus haut à la place. Les passer en tant que chaînes (entre guillemets) provoquera l'affichage d'un message d'avertissement.

Exemples

Exemple #1 Exemple avec setlocale()

<?php
/* Configure le script en hollandais */
setlocale(LC_ALL'nl_NL');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y"mktime(00012221978));

/* Essai de différentes valeurs possible pour l'allemand depuis PHP 4.3.0 */
$loc_de setlocale(LC_ALL'de_DE@euro''de_DE''de''ge');
echo 
"L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Exemple #2 Exemple avec setlocale() sous Windows

<?php
/* Configure le script en hollandais */
setlocale(LC_ALL'nld_nld');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y"mktime(00012221978));

/* Essai de différentes valeurs possible pour l'allemand depuis PHP 4.3.0 */
$loc_de setlocale(LC_ALL'de_DE@euro''de_DE''deu_deu');
echo 
"L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Notes

Avertissement

L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multi-threadé comme IIS ou Apache sur Windows, vous pourriez obtenir des changements soudains des configurations locales pendant qu'un script fonctionne, même si celui-ci n'appelle jamais la fonction setlocale(). Ceci survient à cause des autres scripts qui fonctionnent dans des threads différents du même processus. Ces scripts changent les configurations locales dans le processus au complet en utilisant la fonction setlocale().

Astuce

Les utilisateurs de Windows trouverons des informations utiles à propos du paramètre locale sur le site web MSDN de Microsoft. Les valeurs de locales supportées peuvent être trouvées » ici et les chaînes de pays/région » ici.



sha1_file

(PHP 4 >= 4.3.0, PHP 5)

sha1_fileCalcule le sha1 d'un fichier

Description

string sha1_file ( string $filename [, bool $raw_output = false ] )

Calcule le sha1 du fichier spécifié par le paramètre filename en utilisant » US Secure Hash Algorithm 1, puis retourne ce sha1. Le sha1 est un nombre hexadécimal de 40 caractères.

Liste de paramètres

filename

Le nom du fichier à hasher.

raw_output

Lorsque TRUE, retourne le prétraitement en format binaire brut avec une grandeur de 20.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE autrement.

Exemples

Exemple #1 Exemple avec sha1_file()

<?php
foreach(glob('/home/Kalle/myproject/*.php') as $ent)
{
    if(
is_dir($ent))
    {
        continue;
    }

    echo 
$ent ' (SHA1: ' sha1_file($ent) . ')'PHP_EOL;
}
?>

Historique

Version Description
5.1.0 La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme sha1_file('http://example.com/..')
5.0.0 Ajout du paramètre raw_output

Voir aussi

  • sha1() - Calcule le sha1 d'une chaîne de caractères
  • md5_file() - Calcule le md5 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32



sha1

(PHP 4 >= 4.3.0, PHP 5)

sha1Calcule le sha1 d'une chaîne de caractères

Description

string sha1 ( string $str [, bool $raw_output = false ] )

Calcule le sha1 de la chaîne de caractères str en utilisant » US Secure Hash Algorithm 1.

Liste de paramètres

str

La chaîne d'entrée.

raw_output

Si le paramètre optionnel raw_output est passé à TRUE, le sha1 est retourné sous forme binaire brute avec une taille de 20 caractères, sinon, il est retourné sous la forme d'un nombre hexadécimal d'une taille de 40 caractères.

Valeurs de retour

Retourne le sha1, sous la forme d'une chaîne de caractères.

Historique

Version Description
5.0.0 Ajout du paramètre raw_output.

Exemples

Exemple #1 Exemple avec sha1()

<?php
$str 
'pomme';

if (
sha1($str) === '752c14ea195c460bac3c3b7896975ee9fd15eeb7') {
    echo 
"Voulez-vous une golden ou une spartan ?";
}
?>

Voir aussi

  • sha1_file() - Calcule le sha1 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32
  • md5() - Calcule le md5 d'une chaîne
  • hash() - Génère une valeur de hachage (empreinte numérique)



similar_text

(PHP 4, PHP 5)

similar_textCalcule la similarité de deux chaînes

Description

int similar_text ( string $first , string $second [, float &$percent ] )

Calcule la similarité entre les deux chaînes first et second, selon la méthode d'Oliver [1993]. Notez que cette implémentation n'utilise pas la méthode de pile comme dans le pseudo code d'Oliver, mais des appels récursifs, ce qui accélère ou pas le processus. Notez que la complexité de l'algorithme est en O(N**3) où N est la taille de la plus grande chaîne.

Liste de paramètres

first

La première chaîne.

second

La seconde chaîne.

percent

En passant une référence en tant que troisième argument, similar_text() va calculer la similarité en pourcentage automatiquement.

Valeurs de retour

Retourne le nombre de caractères identiques dans les deux chaînes.

Voir aussi



soundex

(PHP 4, PHP 5)

soundexCalcule la clé soundex

Description

string soundex ( string $str )

Calcule la clé soundex de la chaîne str.

La clé soundex possède la propriété qui fait que deux mots prononcés similairement auront la même clé soundex. Cette fonction est donc utilisée pour simplifier les recherches dans les bases de données, où vous connaissez la prononciation d'un mot ou nom, mais pas son orthographe exacte. Cette fonction retourne une chaîne de 4 caractères, commençant par une lettre.

L'implémentation de la fonction soundex de PHP a été décrite par Donald Knuth dans "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la clé soundex, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemples Soundex

<?php
soundex
("Euler")       == soundex("Ellery");    // E460
soundex("Gauss")       == soundex("Ghosh");     // G200
soundex("Hilbert")     == soundex("Heilbronn"); // H416
soundex("Knuth")       == soundex("Kant");      // K530
soundex("Lloyd")       == soundex("Ladd");      // L300
soundex("Lukasiewicz") == soundex("Lissajous"); // L222
?>

Voir aussi



sprintf

(PHP 4, PHP 5)

sprintfRetourne une chaîne formatée

Description

string sprintf ( string $format [, mixed $args [, mixed $... ]] )

Retourne une chaîne formatée, avec le format format, en utilisant les arguments args.

Liste de paramètres

format

La chaîne de format est composée de zéro, une ou plusieurs directives : les caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat, et des spécifications de conversion, qui exploitent chacune un des arguments passés après la chaîne de format. Ces formats s'appliquent à sprintf() et printf().

Chaque spécification de conversion est constituée d'un signe de pourcentage (%), suivi d'un ou plusieurs des éléments suivants, dans cet ordre :

  1. Le signe optionnel ne force pas le nombre à être positif/négatif mais force à utiliser le signe - ou + sur un nombre. Par défaut, seul le signe - est utilisé sur un nombre s'il est négatif. Ce spécificateur force également les nombres positifs à avoir un signe + d'attaché, et a été ajouté en PHP 4.3.0.
  2. Un remplisseur optionnel qui indique quel caractère sera utilisé pour compléter le résultat jusqu'à la longueur requise. Ce peut être le caractère d'espace, ou le caractère 0. Par défaut, le remplissage se fait avec des espaces. Un autre caractère de remplissage peut être spécifié en le préfixant avec un guillemet simple (') : voir les exemples ci-dessous.
  3. Un spécificateur d'alignement qui indique si le résultat doit être aligné à gauche ou à droite. Par défaut, le résultat est aligné à gauche. Le caractère - fera que le résultat sera justifié à gauche.
  4. Un nombre optionnel, spécificateur de taille indique le nombre minimum de caractères que cette conversion doit fournir en résultat.
  5. Un spécificateur de précision de la forme d'un point ("."), suivi par un nombre de décimales qui doivent être affichées pour les nombres décimaux. Lorsque vous utilisez ce spécificateur dans une chaîne, il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.
  6. Un spécificateur de type qui indique le type avec lequel l'argument sera traité. Plusieurs types possibles :

    • % : un caractère de pourcentage littéral. Aucun argument n'est nécessaire.
    • b : l'argument est traité comme un entier, et présenté comme un nombre binaire.
    • c : l'argument est traité comme un entier, et présenté comme le caractère de code ASCII correspondant.
    • d : l'argument est traité comme un entier, et présenté comme un nombre décimal signé.
    • e : l'argument est traité comme une notation scientifique (e.g. 1.2e+2). Le spécificateur de précision représente le nombre de chiffres après la virgule depuis PHP 5.2.1. Dans les versions antérieures, il a été pris comme nombre des chiffres significatifs (au moins un).
    • E : comme %e mais utilise des lettres en majuscule (i.e. 1.2E+2).
    • u : l'argument est traité comme un entier, et présenté comme un nombre décimal non signé.
    • f : l'argument est traité comme un nombre à virgule flottante (type float), et présenté comme un nombre à virgule flottante (tenant compte de la locale utilisée).
    • F : l'argument est traité comme un nombre à virgule flottante (type float), et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée). Disponible depuis PHP 4.3.10 et PHP 5.0.3.
    • g : raccourci pour %e et %f.
    • G : reccourci pour %E et %f.
    • o : l'argument est traité comme un entier, et présenté comme un nombre octal.
    • s : l'argument est traité et présenté comme une chaîne de caractères.
    • x : l'argument est traité comme un entier, et présenté comme un nombre hexadécimal (les lettres en minuscules).
    • X : l'argument est traité comme un entier, et présenté comme un nombre hexadécimal (les lettres en majuscules).

La chaîne de format supporte le numérotage et l'échange d'arguments. Par exemple :

Exemple #1 Échange d'arguments

<?php
$num 
5;
$location 'bananier';

$format 'Il y a %d singes dans le %s';
printf($format$num$location);
?>
Ainsi, cet exemple affichera : "Il y a 5 singes dans le bananier". Mais imaginez que la chaîne de format soit créée dans un script séparé, comme une bibliothèque : cela arrive lorsqu'il faut internationaliser une application. Suivant la langue, il faudra peut-être écrire :

Exemple #2 Échange d'arguments (2)

<?php
$format 
'Le %s a %d singes';
printf($format$num$location);
?>
Ici, nous voyons bien le problème. L'ordre des arguments a été changé, et ne correspond plus à l'ordre des arguments dans le script PHP. Nous souhaitons laisser le code PHP intact, mais simplement indiquer dans la chaîne de formatage l'ordre dans lequel les arguments doivent être utilisés. La chaîne de format peut être réécrite ainsi :

Exemple #3 Échange d'arguments (3)

<?php
$format 
'Le %2$s a %1$d singes';
printf($format$num$location);
?>
Un des avantages est que vous pouvez désormais exploiter plusieurs fois les arguments sans les répéter. Ainsi :

Exemple #4 Échange d'arguments (4)

<?php
$format 
'Le %2$s a %1$d singes.
           C\'est un beau %2$s avec %1$d singes.'
;
printf($format$num$location);
?>

args

...

Valeurs de retour

Retourne une chaîne de caractères créée suivant le format format.

Historique

Version Description
4.0.6 Ajout du support de l'argument d'échange

Exemples

Exemple #5 printf() : divers exemples

<?php
$n 
=  43951789;
$u = -43951789;
$c 65// ASCII 65 is 'A'

// notez le double %%, cela affiche un caractère '%' littéral
printf("%%b = '%b'\n"$n); // représentation binaire
printf("%%c = '%c'\n"$c); // affiche le caractère ascii, comme la fonction chr()
printf("%%d = '%d'\n"$n); // représentation standard d'un entier
printf("%%e = '%e'\n"$n); // notation scientifique
printf("%%u = '%u'\n"$n); // représentation entière non signée d'un entier positif
printf("%%u = '%u'\n"$u); // représentation entière non signée d'un entier négatif
printf("%%f = '%f'\n"$n); // représentation en virgule flottante
printf("%%o = '%o'\n"$n); // représentation octale
printf("%%s = '%s'\n"$n); // représentation chaîne de caractères
printf("%%x = '%x'\n"$n); // représentation hexadécimal (minuscule)
printf("%%X = '%X'\n"$n); // représentation hexadécimal (majuscule)

printf("%%+d = '%+d'\n"$n); // indication du signe pour un entier positif
printf("%%+d = '%+d'\n"$u); // indication du signe pour un entier négatif
?>

L'exemple ci-dessus va afficher :

%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'

Exemple #6 printf() : spécificateurs chaînes de caractères

<?php
$s 
'monkey';
$t 'many monkeys';

printf("[%s]\n",      $s); // affichage d'une chaîne standard
printf("[%10s]\n",    $s); // justification à droite avec des espaces
printf("[%-10s]\n",   $s); // justification à gauche avec des espaces
printf("[%010s]\n",   $s); // l'espacement nul fonctionne aussi sur les chaînes
printf("[%'#10s]\n",  $s); // utilisation du caractère personnalisé de séparation '#'
printf("[%10.10s]\n"$t); // justification à gauche mais avec une coupure à 10 caractères
?>

L'exemple ci-dessus va afficher :

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[many monke]

Exemple #7 sprintf() : entier sans espace

<?php
$isodate 
sprintf("%04d-%02d-%02d"$year$month$day);
?>

Exemple #8 sprintf() : formatage de devises

<?php
$money1 
68.75;
$money2 54.35;
$money $money1 $money2;
// echo $money affichera "123.1";
$formatted sprintf("%01.2f"$money);
// echo $formatted affichera "123.10"
?>

Exemple #9 sprintf(): notation scientifique

<?php
$number 
362525200;

echo 
sprintf("%.3e"$number); // affiche 3.625e+8
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • vsprintf() - Retourne une chaîne formatée
  • number_format() - Formate un nombre pour l'affichage



sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanfAnalyse une chaîne à l'aide d'un format

Description

mixed sscanf ( string $str , string $format [, mixed &$... ] )

sscanf() est l'inverse de la fonction printf(). sscanf() lit des données dans la chaîne str, et l'interprète en fonction du format format, qui est décrit dans la documentation de la fonction sprintf().

Tous les caractères blancs dans la chaîne format correspondent à un caractère blanc dans la chaîne str. Cela signifie que même une tabulation \t dans la chaîne de format peut correspondre à un simple espace dans la chaîne str.

Liste de paramètres

str

La chaîne à analyser.

format

Le format interprété pour la chaîne str, qui est décrit dans la documentation de la fonction sprintf() avec les différences suivantes :

  • La fonction n'est pas sensible à la locale courante.
  • F, g, G et b ne sont pas supportés.
  • D correspond aux nombres décimals.
  • i correspond aux entiers avec une détection de la base.
  • n correspond aux nombres de caractères analysés.

...

Optionnellement, vous pouvez passer des variables dans ce paramètre, par référence qui contiendront les valeurs de l'analyse.

Valeurs de retour

Si seuls deux paramètres sont fournis, les valeurs trouvées seront retournées sous forme de tableau. Sinon, les valeurs seront placées dans un tableau. Si l'argument optionnel est passé, la fonction retournera le nombre de valeurs assignées. Le paramètre optionnel doit être passé par référence.

Exemples

Exemple #1 Exemple avec sscanf()

<?php
// Lecture d'un numéro de série
list($serial) = sscanf("SN/2350001""SN/%d");
// et la date de fabrication
$mandate "January 01 2000";
list(
$month$day$year) = sscanf($mandate"%s %d %d");
echo 
"Le produit $serial a été fabriqué le : $year-" substr($month03) . "-$day\n";
?>

Si des paramètres optionnels sont passés, sscanf() retournera le nombre de valeurs assignées.

Exemple #2 sscanf() - utilisation des paramètres optionnels

<?php
// lit les informations d'auteur, et génère une entrée DocBook
$auth "24\tLewis Carroll";
$n sscanf($auth"%d\t%s %s"$id$first$last);
echo 
"<author id='$id'>
    <firstname>
$first</firstname>
    <surname>
$last</surname>
</author>\n"
;
?>

Voir aussi

  • fscanf() - Analyse un fichier en fonction d'un format
  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée



str_getcsv

(PHP 5 >= 5.3.0)

str_getcsvAnalyse une chaîne de caractères CSV dans un tableau

Description

array str_getcsv ( string $input [, string $delimiter = ',' [, string $enclosure = '"' [, string $escape = '\\' ]]] )

Similaire à la fonction fgetcsv(), cette fonction analyse une chaîne de caractères comme argument, contrairement à fgetcsv() qui prend un fichier.

Liste de paramètres

input

La chaîne à analyser.

delimiter

Le délimiteur de champ (un seul caractère).

enclosure

Le caractère d'encadrement (un seul caractère).

escape

Le caractère de protection (un seul caractère). Par défaut, c'est l'antislash. (\)

Valeurs de retour

Retourne un tableau contenant les champs lus.

Voir aussi

  • fgetcsv() - Renvoie la ligne courante et cherche les champs CSV



str_ireplace

(PHP 5)

str_ireplaceVersion insensible à la casse de str_replace()

Description

mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

str_ireplace() retourne une chaîne de caractères ou un tableau dont toutes les occurrences de search dans subject (en ignorant la casse), ont été remplacées par la valeur de replace. Si vous n'avez pas besoin de règles de recherche complexes, il est recommandé d'utiliser cette fonction à la place de preg_replace() avec l'option i.

Liste de paramètres

Si les paramètres search et replace sont des tableaux, alors la fonction str_ireplace() prendra une valeur de chaque tableau et les utilisera pour la recherche et le remplacement sur subject. Si les paramètres replace a moins de valeurs que le paramètre search, alors une chaîne de caractères vide sera utilisée comme valeur pour le reste des valeurs de remplacement. Si le paramètre search est un tableau et que le paramètre replace est une chaîne de caractères, alors cette chaîne de caractères de remplacement sera utililsée pour chaque valeur de search. L'inverse n'a pas de sens.

Si le paramètre search ou le paramètre replace sont des tableaux, leurs éléments sont traités du premier au dernier.

search

La valeur à chercher, connue aussi sous le nom de needle. Un tableau peut être utilisé pour désigner plusieurs needles.

replace

La valeur de remplacement utilisée pour chaque valeur trouvée dans search. Un tableau peut être utilisé pour désigner plusieurs remplacements.

subject

Une chaîne de caractères ou un tableau dans lequel la recherche s'effectue, aussi connu sous le nom de haystack.

Si subject est un tableau, le remplacement est effectué sur chacun des éléments du sujet subject, et la valeur retournée est un aussi un tableau.

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

Retourne une chaîne ou un tableau de remplacement.

Historique

Version Description
5.0.0 Ajout du paramètre count.

Exemples

Exemple #1 Exemple avec str_ireplace()

<?php
$bodytag 
str_ireplace("%body%""black""<body text=%BODY%>");
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Attention

Ordre de remplacement

Vu le fait que la fonction str_ireplace() effectue les remplacements de la gauche vers la droite, elle peut remplacer une valeur précédemment insérée lors de remplacement multpiple. L'exemple #2 de la documentation de la fonction str_replace() sur la façon de traiter cette problématique.

Voir aussi

  • str_replace() - Remplace toutes les occurrences dans une chaîne
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • strtr() - Remplace des caractères dans une chaîne



str_pad

(PHP 4 >= 4.0.1, PHP 5)

str_padComplète une chaîne jusqu'à une taille donnée

Description

string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

Retourne la chaîne input, complétée à droite, à gauche ou dans les deux sens, avec la chaîne pad_string jusqu'à ce qu'elle atteigne la taille de pad_length.

Liste de paramètres

input

La chaîne d'entrée.

pad_length

Si la valeur de pad_length est négative, plus petite que, ou égale à la taille courante de la chaîne input, input est retournée inchangée.

pad_string

Note:

Le paramètre pad_string peut être tronqué si le nombre de caractères de complétion n'est pas multiple de la taille de pad_string.

pad_type

L'argument optionnel pad_type peut être l'une des constantes suivantes : STR_PAD_RIGHT, STR_PAD_LEFT, ou STR_PAD_BOTH. Si pad_type n'est pas spécifié, il prend la valeur par défaut de STR_PAD_RIGHT.

Valeurs de retour

Retourne la chaîne complétée.

Exemples

Exemple #1 Exemple avec str_pad()

<?php
$input 
"Alien";
echo 
str_pad($input10);                      // affiche "Alien     "
echo str_pad($input10"-="STR_PAD_LEFT);  // affiche "-=-=-Alien"
echo str_pad($input10"_"STR_PAD_BOTH);   // affiche "__Alien___"
echo str_pad($input"___");               // affiche "Alien_"
?>



str_repeat

(PHP 4, PHP 5)

str_repeatRépète une chaîne

Description

string str_repeat ( string $input , int $multiplier )

Retourne la chaîne input répétée multiplier fois.

Liste de paramètres

input

La chaîne à répéter.

multiplier

Nombre de fois où la chaîne input doit être multipliée.

multiplier doit être positif ou nul. Si multiplier vaut 0, la fonction retourne la chaîne vide.

Valeurs de retour

Retourne la chaîne, répétée multiplier fois.

Exemples

Exemple #1 Exemple avec str_repeat()

<?php
echo str_repeat("-="10);
?>

L'exemple ci-dessus va afficher :

-=-=-=-=-=-=-=-=-=-=

Voir aussi

  • for
  • str_pad() - Complète une chaîne jusqu'à une taille donnée
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne



str_replace

(PHP 4, PHP 5)

str_replaceRemplace toutes les occurrences dans une chaîne

Description

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace.

Si vous n'avez pas besoin de règles de remplacement compliquées (comme les expressions rationnelles), utilisez cette fonction de préférence à preg_replace().

Liste de paramètres

Si les paramètres search et replace sont des tableaux, alors la fonction str_replace() prendra une valeur de chaque tableau et les utilisera pour la recherche et le remplacement sur subject. Si les paramètres replace a moins de valeurs que le paramètre search, alors une chaîne de caractères vide sera utilisée comme valeur pour le reste des valeurs de remplacement. Si le paramètre search est un tableau et que le paramètre replace est une chaîne de caractères, alors cette chaîne de caractères de remplacement sera utilisée pour chaque valeur de search. L'inverse n'a pas de sens.

Si search ou replace sont des tableaux, les éléments sont traités du premier, au dernier.

search

La valeur à chercher, autrement connue comme le masque. Un tableau peut être utilisé pour désigner plusieurs masques.

replace

La valeur de remplacement à substituer aux valeurs trouvées. Un tableau peut être utilisé pour désigner plusieurs valeurs de remplacement.

subject

La chaîne de caractères ou le tableau sur lequel on va effectuer la recherche et le remplacement, aussi connu sous le nom de haystack.

Si subject est un tableau, alors le remplacement se fera sur chaque élément de celui-ci, et la valeur retournée sera aussi un tableau.

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

Cette fonction retourne une chaîne, ou un tableau, contenant les valeurs remplacées.

Historique

Version Description
5.0.0 Ajout du paramètre count.
4.3.3 Le comportement de cette fonction a changée. Dans les version précédentes, un bogue existait lors de l'utilisation de tableaux avec les paramètres search et replace en même temps. Les index de search qui étaient vides étaient ignorés, mais le pointeur interne de replace n'étais pas incrémenté. Cela a été corrigé en PHP 4.3.3, tout script s'appuyant sur ce bogue, doit supprimer les entrées vides avant d'appeler cette fonction pour imiter le comportement d'origine.
4.0.5 Le plupart des paramètres peut maintenant être un tableau.

Exemples

Exemple #1 Exemple 1 avec str_replace()

<?php
// Génère : <body text='black'>
$bodytag str_replace("%body%""black""<body text='%body%'>");

// Génère : Hll Wrld f PHP
$vowels = array("a""e""i""o""u""A""E""I""O""U");
$onlyconsonants str_replace($vowels"""Hello World of PHP");

// Génère : You should eat pizza, beer, and ice cream every day
$phrase  "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits""vegetables""fiber");
$yummy   = array("pizza""beer""ice cream");

$newphrase str_replace($healthy$yummy$phrase);

// Génère : 2
$str str_replace("ll""""good golly miss molly!"$count);
echo 
$count;

?>

Exemple #2 Exemple 2 avec str_replace()

<?php
// Ordre des remplacements
$str     "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n""\n""\r");
$replace '<br />';

// Traitement du premier \r\n, ils ne seront pas convertis deux fois.
$newstr str_replace($order$replace$str);

// Affiche F car A est remplacé par B, puis B est remplacé par C, et ainsi de suite...
// Finalement, E est remplacé par F
$search  = array('A''B''C''D''E');
$replace = array('B''C''D''E''F');
$subject 'A';
echo 
str_replace($search$replace$subject);

// Affiche : apearpearle pear
// Pour les mêmes raisons que plus haut
$letters = array('a''p');
$fruit   = array('apple''pear');
$text    'a p';
$output  str_replace($letters$fruit$text);
echo 
$output;
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Attention

Ordre de remplacement

A cause du fait que la fonction str_replace() effectue les remplacements de la gauche vers la droite, elle peut remplacer une valeur précédemment insérée lors de multiples remplacements.

Note:

Cette fonction est sensible à la casse. Utilisez la fonction str_ireplace() pour un remplacement insensible à la casse.

Voir aussi



str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13Effectue une transformation ROT13

Description

string str_rot13 ( string $str )

Effectue un encodage ROT13 de la chaîne str et retourne le résultat.

L'encodage ROT13 décale toutes les lettres de 13 dans l'alphabet, et laisse tous les autres caractères inchangés. L'encodage et le décodage est fait par la même fonction : passer le résultat de str_rot13() à nouveau comme argument, retournera la chaîne originale.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la version ROT13 de la chaîne fournie.

Exemples

Exemple #1 Exemple avec str_rot13()

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Historique

Version Description
4.3.0 Le comportement de cette fonction a été corrigé. Avant cela, le paramètre str était aussi modifié, comme si il avait été passé par référence.



str_shuffle

(PHP 4 >= 4.3.0, PHP 5)

str_shuffleMélange les caractères d'une chaîne de caractères

Description

string str_shuffle ( string $str )

str_shuffle() mélange les caractères d'une chaîne. Une permutation parmi toutes celles possibles est créée.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne mélangée.

Exemples

Exemple #1 Exemple avec str_shuffle()

<?php
$str 
'abcdef';
$shuffled str_shuffle($str);

// Cela va afficher quelque chose comme : bfdaec
echo $shuffled;
?>

Voir aussi

  • shuffle() - Mélange les éléments d'un tableau
  • rand() - Génère une valeur aléatoire



str_split

(PHP 5)

str_splitConvertit une chaîne de caractères en tableau

Description

array str_split ( string $string [, int $split_length = 1 ] )

Convertit une chaîne de caractères en tableau.

Liste de paramètres

string

La chaîne d'entrée.

split_length

Longueur maximale de chaque élément.

Valeurs de retour

Si le paramètre optionnel split_length est spécifié, le tableau retourné sera découpé en sous-parties, chacune de taille split_length, sinon, chaque sous-partie aura la taille d'un caractère.

FALSE est retourné si split_length est inférieur à 1. Si la longueur de split_length est supérieure à celle de string, la chaîne entière est retournée dans le premier (et seul) élément du tableau.

Exemples

Exemple #1 Exemple avec str_split()

<?php

$str 
"Hello Friend";

$arr1 str_split($str);
$arr2 str_split($str3);

print_r($arr1);
print_r($arr2);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

Voir aussi



str_word_count

(PHP 4 >= 4.3.0, PHP 5)

str_word_countCompte le nombre de mots utilisés dans une chaîne

Description

mixed str_word_count ( string $string [, int $format = 0 [, string $charlist ]] )

str_word_count() compte le nombre de mots dans la chaîne string. Si le paramètre optionnel format n'est pas spécifié, alors la valeur retournée sera un entier, représentant le nombre de mots trouvés. Si format est spécifié, la valeur retournée sera un tableau, qui dépend du format format. Les valeurs possibles pour format sont listées plus bas.

Dans cette fonction, la notion de mot dépend de la configuration de localisation. C'est une chaîne qui contient tous les caractères alphabétiques, et qui peut contenir, mais pas commencer par "'" et "-".

Liste de paramètres

string

La chaîne de caractères

format

Spécifie la valeur de retour de cette fonction. Les valeurs actuellement supportées sont :

  • 0 : retourne le nombre de mots trouvés
  • 1 : retourne un tableau contenant tous les mots trouvés à l'intérieur de string
  • 2 : retourne un tableau associatif, où la clé indique la position numérique du mot à l'intérieur de string et la valeur est le mot actuel

charlist

Une liste des caractères additionnels qui seront considérés comme un mot

Valeurs de retour

Retourne un tableau ou un entier, dépendemment du format choisi.

Historique

Version Description
5.1.0 Ajout du paramètre charlist

Exemples

Exemple #1 Exemple avec str_word_count()

<?php

$str 
"Salut l'ami, vous
        avez          une b3lle mine !"
;

print_r(str_word_count($str1));
print_r(str_word_count($str2));
print_r(str_word_count($str1'àáãç3'));

echo 
str_word_count($str);

?>

L'exemple ci-dessus va afficher :


Array
(
    [0] => Salut
    [1] => l'ami
    [2] => vous
    [3] => avez
    [4] => une
    [5] => b
    [6] => lle
    [7] => mine
)

Array
(
    [0] => Salut
    [6] => l'ami
    [13] => vous
    [27] => avez
    [41] => une
    [45] => b
    [47] => lle
    [51] => mine
)

Array
(
    [0] => Salut
    [1] => l'ami
    [2] => vous
    [3] => avez
    [4] => une
    [5] => b3lle
    [6] => mine
)

8

Voir aussi

  • explode() - Coupe une chaîne en segments
  • preg_split() - Éclate une chaîne par expression rationnelle
  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • count_chars() - Retourne des statistiques sur les caractères utilisés dans une chaîne
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne



strcasecmp

(PHP 4, PHP 5)

strcasecmpComparaison insensible à la casse de chaînes binaires

Description

int strcasecmp ( string $str1 , string $str2 )

Comparaison insensible à la casse de chaînes binaires.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est plus grande que str2, et 0 si les deux chaînes sont égales.

Exemples

Exemple #1 Exemple avec strcasecmp()

<?php
$var1 
"Hello";
$var2 "hello";
if (
strcasecmp($var1$var2) == 0) {
   echo 
'$var1 est égale à $var2 (comparaison insensible à la casse)';
}
?>

Voir aussi

  • preg_match() - Expression rationnelle standard
  • strcmp() - Comparaison binaire de chaînes
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strstr() - Trouve la première occurrence dans une chaîne



strchr

(PHP 4, PHP 5)

strchrAlias de strstr()

Description

Cette fonction est un alias de : strstr().



strcmp

(PHP 4, PHP 5)

strcmpComparaison binaire de chaînes

Description

int strcmp ( string $str1 , string $str2 )

Notez que cette comparaison est sensible à la casse.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Voir aussi

  • preg_match() - Expression rationnelle standard
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strncmp() - Comparaison binaire des n premiers caractères
  • strstr() - Trouve la première occurrence dans une chaîne



strcoll

(PHP 4 >= 4.0.5, PHP 5)

strcollComparaison de chaînes localisées

Description

int strcoll ( string $str1 , string $str2 )

Notez que cette comparaison est sensible à la casse, et que, contrairement à strcmp(), elle n'est pas compatible avec les chaînes binaires.

strcoll() utilise les locales courantes pour effectuer la comparaison. Si la locale courante est C ou POSIX, cette fonction est alors équivalente à la fonction strcmp().

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Historique

Version Description
4.2.3 Fonctionne désormais sous les systèmes Win32.

Voir aussi

  • preg_match() - Expression rationnelle standard
  • strcmp() - Comparaison binaire de chaînes
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strncmp() - Comparaison binaire des n premiers caractères
  • strstr() - Trouve la première occurrence dans une chaîne
  • setlocale() - Modifie les informations de localisation



strcspn

(PHP 4, PHP 5)

strcspnTrouve un segment de chaîne ne contenant pas certains caractères

Description

int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] )

Retourne la taille du premier segment de str1 qui contient aucun des caractères de str2.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

start

La position sur la chaîne à partir de laquelle on analyse.

length

La taille à examiner de la chaîne.

Valeurs de retour

Retourne la longueur du segment, sous la forme d'un entier.

Historique

Version Description
4.3.0 Ajout des paramètres start et length

Exemples

Exemple #1 Exemple avec strcspn()

<?php
$a 
strcspn('abcd',  'apple');
$b strcspn('abcd',  'banana');
$c strcspn('hello''l');
$d strcspn('hello''world');

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
?>

L'exemple ci-dessus va afficher :

int(0)
int(0)
int(2)
int(2)

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strspn() - Trouve la longueur du premier segment d'une chaîne contenant tous les caractères d'un masque donné



strip_tags

(PHP 4, PHP 5)

strip_tagsSupprime les balises HTML et PHP d'une chaîne

Description

string strip_tags ( string $str [, string $allowable_tags ] )

strip_tags() tente de retourner la chaîne str après avoir supprimé tous les octets nuls, toutes les balises PHP et HTML du code. Elle génère des alertes si les balises sont incomplètes ou erronées. Elle utilise le même moteur de recherche que fgetss().

Liste de paramètres

str

La chaîne d'entrée.

allowable_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées.

Note:

Les commentaires HTML et PHP sont également supprimés. Ce comportement ne peut être modifié avec le paramètre allowable_tags.

Note:

Ce paramètre ne doit pas contenir d'espace. strip_tags() voit une balise comme une chaîne insensible à la casse entre le caractère < et le premier espace ou le caractère >. Cela signifie que strip_tags("<br/>", "<br>") retourne une chaîne vide.

Valeurs de retour

Retourne la chaîne échappée.

Historique

Version Description
5.0.0 strip_tags() fonctionne désormais avec les données binaires
4.3.0 Les commentaires HTML sont maintenant supprimés

Exemples

Exemple #1 Exemple avec strip_tags()

<?php
$text 
'<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo 
strip_tags($text);
echo 
"\n";

// Autorise <p> et <a>
echo strip_tags($text'<p><a>');
?>

L'exemple ci-dessus va afficher :

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

Notes

Avertissement

Comme strip_tags() ne valide actuellement pas le HTML, les balises partielles ou rompues peuvent conduire à la suppression de plus de textes/données que désiré.

Avertissement

strip_tags() ne modifie pas les attributs des balises que vous autorisez via le paramètre allowable_tags, y compris les attributs style et onmouseover, que des utilisateurs mal intentionnés peuvent utiliser.

Voir aussi



stripcslashes

(PHP 4, PHP 5)

stripcslashesDécode une chaîne encodée avec addcslashes()

Description

string stripcslashes ( string $str )

Retourne la chaîne str après avoir supprimé tous les antislashs. stripcslashes() respecte les séquences spéciales du C, telles que \n, \r..., les nombres octaux et hexadécimaux.

Liste de paramètres

str

La chaîne à traiter.

Valeurs de retour

Retourne la chaîne modifiée.

Voir aussi

  • addcslashes() - Ajoute des slash dans une chaîne, à la mode du langage C



stripos

(PHP 5)

striposRecherche la première occurrence dans une chaîne, sans tenir compte de la casse

Description

int stripos ( string $haystack , string $needle [, int $offset = 0 ] )

Retourne la position numérique de la première occurrence de needle dans la chaîne haystack.

Contrairement à strpos(), stripos() est insensible à la casse.

Liste de paramètres

haystack

La chaîne dans laquelle on effectue la recherche.

needle

Le paramètre needle peut être une chaîne d'un ou plusieurs caractères.

Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme valeur d'un caractère.

offset

Le paramètre optionnel offset vous permet de spécifier à partir de quel caractère dans haystack vous souhaitez commencer la recherche. La position retournée sera toujours relative au début de la chaîne haystack.

Valeurs de retour

Retourne la position de la première occurence dans la chaîne. Si le paramètre needle n'est pas trouvé, strpos() retournera FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec stripos()

<?php
$findme    
'a';
$mystring1 'xyz';
$mystring2 'ABC';

$pos1 stripos($mystring1$findme);
$pos2 stripos($mystring2$findme);

// Non, 'a' ne fait pas partie de 'xyz'
if ($pos1 === false) {
    echo 
"La chaîne '$findme' n'a pas été trouvée dans la chaîne '$mystring'";
}

// Notez l'utilisation de ===.  Un simple == ne donnerait pas le résultat escompté
// car la lettre 'a' est à la position 0th (la première).
if ($pos2 !== false) {
    echo 
"La chaîne '$findme' a été trouvée dans la chaîne '$mystring'";
    echo 
" à la position $pos2";
}
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strpos() - Trouve la position d'un caractère dans une chaîne
  • strrpos() - Trouve la position de la dernière occurrence d'une sous-chaine dans une chaîne
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne
  • strripos() - Trouve la position de la dernière occurrence d'une chaîne dans une autre, de façon insensible à la casse
  • str_ireplace() - Version insensible à la casse de str_replace



stripslashes

(PHP 4, PHP 5)

stripslashesSupprime les antislashs d'une chaîne

Description

string stripslashes ( string $str )

Supprime les antislashs d'une chaîne.

Note:

Si magic_quotes_sybase est activée, aucun antislash n'est supprimé, mais deux apostrophes sont remplacées par une seule à la place.

Un exemple d'utilisation de stripslashes() est lorsque la directive PHP magic_quotes_gpc est à on (valeur par défaut) et que vous insérez des données dans une base de données qui requiert la protection des valeurs. Par exemple, si vous affichez simplement et directement des données provenant d'un formulaire HTML.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne une chaîne dont les antislashs on été supprimés. \' devient ', etc. Les doubles antislashs (\\) sont réduits à un seul antislash (\).

Exemples

Exemple #1 Exemple avec stripslashes()

<?php
$str 
"Avez-vous l\'oreille dure?";

// Affiche : Avez-vous l'oreille dure?
echo stripslashes($str);
?>

Note:

stripslashes() n'est pas récursif. Si vous voulez appliquer cette fonction à un tableau multidimensionnel, vous devez utiliser une fonction récursive.

Exemple #2 Utilisation de stripslashes() sur un tableau

<?php
function stripslashes_deep($value)
{
    
$value is_array($value) ?
                
array_map('stripslashes_deep'$value) :
                
stripslashes($value);

    return 
$value;
}

// Exemple
$array = array("f\\'oo""b\\'ar", array("fo\\'o""b\\'ar"));
$array stripslashes_deep($array);

// Affiche
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Voir aussi



stristr

(PHP 4, PHP 5)

stristrVersion insensible à la casse de strstr()

Description

string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Retourne une sous-chaîne de haystack, allant de la première occurrence de needle jusqu'à la fin de la chaîne.

Liste de paramètres

haystack

La chaîne à chercher.

needle

Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ASCII du caractère correspondant.

before_needle

Si vaut TRUE, stristr() retourne la partie de haystack avant la première occurrence de needle.

needle et haystack sont traitées sans tenir compte de la casse.

Valeurs de retour

Retourne la partie de la chaîne correspondante. Si needle n'est pas trouvé, la fonction retourne FALSE.

Historique

Version Description
5.3.0 Ajout du paramètre optionnel before_needle.
4.3.0 stristr() s'effectue en respectant les chaînes binaires.

Exemples

Exemple #1 Exemple avec stristr()

<?php
  $email 
'USER@EXAMPLE.com';
  echo 
stristr($email'e'); // Affiche ER@EXAMPLE.com
  
echo stristr($email'e'true); // Depuis PHP 5.3.0, Affiche US
?>

Exemple #2 Teste si une chaîne de caractères est trouvée ou pas

<?php
  $string 
'Hello World!';
  if(
stristr($string'terre') === FALSE) {
   echo 
'"terre" non trouvé dans la chaîne de caractères';
  }
// affiche : "terre" non trouvé dans la chaîne de caractères
?>

Exemple #3 Utilisation d'une "chaîne de caractères" en chiffre

<?php
  $string 
'POMME';
  echo 
stristr($string112); // 112 = p minuscule
// Affiche : POMME
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strstr() - Trouve la première occurrence dans une chaîne
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne
  • preg_match() - Expression rationnelle standard



strlen

(PHP 4, PHP 5)

strlenCalcule la taille d'une chaîne

Description

int strlen ( string $string )

Retourne la taille de la chaîne string.

Liste de paramètres

string

La chaîne de caractères à mesurer.

Valeurs de retour

La taille de la chaîne string est 0 si le paramètre string est vide.

Historique

Version Description
5.3.0 Les anciennes versions traitées un tableau comme la chaîne de caractères Array, et ainsi, retournées la longueur de la chaîne 5 et émettaient une erreur de niveau E_NOTICE.

Exemples

Exemple #1 Exemple avec strlen()

<?php
$str 
'abcdef';
echo 
strlen($str); // 6

$str ' ab cd ';
echo 
strlen($str); // 7
?>

Notes

Note:

strlen() retourne NULL lors de son exécution sur des tableaux, et une erreur de niveau E_WARNING est émise.

Voir aussi

  • count() - Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet
  • mb_strlen() - Retourne la taille d'une chaîne



strnatcasecmp

(PHP 4, PHP 5)

strnatcasecmpComparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)

Description

int strnatcasecmp ( string $str1 , string $str2 )

strnatcasecmp() implémente l'algorithme de comparaison qui ordonne les chaînes tel qu'un homme le ferait. Cette fonction est similaire à la fonction strnatcmp(), mais la comparaison n'est pas sensible à la casse. Pour plus de détails, reportez-vous à » Natural Order String Comparison de Martin Pool (en anglais).

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Tout comme les autres fonctions de comparaison de chaînes, celle-ci retourne < 0 si str1 est inférieure à str2 > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Voir aussi

  • preg_match() - Expression rationnelle standard
  • strcmp() - Comparaison binaire de chaînes
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strncmp() - Comparaison binaire des n premiers caractères
  • strstr() - Trouve la première occurrence dans une chaîne
  • setlocale() - Modifie les informations de localisation



strnatcmp

(PHP 4, PHP 5)

strnatcmpComparaison de chaînes avec l'algorithme d'"ordre naturel"

Description

int strnatcmp ( string $str1 , string $str2 )

Implémente l'algorithme de comparaison qui ordonne les chaînes tel qu'un homme le ferait. Cette fonction est similaire à la fonction strnatcmp(), mais la comparaison n'est pas sensible à la casse.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

De la même façon que les autres fonctions comparant deux chaînes, la fonction retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Exemples

Un exemple de la différence de traitement avec l'algorithme standard est présenté ci-dessous :

<?php
$arr1 
$arr2 = array("img12.png""img10.png""img2.png""img1.png");
echo 
"Tri de chaînes standard\n";
usort($arr1"strcmp");
print_r($arr1);
echo 
"\nTri de chaînes \"ordre naturel\"\n";
usort($arr2"strnatcmp");
print_r($arr2);
?>

L'exemple ci-dessus va afficher :

Tri de chaînes standard
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Tri de chaînes "ordre naturel"
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
Pour plus de détails, reportez-vous à » Natural Order String Comparison de Martin Pool (en anglais).

Voir aussi

  • preg_match() - Expression rationnelle standard
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strcmp() - Comparaison binaire de chaînes
  • strncmp() - Comparaison binaire des n premiers caractères
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
  • strstr() - Trouve la première occurrence dans une chaîne
  • natsort() - Trie un tableau avec l'algorithme à "ordre naturel"
  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse



strncasecmp

(PHP 4 >= 4.0.2, PHP 5)

strncasecmpCompare en binaire des chaînes de caractères

Description

int strncasecmp ( string $str1 , string $str2 , int $len )

strncasecmp() est similaire à strcasecmp(), à la différence près qu'elle permet de limiter le nombre de caractères utilisés pour comparer str1 et str2, avec le paramètre len.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

len

La longueur des chaînes à utiliser dans la comparaison.

Valeurs de retour

Retourne < 0 si str1 est plus petite que str2; > 0 si str1 est plus grande que str2, et 0 si elles sont égales.

Voir aussi

  • preg_match() - Expression rationnelle standard
  • strcmp() - Comparaison binaire de chaînes
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne



strncmp

(PHP 4, PHP 5)

strncmpComparaison binaire des n premiers caractères

Description

int strncmp ( string $str1 , string $str2 , int $len )

Identique à la fonction strcmp(), avec la différence que vous pouvez spécifier le nombre maximum de caractères à utiliser pour la comparaison de str1 avec str2 grâce au paramètre len.

Notez que cette comparaison est sensible à la casse.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

len

Nombre de caractères à utiliser pour la comparaison.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Voir aussi

  • preg_match() - Expression rationnelle standard
  • strcmp() - Comparaison binaire de chaînes
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strstr() - Trouve la première occurrence dans une chaîne



strpbrk

(PHP 5)

strpbrkRecherche un ensemble de caractères dans une chaîne de caractères

Description

string strpbrk ( string $haystack , string $char_list )

strpbrk() recherche l'ensemble de caractères char_list dans la chaîne haystack.

Liste de paramètres

haystack

La chaîne dans laquelle on cherche char_list.

char_list

Ce paramètre est sensible à la casse.

Valeurs de retour

Retourne une chaîne, commençant au premier caractère trouvé, ou FALSE s'il n'a pas été trouvé.

Exemples

Exemple #1 Exemple avec strpbrk()

<?php

$text 
'This is a Simple text.';

// Ceci affichera "is is a Simple text." car 'i' correspond au premier
echo strpbrk($text'mi');

// Ceci affichera "Simple text." car les caractères sont sensibles à la casse
echo strpbrk($text'S');
?>



strpos

(PHP 4, PHP 5)

strposTrouve la position d'un caractère dans une chaîne

Description

int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Retourne la position numérique de la première occurrence de needle dans la chaîne de caractères haystack. Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre une chaîne de caractères complète comme paramètre needle et cette chaîne sera utilisée en totalité.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher.

needle

Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme caractère de code ASCII correspondant.

offset

Le paramètre optionnel offset vous permet de spécifier à partir de quel caractère dans haystack vous souhaitez commencer la recherche. La position retournée sera toujours relative au début de la chaîne haystack.

Valeurs de retour

Retourne la position, sous la forme d'un entier. Si needle n'est pas trouvé, strpos() retournera FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Avec ===

<?php
$mystring 
'abc';
$findme   'a';
$pos strpos($mystring$findme);

// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
// car la position de 'a' est la 0-ième (premier) caractère.
if ($pos === false) {
    echo 
"La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'";
} else {
    echo 
"La chaine '$findme' a été trouvée dans la chaîne '$mystring'";
    echo 
" et débute à la position $pos";
}
?>

Exemple #2 Avec !==

<?php
$mystring 
'abc';
$findme   'a';
$pos strpos($mystring$findme);

// Notez notre utilisation de !==.  != ne fonctionnerait pas comme attendu
// car la position de 'a' est la 0-ième (premier) caractère.
if ($pos !== false) {
    echo 
"La chaine '$findme' a été trouvée dans la chaîne '$mystring'";
    echo 
" et débute à la position $pos";
} else {
    echo 
"La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'";
}
?>

Exemple #3 Utiliser un offset

<?php
// Nous pouvons chercher le caractère, et ignorer tout ce qui est avant l'offset
$newstring 'abcdef abcdef';
$pos strpos($newstring'a'1); // $pos = 7, non pas 0
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strrpos() - Trouve la position de la dernière occurrence d'une sous-chaine dans une chaîne
  • stripos() - Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
  • strripos() - Trouve la position de la dernière occurrence d'une chaîne dans une autre, de façon insensible à la casse
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne



strrchr

(PHP 4, PHP 5)

strrchrTrouve la dernière occurrence d'un caractère dans une chaîne

Description

string strrchr ( string $haystack , mixed $needle )

Retourne le segment de la chaîne haystack qui commence avec la dernière occurrence de needle, jusqu'à la fin de la chaîne haystack.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher.

needle

Si needle contient plus d'un caractère, seul le premier sera utilisé. Ce comportement est différent de celui de strchr().

Si needle n'est pas une chaîne, il est converti en entier, et utilisée comme caractère de code ASCII correspondant.

Valeurs de retour

Retourne la portion de la chaîne, ou FALSE si needle n'est pas trouvé.

Historique

Version Description
4.3.0 Cette fonction est maintenant compatible avec les données binaires.

Exemples

Exemple #1 Exemple avec strrchr()

<?php
// Lit le dernier dossier dans le chemin $PATH
$dir substr(strrchr($PATH":"), 1);

// Lit tout, après la dernière nouvelle ligne
$text "Ligne 1\nLigne 2\nLigne 3";
$last substr(strrchr($text10), );
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strstr() - Trouve la première occurrence dans une chaîne
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr



strrev

(PHP 4, PHP 5)

strrevInverse une chaîne

Description

string strrev ( string $string )

Retourne la chaîne string, après avoir changé l'ordre des caractères.

Liste de paramètres

string

La chaîne à inverser.

Valeurs de retour

Retourne la chaîne inversée.

Exemples

Exemple #1 Inverser une chaîne avec strrev()

<?php
echo strrev("Hello world!"); // Affiche "!dlrow olleH"
?>



strripos

(PHP 5)

strriposTrouve la position de la dernière occurrence d'une chaîne dans une autre, de façon insensible à la casse

Description

int strripos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position numérique de la dernière occurrence de needle dans la chaîne de caractères haystack. Contrairement à strrpos(), strripos() est insensible à la casse.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher.

needle

Notez que needle peut être une chaîne constituée d'un ou de plusieurs caractères.

offset

Le paramètre offset peu être spécifié pour commencer à chercher un nombre arbitraire de caractères dans la chaîne.

Les valeurs négatives commenceront la recherche aux caractères offset à partir du début de la chaîne de caractères.

Valeurs de retour

Retourne la position numérique de la dernière occurrence de needle. Notez que la position commence à partir de 0, et non de 1.

Si needle n'est pas trouvé, la fonction retourne FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec strripos()

<?php
$haystack 
'ababcd';
$needle   'aB';

$pos      strripos($haystack$needle);

if (
$pos === false) {
    echo 
"Désolé, impossible de trouver ($needle) dans ($haystack)";
} else {
    echo 
"Félicitations !\n";
    echo 
"Nous avons trouvé le dernier ($needle) dans ($haystack) à la position ($pos)";
}
?>

L'exemple ci-dessus va afficher :

Félicitations !
Nous avons trouvé le dernier (aB) dans (ababcd) à la position (2)

Voir aussi

  • strpos() - Trouve la position d'un caractère dans une chaîne
  • stripos() - Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne



strrpos

(PHP 4, PHP 5)

strrposTrouve la position de la dernière occurrence d'une sous-chaine dans une chaîne

Description

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

Retourne la position numérique de la dernière occurrence de needle dans la chaîne haystack.

Liste de paramètres

haystack

La chaîne dans laquelle chercher.

needle

Si needle n'est pas une chaîne de caractères, il sera converti en un entier et utilisé comme valeur ordinale du caractère.

offset

Doit être spécifié pour commencer la recherche à un nombre arbitraire de caractères dans la chaîne. Les valeurs négatives stopperont la recherche à un point arbitraire avant la fin de la chaîne de caractères.

Valeurs de retour

Retourne la position à laquelle l'occurrence a été trouvée. Retourne FALSE si l'occurrence n'a pas été trouvée.

Historique

Version Description
5.0.0 Le paramètre needle peut maintenant être une chaîne de caractères composée de plus d'un caractère.
5.0.0 Le paramètre offset a été introduit.

Exemples

Exemple #1 Vérifie si une occurrence est trouvée dans une chaîne

Il est facile de faire une erreur quant à la valeur retournée entre "caractère trouvé à la position 0" et "caractère non trouvé". Voici comme détecter cette différence :

<?php

$pos 
strrpos($mystring"b");
if (
$pos === false) { // note : 3 signes "="
    // non trouvé ...
}

?>

Exemple #2 Recherche avec positions

<?php
$foo 
"0123456789a123456789b123456789c";

var_dump(strrpos($foo'7', -5));  // Commence à cherche en arrière de 5 positions
                                   // depuis la fin. Résultat : int(17)

var_dump(strrpos($foo'7'20));  // Commence à chercher à partir de la 20ème positions
                                   // dansla chaîne. Résultat : int(27)

var_dump(strrpos($foo'7'28));  // Résultat : bool(false)
?>

Voir aussi

  • strpos() - Trouve la position d'un caractère dans une chaîne
  • strripos() - Trouve la position de la dernière occurrence d'une chaîne dans une autre, de façon insensible à la casse
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne



strspn

(PHP 4, PHP 5)

strspn Trouve la longueur du premier segment d'une chaîne contenant tous les caractères d'un masque donné

Description

int strspn ( string $subject , string $mask [, int $start [, int $length ]] )

Retourne la longueur du premier groupe de caractères consécutifs du masque mask trouvé dans la chaîne subject.

Si les paramètres start et length sont omis, alors toutes les chaînes subject seront analysées. S'ils sont fournis, alors les effets seront identiques à appeler strspn(substr($subject, $start, $length), $mask) (voir substr pour plus d'informations).

Le code suivant :

<?php
$var 
strspn("42 est la réponse, mais quelle est la question.""1234567890");
?>
assigne 2 à la variable $var, car la chaîne "42" est le plus long segment du paramètre subject dont les caractères sont contenus dans "1234567890".

Liste de paramètres

subject

La chaîne à analyser.

mask

La liste des caractères autorisés à être inclus dans les segments comptés.

start

La position dans la chaîne subject à partir de laquelle nous devons chercher.

Si start est fourni et n'est pas négatif, alors strspn() commencera à analyser la chaîne subject à la position start. Par exemple, dans la chaîne 'abcdef', le caractère à la position 0 est 'a', le caractère à la position 2 est 'c', et ainsi de suite.

Si start est fourni et est négatif, alors strspn() commencera à analyser la chaîne subject à la position start depuis la fin de la chaîne subject.

length

La longueur de la chaîne à analyser.

Si length est fourni et n'est pas négatif, alors subject sera examiné sur length caractères après la position de départ.

Si length est fourni et est négatif, alors subject sera examiné sur length caractères depuis la fin de la chaîne subject.

Valeurs de retour

Retourne la taille du segment initial de la chaîne str1 qui est entièrement constitué de caractères contenus dans str2.

Historique

Version Description
4.3.0 Ajout des paramètres start et length

Exemples

Exemple #1 Exemple avec strspn()

<?php
echo strspn("foo""o"12); // Affiche : 2
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strcspn() - Trouve un segment de chaîne ne contenant pas certains caractères



strstr

(PHP 4, PHP 5)

strstrTrouve la première occurrence dans une chaîne

Description

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Retourne une sous-chaîne de haystack, allant de la première occurrence de needle jusqu'à la fin de la chaîne.

Note:

strstr() est sensible à la casse. Pour une fonctionnalité identique, mais insensible à la casse, reportez-vous à stristr().

Note:

Si vous voulez juste déterminer si un needle particulier se trouve dans la chaîne haystack, utilisez la fonction strpos() qui est plus rapide et qui consomme moins de ressources.

Liste de paramètres

haystack

La chaîne d'entrée.

needle

Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ASCII du caractère correspondant.

before_needle

Si vaut TRUE, strstr() retourne la partie de haystack avant la première occurrence de needle.

Valeurs de retour

Retourne la portion de la chaîne, ou FALSE si needle n'est pas trouvé.

Historique

Version Description
5.3.0 Ajout du paramètre optionnel before_needle.
4.3.0 strstr() est maintenant compatible avec les données binaires.

Exemples

Exemple #1 Exemple avec strstr()

<?php
$email  
'name@example.com';
$domain strstr($email'@');
echo 
$domain// Affiche : @example.com

$user strstr($email'@'true); // Depuis PHP 5.3.0
echo $user// Affiche : name
?>

Voir aussi

  • preg_match() - Expression rationnelle standard
  • stristr() - Version insensible à la casse de strstr
  • strpos() - Trouve la position d'un caractère dans une chaîne
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne



strtok

(PHP 4, PHP 5)

strtokCoupe une chaîne en segments

Description

string strtok ( string $str , string $token )
string strtok ( string $token )

strtok() coupe la chaîne str en segment, chaque segment étant délimité par token. Par exemple, si vous avez une chaîne telle que "Voici un bon exemple", vous pouvez en extraire les différents mots en utilisant cette fonction.

Notez que seul le premier appel à strtok() nécessite les deux arguments. Tous les appels ultérieurs à strtok() ne nécessitent que le délimiteur. Pour initialiser à nouveau strtok(), ou pour recommencer, fournissez à nouveau le paramètre str. La chaîne str sera découpée dès que l'un des caractères de token est trouvé.

Liste de paramètres

str

La chaîne que l'on doit couper en plusieurs chaînes de tailles plus petites.

token

Le délimiteur utilisé lors de la découpe.

Valeurs de retour

Une chaîne coupée.

Exemples

Exemple #1 Exemple avec strtok()

<?php
$string 
"This is\tan example\nstring";
// Utilisez aussi les nouvelles lignes et les tabulations 
// comme séparateur de mots
$tok strtok($string" \n\t");

while (
$tok !== false) {
    echo 
"Word=$tok<br />";
    
$tok strtok(" \n\t");
}
?>

Le comportement de cette fonction avec la chaîne vide a changé depuis PHP 4.1.0. L'ancien comportement était de retourner une chaîne vide, tandis que le nouveau comportement, plus correct, retourne FALSE :

Exemple #2 Ancien comportement de strtok()

<?php
$first_token  
strtok('/something''/');
$second_token strtok('/');
var_dump($first_token$second_token);
?>

L'exemple ci-dessus va afficher :

    string(0) ""
    string(9) "something"

Exemple #3 Nouveau comportement de strtok()

<?php
$first_token  
strtok('/something''/');
$second_token strtok('/');
var_dump($first_token$second_token);
?>

L'exemple ci-dessus va afficher :

    string(9) "something"
    bool(false)

Notes

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • explode() - Coupe une chaîne en segments



strtolower

(PHP 4, PHP 5)

strtolowerRenvoie une chaîne en minuscules

Description

string strtolower ( string $str )

Retourne string, après avoir converti tous les caractères alphabétiques en minuscules.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas convertis.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne en minuscule.

Exemples

Exemple #1 Exemple avec strtolower()

<?php
$str 
"Marie A un Petit Agneau, et l'aime TRès fORt.";
$str strtolower($str);
echo 
$str// marie a un petit agneau, et l'aime très fort.
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



strtoupper

(PHP 4, PHP 5)

strtoupperRenvoie une chaîne en majuscules

Description

string strtoupper ( string $string )

strtoupper() retourne string, après avoir converti tous les caractères alphabétiques en majuscules.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne en majuscule.

Exemples

Exemple #1 Exemple avec strtoupper()

<?php
$str 
"Marie A un Petit Agneau, et l'aime fORt.";
$str strtoupper($str);
echo 
$str// MARIE A UN PETIT AGNEAU, ET L'AIME FORT.

// Note : Très aurait été converti en TRèS
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



strtr

(PHP 4, PHP 5)

strtrRemplace des caractères dans une chaîne

Description

string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )

Si trois arguments sont utilisés, strtr() retourne la chaîne str après avoir remplacé chaque caractère (de un octet) du paramètre from par son équivalent dans le paramètre to, chaque occurence de $from[$n] est remplacée par $to[$n], où $n est une valeur valide pour chaque argument.

Si from et to sont de tailles différentes, les caractères en trop dans l'un ou l'autre seront ignorés. La taille de str sera la même que celle des valeurs retournées.

Si seuls deux arguments sont utilisés, le deuxième doit être un array de la forme array('from' => 'to', ...). La données retournée est une string dans laquelle toutes les occurrences des clés du tableau ont été remplacées par les valeurs correspondantes. Les clés les plus longues seront d'abord utilisées. Une fois une sous-chaine remplacée, sa nouvelle valeur ne sera plus recherchée.

Dans ce cas, les clés et les valeurs peuvent avoir n'importe quelle taille, en supposant qu'il n'y a pas de clé vide; aussi, la taille de la valeur retournée peut différer de celle de str. Cependant, cette fonction sera la plus efficace lorsque toutes les clés ont la même taille.

Liste de paramètres

str

La chaîne à traiter.

from

Les caractères de départ.

to

Les caractères de remplacement.

replace_pairs

Le paramètre replace_pairs peut être utilisé à la place de to et from et dans ce cas, ce sera un tableau sous la forme array('from' => 'to', ...).

Valeurs de retour

Retourne la chaîne de caractères modifiée.

Si replace_pairs contient une clé vide (""), FALSE sera retourné.

Exemples

Exemple #1 Exemple avec strtr()

<?php
// Ici, strtr() remplace octet par octet, nous supposons
// donc ici des encodages dur un seul octet:
$addr strtr($addr"äåö""aao");
?>

L'exemple suivant montre l'utilisation de strtr() avec deux arguments. Notez la préférence des remplacements (h n'est pas utilisé car il y a des correspondances plus longues) et comment le texte remplacé n'est pas réutilisé par la suite.

Exemple #2 Exemple avec strtr() et 2 arguments

<?php
$trans 
= array("h" => "-""hello" => "hi""hi" => "hello");
echo 
strtr("hi all, I said hello"$trans);
?>

L'exemple ci-dessus va afficher :

hello all, I said hi

Les deux comportements sont différents. Avec trois arguments, strtr() remplacera les octets; avec deux, elle peut remplacer des sous-chaines plus longues.

Exemple #3 Comparaison de comportement de strtr()

<?php
echo strtr("baab""ab""01"),"\n";

$trans = array("ab" => "01");
echo 
strtr("baab"$trans);
?>

L'exemple ci-dessus va afficher :

1001
ba01

Voir aussi

  • str_replace() - Remplace toutes les occurrences dans une chaîne
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard



substr_compare

(PHP 5)

substr_compareCompare deux chaînes depuis un offset jusqu'à une longueur en caractères

Description

int substr_compare ( string $main_str , string $str , int $offset [, int $length [, bool $case_insensitivity = false ]] )

substr_compare() compare main_str à partir de la position offset avec str pendant length caractères.

Liste de paramètres

main_str

La chaîne principale à comparer.

str

La chaîne secondaire à comparer.

offset

La position de départ de la comparaison. Si c'est une valeur négative, on commence à compter à partir de la fin de la chaîne.

length

La longueur de la comparaison. La valeur par défaut est la plus grande longueur du paramètre str comparée à la longueur de main_str, moins la valeur du paramètre offset.

case_insensitivity

Si case_insensitivity vaut TRUE, la comparaison est insensible à la casse.

Valeurs de retour

Retourne < 0 si main_str à partir de offset est inférieur à str, > 0 s'il est plus grand que str, et 0 si ils sont égaux. Si length est égal ou plus grand que la taille de main_str ou que length est configuré et est inférieur à 1, substr_compare() affiche une alerte et retourne FALSE.

Historique

Version Description
5.1.0 Ajout de la possibilité d'utiliser une valeur négative pour le paramètre offset.

Exemples

Exemple #1 Exemple avec substr_compare()

<?php
echo substr_compare("abcde""bc"12); // 0
echo substr_compare("abcde""de", -22); // 0
echo substr_compare("abcde""bcg"12); // 0
echo substr_compare("abcde""BC"12true); // 0
echo substr_compare("abcde""bc"13); // 1
echo substr_compare("abcde""cd"12); // -1
echo substr_compare("abcde""abc"51); // warning
?>



substr_count

(PHP 4, PHP 5)

substr_countCompte le nombre d'occurrences de segments dans une chaîne

Description

int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )

substr_count() retourne le nombre d'occurrences de needle dans la chaîne haystack. Notez que needle est sensible à la casse.

Note:

Cette fonction ne compte pas les chaînes de caractères qui se recouvrent. Voyez l'exemple ci-dessous !

Liste de paramètres

haystack

La chaîne de caractères pour rechercher à l'intérieur

needle

La chaîne de caractères que l'on recherche

offset

Le décalage où on commence à compter

length

La taille maximale après le décalage spécifié pour rechercher la chaîne. La fonction émet une erreur si le décalage plus la taille est plus grand que la taille de haystack.

Valeurs de retour

Cette fonction retourne un entier.

Historique

Version Description
5.1.0 Ajout des paramètres offset et length

Exemples

Exemple #1 Exemple avec substr_count()

<?php
$text 
'Ceci est un test';
echo 
strlen($text); // 16

echo substr_count($text'est'); // 2

// la chaîne de caractères est réduite à 'st un test', alors elle affiche 1
echo substr_count($text'est'6);

// le texte est réduit à 'st u', alors elle affiche 0
echo substr_count($text'est'64);

// génère une erreur parce que 8+10 > 16
echo substr_count($text'est'810);


// affiche seulement 1, parce que elle ne compte pas les chaînes de caractères
// qui se recouvrent
$text2 'gcdgcdgcd';
echo 
substr_count($text2'gcdgcd');
?>

Voir aussi

  • count_chars() - Retourne des statistiques sur les caractères utilisés dans une chaîne
  • strpos() - Trouve la position d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne
  • strstr() - Trouve la première occurrence dans une chaîne



substr_replace

(PHP 4, PHP 5)

substr_replaceRemplace un segment dans une chaîne

Description

mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] )

substr_replace() remplace un segment de la chaîne string par la chaîne replacement. Le segment est délimité par start et éventuellement par length.

Liste de paramètres

string

La chaîne d'entrée.

Un tableau de chaînes de caractères peut être fourni, et dans ce cas, les remplacements surviendront sur chacune des chaînes. Dans cette situation, les paramètres replacement, start length doivent être fournis soit comme valeurs scalaires à appliquer sur chaque chaîne, ou comme tableaux où l'élément du tableau correspondant sera utilisé pour chaque chaîne d'entrée.

replacement

La chaîne de remplacement.

start

Si start est positif, le remplacement se fera à partir du caractère numéro start dans string.

Si start est négatif, le remplacement se fera à partir du start-ième caractère en partant de la fin de la chaîne string.

length

Si length est fourni et positif, il représentera la longueur du segment de code remplacé dans la chaîne string. S'il est négatif, il représentera la longueur du segment remplacé, mais compté dans l'ordre inverse de la chaîne string. S'il est omis, il prendra la valeur par défaut de la taille de la chaîne, et remplacera tout jusqu'à la fin de la chaîne string. Bien sûr, si length vaut 0, alors, cette fonction aura comme effet d'insérer replacement dans string à la position start donnée.

Valeurs de retour

La chaîne résultante est retournée. Si le paramètre string est un tableau, alors un tableau sera retourné.

Historique

Version Description
4.3.3 Tous les paramètres acceptent maintenant les tableaux.

Exemples

Exemple #1 Exemple avec substr_replace()

<?php
$var 
'ABCDEFGH:/MNRPQR/';
echo 
"Original : $var<hr />\n";

// Remplace toute la chaîne $var par 'bob'.
echo substr_replace($var'bob'0) . "<br />\n";
echo 
substr_replace($var'bob'0strlen($var)) . "<br />\n";

// Insert 'bob' au début de la chaîne
echo substr_replace($var'bob'00) . "<br />\n";

// Remplace la séquence 'MNRPQR' par 'bob'.
echo substr_replace($var'bob'10, -1) . "<br />\n";
echo 
substr_replace($var'bob', -7, -1) . "<br />\n";

// Efface la séquence 'MNRPQR' de $var.
echo substr_replace($var''10, -1) . "<br />\n";
?>

Exemple #2 Utilisation de substr_replace() pour remplacer plusieurs chaînes en une seule fois

<?php
$input 
= array('A: XXX''B: XXX''C: XXX');

// Un cas simple : remplacer XXX dans chaque chaîne par YYY.
echo implode('; 'substr_replace($input'YYY'33))."\n";

// Un cas plus complexe où chaque remplacement est différent.
$replace = array('AAA''BBB''CCC');
echo 
implode('; 'substr_replace($input$replace33))."\n";

// Remplace un nombre différent de caractères à chaque fois.
$length = array(123);
echo 
implode('; 'substr_replace($input$replace3$length))."\n";
?>

L'exemple ci-dessus va afficher :

A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



substr

(PHP 4, PHP 5)

substrRetourne un segment de chaîne

Description

string substr ( string $string , int $start [, int $length ] )

Retourne le segment de string défini par start et length.

Liste de paramètres

string

La chaîne d'entrée. Doit comporter au moins un caractère.

start

Si start est positif, la chaîne retournée commencera au caractère numéro start, dans la chaîne string. Le premier caractère est numéroté zéro. Actuellement, dans la chaîne 'abcdef', le caractère à la position 0 est 'a', le caractère à la position 2 est 'c', et ainsi de suite.

Si start est négatif, la chaîne retournée commencera au caractère numéro start à compter de la fin de la chaîne string.

Si string est plus petit ou égal à start caractères de long, FALSE sera retourné.

Exemple #1 Exemple de start négatif

<?php
$rest 
substr("abcdef", -1);    // retourne "f"
$rest substr("abcdef", -2);    // retourne "ef"
$rest substr("abcdef", -31); // retourne "d"
?>

length

Si length est fourni et est positif, la chaîne retournée contiendra au plus length caractères, en commençant à partir du caractère start (en fonction de la taille de la chaîne string).

Si length est fourni et négatif, alors le même nombre de caractères sera omis, en partant de la fin de la chaîne string. Si start représente une position hors de la chaîne, une chaîne vide sera retournée.

Si le paramètre length est fourni et vaut 0, FALSE ou NULL, une chaîne vide sera retournée.

Si length est omis, la sous chaine commençant à partir de start jusqu'à la fin sera retournée.

Exemple #2 Utilisation d'une valeur négative pour length

<?php
$rest 
substr("abcdef"0, -1);  // retourne "abcde"
$rest substr("abcdef"2, -1);  // retourne "cde"
$rest substr("abcdef"4, -4);  // retourne false
$rest substr("abcdef", -3, -1); // retourne "de"
?>

Valeurs de retour

Retourne la partie extraite de la chaîne ou FALSE si une erreur survient ou une chaine vide.

Historique

Version Description
5.2.2 - 5.2.6 Si start est hors de la chaine, false est retourné. Les autres versions récupèrent la chaîne depuis le début.

Exemples

Exemple #3 Exemple avec substr()

<?php
echo substr('abcdef'1);     // bcdef
echo substr('abcdef'13);  // bcd
echo substr('abcdef'04);  // abcd
echo substr('abcdef'08);  // abcdef
echo substr('abcdef', -11); // f

// Accéder à un simple caractère dans une chaîne
// peut également être réalisé en utilisant des crochets
$string 'abcdef';
echo 
$string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f

?>

Erreurs / Exceptions

Retourne FALSE en cas d'erreur.

<?php
var_dump
(substr('a'1)); // bool(false)
?>

Exemple #4 Comportement du cast avec substr()

<?php
class apple {
    public function 
__toString() {
        return 
"green";
    }
}

echo 
"1) ".var_export(substr("pear"02), true).PHP_EOL;
echo 
"2) ".var_export(substr(5432102), true).PHP_EOL;
echo 
"3) ".var_export(substr(new apple(), 02), true).PHP_EOL;
echo 
"4) ".var_export(substr(true01), true).PHP_EOL;
echo 
"5) ".var_export(substr(false01), true).PHP_EOL;
echo 
"6) ".var_export(substr(""01), true).PHP_EOL;
echo 
"7) ".var_export(substr(1.2e304), true).PHP_EOL;
?>

L'exemple ci-dessus va afficher :

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'

Voir aussi



trim

(PHP 4, PHP 5)

trim Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

Description

string trim ( string $str [, string $charlist ] )

trim() retourne la chaîne str, après avoir supprimé les caractères invisibles en début et fin de chaîne. Si le second paramètre charlist est omis, trim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.
  • "\t" (ASCII 9 (0x09)), une tabulation.
  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
  • "\0" (ASCII 0 (0x00)), le caractère NUL.
  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Liste de paramètres

str

La chaîne de caractères qui sera coupé.

charlist

Optionnellement, les caractères supprimés peuvent aussi être spécifiés en utilisant le paramètre charlist. Listez simplement tous les caractères que vous voulez supprimer. Avec .. vous pouvez spécifier une plage de caractères.

Valeurs de retour

La chaîne de caractères coupée.

Historique

Version Description
4.1.0 Le paramètre optionnel charlist a été ajouté.

Exemples

Exemple #1 Exemple avec trim()

<?php

$text   
"\t\tThese are a few words :) ...  ";
$binary "\x09Example string\x0A";
$hello  "Hello World";
var_dump($text$binary$hello);

print 
"\n";

$trimmed trim($text);
var_dump($trimmed);

$trimmed trim($text" \t.");
var_dump($trimmed);

$trimmed trim($hello"Hdle");
var_dump($trimmed);

// Supprime les caractères de contrôle ASCII au début et à la fin de $binary
// (de 0 à 31 inclusif)
$clean trim($binary"\x00..\x1F");
var_dump($clean);

?>

L'exemple ci-dessus va afficher :

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(14) "Example string"

Exemple #2 Suppression de caractères dans un tableau avec trim()

<?php
function trim_value(&$value)
{
    
$value trim($value);
}

$fruit = array('apple','banana '' cranberry ');
var_dump($fruit);

array_walk($fruit'trim_value');
var_dump($fruit);

?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

Voir aussi

  • ltrim() - Supprime les espaces (ou d'autres caractères) de début de chaîne
  • rtrim() - Supprime les espaces (ou d'autres caractères) de fin de chaîne



ucfirst

(PHP 4, PHP 5)

ucfirstMet le premier caractère en majuscule

Description

string ucfirst ( string $str )

Retourne la chaîne str après avoir remplacé le premier caractère par sa majuscule, si le premier caractère est alphabétique.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne après modification.

Exemples

Exemple #1 Exemple avec ucfirst()

<?php
$foo 
'bonjour tout le monde!';
$foo ucfirst($foo);             // Bonjour tout le monde!

$bar 'BONJOUR TOUT LE MONDE!';
$bar ucfirst($bar);             // BONJOUR TOUT LE MONDE!
$bar ucfirst(strtolower($bar)); // Bonjour tout le monde!
?>

Voir aussi

  • lcfirst() - Met le premier caractère en minuscule
  • strtolower() - Renvoie une chaîne en minuscules
  • strtoupper() - Renvoie une chaîne en majuscules
  • ucwords() - Met en majuscule la première lettre de tous les mots



ucwords

(PHP 4, PHP 5)

ucwordsMet en majuscule la première lettre de tous les mots

Description

string ucwords ( string $str )

Retourne la chaîne str après avoir mis en majuscule la première lettre de tous les mots, si ce caractère est alphabétique.

La définition d'un mot est : toute séquence de caractères qui suit immédiatement un caractère blanc (espace, tabulation, nouvelle ligne, retour chariot, tabulation verticale).

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne, après modification.

Exemples

Exemple #1 Exemple avec ucwords()

<?php
$foo 
'bonjour tout le monde!';
$foo ucwords($foo);             // Bonjour Tout Le Monde!

$bar 'BONJOUR TOUT LE MONDE!';
$bar ucwords($bar);             // BONJOUR TOUT LE MONDE!
$bar ucwords(strtolower($bar)); // Bonjour Tout Le Monde!
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi



vfprintf

(PHP 5)

vfprintfÉcrit une chaîne formatée dans un flux

Description

int vfprintf ( resource $handle , string $format , array $args )

Écrit une chaîne produite en accord avec le paramètre format dans le flux handle.

Agit de la même façon que fprintf() excepté que vfprintf() accepte un tableau d'arguments, plutôt qu'un nombre variant d'arguments.

Liste de paramètres

handle

format

Voir la documentation de la fonction sprintf() pour une description complète du paramètre format.

args

Valeurs de retour

Retourne la longueur de la chaîne retournée.

Exemples

Exemple #1 vfprintf() : zéro comme caractères d'espacements

<?php
if (!($fp fopen('date.txt''w')))
    return;

vfprintf($fp"%04d-%02d-%02d", array($year$month$day));
// écrira la date formatée ISO dans date.txt
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • vsprintf() - Retourne une chaîne formatée
  • number_format() - Formate un nombre pour l'affichage



vprintf

(PHP 4 >= 4.1.0, PHP 5)

vprintfAffiche une chaîne formatée

Description

int vprintf ( string $format , array $args )

vprintf() affiche le tableau args, sous forme de chaîne formatée grâce à format. Le format est le même que celui utilisé par sprintf().

vprintf() fonctionne comme printf(), mais accepte un tableau comme argument, au lieu d'une liste d'arguments.

Liste de paramètres

format

Voir la documentation de la fonction sprintf() pour une description détaillée du paramètre format.

args

Valeurs de retour

Retourne la longueur de la chaîne retournée.

Exemples

Exemple #1 Exemple avec vprintf() : entiers complétés avec des zéros

<?php
vprintf
("%04d-%02d-%02d"explode('-''1988-8-1')); // 1988-08-01
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • vsprintf() - Retourne une chaîne formatée



vsprintf

(PHP 4 >= 4.1.0, PHP 5)

vsprintfRetourne une chaîne formatée

Description

string vsprintf ( string $format , array $args )

vsprintf() fonctionne comme sprintf(), mais accepte un tableau comme argument, au lieu d'une liste d'arguments.

Liste de paramètres

format

Voir la documentation de la fonction sprintf() pour une description détaillée du paramètre format.

args

Valeurs de retour

Retourne une chaîne formatée à partir du tableau de valeurs args, et en utilisant le format format. Le format est le même que celui utilisé par sprintf().

Exemples

Exemple #1 Exemple avec vsprintf() : entiers avec zéro initiaux

<?php
print vsprintf("%04d-%02d-%02d"explode('-''1988-8-1')); // 1988-08-01
?>

Voir aussi



wordwrap

(PHP 4 >= 4.0.2, PHP 5)

wordwrapEffectue la césure d'une chaîne

Description

string wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = false ]]] )

Effectue la césure d'une chaîne.

Liste de paramètres

str

La chaîne d'entrée.

width

La largeur de la colonne.

break

La ligne est rompue en utilisant ce paramètre optionnel.

cut

Si le paramètre cut vaut TRUE, la césure de la chaîne sera toujours à la taille width plus petit. Si vous avez un mot qui est plus long que la taille de césure, il sera coupé en morceaux : voir le second exemple.

Valeurs de retour

Retourne la chaîne str, après avoir inséré break tous les width caractères.

Historique

Version Description
4.0.3 Ajout du paramètre optionnel cut.

Exemples

Exemple #1 Exemple avec wordwrap()

<?php
$text 
"Portez ce vieux whisky au juge blond qui fume.";
$newtext wordwrap($text20"<br />\n");

echo 
$newtext;
?>

L'exemple ci-dessus va afficher :

Portez ce vieux<br />
whisky au juge<br />
blond qui fume.

Exemple #2 Exemple avec wordwrap()

<?php
$text 
"Un mot très très loooooooooooooooooong.";
$newtext wordwrap($text8"\n"true);

echo 
"$newtext\n";
?>

L'exemple ci-dessus va afficher :

Un mot
très
très
looooooo
oooooooo
ooong.

Voir aussi

  • nl2br() - Insère un retour à la ligne HTML à chaque nouvelle ligne
  • chunk_split() - Scinde une chaîne


Sommaire

  • addcslashes — Ajoute des slash dans une chaîne, à la mode du langage C
  • addslashes — Ajoute des antislashs dans une chaîne
  • bin2hex — Convertit des données binaires en représentation hexadécimale
  • chop — Alias de rtrim
  • chr — Retourne un caractère à partir de son code ASCII
  • chunk_split — Scinde une chaîne
  • convert_cyr_string — Convertit une chaîne d'un jeu de caractères cyrillique à l'autre
  • convert_uudecode — Décode une chaîne au format uuencode
  • convert_uuencode — Encode une chaîne de caractères en utilisant l'algorithme uuencode
  • count_chars — Retourne des statistiques sur les caractères utilisés dans une chaîne
  • crc32 — Calcule la somme de contrôle CRC32
  • crypt — Hachage à sens unique (indéchiffrable)
  • echo — Affiche une chaîne de caractères
  • explode — Coupe une chaîne en segments
  • fprintf — Écrit une chaîne formatée dans un flux
  • get_html_translation_table — Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
  • hebrev — Convertit un texte logique hébreux en texte visuel
  • hebrevc — Convertit un texte logique hébreux en texte visuel, avec retours à la ligne
  • html_entity_decode — Convertit toutes les entités HTML en caractères normaux
  • htmlentities — Convertit tous les caractères éligibles en entités HTML
  • htmlspecialchars_decode — Convertit les entités HTML spéciales en caractères
  • htmlspecialchars — Convertit les caractères spéciaux en entités HTML
  • implode — Rassemble les éléments d'un tableau en une chaîne
  • join — Alias de implode
  • lcfirst — Met le premier caractère en minuscule
  • levenshtein — Calcule la distance Levenshtein entre deux chaînes
  • localeconv — Lit la configuration locale
  • ltrim — Supprime les espaces (ou d'autres caractères) de début de chaîne
  • md5_file — Calcule le md5 d'un fichier
  • md5 — Calcule le md5 d'une chaîne
  • metaphone — Calcule la clé metaphone
  • money_format — Met un nombre au format monétaire
  • nl_langinfo — Rassemble des informations sur la langue et la configuration locale
  • nl2br — Insère un retour à la ligne HTML à chaque nouvelle ligne
  • number_format — Formate un nombre pour l'affichage
  • ord — Retourne le code ASCII d'un caractère
  • parse_str — Analyse une requête HTTP
  • print — Affiche une chaîne de caractères
  • printf — Affiche une chaîne de caractères formatée
  • quoted_printable_decode — Convertit une chaîne quoted-printable en chaîne 8 bits
  • quoted_printable_encode — Convertit une chaîne 8 bits en une chaîne quoted-printable
  • quotemeta — Protège les métacaractères
  • rtrim — Supprime les espaces (ou d'autres caractères) de fin de chaîne
  • setlocale — Modifie les informations de localisation
  • sha1_file — Calcule le sha1 d'un fichier
  • sha1 — Calcule le sha1 d'une chaîne de caractères
  • similar_text — Calcule la similarité de deux chaînes
  • soundex — Calcule la clé soundex
  • sprintf — Retourne une chaîne formatée
  • sscanf — Analyse une chaîne à l'aide d'un format
  • str_getcsv — Analyse une chaîne de caractères CSV dans un tableau
  • str_ireplace — Version insensible à la casse de str_replace
  • str_pad — Complète une chaîne jusqu'à une taille donnée
  • str_repeat — Répète une chaîne
  • str_replace — Remplace toutes les occurrences dans une chaîne
  • str_rot13 — Effectue une transformation ROT13
  • str_shuffle — Mélange les caractères d'une chaîne de caractères
  • str_split — Convertit une chaîne de caractères en tableau
  • str_word_count — Compte le nombre de mots utilisés dans une chaîne
  • strcasecmp — Comparaison insensible à la casse de chaînes binaires
  • strchr — Alias de strstr
  • strcmp — Comparaison binaire de chaînes
  • strcoll — Comparaison de chaînes localisées
  • strcspn — Trouve un segment de chaîne ne contenant pas certains caractères
  • strip_tags — Supprime les balises HTML et PHP d'une chaîne
  • stripcslashes — Décode une chaîne encodée avec addcslashes
  • stripos — Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
  • stripslashes — Supprime les antislashs d'une chaîne
  • stristr — Version insensible à la casse de strstr
  • strlen — Calcule la taille d'une chaîne
  • strnatcasecmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
  • strnatcmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel"
  • strncasecmp — Compare en binaire des chaînes de caractères
  • strncmp — Comparaison binaire des n premiers caractères
  • strpbrk — Recherche un ensemble de caractères dans une chaîne de caractères
  • strpos — Trouve la position d'un caractère dans une chaîne
  • strrchr — Trouve la dernière occurrence d'un caractère dans une chaîne
  • strrev — Inverse une chaîne
  • strripos — Trouve la position de la dernière occurrence d'une chaîne dans une autre, de façon insensible à la casse
  • strrpos — Trouve la position de la dernière occurrence d'une sous-chaine dans une chaîne
  • strspn — Trouve la longueur du premier segment d'une chaîne contenant tous les caractères d'un masque donné
  • strstr — Trouve la première occurrence dans une chaîne
  • strtok — Coupe une chaîne en segments
  • strtolower — Renvoie une chaîne en minuscules
  • strtoupper — Renvoie une chaîne en majuscules
  • strtr — Remplace des caractères dans une chaîne
  • substr_compare — Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
  • substr_count — Compte le nombre d'occurrences de segments dans une chaîne
  • substr_replace — Remplace un segment dans une chaîne
  • substr — Retourne un segment de chaîne
  • trim — Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
  • ucfirst — Met le premier caractère en majuscule
  • ucwords — Met en majuscule la première lettre de tous les mots
  • vfprintf — Écrit une chaîne formatée dans un flux
  • vprintf — Affiche une chaîne formatée
  • vsprintf — Retourne une chaîne formatée
  • wordwrap — Effectue la césure d'une chaîne

  • Introduction
  • Installation/Configuration
  • Constantes pré-définies
  • Fonctions sur les chaînes de caractères
    • addcslashes — Ajoute des slash dans une chaîne, à la mode du langage C
    • addslashes — Ajoute des antislashs dans une chaîne
    • bin2hex — Convertit des données binaires en représentation hexadécimale
    • chop — Alias de rtrim
    • chr — Retourne un caractère à partir de son code ASCII
    • chunk_split — Scinde une chaîne
    • convert_cyr_string — Convertit une chaîne d'un jeu de caractères cyrillique à l'autre
    • convert_uudecode — Décode une chaîne au format uuencode
    • convert_uuencode — Encode une chaîne de caractères en utilisant l'algorithme uuencode
    • count_chars — Retourne des statistiques sur les caractères utilisés dans une chaîne
    • crc32 — Calcule la somme de contrôle CRC32
    • crypt — Hachage à sens unique (indéchiffrable)
    • echo — Affiche une chaîne de caractères
    • explode — Coupe une chaîne en segments
    • fprintf — Écrit une chaîne formatée dans un flux
    • get_html_translation_table — Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
    • hebrev — Convertit un texte logique hébreux en texte visuel
    • hebrevc — Convertit un texte logique hébreux en texte visuel, avec retours à la ligne
    • html_entity_decode — Convertit toutes les entités HTML en caractères normaux
    • htmlentities — Convertit tous les caractères éligibles en entités HTML
    • htmlspecialchars_decode — Convertit les entités HTML spéciales en caractères
    • htmlspecialchars — Convertit les caractères spéciaux en entités HTML
    • implode — Rassemble les éléments d'un tableau en une chaîne
    • join — Alias de implode
    • lcfirst — Met le premier caractère en minuscule
    • levenshtein — Calcule la distance Levenshtein entre deux chaînes
    • localeconv — Lit la configuration locale
    • ltrim — Supprime les espaces (ou d'autres caractères) de début de chaîne
    • md5_file — Calcule le md5 d'un fichier
    • md5 — Calcule le md5 d'une chaîne
    • metaphone — Calcule la clé metaphone
    • money_format — Met un nombre au format monétaire
    • nl_langinfo — Rassemble des informations sur la langue et la configuration locale
    • nl2br — Insère un retour à la ligne HTML à chaque nouvelle ligne
    • number_format — Formate un nombre pour l'affichage
    • ord — Retourne le code ASCII d'un caractère
    • parse_str — Analyse une requête HTTP
    • print — Affiche une chaîne de caractères
    • printf — Affiche une chaîne de caractères formatée
    • quoted_printable_decode — Convertit une chaîne quoted-printable en chaîne 8 bits
    • quoted_printable_encode — Convertit une chaîne 8 bits en une chaîne quoted-printable
    • quotemeta — Protège les métacaractères
    • rtrim — Supprime les espaces (ou d'autres caractères) de fin de chaîne
    • setlocale — Modifie les informations de localisation
    • sha1_file — Calcule le sha1 d'un fichier
    • sha1 — Calcule le sha1 d'une chaîne de caractères
    • similar_text — Calcule la similarité de deux chaînes
    • soundex — Calcule la clé soundex
    • sprintf — Retourne une chaîne formatée
    • sscanf — Analyse une chaîne à l'aide d'un format
    • str_getcsv — Analyse une chaîne de caractères CSV dans un tableau
    • str_ireplace — Version insensible à la casse de str_replace
    • str_pad — Complète une chaîne jusqu'à une taille donnée
    • str_repeat — Répète une chaîne
    • str_replace — Remplace toutes les occurrences dans une chaîne
    • str_rot13 — Effectue une transformation ROT13
    • str_shuffle — Mélange les caractères d'une chaîne de caractères
    • str_split — Convertit une chaîne de caractères en tableau
    • str_word_count — Compte le nombre de mots utilisés dans une chaîne
    • strcasecmp — Comparaison insensible à la casse de chaînes binaires
    • strchr — Alias de strstr
    • strcmp — Comparaison binaire de chaînes
    • strcoll — Comparaison de chaînes localisées
    • strcspn — Trouve un segment de chaîne ne contenant pas certains caractères
    • strip_tags — Supprime les balises HTML et PHP d'une chaîne
    • stripcslashes — Décode une chaîne encodée avec addcslashes
    • stripos — Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
    • stripslashes — Supprime les antislashs d'une chaîne
    • stristr — Version insensible à la casse de strstr
    • strlen — Calcule la taille d'une chaîne
    • strnatcasecmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
    • strnatcmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel"
    • strncasecmp — Compare en binaire des chaînes de caractères
    • strncmp — Comparaison binaire des n premiers caractères
    • strpbrk — Recherche un ensemble de caractères dans une chaîne de caractères
    • strpos — Trouve la position d'un caractère dans une chaîne
    • strrchr — Trouve la dernière occurrence d'un caractère dans une chaîne
    • strrev — Inverse une chaîne
    • strripos — Trouve la position de la dernière occurrence d'une chaîne dans une autre, de façon insensible à la casse
    • strrpos — Trouve la position de la dernière occurrence d'une sous-chaine dans une chaîne
    • strspn — Trouve la longueur du premier segment d'une chaîne contenant tous les caractères d'un masque donné
    • strstr — Trouve la première occurrence dans une chaîne
    • strtok — Coupe une chaîne en segments
    • strtolower — Renvoie une chaîne en minuscules
    • strtoupper — Renvoie une chaîne en majuscules
    • strtr — Remplace des caractères dans une chaîne
    • substr_compare — Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
    • substr_count — Compte le nombre d'occurrences de segments dans une chaîne
    • substr_replace — Remplace un segment dans une chaîne
    • substr — Retourne un segment de chaîne
    • trim — Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
    • ucfirst — Met le premier caractère en majuscule
    • ucwords — Met en majuscule la première lettre de tous les mots
    • vfprintf — Écrit une chaîne formatée dans un flux
    • vprintf — Affiche une chaîne formatée
    • vsprintf — Retourne une chaîne formatée
    • wordwrap — Effectue la césure d'une chaîne



Extensions relatives aux variables et aux types


Les tableaux


Introduction

Ces fonctions vous permettent de travailler et de manipuler les tableaux de plusieurs façons. Les tableaux sont essentiels pour le stockage, la gestion et les opérations sur des jeux de variables.

Les tableaux simples et multidimensionnels sont supportés, et peuvent être créés soit par l'utilisateur, soit par une fonction. Il existe des fonctions spécifiques aux bases de données permettant de remplir des tableaux depuis des requêtes à la base de données, mais aussi des fonctions retournant des tableaux.

Référez-vous à la section sur les tableaux de ce manuel pour une explication détaillée sur la façon dont les tableaux sont implémentés et utilisés en PHP. Lisez également les opérateurs sur les tableaux afin de voir d'autres façons de manipuler les tableaux.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

CASE_LOWER (integer)
CASE_LOWER est utilisée avec array_change_key_case() et sert à convertir tous les index d'un tableau en minuscules. C'est aussi le comportement par défaut de array_change_key_case().
CASE_UPPER (integer)
CASE_UPPER est utilisée avec array_change_key_case() et sert à convertir tous les index d'un tableau en majuscules.

Constantes d'ordre de tri :

SORT_ASC (integer)
SORT_ASC est utilisée avec array_multisort() pour trier en ordre ascendant
SORT_DESC (integer)
SORT_DESC est utilisée avec array_multisort() pour trier en ordre descendant

Autres constantes d'ordre de tri :

SORT_REGULAR (integer)
SORT_REGULAR compare normalement les valeurs d'un tri.
SORT_NUMERIC (integer)
SORT_NUMERIC compare numériquement les valeurs d'un tri.
SORT_STRING (integer)
SORT_STRING compare alphabétiquement les valeurs d'un tri.
SORT_LOCALE_STRING (integer)
SORT_LOCALE_STRING compare alphabétiquement les valeurs d'un tri, en utilisant la configuration locale. Ajoutée en PHP 5.0.2 et PHP 4.4.0.

COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)
EXTR_OVERWRITE (integer)
EXTR_SKIP (integer)
EXTR_PREFIX_SAME (integer)
EXTR_PREFIX_ALL (integer)
EXTR_PREFIX_INVALID (integer)
EXTR_PREFIX_IF_EXISTS (integer)
EXTR_IF_EXISTS (integer)
EXTR_REFS (integer)


Tri des tableaux

PHP dispose de nombreuses fonctions pour trier les tableaux, et cette section du manuel va vous aider à vous y retrouver.

Les différences principales sont :

  • Certains des tris de tableau sont basés sur les clés, tandis que les autres sont basés sur les valeurs : $array['cle'] = 'valeur';
  • Certains tris maintiennent la corrélation entre les clés et les valeurs, et d'autres non, ce qui signifie que les clés sont généralement réaffectées numériquement (0,1,2 ...)
  • L'ordre du tri peut être : alphabétique, croissant, décroissant, numérique, naturel, aléatoire ou personnalisé.
  • Note : toutes ces fonctions de tris travaillent sur le tableau lui-même, contrairement à la pratique normale qui serait de retourner le tableau trié.
  • Si une de ces fonctions de tri évalue 2 membres comme égaux, alors l'ordre est indéfini (le tri n'est pas stable).

Attributs de fonctions de tri
Nom de la fonction Tri par Association clé-valeur Ordre de tri Fonctions associée
array_multisort() valeur associatif oui, numérique non premier tableau, ou bien options de tri array_walk()
asort() valeur oui croissant arsort()
arsort() valeur oui décroissant asort()
krsort() clé oui décroissant ksort()
ksort() clé oui croissant asort()
natcasesort() valeur oui naturel, insensible à la casse natsort()
natsort() valeur oui naturel natcasesort()
rsort() valeur non décroissant sort()
shuffle() valeur non aléatoire array_rand()
sort() valeur non croissant rsort()
uasort() valeur oui Défini par une fonction utilisateur uksort()
uksort() clé oui Défini par une fonction utilisateur uasort()
usort() valeur non Défini par une fonction utilisateur uasort()



Fonctions sur les tableaux

Voir aussi

Voir aussi is_array(), explode(), implode(), split(), preg_split() et unset().


array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_caseChange la casse des clés d'un tableau

Description

array array_change_key_case ( array $input [, int $case = CASE_LOWER ] )

Modifie les clés du tableau input et force leur casse. Cette fonction laissera les clés numériques inchangées.

Liste de paramètres

input

Le tableau à traiter

case

Soit CASE_UPPER (majuscules), soit CASE_LOWER (minuscules, valeur par défaut)

Valeurs de retour

Retourne un tableau dont les clés ont été transformées en majuscule ou en minuscule, ou FALSE si input n'est pas un tableau.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING si input n'est pas un tableau.

Exemples

Exemple #1 Exemple avec array_change_key_case()

<?php
$input_array 
= array("FirSt" => 1"SecOnd" => 4);
print_r(array_change_key_case($input_arrayCASE_UPPER));
?>

L'exemple ci-dessus va afficher :

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

Notes

Note:

Si un tableau possède des clés qui seront identiques lors de l'exécution de cette fonction (e.g. "clé" et "CLé"), la dernière valeur dans le tableau écrasera les précédentes.



array_chunk

(PHP 4 >= 4.2.0, PHP 5)

array_chunkSépare un tableau en tableaux de taille inférieure

Description

array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )

Sépare le tableau input en plusieurs tableaux de taille size. Il est aussi possible que le dernier tableau contienne moins de valeurs.

Liste de paramètres

input

Le tableau à traiter

size

La taille de chaque tableau

preserve_keys

Lorsque définit à TRUE, les clés seront préservées. Par défaut, vaut FALSE ce qui réindexera le tableau résultant numériquement

Valeurs de retour

Retourne un tableau multidimensionnel indexé numériquement, commençant à 0, dont chaque dimension contient size éléments.

Erreurs / Exceptions

Si size est inférieur à 1, une alerte de niveau E_WARNING sera émise et NULL retournée.

Exemples

Exemple #1 Exemple avec array_chunk()

<?php
$input_array 
= array('a''b''c''d''e');
print_r(array_chunk($input_array2));
print_r(array_chunk($input_array2true));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)



array_combine

(PHP 5)

array_combineCrée un tableau à partir de deux autres tableaux

Description

array array_combine ( array $keys , array $values )

Crée un tableau, dont les clés sont les valeurs de keys, et les valeurs sont les valeurs de values.

Liste de paramètres

keys

Tableau de clés à utiliser. Les valeurs illégales pour les clés seront converties en chaîne de caractères.

values

Tableau de valeurs à utiliser

Valeurs de retour

Retourne le tableau combiné ou FALSE si le nombre d'éléments de chaque tableau n'est pas identique ou si les tableaux sont vides.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING si keys et values sont vides, ou si leurs nombres d'éléments ne correspondent pas.

Exemples

Exemple #1 Exemple avec array_combine()

<?php
$a 
= array('green''red''yellow');
$b = array('avocado''apple''banana');
$c array_combine($a$b);

print_r($c);
?>

L'exemple ci-dessus va afficher :

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

Voir aussi



array_count_values

(PHP 4, PHP 5)

array_count_valuesCompte le nombre de valeurs d'un tableau

Description

array array_count_values ( array $input )

Retourne un tableau contenant les valeurs du tableau input comme clés et leur fréquence comme valeurs.

Liste de paramètres

input

Le tableau de valeurs à compter

Valeurs de retour

Retourne un tableau associatif de valeurs ayant les clés correspondant à input et leurs nombres comme valeurs.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING pour chaque élément qui n'est pas une chaîne de caractères ou un entier.

Exemples

Exemple #1 Exemple avec array_count_values()

<?php
$array 
= array(1"hello"1"world""hello");
print_r(array_count_values($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Voir aussi

  • count() - Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet
  • array_unique() - Dédoublonne un tableau
  • array_values() - Retourne toutes les valeurs d'un tableau
  • count_chars() - Retourne des statistiques sur les caractères utilisés dans une chaîne



array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_diff_assocCalcule la différence de deux tableaux, en prenant aussi en compte les clés

Description

array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

Compare array1 et array2 et retourne la différence. Contrairement à la fonction array_diff(), les clés du tableau sont également utilisées dans la comparaison.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui ne sont pas présentes dans les autres tableaux.

Exemples

Exemple #1 Exemple avec array_diff_assoc()

Dans cet exemple, vous pouvez voir que la paire "a" => "vert" est présente dans les deux tableaux, et donc, n'est pas présente dans le résultat de la fonction. Au contraire, la paire 0 => "rouge" est présente dans le résultat, car le second argument "rouge" possède une clé qui est 1.

<?php
$array1 
= array("a" => "vert""b" => "marron""c" => "bleu""rouge");
$array2 = array("a" => "vert""jaune""rouge");
$result array_diff_assoc($array1$array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => marron
    [c] => bleu
    [0] => rouge
)

Exemple #2 Exemple avec array_diff_assoc()

Deux valeurs des paires clé => valeur sont considérées comme égales uniquement si (string) $elem1 === (string) $elem2 . En d'autres termes, une vérification stricte est effectuée sur la représentation en chaînes de caractères.

<?php
$array1 
= array(012);
$array2 = array("00""01""2");
$result array_diff_assoc($array1$array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 0
    [1] => 1
    )

Notes

Note: Notez bien que cette fonction ne travaille que sur une dimension de tableau. Bien sur, vous pouvez utiliser des sous dimensions de tableau comme ceci : array_diff_assoc($array1[0], $array2[0]);.

Voir aussi



array_diff_key

(PHP 5 >= 5.1.0)

array_diff_keyCalcule la différence de deux tableaux en utilisant les clés pour comparaison

Description

array array_diff_key ( array $array1 , array $array2 [, array $... ] )

Compare les clés du tableau array1 avec les clés du tableau array2 et retourne la différence. Cette fonction est identique à la fonction array_diff(), excepté sur le fait que la comparaison est faite sur les clés, plutôt que sur les valeurs.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array1 dont les clés ne sont présentes dans aucun des autres tableaux.

Exemples

Exemple #1 Exemple avec array_diff_key()

Les deux clés depuis les paires clé => valeur sont considérées comme égales uniquement si (string) $cle1 === (string) $cle2 . En d'autres termes, une analyse de type stricte est exécutée, donc, le type doit être exactement le même.

<?php
$array1 
= array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_diff_key($array1$array2));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Notes

Note:

Notez que cette fonction vérifie uniquement une dimension d'un tableau possédant n dimensions. Bien sûr, vous pouvez vérifier une dimension plus profonde en utilisant, par exemple, array_diff_key($array1[0], $array2[0]);.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_ukey() - Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison



array_diff_uassoc

(PHP 5)

array_diff_uassocCalcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel

Description

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callback $key_compare_func )

Compare le tableau array1 avec le tableau array2 et retourne la différence. Contrairement à la fonction array_diff(), les clés du tableau sont utilisées dans la comparaison.

Contrairement à la fonction array_diff_assoc(), un utilisateur fournit une fonction de rappel utilisée pour la comparaison des indices, et non une fonction interne.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

key_compare_func

La fonction de rappel à utiliser. Elle doit retourner un entier inférieur, égal ou supérieur à 0 si le première argument est considéré comme, respectivement, inférieur, égal ou supérieur au second paramètre.

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array1 qui ne sont présentes dans aucun autre tableau.

Exemples

Exemple #1 Exemple avec array_diff_uassoc()

Dans cet exemple, vous voyez que la paire "a" => "vert" est présente dans les deux tableaux et donc ne figure pas dans le résultat de la fonction. Contrairement à cela, la paire 0 => "rouge" est dans le résultat car dans le second argument, la clé de "rouge" est 1.

<?php
function key_compare_func($a$b)
{
    if (
$a === $b) {
        return 
0;
    }
    return (
$a $b)? 1:-1;
}

$array1 = array("a" => "vert""b" => "marron""c" => "bleu""rouge");
$array2 = array("a" => "vert""jaune""rouge");
$result array_diff_uassoc($array1$array2"key_compare_func");
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => marron
    [c] => bleu
    [0] => rouge
)

L'égalité de deux indices est vérifiée par la fonction utilisateur.

Notes

Note:

Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple, array_diff_uassoc($array1[1], $array2[1], "key_compare_func");.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel



array_diff_ukey

(PHP 5 >= 5.1.0)

array_diff_ukeyCalcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

Description

array array_diff_ukey ( array $array1 , array $array2 [, array $ ... ], callback $key_compare_func )

Compare les clés du tableau array1 avec celles du tableau array2 et retourne la différence. Cette fonction est identique à la fonction array_diff(), excepté le fait que la comparaison est effectuée sur les clés, plutôt que sur les valeurs.

Contrairement à la fonction array_diff_key(), une fonction utilisateur est fournie pour la comparaison des indices, et non une fonction interne.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

key_compare_func

La fonction utilisateur (callback) à utiliser. La fonction utilisateur doit retourner un entier inférieur, égal ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur, égal ou supérieur au second paramètre.

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array1 qui ne sont présentes dans aucun autre tableau.

Exemples

Exemple #1 Exemple avec array_diff_ukey()

<?php
function key_compare_func($key1$key2)
{
    if (
$key1 == $key2)
        return 
0;
    else if (
$key1 $key2)
        return 
1;
    else
        return -
1;
}

$array1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_diff_ukey($array1$array2'key_compare_func'));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Notes

Note:

Notez que cette fonction vérifie uniquement une dimension d'un tableau possédant n dimensions. Bien sûr, vous pouvez vérifier une dimension plus profonde en utilisant, par exemple, array_diff_ukey($array1[0], $array2[0], 'callback_func');.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_key() - Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison



array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diffCalcule la différence entre deux tableaux

Description

array array_diff ( array $array1 , array $array2 [, array $ ... ] )

array_diff() compare le tableau array1 avec le tableau array2 et retourne la différence.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

Valeurs de retour

Retourne un tableau contenant toutes les entités depuis le tableau array1 qui ne sont présents dans aucun autre tableau.

Exemples

Exemple #1 Exemple avec array_diff()

<?php
$array1 
= array("a" => "green""red""blue""red");
$array2 = array("b" => "green""yellow""red");
$result array_diff($array1$array2);

print_r($result);
?>

Les valeurs multiples dans array1 seront toutes traitées de la même façon. Ce qui affichera :

Array
(
    [1] => blue
)

Notes

Note:

Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2. En clair : lorsque la représentation en chaîne de caractères est identique.

Note:

Notez que cette fonction ne vérifie qu'une dimension d'un tableau à plusieurs dimensions. Bien sûr, vous pouvez vérifier des dimensions plus profondes en utilisant array_diff($array1[0], $array2[0]);.

Voir aussi



array_fill_keys

(PHP 5 >= 5.2.0)

array_fill_keysRemplit un tableau avec des valeurs, en spécifiant les clés

Description

array array_fill_keys ( array $keys , mixed $value )

Remplit un tableau avec la valeur du paramètre value, et en utilisant les valeurs du tableau keys comme clés.

Liste de paramètres

keys

Tableau de valeurs qui sera utilisé comme clés. Les valeurs illégales pour les clés seront converties en chaînes de caractères.

value

Valeur à utiliser pour remplir le tableau.

Valeurs de retour

Retourne le tableau rempli.

Exemples

Exemple #1 Exemple avec array_fill_keys()

<?php
$keys 
= array('foo'510'bar');
$a array_fill_keys($keys'banana');
print_r($a);
?>

L'exemple ci-dessus va afficher :

Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

Voir aussi



array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fillRemplit un tableau avec une même valeur

Description

array array_fill ( int $start_index , int $num , mixed $value )

Crée un tableau avec num entrées, toutes de valeur value. Les index commencent à la valeur start_index.

Liste de paramètres

start_index

Le premier index du tableau retourné. Ne supporte que les index qui ne sont pas négatifs.

num

Nombre d'éléments à insérer

value

Valeur à utiliser pour remplir le tableau

Valeurs de retour

Retourne le tableau rempli.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING si num est inférieur à 1.

Exemples

Exemple #1 Exemple avec array_fill()

<?php
$a 
array_fill(56'banana');
$b array_fill(-22'pear');
print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher :

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)
Array
(
    [-2] => pear
    [0] => pear
)

Notes

Voir aussi la section du manuel sur les tableaux pour plus d'informations sur les clés négatives.

Voir aussi

  • array_fill_keys() - Remplit un tableau avec des valeurs, en spécifiant les clés
  • str_repeat() - Répète une chaîne
  • range() - Crée un tableau contenant un intervalle d'éléments



array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filterFiltre les éléments d'un tableau grâce à une fonction utilisateur

Description

array array_filter ( array $input [, callback $callback ] )

Évalue chaque valeur du tableau input en les passant à la fonction utilisateur. Si la fonction utilisateur retourne TRUE, la valeur courante du tableau input est retourné dans le tableau résultant. Les clés du tableau sont préservées.

Liste de paramètres

input

Le tableau à évaluer

callback

La fonction utilisateur à utiliser

Si aucune fonction utilisateur n'est fournie, toutes les entrées du tableau input valant FALSE (voir la conversion en booléen) seront effacées.

Valeurs de retour

Retourne le tableau filtré.

Exemples

Exemple #1 Exemple avec array_filter()

<?php
function odd($var)
{
    
// retourne lorsque l'entrée est impaire
    
return($var 1);
}

function 
even($var)
{
    
// retourne lorsque l'entrée est paire
    
return(!($var 1));
}

$array1 = array("a"=>1"b"=>2"c"=>3"d"=>4"e"=>5);
$array2 = array(6789101112);

echo 
"Ancien :\n";
print_r(array_filter($array1"odd"));
echo 
"Nouveau :\n";
print_r(array_filter($array2"even"));
?>

L'exemple ci-dessus va afficher :

Ancien :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Nouveau :
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Exemple #2 Exemple avec array_filter() sans fonction utilisateur

<?php

$entry 
= array(
             
=> 'foo',
             
=> false,
             
=> -1,
             
=> null,
             
=> ''
          
);

print_r(array_filter($entry));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => foo
    [2] => -1
)

Notes

Attention

Si le tableau est modifié depuis la fonction utilisateur (e.g. des éléments sont ajoutés, effacés ou réinitialisés), le comportement de cette fonction est indéfini.

Voir aussi

  • array_map() - Applique une fonction sur les éléments d'un tableau
  • array_reduce() - Réduit itérativement un tableau
  • array_walk() - Exécute une fonction sur chacun des éléments d'un tableau



array_flip

(PHP 4, PHP 5)

array_flipRemplace les clés par les valeurs, et les valeurs par les clés

Description

array array_flip ( array $trans )

array_flip() retourne un tableau dont les clés sont les valeurs du précédent tableau trans, et les valeurs sont les clés.

Notez bien que les valeurs de trans doivent être des clés valides, c'est-à-dire qu'elles doivent être des entiers (entier) ou des chaînes de caractères (chaîne de caractères). Une alerte sera émise si une valeur est d'un type qui ne convient pas et la paire en question ne sera pas inversée.

Si une valeur n'est pas unique, seule la dernière clé sera utilisée comme valeur, et toutes les autres seront perdues.

Liste de paramètres

trans

Un tableau de paire clés/valeurs à inverser.

Valeurs de retour

Retourne un tableau inversé en cas de succès, NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec array_flip()

<?php
$trans 
array_flip($trans);
$original strtr($str$trans);
?>

Exemple #2 Exemple avec array_flip() : collision

<?php
$trans 
= array("a" => 1"b" => 1"c" => 2);
$trans array_flip($trans);
print_r($trans);
?>

maintenant, $trans vaut :

Array
(
    [1] => b
    [2] => c
)

Voir aussi



array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assocCalcule l'intersection de deux tableaux avec des tests sur les index

Description

array array_intersect_assoc ( array $array1 , array $array2 [, array $ ... ] )

array_intersect_assoc() retourne un tableau contenant toutes les valeurs de array1 qui sont aussi présentes dans tous les autres arguments array2, ..., etc. Notez que les clés sont utilisées durant la comparaison, contrairement à array_intersect().

Liste de paramètres

array1

Le tableau avec les valeurs maîtres à vérifier.

array2

Un tableau contenant les valeurs à comparer.

array

Une liste variable de tableaux à comparer.

Valeurs de retour

Retourne un tableau associatif contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect_assoc()

<?php
$array1 
= array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "green""yellow""red");
$result_array array_intersect_assoc($array1$array2);
print_r($result_array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
)

Dans notre exemple, vous pouvez voir que la paire "a" => "vert" est présente dans les deux tableaux, et donc placée dans le dernier tableau. La valeur rouge n'est pas retournée car dans $array1 son index est 2 tandis que dans le tableau $array2, son index est 1.

Les deux valeurs de la paire clé => valeur sont considérées égales uniquement si (string) $elem1 === (string) $elem2. En d'autres termes, une comparaison stricte est faite sur les représentations des index, avec le type chaîne.

Voir aussi

  • array_intersect() - Calcule l'intersection de tableaux
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel
  • array_diff() - Calcule la différence entre deux tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés


array_intersect_key

(PHP 5 >= 5.1.0)

array_intersect_keyCalcule l'intersection de deux tableaux en utilisant les clés pour comparaison

Description

array array_intersect_key ( array $array1 , array $array2 [, array $ ... ] )

array_intersect_key() retourne un tableau contenant toutes les entrées du tableau array1 qui contiennent des clés présentes dans tous les arguments.

Liste de paramètres

array1

Le tableau contenant les clés maîtres à vérifier.

array2

Un tableau contenant les clés à comparer.

array

Une liste variable de tableaux à comparer.

Valeurs de retour

Retourne un tableau associatif contenant toutes les entrées du tableau array1 qui ont des clés présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect_key()

<?php
$array1 
= array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_intersect_key($array1$array2));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

Dans cet exemple, vous pouvez voir que seules les clés 'bleu' et 'vert' sont présentes dans les deux tableaux et donc, elles sont retournées. Notez également que les valeurs pour les clés 'bleu' et 'vert' diffèrent entre les deux tableaux. Néanmoins, elles correspondent toujours car uniquement les clés sont vérifiées. Les valeurs retournées sont celles du tableau array1.

Les deux clés depuis les paires clé => valeur sont considérées comme égales uniquement si (string) $cle1 === (string) $cle2 . En d'autres mots, une analyse du type stricte est exécuté, donc, le type doit être exactement le même.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_key() - Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_diff_ukey() - Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison



array_intersect_uassoc

(PHP 5)

array_intersect_uassocCalcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel

Description

array array_intersect_uassoc ( array $array1 , array $array2 [, array $ ... ], callback $key_compare_func )

array_intersect_uassoc() retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments. Notez que les clés sont utilisées dans la comparaison par opposition à la fonction array_intersect().

La comparaison d'index est effectuée en utilisant la fonction de rappel fournie. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

Liste de paramètres

array1

Tableau initial pour la comparaison des autres tableaux.

array2

Premier tableau dont on doit comparer les clés.

array

Liste variable de tableaux à comparer.

key_compare_func

Fonction de rappel effectuant la comparaison.

Valeurs de retour

Retourne les valeurs du tableau array1 dont les valeurs existent dans tous les autres arguments.

Exemples

Exemple #1 Exemple avec array_intersect_uassoc()

<?php
$array1 
= array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "GREEN""B" => "brown""yellow""red");

print_r(array_intersect_uassoc($array1$array2"strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => brown
)

Voir aussi

  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison



array_intersect_ukey

(PHP 5 >= 5.1.0)

array_intersect_ukeyCalcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

Description

array array_intersect_ukey ( array $array1 , array $array2 [, array $... ], callback $key_compare_func )

array_intersect_ukey() retourne un tableau contenant toutes les valeurs du tableau array1 qui contiennent des clés présentes dans tous les arguments array2, ....

Cette comparaison est effectuée en utilisant une fonction de rappel fournie par l'utilisateur. La fonction de rappel doit retourner un entier plus petit que, égal à ou plus grand que 0 si la première clé est considérée, respectivement, comme plus petite que, égale à ou plus grande que la seconde.

Liste de paramètres

array1

Tableau initial pour la comparaison des tableaux.

array2

Premier tableau utilisé pour comparer les clés.

array

Liste variable de tableaux à comparer.

key_compare_func

Fonction de rappel à utiliser pour effectuer la comparaison.

Valeurs de retour

Retourne les valeurs du tableau array1 dont les clés existent dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect_ukey()

<?php
function key_compare_func($key1$key2)
{
    if (
$key1 == $key2)
        return 
0;
    else if (
$key1 $key2)
        return 
1;
    else
        return -
1;
}

$array1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_intersect_ukey($array1$array2'key_compare_func'));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

Dans cet exemple, vous pouvez voir que seules les clés 'bleu' et 'vert' sont présentes dans les deux tableaux et, donc, elles sont retournées. Notez également que les valeurs pour les clés 'bleu' et 'vert' diffèrent entre les deux tableaux. Néanmoins, elles correspondent toujours car uniquement les clés sont vérifiées. Les valeurs retournées sont celles du tableau array1.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_key() - Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_diff_ukey() - Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison



array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersectCalcule l'intersection de tableaux

Description

array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

array_intersect() retourne un tableau contenant toutes les valeurs de array1 qui sont présentes dans tous les autres arguments array2, ..., etc. Notez que les clés sont préservées.

Liste de paramètres

array1

Le tableau contenant les valeurs maîtres à vérifier.

array2

Un tableau contenant les valeurs à comparer.

array

Une liste variable de tableaux à comparer.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 dont les valeurs existent dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect()

<?php
$array1 
= array("a" => "green""red""blue");
$array2 = array("b" => "green""yellow""red");
$result array_intersect($array1$array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [0] => red
)

Notes

Note: Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2. En clair : lorsque la représentation en chaîne de caractères est identique.

Voir aussi



array_key_exists

(PHP 4 >= 4.0.7, PHP 5)

array_key_existsVérifie si une clé existe dans un tableau

Description

bool array_key_exists ( mixed $key , array $search )

array_key_exists() retourne TRUE s'il existe une clé du nom de key dans le tableau search. key peut être n'importe quelle valeur valide d'index de tableau.

Liste de paramètres

key

Valeur à vérifier.

search

Un tableau contenant les clés à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Cette fonction ne fonctionne plus avec les objets. La fonction property_exists() doit être utilisée dans ce cas.

Exemples

Exemple #1 Exemple avec array_key_exists()

<?php
$search_array 
= array('premier' => 1'second' => 4);
if (
array_key_exists('premier'$search_array)) {
    echo 
"L'élément 'premier' existe dans le tableau";
}
?>

Exemple #2 array_key_exists() et isset()

isset() ne retourne pas TRUE pour les clés de tableaux qui correspondent à une valeur NULL alors que c'est le cas pour array_key_exists().

<?php
$search_array 
= array('first' => null'second' => 4);

// retourne false
isset($search_array['first']);

// retourne true
array_key_exists('first'$search_array);
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : key_exists()

Voir aussi

  • isset() - Détermine si une variable est définie et est différente de NULL
  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau
  • in_array() - Indique si une valeur appartient à un tableau
  • property_exists() - Vérifie si un objet ou une classe possède une propriété



array_keys

(PHP 4, PHP 5)

array_keysRetourne toutes les clés ou un ensemble des clés d'un tableau

Description

array array_keys ( array $input [, mixed $search_value [, bool $strict = false ]] )

array_keys() retourne les clés numériques et littérales du tableau input.

Si l'option search_value est spécifiée, seules les clés ayant cette valeur seront retournées. Sinon, toutes les clés de input sont retournées.

Liste de paramètres

input

Un tableau contenant les clés à retourner.

search_value

Si spécifié, alors seulement les clés contenant ces valeurs seront retournées.

strict

Le paramètre strict force la comparaison en mode strict, incluant le type, avec l'opérateur ===.

Valeurs de retour

Retourne un tableau de toutes les clés dans input.

Historique

Version Description
5.0.0 Ajout du paramètre strict.

Exemples

Exemple #1 Exemple avec array_keys()

<?php
$array 
= array(=> 100"color" => "red");
print_r(array_keys($array));

$array = array("blue""red""green""blue""blue");
print_r(array_keys($array"blue"));

$array = array("color" => array("blue""red""green"),
               
"size"  => array("small""medium""large"));
print_r(array_keys($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

Voir aussi



array_map

(PHP 4 >= 4.0.6, PHP 5)

array_mapApplique une fonction sur les éléments d'un tableau

Description

array array_map ( callback $callback , array $arr1 [, array $... ] )

array_map() retourne un tableau contenant tous les éléments du tableau arr1, après leur avoir appliqué la fonction callback. Le nombre de paramètres de la fonction callback doit être égal au nombre de tableaux passés dans la fonction array_map().

Liste de paramètres

callback

La fonction de rappel à exécuter pour chaque élément de chaque tableau.

arr1

Un tableau à exécuter via la fonction de callback.

array

Liste des tableaux à exécuter via la fonction de callback.

Valeurs de retour

Retourne un tableau contenant tous les éléments du tableau arr1 après avoir appliqué la fonction de callback sur chacun d'eux.

Exemples

Exemple #1 Exemple avec array_map()

<?php
function cube($n)
{
    return(
$n $n $n);
}

$a = array(12345);
$b array_map("cube"$a);
print_r($b);
?>

Le contenu de la variable $b sera :

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Exemple #2 array_map() : utilisation d'une fonction quelconque (depuis PHP 5.3.0)

<?php

$func 
= function($value) {
    return 
$value 2;
};

print_r(array_map($funcrange(15)));

?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Exemple #3 array_map() : utilisation de plusieurs tableaux

<?php
function show_Spanish($n$m)
{
    return(
"Le nombre $n se dit $m en Espagnol");
}

function 
map_Spanish($n$m)
{
    return(array(
$n => $m));
}

$a = array(12345);
$b = array("uno""dos""tres""cuatro""cinco");

$c array_map("show_Spanish"$a$b);
print_r($c);

$d array_map("map_Spanish"$a $b);
print_r($d);
?>

L'exemple ci-dessus va afficher :

// Contenu de $c
Array
(
    [0] => Le nombre 1 se dit uno en Espagnol
    [1] => Le nombre 2 se dit dos en Espagnol
    [2] => Le nombre 3 se dit tres en Espagnol
    [3] => Le nombre 4 se dit cuatro en Espagnol
    [4] => Le nombre 5 se dit cinco en Espagnol
)

// Contenu de $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Généralement, lors de l'utilisation de plusieurs tableaux, ils doivent être d'égale longueur, car la fonction de rappel est appliquée de manière similaire à tous les tableaux. Si les tableaux sont de tailles inégales, les plus petits seront complétés avec des éléments vides.

Une utilisation intéressante de cette fonction est la construction de tableaux de tableaux, facilement réalisée en passant la valeur NULL comme nom de fonction de rappel.

Exemple #4 Création d'un tableau de tableaux

<?php
$a 
= array(12345);
$b = array("one""two""three""four""five");
$c = array("uno""dos""tres""cuatro""cinco");

$d array_map(null$a$b$c);
print_r($d);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Si le tableau en argument contient des clés sous la forme de chaîne de caractères, alors, le tableau retourné contiendra également des clés sous la forme de chaîne de caractères, si et seulement si un seul tableau est passé. Si plusieurs tableaux sont passés comme argument, le tableau retourné aura toujours des clés sous la forme d'entier.

Exemple #5 array_map() - avec des clés sous la forme de chaîne de caractères

<?php
$arr 
= array("stringkey" => "value");
function 
cb1($a) {
    return array (
$a);
}
function 
cb2($a$b) {
    return array (
$a$b);
}
var_dump(array_map("cb1"$arr));
var_dump(array_map("cb2"$arr$arr));
var_dump(array_map(null,  $arr));
var_dump(array_map(null$arr$arr));
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}

Voir aussi

Informations sur le type callback



array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5)

array_merge_recursiveCombine plusieurs tableaux ensemble, récursivement

Description

array array_merge_recursive ( array $array1 [, array $... ] )

array_merge_recursive() rassemble les éléments de deux ou plusieurs tableaux ensemble, en ajoutant les éléments de l'un à la suite des éléments du précédent.

Si les tableaux passés en arguments ont les mêmes clés (chaînes de caractères), les valeurs sont alors rassemblées dans un tableau, de manière récursive, de façon à ce que, si l'une de ces valeurs est un tableau elle-même, la fonction la rassemblera avec les valeurs de l'entrée courante. Cependant, si deux tableaux ont la même clé numérique, la dernière valeur n'écrasera pas la précédente, mais sera ajoutée à la fin du tableau.

Liste de paramètres

array1

Tableau initial à rassembler.

...

Liste variable de tableaux à rassembler récursivement.

Valeurs de retour

Un tableau de valeurs résultantes de la fusion des arguments.

Exemples

Exemple #1 Exemple avec array_merge_recursive()

<?php
$ar1 
= array("color" => array("favorite" => "red"), 5);
$ar2 = array(10"color" => array("favorite" => "green""blue"));
$result array_merge_recursive($ar1$ar2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

Voir aussi



array_merge

(PHP 4, PHP 5)

array_mergeFusionne plusieurs tableaux en un seul

Description

array array_merge ( array $array1 [, array $array2 [, array $... ]] )

array_merge() rassemble les éléments d'un ou de plusieurs tableaux en ajoutant les valeurs de l'un à la fin de l'autre. Le résultat est un tableau.

Si les tableaux ont des clés en commun, la dernière valeur rencontrée écrasera l'ancienne. Pour les valeurs numériques, cela n'arrive pas, car, alors, les valeurs sont ajoutées en fin de tableau.

les clés numériques dans les tableaux d'entrées seront renumérotées en clés incrémentées partant de zéro dans le tableau résultat.

Liste de paramètres

array1

Tableau initial à fusionner.

...

Liste de tableaux à fusionner.

Valeurs de retour

Retourne le tableau résultant.

Historique

Version Description
5.0.0
Avertissement

Le comportement de array_merge() a été modifié en PHP 5. Contrairement à PHP 4, array_merge() n'accepte que des paramètres de type array. Cependant, vous pouvez utiliser le transtypage pour fusionner les autres types de valeurs. Voyez l'exemple ci-dessous.

Exemple #1 Exemples PHP 5 avec array_merge()

<?php
$beginning 
'foo';
$end = array(=> 'bar');
$result array_merge((array)$beginning, (array)$end);
print_r($result);
?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => foo
        [1] => bar
    )

Exemples

Exemple #2 Exemple avec array_merge()

<?php
$array1 
= array("color" => "red"24);
$array2 = array("a""b""color" => "green""shape" => "trapezoid"4);
$result array_merge($array1$array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
)

Exemple #3 Exemple simple avec array_merge()

<?php
$array1 
= array();
$array2 = array(=> "data");
$result array_merge($array1$array2);
?>

N'oubliez pas que les index numériques seront réindexés !

Array
(
    [0] => data
)

Si vous voulez ajouter des éléments du second tableau au premier sans pour autant écraser ou ré-indexer les éléments du premier, utilisez l'opérateur d'union + :

<?php
$array1 
= array(=> 'zero_a'=> 'two_a'=> 'three_a');
$array2 = array(=> 'one_b'=> 'three_b'=> 'four_b');
$result $array1 $array2;
var_dump($result);
?>

Les clés du premier tableau sont préservées. Si une clé existe dans les 2 tableaux, alors l'élément du premier sera utilisé et la clé correspondante du second sera ignorée.

array(5) {
  [0]=>
  string(6) "zero_a"
  [2]=>
  string(5) "two_a"
  [3]=>
  string(7) "three_a"
  [1]=>
  string(5) "one_b"
  [4]=>
  string(6) "four_b"
}

Voir aussi



array_multisort

(PHP 4, PHP 5)

array_multisortTrie les tableaux multidimensionnels

Description

bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $... ]]] )

array_multisort() sert à trier simultanément plusieurs tableaux, ou bien à trier un tableau multidimensionnel, suivant l'une ou l'autre de ses dimensions.

Les clés associatives (chaîne de caractères) seront maintenues, mais les clés numériques seront réindexées.

Liste de paramètres

arr

Un tableau à trier.

arg

Optionnellement, d'autres tableaux, ou des options de tri pour l'argument précédent : SORT_ASC, SORT_DESC, SORT_REGULAR, SORT_NUMERIC, SORT_STRING.

...

D'autres arguments.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Trier plusieurs tableaux

<?php
$ar1 
= array(101001000);
$ar2 = array(1324);
array_multisort($ar1$ar2);

var_dump($ar1);
var_dump($ar2);
?>

Dans cet exemple, après le tri, le premier tableau contient 0, 10, 100, 100. Le deuxième tableau contient 4, 1, 2, 3. Les entrées du second tableau correspondant aux valeurs jumelles du premier tableau (100 et 100), sont aussi triées.

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

Exemple #2 Trier un tableau multidimensionnel

<?php
$ar 
= array(
       array(
"10"11100100"a"),
       array(   
1,  2"2",   3,   1)
      );
array_multisort($ar[0], SORT_ASCSORT_STRING,
                
$ar[1], SORT_NUMERICSORT_DESC);
var_dump($ar);
?>

Dans cet exemple, après le tri, le premier tableau contient "10", 100, 100, 11, "a" (tri alphabétique, ordre croissant); Le deuxième tableau contient 1, 3, "2", 2, 1 (tri numérique, ordre décroissant).

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Exemple #3 Classer les résultats d'une base de données

Dans cet exemple, chaque élément du tableau data représente une ligne de la table. Ce type de données est typique d'un enregistrement de base de données.

Exemple de données :

volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

Les données sont sous forme de tableau, appelé data. Cela est généralement le résultat, par exemple, de la fonction mysql_fetch_assoc().

<?php
$data
[] = array('volume' => 67'edition' => 2);
$data[] = array('volume' => 86'edition' => 1);
$data[] = array('volume' => 85'edition' => 6);
$data[] = array('volume' => 98'edition' => 2);
$data[] = array('volume' => 86'edition' => 6);
$data[] = array('volume' => 67'edition' => 7);
?>

Dans cet exemple, nous allons trier la colonne volume par ordre décroissant, et la colonne edition par ordre croissant.

Nous avons un tableau de lignes, mais array_multisort() nécessite un tableau de colonnes, donc nous utilisons le code suivant pour obtenir les colonnes et ainsi effectuer le tri.

<?php
// Obtient une liste de colonnes
foreach ($data as $key => $row) {
    
$volume[$key]  = $row['volume'];
    
$edition[$key] = $row['edition'];
}

// Trie les données par volume décroissant, edition croissant
// Ajoute $data en tant que dernier paramètre, pour trier par la clé commune
array_multisort($volumeSORT_DESC$editionSORT_ASC$data);
?>

Le jeu d'enregistrement est maintenant trié et ressemble à cela :

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

Exemple #4 Tri non sensible à la casse

SORT_STRING et SORT_REGULAR sont sensibles à la casse, les chaînes de caractères commençant avec une lettre en majuscule viendront avant les chaînes de caractères commençant par une lettre en minuscule.

Pour effectuer une recherche insensible à la casse, effectuez le tri sur une copie minuscule des colonnes du tableau original.

<?php
$array 
= array('Alpha''atomic''Beta''bank');
$array_lowercase array_map('strtolower'$array);

array_multisort($array_lowercaseSORT_ASCSORT_STRING$array);

print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

Voir aussi



array_pad

(PHP 4, PHP 5)

array_padComplète un tableau avec une valeur jusqu'à la longueur spécifiée

Description

array array_pad ( array $input , int $pad_size , mixed $pad_value )

array_pad() retourne une copie du tableau input complétée jusqu'à la taille de pad_size avec la valeur pad_value. Si pad_size est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de pad_size est plus petite que la taille du tableau input, alors le tableau n'est pas complété. Il est possible d'ajouter au maximum 1048576 d'un seul coup.

Liste de paramètres

input

Tableau initial de valeurs à compléter.

pad_size

Nouvelle taille du tableau.

pad_value

Valeur à insérer si l'argument input est plus petit que l'argument pad_size.

Valeurs de retour

Retourne une copie du tableau input complétée jusqu'à la taille de pad_size avec la valeur pad_value. Si pad_size est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de pad_size est plus petite que la taille du tableau input, alors le tableau n'est pas complété.

Exemples

Exemple #1 Exemple avec array_pad()

<?php
$input 
= array(12109);

$result array_pad($input50);
// Le résultat est : array(12, 10, 9, 0, 0)

$result array_pad($input, -7, -1);
// Le résultat est : array(-1, -1, -1, -1, 12, 10, 9)

$result array_pad($input2"noop");
// pas complété
?>

Voir aussi

  • array_fill() - Remplit un tableau avec une même valeur
  • range() - Crée un tableau contenant un intervalle d'éléments



array_pop

(PHP 4, PHP 5)

array_popDépile un élément de la fin d'un tableau

Description

mixed array_pop ( array &$array )

array_pop() dépile et retourne le dernier élément du tableau array, le raccourcissant d'un élément. Si array est vide, ou n'est pas un tableau, array_pop() retourne NULL. Un ajout sur une variable qui n'est pas un tableau émettra un message de type Alerte.

Note: Cette fonction remet le pointeur au début du tableau (équivalent de reset()).

Liste de paramètres

array

Le tableau duquel on récupère la valeur.

Valeurs de retour

Retourne la dernière valeur du tableau array. Si array est vide (ou n'est pas un tableau), NULL sera retourné.

Exemples

Exemple #1 Exemple avec array_pop()

<?php
$stack 
= array("orange""banana""apple""raspberry");
$fruit array_pop($stack);
print_r($stack);
?>

Après cela, $stack n'aura plus que 3 éléments :

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

et raspberry sera assigné à $fruit.

Voir aussi

  • array_push() - Empile un ou plusieurs éléments à la fin d'un tableau
  • array_shift() - Dépile un élément au début d'un tableau
  • array_unshift() - Empile un ou plusieurs éléments au début d'un tableau



array_product

(PHP 5 >= 5.1.0)

array_productCalcule le produit des valeurs du tableau

Description

number array_product ( array $array )

array_product() retourne le produit des valeurs du tableau array.

Liste de paramètres

array

Le tableau.

Valeurs de retour

Retourne le produit, sous la forme d'un entier ou d'un nombre décimal.

Exemples

Exemple #1 Exemple avec array_product()

<?php

$a 
= array(2468);
echo 
"produit(a) = " array_product($a) . "\n";

?>

L'exemple ci-dessus va afficher :

produit(a) = 384



array_push

(PHP 4, PHP 5)

array_pushEmpile un ou plusieurs éléments à la fin d'un tableau

Description

int array_push ( array &$array , mixed $var [, mixed $... ] )

array_push() considère array comme une pile, et empile les variables var, ... à la fin de array. La longueur du tableau array augmente d'autant. Cela a le même effet que :

<?php
$array
[] = $var;
?>
répété pour chaque var.

Note: Si vous utilisez la fonction array_push() pour ajouter un élément à un tableau, il est mieux de la remplacer par l'opérateur $array[] = qui évite le passage par une fonction.

Note: array_push() émettra une alerte si le premier argument n'est pas un tableau. Ceci diffère du comportement de $var[] où un nouveau tableau est créé.

Liste de paramètres

array

Le tableau d'entrée.

var

La valeur à insérer.

Valeurs de retour

Retourne le nouveau nombre d'éléments dans le tableau.

Exemples

Exemple #1 Exemple avec array_push()

<?php
$stack 
= array("orange""banana");
array_push($stack"apple""raspberry");
print_r($stack);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

Voir aussi



array_rand

(PHP 4, PHP 5)

array_randPrend une ou plusieurs valeurs, au hasard dans un tableau

Description

mixed array_rand ( array $input [, int $num_req = 1 ] )

Sélectionne une ou plusieurs valeurs au hasard dans un tableau et retourne la ou les clés de ces valeurs.

Liste de paramètres

input

Le tableau d'entrée.

num_req

Spécifie le nombre d'entrées que vous voulez récupérer. Essayer de récupérer plus d'entrées que le tableau n'en contient résultera dans une erreur de niveau E_WARNING.

Valeurs de retour

Si vous ne demandez qu'une seule entrée, array_rand() retourne l'index de la valeur. Sinon, elle retourne un tableau d'index. Cela vous permet de faire une sélection au hasard de clés, ou bien de valeurs.

Historique

Version Description
5.2.10 Les clés du tableau résultant ne sont plus mélangées.
4.2.0Le générateur de nombres aléatoires est initialisé automatiquement.

Exemples

Exemple #1 Exemple avec array_rand()

<?php
$input 
= array("Neo""Morpheus""Trinity""Cypher""Tank");
$rand_keys array_rand($input2);
echo 
$input[$rand_keys[0]] . "\n";
echo 
$input[$rand_keys[1]] . "\n";
?>

Voir aussi

  • shuffle() - Mélange les éléments d'un tableau



array_reduce

(PHP 4 >= 4.0.5, PHP 5)

array_reduceRéduit itérativement un tableau

Description

mixed array_reduce ( array $input , callback $function [, mixed $initial = NULL ] )

array_reduce() applique itérativement la fonction function aux éléments du tableau input, de manière à réduire le tableau à une valeur simple.

Liste de paramètres

input

Le tableau d'entrée.

function

La fonction de rappel.

initial

Si l'argument optionnel initial est disponible, il sera utilisé pour initialiser le processus, ou bien comme valeur finale si le tableau est vide.

Valeurs de retour

Retourne la valeur résultante.

Si le tableau est vide et le paramètre initial n'est pas passé, array_reduce() retourne NULL.

Historique

Version Description
5.3.0 Modification du paramètre initial afin d'autoriser des variables de types mixtes ; auparavant, uniquement des entiers.

Exemples

Exemple #1 Exemple avec array_reduce()

<?php
function rsum($v$w)
{
    
$v += $w;
    return 
$v;
}

function 
rmul($v$w)
{
    
$v *= $w;
    return 
$v;
}

$a = array(12345);
$x = array();
$b array_reduce($a"rsum");
$c array_reduce($a"rmul"10);
$d array_reduce($x"rsum""Aucune donnée à réduire");
?>

Dans cet exemple, $b contiendra 15, $c contiendra 1200 (= 10*1*2*3*4*5), et $d contiendra "Aucune donnée à réduire".

Voir aussi



array_replace_recursive

(PHP 5 >= 5.3.0)

array_replace_recursiveReplaces elements from passed arrays into the first array recursively

Description

array array_replace_recursive ( array &$array , array &$array1 [, array &$array2 [, array &$... ]] )

array_replace_recursive() remplace les valeurs du premier array avec les valeurs des mêmes clés issues des tableaux suivants. Si une clé du premier tableau existe dans un des tableaux suivants, sa valeur sera remplacée. Si la clé n'existe pas dans le premier tableau, elle sera créée. Si la clé n'existe que dans le premier tableau, elle sera laissée intacte. Si plusieurs tableaux sont passés comme arguments de remplacement, ils seront traités dans l'ordre.

array_replace_recursive() est récursive : si une valeur est un tableau, la même fonction de remplacement lui sera appliqué.

Si la valeur dans array est scalaire, elle sera remplacée par la valeur du tableau array1, que ce soit un scalaire ou un tableau. Si la valeur de array et array1 sont toutes les deux des tableaux, array_replace_recursive() remplacera les valeurs récursivement.

Liste de paramètres

array

Le tableau dans lequel les éléments sont remplacés.

array1

Les tableaux dont les valeurs finiront dans le premier tableau.

Valeurs de retour

Retourne un tableau ou NULL si une erreur survient.

Exemples

Exemple #1 Exemle avec array_replace_recursive()

<?php
$base 
= array('citrus' => array( "orange") , 'berries' => array("blackberry""raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

$basket array_replace_recursive($base$replacements);
print_r($basket);

$basket array_replace($base$replacements);
print_r($basket);
?>

L'exemple ci-dessus va afficher :

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

)
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
        )

)

Exemple #2 Exemple avec array_replace_recursive() et la récursivité

<?php
$base 
= array('citrus' => array("orange") , 'berries' => array("blackberry""raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple''berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');

$basket array_replace_recursive($base$replacements$replacements2);
print_r($basket);

?>

L'exemple ci-dessus va afficher :

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

    [others] => litchis
)

Voir aussi

  • array_replace() - Remplace les éléments d'un tableau par ceux d'autres tableaux



array_replace

(PHP 5 >= 5.3.0)

array_replaceRemplace les éléments d'un tableau par ceux d'autres tableaux

Description

array array_replace ( array &$array , array &$array1 [, array &$array2 [, array &$... ]] )

array_replace() remplace les valeurs du premier array avec les valeurs des mêmes clés issues des tableaux suivants. Si une clé du premier tableau existe dans un des tableaux suivants, sa valeur sera remplacée. Si la clé n'existe pas dans le premier tableau, elle sera créée. Si la clé n'existe que dans le premier tableau, elle sera laissée intacte. Si plusieurs tableaux sont passés comme arguments de remplacement, ils seront traités dans l'ordre.

array_replace() n'est pas récursif : il remplace les valeurs du premier tableau par la valeur des tableaux suivants, quelque que soit leur type.

Liste de paramètres

array

Le tableau dans lequel les éléments sont remplacés.

array1

Les tableaux dont les valeurs finiront dans le premier tableau.

Valeurs de retour

Retourne un tableau ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec array_replace()

<?php
$base 
= array("orange""banana""apple""raspberry");
$replacements = array(=> "pineapple"=> "cherry");
$replacements2 = array(=> "grape");

$basket array_replace($base$replacements$replacements2);
print_r($basket);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)

Voir aussi



array_reverse

(PHP 4, PHP 5)

array_reverseInverse l'ordre des éléments d'un tableau

Description

array array_reverse ( array $array [, bool $preserve_keys = false ] )

array_reverse() retourne un nouveau tableau qui contient les mêmes éléments que array, mais dans l'ordre inverse.

Liste de paramètres

array

Le tableau d'entrée.

preserve_keys

Si définit à TRUE, les clés seront préservées.

Valeurs de retour

Retourne le tableau dans l'ordre inverse.

Historique

Version Description
4.0.3 Le paramètre preserve_keys est ajouté.

Exemples

Exemple #1 Exemple avec array_reverse()

<?php
$input  
= array("php"4.0, array("green""red"));
$result array_reverse($input);
$result_keyed array_reverse($inputtrue);
?>

Ce code fait que $result et $result_keyed contiennent les mêmes éléments, mais qu'ils diffèrent au niveau des clés. $result et $result_keyed contiennent :

Array
(
    [0] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [0] => php
)

Voir aussi

  • array_flip() - Remplace les clés par les valeurs, et les valeurs par les clés




array_shift

(PHP 4, PHP 5)

array_shiftDépile un élément au début d'un tableau

Description

mixed array_shift ( array &$array )

array_shift() extrait la première valeur d'un tableau et la retourne, en raccourcissant le tableau d'un élément, et en déplaçant tous les éléments vers le bas. Toutes les clés numériques seront modifiées pour commencer à zéro.

Note: Cette fonction remet le pointeur au début du tableau (équivalent de reset()).

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur dépilée, ou NULL si le tableau est vide ou si la valeur d'entrée n'est pas un tableau.

Exemples

Exemple #1 Exemple avec array_shift()

<?php
$stack 
= array("orange""banana""apple""raspberry");
$fruit array_shift($stack);
print_r($stack);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

et orange a été placé dans $fruit.

Voir aussi

  • array_unshift() - Empile un ou plusieurs éléments au début d'un tableau
  • array_push() - Empile un ou plusieurs éléments à la fin d'un tableau
  • array_pop() - Dépile un élément de la fin d'un tableau



array_slice

(PHP 4, PHP 5)

array_sliceExtrait une portion de tableau

Description

array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys = false ]] )

array_slice() retourne une série d' éléments du tableau array commençant à l'offset offset et représentant length éléments.

Note: Cette fonction remet le pointeur au début du tableau (équivalent de reset()).

Liste de paramètres

array

Le tableau d'entrée.

offset

Si offset est non-négatif, la série commencera à cet offset dans le tableau array. Si offset est négatif, cette série commencera à l'offset offset, mais en commençant à la fin du tableau array.

length

Si length est fourni et positif, alors la série retournée aura autant d'éléments. Si length est fourni et négatif, alors la série contiendra les éléments depuis l'offset offset jusqu'à length éléments en partant de la fin. Si length est omis, la séquence lira tous les éléments du tableau, depuis l'offset précisé jusqu'à la fin du tableau.

preserve_keys

Notez que, par défaut, la fonction array_slice() va réordonner et réinitialiser les indices du tableau. Vous pouvez modifier ce comportement en définissant le paramètre preserve_keys à TRUE.

Valeurs de retour

Retourne la portion du tableau.

Historique

Version Description
5.0.2 Le paramètre optionnel preserve_keys a été ajouté.

Exemples

Exemple #1 Exemple avec array_slice()

<?php
$input 
= array("a""b""c""d""e");

$output array_slice($input2);         // retourne "c", "d", et "e"
$output array_slice($input, -21);     // retourne "d"
$output array_slice($input03);      // retourne "a", "b", et "c"

// notez les clés d'index différentes
print_r(array_slice($input2, -1));
print_r(array_slice($input2, -1true));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => c
    [1] => d
)
Array
(
    [2] => c
    [3] => d
)

Voir aussi



array_splice

(PHP 4, PHP 5)

array_spliceEfface et remplace une portion de tableau

Description

array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] )

array_splice() supprime les éléments désignés par offset et length du tableau input et les remplace par les éléments du tableau replacement, si ce dernier est présent.

Notez que les clés numériques de input ne sont pas préservées.

Note: Si replacement n'est pas un tableau, il sera transtypé en 1 (i.e. (array) $parameter). Cela peut conduire en un résultat non prévu lors de l'utilisation d'un objet ou NULL comme paramètre replacement.

Liste de paramètres

input

Le tableau d'entrée.

offset

Si offset est positif, la série commencera à cet offset dans le tableau input. Si offset est négatif, cette série commencera à l'offset offset, mais en commençant à la fin du tableau input.

length

Si length est donné et positif, alors la série aura autant d'éléments. Si length est donné et négatif, les éléments seront pris dans l'ordre inverse. Si length est omis, la séquence lira tous les éléments du tableau, depuis l'offset offset jusqu'à la fin du tableau. Conseil : pour supprimer tous les éléments du tableau depuis offset jusqu'à la fin, même si un tableau de remplacement replacement est spécifié, utilisez count($input) à la place de length.

replacement

Si replacement est précisé, alors les éléments supprimés sont remplacés par les éléments de ce tableau.

Si l'offset et length sont tels que la taille du tableau ne change pas, alors les éléments du tableau de remplacement replacement sont insérés à partir de l'offset offset. Notez que les clés numériques de input ne sont pas préservées.

Si le tableau de remplacement replacement ne contient qu'un seul élément, il n'est pas obligatoire de forcer le type en tableau avec (array)(), à moins que cette variable ne soit elle-même un tableau, un objet ou NULL.

Valeurs de retour

Retourne le tableau contenant les éléments supprimés.

Exemples

Exemple #1 Exemple avec array_splice()

<?php
$input 
= array("red""green""blue""yellow");
array_splice($input2);
// $input is now array("red", "green")

$input = array("red""green""blue""yellow");
array_splice($input1, -1);
// $input is now array("red", "yellow")

$input = array("red""green""blue""yellow");
array_splice($input1count($input), "orange");
// $input is now array("red", "orange")

$input = array("red""green""blue""yellow");
array_splice($input, -11, array("black""maroon"));
// $input is now array("red", "green",
//          "blue", "black", "maroon")

$input = array("red""green""blue""yellow");
array_splice($input30"purple");
// $input is now array("red", "green",
//          "blue", "purple", "yellow");
?>

Exemple #2 Exemple avec array_splice()

L'exemple suivant modifie les valeurs de $input de la même façon :

<?php
array_push
($input$x$y);
array_splice($inputcount($input), 0, array($x$y));
array_pop($input);
array_splice($input, -1);
array_shift($input);
array_splice($input01);
array_unshift($input$x$y);
array_splice($input00, array($x$y));
$input[$x] = $y// pour les tableaux dont les clés sont égales à l'offset
array_splice($input$x1$y);
?>

Voir aussi



array_sum

(PHP 4 >= 4.0.4, PHP 5)

array_sumCalcule la somme des valeurs du tableau

Description

number array_sum ( array $array )

array_sum() retourne la somme des valeurs du tableau array.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la somme des valeurs, sous la forme d'un entier ou d'un nombre décimal.

Historique

Version Description
4.2.1 Dans les versions de PHP antérieure à la version 4.2.1, cette fonction modifiait le tableau passé en argument et convertissait les chaînes de caractères en nombres (ce qui conduisait généralement à 0).

Exemples

Exemple #1 Exemple avec array_sum()

<?php
$a 
= array(2468);
echo 
"sum(a) = " array_sum($a) . "\n";

$b = array("a" => 1.2"b" => 2.3"c" => 3.4);
echo 
"sum(b) = " array_sum($b) . "\n";
?>

L'exemple ci-dessus va afficher :

sum(a) = 20
sum(b) = 6.9



array_udiff_assoc

(PHP 5)

array_udiff_assocCalcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel

Description

array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel.

Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple, array_udiff_assoc($array1[1], $array2[1], "compare_func");.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

data_compare_func

La fonction de comparaison.

La fonction utilisateur de rappel est utilisé pour la comparaison. Elle doit retourner un entier inférieur à, égal à, ou plus grand que 0 si le premier argument est considéré comme étant, respectivement, inférieur à, égal à, ou plus grand que le second.

Valeurs de retour

array_udiff_assoc() retourne un tableau contenant toutes les valeurs de array1 qui ne sont présentes dans aucun autre des arguments array2, .... Notez que les clés sont utilisées dans les comparaisons contrairement à array_diff() et array_udiff(). La comparaison des données est effectuée en utilisant une fonction de rappel fournie par l'utilisateur, data_compare_func. Ce comportement est différent de celui de array_diff_assoc() qui utilise une fonction de comparaison interne.

Exemples

Exemple #1 Exemple avec array_udiff_assoc()

<?php
class cr {
    private 
$priv_member;
    function 
cr($val)
    {
        
$this->priv_member $val;
    }

    static function 
comp_func_cr($a$b)
    {
        if (
$a->priv_member === $b->priv_member) return 0;
        return (
$a->priv_member $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff_assoc($a$b, array("cr""comp_func_cr"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Dans notre exemple, vous voyez que la paire "1" => new cr(4) est présente dans les deux tableaux et donc absente du tableau résultant.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel



array_udiff_uassoc

(PHP 5)

array_udiff_uassocCalcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel

Description

array array_udiff_uassoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func , callback $key_compare_func )

Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel.

Notez que les clés sont utilisées dans les comparaisons contrairement à array_diff() et array_udiff().

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

data_compare_func

La fonction de rappel effectuant la comparaison.

Pour la comparaison, la fonction de rappel de l'utilisateur est utilisée. Cette fonction doit retourner un entier inférieur, égal ou supérieur à zéro si le premier argument est respectivement plus petit, égal ou plus grand que le second.

Cette comparaison est effectuée par une fonction de rappel de l'utilisateur : data_compare_func. Ce comportement est différent de celui de array_diff_assoc() qui utilise une fonction interne pour les comparaisons.

key_compare_func

La comparaison des clés (indices) est effectuée par la fonction de rappel key_compare_func. Ce comportement est différent de celui de array_udiff_assoc(), vu que cette dernière utilise une fonction interne pour comparer les indices.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui ne sont pas présentes dans aucun autre argument.

Exemples

Exemple #1 Exemple avec array_udiff_uassoc()

<?php
class cr {
    private 
$priv_member;
    function 
cr($val)
    {
        
$this->priv_member $val;
    }

    static function 
comp_func_cr($a$b)
    {
        if (
$a->priv_member === $b->priv_member) return 0;
        return (
$a->priv_member $b->priv_member)? 1:-1;
    }

    static function 
comp_func_key($a$b)
    {
        if (
$a === $b) return 0;
        return (
$a $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff_uassoc($a$b, array("cr""comp_func_cr"), array("cr""comp_func_key"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Dans notre exemple, vous voyez que la paire "1" => new cr(4) est présente dans les deux tableaux et donc, absente du tableau résultant. Gardez en tête que vous devez fournir deux fonctions de rappel.

Notes

Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel



array_udiff

(PHP 5)

array_udiffCalcule la différence entre deux tableaux en utilisant une fonction rappel

Description

array array_udiff ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

Calcule la différence entre deux tableaux en utilisant une fonction rappel. Cette fonctionne agit comme la fonction array_diff() qui utilise une fonction interne pour comparer les données.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

data_compare_func

La fonction de comparaison.

La fonction utilisateur de rappel est utilisée pour la comparaison. Elle doit retourner un entier plus petit que, égal à, ou plus grand que zéro si le premier argument est respectivement plus petit que, égal au, ou plus grand que le second.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui ne sont pas présentes dans aucun autre argument.

Exemples

Exemple #1 Exemple avec array_udiff()

<?php
class cr {
    private 
$priv_member;
    function 
cr($val)
    {
        
$this->priv_member $val;
    }

    static function 
comp_func_cr($a$b)
    {
        if (
$a->priv_member === $b->priv_member) return 0;
        return (
$a->priv_member $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff($a$b, array("cr""comp_func_cr"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Notes

Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple array_udiff($array1[0], $array2[0], "data_compare_func");.

Voir aussi

  • array_diff() - Calcule la différence entre deux tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel



array_uintersect_assoc

(PHP 5)

array_uintersect_assocCalcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel

Description

array array_uintersect_assoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel.

Notez que les clés sont utilisées dans la comparaison par opposition à la fonction array_uintersect(). Les données sont comparées en utilisant une fonction de rappel.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

data_compare_func

Pour la comparaison, une fonction de rappel spécifiée par l'utilisateur est utilisée. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les autres arguments.

Exemples

Exemple #1 Exemple avec array_uintersect_assoc()

<?php
$array1 
= array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "GREEN""B" => "brown""yellow""red");

print_r(array_uintersect_assoc($array1$array2"strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
)

Voir aussi

  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel



array_uintersect_uassoc

(PHP 5)

array_uintersect_uassocCalcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel

Description

array array_uintersect_uassoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func , callback $key_compare_func )

Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel.Notez que les clés sont utilisées dans la comparaison en opposition à la fonction array_uintersect(). Les données et les index sont comparés en utilisant une fonction de rappel.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

data_compare_func

Pour la comparaison, une fonction de rappel spécifiée par l'utilisateur est utilisée. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

key_compare_func

Fonction de rappel utilisée pour la comparaison des clés.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_uintersect_uassoc()

<?php
$array1 
= array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "GREEN""B" => "brown""yellow""red");

print_r(array_uintersect_uassoc($array1$array2"strcasecmp""strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [b] => brown
)

Voir aussi

  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel



array_uintersect

(PHP 5)

array_uintersectCalcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel

Description

array array_uintersect ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

data_compare_func

La fonction de rappel de comparaison.

Pour la comparaison, une fonction de rappel, spécifiée par l'utilisateur, est utilisée. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_uintersect()

<?php
$array1 
= array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "GREEN""B" => "brown""yellow""red");

print_r(array_uintersect($array1$array2"strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

Voir aussi

  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel



array_unique

(PHP 4 >= 4.0.1, PHP 5)

array_uniqueDédoublonne un tableau

Description

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

array_unique() extrait du tableau array les valeurs distinctes, et supprime tous les doublons.

Notez que les clés sont préservées. array_unique() trie les valeurs traitées comme des chaînes dans un premier temps, puis garde la première clé rencontrée pour chaque valeur et ignore les clés suivantes. Cela ne signifie pas que la clé de la première valeur rencontrée du tableau array non trié sera conservée.

Note: Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2. En clair : lorsque la représentation en chaîne de caractères est identique. Le premier élément sera utilisé

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Le second paramètre optionnel sort_flags peut être utilisé pour modifier la façon dont s'effectue le tri en utilisant les valeurs suivantes :

Drapeau de type de tri :

  • SORT_REGULAR - compare les éléments normalement (ne modifie pas les types)
  • SORT_NUMERIC - compare les éléments numériquement
  • SORT_STRING - compare les éléments comme des chaînes
  • SORT_LOCALE_STRING - compare les éléments comme des chaînes, suivant la locale courante.

Valeurs de retour

Retourne le tableau filtré.

Historique

Version Description
5.2.10 Changement de la valeur par défaut de sort_flags à nouveau vers SORT_STRING.
5.2.9 Ajout du paramètre optionnel sort_flags, qui faut par défaut SORT_REGULAR. Avant 5.2.9, cette fonction utilisait par défaut SORT_STRING, en interne.

Exemples

Exemple #1 Exemple avec array_unique()

<?php
$input 
= array("a" => "green""red""b" => "green""blue""red");
$result array_unique($input);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Exemple #2 Exemple avec array_unique() et les types

<?php
$input 
= array(4"4""3"43"3");
$result array_unique($input);
var_dump($result);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Notes

Note: Notez que array_unique() n'est pas conçu pour fonctionner avec des tableaux multidimensionnels.



array_unshift

(PHP 4, PHP 5)

array_unshiftEmpile un ou plusieurs éléments au début d'un tableau

Description

int array_unshift ( array &$array , mixed $var [, mixed $... ] )

array_unshift() ajoute les éléments var, ..., passés en argument au début du tableau array. Notez que les éléments sont ajoutés comme un tout, et qu'ils restent dans le même ordre. Toutes les clés numériques seront modifiées afin de commencer à partir de zéro, tandis que les clés littérales ne seront pas touchées.

Liste de paramètres

array

Le tableau d'entrée.

var

Les variables à ajouter.

Valeurs de retour

Retourne le nouveau nombre d'éléments du tableau array.

Exemples

Exemple #1 Exemple avec array_unshift()

<?php
$queue 
= array("orange""banana");
array_unshift($queue"apple""raspberry");
print_r($queue);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

Voir aussi

  • array_shift() - Dépile un élément au début d'un tableau
  • array_push() - Empile un ou plusieurs éléments à la fin d'un tableau
  • array_pop() - Dépile un élément de la fin d'un tableau



array_values

(PHP 4, PHP 5)

array_valuesRetourne toutes les valeurs d'un tableau

Description

array array_values ( array $input )

array_values() retourne les valeurs du tableau input et l'indexe numériquement.

Liste de paramètres

input

Le tableau.

Valeurs de retour

Retourne un tableau de valeurs indexé.

Exemples

Exemple #1 Exemple avec array_values()

<?php
$array 
= array("size" => "XL""color" => "gold");
print_r(array_values($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => XL
    [1] => gold
)

Voir aussi

  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau



array_walk_recursive

(PHP 5)

array_walk_recursiveApplique une fonction de rappel récursivement à chaque membre d'un tableau

Description

bool array_walk_recursive ( array &$input , callback $funcname [, mixed $userdata ] )

Applique la fonction utilisateur funcname à chaque élément du tableau input. Cette fonction se reproduira dans toutes les profondeurs du tableau.

Liste de paramètres

input

Le tableau d'entrée.

funcname

Typiquement, funcname prend 2 paramètres. Le paramètre input, représentant la valeur, est le premier, l'index/clé, le deuxième.

Note:

Si funcname doit être exécuté avec les valeurs actuelles du tableau, spécifiez le premier paramètre de funcname par référence. Alors, tout changement effectué sur les éléments de ce tableau sera également effectué sur le tableau original.

userdata

Si le paramètre optionnel userdata est fourni, il sera passé comme troisième paramètre à la fonction de rappel funcname.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec array_walk_recursive()

<?php
$sweet 
= array('a' => 'apple''b' => 'banana');
$fruits = array('sweet' => $sweet'sour' => 'lemon');

function 
test_print($item$key)
{
    echo 
"$key holds $item\n";
}

array_walk_recursive($fruits'test_print');
?>

L'exemple ci-dessus va afficher :

a holds apple
b holds banana
sour holds lemon

Vous aurez noté que la clé 'sweet' n'est jamais affichée. Toute clé qui est associée à un tableau n'est pas passée à la fonction de rappel.

Voir aussi

  • array_walk() - Exécute une fonction sur chacun des éléments d'un tableau
  • Informations sur le type callback



array_walk

(PHP 4, PHP 5)

array_walkExécute une fonction sur chacun des éléments d'un tableau

Description

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

Exécute la fonction funcname définie par l'utilisateur sur chaque élément du tableau array.

array_walk() n'est pas affecté par le pointeur interne du tableau array. array_walk() traversera le tableau en totalité sans se soucier de la position du pointeur.

Liste de paramètres

array

Le tableau d'entrée.

funcname

Typiquement, funcname prend deux paramètres. La valeur du paramètre input étant le premier et la clé/index, le second.

Note:

Si funcname doit travailler avec les véritables valeurs du tableau, spécifiez que le premier paramètre de funcname doit être passé par référence. Alors, les éléments seront directement modifiés dans le tableau.

Note:

Plusieurs fonctions internes (par exemple, strtolower()) émettent une alerte si plus d'arguments que ceux attendus sont passés à la fonction et ne sont pas utilisable directement comme funcname.

Seules les valeurs du array peuvent être modifiées; sa structure ne peut pas, c'est à dire que vous ne pouvez ajouter, supprimer ou réordonner des éléments. Si la fonction de callback ne respecte pas cette règle, le comportement va devenir indéfini et imprévisible.

userdata

Si le paramètre optionnel userdata est fourni, il sera passé comme troisième paramètre à la fonction définie par l'utilisateur funcname.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Si function requiert plus de paramètres que ceux donnés, une alerte E_WARNING sera générée à chaque fois que la fonction array_walk() appellera funcname. Ces alertes peuvent ne pas être affichées en utilisant l'opérateur d'erreur PHP @ lors de l'appel de la fonction array_walk() ou en utilisant error_reporting().

Exemples

Exemple #1 Exemple avec array_walk()

<?php
$fruits 
= array("d" => "lemon""a" => "orange""b" => "banana""c" => "apple");

function 
test_alter(&$item1$key$prefix)
{
    
$item1 "$prefix$item1";
}

function 
test_print($item2$key)
{
    echo 
"$key$item2<br />\n";
}

echo 
"Avant ...:\n";
array_walk($fruits'test_print');

array_walk($fruits'test_alter''fruit');
echo 
"... et après :\n";

array_walk($fruits'test_print');
?>

L'exemple ci-dessus va afficher :

Avant ...:
d. lemon
a. orange
b. banana
c. apple
... et après :
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

Voir aussi



array

(PHP 4, PHP 5)

arrayCrée un tableau

Description

array array ([ mixed $... ] )

Crée un tableau. Lisez la section sur les types-tableaux pour plus d'informations sur ce qu'est un tableau.

Liste de paramètres

...

La syntaxe "index => valeur", séparée par des virgules, définit les index et leur valeur. Un index peut être une chaîne ou un nombre. Si l'index est omis, un index numérique sera automatiquement généré (commençant à 0). Si l'index est un entier, le prochain index généré prendra la valeur d'index la plus grande + 1. Notez que si deux index identiques sont définis, le dernier remplacera le premier.

Avoir une virgule après avoir défini la dernière entrée, bien qu'inutile, est une syntaxe valide.

Valeurs de retour

Retourne un tableau des paramètres. Les paramètres peuvent fournir un index en utilisant l'opérateur =>. Lisez la section sur les types-tableaux pour plus d'informations sur ce qu'est un tableau.

Exemples

L'exemple suivant montre comment créer un tableau à deux dimensions, comment spécifier les index d'un tableau associatif, et comment générer automatiquement des index numériques.

Exemple #1 Exemple avec array()

<?php
$fruits 
= array (
    
"fruits"  => array("a" => "orange""b" => "banana""c" => "apple"),
    
"numbers" => array(123456),
    
"holes"   => array("first"=> "second""third")
);
?>

Exemple #2 Index automatique avec array()

<?php
$array 
= array(1111,  1=> 1,  => 119=> 13);
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Notez bien que l'index '3' est défini deux fois, et conserve finalement sa dernière valeur de 13. L'index '4' est défini après l'index '8', et l'index généré suivant (valeur 19) est 9, puisque le plus grand index est alors 8.

Cet exemple crée un tableau dont les index commencent à 1.

Exemple #3 Index commençant à 1 avec array()

<?php
$firstquarter 
= array(=> 'January''February''March');
print_r($firstquarter);
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => January
    [2] => February
    [3] => March
)

Tout comme en Perl, vous pouvez accéder à une valeur d'un tableau dans des doubles guillemets. Cependant, avec PHP, vous devez entourer votre tableau avec des parenthèses.

Exemple #4 Accéder à un tableau dans des doubles guillemets

<?php

$foo 
= array('bar' => 'baz');
echo 
"Hello {$foo['bar']}!"// Hello baz!

?>

Notes

Note:

array() est un constructeur de langage utilisé pour représenter littéralement les tableaux, mais ce n'est en aucun cas une fonction régulière.

Voir aussi

  • array_pad() - Complète un tableau avec une valeur jusqu'à la longueur spécifiée
  • list() - Assigne des variables comme si elles étaient un tableau
  • count() - Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet
  • range() - Crée un tableau contenant un intervalle d'éléments
  • foreach
  • Le type array



arsort

(PHP 4, PHP 5)

arsortTrie un tableau en ordre inverse

Description

bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

arsort() trie le tableau array de telle manière que la corrélation entre les index et les valeurs soit conservée.

L'usage principal est lors de tri de tableaux associatifs où l'ordre des éléments est important.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec arsort()

<?php
$fruits 
= array("d" => "lemon""a" => "orange""b" => "banana""c" => "apple");
arsort($fruits);
foreach (
$fruits as $key => $val) {
    echo 
"$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

a = orange
d = lemon
b = banana
c = apple

Les fruits ont été triés en ordre alphabétique inverse, et leurs index respectifs ont été conservés.

Voir aussi



asort

(PHP 4, PHP 5)

asortTrie un tableau et conserve l'association des index

Description

bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

asort() trie le tableau array de telle manière que la corrélation entre les index et les valeurs soit conservée. L'usage principal est lors de tri de tableaux associatifs où l'ordre des éléments est important.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec asort()

<?php
$fruits 
= array("d" => "lemon""a" => "orange""b" => "banana""c" => "apple");
asort($fruits);
foreach (
$fruits as $key => $val) {
    echo 
"$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

c = apple
b = banana
d = lemon
a = orange

Les fruits ont été triés par ordre alphabétique, et leurs index respectifs ont été conservés.

Voir aussi



compact

(PHP 4, PHP 5)

compactCrée un tableau à partir de variables et de leur valeur

Description

array compact ( mixed $varname [, mixed $... ] )

Crée un tableau à partir de variables et de leur valeur.

Pour chacun des arguments varname, ..., compact() recherche une variable avec un même nom dans la table courante des symboles, et l'ajoute dans le tableau, de manière à avoir la relation nom => 'valeur de variable'. En bref, c'est le contraire de la fonction extract().

Toute chaîne non reconnue dans la table des symboles sera tout simplement ignorée.

Liste de paramètres

varname

compact() accepte différents paramètres varname. Les paramètres peuvent être des variables contenant des chaînes, ou un tableau de chaînes, qui peut contenir d'autres tableaux de noms de variables, que compact() traitera récursivement.

Valeurs de retour

Retourne le tableau de sortie contenant toutes les variables ajoutées.

Exemples

Exemple #1 Exemple avec compact()

<?php
$city  
"San Francisco";
$state "CA";
$event "SIGGRAPH";

$location_vars = array("city""state");

$result compact("event""nothing_here"$location_vars);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Notes

Note: Erreur commune

Parce que les variables variables ne doivent pas être utilisées avec les tableaux superglobaux dans des fonctions, les tableaux Superglobaux ne doivent pas être passés dans la fonction compact().

Voir aussi

  • extract() - Importe les variables dans la table des symboles



count

(PHP 4, PHP 5)

countCompte tous les éléments d'un tableau ou le nombre de propriétés d'un objet

Description

int count ( mixed $var [, int $mode = COUNT_NORMAL ] )

Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet.

Pour les objets, count() retourne le nombre de propriétés non-statiques, sans tenir compte de la visibilité. Si SPL est disponible, vous pouvez utiliser la fonction count() en implémentant l'interface Countable. Cette interface a exactement une méthode, count(), qui retourne la valeur retournée par la fonction count().

Reportez-vous à la section sur les Tableaux du manuel, pour plus de détails sur le fonctionnement des tableaux en PHP.

Liste de paramètres

var

Le tableau.

mode

Si le paramètre optionnel mode vaut COUNT_RECURSIVE (ou 1), count() va compter récursivement les tableaux. C'est particulièrement pratique pour compter le nombre d'éléments d'un tableau. count() ne détecte pas la récursivité infinie.

Valeurs de retour

Retourne le nombre d'éléments dans var, qui est généralement un tableau et tout le reste, sauf les objets, n'aura qu'un élément.

Si le paramètre var n'est ni un objet, ni un tableau, 1 sera retourné. Il y a néanmoins une exception : si le paramètre var vaut NULL, 0 sera retourné.

Attention

count() peut retourner 0 pour une variable qui n'a pas été affectée, ou pour un tableau vide. Utilisez plutôt isset() pour tester si la variable existe.

Historique

Version Description
4.2.0 Le paramètre optionnel mode a été ajouté.

Exemples

Exemple #1 Exemple avec count()

<?php
$a
[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result count($a);
// $result == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$result count($b);
// $result == 3

$result count(null);
// $result == 0

$result count(false);
// $result == 1
?>

Exemple #2 Exemple de récursivité avec count()

<?php
$food 
= array('fruits' => array('orange''banana''apple'),
              
'veggie' => array('carrot''collard''pea'));

// count récursif
echo count($foodCOUNT_RECURSIVE); // affiche 8

// count normal
echo count($food); // affiche 2

?>

Voir aussi

  • is_array() - Détermine si une variable est un tableau
  • isset() - Détermine si une variable est définie et est différente de NULL
  • strlen() - Calcule la taille d'une chaîne



current

(PHP 4, PHP 5)

currentRetourne l'élément courant du tableau

Description

mixed current ( array &$array )

Chaque tableau entretient un pointeur interne, qui est initialisé lorsque le premier élément est inséré dans le tableau.

Liste de paramètres

array

Le tableau.

Valeurs de retour

current() ne fait que retourner l'élément courant pointé par le pointeur interne du tableau array. current() ne déplace pas le pointeur. Si le pointeur est au-delà du dernier élément de la liste, current() retourne FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple d'utilisation de current()

<?php
$transport 
= array('foot''bike''car''plane');
$mode current($transport); // $mode = 'foot';
$mode next($transport);    // $mode = 'bike';
$mode current($transport); // $mode = 'bike';
$mode prev($transport);    // $mode = 'foot';
$mode end($transport);     // $mode = 'plane';
$mode current($transport); // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

Notes

Note: Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Voir aussi

  • end() - Positionne le pointeur de tableau en fin de tableau
  • key() - Retourne une clé d'un tableau associatif
  • each() - Retourne chaque paire clé/valeur d'un tableau
  • prev() - Recule le pointeur courant de tableau
  • reset() - Remet le pointeur interne de tableau au début
  • next() - Avance le pointeur interne d'un tableau



each

(PHP 4, PHP 5)

eachRetourne chaque paire clé/valeur d'un tableau

Description

array each ( array &$array )

each() retourne la paire clé/valeur courante du tableau array et avance le pointeur de tableau.

Après chaque appel à each(), le pointeur de tableau est déplacé au prochain élément, ou au-delà dernier élément, lorsqu'on arrive à la fin. Vous devez utiliser reset() si vous voulez traverser le tableau à nouveau avec each().

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la paire clé/valeur courante du tableau array et avance le pointeur de tableau. Cette paire est retournée dans un tableau de 4 éléments, avec les clés 0, 1, key, et value. Les éléments 0 et key contiennent le nom de la clé et 1 et value contiennent la valeur.

Si le pointeur interne de tableau est au-delà de la fin du tableau, each() retourne FALSE.

Exemples

Exemple #1 Exemple avec each()

<?php
$foo 
= array("bob""fred""jussi""jouni""egon""marliese");
$bar each($foo);
print_r($bar);
?>

$bar contient maintenant les clés/valeurs suivantes :

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo 
= array("Robert" => "Bob""Seppo" => "Sepi");
$bar each($foo);
print_r($bar);
?>

$bar contient maintenant les clés/valeurs suivantes :

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() est typiquement utilisée en conjonction avec list() pour passer en revue un tableau. Par exemple :

Exemple #2 Passer en revue un tableau avec each()

<?php
$fruit 
= array('a' => 'apple''b' => 'banana''c' => 'cranberry');

reset($fruit);
while (list(
$key$val) = each($fruit)) {
    echo 
"$key => $val\n";
}
?>

L'exemple ci-dessus va afficher :

a => apple
b => banana
c => cranberry

Attention

Assigner un tableau à une autre variable remet le pointeur du tableau original à zéro. À cause de ce comportement, nous aurions pu provoquer une boucle infinie dans notre exemple si nous avions assigné $fruit à une autre variable dans notre boucle.

Avertissement

each() accepte également des objets, mais peut retourner un résultat non-attendu. Aussi, il n'est pas recommandé d'utiliser cette fonction sur des objets.

Voir aussi

  • key() - Retourne une clé d'un tableau associatif
  • list() - Assigne des variables comme si elles étaient un tableau
  • current() - Retourne l'élément courant du tableau
  • reset() - Remet le pointeur interne de tableau au début
  • next() - Avance le pointeur interne d'un tableau
  • prev() - Recule le pointeur courant de tableau
  • foreach
  • Itération d'objet



end

(PHP 4, PHP 5)

endPositionne le pointeur de tableau en fin de tableau

Description

mixed end ( array &$array )

end() déplace le pointeur interne du tableau array jusqu'au dernier élément et retourne sa valeur.

Liste de paramètres

array

Le tableau. Ce tableau est passé par référence car il sera modifié par la fonction. Cela signifie que vous devez passer une vraie variable et non une fonction retournant un tableau, car actuellement, seules les variables peuvent être passées par référence.

Valeurs de retour

Retourne la valeur du dernier élément ou FALSE si le tableau est vide.

Exemples

Exemple #1 Exemple avec end()

<?php

$fruits 
= array('apple''banana''cranberry');
echo 
end($fruits); // cranberry

?>

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • each() - Retourne chaque paire clé/valeur d'un tableau
  • prev() - Recule le pointeur courant de tableau
  • reset() - Remet le pointeur interne de tableau au début
  • next() - Avance le pointeur interne d'un tableau



extract

(PHP 4, PHP 5)

extractImporte les variables dans la table des symboles

Description

int extract ( array &$var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )

Importe les variables dans la table des symboles.

extract() vérifie chaque clé afin de contrôler si elle a un nom de variable valide. Elle vérifie également les collisions avec des variables existantes dans la table des symboles.

Liste de paramètres

var_array

Un tableau associatif. Cette fonction crée les variables dont les noms sont les index de ce tableau, et leur affecte la valeur associée. Pour chaque paire clé/valeur, extract() crée une variable, avec les paramètres extract_type et prefix.

Vous devez utiliser un tableau associatif. Un tableau indexé numériquement ne produira aucun résultat, à moins que vous n'utilisiez l'option EXTR_PREFIX_ALL ou EXTR_PREFIX_INVALID.

extract_type

Le traitement des collisions est déterminé par extract_type. Ce paramètre peut prendre une des valeurs suivantes :

EXTR_OVERWRITE
Lors d'une collision, réécrire la variable existante.
EXTR_SKIP
Lors d'une collision, ne pas réécrire la variable existante.
EXTR_PREFIX_SAME
Lors d'une collision, ajouter le préfixe prefix, et créer une nouvelle variable.
EXTR_PREFIX_ALL
Ajouter le préfixe prefix pour toutes les variables.
EXTR_PREFIX_INVALID
Préfixer uniquement les variables aux noms invalides ou numériques avec le préfixe prefix.
EXTR_IF_EXISTS
Écrase la variable uniquement si elle existe déjà dans la table des symboles, et, sinon, ne rien faire. Ceci est pratique pour définir une liste de variables valides, puis extraire du tableau les valeurs que vous avez déjà définies grâce à $_REQUEST, par exemple.
EXTR_PREFIX_IF_EXISTS
Ne crée que des variables préfixées, si la version non préfixée de la même variable existe dans la table des symboles courante.
EXTR_REFS
Extrait les variables sous forme de références. Cela signifie que les valeurs des variables importées font toujours référence aux valeurs des variables d'origine dans le paramètre var_array. Vous pouvez utiliser cette option seule, ou bien la combiner avec d'autres options avec l'opérateur OR, dans le paramètre extract_type.

Si extract_type est omis, extract() utilise EXTR_OVERWRITE par défaut.

prefix

Notez que prefix n'est nécessaire que pour les valeurs de extract_type suivantes : EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID ou EXTR_PREFIX_IF_EXISTS. Si le résultat préfixé n'est pas un nom de variable valide, il ne sera pas importé dans la table des symboles. Les préfixes sont automatiquement séparés de l'index du tableau par un caractère de soulignement.

Valeurs de retour

Retourne le nombre de variables importées avec succès dans la table des symboles.

Historique

Version Description
4.3.0 EXTR_REFS a été ajouté.
4.2.0 EXTR_IF_EXISTS et EXTR_PREFIX_IF_EXISTS ont été ajoutés.
4.0.5 Cette fonction retourne maintenant le nombre de variables extraites. EXTR_PREFIX_INVALID a été ajouté. EXTR_PREFIX_ALL inclut également les variables numériques.

Exemples

Exemple #1 Exemple avec extract()

Une utilisation possible de la fonction extract() est l'exportation vers la table des symboles de tableaux de variables retournés par wddx_deserialize().

<?php

/* Supposons que $var_array est un tableau retourné par
   wddx_deserialize */

$size "large";
$var_array = array("color" => "blue",
                   
"size"  => "medium",
                   
"shape" => "sphere");
extract($var_arrayEXTR_PREFIX_SAME"wddx");

echo 
"$color$size$shape$wddx_size\n";

?>

L'exemple ci-dessus va afficher :

blue, large, sphere, medium

La variable $taille n'a pas été réécrite, car on avait spécifié le paramètre EXTR_PREFIX_SAME, qui a permis la création de $wddx_taille. Si EXTR_SKIP avait été utilisée, alors $wddx_taille n'aurait pas été créé. Avec EXTR_OVERWRITE, $taille aurait pris la valeur "moyen", et avec EXTR_PREFIX_ALL, les variables créées seraient $wddx_couleur, $wddx_taille et $wddx_forme.

Notes

Avertissement

N'utilisez pas extract() sur des données inconnues, comme les données utilisateurs (i.e. $_GET, $_FILES, etc.). Si vous le faites, par exemple, pour rendre compatible un vieux code avec register_globals à Off de façon temporaire, assurez-vous d'utiliser l'une des constantes extract_type qui n'écrasent pas les valeurs, comme EXTR_SKIP. Sachez aussi que vous devez maintenant extraire dans le même ordre que celui défini dans variables_order du php.ini.

Note:

Si vous avez la directive register_globals d'activée et que vous utilisez la fonction extract() sur les variables $_FILES et que vous spécifiez la constante EXTR_SKIP, vous pourriez être surpris du résultat.

Avertissement

Cette façon de faire n'est pas recommandée et est uniquement documentée ici pour bien comprendre le comportement. L'utilisation de la directive register_globals est obsolète et appeler la fonction extract() sur des données partagées comme les variables $_FILES est, comme mentionné ci-dessus, un risque potentiel pour la sécurité. Si vous rencontrez ce problème, cela signifie que vous avez écrit votre code de la mauvaise manière pour au moins 2 raisons.

<?php

/* Supposez que $testfile est le nom d'un champ de téléchargement de fichier
   et que register_globals est actif. */

var_dump($testfile);
extract($_FILESEXTR_SKIP);
var_dump($testfile);
var_dump($testfile['tmp_name']);

?>
Vous vous attendez à voir quelque chose comme :
string(14) "/tmp/phpgCCPX8"
array(5) {
  ["name"]=>
  string(10) "somefile.txt"
  ["type"]=>
  string(24) "application/octet-stream"
  ["tmp_name"]=>
  string(14) "/tmp/phpgCCPX8"
  ["error"]=>
  int(0)
  ["size"]=>
  int(4208)
}
string(14) "/tmp/phpgCCPX8"
Cependant, vous devriez plutôt voir quelque comme :
string(14) "/tmp/phpgCCPX8"
string(14) "/tmp/phpgCCPX8"
string(1) "/"

Ceci est dû au fait que, depuis que la directive register_globals est ative, la variable $testfile existe déjà dans le scope global lorsque la fonction extract() est appelée. Et vû que la constante EXTR_SKIP est spécifiée, la variable $testfile n'est pas écrasée avec le contenu du tableau $_FILES, aussi, la variable $testfile reste une chaîne de caractères. Parceque les chaînes de caractères peuvent être accédées en utilisant la syntaxe des tableaux et que la chaîne de caractères non-numérique tmp_name est interprétée comme 0, PHP voit $testfile['tmp_name'] comme $testfile[0].

Voir aussi

  • compact() - Crée un tableau à partir de variables et de leur valeur



in_array

(PHP 4, PHP 5)

in_arrayIndique si une valeur appartient à un tableau

Description

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Recherche needle dans haystack en utilisant une comparaison souple à moins que strict ne soit utilisé.

Liste de paramètres

needle

La valeur recherchée.

Note:

Si needle est une chaîne, la comparaison est faite en tenant compte de la casse.

haystack

Le tableau.

strict

Le troisième paramètre strict est optionnel. S'il vaut TRUE alors in_array() vérifiera aussi que le type du paramètre needle correspond au type de la valeur trouvée dans haystack.

Valeurs de retour

Retourne TRUE si needle est trouvé dans le tableau, FALSE sinon.

Historique

Version Description
4.2.0 needle peut maintenant être un tableau.

Exemples

Exemple #1 Exemple avec in_array()

<?php
$os 
= array("Mac""NT""Irix""Linux");
if (
in_array("Irix"$os)) {
    echo 
"Got Irix";
}
if (
in_array("mac"$os)) {
    echo 
"Got mac";
}
?>

La seconde condition échoue, car in_array() est sensible à la casse. Le script retourne :

Got Irix

Exemple #2 Exemple avec in_array() et le mode strict

<?php
$a 
= array('1.10'12.41.13);

if (
in_array('12.4'$atrue)) {
    echo 
"'12.4' est trouvé avec le mode strict\n";
}

if (
in_array(1.13$atrue)) {
    echo 
"1.13 est trouvé avec le mode strict\n";
}
?>

L'exemple ci-dessus va afficher :

1.13 est trouvé avec le mode strict

Exemple #3 Exemple avec in_array() et un tableau en paramètre

<?php
$a 
= array(array('p''h'), array('p''r'), 'o');

if (
in_array(array('p''h'), $a)) {
    echo 
"'ph' a été trouvé\n";
}

if (
in_array(array('f''i'), $a)) {
    echo 
"'fi' was found\n";
}

if (
in_array('o'$a)) {
    echo 
"'o' a été trouvé\n";
}
?>

L'exemple ci-dessus va afficher :

  'ph' a été trouvé
  'o' a été trouvé

Voir aussi

  • array_search() - Recherche dans un tableau la clé associée à une valeur
  • isset() - Détermine si une variable est définie et est différente de NULL
  • array_key_exists() - Vérifie si une clé existe dans un tableau



key

(PHP 4, PHP 5)

keyRetourne une clé d'un tableau associatif

Description

mixed key ( array &$array )

key() retourne la clé courante dans le tableau array.

Liste de paramètres

array

Le tableau.

Valeurs de retour

La fonction key() retourne simplement la clé de l'élément du tableau qui est actuellement pointée par le pointeur interne. Cette fonction ne modifie en aucun cas la position de ce pointeur. Si le pointeur interne pointe un élément se situant après la fin de la liste des éléments, ou bien si le tableau est vide, la fonction key() retournera NULL.

Exemples

Exemple #1 Exemple avec key()

<?php
$array 
= array(
    
'fruit1' => 'apple',
    
'fruit2' => 'orange',
    
'fruit3' => 'grape',
    
'fruit4' => 'apple',
    
'fruit5' => 'apple');

// Cette boucle affiche toutes les clés
// dont la valeur vaut "apple"
while ($fruit_name current($array)) {
    if (
$fruit_name == 'apple') {
        echo 
key($array).'<br />';
    }
    
next($array);
}
?>

L'exemple ci-dessus va afficher :

fruit1<br />
fruit4<br />
fruit5<br />

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • next() - Avance le pointeur interne d'un tableau



krsort

(PHP 4, PHP 5)

krsortTrie un tableau en sens inverse et suivant les clés

Description

bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

krsort() trie le tableau array en ordre inverse et suivant les clés, en maintenant la correspondance entre les clés et les valeurs. Cette fonction est pratique pour les tableaux associatifs.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec krsort()

<?php
$fruits 
= array("d"=>"lemon""a"=>"orange""b"=>"banana""c"=>"apple");
krsort($fruits);
foreach (
$fruits as $key => $val) {
    echo 
"$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

d = lemon
c = apple
b = banana
a = orange

Voir aussi



ksort

(PHP 4, PHP 5)

ksortTrie un tableau suivant les clés

Description

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Trie le tableau array suivant les clés, en maintenant la correspondance entre les clés et les valeurs. Cette fonction est pratique pour les tableaux associatifs.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ksort()

<?php
$fruits 
= array("d"=>"lemon""a"=>"orange""b"=>"banana""c"=>"apple");
ksort($fruits);
foreach (
$fruits as $key => $val) {
    echo 
"$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

a = orange
b = banana
c = apple
d = lemon

Voir aussi



list

(PHP 4, PHP 5)

listAssigne des variables comme si elles étaient un tableau

Description

array list ( mixed $varname [, mixed $... ] )

Tout comme array(), list() n'est pas une véritable fonction, mais un élément de langage, qui permet de rassembler les variables varname, ... sous forme de tableau, pour les assigner en une seule ligne.

Liste de paramètres

varname

Une variable.

Valeurs de retour

Retourne le tableau assigné.

Exemples

Exemple #1 Exemple avec list()

<?php

$info 
= array('coffee''brown''caffeine');

// Liste toutes les variables
list($drink$color$power) = $info;
echo 
"$drink is $color and $power makes it special.\n";

// Liste certaines variables
list($drink, , $power) = $info;
echo 
"$drink has $power.\n";

// Ou bien, n'utilisons que le troisième
list( , , $power) = $info;
echo 
"I need $power!\n";

// list() ne fonctionne pas avec les chaînes de caractères
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Exemple #2 Exemple d'utilisation de list()

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result 
mysql_query("SELECT id, name, salary FROM employees"$conn);
while (list(
$id$name$salary) = mysql_fetch_row($result)) {
    echo 
" <tr>\n" .
          
"  <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
          
"  <td>$salary</td>\n" .
          
" </tr>\n";
}

?>

</table>

Exemple #3 Utilisation d'un sous-list()

<?php

list($a, list($b$c)) = array(1, array(23));

var_dump($a$b$c);

?>
int(1)
int(2)
int(3)

Exemple #4 Utilisation de list() en tenant compte de l'ordre

<?php

$info 
= array('coffee''brown''caffeine');

list(
$a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Cet exemple donne le résultat suivant (notez l'ordre d'affichage des éléments, en comparaison avec l'ordre dans lequel ils ont été écrits dans la syntaxe de list()) :

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

Notes

Avertissement

list() assigne les valeurs en commençant par la valeur la plus à droite. Si vous utilisez ces variables, ce ne sera pas un problème. Mais si vous utilisez des tableaux, vous serez surpris de voir que list() les affecte de droite à gauche.

Note:

list() fonctionne uniquement avec des tableaux à indexation numérique, et suppose que l'indexation commence à 0.

Voir aussi

  • each() - Retourne chaque paire clé/valeur d'un tableau
  • array() - Crée un tableau
  • extract() - Importe les variables dans la table des symboles



natcasesort

(PHP 4, PHP 5)

natcasesortTrie un tableau avec l'algorithme à "ordre naturel" insensible à la casse

Description

bool natcasesort ( array &$array )

natcasesort() est la version insensible à la casse de natsort().

natcasesort() implémente un algorithme de tri qui traite les chaînes alphanumériques du tableau array comme un être humain tout en conservant la relation clé/valeur. C'est ce qui est appelé l'"ordre naturel".

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec natcasesort()

<?php
$array1 
$array2 = array('IMG0.png''img12.png''img10.png''img2.png''img1.png''IMG3.png');

sort($array1);
echo 
"Standard sorting\n";
print_r($array1);

natcasesort($array2);
echo 
"\nNatural order sorting (case-insensitive)\n";
print_r($array2);
?>

L'exemple ci-dessus va afficher :

Standard sorting
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Natural order sorting (case-insensitive)
Array
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Pour plus de détails, rendez-vous sur le site de Martin Pool : » Natural Order String Comparison page.

Voir aussi

  • natsort() - Trie un tableau avec l'algorithme à "ordre naturel"
  • Les fonctions de tri des tableaux
  • strnatcmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel"
  • strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)



natsort

(PHP 4, PHP 5)

natsortTrie un tableau avec l'algorithme à "ordre naturel"

Description

bool natsort ( array &$array )

natsort() implémente un algorithme de tri qui traite les chaînes alphanumériques du tableau array comme un être humain tout en conservant la relation clé/valeur. C'est ce qui est appelé l'"ordre naturel". Un exemple de la différence de traitement entre un tel algorithme et un algorithme de tri de chaînes (comme lorsqu'on utilise sort()) est illustré ci-dessous.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.10 Les chaines numériques alignées par des zéros (e.g., '00005') ignorent les zéros d'alignement.

Exemples

Exemple #1 Exemple d'utilisation de base avec natsort()

<?php
$array1 
$array2 = array("img12.png""img10.png""img2.png""img1.png");

asort($array1);
echo 
"Standard sorting\n";
print_r($array1);

natsort($array2);
echo 
"\nNatural order sorting\n";
print_r($array2);
?>

L'exemple ci-dessus va afficher :

Standard sorting
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Pour plus de détails, rendez-vous sur le site de Martin Pool : » Natural Order String Comparison.

Exemple #2 Exemples montrant les pièges de natsort()

<?php
echo "Nombres négatifs\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo 
"Alignement avec zéros\n";
$zeros = array('09''8''10''009''011''0'); 
print_r($zeros);
natsort($zeros);
print_r($zeros);

echo 
"Autres caractères pouvant interférer\n";
$images_oops = array('image_1.jpg','image_12.jpg''image_21.jpg''image_4.jpg');
print_r($images_oops);
natsort($images_oops);
print_r($images_oops);

echo 
"Tri par clés\n";
$smoothie = array('orange' => 1'apple' => 1'yogurt' => 4'banana' => 4);
print_r($smoothie);
uksort$smoothie'strnatcmp');
print_r($smoothie);
?>

L'exemple ci-dessus va afficher :

Nombres négatifs
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Alignement avec zéros
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

Autres caractères pouvant interférer
Array
(
    [0] => image_1.jpg
    [1] => image_12.jpg
    [2] => image_21.jpg
    [3] => image_4.jpg
)
Array
(
    [0] => image_1.jpg
    [3] => image_4.jpg
    [1] => image_12.jpg
    [2] => image_21.jpg
)

Tri par clés
Array
(
    [orange] => 1
    [apple]  => 1
    [yogurt] => 4
    [banana] => 4
)
Array
(
    [apple]  => 1
    [banana] => 4
    [orange] => 1
    [yogurt] => 4
)

Voir aussi

  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
  • Les fonctions de tri des tableaux
  • strnatcmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel"
  • strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)



next

(PHP 4, PHP 5)

nextAvance le pointeur interne d'un tableau

Description

mixed next ( array &$array )

next() se comporte comme current(), avec une différence. Il avance le pointeur interne du tableau d'un élément, avant de retourner la valeur de l'élément. Cela signifie qu'il retourne la prochaine valeur du tableau et avance le pointeur interne d'un élément.

Liste de paramètres

array

Le tableau à traiter.

Valeurs de retour

Retourne la prochaine valeur du tableau suivant le pointeur interne, ou FALSE s'il n'y a plus d'élément.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec next()

<?php
$transport 
= array('foot''bike''car''plane');
$mode current($transport); // $mode = 'foot';
$mode next($transport);    // $mode = 'bike';
$mode next($transport);    // $mode = 'car';
$mode prev($transport);    // $mode = 'bike';
$mode end($transport);     // $mode = 'plane';
?>

Notes

Note: Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • end() - Positionne le pointeur de tableau en fin de tableau
  • prev() - Recule le pointeur courant de tableau
  • reset() - Remet le pointeur interne de tableau au début
  • each() - Retourne chaque paire clé/valeur d'un tableau



pos

(PHP 4, PHP 5)

posAlias de current()

Description

Cette fonction est un alias de : current()



prev

(PHP 4, PHP 5)

prevRecule le pointeur courant de tableau

Description

mixed prev ( array &$array )

Recule le pointeur courant de tableau.

prev() se comporte exactement comme next(), mais elle fait reculer le pointeur plutôt que de l'avancer.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur précédente du tableau suivant le pointeur interne du tableau, ou FALSE s'il n'y a plus d'élément.

Exemples

Exemple #1 Exemple avec prev()

<?php
$transport 
= array('foot''bike''car''plane');
$mode current($transport); // $mode = 'foot';
$mode next($transport);    // $mode = 'bike';
$mode next($transport);    // $mode = 'car';
$mode prev($transport);    // $mode = 'bike';
$mode end($transport);     // $mode = 'plane';
?>

Notes

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE comme 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Note: Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • end() - Positionne le pointeur de tableau en fin de tableau
  • next() - Avance le pointeur interne d'un tableau
  • reset() - Remet le pointeur interne de tableau au début
  • each() - Retourne chaque paire clé/valeur d'un tableau



range

(PHP 4, PHP 5)

rangeCrée un tableau contenant un intervalle d'éléments

Description

array range ( mixed $low , mixed $high [, number $step = 1 ] )

Crée un tableau contenant un intervalle d'éléments.

Liste de paramètres

low

Valeur basse.

high

Valeur haute.

step

Si une valeur est donnée au paramètre step, il sera utilisé comme valeur incrémentale entre les éléments de la séquence. step doit être exprimé comme un nombre entier positif. S'il n'est pas spécifié, step vaut par défaut 1.

Valeurs de retour

Retourne un tableau d'éléments depuis low jusqu'à high, inclusif. Si la valeur basse est supérieure à la valeur haute, la séquence sera depuis la valeur haute jusqu'à la valeur basse.

Historique

Version Description
5.0.0 Le paramètre optionnel step a été ajouté.
4.1.0 à 4.3.2 Dans les versions de PHP de 4.1.0 à 4.3.2, range() voyait les chaînes numériques comme des chaînes et non comme des entiers. Au lieu de cela, ils étaient utilisés comme séquence de caractères. Par exemple, "4242" était traité comme "4".
4.1.0 Avant la version PHP 4.1.0, la fonction range() ne générait que des séquences d'entiers. Le support des séquences de caractères a été ajouté en PHP 4.1.0. Les valeurs de séquence des caractères sont limitées à 1. Si la longueur est supérieure à 1, seul le premier caractère est utilisé.

Exemples

Exemple #1 Exemple avec range()

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(012) as $number) {
    echo 
$number;
}

// La paramètre de pas (step) a été introduit en version 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(010010) as $number) {
    echo 
$number;
}

// L'utilisation des caractères a été introduit en version 4.1.0
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a''i') as $letter) {
    echo 
$letter;
}
// array('c', 'b', 'a');
foreach (range('c''a') as $letter) {
    echo 
$letter;
}
?>

Voir aussi



reset

(PHP 4, PHP 5)

resetRemet le pointeur interne de tableau au début

Description

mixed reset ( array &$array )

reset() replace le pointeur de tableau array au premier élément et retourne la valeur du premier élément.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur du premier élément du tableau, ou FALSE si le tableau est vide.

Exemples

Exemple #1 Exemple avec reset()

<?php

$array 
= array('step one''step two''step three''step four');

// Par défaut, le pointeur est sur le premier élément
echo current($array) . "<br />\n"// "step one"

// on saute deux éléments
next($array);
next($array);
echo 
current($array) . "<br />\n"// "step three"

// on remet le pointeur au début
reset($array);
echo 
current($array) . "<br />\n"// "step one"

?>

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • each() - Retourne chaque paire clé/valeur d'un tableau
  • end() - Positionne le pointeur de tableau en fin de tableau
  • next() - Avance le pointeur interne d'un tableau
  • prev() - Recule le pointeur courant de tableau



rsort

(PHP 4, PHP 5)

rsortTrie un tableau en ordre inverse

Description

bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Effectue un tri en ordre décroissant (du plus grand au plus petit) du tableau array.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rsort()

<?php
$fruits 
= array("lemon""orange""banana""apple");
rsort($fruits);
foreach (
$fruits as $key => $val) {
    echo 
"$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

0 = orange
1 = lemon
2 = banana
3 = apple

Les fruits ont été classés dans l'ordre alphabétique inverse.

Notes

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Voir aussi



shuffle

(PHP 4, PHP 5)

shuffleMélange les éléments d'un tableau

Description

bool shuffle ( array &$array )

Mélange les éléments du tableau array.

Liste de paramètres

array

Le tableau.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec shuffle()

<?php
$numbers 
range(120);
shuffle($numbers);
foreach (
$numbers as $number) {
    echo 
"$number ";
}
?>

Historique

Version Description
4.2.0Le générateur de nombres aléatoires est initialisé automatiquement.

Notes

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Voir aussi



sizeof

(PHP 4, PHP 5)

sizeofAlias de count()

Description

Cette fonction est un alias de : count().



sort

(PHP 4, PHP 5)

sortTrie un tableau

Description

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

sort() trie le tableau array. Les éléments seront triés du plus petit au plus grand.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Le paramètre optionnel sort_flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Constantes de type de tri :

  • SORT_REGULAR : compare les éléments normalement (ne modifie pas les types)
  • SORT_NUMERIC : compare les éléments numériquement
  • SORT_STRING : compare les éléments comme des chaînes de caractères
  • SORT_LOCALE_STRING : compare les éléments en utilisant la configuration locale. Ajouté en PHP 5.0.2 et 4.4.0. La locale courante est utilisée, elle peut être changée au moyen de setlocale().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sort()

<?php

$fruits 
= array("lemon""orange""banana""apple");
sort($fruits);
foreach (
$fruits as $key => $val) {
    echo 
"fruits[" $key "] = " $val "\n";
}

?>

L'exemple ci-dessus va afficher :

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

Les fruits ont été classés dans l'ordre alphabétique.

Notes

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Note: Comme la plupart des fonctions de tri de PHP, sort() utilise une implémentation de » Quicksort.

Avertissement

Attention lorsque vous triez des tableaux avec des types différents de valeurs car le résultat de sort() est imprévisible.

Voir aussi



uasort

(PHP 4, PHP 5)

uasortTrie un tableau en utilisant une fonction de rappel

Description

bool uasort ( array &$array , callback $cmp_function )

Trie le tableau array en conservant la correspondance entre les index et leurs valeurs. uasort() sert essentiellement lors de tri de tableaux associatifs où l'ordre des éléments est significatif. La fonction de comparaison utilisée cmp_function est définie par l'utilisateur.

Utilisé habituellement lors du trie de tableaux associatifs où l'ordre actuel des éléments est significatif.

Liste de paramètres

array

Le tableau d'entrée.

cmp_function

Voyez les fonctions usort() et uksort() pour des exemples de tris avec utilisation de fonction personnalisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec uasort()

<?php
// Fonction de comparaison
function cmp($a$b) {
    if (
$a == $b) {
        return 
0;
    }
    return (
$a $b) ? -1;
}

// Tableau à trier
$array = array('a' => 4'b' => 8'c' => -1'd' => -9'e' => 2'f' => 5'g' => 3'h' => -4);
print_r($array);

// Trie et affiche le tableau résultant
uasort($array'cmp');
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Voir aussi



uksort

(PHP 4, PHP 5)

uksortTrie un tableau par ses clés en utilisant une fonction de rappel

Description

bool uksort ( array &$array , callback $cmp_function )

uksort() trie les clés du tableau array en utilisant la fonction utilisateur cmp_function. Si un tableau doit être trié avec un critère complexe, il est préférable d'utiliser cette fonction.

Liste de paramètres

array

Le tableau d'entrée.

cmp_function

La fonction de rappel utilisée pour la comparaison.

La fonction cmp_function doit accepter deux paramètres, qui représenteront une paire de clés du tableau array. La fonction de comparaison doit retourner un entier supérieur, égal ou inférieur à zéro, pour, respectivement, indiquer que le premier argument est supérieur, égal ou inférieur au second.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec uksort()

<?php
function cmp($a$b)
{
    
$a preg_replace('@^(a|an|the) @'''$a);
    
$b preg_replace('@^(a|an|the) @'''$b);
    return 
strcasecmp($a$b);
}

$a = array("John" => 1"the Earth" => 2"an apple" => 3"a banana" => 4);

uksort($a"cmp");

foreach (
$a as $key => $value) {
    echo 
"$key$value\n";
}
?>

L'exemple ci-dessus va afficher :

an apple: 3
a banana: 4
the Earth: 2
John: 1

Voir aussi



usort

(PHP 4, PHP 5)

usortTrie un tableau en utilisant une fonction de comparaison

Description

bool usort ( array &$array , callback $cmp_function )

usort() va trier le tableau array avec ses valeurs, en utilisant une fonction définie par l'utilisateur. Si un tableau doit être trié avec un critère complexe, il est préférable d'utiliser cette fonction.

Note:

Si deux éléments sont égaux, au sens de la fonction cmp_function, leur ordre sera indéfini.

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Liste de paramètres

array

Le tableau d'entrée.

cmp_function

La fonction de comparaison cmp_function doit retourner un entier, qui sera inférieur, égal ou supérieur à zéro suivant que le premier argument est considéré comme plus petit, égal ou plus grand que le second argument. Si les deux arguments sont égaux, leur ordre est indéfini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.1.0 Un nouvel algorithme est introduit. Le paramètre cmp_function ne conserve pas l'ordre original des éléments considérés comme égaux.

Exemples

Exemple #1 Exemple avec usort()

<?php
function cmp($a$b)
{
    if (
$a == $b) {
        return 
0;
    }
    return (
$a $b) ? -1;
}

$a = array(32561);

usort($a"cmp");

foreach (
$a as $key => $value) {
    echo 
"$key$value\n";
}
?>

L'exemple ci-dessus va afficher :

0: 1
1: 2
2: 3
3: 5
4: 6

Note:

Évidemment dans ce cas trivial, sort() serait plus approprié.

Exemple #2 Tri avec usort() sur un tableau multidimensionnel

<?php
function cmp($a$b)
{
    return 
strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits"cmp");

while (list(
$key$value) = each($fruits)) {
    echo 
"\$fruits[$key]: " $value["fruit"] . "\n";
}
?>

Lors du tri de tableau multidimensionnel, $a et $b contiennent des références sur le premier élément du tableau.

L'exemple ci-dessus va afficher :

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Exemple #3 Tri avec usort() sur un objet

<?php
class TestObj {
    var 
$name;

    function 
TestObj($name)
    {
        
$this->name $name;
    }

    
/* Ceci est une fonction de comparaison statique */
    
static function cmp_obj($a$b)
    {
        
$al strtolower($a->name);
        
$bl strtolower($b->name);
        if (
$al == $bl) {
            return 
0;
        }
        return (
$al $bl) ? +: -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj""cmp_obj"));

foreach (
$a as $item) {
    echo 
$item->name "\n";
}
?>

L'exemple ci-dessus va afficher :

b
c
d

Voir aussi


Sommaire

  • array_change_key_case — Change la casse des clés d'un tableau
  • array_chunk — Sépare un tableau en tableaux de taille inférieure
  • array_combine — Crée un tableau à partir de deux autres tableaux
  • array_count_values — Compte le nombre de valeurs d'un tableau
  • array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_diff — Calcule la différence entre deux tableaux
  • array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés
  • array_fill — Remplit un tableau avec une même valeur
  • array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur
  • array_flip — Remplace les clés par les valeurs, et les valeurs par les clés
  • array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect — Calcule l'intersection de tableaux
  • array_key_exists — Vérifie si une clé existe dans un tableau
  • array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau
  • array_map — Applique une fonction sur les éléments d'un tableau
  • array_merge_recursive — Combine plusieurs tableaux ensemble, récursivement
  • array_merge — Fusionne plusieurs tableaux en un seul
  • array_multisort — Trie les tableaux multidimensionnels
  • array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée
  • array_pop — Dépile un élément de la fin d'un tableau
  • array_product — Calcule le produit des valeurs du tableau
  • array_push — Empile un ou plusieurs éléments à la fin d'un tableau
  • array_rand — Prend une ou plusieurs valeurs, au hasard dans un tableau
  • array_reduce — Réduit itérativement un tableau
  • array_replace_recursive — Replaces elements from passed arrays into the first array recursively
  • array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux
  • array_reverse — Inverse l'ordre des éléments d'un tableau
  • array_search — Recherche dans un tableau la clé associée à une valeur
  • array_shift — Dépile un élément au début d'un tableau
  • array_slice — Extrait une portion de tableau
  • array_splice — Efface et remplace une portion de tableau
  • array_sum — Calcule la somme des valeurs du tableau
  • array_udiff_assoc — Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc — Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_uintersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
  • array_uintersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel
  • array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_unique — Dédoublonne un tableau
  • array_unshift — Empile un ou plusieurs éléments au début d'un tableau
  • array_values — Retourne toutes les valeurs d'un tableau
  • array_walk_recursive — Applique une fonction de rappel récursivement à chaque membre d'un tableau
  • array_walk — Exécute une fonction sur chacun des éléments d'un tableau
  • array — Crée un tableau
  • arsort — Trie un tableau en ordre inverse
  • asort — Trie un tableau et conserve l'association des index
  • compact — Crée un tableau à partir de variables et de leur valeur
  • count — Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet
  • current — Retourne l'élément courant du tableau
  • each — Retourne chaque paire clé/valeur d'un tableau
  • end — Positionne le pointeur de tableau en fin de tableau
  • extract — Importe les variables dans la table des symboles
  • in_array — Indique si une valeur appartient à un tableau
  • key — Retourne une clé d'un tableau associatif
  • krsort — Trie un tableau en sens inverse et suivant les clés
  • ksort — Trie un tableau suivant les clés
  • list — Assigne des variables comme si elles étaient un tableau
  • natcasesort — Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
  • natsort — Trie un tableau avec l'algorithme à "ordre naturel"
  • next — Avance le pointeur interne d'un tableau
  • pos — Alias de current
  • prev — Recule le pointeur courant de tableau
  • range — Crée un tableau contenant un intervalle d'éléments
  • reset — Remet le pointeur interne de tableau au début
  • rsort — Trie un tableau en ordre inverse
  • shuffle — Mélange les éléments d'un tableau
  • sizeof — Alias de count
  • sort — Trie un tableau
  • uasort — Trie un tableau en utilisant une fonction de rappel
  • uksort — Trie un tableau par ses clés en utilisant une fonction de rappel
  • usort — Trie un tableau en utilisant une fonction de comparaison

  • Introduction
  • Installation/Configuration
  • Constantes pré-définies
  • Tri des tableaux
  • Fonctions sur les tableaux
    • array_change_key_case — Change la casse des clés d'un tableau
    • array_chunk — Sépare un tableau en tableaux de taille inférieure
    • array_combine — Crée un tableau à partir de deux autres tableaux
    • array_count_values — Compte le nombre de valeurs d'un tableau
    • array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les clés
    • array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison
    • array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
    • array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
    • array_diff — Calcule la différence entre deux tableaux
    • array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés
    • array_fill — Remplit un tableau avec une même valeur
    • array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur
    • array_flip — Remplace les clés par les valeurs, et les valeurs par les clés
    • array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index
    • array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
    • array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
    • array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
    • array_intersect — Calcule l'intersection de tableaux
    • array_key_exists — Vérifie si une clé existe dans un tableau
    • array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau
    • array_map — Applique une fonction sur les éléments d'un tableau
    • array_merge_recursive — Combine plusieurs tableaux ensemble, récursivement
    • array_merge — Fusionne plusieurs tableaux en un seul
    • array_multisort — Trie les tableaux multidimensionnels
    • array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée
    • array_pop — Dépile un élément de la fin d'un tableau
    • array_product — Calcule le produit des valeurs du tableau
    • array_push — Empile un ou plusieurs éléments à la fin d'un tableau
    • array_rand — Prend une ou plusieurs valeurs, au hasard dans un tableau
    • array_reduce — Réduit itérativement un tableau
    • array_replace_recursive — Replaces elements from passed arrays into the first array recursively
    • array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux
    • array_reverse — Inverse l'ordre des éléments d'un tableau
    • array_search — Recherche dans un tableau la clé associée à une valeur
    • array_shift — Dépile un élément au début d'un tableau
    • array_slice — Extrait une portion de tableau
    • array_splice — Efface et remplace une portion de tableau
    • array_sum — Calcule la somme des valeurs du tableau
    • array_udiff_assoc — Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
    • array_udiff_uassoc — Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
    • array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel
    • array_uintersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
    • array_uintersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel
    • array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
    • array_unique — Dédoublonne un tableau
    • array_unshift — Empile un ou plusieurs éléments au début d'un tableau
    • array_values — Retourne toutes les valeurs d'un tableau
    • array_walk_recursive — Applique une fonction de rappel récursivement à chaque membre d'un tableau
    • array_walk — Exécute une fonction sur chacun des éléments d'un tableau
    • array — Crée un tableau
    • arsort — Trie un tableau en ordre inverse
    • asort — Trie un tableau et conserve l'association des index
    • compact — Crée un tableau à partir de variables et de leur valeur
    • count — Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet
    • current — Retourne l'élément courant du tableau
    • each — Retourne chaque paire clé/valeur d'un tableau
    • end — Positionne le pointeur de tableau en fin de tableau
    • extract — Importe les variables dans la table des symboles
    • in_array — Indique si une valeur appartient à un tableau
    • key — Retourne une clé d'un tableau associatif
    • krsort — Trie un tableau en sens inverse et suivant les clés
    • ksort — Trie un tableau suivant les clés
    • list — Assigne des variables comme si elles étaient un tableau
    • natcasesort — Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
    • natsort — Trie un tableau avec l'algorithme à "ordre naturel"
    • next — Avance le pointeur interne d'un tableau
    • pos — Alias de current
    • prev — Recule le pointeur courant de tableau
    • range — Crée un tableau contenant un intervalle d'éléments
    • reset — Remet le pointeur interne de tableau au début
    • rsort — Trie un tableau en ordre inverse
    • shuffle — Mélange les éléments d'un tableau
    • sizeof — Alias de count
    • sort — Trie un tableau
    • uasort — Trie un tableau en utilisant une fonction de rappel
    • uksort — Trie un tableau par ses clés en utilisant une fonction de rappel
    • usort — Trie un tableau en utilisant une fonction de comparaison


Les Classes/Objets


Introduction

Ces fonctions vous permettant d'obtenir des informations sur les classes ainsi que sur les instances d'objets. Vous pouvez obtenir le nom de la classe à laquelle un objet appartient, mais aussi les propriétés de ces membres et méthodes. En utilisant ces fonctions, vous pouvez retrouver non seulement la classe d'un objet, mais aussi son héritage (la classe étendant celle-ci).



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Dans cet exemple, nous commençons par définir une classe de base ainsi qu'une extension de cette classe. La classe de base un légume, s'il peut être éditer et qu'elle est sa couleur. La sous-classe Spinach ajoute une méthode pour le cuisiner, si possible.

Exemple #1 classes.inc

<?php

// classe de base, avec les propriétés des membres et des méthodes
class Vegetable {

   var 
$edible;
   var 
$color;

   function 
Vegetable($edible$color="green"
   {
       
$this->edible $edible;
       
$this->color $color;
   }

   function 
is_edible() 
   {
       return 
$this->edible;
   }

   function 
what_color() 
   {
       return 
$this->color;
   }

// fin de la classe Vegetable

// extend la classe de base
class Spinach extends Vegetable {

   var 
$cooked false;

   function 
Spinach() 
   {
       
$this->Vegetable(true"green");
   }

   function 
cook_it() 
   {
       
$this->cooked true;
   }

   function 
is_cooked() 
   {
       return 
$this->cooked;
   }

// fin de la classe Spinach

?>

Puis, créons deux objets depuis ces classes et affichons les informations sur ces dernières, incluant leur classe parente. Nous définissons également des fonctions utilitaires, afin d'avoir un affichage plus joli des variables.

Exemple #2 test_script.php

<pre>
<?php

include "classes.inc";

// fonctions utiles

function print_vars($obj
{
foreach (
get_object_vars($obj) as $prop => $val) {
    echo 
"\t$prop = $val\n";
}
}

function 
print_methods($obj
{
$arr get_class_methods(get_class($obj));
foreach (
$arr as $method) {
    echo 
"\tfonction $method()\n";
}
}

function 
class_parentage($obj$class
{
if (
is_subclass_of($GLOBALS[$obj], $class)) {
    echo 
"L'objet $obj appartient à la classe " get_class($$obj);
    echo 
" une sous-classe de $class\n";
} else {
    echo 
"L'object $obj n'appartient pas à la sous-classe $class\n";
}
}

// instanciation des 2 objets

$veggie = new Vegetable(true"blue");
$leafy = new Spinach();

// Afifchage des informations des objets
echo "veggie: CLASS " get_class($veggie) . "\n";
echo 
"leafy: CLASS " get_class($leafy);
echo 
", PARENT " get_parent_class($leafy) . "\n";

// affichage de la propriété veggie
echo "\nveggie: Propriétés\n";
print_vars($veggie);

// et enfin, les méthodes
echo "\nleafy: Méthodes\n";
print_methods($leafy);

echo 
"\nClasse parente :\n";
class_parentage("leafy""Spinach");
class_parentage("leafy""Vegetable");
?>
</pre>

Une chose importante à noter dans l'exemple ci-dessus est que l'objet $leafy est une instance de la classe Spinach qui est une sous-classe de Vegetable, toutefois, la dernière partie de ce script affichera :

   [...]
Classe parente :
L'object leafy n'appartient pas à la sous-classe Spinach
L'object leafy appartient à la classe spinach une sous-classe de Vegetable



Fonctions Classes/Objets


call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_arrayAppelle une méthode utilisateur avec un tableau de paramètres [obsolète]

Description

mixed call_user_method_array ( string $method_name , object &$obj , array $params )
Avertissement

La fonction call_user_method_array() est obsolète depuis PHP 4.1.0.

Liste de paramètres

method_name

Le nom de la méthode appelé.

obj

L'objet que method_name va utiliser.

params

Un tableau de paramètres.

Exemples

Exemple #1 Alternative à la fonction call_user_method_array()

<?php
call_user_func_array
(array($obj$method_name), $params);
call_user_func_array(array(&$obj$method_name), $params); // PHP 4
?>

Voir aussi



call_user_method

(PHP 4, PHP 5)

call_user_methodAppelle une méthode utilisateur d'un objet [obsolète]

Description

mixed call_user_method ( string $method_name , object &$obj [, mixed $parameter [, mixed $... ]] )
Avertissement

La fonction call_user_method() est abandonnée depuis PHP 4.1.0.

Liste de paramètres

method_name

Le nom de la méthode à appeler.

obj

L'objet que method_name va utiliser.

parameter ...

Les paramètres optionnels.

Exemples

Exemple #1 Alternative à la fonction call_user_method()

<?php
call_user_func
(array($obj$method_name), $parameter /* , ... */);
call_user_func(array(&$obj$method_name), $parameter /* , ... */); // PHP 4
?>

Voir aussi



class_alias

(PHP 5 >= 5.3.0)

class_aliasCrée un alias de classe

Description

bool class_alias ([ string $original [, string $alias ]] )

Créé un alias appelé alias de la classe original. L'alias est en tous points similaire à la classe originale.

Liste de paramètres

original

La classe originale.

alias

Le nom de l'alias de la classe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec class_alias()

<?php

class foo { }

class_alias('foo''bar');

$a = new foo;
$b = new bar;

// the objects are the same
var_dump($a == $b$a === $b);
var_dump($a instanceof $b);

// the classes are the same
var_dump($a instanceof foo);
var_dump($a instanceof bar);

var_dump($b instanceof foo);
var_dump($b instanceof bar);

?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Voir aussi



class_exists

(PHP 4, PHP 5)

class_existsVérifie qu'une classe a été définie

Description

bool class_exists ( string $class_name [, bool $autoload = true ] )

Cette fonction vérifie si une classe donnée a été définie.

Liste de paramètres

class_name

Le nom de la classe. Sensible à la casse.

autoload

Si l'on doit appeler __autoload ou non par défaut.

Valeurs de retour

Retourne TRUE si class_name est une classe définie, FALSE sinon.

Historique

Version Description
5.0.2 Ne retourne plus TRUE pour les interfaces définies. Utilisez la fonction interface_exists().
5.0.0 La paramètre autoload a été ajoutée.

Exemples

Exemple #1 Exemple avec class_exists()

<?php
// Vérifiez que la classe existe avant de l'utiliser
if (class_exists('MyClass')) {
    
$myclass = new MyClass();
}

?>

Exemple #2 Exemple avec le paramètre autoload

<?php
function __autoload($class)
{
    include(
$class '.php');

    
// Vérifie si l'include définie la classe
    
if (!class_exists($classfalse)) {
        
trigger_error("Impossible de charger la classe : $class"E_USER_WARNING);
    }
}

if (
class_exists('MyClass')) {
    
$myclass = new MyClass();
}

?>

Voir aussi



get_called_class

(PHP 5 >= 5.3.0)

get_called_classLe nom de la classe en "Late Static Binding"

Description

string get_called_class ( void )

Lit le nom de la classe, tel que le Late State Binding le calcule.

Valeurs de retour

Retourne le nom de la classe. Retourne FALSE si appelée depuis l'extérieur d'une classe.

Exemples

Exemple #1 Exemple avec get_called_class()

<?php

class foo {
    static public function 
test() {
        
var_dump(get_called_class());
    }
}

class 
bar extends foo {
}

foo::test();
bar::test();

?>

L'exemple ci-dessus va afficher :

string(3) "foo"
string(3) "bar"

Voir aussi



get_class_methods

(PHP 4, PHP 5)

get_class_methodsRetourne les noms des méthodes d'une classe

Description

array get_class_methods ( mixed $class_name )

Retourne les noms des méthodes d'une classe.

Liste de paramètres

class_name

Le nom de la classe ou une instance d'objet

Valeurs de retour

Retourne un tableau contenant les noms des méthodes de la classe class_name. En cas d'erreur, NULL est retourné.

Historique

Version Description
5.0.0 Depuis PHP 5, cette fonction retourne le nom des méthodes telles quelles sont déclarées (sensible à la casse). En PHP 4, elles étaient en minuscules.
4.0.6 La possibilité de spécifier l'objet lui-même a été ajoutée.

Exemples

Exemple #1 Exemple avec get_class_methods()

<?php

class myclass {
    
// constructeur
    
function myclass()
    {
        return(
true);
    }

    
// méthode 1
    
function myfunc1()
    {
        return(
true);
    }

    
// méthode 2
    
function myfunc2()
    {
        return(
true);
    }
}

$class_methods get_class_methods('myclass');
// ou
$class_methods get_class_methods(new myclass());

foreach (
$class_methods as $method_name) {
    echo 
"$method_name\n";
}

?>

L'exemple ci-dessus va afficher :

myclass
myfunc1
myfunc2

Voir aussi



get_class_vars

(PHP 4, PHP 5)

get_class_varsRetourne les valeurs par défaut des propriétés d'une classe

Description

array get_class_vars ( string $class_name )

Retourne les valeurs par défaut des propriétés d'une classe.

Liste de paramètres

class_name

Le nom de la classe

Valeurs de retour

Retourne un tableau associatif contenant les nom/valeur des propriétés visibles dans le scope courant de la classe class_name. Les éléments du tableau résultant sont sous la forme : nom_variable => valeur.

Historique

Version Description
5.0.3 En fonction du contexte, get_class_vars() ne retourne que les propriétés qui sont accessibles depuis ce contexte.
5.0.2 Appeler get_class_vars() produit toutes les propriétés sous la forme d'un tableau, contrairement au comportement précédent où les propriétés privées et publiques étaient préfixées par des caractères null.
5.0.1 Appeler get_class_vars() retourne toutes les propriétés, exactement comme convertir un objet en un tableau.
Avant la version 4.2.0 Les variables de classe non initialisées n'étaient pas rapportées par get_class_vars().

Exemples

Exemple #1 Exemple avec get_class_vars()

<?php

class myclass {

    var 
$var1// pas de valeur par défaut...
    
var $var2 "xyz";
    var 
$var3 100;
    private 
$var4// PHP 5

    // constructeur
    
function myclass() {
        
// changement de quelques propriétés
        
$this->var1 "foo";
        
$this->var2 "bar";
        return 
true;
    }

}

$my_class = new myclass();

$class_vars get_class_vars(get_class($my_class));

foreach (
$class_vars as $name => $value) {
    echo 
"$name : $value\n";
}

?>

L'exemple ci-dessus va afficher :

// Avant PHP 4.2.0
var2 : xyz
var3 : 100

// Depuis PHP 4.2.0
var1 :
var2 : xyz
var3 : 100

Exemple #2 Exemple avec get_class_vars() et les contextes

<?php
function format($array)
{
    return 
implode('|'array_keys($array)) . "\r\n";
}

class 
TestCase
{
    public 
$a 1;
    protected 
$b 2;
    private 
$c 3;

    public static function 
expose()
    {
        echo 
format(get_class_vars(__CLASS__));
    }
}

TestCase::expose();
echo 
format(get_class_vars('TestCase'));
?>

L'exemple ci-dessus va afficher :

// 5.0.0
a| * b| TestCase c
a| * b| TestCase c

// 5.0.1 - 5.0.2
a|b|c
a|b|c

// 5.0.3 +
a|b|c
a

Voir aussi



get_class

(PHP 4, PHP 5)

get_classRetourne la classe d'un objet

Description

string get_class ([ object $object = NULL ] )

Retourne la classe de l'objet obj.

Liste de paramètres

object

L'objet testé. Ce paramètre peut être omis lorsque la fonction est utilisée dans une classe.

Valeurs de retour

Retourne le nom de la classe pour laquelle object est une instance. Retourne FALSE si object n'est pas un objet.

Si object est omis lorsque la fonction est appelée dans une classe, la classe courante est retournée.

Erreurs / Exceptions

Si get_class() est appelé avec autre chose qu'un objet, une alerte de niveau E_WARNING sera émise.

Historique

Version Description
Depuis 5.3.0 NULL est devenue la valeur par défaut pour object, donc passer NULL pour object a le même résultat que de laisser le paramètre vide.
Depuis 5.0.0 Le nom de la classe est retourné dans sa notation originale.
Depuis 5.0.0 Le paramètre object est optionnel s'il est appelé depuis la méthode de l'objet.

Exemples

Exemple #1 Exemple avec get_class()

<?php

class foo {
    function 
name()
    {
        echo 
"Mon nom est " get_class($this) , "\n";
    }
}

// création d'un objet
$bar = new foo();

// Appel externe
echo "Son nom est " get_class($bar) , "\n";

// Appel interne
$bar->name();

?>

L'exemple ci-dessus va afficher :

Son nom est foo
Mon nom est foo

Exemple #2 Utilisation de get_class() dans une superclasse

<?php

abstract class bar {
    public function 
__construct()
    {
        
var_dump(get_class($this));
        
var_dump(get_class());
    }
}

class 
foo extends bar {
}

new 
foo;

?>

L'exemple ci-dessus va afficher :

string(3) "foo"
string(3) "bar"

Voir aussi



get_declared_classes

(PHP 4, PHP 5)

get_declared_classesListe toutes les classes définies dans PHP

Description

array get_declared_classes ( void )

Liste toutes les classes définies.

Valeurs de retour

Retourne un tableau contenant la liste des classes déclarées dans le script courant.

Note:

Notez que suivant les extensions qui sont compilées ou chargées dans PHP, d'autres classes peuvent être présentes. Cela signifie que vous ne pourrez pas utiliser ces noms de classe pour définir vos propres classes. Voici une liste des classes prédéfinies.

Exemples

Exemple #1 Exemple avec get_declared_classes()

<?php
print_r
(get_declared_classes());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

Voir aussi



get_declared_interfaces

(PHP 5)

get_declared_interfacesRetourne un tableau avec toutes les interfaces déclarées

Description

array get_declared_interfaces ( void )

Retourne un tableau avec toutes les interfaces déclarées.

Valeurs de retour

Retourne un tableau contenant les noms des interfaces déclarées dans le script courant.

Exemples

Exemple #1 Exemple avec get_declared_interfaces()

<?php
print_r
(get_declared_interfaces());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Voir aussi



get_object_vars

(PHP 4, PHP 5)

get_object_varsRetourne les propriétés d'un objet

Description

array get_object_vars ( object $object )

Récupère les propriétés non-statiques accessibles de l'objet object du contexte.

Liste de paramètres

object

Une instance d'un objet.

Valeurs de retour

Retourne un tableau associatif contenant les propriétés non-statiques de l'objet object du contexte. Si une propriété n'a pas de valeur d'assignée, elle sera retournée avec une valeur NULL.

Historique

Version Description
5.3.0 Cette fonction retourne maintenant NULL si le paramètre object n'est pas un objet.
Avant 5.3.0 Si le paramètre object n'est pas un objet, alors la fonction get_object_vars() retourne FALSE
Avant 4.2.0 Si les variables déclarées dans la classe de l'objet obj, n'avaient pas été assignées, elles n'apparaissaient pas dans le tableau retourné

Exemples

Exemple #1 Exemple avec get_object_vars()

<?php

class foo {
    private 
$a;
    public 
$b 1;
    public 
$c;
    private 
$d;
    static 
$e;

    public function 
test() {
        
var_dump(get_object_vars($this));
    }
}

$test = new foo;
var_dump(get_object_vars($test));

$test->test();

?>

L'exemple ci-dessus va afficher :

array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}

Voir aussi



get_parent_class

(PHP 4, PHP 5)

get_parent_classRetourne le nom de la classe d'un objet

Description

string get_parent_class ([ mixed $object ] )

Récupère le nom de classe parent pour un objet ou une classe.

Liste de paramètres

object

L'objet ou le nom de la classe testé

Valeurs de retour

Retourne le nom de la classe parent dont object est une instance ou le nom.

Note:

Si l'objet n'a pas de parent, FALSE sera retourné.

Si appelée sans paramètre en dehors de l'objet, cette fonction retourne FALSE.

Historique

Version Description
Avant 5.1.0 Si appelée sans paramètre en dehors de l'objet, cette fonction retourne NULL avec une alerte.
Depuis 5.0.0 Le paramètre object est optionnel si appelé depuis la méthode de l'objet.
Depuis 4.0.5 Si le paramètre obj est une chaîne, get_parent_class() retourne le nom de la classe parente.

Exemples

Exemple #1 Exemple avec get_parent_class()

<?php

class papa {
    function 
papa()
    {
    
// un peu de code
    
}
}

class 
enfant extends papa {
    function 
enfant()
    {
        echo 
"je suis le fils de " get_parent_class($this) , "\n";
    }
}

class 
enfant2 extends papa {
    function 
enfant2()
    {
        echo 
"Je suis aussi le fils de " get_parent_class('enfant2') , "\n";
    }
}

$foo = new enfant();
$bar = new enfant2();

?>

L'exemple ci-dessus va afficher :

je suis le fils de papa
Je suis aussi le fils de papa

Voir aussi



interface_exists

(PHP 5 >= 5.0.2)

interface_existsVérifie si une interface a été définie

Description

bool interface_exists ( string $interface_name [, bool $autoload = true ] )

Vérifie si une interface a été définie.

Liste de paramètres

interface_name

Le nom de l'interface

autoload

Si l'on doit appeler __autoload ou non par défaut.

Valeurs de retour

Retourne TRUE si l'interface fournie par le paramètre interface_name a été définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec interface_exists()

<?php
// Vérifie si l'interface existe avant de l'utiliser
if (interface_exists('MyInterface')) {
    class 
MyClass implements MyInterface
    
{
        
// Méthodes
    
}
}

?>

Voir aussi



is_a

(PHP 4 >= 4.2.0, PHP 5)

is_aVérifie si l'objet fait parti d'une classe ou a cette classe comme parents

Description

bool is_a ( object $object , string $class_name )

Vérifie si l'objet object fait partie de cette classe ou a cette classe comme parent.

Liste de paramètres

object

L'objet testé

class_name

Le nom de la classe

Valeurs de retour

Retourne TRUE si l'objet fait parti de cette classe ou a cette classe comme parents, FALSE sinon.

Historique

Version Description
5.3.0 Cette fonction n'est plus obsolète, et ne lance plus d'alerte de type E_STRICT.
5.0.0 Cette fonction devient obsolète en faveur de l'opérateur instanceof. L'appel à cette fonction émettra une alerte de niveau E_STRICT.

Exemples

Exemple #1 Exemple avec is_a()

<?php
// Définit une classe
class WidgetFactory
{
  var 
$oink 'moo';
}

// Crée un nouvel objet
$WF = new WidgetFactory();

if (
is_a($WF'WidgetFactory')) {
  echo 
"oui, \$WF est toujours un objet WidgetFactory\n";
}
?>

Exemple #2 Utilisation de l'opérateur instanceof avec PHP 5

<?php
if ($WF instanceof WidgetFactory) {
    echo 
'Oui, $WF est un WidgetFactory';
}
?>

Voir aussi



is_subclass_of

(PHP 4, PHP 5)

is_subclass_ofDétermine si un objet est une sous-classe

Description

bool is_subclass_of ( mixed $object , string $class_name )

Vérifie si l'objet object a la classe class_name comme parents.

Liste de paramètres

object

Un nom de classe ou une instance d'un objet

class_name

Le nom de la classe

Valeurs de retour

Cette fonction retourne TRUE si l'objet object, appartient à une classe qui est une sous-classe de class_name, FALSE sinon.

Historique

Version Description
5.0.3 vous devez également spécifier le paramètre object en tant que chaîne de caractères (le nom de la classe).

Exemples

Exemple #1 Exemple avec is_subclass_of()

<?php
// Définit une classe
class WidgetFactory
{
  var 
$oink 'moo';
}

// Définit une sous-classe
class WidgetFactory_Child extends WidgetFactory
{
  var 
$oink 'oink';
}

// Création d'un nouvel objet
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (
is_subclass_of($WFC'WidgetFactory')) {
  echo 
"oui, \$WFC est une sous-classe de la classe WidgetFactory\n";
} else {
  echo 
"non, \$WFC n'est pas une sous-classe de la classe WidgetFactory\n";
}


if (
is_subclass_of($WF'WidgetFactory')) {
  echo 
"oui, \$WF est une sous-classe de la classe WidgetFactory\n";
} else {
  echo 
"non, \$WF n'est pas une sous-classe de la classe WidgetFactory\n";
}


// utilisable uniquement depuis PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child''WidgetFactory')) {
  echo 
"oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory\n";
} else {
  echo 
"non, WidgetFactory_Child n'est pas une sous-classe de la classe WidgetFactory\n";
}
?>

L'exemple ci-dessus va afficher :

oui, $WFC est une sous-classe de la classe WidgetFactory
non, $WF n'est pas une sous-classe de la classe WidgetFactory
oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory

Notes

Note:

L'usage de cette fonction utilisera toutes les autoloaders enregistrés si la classe n'est pas encore connue.

Voir aussi

  • get_class() - Retourne la classe d'un objet
  • get_parent_class() - Retourne le nom de la classe d'un objet
  • is_a() - Vérifie si l'objet fait parti d'une classe ou a cette classe comme parents



method_exists

(PHP 4, PHP 5)

method_existsVérifie que la méthode existe pour une classe

Description

bool method_exists ( mixed $object , string $method_name )

Vérifie si la méthode existe pour l'objet object fourni.

Liste de paramètres

object

Une instance d'un objet ou le nom d'une classe

method_name

Le nom de la méthode

Valeurs de retour

Retourne TRUE si la méthode fournie par le paramètre method_name a été définie pour l'objet object, FALSE sinon.

Notes

Note:

L'usage de cette fonction utilisera toutes les autoloaders enregistrés si la classe n'est pas encore connue.

Exemples

Exemple #1 Exemple avec method_exists()

<?php
$directory 
= new Directory('.');
var_dump(method_exists($directory,'read'));
?>

L'exemple ci-dessus va afficher :

bool(true)

Exemple #2 Exemple avec method_exists() en appel statique

<?php
var_dump
(method_exists('Directory','read'));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi



property_exists

(PHP 5 >= 5.1.0)

property_exists Vérifie si un objet ou une classe possède une propriété

Description

bool property_exists ( mixed $class , string $property )

Cette fonction vérifie si la propriété property existe dans la classe spécifiée.

Note:

property_exists() retourne TRUE même si la propriété a une valeur NULL, contrairement à la fonction isset().

Liste de paramètres

class

Le nom de la classe ou un objet de la classe à tester

property

Le nom de la propriété

Valeurs de retour

Retourne TRUE si la propriété existe, FALSE si elle n'existe pas et NULL si une erreur survient.

Notes

Note:

L'usage de cette fonction utilisera toutes les autoloaders enregistrés si la classe n'est pas encore connue.

Note:

La fonction property_exists() ne peut pas détecter les propriétés qui sont accessibles en utilisant la méthode __get.

Historique

Version Description
5.3.0 Cette fonction vérifie l'existence d'une propriété indépendamment de l'accessibilité.

Exemples

Exemple #1 Exemple avec property_exists()

<?php

class myClass {
    public 
$mine;
    private 
$xpto;
    static protected 
$test;

    static function 
test() {
        
var_dump(property_exists('myClass''xpto')); //true
    
}
}

var_dump(property_exists('myClass''mine'));   //true
var_dump(property_exists(new myClass'mine')); //true
var_dump(property_exists('myClass''xpto'));   //true, depuis PHP 5.3.0
var_dump(property_exists('myClass''bar'));    //false
var_dump(property_exists('myClass''test'));   //true, depuis PHP 5.3.0
myClass::test();

?>

Voir aussi


Sommaire




Classkit


Introduction

Ces fonctions permettent la manipulation dynamique des classes PHP, au moment de l'exécution.

Note:

Cette extension a été remplacé par l'extension runkit, qui n'est pas limitée aux classes, mais qui permet également la manipulation des fonctions.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/classkit.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CLASSKIT_ACC_PRIVATE (entier)
Rend la méthode "private"
CLASSKIT_ACC_PROTECTED (entier)
Rend la méthode "protected"
CLASSKIT_ACC_PUBLIC (entier)
Rend la méthode "public"



Fonctions Classkit


classkit_import

(PECL classkit >= 0.3)

classkit_import Importe de nouvelles définitions de méthodes de classes depuis un fichier

Description

array classkit_import ( string $filename )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

filename

Le nom du fichier contenant les définitions des méthodes de classes à importer

Valeurs de retour

Tableau associatif contenant les méthodes importées

Exemples

Exemple #1 Exemple avec classkit_import()

<?php
// fichier : newclass.php
class Example {
    function 
foo() {
        return 
"bar!\n";
    }
}
?>
<?php
// requiert newclass.php (voir ci-dessous)
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
}

$e = new Example();

// affichage original
echo $e->foo();

// importation d'une méthode de remplacement
classkit_import('newclass.php');

// affichage après l'importation
echo $e->foo();

?>

L'exemple ci-dessus va afficher :

foo!
bar!

Voir aussi



classkit_method_add

(PECL classkit >= 0.1)

classkit_method_addAjoute dynamiquement une nouvelle méthode à une classe donnée

Description

bool classkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe où la méthode doit être ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste d'arguments, séparés par des virgules, de la nouvelle méthode créée

code

Le code à exécuter lorsque methodname est appelé

flags

Le type de méthode à créer ; peut être CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED ou CLASSKIT_ACC_PRIVATE

Note:

Ce paramètre est utilisé depuis PHP 5, car avant cette version, toutes les méthodes sont publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_add()

<?php
class Example {
    function 
foo() {
        echo 
"foo!\n";
    }
}

// création d'un objet Example
$e = new Example();

// Ajout d'une nouvelle méthode publique
classkit_method_add(
    
'Example',
    
'add',
    
'$num1, $num2',
    
'return $num1 + $num2;',
    
CLASSKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(124);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi



classkit_method_copy

(PECL classkit >= 0.2)

classkit_method_copyCopie une méthode d'une classe vers une autre classe

Description

bool classkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dClass

Classe de destination de la méthode copiée

dMethod

Nom de la nouvelle méthode

sClass

Classe source contenant la méthode à copier

sMethod

Nom de la méthode à copier depuis la classe source. Si ce paramètre est omis, la valeur du paramètre dMethod est utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_copy()

<?php
class Foo {
    function 
example() {
        return 
"foo!\n";
    }
}

class 
Bar {
    
// initialement, aucune méthode
}

// copie la méthode example() depuis la classe Foo vers la classe Bar et la nommer baz()
classkit_method_copy('Bar''baz''Foo''example');

// affiche la fonction copiée
echo Bar::baz();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi



classkit_method_redefine

(PECL classkit >= 0.1)

classkit_method_redefineChange dynamiquement le code de la méthode donnée

Description

bool classkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode est redéfinie

methodname

Le nom de la méthode à redéfinir

args

Liste d'arguments séparés par une virgule pour la méthode redéfinie

code

Le nouveau code à évaluer lorsque methodname est appelé

flags

La méthode redéfinie peut être CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED ou CLASSKIT_ACC_PRIVATE

Note:

Ce paramètre est utilisé depuis PHP 5, car avant cette version, toutes les méthodes sont publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_redefine()

<?php
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
}

// création d'un objet Example
$e = new Example();

// affichage Example::foo() (avant la redéfinition)
echo "Avant : " $e->foo();

// Redéfinition de la méthode 'foo'
classkit_method_redefine(
    
'Example',
    
'foo',
    
'',
    
'return "bar!\n";',
    
CLASSKIT_ACC_PUBLIC
);

// affichage de Example::foo() (après la redéfinition)
echo "Après : " $e->foo();
?>

L'exemple ci-dessus va afficher :

Avant : foo!
Après : bar!

Voir aussi



classkit_method_remove

(PECL classkit >= 0.1)

classkit_method_removeEfface dynamiquement une méthode donnée

Description

bool classkit_method_remove ( string $classname , string $methodname )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode est effacée

methodname

Le nom de la méthode à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_remove()

<?php
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
    
    function 
bar() {
        return 
"bar!\n";
    }
}

// Efface la métode 'foo'
classkit_method_remove(
    
'Example',
    
'foo'
);

echo 
implode(' 'get_class_methods('Example'));

?>

L'exemple ci-dessus va afficher :

bar

Voir aussi



classkit_method_rename

(PECL classkit >= 0.1)

classkit_method_renameChange dynamiquement le nom d'une méthode donnée

Description

bool classkit_method_rename ( string $classname , string $methodname , string $newname )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode doit être renommée

methodname

Le nom de la méthode à renommer

newname

Le nouveau nom à donner à la méthode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_rename()

<?php
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
}

// Renomme la méthode 'foo' en 'bar'
classkit_method_rename(
    
'Example',
    
'foo',
    
'bar'
);

// affiche la fonction renommée
echo Example::bar();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi


Sommaire




Vérification des types de caractères


Introduction

Les fonctions fournies par cette extension vérifient si un caractère ou une chaîne appartient à une certaine classe de caractères, suivant la configuration locale courante (voir aussi la fonction setlocale()).

Lorsqu'appelées avec un entier comme argument, ces fonctions se comportent exactement comme leur équivalent C du fichier ctype.h. Cela signifie que si vous passez un entier plus petit que 256, l'équivalent ASCII de la valeur sera utilisé afin de vérifier s'il se situe bien dans l'intervalle (les chiffres sont dans l'intervalle 0x30-0x39). Si le nombre se situe entre -128 et -1 inclus, alors 256 sera ajouté et la vérification se fera sur le résultat.

Lorsqu'appelées avec une chaîne comme argument, ces fonctions vérifient chaque caractère de la chaîne et ne retourneront TRUE que si chacun des caractères correspond aux critères. Lorsqu'une chaîne vide est passée, le résultat sera toujours TRUE en PHP < 5.1 et FALSE depuis 5.1.

Si l'on passe autre chose qu'une chaîne ou un entier, FALSE est retourné immédiatement.

Il est important de garder à l'esprit que les fonctions ctype sont toujours préférées pour les expressions rationnelles ainsi que pour les fonctions préfixées pas "str_" et "is_". En effet, ctype utilisant la bibliothèque native C, le traitement est extrêmement rapide.



Installation/Configuration

Sommaire


Pré-requis

Aucune autre bibliothèque mise à part la bibliothèque C n'est requise. Cette dernière est toujours disponible.



Installation

Depuis PHP 4.2.0, ces fonctions sont activées par défaut. Pour les versions plus anciennes, vous devrez configurer et compiler PHP avec l'option --enable-ctype . Vous pouvez toujours désactiver le support de l'extension ctype avec l'option de compilation --disable-ctype .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note: Cette bibliothèque fait partie intégrante de PHP depuis la version 4.3.0.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions Ctype


ctype_alnum

(PHP 4 >= 4.0.4, PHP 5)

ctype_alnumVérifie qu'une chaîne est alphanumérique

Description

bool ctype_alnum ( string $text )

ctype_alnum() vérifie si tous les caractères de la chaîne text sont des lettres et des chiffres. Elle retourne FALSE dans le cas contraire. En terme de langage C, les lettres sont [A-Za-z].

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont soit des lettres, soit des chiffres, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_alnum() (en utilisant les locales par défaut)

<?php
$strings 
= array('AbCd1zyZ9''foo!#$bar');
foreach (
$strings as $testcase) {
  if (
ctype_alnum($testcase)) {
    echo 
"La chaîne $testcase contient des chiffres ou des lettres.\n";
  } else {
    echo 
"La chaîne $testcase ne contient pas que des chiffres ou des lettres.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AbCd1zyZ9 contient des chiffres ou des lettres.
La chaîne foo!#$bar ne contient pas que des chiffres ou des lettres.

Voir aussi



ctype_alpha

(PHP 4 >= 4.0.4, PHP 5)

ctype_alphaVérifie qu'une chaîne est alphabétique

Description

bool ctype_alpha ( string $text )

ctype_alpha() vérifie si tous les caractères de la chaîne text sont des lettres, et FALSE sinon. En langage C, les lettres sont [A-Za-z] et ctype_alpha() est équivalent à (ctype_upper($text) || ctype_lower($text)), si text est un caractère unique, mais certaines langues ont des caractères qui ne sont ni des majuscules, ni des minuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text est une lettre de la locale courante, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_alpha() (en utilisant les locales courantes)

<?php
$strings 
= array('KjgWZC''arf12');
foreach (
$strings as $testcase) {
  if (
ctype_alpha($testcase)) {
    echo 
"La chaîne $testcase ne contient que des lettres.\n";
  } else {
    echo 
"La chaîne $testcase ne contient pas que des lettres.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne KjgWZC ne contient que des lettres.
La chaîne arf12 ne contient pas que des lettres.

Voir aussi



ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5)

ctype_cntrlVérifie qu'un caractère est un caractère de contrôle

Description

bool ctype_cntrl ( string $text )

ctype_cntrl() vérifie si tous les caractères de la chaîne text sont des caractères de contrôles spéciaux. Ces caractères sont les nouvelles lignes, les tabulations, les caractères d'échappement.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si chaque caractère de text est un caractère de contrôle de la locale courante, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_cntrl()

<?php
$strings 
= array('string1' => "\n\r\t"'string2' => 'arf12');
foreach (
$strings as $name => $testcase) {
  if (
ctype_cntrl($testcase)) {
    echo 
"La chaîne '$name' ne contient que des caractères de contrôle.\n";
  } else {
    echo 
"La chaîne '$name' ne contient pas que des caractères de contrôle.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient que des caractères de contrôle.
La chaîne 'string2' ne contient pas que des caractères de contrôle.

Voir aussi



ctype_digit

(PHP 4 >= 4.0.4, PHP 5)

ctype_digitVérifie qu'une chaîne est un entier

Description

bool ctype_digit ( string $text )

ctype_digit() vérifie si tous les caractères de la chaîne text sont des chiffres.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des entiers, FALSE sinon.

Historique

Version Description
5.1.0 Avant PHP 5.1.0, cette fonction retournait TRUE lorsque le paramètre text était une chaîne vide.

Exemples

Exemple #1 Exemple avec ctype_digit()

<?php
$strings 
= array('1820.20''10002''wsl!12');
foreach (
$strings as $testcase) {
  if (
ctype_digit($testcase)) {
    echo 
"La chaîne $testcase ne contient que des entiers.\n";
  } else {
    echo 
"La chaîne $testcase ne contient pas que des entiers.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 1820.20 ne contient pas que des entiers.
La chaîne 10002 ne contient que des entiers.
La chaîne wsl!12 ne contient pas que des entiers.

Exemple #2 Exemple avec ctype_digit() pour comparer des chaînes et des nombres

<?php

$numeric_string 
'42';
$integer        42;

ctype_digit($numeric_string);  // true
ctype_digit($integer);         // false

is_numeric($numeric_string);   // true
is_numeric($integer);          // true
?>

Notes

Note:

Cette fonction nécessite une chaîne afin d'être pertinente ; par exemple, le fait de passer un entier retournera toujours FALSE. Voir aussi la section sur les types de ce manuel.

Voir aussi

  • ctype_alnum() - Vérifie qu'une chaîne est alphanumérique
  • ctype_xdigit() - Vérifie qu'un caractère représente un nombre hexadécimal
  • is_numeric() - Détermine si une variable est un type numérique
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères



ctype_graph

(PHP 4 >= 4.0.4, PHP 5)

ctype_graphVérifie qu'une chaîne est imprimable

Description

bool ctype_graph ( string $text )

ctype_graph() vérifie si tous les caractères de la chaîne text ont une représentation graphique, et créeront une impression sur l'écran (les espaces n'en font pas partie).

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text ont une représentation graphique et créeront une impression sur l'écran, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_graph()

<?php
$strings 
= array('string1' => "asdf\n\r\t"'string2' => 'arf12''string3' => 'LKA#@%.54');
foreach (
$strings as $name => $testcase) {
  if (
ctype_graph($testcase)) {
    echo 
"La chaîne '$name' ne contient que des caractères imprimables.\n";
  } else {
    echo 
"La chaîne '$name' ne contient pas que des caractères imprimables.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient pas que des caractères imprimables.
La chaîne 'string2' ne contient que des caractères imprimables.
La chaîne 'string3' ne contient que des caractères imprimables.

Voir aussi



ctype_lower

(PHP 4 >= 4.0.4, PHP 5)

ctype_lowerVérifie qu'une chaîne est en minuscules

Description

bool ctype_lower ( string $text )

ctype_lower() vérifie si tous les caractères de la chaîne text sont des minuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont en minuscule dans la locale courante.

Exemples

Exemple #1 Exemple avec ctype_lower() (en utilisant les locales courantes)

<?php
$strings 
= array('aac123''qiutoas''QASsdks');
foreach (
$strings as $testcase) {
  if (
ctype_lower($testcase)) {
    echo 
"La chaîne $testcase ne contient que des minuscules.\n";
  } else {
    echo 
"La chaîne $testcase ne contient pas que des minuscules.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne aac123 ne contient pas que des minuscules.
La chaîne qiutoas ne contient que des minuscules.
La chaîne QASsdks ne contient pas que des minuscules.

Voir aussi



ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_printVérifie qu'une chaîne est imprimable

Description

bool ctype_print ( string $text )

ctype_print() vérifie si tous les caractères de la chaîne text vont être imprimables à l'écran (y compris les espaces blancs).

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text seront imprimables (y compris les espaces blancs). Retourne FALSE si text contient des caractères de contrôle ou des caractères qui ne s'afficheront pas ou non pas de fonction de contrôle.

Exemples

Exemple #1 Exemple avec ctype_print()

<?php
$strings 
= array('string1' => "asdf\n\r\t"'string2' => 'arf12''string3' => 'LKA#@%.54');
foreach (
$strings as $name => $testcase) {
  if (
ctype_print($testcase)) {
    echo 
"La chaîne '$name' ne contient que des caractères imprimables.\n";
  } else {
    echo 
"La chaîne '$name' ne contient pas que des caractères imprimables.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient pas que des caractères imprimables.
La chaîne 'string2' ne contient que des caractères imprimables.
La chaîne 'string3' ne contient que des caractères imprimables.

Voir aussi

  • ctype_cntrl() - Vérifie qu'un caractère est un caractère de contrôle
  • ctype_graph() - Vérifie qu'une chaîne est imprimable
  • ctype_punct() - Vérifie qu'une chaîne contient de la ponctuation



ctype_punct

(PHP 4 >= 4.0.4, PHP 5)

ctype_punct Vérifie qu'une chaîne contient de la ponctuation

Description

bool ctype_punct ( string $text )

ctype_punct() vérifie si tous les caractères de la chaîne text sont imprimables, mais ne sont ni des lettres, ni des chiffres, ni des espaces.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des caractères de ponctuation, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_punct()

<?php
$strings 
= array('ABasdk!@!$#''!@ # $''*&$()');
foreach (
$strings as $testcase) {
  if (
ctype_punct($testcase)) {
    echo 
"La chaîne $testcase ne contient que de la ponctuation.\n";
  } else {
    echo 
"The string $testcase ne contient pas que de la ponctuation.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne ABasdk!@!$# ne contient pas que de la ponctuation.
La chaîne !@ # $ ne contient pas que de la ponctuation.
La chaîne *&$() cne contient que de la ponctuation.

Voir aussi



ctype_space

(PHP 4 >= 4.0.4, PHP 5)

ctype_spaceVérifie qu'une chaîne n'est faite que de caractères blancs

Description

bool ctype_space ( string $text )

ctype_space() vérifie si tous les caractères de la chaîne text vont créer un espace blanc.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text vont créer des espaces blancs, FALSE sinon. Cela inclut le tabulations, les tabulations verticales, les nouvelles lignes, les retours chariots et les retours à la ligne.

Exemples

Exemple #1 Exemple avec ctype_space()

<?php
$strings 
= array('string1' => "\n\r\t"'string2' => "\narf12"'string3' => '\n\r\t');
foreach (
$strings as $name => $testcase) {
  if (
ctype_space($testcase)) {
    echo 
"La chaîne '$name' ne contient que des caractères d'espacements blancs.\n";
  } else {
    echo 
"La chaîne '$name' ne contient pas que des catactères d'espacements blancs.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient que des caractères d'espacements blancs.
La chaîne 'string2' ne contient pas que des catactères d'espacements blancs.
La chaîne 'string3' ne contient pas que des catactères d'espacements blancs.

Voir aussi

  • ctype_cntrl() - Vérifie qu'un caractère est un caractère de contrôle
  • ctype_graph() - Vérifie qu'une chaîne est imprimable
  • ctype_punct() - Vérifie qu'une chaîne contient de la ponctuation



ctype_upper

(PHP 4 >= 4.0.4, PHP 5)

ctype_upperVérifie qu'une chaîne est en majuscules

Description

bool ctype_upper ( string $text )

ctype_upper() vérifie si tous les caractères de la chaîne text sont des majuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont en majuscules dans la locale courante.

Exemples

Exemple #1 Exemple avec ctype_upper() (en utilisant la locale courante)

<?php
$strings 
= array('AKLWC139''LMNSDO''akwSKWsm');
foreach (
$strings as $testcase) {
  if (
ctype_upper($testcase)) {
    echo 
"La chaîne $testcase ne contient que des majuscules.\n";
  } else {
    echo 
"La chaîne $testcase ne contient pas que des majuscules.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AKLWC139 ne contient pas que des majuscules.
La chaîne LMNSDO ne contient que des majuscules.
La chaîne akwSKWsm ne contient pas que des majuscules.

Voir aussi



ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5)

ctype_xdigit Vérifie qu'un caractère représente un nombre hexadécimal

Description

bool ctype_xdigit ( string $text )

ctype_xdigit() vérifie si tous les caractères de la chaîne text sont des chiffres hexadécimaux.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des chiffres hexadécimaux, c'est-à-dire un chiffre ou une des lettres [A-Fa-f], FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_xdigit()

<?php
$strings 
= array('AB10BC99''AR1012''ab12bc99');
foreach (
$strings as $testcase) {
  if (
ctype_xdigit($testcase)) {
    echo 
"La chaîne $testcase ne contient que des chiffres hexadécimaux.\n";
  } else {
    echo 
"La chaîne $testcase ne contient pas que des chiffres hexadécimaux.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AB10BC99 ne contient que des chiffres hexadécimaux.
La chaîne AR1012 ne contient pas que des chiffres hexadécimaux.
La chaîne ab12bc99 ne contient que des chiffres hexadécimaux.

Voir aussi


Sommaire

  • ctype_alnum — Vérifie qu'une chaîne est alphanumérique
  • ctype_alpha — Vérifie qu'une chaîne est alphabétique
  • ctype_cntrl — Vérifie qu'un caractère est un caractère de contrôle
  • ctype_digit — Vérifie qu'une chaîne est un entier
  • ctype_graph — Vérifie qu'une chaîne est imprimable
  • ctype_lower — Vérifie qu'une chaîne est en minuscules
  • ctype_print — Vérifie qu'une chaîne est imprimable
  • ctype_punct — Vérifie qu'une chaîne contient de la ponctuation
  • ctype_space — Vérifie qu'une chaîne n'est faite que de caractères blancs
  • ctype_upper — Vérifie qu'une chaîne est en majuscules
  • ctype_xdigit — Vérifie qu'un caractère représente un nombre hexadécimal



Filtrage des données


Introduction

Cette extension filtre les données soit en les validant, soit en les nettoyant. C'est particulièrement utile lorsque les sources contiennent des données inconnues, comme les données utilisateurs. Par exemple, les données pourraient provenir d'un formulaire HTML.

Il y a deux moyens de filtre : la validation et le nettoyage.

La Validation sert à vérifier si une données passe certains critères. Par exemple, passer les critères de FILTER_VALIDATE_EMAIL va déterminer si une donnée est une adresse courriel valide, mais ne va pas modifier la données elle-même.

Le nettoyage va nettoyer les données, par exemple en retirant les caractères indésirables. Par exemple, passer une donnée à FILTER_SANITIZE_EMAIL va faire disparaître les caractères inappropriés dans une adresse courriel. D'un autre coté, la donnée n'est pas validée.

Des options sont éventuellement utilisées par la validation et le nettoyage, pour adapter leur comportement à des besoins spécifiques. Par exemple, avec l'option FILTER_FLAG_PATH_REQUIRED pour filter une URL, il faut indiquer le chemin utilisé (tel que http://example.org/foo).



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

L'extension filter est actvée par défaut depuis PHP 5.2.0. Avant cette version, une extension PECL expérimentale pouvait être utilisée. La version PECL n'est actuellement plus maintenue.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour Filter
Nom Défaut Modifiable Historique
filter.default "unsafe_raw" PHP_INI_PERDIR PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
filter.default_flags NULL PHP_INI_PERDIR PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

filter.default string

Filtre toutes les données transmises via $_GET, $_POST, $_COOKIE, $_REQUEST et $_SERVER avec ce filtre. Les données originales peut être à l'aide de la fonction input_get().

Accepte le nom du filtre que vous voulez utiliser par défaut. Voir la liste des filtres existante pour en connaître les noms.

filter.default_flags integer

Drapeau par défaut.



Types de ressources

Cette extension ne définit aucune ressource.




Types de filtres

Sommaire


Filtres de validation

Liste des filtres de validation
ID Nom Options Flags Description
FILTER_VALIDATE_BOOLEAN "boolean"   FILTER_NULL_ON_FAILURE

Retourne TRUE pour "1", "true", "on" et "yes". Retourne FALSE sinon.

Si FILTER_NULL_ON_FAILURE est active, FALSE n'est retourné que pour les valeurs "0", "false", "off", "no", "", et NULL est retourné pour les valeurs non-booléennes.

FILTER_VALIDATE_EMAIL "validate_email"     Valide une adresse courriel.
FILTER_VALIDATE_FLOAT "float" decimal FILTER_FLAG_ALLOW_THOUSAND Valide un nombre décimal.
FILTER_VALIDATE_INT "int" min_range, max_range FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX Valide un entier, éventuellement dans un intervalle donné.
FILTER_VALIDATE_IP "validate_ip"   FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE Valide une adresse IP, éventuellement IPv4 ou IPv6, éventuellement hors des plages privées ou réservées.
FILTER_VALIDATE_REGEXP "validate_regexp" regexp   Valide une valeur avec une expression rationnelle regexp, compatible Perl.
FILTER_VALIDATE_URL "validate_url"   FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED Valide une URL (selon » http://www.faqs.org/rfcs/rfc2396), éventuellement avec des composants requis. Cette fonction ne trouvera que des URLs ASCII valides, les domaines internationnalisés (contenant des caractères non-ASCII) ne fonctionneront pas.

Note:

Les nombres +0 et -0 ne sont pas des entiers valides, mais plutôt des nombres à virgule flottante valides.



Filtres de nettoyage

Liste des filtres de nettoyage
ID Nom Options Flags Description
FILTER_SANITIZE_EMAIL "email"     Supprime tous les caractères sauf les lettres, chiffres, et !#$%&'*+-/=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED "encoded"   FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH Applique l'encodage URL, et supprime ou encode les caractères spéciaux.
FILTER_SANITIZE_MAGIC_QUOTES "magic_quotes"     Applique addslashes().
FILTER_SANITIZE_NUMBER_FLOAT "number_float"   FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC Supprime tous les caractères, sauf les chiffres, +- et éventuellement .,eE.
FILTER_SANITIZE_NUMBER_INT "number_int"     Supprime tous les caractères sauf les chiffres, et les signes plus et moins.
FILTER_SANITIZE_SPECIAL_CHARS "special_chars"   FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH Transforme en entité HTML les caractères '"<>& et les caractères ASCII de valeur inférieur à 32, et supprime ou encode les autres caractères spéciaux.
FILTER_SANITIZE_STRING "string"   FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP Supprime les balises, et supprime ou encode les caractères spéciaux.
FILTER_SANITIZE_STRIPPED "stripped"     Alias du filtre "string".
FILTER_SANITIZE_URL "url"     Supprime tous les caractères sauf les lettres, chiffres et $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW "unsafe_raw"   FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP Ne fait rien, supprime ou encode les caractères spéciaux.



Autres filtres

Liste de filtres divers
ID Nom Options Flags Description
FILTER_CALLBACK "callback" Fonction ou méthode de rappel (type fonction de rappel)   Appelle une fonction utilisateur pour filtrer les données.



Drapeaux des filtres

Liste de drapeaux de filtres
ID Utilisé avec Description
FILTER_FLAG_STRIP_LOW FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW Supprime les caractères dont la valeur numérique est <32.
FILTER_FLAG_STRIP_HIGH FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW Supprime les caractères dont la valeur numérique est >127.
FILTER_FLAG_ALLOW_FRACTION FILTER_SANITIZE_NUMBER_FLOAT Autorise un point (.) comme séparateur fractionnaire pour les nombres.
FILTER_FLAG_ALLOW_THOUSAND FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT Autorise une virgule (,) comme séparateur fractionnaire pour les nombres.
FILTER_FLAG_ALLOW_SCIENTIFIC FILTER_SANITIZE_NUMBER_FLOAT Autorise un e ou un E pour la notation scientifique dans les nombres.
FILTER_FLAG_NO_ENCODE_QUOTES FILTER_SANITIZE_STRING Si ce drapeau est présent, les simples quotes (') et les doubles (") ne seront pas encodées.
FILTER_FLAG_ENCODE_LOW FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW Encode tous les caractères dont la valeur numérique est <32.
FILTER_FLAG_ENCODE_HIGH FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW Encode tous les caractères dont la valeur numérique est >127.
FILTER_FLAG_ENCODE_AMP FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW Encode les &.
FILTER_NULL_ON_FAILURE FILTER_VALIDATE_BOOLEAN Retourne NULL pour les valeurs booléennes non reconnues.
FILTER_FLAG_ALLOW_OCTAL FILTER_VALIDATE_INT Prend en compte les nombres octals précédés d'un zéro (0). Ceci ne fonctionne que pour les chiffres 0-7.
FILTER_FLAG_ALLOW_HEX FILTER_VALIDATE_INT Prend en compte les nombres héxadécimaux précédés de 0x ou 0X. Ceci ne fonctionne que pour a-fA-F0-9.
FILTER_FLAG_IPV4 FILTER_VALIDATE_IP Autorise une adresse IP au format IPv4.
FILTER_FLAG_IPV6 FILTER_VALIDATE_IP Autorise une adresse IP au format IPv6.
FILTER_FLAG_NO_PRIV_RANGE FILTER_VALIDATE_IP

Echoue la validation pour les intervales privés IPv4: 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16.

Echoue la validation pour les adresses IPv6 commençant par FD ou FC.

FILTER_FLAG_NO_RES_RANGE FILTER_VALIDATE_IP Echoue la validation pour les intervales IPv4 réservés: 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24 et 224.0.0.0/4. Ce drapeau ne concerne pas les adresses IPv6.
FILTER_FLAG_PATH_REQUIRED FILTER_VALIDATE_URL Oblige URL à contenir un chemin.
FILTER_FLAG_QUERY_REQUIRED FILTER_VALIDATE_URL Oblige URL à contenir une chaine de requête.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

INPUT_POST (entier)
variables POST.
INPUT_GET (entier)
variables GET.
INPUT_COOKIE (entier)
variables COOKIE.
INPUT_ENV (entier)
variables ENV.
INPUT_SERVER (entier)
variables SERVER.
INPUT_SESSION (entier)
variables SESSION. (pas encore implémenté)
INPUT_REQUEST (entier)
variables REQUEST. (pas encore implémenté)
FILTER_FLAG_NONE (entier)
Aucun drapeau.
FILTER_REQUIRE_SCALAR (entier)
Drapeau utilisé pour requérir un scalaire en entrée.
FILTER_REQUIRE_ARRAY (entier)
Requière un tableau en entrée.
FILTER_FORCE_ARRAY (entier)
Retourne toujours un tableau.
FILTER_NULL_ON_FAILURE (entier)
Utilisation de NULL au lieu de FALSE si une erreur survient.
FILTER_VALIDATE_INT (entier)
ID du filtre "int".
FILTER_VALIDATE_BOOLEAN (entier)
ID du filtre "boolean".
FILTER_VALIDATE_FLOAT (entier)
ID du filtre "float".
FILTER_VALIDATE_REGEXP (entier)
ID du filtre "validate_regexp".
FILTER_VALIDATE_URL (entier)
ID du filtre "validate_url".
FILTER_VALIDATE_EMAIL (entier)
ID du filtre "validate_email".
FILTER_VALIDATE_IP (entier)
ID du filtre "validate_ip".
FILTER_DEFAULT (entier)
ID du filtre par défaut ("string").
FILTER_UNSAFE_RAW (entier)
ID du filtre "unsafe_raw".
FILTER_SANITIZE_STRING (entier)
ID du filtre "string".
FILTER_SANITIZE_STRIPPED (entier)
ID du filtre "stripped".
FILTER_SANITIZE_ENCODED (entier)
ID du filtre "encoded".
FILTER_SANITIZE_SPECIAL_CHARS (entier)
ID du filtre "special_chars".
FILTER_SANITIZE_EMAIL (entier)
ID du filtre "email".
FILTER_SANITIZE_URL (entier)
ID du filtre "url".
FILTER_SANITIZE_NUMBER_INT (entier)
ID du filtre "number_int".
FILTER_SANITIZE_NUMBER_FLOAT (entier)
ID du filtre "number_float".
FILTER_SANITIZE_MAGIC_QUOTES (entier)
ID du filtre "magic_quotes".
FILTER_CALLBACK (entier)
ID du filtre de rappel.
FILTER_FLAG_ALLOW_OCTAL (entier)
Alloue une notation octale (0[0-7]+) dans le filtre "int".
FILTER_FLAG_ALLOW_HEX (entier)
Alloue une notation hexadécimale (0x[0-9a-fA-F]+) dans le filtre "int".
FILTER_FLAG_STRIP_LOW (entier)
Supprime les caractères dont les valeurs ASCII sont inférieures à 32.
FILTER_FLAG_STRIP_HIGH (entier)
Supprime les caractères dont les valeurs ASCII sont supérieures à 127.
FILTER_FLAG_ENCODE_LOW (entier)
Encode les caractères dont les valeurs ASCII sont inférieures à 32.
FILTER_FLAG_ENCODE_HIGH (entier)
Encode les caractères dont les valeurs ASCII sont supérieures à 127.
FILTER_FLAG_ENCODE_AMP (entier)
Encode &.
FILTER_FLAG_NO_ENCODE_QUOTES (entier)
N'encode pas ', ni ".
FILTER_FLAG_EMPTY_STRING_NULL (entier)
(Non utilisé actuellement.)
FILTER_FLAG_ALLOW_FRACTION (entier)
Alloue une partie fractionnelle dans le filtre "number_float".
FILTER_FLAG_ALLOW_THOUSAND (entier)
Alloue le séparateur des milliers (,) dans le filtre "number_float".
FILTER_FLAG_ALLOW_SCIENTIFIC (entier)
Alloue une notation scientifique (e, E) dans le filtre "number_float".
FILTER_FLAG_PATH_REQUIRED (entier)
Chemin requis dans le filtre "validate_url".
FILTER_FLAG_QUERY_REQUIRED (entier)
Requête requise dans le filtre "validate_url".
FILTER_FLAG_IPV4 (entier)
N'autorise que les adresses IPv4 dans le filtre "validate_ip".
FILTER_FLAG_IPV6 (entier)
N'autorise que les adresses IPv6 dans le filtre "validate_ip".
FILTER_FLAG_NO_RES_RANGE (entier)
N'autorise pas les adresses réservées dans le filtre "validate_ip".
FILTER_FLAG_NO_PRIV_RANGE (entier)
N'autorise pas les adresses privées dans le filtre "validate_ip".


Exemples

Sommaire


Validation

Exemple #1 Validation d'adresses email avec filter_var()

<?php
$email_a 
'joe@example.com';
$email_b 'bogus';

if (
filter_var($email_aFILTER_VALIDATE_EMAIL)) {
    echo 
"Cette (email_a) adresse email est considérée comme valide.";
}
if (
filter_var($email_bFILTER_VALIDATE_EMAIL)) {
    echo 
"Cette (email_b) adresse email est considérée comme valide.";
}
?>

L'exemple ci-dessus va afficher :

Cette (email_a) adresse email est considérée comme valide.

Exemple #2 Validation d'adresses IP avec filter_var()

<?php
$ip_a 
'127.0.0.1';
$ip_b '42.42';

if (
filter_var($ip_aFILTER_VALIDATE_IP)) {
    echo 
"Cette (ip_a) adresse IP est considérée comme valide.";
}
if (
filter_var($ip_bFILTER_VALIDATE_IP)) {
    echo 
"Cette (ip_b) adresse IP est considérée comme valide.";
}
?>

L'exemple ci-dessus va afficher :

Cette (ip_b) adresse IP est considérée comme valide.

Exemple #3 Passage d'options à la fonction filter_var()

<?php
$int_a 
'1';
$int_b '-1';
$int_c '4';
$options = array(
    
'options' => array(
                      
'min_range' => 0,
                      
'max_range' => 3,
                      )
);
if (
filter_var($int_aFILTER_VALIDATE_INT$options) !== FALSE) {
    echo 
"Cet entier (int_a) est considéré comme valide (entre 0 et 3).\n";
}
if (
filter_var($int_bFILTER_VALIDATE_INT$options) !== FALSE) {
    echo 
"Cet entier (int_b) est considéré comme valide (entre 0 et 3).\n";
}
if (
filter_var($int_cFILTER_VALIDATE_INT$options) !== FALSE) {
    echo 
"Cet entier (int_c) est considéré comme valide (entre 0 et 3).\n";
}

$options['options']['default'] = 1;
if ((
$int_c filter_var($int_cFILTER_VALIDATE_INT$options)) !== FALSE) {
    echo 
"Cet entier (int_c) est considéré comme valide (entre 0 et 3) et vaut $int_c.";
}
?>

L'exemple ci-dessus va afficher :

Cet entier (int_a) est considéré comme valide (entre 0 et 3).
Cet entier (int_c) est considéré comme valide (entre 0 et 3) et vaut 1.



Nettoyage

Exemple #1 Nettoyage et validation d'adresses email

<?php
$a 
'joe@example.org';
$b 'bogus - at - example dot org';
$c '(bogus@example.org)';

$sanitized_a filter_var($aFILTER_SANITIZE_EMAIL);
if (
filter_var($sanitized_aFILTER_VALIDATE_EMAIL)) {
    echo 
"Cette (a) adresse email nettoyée est considérée comme valide.";
}

$sanitized_b filter_var($bFILTER_SANITIZE_EMAIL);
if (
filter_var($sanitized_bFILTER_VALIDATE_EMAIL)) {
    echo 
"Cette (b) adresse email nettoyée est considérée comme valide.";
} else {
    echo 
"Cette (b) adresse email nettoyée est considérée comme invalide.";
}

$sanitized_c filter_var($cFILTER_SANITIZE_EMAIL);
if (
filter_var($sanitized_cFILTER_VALIDATE_EMAIL)) {
    echo 
"Cette (a) adresse email nettoyée est considérée comme valide.";
    echo 
"Avant : $c\n";
    echo 
"Après :  $sanitized_c\n";    
}
?>

L'exemple ci-dessus va afficher :

Cette (a) adresse email nettoyée est considérée comme valide.
Cette (b) adresse email nettoyée est considérée comme invalide.
Cette (a) adresse email nettoyée est considérée comme valide.
Avant : (bogus@example.org)
Après :  bogus@example.org




Filter Fonctions


filter_has_var

(PHP 5 >= 5.2.0)

filter_has_varVérifie si une variable d'un type spécifique existe

Description

bool filter_has_var ( int $type , string $variable_name )

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

variable_name

Nom de la variable à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



filter_id

(PHP 5 >= 5.2.0)

filter_idRetourne l'identifiant d'un filtre nommé

Description

int filter_id ( string $filtername )

Liste de paramètres

filtername

Nom du filtre à récupérer.

Valeurs de retour

Identifiant du filtre en cas de succès, ou FALSE si le filtre n'existe pas.

Voir aussi

  • filter_list() - Retourne une liste de tous les filtres supportés



filter_input_array

(PHP 5 >= 5.2.0)

filter_input_arrayRécupère plusieurs valeurs externes et les filtre

Description

mixed filter_input_array ( int $type [, mixed $definition ] )

Cette fonction est utile pour récupérer plusieurs valeurs sans avoir à appeler plusieurs fois la fonction filter_input().

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

definition

Un tableau définissant les arguments. Une clé valide est une chaîne de caractères contenant le nom de la variable et une valeur valide est soit le type d'un filtre, soit un tableau spécifiant le filtre, les drapeaux et les options. Si la valeur est un tableau, les clés valides sont filter qui spécifie le type du filtre, flags qui spécifie tous les drapeaux à appliquer au filtre, et options qui spécifie toutes les options à appliquer au filtre. Voir l'exemple ci-dessous pour une meilleure compréhension.

Ce paramètre peut également être un entier contenant une constante de filtre. Ensuite, toutes les valeurs du tableau d'entrée seront filtrées par ce filtre.

Valeurs de retour

Un tableau contenant les valeurs des variables demandées en cas de succès, ou FALSE si une erreur survient. Un tableau de valeurs peut valoir FALSE si le filtre échoue, ou NULL si la variable n'est pas définie. Ou, si le drapeau FILTER_NULL_ON_FAILURE est utilisé, la fonction retournera FALSE si la variable n'est pas définie et NULL si le filtre échoue.

Exemples

Exemple #1 Exemple avec filter_input_array()

<?php
error_reporting
(E_ALL E_STRICT);
/* les données arrivent depuis POST
$_POST = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);
*/

$args = array(
    
'product_id'   => FILTER_SANITIZE_ENCODED,
    
'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            
'flags'     => FILTER_REQUIRE_ARRAY
                            
'options'   => array('min_range' => 1'max_range' => 10)
                           ),
    
'versions'     => FILTER_SANITIZE_ENCODED,
    
'doesnotexist' => FILTER_VALIDATE_INT,
    
'testscalar'   => array(
                            
'filter' => FILTER_VALIDATE_INT,
                            
'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    
'testarray'    => array(
                            
'filter' => FILTER_VALIDATE_INT,
                            
'flags'  => FILTER_REQUIRE_ARRAY,
                           )

);

$myinputs filter_input_array(INPUT_POST$args);

var_dump($myinputs);
echo 
"\n";
?>

L'exemple ci-dessus va afficher :

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Notes

Note:

Il n'y a pas de clé REQUEST_TIME dans le tableau INPUT_SERVER car elle est insérée dans la variable $_SERVER plus tard.

Voir aussi



filter_input

(PHP 5 >= 5.2.0)

filter_inputRécupère une variable externe et la filtre

Description

mixed filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

variable_name

Nom de la variable à récupérer.

filter

L'ID du filtre à appliquer. La Types de filtres page du manuel liste tous les filtres disponibles.

options

Tableau associatif d'options ou des drapeaux. Si le filtre accepte les options, les drapeaux peuvent être fournis dans le champ "flags" du tableau.

Valeurs de retour

Valeur de la variable demandée en cas de succès, FALSE si le filtre échoue, ou NULL si la variable variable_name n'est pas définie. Si le drapeau FILTER_NULL_ON_FAILURE est utilisé, la fonction retournera FALSE si la variable n'est pas définie et NULL si le filtre échoue.

Exemples

Exemple #1 Exemple avec filter_input()

<?php
$search_html 
filter_input(INPUT_GET'search'FILTER_SANITIZE_SPECIAL_CHARS);
$search_url filter_input(INPUT_GET'search'FILTER_SANITIZE_ENCODED);
echo 
"Vous avez recherché $search_html.\n";
echo 
"<a href='?search=$search_url'>Nouvelle recherche.</a>";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Vous avez recherché Me &#38; son.
<a href='?search=Me%20%26%20son'>Nouvelle recherche.</a>

Voir aussi



filter_list

(PHP 5 >= 5.2.0)

filter_listRetourne une liste de tous les filtres supportés

Description

array filter_list ( void )

Valeurs de retour

Retourne un tableau de noms de tous les filtres supportés, un tableau vide s'il n'y a pas de filtre. Les index de ce tableau ne sont pas les identifiants des filtres, ils peuvent être obtenus avec la fonction filter_id() à partir du nom.

Exemples

Exemple #1 Exemple avec filter_list()

<?php
print_r
(filter_list());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)



filter_var_array

(PHP 5 >= 5.2.0)

filter_var_arrayRécupère plusieurs variables et les filtre

Description

mixed filter_var_array ( array $data [, mixed $definition ] )

Cette fonction est utile pour récupérer plusieurs valeurs sans appeler plusieurs fois la fonction filter_var().

Liste de paramètres

data

Un tableau avec les clés contenant les données à filtrer.

definition

Un tableau définissant les arguments. Une clé valide est une chaîne de caractères contenant le nom de la variable et une valeur valide est soit le type d'un filtre, soit un tableau spécifiant le filtre, les drapeaux et les options. Si la valeur est un tableau, les clés valides sont filter qui spécifie le type du filtre, flags qui spécifie tous les drapeaux à appliquer au filtre, et options qui spécifie toutes les options à appliquer au filtre. Voir l'exemple ci-dessous pour une meilleure compréhension.

Ce paramètre peut également être un entier contenant une constante de filtre. Ensuite, toutes les valeurs du tableau d'entrée seront filtrées par ce filtre.

Valeurs de retour

Un tableau contenant les valeurs des variables demandées en cas de succès, ou FALSE si une erreur survient. Un tableau de valeurs peut valoir FALSE si le filtre échoue, ou NULL si la variable n'est pas définie.

Exemples

Exemple #1 Exemple avec filter_var_array()

<?php
error_reporting
(E_ALL E_STRICT);
$data = array(
    
'product_id'    => 'libgd<script>',
    
'component'     => '10',
    
'versions'      => '2.0.33',
    
'testscalar'    => array('2''23''10''12'),
    
'testarray'     => '2',
);

$args = array(
    
'product_id'   => FILTER_SANITIZE_ENCODED,
    
'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            
'flags'     => FILTER_FORCE_ARRAY
                            
'options'   => array('min_range' => 1'max_range' => 10)
                           ),
    
'versions'     => FILTER_SANITIZE_ENCODED,
    
'doesnotexist' => FILTER_VALIDATE_INT,
    
'testscalar'   => array(
                            
'filter' => FILTER_VALIDATE_INT,
                            
'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    
'testarray'    => array(
                            
'filter' => FILTER_VALIDATE_INT,
                            
'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs filter_var_array($data$args);

var_dump($myinputs);
echo 
"\n";
?>

L'exemple ci-dessus va afficher :

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Voir aussi



filter_var

(PHP 5 >= 5.2.0)

filter_varFiltre une variable avec un filtre spécifique

Description

mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Liste de paramètres

variable

Valeur à filtrer.

filter

L'ID du filtre à appliquer. La Types de filtres page du manuel liste tous les filtres disponibles.

options

Tableau associatif d'options ou des drapeaux. Si le filtre accepte les options, les drapeaux peuvent être fournis dans le champ "flags" du tableau. Pour les fonctions de rappel, le type callback devra être passé. La fonction de rappel doit acceptée un seul argument ; la valeur à filtrer et retournera la valeur, une fois le filtre appliqué.

<?php
// Pour les filtres acceptant les options,
// utilisez ce format
$options = array(
    
'options' => array(
        
'default' => 3// valeur à retourner si le filtre échoue
        // autres options ici...
        
'min_range' => 0
    
),
    
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var filter_var('0755'FILTER_VALIDATE_INT$options);

// Pour les filtres qui n'acceptent que des drapeaux,
// vous pouvez les passez directement
$var filter_var('oops'FILTER_VALIDATE_BOOLEANFILTER_NULL_ON_FAILURE);

// Pour les filtres qui n'acceptent que des drapeaux,
// vous pouvez également les passer sous forme de tableau
$var filter_var('oops'FILTER_VALIDATE_BOOLEAN,
                  array(
'flags' => FILTER_NULL_ON_FAILURE));

// Fonction de rappel du filtre
function foo($value)
{
    
$ret = new stdClass;
    
$ret->value filter_var($valueFILTER_VALIDATE_BOOLEAN,
                             array(
'flags' => FILTER_NULL_ON_FAILURE));
    return 
$ret;
}
$var filter_var('yes'FILTER_CALLBACK, array('options' => 'foo'));
?>

Valeurs de retour

Retourne les données filtrées, ou FALSE si le filtre échoue.

Exemples

Exemple #1 Exemple avec filter_var()

<?php
var_dump
(filter_var('bob@example.com'FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com'FILTER_VALIDATE_URLFILTER_FLAG_PATH_REQUIRED));
?>

L'exemple ci-dessus va afficher :

string(15) "bob@example.com"
bool(false)

Voir aussi


Sommaire

  • filter_has_var — Vérifie si une variable d'un type spécifique existe
  • filter_id — Retourne l'identifiant d'un filtre nommé
  • filter_input_array — Récupère plusieurs valeurs externes et les filtre
  • filter_input — Récupère une variable externe et la filtre
  • filter_list — Retourne une liste de tous les filtres supportés
  • filter_var_array — Récupère plusieurs variables et les filtre
  • filter_var — Filtre une variable avec un filtre spécifique



Gestion des fonctions


Introduction

Ces fonctions effectuent les manipulations liées à la gestion des fonctions.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions sur la gestion des fonctions


call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_arrayAppelle une fonction utilisateur avec les paramètres rassemblés en tableau

Description

mixed call_user_func_array ( callback $function , array $param_arr )

Appelle la fonction utilisateur function avec les paramètres param_arr, rassemblés dans un tableau.

Liste de paramètres

function

La fonction à appeler.

param_arr

Les paramètres à passer à la fonction, sous la forme d'un tableau indexé.

Valeurs de retour

Retourne le résultat de la fonction, ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 L'interprétation des mots-clés du modèle objet comme parent et self a changé. Avant, les appeler avec la syntaxe à double deux-points envoyait une erreur E_STRICT à cause de l'interprétation statique.

Exemples

Exemple #1 Exemple avec call_user_func_array()

<?php
function foobar($arg$arg2) {
    echo 
__FUNCTION__" got $arg and $arg2\n";
}
class 
foo {
    function 
bar($arg$arg2) {
        echo 
__METHOD__" got $arg and $arg2\n";
    }
}


// Appel de la fonction foobar() avec 2 arguments
call_user_func_array("foobar", array("one""two"));

// Appel de la méthode $foo->bar() avec 2 arguments
$foo = new foo;
call_user_func_array(array($foo"bar"), array("three""four"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foobar got one and two
foo::bar got three and four

Exemple #2 Exemple avec call_user_func_array() en utilisant un espace de nom

<?php

namespace Foobar;

class 
Foo {
    static public function 
test($name) {
        print 
"Bonjour {$name}!\n";
    }
}

// Depuis PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

// Depuis PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo''test'), array('Philip'));

?>

L'exemple ci-dessus va afficher :

Bonjour Hannes!
Bonjour Philip!

Exemple #3 Utilisation d'une fonction lambda

<?php

$func 
= function($arg1$arg2) {
    return 
$arg1 $arg2;
};

var_dump(call_user_func_array($func, array(24))); /* Depuis PHP 5.3.0 */

?>

L'exemple ci-dessus va afficher :

int(8)

Notes

Note:

Les variables référencées dans le paramètre param_arr sont passées à la fonction par référence même si le paramètre respectif de la fonction ne l'attendait pas. Cette forme de passage par référence à l'appel de la fonction n'emet pas d'erreur mais est déprécié et risque de disparaitre dans le futur. Aussi, cela ne s'applique pas aux fonctions internes dont la signature est honorée avant tout. Passer une valeur à une fonction qui s'attendait à une référence emettra un warning et fera que call_user_func() retourne FALSE (sauf si la valeur passée a un compteur de référence = 1).

Note:

Notez que les fonctions de rappel enregistrées avec des fonctions comme call_user_func() et call_user_func_array() ne seront pas appelées si une exception n'est pas interceptée alors qu'elle a été lancée dans une précédente fonction de rappel.

Voir aussi



call_user_func

(PHP 4, PHP 5)

call_user_funcAppelle une fonction utilisateur

Description

mixed call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )

Appelle une fonction utilisateur fournie par le paramètre function.

Liste de paramètres

function

La fonction à appeler. Les méthodes de classe peuvent aussi être appelées statiquement en utilisant cette fonction en passant array($classname, $methodname) en paramètre. De plus, les méthodes de classe d'une instance d'objet peuvent être appelées en passant array($objectinstance, $methodname) en paramètre.

parameter

0 ou plus de paramètres à passer à la fonction.

Note:

Notez que les paramètres pour call_user_func() ne sont pas passés par référence.

Exemple #1 Exemple avec call_user_func() par référence

<?php
function increment(&$var)
{
    
$var++;
}

$a 0;
call_user_func('increment'$a);
echo 
$a."\n"

call_user_func_array('increment', array(&$a)); 
// Vous pouvez utiliser ceci à la place jusqu'en PHP 5.3
echo $a."\n"
?>

L'exemple ci-dessus va afficher :

0
1

Valeurs de retour

Retourne le résultat de la fonction, ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 L'interprétation des mots-clés du modèle objet comme parent et self a changé. Avant, les appeler avec la syntaxe à double deux-points envoyait une erreur E_STRICT à cause de l'interprétation statique.

Exemples

Exemple #2 Exemple avec call_user_func()

<?php
function barber($type)
{
    echo 
"Vous voulez une coupe $type, aucun problème";
}
call_user_func('barber'"au bol");
call_user_func('barber'"au rasoir");
?>

L'exemple ci-dessus va afficher :

Vous voulez une coupe au bol, aucun problème
Vous voulez une coupe au rasoir, aucun problème

Exemple #3 Exemple avec call_user_func() en utilisant un espace de noms

<?php

namespace Foobar;

class 
Foo {
    static public function 
test() {
        print 
"Hello world!\n";
    }
}

call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo''test')); // As of PHP 5.3.0
?>

L'exemple ci-dessus va afficher :

Hello world!
Hello world!

Exemple #4 Utilisation d'une méthode de classe avec call_user_func()

<?php

class maclasse {
    static function 
dit_bonjour()
    {
        echo 
"Bonjour!\n";
    }
}

$classname "maclasse";

call_user_func(array($classname'dit_bonjour'));
call_user_func($classname .'::dit_bonjour');    // Depuis 5.2.3

$monobjet = new maclasse();

call_user_func(array($monobjet'dit_bonjour'));

?>

L'exemple ci-dessus va afficher :

Bonjour!
Bonjour!
Bonjour!

Exemple #5 Utilisation d'une fonction lambda avec call_user_func()

<?php
call_user_func
(function($arg) { print "[$arg]\n"; }, 'test'); /* Depuis PHP 5.3.0 */
?>

L'exemple ci-dessus va afficher :

[test]

Notes

Note:

Notez que les fonctions de rappel enregistrées avec des fonctions comme call_user_func() et call_user_func_array() ne seront pas appelées si une exception n'est pas interceptée alors qu'elle a été lancée dans une précédente fonction de rappel.

Voir aussi



create_function

(PHP 4 >= 4.0.1, PHP 5)

create_functionCrée une fonction anonyme

Description

string create_function ( string $args , string $code )

create_function() crée une fonction anonyme, à partir des paramètres passés, et retourne un nom de fonction unique.

Liste de paramètres

Généralement, les arguments args sont présentés sous la forme d'une chaîne à guillemets simples, et la même recommandation vaut pour code. La raison de l'utilisation des guillemets simples est de protéger les noms de variables du remplacement par leur valeur. Si vous utilisez les guillemets doubles, n'oubliez pas d'échapper les noms de variables (i.e. \$avar).

args

Les arguments de la fonction.

code

Le code de la fonction.

Valeurs de retour

Retourne un nom de fonction unique, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une fonction anonyme avec create_function()

Vous pouvez utiliser cette fonction pour (par exemple) créer une fonction à partir d'informations récoltées durant l'exécution :

<?php
$newfunc 
create_function('$a,$b''return "ln($a) + ln($b) = " . log($a * $b);');
echo 
"Nouvelle fonction anonyme  : $newfunc\n";
echo 
$newfunc(2M_E) . "\n";
// affichera :
// Nouvelle fonction anonyme : lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Ou, pour pouvoir appliquer une fonction générique à une liste d'arguments.

Exemple #2 Traitement générique par fonction avec create_function()

<?php
function process($var1$var2$farr)
{
    foreach (
$farr as $f) {
        echo 
$f($var1$var2) . "\n";
    }
}

// Création d'une série de fonction mathématiques
$f1 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';
$farr = array(
    
create_function('$x,$y''return "un peu de trigo : ".(sin($x) + $x*cos($y));'),
    
create_function('$x,$y''return "une hypoténuse : ".sqrt($x*$x + $y*$y);'),
    
create_function('$a,$b'$f1),
    
create_function('$a,$b'$f2),
    
create_function('$a,$b'$f3)
    );

echo 
"\nUtilisation de la première liste de fonctions anonymes\n";
echo 
"paramétres : 2.3445, M_PI\n";
process(2.3445M_PI$farr);

// Maintenant une liste de fonction sur chaîne de caractères
$garr = array(
    
create_function('$b,$a''if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
    
'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'),
    
create_function('$a,$b''; return "CRCs : " . crc32($a) . ", ".crc32($b);'),
    
create_function('$a,$b''; return "similarité (a,b) = " . similar_text($a, $b, &$p) . "($p%)";')
    );
echo 
"\nUtilisation de la seconde liste de fonctions anonymes\n";
process("Twas brilling and the slithy toves""Twas the night"$garr);
?>

L'exemple ci-dessus va afficher :

Utilisation de la première liste de fonctions anonymes
paramétres : 2.3445, M_PI
un peu de trigo : -1.6291725057799
une hypoténuse : 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a)/b = 0.27122299212594

Utilisation de la seconde liste de fonctions anonymes
** "Twas the night" and "Twas brilling and the slithy toves"
** Ces chaînes se ressemblent ! (regardez les trois premiers caractères)
CRCs: -725381282, 342550513
similarité (a,b) = 11(45.833333333333%)

Mais l'utilisation la plus courante des fonctions lambda est la fonction de rappel, par exemple, lors de l'utilisation de array_walk() ou usort()

Exemple #3 Utilisation de fonctions anonymes comme fonction de rappel

<?php
$av 
= array("la ""une ""cette ""une certaine ");
array_walk($avcreate_function('&$v,$k''$v = $v . "maison";'));
print_r($av);
?>

L'exemple ci-dessus va afficher :

Array
(
  [0] => la maison
  [1] => une maison
  [2] => cette maison
  [3] => une certaine maison
)

un tableau de chaînes de caractères ordonnées de la plus courte à la plus longue

<?php

$sv 
= array("petite""longue""une très longue chaîne""une phrase toute entière");
print_r($sv);

?>

L'exemple ci-dessus va afficher :

Array
(
  [0] => petite
  [1] => longue
  [2] => une très longue chaîne
  [3] => une phrase toute entière
)

ordonnées de la plus longue à la plus courte

<?php

usort
($svcreate_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);

?>

L'exemple ci-dessus va afficher :

Array
(
  [0] => une phrase toute entière
  [1] => une très longue chaîne
  [2] => longue
  [3] => petite
)

Voir aussi



forward_static_call_array

(PHP 5 >= 5.3.0)

forward_static_call_arrayAppelle une méthode statique et passe les arguments en tableau

Description

mixed forward_static_call_array ( callback $function , array $parameters )

Appelle une fonction ou une méthode utilisateur, nommée function, avec les arguments rassemblés dans un tableau. Cette fonction doit être appelée depuis une méthode, et ne peut pas être utilisée hors d'une classe. Elle utilise le liage statique. Tous les arguments transmis sont passés par valeur dans un tableau, similairement à call_user_func_array().

Liste de paramètres

function

La fonction ou la méthode appelée. Ce paramètre peut être un tableau, avec le nom de la classe et de la méthode, ou une chaîne, avec le nom de la fonction.

parameter

Un paramètre, rassemblant tous les paramètres dans un tableau.

Note:

Notez que les paramètres sont passés par valeur par forward_static_call_array().

Valeurs de retour

Retourne le résultat de la fonction, et FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec forward_static_call_array()

<?php

class A
{
    const 
NAME 'A';
    public static function 
test() {
        
$args func_get_args();
        echo static::
NAME" ".join(','$args)." \n";
    }
}

class 
extends A
{
    const 
NAME 'B';

    public static function 
test() {
        echo 
self::NAME"\n";
        
forward_static_call_array(array('A''test'), array('encore''args'));
        
forward_static_call_array'test', array('autres''args'));
    }
}

B::test('foo');

function 
test() {
        
$args func_get_args();
        echo 
"C ".join(','$args)." \n";
    }

?>

L'exemple ci-dessus va afficher :

B
B encore,args 
C autres,args 

Voir aussi



forward_static_call

(PHP 5 >= 5.3.0)

forward_static_callAppelle une méthode statique

Description

mixed forward_static_call ( callback $function [, mixed $parameter [, mixed $... ]] )

Appelle une fonction ou une méthode utilisateur, nommée function, avec les arguments qui suivent. Cette fonction doit être appelée depuis une méthode, et ne peut pas être utilisée hors d'une classe. Elle utilise le liage statique.

Liste de paramètres

function

La fonction ou la méthode appelée. Ce paramètre peut être un tableau, avec le nom de la classe et de la méthode, ou une chaîne, avec le nom de la fonction.

parameter

Zéro ou plusieurs paramètres à passer à la fonction.

Valeurs de retour

Retourne le résultat de la fonction, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec forward_static_call()

<?php

class A
{
    const 
NAME 'A';
    public static function 
test() {
        
$args func_get_args();
        echo static::
NAME" ".join(','$args)." \n";
    }
}

class 
extends A
{
    const 
NAME 'B';

    public static function 
test() {
        echo 
self::NAME"\n";
        
forward_static_call(array('A''test'), 'encore''args');
        
forward_static_call'test''autres''args');
    }
}

B::test('foo');

function 
test() {
        
$args func_get_args();
        echo 
"C ".join(','$args)." \n";
    }

?>

L'exemple ci-dessus va afficher :

B
B encore,args 
C autres,args 

Voir aussi



func_get_arg

(PHP 4, PHP 5)

func_get_argRetourne un élément de la liste des arguments

Description

mixed func_get_arg ( int $arg_num )

Récupère un élément de la liste des arguments d'une fonction utilisateur.

func_get_arg() peut être utilisé conjointement à func_num_args() et func_get_args() pour permettre aux fonctions utilisateurs d'accepter un nombre variable d'arguments.

Liste de paramètres

arg_num

La position de l'argument. Les arguments de la fonction sont comptés en commençant à partir de 0.

Valeurs de retour

Retourne l'argument spécifié, ou FALSE si une erreur survient.

Historique

Version Description
5.3.0 Cette fonction peut maintenant être utilisée dans des listes de paramètres.
5.3.0 Si cette fonction est appelée depuis le scope le plus éloigné d'un fichier qui a été inclus via include() ou require() depuis l'intérieur d'une fonction du fichier appelant, elle génère une alerte et retourne FALSE.

Erreurs / Exceptions

Générera une alerte si elle est appelée hors d'une fonction utilisateur, ou si arg_num est plus grand que le nombre d'arguments passés.

Exemples

Exemple #1 Exemple avec func_get_arg()

<?php
function foo()
{
     
$numargs func_num_args();
     echo 
"Nombre d'arguments : $numargs<br />\n";
     if (
$numargs >= 2) {
         echo 
"Le second argument est : " func_get_arg(1) . "<br />\n";
     }
}

foo (123);
?>

Exemple #2 Exemple avec func_get_arg() avant et après PHP 5.3

test.php
<?php
function foo() {
    include 
'./fga.inc';
}

foo('First arg''Second arg');
?>

fga.php
<?php

$arg 
func_get_arg(1);
var_export($arg);

?>

Affiche, avant PHP 5.3 :

'Second arg'

Affiche, en PHP 5.3 et suivants :

Warning: func_get_arg():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Exemple #3 Exemple func_get_arg() avec des arguments par référence et par valeur

<?php
function byVal($arg) {
    echo 
'Tel que passé     : 'var_export(func_get_arg(0)), PHP_EOL;
    
$arg 'baz';
    echo 
'Après changement  : 'var_export(func_get_arg(0)), PHP_EOL;
}

function 
byRef(&$arg) {
    echo 
'Tel que passé     : 'var_export(func_get_arg(0)), PHP_EOL;
    
$arg 'baz';
    echo 
'Après changement  : 'var_export(func_get_arg(0)), PHP_EOL;
}

$arg 'bar';
byVal($arg);
byRef($arg);
?>

L'exemple ci-dessus va afficher :


Tel que passé : 'bar'
Après changement : 'bar'
Tel que passé : 'bar'
Après changement : 'baz'

Notes

Note:

Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction dans les versions antérieures à 5.3.0. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

Note:

If the arguments are passed by reference, any changes to the arguments will be reflected in the values returned by this function.

Note: Cette fonction retourne uniquement une copie des arguments passés, et ne compte pas en tant qu'arguments par défaut (non passés).

Voir aussi

  • func_get_args() - Retourne les arguments d'une fonction sous la forme d'un tableau
  • func_num_args() - Retourne le nombre d'arguments passés à la fonction



func_get_args

(PHP 4, PHP 5)

func_get_argsRetourne les arguments d'une fonction sous la forme d'un tableau

Description

array func_get_args ( void )

Récupère les arguments d'une fonction sous la forme d'un tableau.

func_get_arg() peut être utilisé conjointement à func_num_args() et func_get_args() pour permettre aux fonctions utilisateurs d'accepter un nombre variable d'arguments.

Valeurs de retour

Retourne un tableau dont chaque élément est une copie du membre correspondant de la liste d'arguments de la fonction.

Historique

Version Description
5.3.0 Cette fonction peut maintenant être utilisée dans des listes de paramètres.
5.3.0 Si cette fonction est appelée dans un fichier inclus avec include() ou require() logé dans une fonction, elle génèrera une alerte et retournera FALSE.

Erreurs / Exceptions

Générera une alerte si elle est appelée hors d'une fonction.

Exemples

Exemple #1 Exemple avec func_get_args()

<?php
function foo()
{
    
$numargs func_num_args();
    echo 
"Nombre d'arguments : $numargs<br />\n";
    if (
$numargs >= 2) {
        echo 
"Le second argument est : " func_get_arg(1) . "<br />\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"L'argument $i est : " $arg_list[$i] . "<br />\n";
    }
}

foo(123);
?>

L'exemple ci-dessus va afficher :

Nombre d'arguments : 3<br />
Le second argument est : 2<br />
L'argument 0 est : 1<br />
L'argument 1 est : 2<br />
L'argument 2 est : 3<br />

Exemple #2 Exemples func_get_args() avant et après PHP 5.3

test.php
<?php
function foo() {
    include 
'./fga.inc';
}

foo('Argument 1''Argument 2');
?>

fga.inc
<?php

$args 
func_get_args();
var_export($args);

?>

Sortie avant PHP 5.3:

array (
  0 => 'Argument 1',
  1 => 'Argument 2',
)

Sortie depuis PHP 5.3

Warning: func_get_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Exemple #3 Exemple func_get_args() avec des arguments par référence et par valeur

<?php
function byVal($arg) {
    echo 
'Tel que passé     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'Après changement  : 'var_export(func_get_args()), PHP_EOL;
}

function 
byRef(&$arg) {
    echo 
'Tel que passé     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'Après changement  : 'var_export(func_get_args()), PHP_EOL;
}

$arg 'bar';
byVal($arg);
byRef($arg);
?>

L'exemple ci-dessus va afficher :


Tel que passé : array (
0 => 'bar',
)
Après changement : array (
0 => 'bar',
)
Tel que passé : array (
0 => 'bar',
)
Après changement : array (
0 => 'baz',
)

Notes

Note:

Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction dans les versions antérieures à 5.3.0. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

Note:

If the arguments are passed by reference, any changes to the arguments will be reflected in the values returned by this function.

Note: Cette fonction retourne uniquement une copie des arguments passés, et ne compte ne traite pas les arguments par défaut (non passés).

Voir aussi



func_num_args

(PHP 4, PHP 5)

func_num_argsRetourne le nombre d'arguments passés à la fonction

Description

int func_num_args ( void )

Récupère le nombre d'arguments passés à la fonction.

func_get_arg() peut être utilisé conjointement à func_num_args() et func_get_args() pour permettre aux fonctions utilisateurs d'accepter un nombre variable d'arguments.

Valeurs de retour

Retourne le nombre d'arguments passés à la fonction utilisateur courante. function.

Historique

Version Description
5.3.0 Cette fonction peut maintenant être utilisée dans des listes de paramètres.
5.3.0 Si cette fonction est appelée dans un fichier inclus avec include() ou require() logé dans une fonction, elle génèrera une alerte et retournera -1.

Erreurs / Exceptions

Génère une alerte si elle est appelée hors d'une fonction utilisateur.

Exemples

Exemple #1 Exemple avec func_num_args()

<?php
function foo()
{
    
$numargs func_num_args();
    echo 
"Nombre d'arguments : $numargs\n";
}

foo(123);    // affiche ''
?>

L'exemple ci-dessus va afficher :

Nombre d'arguments: 3

Exemple #2 Exemples func_num_args() avant et après PHP 5.3

test.php
 <?php
 
function foo() {
     include 
'./fna.inc';
 }
 
 
foo('Argument 1''Argument 2');
 
?>
 
 fna.php
 <?php
 
 $num_args 
func_num_args();
 
var_export($num_args);
 
 
?>

Sortie avant PHP 5.3:

 2
 

L'affichage depuis PHP 5.3 ressemble à quelque chose comme :

 Warning: func_num_args():  Called from the global scope - no function
 context in /home/torben/Desktop/code/ml/fna.inc on line 3
 -1
 

Notes

Note:

Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction dans les versions antérieures à 5.3.0. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

Voir aussi

  • func_get_arg() - Retourne un élément de la liste des arguments
  • func_get_args() - Retourne les arguments d'une fonction sous la forme d'un tableau



function_exists

(PHP 4, PHP 5)

function_existsIndique si une fonction est définie

Description

bool function_exists ( string $function_name )

Vérifie la liste des fonctions définies par l'utilisateur afin d'y trouver function_name.

Liste de paramètres

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne TRUE si la fonction function_name existe et est une fonction, FALSE sinon.

Note:

Notez également que function_exists() retournera FALSE pour les instructions comme include_once() et echo().

Exemples

Exemple #1 Exemple avec function_exists()

<?php
if (function_exists('imap_open')) {
    echo 
"Les fonctions IMAP sont disponibles.<br />\n";
} else {
    echo 
"Les fonctions IMAP ne sont pas disponibles.<br />\n";
}
?>

Notes

Note:

Un nom de fonction peut exister même si la fonction elle-même n'est pas utilisable à cause d'une configuration ou d'une option de compilation (avec les fonctions image par exemple).

Voir aussi



get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functionsListe toutes les fonctions définies

Description

array get_defined_functions ( void )

Liste toutes les fonctions définies.

Valeurs de retour

Retourne un tableau multidimensionnel, contenant la liste de toutes les fonctions définies, aussi bien les fonctions internes à PHP que celle déjà définie par l'utilisateur. Les noms des fonctions internes sont accessibles via $arr["internal"], et les fonctions utilisateur sont accessibles via $arr["user"].

Exemples

Exemple #1 Exemple avec get_defined_functions()

<?php
function myrow($id$data)
{
    return 
"<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr get_defined_functions();

print_r($arr);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

Voir aussi



register_shutdown_function

(PHP 4, PHP 5)

register_shutdown_functionEnregistre une fonction pour exécution à l'extinction

Description

void register_shutdown_function ( callback $function [, mixed $parameter [, mixed $... ]] )

register_shutdown_function() enregistre la fonction function pour exécution à l'extinction ou lorsque exit() est appelé.

Plusieurs appels à register_shutdown_function() sont possibles dans le même script, et les fonctions seront appelées dans le même ordre que celui dans lequel elles sont enregistrées. Si vous appelez exit() durant l'une des fonctions d'extinction, le processus sera définitivement arrêté, sans que les autres fonctions soient appelées.

Liste de paramètres

function

La fonction à enregistrer, pour exécution à l'extinction.

Une fonction d'extinction est appelée dans le traitement d'une requête, ce qui fait qu'il est possible d'envoyer des messages depuis ces fonctions. Il n'y a actuellement aucun moyen de traiter les données avec les fonctions de bufferisation dans la fonction d'extinction.

Les fonctions d'extinction sont appelées après avoir fermé tous les buffers, et, par exepmle, le contenu ne sera pas compressé si zlib.output_compression a été activé.

parameter

Il est possible de passer des paramètres aux fonctions d'extinction en configurant ces paramètres supplémentaires.

...

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
4.1.0 Les fonctions d'extinction font maintenant partie de la requête. Dans les versions précédentes, et sous Apache, les fonctions enregistrées étaient appelée une fois que la requête était complètement terminée. (y compris lorsque les buffers ont été vidés) ce qui fait qu'il n'était pas possible d'envoyer de contenu au navigateur avec echo() ou print(), ou encore lire le contenu avec les fonctions ob_get_contents(). Les en-têtes étaient également toujours envoyés.

Exemples

Exemple #1 Exemple avec register_shutdown_function()

<?php
function shutdown()
{
    
// Voici notre fonction shutdown
    // dans laquelle nous pouvons faire
    // toutes les dernières opérations
    // avant la fin du script.

    
echo 'Script exécuté avec succès'PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Notes

Note:

Typiquement, les fonctions non définies causent des erreurs fatales en PHP, mais lorsque la fonction function est appelée avec register_shutdown_function() en étant non définie, une erreur de type E_WARNING est générée. De plus, pour des raisons internes à PHP cette erreur va être indiquée comme Unknown at line #0.

Note:

Le dossier de travail du script peut changer dans la fonction d'extinction sous quelques serveurs web, e.g. Apache.

Voir aussi



register_tick_function

(PHP 4 >= 4.0.3, PHP 5)

register_tick_functionEnregistre une fonction exécutée à chaque tick

Description

bool register_tick_function ( callback $function [, mixed $arg [, mixed $... ]] )

register_tick_function() enregistre la fonction function pour être exécutée à chaque fois qu'un tick survient.

Liste de paramètres

function

Le nom de la fonction, sous la forme d'une chaîne de caractères ou d'un tableau d'objets et de méthodes.

arg

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec register_tick_function()

<?php
// Utilisation d'une fonction de callback
register_tick_function('my_function'true);

// Utilisation d'une méthode d'objet
$object = new my_class();
register_tick_function(array(&$object'my_method'), true);
?>

Historique

Version Description
5.3.0 Les ticks sont maintenant supportés sur les serveurs Web threadés.

Notes

Avertissement

register_tick_function() ne doit pas être utilisé avec les serveurs web threadé, en PHP 5.2 et plus anciens.

Voir aussi



unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5)

unregister_tick_functionAnnule la fonction exécutée à chaque tick

Description

void unregister_tick_function ( string $function_name )

Annule l'exécution automatique de function_name à chaque tick.

Liste de paramètres

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi


Sommaire




Agrégation/composition d'objets [PHP4]


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

En programmation objet, il est courant de rencontrer la combinaison de classes simples (et de leurs instances) en une classe plus complexe. C'est une stratégie habile pour mettre en place des objets complexes, et des hiérarchies d'objets. Ce système peut fonctionner comme une alternative dynamique à l'héritage multiple. Il y a deux solutions pour combiner deux classes, suivant la relation de leurs éléments constitutifs : L'Association et l'agrégation.



Exemples

Sommaire


Exemples d'agrégation d'objets

Une Association est une combinaison d'éléments construits indépendamment et visibles à l'extérieur. Lorsque nous associons des classes ou objets, chacun garde une référence à l'autre partie de l'association. Lorsque nous associons des classes statiquement, une classe contient une référence à une instance de l'autre classe. Par exemple :

Exemple #1 Association de classes

<?php
class MyDateTime {

  function 
MyDateTime()
  {
      
// constructeur vide
  
}

  function 
now() 
  {
      return 
date("Y-m-d H:i:s");
  }
}

class 
Report {
  var 
$_dt;
  
// autres propriétés ...

  
function Report() 
  {
      
$this->_dt = new MyDateTime();
      
// initialisation du code ...
  
}

  function 
generateReport() 
  {
      
$dateTime $this->_dt->now();
      
// autre code ...
  
}

  
// autres méthodes ...
}

$rep = new Report();
?>
Nous pouvons aussi associer des instances dynamiquement, en passant une référence au constructeur (ou par une autre méthode), ce qui permet de gérer dynamiquement l'association entre les objets. Nous allons modifier l'exemple ci-dessus pour illustrer ce point :

Exemple #2 Association d'objets

<?php
class MyDateTime {
  
// identique au précédent exemple
}

class 
MyDateTimePlus {
  var 
$_format;

  function 
MyDateTimePlus($format="Y-m-d H:i:s"
  {
      
$this->_format $format;
  }

  function 
now() 
  {
      return 
date($this->_format);
  }
}

class 
Report {
  var 
$_dt;    // Nous allons garder la référence à DateTime ici
  // autre propriété ...

  
function Report()
  {
      
// initialisation
  
}

  function 
setMyDateTime($dt
  {
      
$this->_dt =& $dt;
  }

  function 
generateReport() 
  {
      
$dateTime $this->_dt->now();
      
// autre code ...
  
}

  
// autres méthodes ...
}

$rep = new Report();
$dt = new MyDateTime();
$dtp = new MyDateTimePlus("l, F j, Y (h:i:s a, T)");

// Génération du rapport avec une simple date
$rep->setMyDateTime($dt);
echo 
$rep->generateReport();

// plus loin dans le code ...

// Génération du rapport avec une date designée
$rep->setMyDateTime($dtp);
$output $rep->generateReport();
// sauvegarde pour affichage dans la base
// ... etc ... 
?>

L'agrégation, d'un autre coté, implique l'encapsulation et le masquage des parties de la combinaison. Nous pouvons agréger des classes en utilisant une méthode statique, grâce aux sous-classes (mais PHP ne supporte pas bien les sous-classes), et, dans ce cas, la définition de la classe agrégée n'est pas accessible, sauf via les méthodes de la classe contenant. L'agrégation d'instances (agrégation d'objets) implique la création dynamique de sous-objets à l'intérieur d'un autre objet et, dans le même temps, l'extension des capacités de l'objet principal (en terme de méthodes accessibles).

L'agrégation d'objets est une méthode naturelle pour représenter des relations de type tout-partie (par exemple, une molécule est une agrégation d'atomes), ou bien peut être utilisée pour obtenir un effet équivalent à l'héritage multiple, sans avoir à lier plusieurs classes et leurs interfaces. En fait, les agrégations d'objets sont plus souples, car nous pouvons alors sélectionner les méthodes et les propriétés qui sont transmises à l'objet agrégé.



Exemples

Nous définissons trois classes, qui implémentent chacune une méthode de stockage différente :

Exemple #1 storage_classes.inc

<?php
class FileStorage {
   var 
$data;

   function 
FileStorage($data
   {
       
$this->data $data;
   }

   function 
write($name
   {
       
$fp fopen(name"w");
       
fwrite($fp$this->data);
       
fclose($data);
   }
}

class 
WDDXStorage {
   var 
$data;
   var 
$version "1.0";
   var 
$_id// variable "privée"

   
function WDDXStorage($data
   {
       
$this->data $data;
       
$this->_id $this->_genID();
   }

   function 
store()
   {
       if (
$this->_id) {
           
$pid wddx_packet_start($this->_id);
           
wddx_add_vars($pid"this->data");
           
$packet wddx_packet_end($pid);
       } else {
           
$packet wddx_serialize_value($this->data);
       }
       
$dbh dba_open("varstore""w""gdbm");
       
dba_insert(md5(uniqid(""true)), $packet$dbh);
       
dba_close($dbh);
   }

   
// méthode privée
   
function _genID()
   {
       return 
md5(uniqid(rand(), true));
   }
}

class 
DBStorage {
   var 
$data;
   var 
$dbtype "mysql";

   function 
DBStorage($data
   {
       
$this->data $data;
   }

   function 
save() 
   {
       
$dbh mysql_connect();
       
mysql_select_db("storage"$dbh);
       
$serdata serialize($this->data);
       
mysql_query("insert into vars ('$serdata',now())"$dbh);
       
mysql_close($dbh);
   }
}

?>

Puis, nous "instantions" quelques objets issus de ces classes, et nous réalisons des agrégations et désagrégations, tout en affichant quelques résultats :

Exemple #2 test_aggregation.php

<?php
include "storageclasses.inc";

// quelques utilitaires

function p_arr($arr
{
   foreach (
$arr as $k => $v)
       
$out[] = "\t$k => $v";
   return 
implode("\n"$out);
}

function 
object_info($obj
{
   
$out[] = "Classe : " get_class($obj);
   foreach (
get_object_vars($obj) as $var=>$val) {
       if (
is_array($val)) {
           
$out[] = "propriété : $var (array)\n" p_arr($val);
       } else {
           
$out[] = "propriété : $var = $val";
       }
   }
   foreach (
get_class_methods($obj) as $method) {
       
$out[] = "méthode : $method";
   }
   return 
implode("\n"$out);
}


$data = array(M_PI"kludge != cruft");

// créons quelques objets simples
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// affichons des informations sur ces objets
echo "\$fs object\n";
echo 
object_info($fs) . "\n";
echo 
"\n\$ws object\n";
echo 
object_info($ws) . "\n";

// maintenant, quelques agrégations

echo "\nagrégeons \$fs avec la classe WDDXStorage\n";
aggregate($fs"WDDXStorage");
echo 
"L'objet \$fs \n";
echo 
object_info($fs) . "\n";

echo
"\nagrégeons le résultat avec la classe DBStorage \n";
aggregate($fs"DBStorage");
echo 
"L'objet \$fs \n";
echo 
object_info($fs)."\n";

echo 
"\nEt finalement, désagrégeons WDDXStorage\n";
deaggregate($fs"WDDXStorage");
echo 
"L'objet \$fs \n";
echo 
object_info($fs) . "\n";

?>

Etudions maintenant le résultat du script pour comprendre les effets secondaires et les limitations des agrégations d'objets en PHP. D'abord, nous avons créé $fs et $ws et ils fournissent le bon résultat (suivant la définition de leur classe). Notez que dans le but de l'agrégation d'objets, les éléments privés d'une classe ou d'un objet doivent commencer par un souligné ("_"), même s'il n'y a pas de distinction réelle entre un objet privé et un objet public.

$fs object
Classe : filestorage
propriété : data (array)
   0 => 3.1415926535898
   1 => kludge != cruft
méthode : filestorage
méthode : write

$ws object
Classe : wddxstorage
propriété : data (array)
   0 => 3.1415926535898
   1 => kludge != cruft
propriété : version = 1.0
propriété: _id = ID::9bb2b640764d4370eb04808af8b076a5
méthode : wddxstorage
méthode : store
méthode : _genid

Nous agrégeons alors $fs avec la classe WDDXStorage, et nous affichons les informations. Nous pouvons aussi voir que même si l'objet $fs est toujours du type FileStorage, il a maintenant la propriété $version, et la méthode store(), qui sont définies dans WDDXStorage. Une chose importante à noter est que les éléments privés n'ont pas été agrégés, même s'ils sont présents dans l'objet $ws. Un autre absent est le constructeur de WDDXStorage, qu'il n'est pas logique d'agréger.

agrégeons \$fs avec la classe WDDXStorage
L'objet $fs
Classe : filestorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
propriété : version = 1.0
méthode : filestorage
méthode : write
méthode : store

Le processus d'agrégation est cumulatif, ce qui fait que lorsque nous agrégeons $fs avec la classe DBStorage, nous générons un objet qui peut utiliser n'importe laquelle des méthodes de stockage de ces classes.

agrégeons le résultat avec la classe DBStorage
L'objet $fs
Classe : filestorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
propriété : version = 1.0
propriété : dbtype = mysql
méthode : filestorage
méthode : write
méthode : store
méthode : save

Finalement, de la même façon que nous avons agrégé les méthodes et propriétés dynamiquement, nous pouvons aussi les désagréger. Si nous désagrégeons la classe WDDXStorage de l'objet $fs, nous allons obtenir :

Et finalement, désagrégeons WDDXStorage
L'objet $fs
Classe : filestorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
propriété : dbtype = mysql
méthode : filestorage
méthode : write
méthode : save

Un point que nous n'avons pas mentionné ci-dessus et que l'agrégation ne va pas écraser les méthodes ou propriétés déjà existantes dans l'objet principal. Par exemple, la classe FileStorage définit une propriété $data, et la classe WDDXStorage aussi. Mais cette dernière ne sera pas impliquée dans l'agrégation.




Fonctions d'agrégation d'objets/de composition de fonctions


aggregate_info

(PHP 4 >= 4.3.0)

aggregate_infoRécupère les informations d'agrégation pour un objet donné

Description

array aggregate_info ( object $object )

Récupère les informations d'agrégation pour un objet donné.

Liste de paramètres

object

Valeurs de retour

Retourne un tableau associatif avec les méthodes et propriétés de chaque classe qui a été agrégée pour former l'objet object. La clé du tableau principal est le nom de la classe agrégée.

Exemples

Exemple #1 Exemple avec aggregate_info()

<?php

class Slicer {
    var 
$vegetable;

    function 
Slicer($vegetable
    {
        
$this->vegetable $vegetable;
    }

    function 
slice_it($num_cuts
    {
        echo 
"Doing some simple slicing\n";
        for (
$i=0$i $num_cuts$i++) {
            
// coupe en tranches
        
}
    }
}

class 
Dicer {
    var 
$vegetable;
    var 
$rotation_angle 90;   // degrés

    
function Dicer($vegetable
    {
        
$this->vegetable $vegetable;
    }

    function 
dice_it($num_cuts
    {
        echo 
"Couper dans une direction\n";
        for (
$i=0$i $num_cuts$i++) {
            
// coupe
        
}
        
$this->rotate($this->rotation_angle);
        echo 
"Couper dans une seconde direction\n";
        for (
$i=0$i $num_cuts$i++) {
            
// coupe encore
        
}
    }

    function 
rotate($deg)
    {
        echo 
"Maintenant tourne {$this->vegetable} {$deg} degrés\n";
    }

    function 
_secret_super_dicing($num_cuts
    {
        
// tellement secret que nous ne pouvons vous montrer ;-)
    
}
}

$obj = new Slicer('onion');
aggregate($obj'Dicer');
print_r(aggregate_info($obj));
?>

L'exemple ci-dessus va afficher :

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
Comme vous pouvez le voir, toutes les méthodes et propriétés de la classe Dicer ont été agrégées dans notre nouvel objet, à l'exception de la classe constructeur et de la méthode privée _secret_super_dicing()

Voir aussi



aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_listAgrège sélectivement les méthodes d'une classe grâce à une liste

Description

void aggregate_methods_by_list ( object $object , string $class_name , array $methods_list [, bool $exclude = false ] )

Agrège les méthodes de la classe class_name avec l'objet object, en filtrant les méthodes agrégées grâce à la liste methods_list, appliquée au nom de la méthode.

Le constructeur de classe et les méthodes dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Liste de paramètres

object

class_name

methods_list

exclude

Le paramètre optionnel exclude sert à décider si l'expression régulière sélectionne les méthodes (exclude vaut FALSE), ou bien si elle sert à identifier les méthodes qui doivent être exclues (exclude vaut TRUE).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexpAgrège sélectivement les méthodes d'une classe grâce à une expression rationnelle

Description

void aggregate_methods_by_regexp ( object $object , string $class_name , string $regexp [, bool $exclude = false ] )

Agrège les méthodes de la classe class_name avec l'objet object, en filtrant les méthodes agrégées grâce à l'expression rationnelle regexp, appliquée au nom de la méthode.

Le constructeur de classe et les méthodes dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Liste de paramètres

object

class_name

regexp

exclude

Le paramètre optionnel exclude sert à décider si l'expression rationnelle sélectionne les méthodes (exclude vaut FALSE), ou bien si elle sert à identifier les méthodes qui doivent être exclues (exclude vaut TRUE).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methodsAgrège dynamiquement les méthodes d'une classe à un objet

Description

void aggregate_methods ( object $object , string $class_name )

Agrège toutes les méthodes de la classe class_name avec l'objet object, sauf les méthodes dont le nom commence par un souligné ("_"), qui sont considérées comme privées, et donc ignorées.

Liste de paramètres

object

class_name

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_listAgrège sélectivement les propriétés d'une classe grâce à une liste

Description

void aggregate_properties_by_list ( object $object , string $class_name , array $properties_list [, bool $exclude = false ] )

Agrège les propriétés de la classe class_name avec l'objet object, en filtrant les propriétés agrégées grâce à la liste methods_list, appliquée au nom de la propriété.

Les propriétés dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Liste de paramètres

object

class_name

properties_list

exclude

Le paramètre optionnel exclude sert à décider si l'expression régulière sélectionne les propriétés (exclude vaut FALSE), ou bien si elle sert à identifier les propriétés qui doivent être exclues (exclude vaut TRUE).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexpAgrège sélectivement les propriétés d'une classe grâce à une expression rationnelle

Description

void aggregate_properties_by_regexp ( object $object , string $class_name , string $regexp [, bool $exclude = false ] )

Agrège les propriétés de la classe class_name avec l'objet object, en filtrant les propriétés agrégées grâce à l'expression rationnelle regexp, appliquée au nom de la propriété.

Les propriétés dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Liste de paramètres

object

class_name

regexp

exclude

Le paramètre optionnel exclude sert à décider si l'expression rationnelle sélectionne les propriétés (exclude vaut FALSE), ou bien si elle sert à identifier les propriétés qui doivent être exclues (exclude vaut TRUE).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_propertiesAgrège dynamiquement les propriétés d'une classe à un objet

Description

void aggregate_properties ( object $object , string $class_name )

Agrège toutes les propriétés de la classe class_name avec l'objet object, sauf les propriétés dont le nom commence par un souligné ("_"), qui sont considérées comme privées, et donc ignorées.

Liste de paramètres

object

class_name

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



aggregate

(PHP 4 >= 4.2.0)

aggregateAgrège dynamiquement des classes et objets

Description

void aggregate ( object $object , string $class_name )

Agrège les méthodes et propriétés de la classe class_name dans l'objet object. Les méthodes et propriétés commençant par un souligné ("_") sont considérées comme privées et ignorées dans le processus d'agrégation. Les constructeurs sont aussi exclus de l'agrégation.

Liste de paramètres

object

class_name

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



aggregation_info

(PHP 4 >= 4.2.0 and < 4.3.0)

aggregation_infoAlias de aggregate_info()

Description

Cette fonction est un alias de : aggregate_info().



deaggregate

(PHP 4 >= 4.2.0)

deaggregateDésagrège un objet

Description

void deaggregate ( object $object [, string $class_name ] )

Supprime les méthodes et propriétés de la classe class_name, qui ont été agrégées dans l'objet object.

Liste de paramètres

object

class_name

Si le paramètre optionnel class_name est passé, seules les méthodes et propriétés de cette classe sont désagrégées. Sinon, toutes les méthodes et propriétés agrégées sont retirées.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi


Sommaire




Reflection


Introduction

PHP 5 fournit une API Reflection complète qui permet de faire du reverse-engineer sur les classes, les interfaces, les fonctions, les méthodes et les extensions. De plus, l'API Reflection offre la possibilité de récupérer les commentaires des fonctions, des classes et des méthodes.

Notez que certaines parties de l'API interne ne fournissent pas le code nécessaire afin de faire fonctionner l'extension Reflection. I.e., une classe PHP interne peut manquer de données de réflection pour les propriétés. Ces quelques cas sont considérés comme des bogues, cependant, ils doivent être trouvés et corrigés.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Chaque classe décrit ces propres constantes.



Exemples

Plusieurs exemples existent dans la documentation Reflection, typiquement, dans la documentation __construct, pour chaque classe.

Exemple #1 Exemple avec Reflection depuis un Shell (un Terminale)

$ php --rf strlen
$ php --rc finfo
$ php --re json
$ php --ri dom

L'exemple ci-dessus va afficher quelque chose de similaire à :

Function [ <internal:Core> function strlen ] {

  - Parameters [1] {
    Parameter #0 [ <required> $str ]
  }
}

Class [ <internal:fileinfo> class finfo ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [4] {
    Method [ <internal:fileinfo, ctor> public method finfo ] {

      - Parameters [2] {
        Parameter #0 [ <optional> $options ]
        Parameter #1 [ <optional> $arg ]
      }
    }

    Method [ <internal:fileinfo> public method set_flags ] {

      - Parameters [1] {
        Parameter #0 [ <required> $options ]
      }
    }

    Method [ <internal:fileinfo> public method file ] {

      - Parameters [3] {
        Parameter #0 [ <required> $filename ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }

    Method [ <internal:fileinfo> public method buffer ] {

      - Parameters [3] {
        Parameter #0 [ <required> $string ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }
  }
}

Extension [ <persistent> extension #23 json version 1.2.1 ] {

  - Constants [10] {
    Constant [ integer JSON_HEX_TAG ] { 1 }
    Constant [ integer JSON_HEX_AMP ] { 2 }
    Constant [ integer JSON_HEX_APOS ] { 4 }
    Constant [ integer JSON_HEX_QUOT ] { 8 }
    Constant [ integer JSON_FORCE_OBJECT ] { 16 }
    Constant [ integer JSON_ERROR_NONE ] { 0 }
    Constant [ integer JSON_ERROR_DEPTH ] { 1 }
    Constant [ integer JSON_ERROR_STATE_MISMATCH ] { 2 }
    Constant [ integer JSON_ERROR_CTRL_CHAR ] { 3 }
    Constant [ integer JSON_ERROR_SYNTAX ] { 4 }
  }

  - Functions {
    Function [ <internal:json> function json_encode ] {

      - Parameters [2] {
        Parameter #0 [ <required> $value ]
        Parameter #1 [ <optional> $options ]
      }
    }
    Function [ <internal:json> function json_decode ] {

      - Parameters [3] {
        Parameter #0 [ <required> $json ]
        Parameter #1 [ <optional> $assoc ]
        Parameter #2 [ <optional> $depth ]
      }
    }
    Function [ <internal:json> function json_last_error ] {

      - Parameters [0] {
      }
    }
  }
}

dom

DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.7.3
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled


Étendre la classe

Dans le cas où vous voulez créer une version spéciale de la classe interne (par exemple, pour créer une portion HTML mis en évidence lors de l'export, pour avoir un accès facile aux variables des membres au lieu des variables des méthodes, ou bien pour avoir des méthodes utiles), vous pouvez étendre la classe principale.

Exemple #2 Étendre les classes internes

<?php
/**
 * Mon classe Reflection_Method
 */
class My_Reflection_Method extends ReflectionMethod
{
    public 
$visibility = array();

    public function 
__construct($o$m)
    {
        
parent::__construct($o$m);
        
$this->visibility Reflection::getModifierNames($this->getModifiers());
    }
}

/**
 * Demo classe #1
 *
 */
class {
    protected function 
x() {}
}

/**
 * Demo classe #2
 *
 */
class extends {
    function 
x() {}
}

// Affichage des informations
var_dump(new My_Reflection_Method('U''x'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(My_Reflection_Method)#1 (3) {
  ["visibility"]=>
  array(1) {
    [0]=>
    string(6) "public"
  }
  ["name"]=>
  string(1) "x"
  ["class"]=>
  string(1) "U"
}
Attention

Si vous écrasez le constructeur, souvenez-vous d'appeler le constructeur parent avant d'insérer le moindre code. Si vous ne le faîtes pas, voici ce qui arrivera : Fatal error: Internal error: Failed to retrieve the reflection object



La classe Reflection

Introduction

La classe reflection.

Synopsis de la classe

Reflection {
/* Méthodes */
public static void export ( Reflector $reflector [, bool $return = false ] )
public static array getModifierNames ( int $modifiers )
}

Reflection::export

(PHP 5)

Reflection::exportExportes

Description

public static void Reflection::export ( Reflector $reflector [, bool $return = false ] )

Exportes un objet Reflection.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

reflector

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi



Reflection::getModifierNames

(PHP 5)

Reflection::getModifierNamesRécupère le nom d'un modificateur

Description

public static array Reflection::getModifierNames ( int $modifiers )

Récupère le nom d'un modificateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

modifiers

Le modificateur à récupérer, sous forme numérique.

Valeurs de retour

Un tableau de noms de modificateurs.

Voir aussi


Sommaire



La classe ReflectionClass

Introduction

La classe ReflectionClass rapporte des informations sur une classe.

Synopsis de la classe

ReflectionClass implements Reflector {
/* Constantes */
const integer ReflectionClass::IS_FINAL = 64 ;
/* Propriétés */
public $name ;
/* Méthodes */
final private void __clone ( void )
__construct ( mixed $argument )
public static string export ( mixed $argument [, bool $return = false ] )
public mixed getConstant ( string $name )
public array getConstants ( void )
public object getConstructor ( void )
public array getDefaultProperties ( void )
public string getDocComment ( void )
public int getEndLine ( void )
public ReflectionExtension getExtension ( void )
public string getExtensionName ( void )
public string getFileName ( void )
public array getInterfaceNames ( void )
public array getInterfaces ( void )
public object getMethod ( string $name )
public array getMethods ([ string $filter ] )
public int getModifiers ( void )
public string getName ( void )
public string getNamespaceName ( void )
public object getParentClass ( void )
public array getProperties ([ int $filter ] )
public ReflectionProperty getProperty ( string $name )
public string getShortName ( void )
public int getStartLine ( void )
public array getStaticProperties ( void )
public mixed getStaticPropertyValue ( string $name [, string $default ] )
public bool hasConstant ( string $name )
public bool hasMethod ( string $name )
public bool hasProperty ( string $name )
public bool implementsInterface ( string $interface )
public bool inNamespace ( void )
public bool isAbstract ( void )
public bool isFinal ( void )
public bool isInstance ( object $object )
public bool isInstantiable ( void )
public bool isInterface ( void )
public bool isInternal ( void )
public bool isIterateable ( void )
public bool isSubclassOf ( string $class )
public bool isUserDefined ( void )
public object newInstance ( mixed $args [, mixed $... ] )
public object newInstanceArgs ([ array $args ] )
public void setStaticPropertyValue ( string $name , string $value )
public string __toString ( void )
}

Propriétés

name

Constantes pré-définies

Type de nœuds ReflectionClass

ReflectionClass::IS_IMPLICIT_ABSTRACT

ReflectionClass::IS_EXPLICIT_ABSTRACT

ReflectionClass::IS_FINAL


ReflectionClass::__clone

(PHP 5)

ReflectionClass::__cloneClones un objet

Description

final private void ReflectionClass::__clone ( void )

Clones un objet.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ReflectionClass::__construct

(PHP 5)

ReflectionClass::__constructConstruit une ReflectionClass

Description

ReflectionClass::__construct ( mixed $argument )

Construit un nouvel objet ReflectionClass.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

Soit une chaîne de caractères contenant le nom de la classe à refléter, ou un objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Utilisation simple de ReflectionClass

<?php
Reflection
::export(new ReflectionClass('Exception'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Voir aussi



ReflectionClass::export

(PHP 5)

ReflectionClass::exportExporte une classe

Description

public static string ReflectionClass::export ( mixed $argument [, bool $return = false ] )

Exporte une classe reflétée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi



ReflectionClass::getConstant

(PHP 5)

ReflectionClass::getConstantRécupère les constantes définies

Description

public mixed ReflectionClass::getConstant ( string $name )

Récupère les constantes définies.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour

Voir aussi



ReflectionClass::getConstants

(PHP 5)

ReflectionClass::getConstantsRécupère les constantes

Description

public array ReflectionClass::getConstants ( void )

Récupère les constantes définies d'une classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de constantes.

Voir aussi



ReflectionClass::getConstructor

(PHP 5)

ReflectionClass::getConstructorRécupère le constructeur

Description

public object ReflectionClass::getConstructor ( void )

Récupère le constructeur d'une classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionMethod.

Voir aussi



ReflectionClass::getDefaultProperties

(PHP 5)

ReflectionClass::getDefaultPropertiesRécupère les propriétés par défaut

Description

public array ReflectionClass::getDefaultProperties ( void )

Récupère les propriétés par défaut d'une classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau des propriétés par défaut.

Voir aussi



ReflectionClass::getDocComment

(PHP 5 >= 5.1.0)

ReflectionClass::getDocCommentRécupère les commentaires

Description

public string ReflectionClass::getDocComment ( void )

Récupère les commentaires depuis une classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire, si il existe, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::getDocComment()

<?php
/** 
* Une classe de test
*
* @param  foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass'); 
var_dump($rc->getDocComment())
?>

L'exemple ci-dessus va afficher :

string(55) "/** 
* Une classe de test
*
* @param  foo bar
* @return baz
*/"

Voir aussi



ReflectionClass::getEndLine

(PHP 5)

ReflectionClass::getEndLineRécupère la fin d'une ligne

Description

public int ReflectionClass::getEndLine ( void )

Récupère le numéro de la dernière ligne depuis une définition de classe, définie par l'utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de la dernière ligne depuis une définition de classe, définie par l'utilisateur, ou FALSE s'il est inconnu.

Exemples

Exemple #1 Exemple avec ReflectionClass::getEndLine()

<?php
// Classe de test
class TestClass { }

$rc = new ReflectionClass('TestClass'); 

echo 
$rc->getEndLine();
?>

L'exemple ci-dessus va afficher :

3

Voir aussi



ReflectionClass::getExtension

(PHP 5)

ReflectionClass::getExtensionRécupère des informations d'une extension

Description

public ReflectionExtension ReflectionClass::getExtension ( void )

Récupère une extension de l'objet ReflectionExtension.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionExtension.

Voir aussi



ReflectionClass::getExtensionName

(PHP 5)

ReflectionClass::getExtensionNameRécupère le nom d'une extension

Description

public string ReflectionClass::getExtensionName ( void )

Récupère le nom d'une extension.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'extension.

Voir aussi



ReflectionClass::getFileName

(PHP 5)

ReflectionClass::getFileNameRécupère le nom du fichier déclarant la classe considérée

Description

public string ReflectionClass::getFileName ( void )

Récupère le nom du fichier déclarant la classe considérée

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère le nom du fichier déclarant la classe considérée. Si la classe est déclarée dans le coeur de PHP ou dans une extension PHP, FALSE sera retourné.

Voir aussi



ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0)

ReflectionClass::getInterfaceNamesRécupère les noms des interfaces

Description

public array ReflectionClass::getInterfaceNames ( void )

Récupère les noms des interfaces.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau numérique dont les valeurs sont les noms des interfaces.

Exemples

Exemple #1 Exemple avec ReflectionClass::getInterfaceNames()

<?php
interface Foo { }

interface 
Bar { }

class 
Baz implements FooBar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaceNames());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Foo
    [1] => Bar
)

Voir aussi



ReflectionClass::getInterfaces

(PHP 5)

ReflectionClass::getInterfacesRécupère les interfaces

Description

public array ReflectionClass::getInterfaces ( void )

Récupère les interfaces.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif contenant les interfaces, dont les clés sont les noms des interfaces, et les valeurs, les objets ReflectionClass.

Exemples

Exemple #1 >Exemple avec ReflectionClass::getInterfaces()

<?php
interface Foo { }

interface 
Bar { }

class 
Baz implements FooBar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaces());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [Foo] => ReflectionClass Object
        (
            [name] => Foo
        )

    [Bar] => ReflectionClass Object
        (
            [name] => Bar
        )

)

Voir aussi



ReflectionClass::getMethod

(PHP 5)

ReflectionClass::getMethodRécupère un objet ReflectionMethod

Description

public object ReflectionClass::getMethod ( string $name )

Récupère un objet ReflectionMethod sur une méthode.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Le nom de la méthode à refléter.

Valeurs de retour

Un objet ReflectionMethod.

Voir aussi

  • ReflectionClass::getMethod()



ReflectionClass::getMethods

(PHP 5)

ReflectionClass::getMethodsRécupère la liste des méthodes

Description

public array ReflectionClass::getMethods ([ string $filter ] )

Récupère la liste des méthodes.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filter

Une combinaison des constantes ReflectionMethod::IS_STATIC, ReflectionMethod::IS_PUBLIC, ReflectionMethod::IS_PROTECTED, ReflectionMethod::IS_PRIVATE, ReflectionMethod::IS_ABSTRACT et ReflectionMethod::IS_FINAL.

Valeurs de retour

Un tableau de méthodes.

Voir aussi



ReflectionClass::getModifiers

(PHP 5)

ReflectionClass::getModifiersRécupère les modificateurs

Description

public int ReflectionClass::getModifiers ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi



ReflectionClass::getName

(PHP 5)

ReflectionClass::getNameRécupère le nom de la classe

Description

public string ReflectionClass::getName ( void )

Récupère le nom de la classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la classe.

Exemples

Exemple #1 Exemple avec ReflectionClass::getName()

<?php
namespace A\B;

class 
Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi



ReflectionClass::getNamespaceName

(PHP 5 >= 5.3.0)

ReflectionClass::getNamespaceNameRécupère l'espace de noms

Description

public string ReflectionClass::getNamespaceName ( void )

Récupère l'espace de noms.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'espace de noms.

Exemples

Exemple #1 Exemple avec ReflectionClass::getNamespaceName()

<?php
namespace A\B;

class 
Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi



ReflectionClass::getParentClass

(PHP 5)

ReflectionClass::getParentClassRécupère la classe parente

Description

public object ReflectionClass::getParentClass ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Voir aussi



ReflectionClass::getProperties

(PHP 5)

ReflectionClass::getPropertiesRécupère les propriétés

Description

public array ReflectionClass::getProperties ([ int $filter ] )

Récupère les propriétés reflétées.

Liste de paramètres

filter

Le filtre, optionnel, pour filtrer les types de propriiétés désirées. Ce filtre est configuré en utilisant les constantes ReflectionProperty, et par défaut, tous les types de propriétés sont retournés.

Valeurs de retour

Un tableau d'objets ReflectionProperty.

Exemples

Exemple #1 Exemple avec ReflectionClass::getProperties()

Cet exemple montre l'utilisation du paramètre optionnel filter, qui permet ici de filtrer les propriétés privées.

<?php
class Foo {
    public    
$foo  1;
    protected 
$bar  2;
    private   
$baz  3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props   $reflect->getProperties(ReflectionProperty::IS_PUBLIC ReflectionProperty::IS_PROTECTED);

foreach (
$props as $prop) {
    print 
$prop->getName() . "\n";
}

var_dump($props);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foo
bar
array(2) {
  [0]=>
  object(ReflectionProperty)#3 (2) {
    ["name"]=>
    string(3) "foo"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionProperty)#4 (2) {
    ["name"]=>
    string(3) "bar"
    ["class"]=>
    string(3) "Foo"
  }
}


ReflectionClass::getProperty

(PHP 5)

ReflectionClass::getPropertyRécupère une propriété

Description

public ReflectionProperty ReflectionClass::getProperty ( string $name )

Récupère une propriété.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Le nom de la propriété.

Valeurs de retour

Un objet ReflectionProperty.

Voir aussi



ReflectionClass::getShortName

(PHP 5 >= 5.3.0)

ReflectionClass::getShortNameRécupère le nom court d'une classe

Description

public string ReflectionClass::getShortName ( void )

Récupère le nom court d'une classe, c'est-à-dire, la partie sans l'espace de noms.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom court de la classe.

Exemples

Exemple #1 Exemple avec ReflectionClass::getShortName()

<?php
namespace A\B;

class 
Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi



ReflectionClass::getStartLine

(PHP 5)

ReflectionClass::getStartLineRécupère le numéro de ligne de départ

Description

public int ReflectionClass::getStartLine ( void )

Récupère le numéro de ligne de départ.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de ligne de départ, sous la forme d'un entier.

Voir aussi



ReflectionClass::getStaticProperties

(PHP 5)

ReflectionClass::getStaticPropertiesRécupère les propriétés statiques

Description

public array ReflectionClass::getStaticProperties ( void )

Récupère les propriétés statiques.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les propriétés statiques, sous la forme d'un tableau.

Voir aussi



ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.0)

ReflectionClass::getStaticPropertyValueRécupère la valeur d'une propriété statique

Description

public mixed ReflectionClass::getStaticPropertyValue ( string $name [, string $default ] )

Récupère la valeur d'une propriété statique.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

default

Valeurs de retour

Voir aussi



ReflectionClass::hasConstant

(PHP 5 >= 5.1.0)

ReflectionClass::hasConstantVérifie si une constante est définie

Description

public bool ReflectionClass::hasConstant ( string $name )

Vérifie si une constante spécifique est définie dans une classe.

Liste de paramètres

name

Nom de la constante à vérifier.

Valeurs de retour

TRUE si la constante est définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::hasConstant()

<?php
class Foo {
    const 
c1 1;
}

$class = new ReflectionClass("Foo");

var_dump($class->hasConstant("c1"));
var_dump($class->hasConstant("c2"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)

Voir aussi



ReflectionClass::hasMethod

(PHP 5 >= 5.1.0)

ReflectionClass::hasMethodVérifie si une méthode est définie

Description

public bool ReflectionClass::hasMethod ( string $name )

Vérifie si une méthode spécifique est définie dans une classe.

Liste de paramètres

name

Nom de la méthode à vérifier.

Valeurs de retour

TRUE si la méthode est définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::hasMethod()

<?php
Class {
    public function 
publicFoo() {
        return 
true;
    }

    protected function 
protectedFoo() {
        return 
true;
    }

    private function 
privateFoo() {
        return 
true;
    }

    static function 
staticFoo() {
        return 
true;
    }
}

$rc = new ReflectionClass("C");

var_dump($rc->hasMethod('publicFoo'));

var_dump($rc->hasMethod('protectedFoo'));

var_dump($rc->hasMethod('privateFoo'));

var_dump($rc->hasMethod('staticFoo'));

// C should not have method bar
var_dump($rc->hasMethod('bar'));

// Method names are case insensitive
var_dump($rc->hasMethod('PUBLICfOO'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)

Voir aussi



ReflectionClass::hasProperty

(PHP 5 >= 5.1.0)

ReflectionClass::hasPropertyVérifie si une propriété est définie

Description

public bool ReflectionClass::hasProperty ( string $name )

Vérifie si la propriété spécifiée est définie.

Liste de paramètres

name

Le nom de la propriété à vérifier.

Valeurs de retour

TRUE si la propriété est définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::hasProperty()

<?php
class Foo {
    public    
$p1;
    protected 
$p2;
    private   
$p3;

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(true)
bool(false)

Voir aussi



ReflectionClass::implementsInterface

(PHP 5)

ReflectionClass::implementsInterfaceVérifie si une classe implémente une interface

Description

public bool ReflectionClass::implementsInterface ( string $interface )

Vérifie si une classe implémente une interface.

Liste de paramètres

interface

Le nom de l'interface.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ReflectionClass::inNamespace

(PHP 5 >= 5.3.0)

ReflectionClass::inNamespaceVérifie si une classe est définie dans un espace de noms

Description

public bool ReflectionClass::inNamespace ( void )

Vérifie si une classe est définie dans un espace de noms.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::inNamespace()

<?php
namespace A\B;

class 
Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi



ReflectionClass::isAbstract

(PHP 5)

ReflectionClass::isAbstractVérifie si une classe est abstraite

Description

public bool ReflectionClass::isAbstract ( void )

Vérifie si une classe est abstraite.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isAbstract()

<?php
class          TestClass { }
abstract class 
TestAbstractClass { }

$testClass     = new ReflectionClass('TestClass');
$abstractClass = new ReflectionClass('TestAbstractClass');

var_dump($testClass->isAbstract());
var_dump($abstractClass->isAbstract());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi



ReflectionClass::isFinal

(PHP 5)

ReflectionClass::isFinalVérifie si une classe est finale

Description

public bool ReflectionClass::isFinal ( void )

Vérifie si une classe est finale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isAbstract()

<?php
class       TestClass { }
final class 
TestFinalClass { }

$normalClass = new ReflectionClass('TestClass');
$finalClass  = new ReflectionClass('TestFinalClass');

var_dump($normalClass->isFinal());
var_dump($finalClass->isFinal());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi



ReflectionClass::isInstance

(PHP 5)

ReflectionClass::isInstanceVérifie si une classe est une instance d'une autre classe

Description

public bool ReflectionClass::isInstance ( object $object )

Vérifie si une classe est une instance d'une autre classe.

Liste de paramètres

object

L'objet utilisé pour comparer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isInstance()

<?php
// Exemple d'utilisation
$class = new ReflectionClass('Foo');

if (
$class->isInstance($arg)) {
    echo 
"Oui";
}

// Équivalent à
if ($arg instanceof Foo) {
    echo 
"Oui";
}

// Équivalent à
if (is_a($arg'Foo')) {
    echo 
"Oui";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Oui
Oui
Oui

Voir aussi



ReflectionClass::isInstantiable

(PHP 5)

ReflectionClass::isInstantiableVérifie si une classe est instanciable

Description

public bool ReflectionClass::isInstantiable ( void )

Vérifie si une classe est instanciable.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isInstantiable()

<?php
class { }

interface 
iface {
    function 
f1();
}

class 
ifaceImpl implements iface {
    function 
f1() {}
}

abstract class 
abstractClass {
    function 
f1() { }
    abstract function 
f2();
}

class 
extends abstractClass {
    function 
f2() { }
}

$classes = array("C""iface""ifaceImpl""abstractClass""D");

foreach(
$classes  as $class ) {
    
$reflectionClass = new ReflectionClass($class);
    echo 
"Est-ce que la classe $class est instanciable  ?  ";
    
var_dump($reflectionClass->IsInstantiable()); 
}

?>

L'exemple ci-dessus va afficher :

Est-ce que la classe C est instanciable  ?  bool(true)
Est-ce que la classe iface est instanciable  ?  bool(false)
Est-ce que la classe ifaceImpl est instanciable  ?  bool(true)
Est-ce que la classe abstractClass est instanciable  ?  bool(false)
Est-ce que la classe D est instanciable  ?  bool(true)

Voir aussi



ReflectionClass::isInterface

(PHP 5)

ReflectionClass::isInterfaceVérifie si une classe est une interface

Description

public bool ReflectionClass::isInterface ( void )

Vérifie si une classe est une interface.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ReflectionClass::isInternal

(PHP 5)

ReflectionClass::isInternalVérifie si une classe est une classe interne

Description

public bool ReflectionClass::isInternal ( void )

Vérifie si une classe est une classe interne, plutôt qu'une classe définie dans l'espace utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ReflectionClass::isIterateable

(PHP 5)

ReflectionClass::isIterateableVérifie si la classe est itérable

Description

public bool ReflectionClass::isIterateable ( void )

Vérifie si la classe est itérable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isIterateable()

<?php

class IteratorClass implements Iterator {
    public function 
__construct() { }
    public function 
key() { }
    public function 
current() { }
    function 
next() { }
    function 
valid() { }
    function 
rewind() { }
}
class 
DerivedClass extends IteratorClass { }
class 
NonIterator { }

function 
dump_iterateable($class) {
    
$reflection = new ReflectionClass($class);
    
var_dump($reflection->isIterateable());
}

$classes = array("ArrayObject""IteratorClass""DerivedClass""NonIterator");

foreach (
$classes as $class) {
    echo 
"Est-ce que la classe $class est itérable ? ";
    
dump_iterateable($class);
}
?>

L'exemple ci-dessus va afficher :

Est-ce que la classe ArrayObject est itérable ? bool(true)
Est-ce que la classe IteratorClass est itérable ? bool(true)
Est-ce que la classe DerivedClass est itérable ? bool(true)
Est-ce que la classe NonIterator est itérable ? bool(false)

Voir aussi



ReflectionClass::isSubclassOf

(PHP 5)

ReflectionClass::isSubclassOfVérifie si la classe est une sous-classe

Description

public bool ReflectionClass::isSubclassOf ( string $class )

Vérifie si la classe est une sous-classe de la classe spécifiée.

Liste de paramètres

class

Nom de la classe à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ReflectionClass::isUserDefined

(PHP 5)

ReflectionClass::isUserDefinedVérifie si une classe a été définie dans l'espace utilisateur

Description

public bool ReflectionClass::isUserDefined ( void )

Vérifie si une classe a été définie dans l'espace utilisateur, plutôt qu'en interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



ReflectionClass::newInstance

(PHP 5)

ReflectionClass::newInstanceCréer une nouvelle instance de la classe en utilisant les arguments fournis

Description

public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] )

Créer une nouvelle instance de la classe en utilisant les arguments fournis qui seront distribués à son constructeur.

Liste de paramètres

args

Accepte un nombre variable d'arguments passés au constructeur, comme pour la fonction call_user_func().

Valeurs de retour

Erreurs / Exceptions

Une ReflectionException si le constructeur n'est pas public.

Une ReflectionException si la classe n'a pas de constructeur et que le paramètre args contient au moins une donnée.

Voir aussi



ReflectionClass::newInstanceArgs

(PHP 5 >= 5.1.3)

ReflectionClass::newInstanceArgsCréer une nouvelle instance en utilisant les arguments fournis

Description

public object ReflectionClass::newInstanceArgs ([ array $args ] )

Créer une nouvelle instance en utilisant les arguments fournis pour les passer au constructeur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

args

Accepte un nombre variable d'arguments passés au constructeur, comme pour la fonction call_user_func().

Valeurs de retour

Retourne une nouvelle instance de la classe.

Erreurs / Exceptions

Une ReflectionException si le constructeur n'est pas public.

Une ReflectionException si la classe n'a pas de constructeur et que le paramètre args contient au moins une donnée.

Voir aussi



ReflectionClass::setStaticPropertyValue

(PHP 5 >= 5.1.0)

ReflectionClass::setStaticPropertyValueDéfinit la valeur d'une propriété statiques

Description

public void ReflectionClass::setStaticPropertyValue ( string $name , string $value )

Définit la valeur d'une propriété statiques.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Le nom de la propriété.

value

La nouvelle valeur pour la propriété.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ReflectionClass::__toString

(PHP 5)

ReflectionClass::__toStringCrée une représentation textuelle de l'objet

Description

public string ReflectionClass::__toString ( void )

Crée une représentation textuelle de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de l'instance actuelle de ReflectionClass

Exemples

Exemple #1 Exemple pour ReflectionClass::__toString()

<?php
$reflectionClass 
= new ReflectionClass('Exception');
echo 
$reflectionClass->__toString();
?>

L'exemple ci-dessus va afficher :

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Voir aussi


Sommaire



La classe ReflectionExtension

Introduction

La classe ReflectionExtension rapporte des informations sur une extension.

Synopsis de la classe

ReflectionExtension implements Reflector {
/* Propriétés */
public $name ;
/* Méthodes */
final private void __clone ( void )
__construct ( string $name )
public static string export ( string $name [, string $return = false ] )
public array getClasses ( void )
public array getClassNames ( void )
public array getConstants ( void )
public array getDependencies ( void )
public array getFunctions ( void )
public array getINIEntries ( void )
public string getName ( void )
public string getVersion ( void )
public string info ( void )
public string __toString ( void )
}

Propriétés

name

Nom de l'extension, identique à l'appel de la méthode ReflectionExtension::getName()


ReflectionExtension::__clone

(PHP 5)

ReflectionExtension::__cloneClonage

Description

final private void ReflectionExtension::__clone ( void )

La méthode clone empêche un objet d'être cloné. Les objets de réflexion ne peuvent être clonés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur retournée, une erreur sera émise lors de l'appel à cette méthode.

Voir aussi



ReflectionExtension::__construct

(PHP 5)

ReflectionExtension::__constructConstruit un nouvel objet ReflectionExtension

Description

ReflectionExtension::__construct ( string $name )

Construit un nouvel objet ReflectionExtension.

Liste de paramètres

name

Nom de l'extension.

Valeurs de retour

Un nouvel objet ReflectionExtension.

Exemples

Exemple #1 exemple de ReflectionExtension

<?php
$ext 
= new ReflectionExtension('Reflection');

printf('Extension: %s (version: %s)'$ext->getName(), $ext->getVersion());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Extension: Reflection (version: $Revision: 300003 $)

Voir aussi



ReflectionExtension::export

(PHP 5)

ReflectionExtension::exportExportation

Description

public static string ReflectionExtension::export ( string $name [, string $return = false ] )

Exporte une extension reflétée. Le format de retour de cette fonction est similaire à celui du CLI appelé avec l'option --re [extension].

Liste de paramètres

name

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi



ReflectionExtension::getClasses

(PHP 5)

ReflectionExtension::getClassesRécupère les classes

Description

public array ReflectionExtension::getClasses ( void )

Récupère une liste des classes d'une extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau d'objets ReflectionClass, un par classes définies dans l'extension. Si aucune classe n'est définie, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getClasses()

<?php
$ext 
= new ReflectionExtension('XMLWriter');
var_dump($ext->getClasses());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  ["XMLWriter"]=>
  &object(ReflectionClass)#2 (1) {
    ["name"]=>
    string(9) "XMLWriter"
  }
}

Voir aussi



ReflectionExtension::getClassNames

(PHP 5)

ReflectionExtension::getClassNamesRécupère les noms des classes

Description

public array ReflectionExtension::getClassNames ( void )

Récupère une liste des noms de classes définies dans l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de noms de classes définies dans l'extension. Si aucune classe n'est définie, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getClassNames()

<?php
$ext 
= new ReflectionExtension('XMLWriter');
var_dump($ext->getClassNames());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  string(9) "XMLWriter"
}

Voir aussi



ReflectionExtension::getConstants

(PHP 5)

ReflectionExtension::getConstantsRécupère les constantes

Description

public array ReflectionExtension::getConstants ( void )

Récupère les constantes d'une extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif dont les clés sont les noms des constantes.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getConstants()

<?php
$ext 
= new ReflectionExtension('DOM');

print_r($ext->getConstants());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [XML_ELEMENT_NODE] => 1
    [XML_ATTRIBUTE_NODE] => 2
    [XML_TEXT_NODE] => 3
    [XML_CDATA_SECTION_NODE] => 4
    [XML_ENTITY_REF_NODE] => 5
    [XML_ENTITY_NODE] => 6
    [XML_PI_NODE] => 7
    [XML_COMMENT_NODE] => 8
    [XML_DOCUMENT_NODE] => 9
    [XML_DOCUMENT_TYPE_NODE] => 10
    [XML_DOCUMENT_FRAG_NODE] => 11
    [XML_NOTATION_NODE] => 12
    [XML_HTML_DOCUMENT_NODE] => 13
    [XML_DTD_NODE] => 14
    [XML_ELEMENT_DECL_NODE] => 15
    [XML_ATTRIBUTE_DECL_NODE] => 16
    [XML_ENTITY_DECL_NODE] => 17
    [XML_NAMESPACE_DECL_NODE] => 18
    [XML_LOCAL_NAMESPACE] => 18
    [XML_ATTRIBUTE_CDATA] => 1
    [XML_ATTRIBUTE_ID] => 2
    [XML_ATTRIBUTE_IDREF] => 3
    [XML_ATTRIBUTE_IDREFS] => 4
    [XML_ATTRIBUTE_ENTITY] => 6
    [XML_ATTRIBUTE_NMTOKEN] => 7
    [XML_ATTRIBUTE_NMTOKENS] => 8
    [XML_ATTRIBUTE_ENUMERATION] => 9
    [XML_ATTRIBUTE_NOTATION] => 10
    [DOM_PHP_ERR] => 0
    [DOM_INDEX_SIZE_ERR] => 1
    [DOMSTRING_SIZE_ERR] => 2
    [DOM_HIERARCHY_REQUEST_ERR] => 3
    [DOM_WRONG_DOCUMENT_ERR] => 4
    [DOM_INVALID_CHARACTER_ERR] => 5
    [DOM_NO_DATA_ALLOWED_ERR] => 6
    [DOM_NO_MODIFICATION_ALLOWED_ERR] => 7
    [DOM_NOT_FOUND_ERR] => 8
    [DOM_NOT_SUPPORTED_ERR] => 9
    [DOM_INUSE_ATTRIBUTE_ERR] => 10
    [DOM_INVALID_STATE_ERR] => 11
    [DOM_SYNTAX_ERR] => 12
    [DOM_INVALID_MODIFICATION_ERR] => 13
    [DOM_NAMESPACE_ERR] => 14
    [DOM_INVALID_ACCESS_ERR] => 15
    [DOM_VALIDATION_ERR] => 16
)

Voir aussi



ReflectionExtension::getDependencies

(PHP 5)

ReflectionExtension::getDependenciesRécupère les dépendances

Description

public array ReflectionExtension::getDependencies ( void )

Récupère les dépendances, en listant à la fois les dépendances requises, mais aussi les dépendances en conflits.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif dont les clés sont les dépendances et comme valeurs, soit Required, Optional ou Conflicts.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getDependencies()

<?php
$dom 
= new ReflectionExtension('dom');

print_r($dom->getDependencies());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [libxml] => Required
    [domxml] => Conflicts
)

Voir aussi

  • ReflectionClass::getVersion()



ReflectionExtension::getFunctions

(PHP 5)

ReflectionExtension::getFunctionsRécupère les fonctions d'une extension

Description

public array ReflectionExtension::getFunctions ( void )

Récupère les fonctions d'une extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif d'objets ReflectionFunction, pour chaque fonction définie dans l'extension, dont les clés sont les noms des fonctions. Si aucune fonction n'est définie, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getFunctions()

<?php
$dom 
= new ReflectionExtension('SimpleXML');

print_r($dom->getFunctions());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [simplexml_load_file] => ReflectionFunction Object
        (
            [name] => simplexml_load_file
        )

    [simplexml_load_string] => ReflectionFunction Object
        (
            [name] => simplexml_load_string
        )

    [simplexml_import_dom] => ReflectionFunction Object
        (
            [name] => simplexml_import_dom
        )

)

Voir aussi



ReflectionExtension::getINIEntries

(PHP 5)

ReflectionExtension::getINIEntriesRécupère les entrées ini de l'extension

Description

public array ReflectionExtension::getINIEntries ( void )

Récupère les entrées ini de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif dont les clés sont les entrées ini, et les valeurs, les contenus de ces entrées.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getINIEntries()

<?php
$ext 
= new ReflectionExtension('mysql');

print_r($ext->getINIEntries());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [mysql.allow_persistent] => 1
    [mysql.max_persistent] => -1
    [mysql.max_links] => -1
    [mysql.default_host] => 
    [mysql.default_user] => 
    [mysql.default_password] => 
    [mysql.default_port] => 
    [mysql.default_socket] => 
    [mysql.connect_timeout] => 60
    [mysql.trace_mode] => 
    [mysql.allow_local_infile] => 1
    [mysql.cache_size] => 2000
)

Voir aussi



ReflectionExtension::getName

(PHP 5)

ReflectionExtension::getNameRécupère le nom de l'extension

Description

public string ReflectionExtension::getName ( void )

Récupère le nom de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'extension.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getName()

<?php
$ext 
= new ReflectionExtension('mysqli');
var_dump($ext->getName());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(6) "mysqli"

Voir aussi



ReflectionExtension::getVersion

(PHP 5)

ReflectionExtension::getVersionRécupère la version de l'extension

Description

public string ReflectionExtension::getVersion ( void )

Récupère la version de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La version de l'extension.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getVersion()

<?php
$ext 
= new ReflectionExtension('mysqli');
var_dump($ext->getVersion());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(3) "0.1"

Voir aussi



ReflectionExtension::info

(PHP 5)

ReflectionExtension::infoRécupère des informations sur l'extension

Description

public string ReflectionExtension::info ( void )

Récupère des informations sur l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Informations sur l'extension.

Exemples

Exemple #1 Exemple avec ReflectionExtension::info()

<?php
$ext 
= new ReflectionExtension('mysqli');
print_r($ext->info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.5-dev - 081106 - $Revision: 293923 $
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0
Persistent cache => enabled
put_hits => 0
put_misses => 0
get_hits => 0
get_misses => 0
size => 2000
free_items => 2000
references => 2

Directive => Local Value => Master Value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_user => no value => no value
mysqli.default_pw => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_socket => no value => no value
mysqli.reconnect => Off => Off
mysqli.allow_local_infile => On => On
mysqli.cache_size => 2000 => 2000
NULL

Voir aussi



ReflectionExtension::__toString

(PHP 5)

ReflectionExtension::__toStringRécupère une représentation textuelle

Description

public string ReflectionExtension::__toString ( void )

Exporte une extension reflétée et retourne le résultat sous forme de string. Cette méthode est similaire à ReflectionExtension::export() appelée avec le paramètre return à TRUE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'extension reflétée sous forme de chaîne de caractère, de la même façon que ReflectionExtension::export().

Voir aussi


Sommaire



La classe ReflectionFunction

Introduction

La classe ReflectionFunction rapporte des informations sur une fonction.

Classe parent à ReflectionFunctionAbstract a les mêmes méthodes, sauf invoke(), invokeArgs(), export() et isDisabled().

Synopsis de la classe

ReflectionFunction extends ReflectionFunctionAbstract implements Reflector {
/* Constantes */
const integer ReflectionFunction::IS_DEPRECATED = 262144 ;
/* Propriétés */
public $name ;
/* Méthodes */
__construct ( mixed $name )
public static string export ( string $name [, string $return ] )
public mixed invoke ([ mixed $parameter [, mixed $... ]] )
public mixed invokeArgs ( array $args )
public bool isDisabled ( void )
public string __toString ( void )
/* Méthodes héritées */
final private void ReflectionFunctionAbstract::__clone ( void )
public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )
public string ReflectionFunctionAbstract::getName ( void )
abstract public void ReflectionFunctionAbstract::__toString ( void )
}

Propriétés

name

Constantes pré-définies

Type de nœuds ReflectionFunction

ReflectionFunction::IS_DEPRECATED


ReflectionFunction::__construct

(PHP 5)

ReflectionFunction::__constructConstruit un nouvel objet ReflectionFunction

Description

ReflectionFunction::__construct ( mixed $name )

Construit un nouvel objet ReflectionFunction.

Liste de paramètres

name

Le nom de la fonction à refléter ou une fermeture.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Une exception ReflectionException si le paramètre name contient une fonction invalide.

Historique

Version Description
5.3.0 name autorise maintenant les fermetures.

Exemples

Exemple #1 Exemple avec ReflectionFunction::__construct()

<?php
/**
 * Un simple compteur
 *
 * @return    int
 */
function counter1()
{
    static 
$c 0;
    return ++
$c;
}

/**
 * Une autre simple compteur
 *
 * @return    int
 */
$counter2 = function()
{
    static 
$d 0;
    return ++
$d;

};

function 
dumpReflectionFunction($func)
{
    
// Affiche des informations basiques
    
printf(
        
"\n\n===> The %s function '%s'\n".
        
"     declared in %s\n".
        
"     lines %d to %d\n",
        
$func->isInternal() ? 'internal' 'user-defined',
        
$func->getName(),
        
$func->getFileName(),
        
$func->getStartLine(),
        
$func->getEndline()
    );

    
// Affiche les commentaires de documentation
    
printf("---> Documentation:\n %s\n"var_export($func->getDocComment(), 1));

    
// Affiche les variables statiques existantes
    
if ($statics $func->getStaticVariables())
    {
        
printf("---> Static variables: %s\n"var_export($statics1));
    }
}

// Créer une instance de la classe ReflectionFunction
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

===> The user-defined function 'counter1'
     declared in Z:\reflectcounter.php
     lines 7 to 11
---> Documentation:
 '/**
 * A simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'c' => 0,
)


===> The user-defined function '{closure}'
     declared in Z:\reflectcounter.php
     lines 18 to 23
---> Documentation:
 '/**
 * Another simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'd' => 0,
)

Voir aussi



ReflectionFunction::export

(PHP 5)

ReflectionFunction::exportExporte une fonction

Description

public static string ReflectionFunction::export ( string $name [, string $return ] )

Exporte une fonction reflétée.

Liste de paramètres

name

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi



ReflectionFunction::invoke

(PHP 5)

ReflectionFunction::invokeInvoque une fonction

Description

public mixed ReflectionFunction::invoke ([ mixed $parameter [, mixed $... ]] )

Invoque une fonction reflétée.

Liste de paramètres

args

La liste d'arguments à passer à la fonction. Il est possible de passer un nombre variable d'arguments à la fonction, comme pour la fonction call_user_func().

Valeurs de retour

Retourne le résultat de la fonction invoquée.

Exemples

Exemple #1 Exemple avec ReflectionFunction::invoke()

<?php
function title($title$name)
{
   return 
sprintf("%s. %s\r\n"$title$name);
}

$function = new ReflectionFunction('title');

echo 
$function->invoke('Dr''Phil');
?>

L'exemple ci-dessus va afficher :

Dr. Phil

Notes

Note:

Si la fonction déclare des arguments par référence, alors ils doivent être passés par référence dans la liste des arguments.

Voir aussi



ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.0)

ReflectionFunction::invokeArgsInvoque les arguments d'une fonction

Description

public mixed ReflectionFunction::invokeArgs ( array $args )

Invoque les arguments d'une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

args

Les arguments à utiliser lors de l'invocation, de la même forme que pour call_user_func_array().

Valeurs de retour

Retourne le résultat de la fonction invoquée.

Exemples

Exemple #1 ReflectionFunction::invokeArgs() example

<?php
function title($title$name)
{
    return 
sprintf("%s. %s\r\n"$title$name);
}

$function = new ReflectionFunction('title');

echo 
$function->invokeArgs(array('Dr''Phil'));
?>

L'exemple ci-dessus va afficher :

Dr. Phil

Exemple #2 Exemple pour ReflectionFunction::invokeArgs() avec des références

<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
    foreach(
$conditions as $condition) {
       if(!
$condition) {
          
$false_conditions[] = $condition;
       }
    }
}

$function_ref = new ReflectionFunction('get_false_conditions');

$conditions       = array(truefalse, -101);
$false_conditions = array();

$function_ref->invokeArgs(array($conditions, &$false_conditions));

var_dump($false_conditions);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  bool(false)
  [1]=>
  int(0)
}

Notes

Note:

Si la fonction déclare des arguments par référence, alors ils doivent être passés par référence dans la liste des arguments.

Voir aussi



ReflectionFunction::isDisabled

(PHP 5)

ReflectionFunction::isDisabledVérifie si une fonction est désactivée

Description

public bool ReflectionFunction::isDisabled ( void )

Vérifie si une fonction est désactivée, via la directive disable_functions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est désactivée, FALSE sinon.

Voir aussi



ReflectionFunction::__toString

(PHP 5)

ReflectionFunction::__toStringRécupère une représentation textuelle

Description

public string ReflectionFunction::__toString ( void )

Récupère une représentation textuelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une représentation textuelle semblable à ReflectionFunction::export().

Exemples

Exemple #1 Exemple pour ReflectionFunction::__toString()

<?php
function title($title$name)
{
    return 
sprintf("%s. %s\r\n"$title$name);
}

echo new 
ReflectionFunction('title');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Function [ <user> function person ] {
  @@ Command line code 1 - 1

  - Parameters [2] {
    Parameter #0 [ <required> $prefix ]
    Parameter #1 [ <required> $name ]
  }
}

Voir aussi


Sommaire



La classe ReflectionFunctionAbstract

Introduction

Une classe parente à ReflectionFunction, lisez sa description pour plus de détails.

Synopsis de la classe

ReflectionFunctionAbstract implements Reflector {
/* Propriétés */
public $name ;
/* Méthodes */
final private void __clone ( void )
public string getDocComment ( void )
public int getEndLine ( void )
public ReflectionExtension getExtension ( void )
public string getExtensionName ( void )
public string getFileName ( void )
public string getName ( void )
public string getNamespaceName ( void )
public int getNumberOfParameters ( void )
public int getNumberOfRequiredParameters ( void )
public array getParameters ( void )
public string getShortName ( void )
public int getStartLine ( void )
public array getStaticVariables ( void )
public bool inNamespace ( void )
public bool isClosure ( void )
public bool isDeprecated ( void )
public bool isInternal ( void )
public bool isUserDefined ( void )
public bool returnsReference ( void )
abstract public void __toString ( void )
}

Propriétés

name


ReflectionFunctionAbstract::__clone

(PHP 5)

ReflectionFunctionAbstract::__cloneClone une fonction

Description

final private void ReflectionFunctionAbstract::__clone ( void )

Clone une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi



ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0)

ReflectionFunctionAbstract::getDocCommentRécupère un commentaire

Description

public string ReflectionFunctionAbstract::getDocComment ( void )

Récupère un commentaire depuis une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire, s'il existe, FALSE sinon.

Voir aussi



ReflectionFunctionAbstract::getEndLine

(PHP 5)

ReflectionFunctionAbstract::getEndLineRécupère le numéro de la dernière ligne

Description

public int ReflectionFunctionAbstract::getEndLine ( void )

Récupère le numéro de la dernière ligne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de la dernière ligne d'une classe définie dans l'espace utilisateur, ou bien FALSE si ce numéro n'est pas connu.

Voir aussi



ReflectionFunctionAbstract::getExtension

(PHP 5)

ReflectionFunctionAbstract::getExtensionRécupère les informations d'une extension

Description

public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )

Récupère les informations d'une extension.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les informations de l'extension, sous la forme d'un objet ReflectionExtension.

Voir aussi



ReflectionFunctionAbstract::getExtensionName

(PHP 5)

ReflectionFunctionAbstract::getExtensionNameRécupère le nom de l'extension

Description

public string ReflectionFunctionAbstract::getExtensionName ( void )

Récupère le nom de l'extension.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'extension.

Voir aussi



ReflectionFunctionAbstract::getFileName

(PHP 5)

ReflectionFunctionAbstract::getFileNameRécupère le nom du fichier

Description

public string ReflectionFunctionAbstract::getFileName ( void )

Récupère le nom du fichier depuis une fonction définie dans l'espace utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du fichier.

Voir aussi



ReflectionFunctionAbstract::getName

(PHP 5)

ReflectionFunctionAbstract::getNameRécupère le nom d'une fonction

Description

public string ReflectionFunctionAbstract::getName ( void )

Récupère le nom d'une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la fonction.

Voir aussi



ReflectionFunctionAbstract::getNamespaceName

(PHP 5 >= 5.3.0)

ReflectionFunctionAbstract::getNamespaceNameRécupère l'espace de noms

Description

public string ReflectionFunctionAbstract::getNamespaceName ( void )

Récupère l'espace de noms depuis lequel la classe est définie.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'espace de noms.

Voir aussi



ReflectionFunctionAbstract::getNumberOfParameters

(PHP 5 >= 5.0.3)

ReflectionFunctionAbstract::getNumberOfParametersRécupère le nombre de paramètres

Description

public int ReflectionFunctionAbstract::getNumberOfParameters ( void )

Récupère le nombre de paramètres défini dans la fonction ; aussi bien les paramètres requis qu'optionnels.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de paramètres.

Voir aussi



ReflectionFunctionAbstract::getNumberOfRequiredParameters

(PHP 5 >= 5.0.3)

ReflectionFunctionAbstract::getNumberOfRequiredParametersRécupère le nombre de paramètres requis

Description

public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void )

Récupère le nombre de paramètres requis par une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de paramètres requis.

Voir aussi



ReflectionFunctionAbstract::getParameters

(PHP 5)

ReflectionFunctionAbstract::getParametersRécupère les paramètres

Description

public array ReflectionFunctionAbstract::getParameters ( void )

Récupère les paramètres, sous la forme d'un tableau d'objets ReflectionParameter.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les paramètres, sous la forme d'objets ReflectionParameter.

Voir aussi



ReflectionFunctionAbstract::getShortName

(PHP 5 >= 5.3.0)

ReflectionFunctionAbstract::getShortNameRécupère le nom court d'une fonction

Description

public string ReflectionFunctionAbstract::getShortName ( void )

Récupère le nom court d'une fonction (sans la partie concernant l'espace de noms).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom court de la fonction.

Voir aussi



ReflectionFunctionAbstract::getStartLine

(PHP 5)

ReflectionFunctionAbstract::getStartLineRécupère le numéro de ligne de départ

Description

public int ReflectionFunctionAbstract::getStartLine ( void )

Récupère le numéro de ligne de départ de la fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de la ligne de départ.

Voir aussi



ReflectionFunctionAbstract::getStaticVariables

(PHP 5)

ReflectionFunctionAbstract::getStaticVariablesRécupère les variables statiques

Description

public array ReflectionFunctionAbstract::getStaticVariables ( void )

Récupère les variables statiques.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de variables statiques.

Voir aussi



ReflectionFunctionAbstract::inNamespace

(PHP 5 >= 5.3.0)

ReflectionFunctionAbstract::inNamespaceVérifie si une fonction est dans un espace de noms

Description

public bool ReflectionFunctionAbstract::inNamespace ( void )

Vérifie si une fonction est dans un espace de noms.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est dans l'espace de noms, FALSE sinon.

Voir aussi



ReflectionFunctionAbstract::isClosure

(PHP 5 >= 5.3.0)

ReflectionFunctionAbstract::isClosureVérifie si c'est une fermeture

Description

public bool ReflectionFunctionAbstract::isClosure ( void )

Vérifie si c'est une fermeture.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si c'est une fermeture, FALSE sinon.

Voir aussi

  • ReflectionFunctionAbstract::()



ReflectionFunctionAbstract::isDeprecated

(PHP 5)

ReflectionFunctionAbstract::isDeprecatedVérifie si la fonction est obsolète

Description

public bool ReflectionFunctionAbstract::isDeprecated ( void )

Vérifie si la fonction est obsolète.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est obsolète, FALSE sinon.

Voir aussi



ReflectionFunctionAbstract::isInternal

(PHP 5)

ReflectionFunctionAbstract::isInternalVérifie si la fonction est une fonction interne

Description

public bool ReflectionFunctionAbstract::isInternal ( void )

Vérifie si la fonction est une fonction interne, au lieu d'une fonction définie dans l'espace utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est une fonction interne, FALSE sinon.

Voir aussi



ReflectionFunctionAbstract::isUserDefined

(PHP 5)

ReflectionFunctionAbstract::isUserDefinedVérifie si la fonction est définie dans l'espace utilisateur

Description

public bool ReflectionFunctionAbstract::isUserDefined ( void )

Vérifie si la fonction est définie dans l'espace utilisateur, au lieu d'être une fonction interne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction a été définie dans l'espace utilisateur, FALSE sinon.

Voir aussi



ReflectionFunctionAbstract::returnsReference

(PHP 5)

ReflectionFunctionAbstract::returnsReferenceVérifie si la fonction retourne une référence

Description

public bool ReflectionFunctionAbstract::returnsReference ( void )

Vérifie si la fonction retourne une référence.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction retourne une référence, FALSE sinon.

Voir aussi



ReflectionFunctionAbstract::__toString

(PHP 5)

ReflectionFunctionAbstract::__toStringRécupère une représentation textuelle

Description

abstract public void ReflectionFunctionAbstract::__toString ( void )

Récupère une représentation textuelle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères.

Voir aussi


Sommaire



La classe ReflectionMethod

Introduction

La classe ReflectionMethod rapporte des informations sur une méthode.

Synopsis de la classe

ReflectionMethod extends ReflectionFunctionAbstract implements Reflector {
/* Constantes */
const integer ReflectionMethod::IS_STATIC = 1 ;
const integer ReflectionMethod::IS_PUBLIC = 256 ;
const integer ReflectionMethod::IS_PROTECTED = 512 ;
const integer ReflectionMethod::IS_PRIVATE = 1024 ;
const integer ReflectionMethod::IS_ABSTRACT = 2 ;
const integer ReflectionMethod::IS_FINAL = 4 ;
/* Propriétés */
public $name ;
public $class ;
/* Méthodes */
__construct ( mixed $class , string $name )
public static string export ( string $class , string $name [, bool $return = false ] )
public ReflectionClass getDeclaringClass ( void )
public int getModifiers ( void )
public ReflectionMethod getPrototype ( void )
public mixed invoke ( object $object [, mixed $parameter [, mixed $... ]] )
public mixed invokeArgs ( object $object , array $args )
public bool isAbstract ( void )
public bool isConstructor ( void )
public bool isDestructor ( void )
public bool isFinal ( void )
public bool isPrivate ( void )
public bool isProtected ( void )
public bool isPublic ( void )
public bool isStatic ( void )
public void setAccessible ( bool $accessible )
public string __toString ( void )
/* Méthodes héritées */
final private void ReflectionFunctionAbstract::__clone ( void )
public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )
public string ReflectionFunctionAbstract::getName ( void )
abstract public void ReflectionFunctionAbstract::__toString ( void )
}

Propriétés

name

Nom de la méthode

class

Nom de la classe

Constantes pré-définies

Type de nœuds ReflectionMethod

ReflectionMethod::IS_STATIC

Indique que la méthode est statique

ReflectionMethod::IS_PUBLIC

Indique que la méthode est publique

ReflectionMethod::IS_PROTECTED

Indique que la méthode est protégée

ReflectionMethod::IS_PRIVATE

Indique que la méthode est privée

ReflectionMethod::IS_ABSTRACT

Indique que la méthode est abstraite

ReflectionMethod::IS_FINAL

Indique que la méthode est finale


ReflectionMethod::__construct

(PHP 5)

ReflectionMethod::__constructConstruit un nouvel objet ReflectionMethod

Description

ReflectionMethod::__construct ( mixed $class , string $name )

Construit un nouvel objet ReflectionMethod.

Liste de paramètres

class

Nom de classe -ou instance de celle-ci- qui contient la méthode.

name

Nom de la méthode.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Une ReflectionException est émise si la méthode considérée n'existe pas.

Exemples

Exemple #1 Exemple avec ReflectionMethod::__construct()

<?php
class Counter
{
    private static 
$c 0;

    
/**
     * Compteur qui s'incrémente
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    
final public static function increment()
    {
        return ++
self::$c;
    }
}

// Crée une nouvelle instance de la classe ReflectionMethod
$method = new ReflectionMethod('Counter''increment');

// Affiche des informations
printf(
    
"===> The %s%s%s%s%s%s%s method '%s' (which is %s)\n" .
    
"     declared in %s\n" .
    
"     lines %d to %d\n" .
    
"     having the modifiers %d[%s]\n",
        
$method->isInternal() ? 'internal' 'user-defined',
        
$method->isAbstract() ? ' abstract' '',
        
$method->isFinal() ? ' final' '',
        
$method->isPublic() ? ' public' '',
        
$method->isPrivate() ? ' private' '',
        
$method->isProtected() ? ' protected' '',
        
$method->isStatic() ? ' static' '',
        
$method->getName(),
        
$method->isConstructor() ? 'the constructor' 'a regular method',
        
$method->getFileName(),
        
$method->getStartLine(),
        
$method->getEndline(),
        
$method->getModifiers(),
        
implode(' 'Reflection::getModifierNames($method->getModifiers()))
);

// Affiche le commentaire de la documentation
printf("---> Documentation:\n %s\n"var_export($method->getDocComment(), 1));

// Affiche les variables statiques, si elles existent
if ($statics$method->getStaticVariables()) {
    
printf("---> Static variables: %s\n"var_export($statics1));
}

// Invoque la méthode
printf("---> Invocation results in: ");
var_dump($method->invoke(NULL));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

===> The user-defined final public static method 'increment' (which is a regular method)
     declared in /Users/philip/cvs/phpdoc/test.php
     lines 14 to 17
     having the modifiers 261[final public static]
---> Documentation:
 '/**
     * Compteur qui s'incrémente
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */'
---> Invocation results in: int(1)

Voir aussi



ReflectionMethod::export

(PHP 5)

ReflectionMethod::exportExportation d'une méthode de reflection

Description

public static string ReflectionMethod::export ( string $class , string $name [, bool $return = false ] )

Exporte un objet ReflectionMethod.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

class

Le nom de la classe.

name

Le nom de la méthode.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi



ReflectionMethod::getDeclaringClass

(PHP 5)

ReflectionMethod::getDeclaringClassRécupère la déclaration de la classe de la méthode réléchie

Description

public ReflectionClass ReflectionMethod::getDeclaringClass ( void )

Récupère la déclaration de la classe de la méthode réléchie

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass concernant la classe appartenant à la méthode réfléchie.

Exemples

Exemple #1 Exemple pour ReflectionMethod::getDeclaringClass()

<?php
class HelloWorld {

    protected function 
sayHelloTo($name) {
        return 
'Hello ' $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
var_dump($reflectionMethod->getDeclaringClass());
?>

L'exemple ci-dessus va afficher :

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(10) "HelloWorld"
}

Voir aussi



ReflectionMethod::getModifiers

(PHP 5)

ReflectionMethod::getModifiersRécupère les modificateurs de la méthode

Description

public int ReflectionMethod::getModifiers ( void )

Récupère les modificateurs de la méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation numérique des modificateurs. Les modificateurs sont précisés plus bas. La signification de ces modificateurs est décrite dans les constantes prédéfinies.

Modificateurs ReflectionMethod
valeur constante
1 ReflectionMethod::IS_STATIC
2 ReflectionMethod::IS_ABSTRACT
4 ReflectionMethod::IS_FINAL
256 ReflectionMethod::IS_PUBLIC
512 ReflectionMethod::IS_PROTECTED
1024 ReflectionMethod::IS_PRIVATE

Exemples

Exemple #1 Exemple avec ReflectionMethod::getModifiers()

<?php
class Testing
{
    final public static function 
foo()
    {
        return;
    }
    public function 
bar()
    {
        return;
    }
}

$foo = new ReflectionMethod('Testing''foo');

echo 
"Modificateurs pour la méthode foo():\n";
echo 
$foo->getModifiers() . "\n";
echo 
implode(' 'Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing''bar');

echo 
"Modificateurs pour la méthode bar():\n";
echo 
$bar->getModifiers() . "\n";
echo 
implode(' 'Reflection::getModifierNames($bar->getModifiers()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Modificateurs pour la méthode foo():
261
final public static
Modificateurs pour la méthode bar():
65792

Voir aussi



ReflectionMethod::getPrototype

(PHP 5)

ReflectionMethod::getPrototypeRécupère le prototype de la méthode (s'il existe)

Description

public ReflectionMethod ReflectionMethod::getPrototype ( void )

Retourne le prototype de la méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionMethod instance de la méthode.

Erreurs / Exceptions

Une exception ReflectionException sera émise si la méthode ne possède pas de prototype.

Exemples

Exemple #1 Exemple avec ReflectionMethod::getPrototype()

<?php
class Hello {

    public function 
sayHelloTo($name) {
        return 
'Hello ' $name;
    }

}
class 
HelloWorld extends Hello {

    public function 
sayHelloTo($name) {
        return 
'Hello world: ' $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld''sayHelloTo');
var_dump($reflectionMethod->getPrototype());
?>

L'exemple ci-dessus va afficher :

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(10) "sayHelloTo"
  ["class"]=>
  string(5) "Hello"
}

Voir aussi



ReflectionMethod::invoke

(PHP 5)

ReflectionMethod::invokeInvoque

Description

public mixed ReflectionMethod::invoke ( object $object [, mixed $parameter [, mixed $... ]] )

Invoque une méthode reflétée.

Liste de paramètres

object

L'objet sur lequel invoquer la méthode. Dans le cas des méthodes statiques, vous pouvez passer null comme paramètre.

parameter

Paramètres à passer à la méthode. Une liste variable de paramètres à passer est utilisée.

Valeurs de retour

Retourne le résultat de la méthode.

Erreurs / Exceptions

Une ReflectionException si object n'est pas une instance de la classe possédant la méthode réfléchie.

Une ReflectionException si l'invocation de la méthode échoue.

Exemples

Exemple #1 Exemple avec ReflectionMethod::invoke()

<?php
class HelloWorld {

    public function 
sayHelloTo($name) {
        return 
'Hello ' $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld''sayHelloTo');
echo 
$reflectionMethod->invoke(new HelloWorld(), 'Mike');
?>

L'exemple ci-dessus va afficher :

Hello Mike

Voir aussi



ReflectionMethod::invokeArgs

(PHP 5 >= 5.1.0)

ReflectionMethod::invokeArgsInvoque les arguments

Description

public mixed ReflectionMethod::invokeArgs ( object $object , array $args )

Invoque les arguments.

Liste de paramètres

object

L'objet sur lequel invoquer la méthode. Si la méthode est statique, vous pouvez passer null pour ce paramètre.

args

Les paramètres à passer à la méthode, sous forme de tableau.

Valeurs de retour

Retourne le résultat de la méthode.

Erreurs / Exceptions

Une ReflectionException si object n'est pas une instance de la classe prévue pour cette méthode.

Une ReflectionException si l'invocation de la méthode échoue.

Exemples

Exemple #1 Exemple pour ReflectionMethod::invokeArgs()

<?php
class HelloWorld {

    public function 
sayHelloTo($name) {
        return 
'Hello ' $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld''sayHelloTo');
echo 
$reflectionMethod->invokeArgs(new HelloWorld(), array('Mike'));
?>

L'exemple ci-dessus va afficher :

Hello Mike

Voir aussi



ReflectionMethod::isAbstract

(PHP 5)

ReflectionMethod::isAbstractVérifie si la méthode est abstraite

Description

public bool ReflectionMethod::isAbstract ( void )

Vérifie si la méthode est abstraite.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est abstraite, FALSE sinon.

Voir aussi



ReflectionMethod::isConstructor

(PHP 5)

ReflectionMethod::isConstructorVérifie si la méthode est un constructeur

Description

public bool ReflectionMethod::isConstructor ( void )

Vérifie si la méthode est un constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est un constructeur; FALSE sinon.

Voir aussi



ReflectionMethod::isDestructor

(PHP 5)

ReflectionMethod::isDestructorVérifie si la méthode est un destructeur

Description

public bool ReflectionMethod::isDestructor ( void )

Vérifie si la méthode est un destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est un destructeur, FALSE sinon.

Voir aussi



ReflectionMethod::isFinal

(PHP 5)

ReflectionMethod::isFinalVérifie si la méthode est finale

Description

public bool ReflectionMethod::isFinal ( void )

Vérifie si la méthode est finale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est finale, FALSE sinon.

Voir aussi



ReflectionMethod::isPrivate

(PHP 5)

ReflectionMethod::isPrivateVérifie si la méthode est privée

Description

public bool ReflectionMethod::isPrivate ( void )

Vérifie si la méthode est privée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est privée, FALSE sinon.

Voir aussi



ReflectionMethod::isProtected

(PHP 5)

ReflectionMethod::isProtectedVérifie si la méthode est protégée

Description

public bool ReflectionMethod::isProtected ( void )

Vérifie si la méthode est protégée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est protégée, FALSE sinon.

Voir aussi



ReflectionMethod::isPublic

(PHP 5)

ReflectionMethod::isPublicVérifie si la méthode est publique

Description

public bool ReflectionMethod::isPublic ( void )

Vérifie si la méthode est publique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est statique, FALSE sinon.

Voir aussi



ReflectionMethod::isStatic

(PHP 5)

ReflectionMethod::isStaticVérifie si la méthode est statique

Description

public bool ReflectionMethod::isStatic ( void )

Vérifie si la méthode est statique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est statique, FALSE sinon.

Voir aussi



ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2)

ReflectionMethod::setAccessibleDéfinit l'accessibilité de la méthode

Description

public void ReflectionMethod::setAccessible ( bool $accessible )

Définit l'accessibilité de la méthode. Par exemple, ceci permet d'invoquer des méthodes protégées et privées.

Liste de paramètres

accessible

TRUE pour permettre l'accessibilité, ou FALSE.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ReflectionMethod::__toString

(PHP 5)

ReflectionMethod::__toStringRetourne une représentation textuelle de la méthode

Description

public string ReflectionMethod::__toString ( void )

Récupère une représentation textuelle de la méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de cet objet ReflectionMethod.

Exemples

Exemple #1 ReflectionMethod::__toString() example

<?php
class HelloWorld {

    public function 
sayHelloTo($name) {
        return 
'Hello ' $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
echo 
$reflectionMethod;
?>

L'exemple ci-dessus va afficher :

Method [ <user> public method sayHelloTo ] {
  @@ /var/www/examples/reflection.php 16 - 18

  - Parameters [1] {
    Parameter #0 [ <required> $name ]
  }
}

Voir aussi


Sommaire



La classe ReflectionObject

Introduction

La classe ReflectionObject rapporte des informations sur un objet.

Synopsis de la classe

ReflectionObject extends ReflectionClass implements Reflector {
/* Constantes */
const integer ReflectionObject::IS_FINAL = 64 ;
/* Propriétés */
/* Méthodes */
__construct ( object $argument )
public static string export ( string $argument [, bool $return ] )
/* Méthodes héritées */
final private void ReflectionClass::__clone ( void )
public static string ReflectionClass::export ( mixed $argument [, bool $return = false ] )
public mixed ReflectionClass::getConstant ( string $name )
public array ReflectionClass::getConstants ( void )
public object ReflectionClass::getConstructor ( void )
public string ReflectionClass::getDocComment ( void )
public int ReflectionClass::getEndLine ( void )
public ReflectionExtension ReflectionClass::getExtension ( void )
public string ReflectionClass::getExtensionName ( void )
public string ReflectionClass::getFileName ( void )
public array ReflectionClass::getInterfaceNames ( void )
public array ReflectionClass::getInterfaces ( void )
public object ReflectionClass::getMethod ( string $name )
public array ReflectionClass::getMethods ([ string $filter ] )
public int ReflectionClass::getModifiers ( void )
public string ReflectionClass::getName ( void )
public string ReflectionClass::getNamespaceName ( void )
public object ReflectionClass::getParentClass ( void )
public array ReflectionClass::getProperties ([ int $filter ] )
public ReflectionProperty ReflectionClass::getProperty ( string $name )
public string ReflectionClass::getShortName ( void )
public int ReflectionClass::getStartLine ( void )
public mixed ReflectionClass::getStaticPropertyValue ( string $name [, string $default ] )
public bool ReflectionClass::hasConstant ( string $name )
public bool ReflectionClass::hasMethod ( string $name )
public bool ReflectionClass::hasProperty ( string $name )
public bool ReflectionClass::implementsInterface ( string $interface )
public bool ReflectionClass::inNamespace ( void )
public bool ReflectionClass::isAbstract ( void )
public bool ReflectionClass::isFinal ( void )
public bool ReflectionClass::isInstance ( object $object )
public bool ReflectionClass::isInstantiable ( void )
public bool ReflectionClass::isInterface ( void )
public bool ReflectionClass::isInternal ( void )
public bool ReflectionClass::isIterateable ( void )
public bool ReflectionClass::isSubclassOf ( string $class )
public bool ReflectionClass::isUserDefined ( void )
public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] )
public object ReflectionClass::newInstanceArgs ([ array $args ] )
public void ReflectionClass::setStaticPropertyValue ( string $name , string $value )
public string ReflectionClass::__toString ( void )
}

Propriétés

name

Constantes pré-définies

Type de nœuds ReflectionObject

ReflectionObject::IS_IMPLICIT_ABSTRACT

ReflectionObject::IS_EXPLICIT_ABSTRACT

ReflectionObject::IS_FINAL


ReflectionObject::__construct

(PHP 5)

ReflectionObject::__constructConstruit un nouvel objet ReflectionObject

Description

ReflectionObject::__construct ( object $argument )

Construit un nouvel objet ReflectionObject.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

Une instance de l'objet.

Valeurs de retour

Aucune valeur n'est retournée.



ReflectionObject::export

(PHP 5)

ReflectionObject::exportExportation

Description

public static string ReflectionObject::export ( string $argument [, bool $return ] )

Exporte une réflexion.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi


Sommaire



La classe ReflectionParameter

Introduction

La classe ReflectionParameter récupère les informations sur les paramètres des fonctions ou des méthodes.

Pour introspecter les paramètres des fonctions, tout d'abord, une instance de la classe ReflectionFunction ou de la classe ReflectionMethod est créée, puis, la méthode ReflectionFunctionAbstract::getParameters() est utilisé pour créer un tableau des paramètres.

Synopsis de la classe

ReflectionParameter implements Reflector {
/* Propriétés */
public $name ;
/* Méthodes */
public bool allowsNull ( void )
final private void __clone ( void )
__construct ( string $function , string $parameter )
public static string export ( string $function , string $parameter [, bool $return ] )
public ReflectionClass getClass ( void )
public ReflectionClass getDeclaringClass ( void )
public ReflectionFunction getDeclaringFunction ( void )
public mixed getDefaultValue ( void )
public string getName ( void )
public int getPosition ( void )
public bool isArray ( void )
public bool isDefaultValueAvailable ( void )
public bool isOptional ( void )
public bool isPassedByReference ( void )
public string __toString ( void )
}

Propriétés

name

Prop description


ReflectionParameter::allowsNull

(PHP 5)

ReflectionParameter::allowsNullVérifie si la valeur NULL est autorisée comme valeur du paramètre

Description

public bool ReflectionParameter::allowsNull ( void )

Vérifie si la valeur NULL est autorisée comme valeur du paramètre.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la valeur NULL est autorisée comme valeur du paramètre, FALSE sinon.

Voir aussi



ReflectionParameter::__clone

(PHP 5)

ReflectionParameter::__cloneClonage

Description

final private void ReflectionParameter::__clone ( void )

Clonage.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi



ReflectionParameter::__construct

(PHP 5)

ReflectionParameter::__constructConstructeur

Description

ReflectionParameter::__construct ( string $function , string $parameter )

Construit une nouvelle classe ReflectionParameter.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

function

La fonction depuis laquelle les paramètres sont reflétés.

parameter

Le paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ReflectionParameter

<?php
function foo($a$b$c) { }
function 
bar(Exception $a, &$b$c) { }
function 
baz(ReflectionFunction $a$b 1$c null) { }
function 
abc() { }

$reflect = new ReflectionFunction('foo');

echo 
$reflect;

foreach (
$reflect->getParameters() as $i => $param) {
    
printf(
        
"-- Parameter #%d: %s {\n".
        
"   Class: %s\n".
        
"   Allows NULL: %s\n".
        
"   Passed to by reference: %s\n".
        
"   Is optional?: %s\n".
        
"}\n",
        
$i// $param->getPosition() can be used from PHP 5.2.3
        
$param->getName(),
        
var_export($param->getClass(), 1),
        
var_export($param->allowsNull(), 1),
        
var_export($param->isPassedByReference(), 1),
        
$param->isOptional() ? 'yes' 'no'
    
);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Function [ <user> function foo ] {
  @@ /Users/philip/cvs/phpdoc/a 2 - 2

  - Parameters [3] {
    Parameter #0 [ <required> $a ]
    Parameter #1 [ <required> $b ]
    Parameter #2 [ <required> $c ]
  }
}
-- Parameter #0: a {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #1: b {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #2: c {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}

Voir aussi



ReflectionParameter::export

(PHP 5)

ReflectionParameter::exportExportation

Description

public static string ReflectionParameter::export ( string $function , string $parameter [, bool $return ] )

Exportation.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

function

Le nom de la fonction.

parameter

Le nom du paramètre.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

La réflexion exportée.

Voir aussi

  • ReflectionParameter::toString()



ReflectionParameter::getClass

(PHP 5)

ReflectionParameter::getClassRécupère la classe

Description

public ReflectionClass ReflectionParameter::getClass ( void )

Récupère la classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Voir aussi



ReflectionParameter::getDeclaringClass

(PHP 5)

ReflectionParameter::getDeclaringClassRécupère la classe déclarante

Description

public ReflectionClass ReflectionParameter::getDeclaringClass ( void )

Récupère la classe déclarante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Voir aussi



ReflectionParameter::getDeclaringFunction

(PHP 5 >= 5.2.3)

ReflectionParameter::getDeclaringFunctionRécupère la fonction déclarante

Description

public ReflectionFunction ReflectionParameter::getDeclaringFunction ( void )

Récupère la fonction déclarante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionFunction.

Voir aussi



ReflectionParameter::getDefaultValue

(PHP 5 >= 5.0.3)

ReflectionParameter::getDefaultValueRécupère la valeur par défaut du paramètre

Description

public mixed ReflectionParameter::getDefaultValue ( void )

Récupère la valeur par défaut du paramètre d'une fonction ou d'une méthode définie dans l'espace utilisateur. Si le paramètre n'est pas optionnel, une exception ReflectionException sera émise.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur par défaut du paramètre.

Exemples

Exemple #1 Exemple d'utilisation

<?php
function foo($test$bar 'baz')
{
    echo 
$test $bar;
}

$function = new ReflectionFunction('foo');

foreach (
$function->getParameters() as $param) {
    echo 
'Nom : ' $param->getName() . PHP_EOL;
    if (
$param->isOptional()) {
        echo 
'Valeur par défaut : ' $param->getDefaultValue() . PHP_EOL;
    }
    echo 
PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Nom : test

Nom : bar
Valeur par défaut : baz

Notes

Note:

À cause du schéma d'implémentation, il n'est pas possible de récupérer la valeur par défaut d'une fonction ou d'une méthode interne. Le fait de tenter de récupérer une telle valeur émettra une exception ReflectionException.

Voir aussi



ReflectionParameter::getName

(PHP 5)

ReflectionParameter::getNameRécupère le nom du paramètre

Description

public string ReflectionParameter::getName ( void )

Récupère le nom du paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du paramètre reflété.

Voir aussi

  • ReflectionParameter::getValue()



ReflectionParameter::getPosition

(PHP 5 >= 5.2.3)

ReflectionParameter::getPositionRécupère la position d'un paramètre

Description

public int ReflectionParameter::getPosition ( void )

Récupère la position d'un paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La position du paramètre, depuis la gauche vers la droite, et en commençant à la position #0.

Voir aussi



ReflectionParameter::isArray

(PHP 5 >= 5.1.0)

ReflectionParameter::isArrayVérifie si le paramètre attend un tableau

Description

public bool ReflectionParameter::isArray ( void )

Vérifie si le paramètre attend un tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le paramètre attend un tableau, FALSE sinon.

Voir aussi



ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3)

ReflectionParameter::isDefaultValueAvailableVérifie si une valeur par défaut est disponible pour le paramètre

Description

public bool ReflectionParameter::isDefaultValueAvailable ( void )

Vérifie si une valeur par défaut est disponible pour le paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si une valeur par défaut est disponible pour le paramètre, FALSE sinon.

Voir aussi



ReflectionParameter::isOptional

(PHP 5 >= 5.0.3)

ReflectionParameter::isOptionalVérifie si le paramètre est optionnel

Description

public bool ReflectionParameter::isOptional ( void )

Vérifie si le paramètre est optionnel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le paramètre est optionnel, FALSE sinon.

Voir aussi



ReflectionParameter::isPassedByReference

(PHP 5)

ReflectionParameter::isPassedByReferenceVérifie si le paramètre est passé par référence

Description

public bool ReflectionParameter::isPassedByReference ( void )

Vérifie si le paramètre est passé par référence.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le paramètre est passé par référence, FALSE sinon.

Voir aussi



ReflectionParameter::__toString

(PHP 5)

ReflectionParameter::__toStringRécupère une représentation textuelle

Description

public string ReflectionParameter::__toString ( void )

Récupère une représentation textuelle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi


Sommaire



La classe ReflectionProperty

Introduction

La classe ReflectionProperty rapporte des informations sur les propriétés d'une classe.

Synopsis de la classe

ReflectionProperty implements Reflector {
/* Constantes */
const integer ReflectionProperty::IS_STATIC = 1 ;
const integer ReflectionProperty::IS_PUBLIC = 256 ;
const integer ReflectionProperty::IS_PROTECTED = 512 ;
const integer ReflectionProperty::IS_PRIVATE = 1024 ;
/* Propriétés */
public $name ;
public $class ;
/* Méthodes */
final private void __clone ( void )
__construct ( mixed $class , string $name )
public static string export ( mixed $class , string $name [, bool $return ] )
public ReflectionClass getDeclaringClass ( void )
public string getDocComment ( void )
public int getModifiers ( void )
public string getName ( void )
public mixed getValue ( object $object )
public bool isDefault ( void )
public bool isPrivate ( void )
public bool isProtected ( void )
public bool isPublic ( void )
public bool isStatic ( void )
public void setAccessible ( bool $accessible )
public void setValue ( object $object , mixed $value )
public string __toString ( void )
}

Propriétés

name

class

Constantes pré-définies

Type de nœuds ReflectionProperty

ReflectionProperty::IS_STATIC

ReflectionProperty::IS_PUBLIC

ReflectionProperty::IS_PROTECTED

ReflectionProperty::IS_PRIVATE


ReflectionProperty::__clone

(PHP 5)

ReflectionProperty::__cloneClonage

Description

final private void ReflectionProperty::__clone ( void )

Clonage.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour



ReflectionProperty::__construct

(PHP 5)

ReflectionProperty::__constructConstruit un nouvel objet ReflectionProperty

Description

ReflectionProperty::__construct ( mixed $class , string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

class

Le nom de la classe, qui contient la propriété.

name

Le nom de la propriété à refléter.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Le fait de tenter de récupérer ou définir la valeur d'une propriété privée ou protégée d'une classe émettra une exception.

Exemples

Exemple #1 Exemple avec ReflectionProperty::__construct()

<?php
class String
{
    public 
$length  5;
}

// Création d'une instance de la classe ReflectionProperty
$prop = new ReflectionProperty('String''length');

// Affichage de quelques informations
printf(
    
"===> The%s%s%s%s property '%s' (which was %s)\n" .
    
"     having the modifiers %s\n",
        
$prop->isPublic() ? ' public' '',
        
$prop->isPrivate() ? ' private' '',
        
$prop->isProtected() ? ' protected' '',
        
$prop->isStatic() ? ' static' '',
        
$prop->getName(),
        
$prop->isDefault() ? 'declared at compile-time' 'created at run-time',
        
var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Création d'une instance de chaîne
$obj= new String();

// Récupère la valeur courante
printf("---> Value is: ");
var_dump($prop->getValue($obj));

// Modifie la valeur
$prop->setValue($obj10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));

// Affiche l'objet
var_dump($obj);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

===> The public property 'length' (which was declared at compile-time)
     having the modifiers array (
  0 => 'public',
)
---> Value is: int(5)
---> Setting value to 10, new value is: int(10)
object(String)#2 (1) {
  ["length"]=>
  int(10)
}

Exemple #2 Récupération d'une valeur depuis une propriété privée ou protégée en utilisant la classe ReflectionProperty

<?php

class Foo {
    public 
$x 1;
    protected 
$y 2;
    private 
$z 3;
}

$obj = new Foo;

$prop = new ReflectionProperty('Foo''y');
$prop->setAccessible(true); /* Depuis PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo''z');
$prop->setAccessible(true); /* Depuis PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(2)
int(3)

Voir aussi



ReflectionProperty::export

(PHP 5)

ReflectionProperty::exportExporte

Description

public static string ReflectionProperty::export ( mixed $class , string $name [, bool $return ] )

Exporte une réflexion.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

La réflection à exporter.

name

Le nom de la propriété.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Voir aussi

  • ReflectionProperty::toString()



ReflectionProperty::getDeclaringClass

(PHP 5)

ReflectionProperty::getDeclaringClassRécupère la classe déclarante

Description

public ReflectionClass ReflectionProperty::getDeclaringClass ( void )

Récupère la classe déclarante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Voir aussi



ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0)

ReflectionProperty::getDocCommentRécupère un commentaire

Description

public string ReflectionProperty::getDocComment ( void )

Récupère un commentaire.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire.

Voir aussi



ReflectionProperty::getModifiers

(PHP 5)

ReflectionProperty::getModifiersRécupère les modificateurs

Description

public int ReflectionProperty::getModifiers ( void )

Récupère les modificateurs.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation numérique des modificateurs.

Voir aussi



ReflectionProperty::getName

(PHP 5)

ReflectionProperty::getNameRécupère le nom de la proriété

Description

public string ReflectionProperty::getName ( void )

Récupère le nom de la proriété.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la propriété reflétée.

Voir aussi



ReflectionProperty::getValue

(PHP 5)

ReflectionProperty::getValueRécupère la valeur de la propriété

Description

public mixed ReflectionProperty::getValue ( object $object )

Récupère la valeur de la propriété.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

object

L'objet à refléter.

Valeurs de retour

La valeur courante de la propriété.

Voir aussi



ReflectionProperty::isDefault

(PHP 5)

ReflectionProperty::isDefaultVérifie si la propriété est celle par défaut

Description

public bool ReflectionProperty::isDefault ( void )

Vérifie si la propriété est celle par défaut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété a été déclarée lors de la compilation ou FALSE si elle a été déclarée au moment de l'exécution.

Voir aussi



ReflectionProperty::isPrivate

(PHP 5)

ReflectionProperty::isPrivateVérifie si la propriété est statique

Description

public bool ReflectionProperty::isPrivate ( void )

Vérifie si la propriété est privée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est privée, FALSE sinon.

Voir aussi



ReflectionProperty::isProtected

(PHP 5)

ReflectionProperty::isProtectedVérifie si la propriété est protégée

Description

public bool ReflectionProperty::isProtected ( void )

Vérifie si la propriété est protégée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est protégée, FALSE sinon.

Voir aussi



ReflectionProperty::isPublic

(PHP 5)

ReflectionProperty::isPublicVérifie si la propriété est publique

Description

public bool ReflectionProperty::isPublic ( void )

Vérifie si la propriété est publique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est publique, FALSE sinon.

Voir aussi



ReflectionProperty::isStatic

(PHP 5)

ReflectionProperty::isStaticVérifie si la propriété est statique

Description

public bool ReflectionProperty::isStatic ( void )

Vérifie si la propriété est statique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est statique, FALSE sinon.

Voir aussi



ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0)

ReflectionProperty::setAccessibleDéfinit l'accessibilité de la propriété

Description

public void ReflectionProperty::setAccessible ( bool $accessible )

Définit l'accessibilité de la propriété. Par exemple, ceci permet de rendre accessible une propriété protégée ou publique.

Liste de paramètres

accessible

TRUE pour permettre l'accès, ou FALSE.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ReflectionProperty::setValue

(PHP 5)

ReflectionProperty::setValueDéfinit la valeur de la propriété

Description

public void ReflectionProperty::setValue ( object $object , mixed $value )

Définit (modifie) la valeur de la propriété.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

object

Le nom de l'objet.

value

La nouvelle valeur.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



ReflectionProperty::__toString

(PHP 5)

ReflectionProperty::__toStringRécupère une représentation textuelle

Description

public string ReflectionProperty::__toString ( void )

Récupère une représentation textuelle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi


Sommaire



L'interface Reflector

Introduction

Reflector est une interface implémenté par toutes les classes exportables Reflection.

Synopsis de la classe

Reflector {
/* Méthodes */
abstract public static string export ( void )
abstract public string __toString ( void )
}

Reflector::export

(PHP 5)

Reflector::exportExport

Description

abstract public static string Reflector::export ( void )

Export.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Reflection::__toString()



Reflector::__toString

(PHP 5)

Reflector::__toStringConversion en chaîne de caractères

Description

abstract public string Reflector::__toString ( void )

Conversion en chaîne de caractères.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Sommaire




Gestion des variables


Introduction

Pour plus de détails sur le comportement des variables, reportez-vous à la section Variables du chapitre Référence du langage.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les variables
Nom Défaut Modifiable Historique
unserialize_callback_func NULL PHP_INI_ALL Disponible depuis PHP 4.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

unserialize_callback_func string

La fonction de rappel spécifié est appelée lorsque la fonction unserialize() tente d'utiliser une classe non définie. Une alerte apparaît si la fonction de rappel n'est pas définie, ou si elle échoue lors de la définition de la classe manquante.

Voir aussi unserialize() et l'auto-chargement de classes.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions de gestion des variables


debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5)

debug_zval_dumpExtrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage

Description

void debug_zval_dump ( mixed $variable )

Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage.

Liste de paramètres

variable

La variable à évaluer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec debug_zval_dump()

<?php
$var1 
'Bonjour le monde !';
$var2 '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

L'exemple ci-dessus va afficher :

&string(18) "Bonjour le monde !" refcount(3)

Note: Faites attention avec refcount

La valeur refcount retournée par cette fonction n'est pas significative dans certaines circonstances. Par exemple, un développeur peut s'attendre avec l'exemple ci-dessus d'avoir un refcount de 2. La troisième référence est créée lors de l'appel à la fonction debug_zval_dump().

Ce comportement est encore plus fin lorsqu'une variable n'est pas passée par référence à la fonction debug_zval_dump(). Pour illustrer ceci, voici une version modifiée de l'exemple ci-dessus :

<?php
$var1 
'Bonjour le monde !';
$var2 '';

$var2 =& $var1;

debug_zval_dump($var1); // non passée par référence, cette fois-ci
?>

L'exemple ci-dessus va afficher :

string(18) "Bonjour le monde !" refcount(1)

Pourquoi refcount(1) ? Parce qu'une copie de $var1 a été faite, lors de l'appel de la fonction.

Cette fonction devient encore plus confuse lorsqu'une variable avec un refcount de 1 est passée (par copie/valeur) :

<?php
$var1 
'Bonjour le monde !';

debug_zval_dump($var1);
?>

L'exemple ci-dessus va afficher :

string(18) "Bonjour le monde !" refcount(2)

Un refcount de 2, ici, est vraiment inattendu. Tout spécialement si on considère les exemples ci-dessus. Donc, que se passe-t-il ?

Lorsqu'une variable a une seule référence (faire $var1 avant qu'elle ne soit utilisée en tant qu'argument de la fonction debug_zval_dump()), le moteur PHP optimise la façon dont elle est passée à la fonction. En interne, PHP traite $var1 comme une référence (et donc, le refcount est incrémenté), et avec le cas où le passage par référence intervient, une copie est alors faite, mais uniquement au moment de l'écriture. Ceci est connu comme "la copie à l'écriture".

Donc, si debug_zval_dump() intervient pour écrire son unique paramètre (et il ne le fait pas), alors une copie est faite. Jusque-là, le paramètre demeure une référence, faisant que le refcount est incrémenté à 2 pour l'appel à la fonction.

Voir aussi



doubleval

(PHP 4, PHP 5)

doublevalAlias de floatval()

Description

Cette fonction est un alias de : floatval().

Historique

Version Description
4.2.0 doubleval() est devenue un alias de floatval(). Avant ce temps, seulement doubleval() existait.



empty

(PHP 4, PHP 5)

emptyDétermine si une variable est vide

Description

bool empty ( mixed $var )

Détermine si une variable est considérée comme vide.

Liste de paramètres

var

Variable à vérifier.

Note:

empty() ne vérifie que les variables, toute autre chose retournera une erreur d'analyse. En d'autres termes, ce qui suit ne fonctionne pas : empty(trim($name)).

empty() est l'opposé de (boolean) var, excepté le fait qu'aucune alerte n'est générée lorsqu'une variable n'est pas définie.

Valeurs de retour

Retourne FALSE si var a une valeur non-vide et différente de zéro.

Ce qui suit est considéré comme étant vide :

  • "" (une chaîne vide)
  • 0 (0 en tant qu'entier)
  • 0.0 (0 en tant que nombre à virgule flottante)
  • "0" (0 en tant que chaîne de caractères)
  • NULL
  • FALSE
  • array() (un tableau vide)
  • var $var; (une variable déclarée, mais sans valeur dans une classe)

Historique

Version Description
PHP 5

Depuis PHP 5, les objets n'ayant pas de propriété ne sont plus considérés comme vide.

Exemples

Exemple #1 Une comparaison simple empty() / isset().

<?php
$var 
0;
                   
// Evalué à vrai car $var est vide
if (empty($var)) {
  echo 
'$var vaut soit 0, vide, ou pas définie du tout';
}
                   
// Evalué à vrai car $var est défini
if (isset($var)) {
  echo 
'$var est définie même si elle est vide';
}
?>

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Lors de l'utilisation de cette fonction sur des propriétés d'objet inaccessibles, la méthode magique __isset sera appelée, si elle existe.

Voir aussi



floatval

(PHP 4 >= 4.2.0, PHP 5)

floatvalConvertit une chaîne en nombre à virgule flottante

Description

float floatval ( mixed $var )

floatval() retourne la valeur de type float (nombre à virgule flottante), extraite à partir du paramètre var.

Liste de paramètres

var

Peut être de n'importe quel type scalaire. floatval() ne doit pas être utilisé sur les objets ; si tel est le cas, une alerte de niveau E_NOTICE sera émise et la fonction retournera 1.

Valeurs de retour

La valeur flottante de la variable donnée. Un tableau vide retourne 0, alors qu'un tableau non-vide retourne 1.

Exemples

Exemple #1 Exemple avec floatval()

<?php
$var 
'122.34343The';
$float_value_of_var floatval($var);
echo 
$float_value_of_var// 122.34343
?>

Voir aussi

  • intval() - Retourne la valeur numérique entière équivalente d'une variable
  • strval() - Récupère la valeur d'une variable, au format chaîne
  • settype() - Affecte un type à une variable
  • Transtypage



get_defined_vars

(PHP 4 >= 4.0.4, PHP 5)

get_defined_vars Liste toutes les variables définies

Description

array get_defined_vars ( void )

get_defined_vars() retourne un tableau multidimensionnel contenant la liste de toutes les variables définies, qu'elles soient des variables d'environnement, de serveur ou définies par l'utilisateur dans la portée d'appel de la fonction get_defined_vars().

Valeurs de retour

Un tableau multidimensionnel contenant toutes les variables.

Exemples

Exemple #1 Exemple avec get_defined_vars()

<?php
$b 
= array(112358);

$arr get_defined_vars();

// Affiche $b
print_r($arr["b"]);

/* Affiche le chemin vers l'interpréteur PHP (Si utilisé en tant que CGI)
 * e.g. /usr/local/bin/php */
echo $arr["_"];

// Affiche les paramètres de la ligne de commande s'il y en a
print_r($arr["argv"]);

// Affiche toutes les variables serveur
print_r($arr["_SERVER"]);

// Affiche toutes les clés disponibles du tableau de variables
print_r(array_keys(get_defined_vars()));
?>

Historique

Version Description
5.0.0 La variable $GLOBALS est incluse dans le tableau retourné.

Voir aussi



get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_typeRetourne le type de ressource

Description

string get_resource_type ( resource $handle )

Cette fonction retourne le type de la ressource donnée.

Liste de paramètres

handle

Le gestionnaire de ressources à évaluer.

Valeurs de retour

Si le paramètre handle est une ressource, cette fonction retournera une chaîne de caractères représentant son type. Si le type n'est pas identifié par cette fonction, la valeur de retour sera une chaîne de caractères Unknown.

Cette fonction retournera FALSE et générera une erreur si handle n'est pas une ressource.

Exemples

Exemple #1 Exemple avec get_resource_type()

<?php
// affiche : mysql link (lien mysql)
$c mysql_connect();
echo 
get_resource_type($c) . "\n";

// affiche : file (fichier)
$fp fopen("foo""w");
echo 
get_resource_type($fp) . "\n"

// affiche : domxml document
$doc new_xmldoc("1.0");
echo 
get_resource_type($doc->doc)."\n"
?>



gettype

(PHP 4, PHP 5)

gettypeRetourne le type de la variable

Description

string gettype ( mixed $var )

Retourne le type de la variable var.

Avertissement

N'utilisez jamais gettype() pour vérifier un type, car la chaîne retournée est sujette à modification sans préavis dans une version ultérieure. De plus, c'est bien plus long comme cela, car cela implique une comparaison de chaîne.

À la place, utilisez les fonctions is_*.

Liste de paramètres

var

La variable à analyser.

Valeurs de retour

Les chaînes de caractères que peut retourner la fonction sont les suivantes :

Exemples

Exemple #1 Exemple avec gettype()

<?php

$data 
= array(11.NULL, new stdClass'foo');

foreach (
$data as $value) {
    echo 
gettype($value), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

integer
double
NULL
object
string

Voir aussi

  • settype() - Affecte un type à une variable
  • get_class() - Retourne la classe d'un objet
  • is_array() - Détermine si une variable est un tableau
  • is_bool() - Détermine si une variable est un booléen
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_null() - Indique si une variable vaut NULL
  • is_numeric() - Détermine si une variable est un type numérique
  • is_object() - Détermine si une variable est de type objet
  • is_resource() - Détermine si une variable est une ressource
  • is_scalar() - Indique si une variable est un scalaire
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • function_exists() - Indique si une fonction est définie
  • method_exists() - Vérifie que la méthode existe pour une classe



import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variablesImporte les variables de GET/POST/Cookie dans l'environnement global

Description

bool import_request_variables ( string $types [, string $prefix ] )

Importe les variables GET/POST/Cookie dans l'environnement global. C'est pratique si vous avez désactivé register_globals , mais que vous voulez enregistrer des variables dans l'environnement global.

Si vous souhaitez importer d'autres variables dans l'environnement global, comme $_SERVER, utilisez l'utilisation de la fonction extract().

Liste de paramètres

types

En utilisant le paramètre types, vous pouvez spécifier les variables que vous voulez importer. Vous pouvez utiliser 'G', 'P' et 'C' pour désigner respectivement GET, POST et Cookie. Ces caractères ne sont pas sensibles à la casse, et vous pouvez les combiner entre eux. POST inclut les fichiers téléchargés.

Note:

Notez que l'ordre des lettres est important. En utilisant par exemple "GP", les variables POST écraseront les variables GET ayant le même nom. Toute lettre autre que G, P ou C, est ignorée.

prefix

Le paramètre prefix est utilisé comme un préfixe de nom de variable, qui sera ajouté au début de tous les noms de variables importées. Si vous avez par exemple une variable GET du nom de "userid", et utilisez le préfixe "pref_", la variable ainsi générée s'appellera $pref_userid.

Note:

Bien que le paramètre prefix soit optionnel, il sera généré une alerte E_NOTICE si vous ne spécifiez pas de préfixe, ou si vous utilisez une chaîne vide comme préfixe. C'est potentiellement un trou de sécurité. Les alertes de ce niveau ne sont pas affichées si vous utilisez le niveau d'erreur par défaut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec import_request_variables()

<?php
// Ce code va importer les variables GET et POST
// avec un préfixe "rvar_"
import_request_variables("gp""rvar_");

echo 
$rvar_foo;
?>

Voir aussi



intval

(PHP 4, PHP 5)

intval Retourne la valeur numérique entière équivalente d'une variable

Description

int intval ( mixed $var [, int $base = 10 ] )

intval() retourne la valeur numérique entière (entier) de la variable var, en convertissant la valeur dans la base spécifiée (par défaut en base 10). intval() ne doit pas être utilisée sur des objets ; si c'est le cas, une erreur de niveau E_NOTICE sera émise et la fonction retournera 1.

Liste de paramètres

var

La valeur scalaire à être convertie en entier

base

La base pour la conversion

Valeurs de retour

Une valeur de type entier de var en cas de succès ou 0 en cas d'échec. Les tableaux et les objets vides retournent 0, les tableaux et les objets non vides retournent 1.

La valeur maximale dépend du système. Les systèmes à 32 bits ont une valeur entière signée maximale de -2147483648 à 2147483647. Alors, par exemple, sur un système semblable, intval('1000000000000') retournera 2147483647. La valeur entière signée maximale pour un système à 64 bits est 9223372036854775807.

Les chaînes de caractères retournent la plupart du temps 0, cela dépend des caractères à l'extrême gauche de la chaîne. La règle courante du transtypage d'entier s'applique.

Exemples

Exemple #1 Exemples avec intval()

Les exemples suivant sont basés sur un système à 32 bits.

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(428);                   // 42
echo intval('42'8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo''bar'));     // 1
?>

Notes

Note:

Le paramètre base n'a aucun effet à moins que le paramètre var soit une chaîne de caractères.

Voir aussi



is_array

(PHP 4, PHP 5)

is_arrayDétermine si une variable est un tableau

Description

bool is_array ( mixed $var )

is_array() détermine si la variable donnée est un tableau.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un array, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_array()

<?php
$yes 
= array('ceci''est''un tableau');

echo 
is_array($yes) ? 'Tableau' 'ce n\'est pas un tableau';
echo 
"\n";

$no 'ceci est une chaîne';

echo 
is_array($no) ? 'Tableau' 'ce n\'est pas un tableau';
?>

L'exemple ci-dessus va afficher :

Tableau
ce n'est pas un tableau

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet



is_bool

(PHP 4, PHP 5)

is_bool Détermine si une variable est un booléen

Description

bool is_bool ( mixed $var )

is_bool() détermine si la variable donnée est un booléen.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un booléen, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_bool()

<?php
$a 
false;
$b 0;

// Si $a est un booléen, is_bool retournera true
if (is_bool($a) === true) {
    echo 
"Oui, c'est un booléen.";
}

// Si $b n'est pas un booléen, is_bool retournera false
if (is_bool($b) === false) {
    echo 
"Oui, c'est un booléen.";
}
?>

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau



is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callableDétermine si l'argument peut être appelé comme fonction

Description

bool is_callable ( callback $name [, bool $syntax_only = false [, string &$callable_name ]] )

Vérifie qu'une variable peut être appelée comme fonction. Cette fonction peut vérifier qu'une variable contient un nom de fonction valide, ou bien qu'elle contient un tableau, avec un objet et un nom de méthode.

Liste de paramètres

name

Peut être le nom d'une fonction stockée dans une variable de chaîne, ou un objet, et un nom de méthode pour cet objet, sous la forme :

array($unObjet, 'NomDeMethode' )

syntax_only

Si l'argument syntax_only vaut TRUE, la fonction ne va vérifier que si name peut être une fonction ou une méthode. Il va simplement rejeter les variables qui ne sont pas des chaînes, ou des tableaux qui n'ont pas la bonne structure pour être utilisés comme fonction de rappel. Les tableaux valides sont supposés n'avoir que deux entrées, le premier étant un objet ou une chaîne, et le second une chaîne.

callable_name

L'argument callable_name reçoit le nom à utiliser. Dans l'exemple ci-dessous, il vaut "someClass::someMethod". Notez que, bien que someClass::someMethod() puisse être appelée sous forme statique, ce n'est pas le cas.

Valeurs de retour

Retourne TRUE si name peut être appelé comme une fonction, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_callable()

<?php
//  Comment vérifier qu'une variable peut être appelée
//  comme fonction ?

//
//  Variable simple contenant une fonction
//

function someFunction()
{
}

$functionVariable 'someFunction';

var_dump(is_callable($functionVariablefalse$callable_name));  // bool(true)

echo $callable_name"\n";  // uneFonction

//
//  Tableau contenant une méthode
//

class someClass {

  function 
someMethod() 
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject'someMethod');

var_dump(is_callable($methodVariabletrue$callable_name));  //  bool(true)

echo $callable_name"\n";  //  someClass::someMethod

?>

Voir aussi



is_double

(PHP 4, PHP 5)

is_doubleAlias de is_float()

Description

Cette fonction est un alias de : is_float().



is_float

(PHP 4, PHP 5)

is_floatDétermine si une variable est de type nombre décimal

Description

bool is_float ( mixed $var )

Détermine si la variable donnée est de type nombre décimal.

Note:

Pour tester si une variable est un nombre ou une chaîne numérique (comme les entrées de formulaire, qui sont toujours des chaînes), vous devez utiliser la fonction is_numeric().

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un nombre décimal, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_float()

<?php
if (is_float(27.25)) {
    echo 
"is float\n";
} else {
    echo 
"is not float\n";
}
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Notation Scientifique
var_dump(is_float(true));
?>

L'exemple ci-dessus va afficher :

is float
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

Voir aussi

  • is_bool() - Détermine si une variable est un booléen
  • is_int() - Détermine si une variable est de type nombre entier
  • is_numeric() - Détermine si une variable est un type numérique
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_array() - Détermine si une variable est un tableau
  • is_object() - Détermine si une variable est de type objet



is_int

(PHP 4, PHP 5)

is_intDétermine si une variable est de type nombre entier

Description

bool is_int ( mixed $var )

Détermine si la variable donnée est de type nombre entier.

Note:

Pour tester si une variable est un nombre ou une chaîne numérique (comme les entrées de formulaire, qui sont toujours des chaînes), vous devez utiliser la fonction is_numeric().

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un entier, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_int()

<?php
if (is_int(23)) {
    echo 
"est un entier\n";
} else {
    echo 
"n'est pas un entier\n";
}
var_dump(is_int(23));
var_dump(is_int("23"));
var_dump(is_int(23.5));
var_dump(is_int(true));
?>

L'exemple ci-dessus va afficher :

est un entier
bool(true)
bool(false)
bool(false)
bool(false)

Voir aussi

  • is_bool() - Détermine si une variable est un booléen
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_numeric() - Détermine si une variable est un type numérique
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_array() - Détermine si une variable est un tableau
  • is_object() - Détermine si une variable est de type objet



is_integer

(PHP 4, PHP 5)

is_integerAlias de is_int()

Description

Cette fonction est un alias de : is_int().



is_long

(PHP 4, PHP 5)

is_longAlias de is_int()

Description

Cette fonction est un alias de : is_int().



is_null

(PHP 4 >= 4.0.4, PHP 5)

is_nullIndique si une variable vaut NULL

Description

bool is_null ( mixed $var )

Indique si la variable donnée vaut NULL.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est NULL, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_null()

<?php

error_reporting
(E_ALL);

$foo NULL;
var_dump(is_null($inexistent), is_null($foo));

?>
Notice: Undefined variable: inexistent in ...
bool(true)
bool(true)

Voir aussi

  • Le type NULL
  • isset() - Détermine si une variable est définie et est différente de NULL
  • is_bool() - Détermine si une variable est un booléen
  • is_numeric() - Détermine si une variable est un type numérique
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau



is_numeric

(PHP 4, PHP 5)

is_numeric Détermine si une variable est un type numérique

Description

bool is_numeric ( mixed $var )

Détermine si la variable donnée est de type numérique. Les chaînes numériques sont composées optionnellement de signes, de n'importe quel nombre de chiffres, optionnellement d'une partie décimale ainsi qu'une partie exponentielle. +0123.45e6 est une valeur numérique valide. La notation hexadécimale (0xFF) est autorisée également, mais uniquement sans un signe, sans décimale et sans partie exponentielle.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un nombre ou une chaîne numérique, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_numeric()

<?php
$tests 
= array(
        
"42"
        
1337
        
"1e4"
        
"not numeric"
        Array(), 
        
9.1
        
);

foreach (
$tests as $element) {
    if (
is_numeric($element)) {
        echo 
"'{$element}' est de type numérique"PHP_EOL;
    } else {
        echo 
"'{$element}' n'est pas de type numérique"PHP_EOL;
    }
}
?>

L'exemple ci-dessus va afficher :

'42' est de type numérique
'1337' est de type numérique
'1e4' est de type numérique
'not numeric' n'est pas de type numérique
'Array' n'est pas de type numérique
'9.1' est de type numérique

Voir aussi

  • ctype_digit() - Vérifie qu'une chaîne est un entier
  • is_bool() - Détermine si une variable est un booléen
  • is_null() - Indique si une variable vaut NULL
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau



is_object

(PHP 4, PHP 5)

is_objectDétermine si une variable est de type objet

Description

bool is_object ( mixed $var )

Détermine si la variable donnée est de type objet.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un objet, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_object()

<?php
// Déclare une simple fonction pour retourner un tableau
// de notre objet
function get_students($obj)
{
    if (!
is_object($obj)) {
        return 
false;
    }

    return 
$obj->students;
}

// Déclare une nouvelle instance et 
// la remplit
$obj = new stdClass();
$obj->students = array('Kalle''Ross''Felipe');

var_dump(get_students(null));
var_dump(get_students($obj));;
?>

Notes

Note:

Cette fonction retourne FALSE si elle est utilisée sur un objet délinéarisé lorsque la classe de définition n'est pas présente (même si gettype() retourne object).

Voir aussi

  • is_bool() - Détermine si une variable est un booléen
  • is_int() - Détermine si une variable est de type nombre entier
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_array() - Détermine si une variable est un tableau



is_real

(PHP 4, PHP 5)

is_realAlias de is_float()

Description

Cette fonction est un alias de : is_float().



is_resource

(PHP 4, PHP 5)

is_resource Détermine si une variable est une ressource

Description

bool is_resource ( mixed $var )

Détermine si une variable est une ressource.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est une ressource, FALSE autrement.

Exemples

Exemple #1 Exemple avec is_resource()

<?php

$db_link 
= @mysql_connect('localhost''mysql_user''mysql_pass');
if (!
is_resource($db_link)) {
    die(
'Connexion impossible : ' mysql_error());
}

?>

Voir aussi



is_scalar

(PHP 4 >= 4.0.5, PHP 5)

is_scalar Indique si une variable est un scalaire

Description

bool is_scalar ( mixed $var )

Indique si la variable donnée est un scalaire.

Les variables scalaires sont celles qui contiennent des entiers, des nombres décimaux, des chaînes de caractères ou des booléens. Les types array, object et resource ne sont pas scalaires.

Note:

is_scalar() ne considère pas les valeurs des types ressource comme scalaires, étant donné que les ressources sont des types abstraits, basés sur des entiers. Ceci est susceptible de changer.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un scalaire, FALSE autrement.

Exemples

Exemple #1 Exemple avec is_scalar()

<?php
function show_var($var
{
    if (
is_scalar($var)) {
        echo 
$var;
    } else {
        
var_dump($var);
    }
}
$pi 3.1416;
$proteines = array("hémoglobine""cytochrome c oxidase""ferredoxine");

show_var($pi);

show_var($proteines)
?>

L'exemple ci-dessus va afficher :

3.1416
array(3) {
  [0]=>
  string(11) "hémoglobine"
  [1]=>
  string(20) "cytochrome c oxidase"
  [2]=>
  string(11) "ferredoxine"
}

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_numeric() - Détermine si une variable est un type numérique
  • is_real() - Alias de is_float
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_bool() - Détermine si une variable est un booléen
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau



is_string

(PHP 4, PHP 5)

is_stringDétermine si une variable est de type chaîne de caractères

Description

bool is_string ( mixed $var )

Détermine si la variable donnée est de type chaîne de caractères.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est une chaîne de caractères, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_string()

<?php
if (is_string("23")) {
    echo 
"est une chaîne\n";
} else {
    echo 
"n'est pas une chaîne\n";
}
var_dump(is_string('abc'));
var_dump(is_string("23"));
var_dump(is_string(23.5));
var_dump(is_string(true));
?>

L'exemple ci-dessus va afficher :

est une chaîne
bool(true)
bool(true)
bool(false)
bool(false)

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_bool() - Détermine si une variable est un booléen
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau



isset

(PHP 4, PHP 5)

issetDétermine si une variable est définie et est différente de NULL

Description

bool isset ( mixed $var [, mixed $var [, $... ]] )

Détermine si une variable est définie et est différente de NULL.

Si une variable a été détruite avec la fonction unset(), la fonction isset() renverra FALSE. isset() renvera FALSE lors du test d'une variable de valeur NULL. Notez aussi que le caractère nul ("\0") n'est pas équivalent à la constante PHP

Si plusieurs paramètres sont fournis, alors la fonction isset() retournera TRUE seulement si tous les paramètres sont définis. L'évaluation s'effectue de gauche vers la droite et s'arrête dès qu'une variable non-définie est rencontrée.

Liste de paramètres

var

La variable à analyser.

var

D'autres variables...

...

Valeurs de retour

Retourne TRUE si var existe et a une valeur autre que NULL, FALSE sinon.

Exemples

Exemple #1 Exemple avec isset()

<?php

$var 
'';

// Ceci est vrai, alors le texte est affiché
if (isset($var)) {
    echo 
'Cette variable existe, donc je peux l\'afficher.';
}

// Dans les exemples suivants, nous utilisons var_dump() pour afficher 
// le retour de la fonction isset().

$a 'test';
$b 'anothertest';

var_dump(isset($a));      // TRUE
var_dump(isset($a$b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a$b)); // FALSE

$foo NULL;
var_dump(isset($foo));   // FALSE

?>

Fonctionne aussi avec les tableaux :

<?php

$a 
= array ('test' => 1'bonjour' => NULL);

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['bonjour']));           // FALSE

// La clé 'bonjour' vaut NULL et est considérée comme non existante
// Si vous voulez vérifier l'existence de cette clé, utilisez cette fonction
var_dump(array_key_exists('bonjour'$a) ); // TRUE

?>

Notes

Avertissement

isset() fonctionne uniquement avec des variables car l'utilisation de toute autre chose aura comme conséquence une erreur d'analyse. Pour vérifier si une constants est définie, utilisez la fonction defined().

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Lors de l'utilisation de cette fonction sur des propriétés d'objet inaccessibles, la méthode magique __isset sera appelée, si elle existe.

Voir aussi



print_r

(PHP 4, PHP 5)

print_rAffiche des informations lisibles pour une variable

Description

mixed print_r ( mixed $expression [, bool $return = false ] )

print_r() affiche des informations à propos d'une variable, de manière à ce qu'elle soit lisible.

print_r(), var_dump() et var_export() afficheront également les propriétés protégées et privées d'un objet en PHP 5. Les membres des classes statiques ne seront pas affichés.

Gardez en tête que print_r() place le pointeur de tableau à la fin du tableau. Utilisez reset() pour le ramener au début.

Liste de paramètres

expression

L'expression à afficher.

return

Si vous voulez obtenir le résultat de print_r() dans une chaîne, utilisez le paramètre return. Lorsque ce paramètre vaut TRUE, print_r() retournera l'information plutôt que de l'afficher.

Valeurs de retour

Si une chaîne de caractères, un entier ou un nombre décimal est fournie, sa valeur sera affichée. Si un tableau est fourni, les valeurs seront affichées dans un format permettant de voir les clés et les éléments. Un format similaire sera également utilisé pour les objets.

Lorsque le paramètre return vaut TRUE, cette fonction retournera une chaîne de caractères. Autrement, la valeur de retour sera TRUE.

Notes

Note:

Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Historique

Version Description
4.3.0 Ajout du paramètre return. Si vous devez récupérer le résultat de print_r() avec une version de PHP plus ancienne que 4.3.0, utilisez les fonctions de bufferisation de sortie.
4.0.4 Avant PHP 4.0.4, print_r() bouclera à l'infini si un tableau ou un objet contient une référence sur lui-même. Un exemple classique est notamment la ligne print_r($GLOBALS) car $GLOBALS est lui-même une variable globale, qui donc, contient une référence sur elle même.

Exemples

Exemple #1 Exemple avec print_r()

<pre>
<?php
$a 
= array ('a' => 'apple''b' => 'banana''c' => array ('x''y''z'));
print_r ($a);
?>
</pre>

L'exemple ci-dessus va afficher :

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

Exemple #2 Exemple avec le paramètre return

<?php
$b 
= array ('m' => 'monkey''foo' => 'bar''x' => array ('x''y''z'));
$results print_r($btrue); // $results contient l'affichage de print_r
?>

Voir aussi

  • ob_start() - Enclenche la tamporisation de sortie
  • var_dump() - Affiche les informations d'une variable
  • var_export() - Retourne le code PHP utilisé pour générer une variable



serialize

(PHP 4, PHP 5)

serializeLinéarise une variable

Description

string serialize ( mixed $value )

Linéarise une variable.

C'est une technique pratique pour stocker ou passer des valeurs de PHP entre scripts, sans perdre ni leur structure, ni leur type.

Pour récupérer une variable linéarisée, et retrouver une variable, utilisez unserialize().

Liste de paramètres

value

La valeur à linéariser. serialize() acceptent tous les types sauf les ressources. Vous pouvez linéariser un tableau qui contient une référence sur lui-même. Les références dans ce tableau/objet seront également stockées. Toutes les autres références seront perdues.

Lors de la linéarisation d'un objet, PHP tentera d'appeler la fonction membre __sleep avant de linéariser. Cela permet à l'objet de faire un dernier nettoyage, etc. avant d'être linéarisé. De même, lorsque l'objet est restauré en utilisant unserialize(), la fonction membre __wakeup est appelée.

Note:

Les attributs privés d'un objet auront le nom de la classe préfixé au nom de l'attributs; les attributs protégés seront préfixé avec un astérisque '*'. Ces valeurs préfixées ont des caractèrs nuls des deux cotés.

Valeurs de retour

Retourne une chaîne contenant une représentation linéaire de value, pour stockage.

Exemples

Exemple #1 Exemple avec serialize()

<?php
// $session_data contient un tableau multidimensionnel , avec les
// informations de session de l'utilisateur courant. On utilise serialize()
// pour les stocker dans une base de données

$conn odbc_connect("webdb""php""chicken");
$stmt odbc_prepare($conn,
      
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!
odbc_execute($stmt$sqldata)) {
    
$stmt odbc_prepare($conn,
     
"INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!
odbc_execute($stmt$sqldata)) {
        
/* Un problème est survenu ! */
    
}
}
?>

Historique

Version Description
4.0.7 Le processus de linéarisation a été corrigé.

Notes

Note:

Notez que la plupart des objets internes de PHP ne peuvent être linéarisés. Cependant, ceux qui le peuvent implémentent l'interface Serializable ou définissent les méthodes magiques __sleep et __wakeup. Si une classe interne n'utilise pas une de ces techniques, alors elle ne peut être linéarisée de manière sûre.

Il existe des exceptions historiques à cette règle, des objets internes peuvent être linéarisés alors qu'ils n'implémentent pas l'interface ou n'utilise pas les méthodes magiques prévues à cet effet. On pourra citer ArrayObject avant PHP 5.2.0.

Voir aussi



settype

(PHP 4, PHP 5)

settypeAffecte un type à une variable

Description

bool settype ( mixed &$var , string $type )

Force le type de la variable var en type.

Liste de paramètres

var

La variable à convertir.

type

Les valeurs possibles pour le paramètre type sont :

  • "boolean" (ou, depuis PHP 4.2.0, "bool")
  • "integer" (ou, depuis PHP 4.2.0, "int")
  • "float" (uniquement depuis PHP 4.2.0. Pour les anciennes versions, utilisez l'alternative "double")
  • "string"
  • "array"
  • "object"
  • "NULL" (depuis PHP 4.2.0)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec settype()

<?php
$foo 
"5bar"// chaîne
$bar true;   // booléen

settype($foo"integer"); // $foo vaut maintenant 5   (integer)
settype($bar"string");  // $bar vaut maintenant "1" (string)
?>

Notes

Note:

La valeur maximale des entiers est la valeur contenue dans la variable PHP_INT_MAX.

Voir aussi



strval

(PHP 4, PHP 5)

strvalRécupère la valeur d'une variable, au format chaîne

Description

string strval ( mixed $var )

Récupère la valeur de la variable var, au format chaîne de caractères. Voir la documentation sur les chaînes de caractères pour plus d'informations sur la conversion en chaîne.

Cette fonction n'effectue aucun formattage sur la valeur retournée. Si vous cherchez un moyen de formatter une valeur numérique en chaîne de caractères, repportez-vous à la fonction sprintf() ou la fonction number_format().

Liste de paramètres

var

La variable à convertir en chaîne de caractères.

var peut être un scalaire ou un objet implémentant la méthode magique __toString. Vous ne pouvez pas utiliser la fonction strval() avec des tableaux ou des objets qui n'implémentent pas la méthode magique __toString.

Valeurs de retour

La valeur de la variable var sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple pour strval() utilisant la méthode magique __toString.

<?php
class StrValTest
{
    public function 
__toString()
    {
        return 
__CLASS__;
    }
}

// Affiche 'StrValTest'
echo strval(new StrValTest);
?>

Voir aussi



unserialize

(PHP 4, PHP 5)

unserializeCrée une variable PHP à partir d'une valeur linéarisée

Description

mixed unserialize ( string $str )

unserialize() prend une variable linéarisée (voir serialize()) et la convertit en variable PHP.

Liste de paramètres

str

La chaîne linéarisée.

Si la variable délinéarisée est un objet, après avoir réussi à le reconstruire, PHP appellera automatiquement la méthode __wakeup() si elle existe.

Note: unserialize_callback_func directive

Il est possible de définir une fonction de rappel qui sera appelée si une classe indéfinie est utilisée lors de la délinéarisation (ce qui évitera de voir l'objet recevoir le type d'objet incomplet object "__PHP_Incomplete_Class"). Utilisez dans votre fichier php.ini ou le fichier .htaccess, ou encore avec la fonction ini_set(), pour définir une fonction unserialize_callback_func(). Chaque fois qu'une classe non-définie sera instanciée, cette fonction sera appelée. Pour désactiver cette fonctionnalité, laissez la simplement vide.

Valeurs de retour

La valeur convertie est retournée par la fonction, et peut être de type booléen, entier, nombre décimal, chaîne de caractères, tableau ou objet.

Si la chaîne passée ne peut être délinéarisée, cette fonction retourne FALSE et une erreur E_NOTICE est émise.

Historique

Version Description
4.2.0 La directive unserialize_callback_func devient disponible.

Exemples

Exemple #1 Exemple avec unserialize()

<?php
// Ici, on utilise <function>unserialize</function> pour charger les données de sessions
// depuis la base de données, dans $session_data. Cet exemple complète
// celui fourni avec <function>serialize</function>.

$conn odbc_connect("webdb""php""chicken");
$stmt odbc_prepare($conn"SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!
odbc_execute($stmt$sqldata) || !odbc_fetch_into($stmt$tmp)) {
    
// si la préparation ou la lecture échouent, on crée un tableau vide
    
$session_data = array();
} else {
    
// les données sauvées sont dans $tmp[0].
    
$session_data unserialize($tmp[0]);
    if (!
is_array($session_data)) {
        
// Erreur... initialisation d'un tableau vide
        
$session_data = array();
    }
}
?>

Exemple #2 Exemple avec la directive unserialize_callback_func

<?php
$serialized_object
='O:1:"a":1:{s:5:"value";s:3:"100";}';

// directive unserialize_callback_func disponible depuis PHP 4.2.0
ini_set('unserialize_callback_func''mycallback');

function 
mycallback($classname
{
    
// Incluez simplement un fichier contenant votre définition de classe
    // vous saurez quelle classe grâce à $classname
}
?>

Notes

Avertissement

FALSE est retourné dans les cas où une erreur survient et si vous tentez de délinéariser une valeur linéarisé égale à FALSE. Il est possible d'intercepter ce cas spécial en comparant str avec serialize(false) ou en attrapant l'erreur E_NOTICE émise.

Voir aussi



unset

(PHP 4, PHP 5)

unsetDétruit une variable

Description

void unset ( mixed $var [, mixed $var [, mixed $... ]] )

unset() détruit la ou les variables dont le nom a été passé en argument var.

Le comportement de unset() à l'intérieur d'une fonction peut varier suivant le type de variable que vous voulez détruire.

Si une variable globale est détruite avec unset() depuis une fonction, seule la variable locale sera détruite. Le variable globale gardera la valeur acquise avant l'appel à unset().

<?php
function destroy_foo() 
{
    global 
$foo;
    unset(
$foo);
}

$foo 'bar';
destroy_foo();
echo 
$foo;
?>

L'exemple ci-dessus va afficher :

bar

Pour détruire une variable globale à l'intérieur d'une fonction, vous pouvez utiliser le tableau $GLOBALS :

<?php
function foo() 
{
    unset(
$GLOBALS['bar']);
}

$bar "truc";
foo();
?>

Si une variable qui est passée par référence est détruite à l'intérieur d'une fonction, seule la variable locale sera détruite. La variable globale conservera la même valeur qu'elle avait avant l'appel de unset().

<?php
function foo(&$bar
{
    unset(
$bar);
    
$bar "blah";
}

$bar 'truc';
echo 
"$bar\n";

foo($bar);
echo 
"$bar\n";
?>

L'exemple ci-dessus va afficher :

truc
truc

Si une variable statique est détruite à l'intérieur d'une fonction unset() détruira la variable seulement dans le contexte du reste de la fonction. Les appels suivants restaureront la valeur précédente de la variable.

<?php
function foo()
{
    static 
$bar;
    
$bar++;
    echo 
"Avant unset : $bar, ";
    unset(
$bar);
    
$bar 23;
    echo 
"après unset : $bar\n";
}

foo();
foo();
foo();
?>

L'exemple ci-dessus va afficher :

Avant unset : 1, après unset: 23
Avant unset : 2, après unset: 23
Avant unset : 3, après unset: 23

Liste de paramètres

var

La variable à détruire.

var

Autres variables...

...

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
4.0.1 Ajout du support des arguments multiples.

Exemples

Exemple #1 Exemple avec unset()

<?php
// Destruction d'une seule variable
unset($foo);

// Destruction d'un élément de tableau
unset($bar['quux']);

// Destruction de plusieurs variables
unset($foo1$foo2$foo3);
?>

Exemple #2 Exemple avec un transtypage (unset)

<?php
$name 
'Felipe';

var_dump((unset) $name);
?>

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Il est possible de détruire n'importe quelle propriété visible dans le contexte courant.

Note:

Il n'est pas possible de détruire la variable spéciale $this à l'intérieur d'une méthode d'un objet, depuis PHP 5.

Note:

Lors de l'utilisation de cette fonction sur des propriétés d'objet inaccessibles, la méthode magique __isset sera appelée, si elle existe.

Voir aussi

  • isset() - Détermine si une variable est définie et est différente de NULL
  • __unset
  • empty() - Détermine si une variable est vide
  • array_splice() - Efface et remplace une portion de tableau



var_dump

(PHP 4, PHP 5)

var_dumpAffiche les informations d'une variable

Description

void var_dump ( mixed $expression [, mixed $expression [, $... ]] )

var_dump() retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

En PHP 5, toutes les propriétés publiques, privées et protégées seront retournées dans le résultat.

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Liste de paramètres

expression

La variable que vous voulez exporter.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec var_dump()

<?php
$a 
= array(12, array("a""b""c"));
var_dump($a);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
<?php

$b 
3.1;
$c true;
var_dump($b$c);

?>

L'exemple ci-dessus va afficher :

float(3.1)
bool(true)

Voir aussi

  • var_export() - Retourne le code PHP utilisé pour générer une variable
  • print_r() - Affiche des informations lisibles pour une variable



var_export

(PHP 4 >= 4.2.0, PHP 5)

var_exportRetourne le code PHP utilisé pour générer une variable

Description

mixed var_export ( mixed $expression [, bool $return = false ] )

var_export() retourne des données structurées sur la variable donnée. C'est le même principe que var_dump() mais avec une exception : le résultat retourné est du code PHP valide.

Liste de paramètres

expression

La variable que vous voulez exporter.

return

Si utilisé et mis à TRUE, var_export() retournera la représentation de la variable au lieu de l'afficher.

Note:

Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Valeurs de retour

Retourne la représentation de la variable lorsque le paramètre return est utilisé et évalué à TRUE. Autrement, cette fonction retournera NULL.

Historique

Version Description
5.1.0 Possibilité d'exporter des classes et des tableaux contenant des classes en utilisant la méthode magique __set_state.

Exemples

Exemple #1 Exemple avec var_export()

<?php

$a 
= array (12, array ("a""b""c"));
var_export($a);

?>

L'exemple ci-dessus va afficher :

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b 
3.1;
$v var_export($btrue);
echo 
$v// 3.1

?>

L'exemple ci-dessus va afficher :

3.1

Exemple #2 Exporter des classes depuis PHP 5.1.0

<?php
class { public $var; }
$a = new A;
$a->var 5;
var_export($a);
?>

L'exemple ci-dessus va afficher :

A::__set_state(array(
   'var' => 5,
))

Exemple #3 Utilisation de __set_state (depuis PHP 5.1.0)

<?php
class A
{
    public 
$var1;
    public 
$var2;

    public static function 
__set_state($an_array)
    {
        
$obj = new A;
        
$obj->var1 $an_array['var1'];
        
$obj->var2 $an_array['var2'];
        return 
$obj;
    }
}

$a = new A;
$a->var1 5;
$a->var2 'foo';

eval(
'$b = ' var_export($atrue) . ';'); // $b = A::__set_state(array(
                                     //    'var1' => 5,
                                     //    'var2' => 'foo',
                                     // ));
var_dump($b);
?>

L'exemple ci-dessus va afficher :

object(A)#2 (2) {
    ["var1"]=>
    int(5)
    ["var2"]=>
    string(3) "foo"
}

Notes

Note:

Les variables de type ressource ne peuvent être exportées par cette fonction.

Note:

var_export() ne gère pas les références circulaires car il serait impossible de générer un code PHP analysable pour ce type de données. Si vous voulez faire quelque chose avec la représentation complète d'un tableau ou d'un objet, utilisez la fonction serialize().

Voir aussi

  • print_r() - Affiche des informations lisibles pour une variable
  • serialize() - Linéarise une variable
  • var_dump() - Affiche les informations d'une variable


Sommaire

  • debug_zval_dump — Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage
  • doubleval — Alias de floatval
  • empty — Détermine si une variable est vide
  • floatval — Convertit une chaîne en nombre à virgule flottante
  • get_defined_vars — Liste toutes les variables définies
  • get_resource_type — Retourne le type de ressource
  • gettype — Retourne le type de la variable
  • import_request_variables — Importe les variables de GET/POST/Cookie dans l'environnement global
  • intval — Retourne la valeur numérique entière équivalente d'une variable
  • is_array — Détermine si une variable est un tableau
  • is_bool — Détermine si une variable est un booléen
  • is_callable — Détermine si l'argument peut être appelé comme fonction
  • is_double — Alias de is_float
  • is_float — Détermine si une variable est de type nombre décimal
  • is_int — Détermine si une variable est de type nombre entier
  • is_integer — Alias de is_int
  • is_long — Alias de is_int
  • is_null — Indique si une variable vaut NULL
  • is_numeric — Détermine si une variable est un type numérique
  • is_object — Détermine si une variable est de type objet
  • is_real — Alias de is_float
  • is_resource — Détermine si une variable est une ressource
  • is_scalar — Indique si une variable est un scalaire
  • is_string — Détermine si une variable est de type chaîne de caractères
  • isset — Détermine si une variable est définie et est différente de NULL
  • print_r — Affiche des informations lisibles pour une variable
  • serialize — Linéarise une variable
  • settype — Affecte un type à une variable
  • strval — Récupère la valeur d'une variable, au format chaîne
  • unserialize — Crée une variable PHP à partir d'une valeur linéarisée
  • unset — Détruit une variable
  • var_dump — Affiche les informations d'une variable
  • var_export — Retourne le code PHP utilisé pour générer une variable




Services Web


OAuth


Introduction

Cette extension fournit un client et un prestataire de service OAuth. OAuth est un protocole d'autorisation qui est construit sur HTTP, et qui permet aux applications de sécuriser l'accès aux données sans avoir à stocker de noms d'utilisateurs et de mots de passe.



Installation/Configuration

Sommaire


Pré-requis

PECL/oauth requiert PHP 5.1 ou plus récent, les extensions ext/hash et ext/pcre.

PECL/oauth peut aussi nécessité la bibliothèque libcurl si elle a été sélectionnée au moment de la compilation. Si c'est le cas, PECL/oauth doit aussi être compilé avec le support HTTPS.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pear.php.net/package/oauth



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

La plupart de ces constantes impliquent des problèmes décrits dans la documentation officiels de » rapport de problèmes d'OAuth. Notez cependant que les noms des constantes sont spécifiques à PHP, malgré le fait que le schéma de nommage est similaire.

OAUTH_SIG_METHOD_RSASHA1 (string)
Méthode de signature OAuth RSA-SHA1.
OAUTH_SIG_METHOD_HMACSHA1 (string)

Méthode de signature OAuth HMAC-SHA1.

OAUTH_SIG_METHOD_HMACSHA256 (string)
Méthode de signature OAuth HMAC-SHA256.
OAUTH_AUTH_TYPE_AUTHORIZATION (string)

Cette constante représente l'entête Authorization.

OAUTH_AUTH_TYPE_NONE (string)

Cette constante indique une requête NoAuth OAuth.

OAUTH_AUTH_TYPE_URI (string)

Cette constante représente les paramètres OAuth dans l'URI de requête.

OAUTH_AUTH_TYPE_FORM (string)

Cette constante représente les paramètres OAuth comme une partie du corps HTTP POST.

OAUTH_HTTP_METHOD_GET (string)

Utilise la méthode GET pour la requête OAuth.

OAUTH_HTTP_METHOD_POST (string)

Utilise la méthode POST pour la requête OAuth.

OAUTH_HTTP_METHOD_PUT (string)

Utilise la méthode PUT pour la requête OAuth.

OAUTH_HTTP_METHOD_HEAD (string)

Utilise la méthode HEAD pour la requête OAuth.

OAUTH_HTTP_METHOD_DELETE (string)
Utilise la méthode DELETE pour la requête OAuth.
OAUTH_REQENGINE_STREAMS (integer)
Utilisé par la méthode Oauth::setReqeustEngine() pour définir le moteur de flux PHP, à l'opposé de OAUTH_REQENGINE_CURL pour Curl.
OAUTH_REQENGINE_CURL (integer)
Utilisé par la méthode Oauth::setReqeustEngine() pour définir le moteur de Curl, à l'opposé de OAUTH_REQENGINE_STREAMS pour les flux PHP.
OAUTH_OK (integer)
La vie est belle.
OAUTH_BAD_NONCE (integer)
La valeur oauth_nonce a été utilisée pour une précédente requête, et ne peut être utilisée maintenant.
OAUTH_BAD_TIMESTAMP (integer)
La valeur oauth_timestamp n'est pas acceptée par le prestataire de service. Dans ce cas, la réponse devra aussi contenir le paramètre oauth_acceptable_timestamps.
OAUTH_CONSUMER_KEY_UNKNOWN (integer)
oauth_consumer_key est temporairement innaceptable par le prestataire de service. Par exemple, le prestataire de service surcharge le consommateur.
OAUTH_CONSUMER_KEY_REFUSED (integer)
La clé du consommateur a été refusée.
OAUTH_INVALID_SIGNATURE (integer)
oauth_signature est invalide car elle ne correspond pas à la signature calculée par le prestataire de service.
OAUTH_TOKEN_USED (integer)
oauth_token a été consommé. Elle ne peut plus être utilisée car elle a déjà été utilisée dans une ou plusieurs précédentes requêtes.
OAUTH_TOKEN_EXPIRED (integer)
oauth_token a expiré.
OAUTH_TOKEN_REVOKED (integer)
oauth_token a été révoquée et ne pourra plus être acceptée.
OAUTH_TOKEN_REJECTED (integer)
oauth_token n'a pas été acceptée par le prestataire de service. La raison est inconnue, mais il se peut que le jeton n'a jamais été utilisé, a déjà été consommé, a expiré et/ou a été oublié par le prestataire de service.
OAUTH_VERIFIER_INVALID (integer)
oauth_verifier est incorrect.
OAUTH_PARAMETER_ABSENT (integer)
Un paramètre requis n'a pas été reçu. Dans ce cas, la réponse devra également contenir le paramètre oauth_parameters_absent.
OAUTH_SIGNATURE_METHOD_REJECTED (integer)
oauth_signature_method n'a pas été accepté par le prestataire de service.



Exemples

Sommaire


FireEagle

$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';
$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';
$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';
$api_url = 'https://fireeagle.yahooapis.com/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';

session_start();

// En état state=1 la prochaine requete doit inclure le oauth_token.
// Si ce n'est pas le cas, retour à 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
  $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
  $oauth->enableDebug();
  if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
    $request_token_info = $oauth->getRequestToken($req_url);
    $_SESSION['secret'] = $request_token_info['oauth_token_secret'];
    $_SESSION['state'] = 1;
    header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
    exit;
  } else if($_SESSION['state']==1) {
    $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
    $access_token_info = $oauth->getAccessToken($acc_url);
    $_SESSION['state'] = 2;
    $_SESSION['token'] = $access_token_info['oauth_token'];
    $_SESSION['secret'] = $access_token_info['oauth_token_secret'];
  } 
  $oauth->setToken($_SESSION['token'],$_SESSION['secret']);
  $oauth->fetch("$api_url/user.json");
  $json = json_decode($oauth->getLastResponse());
  print_r($json);
} catch(OAuthException $E) {
  print_r($E);
}
?>




Fonctions OAuth


oauth_get_sbs

(PECL OAuth >=0.99.7)

oauth_get_sbsGénère une chaîne de base de signature

Description

string oauth_get_sbs ( string $http_method , string $uri [, array $request_parameters ] )

Génère une chaîne de base de signature pour pecl/oauth.

Liste de paramètres

http_method

La méthode HTTP.

uri

L'URI à encoder.

request_parameters

Tableau de paramètres de requêtes.

Valeurs de retour

Retourne une chaîne, la Signature Base String.



oauth_urlencode

(PECL OAuth >=0.99.2)

oauth_urlencodeEncode une URI conformément à RFC 3986

Description

string oauth_urlencode ( string $uri )

Encodes une URI conformément à » RFC 3986.

Liste de paramètres

uri

l'URI à encoder.

Valeurs de retour

Retourne une chaîne encodée conformément à » RFC 3986.


Sommaire



La classe OAuth

Introduction

L'extension OAuth fournit une interface simple pour interagir avec des fournisseur de données, en utilisant les spécifications OAuth HTTP pour protéger les ressources.

Synopsis de la classe

OAuth {
/* Propriétés */
public $debug ;
public $sslChecks ;
public $debugInfo ;
/* Méthodes */
__construct ( string $consumer_key , string $consumer_secret [, string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 [, int $auth_type = 0 ]] )
public void __destruct ( void )
public bool disableDebug ( void )
public bool disableRedirects ( void )
public bool disableSSLChecks ( void )
public bool enableDebug ( void )
public bool enableRedirects ( void )
public bool enableSSLChecks ( void )
public mixed fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] )
public array getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token ]] )
public array getCAPath ( void )
public string getLastResponse ( void )
public array getLastResponseInfo ( void )
public array getRequestToken ( string $request_token_url [, string $callback_url ] )
public mixed setAuthType ( int $auth_type )
public mixed setCAPath ([ string $ca_path [, string $ca_info ]] )
public mixed setNonce ( string $nonce )
public void setRequestEngine ( int $reqengine )
public mixed setRSACertificate ( string $cert )
public mixed setTimestamp ( string $timestamp )
public bool setToken ( string $token , string $token_secret )
public bool setVersion ( string $version )
}

Propriétés

debug

sslChecks

debugInfo


OAuth::__construct

(PECL OAuth >= 0.99.1)

OAuth::__constructCrée un nouvel objet OAuth

Description

OAuth::__construct ( string $consumer_key , string $consumer_secret [, string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 [, int $auth_type = 0 ]] )

Crée un nouvel objet OAuth.

Liste de paramètres

consumer_key

La clé de lecture fournie par le fournisseur de services.

consumer_secret

Le secret de lecture fourni par le fournisseur de services.

signature_method

Ce paramètre optionnel définit la méthode de signature utilisée. Par défaut, c'est OAUTH_SIG_METHOD_HMACSHA1 (HMAC-SHA1).

auth_type

Ce paramètre optionnel définit la méthode de passage des paramètres OAuth au fournisseur de services. Par défaut, c'est OAUTH_AUTH_TYPE_AUTHORIZATION (dans l'entête Authorization).



OAuth::__destruct

(PECL OAuth >= 0.99.9)

OAuth::__destructLe destructeur

Description

public void OAuth::__destruct ( void )

Le destructeur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



OAuth::disableDebug

(PECL OAuth >= 0.99.3)

OAuth::disableDebugDésactive les messages de déboguage

Description

public bool OAuth::disableDebug ( void )

Désactive les messages de déboguage. Il est désactivé par défaut. Vous pouvez définir la propriété debug à FALSE pour désactiver le déboguage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version Description
0.99.8 La propriété debug a été ajoutée

Voir aussi



OAuth::disableRedirects

(PECL OAuth >= 0.99.9)

OAuth::disableRedirectsDésactive les redirections

Description

public bool OAuth::disableRedirects ( void )

Désactive les redirections, permettant ainsi aux requêtes d'être redirigées manuellement.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Voir aussi



OAuth::disableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::disableSSLChecksDésactive la vérification SSL

Description

public bool OAuth::disableSSLChecks ( void )

Désactive les vérifications de certificats et d'hôtes SLL (activé par défaut). Il est recommandé de ne pas utiliser cette fonction en production.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version Description
0.99.8 La propriété debug a été ajoutée

Voir aussi



OAuth::enableDebug

(PECL OAuth >= 0.99.3)

OAuth::enableDebugActive les messages de débogage

Description

public bool OAuth::enableDebug ( void )

Désactive les messages de débogage, pratiques en développement, mais inutiles en production.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version Description
0.99.8 La propriété debug a été ajoutée

Voir aussi



OAuth::enableRedirects

(PECL OAuth >= 0.99.9)

OAuth::enableRedirectsActive les redirections

Description

public bool OAuth::enableRedirects ( void )

Suit les redirections automatiquement ; c'est le comportement par défaut.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Voir aussi



OAuth::enableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::enableSSLChecksActive la vérification SSL

Description

public bool OAuth::enableSSLChecks ( void )

Active les vérifications de certificats et d'hôtes SLL (activé par défaut).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version Description
0.99.8 La propriété debug a été ajoutée

Voir aussi



OAuth::fetch

(PECL OAuth >= 0.99.1)

OAuth::fetchLit une ressource protégée par OAuth

Description

public mixed OAuth::fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] )

Lit une ressource protégée par OAuth.

Liste de paramètres

protected_resource_url

URL de la ressource protégées par OAuth.

extra_parameters

Paramètres supplémentaires à envoyer avec la requête, à la ressource.

http_method

Une des constantes OAUTH constants OAUTH_HTTP_METHOD_*, incluant GET, POST, PUT, HEAD, ou DELETE.

HEAD (OAUTH_HTTP_METHOD_HEAD) peut être utile pour découvrir des informations avant la demande (si les autorisations OAuth sont dans l'en-tête Authorization header).

http_headers

Les entêtes client HTTP (tels que User-Agent, Accept, etc.)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.
0.99.5 Ajout du paramètre http_method
0.99.8 Ajout du paramètre http_headers

Exemples

Exemple #1 Exemple avec OAuth::fetch()

<?php
try {
    
$oauth = new OAuth("consumer_key","consumer_secret",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
    
$oauth->setToken("access_token","access_token_secret");

    
$oauth->fetch("http://photos.example.net/photo?file=vacation.jpg");

    
$response_info $oauth->getLastResponseInfo();
    
header("Content-Type: {$response_info["content_type"]}");
    echo 
$oauth->getLastResponse();
} catch(
OAuthException $E) {
    echo 
"Exception caught!\n";
    echo 
"Response: "$E->lastResponse "\n";
}
?>

Voir aussi



OAuth::getAccessToken

(PECL OAuth >= 0.99.1)

OAuth::getAccessTokenRécupère un token d'accès

Description

public array OAuth::getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token ]] )

Lit un token, un secret et toute information supplémentaire chez un fournisseur de services.

Liste de paramètres

access_token_url

L'URL à utiliser.

auth_session_handle

L'identifiant de session. Ce paramètre n'a pas d'existence dans les spécifications OAuth 1.0, mais peut être mis en place par de grosses implémentations. Voyez » ScalableOAuth pour plus de détails.

verifier_token

Pour les fournisseurs de service qui supportent 1.0a, le paramètre verifier_token doit être fourni, lors de l'échange de token de requête pour obtenir le token d'accès. Si verifier_token est présent dans $_GET ou $_POST, il est automatiquement passé et l'appelant n'a pas besoin de préciser de paramètre verifier_token (généralement, le token d'accès est échangé via l'URL de rappel callback_url.). Voyez » ScalableOAuth pour plus d'informations.

Valeurs de retour

Retourne un tableau contenant la réponse OAuth analyse, en cas de succès, et FALSE sinon.

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.
0.99.9 Le paramètre verifier_token a été ajouté

Exemples

Exemple #1 Exemple avec OAuth::getAccessToken()

<?php
try {
    
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    
$oauth->setToken($request_token,$request_token_secret);
    
$access_token_info $oauth->getAccessToken("https://example.com/oauth/access_token");
    if(!empty(
$access_token_info)) {
        
print_r($access_token_info);
    } else {
        print 
"Failed fetching access token, response was: " $oauth->getLastResponse();
    }
} catch(
OAuthException $E) {
    echo 
"Response: "$E->lastResponse "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Voir aussi



OAuth::getCAPath

(PECL OAuth >= 0.99.8)

OAuth::getCAPathRécupère l'information CA

Description

public array OAuth::getCAPath ( void )

Récupère les informations du certificat de l'autorité, incluant les valeurs de ca_path et ca_info définit par la méthode OAuth::setCaPath().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau d'informations sur le certificat de l'autorité, contenant entre autres, les clés ca_path et ca_info.

Voir aussi



OAuth::getLastResponse

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseLit la dernière réponse

Description

public string OAuth::getLastResponse ( void )

Lit la réponse brute de la dernière requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne avec la dernière requête.

Voir aussi



OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfoLit les informations HTTP de la dernière réponse

Description

public array OAuth::getLastResponseInfo ( void )

Lit les informations HTTP de la dernière réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les informations de réponse de la dernière requête. Les constantes de curl_getinfo() sont aussi utilisables.

Voir aussi



OAuth::getRequestToken

(PECL OAuth >= 0.99.1)

OAuth::getRequestTokenLit le token de requête

Description

public array OAuth::getRequestToken ( string $request_token_url [, string $callback_url ] )

Lit le token de requête, le secret et toute information supplémentaire du fournisseur de services.

Liste de paramètres

request_token_url

l'URL dont il faut obtenir le token.

callback_url

URL de rappel OAuth. Si callback_url est passé et que sa valeur est vide, il prend alors la valeur de "oob" pour satisfaire aux exigences de OAuth 2009.1 advisory.

Valeurs de retour

Retourne un tableau contenant la réponse OAuth analysée, en cas de succès, ou FALSE en cas d'échec.

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.
0.99.9 Le paramètre callback_url a été ajouté

Exemples

Exemple #1 Exemple avec OAuth::getRequestToken()

<?php
try {
    
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    
$request_token_info $oauth->getRequestToken("https://example.com/oauth/request_token");
    if(!empty(
$request_token_info)) {
        
print_r($request_token_info);
    } else {
        print 
"Failed fetching request token, response was: " $oauth->getLastResponse();
    }
} catch(
OAuthException $E) {
    echo 
"Response: "$E->lastResponse "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Voir aussi



OAuth::setAuthType

(PECL OAuth >= 0.99.1)

OAuth::setAuthTypeDéfinit le type d'autorisation

Description

public mixed OAuth::setAuthType ( int $auth_type )

Configure les paramètres OAuth.

Liste de paramètres

auth_type

auth_type peut être un des options suivantes (elles sont classées par ordre décroissant de préférence, tel que précisé dans OAuth 1.0 section 5.2) :

OAUTH_AUTH_TYPE_AUTHORIZATION
Passe les paramètres OAuth dans l'entête HTTP Authorization.
OAUTH_AUTH_TYPE_FORM
Ajoute les paramètres OAuth au corps de la requête HTTP POST.
OAUTH_AUTH_TYPE_URI
Ajoute les paramètres OAuth à l'URI.
OAUTH_AUTH_TYPE_NONE
Aucun.

Valeurs de retour

Retourne TRUE si un paramètre est correctement défini, FALSE dans les autres cas.

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.



OAuth::setCAPath

(PECL OAuth >= 0.99.8)

OAuth::setCAPathDéfinit le chemin et les informations du CA

Description

public mixed OAuth::setCAPath ([ string $ca_path [, string $ca_info ]] )

Définit le certificat d'autorité (CA), pour à la fois le chemin et les informations.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ca_path

Le chemin du CA à définir.

ca_info

Les informations du CA à définir.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si ca_path ou ca_info sont considérés comme invalide.

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.

Voir aussi



OAuth::setNonce

(PECL OAuth >= 0.99.1)

OAuth::setNonceConfigure le nonce OAuth

Description

public mixed OAuth::setNonce ( string $nonce )

Configure le nonce OAuth pour les appels suivants.

Liste de paramètres

nonce

La valeur de oauth_nonce.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le paramètre nonce est considéré comme invalide.

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.

Voir aussi



OAuth::setRequestEngine

(PECL OAuth >= 1.0.0)

OAuth::setRequestEngineLe but de setRequestEngine

Description

public void OAuth::setRequestEngine ( int $reqengine )

Définit le moteur de requête, utilisé pour envoyer les requêtes HTTP.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

reqengine

Le moteur de requêtes désiré. Définir à OAUTH_REQENGINE_STREAMS pour utiliser les flux PHP, ou OAUTH_REQENGINE_CURL pour utiliser Curl.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception OAuthException si un moteur de requêtes invalide est choisi.

Exemples

Exemple #1 Exemple avec OAuth::setRequestEngine()

<?php
$consumer 
= new OAuth();

$consumer->setRequestEngine(OAUTH_REQENGINE_STREAMS);
?>


OAuth::setRSACertificate

(PECL OAuth >= 1.0.0)

OAuth::setRSACertificateDéfinit le certificat RSA

Description

public mixed OAuth::setRSACertificate ( string $cert )

Définit le certificat RSA.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cert

Le certificat RSA.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si une erreur survient (i.e., le certificat RSA ne peut être analysé.)

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.

Exemples

Exemple #1 Exemple avec OAuth::setRsaCertificate()

<?php
$consume 
= new OAuth('1234'''OAUTH_SIG_METHOD_RSASHA1);

$consume->setRSACertificate(file_get_contents('test.pem'));
?>

Voir aussi



OAuth::setTimestamp

(PECL OAuth >= 1.0.0)

OAuth::setTimestampDéfinit le timestamp

Description

public mixed OAuth::setTimestamp ( string $timestamp )

Définit le timestamp OAuth pour les prochaines requêtes.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

timestamp

Le timestamp.

Valeurs de retour

Retourne TRUE, ou FALSE si timestamp est invalide.

Historique

Version Description
1.0.0 Avant cette version, NULL était retourné au lieu de FALSE.

Voir aussi



OAuth::setToken

(PECL OAuth >= 0.99.1)

OAuth::setTokenConfigure le token et le secret

Description

public bool OAuth::setToken ( string $token , string $token_secret )

Configure le token et le secret pour les prochains appels.

Liste de paramètres

token

Le token OAuth.

token_secret

Le secret OAuth.

Valeurs de retour

TRUE

Exemples

Exemple #1 L'exemple OAuth::setToken()

<?php
$oauth 
= new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken("token","token-secret");
?>



OAuth::setVersion

(PECL OAuth >= 0.99.1)

OAuth::setVersionConfigure la version OAuth

Description

public bool OAuth::setVersion ( string $version )

Configure la version de OAuth pour les prochains appels.

Liste de paramètres

version

La version OAuth, et par défaut, c'est toujours "1.0"

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire



La classe OAuthProvider

Introduction

Gère une classe OAuthProvider.

Voir aussi un tutoriel externe nommé » Écrire un service OAuth Provider, qui fournit une bonne approche pour proposer ce service. Il y a également des » exemples OAuth provider directement dans les sources de l'extension OAuth.

Synopsis de la classe

OAuthProvider {
/* Méthodes */
final public bool addRequiredParameter ( string $req_params )
public void callconsumerHandler ( void )
public void callTimestampNonceHandler ( void )
public void calltokenHandler ( void )
public void checkOAuthRequest ([ string $uri [, string $method ]] )
__construct ([ array $params_array ] )
public void consumerHandler ( callback $callback_function )
final public static string generateToken ( int $size [, bool $strong = false ] )
public void is2LeggedEndpoint ( mixed $params_array )
public void isRequestTokenEndpoint ( bool $will_issue_request_token )
final public bool removeRequiredParameter ( string $req_params )
final public static string reportProblem ( string $oauthexception [, bool $send_headers = true ] )
final public bool setParam ( string $param_key [, mixed $param_val ] )
final public bool setRequestTokenPath ( string $path )
public void timestampNonceHandler ( callback $callback_function )
public void tokenHandler ( callback $callback_function )
}

OAuthProvider::addRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::addRequiredParameterAjoute des paramètres requis

Description

final public bool OAuthProvider::addRequiredParameter ( string $req_params )

Ajoute des paramètres requis oauth provider.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

req_params

Les paramètres requis.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



OAuthProvider::callconsumerHandler

(No version information available, might only be in SVN)

OAuthProvider::callconsumerHandlerAppelle la fonction de rappel consumerNonceHandler

Description

public void OAuthProvider::callconsumerHandler ( void )

Appelle la fonction de rappel consumer handler, qui a été définie par la méthode OAuthProvider::consumerHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur E_ERROR si la fonction de rappel ne peut être appelée ou n'a pas été spécifiée.

Voir aussi



OAuthProvider::callTimestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::callTimestampNonceHandlerAppelle la fonction de rappel timestampNonceHandler

Description

public void OAuthProvider::callTimestampNonceHandler ( void )

Appelle la fonction de rappel timestamp handler, qui a été définie par la méthode OAuthProvider::timestampNonceHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur E_ERROR si la fonction de rappel ne peut être appelée ou n'a pas été spécifiée.

Voir aussi



OAuthProvider::calltokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::calltokenHandlerAppelle la fonction de rappel tokenNonceHandler

Description

public void OAuthProvider::calltokenHandler ( void )

Appelle la fonction de rappel token handler, qui a été définie par la méthode OAuthProvider::tokenHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur E_ERROR si la fonction de rappel ne peut être appelée ou n'a pas été spécifiée.

Voir aussi



OAuthProvider::checkOAuthRequest

(PECL OAuth >= 1.0.0)

OAuthProvider::checkOAuthRequestVérifie une requête OAuth

Description

public void OAuthProvider::checkOAuthRequest ([ string $uri [, string $method ]] )

Vérifie une requête OAuth.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

uri

L'URI, optionnel, ou un point final.

method

La méthode HTTP. Optionnel ; passez-y une constante parmi les constantes OAuth OAUTH_HTTP_METHOD_* .

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur de niveau E_ERROR si la méthode HTTP ne peut être détectée.

Voir aussi



OAuthProvider::__construct

(PECL OAuth >= 1.0.0)

OAuthProvider::__constructConstruit un nouvel objet OAuthProvider

Description

OAuthProvider::__construct ([ array $params_array ] )

Initie un nouvel object OAuthProvider.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

params_array

Le fait de définir des paramètres optionnels est limité au SAPI CLI.

Valeurs de retour

Un object OAuthProvider.

Exemples

Exemple #1 Exemple avec OAuthProvider::__construct()

<?php
try {

    
$op = new OAuthProvider();

    
// Utilisation des fonctions de rappel définies par l'utilisateur
    
$op->consumerHandler(array($this'lookupConsumer')); 
    
$op->timestampNonceHandler(array($this'timestampNonceChecker'));
    
$op->tokenHandler(array($this'myTokenHandler'));

    
// Ignore le paramètre foo_uri
    
$op->setParam('foo_uri'NULL);

    
// Aucun jeton nécessaire pour ce point final
    
$op->setRequestTokenPath('/v1/oauth/request_token');

    
$op->checkOAuthRequest();

} catch (
OAuthException $e) {

    echo 
OAuthProvider::reportProblem($e);
}
?>

Voir aussi



OAuthProvider::consumerHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::consumerHandlerDéfinit la fonction de rappel consumerHandler

Description

public void OAuthProvider::consumerHandler ( callback $callback_function )

Définit la fonction de rappel consumer handler, qui pourra ensuite être appelée avec la méthode OAuthProvider::callConsumerHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

callback_function

Le nom de la fonction de rappel.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec OAuthProvider::consumerHandler()

<?php
function lookupConsumer($provider) {

    if (
$provider->consumer_key === 'unknown') {
        return 
OAUTH_CONSUMER_KEY_UNKNOWN;
    } else if(
$provider->consumer_key == 'blacklisted' || $provider->consumer_key === 'throttled') {
        return 
OAUTH_CONSUMER_KEY_REFUSED;
    }

    
$provider->consumer_secret "the_consumers_secret";

    return 
OAUTH_OK;
}
?>

Voir aussi



OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateTokenGénère un jeton aléatoire

Description

final public static string OAuthProvider::generateToken ( int $size [, bool $strong = false ] )

Génère une chaîne de caractères d'octets pseudo-aléatoires.

Liste de paramètres

size

La longueur désirée du jeton, en octets.

strong

Définit à TRUE, signifie que /dev/random sera utilisé, sinon, ce sera /dev/urandom. Ce paramètre est ignoré sous Windows.

Valeurs de retour

Le jeton généré, sous la forme d'une chaîne de caractères d'octets.

Erreurs / Exceptions

Si le paramètre strong vaut TRUE, alors, une alerte de niveau E_WARNING sera émise lorsque la fonction de rappel rand() est utilisée pour compléter les octets aléatoires manquant (i.e., lorsqu'il n'y a pas assez de données aléatoires initialement).

Exemples

Exemple #1 Exemple avec OAuthProvider::generateToken()

<?php
$p 
= new OAuthProvider();

$t $p->generateToken(4);

echo 
strlen($t),  PHP_EOL;
echo 
bin2hex($t), PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

4
b6a82c27

Notes

Note:

Lorsqu'il n'y a pas assez de données aléatoires de disponible sur le système, cette fonction complètera les octets manquant en utilisant la fonction PHP interne rand().

Voir aussi



OAuthProvider::is2LeggedEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::is2LeggedEndpointis2LeggedEndpoint

Description

public void OAuthProvider::is2LeggedEndpoint ( mixed $params_array )

Le flux 2-legged, ou la demande de signature. Il ne requière pas de jeton.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

params_array

Valeurs de retour

Un object OAuthProvider .

Exemples

Exemple #1 Exemple avec OAuthProvider::is2LeggedEndpoint()

<?php

$provider 
= new OAuthProvider();

$provider->is2LeggedEndpoint(true);

?>

Voir aussi



OAuthProvider::isRequestTokenEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::isRequestTokenEndpointDéfinit isRequestTokenEndpoint

Description

public void OAuthProvider::isRequestTokenEndpoint ( bool $will_issue_request_token )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

will_issue_request_token

Définit s'il émettra une demande de jeton ou non, ceci déterminant si la méthode OAuthProvider::tokenHandler() doit être appelée.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



OAuthProvider::removeRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::removeRequiredParameterSupprime un paramètre

Description

final public bool OAuthProvider::removeRequiredParameter ( string $req_params )

Supprime un paramètre.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

req_params

Le paramètre à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



OAuthProvider::reportProblem

(PECL OAuth >= 1.0.0)

OAuthProvider::reportProblemRapporte un problème

Description

final public static string OAuthProvider::reportProblem ( string $oauthexception [, bool $send_headers = true ] )

Rapporte un problème sous la forme d'une exception OAuthException ; les problèmes possibles sont listés dans la section des constantes OAuth.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

oauthexception

L'exception OAuthException.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



OAuthProvider::setParam

(PECL OAuth >= 1.0.0)

OAuthProvider::setParamDéfinit un paramètre

Description

final public bool OAuthProvider::setParam ( string $param_key [, mixed $param_val ] )

Définit un paramètre.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

param_key

La clé du paramètre.

param_val

La valeur du paramètre ; optionnelle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



OAuthProvider::setRequestTokenPath

(PECL OAuth >= 1.0.0)

OAuthProvider::setRequestTokenPathDéfinit le chemin du jeton demandé

Description

final public bool OAuthProvider::setRequestTokenPath ( string $path )

Définit le chemin du jeton demandé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

path

Le chemin.

Valeurs de retour

TRUE

Voir aussi



OAuthProvider::timestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::timestampNonceHandlerDéfinit le gestionnaire de rappel timestampNonceHandler

Description

public void OAuthProvider::timestampNonceHandler ( callback $callback_function )

Définit le gestionnaire de rappel timestampNonceHandler, qui sera appelé plus tard avec la méthode OAuthProvider::callTimestampNonceHandler(). Les erreurs en rapport avec timestamp/nonce seront émises via ce gestionnaire de rappel.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

callback_function

Le nom de la fonction callback.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec OAuthProvider::timestampNonceHandler()

<?php
function timestampNonceChecker($provider) {

    if (
$provider->nonce === 'bad') {
        return 
OAUTH_BAD_NONCE;
    } elseif (
$provider->timestamp == '0') {
        return 
OAUTH_BAD_TIMESTAMP;
    }
    
    return 
OAUTH_OK;
}
?>

Voir aussi



OAuthProvider::tokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::tokenHandlerDéfinit le gestionnaire de rappel tokenHandler

Description

public void OAuthProvider::tokenHandler ( callback $callback_function )

Définit le gestionnaire de rappel tokenHandler, qui sera appelé plus tard avec la méthode OAuthProvider::callTokenHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

callback_function

Le nom de la fonction callback.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec OAuthProvider::tokenHandler()

<?php
function tokenHandler($provider) {
    
    if (
$provider->token === 'rejected') {
        return 
OAUTH_TOKEN_REJECTED;
    } elseif (
$provider->token === 'revoked') {
        return 
OAUTH_TOKEN_REVOKED;
    }

    
$provider->token_secret "the_tokens_secret";
    return 
OAUTH_OK;
}
?>

Voir aussi


Sommaire



La classe OAuthException

Introduction

Cette exception est émise quand des erreurs exceptionnelles surviennent durant l'utilisation de l'extension OAuth, et contient des informations pratiques pour déboguer.

Synopsis de la classe

OAuthException extends Exception {
/* Propriétés */
public $lastResponse ;
public $debugInfo ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

message

Un message lisible sur le problème rencontré

code

Code de l'exception

file

Fichier où l'exception a été émise

line

Ligne où l'exception a été émise

lastResponse

La réponse à l'exception, s'il y en a eu une

debugInfo




SCA


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

SCA pour PHP rend possible aux programmeurs PHP l'utilisation de composants réutilisables, qui peuvent être appelées de différentes façons, avec une interface identique et un minimum de tracas. Actuellement, les composants peuvent s'appeller l'un l'autre, localement ou via des services Web, mais a l'avenir, il est prévu de mettre en place d'autres moyens de communication. SCA fournit aux programmeurs une approche aussi naturelle que possible pour cela.

Les composants SCA utilisent des annotations style phpDocumentor (voyez http://www.phpdoc.org/) pour déclarer des dépendances avec les autres composants SCA ou les services Web. L'exécuteur SCA de PHP résout ces dépendances à l'exécution, pour les autres composants, et permet au développeur PHP de se concentrer sur la logique métier, plutôt que sur la localisation des ressources.

Le modèle SCA pour PHP peut être étendu pour supporter de nombreux autres types de services, tels que REST et Atompub. Cependant, les services Web, et plus exactement, les services SOAP sur HTTP avec document WSDL) sont les seuls qui soient spécifiés.

Les composants utilisent aussi les annotations pour définir les interfaces avec lesquels ils exposent leurs services. L'exécuteur SCA pour PHP va automatiquement générer le document WSDL pour ces annotations, afin que les composants puissent exposer facilement leurs services Web. Ces annotations sont une extension naturelle de phpDocumentor. Déployer un service Web peut alors êtr aussi simple que de placer un composant PHP dans la racine Web d'un serveur Web.

Les composants utilisent aussi les annotations pour spécifier les structures de données (exprimées avec des types complexe de schéma XML), qui sont gérés avec Service Data Objects (SDOs).

Un script PHP qui n'est pas un composant SCA et qui ne contient aucune annotation peut utiliser les services d'un composant SCA. Un script PHP ou un composant peut faire des appels à un service Web qui n'utilise pas SCA, mais en utilisant le même système d'appels et d'annotations pour obtenir une référence.

Tout d'abord, nous présent un composant SCA simple, ConvertedStockQuote, qui illustre l'utilisation de SCA pour PHP. Il dispose d'une méthode getQuote(), qui, à partir d'un identifiant d'actions retourne le cours de l'action, converti dans une devise donnée. Nous utiliserons cet exemple comme base pour présenter SCA pour PHP dans le reste de la documentation.

Exemple #1 Exemple simple avec SCA

<?php

include "SCA/SCA.php";

/**
 * Calcule le prix d'une action, à partir de son symbole, dans une devise.
 *
 * @service
 * @binding.soap
 */
class ConvertedStockQuote {

    
/**
     * Le service de taux de change à utiliser
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    
public $exchange_rate;

    
/**
     * Le service de cotation des actions à utiliser
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    
public $stock_quote;

    
/**
     * Lit le prix d'une action, pour un symbole, dans une devise
     *
     * @param string $ticker Le symbole.
     * @param string $currency La devise.
     * @return float Le cours de l'action.
     */
    
function getQuote($ticker$currency)
    {
        
$quote  $this->stock_quote->getQuote($ticker);
        
$rate   $this->exchange_rate->getRate($currency);
        return  
$rate $quote;
    }
}
?>

Dans cet exemple, nous voyons que le composant SCA est implémenté à l'aide d'une classe PHP, et qu'il inclut SCA.php. La classe contient un mélange de logique métier et de références à d'autres services et composants. Dans la méthode illustrée, getQuote() il n'y a que de la logique métier, mais elle repose sur les variables $stock_quote et $exchange_rate qui ont été initialisées. Ces variables font référence à deux autres composants, et seront initialisées par l'exécutable SCA, via des proxy pour ces deux services, à chaque fois que notre composant est exécuté. Les annotations de ces deux services montrent que l'un est un service local, qui sera appelé avec le même exécutable PHP, et que l'autre est un composant distant, qui sera appelé avec une requête SOAP. Ce composant expose alors la méthode getQuote(), localement et comme service Web, pour que l'on puisse y accéder localement et à distance.



Installation/Configuration

Sommaire


Pré-requis

Si vous voulez utiliser SCA pour produire ou consommer des services Web, vous aurez besoin de PHP 5.2.0 ou plus récent, compilé avec l'extension SOAP. Si vous voulez simplement utiliser les composants locaux, et que vous n'avez pas bespoin des services Web, alors vous pourrez utiliser une version 5.1.6 de PHP et plus récent.

SCA est distribué avec SDO, via un paquet PECL. Voyez http://www.php.net/sdo#sdo.installation pour installer le paquet SCA_SDO depuis PECL. Le code SCA doit être dans l'include_path de votre isntallation PHP : par exemple, s'il a été installé dans /usr/local/lib/php/SCA, la directive include_path doit inclure /usr/local/lib/php



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sca.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire

Les exemples de la section suivante illustrent différents aspects de PHP pour SCA :

  • Comment les annotations PHP peuvent être utilisées pour définir des classes PHP comme des composants SCA et comment les annotations sont utilisées pour définir des services.

  • Comment les composants SCA peuvent être exposés comme services Web.

  • Comment un composant SCA peut utiliser un service Web, qu'il soit fournit par un autre composant SCA ou par un autre service qui n'a pas de rapport avec SCA.

  • Comment un composant SCA peut appeler un autre composant SCA localement, avec le même processus et la même pile d'appels.

  • Comment un script client qui n'est pas un composant SCA peut utiliser la fonction getService() pour obtenir un proxy d'accès à un composant SCA.

  • Comment des structures de données telles que Adresses, ou Commandes sont représentées comme des Service Data Objects (SDO), et gérées.

  • Comment des composants SCA sont déployés, et en particulier, comment et quand des fichiers WSDL sont générés pour un service.

  • Comment les paramètres sont toujours passés par valeur (et non par référence), entre les composants, même si les appels sont locaux. Cela garantit que la sémantique de l'appel ne change pas, en fonction de l'emplacement du composant.

  • Comment les paramètres de position d'un service sont supportés, quand le WSDL sous-jacent est un document littéral, et qui ne supporte que des paramètres nommés.

  • Comment les exceptions métier et d'exécution sont gérées.


La structure d'un composant de service

Un composant de service est implémenté sous forme de classe. Pour l'identifier, il doit contenir une annotation @service. L'exécutable SCA va utiliser le nom du fichier de script pour déterminer le nom du composant, par convention. La classe et le fichier de script doivent donc porter le même nom.

Les composants PHP SCA doivent toujours exposer un service, et il n'y a aucun moyen pour un composant d'être appelé autrement que comme le résultat d'un service Web, ou bien directement par un autre composant ou un script. Pour cette raison, un composant PHP SCA valide va toujours contenir une annotation @service et au moins une méthode publique.

Chaque composant SCA requiert que le script SCA.php soit inclus. En plus de contenir la définition de la classe SCA, ce script contient du code PHP qui est exécuté à chaque appel, et qui est responsable du comportement général du composant.

Attention

Il est très important que les autres inclusions de votre script interviennent avant celle du fichier SCA.php. S'il y a des inclusions après SCA.php, ils ne seront pas pris en compte lorsque l'exécutable SCA traitera votre classe.

L'exemple ci-dessous montre la structure générale.

Exemple #1 Structure d'un composant SCA pour PHP

<?php

// les inclusions

include "SCA/SCA.php";

/**
 * @service
 */

class ConvertedStockQuote {

       
// variables, logique métier, inclusion d'au moins une méthode publique

}
?>



Obtention d'un proxy pour un autre composant de service

Un composant SCA peut appeler le service proposé par un autre composant SCA. Le service que fournit un composant est constitué de toutes ses méthodes publiques. SCA pour PHP propose deux méthodes pour que les composants s'appellent les uns les autres : soit localement (i.e., via le même exécutable PHP, et avec la même pile), ou bien à distance, via un service Web.

Afin qu'un composant en appelle un autre, le composant d'appel a besoin d'un proxy jusqu'au composant appelé. Ce proxy est généralement fourni sous forme de variable dans le composant appelant, même si les proxy peuvent être obtenu via la fonction SCA::getService()(). Quand un composant est construit, les proxy sont constitués pour toute variable d'instance qui fait référence à un autre composant, et ces proxy sont injectés dans les variables. Les proxy sont toujours utilisé, que le composant soit distant ou locale, afin de propose une interface d'appel identique, quelque soit la localisation des composants. Les proxy savent comment localiser un composant, et leur passer les appels.

Les variables d'instance qui sont destinées à contenir les proxy sont identifiées par deux annotations PHPDocumentor : @reference et @binding. Ces deux annotations sont rangées dans la section de documentation d'une classe, tel que le montre le code ci-dessous.

L'annotation @reference pour une variable d'instance indique que la variable doit être initialisée avec un proxy de composant.

L'annotation @binding prend deux formes : @binding.php et @binding.soap. Elles indiquent que le proxy est soit local, soit un service Web distant, respectivement. Pour les deux @binding.php et @binding.soap, l'annotation indique l'URI cible.

A ce moment, avec la méthode de spécification des dépendances via les annotations, le seul moyen de modifier la cible d'une référence est de modifier l'annotation dans le composant.

Dans notre exemple, la variable $exchange_rate est initialisée avec un proxy vers le composant ExchangeRate, à chaque fois qu'une instance de ConvertedStockQuote est construite.

Exemple #1 Obtention d'un proxy pour une classe PHP locale

<?php 
   
/**
     * Le service de change à utiliser
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    
public $exchange_rate;
?>

Pour @binding.php, l'URI identifie la localisation du script qui contient l'implémentation du composant. Le composant sera appelé localement. Le service fournit est un jeu de méthodes publiques dans le composant. L'URI doit être un simple chemin, absolu ou relatif. Le composant sera chargé avec une fonction include() de PHP, après avoir vérifié que le composant n'est pas chargé, avec class_exists(). Si l'URI est relative, elle est résolue relativement au composant qui contient l'annotation. Notez que cela est différent du comportement habituel de PHP, où les scripts cherchent les fichiers dans l'include_path. Ceci est nécessaire pour fournir une indépendance de localisation dans les références.

Si ce service ExchangeRate était distant, et qu'il était appelé comme un service Web, seule la ligne @binding aurait changé. Au lieu de donner la localisation d'une classe PHP, il faudrait donner la localisation d'un fichier WSDL, décrivant un service Web. Dans notre exemple de composant, ceci est illustré par la seconde référence :

Exemple #2 Obtention d'un proxy pour un service Web

<?php
/**
     * Le service de cotation des actions à utiliser
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    
public $stock_quote;
?>

Le composant StockQuote sera appelé comme un service Web. Dans ce cas, l'URI du WSDL peut être un simple chemin, ou utiliser un gestionnaire de flux PHP, et commencer, par exemple, avec file:// ou http://. Dans l'événement où c'est un simple chemin de fichiers, il peut être absolu ou relatif, et dans le cas d'un chemin relatif, il sera résolu relativement au fichier qui contient l'annotation. Notez que c'est le même comportement que pour @binding.php, et que c'est différent du comportement habituel de PHP.



Appel d'un autre composant de service

L'exemple ConvertedStockQuote fait aussi appel à des proxy pour deux composants dont il dépend.

Exemple #1 Appels de services

<?php
$quote  
$this->stock_quote->getQuote($ticker);
$rate   $this->exchange_rate->getRate($currency);
?>

L'appel du service StockQuote est un appel à un service local; l'appel à ExchangeRate est un appel à un service distant. Notez que ces deux appels se ressemblent beaucoup, même si l'un est local et l'autre distant.

Les proxy ont été injecté pour s'assurer que les appels à ces deux composants sont bien les mêmes, quelle que soit leur nature. Par exemple, le proxy d'un service local fait une copie des arguments, et ne fait que passer ces copies, afin de s'assurer que les appels sont bien fait par valeur, comme cela serait le cas dans un service Web. De même, le proxy d'un service Web prend les arguments dans une liste à position, et s'assurent qu'ils sont correctement transmis dans une requête SOAP, puis convertis de nouveau en variable, au retour.

Dans l'exemple ci-dessus, $ticker et $currency sont clairement des valeurs PHP scalaires. Les composants peuvent passer des types scalaires, chaîne de caractères, entier, nombre décimal et booléen, mais les structures de données pour les appels de services sont toujours passés comme Service Data Objects (SDOs). Une section ultérieur montre comment un composant peut créer un SDO à passer à un service local, ou distant. La documentation PHP montre comment manipuler les objets SDO.



Localisation et appel d'un service, depuis un script qui n'est pas un composant SCA

Les composants SCA peuvent obtenir des proxy d'autres composants ou services qui ne sont pas annotés avec @reference, mais ce n'est pas possible pour un script qui n'est pas lui-même un composant. Un script client qui n'est pas un client doit utiliser la fonction statique SCA::getService() pour obtenir un proxy au service, qu'il soit local ou distant. La méthode getService() prendre une URI comme argument. Typiquement, ceci est la localisation d'un script PHP contenant un composant, ou un fichier WSDL, et il est utilisé exactement comme la cible d'une annotation @binding, décrite dans la section précédente : c'est à dire, les URI relatives sont décrites par rapport au fichier de l'annotation, et non pas l'include_path de PHP.

Par exemple, un script qui a besoin d'obtenir des proxy pour ExchangeRate et StockQuote mais n'est pas un composant peut utiliser la fonction SCA::getService() comme ceci :

Exemple #1 Obtention d'un proxy avec getService

<?php
$exchange_rate 
SCA::getService('../ExchangeRate/ExchangeRate.php');
$stock_quote   SCA::getService('../StockQuote/StockQuote.wsdl');
?>

Les méthodes d'un service peuvent être appelé sur un proxy ainsi retourné, tout comme elles peuvent l'être sur un composant.

Exemple #2 Faire des appels sur un proxy

<?php
$quote  
$stock_quote->getQuote($ticker);
$rate   $exchange_rate->getRate($currency);
?>



Exposer un composant comme un service Web

SCA pour PHP peut générer des fichiers WSDL à partir des annotations dans un composant, ce qui fait qu'il peut être facilement déployé et exposé comme un service Web. Pour fournir à SCA les informations dont il a besoin pour produire le WSDL, il est nécessaire d'ajouter l'annotation @binding.soap dans l'annotation @service et de spécifier les paramètres et les valeurs de retour avec les annotations @param et @return. Ces annotations seront lues quand le fichier WSDL sera produit, et l'ordre et les types des paramètres va déterminer le contenu de la section <schema> du fichier WSDL.

SCA pour PHP produit toujours des fichiers WSDL pour les composants qui exposent des services Web. Notez que cela n'empêche pas les composants de consommer des services Web qui ne sont pas des composants SCA, et qui sont documentés avec des fichiers WDSL qui ne sont pas dans le même format.

Les types scalaires qui peuvent être utilisé dans les annotations @param sont les quatres types scalaires communs de PHP : booléen, entier, nombre décimal et chaîne de caractères. Ils sont simplement transformés en un équivalent au format XML. L'exemple ci-dessous, qui est une implémentation triviale du service StockQuote avec des appels à ConvertedStockQuote illustre l'utilisation de chaîne de caractères et nombre décimal.

Exemple #1 Service StockQuote

<?php

include "SCA/SCA.php";

/**
 * Implémentation d'un service distant StockQuote Web.
 *
 * @service
 * @binding.soap
 *
 */
class StockQuote {

    
/**
     * Lit une cotation pour un symbole
     *
     * @param string $ticker Le symbole de l'action
     * @return float La cotation de l'action
     */
    
function getQuote($ticker) {
        return 
80.9;
  }
}
?>

Un fichier WSDL, semblable au document suivant (mais avec une localisation de service autre que 'localhost', probablement) sera généré pour le service :

Exemple #2 Generated WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xsi:type="tDefinitions"
    xmlns:tns2="http://StockQuote" xmlns:tns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://StockQuote">
  <types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://StockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

  <message name="getQuoteRequest">
    <part name="getQuoteRequest" element="tns2:getQuote"/>
  </message>
  <message name="getQuoteResponse">
    <part name="return" element="tns2:getQuoteResponse"/>
  </message>
  <portType name="StockQuotePortType">
    <operation name="getQuote">
      <input message="tns2:getQuoteRequest"/>
      <output message="tns2:getQuoteResponse"/>
    </operation>
  </portType>
  <binding name="StockQuoteBinding" type="tns2:StockQuotePortType">
    <operation name="getQuote">
      <input>
        <tns3:body xsi:type="tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tBody" use="literal"/>
      </output>
      <tns3:operation xsi:type="tOperation" soapAction=""/>
    </operation>
    <tns3:binding xsi:type="tBinding" transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  </binding>
  <service name="StockQuoteService">
    <port name="StockQuotePort" binding="tns2:StockQuoteBinding">
      <tns3:address xsi:type="tAddress" location="http://localhost/StockQuote/StockQuote.php"/>
    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->



Déploiement d'un composant SCA

Il n'y pas d'instruction particulière pour déployer un composant PHP SCA. Il est suffisant de placer le script PHP dans le serveur Web, comme un autre script PHP. C'est l'exécutable SCA::initComponent() dans le composant qui va l'exécuter correctement, quelque soit la méthode utilisée, et qui est responsable de proposer la réponse adaptée à la situation, que ce soit un appel local, Web service ou une requête WDSL.



Obtenir le WSDL d'un composant SCA qui offre un service Web

Les composant SCA qui exposent un service Web (i.e. qui ont une annotation @binding.soap) vont retourner une définition WSDL en réponse à une requête HTTP avec un paramètre GET "wsdl". L'approche habituelle pour cela est d'ajouter "?wsdl" à la fin de l'URL. L'exemple ci-dessous utilise la fonction file_get_contents() pour obtenir un fichier WSDL d'un service Web, et l'écrit dans un fichier temporaire, avant de demander un proxy. Vous pouvez évidemment obtenir le fichier WDSL dans votre navigateur, ou par d'autres moyens, et le sauver vous-mêmes.

Exemple #1 WSDL généré

<?php
$wsdl = file_get_contents('http://www.example.com/Services/Example.php?wsdl');
file_put_contents("service.wsdl",$wsdl); //write the wsdl to a file
$service = SCA::getService('service.wsdl'); 
?>

Note : si le fichier WSDL requiert des importations de xsd, elles devront être lus séparément.



Comprendre la génération du fichier WSDL

SCA pour PHP génère un fichier WSDL pour les composants qui contiennent une annotation @binding.soap, après l'annotation @service. Pour générer le service, SCA analyse la classe, et les annotations @param et @return pour chaque méthode publique, ainsi que les annotations de @types dans le composant. Les informations des annotations @param et @return sont utilisées pour construire la section <types> du fichier WDSL. Toutes les annotations @types qui spécifient un schéma distinct engendreront un élément <import> pour ce schéma dans le WSDL.

Attribut de localisation pour l'élément <service>

A la fin du fichier WSDL, l'élément <service> utilise un attribut de localisation 'location', pour identifier l'URL du service. Par exemple :

Exemple #1 Attribut location

<service name="ConvertedStockQuote"
...
location="http://localhost/ConvertedStockQuote/ConvertedStockQuote.php"/>

Notez que cette localisation est relative à la racine du document du serveur Web, et ne peut pas être connue à l'avance. Elle ne peut être résolue que lorsque le composant est mis en place dans un serveur Web en fonctionnement, lorsque le nom d'hôte et le port peuvent être connus et placés dans le fichier WDSL. Des informations de l'URL appelante sont aussi utilisés, ce qui fait que si le WSDL est produit en réponse à la requête http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php?wsdl, une localisation de http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php sera insérée dans l'attribut.

Inclusion des documents dans le WSDL et paramètres positionnés

SCA pour PHP produit des fichiers WSDL en incluant les documents et littéraux. Ce style encadre les paramètres et les valeurs de retour d'une méthode dans un 'gestionnaire' qui est nommé à partir de la méthode. L'élément <types> au début du fichier WSDL définit chacun de ces gestionnaires. Si nous étudions la méthode getQuote() de notre exemple ConvertedStockQuote :

Exemple #2 une méthode avec deux arguments

<?php
   
/**
     * Lit une cotation pour une action à partir de son symbole et dans une devise
     *
     * @param string $ticker Le symbole
     * @param string $currency La devise cible
     * @return float La valeur de l'action dans la devise demandée
     */
    
function getQuote($ticker$currency)
    {
        
$quote  $this->stock_quote->getQuote($ticker);
        
$rate   $this->exchange_rate->getRate($currency);
        return  
$rate $quote;
    }
?>

Pour définir cette méthode, le fichier WSDL va donner des noms à la méthode et aux paramètres, puis donner au schéma XML le type des paramètres. La section de type du fichier WSDL produit ressemble à ceci :

Exemple #3 Section types avec paramètres nommés

<types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://ConvertedStockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
            <xs:element name="currency" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

L'exécutable SCA gère la conversion de la liste des paramètres positionnés en une requête SOAP, puis de nouveau en liste de paramètres, au retour de la requête. Pour comprendre où cela est important, vous pouvez étudier comment PHP qui utiliserait une autre interface pour faire un appel SOAP devrait construire la liste de paramètres. Un script PHP utilisant la classe SoapClient, a besoin de passer les paramètres "ticker" et "currency", peut-être sous forme de tableau associatif. Pour cela, il faudrait que les appels à des services Web ou des fonctions locales se fassent avec des interfaces de programmation différente, et ce n'est pas voulu.

Quand SCA génère un fichier WSDL pour un composant SCA, il inclut des commentaires dans le WDSL qui indique le ce composant est un composant SCA. Dans ce cas, quand un composant SCA est appelé par un autre composant via un service Web, l'exécutable SCA prend la liste de paramètres et assigne les valeurs une à une dans le message SOAP. Par exemple, un appelle à la méthode getQuote() définie ci-dessus qui passe les valeurs 'IBM' et 'USD' ressemble à ceci :

<?php
  $quote 
$remote_service->getQuote('IBM','USD');
?>

Elle produira un message SOAP qui contient ce code XML :

<getQuote>
  <ticker>IBM</ticker>
  <currency>USD</currency>
</getQuote>

Dans le composant de réception, l'exécutable SCA prend les paramètres dans le même ordre, et forme une liste de paramètres positionnés, en reformant la liste des arguments ('IBM','USD').

Attention

Dans les deux cas, l'exécutable SCA s'appuie sur l'ordre dans lequel les arguments sont placés dans le message SOAP : cet ordre doit correspondre à l'ordre d'appel des paramètres dans la fonction. Cet ordre est finalement défini par l'ordre des annotations @param : il déterminent l'ordre dans lequel les paramètres apparaissent dans le fichier WSDL, et dans le message SOAP. Par conséquent, il est essentiel que cet ordre d'annotations @param correspondent aux paramètres de la méthode publique.



Travailler avec des structures de données

Les composants SCA peuvent échanger les quatre types scalaires de PHP : booléen, entier, nombre décimal et chaîne de caractères, mais aussi passer des structures de données : SCA utilise les Service Data Objects (SDOs). Les SDO sont décrits en détails dans les pages SDO de ce manuel. Les lecteurs habitués aux SDO sauront qu'ils sont adaptés à la représentation de toutes sortes de données structurées et semi-structurées, qui sont souvent modélisées en CML, et qui se linéarises naturellement pour passer entre composants distants. Les SDO sont actuellement le seul moyen pour échanger des structures de données. Il n'est pas possible d'échanger des objets PHP ou des tableaux.

L'exécutable SCA s'assure toujours que les données sont passées par valeur, même dans les appels locaux. Pour cela, SCA copie les SDO dans la liste de paramètre avant de les passer, comme il le fait pour les valeurs scalaires.

Comment les structures de données sont définies par SCA

Actuellement, le seul mécanisme pour spécifier la localisation d'une définition de structure de données est de spécifier un type dans un schéma XML. Cependant, à l'avenir, il est peut être possible de définir des types d'une autre manière, comme en se basant sur des classes PHP ou des interfaces, ou encore des tableaux associatifs.

Pour illustrer l'utilisation de SDO, voici un nouveau composant. Le service PortfolioMangement retourne un SDO qui représente un porte-feuille d'actions, pour un client donné.

Exemple #1 Un composant SCA qui utilise des SDO

<?php

include "SCA/SCA.php";

/**
 * Gestion de porte-feuille d'un client
 *
 * @service
 * @binding.soap
 *
 * @types http://www.example.org/Portfolio PortfolioTypes.xsd
 *
 */
class PortfolioManagement {

    
/**
     * Lit le porte-feuille d'un client donné.
     *
     * @param integer $customer_id L'identifiant du client
     * @return Portfolio http://www.example.org/Portfolio Le porte-feuille d'actions (symboles et quantités)
     */
    
function getPortfolio($customer_id) {
        
// Supposons que nous l'avons lu dans la base de données
        
$portfolio SCA::createDataObject('http://www.example.org/Portfolio''Portfolio');
        
$holding $portfolio->createDataObject('holding');
        
$holding->ticker 'AAPL';
        
$holding->number 100.5;
        
$holding $portfolio->createDataObject('holding');
        
$holding->ticker 'INTL';
        
$holding->number 100.5;
        
$holding $portfolio->createDataObject('holding');
        
$holding->ticker 'IBM';
        
$holding->number 100.5;
        return 
$portfolio;
    }

}
?>

L'annotation @types :

<?php
@types http://www.example.org/Portfolio PortfolioTypes.xsd
?>

elle indique que les types sont de l'espace de noms http://www.example.org/Portfolio seront disponibles dans le schéma PortfolioTypes.xsd. Le fichier WSDL produit va reproduire ces informations avec une commande d'importation comme ceci :

<xs:import schemaLocation="PortfolioTypes.xsd"
                      namespace="http://www.example.org/Portfolio"/>

Ce qui fait que l'URI, absolue ou relative, doit pouvoir être résolue lors de l'inclusion dans l'attribut schemaLocation.

Création de SDO

Les lecteurs familiers avec la notion de SDO savent qu'ils doivent toujours être créés en conformité avec une description de la structure autorisée (parfois aussi appelé schéma, ou modèle). Et que au lieu de créer directement le SDO en utilisant l'opérateur 'new', une certaine forme d'usine d'objet doit être utilisée, mais que, parfois, et notamment pour obtenir le premier objet, il faut autre chose qu'une usine.

En SCA, soit c'est la classe d'exécution ou les proxy, qu'ils soient locaux ou distants, qui servent d'usine à SDO. Les critères de choix entre les deux sont décrits dans les prochaines sections.

Nous allons passer à un autre exemple pour illustrer la création de SDO, afin de la passer à un service et pour en recueillir un.

Création de SDO à passer à un service

Un utilisateur de service qui requiert une structure de données doit utiliser un proxy vers ce service pour avoir une usine à données qui produira les SDO désirés. Par exemple, supposons qu'un composant utilise un proxy pour un service vers un carnet d'adresse AddressBook local.

<?php
/**
 * @reference
 * @binding.local AddressBook.php
 */
$address_book;
?>

Le composant AddressBook qui doit être utilisé est défini comme ceci :

<?php
/**
* @service
* @binding.soap
* @types http://addressbook ../AddressBook/AddressBook.xsd
*/
class AddressBook {

    
/**
     * @param personType $person http://addressbook (un objet de personne)
     * @return addressType http://addressbook (un objet d'adress pour l'objet de personne)
     */
    
function lookupAddress($person)  {
        ...
    }
}
?>

Le composant AddressBook fournit une méthode de service appelée lookupAddress() qui utilise les types du schéma http://addressbook. La méthode lookupAddress prend une structure personType et retourne un objet addressType. Les deux types sont définis dans le schéma addressbook.xsd.

Une fois que le composant qui veut utiliser le composant AddressBook a été construit, de manière à ce que la variable d'instance $address_book contiennent un proxy vers le service, le composant appelant peut utiliser ce proxy dans $address_book pour créer un SDO de personne, comme ceci :

<?php
$william_shakespeare        
$address_book->createDataObject('http://addressbook','personType');
$william_shakespeare ->name "William Shakespeare";
$address                    $address_book->lookupAddress($william_shakespeare);
?>

Notez que l'utilisation du proxy pour produire un SDO n'est pas limitée aux seuls composants SCA. Si un service est appelé depuis un script PHP ordinaire, et que le proxy a été obtenu via la méthode getService() alors la même approche est utilisée.

<?php
$address_book 
SCA::getService('AddressBook.php');
$william_shakespeare $address_book->createDataObject('http://addressbook','personType');
?>

Création d'un SDO à retourner d'un composant

Un composant qui a besoin de créer un objet de données à retourner à son appelant ne dispose pas d'un proxy à utiliser comme usine à données, et dans ce cas, il utilise la méthode statique createDataObject() du fichier SCA.php. Ainsi, si le composant AddressBook décrit ci-dessus a besoin de créer un objet de type addressType dans l'espace de noms http://addressbook, il peut le faire comme ceci :

<?php
$address 
SCA::createDataObject('http://addressbook','addressType');
?>



Gestion d'erreurs

Cette section décrit comment sont gérées les erreurs. Il y a deux types d'erreur :

  • Les exceptions de l'exécutable SCA sont celles qui signalent des problèmes dans la gestion de l'exécution des composants, et dans l'interaction avec les services. Cela peut survenir à cause de problèmes de configuration réseau.

  • Les exceptions métier sont celles qui sont définies par le programmeur. Elles étendent la classe PHP Exception, et sont émises puis interceptées explicitement comme partie intégrante de la logique métier.

Gestion des erreurs d'exécution

Il y a deux types d'erreur SCA :

  • SCA_RuntimeException : elle signale un problème dans ou survenant dans l'exécutable SCA. Elle peut être émise pour diverses raisons, et certaines d'entre elles peuvent être indépendantes de la connexion à un service local ou distant : une erreur dans l'une des annotations un fichier WSDL ou PHP manquant, etc. Dans le cas des services Web, une exception SCA_RuntimeException peut aussi être émise si une erreur SoapFault a été émise par un service Web et que le code d'erreur SoapFault indique qu'une nouvelle tentative a peu de chances d'aboutir.

  • SCA_ServiceUnavailableException : cette classe est une sous-classe de SCA_RuntimeException, et signale un problème lors de la connexion ou de l'utilisation d'un service distant, mais une erreur qui peut être dépassée si une nouvelle tentative est faite. Dans le cas des services Web, cette exception est émise si une erreur SoapFault est reçue avec un code qui indique qu'une nouvelle tentative pourrait être couronnée de succès.

Gestion des exceptions métier

Les exceptions métier peuvent être définies et émise par un composant de manière classique, indépendamment du fait que le service a été appelé localement ou à distance. L'exécutable SCA n'intercepte pas les exceptions locales, ce qui fait qu'elles seront acheminées au composant appelant de manière classique. Si un composant a été appelé comme service Web, l'exécutable SCA va les intercepter, et s'assurera qu'elles sont transmises au composant appelant, puis émise à nouveau. En supposant que le script appelant a une définition de l'exception métier (c'est à dire qu'il est capable d'inclure un fichier contenant la définition PHP de l'exception), la nouvelle exception sera émise avec les mêmes détails que l'originale, de qui fait que les informations de getLine() et getFile() contiendront les indications d'origine de l'erreur dans les fichiers du service appelé. Cette exception sera passée via le champ détail de la classe SoapFault.




Fonctions SCA

Classes pré-définies

La plupart de l'interface SCA se définit via les annotations dans les composants SCA, ce qui fait qu'il y a peu de classes et de méthodes. La seule classe SCA que les scripts ou les composants peuvent appeler est la classe SCA elle-même, et les classe proxy SCA_LocalProxy et SCA_SoapProxy.

SCA

L'essentiel du travail de la classe SCA est effectué lors de l'inclusion du fichier SCA.php, qui est inclus avec le composant SCA. Cependant, un script PHP peut inclure SCA.php et appeler la méthode getService() de la classe SCA pour obtenir un proxy pour un service. Un composant n'aura pas besoin de faire cela car les proxy sont obtenus à l'aide d'une variable définie avec l'annotation @reference.

Les composants qui doivent créer un SDO à retourner à leur appelant doivent créer une usine de données à appeler. Pour cela, la classe SCA supporte la méthode createDataObject(), qui va créer un objet SDO en focntion du modèle défini par les annotations de composants @types. Les arguments arguments de createDataObject() sont les mêmes que ceux du service XML Data Access Service de SDO.

Méthodes

SCA_LocalProxy

Quand getService() est appelée avec une ressource cible qui est un composant PHP local, un proxy local est retourné. Un proxy local qui est définit est aussi injecté dans les variables d'instance du composant, qui ont été annotées avec @reference et @binding.php. Lorsque le script ou le composant font appel au proxy local, ils sont passés au composant cible lui-même.

Les composants qui doivent créer un SDO à retourner à leur appelant doivent créer une usine de données à appeler. Pour cela, la classe SCA_LocalProxy supporte la méthode createDataObject(), qui va créer un objet SDO en fonction du modèle défini par les annotations de composants @types. Les arguments arguments de createDataObject() sont les mêmes que ceux du service XML Data Access Service de SDO.

Méthodes

SCA_SoapProxy

Quand getService() est appelée avec une ressource cible qui est un composant PHP distant, un proxy distant est retourné. Un proxy local qui est définit est aussi injecté dans les variables d'instance du composant, qui ont été annotées avec @reference et @binding.php. Lorsque le script ou le composant font appel au proxy distant, ils sont organisés en requête Web SOAP et passé au serveur distant, avec l'aide de l'extension SOAP.

Les composants qui doivent créer un SDO à retourner à leur appelant doivent créer une usine de données à appeler. Pour cela, la classe SCA_SoapProxy supporte la méthode createDataObject(), qui va créer un objet SDO en fonction du modèle défini par les annotations de composants @types. Les arguments arguments de createDataObject() sont les mêmes que ceux du service XML Data Access Service de SDO.

Méthodes


SCA_LocalProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_LocalProxy::createDataObject Crée un SDO

Description

SDO_DataObject SCA_LocalProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est utilisée dans un script PHP ordinaire ou un composant SCA qui a besoin d'obtenir un objet SDO pour le passer à un service local. Le paramètre type_namespace_uri est l'URI de l'espace de nom désiré pour l'objet SDO, et le nom du type. L'espace de noms et le type doivent être définis dans l'interface du composant qui est appelé, ce qui fait que l'espace de noms et le type doivent être définis dans un des fichiers de schéma qui sont spécifiés dans les annotations @types dans le composant dont SCA_LocalProxy est le proxy.

Liste de paramètres

type_namespace_uri

L'espace de noms de types.

type_name

Le nom du type.

Valeurs de retour

Retourne un nouvel objet SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émet cette exception si l'URI d'espace de noms type_namespace_uri et type_name ne correspondent pas à un type spécifié dans l'un des espaces de noms définis dans les fichiers de schéma définis dans les annotations @types, à l'intérieur du composant SCA_LocalProxy.



SCA_SoapProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_SoapProxy::createDataObject Crée un SDO

Description

SDO_DataObject SCA_SoapProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est utilisée dans un script PHP ordinaire ou un composant SCA qui a besoin d'obtenir un objet SDO pour le passer à un service distant. Le paramètre type_namespace_uri est l'URI de l'espace de nom désiré pour l'objet SDO, et le nom du type. L'espace de noms et le type doivent être définis dans le fichier WSDL du service Web qui est appelé, ce qui fait que l'espace de noms et le type doivent être définis dans un des fichiers de schéma qui sont spécifiés dans les annotations @types dans le composant dont SCA_LocalProxy est le proxy.

Liste de paramètres

type_namespace_uri

L'espace de noms de types.

type_name

Le nom du type.

Valeurs de retour

Retourne un nouvel objet SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émet une exception si l'URI d'espace de noms type_namespace_uri et type_name ne correspondent pas à un type spécifié dans le fichier WSDL qui a été utilisé pour initialiser le SCA_SoapProxy.



SCA::createDataObject

(PECL SDO >= 0.5.0)

SCA::createDataObject crée un SDO

Description

SDO_DataObject SCA::createDataObject ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est utilisée dans un script PHP ordinaire ou un composant SCA qui a besoin d'obtenir un objet SDO pour le retourner. Le paramètre type_namespace_uri est l'URI de l'espace de nom désiré pour l'objet SDO, et le nom du type. L'espace de noms et le type doivent être définis dans l'un des fichiers de schéma qui sont spécifiées dans les annotations @types du composant.

Liste de paramètres

type_namespace_uri

L'espace de noms de types.

type_name

Le nom du type.

Valeurs de retour

Retourne un nouvel objet SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émet cette exception si l'URI d'espace de noms type_namespace_uri et type_name ne correspondent pas à un type spécifié dans les annotations @types.



SCA::getService

(PECL SDO >= 0.5.0)

SCA::getService Obtient un proxy pour un service

Description

mixed SCA::getService ( string $target [, string $binding [, array $config ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Examine la cible, et initialise puis retourne un proxy approprié. Si la cible est un composant PHP local, le proxy retourné sera de type SCA_LocalProxy. Si la cible est un composant PHP distant, le proxy retourné sera de type SCA_SoapProxy.

Liste de paramètres

target

Un chemin absolu ou relatif jusqu'au service cible, ou la description du service (e.g. an URL vers une script de service en json-rpc, un composant PHP, un fichier WSDL, etc.). Une chemin relatif, si spécifié, est résolu relativement à la position du script qui émet l'appel à getService(), et non relativement à include_path, ou le dossier de travail courant.

binding

L'interface à utiliser (i.e. le protocole) avec le service (e.g binding.jsonrpc pour un service json-rpc). Notez que certaines types de services peuvent être déduits du paramètre de cible (e.g. si l'URL de cible finit par .wsdl alors SCA va supposer qu'il faut utiliser binding.soap). Tout protocole qui peut être spécifié dans une annotation peut être spécifié dans ce paramètre. Par exemple, 'binding.soap' est équivalent à l'annotation '@binding.soap'.

config

Toute configuration supplémentaire pour le protocole (e.g. array('location' => 'http://example.org')). Toute configuration supplémentaire peut aussi être configurée dans une annotation. Par exemple, 'location' est équivalent à l'annotation '@location', pour configurer la destination du service SOAP.

Valeurs de retour

The SCA_LocalProxy or SCA_SoapProxy.

Exemples

Exemple #1 Exemple avec SCA::getService()

Cet exemple montre comment obtenir un proxy pour un service SOAP de email, décrit par EmailService.wsdl et situé located at http://example.org.

<?php
include 'SCA/SCA.php';
$service SCA::getService('EmailService.wsdl''binding.soap', array('location' => 'http://example.org'));
$service->send(...);
?>

L'exemple ci-dessus va afficher :


Sommaire




SOAP


Introduction

L'extension SOAP peut être utilisée pour les échanges clients/serveurs SOAP. Elle supporte les spécifications » SOAP 1.1, » SOAP 1.2 et » WSDL 1.1.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.



Installation

Pour activer le support de SOAP, configurez PHP avec --enable-soap .



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration SOAP
Nom Défaut Modifiable Historique
soap.wsdl_cache_enabled 1 PHP_INI_ALL
soap.wsdl_cache_dir /tmp PHP_INI_ALL
soap.wsdl_cache_ttl 86400 PHP_INI_ALL
soap.wsdl_cache 1 PHP_INI_ALL
soap.wsdl_cache_limit 5 PHP_INI_ALL

Voici un éclaircissement sur l'utilisation des directives de configuration.

soap.wsdl_cache_enabled integer

Active ou pas le cache WSDL.

soap.wsdl_cache_dir string

Configure le nom du dossier où l'extension SOAP peut mettre les fichiers de cache.

soap.wsdl_cache_ttl integer

Configure la durée de vie des fichiers dans le cache, exprimé en secondes.

soap.wsdl_cache integer

Si soap.wsdl_cache_enabled est actif, cette directive détermine le type de cache. Il peut prendre l'une des valeurs suivantes : WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), WSDL_CACHE_MEMORY (2) ou WSDL_CACHE_BOTH (3). Cela peut aussi être configuré via le paramètre options dans les constructeurs de SoapClient ou SoapServer.

soap.wsdl_cache_limit integer

Le nombre maximal de fichier WSDL en cache. La reception de nouveaux fichiers dans le cache, s'il est plein, causera l'effacement des plus anciens.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SOAP constants
Constant Value Description
SOAP_1_1 (integer) 1  
SOAP_1_2 (integer) 2  
SOAP_PERSISTENCE_SESSION (integer) 1  
SOAP_PERSISTENCE_REQUEST (integer) 2  
SOAP_FUNCTIONS_ALL (integer) 999  
SOAP_ENCODED (integer) 1  
SOAP_LITERAL (integer) 2  
SOAP_RPC (integer) 1  
SOAP_DOCUMENT (integer) 2  
SOAP_ACTOR_NEXT (integer) 1  
SOAP_ACTOR_NONE (integer) 2  
SOAP_ACTOR_UNLIMATERECEIVER (integer) 3  
SOAP_COMPRESSION_ACCEPT (integer) 32  
SOAP_COMPRESSION_GZIP (integer) 0  
SOAP_COMPRESSION_DEFLATE (integer) 16  
SOAP_AUTHENTICATION_BASIC (integer) 0  
SOAP_AUTHENTICATION_DIGEST (integer) 1  
UNKNOWN_TYPE (integer) 999998  
XSD_STRING (integer) 101  
XSD_BOOLEAN (integer) 102  
XSD_DECIMAL (integer) 103  
XSD_FLOAT (integer) 104  
XSD_DOUBLE (integer) 105  
XSD_DURATION (integer) 106  
XSD_DATETIME (integer) 107  
XSD_TIME (integer) 108  
XSD_DATE (integer) 109  
XSD_GYEARMONTH (integer) 110  
XSD_GYEAR (integer) 111  
XSD_GMONTHDAY (integer) 112  
XSD_GDAY (integer) 113  
XSD_GMONTH (integer) 114  
XSD_HEXBINARY (integer) 115  
XSD_BASE64BINARY (integer) 116  
XSD_ANYURI (integer) 117  
XSD_QNAME (integer) 118  
XSD_NOTATION (integer) 119  
XSD_NORMALIZEDSTRING (integer) 120  
XSD_TOKEN (integer) 121  
XSD_LANGUAGE (integer) 122  
XSD_NMTOKEN (integer) 123  
XSD_NAME (integer) 124  
XSD_NCNAME (integer) 125  
XSD_ID (integer) 126  
XSD_IDREF (integer) 127  
XSD_IDREFS (integer) 128  
XSD_ENTITY (integer) 129  
XSD_ENTITIES (integer) 130  
XSD_INTEGER (integer) 131  
XSD_NONPOSITIVEINTEGER (integer) 132  
XSD_NEGATIVEINTEGER (integer) 133  
XSD_LONG (integer) 134  
XSD_INT (integer) 135  
XSD_SHORT (integer) 136  
XSD_BYTE (integer) 137  
XSD_NONNEGATIVEINTEGER (integer) 138  
XSD_UNSIGNEDLONG (integer) 139  
XSD_UNSIGNEDINT (integer) 140  
XSD_UNSIGNEDSHORT (integer) 141  
XSD_UNSIGNEDBYTE (integer) 142  
XSD_POSITIVEINTEGER (integer) 143  
XSD_NMTOKENS (integer) 144  
XSD_ANYTYPE (integer) 145  
XSD_ANYXML (integer) 147  
APACHE_MAP (integer) 200  
SOAP_ENC_OBJECT (integer) 301  
SOAP_ENC_ARRAY (integer) 300  
XSD_1999_TIMEINSTANT (integer) 401  
XSD_NAMESPACE (integer) http://www.w3.org/2001/XMLSchema  
XSD_1999_NAMESPACE (integer) http://www.w3.org/1999/XMLSchema  
SOAP_SINGLE_ELEMENT_ARRAYS (integer) 1  
SOAP_WAIT_ONE_WAY_CALLS (integer) 2  
SOAP_USE_XSI_ARRAY_TYPE (integer) 4  
WSDL_CACHE_NONE (integer) 0  
WSDL_CACHE_DISK (integer) 1  
WSDL_CACHE_MEMORY (integer) 2  
WSDL_CACHE_BOTH (integer) 3  


Fonctions SOAP


is_soap_fault

(Unknown)

is_soap_faultVérifie si SOAP retourne une erreur

Description

bool is_soap_fault ( mixed $object )

is_soap_fault() sert à vérifier si l'API SOAP a échoué, sans utiliser les exceptions. Pour l'utiliser, créez un objet SoapClient avec l'option exceptions mise à zéro ou à FALSE. Dans ce cas, la méthode SOAP va retourner un objet spécial SoapFault, qui encapsule les détails de l'erreur (code d'erreur, message, acteur et détails).

Si exceptions n'est pas configurée, SOAP va émettre une exception. is_soap_fault() vérifie si le paramètre fourni est un objet SoapFault.

Liste de paramètres

objet

L'objet à tester.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec is_soap_fault()

<?php
$client 
= new SoapClient("some.wsdl", array('exceptions' => 0));
$result $client->SomeFunction();
if (
is_soap_fault($result)) {
    
trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})"E_USER_ERROR);
}
?>

Exemple #2 Gestion des erreurs par exception avec SOAP

<?php
try {
    
$client = new SoapClient("some.wsdl");
    
$result $client->SomeFunction(/* ... */);
} catch (
SoapFault $fault) {
    
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})"E_USER_ERROR);
}
?>

Voir aussi



use_soap_error_handler

(Unknown)

use_soap_error_handler Active le gestionnaire d'erreurs SOAP natif

Description

bool use_soap_error_handler ([ bool $handler = true ] )

use_soap_error_handler() active ou non le gestionnaire d'erreurs natif SOAP du serveur SOAP. Elle retourne la valeur précédemment utilisée. Si le paramètre handler est mis à TRUE, le détail des erreurs du serveur SoapServer seront envoyées au client. Si FALSE est passé, aucune information ne sera envoyée.

Liste de paramètres

handler

Avec la valeur TRUE, le détail des erreurs sera envoyé aux clients.

Valeurs de retour

Retourne la valeur originale.

Voir aussi


Sommaire



La classe SoapClient

Introduction

La classe SoapClient fournit un serveur pour les protocoles » SOAP 1.1 et » SOAP 1.2. Il peut être utilisé avec ou sans mode WSDL.

Synopsis de la classe

SoapClient {
/* Méthodes */
public mixed __call ( string $function_name , string $arguments )
SoapClient ( mixed $wsdl [, array $options ] )
public string __doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] )
public array __getFunctions ( void )
public string __getLastRequest ( void )
public string __getLastRequestHeaders ( void )
public string __getLastResponse ( void )
public string __getLastResponseHeaders ( void )
public array __getTypes ( void )
public void __setCookie ( string $name [, string $value ] )
public string __setLocation ([ string $new_location ] )
public bool __setSoapHeaders ([ mixed $soapheaders ] )
public mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )
SoapClient ( mixed $wsdl [, array $options ] )
}

SoapClient::__call

(PHP 5 >= 5.0.1)

SoapClient::__callAppelle une fonction SOAP (obsolète)

Description

public mixed SoapClient::__call ( string $function_name , string $arguments )

Cette méthode est obsolète. Utilisez plutôt SoapClient::__soapCall.



SoapClient::__construct

(PHP 5 >= 5.0.1)

SoapClient::__constructConstructeur SoapClient

Description

SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Cette fonction est un alias de : SoapClient::SoapClient()



SoapClient::__doRequest

(PHP 5 >= 5.0.1)

SoapClient::__doRequestExécute une requête SOAP

Description

public string SoapClient::__doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] )

Exécute une requête SOAP.

Cette méthode peut être écrasée dans les sous-classes pour implémenter différents transporteurs, effectuer des opérations XML supplémentaires ou toute autre chose.

Liste de paramètres

request

La requête SOAP en XML.

location

L'URL de la requête.

action

L'action SOAP.

version

La version SOAP.

one_way

Si one_way prend la valeur de 1, cette méthode ne retourne rien. Utilisez cette valeur quand une réponse n'est pas attendue.

Valeurs de retour

La réponse SOAP en XML.

Historique

Version Description
5.1.3 Le paramètre one_way a été ajouté.

Exemples

Exemple #1 Exemple avec SoapClient::__doRequest()

<?php
function Add($x,$y) {
  return 
$x+$y;
}

class 
LocalSoapClient extends SoapClient {

  function 
__construct($wsdl$options) {
    
parent::__construct($wsdl$options);
    
$this->server = new SoapServer($wsdl$options);
    
$this->server->addFunction('Add');
  }

  function 
__doRequest($request$location$action$version) {
    
ob_start();
    
$this->server->handle($request);
    
$response ob_get_contents();
    
ob_end_clean();
    return 
$response;
  }

}

$x = new LocalSoapClient(NULL,array('location'=>'test://'
                                   
'uri'=>'http://testuri.org')); 
var_dump($x->Add(3,4));
?>



SoapClient::__getFunctions

(PHP 5 >= 5.0.1)

SoapClient::__getFunctionsRetourne une liste de fonctions SOAP publiées

Description

public array SoapClient::__getFunctions ( void )

SoapClient::__getFunctions() retourne un tableau de fonctions SOAP publiées décrites dans le WSDL.

Note:

Cette fonction n'est disponible qu'en mode WSDL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le array de fonctions SOAP avec le type de retour, le nom de la fonction et les types des paramètres qu'accepte celle-ci.

Exemples

Exemple #1 Exemple avec SoapClient::__getFunctions()

<?php
$client 
= new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getFunctions());
?>

L'exemple ci-dessus va afficher :

array(26) {
  [0]=>
  string(70) "ProductInfo KeywordSearchRequest(KeywordRequest $KeywordSearchRequest)"
  [1]=>
  string(79) "ProductInfo TextStreamSearchRequest(TextStreamRequest $TextStreamSearchRequest)"
  [2]=>
  string(64) "ProductInfo PowerSearchRequest(PowerRequest $PowerSearchRequest)"
...
  [23]=>
  string(107) "ShoppingCart RemoveShoppingCartItemsRequest(RemoveShoppingCartItemsRequest $RemoveShoppingCartItemsRequest)"
  [24]=>
  string(107) "ShoppingCart ModifyShoppingCartItemsRequest(ModifyShoppingCartItemsRequest $ModifyShoppingCartItemsRequest)"
  [25]=>
  string(118) "GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest $GetTransactionDetailsRequest)"
}

Voir aussi



SoapClient::__getLastRequest

(PHP 5 >= 5.0.1)

SoapClient::__getLastRequestRetourne la dernière requête SOAP

Description

public string SoapClient::__getLastRequest ( void )

Retourne le code XML de la dernière requête SOAP émise.

Note:

Cette méthode fonctionne uniquement si l'objet SoapClient a été créé avec l'option trace configuré à TRUE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La dernière requête SOAP, sous forme de chaîne de code XML.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastRequest()

<?php
$client 
SoapClient("some.wsdl", array('trace' => 1));
$result $client->SomeFunction();
echo 
"REQUEST:\n" $client->__getLastRequest() . "\n";
?>

Voir aussi



SoapClient::__getLastRequestHeaders

(PHP 5 >= 5.0.1)

SoapClient::__getLastRequestHeadersRetourne les entêtes de la dernière requête SOAP

Description

public string SoapClient::__getLastRequestHeaders ( void )

Retourne les entêtes de la dernière requête SOAP

Note:

Cette fonction n'est disponible que si l'objet SoapClient a été créé avec l'option trace à TRUE

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les dernieres entêtes SOAP.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastRequestHeaders()

<?php
$client 
SoapClient("some.wsdl", array('trace' => 1));
$result $client->SomeFunction();
echo 
"REQUEST HEADERS:\n" $client->__getLastRequestHeaders() . "\n";
?>

Voir aussi



SoapClient::__getLastResponse

(PHP 5 >= 5.0.1)

SoapClient::__getLastResponseRetourne la dernière réponse SOAP

Description

public string SoapClient::__getLastResponse ( void )

Retourne le code XML de la dernière réponse SOAP.

Note:

Cette fonction n'est disponible que si l'objet SoapClient a été créé avec l'option trace à TRUE

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La dernière réponse SOAP, sous forme de chaîne XML.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastResponse()

<?php
$client 
SoapClient("some.wsdl", array('trace' => 1));
$result $client->SomeFunction();
echo 
"Response:\n" $client->__getLastResponse() . "\n";
?>

Voir aussi



SoapClient::__getLastResponseHeaders

(PHP 5 >= 5.0.1)

SoapClient::__getLastResponseHeadersRetourne les entêtes de la dernière réponse SOAP

Description

public string SoapClient::__getLastResponseHeaders ( void )

Retourne les entêtes de la dernière réponse SOAP.

Note:

Cette fonction n'est disponible que si l'objet SoapClient a été créé avec l'option trace à TRUE

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les entêtes de la dernière réponse SOAP.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastResponseHeaders()

<?php
$client 
SoapClient("some.wsdl", array('trace' => 1));
$result $client->SomeFunction();
echo 
"RESPONSE HEADERS:\n" $client->__getLastResponseHeaders() . "\n";
?>

Voir aussi



SoapClient::__getTypes

(PHP 5 >= 5.0.1)

SoapClient::__getTypesRetourne une liste des types SOAP

Description

public array SoapClient::__getTypes ( void )

SoapClient::__getTypes() retourne la liste des types SOAP décrits dans le fichier WSDL du service Web courant.

Note:

Cette fonction n'est disponible qu'en mode WSDL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un array de types SOAP détaillant toutes les structures et les types

Exemples

Exemple #1 Exemple avec SoapClient::__getTypes()

<?php
$client 
= new SoapClient("http://soap.amazon.com/schemas3/AmazonWebServices.wsdl");
var_dump($client->__getTypes());
?>

L'exemple ci-dessus va afficher :

array(88) {
  [0]=>
  string(30) "ProductLine ProductLineArray[]"
  [1]=>
  string(85) "struct ProductLine {
 string Mode;
 string RelevanceRank;
 ProductInfo ProductInfo;
}"
  [2]=>
  string(105) "struct ProductInfo {
 string TotalResults;
 string TotalPages;
 string ListName;
 DetailsArray Details;
}"
...
  [85]=>
  string(32) "ShortSummary ShortSummaryArray[]"
  [86]=>
  string(121) "struct GetTransactionDetailsRequest {
 string tag;
 string devtag;
 string key;
 OrderIdArray OrderIds;
 string locale;
}"
  [87]=>
  string(75) "struct GetTransactionDetailsResponse {
 ShortSummaryArray ShortSummaries;
}"
}

Voir aussi



SoapClient::__setCookie

(PHP 5 >= 5.0.4)

SoapClient::__setCookieDéfinit le cookie qui sera envoyé avec la requête SOAP

Description

public void SoapClient::__setCookie ( string $name [, string $value ] )

Définit le cookie qui sera envoyé avec la requête SOAP.

Note:

L'appel à cette méthode affectera tous les appels suivants aux méthodes SoapClient.

Liste de paramètres

name

Le nom du cookie.

value

La valeur du cookie. Si non spécifié, le cookie sera effacé.

Valeurs de retour

Aucune valeur n'est retournée.



SoapClient::__setLocation

(PHP 5 >= 5.0.1)

SoapClient::__setLocationConfigure l'URL du service Web à utiliser

Description

public string SoapClient::__setLocation ([ string $new_location ] )

Configure l'URL cible, à qui seront envoyés les requêtes SOAP. Ce revient à spécifier l'option location lors de la construction du client SoapClient.

Note:

Cette méthode est optionnelle. SoapClient utilise l'URL indiquée dans le fichier WDSL par défaut.

Liste de paramètres

new_location

La nouvelle URL.

Valeurs de retour

L'ancienne URL.

Exemples

Exemple #1 Exemplea vec SoapClient::__setLocation()

<?php
$client 
= new SoapClient('http://example.com/webservice.php?wsdl');

$client->__setLocation('http://www.somethirdparty.com');

$old_location $client->__setLocation(); // unsets the location option

echo $old_location;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

http://www.somethirdparty.com

Voir aussi



SoapClient::__setSoapHeaders

(PHP 5 >= 5.0.5)

SoapClient::__setSoapHeadersAjoute un entête SOAP pour les requêtes suivantes

Description

public bool SoapClient::__setSoapHeaders ([ mixed $soapheaders ] )

Définit un entête à utiliser dans les requêtes SOAP.

Note:

Cette méthode va remplacer la valeur précédente.

Liste de paramètres

soapheaders

L'entête à configurer. Il peut être un objet SoapHeader ou un tableau d'objetcs SoapHeader. Si ce paramètre n'est pas spécifié ou défini à NULL, les en-têtes seront supprimés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SoapClient::__setSoapHeaders()

<?php

$client 
= new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));
$header = new SoapHeader('http://soapinterop.org/echoheader/'
                            
'echoMeStringRequest',
                            
'hello world');

$client->__setSoapHeaders($header);

$client->__soapCall("echoVoid"null);
?>

Exemple #2 Configuration d'entêtes multiples pour SOAP

<?php

$client 
= new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));
$headers = array();

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/'
                            
'echoMeStringRequest',
                            
'hello world');

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/'
                            
'echoMeStringRequest',
                            
'hello world again');

$client->__setSoapHeaders($headers);

$client->__soapCall("echoVoid"null);
?>



SoapClient::__soapCall

(PHP 5 >= 5.0.1)

SoapClient::__soapCallAppelle une fonction SOAP

Description

public mixed SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )

Ceci est une fonction bas niveau de l'API qui est utilisée pour faire des appels SOAP. Habituellement, en mode WSDL, vous pouvez appeler simplement les fonctions SOAP comme des méthodes SoapClient. Cette méthode est pratique en mode non-WSDL lorsque soapaction est inconnu, uri est différente de la valeur par défaut ou lors de l'envoi et/ou de la réception d'en-têtes SOAP.

En cas d'erreur, un appel à une fonction SOAP peut causer un lancement d'exception par PHP ou retourner un objet SoapFault si les exceptions sont désactivées. Pour vérifier si l'appel à cette fonction n'arrive pas à attraper les exceptions SoapFault, vérifiez le résultat avec la fonction is_soap_fault().

Liste de paramètres

function_name

Le nom de la fonction SOAP à appeler.

arguments

Un tableau d'arguments à passer à la fonction. Cela peut être un tableau associatif ou ordonné.

options

Un tableau associatif d'options à passer au client.

Une option de location pour le service Web distant.

Une option uri avec l'espace de noms cible du service SOAP.

L'option soapaction est l'action à appeler.

input_headers

Un tableau d'entêtes à envoyer avec la requête SOAP.

output_headers

Si fourni, ce tableau sera rempli avec les entêtes de la réponse SOAP retournée.

Valeurs de retour

Les fonctions SOAP retournent une ou plusieurs valeurs. Si une seule valeur est retournée par la fonction SOAP, la valeur retournée de __soapCall sera une valeur simple (e.g. un entier, une chaîne de caractères, etc.). Si plusieurs valeurs sont retournées, __soapCall retournera un tableau associatif contenant les noms des paramètres affichés.

En cas d'erreur, si l'objet SoapClient a été construit avec l'option trace qui valait FALSE, un objet SoapFault sera retourné.

Exemples

Exemple #1 Exemple avec SoapClient::__soapCall()

<?php

$client 
= new SoapClient("some.wsdl");
$client->SomeFunction($a$b$c);

$client->__soapCall("SomeFunction", array($a$b$c));
$client->__soapCall("SomeFunction", array($a$b$c), NULL,
                    new 
SoapHeader(), $output_headers);


$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));
$client->SomeFunction($a$b$c);
$client->__soapCall("SomeFunction", array($a$b$c));
$client->__soapCall("SomeFunction", array($a$b$c),
                    array(
'soapaction' => 'some_action',
                          
'uri'        => 'some_uri'));
?>

Voir aussi



SoapClient::SoapClient

(PHP 5 >= 5.0.1)

SoapClient::SoapClientConstructeur SoapClient

Description

SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Ce constructeur crée des objets SoapClient dans le mode WSDL ou non-WSDL.

Liste de paramètres

wsdl

URI du fichier WSDL ou NULL s'il travaille en mode non-WSDL.

Note:

Durant le stage de développement, vous devriez vouloir désactiver le cache WSDL via l'option de configuration soap.wsdl_cache_ttl de votre php.ini, sinon, les modifications faites sur le fichier WSDL n'auront aucun effet tant que le cache soap.wsdl_cache_ttl n'aura pas expiré.

options

Un tableau d'options. Si l'on travaille en mode WSDL, ce paramètre est optionnel. En mode non-WSDL, vous devez définir les options location et uri, où location est l'URL à interroger et uri est l'espace de noms cible du service SOAP.

Les options style et use ne fonctionnent que dans le mode non-WSDL. En mode WSDL, ils viennent du fichier WSDL.

L'option soap_version spécifie si l'on doit utiliser le client SOAP version 1.1 (par défaut) ou 1.2.

Pour les identifications HTTP, vous devez utiliser les options login et password. Pour effectuer une connexion HTTP via un proxy, utilisez les options proxy_host, proxy_port, proxy_login et proxy_password. Pour les identifications à l'aide d'un certificat d'un client HTTPS, utilisez les options local_cert et passphrase. Une authentification peut être spécifiée dans l'option authentication. La méthode d'authentification peut être SOAP_AUTHENTICATION_BASIC (par défaut) ou SOAP_AUTHENTICATION_DIGEST.

L'option compression permet d'utiliser la compression sur les requêtes et les réponses HTTP SOAP.

L'option encoding définit le jeu d'encodage des caractères internes. Cette option ne modifie pas l'encodage des requêtes SOAP (il est toujours utf-8), mais convertit les chaînes en utilisant ce dernier.

L'option trace active le suivi des requêtes pour permettre le retraçage des défauts. FALSE par défaut.

L'option classmap peut être utilisée pour lier quelques types WSDL avec des classes PHP. Cette option doit être un tableau avec les types WSDL en tant que clés et les noms des classes PHP en tant que valeurs.

Définir l'option trace active l'utilisation des méthodes SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse et SoapClient->__getLastResponseHeaders.

L'option exceptions est un booléen définissant si les erreurs SOAP doivent lancer des exceptions du type SoapFault.

L'option connection_timeout définit le délai de connexion en secondes pour la connexion au service SOAP. Cette option ne définit pas un délai de connexion pour les services avec des réponses lentes. Pour limiter la durée d'attente de fin des appels, l'option default_socket_timeout est disponible.

L'option typemap est un tableau dont les clés sont type_name, type_ns (URI de l'espace de noms), from_xml (fonction de rappel acceptant un paramètre de type chaîne) et to_xml (fonction de rappel acceptant un paramètre de type objet).

L'option cache_wsdl est une constante parmi WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY ou WSDL_CACHE_BOTH.

L'option user_agent spécifie la chaîne à utiliser dans l'en-tête User-Agent.

L'option stream_context est une ressource de contexte.

L'option features est un masque représentant les constantes SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE et, SOAP_WAIT_ONE_WAY_CALLS.

Exemples

Exemple #1 Exemple avec SoapClient::SoapClient()

<?php

$client 
= new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            
'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            
'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            
'proxy_port'     => 8080,
                                            
'proxy_login'    => "some_name",
                                            
'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/",
                                     
'style'    => SOAP_DOCUMENT,
                                     
'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl"
  array(
'compression' => SOAP_COMPRESSION_ACCEPT SOAP_COMPRESSION_GZIP));

$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class 
MyBook {
    public 
$title;
    public 
$author;
}

$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>


Sommaire



La classe SoapServer

Introduction

La classe SoapServer fournit un serveur pour les protocoles » SOAP 1.1 et » SOAP 1.2. Il peut être utilisé avec ou sans fichier de description de service WSDL.

Synopsis de la classe

SoapServer {
/* Méthodes */
public void addFunction ( mixed $functions )
public void addSoapHeader ( SoapHeader $object )
__construct ( mixed $wsdl [, array $options ] )
public void fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] )
public array getFunctions ( void )
public void handle ([ string $soap_request ] )
public void setClass ( string $class_name [, string $args ] )
public void setObject ( string $object )
public void setPersistence ( int $mode )
SoapServer ( mixed $wsdl [, array $options ] )
}

SoapServer::addFunction

(PHP 5 >= 5.0.1)

SoapServer::addFunctionAjoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP

Description

public void SoapServer::addFunction ( mixed $functions )

Exporte une ou plusieurs fonctions pour les clients distants.

Liste de paramètres

functions

Pour exporter une seule fonction, il faut passer son nom dans ce paramètre en tant que chaîne de caractères.

Pour exporter plusieurs fonctions, il faut utiliser un tableau de noms de fonctions.

Pour exporter toutes les fonctions, il faut utiliser la constante spéciale SOAP_FUNCTIONS_ALL.

Note:

functions doit recevoir tous les arguments d'entrée dans le même ordre que celui défini dans le fichier WSDL (il ne doit recevoir aucun paramètre de sortie en tant qu'argument) et retourne une ou plusieurs valeurs. Pour retourner plusieurs valeurs, il doit retourner un tableau contenant le nom des paramètres de sortie.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SoapServer::addFunction()

<?php

function echoString($inputString)
{
    return 
$inputString;
}

$server->addFunction("echoString");

function 
echoTwoStrings($inputString1$inputString2)
{
    return array(
"outputString1" => $inputString1,
                 
"outputString2" => $inputString2);
}
$server->addFunction(array("echoString""echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

Voir aussi



SoapServer::addSoapHeader

(PHP 5 >= 5.0.1)

SoapServer::addSoapHeaderAjoute un entête SOAP à une réponse

Description

public void SoapServer::addSoapHeader ( SoapHeader $object )

Ajoute un entête SOAP à la réponse courante.

Liste de paramètres

object

L'entête à renvoyer.

Valeurs de retour

Aucune valeur n'est retournée.



SoapServer::__construct

(PHP 5 >= 5.0.1)

SoapServer::__constructConstructeur SoapServer

Description

SoapServer::__construct ( mixed $wsdl [, array $options ] )

Cette fonction est un alias de : SoapServer::SoapServer()



SoapServer::fault

(PHP 5 >= 5.0.1)

SoapServer::faultEmet une erreur SoapServer

Description

public void SoapServer::fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] )

Envoie une réponse au client de la requête courante, avec un message d'erreur.

Note:

Cela n'est possible que durant l'exécution de la requête.

Liste de paramètres

code

Le code d'erreur à retourner.

string

Une description de l'erreur.

actor

Une chaîne identifiant l'acteur en cause.

details

Plus de détails sur la faute.

name

Le nom de l'erreur. Cela peut être utilisé pour sélectionner un nom dans un fichier WSDL.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SoapServer::getFunctions

(PHP 5 >= 5.0.1)

SoapServer::getFunctionsRetourne la liste des fonctions définies

Description

public array SoapServer::getFunctions ( void )

SoapServer::getFunctions() retourne la liste de toutes les fonctions ajoutées à l'objet serveur SoapServer. Elle retourne la liste de toutes les fonctions ajoutées à l'aide des méthodes SoapServer::addFunction() et SoapServer::setClass().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de toutes les fonctions.

Exemples

Exemple #1 Exemple avec SoapServer::getFunctions()

<?php
$server 
= new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if (
$_SERVER["REQUEST_METHOD"] == "POST") {
  
$server->handle();
} else {
  echo 
"Ce serveur SOAP peut gérer les fonctions suivantes : ";
  
$functions $server->getFunctions();
  foreach(
$functions as $func) {
    echo 
$func "\n";
  }
}
?>

Voir aussi



SoapServer::handle

(PHP 5 >= 5.0.1)

SoapServer::handleTraite une requête SOAP

Description

public void SoapServer::handle ([ string $soap_request ] )

Effectue une requête SOAP, appelle les fonctions nécessaires et envoie une réponse en retour.

Liste de paramètres

soap_request

La requête SOAP. Si cet argument est omis, la requête est supposée être dans les données POST brûtes de la requête HTTP.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SoapServer::handle()

<?php
function test($x)
{
    return 
$x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Voir aussi



SoapServer::setClass

(PHP 5 >= 5.0.1)

SoapServer::setClassConfigure la classe qui sera utilisée pour gérer les requêtes SOAP

Description

public void SoapServer::setClass ( string $class_name [, string $args ] )

Exporte toute les méthodes de la classe spécifiée.

SoapServer::setClass() configure une classe qui servira de gestionnaire aux requêtes SOAP. L'objet pourra alors être rendu persistant à travers les requêtes pour une session PHP, avec la méthode SoapServer::setPersistence().

Liste de paramètres

class_name

Le nom de la classe exportée.

args

Ces paramètres optionnels seront passé par défaut au constructeur de la classe, durant la phase de création de l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SoapServer::setObject

(PHP 5 >= 5.2.0)

SoapServer::setObjectConfigure l'objet qui sera utilisé pour gérer les requêtes SOAP

Description

public void SoapServer::setObject ( string $object )

SoapServer::setObject() configure un objet qui servira de gestionnaire aux requêtes SOAP, plutôt qu'une simple classe, comme avec SoapServer::setClass().

Liste de paramètres

object

L'objet qui va gérer les requêtes.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SoapServer::setPersistence

(PHP 5 >= 5.1.2)

SoapServer::setPersistenceActive le mode persistant de SoapServer

Description

public void SoapServer::setPersistence ( int $mode )

Cette fonction permet de sauvegarder les données entre les requêtes dans une session PHP. Cela ne fonctionne qu'avec un serveur qui exporte les fonctions depuis une classe avec les méthodes SoapServer::setClass() ou SoapServer::setObject().

Note:

La constante de persistence SOAP_PERSISTENCE_SESSION rend uniquement les objets de la classe donnée persistants, mais non pas les données statiques. Dans ce cas, $this->bar au lieu de self::$bar.

Liste de paramètres

mode

Une des constantes suivantes :

SOAP_PERSISTENCE_REQUEST : fait persister l'objet pour toute la requête.

SOAP_PERSISTENCE_SESSION : fait persister l'objet pour toute la session.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



SoapServer::SoapServer

(PHP 5 >= 5.0.1)

SoapServer::SoapServerConstructeur SoapServer

Description

SoapServer::SoapServer ( mixed $wsdl [, array $options ] )

Ce constructeur permet la création d'objets SoapServer en mode WSDL ou non-WSDL.

Liste de paramètres

wsdl

Pour utiliser le mode WSDL, il faut définir l'URI du fichier WSDL dans ce paramètre. Avec les autres situations, il faut définir ce paramètre à NULL et définir l'option uri.

options

Permet de définir une version SOAP par défaut (soap_version), un jeu de caractères d'encodage interne (encoding) et un URI acteur (actor).

L'option classmap peut être utilisée pour lier quelques types WSDL à des classes PHP. Cette option doit être un tableau avec les types WSDL en tant que clés et les noms des classes PHP en tant que valeurs.

L'option typemap est un tableau dont les clés sont type_name, type_ns (URI de l'espace de noms), from_xml (fonction de rappel acceptant un paramètre de type chaîne de caractères) et to_xml (fonction de rappel acceptant un paramètre de type objet).

L'option cache_wsdl prend une des valeurs WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY ou WSDL_CACHE_BOTH.

La dernière option est features qui peut être défini à SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE.

Exemples

Exemple #1 Exemples avec SoapServer

<?php

$server 
= new SoapServer("fichier.wsdl");

$server = new SoapServer("fichier.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("fichier.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("fichier.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class 
MonLivre {
        public 
$titre;
        public 
$auteur;
}

$server = new SoapServer("livre.wsdl", array('classmap' => array('book' => "MonLivre")));

?>

Historique

Version Description
5.2.0 Ajout de l'option typemap.

Voir aussi


Sommaire



La classe SoapFault

Introduction

Représente une erreur SOAP.

Synopsis de la classe

SoapFault extends Exception {
/* Propriétés */
/* Méthodes */
__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
public string __toString ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

message

Description

code

Description

file

Description

line

Description


SoapFault::__construct

(PHP 5 >= 5.0.1)

SoapFault::__constructConstructeur SoapFault

Description

SoapFault::__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

Cette fonction est un alias de : SoapFault::SoapFault()



SoapFault::SoapFault

(PHP 5 >= 5.0.1)

SoapFault::SoapFaultSoapFault constructor

Description

SoapFault::SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

SoapFault sert à envoyer des erreurs SOAP depuis le PHP.faultcode, faultstring, faultactor et detail sont les éléments standards SOAP.

Liste de paramètres

faultcode

Le code erreur de SoapFault.

faultstring

Le message d'erreur de SoapFault.

faultactor

Une chaîne identifiant l'acteur qui a causé l'erreur.

detail

faultname

Peut être utilisé pour sélectionner l'encodage qui convient depuis WSDL.

headerfault

Peut être utilisé durant la gestion de l'entête SOAP pour rapporter une erreur dans l'en-tête de réponse.

Exemples

Exemple #1 Quelques exemples avec SoapFault

<?php
function test($x)
{
    return new 
SoapFault("Server""Un message d'erreur");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Il est possible d'utiliser le mécanisme des exceptions de PHP pour lancer des exceptions SoapFault.

Exemple #2 Emission d'exceptions SoapFault

<?php
function test($x)
{
    throw new 
SoapFault("Server""Un message d'erreur");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Voir aussi



SoapFault::__toString

(PHP 5 >= 5.0.1)

SoapFault::__toStringProduit une représentation chaîne d'un objet SoapFault

Description

public string SoapFault::__toString ( void )

Retourne une représentation en chaîne de l'objet SoapFault.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne décrivant l'objet SoapFault.


Sommaire



La classe SoapHeader

Introduction

Représente un entête SOAP.

Synopsis de la classe

SoapHeader {
/* Méthodes */
__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )
SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = false [, string $actor ]]] )
}

SoapHeader::__construct

(PHP 5 >= 5.0.1)

SoapHeader::__constructConstructeur SoapHeader

Description

SoapHeader::__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )

Cette fonction est un alias de : SoapHeader::SoapHeader()



SoapHeader::SoapHeader

(PHP 5 >= 5.0.1)

SoapHeader::SoapHeaderSoapHeader constructor

Description

SoapHeader::SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = false [, string $actor ]]] )

Construit un nouvel objet SoapHeader.

Liste de paramètres

namespace

L'espace de noms de l'élément d'entête SOAP.

name

Le nom de l'élément d'entête SOAP.

data

Un contenu de l'en-tête SOAP. Il peut être une valeur PHP ou un objet SoapVar.

mustUnderstand

Valeur de l'attribut mustUnderstand de l'élément d'entête SOAP.

actor

Valeur de l'attribut actor de l'élément d'entête SOAP.

Exemples

Exemple #1 Exemple simple avec SoapHeader

<?php
$client 
= new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));
$client->__soapCall("echoVoid"nullnull,
                new 
SoapHeader('http://soapinterop.org/echoheader/',
                               
'echoMeStringRequest',
                               
'hello world'));
?>

Voir aussi


Sommaire



La classe SoapParam

Introduction

Représentes un paramètre dans un appel SOAP.

Synopsis de la classe

SoapParam {
/* Méthodes */
__construct ( mixed $data , string $name )
SoapParam ( mixed $data , string $name )
}

SoapParam::__construct

(PHP 5 >= 5.0.1)

SoapParam::__constructConstructeur SoapParam

Description

SoapParam::__construct ( mixed $data , string $name )

Cette fonction est un alias de : SoapParam::SoapParam()



SoapParam::SoapParam

(PHP 5 >= 5.0.1)

SoapParam::SoapParamConstructeur SoapParam

Description

SoapParam::SoapParam ( mixed $data , string $name )

Construit un nouvel objet SoapParam.

Liste de paramètres

data

Les données à passer ou à retourner. Vous pouvez passer ce paramètre directement en tant qu'une valeur PHP, mais dans ce cas, il sera nommé paramN et le service SOAP ne le comprendra pas.

name

Le nom du paramètre.

Exemples

Exemple #1 Quelques exemples

<?php
$client 
= new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    
'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a"a"),
                      new 
SoapParam($b"b"),
                      new 
SoapParam($c"c"));
?>

Voir aussi


Sommaire



La classe SoapVar

Introduction

Une classe représentant une variable ou un objet qui utilise des services SOAP.

Synopsis de la classe

SoapVar {
/* Méthodes */
__construct ( string $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
SoapVar ( string $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
}

SoapVar::__construct

(PHP 5 >= 5.0.1)

SoapVar::__constructConstructeur SoapVar

Description

SoapVar::__construct ( string $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Cette fonction est un alias de : SoapVar::SoapVar()



SoapVar::SoapVar

(PHP 5 >= 5.0.1)

SoapVar::SoapVarConstructeur SoapVar

Description

SoapVar::SoapVar ( string $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Construit un nouvel objet SoapVar.

Liste de paramètres

data

Les données à passer ou à retourner.

encoding

L'ID d'encodage, une des constantes XSD_....

type_name

Le nom du type.

type_namespace

Le type de l'espace de noms.

node_name

Le nom du noeud XML.

node_namespace

L'espace de noms du noeud XML.

Exemples

Exemple #1 Exemple avec SoapVar::SoapVar()

<?php
class SOAPStruct {
    function 
SOAPStruct($s$i$f
    {
        
$this->varString $s;
        
$this->varInt $i;
        
$this->varFloat $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg'34325.325);
$soapstruct = new SoapVar($structSOAP_ENC_OBJECT"SOAPStruct""http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct"inputStruct"));
?>

Voir aussi


Sommaire




XML-RPC


Introduction

Ces fonctions servent à écrire sur les serveurs XML-RPC, mais aussi sur les clients. Vous pouvez trouver plus d'informations sur XML-RPC sur » http://www.xmlrpc.com/, et plus de documentations sur cette extension et ces fonctions, sur » http://xmlrpc-epi.sourceforge.net/.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.



Installation

Le support de XML-RPC n'est pas activé par défaut en PHP. Vous devez l'activer avec l'option de compilation --with-xmlrpc[=DIR] . Cette extension est fournie avec PHP depuis la version 4.1.0.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit une ressource serveur XML-RPC, retournée par la fonction xmlrpc_server_create().




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions XML-RPC


xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode_requestDécode le code XML en variables PHP natives

Description

mixed xmlrpc_decode_request ( string $xml , string &$method [, string $encoding ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decodeDécode le XML en types PHP natifs

Description

mixed xmlrpc_decode ( string $xml [, string $encoding = "iso-8859-1" ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

xml

Réponse XML retournée par la méthode XMLRPC.

encoding

Encodage d'entrée, supporté par iconv.

Valeurs de retour

Retourne soit un tableau, soit un entier, soit une chaîne, soit un booléen, en fonction de la réponse retournée par la méthode XMLRPC.

Exemples

Voir l'exemple fourni avec la documentation de la fonction xmlrpc_encode_request().

Voir aussi



xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode_requestGénère le XML pour une méthode

Description

string xmlrpc_encode_request ( string $method , mixed $params [, array $output_options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

method

Nom de la méthode à appeler.

params

Paramètres de la méthode, compatibles avec la signature de la méthode.

output_options

Tableau spécifiant les options de sortie pouvant contenir (les valeurs par défaut sont en gras) :

  • output_type: php, xml

  • verbosity: no_white_space, newlines_only, pretty

  • escaping: cdata, non-ascii, non-print, markup (peut être une chaîne avec une valeur ou un tableau avec plusieurs valeurs)

  • version: simple, xmlrpc, soap 1.1, auto

  • encoding: iso-8859-1, autres jeux de caractères supportés par iconv

Valeurs de retour

Retourne une chaîne contenant la représentation XML de la demande.

Exemples

Exemple #1 Exemple avec XMLRPC

<?php
$request 
xmlrpc_encode_request("method", array(123));
$context stream_context_create(array('http' => array(
    
'method' => "POST",
    
'header' => "Content-Type: text/xml",
    
'content' => $request
)));
$file file_get_contents("http://www.example.com/xmlrpc"false$context);
$response xmlrpc_decode($file);
if (
$response && xmlrpc_is_fault($response)) {
    
trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    
print_r($response);
}
?>

Voir aussi



xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encodeGénère le code XML pour une valeur PHP

Description

string xmlrpc_encode ( mixed $value )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_get_typeRetourne le type XMLRPC d'une valeur PHP

Description

string xmlrpc_get_type ( mixed $value )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Particulièrement pratique pour les types chaînes de type base64 et datetime.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5)

xmlrpc_is_faultDétermine si un tableau de valeurs représente un XMLRPC

Description

bool xmlrpc_is_fault ( array $arg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

arg

Tableau retourné par la fonction xmlrpc_decode().

Valeurs de retour

Retourne TRUE si l'argument signifie fault, FALSE sinon. La description de fault est disponible dans la variable $arg["faultString"], le code de fault est disponible dans la variable $arg["faultCode"].

Exemples

Retrouvez un exemple avec la fonction xmlrpc_encode_request().

Voir aussi



xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_parse_method_descriptionsDécode le code XML en une liste de descriptions de méthodes

Description

array xmlrpc_parse_method_descriptions ( string $xml )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_add_introspection_dataAjoute des données d'introspection

Description

int xmlrpc_server_add_introspection_data ( resource $server , array $desc )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_methodAnalyse une requête XML et appelle les méthodes associées

Description

string xmlrpc_server_call_method ( resource $server , string $xml , mixed $user_data [, array $output_options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_createCrée un serveur XMLRPC

Description

resource xmlrpc_server_create ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_destroyDétruit un serveur XMLRPC

Description

int xmlrpc_server_destroy ( resource $server )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_introspection_callbackEnregistre une fonction PHP pour générer la documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource $server , string $function )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_methodEnregistre une fonction PHP avec une méthode

Description

bool xmlrpc_server_register_method ( resource $server , string $method_name , string $function )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_typeDéfinit le type xmlrpc, base64 ou datetime, d'une valeur PHP

Description

bool xmlrpc_set_type ( string &$value , string $type )

xmlrpc_set_type() définit le type XMLRPC, base64 ou datetime, pour une chaîne PHP.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

value

Valeur dont on veut modifier le type

type

base64 ou datetime

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. En cas de réussite, value sera converti en objet.

Exemples

Exemple #1 Exemple avec xmlrpc_set_type()

<?php

$params 
date("Ymd\TH:i:s"time());
xmlrpc_set_type($params'datetime');
echo 
xmlrpc_encode($params);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>

Erreurs / Exceptions

Émet une alerte de type E_WARNING lorsque le type n'est pas supporté par XMLRPC.


Sommaire





Extensions pour Windows uniquement


.NET


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions .NET


dotnet_load

(PHP 4)

dotnet_loadCharge un module DOTNET

Description

int dotnet_load ( string $assembly_name [, string $datatype_name [, int $codepage ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Historique

Version Description
4.1.0 Le paramètre codepage a été ajouté.


Sommaire




COM et .Net (Windows)


Introduction

COM est un acronyme pour Component Object Model; c'est une couche orientée objet (et services associés) au-dessus de DCE RPC (un standard libre) qui définit une convention de nommage commune permettant à un code écrit en n'importe quel langage de communiquer avec du code écrit dans un autre langage, pour peu que ces deux langages soient compatibles avec COM. Les codes n'ont pas besoin de faire partie du même exécutable. le code peut être chargé à partir d'une DLL, trouvé dans un autre processus fonctionnant sur le même serveur, ou, avec DCOM (Distributed COM), trouvé sur une machine distante, sans même que votre code ait à savoir où il se trouve.

Il y a une partie de COM connue sous le nom de OLE Automation qui comprend un jeu d'interfaces COM qui permettent de perdre l'attache aux objets COM, pour qu'ils puissent être découverts et appelés en cours d'exécution sans savoir au moment de la compilation comment l'objet fonctionne. L'extension COM de PHP utilise les interfaces OLE Automation pour vous permettre de créer et appeler des objets compatibles depuis vos scripts. Techniquement parlant, cela devrait vraiment s'appeler "the OLE Automation Extension for PHP", puisque tous les objets COM ne sont pas forcément compatibles OLE.

Maintenant, pourquoi voudriez-vous ou devriez-vous utiliser COM ? COM est l'une des méthodes les plus utilisées pour faire communiquer des applications et des composants sur les plates-formes Windows. En utilisant COM, vous pouvez ouvrir un document Microsoft Word, remplir un fichier de gabarit et le sauvegarder pour l'envoyer par courrier à votre visiteur. Vous pouvez aussi utiliser COM pour effectuer des tâches administratives sur votre réseau et configurer IIS ; ce ne sont que les utilisations les plus habituelles, vous pouvez faire beaucoup plus avec COM.

Avec PHP 5, cette extension (et cette documentation) on été réécrites de A à Z et la plupart des vieux problèmes et concepts prêtant à confusion ont été supprimés. De plus, nous supportons l'instanciation et la création d'assemblées .Net utilisant une couche d'interopérabilité COM fourni par Microsoft.

Lisez bien » cet article pour un aperçu des modifications de cette extension dans PHP 5.



Installation/Configuration

Sommaire


Pré-requis

Les fonctions COM ne sont disponibles que sous les versions Windows de PHP.

Le support .Net nécessite PHP 5 ainsi que le gestionnaire .Net.



Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Vous êtes responsable de l'installation des divers objets COM dont vous auriez besoin (comme Ms Word) ; nous ne pouvons tous les inclure dans PHP.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour COM
Nom Défaut Modifiable Historique
com.allow_dcom "0" PHP_INI_SYSTEM Disponible depuis PHP 4.0.5.
com.autoregister_typelib "0" PHP_INI_ALL PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_verbose "0" PHP_INI_ALL PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_casesensitive "1" PHP_INI_ALL PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.code_page "" PHP_INI_ALL Disponible depuis PHP 5.0.0.
com.typelib_file "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.5.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

com.allow_dcom

Si cette directive est activée, PHP aura la permission d'opérer comme un client D-COM (Distributed COM) et permettra à PHP d'instancier des objets COM sur un serveur distant.

com.autoregister_typelib

Si cette directive est activée, PHP essayera de déclarer des constantes provenant de la bibliothèque typelibrary des objets qu'il instancie, si ces objets implémentent l'interface demandée pour obtenir les données demandées. La sensibilité des constantes à la casse est contrôlée par la directive de configuration .

com.autoregister_verbose

Quand cette directive est activée, tout problème rencontré lors du chargement d'une typelibrary durant l'instanciation de l'objet sera reporté en utilisant le mécanisme d'erreurs de PHP. Par défaut, elle est désactivée, ce qui ne donne aucune indication sur l'échec de l'opération lors d'une recherche ou d'un chargement de la bibliothèque de type.

com.autoregister_casesensitive

Cette directive est activée par défaut et fait que les constantes trouvées dans les bibliothèques de types seront enregistrées en mode sensible à la casse. Voyez com_load_typelib() pour plus de détails.

com.code_page

Cette directive permet de spécifier le code-page des jeux de caractères à utiliser lors de l'envoi et la réception de chaînes vers des objets COM. Si elle est vide, PHP pensera que vous voulez CP_ACP, qui est le code-page système ANSI par défaut.

Si le texte dans vos scripts est encodé avec un différent encodage ou jeu de caractères par défaut, configurer cette directive vous évitera d'avoir à passer tout votre code comme paramètre du constructeur de la classe COM. Notez qu'en utilisant cette directive (comme toute configuration de PHP), votre code PHP perd en portabilité. Vous devez utiliser le paramètre du constructeur à chaque fois que possible.

Note: Cette directive a été introduite en PHP 5.

com.typelib_file

Lorsqu'elle est configurée, cette directive doit être le chemin vers un fichier qui contient une liste de bibliothèques à charger au démarrage. Chaque ligne sera interprétée comme le nom de la bibliothèque de types et chargée comme si vous aviez utilisé com_load_typelib(). Les constantes seront enregistrées de façon persistante, pour que la bibliothèque ne soit chargée qu'une seule fois. Si le nom d'une bibliothèque de types se termine par #cis ou #case_insensitive, alors les constantes de cette bibliothèque de types seront enregistrées en mode insensible à la casse.



Types de ressources

Cette extension définit une référence vers un objet COM, retournée par la fonction (obsolète) com_load() (cette fonction n'existe plus en PHP 5 ; utilisez la classe COM à la place).




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XML constants
Constant Value Description Notes
CLSCTX_INPROC_SERVER (integer) 1 Le code qui crée et gère les objets de cette classe est une bibliothèque DLL qui est exécutée dans le même processus que l'appelant de la fonction, spécifiant ainsi le contexte de la classe.  
CLSCTX_INPROC_HANDLER (integer) 2 Le code qui gère les objets de cette classe est un gestionnaire du processus. C'est une bibliothèque DLL qui s'exécute dans le processus client et implémente les structures côté client de cette classe lorsque l'on accède à ses instances à distance.  
CLSCTX_LOCAL_SERVER (integer) 4 Le code d'exécution qui crée et gère les objets de cette classe s'exécute sur la même machine mais est chargé dans un espace séparé du processus.  
CLSCTX_REMOTE_SERVER (integer) 16 Le contexte distant. Le code qui crée et gère les objets de cette classe s'exécute sur une machine différente.  
CLSCTX_SERVER (integer) 21 Indique le code serveur, et si le processus est local ou distant. Correspond aux constantes CLSCTX_INPROC_SERVER, CLSCTX_LOCAL_SERVER et CLSCTX_REMOTE_SERVER.  
CLSCTX_ALL (integer) 23 Indique tous les contextes de la classe. Correspond aux constantes CLSCTX_INPROC_HANDLER et CLSCTX_SERVER.  
VT_NULL (integer) 1 Référence de pointeur NULL.  
VT_EMPTY (integer) 0 Une propriété, dont le type de l'indicateur est VT_EMPTY, n'a aucune donné accosiée ; aussi, la taille de la valeur est de zéro.  
VT_UI1 (integer) 17 Entier non signé sur 1 octet.  
VT_I2 (integer) 2 2 octets représentant une valeur entière signée sur 2 octets.  
VT_I4 (integer) 3 Entier signé sur 4 octets.  
VT_R4 (integer) 4 Valeur à virgule flottante IEEE sur 32 octets.  
VT_R8 (integer) 5 Valeur à virgule flottante IEEE sur 64 octets.  
VT_BOOL (integer) 11 Valeur booléenne.  
VT_ERROR (integer) 10 Code erreur ; contient le code statut associé avec l'erreur.  
VT_CY (integer) 6 Entier complémentaire de 8 octets (par tranche de 10.000).  
VT_DATE (integer) 7 Nombre à virgule flottante de 64 octets, représentant le nombre de jours (et non de secondes) depuis le 01 Décembre 1899. Par exemple, January 1, 1900, vaut 2.0, January 2, 1900, vaut 3.0, et ainsi de suite). Stocké sous la même représentation que la constante VT_R8.  
VT_BSTR (integer) 8 Pointeur vers une chaîne Unicode finissant par NULL.  
VT_DECIMAL (integer) 14 Une structure décimale.  
VT_UNKNOWN (integer) 13 Un pointeur vers un objet qui implémente l'interface IUnknown.  
VT_DISPATCH (integer) 9 Un pointeur vers un objet a été spécifié.  
VT_VARIANT (integer) 12 Un indicateur de type suivi par la valeur correspondante. VT_VARIANT peut être utilisé uniquement avec VT_BYREF.  
VT_I1 (integer) 16 Entier signé sur 1 octet.  
VT_UI2 (integer) 18 Entier non signé sur 2 octets.  
VT_UI4 (integer) 19 Entier non signé sur 4 octets.  
VT_INT (integer) 22 Valeur entière signée sur 4 octets (équivaut à VT_I4).  
VT_UINT (integer) 23 Entier non signé sur 4 octets (équivaut à VT_UI4).  
VT_ARRAY (integer) 8192 Si l'indicateur de type est combiné avec VT_ARRAY via un opérateur OR, la valeur sera un pointeur vers un SAFEARRAY. VT_ARRAY peut utiliser l'opérateur OR avec les types de données suivantes : VT_I1, VT_UI1, VT_I2, VT_UI2, VT_I4, VT_UI4, VT_INT, VT_UINT, VT_R4, VT_R8, VT_BOOL, VT_DECIMAL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_UNKNOWN et VT_VARIANT.  
VT_BYREF (integer) 16384 Si l'indicateur de type est combiné avec VT_BYREF via un opérateur OR, la valeur sera une référence. Les types de référence sont interprétés comme une référence vers les données, similaire au type de référence en C++.  
CP_ACP (integer) 0 Le code page ANSI par défaut.  
CP_MACCP (integer) 2 Le code page Macintosh.  
CP_OEMCP (integer) 1 Le code page OEM par défaut.  
CP_UTF7 (integer) 65000 Unicode (UTF-7).  
CP_UTF8 (integer) 65001 Unicode (UTF-8).  
CP_SYMBOL (integer) 42 Traduction des SYMBOL.  
CP_THREAD_ACP (integer) 3 Le code page ANSI du thread courant.  
VARCMP_LT (integer) 0 Le bstr de gauche est plus petit que le bstr de droite.  
VARCMP_EQ (integer) 1 Les 2 paramètres sont égaux.  
VARCMP_GT (integer) 2 Le bstr de gauche est plus grand que le bstr de droite.  
VARCMP_NULL (integer) 3 Chaque expression vaut NULL.  
NORM_IGNORECASE (integer) 1 Ignore la casse.  
NORM_IGNORENONSPACE (integer) 2 Ignore les caractères non espacés.  
NORM_IGNORESYMBOLS (integer) 4 Ignore les symboles.  
NORM_IGNOREWIDTH (integer) 131072 Ignore la taille des caractères.  
NORM_IGNOREKANATYPE (integer) 65536 Ignore le type Kana.  
NORM_IGNOREKASHIDA (integer) 262144 Ignore les caractères Arabe kashida. La disponibilité dépend de la bibliothèque sous-jacente.
DISP_E_DIVBYZERO (integer) -2147352558 Une erreur retournée qui indique qu'une division par zéro a eu lieu.  
DISP_E_OVERFLOW (integer) -2147352566 Une erreur qui indique qu'une valeur n'a pû être convertie en la représentation attendue.  
MK_E_UNAVAILABLE (integer) -2147221021 Code statut iMoniker COM, retourné lors d'erreurs générées lorsque l'on a tenté d'appeler une fonction qui n'est pas disponible.  


Erreur et gestion des erreurs

Exceptions (PHP 5)

Cette extension lancera des instances de la classe com_exception pour toute erreur fatale reportée par COM. Toutes les exceptions COM ont une propriété code qui correspond à la valeur de retour HRESULT des diverses opérations COM. Vous pouvez utiliser ce code pour choisir de façon automatique comment gérer cette exception.



Exemples

Sommaire


For Each

Avec PHP 5, vous pouvez utiliser la structure de contrôle foreach de PHP pour passe en boucle à travers le contenu d'un IEnumVariant COM/OLE standard. Cela signifie que vous pouvez utiliser foreach aux endroits où vous auriez pu utiliser For Each dans du code VB/ASP.

Exemple #1 For Each en ASP

<%
Set domainObject = GetObject("WinNT://Domain")
For Each obj in domainObject
  Response.Write obj.Name & "<br />"
Next
%>

Exemple #2 while() ... Next() en PHP 4

<?php
$domainObject 
= new COM("WinNT://Domain");
while (
$obj $domainObject->Next()) {
   echo 
$obj->Name "<br />";
}
?>

Exemple #3 foreach en PHP 5

<?php 
$domainObject 
= new COM("WinNT://Domain");
foreach (
$domainObject as $obj) {
   echo 
$obj->Name "<br />";
}
?>



Tableaux et propriétés à la façon des tableaux de COM

Plusieurs objets COM exposent leurs propriétés comme tableaux, ou en utilisant un chemin d'accès à la façon des tableaux. En PHP 4, vous pouvez utiliser la syntaxe de tableaux de PHP pour lire/écrire une propriété de ce genre, mais une seule dimension est permise. Si vous voulez lire une propriété multidimensionnelle, vous pouvez y accéder à travers une fonction ou chaque paramètre représente une dimension de ce tableau, mais il n'y a aucun moyen d'écrire une telle propriété.

PHP 5 introduit différentes nouvelles fonctionnalités pour vous faciliter la vie:

  • Accédez aux tableaux multidimensionnels ou aux propriétés COM qui requièrent plusieurs paramètres comme si vous accédiez à un tableau. Vous pouvez aussi écrire ces propriétés en utilisant cette technique.

  • Bouclez sur les SafeArrays ("vrais" tableaux) en utilisant la structure de contrôle foreach. Cela fonctionne car un SafeArrays comporte des informations à propos de sa taille. Si une propriété à la façon des tableaux implémente IEnumVariant, alors vous pouvez aussi utiliser foreach pour cette propriété ; lisez For Each pour plus d'informations à ce sujet.




Fonctions COM et .Net (Windows)

Voir aussi

Pour plus d'informations sur les objets COM, lisez les » spécifications COM ou bien jetez un oeil au livre de Don Box (en anglais) : » Yet Another COM Library (YACL). Vous pouvez trouver des informations utiles dans notre FAQ pour PHP et COM. Si vous voulez utiliser des applications MS Office sur le serveur, vous devez lire les informations ici : » Considerations for Server-Side Automation of Office.


COM

(PHP 4 >= 4.1.0, PHP 5)

COMClasse COM

$obj = new COM("Application.ID")

Description

La classe COM vous permet d'instancier un objet COM compatible OLE, d'appeler ces méthodes et d'accéder à ces propriétés.

Méthodes

com COM::COM ( string $module_name [, mixed $server_name [, int $codepage [, string $typelib ]]] )

Constructeur de la classe COM. Paramètres :

module_name
Peut être un ProgID, un Class ID ou un Moniker qui nomment un composant à charger. Un ProgID est typiquement une application ou le nom d'une DLL, suivi d'une période, suivi par le nom de l'objet. e.g : Word.Application. Un Class ID est un UUID qui identifie de manière unique une classe donnée. Un Moniker est une manière spéciale de nommage, similaire dans le concept au schéma d'URL, qui identifie une ressource et spécifie comment elle doit être chargée. Par exemple, vous pouvez charger Word et prendre un objet représentant un document Word en spécifiant le chemin complet du document Word comme nom de module, ou bien, vous pouvez utiliser LDAP: comme un Moniker pour utiliser l'interface ADSI pour LDAP.
server_name
Le nom du serveur DCOM sur lequel le composant devrait être chargé et lancé. Si le paramètre vaut NULL, l'objet courant utilisera la valeur par défaut pour l'application. La valeur par défaut est typiquement localhost bien que l'administrateur peut avoir configuré l'application pour qu'elle s'exécute sur une machine différente. Si vous spécifiez une valeur non-NULL pour le serveur, PHP peut refuser de charger l'objet tant que l'option de configuration ne vaut pas TRUE.

Si server_name est un tableau, il doit contenir les éléments suivants (sensible à la casse). Notez qu'ils sont tous optionnels (bien que vous devez spécifier et USERNAME, et PASSWORD) ; si vous omettez les paramètres du serveur, le serveur par défaut sera utilisé (comme mentionné plus haut), et l'instanciation de l'objet ne sera pas affectée par la directive.

DCOM server name
clé server_name type description
Server chaîne Le nom du serveur.
Username chaîne L'utilisateur de connexion.
Password chaîne Le mot de passe de l'utilisateur Username.
Flags entier Une ou plusieurs des constantes suivantes CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER et CLSCTX_ALL. La valeur par défaut est CLSCTX_SERVER si vous omettez également Server, ou bien CLSCTX_REMOTE_SERVER si vous spécifiez un serveur. Vous devriez consulter la documentation Microsoft concernant CoCreateInstance pour plus d'informations sur ces constantes ; vous ne devriez pas les utiliser dans un cas typique.

codepage
Spécifie le code qui est utilisé pour transformer les chaînes de caractères PHP en chaînes unicode, et vice-versa. La conversion est appliquée même si une chaîne PHP est passée en paramètre ou bien retournée d'une méthode de cet objet COM. Le code est "collé" en PHP 5, ce qui signifie qu'il se propagera aux objets et aux variables retournés par cet objet. Les valeurs possibles sont : CP_ACP (utilise le code système par défaut d'ANSI - valeur par défaut si le paramètre est omis), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (utilise la valeur du code local pour l'exécution courante), CP_UTF7 et CP_UTF8. Vous devriez également utiliser le numéro pour un code donné ; consultez la documentation de Microsoft pour plus de détails sur les codes et leurs valeurs numériques.

Méthodes surchargées

L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM.

À partir de PHP 5, PHP détectera automatiquement les méthodes qui acceptent les paramètres par référence, et convertira automatiquement les variables PHP classiques en une forme pouvant être passée par référence. Cela signifie que vous pouvez appeler les méthodes de façon naturelle ; vous n'avez pas d'efforts supplémentaires à faire dans votre code.

En PHP 4, pour passer les paramètres par référence, vous devez créer une instance de VARIANT la classe pour utiliser les paramètres par référence.

Les pseudo-méthodes

Dans les versions antérieures à PHP 5, des hacks faisaient que les noms des méthodes suivantes n'étaient pas passés à COM et étaient directement gérés par PHP. PHP 5 élimine cela ; lisez les détails suivants pour déterminer comment corriger vos scripts. Ces noms de méthodes ne sont pas sensibles à la casse.

void COM::AddRef ( void )

Ajoute artificiellement un compteur de référence à l'objet COM.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette méthode. Il existe un complément logique à la méthode Release() ci-dessous.

void COM::Release ( void )

Supprime artificiellement un compteur de référence à un objet COM.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette méthode. Son existence en PHP est un bogue fait pour résoudre un autre bogue qui conserve les objets COM fonctionnels plus longtemps qu'ils ne devraient l'être.

Les pseudo-méthodes pour itération

Ces pseudo-méthodes ne sont valables que si com_isenum() retourne TRUE et dans ce cas, elles cachent toute autre méthode portant le même nom qui pourrait provenir de l'objet COM. Ces méthodes ont été éliminées de PHP 5, et vous devez utiliser For Each en lieu et place.

variant COM::All ( void )

Retourne une variante représentant un "SafeArray" qui possède 10 éléments ; chaque élément sera une variante vide ou nulle. Cette fonction est supposée retourner un tableau contenant tous les éléments de l'itération, mais ne il sera jamais complet. Ne pas l'utiliser.

variant COM::Next ( void )

Retourne une variante représentant l'élément disponible suivant de l'itération ou FALSE lorsqu'il n'y a plus d'éléments.

variant COM::Prev ( void )

Retourne une variante représentant l'élément disponible précédent de l'itération ou FALSE lorsqu'il n'y a plus d'éléments.

void COM::Reset ( void )

Replace l'itération au début.

Exemples avec COM

Exemple #1 Exemple COM (1)

<?php

/* Démarrage de Word */
$word = new COM("word.application") or die("Impossible d'instancier l'application Word");
echo 
"Word lancé, version {$word->Version}\n";

/* Amener Word devant */
$word->Visible 1;

/* Cree un document vide */
$word->Documents->Add();

/* Quelques commandes */
$word->Selection->TypeText("Ceci est un test...");
$word->Documents[1]->SaveAs("test.doc");

/* Fermeture de word */
$word->Quit();

/* Libération des ressources */
$word null;
?>

Exemple #2 Exemple COM (2)

<?php
$conn 
= new COM("ADODB.Connection") or die("Impossible de démarrer ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password"
);

/* Jeux d'enregistrement */
$rs $conn->Execute("SELECT * FROM sometable");

$num_columns $rs->Fields->Count();
echo 
$num_columns "\n";

for (
$i=0$i $num_columns$i++) {
  
$fld[$i] = $rs->Fields($i);
}

$rowcount 0;
while (!
$rs->EOF) {
  for (
$i=0$i $num_columns$i++) {
    echo 
$fld[$i]->value "\t";
  }
  echo 
"\n";

  
/* Incrémentation */
  
$rowcount++;
  
$rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs null;
$conn null;

?>



DOTNET

(PHP 4 >= 4.1.0, PHP 5)

DOTNETLa classe DOTNET

$obj = new DOTNET("assembly", "classname")

Description

La classe DOTNET vous autorise à instancier une classe depuis un ensemble .NET et à appeler ces propriétés ainsi qu'à accéder à ces propriétés.

Méthodes

string DOTNET::DOTNET ( string $assembly_name , string $class_name [, int $codepage ] )

Le construction de la classe DOTNET. assembly_name spécifie quel ensemble doit être chargé, et class_name spécifie quelle classe de l'ensemble doit être instanciée. Vous pouvez spécifier optionnellement un codepage à utiliser pour les transformations des chaînes Unicode ; voir COM la classe pour plus de détails sur les codepage.

L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM et depuis DOTNET. En d'autres mots, l'objet .NET est tracé à travers la couche d'interopérabilité de COM fournie par le moteur .NET.

Dès que vous avez créé l'objet DOTNET, PHP l'utilise comme n'importe quel autre objet COM ; Toutes les mêmes règles y sont appliquées.

Exemple #1 Exemple DOTNET

<?php
$stack 
= new DOTNET("mscorlib""System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Bonjour ");
echo 
$stack->Pop() . $stack->Pop();
?>

Note:

Vous devez installer le moteur .NET sur votre serveur Web pour tirer avantage de ces fonctionnalités.



VARIANT

(PHP 4 >= 4.1.0, PHP 5)

VARIANTclasse VARIANT

$vVar = new VARIANT($var)

Description

Le VARIANT est un équivalent de COM pour PHP zval ; c'est une structure qui peut contenir une valeur avec un intervalle de types possibles. La classe VARIANT fournie par l'extension COM vous permet d'avoir plus de contrôle sur ce que PHP envoie et reçoit de COM.

Méthodes

object VARIANT::VARIANT ([ mixed $value [, int $type [, int $codepage ]]] )

Constructeur VARIANT. Paramètres:

value
valeur initiale. Si omis, un objet VT_EMPTY sera créé.
type
spécifie le type d'objet VARIANT contenu. Les valeurs possibles sont une des constantes VT_XXX Constantes pré-définies. Dans les versions antérieures à PHP 5, vous pouvez forcer PHP à passer un objet VARIANT par référence en combinant VT_BYREF avec l'opérateur OR et le paramètre type. En PHP 5, ce hack n'est pas supporté ; en lieu et place, PHP 5 peut détecter les paramètres passés par référence automatiquement ; ils n'ont pas à être passés comme des objets VARIANT. Consultez la bibliothèque MSDN pour plus de détails.
codepage
spécifie le code qui est utilisé pour transformer les chaînes de caractères PHP en chaînes unicode, et vice-versa. Voir le paramètre du même nom dans la COM classe pour plus d'informations.

Les versions antérieures à PHP 5 définissent un nombre de propriétés virtuelles (non-documenté) pour les instances de classe VARIANT ; ces propriétés ont toutes été supprimées de PHP 5 en faveur d'une syntaxe plus naturelle ; ces différences sont bien illustrées par cet exemple :

Exemple #1 Exemple d'une classe VARIANT, comme utilisé en PHP 4.x

<?php
$v 
= new VARIANT(42);
echo 
'The type is ' $v->type '<br />';
echo 
'The value is ' $v->value '<br />';
?>

Exemple #2 Exemple d'une classe VARIANT, comme utilisé en PHP 5

<?php
$v 
= new VARIANT(42);
echo 
'The type is ' variant_get_type($v) . '<br />';
echo 
'The value is ' $v '<br />';
?>

Les raisons de ces changements sont que, en interne, l'extension COM voit les classes VARIANT, CM et DOTNET comme étant la même chose, et l'esprit pour ces classes est que tous les accès aux propriétés et aux méthodes sont transmis à COM sans interférence. La nouvelle syntaxe est plus naturelle et demande moins d'efforts et la plupart des propriétés virtuelles supprimées n'ont plus aucun sens dans ce contexte.

Note:

PHP 5 prend une approche plus simple pour gérer les classes VARIANT ; lorsqu'il retourne une valeur d'une propriété VARIANT, elle est convertie en une valeur PHP seulement s'il y a un mappage direct entre les types sans perdre aucune information. Dans tous les autres cas, le résultat est retourné comme une instance de la classe VARIANT. Vous pouvez forcer PHP à convertir ou à évaluer la classe VARIANT comme un type natif de PHP en utilisant explicitement un opérateur de transtypage, ou implicitement transtyper en une chaîne pour l'afficher. Vous pouvez utiliser l'éventail de fonctions pour réaliser des opérations arithmétiques sur les classes VARIANT sans forcer des conversions ou bien risquer de perdre des données.

Voir aussi variant_get_type().



com_addref

(PHP 4 >= 4.1.0)

com_addrefIncrémente le compteur de références [Obsolète]

Description

void com_addref ( void )

Incrémente le compteur de références.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette fonction.



com_create_guid

(PHP 5)

com_create_guidGénère un identifiant unique global (GUID)

Description

string com_create_guid ( void )

Génère un identifiant unique global (GUID).

Un GUID est généré de la même façon que DCE UUID, excepté le fait que la convention Microsoft inclut le GUID dans une parenthèse.

Valeurs de retour

Retourne le GUID, sous la forme d'une chaîne de caractères.

Voir aussi

  • uuid_create() dans l'extension PECL uuid



com_event_sink

(PHP 4 >= 4.2.0, PHP 5)

com_event_sinkConnecte des événements d'un objet COM sur un objet PHP

Description

bool com_event_sink ( variant $comobject , object $sinkobject [, mixed $sinkinterface ] )

Connecte des événements de l'objet COM comobject sur un l'objet PHP sinkobject.

Soyez prudent sur l'utilisation de cette fonctionnalité ; si vous faites quelque chose de similaire à l'exemple ci-dessous, cela n'a pas de sens de le lancer sur un serveur Web.

Liste de paramètres

comobject

sinkobject

sinkobject devra être une instance de la classe avec des noms de méthodes suivant le dispinterface désiré ; vous devriez utiliser com_print_typeinfo() pour l'aide à la génération d'un gabarit de classe pour cela.

sinkinterface

PHP devrait être capable d'utiliser le type par défaut de dispinterface spécifié par la Typelib associée avec l'objet comobject, mais vous pouvez changer cela en spécifiant dans le paramètre sinkinterface le dispinterface que vous souhaitez utiliser.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de connexions d'événements COM

<?php
class IEEventSinker {
    var 
$terminated false;

   function 
ProgressChange($progress$progressmax) {
      echo 
"Progression du téléchargement : $progress / $progressmax\n";
    }

    function 
DocumentComplete(&$dom$url) {
      echo 
"Document $url terminé\n";
    }

    function 
OnQuit() {
      echo 
"Quit!\n";
      
$this->terminated true;
    }
}
$ie = new COM("InternetExplorer.Application");
// notez que vous n'avez pas besoin du & en PHP 5!
$sink = new IEEventSinker();
com_event_sink($ie$sink"DWebBrowserEvents2");
$ie->Visible true;
$ie->Navigate("http://www.example.org");
while(!
$sink->terminated) {
  
com_message_pump(4000);
}
$ie null;
?>

Voir aussi



com_get_active_object

(PHP 5)

com_get_active_objectRetourne un objet représentant l'instance actuelle d'un objet COM

Description

variant com_get_active_object ( string $progid [, int $code_page ] )

com_get_active_object() est similaire à la création d'une nouvelle instance COMd'un objet COM, excepté qu'elle ne retournera un objet à votre script uniquement si l'objet est actuellement instancié. Les applications OLE utilisent quelque chose de connu en tant que "Running Object Table" qui permet aux applications connues d'être exécutées juste une fois ; cette fonction expose la fonction GetActiveObject() de la bibliothèque COM pour récupérer un objet d'une instance en cours d'utilisation.

Liste de paramètres

progid

Le paramètre Progid doit être soit le ProgID, soit le CLSID de l'objet dont vous voulez avoir l'accès (par exemple, Word.Application).

code_page

utilise les mêmes règles que dans la COM classe.

Valeurs de retour

Si l'objet demandé est en cours d'exécution, la fonction retournera à votre script ce que toute autre objet COM retournerait.

Erreurs / Exceptions

Il y a beaucoup de raisons pour lesquelles cette fonction peut échouer. Dans cette situation, le code erreur de l'exception devrait être MK_E_UNAVAILABLE ; vous pouvez utiliser la méthode getCode de l'objet exception pour vérifier le code de l'exception.

Notes

Avertissement

Utiliser la fonction com_get_active_object() sur un serveur web n'est pas toujours la meilleure idée. La plupart des applications COM/OLE ne sont pas faites pour gérer plus d'un client en concurrence, comme (et surtout !!) Microsoft Office. Vous devriez lire les » considérations pour les automatismes coté serveur pour Office pour plus d'informations sur les comportements généraux.



com_get

(PHP 4)

com_getLit la valeur d'une propriété d'un composant COM [Obsolète]

Description

Obsolète ; utilisez la syntaxe orientée objet à la place.

Exemple #1 Syntaxe OO

<?php
// Faîtes ceci
$var $obj->property;
// au lieu de ceci :
$var com_get($obj'property');
?>

Notes

Note: Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe OO pour accéder aux propriétés ou appeler les méthodes.



com_invoke

(PHP 4)

com_invoke Appelle une méthode d'un composant (déconseillé)

Description

mixed com_invoke ( resource $com_object , string $function_name [, mixed $function_parameters ] )

com_invoke() appelle la méthode function_name du composant COM com_object. com_invoke() retourne FALSE en cas d'erreur, sinon retourne le résultat de la fonction function_name en cas de succès. Tous les paramètres supplémentaires function_parameters sont passés à la méthode function_name.

Exemple #1 N'utilisez pas com_invoke(), utilisez la syntaxe OO à la place

<?php
// do this
$val $obj->method($one$two);
// instead of this:
$val com_invoke($obj'method'$one$two);
?>

Note: Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe OO pour accéder aux propriétés ou appeler les méthodes.



com_isenum

(PHP 4 >= 4.1.0)

com_isenumIndique si un objet COM a une interface IEnumVariant pour l'itération [Obsolète]

Description

bool com_isenum ( variant $com_module )

Vérifie si l'objet COM peut être énuméré en utilisant la méthode Next(). Voir la COM classe pour plus de détails sur ces méthodes.

Liste de paramètres

com_module

L'objet COM.

Valeurs de retour

Retourne TRUE si l'objet peut être énuméré, FALSE sinon.

Notes

Note:

Cette fonction n'existe pas en PHP 5 ; utilisez l'instruction foreach pour parcourir le contenu des objets COM. Voir For Each pour plus de détails.



com_load_typelib

(PHP 4 >= 4.1.0, PHP 5)

com_load_typelibCharge un Typelib

Description

bool com_load_typelib ( string $typelib_name [, bool $case_insensitive = true ] )

Charge un Typelib et enregistre son contenu dans le moteur, comme s'ils avaient été définis en utilisant define().

Notez qu'il est plus efficace d'utiliser l'option de configuration pour précharger et enregistrer les constantes, même si cela est moins flexible.

Si vous devez activer , alors PHP essayera d'enregistrer automatiquement les constantes associées à l'objet COM lorsque vous créerez l'objet. Cela dépendra de l'interface fournie par l'objet COM lui-même et ne sera pas toujours possible.

Liste de paramètres

typelib_name

typelib_name peut être une des valeurs suivantes :

  • Le nom d'un fichier .tlb ou le module exécutable contenant le Typelib.

  • Le GUID du Typelib, suivi du numéro de version ; par exemple {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • Le nom du Typelib, e.g Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP va essayer de résoudre le Typelib dans cet ordre, et le processus prendra de plus en plus de ressources pour arriver à la fin de la liste ; la recherche du Typelib par son nom est manipulée physiquement en énumérant le registre jusqu'à ce qu'un résultat y soit trouvé.

case_insensitive

Le paramètre case_insensitive se comporte comme le paramètre du même nom de la fonction define().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



com_load

(PHP 4)

com_loadCrée une référence sur un composant COM [Obsolète]

Description

Obsolète ; utilisez la syntaxe orientée objet à la place.

Exemple #1 Syntaxe OO

<?php
// Fîtes ceci
$obj = new COM($module);
// au lieu de ceci :
$obj com_load($module);
?>

Notes

Note: Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe OO pour accéder aux propriétés ou appeler les méthodes.



com_message_pump

(PHP 4 >= 4.2.0, PHP 5)

com_message_pumpTraite un message COM dans un délai donné

Description

bool com_message_pump ([ int $timeoutms = 0 ] )

Traite un message COM en attendant jusqu'à timeoutms millisecondes, ou bien en attendant qu'un message arrive dans la file d'attente.

Le but de cette fonction est d'acheminer les appels COM entre les éléments et de gérer les différentes synchronisations. Cela permet à votre script d'attendre efficacement les événements à déclencher, tout en gérant d'autres événements ou bien d'exécuter d'autres scripts en arrière-plan. Vous devriez l'utiliser dan une boucle, comme dans l'exemple de la fonction com_event_sink(), jusqu'à ce que vous ayez fini d'utiliser les objets COM liés à des événements.

Liste de paramètres

timeoutms

Le délai, en millisecondes.

Si vous ne spécifiez pas de valeur pour le paramètre timeoutms, alors il voudra 0. Une valeur à 0 signifie que les messages seront traités immédiatement ; s'il y a des messages dans la file d'attente, ils seront distribués aussitôt ; s'il n'y a aucun message dans la file d'attente, la fonction retournera FALSE immédiatement sans attendre.

Valeurs de retour

Si un ou plusieurs messages arrivent avant le délai d'expiration, ils seront distribués et la fonction retournera TRUE. Si le délai d'expiration survient et qu'aucun message n'est traité, la valeur retournée sera FALSE.



com_print_typeinfo

(PHP 4 >= 4.2.0, PHP 5)

com_print_typeinfoAffiche une définition de classe PHP pour une interface répartissable

Description

bool com_print_typeinfo ( object $comobject [, string $dispinterface [, bool $wantsink = false ]] )

Aide à générer un squelette de classe pour l'utiliser comme évier d'événement. Vous pouvez également l'utiliser pour générer une sauvegarde de n'importe quel objet COM, à condition qu'il supporte assez d'interfaces d'introspection et que vous connaissiez le nom de l'interface que vous désirez afficher.

Liste de paramètres

comobject

comobject doit être soit une instance d'un objet COM, soit le nom d'une bibliothèque type (qui doit être résolu en accord des règles définies dans la fonction com_load_typelib()).

dispinterface

Le nom d'une interface descendante IDispatch que vous souhaitez afficher.

wantsink

Si le paramètre wantsink vaut TRUE, l'interface d'évier correspondante sera affichée à la place.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



com_propget

(PHP 4)

com_propgetAlias de com_get()

Description

Cette fonction est un alias de : com_get().

Note: Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe OO pour accéder aux propriétés ou appeler les méthodes.



com_propput

(PHP 4)

com_propputAlias de com_set()

Description

Cette fonction est un alias de : com_set().

Note: Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe OO pour accéder aux propriétés ou appeler les méthodes.



com_propset

(PHP 4)

com_propsetAlias de com_set()

Description

Cette fonction est un alias de : com_set().

Note: Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe OO pour accéder aux propriétés ou appeler les méthodes.



com_release

(PHP 4 >= 4.1.0)

com_releaseDécrémente le compteur de références [Obsolète]

Description

void com_release ( void )

Décrémente le compteur de références.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
5.0.0 Cette fonction a été effacée.

Notes

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette fonction.



com_set

(PHP 4)

com_setModifie une propriété d'un composant COM

Description

Obsolète ; utilisez la syntaxe orientée objet à la place.

Exemple #1 Syntaxe OO

<?php
// Faîtes ceci
$obj->property $value;
// au lieu de ceci :
com_set($obj'property'$value);
?>

Notes

Note: Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe OO pour accéder aux propriétés ou appeler les méthodes.



variant_abs

(PHP 5)

variant_absRetourne la valeur absolue d'un variant

Description

mixed variant_abs ( mixed $val )

Retourne la valeur absolue d'un variant.

Liste de paramètres

val

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne la valeur absolue de val.

Voir aussi



variant_add

(PHP 5)

variant_add"Ajoute" deux valeurs de variants et retourne le résultat

Description

mixed variant_add ( mixed $left , mixed $right )

Ajoute left à right selon les règles suivantes (prises de la bibliothèque MSDN), qui correspondent à celles de Visual Basic :

Règle d'ajout des variants
Si Alors
Les deux expressions sont des chaînes Concaténation
Une expression est de type chaîne et l'autre est un caractère Addition
Une expression est numérique est l'autre est une chaîne Addition
Les deux expressions sont numériques Addition
Une expression est NULL NULL est retourné
Les deux expressions sont vides Le sous-type entier est retourné

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat.

Voir aussi

  • variant_sub() - Soustrait la valeur du variant de droite de la valeur de celui de gauche



variant_and

(PHP 5)

variant_andEffectue un ET entre deux variants et retourne le résultat

Description

mixed variant_and ( mixed $left , mixed $right )

Effectue un ET sur les bits, selon la table de vérité suivante ; notez que cela est différent du ET normal.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles du ET variant
Si left est Si right est alors le résultat est
TRUETRUETRUE
TRUEFALSEFALSE
TRUENULLNULL
FALSETRUEFALSE
FALSEFALSEFALSE
FALSENULLFALSE
NULLTRUENULL
NULLFALSEFALSE
NULLNULLNULL

Voir aussi

  • variant_or() - Performe une disjonction logique sur deux variants



variant_cast

(PHP 5)

variant_castConvertit un variant en un nouvel objet variant de type différent

Description

variant variant_cast ( variant $variant , int $type )

Cette fonction crée une copie de variant et effectue alors un transtypage pour forcer la copie à avoir le type donné par type.

Cette fonction est en fait la fonction VariantChangeType() de la bibliothèque COM ; consultez MSDN pour plus d'informations.

Liste de paramètres

variant

Le variant.

type

type doit être un type parmi les constantes VT_XXX.

Valeurs de retour

Retourne un variant VT_DATE.

Voir aussi



variant_cat

(PHP 5)

variant_catAssemble deux valeurs variantes ensemble et retourne le résultat

Description

mixed variant_cat ( mixed $left , mixed $right )

Assemble left avec right et retourne le résultat.

Cette fonction est équivalente à $left . $right.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat de la concaténation.

Voir aussi



variant_cmp

(PHP 5)

variant_cmpCompare deux variants

Description

int variant_cmp ( mixed $left , mixed $right [, int $lcid [, int $flags ]] )

Compare left avec right.

Cette fonction ne comparera que des valeurs scalaires, pas de tableaux ni d'enregistrements variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

lcid

Locale Identifier valide à utiliser lors des comparaisons des chaînes (cela affecte la collation de la chaîne).

flags

flags peut être une ou plusieurs des valeurs suivantes, jointes avec des OR, et affecte les comparaisons de chaînes :

Options de comparaison Variant
Valeur Signification
NORM_IGNORECASE Compare avec sensibilité à la casse
NORM_IGNORENONSPACE Ignore les caractères non-espaçants
NORM_IGNORESYMBOLS Ignore les symboles
NORM_IGNOREWIDTH Ignore la taille de la chaîne
NORM_IGNOREKANATYPE Ignore le type Kana
NORM_IGNOREKASHIDA Ignore les caractères arabes kashida

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne une des valeurs suivantes :

Résultats des comparaisons sur variants
Valeur Signification
VARCMP_LT left est plus petit que right
VARCMP_EQ left est égal à right
VARCMP_GT left est plus grand que right
VARCMP_NULL left, right ou les deux sont NULL



variant_date_from_timestamp

(PHP 5)

variant_date_from_timestampRetourne une représentation date en variant d'un timestamp Unix

Description

variant variant_date_from_timestamp ( int $timestamp )

Convertit timestamp depuis un timestamp Unix vers le type variant VT_DATE. Cela permet une interopérabilité plus facile des systèmes Unix de PHP et COM.

Liste de paramètres

timestamp

Un timestamp Unix.

Valeurs de retour

Retourne un variant VT_DATE.

Voir aussi



variant_date_to_timestamp

(PHP 5)

variant_date_to_timestampConvertit une valeur date/temps variante en un timestamp Unix

Description

int variant_date_to_timestamp ( variant $variant )

Convertit variant d'une valeur VT_DATE (ou similaire) en un timestamp unix. Cela permet l'interopérabilité facile entre les parties Unix de PHP et COM.

Liste de paramètres

variant

Le variant.

Valeurs de retour

Retourne un timestamp Unix.

Voir aussi



variant_div

(PHP 5)

variant_divRetourne le résultat de la division de deux variants

Description

mixed variant_div ( mixed $left , mixed $right )

Divise left par right et retourne le résultat.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règle de division des variants
Si Alors
Les deux expressions sont des chaînes, dates, caractères, booléens Double est retourné
Une expression est une chaîne et l'autre est un caractère Division et double retournés
Une expression est numérique et l'autre est une chaîne Division et double retournés
Les deux expressions sont numériques Division et double retournés
Une des expressions est NULL NULL est retourné
right est vide et left est tout mais non vide Un code com_exception DISP_E_DIVBYZERO est lancé
left est vide et right est tout mais non vide. 0 en tant que double est retourné
Les deux expressions sont vides Un code com_exception DISP_E_OVERFLOW est lancé

Voir aussi

  • variant_idiv() - Convertit des variants en valeurs entières, et effectue alors une division



variant_eqv

(PHP 5)

variant_eqvEffectue une équivalence de bits de deux variants

Description

mixed variant_eqv ( mixed $left , mixed $right )

Effectue une équivalence de bits de deux variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Si chaque bit dans left est égal au bit correspondant dans right alors la fonction retourne TRUE, sinon elle retourne FALSE.



variant_fix

(PHP 5)

variant_fixRécupère la portion entière d'un variant

Description

mixed variant_fix ( mixed $variant )

Récupère la portion entière d'un variant.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Si variant est négatif, le premier entier négatif plus grand ou égal au variant est retourné, sinon cette fonction retourne la portion entière de la valeur de variant.

Notes

Avertissement

Cette documentation est basée sur la documentation MSDN ; il apparaît que cette fonction est la même que variant_int(), ou alors, il y a une erreur dans la documentation de MSDN.

Voir aussi

  • variant_int() - Retourne la partie entière d'un variant
  • variant_round() - Arrondit le variant au nombre spécifié de décimales
  • floor() - Arrondit à l'entier inférieur
  • ceil() - Arrondit au nombre supérieur
  • round() - Arrondi un nombre à virgule flottante



variant_get_type

(PHP 5)

variant_get_typeRetourne le type d'un objet variant

Description

int variant_get_type ( variant $variant )

Retourne le type d'un objet variant.

Liste de paramètres

variant

L'objet variant.

Valeurs de retour

Retourne une valeur entière qui indique le type de variant, qui peut être une instance de COM, DOTNET ou de VARIANT. La valeur de retour peut être comparée à l'une des constantes VT_XXX.

La valeur de retour pour les objets COM et DOTNET sera la plupart du temps VT_DISPATCH ; la seule raison qui fait que cette fonction marche avec ces classes est que COM et DOTNET sont des descendants de VARIANT.

Avant PHP 5, vous pouvez obtenir cette information en lisant une fausse propriété type. Voyez la classe VARIANT pour plus d'informations.



variant_idiv

(PHP 5)

variant_idivConvertit des variants en valeurs entières, et effectue alors une division

Description

mixed variant_idiv ( mixed $left , mixed $right )

Convertit left et right en valeurs entières, et effectue alors une division entière.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles de divisions internes des variants
Si Alors
Les deux expressions sont des chaînes, dates, caractères, booléens Division et entier retournés
Une expression est une chaîne et l'autre est un caractère Division
Une expression est numérique et l'autre est une chaîne Division
Les deux expressions sont numériques Division
Une des expressions est NULL NULL est retourné
Les deux expressions sont vides Un code com_exception DISP_E_DIVBYZERO est lancé

Voir aussi

  • variant_div() - Retourne le résultat de la division de deux variants



variant_imp

(PHP 5)

variant_impExécute une implication sur les bits de deux variants

Description

mixed variant_imp ( mixed $left , mixed $right )

Exécute une implication sur les bits de deux variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Table d'implication des variants
Si left est Si right est alors le résultat est
TRUETRUETRUE
TRUEFALSETRUE
TRUENULLTRUE
FALSETRUETRUE
FALSEFALSETRUE
FALSENULLTRUE
NULLTRUETRUE
NULLFALSENULL
NULLNULLNULL



variant_int

(PHP 5)

variant_intRetourne la partie entière d'un variant

Description

mixed variant_int ( mixed $variant )

Récupère la partie entière d'un variant.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Si variant est négatif, le premier entier négatif supérieur ou égal à ce variant est retourné, sinon cette fonction retourne la partie entière de la valeur de variant.

Voir aussi

  • variant_fix() - Récupère la portion entière d'un variant
  • variant_round() - Arrondit le variant au nombre spécifié de décimales
  • floor() - Arrondit à l'entier inférieur
  • ceil() - Arrondit au nombre supérieur
  • round() - Arrondi un nombre à virgule flottante



variant_mod

(PHP 5)

variant_modDivise deux variantes et retourne le reste

Description

mixed variant_mod ( mixed $left , mixed $right )

Divise left par right et retourne le reste.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le reste de la division.

Voir aussi

  • variant_div() - Retourne le résultat de la division de deux variants
  • variant_idiv() - Convertit des variants en valeurs entières, et effectue alors une division



variant_mul

(PHP 5)

variant_mulMultiplie les valeurs de deux variants

Description

mixed variant_mul ( mixed $left , mixed $right )

Multiplie left par right.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Les valeurs booléennes sont converties en -1 pour FALSE et en 0 pour TRUE

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles de multiplication des variants
Si Alors
Les deux expressions sont du type chaîne, date, caractère ou booléen Multiplication
Une expression est une chaîne et l'autre est un caractère Multiplication
Une expression est numérique et l'autre est une chaîne Multiplication
Les deux expressions sont numériques Multiplication
Une des expressions est NULL NULL est retourné
Les deux expressions sont vides Une chaîne vide est retournée

Voir aussi

  • variant_div() - Retourne le résultat de la division de deux variants
  • variant_idiv() - Convertit des variants en valeurs entières, et effectue alors une division



variant_neg

(PHP 5)

variant_negEffectue une négation logique sur un variant

Description

mixed variant_neg ( mixed $variant )

Effectue une négation logique sur variant.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat de la négation logique.



variant_not

(PHP 5)

variant_notExécute une négation sur les bits sur un variant

Description

mixed variant_not ( mixed $variant )

Exécute une négation sur les bits sur le paramètre variant et retourne le résultat.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne la négation. Si variant vaut NULL, le résultat sera également NULL.



variant_or

(PHP 5)

variant_orPerforme une disjonction logique sur deux variants

Description

mixed variant_or ( mixed $left , mixed $right )

Effectue une opération sur les bits de types OR, selon la table de vérité suivante. Notez que ceci est différent de l'expression OR normale.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles du OR Variant
Si left est Si right est alors le résultat est
TRUETRUETRUE
TRUEFALSETRUE
TRUENULLTRUE
FALSETRUETRUE
FALSEFALSEFALSE
FALSENULLNULL
NULLTRUETRUE
NULLFALSENULL
NULLNULLNULL

Voir aussi

  • variant_and() - Effectue un ET entre deux variants et retourne le résultat
  • variant_xor() - Exécute une exclusion logique sur deux variants



variant_pow

(PHP 5)

variant_powRetourne le résultat de la fonction puissance avec deux variants

Description

mixed variant_pow ( mixed $left , mixed $right )

Retourne le résultat de left à la puissance right.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat de left à la puissance right.

Voir aussi

  • pow() - Expression exponentielle



variant_round

(PHP 5)

variant_roundArrondit le variant au nombre spécifié de décimales

Description

mixed variant_round ( mixed $variant , int $decimals )

Retourne la valeur de variant arrondi à decimals décimales.

Liste de paramètres

variant

Le variant.

decimals

Nombre de décimales.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne la valeur arrondie.

Voir aussi

  • round() - Arrondi un nombre à virgule flottante



variant_set_type

(PHP 5)

variant_set_typeConvertit un variant en un autre type "sur-place"

Description

void variant_set_type ( variant $variant , int $type )

Cette fonction est similaire variant_cast() à part que le variant est modifié "sur-place" ; aucun nouveau variant n'est créé. Les paramètres de cette fonction ont la même signification que ceux de variant_cast().

Liste de paramètres

variant

Le variant.

type

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • variant_cast() - Convertit un variant en un nouvel objet variant de type différent



variant_set

(PHP 5)

variant_setAssigne une nouvelle valeur pour un objet variant

Description

void variant_set ( variant $variant , mixed $value )

Convertit value en un variant et l'assigne à l'objet variant. Aucun nouvel objet n'est créé et l'ancienne valeur de variant est libérée.

Liste de paramètres

variant

Le variant.

value

Valeurs de retour

Aucune valeur n'est retournée.



variant_sub

(PHP 5)

variant_subSoustrait la valeur du variant de droite de la valeur de celui de gauche

Description

mixed variant_sub ( mixed $left , mixed $right )

Soustrait right de left.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles de soustraction des variants
Si Alors
Les deux expressions sont des chaînes Soustraction
Une expression est une chaîne et l'autre est un caractère Soustraction
Une expression est numérique et l'autre est une chaîne Soustraction.
Les deux expressions sont numériques Soustraction
Une des expressions est NULL NULL est retourné
Les deux expressions sont vides Une chaîne vide est retournée

Voir aussi

  • variant_add() - "Ajoute" deux valeurs de variants et retourne le résultat



variant_xor

(PHP 5)

variant_xorExécute une exclusion logique sur deux variants

Description

mixed variant_xor ( mixed $left , mixed $right )

Exécute une exclusion logique sur deux variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles XOR pour les Variant
Si left est Si right est alors le résultat est
TRUETRUEFALSE
TRUEFALSETRUE
FALSETRUETRUE
FALSEFALSEFALSE
NULLNULLNULL

Voir aussi

  • variant_or() - Performe une disjonction logique sur deux variants
  • variant_and() - Effectue un ET entre deux variants et retourne le résultat


Sommaire

  • COM — Classe COM
  • DOTNET — La classe DOTNET
  • VARIANT — classe VARIANT
  • com_addref — Incrémente le compteur de références [Obsolète]
  • com_create_guid — Génère un identifiant unique global (GUID)
  • com_event_sink — Connecte des événements d'un objet COM sur un objet PHP
  • com_get_active_object — Retourne un objet représentant l'instance actuelle d'un objet COM
  • com_get — Lit la valeur d'une propriété d'un composant COM [Obsolète]
  • com_invoke — Appelle une méthode d'un composant (déconseillé)
  • com_isenum — Indique si un objet COM a une interface IEnumVariant pour l'itération [Obsolète]
  • com_load_typelib — Charge un Typelib
  • com_load — Crée une référence sur un composant COM [Obsolète]
  • com_message_pump — Traite un message COM dans un délai donné
  • com_print_typeinfo — Affiche une définition de classe PHP pour une interface répartissable
  • com_propget — Alias de com_get
  • com_propput — Alias de com_set
  • com_propset — Alias de com_set
  • com_release — Décrémente le compteur de références [Obsolète]
  • com_set — Modifie une propriété d'un composant COM
  • variant_abs — Retourne la valeur absolue d'un variant
  • variant_add — "Ajoute" deux valeurs de variants et retourne le résultat
  • variant_and — Effectue un ET entre deux variants et retourne le résultat
  • variant_cast — Convertit un variant en un nouvel objet variant de type différent
  • variant_cat — Assemble deux valeurs variantes ensemble et retourne le résultat
  • variant_cmp — Compare deux variants
  • variant_date_from_timestamp — Retourne une représentation date en variant d'un timestamp Unix
  • variant_date_to_timestamp — Convertit une valeur date/temps variante en un timestamp Unix
  • variant_div — Retourne le résultat de la division de deux variants
  • variant_eqv — Effectue une équivalence de bits de deux variants
  • variant_fix — Récupère la portion entière d'un variant
  • variant_get_type — Retourne le type d'un objet variant
  • variant_idiv — Convertit des variants en valeurs entières, et effectue alors une division
  • variant_imp — Exécute une implication sur les bits de deux variants
  • variant_int — Retourne la partie entière d'un variant
  • variant_mod — Divise deux variantes et retourne le reste
  • variant_mul — Multiplie les valeurs de deux variants
  • variant_neg — Effectue une négation logique sur un variant
  • variant_not — Exécute une négation sur les bits sur un variant
  • variant_or — Performe une disjonction logique sur deux variants
  • variant_pow — Retourne le résultat de la fonction puissance avec deux variants
  • variant_round — Arrondit le variant au nombre spécifié de décimales
  • variant_set_type — Convertit un variant en un autre type "sur-place"
  • variant_set — Assigne une nouvelle valeur pour un objet variant
  • variant_sub — Soustrait la valeur du variant de droite de la valeur de celui de gauche
  • variant_xor — Exécute une exclusion logique sur deux variants



Impression


Introduction

Ces fonctions ne sont disponibles que sous Windows 9.x, ME, NT4 et 2000. Elles ont été ajoutées en PHP 4.0.4.



Installation/Configuration

Sommaire


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.



Installation

Cette extension » PECL n'est pas distribuée avec PHP.

Les utilisateurs de Windows doivent activer la bibliothèque php_printer.dll dans le php.ini pour utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les imprimantes
Nom Défaut Modifiable Historique
printer.default_printer "" PHP_INI_ALL Disponible depuis PHP 4.0.6. Supprimé en PHP 4.1.1.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.



Types de ressources

Cette extension définit les gestionnaires d'une connexion à une imprimante, d'une brosse, d'une police ou d'un stylo.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PRINTER_COPIES (integer)
PRINTER_MODE (integer)
PRINTER_TITLE (integer)
PRINTER_DEVICENAME (integer)
PRINTER_DRIVERVERSION (integer)
PRINTER_OUTPUT_FILE (integer)
PRINTER_RESOLUTION_Y (integer)
PRINTER_RESOLUTION_X (integer)
PRINTER_SCALE (integer)
PRINTER_BACKGROUND_COLOR (integer)
PRINTER_PAPER_LENGTH (integer)
PRINTER_PAPER_WIDTH (integer)
PRINTER_PAPER_FORMAT (integer)
PRINTER_FORMAT_CUSTOM (integer)
PRINTER_FORMAT_LETTER (integer)
PRINTER_FORMAT_LEGAL (integer)
PRINTER_FORMAT_A3 (integer)
PRINTER_FORMAT_A4 (integer)
PRINTER_FORMAT_A5 (integer)
PRINTER_FORMAT_B4 (integer)
PRINTER_FORMAT_B5 (integer)
PRINTER_FORMAT_FOLIO (integer)
PRINTER_ORIENTATION (integer)
PRINTER_ORIENTATION_PORTRAIT (integer)
PRINTER_ORIENTATION_LANDSCAPE (integer)
PRINTER_TEXT_COLOR (integer)
PRINTER_TEXT_ALIGN (integer)
PRINTER_TA_BASELINE (integer)
PRINTER_TA_BOTTOM (integer)
PRINTER_TA_TOP (integer)
PRINTER_TA_CENTER (integer)
PRINTER_TA_LEFT (integer)
PRINTER_TA_RIGHT (integer)
PRINTER_PEN_SOLID (integer)
PRINTER_PEN_DASH (integer)
PRINTER_PEN_DOT (integer)
PRINTER_PEN_DASHDOT (integer)
PRINTER_PEN_DASHDOTDOT (integer)
PRINTER_PEN_INVISIBLE (integer)
PRINTER_BRUSH_SOLID (integer)
PRINTER_BRUSH_CUSTOM (integer)
PRINTER_BRUSH_DIAGONAL (integer)
PRINTER_BRUSH_CROSS (integer)
PRINTER_BRUSH_DIAGCROSS (integer)
PRINTER_BRUSH_FDIAGONAL (integer)
PRINTER_BRUSH_HORIZONTAL (integer)
PRINTER_BRUSH_VERTICAL (integer)
PRINTER_FW_THIN (integer)
PRINTER_FW_ULTRALIGHT (integer)
PRINTER_FW_LIGHT (integer)
PRINTER_FW_NORMAL (integer)
PRINTER_FW_MEDIUM (integer)
PRINTER_FW_BOLD (integer)
PRINTER_FW_ULTRABOLD (integer)
PRINTER_FW_HEAVY (integer)
PRINTER_ENUM_LOCAL (integer)
PRINTER_ENUM_NAME (integer)
PRINTER_ENUM_SHARED (integer)
PRINTER_ENUM_DEFAULT (integer)
PRINTER_ENUM_CONNECTIONS (integer)
PRINTER_ENUM_NETWORK (integer)
PRINTER_ENUM_REMOTE (integer)


Fonctions d'impression


printer_abort

(PECL printer SVN)

printer_abortEfface la file d'attente de l'imprimante

Description

void printer_abort ( resource $printer_handle )

Efface la file d'attente d'une imprimante.

Liste de paramètres

printer_handle

printer_handle doit être un gestionnaire d'imprimante valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_abort()

<?php
$handle 
printer_open();
printer_abort($handle);
printer_close($handle);
?>



printer_close

(PECL printer SVN)

printer_closeFerme une connexion à une imprimante

Description

void printer_close ( resource $printer_handle )

Ferme la connexion avec l'imprimante représentée par la ressource handle. printer_close() ferme aussi le contexte d'imprimante actif.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_close()

<?php
$handle 
printer_open();
printer_close($handle);
?>



printer_create_brush

(PECL printer SVN)

printer_create_brushCrée une nouvelle brosse

Description

resource printer_create_brush ( int $style , string $color )

Crée une nouvelle brosse et retourne une ressource de brosse. Une brosse est utilisée pour remplir des surfaces. Pour un exemple, voyez la fonction printer_select_brush().

Liste de paramètres

style

style doit prendre la valeur de l'une des constantes suivantes :

  • PRINTER_BRUSH_SOLID : crée une brosse avec une couleur pleine.
  • PRINTER_BRUSH_DIAGONAL : crée une brosse avec une direction diagonale ascendante, de droite à gauche ( / ).
  • PRINTER_BRUSH_CROSS: crée une brosse avec une forme de croix ( + ).
  • PRINTER_BRUSH_DIAGCROSS: crée une brosse avec une forme de croix diagonale ( x ).
  • PRINTER_BRUSH_FDIAGONAL: crée une brosse avec une direction diagonale ascendante, de gauche à droite ( \ ).
  • PRINTER_BRUSH_HORIZONTAL: crée une brosse avec une direction horizontale ( - ).
  • PRINTER_BRUSH_VERTICAL: crée une brosse avec une direction horizontale ( | ).
  • PRINTER_BRUSH_CUSTOM: crée une brosse à partir d'un fichier BMP. Le second paramètre est alors utilisé pour spécifier le chemin jusqu'au fichier BMP, au lieu d'être une couleur.

color

color doit être une couleur au format RGB hexadécimal, c'est à dire "000000" pour le noir.

Valeurs de retour

Retourne un gestionnaire de brosse, ou FALSE si une erreur survient.



printer_create_dc

(PECL printer SVN)

printer_create_dcCrée un contexte d'imprimante

Description

void printer_create_dc ( resource $printer_handle )

Crée un nouveau contexte d'imprimante pour l'imprimante handle. Un contexte d'imprimante est utilisé pour paramétrer les objets graphiques d'un document.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_create_dc()

<?php
$handle 
printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* Exploitation du contexte */
printer_set_option($handlePRINTER_TEXT_COLOR"333333");
printer_draw_text($handle11"text");
printer_delete_dc($handle);

/* Création d'un autre contexte */
printer_create_dc($handle);
printer_set_option($handlePRINTER_TEXT_COLOR"000000");
printer_draw_text($handle11"text");
/* Exploitation du contexte */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_create_font

(PECL printer SVN)

printer_create_fontCrée une nouvelle police

Description

resource printer_create_font ( string $face , int $height , int $width , int $font_weight , bool $italic , bool $underline , bool $strikeout , int $orientation )

Cette fonction crée une nouvelle police et retourne un gestionnaire représentant celle-ci. Une police est utilisée pour dessiner le texte. Pour un exemple, voir la documentation de la fonction printer_select_font().

Liste de paramètres

face

face doit être une chaîne de caractères spécifiant le nom de la police.

height

height spécifie la hauteur de la police.

width

width spécifie la largeur de la police.

font_weight

font_weight spécifie le poids de la police (400 est normal), et peut prendre comme valeur l'une des constantes suivantes :

  • PRINTER_FW_THIN: fixe un poids de police mince (100).
  • PRINTER_FW_ULTRALIGHT: fixe un poids de police très léger (200).
  • PRINTER_FW_LIGHT: fixe un poids de police léger (300).
  • PRINTER_FW_NORMAL: fixe un poids de police normal (400).
  • PRINTER_FW_MEDIUM: fixe un poids de police moyen (500).
  • PRINTER_FW_BOLD: fixe un poids de police gras (700).
  • PRINTER_FW_ULTRABOLD: fixe un poids de police très gras (800).
  • PRINTER_FW_HEAVY: fixe un poids de police lourd (900).

italic

italic vaut TRUE pour indiquer que la police est en italique, et FALSE sinon.

underline

underline vaut TRUE pour indiquer que la police est soulignée, et FALSE sinon.

strikeout

strikeout vaut TRUE pour indiquer que la police est barrée, et FALSE sinon.

orientaton

orientation spécifie l'orientation.

Valeurs de retour

Retourne un gestionnaire de police en cas de succès, FALSE si une erreur survient.



printer_create_pen

(PECL printer SVN)

printer_create_penCrée un nouveau stylo

Description

resource printer_create_pen ( int $style , int $width , string $color )

Crée un nouveau stylo et retourne une ressource. Un stylo est utilisé pour dessiner des lignes et des courbes. Pour un exemple, voyez la fonction printer_select_pen().

Liste de paramètres

style

style doit être l'une des constantes suivantes :

  • PRINTER_PEN_SOLID : crée un stylo plein.
  • PRINTER_PEN_DASH : crée un stylo pointillé avec des tirets.
  • PRINTER_PEN_DOT : crée un stylo pointillé avec des points.
  • PRINTER_PEN_DASHDOT : crée un stylo pointillé avec des tirets et des points.
  • PRINTER_PEN_DASHDOTDOT : crée un stylo pointillé avec des tirets et des doubles points.
  • PRINTER_PEN_INVISIBLE : crée un stylo invisible.

width

width spécifie la largeur du stylo.

color

color doit être une couleur au format RGB hexadécimal, "000000" pour le noir.

Valeurs de retour

Retourne un gestionnaire de stylo, ou FALSE si une erreur survient.



printer_delete_brush

(PECL printer SVN)

printer_delete_brushEfface une brosse

Description

void printer_delete_brush ( resource $brush_handle )

Efface la brosse représentée par sa ressource handle. Pour un exemple, voyez la fonction printer_select_brush().

Liste de paramètres

brush_handle

brush_handle doit être un gestionnaire de brosse valide.

Valeurs de retour

Aucune valeur n'est retournée.



printer_delete_dc

(PECL printer SVN)

printer_delete_dcEfface un contexte d'imprimante

Description

bool printer_delete_dc ( resource $printer_handle )

Efface le contexte représenté par sa ressource handle. Pour un exemple, voyez la fonction printer_create_dc().

Liste de paramètres

printer_handle

printer_handle doit être un gestionnaire d'imprimante valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



printer_delete_font

(PECL printer SVN)

printer_delete_fontEfface une police

Description

void printer_delete_font ( resource $font_handle )

Efface la police représentée par sa ressource handle. Pour un exemple, voyez la fonction printer_select_font().

Liste de paramètres

font_handle

font_handle doit être un gestionnaire de police valide.

Valeurs de retour

Aucune valeur n'est retournée.



printer_delete_pen

(PECL printer SVN)

printer_delete_penEfface un stylo

Description

void printer_delete_pen ( resource $pen_handle )

Efface le stylo représenté par sa ressource handle. Pour un exemple, voyez la fonction printer_select_pen().

Liste de paramètres

pen_handle

pen_handle doit être un gestionnaire de stylo valide.

Valeurs de retour

Aucune valeur n'est retournée.



printer_draw_bmp

(PECL printer SVN)

printer_draw_bmpDessine un fichier BMP

Description

bool printer_draw_bmp ( resource $printer_handle , string $filename , int $x , int $y [, int $width ], int $height )

Dessine simplement l'image BMP filename.

Liste de paramètres

printer_handle

printer_handle doit être un gestionnaire d'imprimante valide.

filename

Chemin vers le BMP.

x

x est la coordonnée en X du coin en haut, à gauche de l'image.

y

y est la coordonnée en Y du coin en haut, à gauche de l'image.

width

La largeur de l'image.

height

La hauteur de l'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec printer_draw_bmp()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

printer_draw_bmp($handle"c:\\image.bmp"11);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_draw_chord

(PECL printer SVN)

printer_draw_chordDessine un arc de cercle

Description

void printer_draw_chord ( resource $printer_handle , int $rec_x , int $rec_y , int $rec_x1 , int $rec_y1 , int $rad_x , int $rad_y , int $rad_x1 , int $rad_y1 )

Dessine un arc de cercle.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

rec_x

rec_x est l'abscisse supérieure gauche du rectangle d'encadrement.

rec_y

rec_y est l'ordonnée supérieure gauche du rectangle d'encadrement.

rec_x1

rec_x1 est l'abscisse inférieure droite du rectangle d'encadrement.

rec_y1

rec_y1 est l'ordonnée inférieure droite du rectangle d'encadrement.

rad_x

rad_x est l'abscisse du point de début de l'arc.

rad_y

rad_y est l'ordonnée du rayon qui définit le début de l'arc.

rad_x1

rad_x1 est l'abscisse du point de fin de l'arc.

rad_y1

rad_y1 est l'ordonnée du point de fin de l'arc.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_draw_chord()

<?php
$handle 
printer_open();
printer_start_doc($handle"My Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID2"000000");
printer_select_pen($handle$pen);

$brush printer_create_brush(PRINTER_BRUSH_SOLID"2222FF");
printer_select_brush($handle$brush);

printer_draw_chord($handle11500500115001);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_draw_elipse

(PECL printer SVN)

printer_draw_elipseDessine une ellipse

Description

void printer_draw_elipse ( resource $printer_handle , int $ul_x , int $ul_y , int $lr_x , int $lr_y )

Dessine une ellipse.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

ul_x

ul_x est l'abscisse supérieure gauche de l'ellipse.

ul_y

ul_y est l'ordonnée supérieure gauche de l'ellipse.

lr_x

lr_x est l'abscisse inférieure droite de l'ellipse.

lr_y

lr_y est l'ordonnée inférieure droite de l'ellipse.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_draw_elipse()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID2"000000");
printer_select_pen($handle$pen);

$brush printer_create_brush(PRINTER_BRUSH_SOLID"2222FF");
printer_select_brush($handle$brush);

printer_draw_elipse($handle11500500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_draw_line

(PECL printer SVN)

printer_draw_lineDessine une ligne

Description

void printer_draw_line ( resource $printer_handle , int $from_x , int $from_y , int $to_x , int $to_y )

Dessine une ligne.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

from_x

from_x est l'ordonnée en X du point d'origine.

from_y

from_y est l'ordonnée en Y du point d'origine.

to_x

to_x est l'ordonnée en X du point de destination.

to_y

to_y est l'ordonnée en Y du point de destination.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_draw_line()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID30"000000");
printer_select_pen($handle$pen);

printer_draw_line($handle110100010);
printer_draw_line($handle16050060);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_draw_pie

(PECL printer SVN)

printer_draw_pieDessine un secteur angulaire

Description

void printer_draw_pie ( resource $printer_handle , int $rec_x , int $rec_y , int $rec_x1 , int $rec_y1 , int $rad1_x , int $rad1_y , int $rad2_x , int $rad2_y )

Dessine un secteur angulaire.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

rec_x

rec_x est l'abscisse supérieure gauche du rectangle d'encadrement.

rec_y

rec_y est l'ordonnée supérieure gauche du rectangle d'encadrement.

rec_x1

rec_x1 est l'abscisse inférieure droite du rectangle d'encadrement.

rec_y1

rec_y1 est l'ordonnée inférieure droite du rectangle d'encadrement.

rad1_x

rad1_x est l'abscisse du point de début de l'arc.

rad1_y

rad1_y est l'ordonnée du point de début de l'arc.

rad2_x

rad2_x est l'abscisse du point de fin de l'arc.

rad2_y

rad2_y est l'ordonnée du point de fin de l'arc.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_draw_pie()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID2"000000");
printer_select_pen($handle$pen);

$brush printer_create_brush(PRINTER_BRUSH_SOLID"2222FF");
printer_select_brush($handle$brush);

printer_draw_pie($handle11500500115001);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_draw_rectangle

(PECL printer SVN)

printer_draw_rectangleDessine un rectangle

Description

void printer_draw_rectangle ( resource $printer_handle , int $ul_x , int $ul_y , int $lr_x , int $lr_y )

Dessine un rectangle.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

ul_x

ul_x est l'abscisse du coin supérieur gauche du rectangle.

ul_y

ul_y est l'ordonnée du coin supérieur gauche du rectangle.

lr_x

lr_x est l'abscisse du coin inférieur droit du rectangle.

lr_y

lr_y est l'ordonnée du coin inférieur droit du rectangle.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_draw_rectangle()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID2"000000");
printer_select_pen($handle$pen);

$brush printer_create_brush(PRINTER_BRUSH_SOLID"2222FF");
printer_select_brush($handle$brush);

printer_draw_rectangle($handle11500500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_draw_roundrect

(PECL printer SVN)

printer_draw_roundrectDessine un rectangle, avec des coins arrondis

Description

void printer_draw_roundrect ( resource $printer_handle , int $ul_x , int $ul_y , int $lr_x , int $lr_y , int $width , int $height )

Dessine un rectangle, avec des coins arrondis.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

ul_x

ul_x est l'abscisse du coin supérieur gauche du rectangle.

ul_y

ul_y est l'ordonnée du coin supérieur gauche du rectangle.

lr_x

lr_x est l'abscisse du coin inférieur droit du rectangle.

lr_y

lr_y est l'ordonnée du coin inférieur droit du rectangle.

width

width est la largeur de l'ellipse.

height

height est la longueur de l'ellipse.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_draw_roundrect()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID2"000000");
printer_select_pen($handle$pen);

$brush printer_create_brush(PRINTER_BRUSH_SOLID"2222FF");
printer_select_brush($handle$brush);

printer_draw_roundrect($handle11500500200200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_draw_text

(PECL printer SVN)

printer_draw_textDessine un texte

Description

void printer_draw_text ( resource $printer_handle , string $text , int $x , int $y )

Dessine le texte text à la position x, y, en utilisant la police de caractères courante.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

text

Le texte à écrire.

x

x est la coordonnée en X de la position.

y

y est la coordonnée en Y de la position.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_draw_text()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$font printer_create_font("Arial"7248400falsefalsefalse0);
printer_select_font($handle$font);
printer_draw_text($handle"test"1010);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_end_doc

(PECL printer SVN)

printer_end_docFerme le document

Description

bool printer_end_doc ( resource $printer_handle )

Ferme le document dans la file d'attente de l'imprimante. Il est maintenant prêt à être imprimé. Pour un exemple, voyez la fonction printer_start_doc().

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



printer_end_page

(PECL printer SVN)

printer_end_pageFerme la page active

Description

bool printer_end_page ( resource $printer_handle )

Ferme la page active du document en cours. Pour un exemple, voyez la fonction printer_start_doc().

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



printer_get_option

(PECL printer SVN)

printer_get_optionLit les informations de configuration de l'imprimante

Description

mixed printer_get_option ( resource $printer_handle , string $option )

Lit la configuration de l'option option.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

option

Lisez la documentation de printer_set_option() pour connaître les valeurs possibles du paramètre option. De plus, les valeurs options suivantes sont accessibles en lecture :

  • PRINTER_DEVICENAME retourne le nom du périphérique de l'imprimante.
  • PRINTER_DRIVERVERSION retourne la version du pilote de l'imprimante.

Valeurs de retour

Retourne la valeur de l'option option.

Exemples

Exemple #1 Exemple avec printer_get_option()

<?php
$handle 
printer_open();
echo 
printer_get_option($handlePRINTER_DRIVERVERSION);
printer_close($handle);
?>



printer_list

(PECL printer SVN)

printer_listRetourne la liste des imprimantes attachées à un serveur

Description

array printer_list ( int $enumtype [, string $name [, int $level ]] )

Retourne la liste des imprimantes attachées à un serveur.

Liste de paramètres

enumtype

enumtype doit être l'une des constantes suivantes :

  • PRINTER_ENUM_LOCAL : liste les imprimantes locales.
  • PRINTER_ENUM_NAME : liste des imprimantes de name, qui peut être un serveur, un domaine ou un fournisseur d'impression.
  • PRINTER_ENUM_SHARED : ce paramètre ne peut être utilisé seul, il doit être combiné avec d'autres paramètres, grâce à l'opérateur OR. PRINTER_ENUM_LOCAL détecte les imprimantes localement partagées.
  • PRINTER_ENUM_DEFAULT : (Win9.x uniquement) liste l'imprimante par défaut.
  • PRINTER_ENUM_CONNECTIONS : (WinNT/2000 uniquement) liste les imprimantes avec lesquelles l'utilisateur a établit une connexion.
  • PRINTER_ENUM_NETWORK : (WinNT/2000 uniquement) liste les imprimantes réseau du domaine de l'ordinateur. Valide uniquement si level vaut 1.
  • PRINTER_ENUM_REMOTE : (WinNT/2000 uniquement) liste les imprimantes réseau et les serveurs d'impression du domaine de l'ordinateur. Valide uniquement si level vaut 1.

name

Utilisé avec la constante PRINTER_ENUM_NAME.

level

level représente le niveau d'information demandé. Il peut prendre les valeurs de 1, 2, 4 ou 5.

Valeurs de retour

Retourne un tableau d'imprimantes.

Exemples

Exemple #1 Exemple avec printer_list()

<?php
/* liste les imprimantes partagées locales */
var_dump(printer_list(PRINTER_ENUM_LOCAL PRINTER_ENUM_SHARED));
?>



printer_logical_fontheight

(PECL printer SVN)

printer_logical_fontheightLit la taille logique de la police

Description

int printer_logical_fontheight ( resource $printer_handle , int $height )

Lit la taille logique de la police.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

height

La taille de la police.

Valeurs de retour

Retourne la taille logique de la police ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec printer_logical_fontheight()

<?php
$handle 
printer_open();
echo 
printer_logical_fontheight($handle72);
printer_close($handle);
?>



printer_open

(PECL printer SVN)

printer_openOuvre une connexion à une imprimante

Description

resource printer_open ([ string $printername ] )

Ouvre une connexion à une imprimante.

printer_open() initialise aussi un contexte d'impression.

Liste de paramètres

printername

Le nom de l'imprimante. Si aucun paramètre n'est fourni, la fonction tente d'ouvrir une connexion à l'imprimante par défaut (si elle n'est pas détectée dans le fichier php.ini avec la directive printer.default_printer, PHP tente de la détecter).

Valeurs de retour

Retourne un gestionnaire d'imprimante en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec printer_open()

<?php
$handle 
printer_open("HP Deskjet 930c");
$handle printer_open();
?>



printer_select_brush

(PECL printer SVN)

printer_select_brushSélectionne une brosse

Description

void printer_select_brush ( resource $printer_handle , resource $brush_handle )

Sélectionne la brosse brush_handle comme brosse active pour la connexion à l'imprimante printer_handle. Une brosse est utilisée pour remplir des surfaces. Si vous dessinez un rectangle, une brosse sera nécessaire pour dessiner le contenu, et un stylo pour dessiner les bords.

Si vous n'avez pas sélectionné de brosse avant de dessiner des formes, elles ne seront pas remplies.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

brush_handle

brush_handle doit être une ressource de brosse valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_select_brush()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID2"000000");
printer_select_pen($handle$pen);
$brush printer_create_brush(PRINTER_BRUSH_CUSTOM"c:\\brush.bmp");
printer_select_brush($handle$brush);

printer_draw_rectangle($handle11500500);

printer_delete_brush($brush);

$brush printer_create_brush(PRINTER_BRUSH_SOLID"000000");
printer_select_brush($handle$brush);
printer_draw_rectangle($handle15015001001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_select_font

(PECL printer SVN)

printer_select_fontSélectionne une police de caractères

Description

void printer_select_font ( resource $printer_handle , resource $font_handle )

Sélectionne une police de caractères.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

font_handle

font_handle doit être une ressource de police de caractères valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_select_font()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$font printer_create_font("Arial"14876PRINTER_FW_MEDIUMfalsefalsefalse, -50);
printer_select_font($handle$font);
printer_draw_text($handle"PHP est tout simplement génial"4040);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_select_pen

(PECL printer SVN)

printer_select_penSélectionne un stylo

Description

void printer_select_pen ( resource $printer_handle , resource $pen_handle )

Sélectionne le stylo pen_handle comme stylo actif pour la connexion à l'imprimante printer_handle. Un stylo est utilisé pour dessiner des lignes et des courbes. Autrement dit, si vous dessinez une ligne, le stylo sera utilisé. Si vous dessinez un rectangle, il sera utilisé pour dessiner les contours tandis que la brosse sera utilisée pour remplir le contenu. Si vous n'avez pas sélectionné de stylo avant de dessiner des formes, elles ne seront pas tracées.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

pen_handle

pen_handle doit être une ressource de stylo valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec printer_select_pen()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

$pen printer_create_pen(PRINTER_PEN_SOLID30"2222FF");
printer_select_pen($handle$pen);

printer_draw_line($handle16050060);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_set_option

(PECL printer SVN)

printer_set_optionConfigure la connexion à l'imprimante

Description

bool printer_set_option ( resource $printer_handle , int $option , mixed $value )

Configure la connexion à l'imprimante.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

option

Peut être l'une des constantes suivantes :

  • PRINTER_COPIES : indique le nombre de copies à imprimer. value doit être un entier.
  • PRINTER_MODE : spécifie le type de data ("text", "raw" ou "emf"), valuedoit être une chaîne de caractères.
  • PRINTER_TITLE : spécifie le nom du document, value doit être une chaîne de caractères.
  • PRINTER_ORIENTATION : spécifie l'orientation du papier, value peut être PRINTER_ORIENTATION_PORTRAIT ou PRINTER_ORIENTATION_LANDSCAPE
  • PRINTER_RESOLUTION_Y : spécifie la résolution en ordonnées, en DPI, value doit être un entier.
  • PRINTER_RESOLUTION_X : spécifie la résolution en abscisse, en DPI, value doit être un entier.
  • PRINTER_PAPER_FORMAT : spécifie un format de papier prédéfini : donnez à value la valeur de PRINTER_FORMAT_CUSTOM si vous souhaitez utiliser un format de papier personnalisé, grâce aux constantes PRINTER_PAPER_WIDTH et PRINTER_PAPER_LENGTH. value peut alors être l'une des constantes suivantes :
    • PRINTER_FORMAT_CUSTOM : vous laisse spécifier le format de papier.
    • PRINTER_FORMAT_LETTER : spécifie le format standard "letter" (8 1/2 par 11 pouces (2.54cm)).
    • PRINTER_FORMAT_LEGAL : spécifie le format standard "legal" (8 1/2 par 14 pouces (2.54cm)).
    • PRINTER_FORMAT_A3 : spécifie le format standard "A3" (297 par 420 millimètres).
    • PRINTER_FORMAT_A4 : spécifie le format standard "A4" (210 par 297 millimètres).
    • PRINTER_FORMAT_A5 : spécifie le format standard "A5" (148 par 210 millimètres).
    • PRINTER_FORMAT_B4: spécifies le format standard B4 (250 par 354 millimètres).
    • PRINTER_FORMAT_B5 : spécifie le format standard "B5" (182 par 257 millimètres).
    • PRINTER_FORMAT_FOLIO : spécifie le format standard "FOLIO" (8 1/2 par 13 pouces (2.54cm)).
  • PRINTER_PAPER_LENGTH : si PRINTER_PAPER_FORMAT vaut PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH spécifie une longueur personnalisée de papier, en millimètres. value doit être un entier.
  • PRINTER_PAPER_WIDTH : si PRINTER_PAPER_FORMAT vaut PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH spécifie une largeur personnalisée de papier, en millimètres. value doit être un entier.
  • PRINTER_SCALE : spécifie le facteur de mise à l'échelle du document. La taille physique de la page imprimée est alors mise à l'échelle avec un facteur égal à value/100. Par exemple, si vous donnez un facteur d'échelle de 50, l'impression sera de la moitié de la taille du document original. value doit être un entier.
  • PRINTER_BACKGROUND_COLOR : spécifie la couleur de fond pour le contexte actuel. value doit être une chaîne de caractères contenant une couleur au format RGB hexadécimal : par exemple, "005533".
  • PRINTER_TEXT_COLOR : spécifie la couleur du texte pour ce contexte d'imprimante. value doit être une chaîne de caractères contenant une couleur au format RGB hexadécimal : par exemple, "005533".
  • PRINTER_TEXT_ALIGN : spécifie l'alignement du texte pour le contexte d'imprimante. value peut être une combinaison, avec l'opérateur OR, des constantes suivantes :
    • PRINTER_TA_BASELINE : le texte sera aligné sur la ligne de base.
    • PRINTER_TA_BOTTOM : le texte sera aligné sur la ligne de fond.
    • PRINTER_TA_TOP : le texte sera aligné sur la ligne de haut.
    • PRINTER_TA_CENTER : le texte sera centré.
    • PRINTER_TA_LEFT : le texte sera aligné à gauche.
    • PRINTER_TA_RIGHT : le texte sera aligné à droite.

value

La valeur de l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec printer_set_option()

<?php
$handle 
printer_open();
printer_set_option($handlePRINTER_SCALE75);
printer_set_option($handlePRINTER_TEXT_ALIGNPRINTER_TA_LEFT);
printer_close($handle);
?>



printer_start_doc

(PECL printer SVN)

printer_start_docCommence un nouveau document

Description

bool printer_start_doc ( resource $printer_handle [, string $document ] )

Crée un nouveau document dans la file d'attente de l'imprimante handle. Un document peut contenir plusieurs pages, et il est programmé pour s'imprimer.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

document

Le paramètre optionnel document sert à donner un nom au document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec printer_start_doc()

<?php
$handle 
printer_open();
printer_start_doc($handle"Mon Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>



printer_start_page

(PECL printer SVN)

printer_start_pageCommence une nouvelle page

Description

bool printer_start_page ( resource $printer_handle )

Crée une nouvelle page pour le document actif. Pour un exemple, voyez la fonction printer_start_doc().

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



printer_write

(PECL printer SVN)

printer_writeÉcrit des données sur l'imprimante

Description

bool printer_write ( resource $printer_handle , string $content )

Écrit les données content directement sur l'imprimante.

Liste de paramètres

printer_handle

printer_handle doit être une ressource d'imprimante valide.

content

Les données à écrire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec printer_write()

<?php
$handle 
printer_open();
printer_write($handle"Texte à imprimer");
printer_close($handle);
?>


Sommaire




W32api


Introduction

Cette extension est une extension générique pour les DLL. Elle a été écrite pour permettre l'accès à l'API Win32 depuis PHP, mais vous pouvez également accéder aux fonctions exportées via d'autres DLLs.

Actuellement, les types supportées sont des types PHP génériques (chaîne de caractères booléen, nombre décimaux, entier et NULL) et les types définis avec la fonction w32api_deftype().

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.



Installation/Configuration

Sommaire


Pré-requis

Cette extension ne fonctionne pas sous les systèmes Windows.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/w32api.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit une seule ressource, utilisée pour les types définies par l'utilisateur. Le nom de cette ressource est "dynaparm".




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DC_MICROSOFT (entier)
DC_BORLAND (entier)
DC_CALL_CDECL (entier)
DC_CALL_STD (entier)
DC_RETVAL_MATH4 (entier)
DC_RETVAL_MATH8 (entier)
DC_CALL_STD_BO (entier)
DC_CALL_STD_MS (entier)
DC_CALL_STD_M8 (entier)
DC_FLAG_ARGPTR (entier)


Exemples

Sommaire


Cet exemple récupère le temps depuis le système fonctionne et l'affiche dans une boîte de message.

Exemple #1 Récupération de l'uptime et affichage dans une boîte de message

<?php
// Définition des constantes nécessaires, récupérées depuis
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK"0);

// Chargement de l'extension
dl("php_w32api.dll");

// Enregistrement de la fonction GetTickCount depuis kernel32.dll
w32api_register_function("kernel32.dll"
                         
"GetTickCount",
                         
"long");

// Enregistrement de la fonction MessageBoxA depuis User32.dll
w32api_register_function("User32.dll",
                         
"MessageBoxA",
                         
"long");

// Récupératin de l'uptime
$ticks GetTickCount();

// Convertion en un format plus joli pour l'affichage
$secs  floor($ticks 1000);
$mins  floor($secs 60);
$hours floor($mins 60);

$str sprintf("Vous utilisez votre ordinateur depuis :" .
                
"\r\n %d Millisecondes, ou \r\n %d Secondes" .
                
"ou \r\n %d mins or\r\n %d heures %d mins.",
                
$ticks,
                
$secs,
                
$mins,
                
$hours,
                
$mins - ($hours*60));

// Affichage d'une boîte de message avec uniquement un bouton OK et le texte
MessageBoxA(NULL,
            
$str,
            
"Uptime Information",
            
MB_OK);
?>



Fonctions W32api


w32api_deftype

(PHP 4 >= 4.2.0)

w32api_deftypeDéfinit un type pour utilisation avec les fonctions windows API

Description

bool w32api_deftype ( string $typename , string $member1_type , string $member1_name [, string $... [, string $... ]] )

Vous devez appeler cette fonction si vous voulez définir un type pour un appel w32api.

Liste de paramètres

typename

Le nom du type.

member1_type

Un membre peut être de type défini par le programmeur. Tous les noms de types sont sensibles à la casse. Les noms de types intégrés doivent être fournis en minuscules.

member1_name

Le nom du membre member1_type.

...

...

Cette fonction prend 2n+1 arguments, où n est le nombre de membres du type typename. Ce nom est suivi du type de membre member1_type, puis de son nom member1_name, par paire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



w32api_init_dtype

(PHP 4 >= 4.2.0)

w32api_init_dtypeCrée une instance de type de données Win32 et la remplit

Description

resource w32api_init_dtype ( string $typename , mixed $value [, mixed $... ] )

Crée une instance du type typename, et remplit les valeurs avec les données value, ....

Liste de paramètres

typename

Le paramètre typename est sensible à la casse.

value

Il faut donner les valeurs dans le même ordre que lors de la définition du type, avec w32api_deftype().

...

Valeurs de retour

Retourne la ressource dynaparm.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



w32api_invoke_function

(PHP 4 >= 4.2.0)

w32api_invoke_functionAppelle une fonction Windows 32

Description

mixed w32api_invoke_function ( string $funcname , mixed $argument [, mixed $... ] )

w32api_invoke_function() essaie de trouver la fonction préalablement enregistrée, appelée funcname, en lui passant les arguments argument, ..., passés après funcname.

Liste de paramètres

funcname

Le nom de la fonction.

argument

Les arguments peuvent être n'importe lequel de ceux de PHP, ou un type défini via la fonction w32api_deftype().

...

Valeurs de retour

Le type retourné est celui que vous avez enregistré avec la fonction. La valeur est celle retournée par la fonction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



w32api_register_function

(PHP 4 >= 4.2.0)

w32api_register_functionEnregistre une fonction Win32 dans PHP

Description

bool w32api_register_function ( string $library , string $function_name , string $return_type )

Essaie de trouver la fonction function_name dans la bibliothèque library, et essaie de l'importer en PHP.

Liste de paramètres

library

Le nom de la bibliothèque, sous la forme d'une chaîne de caractères.

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

return_type

La fonction sera alors enregistrée avec le type de valeur de retour return_type. return_type peut être un type générique de PHP ou bien un type défini par le programmeur avec la fonction w32api_deftype(). Tous les noms de type sont sensibles à la casse. Les types intégrés doivent être fournis en minuscules.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.



w32api_set_call_method

(PHP 4 >= 4.2.0)

w32api_set_call_methodModifie le type d'appel de la fonction Win32

Description

void w32api_set_call_method ( int $method )

w32api_set_call_method() modifie le type d'appel de la fonction.

Liste de paramètres

method

Peut être l'une des constantes suivantes : DC_CALL_CDECL ou DC_CALL_STD (l'extension par défaut).

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Sommaire




win32ps


Introduction

L'extension win32ps est une extension spécifique à Windows qui permet à PHP de récupérer des statistiques sur les processus et sur l'utilisation de la mémoire.



Installation/Configuration

Sommaire


Pré-requis

Windows NT, Windows 2000, Windows XP ou Windows Server 2003. Toutes les versions de Windows dérivées de Windows NT devraient être compatibles.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/win32ps.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Exemple #1 Statistiques sur le processus PHP courant

<?php
print_r
(win32_ps_stat_proc());
/*
    Array
    (
        [pid] => 936
        [exe] => D:\Daten\Source\php-5.1\Debug_TS\php.exe
        [mem] => Array
            (
                [page_fault_count] => 2062
                [peak_working_set_size] => 8396800
                [working_set_size] => 8396800
                [quota_peak_paged_pool_usage] => 32080
                [quota_paged_pool_usage] => 31876
                [quota_peak_non_paged_pool_usage] => 4240
                [quota_non_paged_pool_usage] => 3888
                [pagefile_usage] => 5865472
                [peak_pagefile_usage] => 5865472
            )

        [tms] => Array
            (
                [created] => 0.093
                [kernel] => 0.015
                [user] => 0.062
            )

    )
*/
?>

Exemple #2 Statistiques sur l'utilisation globale de la mémoire

<?php
print_r
(win32_ps_stat_mem());
/*
    Array
    (
        [load] => 37
        [unit] => 1024
        [total_phys] => 1048096
        [avail_phys] => 649960
        [total_pagefile] => 2521368
        [avail_pagefile] => 2237940
        [total_virtual] => 2097024
        [avail_virtual] => 2057848
    )
*/
?>




win32ps Fonctions


win32_ps_list_procs

(PECL win32ps >= 1.0.1)

win32_ps_list_procsListe des processus qui fonctionnent

Description

array win32_ps_list_procs ( void )

Récupère des statistiques à propos de tous les processus qui fonctionnent.

Valeurs de retour

Retourne FALSE en cas d'erreur ou un tableau contenant des statistiques de processus, comme la fonction win32_ps_stat_proc() retourne pour tous les processus qui fonctionnent, en cas de succès.

Voir aussi



win32_ps_stat_mem

(PECL win32ps >= 1.0.1)

win32_ps_stat_memStatistiques de l'utilisation de la mémoire

Description

array win32_ps_stat_mem ( void )

Récupère des statistiques à propos de l'utilisation globale de la mémoire.

Valeurs de retour

Retourne FALSE en cas d'échec ou un tableau contenant les informations suivantes en cas de succès :

load

La charge courante de la mémoire en pourcentage de la mémoire physique.

unit

Ceci est toujours 1024 et indique que les valeurs suivantes sont au compte de 1024 octets.

total_phys

Le nombre total de mémoire physique.

avail_phys

Le nombre total encore disponible de mémoire physique.

total_pagefile

Le nombre total de mémoire paginable (mémoire physique + fichier paginé).

avail_pagefile

Le nombre total encore disponible de mémoire paginable (mémoire physique + fichier paginé).

total_virtual

Le nombre total de mémoire virtuelle pour un processus.

avail_virtual

Le nombre total encore disponible de mémoire virtuelle pour un processus.



win32_ps_stat_proc

(PECL win32ps >= 1.0.1)

win32_ps_stat_procStatistique de processus

Description

array win32_ps_stat_proc ([ int $pid = 0 ] )

Récupère les statistiques à propos du processus avec l'identifiant pid.

Liste de paramètres

pid

L'identifiant du processus à obtenir des statistiques. Si omis, l'identifiant du processus courant est utilisé.

Valeurs de retour

Retourne FALSE en cas d'échec ou un tableau contenant les informations suivantes en cas de succès :

pid

L'identifiant du processus.

exe

Le chemin de l'image exécutable.

mem

Un tableau contenant les informations à propos des indicateurs de l'utilisation de mémoire suivants : page_fault_count, peak_working_set_size, working_set_size, quota_peak_paged_pool_usage, quota_paged_pool_usage, quota_peak_non_paged_pool_usage, quota_non_paged_pool_usage, pagefile_usage et peak_pagefile_usage.

tms

Un tableau contenant les informations à propos des indicateurs de l'utilisation du temps CPU suivants : created, kernel et user.

Voir aussi


Sommaire




win32service


Introduction

L'extension win32service est une extension spécifique à Windows qui autorise PHP à communiquer avec la Gestion de Contrôle de Service pour démarrer, arrêter, enregistrer ou effacer des services, et autorise aussi vos scripts PHP à s'exécuter en tant que service.



Installation/Configuration

Sommaire


Pré-requis

Windows NT, Windows 2000, Windows XP ou Windows Server 2003. N'importe quelle version de windows dérivé de Windows NT devrait être compatible.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/win32service



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Sommaire

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Masque binaire de type de Service de Win32Service
Constante Valeur Description
WIN32_SERVICE_WIN32_OWN_PROCESS 0x00000010 Le service s'exécute dans son propre processus.
WIN32_SERVICE_INTERACTIVE_PROCESS 0x00000100 Le service peut interagir avec le bureau. Cette option n'est pas disponible sur Windows Vista ou version ultérieure.
WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE 0x00000110 Le service s'exécute dans son propre processus et peut interagir avec le bureau. Cette option n'est pas disponible sous Windows Vista et suivant.


Constantes de Status du Service de Win32Service
Constante Valeur Description
WIN32_SERVICE_CONTINUE_PENDING 0x00000005 La continuation du service est en attente.
WIN32_SERVICE_PAUSE_PENDING 0x00000006 La pause du service est en attente.
WIN32_SERVICE_PAUSED 0x00000007 Le service est en pause.
WIN32_SERVICE_RUNNING 0x00000004 Le service est en cours d'exécution.
WIN32_SERVICE_START_PENDING 0x00000002 Le service est en cours de démarrage.
WIN32_SERVICE_STOP_PENDING 0x00000003 Le service est en cours d'arrêt.
WIN32_SERVICE_STOPPED 0x00000001 Le service est arrêté.


Constantes du Service de Control de Message de Win32Service
Constante Valeur Description
WIN32_SERVICE_CONTROL_CONTINUE 0x00000003 Avertit un service suspendu qu'il devrait reprendre.
WIN32_SERVICE_CONTROL_INTERROGATE 0x00000004 Avertit un service qu'il doit rendre compte de informations sur son état actuel au gestionnaire de contrôle de service.
WIN32_SERVICE_CONTROL_PAUSE 0x00000002 Avertit un service qu'il doit se mettre en pause.
WIN32_SERVICE_CONTROL_PRESHUTDOWN 0x0000000F Avertit un service que le système va s'arrêter. Un service qui gère cette notification bloque l'arrêt du système jusqu'à l'arrêt du service ou jusqu'à ce que le délai preshutdown expire. Cette valeur n'est pas pris en charge par Windows Server 2003 et Windows XP/2000.
WIN32_SERVICE_CONTROL_SHUTDOWN 0x00000005 Avertit un service que le système s'arrête et que le service peut donc effectuer des tâches de nettoyage. Si un service accepte ce code de contrôle, il doit s'arrêter dès qu'il s'acquitte de ses tâches de nettoyage. Après l'envoie ce code de contrôle par l'ACM, aucun autre code de contrôle ne sera envoyé au service.
WIN32_SERVICE_CONTROL_STOP 0x00000001 Avertit un service qu'il doit s'arrêter.


Masque binaire de Message de Control de Service de Win32Service
Constante Valeur Description
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002 Le service peut être mis en pause et continué. Ce code de control permet au service de recevoir les notifications WIN32_SERVICE_CONTROL_PAUSE et WIN32_SERVICE_CONTROL_CONTINUE.
WIN32_SERVICE_ACCEPT_PRESHUTDOWN 0x00000100 Le service peut effectuer des tâche d'avant arrêt. Ce code de control permet au service de recevoir la notification WIN32_SERVICE_CONTROL_PRESHUTDOWN. Cette valeur n'est pas pris en charge par Windows Server 2003 et Windows XP/2000.
WIN32_SERVICE_ACCEPT_SHUTDOWN 0x00000004 Le service est informé lorsque l'arrêt du système se produit. Ce code de control permet au service de recevoir la notification WIN32_SERVICE_CONTROL_SHUTDOWN.
WIN32_SERVICE_ACCEPT_STOP 0x00000001 Le service peut être stoppé. Ce control permet au service de recevoir la notification WIN32_SERVICE_CONTROL_STOP.


Constantes de Type de Demarrage du Service de Win32Service
Constante Valeur Description
WIN32_SERVICE_AUTO_START 0x00000002 Un service lancé automatiquement par le gestionnaire de contrôle de service au démarrage du système.
WIN32_SERVICE_DEMAND_START 0x00000003 Un service a démarré par le gestionnaire de contrôle de service quand un processus appel la fonction StartService.
WIN32_SERVICE_DISABLED 0x00000004 Un service qui ne peut pas être démarré. Les tentatives pour démarrer retourne un code d'erreur WIN32_ERROR_SERVICE_DISABLED .


Constantes de Control d'Erreur de Win32Service
Constante Valeur Description
WIN32_SERVICE_ERROR_IGNORE 0x00000000 Le programme de démarrage ignore l'erreur et continue l'opération de démarrage.
WIN32_SERVICE_ERROR_NORMAL 0x00000001 Le programme de démarrage enregistre l'erreur dans le journal des événements, mais il continue l'opération de démarrage.


Constantes de Service Flag de Win32Service
Constante Valeur Description
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001 Le service s'exécute dans un processus système qui doit toujours être en cours d'exécution.


Codes d'Erreur Win32
Constante Valeur Description
WIN32_ERROR_ACCESS_DENIED 0x00000005 Le gestionnaire de la base de données SMC ne dispose pas des droits d'accès appropriés.
WIN32_ERROR_CIRCULAR_DEPENDENCY 0x00000423 Une dépendance circulaire de service est spécifiée.
WIN32_ERROR_DATABASE_DOES_NOT_EXIST 0x00000429 La base de donnée spécifiée n'existe pas.
WIN32_ERROR_DEPENDENT_SERVICES_RUNNING 0x0000041B Le service ne peut être stoppé car d'autres services en cours d'exécution dépendent de lui.
WIN32_ERROR_DUPLICATE_SERVICE_NAME 0x00000436 Le nom d'affichage existe déjà dans la base de données du gestionnaire de service en tant que nom de service ou que nom d'affichage.
WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 0x00000427 Cette erreur est retournée si le programme est exécuté en application console plutôt qu'en tant que service. Si le programme est exécuté en tant qu'application console à des fins de débogage, il devrat être structuré afin que le code spécifique au service ne sois jamais appelé.
WIN32_ERROR_INSUFFICIENT_BUFFER 0x0000007A Le tampon est trop petit pour la structure d'état de service. Rien n'a été écrit à la structure.
WIN32_ERROR_INVALID_DATA 0x0000000D Le structure d'état de service indiquée n'est pas valide.
WIN32_ERROR_INVALID_HANDLE 0x00000006 Le handle pour le gestionnaire de service de control spécifié est invalide.
WIN32_ERROR_INVALID_LEVEL 0x0000007C Le paramètre InfoLevel contient une valeur non prise en charge.
WIN32_ERROR_INVALID_NAME 0x0000007B Le nom de service spécifié n'est pas valide.
WIN32_ERROR_INVALID_PARAMETER 0x00000057 Un paramètre spécifié n'est pas valide.
WIN32_ERROR_INVALID_SERVICE_ACCOUNT 0x00000421 Le nom d'utilisateur spécifié dans le paramètre user n'existe pas. Voir win32_create_service().
WIN32_ERROR_INVALID_SERVICE_CONTROL 0x0000041C Le code de control demandé n'est pas valide, ou il est inacceptable pour le service.
WIN32_ERROR_PATH_NOT_FOUND 0x00000003 Le service de fichier binaire n'a pu être trouvé.
WIN32_ERROR_SERVICE_ALREADY_RUNNING 0x00000420 Une instance du service est déjà en cours d'exécution.
WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL 0x00000425 Le code de control demandé ne peut être envoyé au service car l'état du service est WIN32_SERVICE_STOPPED, WIN32_SERVICE_START_PENDING ou WIN32_SERVICE_STOP_PENDING.
WIN32_ERROR_SERVICE_DATABASE_LOCKED 0x0000041F La base de données est vérouillée.
WIN32_ERROR_SERVICE_DEPENDENCY_DELETED 0x00000433 Le service dépend d'un service qui n'existe pas ou qui a été marqué pour suppression.
WIN32_ERROR_SERVICE_DEPENDENCY_FAIL 0x0000042C Ce service dépend d'un autre service qui n'a pas pu démarrer.
WIN32_ERROR_SERVICE_DISABLED 0x00000422 Le service a été désactivé.
WIN32_ERROR_SERVICE_DOES_NOT_EXIST 0x00000424 Le service spécifié n'existe pas en tant que service installé.
WIN32_ERROR_SERVICE_EXISTS 0x00000431 Le service spécifié existe déjà dans la base de données.
WIN32_ERROR_SERVICE_LOGON_FAILED 0x0000042D Le service n'a pas démarré en raison d'un échec de connexion. Cette erreur se produit si le service est configuré pour s'exécuter sous un compte qui n'a pas les droits "connecter en tant que service".
WIN32_ERROR_SERVICE_MARKED_FOR_DELETE 0x00000430 Le service spécifié a déjà été marqué pour suppression.
WIN32_ERROR_SERVICE_NO_THREAD 0x0000041E Un thread n'a pas pu être créé pour le service.
WIN32_ERROR_SERVICE_NOT_ACTIVE 0x00000426 Le service n'a pas été démarré.
WIN32_ERROR_SERVICE_REQUEST_TIMEOUT 0x0000041D Le processus du service a été démarré, mais il n'a pas appelé StartServiceCtrlDispatcher, ou le thread qui a appelé StartServiceCtrlDispatcher peut être bloqué dans une fonction du gestionnaire de contrôle.
WIN32_ERROR_SHUTDOWN_IN_PROGRESS 0x0000045B Le système s'arrête, cette fonction ne peut pas être appelée.
WIN32_NO_ERROR 0x00000000 Aucune erreur.


Classes de Priorité de Base Win32
Constante Valeur Description
WIN32_ABOVE_NORMAL_PRIORITY_CLASS 0x00008000 Processus ayant une priorité supérieure WIN32_NORMAL_PRIORITY_CLASS mais inférieure à WIN32_HIGH_PRIORITY_CLASS.
WIN32_BELOW_NORMAL_PRIORITY_CLASS 0x00004000 Processsus ayant une priorité supperieur à WIN32_IDLE_PRIORITY_CLASS mais inférieure à WIN32_NORMAL_PRIORITY_CLASS.
WIN32_HIGH_PRIORITY_CLASS 0x00000080 Processus qui exécute des tâches critiques dans le temps qui doivent être exécutées immédiatement. Le thread du processus devance les threads de priorité normale ou au repos. Un exemple est la liste des tâches, qui doit répondre rapidement quand elle est appelée par l'utilisateur quel que sois la charge du système. Soyez extrêmement prudent lorsque vous utilisez la classe de haute priorité, car une application de classe de haute priorité peut utiliser presque tout le temps CPU disponible.
WIN32_IDLE_PRIORITY_CLASS 0x00000040 Processus dont les threads ne s'exécutent que lorsque le système est inactif. Les threads du processus sont devancés par les threads de tout processus en cours ayant une classe de plus grande priorité. Un exemple est un économiseur d'écran. Cette classe est héritée par les processus enfants.
WIN32_NORMAL_PRIORITY_CLASS 0x00000020 Processus sans planification de besoins spéciaux.
WIN32_REALTIME_PRIORITY_CLASS 0x00000100 Processus ayant la plus haute priorité possible. Les threads du processus devance les threads de tout autre processus, y compris les processus du système d'exploitation exécutant des tâches importantes. Par exemple, un processus en temps réel qui s'exécute un peu trop lentement peut causer des pertes d'ecriture du tampon sur le disque ou empecher à la souris de répondre.



Exemples

Exemple #1 Enregistre un script PHP pour exécuter en tant que service

<?php
win32_create_service
(array(
    
'service'     => 'dummyphp',                                           # nom du service
    
'display'     => 'sample dummy PHP service',                           # description courte
    
'description' => 'This is a dummy Windows service created using PHP.'# description longue
    
'params'      => '"' __FILE__ '"  run',                            # chemin vers le script et paramètres
));
?>

Exemple #2 Efface un service

<?php
win32_delete_service
('dummyphp');
?>

Exemple #3 Exécution d'un service

<?php
if ($argv[1] == 'run') {
  
win32_start_service_ctrl_dispatcher('dummyphp');

  while (
WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    
# effectuer votre travail ici.
    # essayez de ne pas prendre plus de 30 secondes avant de retourner au
    # début de la boucle
  
}
}
?>



Fonctions win32service


win32_continue_service

(PECL win32service SVN)

win32_continue_serviceReprise d'un service en pause

Description

int win32_continue_service ( string $servicename [, string $machine ] )

Reprise d'un service en pause. Nécessite les privilèges d'administrateur.

Liste de paramètres

servicename

Le nom court du service.

machine

Nom de la machine (optionnel). Si omis, la machine locale sera utilisée.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi



win32_create_service

(PECL win32service SVN)

win32_create_serviceCrée une nouvelle entrée pour service dans la base de données SCM

Description

mixed win32_create_service ( array $details [, string $machine ] )

Liste de paramètres

details

Un tableau des détails des services :

service

Le nom court du service. C'est le nom que vous utiliserez pour contrôler le service en utilisant la commande net. Le service doit être unique (deux services ne peuvent partager le même nom), et idéalement, devrait éviter d'avoir des espaces dans son nom.

display

Le nom d'affichage du service. C'est le nom que vous verrez dans l'Applet Services.

description

La description longue du service. C'est la description que vous verrez dans l'Applet des services.

user

Le nom de l'utilisateur sous lequel vous voulez que le service s'exécute. Si oublié, le service fonctionnera en tant que LocalSystem. Si le nom de l'utilisateur est spécifié, vous devez aussi fournir un mot de passe.

password

Le mot de passe qui correspond à user.

path

Le chemin complet au module exécutable qui sera démarré lorsque le service est démarré. Si oublié, le chemin du processus courant de PHP sera utilisé.

params

Paramètres de commande à passer au service lorsqu'il démarre. Si vous voulez exécuter un script PHP en tant que service, alors le premier paramètre devrait être le chemin complet au script PHP que vous prévoyez exécuter. Si le nom du script ou le chemin contiennent des espaces, alors, entourez le chemin complet du script PHP par des "

load_order

Contrôle le load_order. Cela n'est pas encore complètement supporté.

svc_type

Fixe le type de service. Si oublié, la valeur par défaut est WIN32_SERVICE_WIN32_OWN_PROCESS. Ne changez pas ceci à moins que vous savez vraiment ce que vous faites.

start_type

Spécifie comment le service devrait être démarré. La valeur par défaut est WIN32_SERVIDE_AUTO_START qui signifie que le service sera démarré lorsque la machine démarrera.

error_control

Informe le SCM à propos de ce qu'il devrait faire lorsqu'il détecte un problème avec le service. La valeur par défaut est WIN32_SERVER_ERROR_IGNORE. Le changement de cette valeur n'est pas encore complètement supporté.

delayed_start

Si delayed_start est défini à TRUE, alors il informera le SCM que ce service doit être démarré après les services démarrés automatiquement et un certain délai.

N'importe quel service peut être marqué comme étant un service retardé après le démarrage automatique ; cependant, cette configuration n'a aucun effet tant que le paramètre start_type du service vaut WIN32_SERVICE_AUTO_START.

Cette configuration n'est application que sous Windows Vista et les serveurs Windows 2008 et suivants.

base_priority

Pour réduire l'impacte sur l'utilisation du processeur, il peut être nécessaire de définir une priorité plus basse qu'à la normale.

Le paramètre base_priority peut être défini à une des constantes définies dans les classes de basse priorité Win32.

machine

Le nom optionnel de la machine sur lequel vous voulez créer le service. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Exemples

Exemple #1 Exemple avec win32_create_service()

Crée un service dont le nom court est 'dummyphp'.

<?php
$x 
win32_create_service(array(
    
'service'     => 'dummyphp',                                          # le nom de votre service
    
'display'     => 'service PHP simple PHP',                            # la description courte
    
'description' => 'Ceci est un service Windows créé en utilisant PHP'# la description longue
    
'params'      => '"' __FILE__ '"  run',                           # chemin vers le script ainsi que les paramètres
));
debug_zval_dump($x);
?>

Voir aussi



win32_delete_service

(PECL win32service SVN)

win32_delete_serviceSupprime une entrée de service de la base de données SCM

Description

mixed win32_delete_service ( string $servicename [, string $machine ] )

Essaie de supprimer un service de la base de données SCM. Les privilèges d'administrateur sont requis pour que cette fonction réussisse.

Cette fonction ne fait que marquer le service pour suppression. Si d'autre processus (comme l'Applet Services) sont ouverts, alors la suppression sera reportée jusqu'à ce que ces applications soient fermées. Si un service est marqué pour suppression, d'autres tentatives de suppression échoueront et les tentatives de créer un nouveau service avec ce nom échoueront aussi.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Exemples

Exemple #1 Exemple avec win32_delete_service()

Supprime le service dummyphp.

<?php
win32_delete_service
('dummyphp');
?>

Voir aussi



win32_get_last_control_message

(PECL win32service SVN)

win32_get_last_control_messageRetourne le dernier message de contrôle qui a été envoyé à ce service

Description

int win32_get_last_control_message ( void )

Retourne le code de contrôle qui a été envoyé en dernier à ce processus de service. Lorsqu'il fonctionne en tant que service, vous devriez vérifier périodiquement pour déterminer si le service doit être arrêté.

Valeurs de retour

Retourne une constante de contrôle qui sera une parmi les constantes de contrôle des messages de service Win32Service : WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

Voir aussi



win32_pause_service

(PECL win32service SVN)

win32_pause_serviceMet en pause un service

Description

int win32_pause_service ( string $servicename [, string $machine ] )

Met en pause un service. Nécessite les privilèges d'administrateur.

Liste de paramètres

servicename

Le nom court du service.

machine

Nom de la machine (optionnel). Si omis, la machine locale sera utilisée.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi



win32_query_service_status

(PECL win32service SVN)

win32_query_service_statusQuestionne le statut d'un service

Description

mixed win32_query_service_status ( string $servicename [, string $machine ] )

Questionne le statut courant pour un service, retournant un tableau d'informations.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Retourne un tableau contenant les informations suivantes en cas de succès, , FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

ServiceType

Le dwServiceType. Voir les masques de type de service Win32Service.

CurrentState

Le dwCurrentState. Voir les constantes de statut des services Win32Service.

ControlsAccepted

Quels contrôles de service sont acceptés par le service. Voir les masques acceptés pour les messages de contrôle de service Win32Service.

Win32ExitCode

Si le service quitte, le code de retour du processus.

ServiceSpecificExitCode

Si le service quitte avec une condition d'erreur, le code spécifique du service qui sera enregistré dans le journal d'évènements est visible ici.

CheckPoint

Si le service s'arrête, garde le nombre courant de point de contrôle. Ceci est utilisé par SCM comme un genre de battement de coeur pour détecter un processus de service arrêté. La valeur du point de contrôle est mieux interprétée en conjonction avec la valeur WaitHint.

WaitHint

Si le service s'arrête, il fixera un WaitHint à une valeur de point de contrôle qui indiquera l'exécution 100%. Cela peut être utilisé pour implanter un indicateur de progrès.

ProcessId

L'identifiant de processus de fenêtre. Si 0, le processus ne fonctionne pas.

ServiceFlags

Le dwServiceFlags. Voir les constantes utilisées pour les drapeaux des services Win32Service.



win32_set_service_status

(PECL win32service SVN)

win32_set_service_statusMet à jour le statut d'un service

Description

bool win32_set_service_status ( int $status [, int $checkpoint = 0 ] )

Informe le SCM d'un statut courant d'un service qui fonctionne. Cet appel est seulement valide pour un processus de service qui fonctionne.

Liste de paramètres

status

Le code de statut de service, un de WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

checkpoint

Cette valeur sera incrémentée par le service périodiquement pour reporter sa progression lors des opérations de démarrage, d'arrêt, de pause ou de reprise. Par exemple, le service incrémentera cette valeur lorsqu'il aura terminé chaque étape de son initialisation lors de son démarrage.

checkpoint n'est valide que lorsque status est une des constantes suivantes : WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING ou WIN32_SERVICE_PAUSE_PENDING.

Valeurs de retour

Returns TRUE on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi



win32_start_service_ctrl_dispatcher

(PECL win32service SVN)

win32_start_service_ctrl_dispatcherEnregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné

Description

mixed win32_start_service_ctrl_dispatcher ( string $name )

Lorsque exécuté via le Gestionnaire de Contrôle de Service, un processus de service est requis pour "archiver" avec lui pour établir un service de surveillance et de communication ergonomique. Cette fonction effectue un archivage en démarrant un thread pour gérer les communications de bas niveau avec le gestionnaire de contrôle de service.

Une fois démarré, le processus du service doit faire 2 choses. La première est d'indiquer au Service Control Manager que le service est en cours d'exécution. La seconde est d'appeler la fonction win32_set_service_status() avec la constante WIN32_SERVICE_RUNNING. Si vous avez besoin de lancer des processus longs avant que le service ne soit lancé, alors vous pouvez utiliser la constante WIN32_SERVICE_START_PENDING. La seconde est de continuer à vérifier en utilisant le Service Control Manager sachant qu'il peut déterminer si le service se termine ou non. Ceci consiste à appeler, périodiquement, la fonction win32_get_last_control_message() et à traiter le code retourné.

Liste de paramètres

name

Le court nom du service, comme enregistré par win32_create_service().

Valeurs de retour

Returns TRUE on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Exemples

Exemple #1 Exemple avec win32_start_service_ctrl_dispatcher()

Vérifie si le service fonctionne sous SCM.

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
  die(
"Je ne fonctionne probablement pas sous le gestionnaire de contrôle de service");
}

win32_set_service_status(WIN32_SERVICE_START_PENDING);

// Quelques processus longs à récupérer pendant que le service fonctionne.

win32_set_service_status(WIN32_SERVICE_RUNNING);


while (
WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  
# effectuer votre travail ici.
  # essayez de ne pas prendre plus de 30 secondes avant de retourner au
}
?>

Voir aussi



win32_start_service

(PECL win32service SVN)

win32_start_serviceDémarre un service

Description

int win32_start_service ( string $servicename [, string $machine ] )

Essaie de démarrer le service nommé. Normalement, les privilèges d'administrateur sont requis.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi



win32_stop_service

(PECL win32service SVN)

win32_stop_serviceArrête un service

Description

int win32_stop_service ( string $servicename [, string $machine ] )

Arrête un service nommé. Les privilèges d'administrateur sont requis.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi


Sommaire





Manipulation XML


Model Objet d'un document


Introduction

L'extension DOM vous permet d'utiliser des documents XML via l'API DOM de PHP 5.

Pour PHP 4, utilisez l'extension DOM XML.

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez les fonctions utf8_encode() et utf8_decode() pour travailler avec les textes en ISO-8859-1 ou l'extension Iconv pour les autres encodages.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.



Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-dom



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes XML
Constante Valeur Description
XML_ELEMENT_NODE (entier) 1 Le noeud est un DOMElement
XML_ATTRIBUTE_NODE (entier) 2 Le noeud est un DOMAttr
XML_TEXT_NODE (entier) 3 Le noeud est un DOMText
XML_CDATA_SECTION_NODE (entier) 4 Le noeud est un DOMCharacterData
XML_ENTITY_REF_NODE (entier) 5 Le noeud est un DOMEntityReference
XML_ENTITY_NODE (entier) 6 Le noeud est un DOMEntity
XML_PI_NODE (entier) 7 Le noeud est un DOMProcessingInstruction
XML_COMMENT_NODE (entier) 8 Le noeud est un DOMComment
XML_DOCUMENT_NODE (entier) 9 Le noeud est un DOMDocument
XML_DOCUMENT_TYPE_NODE (entier) 10 Le noeud est un DOMDocumentType
XML_DOCUMENT_FRAG_NODE (entier) 11 Le noeud est un DOMDocumentFragment
XML_NOTATION_NODE (entier) 12 Le noeud est un DOMNotation
XML_HTML_DOCUMENT_NODE (entier) 13  
XML_DTD_NODE (entier) 14  
XML_ELEMENT_DECL_NODE (entier) 15  
XML_ATTRIBUTE_DECL_NODE (entier) 16  
XML_ENTITY_DECL_NODE (entier) 17  
XML_NAMESPACE_DECL_NODE (entier) 18  
XML_ATTRIBUTE_CDATA (entier) 1  
XML_ATTRIBUTE_ID (entier) 2  
XML_ATTRIBUTE_IDREF (entier) 3  
XML_ATTRIBUTE_IDREFS (entier) 4  
XML_ATTRIBUTE_ENTITY (entier) 5  
XML_ATTRIBUTE_NMTOKEN (entier) 7  
XML_ATTRIBUTE_NMTOKENS (entier) 8  
XML_ATTRIBUTE_ENUMERATION (entier) 9  
XML_ATTRIBUTE_NOTATION (entier) 10  
Constantes DOMException
Constante Valeur Description
DOM_PHP_ERR (entier) 0 Code erreur ne faisant pas parti de la spécification DOM. Utile pour les erreurs PHP.
DOM_INDEX_SIZE_ERR (entier) 1 Si l'index ou la taille sont négatifs ou plus grands que la valeur autorisée.
DOMSTRING_SIZE_ERR (entier) 2 Si la rangée spécifiée de texte ne tient pas dans le DOMString.
DOM_HIERARCHY_REQUEST_ERR (entier) 3 Si un noeud est inséré à un endroit non autorisé
DOM_WRONG_DOCUMENT_ERR (entier) 4 Si un noeud est utilisé dans un document autre que celui qui l'a créé.
DOM_INVALID_CHARACTER_ERR (entier) 5 Si un caractère invalide ou non autorisé est spécifié, par exemple, dans un nom.
DOM_NO_DATA_ALLOWED_ERR (entier) 6 Si des données sont spécifiées dans un noeud qui ne supporte pas les données.
DOM_NO_MODIFICATION_ALLOWED_ERR (entier) 7 Si une tentative est faite de modifier un objet où les modifications ne sont pas autorisées.
DOM_NOT_FOUND_ERR (entier) 8 Si une tentative est faite de référencer un noeud dans un contexte où il n'existe pas.
DOM_NOT_SUPPORTED_ERR (entier) 9 Si l'implémentation ne supporte pas le type requis de l'objet ou de l'opération.
DOM_INUSE_ATTRIBUTE_ERR (entier) 10 Si une tentative est faite d'ajouter un attribut qui est déjà utilisé autre part.
DOM_INVALID_STATE_ERR (entier) 11 Si une tentative est faite d'utiliser un objet qui n'est pas, ou n'est plus, utilisable.
DOM_SYNTAX_ERR (entier) 12 Si une chaîne de caractères invalide ou illégale est spécifiée.
DOM_INVALID_MODIFICATION_ERR (entier) 13 Si une tentative est faite de modifier le type d'un objet fondamental.
DOM_NAMESPACE_ERR (entier) 14 Si une tentative est faite de créer ou de modifier un objet dans un sens qui est incorrect au regard de l'espace de noms.
DOM_INVALID_ACCESS_ERR (entier) 15 Si un paramètre ou une opération n'est pas supporté par l'objet fondamental.
DOM_VALIDATION_ERR (entier) 16 Si un appel à une méthode tel que insertBefore ou removeChild voudrait rendre le noeud invalide avec le respect de la validation partielle, cette exception sera exécutée et l'opération ne sera pas effectuée.


La classe DOMAttr

Introduction

DOMAttr représente un attribut dans l'objet DOMElement.

Synopsis de la classe

DOMAttr étend DOMNode {
/* Propriétés */
public readonly string $name ;
public readonly DOMElement $ownerElement ;
public readonly bool $schemaTypeInfo ;
public readonly bool $specified ;
public string $value ;
/* Méthodes */
__construct ( string $name [, string $value ] )
bool isId ( void )
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

name

Le nom de l'attribut

ownerElement

L'élément qui contient l'attribut

schemaTypeInfo

Non implémenté, vaut toujours NULL

specified

Non implémenté, vaut toujours NULL

value

La valeur de l'attribut


DOMAttr::__construct

(PHP 5)

DOMAttr::__constructCrée un nouvel objet DOMAttr

Description

DOMAttr::__construct ( string $name [, string $value ] )

Crée un nouvel objet DOMAttr. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createAttribute.

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Exemples

Exemple #1 Création d'un nouvel objet DOMAttr

<?php

$dom 
= new DOMDocument('1.0''iso-8859-1');
$element $dom->appendChild(new DOMElement('root'));
$attr $element->setAttributeNode(new DOMAttr('attr''attrvalue'));
echo 
$dom->saveXML(); 

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<root attr="attrvalue" />

Voir aussi



DOMAttr::isId

(PHP 5)

DOMAttr::isId Vérifie si l'attribut est un identifiant défini

Description

bool DOMAttr::isId ( void )

Cette fonction vérifie si l'attribut est un identifiant défini.

En accord avec le standard DOM, ceci requiert une DTD qui définit l'attribut ID qui est du type ID. Vous devez valider votre document avec la fonction DOMDocument::validate ou la fonction DOMDocument::validateOnParse avant d'utiliser cette fonction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DOMAttr->isId()

<?php

$doc 
= new DomDocument;

// Nous devons valider notre document avant de nous référer à l'ID
$doc->validateOnParse true;
$doc->Load('book.xml');

// Nous récupérons l'attribut nommé id de l'élément chapter
$attr $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>


Sommaire



La classe DOMCharacterData

Introduction

Représente un noeud contenant des données. Aucun noeud ne correspond à cette classe, mais d'autres noeuds en hérite.

Synopsis de la classe

DOMCharacterData étend DOMNode {
/* Propriétés */
public string $data ;
readonly public int $length ;
/* Méthodes */
void appendData ( string $data )
void deleteData ( int $offset , int $count )
void insertData ( int $offset , string $data )
void replaceData ( int $offset , int $count , string $data )
string substringData ( int $offset , int $count )
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

data

Le contenu du noeud.

length

La taille du contenu.


DOMCharacterData::appendData

(PHP 5)

DOMCharacterData::appendData Ajoute la chaîne à la fin des données dans le noeud

Description

void DOMCharacterData::appendData ( string $data )

Ajoute la chaîne data à la fin des données dans le noeud.

Liste de paramètres

data

La chaîne à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



DOMCharacterData::deleteData

(PHP 5)

DOMCharacterData::deleteData Supprime une sous-chaîne dans le noeud

Description

void DOMCharacterData::deleteData ( int $offset , int $count )

Efface count caractères à partir de la position offset.

Liste de paramètres

offset

La position à partir de laquelle on doit commencer à effacer.

count

Le nombre de caractères à effacer. SI la somme de offset et de count excède la longueur totale de la chaîne, alors tous les caractères jusqu'à la fin de la chaîne seront effacés.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données ou si count est négatif.

Voir aussi



DOMCharacterData::insertData

(PHP 5)

DOMCharacterData::insertData Insère une chaîne à la position spécifiée d'unité 16-bit

Description

void DOMCharacterData::insertData ( int $offset , string $data )

Insère la chaîne data à la position offset.

Liste de paramètres

offset

La position de l'insertion.

data

La chaîne à insérer.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données.

Voir aussi



DOMCharacterData::replaceData

(PHP 5)

DOMCharacterData::replaceData Remplace une sous-chaîne dans le noeud DOMCharacterData

Description

void DOMCharacterData::replaceData ( int $offset , int $count , string $data )

Remplace count caractères en partant de la position offset par les données data.

Liste de paramètres

offset

La position à partir de laquelle on commence le remplacement.

count

Le nombre de caractères à remplacer. Si la somme de offset et de count excède la longueur totale de la chaîne, alors tous les caractères jusqu'à la fin des données seront remplacés.

data

La chaîne utilisée pour remplacer les caractères sélectionnés.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données ou si count est négatif.

Voir aussi



DOMCharacterData::substringData

(PHP 5)

DOMCharacterData::substringData Extrait un morceau de données dans le noeud

Description

string DOMCharacterData::substringData ( int $offset , int $count )

Retourne la sous-chaîne spécifiée.

Liste de paramètres

offset

La position du début de la chaîne à extraire.

count

Le nombre de caractères à extraire.

Valeurs de retour

La sous-chaîne spécifiée. Si la somme de offset et de count excède la longueur totale de la chaîne, alors toutes les unités 16-bits jusqu'à la fin des données seront retournées.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données ou si count est négatif.

Voir aussi


Sommaire



La classe DOMComment

Introduction

Représente un noeud de commentaire, délimité par <!-- et -->.

Synopsis de la classe

DOMComment étend DOMCharacterData {
/* Méthodes */
DOMComment::__construct ([ string $value ] )
/* Méthodes héritées */
void DOMCharacterData::appendData ( string $data )
void DOMCharacterData::deleteData ( int $offset , int $count )
void DOMCharacterData::insertData ( int $offset , string $data )
void DOMCharacterData::replaceData ( int $offset , int $count , string $data )
string DOMCharacterData::substringData ( int $offset , int $count )
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

DOMComment::__construct

(PHP 5)

DOMComment::__construct Crée un nouvel objet DOMComment

Description

DOMComment::__construct ([ string $value ] )

Crée un nouvel objet DOMComment. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud n'est pas associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createComment.

Liste de paramètres

value

La valeur du commentaire.

Exemples

Exemple #1 Création d'un nouveau DOMComment

<?php

$dom 
= new DOMDocument('1.0''iso-8859-1');
$element $dom->appendChild(new DOMElement('root'));
$comment $element->appendChild(new DOMComment('root comment'));
echo 
$dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

Voir aussi


Sommaire



La classe DOMDocument

Introduction

Représente un document HTML ou XML entier ; ce sera la racine de l'arbre document.

Synopsis de la classe

DOMDocument étend DOMNode {
/* Propriétés */
readonly public string $actualEncoding ;
readonly public DOMConfiguration $config ;
readonly public DOMDocumentType $doctype ;
readonly public DOMElement $documentElement ;
public string $documentURI ;
public string $encoding ;
public bool $formatOutput ;
public bool $preserveWhiteSpace = true ;
public bool $recover ;
public bool $resolveExternals ;
public bool $standalone ;
public bool $strictErrorChecking = true ;
public bool $substituteEntities ;
public bool $validateOnParse = false ;
public string $version ;
readonly public string $xmlEncoding ;
public bool $xmlStandalone ;
public string $xmlVersion ;
/* Méthodes */
__construct ([ string $version [, string $encoding ]] )
DOMAttr createAttribute ( string $name )
DOMAttr createAttributeNS ( string $namespaceURI , string $qualifiedName )
DOMCDATASection createCDATASection ( string $data )
DOMComment createComment ( string $data )
DOMDocumentFragment createDocumentFragment ( void )
DOMElement createElement ( string $name [, string $value ] )
DOMElement createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )
DOMEntityReference createEntityReference ( string $name )
DOMProcessingInstruction createProcessingInstruction ( string $target [, string $data ] )
DOMText createTextNode ( string $content )
DOMElement getElementById ( string $elementId )
DOMNodeList getElementsByTagName ( string $name )
DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )
DOMNode importNode ( DOMNode $importedNode [, bool $deep ] )
mixed load ( string $filename [, int $options = 0 ] )
bool loadHTML ( string $source )
bool loadHTMLFile ( string $filename )
mixed loadXML ( string $source [, int $options = 0 ] )
void normalizeDocument ( void )
bool registerNodeClass ( string $baseclass , string $extendedclass )
bool relaxNGValidate ( string $filename )
bool relaxNGValidateSource ( string $source )
int save ( string $filename [, int $options ] )
string saveHTML ([ DOMNode $node = NULL ] )
int saveHTMLFile ( string $filename )
string saveXML ([ DOMNode $node [, int $options ]] )
bool schemaValidate ( string $filename )
bool schemaValidateSource ( string $source )
bool validate ( void )
int xinclude ([ int $options ] )
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

actualEncoding

Obsolète. L'encodage actuel du document, en lecture seule, équivalent àencoding.

config

Obsolète. Configuration utilisée lorsque DOMDocument::normalizeDocument() est appelé.

doctype

Le doctype associé au document.

documentElement

C'est un attribut de convenence, qui permet un accès direct au noeud fils, qui est l'élément document du document.

documentURI

La localisation du document, ou NULL si indéfini.

encoding

L'encodage du document, tel que spécifié par la déclaration XML. Cet attribut n'est pas présent dans la spécification DOM Level 3 finale, mais représente la seule façon de manipuler l'encodage du document XML dans cette implémentation.

formatOutput

Formate la sortie avec une jolie indentation et des espaces supplémentaires.

implementation

L'objet DOMImplementation qui gère ce document.

preserveWhiteSpace

Ne pas supprimer les espaces redondants. Vaut par défaut TRUE.

recover

Propriétaire. Active le mode "recovery", i.e. tente d'analyser un document mal formé. Cet attribut ne fait pas parti de la spécification DOM et est spécifique à libxml.

resolveExternals

Définissez-le à TRUE pour charger des entités externes depuis la déclaration doctype. C'est utile pour inclure des entités dans vos documents XML.

standalone

Obsolète. Si le document est "standalone", ou non, tel que spécifié par la déclaration XML, correspondant à xmlStandalone.

strictErrorChecking

Lance une DOMException en cas d'erreur. Par défaut, vaut TRUE.

substituteEntities

Propriétaire. Si l'on doit ou non substituer les entités. Cet attribut ne fait pas parti de la spécification DOM et est spécifique à libxml.

validateOnParse

Charge et valide la DTD. Par défaut, vaut FALSE.

version

Obsolète. Version du XML, correspond à xmlVersion

xmlEncoding

Un attribut spécifiant l'encodage du document. Il vaut NULL lorsque l'encodage n'est pas spécifié, ou lorsqu'il est inconnu, comme c'est le cas lorsque le document a été créé en mémoire.

xmlStandalone

Un attribut spécifiant si le document est "standalone". Il vaut FALSE lorsque non spécifié.

xmlVersion

Un attribut spécifiant le numéro de version du document. S'il n'y a pas de déclaration et si le document supporte la fonctionnalité "XML", la valeur sera "1.0".

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez utf8_encode() et utf8_decode() pour traiter les textes encodés en ISO-8859-1 ou Iconv pour les autres encodages.


DOMDocument::__construct

(PHP 5)

DOMDocument::__construct Crée un nouvel objet DOMDocument

Description

DOMDocument::__construct ([ string $version [, string $encoding ]] )

Crée un nouvel objet DOMDocument.

Liste de paramètres

version

Le numéro de version du document en tant que partie de la déclaration XML.

encoding

L'encodage du document en tant que partie de la déclaration XML.

Exemples

Exemple #1 Création d'un nouveau DOMDocument

<?php

$dom 
= new DOMDocument('1.0''iso-8859-1');

echo 
$dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Voir aussi



DOMDocument::createAttribute

(PHP 5)

DOMDocument::createAttributeCrée un nouvel attribut

Description

DOMAttr DOMDocument::createAttribute ( string $name )

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Émise si name contient un caractère invalide.

Voir aussi



DOMDocument::createAttributeNS

(PHP 5)

DOMDocument::createAttributeNS Crée un nouvel attribut avec un espace de noms associé

Description

DOMAttr DOMDocument::createAttributeNS ( string $namespaceURI , string $qualifiedName )

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom de la balise et le préfixe de l'attribut, sous cette forme : préfixe:nomBalise.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si qualifiedName contient un caractère invalide.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé ou si qualifiedName a un suffixe et que namespaceURI est NULL.

Voir aussi



DOMDocument::createCDATASection

(PHP 5)

DOMDocument::createCDATASectionCrée un nouveau noeud cdata

Description

DOMCDATASection DOMDocument::createCDATASection ( string $data )

Cette fonction crée une nouvelle instance de la classe DOMCDATASection. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

data

Le contenu du cdata.

Valeurs de retour

Le nouveau DOMCDATASection ou FALSE si une erreur survient.

Voir aussi



DOMDocument::createComment

(PHP 5)

DOMDocument::createCommentCrée un nouveau noeud de commentaire

Description

DOMComment DOMDocument::createComment ( string $data )

Cette fonction crée une nouvelle instance de la classe DOMComment. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

data

Le contenu du commentaire.

Valeurs de retour

Le nouveau DOMComment ou FALSE si une erreur survient.

Voir aussi



DOMDocument::createDocumentFragment

(PHP 5)

DOMDocument::createDocumentFragmentCrée un nouveau fragment de document

Description

DOMDocumentFragment DOMDocument::createDocumentFragment ( void )

Cette fonction crée une nouvelle instance de la classe DOMDocumentFragment. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Valeurs de retour

Le nouveau DOMDocumentFragment ou FALSE si une erreur survient.

Voir aussi



DOMDocument::createElement

(PHP 5)

DOMDocument::createElementCrée un nouveau noeud

Description

DOMElement DOMDocument::createElement ( string $name [, string $value ] )

Cette fonction crée une nouvelle instance de la classe DOMElement. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

name

Le nom du tag de l'élément.

value

La valeur de l'élément. Par défaut, un élément vide sera créé. La valeur peut également être définie plus tard avec la fonction DOMElement->nodeValue.

Valeurs de retour

Retourne une nouvelle instance de la classe DOMElement ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si name contient un caractère invalide.

Exemples

Exemple #1 Création d'un nouvel élément et insertion en tant que racine

<?php

$dom 
= new DOMDocument('1.0''utf-8');

$element $dom->createElement('test''Ceci est l\'élément racine !');

// Nous insérons le nouvel élément en tant que racine (enfant du document)
$dom->appendChild($element);

echo 
$dom->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<test>Ceci est l'élément racine !</test>

Notes

Note:

La valeur value ne sera pas échappée. Utilisez la méthode DOMDocument::createTextNode() pour créer un nœud de texte avec le support de l'échappement.

Voir aussi



DOMDocument::createElementNS

(PHP 5)

DOMDocument::createElementNS Crée un nouveau noeud avec un espace de noms associé

Description

DOMElement DOMDocument::createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )

Cette fonction crée un nouveau noeud avec un espace de noms associé. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom qualifié de l'élément, en tant que préfixe:nomBalise.

value

La valeur de l'élément. Par défaut, un élément vide sera créé. Vous pouvez également définir la valeur plus tard en utilisant la fonction DOMElement->nodeValue.

Valeurs de retour

Un nouveau DOMElement ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si qualifiedName contient un caractère invalide.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé.

Exemples

Exemple #1 Création d'un nouvel élément et insertion en tant que racine

<?php

$dom 
= new DOMDocument('1.0''utf-8');

$element $dom->createElementNS('http://www.example.com/XFoo''xfoo:test''Ceci est l\'élément racine !');

// Nous insérons le nouvel élément en tant que racine (fils du document)
$dom->appendChild($element);

echo 
$dom->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">Ceci est l'élément racine !</xfoo:test>

Exemple #2 Un exemple avec un espace de noms en préfixe

<?php
$doc  
= new DOMDocument('1.0''utf-8');
$doc->formatOutput true;
$root $doc->createElementNS('http://www.w3.org/2005/Atom''element');
$doc->appendChild($root);
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:g''http://base.google.com/ns/1.0');
$item $doc->createElementNS('http://base.google.com/ns/1.0''g:item_type''house');
$root->appendChild($item);

echo 
$doc->saveXML(), "\n";

echo 
$item->namespaceURI"\n"// Affiche : http://base.google.com/ns/1.0
echo $item->prefix"\n";       // Affiche : g
echo $item->localName"\n";    // Affiche : item_type
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="utf-8"?>
<element xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
  <g:item_type>house</g:item_type>
</element>

http://base.google.com/ns/1.0
g
item_type

Voir aussi



DOMDocument::createEntityReference

(PHP 5)

DOMDocument::createEntityReferenceCrée un nouveau noeud de référence d'entité

Description

DOMEntityReference DOMDocument::createEntityReference ( string $name )

Cette fonction crée une nouvelle instance de la classe DOMEntityReference. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

name

Le contenu de la référence de l'entité, e.g. la référence de l'entité sans le & initial et le ; final.

Valeurs de retour

Le nouveau DOMEntityReference ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Emise si name contient un caractère invalide.

Voir aussi



DOMDocument::createProcessingInstruction

(PHP 5)

DOMDocument::createProcessingInstructionCrée un nouveau noeud PI

Description

DOMProcessingInstruction DOMDocument::createProcessingInstruction ( string $target [, string $data ] )

Cette fonction crée une nouvelle instance de la classe DOMProcessingInstruction. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

target

La cible de l'instruction gérée.

data

Le contenu de l'instruction gérée.

Valeurs de retour

Le nouveau DOMProcessingInstruction ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Emise si target contient un caractère invalide.

Voir aussi



DOMDocument::createTextNode

(PHP 5)

DOMDocument::createTextNodeCrée un nouveau noeud de texte

Description

DOMText DOMDocument::createTextNode ( string $content )

Cette fonction crée une nouvelle instance de la classe DOMText. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

content

Le contenu du texte.

Valeurs de retour

Un nouveau DOMText ou FALSE si une erreur survient.

Voir aussi



DOMDocument::getElementById

(PHP 5)

DOMDocument::getElementByIdCherche un élément avec un certain identifiant

Description

DOMElement DOMDocument::getElementById ( string $elementId )

Cette fonction est similaire à la fonction DOMDocument::getElementsByTagName mais cherche un élément avec un identifiant donné.

Pour que cette fonction fonctionne, vous devez soit définir les attributs ID avec DOMElement::setIdAttribute ou définir une DTD qui définit un attribut devant être de type ID. Dans le dernier cas, vous devez valider votre document avec DOMDocument::validate ou DOMDocument::validateOnParse avant d'utiliser cette fonction.

Liste de paramètres

elementId

La valeur de l'identifiant unique pour un élément.

Valeurs de retour

Retourne un DOMElement ou NULL si l'élément n'est pas trouvé.

Exemples

Exemple #1 Exemple avec DOMDocument->getElementById()

<?php

$doc 
= new DomDocument;

// Nous devons valider notre document avant de nous référer à l'ID
$doc->validateOnParse true;
$doc->Load('book.xml');

echo 
"L'élément dont l'ID est 'book' est : " $doc->getElementById('books')->tagName "\n";

?>

L'exemple ci-dessus va afficher :

L'élément dont l'ID est 'book' est : chapter

Voir aussi



DOMDocument::getElementsByTagName

(PHP 5)

DOMDocument::getElementsByTagNameCherche tous les éléments qui ont le nom de balise donné

Description

DOMNodeList DOMDocument::getElementsByTagName ( string $name )

Cette fonction retourne une instance de la classe DOMNodeList contenant les éléments qui ont un nom de balise donné.

Liste de paramètres

name

Le nom de la balise à chercher. La valeur spéciale * correspond à toutes les balises.

Valeurs de retour

Un nouvel objet DOMNodeList contenant tous les éléments correspondants.

Voir aussi



DOMDocument::getElementsByTagNameNS

(PHP 5)

DOMDocument::getElementsByTagNameNS Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié

Description

DOMNodeList DOMDocument::getElementsByTagNameNS ( string $namespaceURI , string $localName )

Retourne un DOMNodeList de tous les éléments avec un nom local donné et une URI d'espace de noms.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms des éléments à chercher. La valeur spéciale * représente tous les espaces de noms.

localName

Le nom local des éléments à chercher. La valeur spéciale * représente tous les noms locaux.

Valeurs de retour

Un nouvel objet DOMNodeList contenant tous les éléments trouvés.

Exemples

Exemple #1 Récupération de tous les éléments XInclude

<?php

$xml 
= <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
 <xi:include href="book.xml">
  <xi:fallback>
   <error>xinclude: book.xml not found</error>
  </xi:fallback>
 </xi:include>
 <include>
  This is another namespace
 </include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// load the XML string defined above
$dom->loadXML($xml);

foreach (
$dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude''*') as $element) {
    echo 
'local name: '$element->localName', prefix: '$element->prefix"\n";
}
?>

L'exemple ci-dessus va afficher :

local name: include, prefix: xi
local name: fallback, prefix: xi

Voir aussi



DOMDocument::importNode

(PHP 5)

DOMDocument::importNodeImporte un noeud dans le document courant

Description

DOMNode DOMDocument::importNode ( DOMNode $importedNode [, bool $deep ] )

Cette fonction retourne une copie du noeud à importer et l'associe avec le document courant.

Liste de paramètres

importedNode

Le noeud à importer.

deep

Si défini à TRUE, cette méthode importera récursivement le sous-arbre situé sous le noeud importedNode.

Note:

Pour copier les attributs des noeuds, le paramètre deep doit être défini à TRUE

Valeurs de retour

Le noeud copié ou FALSE si la copie a échouée.

Erreurs / Exceptions

DOMException est lancé si le noeud ne peut pas être importé.

Exemples

Exemple #1 Exemple avec DOMDocument::importNode()

Copie de noeuds entre plusieurs documents.

<?php

$orgdoc 
= new DOMDocument;
$orgdoc->loadXML("<root><element><child>Texte dans un fils</child></element></root>");

// Le noeud que nous voulons importer dans le nouveau document
$node $orgdoc->getElementsByTagName("element")->item(0);


// Création du nouveau document
$newdoc = new DOMDocument;
$newdoc->formatOutput true;

// Ajout de quelques balises
$newdoc->loadXML("<root><someelement>Texte dans un élément</someelement></root>");

echo 
"Le nouveau document avant d'y copier le noeud :\n";
echo 
$newdoc->saveXML();

// Importation du noeud, ainsi que tous ses files, dans le document
$node $newdoc->importNode($nodetrue);
// Et on l'ajoute dans le le noeud racine "<root>"
$newdoc->documentElement->appendChild($node);

echo 
"\nLe nouveau document après y avoir copié les noeuds :\n";
echo 
$newdoc->saveXML();
?>

L'exemple ci-dessus va afficher :

Le nouveau document avant d'y copier le noeud :
<?xml version="1.0"?>
<root>
  <someelement>Texte dans un élément</someelement>
</root>

Le nouveau document après y avoir copié les noeuds :
<?xml version="1.0"?>
<root>
  <someelement>Texte dans un élément</someelement>
  <element>
    <child>Texte dans un fils</child>
  </element>
</root>



DOMDocument::load

(PHP 5)

DOMDocument::load Charge du XML depuis un fichier

Description

mixed DOMDocument::load ( string $filename [, int $options = 0 ] )

Charge un document XML depuis un fichier.

Avertissement

Les chemins de style Unix avec des antislash peuvent conduire à des réductions de performance sous les systèmes Windows ; assurez-vous d'appeler la fonction realpath().

Liste de paramètres

filename

Le chemin vers le document XML.

options

L'opérateur OR des constantes de #libxml.constants.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre filename ou si le fichier est vide, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un Document

<?php
$doc 
= new DOMDocument();
$doc->load('book.xml');
echo 
$doc->saveXML();
?>

Voir aussi



DOMDocument::loadHTML

(PHP 5)

DOMDocument::loadHTML Charge du code HTML à partir d'une chaîne de caractères

Description

bool DOMDocument::loadHTML ( string $source )

Cette fonction analyse un document HTML contenu dans la chaîne source. Contrairement au XML, le HTML n'a pas besoin d'être bien formé pour être chargé. Cette fonction peut aussi être appelée statiquement pour charger et créer un objet DOMDocument. L'appel statique peut être utilisé lorsque vous n'avez besoin de configurer aucune propriété de DOMDocument avant le chargement.

Liste de paramètres

source

La chaîne HTML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre source, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un document

<?php
$doc 
= new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo 
$doc->saveHTML();
?>

Voir aussi



DOMDocument::loadHTMLFile

(PHP 5)

DOMDocument::loadHTMLFile Charge du HTML à partir d'un fichier

Description

bool DOMDocument::loadHTMLFile ( string $filename )

Cette fonction analyse un document HTML contenu dans le fichier filename. Contrairement au XML, le HTML n'a pas besoin d'être bien formé pour être chargé.

Liste de paramètres

filename

Le chemin vers le fichier HTML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelé statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre filename ou que le fichier est vide, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un document

<?php
$doc 
= new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo 
$doc->saveHTML();
?>

Voir aussi



DOMDocument::loadXML

(PHP 5)

DOMDocument::loadXML Charge du XML depuis une chaîne de caractères

Description

mixed DOMDocument::loadXML ( string $source [, int $options = 0 ] )

Charge un document XML depuis une chaîne de caractères.

Liste de paramètres

source

La chaîne de caractères contenant le XML.

options

L'opérateur OR des constantes libxml.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre source, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un Document

<?php
$doc 
= new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo 
$doc->saveXML();
?>

Exemple #2 Invocation statique de loadXML

<?php
// Emet une erreur E_STRICT
$doc DOMDocument::loadXML('<root><node/></root>');
echo 
$doc->saveXML();
?>

Voir aussi



DOMDocument::normalizeDocument

(PHP 5)

DOMDocument::normalizeDocumentNormalise le document

Description

void DOMDocument::normalizeDocument ( void )

Cette méthode fonctionne comme si vous sauvegardiez le document puis vous le chargiez de nouveau, rendant le document sous une forme "normale".

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0)

DOMDocument::registerNodeClassEnregistre la classe étendue utilisée pour créer un type de base de noeud

Description

bool DOMDocument::registerNodeClass ( string $baseclass , string $extendedclass )

Cette méthode vous permet d'enregistrer votre propre classe étendue DOM à utiliser ensuite dans l'extension DOM de PHP.

Cette méthode ne fait pas partie du standard DOM.

Liste de paramètres

baseclass

La classe DOM qui vous voulez étendre. Vous pouvez trouver une liste de ces classes dans l'introduction du chapitre.

extendedclass

Le nom de votre classe étendue. Si la valeur NULL est fournie, toutes les classes enregistrées précédemment étendant baseclass seront supprimées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
PHP 5.2.2 Avant la version 5.2.2, une classe extendedclass précédemment enregistrée devait être supprimées avant de pouvoir en enregistrer une nouvelle étendant la même classe baseclass.

Exemples

Exemple #1 Ajout d'un nouvelle méthode à DOMElement

<?php

class myElement extends DOMElement {
   function 
appendElement($name) { 
      return 
$this->appendChild(new myElement($name));
   }
}

class 
myDocument extends DOMDocument {
   function 
setRoot($name) { 
      return 
$this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement''myElement');

// À partir d'ici, l'ajout d'un élément à un autre se fait en un seul appel !
$root $doc->setRoot('root');
$child $root->appendElement('child');
$child->setAttribute('foo''bar');

echo 
$doc->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Exemple #2 Récupération d'éléments sous la forme d'une classe personnalisée

<?php
class myElement extends DOMElement {
    public function 
__toString() {
        return 
$this->nodeValue;
    }
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>Text dans un fils</child></element></root>");
$doc->registerNodeClass("DOMElement""myElement");

$element $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// Et utilisons les avantages de la méthode __toString..
echo $element;
?>

L'exemple ci-dessus va afficher :

string(9) "myElement"
Text dans un fils

Exemple #3 Récupération du propriétaire du document

Lors de l'instanciation d'un DOMDocument personnalisé, la propriété ownerDocument se réfère à la classe instanciée, signifiant qu'il n'est pas nécessaire (et en fait, par possible) d'utiliser DOMDocument::registerNodeClass() avec DOMDocument

<?php
class myDOMDocument extends DOMDocument {
}

class 
myOtherDOMDocument extends DOMDocument {
}

// Création d'un document myDOMDocument avec quelques fragments XML
$doc = new myDOMDocument;
$doc->loadXML("<root><element><child>texte dans un fils</child></element></root>");

$child $doc->getElementsByTagName("child")->item(0);

// Le propriétaire courant du noeud est myDOMDocument
var_dump(get_class($child->ownerDocument));

// Importation d'un noeud depuis myDOMDocument
$newdoc = new myOtherDOMDocument;
$child $newdoc->importNode($child);

// Le nouveau propriétaire du noeud a changé en myOtherDOMDocument
var_dump(get_class($child->ownerDocument));
?>

L'exemple ci-dessus va afficher :

string(13) "myDOMDocument"
string(18) "myOtherDOMDocument"



DOMDocument::relaxNGValidate

(PHP 5)

DOMDocument::relaxNGValidateEffectue une validation relaxNG sur le document

Description

bool DOMDocument::relaxNGValidate ( string $filename )

Effectue une validation » relaxNG sur le document selon le schéma RNG défini par filename.

Liste de paramètres

filename

Le fichier RNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMDocument::relaxNGValidateSource

(PHP 5)

DOMDocument::relaxNGValidateSourceEffectue une validation relaxNG sur le document

Description

bool DOMDocument::relaxNGValidateSource ( string $source )

Effectue une validation » relaxNG sur le document selon le schéma RNG défini dans la chaîne source.

Liste de paramètres

source

Une chaîne contenant le schéma RNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMDocument::save

(PHP 5)

DOMDocument::save Sauvegarde l'arbre interne XML dans un fichier

Description

int DOMDocument::save ( string $filename [, int $options ] )

Crée un document XML depuis la représentation DOM. Cette fonction est habituellement appelée après la construction d'un nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

filename

Le chemin où sera sauvegardé le document XML.

options

Options additionnelles. Actuellement, seul LIBXML_NOEMPTYTAG est supporté.

Valeurs de retour

Retourne le nombre d'octets écrit ou FALSE si une erreur survient.

Historique

Version Description
5.1.0 Ajout du paramètre options

Exemples

Exemple #1 Sauvegarde d'un arbre DOM dans un fichier

<?php

$doc 
= new DOMDocument('1.0');
// nous voulons un bel affichage
$doc->formatOutput true;

$root $doc->createElement('book');
$root $doc->appendChild($root);

$title $doc->createElement('title');
$title $root->appendChild($title);

$text $doc->createTextNode('This is the title');
$text $title->appendChild($text);

echo 
'Écrit : ' $doc->save("/tmp/test.xml") . ' bytes'// Écrit : 72 bytes

?>

Voir aussi



DOMDocument::saveHTML

(PHP 5)

DOMDocument::saveHTML Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML

Description

string DOMDocument::saveHTML ([ DOMNode $node = NULL ] )

Crée un document HTML depuis une représentation DOM. Cette fonction est habituellement appelée après la construction d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

node

Paramètre optionnel pour afficher une portion du document.

Valeurs de retour

Retourne le code HTML ou FALSE si une erreur survient.

Historique

Version Description
5.3.6 Le paramètre node a été ajouté.

Exemples

Exemple #1 Sauvegarde d'un arbre HTML dans une chaîne de caractères

<?php

$doc 
= new DOMDocument('1.0');

$root $doc->createElement('html');
$root $doc->appendChild($root);

$head $doc->createElement('head');
$head $root->appendChild($head);

$title $doc->createElement('title');
$title $head->appendChild($title);

$text $doc->createTextNode('Ceci est le titre');
$text $title->appendChild($text);

echo 
$doc->saveHTML();

?>

Voir aussi



DOMDocument::saveHTMLFile

(PHP 5)

DOMDocument::saveHTMLFile Sauvegarde un document interne dans un fichier en utilisant un formatage HTML

Description

int DOMDocument::saveHTMLFile ( string $filename )

Crée un document HTML depuis une représentation DOM. Cette fonction est habituellement appelée après la construction d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

filename

Le chemin où l'on doit sauvegarder le document HTML.

Valeurs de retour

Retourne le nombre d'octets écrit ou FALSE si une erreur survient.

Exemples

Exemple #1 Sauvegarde d'un arbre HTML dans un fichier

<?php

$doc 
= new DOMDocument('1.0');
// nous voulons un joli affichage
$doc->formatOutput true;

$root $doc->createElement('html');
$root $doc->appendChild($root);

$head $doc->createElement('head');
$head $root->appendChild($head);

$title $doc->createElement('title');
$title $head->appendChild($title);

$text $doc->createTextNode('Ceci est le titre');
$text $title->appendChild($text);

echo 
'Écrit : ' $doc->saveHTMLFile("/tmp/test.html") . ' bytes'// Écrit : 129 bytes

?>

Voir aussi



DOMDocument::saveXML

(PHP 5)

DOMDocument::saveXML Sauvegarde l'arbre interne XML dans une chaîne de caractères

Description

string DOMDocument::saveXML ([ DOMNode $node [, int $options ]] )

Crée un document XML depuis la représentation DOM. Cette fonction est habituellement appelée après la création d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

node

Utilisez ce paramètre pour afficher uniquement un noeud spécifique sans déclaration XML plutôt que la totalité du document.

options

Options additionnelles. Actuellement, seul LIBXML_NOEMPTYTAG est supporté.

Valeurs de retour

Retourne le XML ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si node est issu d'un autre document.

Historique

Version Description
5.1.0 Ajout du paramètre options

Exemples

Exemple #1 Sauvegarde de l'arbre DOM dans une chaîne de caractères

<?php

$doc 
= new DOMDocument('1.0');
// nous voulons un joli affichage
$doc->formatOutput true;

$root $doc->createElement('book');
$root $doc->appendChild($root);

$title $doc->createElement('title');
$title $root->appendChild($title);

$text $doc->createTextNode('Ceci est le titre');
$text $title->appendChild($text);

echo 
"Récupération de tout le document :\n";
echo 
$doc->saveXML() . "\n";

echo 
"Récupération du titre, uniquement :\n";
echo 
$doc->saveXML($title);

?>

L'exemple ci-dessus va afficher :

Récupération de tout le document :
<?xml version="1.0"?>
<book>
  <title>Ceci est le titre</title>
</book>

Récupération du titre, uniquement :
<title>Ceci est le titre</title>

Voir aussi



DOMDocument::schemaValidate

(PHP 5)

DOMDocument::schemaValidate Valide un document selon un schéma

Description

bool DOMDocument::schemaValidate ( string $filename )

Valide un document selon un schéma contenu dans un fichier donné.

Liste de paramètres

filename

Le chemin vers le fichier contenant le schéma.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMDocument::schemaValidateSource

(PHP 5)

DOMDocument::schemaValidateSource Valide un document selon un schéma

Description

bool DOMDocument::schemaValidateSource ( string $source )

Valide un document selon le schéma défini dans la chaîne donnée.

Liste de paramètres

source

Une chaîne contenant le schéma.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMDocument::validate

(PHP 5)

DOMDocument::validate Valide un document en se basant sur sa DTD

Description

bool DOMDocument::validate ( void )

Valide un document en se basant sur sa DTD.

Vous pouvez utiliser la propriété validateOnParse de la classe DOMDocument pour effectuer une validation DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si le document n'a aucune DTD d'attachée, cette méthode retournera FALSE.

Exemples

Exemple #1 Exemple de validation DTD

<?php
$dom 
= new DOMDocument;
$dom->Load('book.xml');
if (
$dom->validate()) {
    echo 
"Ce document est valide !\n";
}
?>

Vous pouvez également valider votre fichier XML en le chargeant :

<?php
$dom 
= new DOMDocument;
$dom->validateOnParse true;
$dom->Load('book.xml');
?>

Voir aussi



DOMDocument::xinclude

(PHP 5)

DOMDocument::xinclude Remplace les XIncludes dans un objet DOMDocument

Description

int DOMDocument::xinclude ([ int $options ] )

Cette méthode remplace les » XIncludes dans un objet DOMDocument.

Note:

Vu que la bibliothèque libxml2 résout automatiquement les entités, cette méthode peut produire des résultats non attendus si le fichier XML inclus a une DTD d'attachée.

Liste de paramètres

options

paramètres Libxml. Disponible depuis PHP 5.1.0 et Libxml 2.6.7.

Valeurs de retour

Retourne le nombre de XIncludes du document, -1 si une erreur survient lors du processus, ou FALSE s'il n'y a aucune substitution.

Exemples

Exemple #1 Exemple avec DOMDocument->xinclude()

<?php

$xml 
= <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Les livres d'une autre personne</title>
 <para>
  <xi:include href="book.xml">
   <xi:fallback>
    <error>xinclude: book.xml n'a pas été trouvé</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// Nous voulons un joli affichage
$dom->preserveWhiteSpace false;
$dom->formatOutput true;

// chargement de la chaîne XML définie ci-dessus
$dom->loadXML($xml);

// remplacement des xincludes
$dom->xinclude();

echo 
$dom->saveXML();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Les livres d'une autre personne</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>


Sommaire



La classe DOMDocumentFragment

Synopsis de la classe

DOMDocumentFragment étend DOMNode {
/* Propriétés */
/* Méthodes */
bool appendXML ( string $data )
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0)

DOMDocumentFragment::appendXMLAjoute des données XML

Description

bool DOMDocumentFragment::appendXML ( string $data )

Ajoute des données XML brutes à un DOMDocumentFragment.

Cette méthode ne fait pas partie du standard DOM. Elle a été créée pour simplifier l'ajout d'un fragment XML dans un DOMDocument.

Si vous voulez respecter les standards, vous devez créer un DOMDocument temporaire avec une racine et parcourir les noeuds enfants de vos données XML pour les ajouter.

Liste de paramètres

data

XML à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de données XML à votre document

<?php
$doc 
= new DOMDocument();
$doc->loadXML("<root/>");
$f $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo 
$doc->saveXML(); 
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>


Sommaire



La classe DOMDocumentType

Introduction

Chaque DOMDocument a un attribut doctype dont la valeur est soit NULL, soit un objet DOMDocumentType.

Synopsis de la classe

DOMDocumentType étend DOMNode {
/* Propriétés */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $name ;
readonly public DOMNamedNodeMap $entities ;
readonly public DOMNamedNodeMap $notations ;
readonly public string $internalSubset ;
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

publicId

L'identifiant public du subset externe.

systemId

L'identifiant système du subset externe. Ce peut être une URL absolue ou non.

name

Le nom de la DTD ; i.e., le nom suivant immédiatement le mot clé DOCTYPE.

entities

Un DOMNamedNodeMap contenant l'entité général, à la fois externe et interne, déclaré dans la DTD.

notations

Un DOMNamedNodeMap contenant les notations, déclarées dans la DTD.

internalSubset

Le subset interne, sous la forme d'une chaîne de caractères, ou NULL s'il n'y en a pas. Cette chaîne ne contient pas les crochets délimiteurs.


(No version information available, might only be in SVN)




La classe DOMElement

Synopsis de la classe

DOMElement étend DOMNode {
/* Propriétés */
readonly public bool $schemaTypeInfo ;
readonly public string $tagName ;
/* Méthodes */
DOMElement::__construct ( string $name [, string $value [, string $namespaceURI ]] )
string DOMElement::getAttribute ( string $name )
DOMAttr DOMElement::getAttributeNode ( string $name )
DOMAttr DOMElement::getAttributeNodeNS ( string $namespaceURI , string $localName )
string DOMElement::getAttributeNS ( string $namespaceURI , string $localName )
DOMNodeList DOMElement::getElementsByTagName ( string $name )
DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )
bool DOMElement::hasAttribute ( string $name )
bool DOMElement::hasAttributeNS ( string $namespaceURI , string $localName )
bool DOMElement::removeAttribute ( string $name )
bool DOMElement::removeAttributeNS ( string $namespaceURI , string $localName )
DOMAttr DOMElement::setAttribute ( string $name , string $value )
void DOMElement::setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )
void DOMElement::setIdAttribute ( string $name , bool $isId )
void DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId )
void DOMElement::setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

schemaTypeInfo

Non implémenté, retourne toujours NULL

tagName

Le nom de l'élément

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez utf8_encode() et utf8_decode() pour traiter les textes encodés en ISO-8859-1 ou Iconv pour les autres encodages.


DOMElement::__construct

(PHP 5)

DOMElement::__construct Crée un nouvel objet DOMElement

Description

DOMElement::__construct ( string $name [, string $value [, string $namespaceURI ]] )

Crée un nouvel objet DOMElement. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant qu'il est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createElement ou DOMDocument::createElementNS.

Liste de paramètres

name

Le nom de l'élément. Lorsqu'il est passé dans l'URI de l'espace de nom, le nom de l'élément doit comporter un préfixe pour être associé à l'URI.

value

La valeur de l'élément.

namespaceURI

Un espace de nom de l'URI pour créer l'élément dans un espace de nom spécifique.

Exemples

Exemple #1 Création d'un nouveau DOMElement

<?php

$dom 
= new DOMDocument('1.0''iso-8859-1');
$element $dom->appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1''thisvalue''http://xyz');
$element->appendChild($element_ns);
echo 
$dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

Voir aussi



DOMElement::getAttribute

(PHP 5)

DOMElement::getAttributeRetourne la valeur d'un attribut

Description

string DOMElement::getAttribute ( string $name )

Récupère la valeur d'un attribut avec le nom name pour le noeud courant.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne vide si aucun attribut avec le nom name donné n'est trouvé.

Voir aussi



DOMElement::getAttributeNode

(PHP 5)

DOMElement::getAttributeNodeRetourne le noeud d'attribut

Description

DOMAttr DOMElement::getAttributeNode ( string $name )

Retourne le noeud d'attribut avec le nom name pour l'élément courant.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Le noeud d'attribut.

Voir aussi



DOMElement::getAttributeNodeNS

(PHP 5)

DOMElement::getAttributeNodeNS Retourne le noeud d'attribut

Description

DOMAttr DOMElement::getAttributeNodeNS ( string $namespaceURI , string $localName )

Retourne le noeud d'attribut dans l'espace de noms namespaceURI avec le nom local localName pour le noeud courant.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Le noeud d'attribut.

Voir aussi



DOMElement::getAttributeNS

(PHP 5)

DOMElement::getAttributeNSRetourne la valeur de l'attribut

Description

string DOMElement::getAttributeNS ( string $namespaceURI , string $localName )

Récupère la valeur de l'attribut dans l'espace de noms namespaceURI avec le nom local localName pour le noeud courant.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

La valeur de l'attribut, ou une chaîne vide si aucun attribut avec le nom local localName donné et dans l'espace de noms namespaceURI n'est trouvé.

Voir aussi



DOMElement::getElementsByTagName

(PHP 5)

DOMElement::getElementsByTagNameRetourne les éléments par leur nom de balise

Description

DOMNodeList DOMElement::getElementsByTagName ( string $name )

Cette fonction retourne une nouvelle instance de la classe DOMNodeList contenant tous les éléments descendants avec un nom de balise name donné, dans l'ordre dans lequel ils sont rencontrés lors du parcours de l'arbre de cet élément.

Liste de paramètres

name

Le nom de la balise. Utilisez le caractère générique * pour récupérer tous les éléments contenus dans l'arbre de l'élément.

Valeurs de retour

Cette fonction retourne une nouvelle instance de la classe DOMNodeList contenant tous les éléments correspondants.

Voir aussi



DOMElement::getElementsByTagNameNS

(PHP 5)

DOMElement::getElementsByTagNameNSRécupère les éléments par leur espace de noms et leur localName

Description

DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )

Cette fonction récupère tous les éléments descendants avec un nom local localName et un espace de noms namespaceURI donnés.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local. Utilisez le caractère générique * pour récupérer tous les éléments de l'arbre de l'élément.

Valeurs de retour

Cette fonction retourne un nouvel objet de la classe DOMNodeList contenant tous les éléments correspondants dans l'ordre dans lesquels ils sont rencontrés lors du parcours de l'arbre de cet élément.

Voir aussi

  • DOMElement::getElementsByTagNameNS()



DOMElement::hasAttribute

(PHP 5)

DOMElement::hasAttributeVérifie si un attribut existe

Description

bool DOMElement::hasAttribute ( string $name )

Indique si un attribut nommé name existe en tant que membre de l'élément.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMElement::hasAttributeNS

(PHP 5)

DOMElement::hasAttributeNS Vérifie si un attribut existe

Description

bool DOMElement::hasAttributeNS ( string $namespaceURI , string $localName )

Vérifie si un attribut dans l'espace de noms namespaceURI nommé localName existe en tant que membre de l'élément.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMElement::removeAttribute

(PHP 5)

DOMElement::removeAttributeEfface un attribut

Description

bool DOMElement::removeAttribute ( string $name )

Efface l'attribut nommé name de l'élément.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi



DOMElement::removeAttributeNode

(PHP 5)

DOMElement::removeAttributeNodeEfface un attribut

Description

bool DOMElement::removeAttributeNode ( DOMAttr $oldnode )

Efface l'attribut oldnode de l'élément.

Liste de paramètres

oldnode

Le noeud de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NOT_FOUND_ERROR

Lancé si oldnode n'est pas un attribut de l'élément.

Voir aussi



DOMElement::removeAttributeNS

(PHP 5)

DOMElement::removeAttributeNSEfface un attribut

Description

bool DOMElement::removeAttributeNS ( string $namespaceURI , string $localName )

Efface un attribut avec l'espace de noms namespaceURI nommé localName de l'élément.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi



DOMElement::setAttribute

(PHP 5)

DOMElement::setAttributeAjoute un nouvel attribut

Description

DOMAttr DOMElement::setAttribute ( string $name , string $value )

Ajoute un attribut avec comme nom name et comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Exemples

Exemple #1 Ajout d'un attribut

<?php
$doc 
= new DOMDocument("1.0");
$node $doc->createElement("para");
$newnode $doc->appendChild($node);
$newnode->setAttribute("align""left");
?>

Voir aussi



DOMElement::setAttributeNode

(PHP 5)

DOMElement::setAttributeNodeAjoute un nouvel attribut à l'élément

Description

DOMAttr DOMElement::setAttributeNode ( DOMAttr $attr )

Ajoute un nouvel attribut attr à l'élément.

Liste de paramètres

attr

L'attribut.

Valeurs de retour

Retourne l'ancien noeud si l'attribut a été placé ou NULL.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi



DOMElement::setAttributeNodeNS

(PHP 5)

DOMElement::setAttributeNodeNSAjoute un nouvel attribut à l'élément

Description

DOMAttr DOMElement::setAttributeNodeNS ( DOMAttr $attr )

Ajoute un nouvel attribut attr à l'élément.

Liste de paramètres

attr

Le nom de l'attribut.

Valeurs de retour

Retourne l'ancien noeud si l'attribut a été placé.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi



DOMElement::setAttributeNS

(PHP 5)

DOMElement::setAttributeNSAjoute un nouvel attribut

Description

void DOMElement::setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )

Ajoute un attribut avec comme espace de noms namespaceURI et comme nom name avec comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom qualifié de l'attribut, sous la forme prefixe:nomdebalise.

value

La valeur de l'attribut.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé ou si qualifiedName a un préfixe et un namespaceURI qui vaut NULL.

Voir aussi



DOMElement::setIdAttribute

(PHP 5)

DOMElement::setIdAttributeDéclare l'attribut spécifié par son nom à être de type ID

Description

void DOMElement::setIdAttribute ( string $name , bool $isId )

Déclare l'attribut name afin qu'il soit de type ID.

Liste de paramètres

name

Le nom de l'attribut.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Envoyé si le noeud est en lecture seule.

DOM_NOT_FOUND

Envoyé si name n'est pas un attribut de cet élément.

Voir aussi



DOMElement::setIdAttributeNode

(PHP 5)

DOMElement::setIdAttributeNodeDéclare l'attribut spécifié par le noeud à être de type ID

Description

void DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId )

Déclare l'attribut spécifié par attr afin qu'il soit de type ID.

Liste de paramètres

attr

L'attribut du noeud.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Envoyé si le noeud est en lecture seule.

DOM_NOT_FOUND

Envoyé si name n'est pas un attribut de cet élément.

Voir aussi



DOMElement::setIdAttributeNS

(PHP 5)

DOMElement::setIdAttributeNSDéclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID

Description

void DOMElement::setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )

Déclare l'attribut spécifié par localName et namespaceURI afin qu'il soit de type ID.

Liste de paramètres

namespaceURI

L'URI de l'espace de nom de l'attribut.

localName

Le nom local de l'attribut, sous la forme prefix:tagname.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Émise si le noeud est en lecture seule.

DOM_NOT_FOUND

Émise si name n'est pas un attribut de cet élément.

Voir aussi


Sommaire



La classe DOMEntity

Introduction

Cette interface représente une entité inconnue, analysée ou non, dans un document XML.

Synopsis de la classe

DOMEntity étend DOMNode {
/* Propriétés */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $notationName ;
public string $actualEncoding ;
readonly public string $encoding ;
readonly public string $version ;
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

publicId

L'identifiant public associé avec l'entité, si spécifiée, et NULL sinon.

systemId

L'identifiant système associé avec l'entité, si spécifiée, et NULL sinon. Peut être une URL absolue ou non.

notationName

Pour les entités non analysée, le nom de la notation de l'entité. Pour les entités analysées, vaut NULL.

actualEncoding

Un attribut spécifiant l'encodage utilisé pour cette entité au moment de l'analyse, lorsque c'est une entité analysée externe. Vaut NULL si c'est une entité depuis un subset interne ou si l'encodage est inconnu.

encoding

Un attribut spécifiant (faisant parti de la déclaration) l'encodage de l'entité, lorsque c'est une entité analysée externe. Vaut NULL sinon.

version

Un attribut spécifiant (faisant parti de la déclaration) le numéro de version de l'entité, lorsque c'est une entité analysée externe. Vaut NULL sinon.



La classe DOMEntityReference

Synopsis de la classe

DOMEntityReference étend DOMNode {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

DOMEntityReference::__construct

(PHP 5)

DOMEntityReference::__construct Crée un nouvel objet DOMEntityReference

Description

DOMEntityReference::__construct ( string $name )

Crée un nouvel objet DOMEntityReference.

Liste de paramètres

name

Le nom de la référence à l'entité.

Exemples

Exemple #1 Création d'un nouveau DOMEntityReference

<?php

$dom 
= new DOMDocument('1.0''iso-8859-1');
$element $dom->appendChild(new DOMElement('root'));
$entity $element->appendChild(new DOMEntityReference('nbsp'));
echo 
$dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>&nbsp;</root> */

?>

Voir aussi


Sommaire



La classe DOMException

Introduction

Les opérations DOM lancent des exceptions lors de circonstances particulières, i.e., lorsqu'il est impossible d'exécuter une opération pour des raisons logiques.

Voir aussi Les exceptions.

Synopsis de la classe

DOMException étend Exception {
/* Propriétés */
readonly public int $code ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

code

Un entier indiquant le type d'erreur généré



La classe DOMImplementation

Introduction

L'interface DOMImplementation fournit des méthodes pour effectuer des opérations qui sont indépendantes d'une instance particulière du modèle objet d'un document.

Synopsis de la classe

DOMImplementation {
/* Propriétés */
/* Méthodes */
DOMDocument DOMImplementation::createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] )
DOMDocumentType DOMImplementation::createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] )
bool DOMImplementation::hasFeature ( string $feature , string $version )
}

DOMImplementation::__construct

(PHP 5)

DOMImplementation::__construct Crée un nouvel objet DOMImplementation

Description

DOMImplementation::__construct ( void )

Crée un nouvel objet DOMImplementation.



DOMImplementation::createDocument

(PHP 5)

DOMImplementation::createDocument Crée un objet DOM Document du type spécifié avec ses éléments

Description

DOMDocument DOMImplementation::createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] )

Crée un objet DOMDocument du type spécifié avec ces éléments du document.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms des éléments du document à créer.

qualifiedName

Le nom qualifié des éléments du document à créer.

doctype

Le type de document à créer ou NULL.

Valeurs de retour

Un nouvel objet DOMDocument. Si namespaceURI, qualifiedName, et doctype sont nulles, le DOMDocument retourné est vide avec aucun élément de document.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si doctype a déjà été utilisé avec un document différent ou a été créé depuis une implémentation différente.

DOM_NAMESPACE_ERR

Lancé s'il y a une erreur dans l'espace de noms, déterminé par namespaceURI et qualifiedName.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Voir aussi



DOMImplementation::createDocumentType

(PHP 5)

DOMImplementation::createDocumentType Crée un objet DOMDocumentType vide

Description

DOMDocumentType DOMImplementation::createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] )

Crée un objet DOMDocumentType vide. Les déclarations et notations d'entités ne sont pas disponibles. Les expansions de références d'entités et les ajouts d'attributs par défaut ne sont pas non plus effectués.

Liste de paramètres

qualifiedName

Le nom qualifié du type de document à créer.

publicId

L'identifiant publique externe du sous-ensemble.

systemId

L'identifiant système externe du sous-ensemble.

Valeurs de retour

Un nouveau noeud DOMDocumentType avec son ownerDocument défini à NULL.

Erreurs / Exceptions

DOM_NAMESPACE_ERR

Levée si il y a une erreur avec l'espace de noms, déterminé par qualifiedName.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un document avec une DTD attachée

<?php

// Création d'une instance de la classe DOMImplementation
$imp = new DOMImplementation;

// Création d'une instance DOMDocumentType
$dtd $imp->createDocumentType('graph''''graph.dtd');

// Création d'une instance DOMDocument
$dom $imp->createDocument(""""$dtd);

// Définition des autres propriétés
$dom->encoding 'UTF-8';
$dom->standalone false;

// Création d'un élément vide
$element $dom->createElement('graph');

// Ajout de l'élément
$dom->appendChild($element);

// Récupère et affiche le document
echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Voir aussi



DOMImplementation::hasFeature

(PHP 5)

DOMImplementation::hasFeature Teste si l'implémentation DOM implémente une fonctionnalité spécifique

Description

bool DOMImplementation::hasFeature ( string $feature , string $version )

Teste si l'implémentation DOM implémente une fonctionnalité feature spécifique.

Vous pouvez trouver une liste de toutes les fonctionnalités dans la section » Conformance de la spécification DOM.

Liste de paramètres

feature

La fonctionnalité à tester.

version

Le numéro de version de la fonctionnalité feature à tester. Dans le niveau 2, ceci peut être soit 2.0 ou 1.0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Test votre implémentation DOM

<?php

$features 
= array(
  
'Core'           => 'Core module',
  
'XML'            => 'XML module',
  
'HTML'           => 'HTML module',
  
'Views'          => 'Views module',
  
'Stylesheets'    => 'Style Sheets module',
  
'CSS'            => 'CSS module',
  
'CSS2'           => 'CSS2 module',
  
'Events'         => 'Events module',
  
'UIEvents'       => 'User interface Events module',
  
'MouseEvents'    => 'Mouse Events module',
  
'MutationEvents' => 'Mutation Events module',
  
'HTMLEvents'     => 'HTML Events module',
  
'Range'          => 'Range module',
  
'Traversal'      => 'Traversal module'
);
               
foreach (
$features as $key => $name) {
  if (
DOMImplementation::hasFeature($key'2.0')) {
    echo 
"A la fonctionnalité $name\n";
  } else {
    echo 
"N'a pas la fonctionnalité $name\n";
  }
}

?>

Voir aussi


Sommaire



La classe DOMNamedNodeMap

Synopsis de la classe

DOMNamedNodeMap {
/* Propriétés */
/* Méthodes */
DOMNode getNamedItem ( string $name )
DOMNode getNamedItemNS ( string $namespaceURI , string $localName )
DOMNode item ( int $index )
}

DOMNamedNodeMap::getNamedItem

(PHP 5)

DOMNamedNodeMap::getNamedItem Retourne un noeud spécifié par nom nom

Description

DOMNode DOMNamedNodeMap::getNamedItem ( string $name )

Récupère un noeud spécifié par son nodeName.

Liste de paramètres

name

Le nodeName du noeud à récupérer.

Valeurs de retour

Un noeud (de n'importe quel type) avec un nodeName spécifié, ou NULL si aucun noeud n'est trouvé.

Voir aussi



DOMNamedNodeMap::getNamedItemNS

(PHP 5)

DOMNamedNodeMap::getNamedItemNS Retourne un noeud spécifié par son nom local et son espace de noms

Description

DOMNode DOMNamedNodeMap::getNamedItemNS ( string $namespaceURI , string $localName )

Retourne un noeud spécifié par son nom local localName et son espace de noms namespaceURI.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du noeud à récupérer.

localName

Le nom local du noeud à récupérer.

Valeurs de retour

Un noeud, de n'importe quel type ou NULL si aucun noeud n'est trouvé.

Voir aussi

  • DOMNamedNodeMap::getNamedItemNS()



DOMNamedNodeMap::item

(PHP 5)

DOMNamedNodeMap::itemRetourne un noeud selon son index

Description

DOMNode DOMNamedNodeMap::item ( int $index )

Retourne un noeud spécifié par index dans l'objet DOMNamedNodeMap.

Liste de paramètres

index

Index dans cette carte.

Valeurs de retour

Le noeud à la position index dans la carte, ou NULL si ce n'est pas un index valide (plus grand que ou égal au nombre de noeuds dans cette carte).


Sommaire



La classe DOMNode

Synopsis de la classe

DOMNode {
/* Propriétés */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Méthodes */
DOMNode appendChild ( DOMNode $newnode )
DOMNode cloneNode ([ bool $deep ] )
public int getLineNo ( void )
bool hasAttributes ( void )
bool hasChildNodes ( void )
DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool isDefaultNamespace ( string $namespaceURI )
bool isSameNode ( DOMNode $node )
bool isSupported ( string $feature , string $version )
string lookupNamespaceURI ( string $prefix )
string lookupPrefix ( string $namespaceURI )
void normalize ( void )
DOMNode removeChild ( DOMNode $oldnode )
DOMNode replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

nodeName

Retourne le nom, le plus précis, pour le type de noeud courant

nodeValue

La valeur du noeud, suivant son type

nodeType

Récupère le type du noeud. Une des constantes XML_xxx_NODE

parentNode

Le parent de ce noeud

childNodes

Un DOMNodeList qui contient tous les fils de ce noeud. S'il n'y a aucun fils, ce sera un DOMNodeList vide.

firstChild

Le premier fils de ce noeud. S'il n'y a aucun noeud de ce type, retourne NULL.

lastChild

Le dernier fils de ce noeud. S'il n'y a aucun noeud de ce type, retourne NULL.

previousSibling

Le noeud précédant immédiatement ce noeud. S'il n'y a aucun noeud, retourne NULL.

nextSibling

Le noeud suivant immédiatement ce noeud. S'il n'y a aucun noeud, retourne NULL.

attributes

Un DOMNamedNodeMap contenant les attributs de ce noeud (si c'est unDOMElement) ou NULL sinon.

ownerDocument

L'objet DOMDocument associé avec ce noeud.

namespaceURI

L'espace de nom de l'URL pour ce noeud, ou NULL s'il n'est pas spécifié.

prefix

Le préfixe de l'espace de nom de ce noeud, ou NULL s'il n'est pas spécifié.

localName

Retourne la partie locale du nom qualifié du noeud.

baseURI

La base de l'URL absolue du noeud, ou NULL si l'implémentation n'a pas réussi à obtenir l'URL absolue.

textContent

Cet attribut retourne le contenu texte de ce noeud et de ces descendants.

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez utf8_encode() et utf8_decode() pour traiter les textes encodés en ISO-8859-1 ou Iconv pour les autres encodages.


DOMNode::appendChild

(PHP 5)

DOMNode::appendChild Ajoute un nouveau fils à la fin des fils

Description

DOMNode DOMNode::appendChild ( DOMNode $newnode )

Cette fonction ajoute un fils à une liste de fils existante ou crée une nouvelle liste de fils. Le fils peut être créé avec, e.g. DOMDocument::createElement(), DOMDocument::createTextNode(), etc. ou simplement en utilisant tout autre noeud.

Liste de paramètres

newnode

Le fils à ajouter.

Valeurs de retour

Le noeud ajouté.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent le noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le noeud est d'un type qui n'autorise pas d'enfant du type du noeud newnode, ou si le noeud à ajouter est un des noeuds ancêtres ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

Exemples

L'exemple suivant ajoutera un nouveau noeud à un document nouveau.

Exemple #1 Ajout d'un fils

<?php

$doc 
= new DOMDocument;

$node $doc->createElement("para");
$newnode $doc->appendChild($node);

echo 
$doc->saveXML();
?>

Voir aussi



DOMNode::cloneNode

(PHP 5)

DOMNode::cloneNodeClone un noeud

Description

DOMNode DOMNode::cloneNode ([ bool $deep ] )

Crée une copie d'un noeud.

Liste de paramètres

deep

Indique si l'on doit copier tous les noeuds fils. Ce paramètre vaut FALSE par défaut.

Valeurs de retour

Le noeud cloné.



DOMNode::getLineNo

(PHP 5 >= 5.3.0)

DOMNode::getLineNoLit le numéro de ligne d'un noeud

Description

public int DOMNode::getLineNo ( void )

Lit le numéro de ligne d'un noeud.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de ligne de définition du noeud.

Exemples

Exemple #1 Exemple avec DOMNode::getLineNo()

<?php
// XML de l'exemple
$xml = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
    <node />
</root>
XML;

// Création d'un objet DOMDocument
$dom = new DOMDocument;

// Chargement du XML
$dom->loadXML($xml);

// Affichage du numéro de ligne du noeud.
printf('Le noeud <node> est définit à la ligne %d'$dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

L'exemple ci-dessus va afficher :

Le noeud <node> est définit à la ligne 3



DOMNode::hasAttributes

(PHP 5)

DOMNode::hasAttributes Vérifie si le noeud possède un attribut

Description

bool DOMNode::hasAttributes ( void )

Cette méthode vérifie si un noeud possède des attributs. Le noeud testé doit être un XML_ELEMENT_NODE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMNode::hasChildNodes

(PHP 5)

DOMNode::hasChildNodes Vérifie si le noeud possède des enfants

Description

bool DOMNode::hasChildNodes ( void )

Cette fonction vérifie si un noeud possède des enfants.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMNode::insertBefore

(PHP 5)

DOMNode::insertBefore Ajoute un nouveau fils à la fin des enfants

Description

DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )

Cette fonction insère un nouveau noeud juste avec le noeud de référence. Si vous comptez faire des modifications plus tard sur l'enfant ajouté, vous devez utiliser le noeud retourné.

Liste de paramètres

newnode

Le nouveau noeud.

refnode

Le noeud référencé. Si non spécifié, newnode sera ajouté au fils.

Valeurs de retour

Le noeud inséré.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent le noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si ce noeud est d'un type qui n'autorise pas de fils du type du noeud newnode, ou si le noeud à ajouter est un des ancêtres de ce noeud ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

DOM_NOT_FOUND

Lancé si refnode n'est pas un fils de ce noeud.



DOMNode::isDefaultNamespace

(PHP 5)

DOMNode::isDefaultNamespaceVérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non

Description

bool DOMNode::isDefaultNamespace ( string $namespaceURI )

Vérifie si namespaceURI est l'espace de noms par défaut.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms à vérifier.

Valeurs de retour

Retourne TRUE si namespaceURI est l'espace de noms par défaut, FALSE sinon.



DOMNode::isSameNode

(PHP 5)

DOMNode::isSameNode Indique si deux noeuds sont identiques

Description

bool DOMNode::isSameNode ( DOMNode $node )

Cette fonction indique si deux noeuds sont identiques. La comparaison n'est pas basée sur le contenu.

Liste de paramètres

node

Le noeud à comparer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



DOMNode::isSupported

(PHP 5)

DOMNode::isSupported Vérifie si la fonctionnalité est disponible pour la version spécifiée

Description

bool DOMNode::isSupported ( string $feature , string $version )

Vérifie si la fonctionnalité feature demandée est supportée par la version version spécifiée.

Liste de paramètres

feature

La fonctionnalité à tester. Voir l'exemple de DOMImplementation::hasFeature() pour une liste de fonctionnalités.

version

Le numéro de la version de la fonctionnalité feature à tester.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DOMNode::lookupNamespaceURI

(PHP 5)

DOMNode::lookupNamespaceURI Retourne l'URI de l'espace de noms selon le préfixe

Description

string DOMNode::lookupNamespaceURI ( string $prefix )

Retourne l'URI de l'espace de noms selon le préfixe prefix.

Liste de paramètres

prefix

Le préfixe de l'espace de noms.

Valeurs de retour

L'URI de l'espace de noms de ce noeud.

Voir aussi



DOMNode::lookupPrefix

(PHP 5)

DOMNode::lookupPrefix Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms

Description

string DOMNode::lookupPrefix ( string $namespaceURI )

Retourne le préfixe de l'espace du noeud selon l'URI de l'espace de noms.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

Valeurs de retour

Le préfixe de l'espace de noms.

Voir aussi



DOMNode::normalize

(PHP 5)

DOMNode::normalizeNormalise le noeud

Description

void DOMNode::normalize ( void )

Normalise le noeud.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



DOMNode::removeChild

(PHP 5)

DOMNode::removeChild Supprime un fils de la liste des enfants

Description

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

Cette fonction supprime un fils de la liste des enfants.

Liste de paramètres

oldnode

Le fils à effacer.

Valeurs de retour

Si le fils ne peut être effacé, la fonction retourne l'ancien fils.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NOT_FOUND

Lancé si oldnode n'est pas un fils de ce noeud.

Exemples

L'exemple suivant va effacer l'élément chapter de notre document XML.

Exemple #1 Effacement d'un fils

<?php

$doc 
= new DOMDocument;
$doc->load('book.xml');

$book $doc->documentElement;

// Nous récupérons le chapitre et l'effaçons du livre
$chapter $book->getElementsByTagName('chapter')->item(0);
$oldchapter $book->removeChild($chapter);

echo 
$doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>
 
</book>

Exemple #2 Préserver l'URI de l'espace de noms du noeud parent

<?php

$doc 
= new DOMDocument;
$doc->load('book.xml');

$book $doc->documentElement;

// Nous récupérons le chapitre et le supprimons du livre
$chapter $book->getElementsByTagName('chapter')->item(0);

// copie de l'URI de l'espace de noms
$nsuri $book->namespaceURI;

// Suppression du noeud enfant
$book->removeChild($chapter);

// Collage de l'URI de l'espace de noms dans le noeud parent
$book->namespaceURI $nsuri;
?>

Notes

Note:

Après l'appel de cette méthode, l'attribut DOMNode::$namespaceURI du noeud parent sera remis à NULL. L'exemple ci-dessus montre comment contourner ce phénomène.

Voir aussi



DOMNode::replaceChild

(PHP 5)

DOMNode::replaceChild Remplace un fils

Description

DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

Cette fonction remplace le fils oldnode par le nouveau noeud spécifié. SI le nouveau noeud est déjà un fils, il ne sera pas ajouté une seconde fois. Si le remplacement réussi, l'ancien noeud sera retourné.

Liste de paramètres

newnode

Le nouveau noeud. Il doit être membre du document cible, i.e. créé par une des méthodes de DOMDocument->createXXX() ou importé dans le document par DOMDocument::importNode.

oldnode

L'ancien noeud.

Valeurs de retour

L'ancien noeud ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent du noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le noeud est d'un type qui n'autorise pas les fils du type du noeud newnode, ou si le noeud à insérer est un des ancêtres de ce noeud ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Émise si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

DOM_NOT_FOUND

Lancé si oldnode n'est pas un fils de ce noeud.

Voir aussi


Sommaire



La classe DOMNodeList

Synopsis de la classe

DOMNodeList {
/* Propriétés */
readonly public int $length ;
/* Méthodes */
DOMNode DOMNodelist::item ( int $index )
}

Propriétés

length

Le nombre de noeuds dans la liste. L'intervalle valide des indices des noeuds fils est 0 à length - 1, inclus.


DOMNodelist::item

(PHP 5)

DOMNodelist::item Retourne un noeud spécifié par son index

Description

DOMNode DOMNodelist::item ( int $index )

Retourne un noeud spécifié par son index dans l'objet DOMNodeList.

Astuce

Si vous avez besoin de connaître le nombre de noeuds dans la collection, utilisez la propriété length de l'objet DOMNodeList.

Liste de paramètres

index

L'index du noeud dans la collection.

Valeurs de retour

Le noeud à la position index dans la DOMNodeList, ou NULL si ce n'est pas un index valide.

Exemples

Exemple #1 Parcours de toutes les entrées de la table

<?php

$doc 
= new DOMDocument;
$doc->load('book.xml');

$items $doc->getElementsByTagName('entry');

for (
$i 0$i $items->length$i++) {
    echo 
$items->item($i)->nodeValue "\n";
}

?>

Alternativement, vous pouvez utiliser la structure foreach, qui est une manière plus convenable :

<?php

foreach ($items as $item) {
    echo 
$item->nodeValue "\n";
}

?>

L'exemple ci-dessus va afficher :

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209


Sommaire



La classe DOMNode

Synopsis de la classe

DOMNotation étend DOMNode {
/* Propriétés */
readonly public string $publicId ;
readonly public string $systemId ;
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

publicId

systemId



La classe DOMProcessingInstruction

Synopsis de la classe

DOMProcessingInstruction étend DOMNode {
/* Propriétés */
readonly public string $target ;
public string $data ;
/* Méthodes */
DOMProcessingInstruction::__construct ( string $name [, string $value ] )
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

target

data


DOMProcessingInstruction::__construct

(PHP 5)

DOMProcessingInstruction::__construct Crée un nouvel objet DOMProcessingInstruction

Description

DOMProcessingInstruction::__construct ( string $name [, string $value ] )

Crée un nouvel objet DOMProcessingInstruction. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant qu'il est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createProcessingInstruction.

Liste de paramètres

name

Le nom du tag de l'instruction.

value

La valeur de l'instruction.

Exemples

Exemple #1 Création d'un nouveau DOMProcessingInstruction

<?php

$dom 
= new DOMDocument('1.0''UTF-8');
$html $dom->appendChild(new DOMElement('html'));
$body $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php''echo "Bonjour le monde !"; ');
$body->appendChild($pinode);
echo 
$dom->saveXML(); 

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Bonjour le monde !"; ?></body></html>

Voir aussi


Sommaire



La classe DOMText

Introduction

La classe DOMText hérite de DOMCharacterData et représente le contenu textuel de DOMElement ou DOMAttr.

Synopsis de la classe

DOMText étend DOMCharacterData {
/* Propriétés */
readonly public string $wholeText ;
/* Méthodes */
DOMText::__construct ([ string $value ] )
DOMText DOMText::splitText ( int $offset )
/* Méthodes héritées */
void DOMCharacterData::appendData ( string $data )
void DOMCharacterData::deleteData ( int $offset , int $count )
void DOMCharacterData::insertData ( int $offset , string $data )
void DOMCharacterData::replaceData ( int $offset , int $count , string $data )
string DOMCharacterData::substringData ( int $offset , int $count )
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

wholeText

Contient tout le texte des noeuds de texte adjacents (c'est à dire, des noeuds qui ne sont pas séparés par des balises Element, Comment ou Processing Instruction).


DOMText::__construct

(PHP 5)

DOMText::__construct Crée un nouvel objet DOMText

Description

DOMText::__construct ([ string $value ] )

Crée un nouvel objet DOMText.

Liste de paramètres

value

La valeur du noeud texte. Si aucune n'est fournie, un noeud texte vide est créé.

Exemples

Exemple #1 Création d'un nouveau DOMText

<?php

$dom 
= new DOMDocument('1.0''iso-8859-1');
$element $dom->appendChild(new DOMElement('root'));
$text $element->appendChild(new DOMText('root value'));
echo 
$dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>valeur racine</root> */

?>

Voir aussi



DOMText::isWhitespaceInElementContent

(PHP 5)

DOMText::isWhitespaceInElementContent Indique si ce noeud de texte contient des espaces blancs

Description

bool DOMText::isWhitespaceInElementContent ( void )

Indique si un noeud de texte contient des espaces. Cette détermination est faite durant le chargement du document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



DOMText::splitText

(PHP 5)

DOMText::splitText Coupe le noeud en deux noeuds à l'endroit spécifié

Description

DOMText DOMText::splitText ( int $offset )

Coupe le noeud en deux noeuds à l'endroit spécifié offset, en gardant les deux dans l'arbre comme parents.

Après la césure, ce noeud contiendra tout le texte jusqu'à offset. Un nouveau noeud avec le reste du texte sera retourné. Si le noeud d'origine possède un parent, le nouveau noeud est inséré à la suite du noeud courant. Lorsque offset est égal à la taille du noeud, le nouveau noeud est vide.

Liste de paramètres

offset

La position de la césure, commençant à 0.

Valeurs de retour

Le nouveau noeud du même type, qui contient tout le contenu à partir de la position offset.


Sommaire



La classe DOMXPath

Introduction

Support de XPath 1.0.

Synopsis de la classe

DOMXPath {
/* Propriétés */
/* Méthodes */
mixed DOMXPath::evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )
DOMNodeList DOMXPath::query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )
bool DOMXPath::registerNamespace ( string $prefix , string $namespaceURI )
public void DOMXPath::registerPhpFunctions ([ mixed $restrict ] )
}

Propriétés

document


DOMXPath::__construct

(PHP 5)

DOMXPath::__construct Crée un nouvel objet DOMXPath

Description

DOMXPath::__construct ( DOMDocument $doc )

Crée un nouvel objet DOMXPath.

Liste de paramètres

doc

L'objet DOMDocument associé à l'objet DOMXPath.



DOMXPath::evaluate

(PHP 5 >= 5.1.0)

DOMXPath::evaluate Évalue une expression XPath donnée et retourne un résultat écrit si possible

Description

mixed DOMXPath::evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )

Exécute l'expression XPath expression et retourne un résultat écrit si possible.

Liste de paramètres

expression

L'expression XPath à exécuter.

contextnode

Le paramètre optionnel contextnode peut être spécifié pour effectuer des requêtes XPath relatives. Par défaut, les requêtes sont relatives à l'élément root.

registerNodeNS

Le paramètre optionnel registerNodeNS peut être renseigné pour désactiver l'enregistrement automatique du noeud de contexte.

Valeurs de retour

Retourne un résultat écrit si possible ou un DOMNodeList contenant tous les noeuds correspondant à 'expression XPath expression.

Si le paramètre expression est mal formé ou bien si le paramètre contextnode est invalide, la méthode DOMXPath::evaluate() retournera FALSE.

Historique

Version Description
5.3.3 Ajout du paramètre registerNodeNS.

Exemples

Exemple #1 Récupération du nombre total de livres anglais

<?php

$doc 
= new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody $doc->getElementsByTagName('tbody')->item(0);

// notre requête est relative au noeud tbody
$query 'count(row/entry[. = "en"])';

$entries $xpath->evaluate($query$tbody);
echo 
"Il y a $entries livres anglais\n";

?>

L'exemple ci-dessus va afficher :

Il y a 2 livres anglais

Voir aussi



DOMXPath::query

(PHP 5)

DOMXPath::query Évalue l'expression XPath donnée

Description

DOMNodeList DOMXPath::query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )

Évalue l'expression expression XPath donnée.

Liste de paramètres

expression

L'expression XPath à exécuter.

contextnode

Le paramètre optionnel contextnode peut être spécifié pour effectuer des requêtes XPath relative. Par défaut, les requêtes sont relatives à l'élément racine.

registerNodeNS

Le paramètre optionnel registerNodeNS peut être renseigné pour désactiver l'enregistrement automatique du noeud de contexte.

Valeurs de retour

Retourne un DOMNodeList contenant tous les noeuds correspondant à l'expression expression XPath donnée. Toutes les expressions qui ne retournent pas de noeud retourneront un DOMNodeList vide.

Si le paramètre expression est malformé ou le paramètre contextnode est invalide, DOMXPath::query() retournera FALSE.

Historique

Version Description
5.3.3 Ajout du paramètre registerNodeNS.

Exemples

Exemple #1 Récupération de tous les livres anglais

<?php

$doc 
= new DOMDocument;

// Nous ne voulons pas nous soucier des espaces blancs
$doc->preserveWhiteSpace false;

$doc->Load('book.xml');

$xpath = new DOMXPath($doc);

// Nous commençons à l'élément racine
$query '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries $xpath->query($query);

foreach (
$entries as $entry) {
    echo 
"Livre trouvé {$entry->previousSibling->previousSibling->nodeValue}," .
         
" par {$entry->previousSibling->nodeValue}\n";
}
?>

L'exemple ci-dessus va afficher :

Livre trouvé : The Grapes of Wrath, par John Steinbeck
Livre trouvé : The Pearl, par John Steinbeck

Nous pouvons également utiliser le paramètre contextnode pour raccourcir notre expression :

<?php

$doc 
= new DOMDocument;
$doc->preserveWhiteSpace false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody $doc->getElementsByTagName('tbody')->item(0);

// notre requête est relative au noeud tbody
$query 'row/entry[. = "en"]';

$entries $xpath->query($query$tbody);

foreach (
$entries as $entry) {
    echo 
"Livre trouvé : {$entry->previousSibling->previousSibling->nodeValue}," .
         
" par {$entry->previousSibling->nodeValue}\n";
}
?>

Voir aussi

  • DOMXPath::query()



DOMXPath::registerNamespace

(PHP 5)

DOMXPath::registerNamespace Enregistre l'espace de noms avec l'objet DOMXPath

Description

bool DOMXPath::registerNamespace ( string $prefix , string $namespaceURI )

Enregistre l'espace de noms namespaceURI et le prefix avec l'objet DOMXPath.

Liste de paramètres

prefix

Le préfixe.

namespaceURI

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0)

DOMXPath::registerPhpFunctionsEnregistre une fonction PHP comme fonction XPath

Description

public void DOMXPath::registerPhpFunctions ([ mixed $restrict ] )

Cette méthode active la possibilité d'utiliser des fonctions PHP dans des expressions XPath.

Liste de paramètres

restrict

Utilisez ce paramètre uniquement pour autoriser certaines fonctions à être appelées depuis XPath.

Ce paramètre peut être soit une chaîne de caractères (un nom de fonction) ou un tableau de noms de fonctions.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Les exemples suivants utilisent le fichier book.xml qui contient les données suivantes :

Exemple #1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Exemple #2 Exemple avec DOMXPath::registerPHPFunctions() et php:functionString

<?php
$doc 
= new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Enregistre l'espace de noms php (nécessaire)
$xpath->registerNamespace("php""http://php.net/xpath");

// Enregistre les fonctions PHP (Aucune restriction)
$xpath->registerPHPFunctions();

// Appèle la fonction substr sur le titre du livre
$nodes $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo 
"{$nodes->length} livres trouvés dont le titre commence par 'PHP':\n";
foreach (
$nodes as $node) {
    
$title  $node->getElementsByTagName("title")->item(0)->nodeValue;
    
$author $node->getElementsByTagName("author")->item(0)->nodeValue;
    echo 
"$title par $author\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2 livres trouvés dont le titre commence par 'PHP':
PHP Basics par Jim Smith
PHP Secrets par Jenny Smythe

Exemple #3 Exemple avec DOMXPath::registerPHPFunctions() et php:function

<?php
$doc 
= new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Enregistre l'espace de noms php (nécessaire)
$xpath->registerNamespace("php""http://php.net/xpath");

// Enregistre des fonctions PHP (has_multiple uniquement)
$xpath->registerPHPFunctions("has_multiple");
 
function 
has_multiple($nodes) {
    
// Retourne true s'il y a plus d'un auteur
    
return count($nodes) > 1;
}
// Filtre les livres dont les auteurs sont multiples
$books $xpath->query('//book[php:function("has_multiple", author)]');

echo 
"Livres avec plusieurs auteurs :\n";
foreach (
$books as $book) {
    echo 
$book->getElementsByTagName("title")->item(0)->nodeValue "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Livres avec plusieurs auteurs :
PHP Basics

Voir aussi


Sommaire



DOM Fonctions


dom_import_simplexml

(PHP 5)

dom_import_simplexmlTransforme un objet SimpleXMLElement en un objet DOMElement

Description

DOMElement dom_import_simplexml ( SimpleXMLElement $node )

dom_import_simplexml() transforme l'objet SimpleXML node en un objet DOMElement. Le nouvel objet peut être utilisé en tant que noeud natif DOMElement.

Liste de paramètres

node

Le noeud SimpleXMLElement.

Valeurs de retour

Le noeud DOMElement à ajouter ou FALSE si une erreur survient.

Exemples

Exemple #1 Importation d'un objet SimpleXML dans DOM avec dom_import_simplexml()

<?php

$sxe 
simplexml_load_string('<books><book><title>blah</title></book></books>');

if (
$sxe === false) {
    echo 
'Erreur lors de l\'analyse du document';
    exit;
}

$dom_sxe dom_import_simplexml($sxe);
if (!
$dom_sxe) {
    echo 
'Erreur lors de la convertion du XML';
    exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe $dom->importNode($dom_sxetrue);
$dom_sxe $dom->appendChild($dom_sxe);

echo 
$dom->saveXML();

?>

Voir aussi


Sommaire




DOM XML (PHP 4)


Introduction

L'extension DOM XML a été reprise en main en PHP 4.3.0 pour être mieux compatible avec les standards DOM. L'extension contient encore de vieilles fonctions, mais elles ne sont plus utilisées. En particulier, les fonctions qui ne sont pas orientées objets ne doivent pas être utilisées.

Cette extension vous permet de générer des documents XML avec les API DOM. Elle fournit aussi une fonction domxml_xmltree() qui transforme un fichier XML en tableau PHP. Actuellement, ce tableau est accessible uniquement en lecture. Cela ne signifie pas que vous ne pouvez pas le modifier, mais cela n'aurait aucun sens car DomDocument_dump_mem() ne pourra pas prendre ces modifications en considération. Par conséquent, si vous voulez lire un fichier XML et écrire sa version modifiée, utilisez les fonctions DomDocument_create_text_node(), set_attribute(), etc. et finalement DomDocument_dump_mem().

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.

Note: Cette extension n'est plus considérée comme expérimental. Néanmoins, elle ne sera jamais distribuée avec PHP 5 mais uniquement avec PHP 4. Si vous avez besoin du support DOM XML avec PHP 5, vous pouvez utiliser l'extension DOM. domxml n'est pas compatible avec l'extension DOM.



Installation/Configuration

Sommaire


Pré-requis

Cette extension utilise la bibliothèque » GNOME XML. Téléchargez là, puis installez là. Vous aurez besoin de la version libxml-2.4.14 ou plus récent. Pour utiliser les fonctionnalités DOM XSLT vous pouvez utiliser la bibliothèque » libxslt et les progrès des EXSLT (» http://www.exslt.org/). Téléchargez et installez ces bibliothèques si vous envisagez d'exploiter ces fonctionnalités. Vous aurez besoin d'au moins libxslt-1.0.18.



Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/domxml.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Cette extension est uniquement disponible si PHP a été configuré lors de la compilation avec l'option --with-dom=[DIR] . Ajoutez --with-dom-xslt[=DIR] pour inclure le support DOM XSLT. DIR est le dossier d'installation de libxslt. Ajoutez --with-dom-exslt[=DIR] pour inclure le support DOM EXSLT. DIR est le dossier d'installation de libxsl.

Les utilisateurs de Windows doivent activer la bibliothèque php_domxml.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows. En outre, il y a une DLL additionnelle qui doit être disponible à votre PATH système pour faire fonctionner cette extension. En PHP 4, elle se trouve dans le dossier dlls/. Son nom : Pour PHP <= 4.2.0, c'est libxml2.dll. Pour PHP >= 4.3.0, c'est iconv.dll. Et depuis PHP 5.0.0, iconv est compilé dans les binaires PHP pour Windows par défaut, donc, aucune bibliothèque supplémentaire n'est nécessaire.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes XML
Constant Value Description
XML_ELEMENT_NODE (entier) 1 Le noeud est un élément
XML_ATTRIBUTE_NODE (entier) 2 Le noeud est un attribut
XML_TEXT_NODE (entier) 3 Le noeud est un texte
XML_CDATA_SECTION_NODE (entier) 4  
XML_ENTITY_REF_NODE (entier) 5  
XML_ENTITY_NODE (entier) 6 Le noeud est une entité, telle que &nbsp;
XML_PI_NODE (entier) 7 Le noeud est une instruction de script
XML_COMMENT_NODE (entier) 8 Le noeud est un commentaire
XML_DOCUMENT_NODE (entier) 9 Le noeud est un document
XML_DOCUMENT_TYPE_NODE (entier) 10  
XML_DOCUMENT_FRAG_NODE (entier) 11  
XML_NOTATION_NODE (entier) 12  
XML_GLOBAL_NAMESPACE (entier) 1  
XML_LOCAL_NAMESPACE (entier) 2  
XML_HTML_DOCUMENT_NODE (entier)    
XML_DTD_NODE (entier)    
XML_ELEMENT_DECL_NODE (entier)    
XML_ATTRIBUTE_DECL_NODE (entier)    
XML_ENTITY_DECL_NODE (entier)    
XML_NAMESPACE_DECL_NODE (entier)    
XML_ATTRIBUTE_CDATA (entier)    
XML_ATTRIBUTE_ID (entier)    
XML_ATTRIBUTE_IDREF (entier)    
XML_ATTRIBUTE_IDREFS (entier)    
XML_ATTRIBUTE_ENTITY (entier)    
XML_ATTRIBUTE_NMTOKEN (entier)    
XML_ATTRIBUTE_NMTOKENS (entier)    
XML_ATTRIBUTE_ENUMERATION (entier)    
XML_ATTRIBUTE_NOTATION (entier)    
XPATH_UNDEFINED (entier)    
XPATH_NODESET (entier)    
XPATH_BOOLEAN (entier)    
XPATH_NUMBER (entier)    
XPATH_STRING (entier)    
XPATH_POINT (entier)    
XPATH_RANGE (entier)    
XPATH_LOCATIONSET (entier)    
XPATH_USERS (entier)    
XPATH_NUMBER (entier)    


Fonctions DOM XML (PHP 4)

Fonctions obsolètes

Il y a un groupe de fonctions qui ne sont pas compatibles avec les standards DOM et qui ne devraient plus être utilisées. Ces fonctions sont listées dans la table ci-dessous. La fonction domNode_append_child() a vu son comportement changer. Désormais, elle ajoute un fils et non pas un frère. Si cela casse votre application, utilisez plutôt la fonction domNode_append_sibling(), qui ne fait pas partie des standards.

Fonctions abandonnées et leur remplacement
Ancienne fonction Nouvelle fonction
xmldoc domxml_open_mem()
xmldocfile domxml_open_file()
domxml_new_xmldoc domxml_new_doc()
domxml_dump_mem DomDocument_dump_mem()
domxml_dump_mem_file DomDocument_dump_file()
DomDocument_dump_mem_file DomDocument_dump_file()
DomDocument_add_root DomDocument_create_element() suivie de DomNode_append_child()
DomDocument_dtd DomDocument_doctype()
DomDocument_root DomDocument_document_element()
DomDocument_children DomNode_child_nodes()
DomDocument_imported_node Pas de remplacement.
DomNode_add_child Créez un nouveau noeud avec DomDocument_create_element() puis ajoutez-le avec DomNode_append_child().
DomNode_children DomNode_child_nodes()
DomNode_parent DomNode_parent_node()
DomNode_new_child Créez un nouveau noeud avec DomDocument_create_element() puis ajoutez-le avec DomNode_append_child().
DomNode_set_content Créez un nouveau noeud avec DomDocument_create_text_node() puis ajoutez-le avec DomNode_append_child().
DomNode_get_content Le contenu est juste un noeud de texte, et est accessible via DomNode_child_nodes().
DomNode_set_content Le contenu est juste un noeud de texte, et peut être ajouté avec DomNode_append_child().

Classes

L'API de ce module suit le standard DOM niveau 2 aussi fidèlement que possible. Par conséquent, l'API est totalement orientée objet. C'est une bonne idée d'avoir les standards DOM disponibles sous la main, lorsque vous utilisez ce module. Bien que cette API soit orientée objet, il existe de nombreuses fonctions qui peuvent être appelées d'une manière non objet, en passant l'objet à utiliser comme premier argument de la fonction. Ces fonctions sont essentiellement conservées pour assurer la compatibilité avec les extensions plus anciennes, et ne doivent pas être utilisées.

Cette API diffère de l'API officielle DOM en deux points. Le premier est que tous les attributs des classes sont implémentées comme des fonctions du même nom. Le second est que les noms des fonctions suivent les standards PHP. Cela signifie que la fonction DOM lastChild() s'écrit en PHP last_child().

Ce module définit un grand nombre de classe, qui sont listés en incluant leur méthodes dans les tables suivantes. Les classes ayant un équivalent DOM sont préfixées par DOM.

Liste de classes
Nom de la classe Classe parente
DomAttribute DomNode
DomCData DomNode
DomComment DomDocument : DomNode
DomDocument DomNode
DomDocumentType DomNode
DomElement DomNode
DomEntity DomNode
DomEntityReference DomNode
DomProcessingInstruction DomNode
DomText DomCData : DomNode
Parser Actuellement, toujours appelée DomParser
XPathContext  

Classe DomDocument (DomDocument : DomNode)
Nom de la méthode Nom de la fonction Remarques
doctype DomDocument_doctype()  
document_element DomDocument_document_element()  
create_element DomDocument_create_element()  
create_text_node DomDocument_create_text_node()  
create_comment DomDocument_create_comment()  
create_cdata_section DomDocument_create_cdata_section()  
create_processing_instruction DomDocument_create_processing_instruction()  
create_attribute DomDocument_create_attribute()  
create_entity_reference DomDocument_create_entity_reference()  
get_elements_by_tagname DomDocument_get_elements_by_tagname()  
get_element_by_id DomDocument_get_element_by_id()  
dump_mem DomDocument_dump_mem() Non standard DOM
dump_file DomDocument_dump_file() Non standard DOM
html_dump_mem DomDocument_html_dump_mem() Non standard DOM
xpath_init xpath_init Non standard DOM
xpath_new_context xpath_new_context Non standard DOM
xptr_new_context xptr_new_context Non standard DOM

Classe DomElement (DomElement : DomNode)
Nom de la méthode Nom de la fonction Remarques
tagname DomElement_tagname()  
get_attribute DomElement_get_attribute()  
set_attribute DomElement_set_attribute()  
remove_attribute DomElement_remove_attribute()  
get_attribute_node DomElement_get_attribute_node()  
set_attribute_node DomElement_set_attribute_node()  
get_elements_by_tagname DomElement_get_elements_by_tagname()  
has_attribute DomElement_has_attribute()  

Classe DomNode
Nom de la méthode Remarques
DomNode_node_name()  
DomNode_node_value()  
DomNode_node_type()  
DomNode_last_child()  
DomNode_first_child()  
DomNode_child_nodes()  
DomNode_previous_sibling()  
DomNode_next_sibling()  
DomNode_parent_node()  
DomNode_owner_document()  
DomNode_insert_before()  
DomNode_append_child()  
DomNode_append_sibling() Non standard DOM. Cette fonction émule le comportement précédent de DomNode_append_child().
DomNode_remove_child()  
DomNode_has_child_nodes()  
DomNode_has_attributes()  
DomNode_clone_node()  
DomNode_attributes()  
DomNode_unlink_node() Non standard DOM
DomNode_replace_node() Non standard DOM
DomNode_set_content() Non standard DOM, obsolète
DomNode_get_content() Non standard DOM, obsolète
DomNode_dump_node() Non standard DOM
DomNode_is_blank_node() Non standard DOM

Classe DomAttribute (DomAttribute : DomNode)
Nom de la méthode   Remarques
name DomAttribute_name()  
value DomAttribute_value()  
specified DomAttribute_specified()  

Classe DomProcessingInstruction (DomProcessingInstruction : DomNode)
Nom de la méthode Nom de la fonction Remarques
target DomProcessingInstruction_target()  
data DomProcessingInstruction_data()  

Classe Parser
Nom de la méthode Nom de la fonction Remarques
add_chunk Parser_add_chunk()  
end Parser_end()  

Classe XPathContext
Nom de la méthode Nom de la fonction Remarques
eval XPathContext_eval()  
eval_expression XPathContext_eval_expression()  
register_ns XPathContext_register_ns()  

Classe DomDocumentType (DomDocumentType : DomNode)
Nom de la méthode Nom de la fonction Remarques
name DomDocumentType_name()  
entities DomDocumentType_entities()  
notations DomDocumentType_notations()  
public_id DomDocumentType_public_id()  
system_id DomDocumentType_system_id()  
internal_subset DomDocumentType_internal_subset()  

Les classes DomDtd sont dérivées de DomNode. DomComment est dérivée de DomCData.

Exemples

De nombreux exemples de cette partie requièrent une chaîne XML. Au lieu de répéter la chaîne dans tous les exemples, elle sera mise dans un fichier, qui sera inclus dans tous les exemples. Ce fichier inclus sera utilisé dans les exemples suivants dans cette section. Alternativement, vous pouvez créer un document XML et le lire avec la fonction DomDocument_open_file().

Exemple #1 Fichier d'inclusion example.inc pour la chaîne XML d'exemple

<?php
$xmlstr 
"<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &sp;
  <!-- comment -->
  <informaltable ID='findme' language='&sp;'>
   <tgroup cols='3'>
    <tbody>
     <row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
</chapter>"
;
?>


DomAttribute->name

(PHP 4 >= 4.1.0)

DomAttribute->name Retourne le nom de l'attribut

Description

string DomAttribute::name ( void )

Récupère le nom de l'attribut.

Valeurs de retour

Retourne le nom de l'attribut.

Migration vers PHP 5

Utilisez la propriété name de DOMAttr.

Voir aussi



DomAttribute->set_value

(PHP 4 >= 4.1.0)

DomAttribute->set_value Spécifie une valeur à un attribut

Description

bool DomAttribute::set_value ( string $content )

Cette fonction spécifie une valeur à un attribut.

Liste de paramètres

content

La nouvelle valeur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Migration vers PHP 5

Utilisez la propriété value de DOMAttr.

Voir aussi



DomAttribute->specified

(PHP 4 >= 4.1.0)

DomAttribute->specified Vérifie si un attribut est spécifié

Description

bool DomAttribute::specified ( void )

Vérifie si une valeur d'attribut a été explicitement donnée dans le document original.

Note:

Cette méthode n'est pas encore implémentée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



DomAttribute->value

(PHP 4 >= 4.1.0)

DomAttribute->value Retourne la valeur d'un attribut

Description

string DomAttribute::value ( void )

DomAttribute->value() retourne la valeur de l'attribut.

Exemples

Exemple #1 Récupération de tous les attributs d'un noeud

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
     echo 
"Erreur lors de l'analyse du document\n";
     exit;
}

$root $dom->document_element();
$attrs $root->attributes();

echo 
'Attributs de ' $root->node_name() . "\n";
foreach (
$attrs as $attribute) {
     echo 
' - ' $attribute->name ' : ' $attribute->value "\n";
}

?>

L'exemple ci-dessus va afficher :

Attributs de chapter
 - language : en

Valeurs de retour

Retourne la valeur de l'attribut.

Migration vers PHP 5

Utilisez la propriété value de DOMAttr.



DomDocument->add_root

(PHP 4 >= 4.1.0)

DomDocument->add_rootAjoute un noeud

Description

domelement DomDocument->add_root ( string $name )

DomDocument->add_root() ajoute un noeud racine au document dom, et retourne le nouveau noeud. Le nom de l'élément créé est fourni par le paramètre name.

Exemple #1 Création d'un en-tête de document HTML

<?php
$doc 
domxml_new_doc("1.0");
$root $doc->add_root("html");
$head $root->new_child("head""");
$head->new_child("title""Voilà le titre");
echo 
htmlentities($doc->dump_mem());
?>



DomDocument->create_attribute

(PHP 4 >= 4.1.0)

DomDocument->create_attribute Crée un nouvel attribut

Description

domattribute DomDocument->create_attribute ( string $name , string $value )

DomDocument->create_attribute() retourne une nouvelle instance de la classe DomAttribute. Le nom de l'attribut sera name, et sa valeur sera value. Ce noeud ne sera pas utilisé dans le document jusqu'à ce qu'il soit inséré dans le document avec la fonction domnode_append_child().

DomDocument->create_attribute() retourne FALSE si une erreur survient.

Voir aussi domnode_append_child(), domdocument_create_element(), domdocument_create_text(), domdocument_create_cdata_section(), domdocument_create_processing_instruction(), domdocument_create_entity_reference() et domnode_insert_before().



DomDocument->create_cdata_section

(PHP 4 >= 4.1.0)

DomDocument->create_cdata_section Crée un nouveau noeud CDATA

Description

domcdata DomDocument->create_cdata_section ( string $content )

DomDocument->create_cdata_section() retourne une nouvelle instance de la classe DomCData. Le contenu du CDATA sera content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_cdata_section() retourne FALSE si une erreur survient.

Voir aussi domnode_append_child(), domdocument_create_element(), domdocument_create_text(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference() et domnode_insert_before().



DomDocument->create_comment

(PHP 4 >= 4.1.0)

DomDocument->create_comment Crée un nouveau noeud de commentaire

Description

domcomment DomDocument->create_comment ( string $content )

DomDocument->create_comment() retourne une nouvelle instance de la classe DomComment. Le contenu du commentaire sera content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_comment() retourne FALSE si une erreur survient.

Voir aussi domnode_append_child(), domdocument_create_element(), domdocument_create_text(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference() et domnode_insert_before().



DomDocument->create_element_ns

(PHP 4 >= 4.1.0)

DomDocument->create_element_ns Crée un nouvel élément avec un espace de noms associé

Description

domelement DomDocument->create_element_ns ( string $uri , string $name [, string $prefix ] )

DomDocument->create_element_ns() retourne une nouvelle instance de la classe DomElement. Le nom de balise de l'élément sera content. L'URI de l'espace de noms est la valeur passé dans le paramètre uri. S'il y a déjà un espace de nom déclaré avec la même URI dans le document, le préfixe de ce dernier sera réservé, et sinon, il faudra en fournir un avec le paramètre prefix ou bien en générer un. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_element_ns() retourne FALSE si une erreur survient.

Voir aussi domdocument_create_element_ns(), domnode_add_namespace(), domnode_set_namespace(), domnode_append_child(), domdocument_create_text(), domdocument_create_comment(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference() et domnode_insert_before().



DomDocument->create_element

(PHP 4 >= 4.1.0)

DomDocument->create_element Crée un nouveau noeud élément

Description

domelement DomDocument->create_element ( string $name )

DomDocument->create_element() retourne une nouvelle instance de la classe DomElement. Le nom de balise l'élément sera name. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_processing_instruction() retourne FALSE si une erreur survient.

Voir aussi domdocument_create_element_ns(), domnode_append_child(), domdocument_create_text(), domdocument_create_comment(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference() et domnode_insert_before().



DomDocument->create_entity_reference

(PHP 4 >= 4.1.0)

DomDocument->create_entity_reference Crée une entité référence

Description

domentityreference DomDocument->create_entity_reference ( string $content )

DomDocument->create_entity_reference() retourne une nouvelle instance de la classe DomEntityReference. Le contenu de la référence d'entité est passé dans le paramètre content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_entity_reference() retourne FALSE si une erreur survient.

Voir aussi domnode_append_child(), domdocument_create_element(), domdocument_create_text(), domdocument_create_cdata_section(), domdocument_create_processing_instruction(), domdocument_create_attribute() et domnode_insert_before().



DomDocument->create_processing_instruction

(PHP 4 >= 4.1.0)

DomDocument->create_processing_instruction Crée un nouveau noeud de traitement d'instructions (PI)

Description

domprocessinginstruction DomDocument->create_processing_instruction ( string $content )

DomDocument->create_processing_instruction() retourne une nouvelle instance de la classe DomCData. Le contenu de l'unité de traitement sera content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_processing_instruction() retourne FALSE si une erreur survient.

Voir aussi domnode_append_child(), domdocument_create_element(), domdocument_create_text(), domdocument_create_cdata_section(), domdocument_create_attribute(), domdocument_create_entity_reference() et domnode_insert_before().



DomDocument->create_text_node

(PHP 4 >= 4.1.0)

DomDocument->create_text_node Crée un nouveau noeud de texte

Description

domtext DomDocument->create_text_node ( string $content )

DomDocument->create_text_node() retourne une nouvelle instance de la classe DomText. Le contenu de ce noeud est content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

La fonction retourne FALSE en cas d'erreur.

Voir aussi domnode_append_child(), domdocument_create_element(), domdocument_create_comment(), domdocument_create_text(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference() et domnode_insert_before().



DomDocument->doctype

(PHP 4 >= 4.1.0)

DomDocument->doctype Retourne le type de document

Description

domdocumenttype DomDocument->doctype ( void )

DomDocument->doctype() retourne un objet de la classe DomDocumenttype. Dans les versions de PHP antérieures à la version 4.3, c'était la classe Dtd, mais les standards DOM ne disposent pas d'une telle classe.

Voir aussi les méthodes de la classe DomDocumentType.



DomDocument->document_element

(PHP 4 >= 4.1.0)

DomDocument->document_element Retourne le noeud racine d'un document DOM XML

Description

domelement DomDocument->document_element ( void )

DomDocument->document_element() retourne le noeud racine d'un document DOM XML.

L'exemple suivant retourne simplement l'élément nommé CHAPTER, puis l'affiche. L'autre noeud (le commentaire), n'est pas retourné.

Exemple #1 Récupération du noeud racine avec DomDocument->document_element()

<?php
include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur lors de l'analyse du document\n";
  exit;
}

$root $dom->document_element();
print_r($root);
?>

L'exemple ci-dessus va afficher :

domelement Object
(
    [type] => 1
    [tagname] => chapter
    [0] => 6
    [1] => 137960648
)



DomDocument->dump_file

(PHP 4 >= 4.1.0)

DomDocument->dump_file Convertit un document DOM XML en fichier

Description

string DomDocument->dump_file ( string $filename [, bool $compressionmode [, bool $format ]] )

DomDocument->dump_file() crée un document XML à partir de sa représentation interne DOM. DomDocument->dump_mem() est généralement appelée après la construction d'un document à partir de zéro, comme dans l'exemple ci-dessous. Le paramètre format spécifie si l'affichage doit être formaté proprement ou pas. filename est le nom du fichier dans lequel le document XML sera sauvegardé, et compressionmode indique si le fichier doit être compressé ou pas.

Exemple #1 Création d'un en-tête de document HTML avec DomDocument->dump_file()

<?php
$doc 
domxml_new_doc("1.0");
$root $doc->create_element("HTML");
$root $doc->append_child($root);
$head $doc->create_element("HEAD");
$head $root->append_child($head);
$title $doc->create_element("TITLE");
$title $head->append_child($title);
$text $doc->create_text_node("This is the title");
$text $title->append_child($text);
$doc->dump_file("/tmp/test.xml"falsetrue);
?>

Voir aussi domdocument_dump_mem() et domdocument_html_dump_mem().



DomDocument->dump_mem

(PHP 4 >= 4.1.0)

DomDocument->dump_mem Convertit l'arbre XML interne en une chaîne de caractères

Description

string DomDocument->dump_mem ([ bool $format [, string $encoding ]] )

DomDocument->dump_mem() crée un document XML à partir de sa représentation interne DOM. DomDocument->dump_mem() est généralement appelée après la construction d'un document à partir de zéro, comme dans l'exemple ci-dessous. Le paramètre format spécifie si l'affichage doit être formaté proprement ou pas.

Exemple #1 Création d'un en-tête de document HTML avec DomDocument->dump_mem()

<?php
$doc 
domxml_new_doc("1.0");
$root $doc->create_element("HTML");
$root $doc->append_child($root);
$head $doc->create_element("HEAD");
$head $root->append_child($head);
$title $doc->create_element("TITLE");
$title $head->append_child($title);
$text $doc->create_text_node("This is the title");
$text $title->append_child($text);
echo 
"<pre>";
echo 
htmlentities($doc->dump_mem(true));
echo 
"</pre>";
?>

Note:

Le premier paramètre a été ajouté en PHP 4.3.0.

Voir aussi domdocument_dump_file() et domdocument_html_dump_mem().



DomDocument->get_element_by_id

(PHP 4 >= 4.1.0)

DomDocument->get_element_by_id Recherche un élément avec son identifiant

Description

domelement DomDocument->get_element_by_id ( string $id )

DomDocument->get_element_by_id() est similaire à domdocument_get_elements_by_tagname() mais recherche un élément grâce à l'identifiant passé en paramètre id. Suivant les standards DOM, cela impose l'utilisation d'une DTD qui définit l'attribut ID du type ID, même si l'implémentation courante fait une simple recherche xpath sur //*[@ID = '%s']. Ce n'est pas conforme aux standard DOM, qui demandent le retour de la valeur NULL s'il n'est pas possible de savoir quel attribut est de type id. Ce comportement sera probablement corrigé, alors ne vous fiez pas totalement à ce comportement actuel.

Voir aussi domdocument_get_elements_by_tagname().



DomDocument->get_elements_by_tagname

(PHP 4 >= 4.1.0)

DomDocument->get_elements_by_tagname Retourne un tableau avec noeuds pour le nom de balise donné dans le document ou un tableau vide si non trouvé

Description

array DomDocument->get_elements_by_tagname ( string $name )

Voir aussi domdocument_add_root().



DomDocument->html_dump_mem

(PHP 4 >= 4.1.0)

DomDocument->html_dump_mem Convertit l'arbre XML interne en une chaîne de caractères au format HTML

Description

string DomDocument->html_dump_mem ( void )

DomDocument->html_dump_mem() crée un document HTML à partir de sa représentation interne DOM. DomDocument->dump_mem() est généralement appelée après la construction d'un document à partir de zéro, comme dans l'exemple ci-dessous.

Exemple #1 Création d'un en-tête de document HTML avec DomDocument->html_dump_mem()

<?php

// Création du document
$doc domxml_new_doc("1.0");

$root $doc->create_element("html");
$root $doc->append_child($root);

$head $doc->create_element("head");
$head $root->append_child($head);

$title $doc->create_element("title");
$title $head->append_child($title);

$text $doc->create_text_node("Ceci est le titre");
$text $title->append_child($text);

echo 
$doc->html_dump_mem();
?>

L'exemple ci-dessus va afficher :

<html><head><title>Ceci est le titre</title></head></html>

Voir aussi domdocument_dump_file() et domdocument_html_dump_mem().



DomDocument->xinclude

(PHP 5)

DomDocument->xincludeRemplace XIncludes dans un objet DomDocument

Description

int DomDocument->xinclude ( void )

DomDocument->xinclude() substitue » XIncludes dans un objet DomDocument.

Exemple #1 Substitution des Xincludes

<?php

// include.xml contient :
// <child>test</child> 

$xml '<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="include.xml">
    <xi:fallback>
      <error>xinclude: include.xml n\'a pas été trouvé</error>
    </xi:fallback>
  </xi:include>
</root>'
;

$domxml domxml_open_mem($xml);
$domxml->xinclude();

echo 
$domxml->dump_mem();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <child>test</child>
</root>

Si include.xml n'existe pas, vous verrez :

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <error>xinclude:dom.xml n'a pas été trouvé</error>
</root>



DomDocumentType->entities

(PHP 4 >= 4.1.0)

DomDocumentType->entities Retourne la liste des entités

Description

array DomDocumentType::entities ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Migration vers PHP 5

Utilisez la propriété entities de l'objet DOMDocumentType.



DomDocumentType->internal_subset

(PHP 4 >= 4.1.0)

DomDocumentType->internal_subset Retourne le sous ensemble interne (internal subset)

Description

bool DomDocumentType::internal_subset ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Migration vers PHP 5

Utilisez la propriété internalSubset de l'objet DOMDocumentType.



DomDocumentType->name

(PHP 4 >= 4.1.0)

DomDocumentType->name Retourne le nom du type de document

Description

string DomDocumentType::name ( void )

Cette fonction retourne le nom du type de document.

Valeurs de retour

Retourne le nom de DomDocumentType, comme une chaîne de caractères.

Exemples

Exemple #1 Récupération du nom du type du document

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
    echo 
"Erreur pendant l'analyse du document\n";
    exit;
}

$doctype $dom->doctype();
echo 
$doctype->name(); // chapitre

?>

Migration vers PHP 5

Utilisez la propriété name de l'objet DOMDocumentType.



DomDocumentType->notations

(PHP 4 >= 4.1.0)

DomDocumentType->notations Retourne la liste des notations

Description

array DomDocumentType::notations ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Migration vers PHP 5

Utilisez la propriété notations de l'objet DOMDocumentType.



DomDocumentType->public_id

(PHP 4 >= 4.1.0)

DomDocumentType->public_id Retourne l'identifiant public du type de document

Description

string DomDocumentType::public_id ( void )

Cette fonction retourne l'identifiant public du type de document.

Valeurs de retour

Retourne l'identifiant public de DomDocumentType, comme une chaîne de caractères.

Exemples

L'exemple ci-dessous n'affichera rien.

Exemple #1 Lire l'identifiant public avec DOM XML

<?php
include("exemple.inc");

if(!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur lors de l'analyse du document\n";
  exit;
}

$doctype $dom->doctype();
echo 
$doctype->public_id();
?>

Migration vers PHP 5

Utilisez la propriété publicId de l'objet DOMDocumentType.



DomDocumentType->system_id

(PHP 4 >= 4.1.0)

DomDocumentType->system_id Retourne l'identifiant système du type de document

Description

string DomDocumentType::system_id ( void )

Retourne l'identifiant système du type de document.

Valeurs de retour

Retourne l'identifiant système de DomDocumentType, comme une chaîne de caractères.

Exemples

Exemple #1 Lire un identifiant système DOM XML

<?php
include("exemple.inc");

if(!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur durant l'analyse du document\n";
  exit;
}

$doctype $dom->doctype();
echo 
$doctype->system_id();
?>

L'exemple ci-dessus va afficher :

/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd

Migration vers PHP 5

Utilisez la propriété systemId de l'objet DOMDocumentType.



DomElement->get_attribute_node

(PHP 4 >= 4.1.0)

DomElement->get_attribute_node Retourne la valeur d'un attribut

Description

DomAttribute DomElement::get_attribute_node ( string $name )

Retourne le noeud de l'attribut donné dans l'élément courant.

Liste de paramètres

name

Le nom de l'attribut cherché. Ce paramètre est sensible à la casse.

Valeurs de retour

Retourne le noeud de l'attribut comme étant DomAttribute ou FALSE si aucun attribut avec le nom name n'est trouvé.

Exemples

Exemple #1 Récupération d'un attribut d'un noeud

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
    echo 
"Erreur lors de l'analyse du document\n";
    exit;
}

$root $dom->document_element();
if (
$attribute $root->get_attribute_node('language')) {
    echo 
'Le langage est : ' $attribute->value() . "\n";
}

?>

Migration vers PHP 5

Utilisez DOMElement::getAttributeNode.



DomElement->get_attribute

(PHP 4 >= 4.1.0)

DomElement->get_attribute Retourne la valeur d'un attribut

Description

string DomElement::get_attribute ( string $name )

Retourne la valeur de l'attribut donné dans l'élément courant.

Depuis PHP 4.3, si aucun attribut de nom name n'est trouvé, une chaîne de caractères vide est retournée.

Liste de paramètres

name

Le nom de l'attribut cherché. Ce paramètre est sensible à la casse.

Valeurs de retour

Retourne le nom de l'attribut comme une chaîne de caractères ou une chaîne de caractères vide si aucun attribut avec le nom name n'est trouvé.

Exemples

Exemple #1 Récupération de la valeur d'un attribut

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
    echo 
"Erreur lors de l'analyse du document\n";
    exit;
}

// get chapter
$root $dom->document_element();
echo 
$root->get_attribute('language'); // en

?>

Migration vers PHP 5

Utilisez DOMElement::getAttribute.



DomElement->get_elements_by_tagname

(PHP 4 >= 4.1.0)

DomElement->get_elements_by_tagname Lit les éléments par nom de balise

Description

array DomElement::get_elements_by_tagname ( string $name )

Récupère tous les sous éléments avec un nom spécifique name à l'intérieur de l'élément courant.

Liste de paramètres

name

Le nom de l'attribut cherché.

Valeurs de retour

Retourne un tableau d'objets DomElement.

Exemples

Exemple #1 Récupération d'un contenu

<?php
if (!$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur pendant le parsage du document\n";
  exit;
}

$root $dom->document_element();

$node_array $root->get_elements_by_tagname('element');

foreach (
$node_array as $node) {
    echo 
' - ' $node->get_content() . "\n";
}

?>

Migration vers PHP 5

Utilisez DOMElement::getElementsByTagName.



DomElement->has_attribute

(PHP 4 >= 4.1.0)

DomElement->has_attributeVérifie si un attribut existe

Description

bool DomElement::has_attribute ( string $name )

Cette fonction vérifie l'existence d'un attribut nommé name dans le noeud courant.

Liste de paramètres

name

Le nom de l'attribut testé.

Valeurs de retour

Retourne TRUE si l'attribut demandé existe, FALSE autrement.

Exemples

Exemple #1 Teste l'existence d'un attribut

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
    echo 
"Erreur lors de l'analyse du document\n";
    exit;
}

$root $dom->document_element();

$buffer '<html';
if (
$root->has_attribute('language')) {
    
$buffer .= 'lang="' $root->get_attribute('language') . '"';
}
$buffer .= '>';

?>

Migration vers PHP 5

Utilisez DOMElement::hasAttribute.



DomElement->remove_attribute

(PHP 4 >= 4.1.0)

DomElement->remove_attributeSupprime un attribut

Description

bool DomElement::remove_attribute ( string $name )

Supprime un attribut du noeud courant DomElement.

Liste de paramètres

name

Le nom de l'attribut à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Migration vers PHP 5

Utilisez DOMElement::removeAttribute.



DomElement->set_attribute_node

(PHP 4 >= 4.1.0)

DomElement->set_attribute_node Ajoute un nouvel attribut

Description

DomNode DomElement::set_attribute_node ( DomNode $attr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



DomElement->set_attribute

(PHP 4 >= 4.1.0)

DomElement->set_attribute Définie la valeur d'un attribut

Description

DomAttribute DomElement::set_attribute ( string $name , string $value )

Définie l'attribut de nom name, avec la valeur value.

Liste de paramètres

name

Le nom de l'attribut. Si cet attribut n'existe pas, il sera créé.

value

La valeur de l'attribut.

Valeurs de retour

Retourne le vieux noeud DomAttribute ou le nouveau si vous créé l'attribut pour la première fois.

Exemples

Exemple #1 Créer un attribut avec DOM XML

<?php
$doc 
domxml_new_doc("1.0");
$node $doc->create_element("para");
$newnode $doc->append_child($node);
$newnode->set_attribute("align""left");
?>

Migration vers PHP 5

Utilisez DOMElement::setAttribute.



DomElement->tagname

(PHP 4 >= 4.1.0)

DomElement->tagname Retourne le nom de l'élément courant

Description

string DomElement::tagname ( void )

Retourne le nom du noeud courant. Appeler cette fonction revient à accéder à la propriété tagname ou appeler DomNode->node_name sur le noeud courant.

Valeurs de retour

Retourne le nom du noeud courant DomElement.

Exemples

Exemple #1 Récupération du nom du noeud

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
    echo 
"Erreur lors de l'analyse du document\n";
    exit;
}

$root $dom->document_element();
echo 
$root->tagname();   // chapitre
echo $root->tagname;     // chapitre
echo $root->node_name(); // chapitre

?>

Migration vers PHP 5

Utilisez la propriété tagName de l'objet DOMElement.



DomNode->add_namespace

(PHP 4 >= 4.3.0)

DomNode->add_namespace Ajoute une déclaration d'espace de nom à un noeud

Description

bool DOMNode::add_namespace ( string $uri , string $prefix )

Cette méthode ajoute une déclaration de nom à un noeud.

Note:

Cette méthode ne fait pas parti des spécifications DOM.

Liste de paramètres

uri

L'espace de nom URI du noeud.

prefix

Le préfixe de l'espace de nom du noeud.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Migration vers PHP 5

Vous pouvez spécifier l'espace de nom URI et le préfixe de DOMElement ou de DOMAttr à la création en utilisant DOMDocument::createElementNS ou DOMDocument::createAttributeNS.

Note:

Rappelez-vous qu'un attribut n'hérite pas son espace de nom à partir de l'élément dont il est attaché.



DomNode->append_child

(PHP 4 >= 4.1.0)

DomNode->append_child Ajoute un nouveau fils à la fin des enfants

Description

DOMNode DOMNode::append_child ( DOMNode $newnode )

Cette fonction ajoute un fils à une liste existante de fils ou crée une nouvelle liste de fils.

Liste de paramètres

newnode

Le noeud qui sera ajouté. Il peut être créé avec DomDocument->create_element, DomDocument->create_text_node etc. ou simplement en utilisant un autre noeud.

Note:

Vous ne pouvez pas ajouter un DOMAttribute en utilisant cette méthode. Utilisez DomElement->set_attribute à la place.

Valeurs de retour

Retourne le noeud ajouté en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
4.3.0 Vous n'êtes plus autorisé d'insérer un noeud à partir d'un autre document.
4.3.0 Avant PHP 4.3.0, le nouveau fils est dupliqué avant d'être ajouté. Par conséquent, le nouveau fils est une copie qui peut être modifiée sans altérer le noeud utilisé dans cette fonction. Si le noeud passé a des fils, ils seront aussi dupliqués, ce qui rend cette fonction pratique pour copier des documents XML complexes. La valeur retournée est le noeud fils ajouté. Si vous voulez apporter des modifications au noeud fils, vous devez utiliser le noeud retourné.
4.3.0 et 4.3.1 Le nouveau fils newnode est d'abord déconnecté de son contexte, s'il est déjà fils d'un DomNode. Le noeud est donc déplacé et n'est plus copié. Ceci est le comportement qui correspond aux spécifications W3C. Si vous avez besoin de l'ancien comportement, utilisez DomNode->clone_node avant d'ajouter.
4.3.2 Le nouveau fils newnode est d'abord déconnecté de son contexte, s'il est déjà dans l'arbre. Les mêmes règles s'appliquent.

Exemples

L'exemple suivant ajoute un nouveau noeud dans un document, et modifie son attribut align à left.

Exemple #1 Ajouter un noeud fils avec dom xml

<?php
$doc 
domxml_new_doc("1.0");
$node $doc->create_element("para");
$newnode $doc->append_child($node);
$newnode->set_attribute("align""left");
?>

L'exemple ci-dessus peut être aussi écrit comme ceci :

Exemple #2 Ajouter un noeud fils avec dom xml (méthode 2)

<?php
$doc 
domxml_new_doc("1.0");
$node $doc->create_element("para");
$node->set_attribute("align""left");
$newnode $doc->append_child($node);
?>

Un exemple plus complexe est celui ci-dessous. Il commence par rechercher un élément, le duplique avec ses fils, et l'ajoute comme frère. Finalement, un nouvel attribut est ajouté, et le document complet est publié.

Exemple #3 Ajouter un noeud fils avec DOM XML (exemple 3)

<?php
include("exemple.inc");

if(!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur lors de l'analyse du document\n";
  exit;
}

$elements $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element $elements[0];

$parent $element->parent_node();
$newnode $parent->append_child($element);
$children $newnode->children();
$attr $children[1]->set_attribute("align""left");

$xmlfile $dom->dump_mem();
echo 
htmlentities($xmlfile);
?>

L'exemple ci-dessus peut aussi être réalisé avec la fonction DomNode->insert_before au lieu de DomNode->append_child.

Migration vers PHP 5

Vous devriez utiliser DOMNode::appendChild.



DomNode->append_sibling

(PHP 4 >= 4.2.0)

DomNode->append_sibling Ajoute un frère à un noeud

Description

domelement DomNode->append_sibling ( domelement $newnode )

DomNode->append_sibling() ajoute le noeud newnode aux fils du noeud courant. newnode peut être créé avec les fonctions domdocument_create_element(), domdocument_create_text(), etc. ou simplement en utilisant un autre noeud.

Avant d'être ajouté, un noeud est d'abord dupliqué. Par conséquent, le nouveau fils est une copie qui peut être modifiée sans altérer le noeud utilisé dans cette fonction. Si le noeud passé a des fils, ils seront aussi dupliqués, ce qui rend cette fonction pratique pour copier des documents XML complexes. La valeur retournée est le noeud fils ajouté. Si vous voulez apporter des modifications au noeud fils, vous devez utiliser le noeud retourné.

DomNode->append_sibling() a été ajoutée pour fournir un remplaçant à domnode_append_child(), tel qu'il fonctionnait en PHP 4.2.

Voir aussi domnode_append_before().



DomNode->attributes

(PHP 4 >= 4.1.0)

DomNode->attributesRetourne la liste des attributs

Description

array DomNode->attributes ( void )

DomNode->attributes() retourne un tableau avec les attributs du noeud si le noeud est de type XML_ELEMENT_NODE.

(PHP >= 4.3 uniquement) Si aucun attribut n'est trouvé, NULL est retourné.



DomNode->child_nodes

(PHP 4 >= 4.1.0)

DomNode->child_nodes Retourne les fils d'un noeud

Description

array DomNode->child_nodes ( void )

DomNode->child_nodes() retourne tous les fils d'un noeud.

Voir aussi domnode_next_sibling() et domnode_previous_sibling().



DomNode->clone_node

(PHP 4 >= 4.1.0)

DomNode->clone_node Clone un noeud

Description

domelement DomNode->clone_node ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



DomNode->dump_node

(PHP 4 >= 4.1.0)

DomNode->dump_node Convertit un noeud en chaîne

Description

string DomNode->dump_node ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi domdocument_dump_mem().



DomNode->first_child

(PHP 4 >= 4.1.0)

DomNode->first_child Retourne le premier fils du noeud

Description

domelement DomNode->first_child ( void )

DomNode->first_child() retourne le premier fils du noeud.

(PHP >= 4.3 uniquement) Si aucun noeud fils n'est trouvé, NULL est retourné.

Voir aussi domnode_last_child(), domnode_next_sibling() et domnode_previous_sibling().



DomNode->get_content

(PHP 4 >= 4.2.0)

DomNode->get_content Retourne le contenu du noeud

Description

string DomNode->get_content ( void )

Cette fonction retourne le contenu du noeud courant.

Exemple #1 Obtenir un contenu

<?php
if (!$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur pendant le parsage du document\n";
  exit;


$root $dom->document_element();

$node_array $root->get_elements_by_tagname("element");

for (
$i 0$i<count($node_array); $i++) {
        
$node $node_array[$i];
        echo 
"L'élément[$i] est : " $node->get_content();
}

?>



DomNode->has_attributes

(PHP 4 >= 4.1.0)

DomNode->has_attributes Vérifie si un noeud a des attributs

Description

bool DomNode->has_attributes ( void )

DomNode->has_attributes() vérifie si un noeud a des attributs.

Voir aussi domnode_has_child_nodes().



DomNode->has_child_nodes

(PHP 4 >= 4.1.0)

DomNode->has_child_nodes Vérifie si un noeud a des fils

Description

bool DomNode->has_child_nodes ( void )

DomNode->has_child_nodes() vérifie si un noeud a des fils.

Voir aussi domnode_child_nodes().



DomNode->insert_before

(PHP 4 >= 4.1.0)

DomNode->insert_before Insère un nouveau noeud fils

Description

domelement DomNode->insert_before ( domelement $newnode , domelement $refnode )

DomNode->insert_before() insère le nouveau noeud fils newnode juste avant le noeud fils refnode. La valeur retournée est la valeur du noeud inséré. Si vous devez faire des modifications sur le fils, vous devez utiliser le noeud retourné.

(PHP >= 4.3 uniquement) Si newnode fait déjà partie du document, il sera d'abord déconnecté de son contexte courant. Si refnode vaut NULL alors newnode sera inséré à la fin de la liste des fils.

domnode_insert_before() est très similaire à domnode_append_child() comme l'exemple ci-dessous le montre : il réalise la même fonction que l'exemple de domnode_append_child().

Exemple #1 Ajouter un noeud fils DOM XML

include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur durant l'analyse du document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";

Voir aussi domnode_append_child().



DomNode->is_blank_node

(PHP 4 >= 4.1.0)

DomNode->is_blank_node Vérifie si un noeud est blanc

Description

bool DomNode->is_blank_node ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



DomNode->last_child

(PHP 4 >= 4.1.0)

DomNode->last_child Retourne le dernier fils du noeud

Description

domelement DomNode->last_child ( void )

DomNode->last_child() retourne le dernier fils du noeud.

(PHP >= 4.3 uniquement) Si aucun fils n'est trouvé, NULL est retourné.

Voir aussi domnode_first_child(), domnode_next_sibling() et domnode_previous_sibling().



DomNode->next_sibling

(PHP 4 >= 4.1.0)

DomNode->next_sibling Retourne le prochain noeud frère

Description

domelement DomNode->next_sibling ( void )

DomNode->next_sibling() retourne le prochain noeud frère du noeud courant. S'il n'y a pas de noeud fils suivant, cette fonction retournera FALSE (< PHP 4.3) ou NULL (>= 4.3). Vous pouvez utiliser cette fonction pour passer en revue tous les fils d'un noeud tel que présenté dans cet exemple.

Exemple #1 Listage des noeuds fils

<?php
include("exemple.inc");

if(!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur d'analyse du document\n";
  exit;
}

$elements $dom->get_elements_by_tagname("tbody");
$element $elements[0];
$child $element->first_child();

while(
$child) {
   
print_r($child);
   
$child $child->next_sibling();
}
?>

Voir aussi domnode_previous_sibling().



DomNode->node_name

(PHP 4 >= 4.1.0)

DomNode->node_name Retourne le nom du noeud

Description

string DomNode->node_name ( void )

DomNode->node_name() retourne le nom du noeud. Le nom a différentes signification suivant le type de noeud, tel que présenté ci-dessous :

Signification de la valeur
Type Signification
DomAttribute Valeur de l'attribut
DomAttribute  
DomCDataSection #cdata-section
DomComment #comment
DomDocument #document
DomDocumentType Nom du type de document
DomElement Nom de la balise
DomEntity Nom de l'entité
DomEntityReference Nom de la référence de l'entité
DomNotation Nom de la notation
DomProcessingInstruction target
DomText #text



DomNode->node_type

(PHP 4 >= 4.1.0)

DomNode->node_type Retourne le type de noeud

Description

int DomNode->node_type ( void )

DomNode->node_type() retourne le type de noeud. Tous les types possibles sont listés dans l'introduction.

<?php

include 'example.inc';

$dom domxml_open_mem($xmlstr);

$chapter $dom->document_element();

// Regardons les éléments contenus dans "chapter"
foreach($chapter->child_nodes() as $node) {
  if (
$node->node_type() == XML_ELEMENT_NODE) {
    echo 
$node->node_name() . "\n";
  }
}

?>

L'exemple ci-dessus va afficher :

title
para


DomNode->node_value

(PHP 4 >= 4.1.0)

DomNode->node_value Retourne la valeur d'un noeud

Description

string DomNode->node_value ( void )

DomNode->node_value() retourne la valeur d'un noeud. La valeur a différente signification suivant le type de noeud, tel que présenté ci-dessous :

Signification de la valeur
Type Signification
DomAttribute Valeur de l'attribut
DomAttribute  
DomCDataSection Contenu
DomComment Contenu du commentaire
DomDocument NULL
DomDocumentType NULL
DomElement NULL
DomEntity NULL
DomEntityReference NULL
DomNotation NULL
DomProcessingInstruction Tout le document sans la cible (target)
DomText Contenu du texte



DomNode->owner_document

(PHP 4 >= 4.1.0)

DomNode->owner_document Retourne le document auquel appartient ce noeud DOM XML

Description

domdocument DomNode->owner_document ( void )

DomNode->owner_document() retourne le document auquel appartient ce noeud.

L'exemple suivant affiche deux listes identiques de fils.

Exemple #1 Liste les noeuds sous DOM XML

<?php
$doc 
domxml_new_doc("1.0");
$node $doc->create_element("para");
$node $doc->append_child($node);
$children $doc->children();
print_r($children);

$doc2 $node->owner_document();
$children $doc2->children();
print_r($children);
?>

Voir aussi domnode_insert_before().



DomNode->parent_node

(PHP 4 >= 4.1.0)

DomNode->parent_node Retourne le père d'un noeud DOM XML

Description

domnode DomNode->parent_node ( void )

DomNode->parent_node() retourne le père d'un noeud.

(PHP >= 4.3 uniquement) Si aucun parent n'est trouvé, NULL est retourné.

L'exemple ci-dessous affiche deux listes identiques de noeuds fils

Exemple #1 Trouver le document d'un noeud avec DOM XML

<?php
$doc 
domxml_new_doc("1.0");
$node $doc->create_element("para");
$node $doc->append_child($node);
$children $doc->children();
print_r($children);

$doc2 $node->parent_node();
$children $doc2->children();
print_r($children);
?>



DomNode->prefix

(PHP 4 >= 4.1.0)

DomNode->prefix Retourne le préfixe d'espace de nom d'un noeud

Description

string DomNode->prefix ( void )

DomNode->prefix() retourne le préfixe d'espace de nom d'un noeud.



DomNode->previous_sibling

(PHP 4 >= 4.1.0)

DomNode->previous_sibling Retourne le frère précédent d'un noeud

Description

domelement DomNode->previous_sibling ( void )

DomNode->previous_sibling() retourne le frère précédent d'un noeud. S'il n'y a pas de noeud précédent, DomNode->previous_sibling() retournera FALSE (< PHP 4.3) ou NULL (>= PHP 4.3). Vous pouvez utiliser cette fonction pour lister tous les fils d'un noeud.

Voir aussi domnode_next_sibling().



DomNode->remove_child

(PHP 4 >= 4.2.0)

DomNode->remove_child Supprime un fils de la liste des noeuds fils

Description

domtext DomNode->remove_child ( domtext $oldchild )

DomNode->remove_child() supprime le fils oldchild de la liste des noeuds fils du noeud courant. Si le fils n'a pu être retiré, ou si ce n'est pas un fils du noeud courant, DomNode->remove_child() retournera FALSE. Si le fils a pu être retiré, DomNode->remove_child() le retournera.

Exemple #1 Supprimer un noeud en DOM XML

<?php
include("exemple.inc");

if(!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur lors de l'analyse d'un document\n";
  exit;
}

$elements $dom->get_elements_by_tagname("tbody");
$element $elements[0];
$children $element->child_nodes();
$child $element->remove_child($children[0]);

echo 
"<pre>";
$xmlfile $dom->dump_mem(true);
echo 
htmlentities($xmlfile);
echo 
"</pre>";
?>

Voir aussi domnode_append_child().



DomNode->replace_child

(PHP 4 >= 4.2.0)

DomNode->replace_child Remplace un noeud fils

Description

domelement DomNode->replace_child ( domelement $newnode , domelement $oldnode )

(PHP 4.2) DomNode->replace_child() remplace le noeud fils oldnode avec le nouveau noeud newnode. Si le nouveau noeud est déjà un fils, il ne sera pas ajouté une seconde fois. Si l'ancien noeud ne peut être trouvé, DomNode->replace_child() retournera FALSE. Si le remplacement a pu avoir lieu, oldnode est retourné.

(PHP 4.3) DomNode->replace_child() remplace le noeud fils oldnode avec le nouveau noeud newnode, même si newnode est déjà fils. Si le nouveau noeud est déjà inséré dans le document, il sera retiré de son contexte courant.. Si DomNode->replace_child() ne peut trouver l'ancien noeud, elle retournera FALSE. Si le remplacement a pu avoir lieu, oldnode est retourné.

Voir aussi domnode_append_child().



DomNode->replace_node

(PHP 4 >= 4.2.0)

DomNode->replace_node Remplace un noeud DomXML

Description

domelement DomNode->replace_node ( domelement $newnode )

(PHP 4.2) DomNode->replace_node() remplace un noeud par newnode. Avant le remplacement, newnode est copié s'il a un parent, pour s'assure qu'un noeud qui est déjà dans le document n'est pas inséré une nouvelle fois. Ce comportement impose de faire toutes les modifications sur le noeud avant le remplacement, ou de le relire après le remplacement, avec des fonctions comme domnode_first_child(), domnode_child_nodes(), etc.

(PHP 4.3) DomNode->replace_node() remplace un noeud par le noeud newnode. Il n'est plus copié du tout. Si newnode était déjà inséré dans le document, il sera d'abord désolidarisé de son contexte courant. Si le remplacement réussi, le noeud est retourné.

Voir aussi domnode_append_child().



DomNode->set_content

(PHP 4 >= 4.1.0)

DomNode->set_content Modifie le contenu d'un noeud

Description

bool DomNode->set_content ( string $content )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



DomNode->set_name

(PHP 4 >= 4.1.0)

DomNode->set_name Modifie le nom d'un noeud

Description

bool DomNode->set_name ( void )

DomNode->set_name() modifie le nom d'un noeud.

Voir aussi domnode_node_name().



DomNode->set_namespace

(PHP 4 >= 4.3.0)

DomNode->set_namespaceModifie l'espace de noms d'un noeud

Description

void DomNode->set_namespace ( string $uri [, string $prefix ] )

DomNode->set_namespace() remplace l'espace de noms courant du noeud par uri. S'il y a une déclaration d'espace de nom de même URI dans l'un des noeuds parents, le préfixe de ce parent sera alors utilisé. Sinon, la fonction prendre le préfixe fourni dans le paramètre optionnel prefix ou bien en générera un aléatoirement.

Voir aussi domdocument_create_element_ns() et domnode_add_namespace().




DomProcessingInstruction->data

(PHP 4 >= 4.1.0)

DomProcessingInstruction->data Retourne les données du noeud l'instruction en cours

Description

string DomProcessingInstruction::data ( void )

Cette méthode retourne les données du noeud de l'instruction en cours.

Valeurs de retour

Retourne les données de l'instruction en cours.

Migration vers PHP 5

Utilisez la propriété data de DOMProcessingInstruction.



DomProcessingInstruction->target

(PHP 4 >= 4.1.0)

DomProcessingInstruction->target Retourne la cible du noeud de l'instruction en cours

Description

string DomProcessingInstruction::target ( void )

Cette méthode retourne la cible de l'instruction en cours.

Valeurs de retour

Retourne la cible de l'instruction en cours.

Migration vers PHP 5

Utilisez la propriété target de DOMProcessingInstruction.



DomXsltStylesheet->process

(PHP 4 >= 4.1.0)

DomXsltStylesheet->processApplique une transformation XSLT à un objet domdocument

Description

DomDocument DomXsltStylesheet::process ( DomDocument $xml_doc [, array $xslt_params [, bool $is_xpath_param [, string $profile_filename ]]] )

Applique une Transformation XSLT sur l'objet DomDocument donné.

Liste de paramètres

xml_doc

Le document XML qui sera transformé, comme un objet DomDocument.

xslt_params

Un tableau associatif composé de paires de paramètres noms et valeurs.

is_xpath_param

Si FALSE, les valeurs de xslt_params seront mises entre guillemets. Ceci est le comportement par défaut. Cela vous permet de passer les valeurs comme des chaînes de caractères PHP.

Note:

Si vos chaînes de caractères contiennent des apostrophes et des guillemets, vous devez faire attention à mettre en guillemets toutes les valeurs par vous-même et mettre ce paramètre à TRUE.

profile_filename

Mettre ce paramètre à un chemin d'un fichier, si vous souhaitez avoir des informations de profilage.

Valeurs de retour

Retourne le résultat du traitement, comme un objet DomDocument.

Migration vers PHP 5

Utilisez XSLTProcessor::setParameter() et XSLTProcessor::transform-to-doc().

Historique

Version Description
4.3.0 Le paramètre profile_filename a été ajouté.

Voir aussi



DomXsltStylesheet->result_dump_file

(PHP 4 >= 4.1.0)

DomXsltStylesheet->result_dump_file Écrit le résultat d'un transformation XSLT dans un fichier

Description

string DomXsltStylesheet::result_dump_file ( DomDocument $xmldoc , string $filename )

Comme DomXsltStylesheet->process retourne toujours un document XML correctement formaté, quelque soit la méthode d'affichage qui a été déclarée dans

<xsl:output>
ou dans un attribut similaire, elle n'est pas très pratique si vous voulez produire des documents HTML 4 ou du texte.

Cette fonction, au contraire, utilise

<xsl:output method="html|text">
et les autres directives de contrôle des sorties. Voyez l'exemple pour plus de détails.

Exemples

Exemple #1 Sauver le résultat d'une transformation XSLT dans un fichier

<?php
$filename 
"stylesheet.xsl";
$xmldoc domxml_open_file("data.xml");
$xsldoc domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
print 
$xsldoc->result_dump_file($result,"filename");
?>



DomXsltStylesheet->result_dump_mem

(PHP 4 >= 4.1.0)

DomXsltStylesheet->result_dump_mem Écrit le résultat d'un transformation XSLT dans une chaîne

Description

string DomXsltStylesheet::result_dump_mem ( DomDocument $xmldoc )

Comme DomXsltStylesheet->process retourne toujours un document XML correctement formaté, quelque soit la méthode d'affichage qui a été déclarée dans

<xsl:output>
ou dans un attribut similaire, elle n'est pas très pratique si vous voulez produire des documents HTML 4 ou du texte.

Cette fonction, au contraire, utilise

<xsl:output method="html|text">
et les autres directives de contrôle des sorties. Voyez l'exemple pour plus de détails.

Exemples

Exemple #1 Sauver le résultat d'une transformation XSLT dans une chaîne

<?php
$filename 
"stylesheet.xsl";
$xmldoc domxml_open_file("data.xml");
$xsldoc domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo 
$xsldoc->result_dump_mem($result);
?>



domxml_new_doc

(PHP 4 >= 4.2.0)

domxml_new_doc Crée un document XML vide

Description

DomDocument domxml_new_doc ( string $version )

Crée un nouveau document Dom à partir de zéro et le retourne.

Liste de paramètres

version

Le numéro de version XML du document.

Valeurs de retour

Retourne une nouvelle instance DomDocument.



domxml_open_file

(PHP 4 >= 4.2.0)

domxml_open_fileCrée un objet DOM à partir d'un fichier XML

Description

DomDocument domxml_open_file ( string $filename [, int $mode [, array &$error ]] )

Cette fonction analyse le document XML dans le fichier donné.

Liste de paramètres

filename

Le chemin au fichier XML. Le fichier est accédé en mode lecture seule.

mode

Le paramètre optionnel peut être utilisé pour changer le comportement de cette fonction.

Vous pouvez utiliser une de ces constantes suivantes : DOMXML_LOAD_PARSING (défaut), DOMXML_LOAD_VALIDATING ou DOMXML_LOAD_RECOVERING. Vous pouvez également ajouter à ces valeurs DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES et DOMXML_LOAD_COMPLETE_ATTRS avec une manipulation sur les bits avec un OU.

error

Si utilisé, il contiendra les messages d'erreur. error doit être passé par référence.

Valeurs de retour

Retourne une instance DomDocument du fichier donné.

Exemples

Exemple #1 Ouvrir un document XML à partir d'un fichier

<?php

if(!$dom domxml_open_file("exemple.xml")) {
  echo 
"Erreur lors de l'analyse du document\n";
  exit;
}

$root $dom->document_element();
?>

Historique

Version Description
4.3.0 Les paramètres mode et error ont été ajoutés.

Voir aussi



domxml_open_mem

(PHP 4 >= 4.2.0)

domxml_open_memCrée un objet DOM pour un document XML

Description

DomDocument domxml_open_mem ( string $str [, int $mode [, array &$error ]] )

Cette fonction analyse le document XML dans le fichier donné.

Liste de paramètres

str

Le contenu du fichier XML.

mode

Le paramètre optionnel peut être utilisé pour changer le comportement de cette fonction.

Vous pouvez utiliser une de ces constantes suivantes : DOMXML_LOAD_PARSING (défaut), DOMXML_LOAD_VALIDATING ou DOMXML_LOAD_RECOVERING. Vous pouvez également ajouter à ces valeurs DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES et DOMXML_LOAD_COMPLETE_ATTRS avec une manipulation sur les bits avec un OU.

error

Si utilisé, il contiendra les messages d'erreur. error doit être passé par référence.

Valeurs de retour

Retourne une instance DomDocument du contenu XML donné.

Historique

Version Description
4.3.0 Les paramètres mode et error ont été ajoutés.

Exemples

Exemple #1 Ouvrir un document XML à partir d'une chaîne

<?php
include("exemple.inc");

if(!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Erreur lors de l'analyse du document\n";
  exit;
}

$root $dom->document_element();
?>

Voir aussi



domxml_version

(PHP 4 >= 4.1.0)

domxml_version Lit le numéro de version de la bibliothèque XML

Description

string domxml_version ( void )

Lit le numéro de version de la bibliothèque XML actuellement utilisé.

Valeurs de retour

La version de la bibliothèque XML, comme une chaîne de caractères.

Exemples

Exemple #1 Exemple avec domxml_version()

<?php

echo domxml_version();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

20607



domxml_xmltree

(PHP 4 >= 4.2.0)

domxml_xmltree Crée un arbre d'objets PHP à partir d'un document XML

Description

DomDocument domxml_xmltree ( string $str )

Cette fonction analyse le document XML passé dans la chaîne str et retourne un arbre d'objets PHP, représentant le document.

Cette fonction est isolée des autres, ce qui signifie que vous ne pouvez pas accéder aux objets de l'arbre avec les autres fonctions. Modifier l'arbre, par exemple en ajoutant des noeuds, n'a pas de sens car il n'y a pas moyen de convertir cet arbre fichier XML.

Cependant, cette fonction est pratique si vous vouez lire un fichier XML et en étudier le contenu.

Liste de paramètres

str

Le contenu du fichier XML.

Valeurs de retour

Retourne un arbre d'objets Dom commençant par un DomDocument.



domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_doc Crée un objet DomXsltStylesheet à partir d'un objet DomDocument

Description

DomXsltStylesheet domxml_xslt_stylesheet_doc ( DomDocument $xsl_doc )

Crée un objet DomXsltStylesheet à partir du document XSL donné.

Liste de paramètres

xsl_doc

Le document XSL, comme un objet DomDocument.

Valeurs de retour

Retourne une nouvelle instance de DomXsltStylesheet.

Migration vers PHP 5

Appelez XSLTProcessor::importStylesheet() avec le paramètre xsl_doc.

Voir aussi



domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_file Crée un objet DomXsltStylesheet à partir d'un document XSL dans un fichier

Description

DomXsltStylesheet domxml_xslt_stylesheet_file ( string $xsl_file )

Crée un objet DomXsltStylesheet à partir du fichier XSL donné.

Liste de paramètres

xsl_file

Le chemin du document XSL, comme une chaîne.

Valeurs de retour

Retourne une nouvelle instance de DomXsltStylesheet.

Migration vers PHP 5

Appelez XSLTProcessor::importStylesheet() avec DOMDocument::load($xsl_file) comme paramètre.

Voir aussi



domxml_xslt_stylesheet

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet Crée un objet DomXsltStylesheet à partir d'un document XSL dans une chaîne

Description

DomXsltStylesheet domxml_xslt_stylesheet ( string $xsl_buf )

Crée un objet DomXsltStylesheet à partir d'une mémoire tampon XSL.

Liste de paramètres

xsl_buf

Le document XSL, comme une chaîne de caractères.

Valeurs de retour

Retourne une nouvelle instance de DomXsltStylesheet.

Migration vers PHP 5

Appelez XSLTProcessor::importStylesheet() avec DOMDocument::loadXML($xsl_buf) comme paramètre.

Voir aussi



domxml_xslt_version

(PHP 4 >= 4.2.0)

domxml_xslt_version Lit le numéro de version de la bibliothèque XSLT

Description

int domxml_xslt_version ( void )

Lit le numéro de version de la bibliothèque XSLT.

Valeurs de retour

Retourne le numéro de version de la bibliothèque XSLT, comme un entier.

Exemples

Exemple #1 Exemple avec domxml_xslt_version()

<?php

echo domxml_xslt_version();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

10112

Voir aussi



xpath_eval_expression

(PHP 4)

xpath_eval_expression Calcule un chemin XPath à partir d'une chaîne

Description

XPathObject XPathContext::xpath_eval_expression ( string $expression [, domnode $contextnode ] )
XPathObject xpath_eval_expression ( XPathContext $xpath_context , string $expression [, domnode $contextnode ] )

Exemple #1 Exemple avec xpath_eval_expression()

<?php

include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
    echo 
"Erreur lors de l'analyse du document\n";
    exit;
}

$xpath xpath_new_context($dom);
var_dump(xpath_eval_expression($xpath'/chapter/@language'));

?>

L'exemple ci-dessus va afficher :

object(XPathObject)(2) {
   ["type"]=>
   int(1)
   ["nodeset"]=>
   array(1) {
     [0]=>
     object(domattribute)(5) {
       ["type"]=>
       int(2)
       ["name"]=>
       string(8) "language"
       ["value"]=>
       string(2) "en"
       [0]=>
       int(7)
       [1]=>
       int(138004256)
     }
  }
}

Voir aussi xpath_eval().



xpath_eval

(PHP 4)

xpath_eval Calcule un chemin XPath à partir d'une chaîne

Description

XPathObject XPathContext::xpath_eval ( string $xpath_expression [, domnode $contextnode ] )
XPathObject xpath_eval ( XPathContext $xpath_context , string $xpath_expression [, domnode $contextnode ] )

Le paramètre optionnel contextnode sert à spécifier des requêtes XPath relatives.

Voir aussi xpath_new_context().



xpath_new_context

(PHP 4)

xpath_new_contextCrée un nouveau contexte xpath

Description

XPathContext xpath_new_context ( domdocument $dom_document )

Crée un nouveau contexte xpath.

Voir aussi

  • xpath_eval() - Calcule un chemin XPath à partir d'une chaîne



xpath_register_ns_auto

(PHP 4 >= 4.3.0)

xpath_register_ns_auto Sauvegarde l'espace de nom donné dans le contexte XPath passé

Description

bool xpath_register_ns_auto ( XPathContext $xpath_context [, object $context_node ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



xpath_register_ns

(PHP 4 >= 4.2.0)

xpath_register_ns Sauvegarde l'espace de nom donné dans le contexte XPath passé

Description

bool xpath_register_ns ( XPathContext $xpath_context , string $prefix , string $uri )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



xptr_eval

(PHP 4)

xptr_eval Calcul un chemin XPtr à partir d'une chaîne

Description

int XPathContext::xptr_eval ( string $eval_str [, domnode $contextnode ] )
int xptr_eval ( XPathContext $xpath_context , string $eval_str [, domnode $contextnode ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



xptr_new_context

(PHP 4)

xptr_new_contextCrée un nouveau contexte XPath

Description

XPathContext xptr_new_context ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire




libxml


Introduction

Ces fonctions et constantes sont disponibles depuis PHP 5.1.0 et si vous avez compilé PHP avec les extensions basées sur libxml, c'est à dire DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XSLT, XML, XMLReader, XMLRPC et XMLWriter.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requiert » libxml >= 2.6.0.



Installation

L'extension libxml est activé par défaut, et il peut être désactivé avec l'option --disable-libxml .

La directive optionnelle --with-libxml-dir est utilisée pour spécifier le dossier où libxml se trouve sur le système sur lequel PHP est compilé. À défaut de l'utilisation de cette option, les dossiers par défaut seront analysés. Le processus configure vérifie les dossiers où se trouve libxml (spécifiquement, xml2-config), dans cet ordre :

  1. Le dossier ([DIR]) spécifié avec l'option --with-libxml-dir ([DIR]=/bin/xml2-config)

  2. /usr/local/bin/xml2-config

  3. /usr/bin/xml2-config

Si le processus configure ne peut trouver le fichier xml2-config dans le dossier spécifié par l'option --with-libxml-dir , alors, il continuera et analysera les dossiers par défaut.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

LIBXML_COMPACT (integer)
Active l'optimisation de l'allocation de petits noeuds. Ceci pourrait augmenter la rapidité de votre application sans avoir besoin de changer votre code.

Note:

Seulement disponible dans Libxml >= 2.6.21

LIBXML_DTDATTR (integer)
Attribut de DTD par défaut
LIBXML_DTDLOAD (integer)
Charge le sous-ensemble externe
LIBXML_DTDVALID (integer)
Valide avec la DTD
LIBXML_NOBLANKS (integer)
Suppression des noeuds vides
LIBXML_NOCDATA (integer)
Fusion des CDATA en noeuds de texte
LIBXML_NOEMPTYTAG (integer)
Agrandi les balises vides (par exemple, <br/> en <br></br>)

Note:

Cette option est actuellement disponible uniquement avec les fonctions DOMDocument::save et DOMDocument::saveXML.

LIBXML_NOENT (integer)
Substitution des entités
LIBXML_NOERROR (integer)
Suppression du rapport d'erreur
LIBXML_NONET (integer)
Désactivation du réseau lors du chargement de document
LIBXML_NOWARNING (integer)
Suppression des rapports d'alerte
LIBXML_NOXMLDECL (integer)
Annule la déclaration XML lors de la sauvegarde du document

Note:

Seulement disponible dans Libxml >= 2.6.21

LIBXML_NSCLEAN (integer)
Suppression des espaces de noms redondants
LIBXML_PARSEHUGE (integer)
Affecte le drapeau XML_PARSE_HUGE. Désactive toute limite du parseur codée en dur.
LIBXML_XINCLUDE (integer)
Implémentation de la substitution XInclude
LIBXML_ERR_ERROR (integer)
Erreur non-fatale
LIBXML_ERR_FATAL (integer)
Erreur fatale
LIBXML_ERR_NONE (integer)
Aucune erreur
LIBXML_ERR_WARNING (integer)
Une alerte simple
LIBXML_VERSION (integer)
libxml version sous la forme 20605 ou 20617
LIBXML_DOTTED_VERSION (string)
libxml version sous la forme 2.6.5 ou 2.6.17


La classe libXMLError

Introduction

Contient diverses informations sur les erreurs émises par la bibliothèque libxml. Les codes erreurs sont décrits dans la » documentation officielle de l'API xmlError.

Synopsis de la classe

libXMLError {
/* Propriétés */
public int $level ;
public int $code ;
public int $column ;
public string $message ;
public string $file ;
public int $line ;
}

Propriétés

level

la sévérité de l'erreur (une des constantes suivantes : LIBXML_ERR_WARNING, LIBXML_ERR_ERROR ou LIBXML_ERR_FATAL)

code

Le code de l'erreur.

column

La colonne dans laquelle l'erreur est survenue.

Note:

Cette propriété n'est pas totalement implémentée par la bibliothèque libxml ; aussi, 0 est souvent retourné.

message

Le message d'erreur, s'il y en a.

file

Le nom du fichier, ou vide si le XML a été chargé depuis une chaîne.

line

La ligne depuis laquelle l'erreur est survenue.



Fonctions libxml


libxml_clear_errors

(PHP 5 >= 5.1.0)

libxml_clear_errors Vide le buffer d'erreur libxml

Description

void libxml_clear_errors ( void )

libxml_clear_errors() vide le buffer d'erreur libxml.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



libxml_disable_entity_loader

(PHP 5 >= 5.2.11)

libxml_disable_entity_loaderDésactive le chargement des entités externes

Description

bool libxml_disable_entity_loader ([ bool $disable = true ] )

Active ou désactive le chargement des entités externes.

Liste de paramètres

disable

Désactive (TRUE) ou active (FALSE) le chargement des entités externes par les extensions libxml (telles que DOM, XMLWriter et XMLReader).

Valeurs de retour

Retourne la configuration précédente.

Voir aussi



libxml_get_errors

(PHP 5 >= 5.1.0)

libxml_get_errors Lit le tableau d'erreurs

Description

array libxml_get_errors ( void )

Retourne un tableau d'erreurs.

Valeurs de retour

libxml_get_errors() retourne un tableau avec les objets LibXMLError qui représentent les erreurs, ou bien un tableau vide s'il n'y a pas d'erreurs.

Exemples

Exemple #1 Exemple avec libxml_get_errors()

Cet exemple montre comment créer un gestionnaire d'erreurs libxml simple.

<?php

libxml_use_internal_errors
(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc simplexml_load_string($xmlstr);
$xml explode("\n"$xmlstr);

if (!
$doc) {
    
$errors libxml_get_errors();

    foreach (
$errors as $error) {
        echo 
display_xml_error($error$xml);
    }

    
libxml_clear_errors();
}


function 
display_xml_error($error$xml)
{
    
$return  $xml[$error->line 1] . "\n";
    
$return .= str_repeat('-'$error->column) . "^\n";

    switch (
$error->level) {
        case 
LIBXML_ERR_WARNING:
            
$return .= "Warning $error->code: ";
            break;
         case 
LIBXML_ERR_ERROR:
            
$return .= "Error $error->code: ";
            break;
        case 
LIBXML_ERR_FATAL:
            
$return .= "Fatal Error $error->code: ";
            break;
    }

    
$return .= trim($error->message) .
               
"\n  Line: $error->line.
               
"\n  Column: $error->column";

    if (
$error->file) {
        
$return .= "\n  File: $error->file";
    }

    return 
"$return\n\n--------------------------------------------\n\n";
}

?>

L'exemple ci-dessus va afficher :

  <titles>PHP: Behind the Parser</title>
----------------------------------------------^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

--------------------------------------------

Voir aussi



libxml_get_last_error

(PHP 5 >= 5.1.0)

libxml_get_last_error Lit la dernière erreur libxml

Description

LibXMLError libxml_get_last_error ( void )

libxml_get_last_error() lit la dernière erreur libxml.

Valeurs de retour

libxml_get_last_error() retourne un objet LibXMLError s'il y a une erreur, et FALSE sinon.

Voir aussi



libxml_set_streams_context

(PHP 5)

libxml_set_streams_context Configure le contexte de flux pour la prochaine opération libxml

Description

void libxml_set_streams_context ( resource $streams_context )

libxml_set_streams_context() configure le contexte de flux pour la prochaine opération libxml.

Liste de paramètres

streams_context

La ressource de contexte de flux, créé avec la fonction stream_context_create().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec libxml_set_streams_context()

<?php

$opts 
= array(
    
'http' => array(
        
'user_agent' => 'PHP libxml agent',
    )
);

$context stream_context_create($opts);
libxml_set_streams_context($context);

// lit un fichier via HTTP
$doc DOMDocument::load('http://www.example.com/file.xml');

?>

Voir aussi



libxml_use_internal_errors

(PHP 5 >= 5.1.0)

libxml_use_internal_errors Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure

Description

bool libxml_use_internal_errors ([ bool $use_errors = false ] )

libxml_use_internal_errors() vous permet de désactiver le gestionnaire d'erreurs libxml standard, et d'activer votre propre gestionnaire d'erreur.

Liste de paramètres

use_errors

Active ou désactive le rapport d'erreur.

Valeurs de retour

libxml_use_internal_errors() retourne la valeur précédemment configurée pour use_errors.

Exemples

Exemple #1 Exemple avec libxml_use_internal_errors()

Cet exemple montre l'utilisation de base des erreurs libxml, et la valeur retournée par cette fonction.

<?php

// active la gestion d'erreur personnalisée
var_dump(libxml_use_internal_errors(true));

// Chargement du document
$doc = new DOMDocument;

if (!
$doc->load('file.xml')) {
    foreach (
libxml_get_errors() as $error) {
        
// gérer les erreurs ici
    
}

    
libxml_clear_errors();
}

?>

L'exemple ci-dessus va afficher :

bool(false)

Voir aussi


Sommaire




qtdom


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.



Installation/Configuration

Sommaire


Pré-requis

Vous devez installer la bibliothèque Qt-library >=2.2.0.



Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/qtdom.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions qtdom


qdom_error

(PHP 4 >= 4.0.5)

qdom_errorRetourne le message d'erreur de la dernière opération QDOM, ou FALSE si aucune erreur n'est survenue

Description

string qdom_error ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



qdom_tree

(PHP 4 >= 4.0.4)

qdom_treeCrée une arbre à partir d'une chaîne XML

Description

QDomDocument qdom_tree ( string $doc )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sommaire

  • qdom_error — Retourne le message d'erreur de la dernière opération QDOM, ou FALSE si aucune erreur n'est survenue
  • qdom_tree — Crée une arbre à partir d'une chaîne XML



SDO


Introduction

Les Objets de Service de Données (Service Data Objects (SDOs)) permet les applications PHP de travailler avec des données provenant de différentes sources (comme une requête de base de données, un fichier XML et une feuille de tableau) en utilisant une simple interface.

Chaque différente sorte de source de données requiert un Service d'Accès de Données (Data Access Service (DAS)) pour fournir un accès aux données dans la source de données. Dans votre application PHP, vous utilisez un DAS pour créer une instance SDO qui représente des données dans la source de données. Vous pouvez alors fixer et récupérer des valeurs dans l'instance SDO en utilisant l'interface SDO standard. Finalement, vous pouvez utiliser un DAS pour écrire les données modifiées à une source de données (normalement la même).

Voyez la liste des Services d'Accès de Données pour des détails sur ceux actuellement disponibles. En plus des DASs fournis, SDO fournit aussi des interfaces pour permettre les autres à être implémentés (voyez la section sur Interface SDO Service d'Accès de Données pour plus de détails).

Cette extension est dérivée des concepts pris des » Spécification d'Objets de Service de Données. Elle inclut une version de » Apache Tuscany SDO pour le projet C++.

La Structure d'un Objet de Service de Données

Une instance d'Objet de Service de Données est fait d'un arbre d'objets de données. L'arbre est défini par des relations contenues entre les objets de données. Par exemple, une objet de données Compagnie peut consister en un nombre d'objets de données Département et donc la Compagnie devrait avoir une relation contenue avec les Départements.

Un SDO peut aussi avoir des références non contenues entre les objets de données dans l'arbre. Par exemple, un objet de données Employé peut faire référence à un autre Employé pour identifier son mentor.

Les données peuvent se référencer entre eux, mais peuvent aussi avoir des propriétés primitives. Par exemple, l'objet de données Compagnie pourrait avoir une propriété appelée "nom" de type chaîne de caractères pour contenir le nom de la compagnie (par exemple, "Acme").

Chacune de ces propriétés de l'objet de données - références contenues, références non-contenues ou propriétés primitives - peut avoir plusieurs valeurs ou une seule. Dans l'exemple ci-dessous, "Departements" a plusieurs valeurs alors que le nom de la compagnie n'en a qu'une.

En PHP, chaque objet de données SDO est représenté en tant qu'objet PHP. Les propriétés de l'objet de données peuvent être accédées en utilisant soit la syntaxe orientée objet, soit la syntaxe de tableaux associatifs. Nous verrons quelques exemples de cela plus tard dans la documentation.



Installation/Configuration

Sommaire


Pré-requis

L'extension SDO requiert PHP 5.1.0 ou supérieur. Elle nécessite également la bibliothèque libxml2. Normalement, libxml2 devrait être déjà installée mais si ce n'est pas le cas, vous pouvez la télécharger depuis » http://www.xmlsoft.org/.



Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sca_sdo.

Note:

Les versions précédentes de l'extension SDO nécessite une bibliothèque partagée séparée XML DAS. Ceci est désormais obsolète et toutes les références au fichier php_sdo_das_xml.dll ou au fichier sdo_das_xml.so doivent être supprimées de votre php.ini.

Systèmes Unix
  1. Les trois composants SDO - le corps SDO, le XML DAS et le relationnel DAS - font partis, avec le Service Component Architecture (SCA), d'un seul projet PECL, SCA_SDO ; vous pouvez donc télécharger SCA ainsi que les trois parties de SDO avec la commande :

    pecl install SCA_SDO
    

    Cette commande va construire la bibliothèque partagée SDO mais va aussi installer les fichiers PHP permettant le relationnel SCA et DAS.

    Si vous voulez installer la dernière version bêta, exécutez plutôt la commande :

    pecl install SCA_SDO-beta
    

  2. La commande pecl installe automatiquement le module SDO dans votre dossier d'extensions PHP. Pour activer les extensions SDO, vous devez ajouter les lignes suivantes à votre php.ini :

    extension=sdo.so
    

    Pour plus d'informations sur la constructions de paquets PECL, consultez la section de la documentation sur l'installation PECL.

Construire SDO sur Linux

Cette section décrit comment construire le noyau SDO et le XML DAS sur Linux. Vous devriez avoir besoin seulement de savoir comment faire cela seulement si vous souhaitez construire une version récente que vous auriez téléchargée de SVN.

  1. Changez le dossier principal d'extension : cd < où se trouve le code sdo >

  2. Exécutez phpize, qui fixera l'environnement pour compiler le SDO.

  3. Ensuite, exécutez ./configure; make; make install. Veuillez noter, vous devriez avoir besoin de vous identifier en tant que root pour installer cette extension.

  4. Vérifiez que ces modules sont chargés par PHP, en ajoutant extension=sdo.so dans votre fichier php.ini.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SDO_DAS_ChangeSummary::NONE=0 (entier)
Représente un changement de type 'none' (aucun).
SDO_DAS_ChangeSummary::MODIFICATION=1 (entier)
Représente un changement de type 'modification'.
SDO_DAS_ChangeSummary::ADDITION=2 (entier)
Représente un changement de type 'addition'.
SDO_DAS_ChangeSummary::DELETION=3 (entier)
Représente un changement de type "deletion" (suppression).


Limitations

Limitations d'Implémentation

La liste suivante contient les limitations dans l'implémentation courante de SDO :

  1. Il n'y a pas de support pour les jeux de caractères multioctet. Ceci doit être considéré, dépendemment de la nécessité de la communauté, dans la version de PHP où le support de l'Unicode est activé.

Limitations SDO

Les concepts suivants de SDO 2.0 ne sont pas supportés dans l'implémentation courante de PHP. Ce n'est pas nécessairement le cas que ceux-ci seront ajoutés avec le temps. Leur inclusion dépendra des besoins de la communauté.

  1. Relations bidirectionnelles.

  2. Type et propriété alias noms.

  3. Propriétés en lecture seule.

  4. Les classes d'aide définies dans SDO 2.0 ne sont pas directement implémentées. Cependant, une fonction équivalente est fournie dans un style plus naturel pour PHP. Par exemple, la fonction CopyHelper::copy() est fournie en utilisant le mot clé clone de PHP pour un objet de données.



Exemples

Sommaire


Utilisation simple

Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.

L'instance du document ci-dessous décrit un compagnie simple, nommée "MegaCorp", qui contient un seul département, nommé "Advanced Technologies". Ce département contient trois employés. La compagnie "employeeOfTheMonth" référence le second employé, "Jane Doe".

<?xml version="1.0" encoding="UTF-8" ?> 
<company xmlns="companyNS" name="MegaCorp" 
  employeeOfTheMonth="E0003">
  <departments name="Advanced Technologies" location="NY" number="123">
    <employees name="John Jones" SN="E0001"/>
    <employees name="Jane Doe" SN="E0003"/>
    <employees name="Al Smith" SN="E0004" manager="true"/>
  </departments>
</company>

L'élément racine de ce schéma est une compagnie. La compagnie contient des départements, et chaque département contient des employés. Chaque élément a un nombre d'attributs pour y stocker des valeurs comme le nom, un numéro de série et ainsi de suite. Finalement, la compagnie a également un attribut IDREF qui identifie un des employés comme "employeeOfTheMonth".

<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  xmlns:sdoxml="commonj.sdo/xml"
  xmlns:company="companyNS"
  targetNamespace="companyNS">
  <xsd:element name="company" type="company:CompanyType"/>
  <xsd:complexType name="CompanyType">
    <xsd:sequence>
      <xsd:element name="departments" type="company:DepartmentType" 
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="employeeOfTheMonth" type="xsd:IDREF" 
      sdoxml:propertyType="company:EmployeeType"/> 
  </xsd:complexType>
  <xsd:complexType name="DepartmentType">
    <xsd:sequence>
      <xsd:element name="employees" type="company:EmployeeType"  
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="location" type="xsd:string"/>
    <xsd:attribute name="number" type="xsd:int"/>
  </xsd:complexType>
  <xsd:complexType name="EmployeeType">
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="SN" type="xsd:ID"/>
    <xsd:attribute name="manager" type="xsd:boolean"/>
  </xsd:complexType>
</xsd:schema>

Un Service d'Accès de Données XML voit ce schéma comme un SDO. Les attributs comme "name" deviennent des propriétés primaires, les séquences d'employés deviennent une relation de contenu à multiples valeurs, et ainsi de suite. Notez que les relations de contenu sont représentées comme un type complexe contenu dans un autre, où les références non-contenues sont représentées en terme d'ID et d'IDREF, avec un attribut sdoxml:propertyType spécial spécifiant le type de la référence non-contenue.



Fixe et Récupère les Valeurs des Propriétés

Les exemples suivants présument que $compagnie est la racine d'un arbre d'objets de données créés depuis le schéma et le document montré ci-dessus.

Exemple #1 Accès via les noms de Propriété

Les propriétés des objets de données peuvent être accéder en utilisant la syntaxe d'accès de propriété d'objet. L'exemple fixe le nom de compagnie à "Acme".

<?php
$company
->name 'Acme';
?>

Exemple #2 Accès via le nom de la propriété en tant que tableau indexé

Nous pouvons également accéder aux propriétés en utilisant un tableau associatif. La forme la plus simple est d'utiliser le nom de la propriété dans le tableau indexé. Par exemple, ce qui suit définit le nom de la compagnie et récupère l'"employeeOfTheMonth".

<?php
$company
['name'] = 'UltraCorp';
$eotm $company['employeeOfTheMonth'];
?>

Exemple #3 Itération d'objet de données

Vous pouvons passer en revue les propriétés d'un objet de données en utilisant l'instruction foreach.

<?php
  $eotm 
$company->employeeOfTheMonth;
  foreach (
$eotm as $name => $value) {
      echo 
"$name$value\n";
  }
?>

Affichera :

name: Jane Doe
SN: E0003

La propriété "manager" n'est pas affichées, car elle n'a pas été spécifiée.

Exemple #4 Accès à une propriété à valeurs multiples par le nom

Les propriétés à valeurs multiples d'un objet de données peuvent être accédées en utilisant la syntaxe des noms de propriétés de l'objet. Ce qui suit récupère la liste des départements.

<?php
$departments 
$company->departments;
?>

Exemple #5 Accès aux éléments à valeurs multiples

Nous pouvons accéder aux éléments individuels des propriétés à valeurs multiples en utilisant la syntaxe des tableaux. Ce qui suit permet d'accéder au premier département de la compagnie.

<?php
$ad_tech_dept 
$company->departments[0];
?>

Exemple #6 Itération d'une propriété à valeurs multiples

Les propriétés à valeurs multiples peuvent être passées en revue en utilisant l'instruction foreach.

<?php
  
foreach ($company->departments as $department) {
    
// ...
  
}
?>

Chaque itération assignera le prochain département de la liste dans la variable $department.

Exemple #7 Accès aux propriétés chaînées

Nous pouvons chaîner les références des propriétés sur une seule ligne. Ce qui suit définit et récupère le nom du premier département.

<?php
  $company
->departments[0]->name 'Emerging Technologies';
  
$dept_name $company->departments[0]->name;
?>

En utilisant la syntaxe des tableaux associatifs, c'est l'équivalent de

<?php
  $company
['departments'][0]['name'] = 'Emerging Technologies';
  
$dept_name $company['departments'][0]['name'];
?>

Dans tous les cas, la variable dept_name est définie à "Emerging Technologies".

Exemple #8 Navigation XPath

Le tableau associatif indexé peut être une expression façon XPath. Les expressions valides sont définies par une sous définition d'XPath.

Deux façons d'indexations de propriétés à valeurs multiples sont supportées. La première est la syntaxe de tableau XPath standard dont l'index commence à 0, la seconde est une extension SDO à XPath avec un index qui commence à 0. La syntaxe standard est :

<?php
  $jane_doe 
$company["departments[1]/employees[2]"];
?>

et la syntaxe de l'extension SDO XPath est :

<?php
  $jane_doe 
$company["departments.0/employees.1"];
?>

Les deux exemples ci-dessus récupèrent le second employé du premier département.

Exemple #9 Requête XPath

Nous pouvons utiliser XPath pour effectuer une requête et ainsi identifier des parties d'un objet de données basé sur des données instanciées. Ce qui suit récupère le manager depuis le département "Advanced Technologies".

<?php
 $ad_tech_mgr 

  
$company["departments[name='Advanced Technologies']/employees[manager=true]"];
?>

Exemple #10 Création d'objets de données fils

Un objet de données peut être une fraction pour ces objets de données fils. Un objet de données fils est automatiquement une partie des données. Ce qui suit ajoute un nouvel employé au département "Advanced Technologies".

<?php
  $ad_tech_dept 
$company["departments[name='Advanced Technologies']"];
  
$new_hire $ad_tech_dept->createDataObject('employees');
  
$new_hire->name 'John Johnson';
  
$new_hire->SN 'E0005';
  
$new_hire->manager false;
?>

Exemple #11 Effacement d'une propriété primitive

Nous pouvons utiliser la fonction isset() et unset() pour tester et effacer des éléments de l'objet de données.

Ce qui suit efface le nom du premier département.

<?php
  
unset($company->departments[0]->name);
?>

Exemple #12 Effacement d'un objet de données

La fonction unset() peut également être utilisée pour effacer un objet de données de l'arbre. L'exemple suivant montre comment John Jones à quitter la compagnie...

<?php
  
unset($company->departments[0]->employees[0]);
?>

Exemple #13 Effacement d'un objet de données référencé

Ce qui suit efface "employeeOfTheMonth" de la compagnie. Si c'est une relation contenue, alors l'employé sera effacé de la compagnie. (probablement pas une bonne idée que d'effacer chaque mois votre meilleur employé !) mais si c'est une relation non-contenue, l'employé référencé restera dans le département de la compagnie, mais ne sera plus accessible via la propriété "employeeOfTheMonth".

<?php
  
if (isset($company->employeeOfTheMonth)) {
    unset(
$company->employeeOfTheMonth);
  }
?>

Exemple #14 Accès via l'index de la propriété

Les propriétés de l'objet de données peuvent être accédées via leurs index en utilisant la syntaxe de tableaux. L'index de la propriété est la position dont la propriété apparaît dans le modèle (dans ce cas, le schéma XML). Nous pouvons voir dans le schéma listé ci-dessus que l'attribut du nom de la compagnie est la seconde propriété de la compagnie (l'interface SDO ne fait pas de distinction entre les attributs XML et les éléments). Ce qui suit va définir le nom de la compagnie en "Acme", avec le même résultat que lors de l'accès via le nom de la propriété.

<?php
  $company
[1] = 'Acme';
?>

L'utilisation directe de l'index dans ce cas est fragile. Normalement, la syntaxe reposant sur le nom de la propriété est préférable, mais l'index des propriétés peut être nécessaire dans des cas très spéciaux.



Travailler avec des Objets de Données en Séquence

Des objets de données en Séquence sont des SDOs peuvent tracer l'ordre des propriétés à travers les propriétés des objets de données. Ils peuvent aussi contenir des éléments de texte non structuré (élément de texte qui n'appartient à aucune des propriétés SDO). Des objets de données en Séquence sont utiles pour travailler avec des documents XML qui permettent du texte non structuré (c'est-à-dire mixed=true) ou si les éléments peuvent être intercalée (

<A/><B/><A/>
). Ceci peut se produire par exemple lorsque le schéma définit maxOccurs>1 sur un élément qui est un complexType avec un choix de l'ordre.

Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.

Le schéma ci-dessous décrit le format d'une lettre. La lettre peut optionnellement contenir trois propriétés; date, prenom et nomFamille. Le schéma indique mixed="true" qui signifie que le texte non structuré peut être entremêlé entre les trois propriétés.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

L'exemple suivant est une instance du document lettre. Il contient les trois propriétés de la lettre; date, prenom et nomFamille, et a des éléments de texte non structuré pour l'adresse et le corps de la lettre.

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

Lorsque chargé, l'objet de données de lettre aura la séquence et les indices montrés dans la table ci-dessous :

Index de Séquence Index:Nom Valeur
0 0:date March 1, 2005
1 - Mutual of Omaha
2 - Wild Kingdom, USA
3 - Dear
4 1:firstName Casy
5 2:lastName Crocodile
6 - Please buy more shark repellent.
7 - Your premium is past due.

Pour s'assurer que la séquence des indices soit maintenue, les objets de données en séquence devraient être manipulés à travers de l'interface SDO_Sequence. Ceci permet à l'instance de l'objet de données à être manipulée en tant qu'index de séquence plutôt qu'avec un index de propriété (montré dans la table ci-dessus). Les exemples suivants assument que l'instance de la lettre a été chargée dans l'objet de données référencé par la variable $lettre.

Exemple #1 Récupération de l'interface SDO_Sequence

Nous obtenons la séquence de l'objet de données en utilisant la méthode getSequence(). La suite récupère la séquence pour l'objet de données de la lettre.

<?php
  $letter_seq 
$letter->getSequence();
?>

Tous les exemples suivants assument que la variable $lettre_seq a été assigné de la séquence pour l'objet de données de la lettre.

Exemple #2 Récupère/Fixe des valeurs de séquence

Nous pouvons récupérer et fixer des valeurs individuelles (en incluant le texte non structuré) en utilisant les index de séquence. L'exemple suivant fixe le prenom à "Snappy" et récupère la dernière valeur de séquence (le texte non structuré, "Votre prime est passée date.").

<?php
  $letter_seq
[4] = 'Snappy';
  
$text $letter_seq[count($letter_seq) - 1];
?>

Exemple #3 Itération de Séquence

Nous pouvons itérer à travers des valeurs de séquence individuellement en utilisant foreach. L'exemple suivant passe au travers des valeurs individuelles dans l'ordre séquentiel.

<?php
foreach ($letter->getSequence() as $value) {
    
// ...
}
?>

Exemple #4 Séquence versus Objet de Données

Fixer des valeurs à travers l'interface d'objet de données peut amener à ce que les valeurs ne fassent pas partie de la séquence. Une valeur fixée avec un objet de données sera seulement accessible avec la séquence si la propriété était déjà une partie de la séquence. L'exemple suivant fixe le nomFamille à travers de l'objet de données et le récupère par la séquence. Ceci est correct puisque nomFamille existe déjà dans la séquence. S'il n'avait pas été fixé, alors nomFamille devrait être fixé à "Smith", mais ne devrait pas faire partie de la séquence.

<?php
  $letter
[2] = 'Smith';
  
$last_name $letter_seq[5];
?>

Exemple #5 Ajout à une séquence

Nous pouvons ajouter de nouvelles valeurs à une séquence en utilisant la méthode SDO_Sequence::insert(). Les exemples suivants assument que les propriétés "prenom" et "nomFamille" sont non fixées.

<?php
  
// Ajoute une valeur prenom à la séquence
  // valeur : 'Smith'
  // index séquence : NULL (ajout)
  // identifiant de propriété : 1 (index propriété prenom)
  
$lettre_seq->insert('Smith'NULL1);

  
// Ajoute une valeur nomFamille à la séquence
  // valeur : 'Jones'
  // index séquence : NULL (ajout)
  // identifiant de propriété : 'nomFamille' (nom propriété nomFamille)
  
$lettre_seq->insert('Jones'NULL'nomFamille');

  
// Ajoute du texte non structuré
  // valeur : 'Annule Inscription.'
  // index séquence : absent (ajout)
  // identifiant de propriété : absent (texte non structuré)
  
$lettre_seq->insert('Annule Inscription.');

  
// Ajoute du nouveau texte non structuré. Les séquence valeurs suivantes
  // d'ordre sont décalées vers le haut
  // valeur : 'À l'attention de :'
  // index séquence : 1 (insert comme second élément)
  // identifiant de propriété : absent (texte non structuré)
  
$lettre_seq->insert('À l'attention de :', 1);
?>

Exemple #6 Suppression d'une séquence

Nous pouvons utiliser les fonctions isset() et unset() pour tester et supprimer des items de la séquence (Note : unset() laisse actuellement les valeurs dans l'objet de données, mais ce comportement est devrait changer et supprimer les données de l'objet de données). Une séquence se comporte comme une liste contiguë; donc, la suppression d'un item au milieu de la liste décalera les entrées d'un indice plus haut vers le bas. L'exemple suivant teste pour vérifier si la première séquence d'élément est fixé et la détruit si elle l'est.

<?php
  
if (isset($letter_seq[0])) {
    unset(
$letter_seq[0]);
  }
?>



Réflexion sur des Objets de Service de Données

Les SDOs ont une connaissance de la structure qu'ils ont créée pour la représentation (le modèle). Par exemple, une Compagnie SDO créée utilisant le schéma de Compagnie XML ci-dessus devrait seulement être permis de contenir des objets de données DepartementType qui à leur tour devrait contenir seulement des objets de données EmployeType.

Parfois, il est utile d'être capable d'accéder ces informations de modèle à l'exécution. Par exemple, cela pourrait être utilisé pour générer automatiquement une interface d'usager pour remplir un objet de données. Les informations de modèle sont accédées en utilisant la réflexion.

Exemple #1 Réflexion sur les Objets de Données

L'exemple suivant montre comment nous pouvons utiliser la réflexion sur un objet de données vide Employe.

<?php
  
// Crée l'objet de données employe (par exemple, à partir de Service d'Accès
  // de données XML)
  
$employee = ...;
  
$reflection = new SDO_Model_ReflectionDataObject($employee);
  print(
$reflection);
?>

L'exemple ci-dessus va afficher :

object(SDO_Model_ReflectionDataObject)#4 { - ROOT OBJECT - Type { 
companyNS:EmployeeType[3] { commonj.sdo:String $name; 
commonj.sdo:String $SN; commonj.sdo:Boolean $manager; } }

L'utilisation de print sur SDO_Model_ReflectionDataObject écrit à l'écran les données du modèle de l'objet. Nous pouvons voir à la sortie que le type compagnieNS:EmployeType a trois propriétés et nous pouvons voir le noms de ces propriétés avec leur type. Notez, les types primitifs sont listés en tant que types SDO (par exemple, commonj.sdo namespace, String type). Cela vaut la peine de noter que c'est le modèle SDO et lorsqu'ils sont utilisés dans l'application, ils peuvent être traités comme des types équivalent PHP (par exemple, chaîne de caractères et booléen).

Exemple #2 Accès d'informations de type

Nous pouvons effectuer une requête de type d'informations sur un objet de données en utilisant la réflexion. L'exemple suivant vérifie que le type corresponde à l'objet de données plutôt qu'à une primitive et alors itère à travers des propriétés de type, en affichant le nom de chaque propriété ($type et $property sont respectivement des objets SDO_Model_Type et SDO_Model_Property).

<?php
    
// Crée l'objet de données employe (par exemple, à partir de Service d'Accès
    // de données XML)
    
$employee = ...;
    
$reflection = new SDO_Model_ReflectionDataObject($employee);
    
$type $reflection->getType();
    if (! 
$type->isDataType()) {
        foreach (
$type->getProperties() as $property) {
            print 
$property->getName() . "\n";
        }
    }
?>

L'exemple ci-dessus va afficher :

name
SN
manager




Fonctions SDO

Services d'Accès de Données

La table ci-dessous liste les Services d'Accès de Données SDO actuellement fournis :

Nom DAS Description
SDO_DAS_XML Un Service d'Accès de Données XML supportant la lecture/écriture SDOs comme documents XML.
SDO_DAS_Relational Un Service d'Accès de Données basé sur PDO supportant la lecture/écriture SDO aux bases de données relationnelles. Implémente une politique optimiste de mises à jour concourante.

Classes pré-définies

SDO consiste en trois blocs d'interface. Le premier bloc couvre les interfaces pour utiliser avec les applications typiques SDO. Celles-ci sont identifiées par le préfixe de paquet 'SDO_'. Le deuxième bloc est celui qui utilise les interfaces qui sont utilisées pour la réflexion, et travaille avec le modèle d'objet de données. Ces interfaces sont identifiées par le préfixe de paquet 'SDO_Model_'. Finalement, le troisième bloc est celui qui utilise les interfaces qui sont utilisées par les implémentations de Service d'Accès de Données et sont identifiées par le préfixe de paquet 'SDO_DAS_'. La majorité des utilisateurs SDO n'auront pas besoin d'utiliser ou de comprendre les interfaces 'SDO_Model_' et 'SDO_DAS_'.

Interface Application pour programmer SDO

SDO_DataObject

L'interface principale dans laquelle les objets de données sont manipulés. En plus des méthode ci-dessous, SDO_DataObjet étend les interfaces ArrayAccess, SDO_PropertyAccess (définit les méthodes __get() / __set() pour surcharger l'accès aux propriétés), Iterator et Countable.

Méthodes

  • getSequence : récupère la séquence pour l'objet de données

  • createDataObject : crée un objet de données enfant

  • clear : détruit les propriétés d'un objet de données

  • getContainer : récupère le conteneur (aussi connu en tant que 'parent') de l'objet de données

  • getTypeName : récupère le nom du type de cet objet de données

  • getTypeNamespaceURI : récupère l'URI de l'espace de noms du type de cet objet de données

SDO_Sequence

L'interface avec laquelle on peut accéder aux objets de données en séquence pour préserver l'ordre parmi les propriétés de l'objet de données et pour permettre le texte non structuré. SDO_Sequence préserve les indices contigus et donc l'insertion ou la suppression d'éléments peut entraîner un décalage des autres éléments vers le haut ou vers le bas. En plus des méthodes ci-dessous, SDO_Sequence étend les interfaces ArrayAccess, Interator et Countable.

Méthodes

  • getProperty : récupère la propriété pour un index de séquence donné

  • move : déplace un élément d'un index vers un autre

  • insert : insère une nouvelle valeur dans la séquence

SDO_List

L'interface dans lequel les propriétés de plusieurs valeurs sont manipulées. En plus des méthodes définies ci-dessous, SDO_List étend ArrayAcces, Iterator et Countable. SDO_List préserve les indices contigus et donc l'insertion ou la suppression des éléments peut décaler les autres éléments vers le haut ou vers le bas.

Méthodes

  • insert : insertion d'une nouvelle valeur dans la liste

SDO_DataFactory

L'interface dans lequel les objets de données peuvent être créés. Un Service d'Accès de Données est responsable de remplir le modèle (c'est-à-dire, la configuration des classe de données avec le type et les informations de structure pour les objets de données qu'elle peut créer.) pour les classes et peut alors optionnellement retourner une instance ou une implémentation de l'interface de SDO_DataFactory.

Méthodes

  • create : crée un nouvel objet de données

SDO_Exception

Une exception SDO_Exception est lancée lorsque la demande de l'appelant ne peut être honorée. Les sous classes de SDO_Exception sont :

  • SDO_PropertyNotSetException - la propriété spécifiée existe mais n'a pas été définie ou n'a pas de valeur par défaut

  • SDO_PropertyNotFoundException - la propriété spécifiée ne fait pas partie du type de l'objet de données

  • SDO_TypeNotFoundException - l'URI d'espace de noms spécifiée ou le nom du type est inconnu

  • SDO_InvalidConversionException - la conversion entre les types d'assignation n'est pas possible

  • SDO_IndexOutOfBoundsException - l'index numérique d'un objet de données, d'une séquence ou d'une liste n'est pas dans un intervalle valide

  • SDO_UnsupportedOperationException - la demande n'a pû être honorée car elle n'est pas autorisée, par exemple, une tentative de définition d'une propriété en lecture seule

Méthodes

Une méthode est ajoutée à celles héritées depuis la classe interne Exception :

  • getCause : récupère la cause de cette exception SDO_Exception

Interfaces de réflexion d'application pour programmer SDO

SDO_Model_ReflectionDataObject

L'interface principale est utilisée pour la réflexion d'une instance d'objet de données pour obtenir son type de modèle et les informations de propriété. Elle est désignée pour suivre le motif de réflexion introduit dans PHP 5.

Constructeur

  • __construct : construit un nouvel SDO_Model_ReflectionDataObject.

Méthodes

  • export : récupère une chaîne décrivant l'objet de données.

  • getType : récupère le SDO_Model_Type pour l'objet de données.

  • getInstanceProperties : récupère les propriétés de l'instance de l'objet de données.

  • getContainmentProperty : récupère la propriété qui définit la relation contenue de l'objet de données.

SDO_Model_Type

L'interface dans lequel les informations de type de l'objet de données peuvent être récupérées. Cette interface peut être utilisée pour trouver le nom de type et l'espace de nom URI du type, si le type autorise l'ouverture du contenu, et ainsi de suite.

Méthodes

  • getName : récupère le nom du type.

  • getNamespaceURI : récupère l'espace de nom URI du type.

  • isInstance : vérifie pour un objet de données s'il est une instance du type.

  • getProperties : récupère les propriétés du type.

  • getProperty : récupère une propriété de type.

  • isDataType : vérifie pour voir si le type est une primitive de type scalaire.

  • isSequencedType : vérifie pour voir s'il s'agit d'un type de séquence.

  • isOpenType : vérifie pour voir s'il s'agit d'un type ouvert.

  • isAbstractType : vérifie pour voir s'il s'agit d'un type d'abstraction.

  • getBaseType : récupère le type de base de ce type (si un existe).

SDO_Model_Property

L'interface dans lequel les informations de propriété d'objet peuvent être récupérées. Cette interface peut être utilisée pour trouver le type d'une propriété, si une propriété a une valeur par défaut, si une propriété est contenue ou référencée par son parent, sa cardinalité, et ainsi de suite.

Méthodes

  • getName : récupère le nom de la propriété.

  • getType : récupère le type de la propriété.

  • isMany : vérifie pour voir si la propriété est de valeurs multiples.

  • isContainment : vérifie pour voir si la propriété décrit une relation contenue.

  • getContainingType : récupère le type qui contient cette propriété.

  • getDefault : récupère la valeur par défaut pour une propriété.

Interfaces de développeur Service d'Accès de Données SDO

SDO_DAS_DataObject

L'interface dans lequel un Service d'Accès de Données peut accéder à SDO_DAS_ChangeSummary de l'objet de données. Le résumé de changement est utilisé par le Service d'Accès de Données pour vérifier les conflits lors des applications des changements à une source de données.

Méthodes

  • getChangeSummary : récupère le résumé de changement pour un objet de données

SDO_DAS_ChangeSummary

L'interface dans lequel l'historique de changement d'un objet de données est accédé. Le résumé de changement contient des informations pour n'importe quelles modifications sur un objet de données qui s'est produites lorsque la journalisation a débuté. Dans le cas de suppression ou de modification, les dernières valeurs sont aussi gardées dans le résumé de changement.

Si la journalisation n'est plus active, alors le résumé de changement contient seulement les changements faits jusqu'au point où la journalisation fut désactivée. La réactivation de la journalisation supprime le résumé de changement. Cela peut être utile lorsqu'un certain nombre de changements ont été écris par un DAS et un objet de données qui est réutilisé.

Méthodes

  • beginLogging : démarre la journalisation des changements faits à l'objet de données

  • endLogging : termine la journalisation des changements faits à l'objet de données

  • isLogging : vérifie pour voir si la journalisation des changements est activée

  • getChangedDataObjects : récupère une liste de d'objets de données qui ont été changés

  • getChangeType : récupère le type de changement qui a été fait à l'objet de données

  • getOldValues : récupère une liste des anciennes valeurs pour un objet de données

  • getOldContainer : récupère un ancien conteneur d'objet de données pour un objet de données supprimé

SDO_DAS_Setting

L'interface dans lequel l'ancienne valeur pour une propriété est accédée. Une liste des configurations est retournée par le résumé de changement dont la méthode est getOldValues().

Méthodes

  • getPropertyIndex : récupère l'index pour la propriété changée

  • getPropertyName : récupère le nom pour la propriété changée

  • getValue : récupère l'ancienne valeur pour la propriété changée

  • getListIndex : récupère la liste des index pour l'ancienne valeur si elle faisait partie d'une propriété à valeurs multiples

  • isSet : vérifie si la propriété était fixée avant d'être modifiée

SDO_DAS_DataFactory

L'interface pour construire le modèle pour un SDO_DataObjet. Le SDO_DAS_DataFactory est une classe abstraite fournissant une méthode statique qui retourne une classe d'implémentation de données concrète. L'implémentation est utilisée par les Services d'Accès de Données pour créer un modèle SDO à partir de leur modèle. Par exemple, un Service d'Accès de Données Relationnel peut créer et remplir un modèle SDO_DAS_DataFactory basé sur un schéma pour une base de données relationnelle.

Méthodes

  • getDataFactory : méthodes statiques pour obtenir une instance de classe concrète de données

  • addType : ajoute un nouveau type au modèle SDO

  • addPropertyToType : ajoute une nouvelle propriété à une définition de type dans le modèle SDO


SDO_DAS_ChangeSummary::beginLogging

(^)

SDO_DAS_ChangeSummary::beginLogging Commence la journalisation

Description

void SDO_DAS_ChangeSummary::beginLogging ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Commence la journalisation des changements effectués au SDO_DataObject.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune.



SDO_DAS_ChangeSummary::endLogging

(^)

SDO_DAS_ChangeSummary::endLogging Termine la journalisation

Description

void SDO_DAS_ChangeSummary::endLogging ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Termine la journalisation des changements effectués au SDO_DataObject.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune.



SDO_DAS_ChangeSummary::getChangeType

(^)

SDO_DAS_ChangeSummary::getChangeType Récupère le type de changement qui a été fait à l'objet de données

Description

int SDO_DAS_ChangeSummary::getChangeType ( SDO_DataObject $dataObject )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le type de changement qui a été fait à l'objet SDO_DataObject fourni.

Liste de paramètres

dataObject

Le SDO_DataObject qui a été modifié.

Valeurs de retour

Le type de changement qui a été fait. Le type de changement est exprimé comme une énumération et sera une des quatre valeurs suivantes :

  • SDO_DAS_ChangeSummary::NONE

  • SDO_DAS_ChangeSummary::MODIFICATION

  • SDO_DAS_ChangeSummary::ADDITION

  • SDO_DAS_ChangeSummary::DELETION



SDO_DAS_ChangeSummary::getChangedDataObjects

(^)

SDO_DAS_ChangeSummary::getChangedDataObjects Récupère une liste de d'objets de données qui ont été changés

Description

SDO_List SDO_DAS_ChangeSummary::getChangedDataObjects ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un SDO_List de SDO_DataObjects qui ont été changés. Ces objets de données peuvent alors être utilisés pour identifier les types de changements effectués de chacun, avec les anciennes valeurs.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un SDO_List de SDO_DataObjects.



SDO_DAS_ChangeSummary::getOldContainer

(^)

SDO_DAS_ChangeSummary::getOldContainer Récupère un ancien conteneur d'objet de données pour un objet de données supprimé

Description

SDO_DataObject SDO_DAS_ChangeSummary::getOldContainer ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un ancien conteneur d'objet (SDO_DataObject) pour un SDO_DataObject supprimé.

Liste de paramètres

data_object

Le SDO_DataObject qui a été supprimé et pour lequel nous voulons identifier le conteneur.

Valeurs de retour

L'ancien conteneur d'objet de données de l'objet SDO_DataObject supprimé.



SDO_DAS_ChangeSummary::getOldValues

(^)

SDO_DAS_ChangeSummary::getOldValues Récupère une liste des anciennes valeurs pour un objet de données

Description

SDO_List SDO_DAS_ChangeSummary::getOldValues ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère une liste des anciennes valeurs pour l'objet SDO_DataObject donné. Retourne une liste SDO_DAS_Settings décrivant les anciennes valeurs pour les propriétés changées de SDO_DataObject.

Liste de paramètres

data_object

L'objet de données qui a été changé.

Valeurs de retour

Une liste de SDO_DAS_Settings décrivant les anciennes valeurs pour les propriétés changées de SDO_DataObject. Si le type de changement est SDO_DAS_ChangeSummary::ADDITION, sa liste est vide.



SDO_DAS_ChangeSummary::isLogging

(^)

SDO_DAS_ChangeSummary::isLogging Vérifie pour voir si la journalisation des changements est activée

Description

bool SDO_DAS_ChangeSummary::isLogging ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la journalisation des changements est activée.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la journalisation est activée, autrement retourne FALSE.



SDO_DAS_DataFactory::addPropertyToType

(^)

SDO_DAS_DataFactory::addPropertyToType Ajoute une nouvelle propriété à une définition de type

Description

void SDO_DAS_DataFactory::addPropertyToType ( string $parent_type_namespace_uri , string $parent_type_name , string $property_name , string $type_namespace_uri , string $type_name [, array $options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute une nouvelle propriété à une définition de type. Le type doit être déjà connu de SDO_DAS_DataFactory (c'est-à-dire, a été ajouté en utilisant addType()). La propriété devient une propriété du type. Voici comment le modèle de graphique pour la structure d'un SDO_DataObject est construit.

Liste de paramètres

parent_type_namespace_uri

L'espace de nom URI du type parent.

parent_type_name

Le nom du type pour le type parent.

property_name

Le nom par lequel la propriété sera connue dans le type parent.

type_namespace_uri

L'espace de nom URI pour le type de la propriété.

type_name

Le nom du type pour le type de la propriété.

options

Ce tableau contient une ou plusieurs paires de clé=>valeur pour fixer les valeurs des attributs pour la propriété. Les clés optionnelles sont :

many

Un drapeau pour dire si la propriété est de valeurs multiples. Une valeur TRUE ajoute la propriété en tant que propriété à valeurs multiples (la valeur par défaut est FALSE).

readOnly

Un drapeau pour dire si la propriété est en lecture seule. Une valeur TRUE signifie que la valeur de la propriété ne peut être modifiée à travers des APIs de l'application SDO (la valeur par défaut est FALSE).

containment

Un drapeau pour dire si la propriété est contenue par le parent. Une valeur TRUE signifie que la propriété est contenue par le parent. Une valeur FALSE résulte en une référence non contenue (la valeur par défaut est TRUE). Ce drapeau est seulement interprété lors de l'ajout de propriétés qui sont des types d'objet de données, autrement il est ignoré.

default

Une valeur par défaut de la propriété. L'omission de cette clé signifie que la propriété ne possède pas de valeur par défaut. Une propriété peut seulement avoir une valeur par défaut s'il s'agit d'un type de données de valeur simple (primitive).

Valeurs de retour

Aucune.

Historique

Version Description
0.5.2 Les paramètres optionnels many, readOnly et containment sont obsolètes en faveur du tableau options.

Exemples

Exemple #1 Exemple avec SDO_DAS_DataFactory::addPropertyToType()

L'exemple suivant ajoute une propriété "addressline" au type Person. Le type person est identifié par son espace de nom, "PersonNS" et son nom de type "PersonType". Le type de la propriété "addressline" est de valeurs multiples (primitive) avec un espace de nom "commonj.sdo" et le nom de type est "String".

<?php
  $df
->addPropertyToType('PersonNS''PersonType',
    
'addressline''commonj.sdo''String', array('many'=>true));
?>



SDO_DAS_DataFactory::addType

(^)

SDO_DAS_DataFactory::addType Ajoute un nouveau type à un modèle

Description

void SDO_DAS_DataFactory::addType ( string $type_namespace_uri , string $type_name [, array $options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un nouveau type à SDO_DAS_DataFactory, défini par son espace de nom et son type de nom. Le type devient une part du modèle de d'objets de données que la classe peut créer.

Liste de paramètres

type_namespace_uri

L'espace de nom du type.

type_name

Le nom du type.

options

Ce tableau contient une ou plusieurs paires clé=>valeur pour définir les valeurs de l'attribut de ce type. Les mots-clé optionnels sont :

open

Un flag pour dire si le type est ouvert. Un SDO_DataObject dont le type est ouvert peut avoir des propriétés ajoutées qui ne sont pas décrites par le type. Cette possibilité est utilisée pour supporter le travail avec les documents XML dont les schémas supportent le contenu ouvert tel que décrit par l'élément <xsd:any>. La valeur par défaut est "false".

sequenced

Un flag pour dire si le type est séquencé. Les types séquencés peuvent préserver l'ordre des propriétés et peuvent contenir du texte non structuré. La valeur par défaut est "false". Pour plus d'informations sur les types séquencés, lisez la section sur le travail avec les objets de données séquencés.

basetype

Si spécifié, un tableau d'URI d'espace de noms et de noms de type pour le type depuis lequel ce type est dérivé. Un exemple d'utilisation des types de base est lorsque un type dérivé dans un schéma XML hérite d'un autre type en utilisant <extension base="...">.

Valeurs de retour

Aucune.

Exemples

Exemple #1 Exemple avec SDO_DAS_DataFactory::addType()

L'exemple suivant ajoute un nouvel objet de données de "CompagnieType" à l'endroit où appartient l'espace de nom "CompagnieNS".

<?php
  $df
->addType('CompagnieNS''CompagnieType');
?>



SDO_DAS_DataFactory::getDataFactory

(^)

SDO_DAS_DataFactory::getDataFactory Récupère l'instance de classe de données

Description

SDO_DAS_DataFactory SDO_DAS_DataFactory::getDataFactory ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Méthode statique pour obtenir une instance de SDO_DAS_DataFactory. Cette instance est initialement configuré avec les types de SDO basic. Un Service d'Accès de Données est responsable du remplissage du modèle de classe de données et permet ainsi aux applications PHP de créer des SDOs basés sur un modèle à travers de l'interface SDO_DataFactory. Les applications PHP devraient toujours obtenir une classe de données d'un Service d'Accès de Données configuré, et non à travers cette interface.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un SDO_DAS_DataFactory.



SDO_DAS_DataObject::getChangeSummary

(^)

SDO_DAS_DataObject::getChangeSummary Récupère le résumé de changement pour un objet de données

Description

SDO_DAS_ChangeSummary SDO_DAS_DataObject::getChangeSummary ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_DAS_ChangeSummary pour un SDO_DAS_DataObject ou NULL s'il n'en a pas.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_DAS_ChangeSummary pour un SDO_DAS_DataObject ou NULL s'il n'en a pas.



SDO_DAS_Setting::getListIndex

(^)

SDO_DAS_Setting::getListIndex Récupère la liste des index pour une propriété de valeurs multiples changée

Description

int SDO_DAS_Setting::getListIndex ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la liste des index pour une modification faite sur un élément de propriété à valeurs multiples. Par exemple, si nous avions modifié le troisième élément d'une propriété à valeurs multiples, nous pourrions obtenir un SDO_DAS_Setting pour un résumé du changement correspondant à la modification. Un appel à getListIndex() sur cette configuration retournerait la valeur 2 (les listes commencent leur indexation à zéro).

Liste de paramètres

Aucun.

Valeurs de retour

La liste des index pour un élément d'une propriété à valeurs multiples pour laquelle a été changée.



SDO_DAS_Setting::getPropertyIndex

(^)

SDO_DAS_Setting::getPropertyIndex Récupère l'index de propriété pour la propriété changée

Description

int SDO_DAS_Setting::getPropertyIndex ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère l'index de propriété pour la propriété changée. Cet index identifie la propriété pour laquelle elle a été modifiée dans l'objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

L'index de propriété pour une propriété changée.



SDO_DAS_Setting::getPropertyName

(^)

SDO_DAS_Setting::getPropertyName Récupère le nom de la propriété pour la propriété changée

Description

string SDO_DAS_Setting::getPropertyName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le nom de la propriété pour la propriété changée. Le nom identifie la propriété pour laquelle elle a été modifiée dans l'objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

Le nom de la propriété pour une propriété changée.



SDO_DAS_Setting::getValue

(^)

SDO_DAS_Setting::getValue Récupère l'ancienne valeur pour la propriété changée

Description

mixed SDO_DAS_Setting::getValue ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère l'ancienne valeur pour la propriété changée. Cela peut être utilisé par le Service d'Accès de Données lors de l'écriture des mises à jours à une source de données. Le DAS utilise l'ancienne valeur pour détecter les conflits en la comparant avec la valeur courante dans la source de données. Si elles ne concordent pas, alors la source de données a été mise à jour depuis que l'objet de données fut rempli, et alors l'écriture de nouvelles mises à jour risque de compromettre l'intégrité des données.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne l'ancienne valeur de la propriété changée.



SDO_DAS_Setting::isSet

(^)

SDO_DAS_Setting::isSet Vérifie pour voir si la propriété était fixée avant d'être modifiée

Description

bool SDO_DAS_Setting::isSet ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété était fixée avant d'être modifiée. Si elle avait été fixée avant d'être modifiée, alors le SDO_DAS_Setting contiendra aussi l'ancienne valeur.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la propriété était fixée avant qu'elle soit modifiée, autrement retourne FALSE.



SDO_DataFactory::create

(^)

SDO_DataFactory::create Crée un SDO_DataObject

Description

void SDO_DataFactory::create ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel SDO_DataObject donné par l'espace de nom URI et le nom du type de l'objet de données.

Liste de paramètres

type_namespace_uri

L'espace de nom du type.

type_name

Le nom du type.

Valeurs de retour

Retourne le nouvel SDO_DataObject créé.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si le namespaceURI et typeName ne correspondent pas à un type connu dans cette classe de données.



SDO_DataObject::clear

(^)

SDO_DataObject::clear Détruit les propriétés d'un SDO_DataObject

Description

void SDO_DataObject::clear ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Détruit les propriétés d'un SDO_DataObject. Les propriétés en lecture seule ne sont pas affectées. Les appels ultérieurs à isset() pour l'objet de données retournera FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune valeur retournée.



SDO_DataObject::createDataObject

(^)

SDO_DataObject::createDataObject Crée un enfant SDO_DataObject

Description

SDO_DataObject SDO_DataObject::createDataObject ( mixed $identifier )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un enfant SDO_DataObject du type par défaut pour la propriété identifiée. L'objet de données est automatiquement inséré dans l'arbre et une référence l'identifiant est retournée.

Liste de paramètres

identifier

Identifie la propriété pour le type de l'objet de données qui sera créé. Peut être soit un nom (chaîne de caractères), un index (entier) ou un SDO_Model_Property.

Valeurs de retour

Retourne le nouvel SDO_DataObject créé.

Erreurs / Exceptions

SDO_PropertyNotFoundException

Émis si l'identifiant ne correspond pas à une propriété de l'objet de données.



SDO_DataObject::getContainer

(^)

SDO_DataObject::getContainer Récupère un conteneur de l'objet de données

Description

SDO_DataObject SDO_DataObject::getContainer ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un objet de données qui contient cet objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_DataObject qui contient ce SDO_DataObject ou retourne NULL s'il s'agit de la racine SDO_DataObject (c'est-à-dire qu'il ne possède pas de conteneur).



SDO_DataObject::getSequence

(^)

SDO_DataObject::getSequence Récupère la séquence pour un objet de données

Description

SDO_Sequence SDO_DataObject::getSequence ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le SDO_Sequence pour ce SDO_DataObject. L'accès à SDO_DataObject à travers de l'interface SDO_Sequence agit sur la même instance SDO_DataObject de données, mais préserve l'ordre à travers les propriétés.

Liste de paramètres

Aucun.

Valeurs de retour

Le SDO_Sequence pour ce SDO_DataObject ou retourne NULL si le SDO_DataObject n'est pas un type que peut avoir une séquence.



SDO_DataObject::getTypeName

(^)

SDO_DataObject::getTypeName Retourne le nom du type d'un objet de données

Description

string SDO_DataObject::getTypeName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom du type d'un objet de données. Une méthode plus commode correspondant à SDO_Model_ReflectionDataObject::getType().getName().

Liste de paramètres

Aucun.

Valeurs de retour

Le nom du type d'un objet de données.



SDO_DataObject::getTypeNamespaceURI

(^)

SDO_DataObject::getTypeNamespaceURI Retourne l'espace de nom URI du type d'un objet de données

Description

string SDO_DataObject::getTypeNamespaceURI ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'espace de nom URI du type d'un objet de données. Une méthode plus commode correspondant à SDO_Model_ReflectionDataObject::getType().getNamespaceURI().

Liste de paramètres

Aucun.

Valeurs de retour

L'espace de nom URI du type d'un objet de données.



SDO_Exception::getCause

(^)

SDO_Exception::getCause Récupère la cause d'une exception

Description

mixed SDO_Exception::getCause ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la cause de cette exception ou NULL si la cause est inexistante ou inconnue. Normalement, la cause sera un objet SDO_CPPException, qui peut être utilisé pour obtenir des informations de diagnostique additionnelles.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne la cause de cette exception ou NULL si la cause est inexistante ou inconnue.



SDO_List::insert

(^)

SDO_List::insert Insère dans une liste

Description

void SDO_List::insert ( mixed $value [, int $index ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère un nouvel évènement à une position spécifiée dans la liste. Tous les items qui suivent dans la liste sont déplacés vers le haut.

Liste de paramètres

value

La nouvelle valeur à être insérée. Cela peut soit être une primitive ou un SDO_DataObject.

index

La position à laquelle insérer le nouvel évènement. Si cet argument n'est pas spécifié alors la nouvelle valeur sera ajoutée à la suite.

Valeurs de retour

Aucun.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la liste est inférieur à zéro ou supérieur à sa taille.

SDO_InvalidConversionException

Émis si le type de la nouvelle valeur ne correspond pas avec le type de la liste (par exemple, le type de propriété de valeurs multiples que la liste représente).



SDO_Model_Property::getContainingType

(^)

SDO_Model_Property::getContainingType Récupère le SDO_Model_Type qui contient cette propriété

Description

SDO_Model_Type SDO_Model_Property::getContainingType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Type qui contient cette propriété.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type qui contient cette propriété.



SDO_Model_Property::getDefault

(^)

SDO_Model_Property::getDefault Récupère la valeur par défaut pour la propriété

Description

mixed SDO_Model_Property::getDefault ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la valeur par défaut pour la propriété. Seules les propriétés de type de données primitives peuvent être des valeurs par défaut.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne la valeur par défaut pour la propriété.



SDO_Model_Property::getName

(^)

SDO_Model_Property::getName Récupère le nom de SDO_Model_Property

Description

string SDO_Model_Property::getName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom de SDO_Model_Property.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le nom de SDO_Model_Property.



SDO_Model_Property::getType

(^)

SDO_Model_Property::getType Récupère le SDO_Model_Type de la propriété

Description

SDO_Model_Type SDO_Model_Property::getType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Type de la propriété. Le SDO_Model_Type décrit les informations de type pour la propriété, comme le nom du type, l'espace de nom URI, si c'est un type de données primitive, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type décrit par les informations de type de la propriété.



SDO_Model_Property::isContainment

(^)

SDO_Model_Property::isContainment Vérifie pour voir si la propriété définit une relation contenue

Description

bool SDO_Model_Property::isContainment ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété définit une relation contenue. Retourne TRUE si la propriété définit une relation contenue ou FALSE s'il s'agit d'une référence.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la propriété définit une relation contenue ou FALSE s'il s'agit d'une référence.



SDO_Model_Property::isMany

(^)

SDO_Model_Property::isMany Vérifie pour voir si la propriété est de valeurs multiples

Description

bool SDO_Model_Property::isMany ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété est de valeurs multiples. Retourne TRUE pour voir si la propriété est de valeurs multiples autrement, elle retourne FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE pour voir si la propriété est de valeurs multiples autrement, elle retourne FALSE.



SDO_Model_ReflectionDataObject::__construct

(^)

SDO_Model_ReflectionDataObject::__construct Construit un SDO_Model_ReflectionDataObject

Description

SDO_Model_ReflectionDataObject SDO_Model_ReflectionDataObject::__construct ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit un SDO_Model_ReflectionDataObject pour effectuer une réflexion sur un SDO_DataObject. La réflexion sur un objet SDO_DataObject donne accès à des informations à propos de son modèle. Le modèle contient des informations comme le type d'objet de données et si le type de données est en séquence (garde l'ordre des propriétés) ou ouvert (chaque instance peut avoir son modèle étendu). Le modèle contient aussi des informations sur les propriétés de l'objet de données, des valeurs par défaut qu'il peut avoir, et ainsi de suite.

Liste de paramètres

data_object

Le SDO_DataObject sur lequel on effectuera la réflexion.

Valeurs de retour

Aucun.



SDO_Model_ReflectionDataObject::export

(^)

SDO_Model_ReflectionDataObject::export Récupère une chaîne de caractères décrivant le SDO_DataObject.

Description

mixed SDO_Model_ReflectionDataObject::export ( SDO_Model_ReflectionDataObject $rdo [, bool $return ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère une chaîne de caractères décrivant le SDO_DataObject. Le comportement par défaut est d'afficher le résultat, mais si TRUE est spécifié pour return, elle est retourné en tant que chaîne de caractères.

Liste de paramètres

rdo

Un SDO_Model_ReflectionDataObject.

return

Si TRUE, retourne le résultat en tant que chaîne de caractères, autrement l'affiche.

Valeurs de retour

Retourne le résultat si TRUE est spécifié pour return, autrement NULL.



SDO_Model_ReflectionDataObject::getContainmentProperty

(^)

SDO_Model_ReflectionDataObject::getContainmentProperty Récupère la propriété qui définit la relation contenue de l'objet de données

Description

SDO_Model_Property SDO_Model_ReflectionDataObject::getContainmentProperty ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Property que contient le SDO_DataObject. Cette méthode est utilisée pour naviguer à travers la propriété du parent qui contient l'objet de données qui a été réfléchi.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Property du conteneur qui référence le SDO_DataObject ou NULL s'il s'agit de la racine SDO_DataObject.



SDO_Model_ReflectionDataObject::getInstanceProperties

(^)

SDO_Model_ReflectionDataObject::getInstanceProperties Récupère les propriétés de l'instance de SDO_DataObject

Description

array SDO_Model_ReflectionDataObject::getInstanceProperties ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère les propriétés de l'instance pour SDO_DataObject. Les propriétés de l'instance consistent en toutes les propriétés définies dans le type de l'objet de données et n'importe quelle propriété d'instance d'un contenu ouvert (si l'objet de données est un type ouvert).

Liste de paramètres

Aucun.

Valeurs de retour

Un tableau d'objets SDO_Model_Property.



SDO_Model_ReflectionDataObject::getType

(^)

SDO_Model_ReflectionDataObject::getType Récupère le SDO_Model_Type pour SDO_DataObject

Description

SDO_Model_Type SDO_Model_ReflectionDataObject::getType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le SDO_Model_Type pour SDO_DataObject. Le SDO_Model_Type contient toutes les informations à propos du type de l'objet de données, comme l'espace de nom URI, le nom du type, si le type de données est une primitive, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type pour SDO_DataObject.



SDO_Model_Type::getBaseType

(^)

SDO_Model_Type::getBaseType Récupère le type de base pour le type

Description

SDO_Model_Type SDO_Model_Type::getBaseType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le type de base pour le type. Retourne le SDO_Model_Type pour le type de base si ce type hérite d'un autre, autrement elle retourne NULL. Un exemple indiquant quand des types de base se produisent est lorsqu'un type défini dans un schéma XML hérite d'un autre en utilisant

<extension base="...">
.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type pour le type de base si le type hérite d'un autre, autrement elle retourne NULL.



SDO_Model_Type::getName

(^)

SDO_Model_Type::getName Récupère le nom du type

Description

string SDO_Model_Type::getName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom du type. La combinaison du nom du type et de l'espace de nom URI est utilisée pour identifier de manière unique le type.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le nom du type.



SDO_Model_Type::getNamespaceURI

(^)

SDO_Model_Type::getNamespaceURI Récupère l'espace de nom URI pour le type

Description

string SDO_Model_Type::getNamespaceURI ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'espace de nom pour le type. La combinaison de l'espace de nom URI et le nom du type est utilisée pour identifier de manière unique le type.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne l'espace de nom URI du type.



SDO_Model_Type::getProperties

(^)

SDO_Model_Type::getProperties Récupère les objets SDO_Model_Property définis pour le type

Description

array SDO_Model_Type::getProperties ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un tableau des objets SDO_Model_Property décrivant les propriétés définies pour le SDO_Model_Type. Chaque SDO_Model_Property contient des informations comme le nom de la propriété, la valeur par défaut, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un tableau d'objets SDO_Model_Property.



SDO_Model_Type::getProperty

(^)

SDO_Model_Type::getProperty Récupère un SDO_Model_Property du type

Description

SDO_Model_Property SDO_Model_Type::getProperty ( mixed $identifier )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un SDO_Model_Property du type, identifié par son index ou son nom.

Liste de paramètres

identifier

L'index ou un nom.

Valeurs de retour

Retourne le SDO_Model_Property.



SDO_Model_Type::isAbstractType

(^)

SDO_Model_Type::isAbstractType Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait

Description

bool SDO_Model_Type::isAbstractType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait. Retourne TRUE si le type est abstrait, ce qui signifie, qu'aucun SDO_DataObjet de ce type peut être instancié, par contre, d'autres types peuvent hériter de celui-ci.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est un type abstrait, autrement retourne FALSE.



SDO_Model_Type::isDataType

(^)

SDO_Model_Type::isDataType Vérifie pour voir si le SDO_Model_Type est un type de données primitive

Description

bool SDO_Model_Type::isDataType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si ce SDO_Model_Type est un type de données primitive. Retourne TRUE si le type est une primitive, autrement retourne FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type de données est une primitive, autrement retourne FALSE.



SDO_Model_Type::isInstance

(^)

SDO_Model_Type::isInstance Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type

Description

bool SDO_Model_Type::isInstance ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type. Retourne TRUE si le SDO_DataObject fourni est une instance de ce SDO_Model_Type ou un type déviré, autrement retourne FALSE.

Liste de paramètres

data_object

Le SDO_DataObject à être testé.

Valeurs de retour

Retourne TRUE si le SDO_DataObject fourni est une instance de ce SDO_Model_Type ou un type dérivé, autrement retourne FALSE.



SDO_Model_Type::isOpenType

(^)

SDO_Model_Type::isOpenType Vérifie pour voir si le type est un type ouvert

Description

bool SDO_Model_Type::isOpenType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si le type est un type ouvert. Retourne TRUE si le type est ouvert, autrement retourne FALSE. Un SDO_DataObject dont le type est ouvert peut avoir des propriétés ajoutées qui ne sont pas décrites par ce type. Cette capacité est utilisée pour supporter le travail avec les documents XML dont le schéma supporte les contenus ouvert, comme définis par l'élément

<xsd:any>
.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est ouvert, autrement retourne FALSE.



SDO_Model_Type::isSequencedType

(^)

SDO_Model_Type::isSequencedType Vérifie pour voir si le type est une séquence

Description

bool SDO_Model_Type::isSequencedType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si le type est une séquence. Retourne TRUE si le type est une séquence, autrement retourne FALSE. Les types de séquence peuvent avoir des propriétés dont l'ordre est préservé et peut contenir du texte non structuré. Pour plus d'informations sur les types de séquence, voyez la section sur Travailler avec des Objets de Données Séquencés.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est une séquence, autrement retourne FALSE.



SDO_Sequence::getProperty

(^)

SDO_Sequence::getProperty Retourne la propriété pour l'index de séquence spécifié

Description

SDO_Model_Property SDO_Sequence::getProperty ( int $sequence_index )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la propriété pour l'index de séquence spécifié

Liste de paramètres

sequence_index

La position de l'élément dans la séquence.

Valeurs de retour

Un SDO_Model_Property. Une valeur de retour NULL signifie que l'élément de séquence n'appartient pas à une propriété et doit donc être un texte non structuré.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de séquence est inférieur à zéro ou supérieur à la taille de la séquence.



SDO_Sequence::insert

(^)

SDO_Sequence::insert Ajoute dans une séquence

Description

void SDO_Sequence::insert ( mixed $value [, int $sequenceIndex [, mixed $propertyIdentifier ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère un nouvel élément à une position spécifiée dans la séquence. Tous les items de la séquence suivant sont déplacés vers le haut.

Liste de paramètres

value

La nouvelle valeur à être insérée. Cela peut être soit une primitive soit un SDO_DataObject.

sequenceIndex

La position à laquelle il faut insérer le nouvel élément. La valeur par défaut est NULL, ainsi la nouvelle valeur sera ajoutée à la suite de la séquence.

propertyIdentifier

Soit une propriété index, name ou un SDO_Model_Property, utilisé pour identifier une propriété dans la séquence correspondant à SDO_DataObject. Une valeur de NULL signifie un texte non structuré.

Valeurs de retour

Aucune.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la séquence est inférieur à zéro ou supérieur à la taille de la séquence.

SDO_InvalidConversionException

Émis si le type de la nouvelle valeur ne correspond pas avec le type pour la propriété de l'objet de données spécifié.



SDO_Sequence::move

(^)

SDO_Sequence::move Déplace un item à une autre position de la séquence

Description

void SDO_Sequence::move ( int $toIndex, int $fromIndex )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Modifie la position d'un item dans la séquence, sans altérer la valeur de la propriété dans le SDO_DataObject.

Liste de paramètres

toIndex

L'index de destination de la séquence. Si l'index est inférieur à zéro ou supérieur à la taille de la séquence, la valeur est ajoutée à celle-ci.

fromIndex

L'index source de la séquence.

Valeurs de retour

Aucune.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la séquence fromIndex est inférieur à zéro ou supérieur à la taille de la séquence.


Sommaire




SDO Relationnel Service d'Accès de Données


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Afin d'utiliser le Service d'Accès de Données Relationnel pour les Objets de Service de Données, vous devrez comprendre certains concepts derrière le SDO : le graphique de données, l'objet de données, le moyen de déconnexion pour travailler, le changement du sommaire, les expressions XPath et les propriétés, et ainsi de suite. Si vous n'êtes pas familier avec ses idées, vous devriez regarder en premier à la section sur le SDO. De plus, le DAS Relationnel utilise l'extension SDO pour s'isoler des communications spécifiques aux bases de données. Afin d'utiliser le DAS Relationnel, vous devrez être capable de créer et passer une connexion de base de données PDO; pour cette raison, vous devrez aussi regarder la section sur le PDO.

Le travail de DAS Relationnel est de déplacer les données entre les applications et une base de données relationnelle. Afin de faire cela, vous devez dire quelle sorte de données vont être transférées entre les entités de base de données - tables, colonnes, clés primaires et clés étrangères - et les éléments de modèle SDO - types, propriétés, relations de retenue et ainsi de suite. Vous spécifiez ces informations comme des métadonnées lorsque vous construisez le DAS Relationnel.

Vue d'ensemble des Opérations
  1. La première étape est d'appeler le constructeur de DAS Relationnel, en lui passant les métadonnées qui définissent les relations entre la base de données et le modèle SDO. Il y a des exemples plus bas.

  2. L'étape suivante devrait être l'appel des méthodes executeQuery() ou executePreparedQuery() sur le DAS Relationnel, en leur passant soit une requête SQL littérale pour le DAS pour préparer et exécuter ou une requête préparée avec des paramètres fictifs et une liste des valeurs à être insérées. Vous pouvez aussi avoir besoin de spécifier un peu de métadonnées à propos de la requête, ainsi le DAS Relationnel saura exactement quelles colonnes seront retournées de la base de données et dans quel ordre. Vous devez aussi passer une connexion de base de données PDO.

    La valeur de retour de executeQuery() ou executePreparedQuery() est un graphique de données normalisé contenant toutes les données du jeu de résultats. Pour une requête qui retourne les données obtenues à partir de plusieurs tables, ce graphique contiendra plusieurs objets de données, liés avec les relations SDO contenues. Il pourrait aussi y avoir des données de références qui ne sont pas de contenues à l'intérieur des données.

    Une fois que la requête a été exécutée et le graphique de données construit, il n'est pas nécessaire pour l'instance de DAS Relationnel ou pour la connexion de base de données. Il n'y a pas de verrou gardé sur la base de données. Le DAS Relationnel et la connexion de base de données PDO peuvent être tous deux passés au ramasse miettes.

  3. Il est probable que les données dans le graphique de données passent par plusieurs modifications. Le graphique de données peut être sérialisé dans une session PHP et ainsi peut avoir une vie au-delà d'une interaction client-serveur. Les objets de données peuvent être créés et ajoutés au graphique, les objets de données déjà dans le graphique peuvent être supprimés et les objets de données dans le graphique peuvent être modifiés.

  4. Enfin, les changements effectués sur le graphique de données peuvent être appliqués à la base de donnés en utilisant la méthode applyChanges() de DAS Relationnel. Pour cela, une autre instance de DAS Relationnel doit être construite, en utilisant les mêmes métadonnées, et une autre connexion à la base de données obtenue. La connexion et le graphique de données sont passés à applyChanges(). À ce point, le DAS Relationnel examine les changements et génère les requêtes SQL INSERT, UPDATE et DELETE nécessaires pour appliquer les changements. Toutes les requêtes UPDATE et DELETE sont qualifiées avec les valeurs originales des données, donc il se peut que les données aillent changées dans la base de données en attendant que les données soient détectées. En assumant qu'aucune collision de ce type ne s'est produite, les changements seront envoyés à la base de données. L'application peut alors continuer à travailler avec le graphique de données, effectuer d'autres changements et les appliquer, ou peut le jeter.

Il y a d'autres moyens de travailler avec les données dans la base de données : il est possible de créer simplement les objets de données et les écrire à la base de données sans effectuer d'appel préliminaire à executeQuery(), par exemple. Ce scénario et les autres sont explorés dans les exemples de la section plus bas.



Installation/Configuration

Sommaire


Pré-requis

Le DAS Relationnel requiert que l'extension SDO soit installée. L'extension SDO requiert une version de PHP 5.1 et le DAS Relationnel requiert une version récente qui contient une mise à jour importante de PDO. Les informations les plus à jours à propos des niveaux requis de PHP devrait être trouvées dans le changelog pour ce paquetage sur PECL. Au moment que nous écrivons cette documentation, le DAS Relationnel requiert le plus récent niveau de bêta de PHP 5.1, qui est PHP 5.1.0.

Le DAS Relationnel utilise le PDO pour accéder à une base de données relationnelle et devrait fonctionner avec une variété différente de bases de données. Au moment que nous écrivons cette documentation, cela a été testé avec les configurations suivantes

  • MySQL 4.1.14, sur Windows. Le DAS Relationnel opère correctement avec le pilote php_pdo_mysql qui vient avec les programmes préconfigurés de PHP 5.1.0.

  • MySQL 4.1.13, sur Linux. Il est nécessaire d'avoir le plus récent pilote de PDO pour MySQL, qui vient avec un PHP. 5.1.0. Il se peut qu'il soit nécessaire de désinstaller les pilotes utilisés qui seraient venus de PECL en utilisant pear uninstall pdo_mysql. Vous devrez configurer votre PHP avec l'option --with-pdo-mysql.

  • DB2 8.2 Édition Personnelle, sur Windows. Le DAS Relationnel opère correctement avec le pilote php_pdo_odbc qui vient avec les programmes préconfigurés binaires de PHP 5.1.0.

  • DB2 8.2 Édition Personnelle de Développeur, sur Linux. L'édition e Développeur est requise puisqu'elle contient les fichiers d'inclusion requis lorsque PHP est configuré et bâti. Vous devrez configurer PHP avec l'option --with-pdo-odbc=ibm-db2.

Le DAS Relationnel applique les changements à la base de données à l'intérieur de transactions délimitées par l'utilisateur : cela appel la méthode PDO::beginTransaction() avant de commencer à appliquer les changements et PDO::commit() ou PDO::rollback() lorsque c'est complété. Peu importe la base de données qui est choisie, la base de données et le pilote PDO pour cette base de données doivent supporter ces appels.



Installation

Les instructions d'installation pour tous les composants SDO sont dans la section d'installation de la documentation SDO.

Dans tous les cas, les faits essentiels sont que le DAS Relationnel est écrit en PHP et devrait être placé quelque part dans le include_path de PHP.

Votre application devra bien sur inclure le DAS Relationnel avec une ligne comme cela :

<?php
require_once 'SDO/DAS/Relational.php';
?>



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Suivi

Vous pouvez être intéressé de voir les requêtes SQL qui sont générées afin d'appliquer les changements à la base de données. Dans le haut du fichier SDO/DAS/Relational.php, vous trouvez un certain nombre de constantes qui contrôle si le processus de construction et d'exécution des requêtes SQL doivent être suivies. Essayez la configuration DEBUG_EXECUTE_PLAN à TRUE pour voir les requêtes SQL générées.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Le DAS Relationnel n'introduit aucune constante prédéfinie.



Exemples

Sommaire


Création, récupération, mise à jour et effacement de données

Cette section illustre comment le DAS Relationnel peut être utilisé pour créer, récupérer, mettre à jour et supprimer des données dans une base de données relationnelle. Plusieurs de ces exemples sont illustrés avec trois tables dans une base de données qui contient "compagnies", "departements" à l'intérieur de ces compagnies et "employes" qui travaillent dans ces départements. Cet exemple est utilisé dans plusieurs places dans la littérature SDO. Voyez la section des exemples de » spécification d'Objets de Service de Données ou la section d'exemples de la documentation de l'extension SDO.

Le DAS Relationnel est construit avec les métadonnées qui définissent la base de données relationnelle et comment il devrait être en relation avec le SDO. La longue section qui suit décrit ces métadonnées et comment construire le DAS Relationnel. Ces exemples qui suivent assument tous que ces métadonnées sont incluses dans un fichier PHP.

Les exemples ci-dessous et les autres peuvent être trouvés dans le dossier Scenarios dans le paquetage DAS Relationnel.

Le DAS Relationnel émet des exceptions dans le cas qu'il trouve des erreurs dans les métadonnées ou des erreurs lors de l'exécution des requêtes SQL à la base de données. Pour rendre les exemples plus concis, ils n'incluent pas les blocs try/catch autour des appels de DAS Relationnel.

Ces exemples diffèrent tous de l'utilisation prévue de SDO dans deux égards importants.

Premièrement, ils montrent toutes les interactions avec la base de données complétés dans un script. Ces scénarios ne sont pas réalistes mais sont choisis dans le but d'illustrer simplement l'utilisation de DAS Relationnel. Il est prévu que les interactions avec la base de données soient séparés dans le temps et le graphique de données linéarisées et délinéarisées dans une session PHP une ou plusieurs fois tant que l'application interagit avec l'utilisateur final.

Deuxièmement, toutes les requêtes exécutées sur la base de données sont figées dans le code sans aucune substitution de variable. Dans ce cas, il est plus sage d'utiliser le simple appel de executeQuery() et c'est ce que montrent les exemples. En pratique, il est peu probable que la requête SQL soit connue entièrement avant son exécution. Afin d'autoriser la substitution sans danger des variables dans les requêtes SQL, sans prendre le risque d'effectuer des injections SQL avec des effets inconnus, il est plus sécuritaire d'utiliser executePreparedQuery() qui prend une requête SQL préparée contenant des paramètres fictifs et une liste des valeurs à être substituées.



Spécification des métadonnées

La première longue section décrit en détail comment les métadonnées décrivant la base de données et le modèle SDO requis est fourni à DAS Relationnel.

Lorsque le constructeur de DAS Relationnel est appelé, il doit recevoir plusieurs informations. La majeure partie des informations, passée en tant qu'un tableau associatif dans le premier argument du constructeur, dit à DAS Relationnel ce qu'il doit savoir à propos de la base de données relationnelle. Il décrit les noms des tables, des colonnes, des clés primaires et des clés secondaires. On devrait comprendre assez facilement ce qui est requis et une fois écrit, il peut être placé dans un fichier PHP et inclut lorsque nécessaire. Le reste des informations, passé dans un deuxième et troisième arguments du constructeur, dit au DAS Relationnel ce qu'il doit savoir à propos des relations entre les objets et la forme du graphique de données; il détermine finalement comment les données de la base de données seront normalisées dans le graphique.

Métadonnées de base de données

Le premier argument du constructeur décrit la base de données relationnelle cible.

Chaque table est décrite par un tableau associatif avec jusqu'à quatre clés.

Clé Valeur
name Le nom de la table.
columns Un tableau listant les noms des colonnes, dans n'importe quel ordre.
PK Le nom de la colonne contenant la clé primaire.
FK Un tableau avec deux entrées, "from" et "to" (provenance et destination), qui définissent une colonne contenant la clé étrangère et une table dans lequel la clé étrangère pointe. S'il n'y a pas de clé étrangère dans la table, alors l'entrée "FK" est optionnelle. Seulement une clé étrangère peut être spécifiée. Seulement une clé étrangère pointant à une clé primaire d'une table peut être spécifiée.

<?php
/*****************************************************************
* MÉTADONNÉES DÉFINISSANT LA BASE DE DONNÉES
******************************************************************/
$company_table = array (
  
'name' => 'company',
  
'columns' => array('id''name',  'employee_of_the_month'),
  
'PK' => 'id',
  
'FK' => array (
      
'from' => 'employee_of_the_month',
      
'to' => 'employee',
      ),
  );
$department_table = array (
  
'name' => 'department'
  
'columns' => array('id''name''location''number''co_id'),
  
'PK' => 'id',
  
'FK' => array (
      
'from' => 'co_id',
      
'to' => 'company',
      )
  );
$employee_table = array (
  
'name' => 'employee',
  
'columns' => array('id''name''SN''manager''dept_id'),
  
'PK' => 'id',
  
'FK' => array (
      
'from' => 'dept_id',
      
'to' => 'department',
      )
  );
$database_metadata = array($company_table$department_table$employee_table);
?>

Les métadonnées correspondent à une base de données relationnelle qui peut avoir été définie comme étant MySQL :

create table company (
 id integer auto_increment,
 name char(20),
 employee_of_the_month integer,
 primary key(id)
);
create table department (
 id integer auto_increment,
 name char(20),
 location char(10),
 number integer(3),
 co_id integer,
 primary key(id)
);
create table employee (
 id integer auto_increment,
 name char(20),
 SN char(4),
 manager tinyint(1),
 dept_id integer,
 primary key(id)
);

or to DB2 as:

create table company ( \
  id integer not null generated by default as identity,  \
  name varchar(20), \
  employee_of_the_month integer, \
  primary key(id) )
create table department ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  location varchar(10), \
  number integer, \
  co_id integer, \
  primary key(id) )
create table employee ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  SN char(4), \
  manager smallint, \
  dept_id integer, \
  primary key(id) )

Notez que bien que dans cet exemple n'a pas de clé étrangère de spécifiée à la base de données et que la base de données n'est pas prévue à forcer l'intégrité référentielle, l'intention derrière la colonne co_id de la table departement et la colonne dept_id de la table employe est qu'elles pourraient contenir la clé primaire de leur compagnie les contenant ou l'enregistrement du département, respectivement. Alors ces deux colonnes actent comme des clés étrangères.

Il y a une troisième clé étrangère dans cet exemple, elle est de la colonne employe_du_mois de la table compagnie qui est compris dans une ligne de la table employe. Notez la différence dans l'intention entre cette clé étrangère et les deux autres. La colonne employe_du_mois représente une relation de valeurs simples : il peut y avoir seulement un employé du moi pour une compagnie donnée. Les colonnes co_id dept_id représentent des relations de valeurs multiples : une compagnie peut contenir plusieurs département et un département peut contenir beaucoup d'employés. Cette distinction deviendra évidente lorsque le reste des métadonnées sélectionne les relations entre la compagnie-département et le département-employé comme étant une relation contenue.

Il y a un peu de règles simples qui doivent être suivies lorsque l'on construit les métadonnées de base de données :

  • Toutes les tables doivent avoir des clés primaires et les clés primaires doivent être spécifiées dans les métadonnées. Sans clés primaires, il n'est pas possible de garder une trace des identités des objets. Comme vous pouvez le voir avec les requête SQL qui créent les tables, les clés primaires peuvent être générées automatiquement, ce qui signifie, qu'elles sont générées et assignées par la base de données lorsque l'enregistrement est inséré. Dans ce cas, la clé primaire générée automatiquement est obtenue de la base de données et insérées dans l'objet de données immédiatement après que la ligne soit insérée dans la base de données.

  • Il n'est pas nécessaire de spécifier les métadonnées de toutes les colonnes qui existent dans la base de données, seulement celles qui seront utilisées. Par exemple, si la table compagnie avait un autre colonne que l'application ne souhaite pas accéder avec SDO, il n'est pas nécessaire de la spécifiée dans les métadonnées. En contrepartie, cela ne devrait pas causer de problème de la spécifier : si elle est spécifiée dans les métadonnées mais jamais récupérée ou assignée par l'application, alors la colonne inutilisée ne devrait rien affecter.

  • Dans les métadonnées de base de données, notez que les définitions des clés étrangères n'identifient pas la colonne de destination dans la table qui est pointée, mais le nom de la table elle-même. Strictement, le modèle relationnel permet la destination d'une clé étrangère à être une clé non primaire. Seules les clés étrangères qui pointent à une clé primaire sont utiles pour la construction du modèle SDO, puisque les métadonnées spécifient le nom de la table. Il est entendu que la clé étrangère pointe vers la clé primaire d'une table donnée.

Ayant donné ces règles et les requêtes SQL qui définissent les bases de données, les métadonnées de base de données devrait être faciles à construire.

Que fait DAS Relationnel avec ces métadonnées

Le DAS Relationnel utilise les métadonnées de base de données pour former la plupart des modèles SDO. Pour chaque table dans les métadonnées de base de données, un type SDO est défini. Chaque colonne qui peut représenter une valeur primitive (les colonnes qui ne sont pas définies comme étant des clés étrangères) est ajoutée comme propriété au type SDO.

Toutes les propriétés primitives sont données par un type de chaîne de caractères dans le modèle SDO, sans se soucier de leur type SQL. Lors de la ré-écriture des données dans la base de données, le DAS Relationnel créera une requête SQL qui traitera les valeurs comme étant des chaînes de caractères et la base de données les convertira dans le type approprié.

Les clés étrangères sont interprétées de une des deux manières, dépendamment des métadonnées contenues dans le troisième argument du constructeur qui définissent les relations de SDO contenues. Une discussion de cela est donc reportée dans la section relations SDO contenues ci-dessous.

Spécification du type de racine de l'application

Le second argument du constructeur est l'application du type de racine. La vraie racine de chaque graphique de données est un objet d'un type de racine spécial et tous les objets de données des applications viennent quelque part sous cela. De la plupart des types d'application dans le modèle SDO, une doit être le type d'application immédiatement sous la racine du graphique de données. S'il y a seulement une table dans les métadonnées de base de données, le type de racine de l'application peut être impliqué et cet argument peut être omis.

Spécification des relations SDO contenues

Le troisième argument du constructeur définit comment les types dans le modèle seront liés ensemble pour former un graphique. Cela identifie les relations parent-enfant entre les types qui collectivement forment un graphique. Les relations doivent être supportées par les clés étrangères pour être trouvées dans les données, d'une manière rapide d'être décrit.

Les métadonnées sont un tableau contenant un ou plusieurs tableaux associatifs, chacun d'eux identifie un parent et un enfant. L'exemple ci-dessous montre une relation parent-enfant de compagnie au département et un autre du département aux employés. Chacune d'elles deviendra un propriété définissant une relation de valeur multiples contenue dans un modèle SDO.

<?php
$department_containment 
= array( 'parent' => 'company''child' => 'department');
$employee_containment = array( 'parent' => 'department''child' => 'employee');

$SDO_containment_metadata = array($department_containment$employee_containment);
?>

Les clés étrangères dans les métadonnées de base de données sont interprétées comme des propriétés avec soit des relations de valeurs multiples contenues ou des références de simples valeurs non contenues, dépendamment si elles ont une relation SDO contenue correspondante spécifiée dans les métadonnées. Dans cet exemple ici, les clés étrangères du département à la compagnie (la colonne co_id dans la table de departement) et de l'employé au département (la colonne dept_id dans la table employe) sont interprétées comme supportant les relations SDO contenues. Chaque référence contenue mentionnée dans les métadonnées de relations contenue de SDO doit avoir une clé correspondante présente dans la base de données et définie dans les métadonnées de base de données. Les valeurs des colonnes de la clé étrangère pour les relations contenues n'apparaissent pas dans les objets de données; à la place, chacune d'entre elles est représentée par une relation contenue du parent à l'enfant. Alors la colonne co_id dans la ligne de département de la base de données, par exemple, n'apparaît pas en tant que propriété du type de département, mais apparaît à la place comme une relation contenue appelée departname sur le type de compagnie. Notez que la clé étrangère et la relation parent-enfant semble avoir un sens opposé : la clé étrangère pointe du département à la compagnie, mais la relation parent-enfant pointe de la compagnie au département.

La troisième clé dans cet exemple, le employe_du_mois, est gérée différemment. Elle n'est pas mentionnée dans les métadonnées de relations SDO contenues. Ceci a pour conséquence d'être interprété de la seconde manière : elle devient une référence de valeur simple non contenue sur l'objet compagnie, sur lequel vous pouvez assigner des références au type d'employé d'objets de données SDO. Elle apparaît comme une propriété du type de compagnie. Le moyen pour lui assigner une valeur dans le graphique de données est d'avoir un graphique qui contient un objet employé avec les relations contenues et d'assigner l'objet à celui-ci. Ceci est montré dans les exemples plus loin.



Exemples avec une table

Les exemples suivants utilisent tous le DAS Relationnel pour travailler avec un graphique de données contenant juste un objet de données d'application, une seule compagnie et les données qui seront dans la table compagnie. Ces exemples ne montre pas le pouvoir de SDO ou de DAS Relationnel et bien sûr les mêmes résultats peuvent être atteints plus économiquement à l'aide de requêtes SQL directes mais ces exemples sont pour vous montrer comment fonctionne le DAS Relationnel.

Pour ce simple scénario, il serait possible de simplifier les métadonnées de base de données pour inclure juste la table de compagnie - si cela était fait, le deuxième et troisième argument du constructeur et le spécificateur de colonne utilisé dans l'exemple de requête deviendrait optionnel.

Exemple #1 Création d'un objet de données

Le plus simple exemple est de créer un objet de données simple et de l'écrire à la base de données. Dans cet exemple, un objet simple de compagnie est créé, son nom est fixé à "Acme" et le DAS Relationnel est appelé pour écrire les changements à la base de données. Le nom de la compagnie est fixé ici en utilisant la méthode de propriété de nom. Voyez la section d'exemples sur l'extension SDO pour d'autres moyens d'accéder au propriétés d'un objet.

Les objets de données peuvent seulement être créés lorsque vous avez un objet de données au démarrage. C'est pour cette raison que le premier appel à DAS Relationnel ici est pour obtenir l'objet racine. C'est en effet comment demander pour un graphique de données vide - l'objet de racine spécial est la vrai racine de l'arbre. L'objet de données compagnie est alors créé avec l'appel à createDataObject() sur l'objet racine. Ceci crée l'objet de données compagnie et l'insère dans le graphique en insérant une propriété de valeurs multiples contenue dans l'objet racine appelé "compagnie".

Lorsque DAS Relationnel est appelé pour effectuer les changements, une simple requête d'insertion "INSERT INTO compagnie (nom} VALUES ("Acme");" sera construite et exécutée. La clé primaire générée automatiquement sera fixée dans l'objet de données et le changement sera effacé, alors il serait possible de continuer de travailler avec le même objet de données, le modifier, et applique les nouveaux changements une deuxième fois.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Obtient l'objet racine et crée un objet compagnie dessous.
 * Effectue un petit changement à l'objet de données.
 ***************************************************************/
$root $das  -> createRootDataObject();
$acme $root -> createDataObject('compagnie');

$acme->name "Acme";

/**************************************************************
 * Récupère la connexion à la base de données et écrit l'objet à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das -> applyChanges($dbh$root);
?>

Exemple #2 Récupération d'un objet de données

Dans cet exemple, un simple objet de données est récupéré de la base de données - ou possiblement plus d'un s'il y avait plus d'une compagnie qui était appelée "Acme". Pour chaque compagnie retournée, les propriétés nom et id sont affichées.

Dans cet exemple, le troisième argument de executeQuery(), le spécificateur de colonne est requis puisqu'il y a d'autres tables dans les métadonnées avec le nom de colonne nom et id. S'il n'y avait pas d'ambiguïté possible, il aurait pu être omis.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root $das->executeQuery($dbh,
           
'select nom, id from compagnie where nom="Acme"',
                        array(
'compagnie.nom''compagnie.id') );

/**************************************************************
 * Affiche le nom et le id
 ***************************************************************/
foreach ($root['compagnie'] as $compagnie) {
    echo 
"La compagnie obtenue de la base de données a le nom = " .
    
$compagnie['nom'] . " et un id " $compagnie['id'] . "\n";
}
?>

Exemple #3 Mise à jour d'objet de données

Cet exemple combine les deux précédent, dans le sens que pour être mis à jour, l'objet doit être premièrement récupéré. L'application renverse le nom de compagnie (alors "Acme" devient "emcA") et alors les changements sont écrits à la base de données de la même manière qu'ils étaient lorsque l'objet avait été créé. Puisque la requête cherche pour le nom, on peut chercher des deux manières le nom à plusieurs reprises pour trouver la compagnie et renverser son nom chaque fois.

Dans cet exemple, la même instance de DAS Relationnel est réutilisée pour applyChanges(), avec le descripteur de base de données PDO. Ceci est tout à fait correcte; il est aussi possible d'autoriser les instances précédentes d'être ramassées par le ramasse-miettes et d'obtenir de nouvelles instances. Aucune données d'état concernant le graphique n'est tenue par le DAS Relationnel une fois qu'il a retourné un graphique de données à l'application. Toutes les données nécessaires sont soit dans le graphique ou peuvent être reconstruites à partir des métadonnées.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root $das->executeQuery($dbh,
    
'select nom, id from compagnie where nom="Acme" or nom="emcA"',
    array(
'compagnie.nom''compagnie.id') );

/**************************************************************
 * Modifie le nom de la première compagnie seulement
 ***************************************************************/
$compagnie $root['compagnie'][0];
echo 
"Compagnie obtenue avec le nom " $compagnie->nom "\n";
$compagnie->nom strrev($compagnie->nom);

/**************************************************************
 * Écriture du changement
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>

Exemple #4 Suppression d'un objet de données

Toutes compagnies appelées "Acme" ou son inverse "emcA" sont récupérées. Elles sont ensuite toutes supprimées du graphique avec unset.

Dans l'exemple, elles sont toutes supprimées en un seul coup en supprimant la propriété contenue (la propriété définissant la relation contenue). Il est aussi possible de les supprimer individuellement.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root $das->executeQuery($dbh,
    
'select nom, id from compagnie where nom="Acme" or nom="emcA"',
    array(
'company.name''company.id') );

/**************************************************************
 * Supprime les compagnies trouvées du graphique de données
 ***************************************************************/
unset($root['compagnie']);

/**************************************************************
 * Écrit le(s) changement(s)
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>



Exemples avec deux tables

Les exemples suivants utilisent tous deux tables de la base de données compagnie : les tables compagnie et departement. Ces exemples montrent plus le fonctionnement de DAS Relationnel.

Dans cette série d'exemples, une compagnie et un département son créé, récupéré, mis à jour et finalement supprimé. Ceci montre le cycle de vie pour un graphique de données contenant plus d'un objet. Notez que cet exemple vide les tables compagnie et departement au démarrage, ainsi les résultats exacts des requêtes peuvent être connus.

Vous pouvez trouvez ces exemples combinés dans un script appelé 1cd-CRUD dans le répertoire Scenarios du paquetage DAS Relationnel.

Exemple #1 Une compagnie, un département - Création

Comme dans l'exemple précédent où l'on créait juste un objet de données de compagnie, la première action après la construction du DAS Relationnel est d'appeler createRootDataObject() pour obtenir l'objet racine spécial du graphique de données vide. L'objet compagnie est alors créé en tant que fils de cet objet racine, et l'objet departement en tant que fils de l'objet compagnie.

Lorsqu'il est venu le temps d'appliquer les changements, le DAS Relationnel doit effectuer des traitements spéciaux pour maintenir la clé étrangère qui supporte les relations contenues, en particulier si une clé primaire générée automatiquement est en jeu. Dans cet exemple, les relations entre la clé primaire générée automatiquement id dans la table compagnie et la colonne co_id dans la table departement doivent être maintenues. Lors de l'insertion de la compagnie et du département pour la première fois, le DAS Relationnel doit premièrement insérer une ligne de compagnie, ensuite appeler la méthode de PDO getLastInsertId() pour obtenir la clé primaire générée automatiquement, et ensuite ajouter la valeur à la colonne co_id lors de l'insertion de la ligne departement.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/*************************************************************************************
* Vidage des deux tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt $dbh->prepare('DELETE FROM COMPAGNIE;');
$rows_affected $pdo_stmt->execute();
$pdo_stmt $dbh->prepare('DELETE FROM DEPARTEMENT;');
$rows_affected $pdo_stmt->execute();

/**************************************************************
* Crée une compagnie avec le nom Acme et un département, département de Chaussure
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root $das -> createRootDataObject();

$acme $root -> createDataObject('compagnie');
$acme -> nom "Acme";

$chaussure $acme->createDataObject('departement');
$chaussure->nom 'Chaussure';

$das -> applyChanges($dbh$root);

?>

Exemple #2 Une compagnie, un département - Récupération et Mise à jour

Dans ce cas, la requête SQL passé à executeQuery() exécute un inner join pour joindre les données des tables compagnie et departement. Les clés primaires pour les tables compagnie et departement doivent être incluses dans la requête. Le jeu de résultats est normalisé de nouveau pour former un graphique de données normalisé. Notez que le spécificateur de colonne est passé en troisième argument de l'appel executeQuery() qui autorise DAS Relationnel de savoir quelle colonne est laquelle dans le jeu de résultats.

Notez que la colonne co_id bien qu'utilisée dans la requête n'est pas requis dans le jeu de résultats. Afin de comprendre que fait DAS Relationnel lorsqu'il construit le graphique de données, il peut être utile de visualiser à quoi ressemble les jeu de résultats. Bien que les données dans la base de données sont normalisée, alors plusieurs lignes de département peuvent pointer vers la clé étrangère d'une ligne de compagnie, les données dans le jeu de résultats sont non-normalisée : c'est, s'il y a une compagnie et de multiples département, les valeurs pour la compagnie qui sont répétées à chaque ligne. Le DAS Relationnel doit renverser ce processus et retourner le jeu de résultats dans un graphique normalisé, avec seulement un objet compagnie.

Dans cet exemple, le DAS Relationnel examine le jeu de résultats et le spécificateur de colonne, trouve les données pour les tables compagnie et departement, trouve les clés primaires pour les deux et interprète chaque ligne comme contenant des données d'un département et comme parent compagnie. S'il n'a pas vue de données de la compagnie auparavant (il utilise la clé primaire pour vérifier), il crée un objet compagnie et ensuite l'objet compagnie sous lui. S'il a vu des données pour la compagnie avant et a déjà créé l'objet compagnie, il crée simplement l'objet departement sous lui.

De cette manière, le DAS Relationnel peut récupérer et normaliser de nouveau les données pour de multiples compagnies et de multiples départements sous ceux-ci.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/**************************************************************
 * Récupération de la compagnie et du département de Chaussure, ensuite
 * supprime Chaussure et ajoute IT
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root $das->executeQuery($dbh,
'select c.id, c.nom, d.id, d.nom from compagnie Â«c, departement d where d.co_id = c.id',
array(
'compagnie.id','compagnie.nom','departement.id','departement.nom'));

$acme      $root['compagnie'][0];            // récupère la première compagnie - sera 'Acme'
$chaussure $acme['departement'][0];          // récupère le premier département en dessous - sera 'Chaussure'

unset($acme['departement'][0]);

$it $acme->createDataObject('departement');
$it->name 'IT';

$das -> applyChanges($dbh$root);
?>

Exemple #3 Une compagnie, deux départements - Récupération et Suppression

Dans cet exemple, la compagnie et le département sont récupérés et ensuite supprimés. Il n'est pas nécessaire de les supprimer individuellement (bien que cela est possible) - la suppression de l'objet compagnie du graphique de données supprime aussi tous les départements sous lui.

Notez le moyen de l'objet compagnie est actuellement supprimé en utilisant l'appel unset de PHP. La suppression doit être effectuée sur la propriété qui est dans ce cas la propriété de compagnie sur l'objet racine spécial. Vous devez utiliser :

<?php
unset($root['company'][0]);
?>
et non pas :
<?php
unset($acme); //FAUX
?>
La suppression de $acme détruira simplement la variable mais laissera les données dans le graphique intacte.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/**************************************************************
 * Récupération de la compagnie et du département IT, ensuite supprime la
 * compagnie entière
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root $das->executeQuery($dbh,
'select c.id, c.nom, d.id, d.nom from compagnie c, departement d where d.co_id = c.id',
array(
'compagnie.id','compagnie.nom','departement.id','departement.nom'));

$acme $root['compagnie'][0];
$it $acme['departement'][0];

unset(
$root['compagnie'][0]);

$das -> applyChanges($dbh$root);

?>



Exemple avec trois tables

Les exemples suivant utilisent tous trois tables de la base de données compagnie : les tables compagnie, departement et employe. Elles introduisent le dernier morceau du fonctionnement non expliqué dans les exemples ci haut : la référence non contenue employe_du_mois.

Comme les exemples ci haut pour la compagnie et le département, la série d'exemples illustre le cycle de vie complet d'un graphique de données.

Exemple #1 Une compagnie, un département, un employé - Création

Dans cet exemple, une compagnie est créée contenant un département et seulement un employé. Notez que dans cet exemple, les trois tables sont vidées à leur démarrage ainsi les résultats exacts des requêtes peuvent être connus.

Notez comment une fois que la compagnie, le département et l'employé est créé que la propriété employe_du_mois de la compagnie peut être faite pour pointer au nouvel employé. Puisque c'est une référence qui n'est pas contenue, ceci ne peut être effectué tant que l'objet employé ait été créé dans le graphique. Les références non contenues doivent être gérées prudemment. Par exemple, si un employé est maintenant supprimé de son département, il ne serait pas correcte d'essayer de sauver le graphique sans premièrement effacer ou réassigner la propriété employe_du_mois. Cette règle SDO requiert que tous les objets pointé par une référence qui n'est pas contenue doit être aussi accessible par des relations contenues.

Lorsque vient le moment d'insérer le graphique dans la base de données, la procédure est similaire à l'exemple d'insertion d'une compagnie et d'un département, cependant, la propriété employe_du_mois introduit une plus grande complexité. Le DAS Relationnel doit insérer les objets en descendant l'arbre formée des relations contenues, donc la compagnie, ensuite le département et ensuite l'employée. Ceci est nécessaire puisqu'il y a toujours une clé primaire générée automatiquement du parent pour l'inclure dans une ligne du fils. Mais lorsque la compagnie est insérée, l'employée qui est l'employé du mois n'est pas encore inséré et la clé primaire est inconnue. La procédure est qu'après l'insertion de l'employé et que sa clé primaire soit connue, une dernière étape est effectuée qui permet de modifier la compagnie avec la clé primaire de l'employé.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/*************************************************************************************
* Vidage des deux tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt $dbh->prepare('DELETE FROM COMPAGNIE;');
$rows_affected $pdo_stmt->execute();
$pdo_stmt $dbh->prepare('DELETE FROM DEPARTEMENT;');
$rows_affected $pdo_stmt->execute();
$pdo_stmt $dbh->prepare('DELETE FROM EMPLOYE;');
$rows_affected $pdo_stmt->execute();

/*************************************************************************************
* Crée une compagnie minuscule mais complète.
* Le nom de la compagnie est Acme.
* Il y a un département, Chaussure.
* Il y a une employé, Bob.
* L'employé du mois est Bob.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root        $das  -> createRootDataObject();
$acme        $root -> createDataObject('compagnie');
$acme -> nom "Acme";
$chaussure   $acme -> createDataObject('departement');
$chaussure -> nom         'Chaussure';
$chaussure -> emplacement 'Bloc-A';
$bob                              $chaussure -> createDataObject('employe');
$bob -> nom              'Bob';
$acme -> employe_du_mois $bob;

$das -> applyChanges($dbh$root);

echo 
"Écriture de Acme avec un département et un employé\n";
?>

Exemple #2 Une compagnie, un département, un employé - Récupération et Mise à Jour

La requête SQL passée à DAS Relationnel est cette fois un inner join qui récupère les données des trois tables. Autrement, cet exemple n'introduit rien de nouveau de l'exemple précédent

Le graphique est mis à jour avec l'addition d'un nouveau département et d'un nouvel employé et quelques modifications au propriétés de nom des objets existant dans le graphique. Les changements combinés sont écrits. Le DAS Relationnel traitera et appliquera un mélange arbitraire des additions, des modifications et des suppressions provenant et allant vers le graphique.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/*************************************************************************************
 * Trouve la compagnie encore et change certains aspects.
 * Change le nom de la compagnie, le département et l'employé.
 * Ajoute un second département et un nouvel employé.
 * Change l'employé du mois
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root $das->executeQuery($dbh,
    
"select c.id, c.nom, c.employe_du_mois, d.id, d.nom, e.id, e.nom " .
    
"from compagnie c, departement d, employe e " .
    
"where e.dept_id = d.id and d.co_id = c.id and c.nom='Acme'",
     array(
'compagnie.id','compagnie.nom','compagnie.employe_du_mois',
     
'departement.id','departement.nom','employe.id','employe.nom'));
$acme   $root['compagnie'][0];

$chaussure      $acme->departement[0];
$bob          $chaussure -> employe[0];

$it     $acme->createDataObject('departement');
$it->nom 'IT';
$it->location 'Bloc-G';
$billy  $it->createDataObject('employe');
$billy->nom 'Billy';

$acme->nom 'MegaCorp';
$chaussure->nom 'Footwear';
$sue->nom 'Suzan';

$acme->employe_du_mois $billy;
$das -> applyChanges($dbh$root);
echo 
"Écriture de la compagnie avec un département en plus et un employé et
tous les noms ont changés Megacorp/Footwear/Suzan)\n"
;

?>

Exemple #3 Une compagnie, deux départements, deux employés - Récupération et Suppression

La compagnie est récupéré en tant qu'un graphique de données complet contenant cinq objets de données - la compagnie, deux départements et deux employés. Ils sont tous supprimés en supprimant l'objet compagnie. La suppression d'un objet du graphique supprime tous les objets sous celui-ci dans le graphique. Cinq requêtes DELETE SQL sera générées et exécutée. Comme d'habitude, elles seront qualifiées avec une clause WHERE qui contient tous les champs qui ont été récupérés, alors toutes les mises à jour des données dans la base de données pendant ce temps par un autre processus seront détectées.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/*************************************************************************************
 * Maintenant lit une ou plusieurs fois et supprime.
 * Vous pouvez supprimer par partie, appliquer les changements, et ensuite
 * continuer à travailler avec le même graphique de données mais la précaution
 * est requise pour garder véracité - vous ne pouvez pas supprimer l'employé
 * qui est l'employé du mois sans le réassigner. Pour plus de précaution ici,
 * nous supprimons la compagnie en entier d'un seul coup.
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root $das->executeQuery($dbh,
    
"select c.id, c.nom, c.employe_du_mois, d.id, d.nom, e.id, e.nom " .
    
"from compagnie c, departement d, employe e " .
    
"where e.dept_id = d.id and d.co_id = c.id and c.nom='MegaCorp';",
     array(
'compagnie.id','compagnie.nom','compagnie.employe_du_mois',
     
'departement.id','departement.nom','employe.id','employe.nom'));
$megacorp $root['compagnie'][0];

unset(
$root['compagnie']);
$das -> applyChanges($dbh$root);

echo 
"Suppression de la compagnie, des départements et des employés d'un seul coup.\n";

?>




Limitations

Il y a les limitations suivantes dans la version courante de DAS Relationnel :

  • Aucun support pour les données NULL. Il n'y a pas de support pour les types de SQL NULL. Cela n'est pas légal d'assigner une donnée PHP NULL à une propriété d'objet de données et le DAS Relationnel n'écriera pas en tant que NULL à la base de données. Si des données NULL sont trouvées dans la base de données dans une requête, la propriété restera non fixée.

  • Seulement deux types de relation SDO. Les métadonnées décrient plus bas permettent le DAS Relationnel de modéliser seulement deux types de relation SDO : relations contenues de valeurs multiples et les références contenues de valeurs simples. Dans SDO, si une propriété décrit une relation simple ou de valeurs multiples, et si c'est contenu ou non contenu, elle est indépendante. La plage complète des possibilités que SDO autorise ne peut être défini au complet. Il peut y avoir des relations qui peuvent être utiles pour modéliser mais que l'implémentation courante ne peut gérer. Un exemple est de relation de simples valeurs contenues.

  • Aucun support pour la plage complète des types de données SDO. Le DAS Relationnel définit des propriétés primitives dans le modèle SDO en tant qu'un type de chaîne de caractères. SDO définit un ensemble de types plus riche contenant des types entier, valeur à virgule flottante, booléen et des données et de temps. Une chaîne de caractères est adéquate pour les buts de DAS Relationnel puisque la combinaison de PHP, PDO et les bases de données assurera que les valeurs passées en tant que chaînes de caractères seront converties au bon type avant d'être envoyées à la base de données. Cela affecte certains scénarios dans lesquels DAS Relationnel doit travailler avec un graphique de données qui est venu ou ira à un différent DAS.

  • Seulement une clé étrangère par table. Les métadonnées fournissent seulement le moyen de spécifier une clé étrangère par table. Cette clé étrangère peut établir une correspondance à un ou deux types de relations SDO supportés. Évidemment, il y a des scénarios qui ne peuvent être décrits sous cette limitation - il n'est pas possible d'avoir deux références non contenues d'une table à une autre par exemple.



Fonctions SDO-DAS-Relational

Classes pré-définies

Le DAS Relationnel fournit deux classes : le DAS Relationnel lui-même et aussi la sous-classe Exception qui peut être jetée. Le DAS Relationnel a quatre appels publics utiles : le constructeur, la méthode createRootDataObject() pour obtenir l'objet racine d'un graphique de données vide, la méthode executeQuery() pour obtenir le graphique de données contenant les données d'une base de données relationnelle et la méthode applyChanges() pour écrire les changements effectués au graphique de données vers la base de données relationnelle.

SDO_DAS_Relational

Le seul autre objet que SDO_DAS_Relational_Exception que l'application pourrait interagir.

Méthodes

  • __construct : construit le DAS Relationnel avec le modèle dérivé des métadonnées passées

  • createRootDataObject : obtient le graphique de données vide contenant seulement l'objet racine spécial

  • executeQuery : exécute une requête SQL passée en tant que chaîne de caractères littérale et retourne les résultats dans un graphique de données normalisé

  • executePreparedQuery : exécute une requête SQL passée en tant que requête préparée, avec une liste de valeur à substituer pour les paramètres fictifs et retourne le résultats d'un graphique de données normalisé

  • applyChanges : examine les changements dans le graphique de données et applique ces changements à la base de données, sujet d'une acceptation de simultanéité optimiste

SDO_DAS_Relational_Exception

Est une sous-classe de la classe PHP Exception. Elle n'ajoute aucun comportement à Exception. Jetée, avec une explication utile, pour signaler les erreurs dans les métadonnées ou des échecs non prévus pour exécuter des opérations SQL.


SDO_DAS_Relational::applyChanges

(^)

SDO_DAS_Relational::applyChanges Applique les changements effectués au graphique de données à la base de données.

Description

void SDO_DAS_Relational::applyChanges ( PDO $database_handle , SDODataObject $root_data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

En lui donnant une ressource de base de données PDO et l'objet racine spécial d'un graphique de données, la fonction examine les changements dans le graphique de données et applique les changements à la base de données Les changements qui peut appliquer sont les créations d'objets de données, les suppressions des objets de données et les modifications des propriétés des objets de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire une ressource de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPAGNIEDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

L'objet racine spécial qui est le sommet de chaque graphique de données SDO.

Valeurs de retour

Aucun. Notez cependant que le graphique de données qui a été passé est toujours intact et utilisable. De plus, si les objets de données ont été créés et écrits à une table avec des clés primaires générées automatiquement, alors ces clés primaires seront maintenant enregistrées dans les objets de données. Si les changements ont été correctement écrits, alors le changement associé avec le graphique de données sera supprimé, alors il est possible maintenant d'effectuer plus de changement au graphique de données et appliquer les changements alternativement. De cette façon, il est possible de travailler avec le même graphique de données et appliquer les changement à plusieurs reprises.

Erreurs / Exceptions

SDO_DAS_Relational::applyChanges() peut jeter une exception SDO_DAS_Relational_Exception si la méthode n'est pas capable d'appliquer tous les changements correctement.

Le DAS Relationnel démarre une transaction de base de données avant de commencer à appliquer les changements et enverra les transactions seulement si celles-ci sont réussies. Le DAS Relationnel génère des requêtes de mises à jour et de suppression qualifiées qui contiennent une clause WHERE qui spécifie que la ligne à être modifiée ou supprimée doit contenir les mêmes valeurs qu'elles avaient lorsque les données ont été préalablement récupérées. Voici comment la simultanéité optimiste est implantée. Si une des requêtes de mises à jour ou de suppression qualifiées échoue à mettre à jour ou à supprimer leur ligne, il se peut que cela soit à cause des données altérées dans la base de données en attendant. Quoi qu'il arrive, si une mise à jour échoue pour n'importe quelle raison, la transaction est retournée en arrière et une exception est jetée. Cette exception contiendra la requête SQL générée qui a échouée.

Le DAS Relationnel attrape aussi toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui incluent dans un SDO_DAS_Relational_Exception qui est lui-même ensuite jeté.

Exemples

Veuillez voir la section d'exemples dans les informations générales à propos de DAS Relationnel pour plusieurs exemples sur l'appel de cette méthode. Veuillez voir aussi la section sur le suivi pour voir comment vous pouvez voir quelles requêtes SQL sont générées par le DAS Relationnel.



SDO_DAS_Relational::__construct

(^)

SDO_DAS_Relational::__construct Construit une instance de DAS Relationnel

Description

SDO_DAS_Relational SDO_DAS_Relational::__construct ( array $database_metadata [, string $application_root_type [, array $SDO_containment_references_metadata ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit une instance de DAS Relationnel à partir des métadonnées passées.

Liste de paramètres

database_metadata

Un tableau contenant une ou plusieurs définitions de table, chacune d'elle est un tableau associatif contenant les clés name, columns, PK et optionnellement, FK. Pour une discussion complète sur les métadonnées, voyez la section métadonnées dans les informations générales à propos de DAS Relationnel.

application_root_type

La racine de chaque graphique de données est un objet d'un type de racine spécial et les objets de données de l'application viennent sous cela. De la plupart des types d'application dans le modèle SDO, une doit être le type d'application immédiatement sous la racine du graphique de données. S'il n'y a qu'une seule table dans les métadonnées de base de données, alors le type de racine de l'application peut être impliqué et cet argument peut être omis.

SDO_containment_references_metadata

Un tableau contenant une ou plusieurs définitions d'une relation contenue, chacune d'elle est un tableau associatif contenant les clés parent et child. Les relations contenues décrient comment les types dans le modèle sont connectés pour former un arbre. Le type spécifié en tant que le type racine de l'application doit être présent en tant qu'un type de parent dans les références contenues. Si l'application doit seulement travailler avec une table à la fois et s'il n'y a pas de relation contenue dans le modèle, cet argument peut être omis. Pour une discussion complète sur les métadonnées, voyez la section métadonnées dans les informations générales à propos de DAS Relationnel.

Valeurs de retour

Retourne un objet SDO_DAS_Relational en cas de succès.

Erreurs / Exceptions

SDO_DAS_Relational::__construct() jette une exception SDO_DAS_Relational_Exception si des problèmes sont trouvés dans les métadonnées.

Exemples

Pour une discussion complète sur les métadonnées, voyez la section métadonnées dans les informations générales à propos de DAS Relationnel.



SDO_DAS_Relational::createRootDataObject

(^)

SDO_DAS_Relational::createRootDataObject Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro.

Description

SDODataObject SDO_DAS_Relational::createRootDataObject ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne un objet racine spécial du sommet d'un graphique de données vide. Cet appel est utilisé lorsque l'application veut créer un graphique de données à partir de zéro, sans avoir appelé executeQuery() pour créer le graphique de données.

L'objet racine spécial a une propriété de valeurs multiples contenue, avec un nom du type de racine de l'application qui a été passé lors de la construction de DAS Relationnel. La propriété peut prendre des valeurs de seulement ce type. La seule chose que l'application peut faire d'utile avec le type de racine est d'appeler createDataObject() sur celui-ci, en passant le nom du type de racine de l'application, dans l'ordre pour créer un objet de données avec son propre type d'application

Liste de paramètres

Aucun.

Valeurs de retour

L'objet racine.

Erreurs / Exceptions

Aucun.

Exemples

Veuillez visitez la section exemples dans la section information générale à propos des DAS Relationnel pour beaucoup d'exemples en appelant cette méthode.



SDO_DAS_Relational::executePreparedQuery

(^)

SDO_DAS_Relational::executePreparedQuery Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.

Description

SDODataObject SDO_DAS_Relational::executePreparedQuery ( PDO $database_handle , PDOStatement $prepared_statement , array $value_list [, array $column_specifier ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exécute une requête donnée sur une base de données relationnelle, en utilisant la ressource de base de données PDO fourni. Elle diffère de la fonction simple executeQuery() puisqu'elle prend des requêtes préparées et une liste de valeurs. Ceci est l'appel approprié lorsque vous voulez utiliser une requête qui doit être appelée un certain nombre de fois avec des arguments différents et il y a donc un avantage de performance à être préparée une seule fois. Elle est utile aussi pour les requêtes SQL qui contiennent des valeurs qui varient prises d'une source qui ne peut pas être totalement sûre. Dans ce dernier cas, il est peu sécuritaire de construire une requête SQL en concaténant simplement les parties de la requête ensemble, puisque les valeurs peuvent convenir des morceau de SQL. Pour se protéger de ceci, d'une prétendue attaque par injection SQL, il est plus sécuritaire de préparer la requête SQL avec des paramètres fictifs (aussi connu sous le nom de marqueurs, noté '?') et fournir une liste de valeurs qui devra être substituée dans un argument séparé. Autrement, cette fonction est la même que executeQuery() puisqu'elle utilise le modèle qui était bâti à partir des métadonnées pour interpréter le jeu de résultats et retourner un graphique de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPAGNIEYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

prepared_statement

Une requête SQL préparée qui sera exécutée sur la base de données. Il aura été préparé par la méthode prepare() de PDO.

value_list

Un tableau de valeurs à être substituées dans la requête SQL à la place des paramètres fictifs. Dans le cas qu'il n'y a pas de paramètres fictifs ou de marqueurs dans la requête SQL, alors cet argument peut être spécifié comme NULL ou en tant qu'un tableau vide.

column_specifier

Le DAS Relationnel doit examiner le jeu de résultats et pour chaque colonne, provenant de quelle table et quelle colonne de la table il vient. Dans certaines circonstances, il peut trouver les informations pour lui-même, mais la plupart du temps il ne le peut pas. Dans ces cas, une colonne spécifique est requise, qui est un tableau qui identifie les colonnes. Chaque entrée dans le tableau est simplement une chaîne de caractères dans la forme table-name.column_name.

Le spécificateur de colonne est requis lorsqu'il y a des noms de colonnes similaires dans les métadonnées de base de données. Par exemple, dans une base de données utilisée dans ces exemples, toutes les tables ont une colonne id et une colonne nom. Lorsque DAS Relationnel récupère le jeu de résultats à partir de PDO, il peut le faire avec l'attribut PDO_FETCH_ASSOC, ce qui permettra aux colonnes dans les jeux de résultats d'être marquées avec un nom de colonne, mais on ne pourra pas distinguer les entrées similaires. Alors cela fonctionnera seulement lorsqu'il y aura aucune entrée similaire possible dans les jeux de résultats.

Pour résumer, spécifier un tableau de spécificateurs de colonne lorsqu'il y a une incertitude à propos des colonnes qui pourraient venir de quelle table. Il faut l'omettre seulement lorsque chaque nom des colonnes dans les métadonnées de base de données est unique.

Tous les exemples dans la section d'Exemples utilisent un spécificateur de colonne. Il y a un exemple dans le dossier Scenarios de l'installation qui ne fait pas : il ne fonctionne seulement avec la table employe et parce qu'il travaille seulement avec une seule table, il ne peut y avoir des noms de colonnes similaires.

Valeurs de retour

Retourne un graphique de données. Spécifiquement, elle retourne un objet racine d'un type spécial. Sous cet objet de racine se trouveront les données du jeu de résultat. L'objet de racine aura une propriété de valeurs multiples contenue avec le même nom que le type racine d'application spécifié dans le constructeur, et la propriété continuera un ou plusieurs objets de donnés du type de racine de l'application.

Dans le cas que la requête aucune donnée, l'objet spécial de racine pour le type de racine de l'application sera vide.

Erreurs / Exceptions

SDO_DAS_Relational::executePreparedQuery() peut jeter une exception SDO_DAS_Relational_Exception si elle n'est pas capable de construire le graphique de données correctement. Cela peut arriver pour un certains nombres de raisons : par exemple, si elle trouve qu'elle n'a pas de clés primaire dans le jeu de résultats pour tous les objets. Le DAS Relationnel attrape toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui inclut un SDO_DAS_Relationnal_Exception qui sera alors jeté.

Exemples

Exemple #1 Récupération d'un objet de données en utilisant executePreparedQuery()

Dans cet exemple, un simple objet de données est récupéré de la base de données - ou possiblement plus d'un s'il y a plus d'une compagnie appelée 'Acme'. Pour chaque compagnie retournée, les propriétés nom et id sont affichées.

D'autres exemples d'utilisation de executePreparedQuery() peuvent être trouvés dans le code d'exemple fourni dans sdo/DAS/Relational/Scenarios.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 
'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_reference_metadata);

/**************************************************************
 * Récupère une connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - il pourrait y en
 * avoir plus s'ils existaient
 * Utilise une requête préparée avec des paramètres fictifs.
 ***************************************************************/
$nom 'Acme';
$pdo_stmt $dbh->prepare('select nom, id from compagnie where nom=?');
$root $das->executePreparedQuery(
    
$dbh
    
$pdo_stmt,
    array(
$nom), 
    array(
'compagnie.nom''compagnie.id'));

/**************************************************************
 * Affiche le nom et son id
 ***************************************************************/
foreach ($root['compagnie'] as $compagnie) {
 echo 
"Compagnie obtenue de la base de données a le nom de = " 
    
$compagnie['nom'] . " et son id est " $compagnie['id'] . "\n";
}
?>



SDO_DAS_Relational::executeQuery

(^)

SDO_DAS_Relational::executeQuery Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.

Description

SDODataObject SDO_DAS_Relational::executeQuery ( PDO $database_handle , string $SQL_statement [, array $column_specifier ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exécute une requête donnée à la base de données relationnelle en utilisant la ressource de base de données PDO fourni. Utilise le modèle qui est bâti des métadonnées pour interpréter le jeu de résultats. Retourne un graphique de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPAGNIEDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

SQL_statement

La requête SQL à être exécutée sur la base de données.

column_specifier

Le DAS Relationnel doit examiner le jeu de résultats et pour chaque colonne, provenant de quelle table et quelle colonne de la table il vient. Dans certaines circonstances, il peut trouver les informations pour lui-même, mais la plupart du temps il ne le peut pas. Dans ces cas, une colonne spécifique est requise, qui est un tableau qui identifie les colonnes. Chaque entrée dans le tableau est simplement une chaîne de caractères dans la forme table-name.column_name.

Le spécificateur de colonne est requis lorsqu'il y a des noms de colonnes similaires dans les métadonnées de base de données. Par exemple, dans une base de données utilisée dans ces exemples, toutes les tables ont une colonne id et une colonne nom. Lorsque DAS Relationnel récupère le jeu de résultats à partir de PDO, il peut le faire avec l'attribut PDO_FETCH_ASSOC, ce qui permettra aux colonnes dans les jeux de résultats d'être marquées avec un nom de colonne, mais on ne pourra pas distinguer les entrées similaires. Alors cela fonctionnera seulement lorsqu'il y aura aucune entrée similaire possible dans les jeux de résultats.

Pour résumer, spécifier un tableau de spécificateurs de colonne lorsqu'il y a une incertitude à propos des colonnes qui pourraient venir de quelle table. Il faut l'omettre seulement lorsque chaque nom des colonnes dans les métadonnées de base de données est unique.

Tous les exemples dans la section d'Exemples utilisent un spécificateur de colonne. Il y a un exemple dans le dossier Scenarios de l'installation qui ne fait pas : il ne fonctionne seulement avec la table employe et parce que il travaille seulement avec une seule table, il ne peut y avoir des noms de colonnes similaires.

Valeurs de retour

Retourne un graphique de données. Spécifiquement, elle retourne un objet racine d'un type spécial. Sous cet objet de racine se trouvera les données du jeu de résultat. L'objet de racine aura une propriété de valeurs multiples contenue avec le même nom que le type racine d'application spécifié dans le constructeur, et la propriété continuera un ou plusieurs objets de donnés du type de racine de l'application.

Dans le cas que la requête aucune données, l'objet spécial de racine pour le type de racine de l'application sera vide.

Erreurs / Exceptions

SDO_DAS_Relational::executeQuery() peut jeter une exception SDO_DAS_Relational_Exception si elle n'est pas capable de construire le graphique de données correctement. Cela peut arriver pour un certains nombres de raisons : par exemple, si elle trouve qu'elle n'a pas de clés primaire dans le jeu de résultats pour tous les objets. Le DAS Relationnel attrape toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui inclut un SDO_DAS_Relationnal_Exception qui sera alors jeté.

Exemples

Veuillez visitez la section exemples dans la section information générale à propos des DAS Relationnel pour beaucoup d'exemples en appelant cette méthode.


Sommaire




Fonctions de Service d'Accès de Données SDO XML


Introduction

Afin d'utiliser le Service d'Accès de Données XML pour les Objets de Service de Données, vous aurez besoin de comprendre certains concepts derrière le SDO : les graphiques de données, les objets de données, XPath et ses expressions, et ainsi de suite. Si vous n'êtes pas familier avec ces idées, vous devriez jeter un oeil sur la section sur SDO.

Le travail de XML DAS est de déplacer les données entre l'application et un fichier source XML, qui peut être soit un fichier ou une adresse URL. SDO est créé et maintenu en accord avec un modèle qui définit les types des noms et quels noms de propriétés chaque type doit avoir. Pour les données qui proviennent d'un fichier XML, le modèle SDO est construit depuis un fichier de schéma écrit dans un langage XML (un fichier xsd). Ce schéma est habituellement passé à la méthode créée lorsque l'objet XMLDAS est initialisé. La » spécification SDO 2.0 définit le lien entre les types XML et les types SDO. Il y a quelques limitations dans le support PHP - tout ce qui se trouve dans la spécification ne peut pas être fait - et ces limitations sont énumérées dans une section suivante.



Installation/Configuration

Sommaire


Pré-requis

Le Service d'Accès de Données requiert PHP 5.1.0 ou supérieur. Il est fonctionnel avec l'extension SDO et requiert que SDO soit installée. Voyez les instructions d'installation SDO pour plus de détails sur comment faire cela.



Installation

Le Service d'Accès de Données et empaqueté et installé avec l'extension SDO. Référez-vous à instructions d'installation SDO.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

La plupart des exemples suivants sont basés sur l'exemple de la lettre décrite dans la documentation SDO. Les exemples assument que le Schéma XML pour la lettre est contenu dans un fichier lettre.xsd et que l'instance de la lettre est dans le fichier lettre.xml. Ces deux fichiers sont reproduits ici :

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

Exemple #1 Chargement, modification et sauvegarde d'un document XML

L'exemple suivant montre comment un document XML peut être chargé provenant d'un fichier, altéré et récrit.

<?php
/**
* Charge, met à jour et sauvegarde un document XML
 */
try {
   
$xmldas SDO_DAS_XML::create("letter.xsd");
   
$document $xmldas->loadFile("letter.xml");
   
$root_data_object $document->getRootDataObject();
   
$root_data_object->date "September 03, 2004";
   
$root_data_object->firstName "Anantoju";
   
$root_data_object->lastName "Madhu";
   
$xmldas->saveFile($document"letter-out.xml");
   echo 
"New file has been written:\n";
   print 
file_get_contents("letter-out.xml");
} catch (
SDO_Exception $e) {
   print(
$e->getMessage());
}
?>

Une instance du XML DAS est la première obtenue de la méthode SDO_DAS_XML::create() qui est une méthode statique de la classe SDO_DAS_XML. L'emplacement du xsd est passé en paramètre. Une fois que nous avons une instance de XML DAS initialisée avec un schéma donné, nous pouvons l'utiliser pour charger l'instance du document en utilisant la méthode loadFile(). Il y a aussi la méthode loadString() si vous voulez charger une instance de document XML provenant d'une chaîne de caractères. Si l'instance du document se charge correctement, un objet de type SDO_DAS_XML_Document sera retourné sur lequel vous pourrez appeler la méthode getRootDataObject() pour obtenir l'objet de données SDO qui est la racine de votre graphique de données SDO. Vous pouvez alors utiliser les opérations SDO pour changer le graphique SDO. Dans cet exemple, nous modifions les propriétés date, prenom et nomFamille. Ensuite, nous utilisons la méthode saveFile() pour écrire les changements dans un fichier système. La méthode saveFile a un argument optionnel qui, s'il est spécifié, fera que le XML DAS va formate le code XML en utilisant cet argument pour indenter chaque changement dans le niveau du document.

Ceci va écrit ce qui suit dans le fichier letter-out.xml.

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <date>September 03, 2004</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Anantoju</firstName>
  <lastName>Madhu</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</FormLetter>

Exemple #2 Création d'un nouveau document XML

L'exemple précédent charge le document depuis un fichier. Cet exemple montre comment créer un graphique de données SDO en mémoire. Dans cet exemple, il est sauvegardé dans une chaîne XML. En outre, vu que la lettre contient à la fois du contenu structuré et non-structuré, on utilise l'API séquence pour assigner les propriétés pour construire le graphique des données.

<?php
/**
* Création d'un document XML
*/
try {
   
$xmldas SDO_DAS_XML::create("letter.xsd");
   try {
       
$doc $xmldas->createDocument();
       
$rdo $doc->getRootDataObject();
       
$seq $rdo->getSequence();
       
$seq->insert("April 09, 2005"NULL'date');
       
$seq->insert("Acme Inc. "NULLNULL);
       
$seq->insert("United Kingdom. ");
       
$seq->insert("Dear"NULLNULL);
       
$seq->insert("Tarun"NULL"firstName");
       
$seq->insert("Nayaraaa"NULL"lastName");
       
$rdo->lastName "Nayar";
       
$seq->insert("Please note that your order number ");
       
$seq->insert(12345);
       
$seq->insert(" has been dispatched today. Thanks for your business with us.");
       print(
$xmldas->saveString($doc));
   } catch (
SDO_Exception $e) {
       print(
$e);
   }
} catch (
SDO_Exception $e) {
   print(
"Problem creating an XML document: " $e->getMessage());
}
?>

La méthode createDocument() du XLM DAS retourne un objet document avec une donnée racine simple correspondant à un élément du document vide. Le nom de l'élément du document est connu du fichier de schéma. S'il y a le moindre doute quant à la valeur de l'élément du document, par exemple lorsque plus d'un schéma a été chargé dans le même XML DAS, le nom de l'élément et l'URI de l'espace de noms peuvent être passés à la méthode createDocument().

Ceci affichera (les retours à la ligne ont été insérés pour une meilleure lisibilité) :

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<date>April 09, 2005</date>
Acme Inc. United Kingdom. 
Dear
<firstName>Tarun</firstName>
<lastName>Nayar</lastName>
Please note that your order number 12345 has been 
dispatched today. Thanks for your business with us.
</FormLetter>

Exemple #3 Définition des propriétés du document XML

Ce troisième exemple montre comment définir la version XML ainsi que l'encodage de l'objet document. Ceci sera utilisé lors de l'écriture du document XML. Si aucune déclaration XML n'est désirée (peut-être voulez-vous générer du XML sous la forme d'une chaîne à incorporer quelque part), alors, vous pouvez utiliser la méthode setXMLDeclaration() pour supprimer la déclaration.

<?php
/**
* Illustration des appels qui contrôlent la déclaration XML
*/
   
$xmldas SDO_DAS_XML::create("letter.xsd");
   
$document $xmldas->loadFile("letter.xml");
   
$document->setXMLVersion("1.1");
   
$document->setEncoding("ISO-8859-1");
   print(
$xmldas->saveString($document));
?>

La version et l'encodage du XML sont définis dans la déclaration XML en haut du document XML.

<?xml version="1.1" encoding="ISO-8859-1"?>
.../...

Exemple #4 Utilisation d'un type ouvert

Ce quatrième exemple illustre l'utilisation d'un type ouvert SDO ainsi que l'utilisation de la méthode createDataObject(). Pour cet exemple, nous utilisons les deux schémas suivants :

<schema
  xmlns="http://www.w3.org/2001/XMLSchema">

  <element name="jungle">
    <complexType>
      <sequence>
        <any minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
    </complexType>
  </element>

</schema>

Notez la présence de l'élément any dans la définition. Ce premier schéma définit le type complexe jungle qui contient une séquence de n'importe quel autre type. Les autres types que cet exemple utilise, sont définis dans un second fichier de schéma :

<schema xmlns= "http://www.w3.org/2001/XMLSchema">

   <complexType name="snakeType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "length" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="bearType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "weight" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="pantherType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "colour" type="string" />
     </sequence>
   </complexType>

</schema>

Voici l'exemple de code PHP qui utilise ces deux fichiers de schéma :

<?php

/**
* Illustration de types ouverts et de l'utilisaton de la méthode addTypes()
*/

$xmldas SDO_DAS_XML::create();
$xmldas->addTypes("jungle.xsd"); // ceci est un type ouvert, i.e. la xsd spécifiée peut contenir le type "any"
$xmldas->addTypes('animalTypes.xsd');

$baloo            $xmldas->createDataObject('','bearType');
$baloo->name      "Baloo";
$baloo->weight    800;

$bagheera         $xmldas->createDataObject('','pantherType');
$bagheera->name   "Bagheera";
$bagheera->colour 'inky black';

$kaa              $xmldas->createDataObject('','snakeType');
$kaa->name        "Kaa";
$kaa->length      25;

$document         $xmldas->createDocument();
$do               $document->getRootDataObject();
$do->bear         $baloo;
$do->panther      $bagheera;
$do->snake        $kaa;

print(
$xmldas->saveString($document,2));

?>

Ces deux fichiers de schéma sont chargés dans le XML DAS avec les méthodes create() et addTypes(). La méthode createDataObject() est utilisée pour créer les trois objets de données. Dans chaque cas, l'URI de l'espace de noms et le nom du type sont passés à la méthode createDataObject() : dans cet exemple, l'URI de l'espace de nom est vide car aucun espace de noms n'est utilisé dans ce schéma. Une fois que les trois objets - représentant un ours, une panthère et un serpent - ont été créés, un objet document est créé avec la méthode createDocument(). Dans ce cas, il n'y a aucune ambiguïté sur l'élément document - vu que le second fichier de schéma définit uniquement des types complexes, l'élément document ne peut être que l'élément global jungle défini dans le premier schéma. Ce document aura un objet racine simple correspondant à un élément document jungle vide. Vu que c'est un type ouvert, les propriétés peuvent y être ajoutées. Lorsque la première assignation est effectuée avec $do->bear, une propriété bear est ajoutée à l'objet racine : de la même façon que pour les deux assignations suivantes. Lorsque le document est écrit via la méthode saveString(), le document résultant sera :

<?xml version="1.0" encoding="UTF-8"?>
<jungle xsi:type="jungle" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bear xsi:type="bearType">
    <name>Baloo</name>
    <weight>800</weight>
  </bear>
  <panther xsi:type="pantherType">
    <name>Bagheera</name>
    <colour>inky black</colour>
  </panther>
  <snake xsi:type="snakeType">
    <name>Kaa</name>
    <length>25</length>
  </snake>
</jungle>

Exemple #5 Trouver ce que vous voulez dans un document

Cet exemple illustre comment trouver un nom d'élément et l'espace de noms d'un élément du document depuis un objet XML Document, le type SDO et l'espace de noms depuis l'élément racine de données XML. Ceci peut être difficile à comprendre, car il y a 4 méthodes à appeler : deux peuvent être exécutées sur l'objet Document, et deux sur n'importe quelle donnée y compris l'objet racine. Parce que les règles qui définissent la façon dont le modèle SDO est dérivé du modèle XML, lorsque l'objet de données concerné est l'objet racine qui représente l'objet document pour le document, seulement trois valeurs possibles peuvent revenir de l'appels des quatre méthodes.

Les deux appels de méthodes qui peuvent être exécutés sur le document sont getRootElementName() et getRootEelementURI(). Elles retournent respectivement le nom de l'élément et l'espace de noms de l'élément document.

Les deux appels de méthodes qui peuvent être exécutés sur tous les objets de données sont getTypeName() et getTypeNamespaceURI(). Elles retournent respectivement le nom du type SDO et l'espace de noms du type de l'objet de données.

Dans tous les cas, l'appel à la méthode getRootElementURI() sur l'objet document retournera la même valeur que l'appel à la méthode getNamespaceURI() sur l'objet racine. Les informations sont toutes dérivées depuis les premières lignes du fichier schéma, où il y a trois sortes distinctes d'informations. Pour illustrer ceci, voici les premières lignes du fichier letter.xsd qui nous avons utilisé plus haut.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:letter="http://letterSchema"
            targetNamespace="http://letterSchema">

  <xsd:element name="letters" type="letter:FormLetter"/>

  <xsd:complexType name="FormLetter" mixed="true">
    .../...

Les trois valeurs importantes sont :

  • letters, le nom de l'élément document

  • FormLetter, le nom du type complexe de l'élément document. C'est également le nom du type SDO de l'objet racine.

  • http://letterSchema, l'espace de noms auquel l'élément document appartient. C'est également l'URI de l'espace de noms du type SDO de l'objet racine.

C'est une partie des règles XML-SDO qui, lorsque le modèle SDO est construit depuis le fichier schéma, sont utilisé pour récupérer le nom du type et l'URI de l'espace de noms des types SDO pour l'élément racine pour les types complexes de l'élément document, lorsqu'ils existent. Dans cet exemple, le nom du type de l'objet racine est FormLetter. Dans le cas où il n'y a pas de définition de type complexe séparé pour l'élément document, lorsque le type est défini en ligne et qu'il est anonyme, le nom du type SDO sera le même que le nom de l'élément.

Le programme suivant charge le document lettre et vérifie les valeurs retournées de chaque des quatre appels.

<?php

$xmldas 
SDO_DAS_XML::create("letter.xsd");
$document $xmldas->loadFile("letter.xml");
$root_do $document->getRootDataObject();

/**
* Le "root element name" est le nom de l'élément de l'élément document
* dans ce cas 'letters'
* Ceci correspond à l'attribut 'name' de l'élément document dans le fichier xsd et correspond
* au nom de l'élément depuis le XML
*/
echo "Le nom de l'élément document est " $document->getRootElementName() . "\n";
assert($document->getRootElementName() == 'letters'); // une propriété du document

/**
* Le "root element URI" est l'espace de noms du nom de l'élément de l'élément document
* dans ce cas 'http://letterSchema' vu que 'letters' est dans l'espace de noms.
* Il est récupéré depuis le xsd et correspond à l'espace de noms récupéré du XML
*/
echo "L'élément document est dans l'espace de noms " $document->getRootElementURI() . "\n";
assert($document->getRootElementURI() == 'http://letterSchema'); // une propriété du document

/**
* Le nom du type est récupéré depuis le modèle SDO
* Les règles XML-SDO utilisées pour cela sont :
*   Le nom du type complexe s'il existe (ici, c'est le cas)
*   Le nom de l'élément document s'il n'y a pas de type complexe
* Il est récupéré depuis le xsd
*/
echo "Le nom du type de l'objet racine est " $root_do->getTypeName() . "\n";
assert($root_do->getTypeName() == 'FormLetter');

/**
* Le type de l'espace de noms est récupéré depuis le modèle SDO
* Les règles XML-SDO assurent que ce sera toujours le même que l'URI de
* l'espace de noms de l'élément document
*/
echo "L'URI de l'espace de noms de l'objet racine est " $root_do->getTypeNamespaceURI() . "\n";
assert($root_do->getTypeNamespaceURI() == 'http://letterSchema'); 

?>

Ce programme affichera :

Le nom de l'élément document est letters
L'élément document est dans l'espace de noms http://letterSchema
Le nom du type de l'objet racine est FormLetter
L'URI de l'espace de noms de l'objet racine est http://letterSchema

Exemple #6 Affichage du modèle SDO

Le XML DAS fournit une signification simple pour voir quels types et propriétés ont été chargés. L'instruction PHP "print" ou "echo" affichera les types et les propriétés.

<?php
/**
* Affichage du modèle
*/

$xmldas SDO_DAS_XML::create("letter.xsd");
print 
$xmldas;

?>

L'affichage de ce programme sera :

object(SDO_XML_DAS)#1 {
18 types have been defined. The types and their properties are::
1. commonj.sdo:BigDecimal
2. commonj.sdo:BigInteger
3. commonj.sdo:Boolean
4. commonj.sdo:Byte
5. commonj.sdo:Bytes
6. commonj.sdo:ChangeSummary
7. commonj.sdo:Character
8. commonj.sdo:DataObject
9. commonj.sdo:Date
10. commonj.sdo:Double
11. commonj.sdo:Float
12. commonj.sdo:Integer
13. commonj.sdo:Long
14. commonj.sdo:Short
15. commonj.sdo:String
16. commonj.sdo:URI
17. http://letterSchema:FormLetter
    - date (commonj.sdo:String)
    - firstName (commonj.sdo:String)
    - lastName (commonj.sdo:String)
18. http://letterSchema:RootType
    - letters (http://letterSchema:FormLetter)


Fonctions SDO DAS XML

Classes pré-définies

Le XML DAS fournit deux classes principales. La première est SDO_DAS_XML qui est la classe principale utilisée pour récupérer les données depuis le source XML et utilisée pour écrire les données. La seconde est la classe SDO_DAS_XML_Document qui représente les données du document XML.

Il y a également quelques classes d'exceptions qui peuvent être lancées si des erreurs sont trouvées lors d'une recherche ou de l'analyse du fichier xsd ou du fichier XML.

SDO_DAS_XML

C'est la classe principale de XML DAS, qui est utilisée pour récupérer les données depuis le source XML mais également pour écrire les données.

Méthodes

  • create C'est une méthode statique disponible dans la classe SDO_DAS_XML. Utilisée pour construire l'objet SDO_DAS_XML.

  • addTypes Fonctionne de la même manière que la méthode create() mais utilisée pour ajouter de contenu d'un second fichier schéma dans un XML DAS qui a déjà été créé.

  • createDataObject Peut être utilisée pour construire l'objet de données SDO d'un type donnée.

  • createDocument Peut être utilisée pour construire l'objet Document XML.

  • loadFile Charge une instance XML depuis un fichier. Ce fichier peut être en local ou sur un hôte distant.

  • loadString la même chose que la méthode ci-dessus. Charge l'instance XML qui est disponible sous la forme d'une chaîne de caractères.

  • saveFile sauvegarde l'objet SDO_DAS_XML_Document en tant qu'un fichier XML.

  • saveString sauvegarde l'objet SDO_DAS_XML_Document en tant qu'une chaîne de caractères.

SDO_DAS_XML_Document

Cette classe peut être utilisée pour récupérer le nom et l'espace de noms de l'élément document et pour récupérer l'objet racine du document. De plus, elle peut également être utilisée pour définir la version XML et l'encodage du document de sortie.

Méthodes

SDO_DAS_XML_ParserException

Est une sous classe de SDO_Exception. Lancée pour toutes les erreurs d'analyse lors du chargement des fichiers xsd/xml.

SDO_DAS_XML_FileException

Est une sous classe de SDO_Exception. Lancée par toutes les méthodes qui chargent des données depuis un fichier, lorsque le fichier ne peut être trouvé.

Limitations avec la spécification SDO 2.0

Les » spécifications SDO 2.0 définissent la concordance entre les types XML et les types SDO. Avec Java SDO, la concordance est implémentée par le XMLHelper. Avec SDO pour PHP, cette concordance est implémentée par les Services d'Accès de Données XML. Le XML DAS implémente la concordance décrite dans les spécifications SDO 2.0 avec les restrictions suivantes :

Types Simples XML
  1. Type Simple avec sdoJava:instanceClass - aucun support PHP fourni

  2. Type simple avec sdoJava:extendedInstanceClass - aucun support PHP fourni

  3. Type Simple avec une liste de itemType.

  4. Type Simple avec union.

Types XML complexes
  1. Type complexe avec sdo:aliasName - aucun support PHP pour ces types d'alias SDO.

Attribut XSD
  1. Attribut avec sdo:aliasName - aucun support PHP pour les alias des propriétés SDO.

  2. Attribut avec une valeur par défaut - aucun support PHP pour les propriétés par défaut SDO.

  3. Attribut avec une valeur fixe - aucun support PHP pour les propriétés SDO en lecture seule ou les valeurs par défaut.

  4. Attribut référençant un DataObject avec sdo:propertyType - aucun support pour sdo:propertyType="...".

  5. Attribut avec des propriétés bidirectionnelles d'un DataObject avec sdo:oppositeProperty et sdo:propertyType - aucun support PHP pour l'opposition SDO.

Éléments XSD
  1. Élément avec sdo:aliasName - aucun support PHP pour les alias de propriétés SDO.

  2. Élément avec un groupe de substitution.

Éléments XSD avec un type simple
  1. Élément de SimpleType avec une valeur par défaut - aucun support PHP pour les valeurs par défaut SDO

  2. Élément de SimpleType avec une valeur fixe - aucun support PHP pour les propriétés en lecture seule SDO ou les valeurs par défaut.

  3. Élément de SimpleType avec sdo:string - aucun support pour sdo:string="true".

  4. Élément référençant un objet DataObject avec sdo:propertyType - aucun support pour sdo:propertyType="..."

  5. Élément avec une référence bidirectionnelle pour un object DataObject avec sdo:oppositeProperty et sdo:propertyType - aucun support PHP pour l'opposition SDO.


SDO_DAS_XML_Document::getRootDataObject

(^)

SDO_DAS_XML_Document::getRootDataObject Retourne la racine de SDO_DataObject

Description

SDO_DataObject SDO_DAS_XML_Document::getRootDataObject ( void )

Retourne la racine de SDO_DataObject.

Liste de paramètres

Valeurs de retour

Retourne la racine de SDO_DataObject.



SDO_DAS_XML_Document::getRootElementName

(^)

SDO_DAS_XML_Document::getRootElementName Retourne le nom de l'élément racine

Description

string SDO_DAS_XML_Document::getRootElementName ( void )

Retourne le nom de l'élément racine.

Liste de paramètres

Valeurs de retour

Retourne le nom de l'élément racine.



SDO_DAS_XML_Document::getRootElementURI

(^)

SDO_DAS_XML_Document::getRootElementURI Retourne la chaîne de caractères URI de l'élément racine

Description

string SDO_DAS_XML_Document::getRootElementURI ( void )

Retourne la chaîne de caractères URI de l'élément racine.

Liste de paramètres

Valeurs de retour

Retourne la chaîne de caractères URI de l'élément racine.



SDO_DAS_XML_Document::setEncoding

(^)

SDO_DAS_XML_Document::setEncoding Fixe l'encodage à l'aide d'une chaîne de caractères

Description

void SDO_DAS_XML_Document::setEncoding ( string $encoding )

Fixe l'encodage à l'aide d'une chaîne de caractères.

Liste de paramètres

encoding

Chaîne de caractères d'encodage.

Valeurs de retour

Aucune.



SDO_DAS_XML_Document::setXMLDeclaration

(^)

SDO_DAS_XML_Document::setXMLDeclaration Fixe la déclaration xml

Description

void SDO_DAS_XML_Document::setXMLDeclaration ( bool $xmlDeclatation )

Contrôle si une déclaration XML sera générée au début du document XML. Fixez à TRUE pour générer la déclaration XML ou à FALSE pour la supprimer.

Liste de paramètres

xmlDeclatation

Valeur booléenne pour fixer la déclaration XML.

Valeurs de retour

Aucune.



SDO_DAS_XML_Document::setXMLVersion

(^)

SDO_DAS_XML_Document::setXMLVersion Fixe la version xml à l'aide d'une chaîne de caractères

Description

void SDO_DAS_XML_Document::setXMLVersion ( string $xmlVersion )

Fixe la version xml à l'aide d'une chaîne de caractères.

Liste de paramètres

xmlVersion

Version xml en chaîne de caractères.

Valeurs de retour

Aucune.



SDO_DAS_XML::addTypes

(^)

SDO_DAS_XML::addTypes Pour charger un second ou subséquent fichier schéma à un objet SDO_DAS_XML

Description

void SDO_DAS_XML::addTypes ( string $xsd_file )

Charge un second ou subséquent fichier schéma à un XML DAS qui est déjà créé avec la méthode statique create(). Bien que le fichier puisse être n'importe quel fichier de schéma valide, une raison pour laquelle utiliser cette méthode est commode est que pour ajouter un fichier schéma contenant les définitions de types très complexe, par conséquent, le nom. Voyez l'exemple 4 du document parent pour un exemple.

Liste de paramètres

xsd_file

Chemin du Fichier Schéma XSD.

Valeurs de retour

Aucune si réussite, autrement émet une exception comme décrite ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.



SDO_DAS_XML::create

(^)

SDO_DAS_XML::create Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné

Description

SDO_DAS_XML SDO_DAS_XML::create ([ mixed $xsd_file [, string $key ]] )

Ceci est la seule méthode statique pour la classe SDO_DAS_XML. Utilisée pour instancier l'objet SDO_DAS_XML.

Liste de paramètres

xsd_file

Emplacement du fichier de Schéma XSD. Ceci est optionnel. S'il est omis, un DAS sera créé qui a seulement les types de base SDO de défini. Les fichiers de schéma peuvent être alors chargés avec la méthode addTypes().

key

Valeurs de retour

Retourne un objet SDO_DAS_XML en cas de succès ou autrement elle émet une exception comme décrite ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.



SDO_DAS_XML::createDataObject

(^)

SDO_DAS_XML::createDataObject Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés

Description

SDO_DataObject SDO_DAS_XML::createDataObject ( string $namespace_uri , string $type_name )

Crée un SDO_DataObject pou un espace de nom URI et un nom de type donnés. Le type devrait être défini dans le modèle sous-jacent autrement SDO_TypeNotFoundException sera émis.

Liste de paramètres

namespace_uri

L'espace de nom URI du nom de type.

type_name

Nom de type.

Valeurs de retour

Retourne un SDO_DataObject en cas succès.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.



SDO_DAS_XML::createDocument

(^)

SDO_DAS_XML::createDocument Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractère

Description

SDO_DAS_XML_Document SDO_DAS_XML::createDocument ([ string $document_element_name ] )
SDO_DAS_XML_Document SDO_DAS_XML::createDocument ( string $document_element_namespace_URI , string $document_element_name [, SDO_DataObject $dataobject ] )

Crée un objet de document XML. Ceci contiendra seulement un seul élément racine vide dans lequel aucune propriété ne sera fixée. Le but de cet appel est d'autoriser une application de créer un document XML à partir de zéro sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères. Le document qui est créé sera comme un document qui aurait été chargé qui contient seulement un seul élément vide avec aucun jeu d'attribut ou d'élément à l'intérieur.

createDocument() peut avoir besoin de savoir quel élément de document il sera. Ceci ne sera pas nécessaire dans les cas simples. Lorsqu'il n'y a pas d'ambiguïté, alors aucun paramètre n'est nécessaire. Cependant, il est possible de charger plus d'un fichier schéma dans le même XML DAS et dans ce cas, il pourrait y avoir plus d'un élément de document possible de défini : de plus, il est même possible qu'il y ait deux éléments de document possibles qui diffèrent seulement avec le espace de nom. Pour pallier à ce problème dans ces cas, il est possible de spécifier soit le nom de l'élément du document ou le nom et l'espace de nom de l'élément du document à la méthode.

Liste de paramètres

document_element_name

Le nom de l'élément du document. Seulement nécessaire s'il y a plus d'une seule possibilité.

document_element_namespace_URI

L'espace de nom qui fait parti du nom de l'élément du document. Seulement nécessaire s'il y a plus d'un élément de document possible avec le même nom.

dataobject

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite.

Erreurs / Exceptions

SDO_UnsupportedOperationException

Émis si un nom de l'élément ou le nom de l'élément et l'espace de nom URI est passé, mais qu'ils ne sont pas trouvé dans le modèle sous-jacent.



SDO_DAS_XML::loadFile

(^)

SDO_DAS_XML::loadFile Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml

Description

SDO_XMLDocument SDO_DAS_XML::loadFile ( string $xml_file )

Construit un arbre de SDO_DataObjects à partir de l'adresse donnée d'une instance de document xml. Retourne un Objet SDO_DAS_XML_Document. Utilisez la méthode SDO_DAS_XML_Document::getRootDataObject pour récupérer l'objet de données racine.

Liste de paramètres

xml_file

Chemin du document d'instance. Cela peut être un chemin à un fichier local ou à une adresse URL.

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite ou émet une exception comme définie ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_PropertyNotFoundException

Émis si une propriété dans un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.



SDO_DAS_XML::loadString

(^)

SDO_DAS_XML::loadString Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée

Description

SDO_DAS_XML_Document SDO_DAS_XML::loadString ( string $xml_string )

Construit un arbre de SDO_DataObjects à partir d'une chaîne de caractères d'instance xml donnée. Retourne un Objet SDO_DAS_XML_Document. Utilisez la méthode SDO_DAS_XML_Document::getRootDataObject pour récupérer l'objet de données racine.

Liste de paramètres

xml_string

Chaînes de caractères xml.

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite ou émet une exception comme définie ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_PropertyNotFoundException

Émis si une propriété dans un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.



SDO_DAS_XML::saveFile

(^)

SDO_DAS_XML::saveFile Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier

Description

void SDO_DAS_XML::saveFile ( SDO_XMLDocument $xdoc , string $xml_file [, int $indent ] )

Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier.

Liste de paramètres

xdoc

Objet SDO_DAS_XML_Document.

xml_file

Fichier xml.

indent

Argument optionnel pour spécifier si le fichier xml devrait être formaté. Un entier non négatif est le montant d'indentation de chaque niveau du xml. Alors, un entier 2 par exemple, indentera le code XML de manière à ce que chaque élément contenu soit de deux espaces plus loin vers la droite que l'élément parent. L'entier 0 causera le fichier xml à être complètement aligné sur la gauche. Un entier -1 signifie aucun formatage - le fichier xml sera sur une longue ligne.

Valeurs de retour

Aucun.

Erreurs / Exceptions

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.



SDO_DAS_XML::saveString

(^)

SDO_DAS_XML::saveString Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

Description

string SDO_DAS_XML::saveString ( SDO_XMLDocument $xdoc [, int $indent ] )

Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

Liste de paramètres

xdoc

Objet SDO_DAS_XML_Document.

indent

Argument optionnel pour spécifier si le fichier xml devrait être formaté. Un entier non négatif est le montant d'indentation de chaque niveau du xml. Alors, un entier 2 par exemple, indentera le xml de manière à ce que chaque élément contenu soit de deux espaces plus loin vers la droite que l'élément parent. L'entier 0 causera le fichier xml à être complètement aligné sur la gauche. Un entier -1 signifie aucun formatage - le fichier xml sera sur une longue ligne.

Valeurs de retour

Chaîne de caractères xml.


Sommaire




SimpleXML


Introduction

L'extension SimpleXML fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

L'extension SimpleXML requiert PHP 5.



Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-simplexml

Note : Avant PHP 5.1.2, --enable-simplexml est nécessaire pour activer cette extension.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Utilisation de base

Plusieurs exemples de ce chapitre requièrent une chaîne XML. Plutôt que de la répéter à chaque exemple, nous allons la placer dans un fichier que nous inclurons dans chacun d'entre eux. Le contenu de ce fichier est illustré par l'exemple qui suit. Autrement, vous pouvez créer un document XML et le lire avec simplexml_load_file().

Exemple #1 Fichier avec une chaîne XML qui sera inclus partout

<?php
$xmlstr 
= <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
?>

La simplicité de SimpleXML apparaît plus clairement lorsqu'on essaye d'extraire une chaîne ou un nombre d'un document XML basique.

Exemple #2 Lecture de <plot>

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

echo 
$xml->movie[0]->plot;
?>

L'exemple ci-dessus va afficher :


   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.

L'accès aux éléments d'un document XML qui contient des caractères non permis par rapport à la convention de nommage de PHP (e.g. les mots clés) est possible en encapsulant le nom de l'élément entre crochets et apostrophes.

Exemple #3 Récupération de <line>

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

echo 
$xml->movie->{'great-lines'}->line;
?>

L'exemple ci-dessus va afficher :

PHP solves all my web problems

Exemple #4 Accéder à un élément non-unique avec SimpleXML

Lorsque plusieurs instances d'un élément existent en tant que fils d'un élément père unique, les techniques normales d'itération peuvent être appliquées.

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

/* Pour chaque <character>, nous affichons un <name>. */
foreach ($xml->movie->characters->character as $character) {
   echo 
$character->name' played by '$character->actorPHP_EOL;
}

?>

L'exemple ci-dessus va afficher :

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Note:

Les propriétés ($xml->movie dans notre précédent exemple) ne sont pas des tableaux. Ceux sont des objets itérables et accessibles.

Exemple #5 Utilisation des attributs

Jusque là, nous n'avons couvert que la lecture des noms d'éléments et leurs valeurs. SimpleXML peut aussi atteindre leurs attributs. L'accès aux attributs d'un élément se fait de la même façon que l'accès aux éléments d'un tableau.

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

/* Accès au node <rating> du premier <movie>.
 * Affichage des attributs de <rating> également. */
foreach ($xml->movie[0]->rating as $rating) {
    switch((string) 
$rating['type']) { // Récupération des attributs comme indices d'éléments
    
case 'thumbs':
        echo 
$rating' thumbs up';
        break;
    case 
'stars':
        echo 
$rating' stars';
        break;
    }
}
?>

L'exemple ci-dessus va afficher :

7 thumbs up5 stars

Exemple #6 Comparaison des éléments et des attributs avec du texte

Pour comparer un élément ou un attribut avec une chaîne de caractères ou pour le passer à une fonction qui nécessite une chaîne de caractères, vous devez le transtyper en une chaîne en utilisant (string). Sinon, PHP traitera l'élément comme un objet.

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

if ((string) 
$xml->movie->title == 'PHP: Behind the Parser') {
    print 
'My favorite movie.';
}

echo 
htmlentities((string) $xml->movie->title);
?>

L'exemple ci-dessus va afficher :

My favorite movie.PHP: Behind the Parser

Exemple #7 Comparaison de 2 éléments

Deux objets SimpleXMLElement sont considérés comme différents même s'ils pointent vers le même élément, depuis PHP 5.2.0.

<?php
include 'example.php';

$el1 = new SimpleXMLElement($xmlstr);
$el2 = new SimpleXMLElement($xmlstr);
var_dump($el1 == $el2); // retourne false depuis PHP 5.2.0
?>

L'exemple ci-dessus va afficher :

bool(false)

Exemple #8 Utilisation de XPath

SimpleXML inclut le support embarqué de XPath. Pour trouver tous les éléments <character> :

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

foreach (
$xml->xpath('//character') as $character) {
    echo 
$character->name'played by '$character->actorPHP_EOL;
}
?>

'//' sert de joker. Pour spécifier un chemin absolu, enlevez un slash.

L'exemple ci-dessus va afficher :

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Exemple #9 Attribuer des valeurs

Les données dans SimpleXML n'ont pas à être constantes. L'objet permet la manipulation de tous ces éléments.

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

$xml->movie[0]->characters->character[0]->name 'Miss Coder';

echo 
$xml->asXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Miss Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Exemple #10 Ajout d'éléments et d'attributs

Depuis PHP 5.1.3, SimpleXML est capable d'ajouter facilement des enfants et des attributs.

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

$character $xml->movie[0]->characters->addChild('character');
$character->addChild('name''Mr. Parser');
$character->addChild('actor''John Doe');

$rating $xml->movie[0]->addChild('rating''PG');
$rating->addAttribute('type''mpaa');

echo 
$xml->asXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 <rating type="mpaa">PG</rating></movie>
</movies>

Exemple #11 Interopérabilité DOM

PHP possède un mécanisme pour convertir les noeuds XML entre les formats SimpleXML et DOM. Cet exemple montre comment changer un élément DOM en SimpleXML.

<?php
$dom 
= new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!
$dom) {
    echo 
'Erreur lors de l\'analyse du document';
    exit;
}

$s simplexml_import_dom($dom);

echo 
$s->book[0]->title;
?>

L'exemple ci-dessus va afficher :

blah



Traitement des erreurs XML

Le traitement des erreurs XML lors du chargement d'un document est une tâche simple. En utilisant les fonctionnalités libxml, il est possible de supprimer toutes les erreurs XML lors du chargement d'un document, puis, de les parcourir.

L'objet libXMLError, retourné par la fonction libxml_get_errors(), contient plusieurs propriétés dont le message, la ligne et la colonne (position) de l'erreur.

Exemple #1 Chargement de chaînes XML cassées

<?php
libxml_use_internal_errors
(true);
$sxe simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if (!
$sxe) {
    echo 
"Erreur lors du chargement du XML\n";
    foreach(
libxml_get_errors() as $error) {
        echo 
"\t"$error->message;
    }
}
?>

L'exemple ci-dessus va afficher :

Erreur lors du chargement du XML
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1




La classe SimpleXMLElement

Introduction

Représente un élément du document XML.

Synopsis de la classe

SimpleXMLElement implements Traversable {
/* Méthodes */
public __construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )
public void addAttribute ( string $name , string $value [, string $namespace ] )
public SimpleXMLElement addChild ( string $name [, string $value [, string $namespace ]] )
public mixed asXML ([ string $filename ] )
public SimpleXMLElement attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )
public SimpleXMLElement children ([ string $ns [, bool $is_prefix = false ]] )
public int count ( void )
public array getDocNamespaces ([ bool $recursive = false ] )
public string getName ( void )
public array getNamespaces ([ bool $recursive = false ] )
public bool registerXPathNamespace ( string $prefix , string $ns )
public array xpath ( string $path )
}

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3)

SimpleXMLElement::addAttribute Ajoute un attribut à l'élément SimpleXML

Description

public void SimpleXMLElement::addAttribute ( string $name , string $value [, string $namespace ] )

Ajoute un attribut à l'élément SimpleXML.

Liste de paramètres

name

Le nom de l'attribut à ajouter.

value

La valeur de l'attribut.

namespace

Si spécifié, l'espace de nom auquel l'attribut appartient.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Ajoute des attributs et enfants à un élément SimpleXML

<?php

include 'example.php';
 
$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type''documentary');

$movie $sxe->addChild('movie');
$movie->addChild('title''PHP2: More Parser Stories');
$movie->addChild('plot''This is all about the people who make it work.');

$characters $movie->addChild('characters');
$character  $characters->addChild('character');
$character->addChild('name''Mr. Parser');
$character->addChild('actor''John Doe');

$rating $movie->addChild('rating''5');
$rating->addAttribute('type''stars');
 
echo 
$sxe->asXML();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Voir aussi



SimpleXMLElement::addChild

(PHP 5 >= 5.1.3)

SimpleXMLElement::addChild Ajoute un élément enfant au noeud XML

Description

public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] )

Ajoute un élément enfant au noeud et retourne un SimpleXMLElement de l'enfant.

Liste de paramètres

name

Le nom de l'élément enfant à ajouter.

value

Si spécifié, la valeur de l'élément enfant.

namespace

Si spécifié, l'espace de nom auquel l'élément enfant appartient.

Valeurs de retour

La méthode addChild retourne un objet SimpleXMLElement représentant l'enfant à ajouter au noeud XML.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Ajoute des attributs et des enfants à un élément SimpleXML

<?php

include 'example.php';
 
$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type''documentary');

$movie $sxe->addChild('movie');
$movie->addChild('title''PHP2: More Parser Stories');
$movie->addChild('plot''This is all about the people who make it work.');

$characters $movie->addChild('characters');
$character  $characters->addChild('character');
$character->addChild('name''Mr. Parser');
$character->addChild('actor''John Doe');

$rating $movie->addChild('rating''5');
$rating->addAttribute('type''stars');
 
echo 
$sxe->asXML();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Voir aussi



SimpleXMLElement::asXML

(PHP 5 >= 5.0.1)

SimpleXMLElement::asXML Retourne une chaîne XML basée sur un élément SimpleXML

Description

public mixed SimpleXMLElement::asXML ([ string $filename ] )

Formate les données de l'objet parent en XML 1.0.

Liste de paramètres

filename

Si spécifié, la fonction écrit les données au fichier au lieu de les retourner.

Valeurs de retour

Si le paramètre filename n'est pas spécifié, la fonction retourne une chaîne de caractères en cas de succès et FALSE en cas d'erreur. Si le paramètre est spécifié, elle retourne TRUE si le fichier a été écrit correctement et FALSE autrement.

Exemples

Exemple #1 Obtenir du XML avec SimpleXML

<?php
$string 
= <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo 
$xml->asXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>

SimpleXMLElement::asXML() fonctionne aussi avec les résultats Xpath :

Exemple #2 Utilisation de SimpleXMLElement::asXML() avec les résultats de SimpleXMLElement::xpath()

<?php
// Suite de l'exemple plus haut.

/* On cherche <a><b><c> */
$result $xml->xpath('/a/b/c');

while(list( , 
$node) = each($result)) {
    echo 
$node->asXML();
}
?>

L'exemple ci-dessus va afficher :

<c>text</c><c>stuff</c>



SimpleXMLElement::attributes

(PHP 5 >= 5.0.1)

SimpleXMLElement::attributesIdentifie les attributs d'un élément

Description

public SimpleXMLElement SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )

Fournit les attributs et les valeurs définies dans une balise XML.

Note: SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.

Liste de paramètres

ns

Un espace de noms optionnel pour les attributs récupérés

is_prefix

Par défaut, vaut FALSE

Valeurs de retour

Retourne un objet SimpleXMLElement qui permettant de retrouver tous les attributs d'une balise.

Retourne NULL si appelé sur un objet SimpleXMLElement qui représente déjà un attribut et non une balise.

Exemples

Exemple #1 Interprétation d'une chaîne XML

<?php
$string 
= <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml simplexml_load_string($string);
foreach(
$xml->foo[0]->attributes() as $a => $b) {
    echo 
$a,'="',$b,"\"\n";
}
?>

L'exemple ci-dessus va afficher :

name="one"
game="lonely"



SimpleXMLElement::children

(PHP 5 >= 5.0.1)

SimpleXMLElement::childrenCherche les fils d'un noeud donné

Description

public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )

Cette méthode cherche les fils d'un élément. Le résultat suit les règles de l'itération normale.

Note: SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.

Liste de paramètres

ns

Un espace de noms XML.

is_prefix

Si is_prefix vaut TRUE, ns sera considéré comme un préfixe. S'il vaut FALSE, ns sera considéré comme une URL vers un espace de noms.

Valeurs de retour

Retourne un élément SimpleXMLElement que le noeud possède un fils ou pas.

Historique

Version Description
5.2.0 Le paramètre optionnel is_prefix a été ajouté.

Exemples

Exemple #1 Parcours d'un pseudo-tableau children()

<?php
$xml 
= new SimpleXMLElement(
'<person>
 <child role="son">
  <child role="daughter"/>
 </child>
 <child role="daughter">
  <child role="son">
   <child role="son"/>
  </child>
 </child>
</person>'
);

foreach (
$xml->children() as $second_gen) {
    echo 
' The person begot a ' $second_gen['role'];

    foreach (
$second_gen->children() as $third_gen) {
        echo 
' who begot a ' $third_gen['role'] . ';';

        foreach (
$third_gen->children() as $fourth_gen) {
            echo 
' and that ' $third_gen['role'] .
                
' begot a ' $fourth_gen['role'];
        }
    }
}
?>

L'exemple ci-dessus va afficher :

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Exemple #2 Utilisation des espaces de noms

<?php
$xml 
'<example xmlns:foo="my.foo.urn">
  <foo:a>Apple</foo:a>
  <foo:b>Banana</foo:b>
  <c>Cherry</c>
</example>'
;

$sxe = new SimpleXMLElement($xml);

$kids $sxe->children('foo');
var_dump(count($kids));

$kids $sxe->children('foo'TRUE);
var_dump(count($kids));

$kids $sxe->children('my.foo.urn');
var_dump(count($kids));

$kids $sxe->children('my.foo.urn'TRUE);
var_dump(count($kids));

$kids $sxe->children();
var_dump(count($kids));
?>
int(0)
int(2)
int(2)
int(0)
int(1)

Notes

SimpleXMLElement::children() retourne un noeud, peu importe si le noeud courant a un fils ou non. Utilisez la fonction count() sur le résultat pour vérifier si des fils existent. SimpleXMLElement::count() peut aussi être utilisée à cet effet à partir de PHP 5.3.0.

Voir aussi

  • SimpleXMLElement::count() - Compte le nombre de fils pour un élément
  • count() - Compte tous les éléments d'un tableau ou le nombre de propriétés d'un objet



SimpleXMLElement::__construct

(PHP 5 >= 5.0.1)

SimpleXMLElement::__construct Crée un nouvel objet SimpleXMLElement

Description

public SimpleXMLElement::__construct() ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )

Crée un nouvel objet SimpleXMLElement.

Liste de paramètres

data

Une chaîne de caractères XML bien formée ou le chemin d'accès ou un URL pointant à un document XML si data_is_url vaut TRUE.

options

Optionnellement utilisé pour spécifier des paramètres Libxml additionnels.

data_is_url

Par défaut, data_is_url vaut FALSE. Utilisez TRUE pour spécifier que le paramètres data est un chemin d'accès ou un URL pointant à un document XML au lieu d'une chaîne de caractères de données.

ns

is_prefix

Valeurs de retour

Retourne un objet SimpleXMLElement représentant les données data.

Erreurs / Exceptions

Produit un message d'erreur de type E_WARNING pour chaque erreur trouvée dans les données XML et lance une exception si des erreurs sont détectées.

Astuce

Utilisez la fonction libxml_use_internal_errors() pour supprimer toutes les erreurs XML et la fonction libxml_get_errors() pour les parcourir.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Crée un objet SimpleXMLElement

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo 
$sxe->movie[0]->title;

?>

L'exemple ci-dessus va afficher :

PHP: Behind the Parser

Exemple #2 Crée un objet SimpleXMLElement à partir d'un URL

<?php

$sxe 
= new SimpleXMLElement('http://example.org/document.xml'NULLTRUE);
echo 
$sxe->asXML();

?>

Voir aussi



SimpleXMLElement::count

(PHP 5 >= 5.3.0)

SimpleXMLElement::countCompte le nombre de fils pour un élément

Description

public int SimpleXMLElement::count ( void )

Cette méthode compte le nombre de fils d'un élément.

Valeurs de retour

Retourne le nombre de fils d'un élément.

Exemples

Exemple #1 Comptage du nombre de fils

<?php
$xml 
= <<<EOF
<people>
 <person name="Person 1">
  <child/>
  <child/>
  <child/>
 </person>
 <person name="Person 2">
  <child/>
  <child/>
  <child/>
  <child/>
  <child/>
 </person>
</people>
EOF;

$elem = new SimpleXMLElement($xml);

foreach (
$elem as $person) {
    
printf("%s has got %d children.\n"$person['name'], $person->count());
}
?>

L'exemple ci-dessus va afficher :

Person 1 has got 3 children.
Person 2 has got 5 children.

Voir aussi



SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2)

SimpleXMLElement::getDocNamespaces Retourne les espaces de noms déclarés dans un document

Description

public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false ] )

Retourne les espaces de noms déclarés dans un document.

Liste de paramètres

recursive

Si spécifié, retourne tous les espaces de noms déclarés dans les noeuds parents et enfants. Sinon, retourne uniquement les espaces de noms déclarés dans le noeud racine.

Valeurs de retour

La méthode getDocNamespaces retourne un tableau d'espaces de noms avec leurs URL associées.

Exemples

Exemple #1 Récupère les espaces de noms du document

<?php

$xml 
= <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;
 
$sxe = new SimpleXMLElement($xml);

$namespaces $sxe->getDocNamespaces();
var_dump($namespaces);

?>

L'exemple ci-dessus va afficher :

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Exemple #2 Travail avec plusieurs espaces de noms

<?php

$xml 
= <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person t:id="1">John Doe</p:person>
    <p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
        Susie Q. Public
    </p:person>
</people>
XML;
 
$sxe = new SimpleXMLElement($xml);

$namespaces $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

L'exemple ci-dessus va afficher :

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Voir aussi



SimpleXMLElement::getName

(PHP 5 >= 5.1.3)

SimpleXMLElement::getNameRécupère le nom d'un élément XML

Description

public string SimpleXMLElement::getName ( void )

Récupère le nom d'un élément XML.

Valeurs de retour

La méthode getName retourne un nom sous la forme de chaîne de caractères d'une balise XML référencé par l'objet SimpleXMLElement.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Récupère les noms des éléments XML

<?php
include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);

echo 
$sxe->getName() . "\n";

foreach (
$sxe->children() as $child)
{
    echo 
$child->getName() . "\n";
}

?>

L'exemple ci-dessus va afficher :

movies
movie



SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2)

SimpleXMLElement::getNamespaces Retourne les espaces de noms utilisés dans un document

Description

public array SimpleXMLElement::getNamespaces ([ bool $recursive = false ] )

Retourne les espaces de noms utilisés dans un document.

Liste de paramètres

recursive

Si spécifié, retourne tous les espaces de noms utilisés dans les noeuds parents et enfants. Sinon, retourne uniquement les espaces de noms utilisés dans le noeud racine.

Valeurs de retour

La méthode getNamespaces retourne un tableau d'espaces de noms avec leurs URL associés.

Exemples

Exemple #1 Récupère les espaces de noms utilisés dans un document

<?php

$xml 
= <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;
 
$sxe = new SimpleXMLElement($xml);

$namespaces $sxe->getNamespaces(true);
var_dump($namespaces);

?>

L'exemple ci-dessus va afficher :

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

Voir aussi



SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.2.0)

SimpleXMLElement::registerXPathNamespace Crée un contexte préfixe/ns pour la prochaine requête XPath

Description

public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )

Crée un contexte préfixe/ns pour la prochaine requête XPath. En particulier, ceci est utile si le fournisseur du document XML donné modifie les préfixes d'espace de nom. registerXPathNamespace créera un préfixe pour l'espace de nom associé, autorisant l'accès aux noeuds dans cet espace de nom sans avoir besoin de changer le code pour autoriser les nouveaux préfixes dictés par le fournisseur.

Liste de paramètres

prefix

Le préfixe d'espace de nom à utiliser dans la requête XPath pour l'espace de nom donnée dans ns.

ns

L'espace de nom à utiliser pour la requête XPath. Ceci doit concorder avec un espace de nom qui est utilisé par le document XML, sinon la requête XPath qui utilise prefix ne retournera aucun résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fixe un préfixe d'espace de nom pour utiliser dans une requête XPath

<?php

$xml 
= <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
    <title>My Book</title>
    <chapter id="1">
        <chap:title>Chapter 1</chap:title>
        <para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque. 
            In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci. 
            Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut, 
            ultricies id, mauris.</para>
    </chapter>
    <chapter id="2">
        <chap:title>Chapter 2</chap:title>
        <para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin 
            gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam 
            vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros 
            tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
    </chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c''http://example.org/chapter-title');
$result $sxe->xpath('//c:title');

foreach (
$result as $title) {
  echo 
$title "\n";
}

?>

L'exemple ci-dessus va afficher :

Chapter 1
Chapter 2

Notez comment le document XML montré dans cet exemple fixe un espace de nom avec le préfixe chap. Imaginez que ce document (ou un autre similaire) puisse avoir utilisé un préfixe c dans le passé pour le même espace de nom. Puisqu'il a changé, la requête XPath ne retournerait plus les résultats appropriés et la requête devrait être modifiée. L'utilisation de registerXPathNamespace évite les modifications futures de la requête même si le fournisseur change le préfixe d'espace de nom.

Voir aussi



SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0)

SimpleXMLElement::saveXMLAlias de SimpleXMLElement::asXML()

Description

Cette méthode est un alias de: SimpleXMLElement::asXML()



SimpleXMLElement::xpath

(PHP 5 >= 5.2.0)

SimpleXMLElement::xpathExécute une requête Xpath sur des données XML

Description

public array SimpleXMLElement::xpath ( string $path )

La méthode xpath cherche dans le noeud SimpleXML des enfants qui correspondent au path Xpath.

Liste de paramètres

path

Un chemin XPath

Valeurs de retour

Retourne un tableau d'objets SimpleXMLElement ou FALSE si une erreur survient.

Exemples

Exemple #1 Xpath

<?php
$string 
= <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* On cherche <a><b><c> */
$result $xml->xpath('/a/b/c');

while(list( , 
$node) = each($result)) {
    echo 
'/a/b/c: ',$node,"\n";
}

/* Les chemins relatifs fonctionnent aussi... */
$result $xml->xpath('b/c');

while(list( , 
$node) = each($result)) {
    echo 
'b/c: ',$node,"\n";
}
?>

L'exemple ci-dessus va afficher :

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notez que les deux résultats sont égaux.


Sommaire



Fonctions SimpleXML


simplexml_import_dom

(PHP 5)

simplexml_import_domConstruit un objet SimpleXMLElement à partir d'un objet DOM

Description

SimpleXMLElement simplexml_import_dom ( DOMNode $node [, string $class_name = "SimpleXMLElement" ] )

simplexml_import_dom() prend un noeud d'un document DOM et la transforme en noeud SimpleXML. Ce nouvel objet peut alors être utilisé comme un objet natif SimpleXML.

Liste de paramètres

node

Un élément DOM

class_name

Vous pouvez utiliser ce paramètre optionnel afin que simplexml_load_string() retourne un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

Valeurs de retour

Retourne un objet SimpleXMLElement ou FALSE si une erreur survient.

Exemples

Exemple #1 Import DOM

<?php
$dom 
= new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!
$dom) {
    echo 
'Erreur durant l'analyse du document';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

L'exemple ci-dessus va afficher :

blah

Voir aussi



simplexml_load_file

(PHP 5)

simplexml_load_fileConvertit un fichier XML en objet

Description

object simplexml_load_file ( string $filename [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns [, bool $is_prefix = false ]]]] )

Convertit le document XML filename en un objet de type SimpleXMLElement.

Liste de paramètres

filename

Chemin vers le fichier XML

Note:

Libxml 2 supprime la protection des caractères des URI, alors si vous voulez passer par exemple b&c comme paramètre URI à a, vous devez appeler simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Depuis PHP 5.1.0, vous n'avez plus besoin de faire cela puisque PHP le fait pour vous.

class_name

Vous pouvez utiliser ce paramètre optionnel et ainsi, la fonction simplexml_load_file() retournera un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

options

Depuis PHP 5.1.0 et Libxml 2.6.0, vous pouvez aussi utiliser le paramètre options pour spécifier des paramètres additionnels Libxml.

ns

is_prefix

Valeurs de retour

Retourne un objet de la classe SimpleXMLElement dont les propriétés contiennent les données du document XML. Si une erreur survient, la fonction retournera FALSE.

Erreurs / Exceptions

Produit un message d'erreur de niveau E_WARNING pour chaque erreur trouvée dans les données XML.

Astuce

Utilisez la fonction libxml_use_internal_errors() pour supprimer toutes les erreurs XML, et la fonction libxml_get_errors() pour les parcourir.

Exemples

Exemple #1 Interprétation d'un document XML

<?php
// Le fichier test.xml contient un document XML avec un élément racine
// et au moins un élément /[racine]/title.

if (file_exists('test.xml')) {
    
$xml simplexml_load_file('test.xml');

    
print_r($xml);
} else {
    exit(
'Echec lors de l\'ouverture du fichier test.xml.');
}
?>

Ce script affichera, en cas de succès :

SimpleXMLElement Object
(
  [title] => Example Title
  ...
)

À partir de là, vous pouvez utiliser $xml->title et tout autre élément.

Voir aussi



simplexml_load_string

(PHP 5)

simplexml_load_stringConvertit une chaîne XML en objet

Description

object simplexml_load_string ( string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns [, bool $is_prefix = false ]]]] )

Convertit la chaîne XML data et retourne un objet de la classe SimpleXMLElement.

Liste de paramètres

data

Une chaîne XML valide

class_name

Vous pouvez utiliser le paramètre optionnel et, ainsi, la fonction simplexml_load_string() retournera un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

options

Depuis PHP 5.1.0 et Libxml 2.6.0, vous pouvez aussi utiliser le paramètre options pour spécifier des paramètres additionnels Libxml.

ns

is_prefix

Valeurs de retour

Retourne un objet de la classe SimpleXMLElement dont les propriétés contiennent les données du document XML. Si une erreur survient, la fonction retournera FALSE.

Erreurs / Exceptions

Produit un message d'erreur de niveau E_WARNING pour chaque erreur trouvée dans les données XML.

Astuce

Utilisez la fonction libxml_use_internal_errors() pour supprimer toutes les erreurs XML, et la fonction libxml_get_errors() pour les parcourir.

Exemples

Exemple #1 Convertir une chaîne XML

<?php
$string 
= <<<XML
<?xml version='1.0'?> 
<document>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  I know that's the answer -- but what's the question?
 </body>
</document>
XML;

$xml simplexml_load_string($string);

print_r($xml);
?>

L'exemple ci-dessus va afficher :

SimpleXMLElement Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

À partir de là, vous pouvez utiliser $xml->body et tout autre élément.

Voir aussi


Sommaire




WDDX


Introduction

Ces fonctions sont prévues pour fonctionner avec » WDDX.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

Afin d'utiliser WDDX, vous devez installer la bibliothèque expat (qui est fournie avec Apache 1.3.7 ou supérieur).



Installation

Après avoir installé Expat, compilez PHP avec --enable-wddx et utilisez --with-libexpat-dir pour Expat.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit un identifiant de paquet WDDX, retourné par la fonction wddx_packet_start().




Constantes pré-définies

Cette extension ne définit aucune constante.



Exemples

Sommaire


Toutes les fonctions qui linéarisent les variables utilisent le premier élément d'un tableau pour déterminer si le tableau doit être linéarisé dans un tableau ou dans une structure. Si le premier élément a une chaîne de caractères en tant que clé, alors, il sera linéarisé dans une structure, sinon, dans un tableau.

Exemple #1 Linéarisation d'une valeur simple avec WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example""PHP packet");
?>

Cet exemple affichera :

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Exemple #2 Utilisation de paquets incrémentaux avec WDDX

<?php
$pi 
3.1415926;
$packet_id wddx_packet_start("PHP");
wddx_add_vars($packet_id"pi");

/* Suppose que $cities provient d'une base de données */
$cities = array("Austin""Novato""Seattle");
wddx_add_vars($packet_id"cities");

$packet wddx_packet_end($packet_id);
echo 
$packet;
?>

Cet exemple affichera :

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Note:

Si vous voulez linéariser des caractères non-ASCII, vous devez d'abord les convertir en UTF-8 (voir les fonctions utf8_encode() et iconv()).




WDDX Fonctions


wddx_add_vars

(PHP 4, PHP 5)

wddx_add_varsAjoute des variables à un paquet WDDX

Description

bool wddx_add_vars ( resource $packet_id , mixed $var_name [, mixed $... ] )

Sert à enregistrer et à ajouter les variables passées en argument au paquet repéré par son identifiant packet_id.

Liste de paramètres

Cette fonction prend un nombre variable de paramètres.

packet_id

Un paquet WDDX, retourné par la fonction wddx_packet_start().

var_name

Peut être une chaîne de caractères nommant une variable ou un tableau contenant des noms de variables ou d'autres tableaux, etc..

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



wddx_deserialize

(PHP 4, PHP 5)

wddx_deserializeDélinéarise un paquet WDDX

Description

mixed wddx_deserialize ( string $packet )

Délinéarise un paquet packet WDDX.

Liste de paramètres

packet

Un paquet WDDX, sous la forme d'une chaîne de caractères ou d'un flux.

Valeurs de retour

Retourne la valeur délinéarisée, pouvant être une chaîne de caractères, un nombre ou un tableau. Notez que les structures sont délinéarisées dans des tableaux associatifs.



wddx_packet_end

(PHP 4, PHP 5)

wddx_packet_endClôt un paquet WDDX

Description

string wddx_packet_end ( resource $packet_id )

Clôt un paquet WDDX.

Liste de paramètres

packet_id

Un paquet WDDX, retourné par la fonction wddx_packet_start().

Valeurs de retour

Retourne une chaîne de caractères contenant le paquet WDDX.



wddx_packet_start

(PHP 4, PHP 5)

wddx_packet_startCommence un nouveau paquet WDDX avec une structure

Description

resource wddx_packet_start ([ string $comment ] )

wddx_packet_start() sert à créer un nouveau paquet WDDX, pour pouvoir y faire des ajouts incrémentaux de variables. Elle va automatiquement créer une définition de structure dans le paquet, pour accueillir des variables.

Liste de paramètres

comment

Une chaîne de caractères optionnelle contenant le commentaire.

Valeurs de retour

Retourne un identifiant de paquet pour utilisation ultérieure avec les fonctions WDDX, ou FALSE si une erreur survient.



wddx_serialize_value

(PHP 4, PHP 5)

wddx_serialize_valueEnregistre une valeur dans un paquet WDDX

Description

string wddx_serialize_value ( mixed $var [, string $comment ] )

Enregistre une valeur donnée dans un paquet WDDX.

Liste de paramètres

var

La valeur à linéariser.

comment

Une chaîne de caractères optionnelle contenant un commentaire qui apparaît dans l'en-tête du paquet.

Valeurs de retour

Retourne le paquet WDDX, ou FALSE si une erreur survient.



wddx_serialize_vars

(PHP 4, PHP 5)

wddx_serialize_varsEnregistre plusieurs valeurs dans un paquet WDDX

Description

string wddx_serialize_vars ( mixed $var_name [, mixed $... ] )

Sert à créer un paquet WDDX avec une structure qui contient la représentation des variables passées en arguments.

Liste de paramètres

Cette fonction prend un nombre variable de paramètres.

var_name

Peut être soit une chaîne de caractères nommant une variable ou un tableau contenant des noms de variables ou d'autres tableaux, etc..

...

Valeurs de retour

Retourne le paquet WDDX, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wddx_serialize_vars()

<?php
$a 
1;
$b 5.5;
$c = array("blue""orange""violet");
$d "colors";

$clvars = array("c""d");
echo 
wddx_serialize_vars("a""b"$clvars);
?>

L'exemple ci-dessus va afficher :

<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>


Sommaire




Analyseur syntaxique XML


Introduction

Le langage XML (eXtensible Markup Language (Langage à Balises Extensible)) est un format structuré de données pour les échanges sur le web. C'est un standard défini par le consortium World Wide Web (W3C). Plus d'informations à propos du XML et des technologies afférentes sont accessibles (en anglais) » http://www.w3.org/XML/.

Cette extension PHP implémente la bibliothèque expat de James Clark sous PHP. Cela vous permettra d'analyser mais pas de valider les documents XML. Ce langage supporte trois types de jeux de caractères différents, disponibles aussi sous PHP : US-ASCII, ISO-8859-1 et UTF-8. UTF-16 n'est pas supporté.

Cette extension vous permet de créer des analyseurs XML puis de définir des gestionnaires pour chaque événement XML. Les analyseurs XML disposent de quelques paramètres que vous pouvez régler.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

Cette extension PHP utilise expat compat layer par défaut. Elle peut aussi utiliser expat, qui est disponible sur » http://www.jclark.com/xml/expat.html. Le fichier Makefile livré avec expat ne construit pas par défaut de bibliothèque : il faut utiliser la ligne suivante :

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Un paquet RPM source de expat est disponible sur » http://sourceforge.net/projects/expat/.



Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-xml

Ces fonctions sont activées par défaut, et utilisent la bibliothèque expat fournie avec la distribution. Vous pouvez désactiver le support de XML en utilisant l'option de compilation --disable-xml . Si vous compilez PHP comme module pour Apache 1.3.9 ou supérieur, PHP va automatiquement utiliser la bibliothèque expat fournie par Apache. Si vous ne souhaitez pas utiliser la bibliothèque expat intégrée, il faut que vous compiliez PHP avec l'option --with-expat-dir=DIR , où DIR est le dossier d'installation de votre bibliothèque expat.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

La ressource xml est retournée par xml_parser_create() et xml_parser_create_ns(), et représente un analyseur XML à utiliser avec les autres fonctions de cette extension.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XML_ERROR_NONE (entier)
XML_ERROR_NO_MEMORY (entier)
XML_ERROR_SYNTAX (entier)
XML_ERROR_NO_ELEMENTS (entier)
XML_ERROR_INVALID_TOKEN (entier)
XML_ERROR_UNCLOSED_TOKEN (entier)
XML_ERROR_PARTIAL_CHAR (entier)
XML_ERROR_TAG_MISMATCH (entier)
XML_ERROR_DUPLICATE_ATTRIBUTE (entier)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (entier)
XML_ERROR_PARAM_ENTITY_REF (entier)
XML_ERROR_UNDEFINED_ENTITY (entier)
XML_ERROR_RECURSIVE_ENTITY_REF (entier)
XML_ERROR_ASYNC_ENTITY (entier)
XML_ERROR_BAD_CHAR_REF (entier)
XML_ERROR_BINARY_ENTITY_REF (entier)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (entier)
XML_ERROR_MISPLACED_XML_PI (entier)
XML_ERROR_UNKNOWN_ENCODING (entier)
XML_ERROR_INCORRECT_ENCODING (entier)
XML_ERROR_UNCLOSED_CDATA_SECTION (entier)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (entier)
XML_OPTION_CASE_FOLDING (entier)
XML_OPTION_TARGET_ENCODING (entier)
XML_OPTION_SKIP_TAGSTART (entier)
XML_OPTION_SKIP_WHITE (entier)
XML_SAX_IMPL (string)
Précise la méthode d'implémentation de SAX. Peut être libxml ou expat.


gestionnaires d'événements

Les gestionnaires d'événements XML sont :

Les gestionnaires d'événements XML supportés
Fonction PHP de configuration du gestionnaire Description de l'événement
xml_set_element_handler() Un événement est généré à chaque fois que l'analyseur XML rencontre une balise de début ou de fin. Deux gestionnaires sont disponibles : un pour le début, et un pour la fin.
xml_set_character_data_handler() "Character data" correspond grosso modo à tout ce qui n'est pas une balise XML, y compris les espaces entre les balises. Notez bien que l'analyseur XML n'ajoute ou n'efface aucun espace, et que c'est à l'application (c'est-à-dire vous) de décider de la signification de ces espaces.
xml_set_processing_instruction_handler() Les programmeurs PHP sont habitués aux instructions exécutables (processing instructions ou PIs). <?php ?> est une instruction exécutable où php est appelé programme cible. Ces instructions sont gérées de manière spécifique, (sauf le programme cible "XML" qui est réservé).
xml_set_default_handler() Tout ce qui n'a pas trouvé de gestionnaire est transmis au gestionnaire par défaut. Vous retrouverez par exemple, les déclarations de type de document dans ce gestionnaire.
xml_set_unparsed_entity_decl_handler() Ce gestionnaire est appelé pour gérer les déclaration des entités non analysées (NDATA).
xml_set_notation_decl_handler() Ce gestionnaire est appelé pour déclarer les notations.
xml_set_external_entity_ref_handler() Ce gestionnaire est appelé lorsque l'analyseur XML trouve une référence à une entité générale externe. Cela peut être une référence à un fichier ou à une URL. Reportez-vous à entité externe pour un exemple.
xml_set_start_namespace_decl_handler() Ce gestionnaire est appelé pour le début de la déclaration d'un espace de noms.
xml_set_end_namespace_decl_handler() Ce gestionnaire est appelé pour la déclaration de fin d'espace de noms. Notez que cet évennement ne fait pas partie de LibXML.



Problèmes de casse

Les fonctions de gestion des balises peuvent rencontrer des balises en minuscule, majuscule ou encore dans un mélange des deux. En XML, la procédure standard est d'"identifier les séquences de caractères qui ne sont pas reconnues comme majuscule, et de les remplacer par leur équivalent majuscule". C'est le case-folding, en anglais. En bref, XML met toutes les lettres en majuscules.

Par défaut, tous les noms des éléments qui sont transmis aux fonctions de gestion sont mises en majuscule. Ce comportement est contrôlé par l'analyseur XML, et peut être lu et modifié avec les fonctions respectives xml_parser_get_option() et xml_parser_set_option().



Codes d'erreurs

Les constantes suivantes sont définies comme des codes d'erreurs XML : (retournées par xml_parse())

  • XML_ERROR_NONE
  • XML_ERROR_NO_MEMORY
  • XML_ERROR_SYNTAX
  • XML_ERROR_NO_ELEMENTS
  • XML_ERROR_INVALID_TOKEN
  • XML_ERROR_UNCLOSED_TOKEN
  • XML_ERROR_PARTIAL_CHAR
  • XML_ERROR_TAG_MISMATCH
  • XML_ERROR_DUPLICATE_ATTRIBUTE
  • XML_ERROR_JUNK_AFTER_DOC_ELEMENT
  • XML_ERROR_PARAM_ENTITY_REF
  • XML_ERROR_UNDEFINED_ENTITY
  • XML_ERROR_RECURSIVE_ENTITY_REF
  • XML_ERROR_ASYNC_ENTITY
  • XML_ERROR_BAD_CHAR_REF
  • XML_ERROR_BINARY_ENTITY_REF
  • XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
  • XML_ERROR_MISPLACED_XML_PI
  • XML_ERROR_UNKNOWN_ENCODING
  • XML_ERROR_INCORRECT_ENCODING
  • XML_ERROR_UNCLOSED_CDATA_SECTION
  • XML_ERROR_EXTERNAL_ENTITY_HANDLING



Codage des caractères

L'extension XML de PHP supporte les caractères » Unicode grâce à différents codages. Il y a deux types de codages de caractères : le codage à la source et le codage à la cible. PHP utilise le UTF-8 comme représentation interne.

L'encodage à la source est effectué lors de l'analyse du fichier par XML. Lors de la création d'un analyseur XML), un type de codage à la source peut être spécifié (et il ne pourra plus être modifié jusqu'à la destruction de l'analyseur). Les codages supportés sont : ISO-8859-1, US-ASCII et UTF-8. Les deux derniers sont des codages à un seul octet, c'est-à-dire que les caractères sont représentés sur un seul octet. UTF-8 peut représenter des caractères composés par un nombre variable de bits (jusqu'à 21), allant de 1 à quatre octets. Le codage par défaut utilisé par PHP ISO-8859-1.

Le codage à la cible est effectué lorsque PHP transfert les données aux gestionnaires XML. Lorsqu'un analyseur est créé, le codage à la cible est spécifié de la même façon que le codage à la source, mais il peut être modifié à tout moment. Le codage à la cible affectera les balises, tout comme les données brutes, et les noms des instructions exécutables.

Si l'analyseur XML rencontre un caractère qu'il ne connaît pas (hors limite, par exemple), il retournera une erreur.

Si PHP rencontre un caractère dans le document XML analysé, qu'il ne peut pas représenter dans le codage à la cible choisi, le caractère sera remplacé par un point d'interrogation (cette attitude est susceptible de changer ultérieurement).



Exemples

Sommaire


Exemple de structure XML

Ce premier exemple affiche la structure de l'élément de début dans un document avec indentation.

Exemple #1 Afficher une structure XML

<?php
$file 
"data.xml";
$depth = array();

function 
startElement($parser$name$attrs
{
    global 
$depth;
    for (
$i 0$i $depth[$parser]; $i++) {
        echo 
"  ";
    }
    echo 
"$name\n";
    
$depth[$parser]++;
}

function 
endElement($parser$name
{
    global 
$depth;
    
$depth[$parser]--;
}

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startElement""endElement");
if (!(
$fp fopen($file"r"))) {
    die(
"could not open XML input");
}

while (
$data fread($fp4096)) {
    if (!
xml_parse($xml_parser$datafeof($fp))) {
        die(
sprintf("XML error: %s at line %d",
                    
xml_error_string(xml_get_error_code($xml_parser)),
                    
xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>



Transtypage XML -> HTML

Exemple #1 Transtypage XML -> HTML

Cet exemple remplace les balises XML d'un document par des balises HTML. Les éléments inconnus seront ignorés. Bien entendu, cet exemple sera appliqué à un type précis de fichiers XML.

<?php
$file 
"data.xml";
$map_array = array(
    
"BOLD"     => "B",
    
"EMPHASIS" => "I",
    
"LITERAL"  => "TT"
);

function 
startElement($parser$name$attrs
{
    global 
$map_array;
    if (isset(
$map_array[$name])) {
        echo 
"<$map_array[$name]>";
    }
}

function 
endElement($parser$name
{
    global 
$map_array;
    if (isset(
$map_array[$name])) {
        echo 
"</$map_array[$name]>";
    }
}

function 
characterData($parser$data
{
    echo 
$data;
}

$xml_parser xml_parser_create();
// Utilisons la gestion de casse, de manière à être sûrs de trouver la balise dans $map_array
xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDINGtrue);
xml_set_element_handler($xml_parser"startElement""endElement");
xml_set_character_data_handler($xml_parser"characterData");
if (!(
$fp fopen($file"r"))) {
    die(
"could not open XML input");
}

while (
$data fread($fp4096)) {
    if (!
xml_parse($xml_parser$datafeof($fp))) {
        die(
sprintf("Erreur XML: %s at line %d",
                    
xml_error_string(xml_get_error_code($xml_parser)),
                    
xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>



Entité externe

Cet exemple exploite les références externes de XML : il est possible d'utiliser un gestionnaire d'entité externe pour inclure et analyser les documents, tous comme les instructions exécutables peuvent servir à inclure et analyser d'autres documents, et aussi fournir une indication de confiance (voir plus bas).

Le document XML qui est utilisé dans cet exemple est fourni plus loin dans l'exemple (xmltest.xml et xmltest2.xml).

Exemple #1 Entité externe

<?php
$file 
"xmltest.xml";

function 
trustedFile($file
{
    
// faites seulement confiance aux fichiers locaux dont vous êtes le propriétaire
    
if (!preg_match("@^([a-z]+)\:\/\/@i"$file
        && 
fileowner($file) == getmyuid()) {
            return 
true;
    }
    return 
false;
}

function 
startElement($parser$name$attribs
{
    echo 
"&lt;<font color=\"#0000cc\">$name</font>";
    if (
count($attribs)) {
        foreach (
$attribs as $k => $v) {
            echo 
" <font color=\"#009900\">$k</font>=\"<font 
                   color=\"#990000\">
$v</font>\"";
        }
    }
    echo 
"&gt;";
}

function 
endElement($parser$name
{
    echo 
"&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function 
characterData($parser$data
{
    echo 
"<b>$data</b>";
}

function 
PIHandler($parser$target$data
{
    switch (
strtolower($target)) {
        case 
"php":
            global 
$parser_file;
            
// si le document analysé est de confiance, nous déclarons qu'il est sûr 
            // d'exécuter le code PHP qu'il contient. Si ce n'est pas le cas, le code est affiché
            // à la place.
            
if (trustedFile($parser_file[$parser])) {
                eval(
$data);
            } else {
                
printf("Untrusted PHP code: <i>%s</i>"
                        
htmlspecialchars($data));
            }
            break;
    }
}

function 
defaultHandler($parser$data
{
    if (
substr($data01) == "&" && substr($data, -11) == ";") {
        
printf('<font color="#aa00aa">%s</font>'
                
htmlspecialchars($data));
    } else {
        
printf('<font size="-1">%s</font>'
                
htmlspecialchars($data));
    }
}

function 
externalEntityRefHandler($parser$openEntityNames$base$systemId,
                                  
$publicId) {
    if (
$systemId) {
        if (!list(
$parser$fp) = new_xml_parser($systemId)) {
            
printf("Could not open entity %s at %s\n"$openEntityNames,
                   
$systemId);
            return 
false;
        }
        while (
$data fread($fp4096)) {
            if (!
xml_parse($parser$datafeof($fp))) {
                
printf("XML error: %s at line %d while parsing entity %s\n",
                       
xml_error_string(xml_get_error_code($parser)),
                       
xml_get_current_line_number($parser), $openEntityNames);
                
xml_parser_free($parser);
                return 
false;
            }
        }
        
xml_parser_free($parser);
        return 
true;
    }
    return 
false;
}

function 
new_xml_parser($file
{
    global 
$parser_file;

    
$xml_parser xml_parser_create();
    
xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDING1);
    
xml_set_element_handler($xml_parser"startElement""endElement");
    
xml_set_character_data_handler($xml_parser"characterData");
    
xml_set_processing_instruction_handler($xml_parser"PIHandler");
    
xml_set_default_handler($xml_parser"defaultHandler");
    
xml_set_external_entity_ref_handler($xml_parser"externalEntityRefHandler");

    if (!(
$fp = @fopen($file"r"))) {
        return 
false;
    }
    if (!
is_array($parser_file)) {
        
settype($parser_file"array");
    }
    
$parser_file[$xml_parser] = $file;
    return array(
$xml_parser$fp);
}

if (!(list(
$xml_parser$fp) = new_xml_parser($file))) {
    die(
"could not open XML input");
}

echo 
"<pre>";
while (
$data fread($fp4096)) {
    if (!
xml_parse($xml_parser$datafeof($fp))) {
        die(
sprintf("XML error: %s at line %d\n",
                    
xml_error_string(xml_get_error_code($xml_parser)),
                    
xml_get_current_line_number($xml_parser)));
    }
}
echo 
"</pre>";
echo 
"parse complete\n";
xml_parser_free($xml_parser);

?>

Exemple #2 xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

Ce fichier est inclus depuis xmltest.xml :

Exemple #3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "Ceci est du code PHP qui est exécuté."; ?>
</foo>




Fonctions d'analyse de fichier XML


utf8_decode

(PHP 4, PHP 5)

utf8_decodeConvertit une chaîne UTF-8 en ISO-8859-1

Description

string utf8_decode ( string $data )

utf8_decode() décode la chaîne data, en supposant qu'elle est au format UTF-8, et la convertit au format ISO-8859-1.

Liste de paramètres

data

La chaîne encodée UTF-8.

Valeurs de retour

Retourne la chaîne convertie.

Voir aussi

  • utf8_encode() - Convertit une chaîne ISO-8859-1 en UTF-8 (contient des détails sur l'encodage UTF-8)



utf8_encode

(PHP 4, PHP 5)

utf8_encodeConvertit une chaîne ISO-8859-1 en UTF-8

Description

string utf8_encode ( string $data )

utf8_encode() code la chaîne data au format UTF-8, et retourne la version codée. UTF-8 est un mécanisme standardisé utilisé par Unicode pour coder les caractères de grande taille dans des flux d'octets. UTF-8 est transparent pour les caractères ASCII, il est auto-synchronisé (c'est-à-dire qu'un programme peut toujours savoir dans un flux d'octet où un caractère commence), et peut être utilisé pour faire des comparaisons de chaînes standard, comme pour le tri. PHP utilise l'UTF-8 pour coder les caractères jusqu'à 4 octets comme ceci :

Encodage UTF-8
octets bits représentation
1 7 0bbbbbbb
2 11 110bbbbb 10bbbbbb
3 16 1110bbbb 10bbbbbb 10bbbbbb
4 21 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Chaque b représente un bit qui peut être utilisé pour enregistrer un caractère.

Liste de paramètres

data

Une chaîne ISO-8859-1.

Valeurs de retour

Retour la version UTF-8 de data.



xml_error_string

(PHP 4, PHP 5)

xml_error_stringLit le message d'erreur de l'analyseur XML

Description

string xml_error_string ( int $code )

Lit le message d'erreur de l'analyseur XML associé avec la code code donné.

Liste de paramètres

code

Un code erreur provenant de xml_get_error_code().

Valeurs de retour

Retourne une chaîne représentant la description de l'erreur code, ou FALSE si aucune description n'est trouvée.

Voir aussi



xml_get_current_byte_index

(PHP 4, PHP 5)

xml_get_current_byte_indexRetourne l'index de l'octet courant d'un analyseur XML

Description

int xml_get_current_byte_index ( resource $parser )

Retourne l'index de l'octet courant de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_byte_index() retourne FALSE si parser n'est pas valide ou, sinon, retourne l'index de l'octet d'analyse courante de l'analyseur XML (débute à 0).

Notes

Avertissement

Cette fonction retourne l'index de l'octet en accord avec le texte encodé UTF-8 même si l'entrée est dans un autre encodage.

Voir aussi



xml_get_current_column_number

(PHP 4, PHP 5)

xml_get_current_column_number Retourne le nombre courant de la colonne d'un analyseur XML

Description

int xml_get_current_column_number ( resource $parser )

Retourne le nombre courant de la colonne de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_column_number() retourne FALSE si parser n'est pas valide, ou sinon, retourne le numéro de colonne courante de la ligne courante de l'analyseur, qui correspond à la position d'analyse courante de l'analyseur XML (comme retourné par xml_get_current_line_number()).

Voir aussi



xml_get_current_line_number

(PHP 4, PHP 5)

xml_get_current_line_numberRetourne le numéro de ligne courant d'un analyseur XML

Description

int xml_get_current_line_number ( resource $parser )

Retourne le numéro de ligne courant de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_line_number() retourne FALSE si parser n'est pas valide ou, sinon, retourne le numéro de la ligne en cours d'analyse.

Voir aussi



xml_get_error_code

(PHP 4, PHP 5)

xml_get_error_codeRécupère le code erreur de l'analyseur XML

Description

int xml_get_error_code ( resource $parser )

Récupère le code erreur de l'analyseur XML.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_error_code() retourne FALSE si parser n'est pas une référence à une analyseur XML valide ou, sinon, retourne un des codes erreur listés dans la section sur les codes erreur.

Voir aussi



xml_parse_into_struct

(PHP 4, PHP 5)

xml_parse_into_structAnalyse une structure XML

Description

int xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )

Cette fonction analyse la chaîne XML data et le place dans deux tableaux : le premier index contient des pointeurs sur la position des valeurs correspondantes dans le tableau values. Ces deux paramètres sont passés par références.

Liste de paramètres

parser

Une référence à une analyseur XML.

data

Une chaîne de caractères contenant les données XML.

values

Un tableau contenant les valeurs des données XML.

index

Un tableau contenant les pointeurs vers les valeurs appropriées dans le paramètres $values.

Valeurs de retour

xml_parse_into_struct() retourne 0 si une erreur survient et 1 en cas de succès. Ce n'est pas la même chose que FALSE et TRUE, soyez prudent avec les opérateurs comme ===.

Exemples

Ci-dessous, vous trouverez un exemple qui illustre la structure des deux tableaux générés par la fonction. On utilise une balise simple note, placée dans une autre balise para. On analyse le tout, et on affiche la structure générée :

Exemple #1 Exemple avec xml_parse_into_struct()

<?php
$simple 
"<para><note>simple note</note></para>";
$p xml_parser_create();
xml_parse_into_struct($p$simple$vals$index);
xml_parser_free($p);
echo 
"Index array\n";
print_r($index);
echo 
"\nVals array\n";
print_r($vals);
?>

Affichera :

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

L'analyse événementielle (comme celle de expat), peut se révéler complexe lorsque le document XML est complexe. xml_parse_into_struct() ne génère pas d'objet de type DOM, mais il génère plutôt des structures qui peuvent être parcourues à la façon d'un arbre. Considérons le fichier suivant, qui représente une petite base de données XML :

Exemple #2 moldb.xml - Petite base de données moléculaires

<?xml version="1.0"?>
<moldb>

  <molecule>
      <name>Alanine</name>
      <symbol>ala</symbol>
      <code>A</code>
      <type>hydrophobic</type>
  </molecule>

  <molecule>
      <name>Lysine</name>
      <symbol>lys</symbol>
      <code>K</code>
      <type>charged</type>
  </molecule>

</moldb>
Et maintenant, un code qui analyse le document, et génère les objets ad hoc :

Exemple #3 parsemoldb.php : Analyse moldb.xml et crée un tableau d'objets moléculaires

<?php

class AminoAcid {
    var 
$name;  // nom aa
    
var $symbol;    // symbole à trois lettres
    
var $code;  // code à une lettre
    
var $type;  // hydrophobique, chargé ou neutre

    
function AminoAcid ($aa) {
        foreach (
$aa as $k=>$v)
            
$this->$k $aa[$k];
    }
}

function 
readDatabase($filename) {
    
// lit la base de données xml des acides aminés 
    
$data implode("",file($filename));
    
$parser xml_parser_create();
    
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
    
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
    
xml_parse_into_struct($parser,$data,$values,$tags);
    
xml_parser_free($parser);

    
// boucle à travers les structures
    
foreach ($tags as $key=>$val) {
        if (
$key == "molecule") {
            
$molranges $val;
            
// each contiguous pair of array entries are the 
            // lower and upper range for each molecule definition
            
for ($i=0$i count($molranges); $i+=2) {
                
$offset $molranges[$i] + 1;
                
$len $molranges[$i 1] - $offset;
                
$tdb[] = parseMol(array_slice($values$offset$len));
            }
        } else {
            continue;
        }
    }
    return 
$tdb;
}

function 
parseMol($mvalues) {
    for (
$i=0$i count($mvalues); $i++)
        
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    return new 
AminoAcid($mol);
}

$db readDatabase("moldb.xml");
echo 
"** Base d'objets AminoAcid :\n";
print_r($db);

?>
Après exécution de parsemoldb.php, la variable $db contient un tableau d'objets AminoAcid, et l'affichage le confirme :
** Base d'objets AminoAcid :
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)



xml_parse

(PHP 4, PHP 5)

xml_parseCommence l'analyse d'un document XML

Description

int xml_parse ( resource $parser , string $data [, bool $is_final = false ] )

xml_parse() analyse un document XML. Les gestionnaires pour les événements configurés sont appelés autant de fois que nécessaire.

Liste de paramètres

parser

Une référence sur l'analyseur XML à utiliser.

data

Une partie des données à analyser. Un document peut être analysé morceau par morceau par appels successifs à xml_parse() avec de nouvelles données, aussi longtemps que le paramètre is_final est défini et TRUE lorsque les dernières données sont analysées.

is_final

Si défini et vaut TRUE, data sera le dernier morceau de données envoyées à l'analyseur.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Lors d'un échec d'analyse, la cause de l'erreur peut être obtenue grâce aux fonctions xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number() et xml_get_current_byte_index().

Note:

Les erreurs d'entités sont reportées à la fin des données, ceci uniquement si is_final vaut TRUE.



xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5)

xml_parser_create_nsCrée un analyseur XML

Description

resource xml_parser_create_ns ([ string $encoding [, string $separator = ':' ]] )

xml_parser_create_ns() crée un nouvel analyseur XML avec le support des espaces de noms, et retourne une ressource qui pourra être utilisée avec les autres fonctions XML.

Liste de paramètres

encoding

Le paramètre optionnel encoding spécifie le jeu de caractères d'encodage pour l'entrée/sortie dans PHP 4. Depuis PHP 5, ce jeu de caractères est automatiquement détecté et, donc, le paramètre encoding ne spécifie plus que la sortie. En PHP 4, le jeu de caractères de sortie par défaut est le même que celui d'entrée. En PHP 5.0.0 et PHP 5.0.1, le jeu de caractères d'entrée par défaut est ISO-8859-1, tandis qu'en PHP 5.0.2 et suivant, il vaut UTF-8. Les jeux de caractères supportés sont ISO-8859-1, UTF-8 et US-ASCII.

separator

Avec un analyseur qui supporte les espaces de noms, les balises qui sont passées aux différentes fonctions de gestion seront constituées du nom de l'espace et du nom de balise, séparé par la chaîne seperator.

Valeurs de retour

Retourne une ressource pour le nouvel analyseur XML.

Voir aussi



xml_parser_create

(PHP 4, PHP 5)

xml_parser_createCréation d'un analyseur XML

Description

resource xml_parser_create ([ string $encoding ] )

xml_parser_create() crée un analyseur XML et retourne une référence sur cet analyseur pour qu'il puisse être utilisé ultérieurement par d'autres fonctions XML.

Liste de paramètres

encoding

Le paramètre optionnel encoding spécifie le jeu de caractères d'encodage pour l'entrée/sortie dans PHP 4. Depuis PHP 5, ce jeu de caractères est automatiquement détecté et, donc, le paramètre encoding ne spécifie plus que la sortie. En PHP 4, le jeu de caractères de sortie par défaut est le même que celui d'entrée. Si une chaîne vide est passée, l'analyseur tente d'identifier quel jeu de caractère a été utilisé pour encoder le document en regardant les 3 ou 4 octets du haut. En PHP 5.0.0 et PHP 5.0.1, le jeu de caractères d'entrée par défaut est ISO-8859-1, tandis qu'en PHP 5.0.2 et suivant, il vaut UTF-8. Les jeux de caractères supportés sont ISO-8859-1, UTF-8 et US-ASCII.

Valeurs de retour

Retourne une ressource, gérant le nouvel analyseur XML.

Voir aussi



xml_parser_free

(PHP 4, PHP 5)

xml_parser_freeDétruit un analyseur XML

Description

bool xml_parser_free ( resource $parser )

Détruit l'analyseur XML parser.

Liste de paramètres

parser
Une référence sur un analyseur XML.

Valeurs de retour

Cette fonction retourne FALSE si parser n'est pas une référence valide ou, sinon, détruit l'analyseur et retourne TRUE.



xml_parser_get_option

(PHP 4, PHP 5)

xml_parser_get_optionLit les options d'un analyseur XML

Description

mixed xml_parser_get_option ( resource $parser , int $option )

Lit les options d'un analyseur XML.

Liste de paramètres

parser
Une référence sur un analyseur XML valide.
option
L'option demandée. XML_OPTION_CASE_FOLDING et XML_OPTION_TARGET_ENCODING sont disponibles. Reportez-vous à xml_parser_set_option() pour leurs descriptions.

Valeurs de retour

xml_parser_get_option() retourne FALSE si parser n'est pas un analyseur valide ou si option n'est pas valide (génère aussi un E_WARNING). Sinon, elle retourne la valeur de l'option demandée.



xml_parser_set_option

(PHP 4, PHP 5)

xml_parser_set_optionAffecte les options d'un analyseur XML

Description

bool xml_parser_set_option ( resource $parser , int $option , mixed $value )

Affecte les options d'un analyseur XML.

Liste de paramètres

parser

Une référence vers un analyseur XML.

option

L'option à modifier. Voir ci-dessous.

Les options suivantes sont disponibles :

Options de l'analyseur XML
Option Type de données Description
XML_OPTION_CASE_FOLDING entier Contrôle la gestion de la casse des balises de cet analyseur XML. Par défaut, activé.
XML_OPTION_SKIP_TAGSTART entier Spécifie combien de caractères doivent être éludés du début du nom de la balise.
XML_OPTION_SKIP_WHITE entier Élude ou non les valeurs contenant des caractères blancs.
XML_OPTION_TARGET_ENCODING string Modifie le codage à la cible utilisé par cet analyseur XML. Par défaut, c'est celui qui a été spécifié lors de l'appel de xml_parser_create(). Les codages supportés sont ISO-8859-1, US-ASCII et UTF-8.

value

La nouvelle valeur de l'option.

Valeurs de retour

Retourne FALSE si parser n'est pas une référence valide sur un analyseur XML, ou si l'option n'a pas pu être modifiée. Sinon, l'option est effectivement modifiée, et la fonction retourne TRUE.



xml_set_character_data_handler

(PHP 4, PHP 5)

xml_set_character_data_handlerAffecte les gestionnaires de texte littéral

Description

bool xml_set_character_data_handler ( resource $parser , callback $handler )

Affecte les gestionnaires de début et de fin de l'analyseur XML parser.

Liste de paramètres

parser

Une référence à un analyseur XML à définir comme fonction gérant les données.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter deux paramètres :

handler ( resource $parser , string $data )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
data
Le second paramètre, data, contient les caractères sous la forme d'une chaîne.

Le gestionnaire des données est appelé pour chaque pièce du texte d'un document XML. Il peut être appelé plusieurs fois dans chaque fragment (e.g. pour les chaînes non-ASCII).

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



xml_set_default_handler

(PHP 4, PHP 5)

xml_set_default_handlerAffecte le gestionnaire XML par défaut

Description

bool xml_set_default_handler ( resource $parser , callback $handler )

Affecte le gestionnaire par défaut de l'analyseur XML parser.

Liste de paramètres

parser

Une référence à un analyseur XML à définir comme fonction d'analyse par défaut.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter deux paramètres :

handler ( resource $parser , string $data )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
data
Le second paramètre, data, contient les caractères sous la forme d'une chaîne. Cela peut être une déclaration XML, un type de document, une entité ou d'autres données pour lesquelles aucun gestionnaire n'est prévu.

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



xml_set_element_handler

(PHP 4, PHP 5)

xml_set_element_handlerAffecte les gestionnaires de début et de fin de balise XML

Description

bool xml_set_element_handler ( resource $parser , callback $start_element_handler , callback $end_element_handler )

Affecte les gestionnaires de début et de fin de l'analyseur XML parser. start_element_handler et end_element_handler sont des chaînes qui contiennent les noms de fonctions qui existent lorsque xml_parse() est appelé pour créer parser.

Liste de paramètres

parser

Une référence d'analyseur XML à définir comme fonction gérant les éléments de début et de fin.

start_element_handler

La fonction start_element_handler doit accepter trois paramètres :

start_element_handler ( resource $parser , string $name , array $attribs )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
name
Le deuxième paramètre, name, contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.
attribs
Le troisième paramètre, attribs, contient un tableau associatif avec les attributs de l'éléments (s'il en existe). Les clés de ce tableau seront les noms des attributs, et les valeurs seront les valeurs correspondantes des attributs. Les noms des attributs seront mis en majuscules si l'analyseur gère la casse. Les valeurs des attributs seront inchangées. L'ordre original des attributs peut être retrouvé en passant en revue le tableau attribs, avec la fonction each(). La première clé sera la première clé du tableau.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

end_element_handler

La fonction endelementhandler doit accepter deux paramètres :

end_element_handler ( resource $parser , string $name )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
name
Le second paramètre, name, contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est en train d'être désactivé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_end_namespace_decl_handlerConfigure le gestionnaire XML de données

Description

bool xml_set_end_namespace_decl_handler ( resource $parser , callback $handler )

Définit un gestionnaire à appeler lorsque l'on quitte le contexte d'un espace de noms. Il peut être appelé, pour chaque déclaration de l'espace de noms, après le gestionnaire de la dernière balise de l'élément dont l'espace de noms a été déclaré.

Liste de paramètres

parser

Une référence à un analyseur XML.

handler

handler est une chaîne contenant le nom d'une fonction qui doit exister lorsque la fonction xml_parse() est appelée pour l'analyseur parser.

La fonction nommée par le paramètre handler doit accepter 2 paramètres, et doit retourner une valeur entière. Si la valeur retournée du gestionnaire est FALSE (ce qui sera le cas si aucune valeur n'est retournée), l'analyseur XML arrêtera l'analyse et la fonction xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix )
parser
Le 3ème paramètre, parser, est une référence à l'analyseur XML appelée par le gestionnaire.
prefix
Le préfixe est une chaîne de caractères utilisée pour référencer l'espace de noms dans un objet.

Si une chaîne vide, ou FALSE, est passée à la fonction représentant le gestionnaire, le gestionnaire en question sera désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cet évènement n'est pas supporté sous LibXML.

Voir aussi



xml_set_external_entity_ref_handler

(PHP 4, PHP 5)

xml_set_external_entity_ref_handlerConfigure le gestionnaire XML de références externes

Description

bool xml_set_external_entity_ref_handler ( resource $parser , callback $handler )

Affecte le gestionnaire d'entité externe de l'analyseur XML parser.

Liste de paramètres

parser

Une référence d'analyseur XML à définir comme fonction de référence d'entités externes.

handler

handler est une chaîne qui contient les noms de fonctions qui existent lorsque xml_parse() est appelé pour créer le parser.

La fonction handler doit accepter 5 paramètres, et retourner un entier. Si la valeur retournée par le gestionnaire est FALSE (par exemple si aucune valeur n'est retournée), l'analyseur XML s'arrêtera, et la fonction xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $open_entity_names , string $base , string $system_id , string $public_id )
parser
Le premier paramètre,parser, est une référence sur l'analyseur XML qui appelle cette fonction.
open_entity_names
Le deuxième paramètre, open_entity_names, est la liste de noms d'entités, séparés par des espaces. Ces entités sont accessibles à l'analyse par cette entité (y compris le nom de l'entité référencée).
base
La meilleure base de résolution de l'identifiant système (system_id) de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.
system_id
Identifiant système pour cette entité externe.
public_id
Le cinquième paramètre, public_id, est l'identifiant public, comme spécifié dans la déclaration d'entité, ou une chaîne vide, si aucune déclaration n'a été spécifiée. L'espace dans l'identifiant public sera normalisé comme spécifié dans les spécifications XML.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est en train d'être désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



xml_set_notation_decl_handler

(PHP 4, PHP 5)

xml_set_notation_decl_handlerConfigure le gestionnaire XML de notations

Description

bool xml_set_notation_decl_handler ( resource $parser , callback $handler )

Affecte les gestionnaires de début et de fin de l'analyseur XML parser.

Une notation est une partie du DTD du document, qui a le format suivant :

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
Reportez-vous à la section » des spécifications XML 1.0 pour connaître les notations des entités externes.

Liste de paramètres

parser

Une référence d'analyseur XML à définir comme fonction de déclaration de notation.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter cinq paramètres :

handler ( resource $parser , string $notation_name , string $base , string $system_id , string $public_id )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
notation_name
Le nom de la notation, name, comme précisé dans le format de notation ci-dessus.
base
La meilleure base de résolution de l'identifiant système (system_id) de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.
system_id
Identifiant système pour cette entité externe.
public_id
Identifiant public pour cette entité externe.

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est en train d'être désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



xml_set_object

(PHP 4, PHP 5)

xml_set_objectConfigure un objet comme analyseur XML

Description

bool xml_set_object ( resource $parser , object &$object )

Rend l'analyseur parser utilisable depuis un objet. Toutes les méthodes de rappel, affectées par xml_set_element_handler(), seront les méthodes de cet objet.

Liste de paramètres

parser

Une référence d'analyseur XML à utiliser dans l'objet.

object

L'objet dans lequel nous devons utiliser l'analyseur XML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xml_set_object()

<?php
class xml  {
    var 
$parser;

    function 
xml()
    {
        
$this->parser xml_parser_create();

        
xml_set_object($this->parser$this);
        
xml_set_element_handler($this->parser"tag_open""tag_close");
        
xml_set_character_data_handler($this->parser"cdata");
    }

    function 
parse($data
    {
        
xml_parse($this->parser$data);
    }

    function 
tag_open($parser$tag$attributes
    {
        
var_dump($parser$tag$attributes); 
    }

    function 
cdata($parser$cdata
    {
        
var_dump($parser$cdata);
    }

    function 
tag_close($parser$tag
    {
        
var_dump($parser$tag);
    }

// fin de la classe xml

$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>



xml_set_processing_instruction_handler

(PHP 4, PHP 5)

xml_set_processing_instruction_handlerAffecte les gestionnaires d'instructions exécutables

Description

bool xml_set_processing_instruction_handler ( resource $parser , callback $handler )

Affecte le gestionnaire d'instructions exécutables de l'analyseur XML parser.

Une instruction exécutable a la forme suivante :

<?
target data
?>
    
Vous pouvez mettre du code PHP entre ces balises, mais soyez conscient d'une des limitations des instructions exécutables de XML : la balise de fin d'instruction exécutable (?>) ne peut être échappée, ce qui fait que cette séquence NE DOIT JAMAIS apparaître dans le code PHP placé dans le document PHP. Si un tel texte apparaît, la balise de fin d'instruction exécutable sera reconnue, et le reste du code sera considéré comme des données brutes (et donc, pas exécutées).

Liste de paramètres

parser

Une référence à l'analyseur XML à définir comme fonction d'analyse d'instructions (PI).

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter trois paramètres :

handler ( resource $parser , string $target , string $data )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
target
Le second paramètre, target, contient l'application cible.
data
Le troisième paramètre, data, contient le code sous la forme d'une chaîne.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_start_namespace_decl_handlerConfigure le gestionnaire de caractères

Description

bool xml_set_start_namespace_decl_handler ( resource $parser , callback $handler )

Définit le gestionnaire à appeler lorsque l'espace de noms est déclaré. Les déclarations d'espace de noms surviennent dans les balises de départ. Mais le gestionnaire de départ, appelé lors de la déclaration de l'espace de noms, est appelé avant le gestionnaire de la balise de départ pour chaque espace de noms déclaré dans cette balise.

Liste de paramètres

parser

Une référence vers l'analyseur XML.

handler

handler est une chaîne contenant le nom d'une fonction devant exister lorsque la fonction xml_parse() est appelé pour l'analyseur parser.

La fonction nommée par le paramètre handler doit accepter 3 paramètres, et doit retourner une valeur entière. Si la valeur retournée par le gestionnaire vaut FALSE (ce qui sera le cas lorsqu'aucune valeur n'est retourné), l'analyseur XML arrêtera l'analyse et la fonction xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix , string $uri )
parser
Le première paramètre, parser, est une référence à l'analyseur XML appelée par le gestionnaire.
prefix
Le préfixe est une chaîne de caractères utilisée pour référencer l'espace de noms d'un objet XML.
uri
Identifiant de ressource uniforme (URI) d'un espace de noms.

Si une chaîne vide, ou la valeur FALSE, est passée en guise de fonction pour le gestionnaire, il sera désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5)

xml_set_unparsed_entity_decl_handlerAffecte les gestionnaires d'entités non déclarées

Description

bool xml_set_unparsed_entity_decl_handler ( resource $parser , callback $handler )

Affecte les gestionnaires d'entités non déclarées de l'analyseur XML parser.

Le gestionnaire parser sera appelé si l'analyseur XML rencontre une déclaration d'entité externe avec une déclaration de NDATA, comme suit :

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

Reportez-vous à la section » des spécifications XML 1.0 pour connaître les notations des entités externes.

Liste de paramètres

parser

Une référence à l'analyseur XML à définir à la fonction utilisée par traiter les déclarations d'entités non-analysées.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter six paramètres :

handler ( resource $parser , string $entity_name , string $base , string $system_id , string $public_id , string $notation_name )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
entity_name
Le nom de l'entité qui va être définie.
base
La meilleure base de résolution de l'identifiant système de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.
system_id
Identifiant système pour cette entité externe.
public_id
Identifiant public pour cette entité externe.
notation_name
Nom de la notation de cette entité. (Voir xml_set_notation_decl_handler()).

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est en train d'être désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sommaire




XMLReader


Introduction

L'extension XMLReader un analyseur XML Pull. Le lecteur fonctionne comme un curseur qui avance sur le flux du document et s'arrête à chaque noeud sur le chemin.

Encodage

Il est important de noter que, en interne, libxml utilise l'encodage UTF-8 et donc, l'encodage du contenu récupéré devra toujours être encodé UTF-8.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.



Installation

L'extension XMLReader est disponible dans PECL depuis PHP 5.0.0 et est fournie et activée par défaut en PHP 5.1.0. Elle peut être activée en ajoutant l'argument --enable-xmlreader (ou --with-xmlreader avant 5.1.0) à votre ligne de configuration.

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-xmlreader



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




La classe XMLReader

Introduction

L'extension XMLReader est un analyseur XML. L'analyseur fonctionne comme un curseur qui parcourt le document et s'arrête sur chaque noeud.

Synopsis de la classe

XMLReader {
/* Constantes */
const int XMLReader::NONE = 0 ;
const int XMLReader::ELEMENT = 1 ;
const int XMLReader::ATTRIBUTE = 2 ;
const int XMLReader::TEXT = 3 ;
const int XMLReader::CDATA = 4 ;
const int XMLReader::ENTITY_REF = 5 ;
const int XMLReader::ENTITY = 6 ;
const int XMLReader::PI = 7 ;
const int XMLReader::COMMENT = 8 ;
const int XMLReader::DOC = 9 ;
const int XMLReader::DOC_TYPE = 10 ;
const int XMLReader::DOC_FRAGMENT = 11 ;
const int XMLReader::NOTATION = 12 ;
const int XMLReader::WHITESPACE = 13 ;
const int XMLReader::END_ELEMENT = 15 ;
const int XMLReader::END_ENTITY = 16 ;
const int XMLReader::XML_DECLARATION = 17 ;
const int XMLReader::LOADDTD = 1 ;
const int XMLReader::DEFAULTATTRS = 2 ;
const int XMLReader::VALIDATE = 3 ;
const int XMLReader::SUBST_ENTITIES = 4 ;
/* Propriétés */
public readonly int $attributeCount ;
public readonly string $baseURI ;
public readonly int $depth ;
public readonly bool $hasAttributes ;
public readonly bool $hasValue ;
public readonly bool $isDefault ;
public readonly bool $isEmptyElement ;
public readonly string $localName ;
public readonly string $name ;
public readonly string $namespaceURI ;
public readonly int $nodeType ;
public readonly string $prefix ;
public readonly string $value ;
public readonly string $xmlLang ;
/* Méthodes */
bool close ( void )
DOMNode expand ([ DOMNode $basenode ] )
string getAttribute ( string $name )
string getAttributeNo ( int $index )
string getAttributeNs ( string $localName , string $namespaceURI )
bool getParserProperty ( int $property )
bool isValid ( void )
bool lookupNamespace ( string $prefix )
bool moveToAttribute ( string $name )
bool moveToAttributeNo ( int $index )
bool moveToAttributeNs ( string $localName , string $namespaceURI )
bool moveToElement ( void )
bool moveToFirstAttribute ( void )
bool moveToNextAttribute ( void )
bool next ([ string $localname ] )
bool open ( string $URI [, string $encoding [, int $options = 0 ]] )
bool read ( void )
string readInnerXML ( void )
string readOuterXML ( void )
string readString ( void )
bool setParserProperty ( int $property , bool $value )
bool setRelaxNGSchema ( string $filename )
bool setRelaxNGSchemaSource ( string $source )
bool setSchema ( string $filename )
bool xml ( string $source [, string $encoding [, int $options = 0 ]] )
}

Propriétés

attributeCount

Le nombre d'attributs dans le noeud

baseURI

La base URI du noeud

depth

Profondeur du noeud dans l'arbre démarrant à 0

hasAttributes

Indique si le noeud a des attributs

hasValue

Indique si le noeud a une valeur de texte

isDefault

Indique si l'attribut est par défaut à partir du DTD

isEmptyElement

Indique si le noeud est un élément vide

localName

Le nom local du noeud

name

Le noeud qualifié du noeud

namespaceURI

L'URI de l'espace de nom associé avec le noeud

nodeType

Le type de noeud pour le noeud

prefix

Le préfixe de l'espace de nom associé avec le noeud

value

La valeur du texte du noeud

xmlLang

La portée xml:lang dans lequel le noeud réside

Constantes pré-définies

Types de noeud XMLReader

XMLReader::NONE

Pas de type de noeud

XMLReader::ELEMENT

Élément de départ

XMLReader::ATTRIBUTE

Noeud Attribut

XMLReader::TEXT

Noeud texte

XMLReader::CDATA

Noeud CDATA

XMLReader::ENTITY_REF

Noeud de référence d'entité

XMLReader::ENTITY

Noeud de déclaration d'entité

XMLReader::PI

Noeud d'instruction de processus

XMLReader::COMMENT

Noeud de commentaire

XMLReader::DOC

Noeud document

XMLReader::DOC_TYPE

Noeud de type de document

XMLReader::DOC_FRAGMENT

Noeud de fragment de document

XMLReader::NOTATION

Noeud de notation

XMLReader::WHITESPACE

Noeud "espace"

XMLReader::SIGNIFICANT_WHITESPACE

Noeud "espace" significatif

XMLReader::END_ELEMENT

Élément de fin

XMLReader::END_ENTITY

Entité de fin

XMLReader::XML_DECLARATION

Noeud de déclaration XML

Options de l'analyseur XMLReader

XMLReader::LOADDTD

Charge une DTD mais ne la valide pas

XMLReader::DEFAULTATTRS

Charge une DTD et les attributs par défaut mais ne la valide pas

XMLReader::VALIDATE

Charge une DTD et valide le document au moment de l'analyse

XMLReader::SUBST_ENTITIES

Substitue les entités et étend les références


XMLReader::close

(PHP 5 >= 5.1.2)

XMLReader::closeFerme l'entrée XMLReader

Description

bool XMLReader::close ( void )

Ferme l'entrée de l'objet XMLReader qui est en train d'être analysé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::expand

(PHP 5 >= 5.1.2)

XMLReader::expandRetourne une copie du noeud courant comme un noeud d'objet DOM

Description

DOMNode XMLReader::expand ([ DOMNode $basenode ] )

Cette méthode copie le noeud courant et retourne l'objet approprié DOM.

Valeurs de retour

L'objet DOMNode résultant ou FALSE en cas d'erreur.



XMLReader::getAttribute

(PHP 5 >= 5.1.2)

XMLReader::getAttributeRécupère la valeur d'un attribut par nom

Description

string XMLReader::getAttribute ( string $name )

Retourne la valeur d'un attribut par nom ou une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne de caractères vide si l'attribut avec le name donné n'existe pas ou n'est pas positionné sur l'élément.

Voir aussi



XMLReader::getAttributeNo

(PHP 5 >= 5.1.2)

XMLReader::getAttributeNoRécupère la valeur d'un attribut par index

Description

string XMLReader::getAttributeNo ( int $index )

Retourne la valeur d'un attribut basé sur sa position ou d'une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

index

La position de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne de caractères vide si aucun attribut n'existe à index ou n'est pas positionné sur l'élément.

Voir aussi



XMLReader::getAttributeNs

(PHP 5 >= 5.1.2)

XMLReader::getAttributeNsRécupère la valeur d'un attribut par nom local et URI

Description

string XMLReader::getAttributeNs ( string $localName , string $namespaceURI )

Retourne la valeur d'un attribut par nom et espace de nom URI ou une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

localName

Le nom local.

namespaceURI

L'espace de nom URI.

Valeurs de retour

La valeur de l'attribut ou une chaîne de caractères vide si aucun attribut avec le localName et namespaceURI donnés n'est trouvé ou positionné sur l'élément.

Voir aussi



XMLReader::getParserProperty

(PHP 5 >= 5.1.2)

XMLReader::getParserPropertyIndique si la propriété spécifiée a été fixée

Description

bool XMLReader::getParserProperty ( int $property )

Indique si la propriété spécifiée a été fixée.

Liste de paramètres

property

Une des constantes d'analyseur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::isValid

(PHP 5 >= 5.1.2)

XMLReader::isValidIndique si le document analysé est valide

Description

bool XMLReader::isValid ( void )

Retourne un booléen indiquant si le document qui est en train d'être analysé est valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Validation XML

<?php
$xml 
XMLReader::open('test.xml');

// Vous devez faire ceci pour l'utiliser
$xml->setParserProperty(XMLReader::VALIDATEtrue);

var_dump($xml->isValid());
?>

Voir aussi



XMLReader::lookupNamespace

(PHP 5 >= 5.1.2)

XMLReader::lookupNamespaceConsulte l'espace de nom pour un préfixe

Description

bool XMLReader::lookupNamespace ( string $prefix )

Consulte dans la portée de l'espace de nom pour un préfixe donné.

Liste de paramètres

prefix

Chaînes de caractères contenant le préfixe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



XMLReader::moveToAttribute

(PHP 5 >= 5.1.2)

XMLReader::moveToAttributeDéplace un curseur à un attribut nommé

Description

bool XMLReader::moveToAttribute ( string $name )

Positionne le curseur sur l'attribut nommé.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.2)

XMLReader::moveToAttributeNoDéplace le curseur à un attribut par index

Description

bool XMLReader::moveToAttributeNo ( int $index )

Positionne le curseur sur l'attribut basé sur sa position.

Liste de paramètres

index

La position de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.2)

XMLReader::moveToAttributeNsDéplace le curseur à un attribut d'espace de nom

Description

bool XMLReader::moveToAttributeNs ( string $localName , string $namespaceURI )

Positionne le curseur sur le nom de l'attribut dans l'espace de nom spécifié.

Liste de paramètres

localName

Le nom local.

namespaceURI

L'espace de nom URI.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::moveToElement

(PHP 5 >= 5.1.2)

XMLReader::moveToElementPositionne le curseur sur l'élément parent de l'attribut courant

Description

bool XMLReader::moveToElement ( void )

Déplace le curseur de l'élément parent de l'attribut courant.

Valeurs de retour

Retourne TRUE en cas de succès et FALSE en cas d'échec ou non positionné sur un attribut lorsque cette méthode est appelée.

Voir aussi



XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.2)

XMLReader::moveToFirstAttributePositionne le curseur sur le premier attribut

Description

bool XMLReader::moveToFirstAttribute ( void )

Déplace le curseur sur le premier attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.2)

XMLReader::moveToNextAttributePositionne le curseur sur le prochain attribut

Description

bool XMLReader::moveToNextAttribute ( void )

Déplace le curseur sur le prochain attribut si positionné sur un attribut ou déplace sur le premier attribut si positionné sur un élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::next

(PHP 5 >= 5.1.2)

XMLReader::nextDéplace le curseur au prochain noeud en sautant tous les sous arbres

Description

bool XMLReader::next ([ string $localname ] )

Positionne le curseur sur le prochain noeud en sautant tous les sous arbres.

Liste de paramètres

localname

Le nom du prochaine noeud à se déplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::open

(PHP 5 >= 5.1.2)

XMLReader::openFixe le URI contenant le XML à analyser

Description

bool XMLReader::open ( string $URI [, string $encoding [, int $options = 0 ]] )

Fixe le URI contenant le document XML à être analysé.

Liste de paramètres

URI

URI pointant vers le document.

encoding

L'encodage du document, ou NULL.

options

Un masque de constante LIBXML_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un objet XMLReader ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Historique

Version Description
5.2.0 Les paramètres encoding et options ont été ajoutés.

Voir aussi



XMLReader::read

(PHP 5 >= 5.1.2)

XMLReader::readDéplace le curseur sur le prochain noeud du document

Description

bool XMLReader::read ( void )

Déplace le curseur au prochain noeud texte du document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::readInnerXML

(PHP 5 >= 5.2.0)

XMLReader::readInnerXMLLit le code XML du noeud courant

Description

string XMLReader::readInnerXML ( void )

Lit le contenu du noeud courant, incluant les enfants et le balisage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du noeud courant sous forme de chaîne. Retourne une chaîne vide en cas d'échec.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi



XMLReader::readOuterXML

(PHP 5 >= 5.2.0)

XMLReader::readOuterXMLLit le code XML du noeud courant, y compris lui-même

Description

string XMLReader::readOuterXML ( void )

Lit le code XML du noeud courant, y compris lui-même.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Lit le code XML du noeud courant, y compris lui-même, sous forme de chaîne. Retourne une chaîne vide en cas d'erreur.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi



XMLReader::readString

(PHP 5 >= 5.2.0)

XMLReader::readStringLit le contenu du noeud courant sous forme de chaîne

Description

string XMLReader::readString ( void )

>Lit le contenu du noeud courant sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du noeud courant sous forme de chaîne. Retourne une chaîne vide en cas d'erreur.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi



XMLReader::setParserProperty

(PHP 5 >= 5.1.2)

XMLReader::setParserPropertyFixe ou supprime des options pour l'analyseur

Description

bool XMLReader::setParserProperty ( int $property , bool $value )

Fixe ou supprime des options pour l'analyseur. Les options doivent être fixées après l'appel de xmlreader-open() ou xmlreader-xml() et avant le premier appel de xmlreader-read().

Liste de paramètres

property

Une des constantes d'analyseur.

value

Si fixée à TRUE, l'option sera activée sinon elle sera désactivée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



XMLReader::setRelaxNGSchema

(PHP 5 >= 5.2.0)

XMLReader::setRelaxNGSchemaFixe le nom du fichier ou l'URI pour le Schéma RelaxNG

Description

bool XMLReader::setRelaxNGSchema ( string $filename )

Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG à utiliser pour validation.

Liste de paramètres

filename

Nom du fichier ou URI pointant vers le Schéma RelaxNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.2)

XMLReader::setRelaxNGSchemaSourceSpécifie le schéma RelaxNG

Description

bool XMLReader::setRelaxNGSchemaSource ( string $source )

Spécifie le schéma RelaxNG à utiliser pour validation.

Liste de paramètres

source

Chaîne de caractères contenant le schéma RelaxNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLReader::setSchema

(PHP 5 >= 5.2.0)

XMLReader::setSchemaValide le document avec XSD

Description

bool XMLReader::setSchema ( string $filename )

Utilise le schéma XSD W3C pour valider le contenu, tel qu'il est traité. L'activation n'est possible qu'avant le premier Read().

Liste de paramètres

filename

Le nom du fichier de schéma XSD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si libxml a été compilé sans le support des schémas, si le schéma contient des erreurs, ou si XMLReader::read() a déjà été appelé.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi



XMLReader::XML

(PHP 5 >= 5.1.2)

XMLReader::XMLFixe les données contenant le XML à analyser

Description

bool XMLReader::xml ( string $source [, string $encoding [, int $options = 0 ]] )

Fixe les données contenant le XML à analyser.

Liste de paramètres

source

Chaîne de caractères contenant le XML à être analysée.

encoding

L'encodage du document, ou NULL.

options

Un masque de constantes LIBXML_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un objet XMLReader ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Historique

Version Description
5.2.0 Les paramètres encoding et options ont été ajoutés.

Voir aussi


Sommaire




XMLWriter


Introduction

Voici l'extension XMLWriter. Elle utilise l'API libxml xmlWriter.

Cette extension permet la génération de flux et de fichiers au format XML.

Cette extension peut être utilisée dans un style orienté objet ou un style procédural. Chaque méthode documentée décrit l'appel procédural équivalent.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.



Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-xmlwriter



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Une ressource, utilisée par la version procédurale de l'extension XMLWriter : celle retournée par la fonction xmlwriter_open_memory() ou la fonction xmlwriter_open_uri().




Constantes pré-définies

Cette extension ne définit aucune constante.



Fonctions XMLWriter


XMLWriter::endAttribute

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttributeTermine un attribut

Description

Style orienté objet

bool XMLWriter::endAttribute ( void )

Style procédural

bool xmlwriter_end_attribute ( resource $xmlwriter )

Termine l'attribut courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endCData

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endCDataTermine un bloc CDATA

Description

Style orienté objet

bool XMLWriter::endCData ( void )

Style procédural

bool xmlwriter_end_cdata ( resource $xmlwriter )

Termine la section CDATA courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endComment

(PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)

XMLWriter::endCommentTermine un commentaire

Description

Style orienté objet

bool XMLWriter::endComment ( void )

Style procédural

bool xmlwriter_end_comment ( resource $xmlwriter )

Termine le commentaire courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endDocument

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocumentTermine un document

Description

Style orienté objet

bool XMLWriter::endDocument ( void )

Style procédural

bool xmlwriter_end_document ( resource $xmlwriter )

Termine le document courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endDTDAttlist

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDAttlistTermine la liste des attributs de la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTDAttlist ( void )

Style procédural

bool xmlwriter_end_dtd_attlist ( resource $xmlwriter )

Termine la liste des attributs de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endDTDElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDElementTermine l'élément de la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTDElement ( void )

Style procédural

bool xmlwriter_end_dtd_element ( resource $xmlwriter )

Termine l'élément de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endDTDEntity

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDEntityTermine l'entité de la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTDEntity ( void )

Style procédural

bool xmlwriter_end_dtd_entity ( resource $xmlwriter )

Termine l'entité de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endDTD

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDTermine la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTD ( void )

Style procédural

bool xmlwriter_end_dtd ( resource $xmlwriter )

Termine la DTD courante du document.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endElementTermine l'élément courant

Description

Style orienté objet

bool XMLWriter::endElement ( void )

Style procédural

bool xmlwriter_end_element ( resource $xmlwriter )

Termine l'élément courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::endPI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endPITermine le PI courant

Description

Style orienté objet

bool XMLWriter::endPI ( void )

Style procédural

bool xmlwriter_end_pi ( resource $xmlwriter )

Termine l'instruction courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::flush

(PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)

XMLWriter::flushAffiche le buffer courant

Description

Style orienté objet

mixed XMLWriter::flush ([ bool $empty ] )

Style procédural

mixed xmlwriter_flush ( resource $xmlwriter [, bool $empty ] )

Affiche le buffer courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

empty

Si l'on doit vider le buffer ou non. Par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Si vous aviez ouvert le gestionnaire d'écriture en mémoire, cette fonction retourne le buffer XML généré. Si vous utilisez une URI, cette fonction écrira le buffer et retournera le nombre d'octets écrits.



XMLWriter::fullEndElement

(PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElementTermine l'élément courant

Description

Style orienté objet

bool XMLWriter::fullEndElement ( void )

Style procédural

bool xmlwriter_full_end_element ( resource $xmlwriter )

Termine l'élément XML courant. Écrit une balise de fin même si l'élément est vide.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::openMemory

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemoryCrée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes

Description

Style orienté objet

bool XMLWriter::openMemory ( void )

Style procédural

resource xmlwriter_open_memory ( void )

Crée un nouvel objet XMLWriter, en utilisant la mémoire pour l'affichage des chaînes.

Liste de paramètres

Valeurs de retour

Style orienté objet : Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Style procédural : retourne une ressource xmlwriter en cas de succès, FALSE si une erreur survient.

Voir aussi



XMLWriter::openURI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::openURICrée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage

Description

Style orienté objet

bool XMLWriter::openURI ( string $uri )

Style procédural

resource xmlwriter_open_uri ( string $uri )

Crée un nouveau XMLWriter, en utilisant l'uri pour l'affichage.

Liste de paramètres

uri

L'URI de la ressource pour l'affichage.

Valeurs de retour

Style orienté objet : Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Style procédural : Retourne une ressource xmlwriter pour une utilisation future avec les fonctions xmlwriter en cas de succès, FALSE si une erreur survient.

Voir aussi



XMLWriter::outputMemory

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemoryRetourne le buffer courant

Description

Style orienté objet

string XMLWriter::outputMemory ([ bool $flush ] )

Style procédural

string xmlwriter_output_memory ( resource $xmlwriter [, bool $flush ] )

Retourne le buffer courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

flush

Si l'on doit afficher le buffer ou non. Par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Retourne le buffer courant sous la forme d'une chaîne de caractères.

Voir aussi



XMLWriter::setIndentString

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentStringDéfinit la chaîne à utiliser pour l'indentation

Description

Style orienté objet

bool XMLWriter::setIndentString ( string $indentString )

Style procédural

bool xmlwriter_set_indent_string ( resource $xmlwriter , string $indentString )

Définit la chaîne qui sera utilisée pour indenter chaque élément/attribut d'un document XML.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

indentString

La chaîne pour l'indentation.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::setIndent

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentActive ou non l'indentation

Description

Style orienté objet

bool XMLWriter::setIndent ( bool $indent )

Style procédural

bool xmlwriter_set_indent ( resource $xmlwriter , bool $indent )

Active ou non l'indentation.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

indent

SI l'on doit activer l'indentation ou non.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startAttributeNs

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNsCrée un attribut pour l'espace de noms

Description

Style orienté objet

bool XMLWriter::startAttributeNS ( string $prefix , string $name , string $uri )

Style procédural

bool xmlwriter_start_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Crée un attribut pour l'espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe pour l'espace de noms.

name

Le nom de l'attribut.

uri

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startAttribute

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeCrée un attribut

Description

Style orienté objet

bool XMLWriter::startAttribute ( string $name )

Style procédural

bool xmlwriter_start_attribute ( resource $xmlwriter , string $name )

Commence un attribut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startCData

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startCDataCrée une balise CDATA

Description

Style orienté objet

bool XMLWriter::startCData ( void )

Style procédural

bool xmlwriter_start_cdata ( resource $xmlwriter )

Commence un bloc CDATA.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startComment

(PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)

XMLWriter::startCommentCrée un commentaire

Description

Style orienté objet

bool XMLWriter::startComment ( void )

Style procédural

bool xmlwriter_start_comment ( resource $xmlwriter )

Commence un commentaire.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startDocument

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocumentCrée un document

Description

Style orienté objet

bool XMLWriter::startDocument ([ string $version [, string $encoding [, string $standalone ]]] )

Style procédural

bool xmlwriter_start_document ( resource $xmlwriter [, string $version [, string $encoding [, string $standalone = NULL ]]] )

Commence un document.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

version

Le numéro de version du document dans la déclaration XML. Par défaut, ce paramètre vaut 1.0.

encoding

L'encodage du document dans la déclaration XML. NULL par défaut.

standalone

yes ou no.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startDTDAttlist

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDAttlistCrée une liste d'attributs pour la DTD

Description

Style orienté objet

bool XMLWriter::startDTDAttlist ( string $name )

Style procédural

bool xmlwriter_start_dtd_attlist ( resource $xmlwriter , string $name )

Crée une liste d'attributs pour la DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la liste d'attributs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startDTDElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDElementCrée un élément DTD

Description

Style orienté objet

bool XMLWriter::startDTDElement ( string $qualifiedName )

Style procédural

bool xmlwriter_start_dtd_element ( resource $xmlwriter , string $qualifiedName )

Commence un élément DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

Le nom qualifié du type de document à créer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startDTDEntity

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDEntityCrée une entité DTD

Description

Style orienté objet

bool XMLWriter::startDTDEntity ( string $name , bool $isparam )

Style procédural

bool xmlwriter_start_dtd_entity ( resource $xmlwriter , string $name , bool $isparam )

Commence une entité DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'entité.

isparam

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startDTD

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDCrée une DTD

Description

Style orienté objet

bool XMLWriter::startDTD ( string $qualifiedName [, string $publicId [, string $systemId ]] )

Style procédural

bool xmlwriter_start_dtd ( resource $xmlwriter , string $qualifiedName [, string $publicId [, string $systemId ]] )

Commence une DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

Le nom qualifié du type de document à créer.

publicId

L'identifiant publique externe.

systemId

L'identifiant système externe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startElementNs

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNsCrée un élément d'un espace de noms

Description

Style orienté objet

bool XMLWriter::startElementNS ( string $prefix , string $name , string $uri )

Style procédural

bool xmlwriter_start_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Crée un élément d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'élément.

uri

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementCrée un élément

Description

Style orienté objet

bool XMLWriter::startElement ( string $name )

Style procédural

bool xmlwriter_start_element ( resource $xmlwriter , string $name )

Commence un élément.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::startPI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startPICrée une balise PI

Description

Style orienté objet

bool XMLWriter::startPI ( string $target )

Style procédural

bool xmlwriter_start_pi ( resource $xmlwriter , string $target )

Commence une balise d'instruction.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

target

La cible de l'instruction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::text

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::textÉcrit du texte

Description

Style orienté objet

bool XMLWriter::text ( string $content )

Style procédural

bool xmlwriter_text ( resource $xmlwriter , string $content )

Écrit du texte.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.



XMLWriter::writeAttributeNs

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNsÉcrit un attribut d'un espace de noms

Description

Style orienté objet

bool XMLWriter::writeAttributeNS ( string $prefix , string $name , string $uri , string $content )

Style procédural

bool xmlwriter_write_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri , string $content )

Écrit un attribut d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'attribut.

uri

L'URI de l'espace de noms.

content

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeAttribute

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeÉcrit un attribut

Description

Style orienté objet

bool XMLWriter::writeAttribute ( string $name , string $value )

Style procédural

bool xmlwriter_write_attribute ( resource $xmlwriter , string $name , string $value )

Écrit un attribut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeCData

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCDataÉcrit un bloc CDATA

Description

Style orienté objet

bool XMLWriter::writeCData ( string $content )

Style procédural

bool xmlwriter_write_cdata ( resource $xmlwriter , string $content )

Écrit un bloc CDATA.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du bloc CDATA.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeComment

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCommentÉcrit un commentaire

Description

Style orienté objet

bool XMLWriter::writeComment ( string $content )

Style procédural

bool xmlwriter_write_comment ( resource $xmlwriter , string $content )

Écrit un commentaire.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du commentaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeDTDAttlist

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDAttlistÉcrit une liste d'attributs DTD

Description

Style orienté objet

bool XMLWriter::writeDTDAttlist ( string $name , string $content )

Style procédural

bool xmlwriter_write_dtd_attlist ( resource $xmlwriter , string $name , string $content )

Écrit une liste d'attribut DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la liste d'attributs DTD.

content

Le contenu de la liste d'attributs DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeDTDElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDElementÉcrit un élément DTD

Description

Style orienté objet

bool XMLWriter::writeDTDElement ( string $name , string $content )

Style procédural

bool xmlwriter_write_dtd_element ( resource $xmlwriter , string $name , string $content )

Écrit un élément DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément DTD.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeDTDEntity

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDEntityÉcrit une entité DTD

Description

Style orienté objet

bool XMLWriter::writeDTDEntity ( string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Style procédural

bool xmlwriter_write_dtd_entity ( resource $xmlwriter , string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Écrit une entité DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'entité.

content

Le contenu de l'entité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeDTD

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDÉcrit une DTD

Description

Style orienté objet

bool XMLWriter::writeDTD ( string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Style procédural

bool xmlwriter_write_dtd ( resource $xmlwriter , string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Écrit une DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la DTD.

publicId

L'identifiant publique externe.

systemId

L'identifiant système externe.

subset

Le contenu de la DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeElementNS

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNSÉcrit un élément d'un espace de noms

Description

Style orienté objet

bool XMLWriter::writeElementNS ( string $prefix , string $name , string $uri [, string $content ] )

Style procédural

bool xmlwriter_write_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri [, string $content ] )

Écrit un élément d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'élément.

uri

L'URI de l'espace de noms.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
PHP 5.2.3 Le paramètre content est devenu optionnel.

Voir aussi



XMLWriter::writeElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementÉcrit un élément

Description

Style orienté objet

bool XMLWriter::writeElement ( string $name [, string $content ] )

Style procédural

bool xmlwriter_write_element ( resource $xmlwriter , string $name [, string $content ] )

Écrit un élément.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
PHP 5.2.3 Le paramètre content est devenu optionnel.

Voir aussi



XMLWriter::writePI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writePIÉcrit la balise PI

Description

Style orienté objet

bool XMLWriter::writePI ( string $target , string $content )

Style procédural

bool xmlwriter_write_pi ( resource $xmlwriter , string $target , string $content )

Écrit la balise PI.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

target

La cible de l'instruction.

content

Le contenu de l'instruction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XMLWriter::writeRaw

(PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRawÉcrit un texte XML brut

Description

Style orienté objet

bool XMLWriter::writeRaw ( string $content )

Style procédural

bool xmlwriter_write_raw ( resource $xmlwriter , string $content )

Écrit un texte XML brut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le texte à écrire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi


Sommaire




XSL


Introduction

L'extension XSL implémente le standard XSL, et effectue des » transformations XSLT en utilisant la » bibliothèque libxslt



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

Cette extension utilise libxslt qui peut être trouvée sur » http://xmlsoft.org/XSLT/. libxslt en version 1.1.0 ou ultérieure est requise.



Installation

PHP 5 inclut l'extension XSL par défaut et peut être activée en ajoutant l'argument --with-xsl[=DIR] à votre ligne de configuration. DIR est le dossier d'installation de la bibliothèque libxslt.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension ne définit aucune ressource.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XSL_CLONE_AUTO (entier)
XSL_CLONE_NEVER (entier)
XSL_CLONE_ALWAYS (entier)
LIBXSLT_VERSION (entier)
Version libxslt, par exemple : 10117. Disponible depuis PHP 5.1.2.
LIBXSLT_DOTTED_VERSION (chaîne de caractères)
Version libxslt, par exemple : 1.1.17. Disponible depuis PHP 5.1.2.
LIBEXSLT_VERSION (entier)
Version libexslt, par exemple : 813. Disponible depuis PHP 5.1.2.
LIBEXSLT_DOTTED_VERSION (chaîne de caractères)
Version libexslt, par exemple : 1.1.17. Disponible depuis PHP 5.1.2.


Exemples

Sommaire


De nombreux exemples de ce chapitre nécessitent à la fois un fichier XML et un fichier XSL. Nous utiliserons collection.xml et collection.xsl qui contiennent respectivement :

Exemple #1 collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Exemple #2 collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection! 
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>




La classe XSLTProcessor

Introduction

Synopsis de la classe

XSLTProcessor {
/* Méthodes */
string XSLTProcessor::getParameter ( string $namespaceURI , string $localName )
bool hasExsltSupport ( void )
void importStylesheet ( object $stylesheet )
void registerPHPFunctions ([ mixed $restrict ] )
bool removeParameter ( string $namespaceURI , string $localName )
bool setParameter ( string $namespace , string $name , string $value )
bool setProfiling ( string $filename )
DOMDocument transformToDoc ( DOMNode $doc )
int transformToURI ( DOMDocument $doc , string $uri )
string transformToXML ( DOMDocument $doc )
}

XSLTProcessor::__construct

(PHP 5)

XSLTProcessor::__constructCrée un nouvel objet XSLTProcessor

Description

XSLTProcessor::__construct ( void )

Crée un nouvel objet XSLTProcessor.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec XSLTProcessor

<?php

$doc 
= new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load($xsl_filename);
$xsl->importStyleSheet($doc);

$doc->load($xml_filename);
echo 
$xsl->transformToXML($doc);

?>



XSLTProcessor::getParameter

(PHP 5)

XSLTProcessor::getParameterRécupère la valeur d'un paramètre

Description

string XSLTProcessor::getParameter ( string $namespaceURI , string $localName )

Récupère la valeur d'un paramètre s'il a été défini précédemment par la fonction XSLTProcessor::setParameter().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du paramètre XSLT.

localName

Le nom local du paramètre XSLT.

Valeurs de retour

La valeur du paramètre, ou NULL s'il n'est pas défini.

Voir aussi



XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4)

XSLTProcessor::hasExsltSupportIndique si PHP utilise EXSLT

Description

bool XSLTProcessor::hasExsltSupport ( void )

Cette méthode détermine si PHP a été compilé avec la bibliothèque » EXSLT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Test du support EXSLT

<?php

$proc 
= new XSLTProcessor;
if (!
$proc->hasExsltSupport()) {
    die(
'Le support d\'EXSLT n\'est pas disponible');
}

// Travaux avec EXSLT

?>



XSLTProcessor::importStylesheet

(PHP 5)

XSLTProcessor::importStylesheetImporte une feuille de style

Description

void XSLTProcessor::importStylesheet ( object $stylesheet )

Cette méthode importe une feuille de style dans le XSLTProcessor pour transformations.

Liste de paramètres

stylesheet

La feuille de style importée en tant qu'objet DOMDocument ou objet SimpleXMLElement.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
5.2.8 Accepte de nouveau SimpleXMLElement depuis PHP 5.2.6 alors qu'il était cassé auparavant.



XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4)

XSLTProcessor::registerPHPFunctionsActive l'utilisation de PHP dans les feuilles de styles XSLT

Description

void XSLTProcessor::registerPHPFunctions ([ mixed $restrict ] )

Cette méthode permet d'utiliser les fonctions PHP en tant que fonctions XSLT dans les feuilles de style XSL.

Liste de paramètres

restrict

Utilisez ce paramètre pour restreindre les fonctions PHP accessibles depuis XSLT.

Ce paramètre peut être une chaîne (le nom d'une fonction) ou un tableau de noms de fonctions.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Appel d'une fonction PHP depuis une feuille de style

<?php
$xml 
= <<<EOB
<allusers>
 <user>
  <uid>bob</uid>
 </user>
 <user>
  <uid>joe</uid>
 </user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
 <xsl:template match="allusers">
  <html><body>
    <h2>Users</h2>
    <table>
    <xsl:for-each select="user">
      <tr><td>
        <xsl:value-of
             select="php:function('ucfirst',string(uid))"/>
      </td></tr>
    </xsl:for-each>
    </table>
  </body></html>
 </xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc DOMDocument::loadXML($xml);
$xsldoc DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo 
$proc->transformToXML($xmldoc);
?>

Historique

Version Description
5.1.0 Le paramètre restrict a été ajouté.



XSLTProcessor::removeParameter

(PHP 5)

XSLTProcessor::removeParameterEfface un paramètre

Description

bool XSLTProcessor::removeParameter ( string $namespaceURI , string $localName )

Efface un paramètre, s'il est défini. Ceci fera que le processeur utilisera la valeur par défaut pour le paramètre comme défini dans la feuille de style.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du paramètre XSLT.

localName

Le nom local du paramètre XSLT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



XSLTProcessor::setParameter

(PHP 5)

XSLTProcessor::setParameterDéfinit la valeur d'un paramètre

Description

bool XSLTProcessor::setParameter ( string $namespace , string $name , string $value )
bool XSLTProcessor::setParameter ( string $namespace , array $options )

Spécifie la valeur d'un ou plusieurs paramètres pour être utilisés dans une sous-séquence de transformation avec XSLTProcessor. Si le paramètre n'existe pas dans la feuille de style, il sera ignoré.

Liste de paramètres

namespace

L'URI de l'espace de noms du paramètre XSLT.

name

Le nom local du paramètre XSLT.

value

La nouvelle valeur du paramètre XSLT.

options

Un tableau de paire nom => valeur. Cette syntaxe est disponible depuis PHP 5.1.0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification du propriétaire avant la transformation

<?php

$collections 
= array(
    
'Marc Rutkowski' => 'marc',
    
'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure le transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

foreach ($collections as $name => $file) {
    
// Chargement de la source XML
    
$xml = new DOMDocument;
    
$xml->load('collection_' $file '.xml');

    
$proc->setParameter('''owner'$name);
    
$proc->transformToURI($xml'file:///tmp/' $file '.html');
}

?>

Voir aussi



XSLTProcessor::setProfiling

(PHP >= 5.3.0)

XSLTProcessor::setProfilingSpécifie le fichier de profilage

Description

bool XSLTProcessor::setProfiling ( string $filename )

Spécifie le fichier de sortie contenant les informations de profilage lors de l'exécution d'une feuille de style.

Liste de paramètres

filename

Chemin vers le fichier pour décharger les informations de profilage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'utilisation du profilage

<?php
// Chargement de la source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl); // attachement des règles xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

Le code ci-dessus produira les informations suivantes dans le fichier de profilage :

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4



XSLTProcessor::transformToDoc

(PHP 5)

XSLTProcessor::transformToDocTransforme en un document DOM

Description

DOMDocument XSLTProcessor::transformToDoc ( DOMNode $doc )

Transforme le noeud source en un DOMDocument en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet().

Liste de paramètres

doc

Le noeud à transformer.

Valeurs de retour

Le DOMDocument résultant ou FALSE si une erreur survient.

Exemples

Exemple #1 Transformation en un document DOM

<?php

// Chargement de la source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

L'exemple ci-dessus va afficher :

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Voir aussi



XSLTProcessor::transformToUri

(PHP 5)

XSLTProcessor::transformToUriTransforme en URI

Description

int XSLTProcessor::transformToURI ( DOMDocument $doc , string $uri )

Transforme le noeud source en une URI en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet().

Liste de paramètres

doc

Le document à transformer.

uri

L'URL pour la transformation.

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Exemples

Exemple #1 Transformation en un fichier HTML

<?php

// Chargement du source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

$proc->transformToURI($xml'file:///tmp/out.html');

?>

Voir aussi



XSLTProcessor::transformToXML

(PHP 5)

XSLTProcessor::transformToXMLTransforme en XML

Description

string XSLTProcessor::transformToXML ( DOMDocument $doc )

Transforme le noeud source en une chaîne en y appliquant une feuille de style donnée par la méthode xsltprocessor::importStylesheet().

Liste de paramètres

doc

Le document transformé.

Valeurs de retour

Le résultat de la transformation en tant que chaîne de caractères ou FALSE si une erreur survient.

Exemples

Exemple #1 Transformation en une chaîne

<?php

// CHargement du source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

echo $proc->transformToXML($xml);

?>

L'exemple ci-dessus va afficher :

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

Voir aussi


Sommaire




XSLT (PHP4)


Introduction

Cette extension PHP fourni une API indépendante pour les transformations XSLT. Actuellement, seul Sablotron est supporté. Le support d'autres bibliothèques comme Xalan ou libxslt est prévu.

XSLT (Extensible Stylesheet Language Transformations ou XSL) est un langage de transformation des documents XML en d'autres documents XML. C'est un standard défini par le consortium World Wide Web (W3C). Les informations sur le XLST et ses technologies sont disponibles à » http://www.w3.org/TR/xslt.

Note: Cette extension est différente de l'extension sablotron qui était distribuée dans les versions de PHP avant la 4.1.0. Actuellement, seule la nouvelle extension XSLT est supportée. Si vous souhaitez un support pour les anciennes extensions, posez vos questions sur les listes de diffusion PHP.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.

Note: Si vous avez besoin du support xslt avec PHP 5, vous pouvez utiliser l'extension XSL.



Installation/Configuration

Sommaire


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

Cette extension utilise Sablotron et expat, qui sont toutes les deux disponibles à » http://freshmeat.net/projects/sablotron/. Les sources comme les exécutables sont proposés.

Vous pouvez activer cette extension en utilisant l'option de configuration --with-xslt en PHP 4.



Installation

Sous UNIX, lancez configure avec l'option --with-sablot ou --with-xslt-sablot . La bibliothèque Sablotron doit être installée là où le compilateur peut la trouver.

Assurez-vous d'avoir la même bibliothèque, compilée avec Sablotron que celle qui est fournie avec PHP. Les options de configuration : --with-expat-dir=DIR --with-iconv-dir=DIR sont disponibles pour vous aider à les spécifier correctement. Lorsque vous demandez de l'aide, mentionnez toujours ces directives, ainsi que si vous avez d'autres bibliothèques installées sur votre système. Naturellement, fournissez les numéros de version.

Attention

Assurez-vous que votre bibliothèque Sablotron soit correctement reliée à -lstdc++. Dans le cas contraire, votre configuration échouera ou bien PHP refusera de fonctionner ou de se charger.

Note: Support de JavaScript E-XSLT
Si vous compilez Sablotron avec le support JavaScript, vous devez spécifier cette option : --with-sablot-js .

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : sablot.dll, expat.dll, et iconv.dll.

En PHP <= 4.2.0, le fichier iconv.dll n'est pas nécessaire.



Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.



Types de ressources

Cette extension définit une ressource XSLT processor, retournée par la fonction xslt_create().




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XSLT_OPT_SILENT (entier)
Ignore tous les rapports d'erreurs. C'est une option générique pour toutes les interfaces qui seront ajoutées plus tard.
XSLT_SABOPT_PARSE_PUBLIC_ENTITIES (entier)

Commande à Sablotron de faire l'analyse des entités publiques. Par défaut, cette option est désactivée.

XSLT_SABOPT_DISABLE_ADDING_META (entier)

Ne pas ajouter la balise "Content-Type" pour les fichiers HTML. La valeur par défaut est choisie lors de la compilation de Sablotron.

XSLT_SABOPT_DISABLE_STRIPPING (entier)
Arrête la suppression des espaces (pour les fichiers de données uniquement).
XSLT_SABOPT_IGNORE_DOC_NOT_FOUND (entier)
Considère les documents non résolus (la fonction document()) comme non-bloquant.
XSLT_SABOPT_FILES_TO_HANDLER (entier)
XSLT_ERR_UNSUPPORTED_SCHEME (entier)
Renvoie un code d'erreur pour les erreurs de gestionnaire de Scheme.


Fonctions XSLT (PHP4)


xslt_backend_info

(PHP 4 >= 4.3.0)

xslt_backend_infoRetourne les informations sur les paramètres de compilation du backend

Description

string xslt_backend_info ( void )

xslt_backend_info() récupère les informations sur les paramètres de compilation du backend.

Valeurs de retour

Retourne une chaîne contenant des informations à propos de la compilation du backend, ou une chaîne d'erreur lorsque l'information n'est pas disponible.

Voir aussi



xslt_backend_name

(PHP 4 >= 4.3.0)

xslt_backend_nameRetourne le nom du backend

Description

string xslt_backend_name ( void )

Retourne le nom du backend.

Valeurs de retour

Retourne Sablotron.

Exemples

Exemple #1 Exemple avec xslt_backend_name()

<?php

echo xslt_backend_name(); // Sablotron

?>

Voir aussi



xslt_backend_version

(PHP 4 >= 4.3.0)

xslt_backend_versionRetourne le numéro de version de Sablotron

Description

string xslt_backend_version ( void )

xslt_backend_version() retourne le numéro de version de Sablotron.

Valeurs de retour

Retourne le numéro de version, ou FALSE s'il n'est pas disponible.

Exemples

Exemple #1 Exemple avec xslt_backend_version()

<?php

echo xslt_backend_version(); // 0.98 par exemple

?>

Voir aussi



xslt_create

(PHP 4 >= 4.0.3)

xslt_createCrée un nouvel analyseur XSLT

Description

resource xslt_create ( void )

Crée et retourne une nouvelle ressource XSLT nécessaire pour les appels ultérieurs aux fonctions XSLT.

Valeurs de retour

Retourne un identifiant de processus XSLT en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xslt_create()

<?php
function xml2html($xmldata$xsl)
{
    
/* $xmldata -> votre XML */
    /* $xsl -> fichier XSLT */

    
$path 'include';
    
$arguments = array('/_xml' => $xmldata);
    
$xsltproc xslt_create();
    
xslt_set_encoding($xsltproc'ISO-8859-1');
    
$html =
        
xslt_process($xsltproc'arg:/_xml'"$path/$xsl"NULL$arguments);

    if (empty(
$html)) {
       die(
'Erreur d\'analyse XSLT : 'xslt_error($xsltproc));
    }
    
xslt_free($xsltproc);
    return 
$html;
}
?>

Voir aussi



xslt_errno

(PHP 4 >= 4.0.3)

xslt_errnoRetourne le numéro d'erreur

Description

int xslt_errno ( resource $xh )

Retourne le numéro de la dernière erreur, pour l'analyseur XSLT xh.

Liste de paramètres

xh

L'identifiant de processus XSLT, créé par la fonction xslt_create().

Valeurs de retour

Retourne le code erreur, sous la forme d'un entier.

Voir aussi



xslt_error

(PHP 4 >= 4.0.3)

xslt_errorRetourne un message d'erreur

Description

string xslt_error ( resource $xh )

Retourne une chaîne décrivant la dernière erreur survenue sur le processus XSLT fourni.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Gestion d'erreurs avec xslt_error() et xslt_errno()

<?php

$xh 
xslt_create();
$result xslt_process($xh'dog.xml''pets.xsl');
if (!
$result) {
    die(
sprintf("Impossible de traiter le document XSLT [%d]: %s",
                
xslt_errno($xh), xslt_error($xh)));
}

echo 
$result;

xslt_free($xh);
?>

Voir aussi



xslt_free

(PHP 4 >= 4.0.3)

xslt_freeDétruit le processus XSLT

Description

void xslt_free ( resource $xh )

Détruit le processus XSLT, identifié par le gestionnaire fourni.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi



xslt_getopt

(PHP 4 >= 4.3.0)

xslt_getoptRécupère les options d'un processeur xsl donné

Description

int xslt_getopt ( resource $processor )

xslt_getopt() retourne les options du processeur processor.

Liste de paramètres

processor

L'identifiant du processus XSLT, créé par la fonction xslt_create().

Valeurs de retour

Retourne les options, sous la forme d'un masque construit avec les constantes XSLT_SABOPT_XXX.

Voir aussi

  • xslt_setopt() - Définit les options d'un processeur xsl donné



xslt_process

(PHP 4 >= 4.0.3)

xslt_processEffectue une transformation XSLT

Description

mixed xslt_process ( resource $xh , string $xmlcontainer , string $xslcontainer [, string $resultcontainer [, array $arguments [, array $parameters ]]] )

xslt_process() fait partie de la nouvelle vague de fonctions XSLT. Elle vous permet de réaliser des transformations XSLT en utilisant n'importe quelle type de source : des conteneurs. Cela se fait grâce à l'utilisation de buffers d'arguments : un concept issu de Sablotron XSLT (actuellement, c'est le seul processeur XSLT qui le supporte). Les conteneurs sont, par défaut, des fichiers qui contiennent le document à traiter.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

xmlcontainer

Chemin vers le fichier XML ou le marqueur pour l'argument XML.

xslcontainer

Chemin vers le fichier XSL ou le marqueur pour l'argument XML.

resultcontainer

Le conteneur de résultat est, par défaut, un fichier qui recevra le document traité. Si le conteneur de résultat n'est pas fourni (l'argument vaut alors NULL), le résultat sera retourné par la fonction.

arguments

Au lieu de fichiers comme arguments XML et XSLT à la fonction xslt_process(), vous pouvez spécifier "des marqueurs" qui seront substitués par les valeurs données dans le tableau arguments.

parameters

Un tableau pour les paramètres de haut niveau, qui seront passés au document XSLT. Ces paramètres sont accessibles depuis le fichier XSL en utilisant l'instruction <xsl:param name="parameter_name">. Les paramètres doivent être encodés au format UTF-8 et leur valeur sera interprétée comme une chaîne de caractères par l'analyseur Sablotron. En d'autres termes, vous ne pouvez pas passer des groupes de noeuds (node-sets) comme paramètres au document XSLT.

Les conteneurs peut également être définis via le tableau arguments (voir ci-dessous).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. si le conteneur n'est pas spécifié - i.e. NULL - sinon, le résultat sera retourné.

Historique

Version Description
4.0.6 Cette fonction n'accepte plus de chaînes XML dans les paramètres xmlcontainer ou xslcontainer. Passer une chaîne contenant du XML dans un de ces paramètres engendrera une erreur de segmentation dans les versions Sablotron supérieures ou égales à 0.95.

Exemples

Le type le plus simple de transformation réalisable avec xslt_process() est la transformation d'un fichier XML avec un fichier XSLT, en plaçant le résultat dans un troisième fichier XML. Faire cela avec Sablotron est très facile...

Exemple #1 Utilisation de xslt_process() pour transformer un fichier XML avec un fichier XSL en un autre fichier XML

<?php

/* Allocation du processeur XSLT */
$xh xslt_create();

/* Traitement du document */
if (xslt_process($xh'sample.xml''sample.xsl''result.xml')) {
    echo 
"Réussi. sample.xml a été transformé par sample.xsl en result.xml";
    echo 
", result.xml contient ceci :\n<br />\n";
    echo 
"<pre>\n";
    
readfile('result.xml');
    echo 
"</pre>\n";
} else {
    echo 
"Désolé, sample.xml n'a pu être transformé par sample.xsl en ";
    echo 
" result.xml. La raison est " xslt_error($xh) . " et ";
    echo 
" le code d'erreur est " xslt_errno($xh);
}

xslt_free($xh);

?>

Même si cette fonctionnalité est très pratique, il arrive souvent qu'en environnement web, vous vouliez être capable d'afficher directement votre résultat. Par conséquent, si vous omettez le troisième argument de xslt_process(), ou que vous fournissez la valeur NULL à la place, la fonction va automatiquement retourner le résultat de la transformation XSLT, au lieu de l'écrire dans un fichier.

Exemple #2 Utilisation de xslt_process() pour transformer un fichier XML avec un fichier XSL et le placer dans une variable

<?php

/* Allocation d'un analyseur XSLT */
$xh xslt_create();

/* Traitement du document */
$result xslt_process($xh'sample.xml''sample.xsl');
if (
$result) {
    echo 
"Réussi. sample.xml a été transformé par sample.xsl en result.xml";
    echo 
", result.xml contient ceci : \n<br />\n";
    echo 
"<pre>\n";
    echo 
$result;
    echo 
"</pre>\n";
} else {
    echo 
"Désolé, sample.xml n'a pu être transformé par sample.xsl en ";
    echo 
" result.xml. La raison est " xslt_error($xh) . " et ";
    echo 
" le code d'erreur est " xslt_errno($xh);
}

xslt_free($xh);

?>

Les deux cas de transformations XSLT ci-dessus sont les cas les plus simples, quand on parle de transformation XSLT, et ce sont les cas les plus courants, mais il existe des situations où vous obtenez vos données XML et XSLT de sources externes comme des sockets ou des bases de données. Dans ces cas, vous avez déjà les données dans une variable et, en mode de production, écrire ces données dans des fichiers serait trop inefficace. C'est là où la syntaxe de buffers d'arguments de XSLT prend la relève. Au lieu de fichiers en termes d'arguments XML et XSLT, vous pouvez passer des buffers d'arguments, qui sont alors substitués en valeur au cinquième argument de la fonction xslt_process(). L'exemple suivant vous montre comment traiter du XML et du XSLT issus de variables, et de retrouver le résultat dans une troisième variable.

Exemple #3 Utilisation de xslt_process() pour transformer une variable XML avec une autre variable XSL et placer le résultat dans une variable

<?php
/* $xml et $xsl contiennent des données XML et XSL */

$arguments = array(
     
'/_xml' => $xml,
     
'/_xsl' => $xsl
);

/* Allocation d'un analyseur XSLT */
$xh xslt_create();

/* Traitement du document */
$result xslt_process($xh'arg:/_xml''arg:/_xsl'NULL$arguments);
if (
$result) {
    echo 
"Réussi. sample.xml a été transformé par sample.xsl en result.xml";
    echo 
", result.xml contient ceci : \n<br />\n";
    echo 
"<pre>\n";
    echo 
$result;
    echo 
"</pre>\n";
}
else {
    echo 
"Désolé, sample.xml n'a pu être transformé par sample.xsl en ";
    echo 
" result.xml. La raison est " xslt_error($xh) . " et ";
    echo 
" le code d'erreur est " xslt_errno($xh);
}
xslt_free($xh);
?>

Exemple #4 Passer des variables PHP à un fichier XSL

<?php

// Chaîne XML
$xml '<?xml version="1.0"?>
<para>
 change me
</para>'
;

// Chaîne XSL
$xsl '
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no"
 omit-xml-declaration="yes"  media-type="text/html"/>
 <xsl:param name="myvar"/>
 <xsl:param name="mynode"/>
 <xsl:template match="/">
Ma variable PHP : <xsl:value-of select="$myvar"/><br />
Mon node set : <xsl:value-of select="$mynode"/>
 </xsl:template>
</xsl:stylesheet>'
;


$xh xslt_create();

// le deuxième paramètre sera interprété comme une chaîne
$parameters = array (
  
'myvar' => 'test',
  
'mynode' => '<foo>bar</foo>'
);

$arguments = array (
  
'/_xml' => $xml,
  
'/_xsl' => $xsl
);

echo 
xslt_process($xh'arg:/_xml''arg:/_xsl'NULL$arguments$parameters);

?>

L'exemple ci-dessus va afficher :

Ma variable PHP : test<br>
Mon node set : &lt;foo&gt;bar&lt;/foo&gt;

Notes

Note:

Notez que vous devez préfixer le chemin par file:// si vous utilisez Windows.



xslt_set_base

(PHP 4 >= 4.0.5)

xslt_set_baseConfigure l'URI de base de toutes les transformations XSLT

Description

void xslt_set_base ( resource $xh , string $uri )

Configure l'URI de base de toutes les transformations XSLT. L'URI est utilisée avec les instructions Xpath pour résoudre les commandes document() et les autres commandes qui ont des accès externes. Il est également utilisé pour résoudre les URI pour les éléments <xsl:include> et <xsl:import>.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

uri

L'URI de base à utiliser.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
4.3.0 À partir de PHP 4.3, la valeur par défaut de l'URI est le répertoire courant d'exécution du script. En effet, c'est le nom du répertoire contenu dans la constante __FILE__. Dans les versions antérieures à 4.3, la valeur par défaut de l'URI était moins prévisible.

Notes

Note:

Notez que vous devez préfixer le chemin par file:// si vous utilisez Windows.



xslt_set_encoding

(PHP 4 >= 4.0.5)

xslt_set_encodingConfigure le jeu de caractères pour l'analyse des documents XML

Description

void xslt_set_encoding ( resource $xh , string $encoding )

Configure le jeu de caractères pour les transformations XSLT. Lorsque vous utilisez Sablotron, cette option est uniquement disponible lorsque vous compilez Sablotron avec le support des jeux de caractères.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

encoding

Un encodage de sortie, e.g iso-8859-1.

Valeurs de retour

Aucune valeur n'est retournée.



xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handlerConfigure le gestionnaire d'erreurs du processeur XSLT

Description

void xslt_set_error_handler ( resource $xh , mixed $handler )

xslt_set_error_handler() configure le gestionnaire d'erreurs du processeur XSLT représenté par xh. Le gestionnaire sera appelé à chaque fois qu'une erreur survient durant les transformations XSLT (pour les alertes aussi).

Liste de paramètres

xh

La ressource de processus XSLT, créé par la fonction xslt_create().

handler

La fonction utilisateur, qui doit accepter quatre paramètres : le processeur XSLT, le niveau d'erreur, le code erreur et un tableau de messages. La fonction peut être définie comme :

error_handler ( resource $xh , int $error_level , int $error_code , array $messages )

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec xslt_set_error_handler()

<?php

// Notre gestionnaire d'erreur
function xslt_error_handler($handler$errno$level$info)
{
  
// pour le moment, on regarde juste ce que l'on reçoit
  
var_dump(func_get_args());
}

// Contenu XML :
$xml='<?xml version="1.0"?>
<para>
 oops, j\'ai mal écrit la balise fermante
</pata>'
;

// Contenu XSL :
$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
   <strong><xsl:value-of select="para"/></strong>
</xsl:template>
</xsl:stylesheet>'
;

$xh xslt_create();

xslt_set_error_handler($xh"xslt_error_handler");

echo 
xslt_process($xh'arg:/_xml''arg:/_xsl',
                  
NULL, array("/_xml" => $xml"/_xsl" => $xsl));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  resource(1) of type (XSLT Processor)
  [1]=>
  int(3)
  [2]=>
  int(0)
  [3]=>
  array(6) {
    ["msgtype"]=>
    string(5) "error"
    ["code"]=>
    string(1) "2"
    ["module"]=>
    string(9) "Sablotron"
    ["URI"]=>
    string(9) "arg:/_xml"
    ["line"]=>
    string(1) "4"
    ["msg"]=>
    string(34) "XML parser error 7: mismatched tag"
  }
}

Voir aussi

  • xslt_set_object() - Définit l'objet dans lequel doivent être résolues les fonctions de rappel, si vous voulez utiliser une méthode d'un objet comme gestionnaire d'erreurs



xslt_set_log

(PHP 4 >= 4.0.6)

xslt_set_logConfigure le fichier d'historique pour les messages XSLT

Description

void xslt_set_log ( resource $xh [, mixed $log ] )

xslt_set_log() vous permet de configurer le fichier dans lequel vous voulez enregistrer les messages XSLT. Les messages XSLT sont différents des messages d'erreurs, car les messages ne sont pas des messages d'erreurs, mais plutôt des descriptions de l'état de l'analyseur. Ils sont très pratiques pour déboguer du code XSLT.

Par défaut, l'enregistrement dans l'historique est désactivé. Afin de l'activer, vous devez appeler xslt_set_log() avec le booléen qui active l'enregistrement, puis, si vous le voulez, indiquer un fichier de déboguage. Il faut alors passer un nom de fichier.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

log

Ce paramètre est soit un booléen, qui active ou non l'enregistrement dans le fichier d'historique, ou une chaîne contenant le nom du fichier d'historique dans lequel les erreurs seront enregistrées.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Notez que vous devez préfixer le chemin par file:// si vous utilisez Windows.

Exemples

Exemple #1 Utilisation de l'enregistrement de messages XSLT

<?php

$xh 
xslt_create();
xslt_set_log($xhtrue);
xslt_set_log($xhgetcwd() . '/myfile.log');

$result xslt_process($xh'dog.xml''pets.xsl');
echo 
$result;

xslt_free($xh);
?>



xslt_set_object

(PHP 4 >= 4.3.0)

xslt_set_objectDéfinit l'objet dans lequel doivent être résolues les fonctions de rappel

Description

bool xslt_set_object ( resource $processor , object &$obj )

xslt_set_object() autorise l'utilisation du paramètre processor dans un objet object et donc de résoudre toutes les fonctions de rappel dans celui-ci.

Les fonctions de rappel peuvent être déclarées avec les fonctions xslt_set_sax_handlers(), xslt_set_scheme_handlers() ou xslt_set_error_handler() et sont supposées comme étant des méthodes de l'objet object.

Liste de paramètres

processor

L'identifiant du processus XSLT, créé par la fonction xslt_create().

obj

Un objet.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Utilisation de votre propre gestionnaire d'erreurs comme méthode

<?php

class my_xslt_processor {

    var 
$_xh// votre processeur XSLT

    
function my_xslt_processor()
    {
        
$this->_xh xslt_create();

        
// Faites de l'objet $this, le résolveur de fonction de rappel
        
xslt_set_object($this->_xh$this);

        
// Manipulation des erreurs
        
xslt_set_error_handler($this->_xh"my_xslt_error_handler");
    }

    function 
my_xslt_error_handler($handler$errno$level$info)
    {
        
// Maintenant, regardons les arguments
        
var_dump(func_get_args());
    }
}

?>


xslt_set_sax_handler

(PHP 4 >= 4.0.3)

xslt_set_sax_handlerModifie les gestionnaires SAX de l'analyseur XSLT

Description

void xslt_set_sax_handler ( resource $xh , array $handlers )

Remplace les gestionnaires SAX de l'analyseur XSLT xh par handlers.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

handlers

Les gestionnaires SAX sont représentés par un tableau à deux dimensions, avec le format suivant (les éléments du premier niveau sont optionnels) :

array(
[document] =>
    array(
        start document handler,
        end document handler
    ),
[element] =>
    array(
        start element handler,
        end element handler
    ),
[namespace] =>
    array(
        start namespace handler,
        end namespace handler
    ),
[comment] => comment handler,
[pi] => processing instruction handler,
[character] => character data handler
)

Valeurs de retour

Aucune valeur n'est retournée.



xslt_set_sax_handlers

(PHP 4 >= 4.0.6)

xslt_set_sax_handlersConfigure les gestionnaires SAX qui seront appelés pour gérer les documents XML

Description

void xslt_set_sax_handlers ( resource $processor , array $handlers )

xslt_set_sax_handlers() enregistre le gestionnaire SAX handlers pour le document, en lui donnant une ressource XSLT processor.

Utiliser la fonction xslt_set_sax_handlers() n'est pas vraiment différent qu'exécuter un analyseur SAX comme xml_parse() sur un résultat de la transformation xslt_process().

Liste de paramètres

processor

L'identifiant du processus XSLT, créé par la fonction xslt_create().

handlers

Le paramètre handlers doit être un tableau qui suit ce format :

<?php

$handlers 
= array(

  
"document" => array(
    
"start_doc",
    
"end_doc"),

  
"element"  => array(
    
"start_element",
    
"end_element"),

  
"namespace" => array(
    
"start_namespace",
    
"end_namespace"),

  
"comment"   => "comment",

  
"pi"        => "pi",

  
"character" => "characters"

);
?>
Où les fonctions suivent la syntaxe décrite dans le schéma du gestionnaire de fonctions.

Note:

Le tableau fourni n'a pas besoin de contenir tous les éléments différents du gestionnaire SAX (bien qu'il le puisse), mais il doit uniquement être conforme au format "gestionnaire" => "fonction" décrit ci-dessus.

Chacune des fonctions du gestionnaire SAX correspond au format suivant :

  • start_doc ( resource $processor )

  • end_doc ( resource $processor )

  • start_element ( resource $processor , string $name , array $attributes )

  • end_element ( resource $processor , string $name )

  • start_namespace ( resource $processor , string $prefix , string $uri )

  • end_namespace ( resource $processor , string $prefix )

  • comment ( resource $processor , string $contents )

  • pi ( resource $processor , string $target , string $contents )

  • characters ( resource $processor , string $contents )

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec xslt_set_sax_handlers()

<?php
// Fournit par ohlesbeauxjours at yahoo dot fr
// Voici un exemple simple qui applique la fonction strtoupper()
// sur le contenu de chaque balise <auteur> et affiche
// le résultat sous forme d'arbre XML :

$xml='<?xml version="1.0"?>
<books>
 <book>
  <title>Mme Bovary</title>
  <author>Gustave Flaubert</author>
 </book>
 <book>
  <title>Mrs Dalloway</title>
  <author>Virginia Woolf</author>
 </book>
</books>'
;

$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no" omit-xml-declaration="yes"/>
<xsl:template match="/">
 <xsl:for-each select="books/book">
  <livre>
   <auteur><xsl:value-of select="author/text()"/></auteur>
  </livre>
 </xsl:for-each>
</xsl:template>
</xsl:stylesheet>'
;

// Gestionnaire :
function start_document()
{
  
// début de la lecture du document
}

function 
end_document()
{
  
// fin de la lecture du document
}

function 
start_element($parser$name$attributes)
{
  global 
$result,$tag;
  
$result .= "<"$name ">";
  
$tag $name;
}

function 
end_element($parser$name)
{
  global 
$result;
  
$result .= "</" $name ">";
}

function 
characters($parser$data)
{
  global 
$result,$tag;
  if (
$tag == "auteur" ) {
    
$data strtoupper($data);
  }
  
$result .= $data;
}

// Transformation :
$xh xslt_create();
$handlers = array("document" => array("start_document","end_document"),
   
"element" => array("start_element","end_element"),
   
"character" => "characters");

xslt_set_sax_handlers($xh$handlers);
xslt_process($xh'arg:/_xml''arg:/_xsl'NULL, array("/_xml"=>$xml"/_xsl"=>$xsl));
xslt_free($xh);
?>

Vous pouvez également utiliser la fonction xslt_set_object() si vous voulez implémenter votre gestionnaire dans un objet.

Exemple #2 Gestionnaire orienté objet

<?php
// Voici la version orientée objet de l'exemple ci-dessus
class data_sax_handler {

  var 
$buffer$tag$attrs;

  var 
$_xh;

  function 
data_sax_handler($xml$xsl)
  {
      
// notre ressource xslt
      
$this->_xh xslt_create();

      
xslt_set_object($this->_xs$this);

      
// configuration du gestionnaire sax
      
$handlers = array(
        
"document" => array('start_document''end_document'),
        
"element" => array('start_element''end_element'),
        
"character" => 'characters'
      
);

      
xslt_set_sax_handlers($this->_xh$handlers);

      
xslt_process($this->_xh'arg:/_xml''arg:/_xsl'NULL, array("/_xml"=>$xml"/_xsl"=>$xsl));
      
xslt_free($this->_xh);


  }

  function 
start_document()
  {
        
// début de la lecture du document
  
}

  function 
end_document() {
        
// fin de la lecture du document
  
}

  function 
start_element($parser$name$attributes) {
        
$this->tag $name;
        
$this->buffer .= "<" $name ">";
        
$this->attrs $attributes;
  }

  function 
end_element($parser$name)
  {
        
$this->tag '';
        
$this->buffer .= "</" $name ">";
  }

  function 
characters($parser$data)
  {
    if (
$this->tag == 'auteur') {
          
$data strtoupper($data);
    }
    
$this->buffer .= $data;
  }

  function 
get_buffer() {
    return 
$this->buffer;
  }

}

$exec = new data_sax_handler($xml$xsl);

?>

Les deux exemples ci-dessus afficheront :

<livre>
   <auteur>GUSTAVE FLAUBERT</auteur>
</livre>
<livre>
   <auteur>VIRGINIA WOOLF</auteur>
</livre>


xslt_set_scheme_handler

(PHP 4 >= 4.0.5)

xslt_set_scheme_handlerConfigure les gestionnaires de Scheme du processeur XSLT

Description

void xslt_set_scheme_handler ( resource $xh , array $handlers )

Configure les gestionnaires de Scheme, pour le processeur identifié par sa ressource xh.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

handlers

Les gestionnaires Scheme doivent être fournis sous forme de tableau (tous les éléments sont optionnels) :

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

Valeurs de retour

Aucune valeur n'est retournée.



xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlersConfigure un gestionnaire de Scheme pour un processeur XSLT

Description

void xslt_set_scheme_handlers ( resource $xh , array $handlers )

Configure le gestionnaire de scheme (gestionnaire XPath) pour le document.

Liste de paramètres

xh

L'identifiant du processus XSLT, créé par la fonction xslt_create().

handlers

Un tableau possédant les clés suivantes : "get_all", "open", "get", "put", et "close".

Chaque entrée doit être un nom de fonction ou un tableau du format suivant : array($obj, "method").

Notez que le tableau fourni ne doit pas nécessairement contenir tous les éléments du gestionnaire (bien que cela reste possible), mais il doit uniquement correspondre au format "handler" => "fonction" décrit ci-dessus.

Chacune des fonctions individuelles de scheme appelée est au format suivant :

string   get_all(resource processor, string scheme, string rest)
resource open(resource processor, string scheme, string rest)
int      get(resource processor, resource fp, string &data)
int      put(resource processor, resource fp, string data)
void     close(resource processor, resource fp)

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec xslt_set_scheme_handlers()

Par exemple, voici une implémentation de la fonction PHP "file_exists()".

<?php

// Définition du gestionnaire
function mySchemeHandler($processor$scheme$rest)
{
    
$rest substr($rest,1);    // pour effacer le premier '/', automatiquement ajouté par le moteur
    
if ($scheme == 'file_exists') {
        
// Le résultat est retourné dans une chaîne XML
        
return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' 'false') . '</root>';
    }
}

$SchemeHandlerArray = array('get_all' => 'mySchemeHandler');

// Démarre le moteur
$params = array();
$xh xslt_create();

xslt_set_scheme_handlers($xh$SchemeHandlerArray);

$result xslt_process($xh"myFile.xml""myFile.xsl"NULL, array(), $params);
xslt_free($xh);

echo 
$result;

?>

Ensuite, dans la feuille de style, vous pouvez tester si un fichier existe avec :

<xsl:if test="document('file_exists:anotherXMLfile.xml')/root='true'">
 <!-- Le fichier existe -->
</xsl:if>

Voir aussi



xslt_setopt

(PHP 4 >= 4.3.0)

xslt_setoptDéfinit les options d'un processeur xsl donné

Description

mixed xslt_setopt ( resource $processor , int $newmask )

xslt_setopt() définit les options newmask pour le processeur processor.

Liste de paramètres

processor

L'identifiant du processus XSLT, créé par la fonction xslt_create().

newmask

Le paramètre newmask est un masque construit avec les constantes suivantes :

  • XSLT_SABOPT_PARSE_PUBLIC_ENTITIES - Demande au processeur d'analyser les entrées publiques. Par défaut, cette constante est désactivée.

  • XSLT_SABOPT_DISABLE_ADDING_META - Permet de ne pas ajouter l'en-tête méta "Content-Type" lors de l'affichage HTML. La valeur par défaut est définie lors de la compilation du processeur.

  • XSLT_SABOPT_DISABLE_STRIPPING - Supprime les espaces (uniquement pour les fichiers de données).

  • XSLT_SABOPT_IGNORE_DOC_NOT_FOUND - Considère les documents non résolus (la fonction document()) comme existant.

Valeurs de retour

Retourne le nombre de masques précédents possible, TRUE sinon, et FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xslt_setopt()

<?php

$xh 
xslt_create();

// Demande à Sablotron d'analyser les entités publiques
xslt_setopt($xhXSLT_SABOPT_PARSE_PUBLIC_ENTITIES);

// Lui demande également de ne pas supprimer les espaces.
xslt_setopt($xhxslt_getopt($xh) | XSLT_SABOPT_DISABLE_STRIPPING);

?>

Voir aussi

  • xslt_getopt() - Récupère les options d'un processeur xsl donné


Sommaire






PHP at the Core: A Hacker's Guide to the Zend Engine


Preface

The Zend API has evolved considerably over time, as PHP has become a more robust and widespread language. With the introduction of PHP 5 came the Zend Engine 2 (ZE2). ZE2 came with an almost entirely new Object-Oriented Programming (OOP) model and a number of improvements in the API.

Avertissement

This documentation is still under heavy development. The original Zend documentation is preserved in its entirety in the Zend Engine 1 section for those who need it before this documentation is completed.

This section of the manual is devoted to ZE2. The differences in how extensions are written in ZE1 are small; a short reference to them is given in an appendix to this section.

The documentation in this section is current as of PHP 5.3.3, the most recent stable release of PHP 5.3 at the time of this writing. Notable differences in the minor PHP 5 releases (5.0 through 5.3) are given as appropriate.



The "counter" Extension - A Continuing Example

Sommaire

Preface

Throughout this Zend documentation, references are made to an example module in order to illustrate various concepts. The "counter" extension is this example, a fictional yet functional Zend module which strives to use as much of the Zend API as is reasonably possible. This short chapter describes the userland interface to the completed extension.

Note: "counter" serves no practical purpose whatsoever, as the functionality it provides is far more effectively implemented by appropriate userland code.


Installation/Configuration

Sommaire


Introduction

The "counter" extension provides any number of counters to PHP code using it which reset at times determined by the caller.

There are three interfaces to "counter": basic, extended, and objective. The basic interface provides a single counter controlled by INI settings and function calls. The extended interface provides an arbitrary number of named counter resources which may optionally persist beyond the lifetime of a single PHP request. The objective interface combines both the basic and extended interfaces into a Counter class.



Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Counter configuration options
Name Default Changeable Changelog
counter.reset_time COUNTER_RESET_PER_REQUEST PHP_INI_ALL  
counter.save_path "" PHP_INI_ALL  
counter.initial_value "0" PHP_INI_ALL  

Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

counter.reset_time integer
counter.reset_time tells "counter" to reset the counter used by the basic interface. It may be any of the COUNTER_RESET_* constants (see below).
counter.save_path string
Tells "counter" where to save data that has to persist between invocations of PHP (i.e. any counter that has COUNTER_RESET_NEVER or COUNTER_FLAG_SAVE). A file will be created at this path, which must be readable and writable to whatever user PHP is running as.
counter.initial_value integer
Sets the initial value of the counter used by the basic interface whenever it is reset.


Types de ressources

The "counter" extension defines one resource type: a counter.




Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

COUNTER_FLAG_PERSIST (integer)
A counter with this flag will be created as a persistent resource.
COUNTER_FLAG_SAVE (integer)
A counter with this flag will be saved between invocations of PHP.
COUNTER_FLAG_NO_OVERWRITE (integer)
This flag causes counter_create() to avoid overwriting an existing named counter with a new one.
COUNTER_META_NAME (string)
Pass this constant to get the name of a counter resource or object.
COUNTER_META_IS_PERISTENT (string)
Pass this constant to determine whether a counter resource or object is persistent (has the COUNTER_FLAG_PERSIST flag).
COUNTER_RESET_NEVER (integer)
The counter will never be reset.
COUNTER_RESET_PER_LOAD (integer)
The counter will be reset on each invocation of PHP.
COUNTER_RESET_PER_REQUEST (integer)
The counter will be reset on each request.


Exemples

Sommaire


Basic interface

The basic interface provides three simple functions, illustrated here:

Exemple #1 "counter"'s basic interface

<?php
$starting_counter_value 
counter_get();
counter_bump(1);
$second_counter_value counter_get();
counter_reset();
$final_counter_value counter_get();
printf("%3d %3d %3d"$starting_counter_value$second_counter_value$final_counter_value);
?>

L'exemple ci-dessus va afficher :

  0   1   0

The basic interface also provides a number of INI settings.



Extended interface

The extended interface provides a small suite of functions that allow the user to define an arbitrary number of named counters with unique settings. The basic interface can be used in parallel with the extended interface.

Exemple #1 "counter"'s extended interface

<?php
function print_counter_info($counter)
{
    if (
is_resource($counter)) {
        
printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            
counter_get_meta($counterCOUNTER_META_NAME),
            
counter_get_meta($counterCOUNTER_META_IS_PERSISTENT) ? '' ' not',
            
counter_get_value($counter));
    } else {
      print 
"Not a valid counter!\n";
    }
}

if ((
$counter_one counter_get_named("one")) === NULL) {
    
$counter_one counter_create("one"0COUNTER_FLAG_PERSIST);
}
counter_bump_value($counter_one2);
$counter_two counter_create("two"5);
$counter_three counter_get_named("three");
$counter_four counter_create("four"2COUNTER_FLAG_PERSIST COUNTER_FLAG_SAVE COUNTER_FLAG_NO_OVERWRITE);
counter_bump_value($counter_four1);

print_counter_info($counter_one);
print_counter_info($counter_two);
print_counter_info($counter_three);
print_counter_info($counter_four);
?>

When run once, the above example outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 3.

If run a second time within the same instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 4.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 4.

If then run a third time in a different instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 5.


Objective interface

The objective interface provides an object-oriented way to access the extended interfaces. The following example shows how the above one would be implemented using the objective interface. The output of this example is exactly the same, except that instead of printing "Not a valid counter!", this will instead issue a PHP warning that the variable $counter_three is not an object. This example shows that it is possible to subclass the Counter class defined by the extension, as well as that the counter's value is maintained using an instance variable rather than method access.

Exemple #1 "counter"'s objective interface

<?php
class MyCounter extends Counter
{
    public function 
printCounterInfo() {
        
printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            
$this->getMeta(COUNTER_META_NAME),
            
$this->getMeta(COUNTER_META_IS_PERSISTENT) ? '' ' not',
            
$this->value);
    }
}

Counter::setCounterClass("MyCounter");
if ((
$counter_one Counter::getNamed("one")) === NULL) {
    
$counter_one = new Counter("one"0COUNTER_FLAG_PERSIST);
}
$counter_one->bumpValue(2); // we aren't allowed to "set" the value directly
$counter_two = new Counter("two"5);
$counter_three Counter::getNamed("three");
$counter_four = new Counter("four"2COUNTER_FLAG_PERSIST COUNTER_FLAG_SAVE COUNTER_FLAG_NO_OVERWRITE);
$counter_four->bumpValue(1);

$counter_one->printCounterInfo();
$counter_two->printCounterInfo();
$counter_three->printCounterInfo();
$counter_four->printCounterInfo();
?>



The Counter class

Introduction

Represents a single counter object.

Synopsis de la classe

Counter {
__construct ( string $name [, integer $initial_value [, integer $flags ]] )
integer getValue ( void )
bumpValue ( integer $offset )
void resetValue ( void )
mixed getMeta ( integer $attribute )
static Counter getNamed ( string $name )
static void setCounterClass ( string $name )
}

Counter::__construct

Counter::__construct Creates an instance of a Counter which maintains a single numeric value.

Description

Counter::__construct() ( string $name [, integer $initial_value [, integer $flags ]] )

Creates an instance of a Counter which maintains a single numeric value.

Liste de paramètres

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Valeurs de retour

Returns a Counter object on success.

Erreurs / Exceptions

Counter::__construct() throws an Exception if something goes wrong.



Counter::getValue

Counter::getValue Get the current value of a counter.

Description

integer Counter::getValue ( void )

Counter::getValue() returns the current value of a counter.

Valeurs de retour

Counter::getValue() returns an integer.

Voir aussi



Counter::bumpValue

Counter::bumpValue Change the current value of a counter.

Description

Counter::bumpValue ( integer $offset )

Counter::bumpValue() updates the current value of a counter.

Liste de paramètres

offset
The amount by which to change the counter's value. Can be negative.

Voir aussi



Counter::resetValue

Counter::resetValue Reset the current value of a counter.

Description

void Counter::resetValue ( void )

Counter::resetValue() resets the current value of a counter to its original initial value.

Voir aussi



Counter::getMeta

Counter::getMeta Return a piece of metainformation about a counter.

Description

mixed Counter::getMeta ( integer $attribute )

Counter::getMeta() returns metainformation about a counter.

Liste de paramètres

attribute
The metainformation to retrieve.

Valeurs de retour

Counter::getMeta() returns values of varying types based on which metainformation was requested.



Counter::getNamed

Counter::getNamed Retrieve an existing named counter.

Description

static Counter Counter::getNamed ( string $name )

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise. This is a static function.

Liste de paramètres

name
The counter name to search for.

Valeurs de retour

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise.



Counter::setCounterClass

Counter::setCounterClass Set the class returned by Counter::getNamed().

Description

static void Counter::setCounterClass ( string $name )

Counter::setCounterClass() changes the class of objects returned by Counter::getNamed(). The class being set must not have a public constructor and must be a subclass of Counter. If these conditions are not met, a fatal error is raised. This is a static function.

Liste de paramètres

name
The name of the class to use.

Sommaire



The basic interface


counter_get

counter_get Get the current value of the basic counter.

Description

integer counter_get ( void )

counter_get() returns the current value of the basic interface's counter.

Valeurs de retour

counter_get() returns an integer.

Voir aussi



counter_bump

counter_bump Update the current value of the basic counter.

Description

void counter_bump ( integer $offset )

counter_bump() updates the current value of the basic interface's counter.

Liste de paramètres

offset
The amount by which to change the counter's value. Can be negative.

Voir aussi



counter_reset

counter_reset Reset the current value of the basic counter.

Description

void counter_reset ( void )

counter_reset() resets the current value of the basic interface's counter to its original initial value.

Voir aussi


Sommaire

  • counter_get — Get the current value of the basic counter.
  • counter_bump — Update the current value of the basic counter.
  • counter_reset — Reset the current value of the basic counter.


The extended interface


counter_create

counter_create Creates a counter which maintains a single numeric value.

Description

resource counter_create ( string $name [, integer $initial_value [, integer $flags ]] )

Creates a counter which maintains a single numeric value.

Liste de paramètres

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Valeurs de retour

Returns a counter resource.



counter_get_value

counter_get_value Get the current value of a counter resource.

Description

integer counter_get_value ( resource $counter )

counter_get_value() returns the current value of a counter resource.

Liste de paramètres

counter
The counter resource to operate on.

Valeurs de retour

counter_get_value() returns an integer.

Voir aussi



counter_bump_value

counter_bump_value Change the current value of a counter resource.

Description

void counter_bump_value ( resource $counter , integer $offset )

counter_bump_value() updates the current value of a counter resource.

Liste de paramètres

counter
The counter resource to operate on.
offset
The amount by which to change the counter's value. Can be negative.

Voir aussi



counter_reset_value

counter_reset_value Reset the current value of a counter resource.

Description

void counter_reset_value ( resource $counter )

counter_reset_value() resets the current value of a counter resource to its original initial value.

Liste de paramètres

counter
The counter resource to operate on.

Voir aussi



counter_get_meta

counter_get_meta Return a piece of metainformation about a counter resource.

Description

mixed counter_get_meta ( resource $counter , integer $attribute )

counter_get_meta() returns metainformation about a counter resource.

Liste de paramètres

counter
The counter resource to operate on.
attribute
The metainformation to retrieve.

Valeurs de retour

counter_get_meta() returns values of varying types based on which metainformation was requested.



counter_get_named

counter_get_named Retrieve an existing named counter as a resource.

Description

resource Counter::getNamed ( string $name )

counter_get_named() returns an existing counter by name if that name exists, or NULL otherwise.

Liste de paramètres

name
The counter name to search for.

Valeurs de retour

counter_get_name() returns an existing counter by name if that name exists, or NULL otherwise.


Sommaire




The PHP 5 build system

Sommaire

With all the functionality and flexibility available in PHP 5, it is no surprise that it consists of several thousand files and over one million lines of source code. Equally unsurprising is the necessity of a build system to manage so much data. This section describes how to set PHP up for extension development, the layout of an extension within the PHP source tree, and how to interface your extension with the build system.


Building PHP for extension development

In a typical PHP installation, the need for high performance almost always results in optimization at the cost of debugging facilities. This is a reasonable tradeoff for production use, but when developing an extension it falls short. What we need is a build of PHP which will give us some hints what has gone wrong when something does.

The Zend Engine provides a memory manager which is capable of tracking memory leaks in extensions and providing detailed debugging information. This tracking is disabled by default, as is thread-safety. To turn them on, pass the --enable-debug and --enable-maintainer-zts options to configure, along with whatever options you typically use. For instructions on building PHP from source, see the instructions at Considérations générales sur l'installation. A typical configure line might look like this:

$ ./configure --prefix=/where/to/install/php --enable-debug --enable-maintainer-zts --enable-cgi --enable-cli --with-mysql=/path/to/mysql



The ext_skel script

A PHP extension is composed of several files common to all extensions. As the details of many of those files are similar from extension to extension, it can be laborious to duplicate the content for each one. Fortunately, there is a script which can do all of the initial setup for you. It's called ext_skel, and it's been distributed with PHP since 4.0.

Running ext_skel with no parameters produces this output in PHP 5.2.2:

php-5.2.2/ext$ ./ext_skel 
./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]]
           [--skel=dir] [--full-xml] [--no-help]

  --extname=module   module is the name of your extension
  --proto=file       file contains prototypes of functions to create
  --stubs=file       generate only function stubs in file
  --xml              generate xml documentation to be added to phpdoc-cvs
  --skel=dir         path to the skeleton directory
  --full-xml         generate xml documentation for a self-contained extension
                     (not yet implemented)
  --no-help          don't try to be nice and create comments in the code
                     and helper functions to test if the module compiled
Generally, when developing a new extension the only parameters you will be interested in are --extname and --no-help. Unless you are already experienced with the structure of an extension, you will not want to use --no-help; specifying it causes ext_skel to leave out many helpful comments in the files it generates.

This leaves you with --extname, which tells ext_skel what the name of your extension is. This "name" is an all-lowercase identifier containing only letters and underscores which is unique among everything in the ext/ folder of your PHP distribution.

The --proto option is intended to allow the developer to specify a header file from which a set of PHP functions will be created, ostensibly for the purpose of developing an extension based on a library, but it often functions poorly with most modern header files. A test run on the zlib.h header resulted in a very large number of empty and nonsense prototypes in the ext_skel output files. The --xml and --full-xml options are entirely nonfunctional thus far. The --skel option can be used to specify a modified set of skeleton files to work from, a topic which is beyond the scope of this section.



Talking to the UNIX build system: config.m4

The config.m4 file for an extension tells the UNIX build system what configure options your extension supports, what external libraries and includes you require, and what source files are to be compiled as part of it. A reference to all the commonly used autoconf macros, both PHP-specific and those built into autoconf, is given in the Zend Engine 2 API reference section.

Astuce

When developing a PHP extension, it is strongly recommended that autoconf version 2.13 be installed, despite the newer releases which are available. Version 2.13 is recognized as a common denominator of autoconf availability, usability, and user base. Using later versions will sometimes produce cosmetic differences from the expected output of configure.

Exemple #1 An example config.m4 file

dnl $Id$
dnl config.m4 for extension example
PHP_ARG_WITH(example, for example support,
[  --with-example[=FILE]       Include example support. File is the optional path to example-config])
PHP_ARG_ENABLE(example-debug, whether to enable debugging support in example,
[  --enable-example-debug        example: Enable debugging support in example], no, no)
PHP_ARG_WITH(example-extra, for extra libraries for example,
[  --with-example-extra=DIR      example: Location of extra libraries for example], no, no)

dnl Check whether the extension is enabled at all
if test "$PHP_EXAMPLE" != "no"; then
  
  dnl Check for example-config. First try any path that was given to us, then look in $PATH
  AC_MSG_CHECKING([for example-config])
  EXAMPLE_CONFIG="example-config"
  if test "$PHP_EXAMPLE" != "yes"; then
    EXAMPLE_PATH=$PHP_EXAMPLE
  else
    EXAMPLE_PATH=`$php_shtool path $EXAMPLE_CONFIG`
  fi
  
  dnl If a usable example-config was found, use it
  if test -f "$EXAMPLE_PATH" && test -x "$EXAMPLE_PATH" && $EXAMPLE_PATH --version > /dev/null 2>&1; then
    AC_MSG_RESULT([$EXAMPLE_PATH])
    EXAMPLE_LIB_NAME=`$EXAMPLE_PATH --libname`
    EXAMPLE_INCDIRS=`$EXAMPLE_PATH --incdirs`
    EXAMPLE_LIBS=`$EXAMPLE_PATH --libs`
    
    dnl Check that the library works properly
    PHP_CHECK_LIBRARY($EXAMPLE_LIB_NAME, example_critical_function,
    [
      dnl Add the necessary include dirs
      PHP_EVAL_INCLINE($EXAMPLE_INCDIRS)
      dnl Add the necessary libraries and library dirs
      PHP_EVAL_LIBLINE($EXAMPLE_LIBS, EXAMPLE_SHARED_LIBADD)
    ],[
      dnl Bail out
      AC_MSG_ERROR([example library not found. Check config.log for more information.])
    ],[$EXAMPLE_LIBS]
    )
  else
    dnl No usable example-config, bail  
    AC_MSG_RESULT([not found])
    AC_MSG_ERROR([Please check your example installation.])
  fi
  
  dnl Check whether to enable debugging
  if test "$PHP_EXAMPLE_DEBUG" != "no"; then
    dnl Yes, so set the C macro
    AC_DEFINE(USE_EXAMPLE_DEBUG,1,[Include debugging support in example])
  fi
  
  dnl Check for the extra support
  if test "$PHP_EXAMPLE_EXTRA" != "no"; then
    if test "$PHP_EXAMPLE_EXTRA" == "yes"; then
      AC_MSG_ERROR([You must specify a path when using --with-example-extra])
    fi
    
    PHP_CHECK_LIBRARY(example-extra, example_critical_extra_function,
    [
      dnl Add the neccessary paths
      PHP_ADD_INCLUDE($PHP_EXAMPLE_EXTRA/include)
      PHP_ADD_LIBRARY_WITH_PATH(example-extra, $PHP_EXAMPLE_EXTRA/lib, EXAMPLE_SHARED_LIBADD)
      AC_DEFINE(HAVE_EXAMPLEEXTRALIB,1,[Whether example-extra support is present and requested])
      EXAMPLE_SOURCES="$EXAMPLE_SOURCES example_extra.c"
    ],[
      AC_MSG_ERROR([example-extra lib not found. See config.log for more information.])
    ],[-L$PHP_EXAMPLE_EXTRA/lib]
    )
  fi
  
  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(example, example.c $EXAMPLE_SOURCES, $ext_shared)
  PHP_SUBST(EXAMPLE_SHARED_LIBADD)
fi

A short introduction to autoconf syntax

config.m4 files are written using the GNU autoconf syntax. It can be described in a nutshell as shell scripting augmented by a powerful macro language. Comments are delimited by the string dnl, and strings are quoted using left and right brackets (e.g. [ and ]). Quoting of strings can be nested as many times as needed. A full reference to the syntax can be found in the autoconf manual at » http://www.gnu.org/software/autoconf/manual/.

PHP_ARG_*: Giving users the option

The very first thing seen in the example config.m4 above, aside from a couple of comments, are three lines using PHP_ARG_WITH() and PHP_ARG_ENABLE(). These provide configure with the options and help text seen when running ./configure --help. As the names suggest, the difference between the two is whether they create a --with-* option or an --enable-* option. Every extension should provide at least one or the other with the extension name, so that users can choose whether or not to build the extension into PHP. By convention, PHP_ARG_WITH() is used for an option which takes a parameter, such as the location of a library or program required by an extension, while PHP_ARG_ENABLE() is used for an option which represents a simple flag.

Exemple #2 Sample configure output

$ ./configure --help
...
  --with-example[=FILE]       Include example support. FILE is the optional path to example-config
  --enable-example-debug        example: Enable debugging support in example
  --with-example-extra=DIR      example: Location of extra libraries for example
...

$ ./configure --with-example=/some/library/path/example-config --disable-example-debug --with-example-extra=/another/library/path
...
checking for example support... yes
checking whether to enable debugging support in example... no
checking for extra libraries for example... /another/library/path
...

Note:

Regardless of the order in which options are specified on the command line when configure is called, the checks will be run in the order they are specified in config.m4.

Processing the user's choices

Now that config.m4 can provide the user with some choices of what to do, it's time to act upon those choices. In the example above, the obvious default for all three options, if any of them are unspecified, is "no". As a matter of convention, it is best to use this as the default for the option which enables the extension, as it will be overridden by phpize for extensions built separately, and should not clutter the extension space by default when being built into PHP. The code to process the three options is by far the most complicated.

Handling the --with-example[=FILE] option

The first check made of the --with-example[=FILE] option is whether it was set at all. As this option controls the inclusion of the entire extension, if it was unspecified, given in the negative form (--without-example ), or given the value "no", nothing else is done at all. In the example above, it is specified with the value /some/library/path/example-config, so the first test succeeds.

Next, the code calls AC_MSG_CHECKING(), an autoconf macro which outputs a standard "checking for something" line, and checks whether the user gave an explicit path to the fictional example-config. In this example, PHP_EXAMPLE got the value /some/library/path/example-config, which is now copied into the EXAMPLE_PATH variable. Had the user specified only --with-example , the code would have executed $php_shtool path $EXAMPLE_CONFIG, which would try to guess the location of example-config using the user's current PATH. Either way, the next step is to check whether the chosen EXAMPLE_PATH is a regular file, is executable, and can be run successfully. If so, AC_MSG_RESULT() is called, which completes the output line started by AC_MSG_CHECKING(). Otherwise, AC_MSG_ERROR() is called, which prints the given message and halts configure immediately.

The code now determines some site-specific configuration information by running example-config several times. The next call is to PHP_CHECK_LIBRARY(), a macro provided by the PHP buildsystem as a wrapper around autoconf's AC_CHECK_LIB(). PHP_CHECK_LIBRARY() attempts to compile, link, and run a program which calls the symbol specified by the second parameter in the library specified by the first, using the string given in the fifth as extra linker options. If the attempt succeeds, the script given in the third parameter is run. This script tells the PHP buildsystem to extract include paths, library paths, and library names from the raw option strings example-config provided. If the attempt fails, the script in the fourth parameter is run instead. In this case, AC_MSG_ERROR() is called to stop processing.

Handling the --enable-example-debug option

Processing the --enable-example-debug is much simpler. A simple check for its truth value is performed. If that check succeeds, AC_DEFINE() is called to make the C macro USE_EXAMPLE_DEBUG available to the source of the extension. The third parameter is a comment string for config.h; it is safe to leave this empty, and often is.

Handling the --with-example-extra=DIR option

For the sake of this example, the fictional "extra" functionality requested by the --with-example-extra=DIR option does not share the fictional example-config program, nor does it have any default paths to search. Therefore, the user is required to provide the installation prefix of the necessary library. This setup is somewhat unlikely in a real-world extension, but is considered illustrative.

The code begins in a now-familiar way by checking the truth value of PHP_EXAMPLE_EXTRA. If a negative form was provided, no further processing is done; the user did not request extra functionality. If a positive form was provided without a parameter, AC_MSG_ERROR() is called to halt processing. The next step is another invocation of PHP_CHECK_LIBRARY(). This time, since there is no set of predefined compiler options provided, PHP_ADD_INCLUDE() and PHP_ADD_LIBRARY_WITH_PATH() are used to construct the necessary include paths, library paths, and library flags for the extra functionality. AC_DEFINE() is also called to indicate to the code that the extra functionality was both requested and available, and a variable is set to tell later code that there are extra source files to build. If the check fails, the familiar AC_MSG_ERROR() is called. A different way to handle the failure would have been to call AC_MSG_WARNING() instead, e.g.:

AC_MSG_WARNING([example-extra lib not found. example will be built without extra functionality.])

In this case, configure would print a warning message rather than an error, and continue processing. Which way such failures are handled is a design decision left to the extension developer.

Telling the buildsystem what was decided

With all the necessary includes and libraries specified, with all the options processed and macros defined, one more thing remains to be done: The build system must be told to build the extension itself, and which files are to be used for that. To do this, the PHP_NEW_EXTENSION() macro is called. The first parameter is the name of the extension, which is the same as the name of the directory containing it. The second parameter is the list of all source files which are part of the extension. See PHP_ADD_BUILD_DIR() for information about adding source files in subdirectories to the build process. The third parameter should always be $ext_shared, a value which was determined by configure when PHP_ARG_WITH() was called for --with-example[=FILE] . The fourth parameter specifies a "SAPI class", and is only useful for extensions which require the CGI or CLI SAPIs specifically. It should be left empty in all other cases. The fifth parameter specifies a list of flags to be added to CFLAGS while building the extension; the sixth is a boolean value which, if "yes", will force the entire extension to be built using $CXX instead of $CC. All parameters after the third are optional. Finally, PHP_SUBST() is called to enable shared builds of the extension. See Extension FAQs for more information on disabling support for building an extension in shared mode.

The counter extension's config.m4 file

The counter extension previously documented has a much simpler config.m4 file than that described above, as it doesn't make use of many buildsystem features. This is a preferred method of operation for any extension that doesn't use an external or bundled library.

Exemple #3 counter's config.m4 file

dnl
$
Id$
dnl config.m4 for extension counter

PHP_ARG_ENABLE(counter, for counter support,
[  --enable-counter            Include counter support])

dnl Check whether the extension is enabled at all
if test "$PHP_COUNTER" != "no"; then
  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(counter, counter.c counter_util.c, $ext_shared)
  PHP_SUBST(COUNTER_SHARED_LIBADD)
fi


Talking to the Windows build system: config.w32

An extension's config.w32 file is similar in usage to the config.m4 file, with two critical differences: first, it is used for Windows builds, and second, it is written in JavaScript. This section makes no attempt to cover JavaScript syntax. For the moment, this section is incomplete in lieu of a Win32 testbed, and an experimental-only port of the example config.m4 is the only example provided.

Exemple #1 An example config.w32 file

// $Id$
// vim:ft=javascript
ARG_WITH("example", "for example support", "no");
ARG_ENABLE("example-debug", "for debugging support in example", "no")
ARG_WITH("example-extra", "for extra functionality in example", "no")
if (PHP_EXAMPLE != "no") {
    if (CHECK_LIB("libexample.lib", "example", PHP_EXAMPLE) &&
        CHECK_HEADER_ADD_INCLUDE("example.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + "\\include")) {
        
        if (PHP_EXAMPLE_DEBUG != "no") {
            AC_DEFINE('USE_EXAMPLE_DEBUG', 1, 'Debug support in example');
        }
        
        if (PHP_EXAMPLE_EXTRA != "no" &&
            CHECK_LIB("libexample-extra.lib", "example", PHP_EXAMPLE) &&
            CHECK_HEADER_ADD_INCLUDE("example-extra.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + ";" + PHP_PHP_BUILD + "\\include") {
            AC_DEFINE('HAVE_EXAMPLEEXTRA', 1, 'Extra functionality in example');
            HAVE_EXTRA = 1;
        } else {
            WARNING( "extra example functionality not enabled, lib not found" );
        }
        
        EXTENSION("example", "example.c");
        if (HAVE_EXTRA == 1) {
            ADD_SOURCES("example-extra.c");
        }
    } else {
        WARNING( "example not enabled; libraries not found" );
    }
}

The counter extension's config.w32 file

The counter extension previously documented has a much simpler config.w32 file than that described above, as it doesn't make use of many buildsystem features.

Exemple #2 counter's config.w32 file

// $Id$
// vim:ft=javascript
ARG_ENABLE("counter", "for counter support", "no");
if (PHP_COUNTER != "no") {
    EXTENSION("counter", "counter.c");
    ADD_SOURCE("counter-util.c");
}



Extension structure

Sommaire

Many extension-writing guides focus on simple examples first and ignore the requirements of more complex implementations until later. Often such guides must repeat themselves over and over in order to describe these new features. This section describes extension structure from the perspective of a mature, practical implementation, in order to prepare users for needs and issues they will almost always encounter in the process of extension development.


Files which make up an extension

Whether created by hand, using ext_skel, or by an alternate extension generator, such as » CodeGen, all extensions will have at least four files:

config.m4

UNIX build system configuration (see Talking to the UNIX build system: config.m4)

config.w32

Windows buildsystem configuration (see Talking to the Windows build system: config.w32)

php_counter.h

When building an extension as static module into the PHP binary the build system expects a header file with php_ prepended to the extension name which includes a declaration for a pointer to the extension's module structure. This file usually contains additional macros, prototypes, and globals, just like any header.

counter.c

Main extension source file. By convention, the name of this file is the extension name, but this is not a requirement. This file contains the module structure declaration, INI entries, management functions, userspace functions, and other requirements of an extension.

The buildsystem files are discussed elsewhere; this section concentrates on the rest. These four files make up the bare minimum for an extension, which may also contain any number of headers, source files, unit tests, and other support files. The list of files in the counter extension might look like this:

Exemple #1 Files in the counter extension, in no particular order

ext/
 counter/
  .svnignore
  config.m4
  config.w32
  counter_util.h
  counter_util.c
  php_counter.h
  counter.c
  package.xml
  CREDITS
  tests/
   critical_function_001.phpt
   critical_function_002.phpt
   optional_function_001.phpt
   optional_function_002.phpt

Non-source files

The .svnignore file is used for extensions which are checked into the PHP Subversion repository (usually » PECL); the one generated by ext_skel contains:

.deps
*.lo
*.la

These lines tell Subversion to ignore interim files generated by the PHP buildsystem. This is only a convenience, and can be omitted completely without ill effect.

The CREDITS file lists the contributors and/or maintainers of the extension in plain text format. The main purpose of this file is generating the credits information for bundled extensions as used by phpcredits(). By convention the first line of the file should hold the name of the extension, the second a comma separated list of contributors. The contributors are usually ordered by the chronological order of their contributions. In a » PECL package, this information is already maintained in package.xml, for example. This is another file which can be omitted without ill effect.

The package.xml file is specific to » PECL-based extensions; it is a metainformation file which gives details about an extension's dependencies, authors, installation requirements, and other tidbits. In an extension not being hosted in » PECL, this file is extraneous.



Basic constructs

C is a very low-level language by modern definitions. This means that it has no built-in support for many features that PHP takes for granted, such as reflection, dynamic module loading, bounds checking, threadsafe data management and various useful data structures including linked lists and hash tables. At the same time, C is a common denominator of language support and functionality. Given enough work, none of these concepts are impossible; the Zend Engine uses them all.

A lot of effort has gone into making the Zend API both extensible and understandable, but C forces certain necessary declarations upon any extension that to an inexperienced eye seem redundant or plain unnecessary. All of those constructs, detailed in this section, are "write once and forget" in Zend Engine 2 and 3. Here are some excerpts from the pre-generated php_counter.h and counter.c files created by PHP 5.3's ext_skel, showing the pre-generated declarations:

Note: The astute reader will notice that there are several declarations in the real files that aren't shown here. Those declarations are specific to various Zend subsystems and are discussed elsewhere as appropriate.

extern zend_module_entry counter_module_entry;
#define phpext_counter_ptr &counter_module_entry

#ifdef PHP_WIN32
#    define PHP_COUNTER_API __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
#    define PHP_COUNTER_API __attribute__ ((visibility("default")))
#else
#    define PHP_COUNTER_API
#endif

#ifdef ZTS
#include "TSRM.h"
#endif
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_counter.h"

/* ... */

#ifdef COMPILE_DL_COUNTER
ZEND_GET_MODULE(counter)
#endif
  • The lines concerning counter_module_entry declare a global variable, and a macroed pointer to it, which contains the zend_module_entry for the extension. Despite the later discussion regarding the drawbacks of "true" globals, this usage is intentional; Zend takes precautions to avoid misusing this variable.
  • PHP_COUNTER_API is declared for use by non-PHP functions the module intends to export for the use of other modules. The counter extension doesn't declare any of these, and in the final version of the header file, this macro has been removed. The PHPAPI macro is declared identically elsewhere and is used by the standard extension to make the phpinfo() utility functions available to other extensions.
  • The include of TSRM.h is skipped if PHP, or the extension, isn't being compiled with thread-safety, since in that case TSRM isn't used.
  • A standard list of includes, especially the extension's own php_counter.h, is given. config.h gives the extension access to determinations made by configure. php.h is the gateway to the entire PHP and Zend APIs. php_ini.h adds the APIs for runtime configuration (INI) entries. Not all extensions will use this. Finally, ext/standard/info.h imports the aforementioned phpinfo() utility API.
  • COMPILE_DL_COUNTER will only be defined by configure if the counter extension is both enabled and wants to be built as a dynamically loadable module instead of being statically linked into PHP. ZEND_GET_MODULE defines a tiny function which Zend can use to get the extension's zend_module_entry at runtime.

    Note: The astute reader who has peeked into main/php_config.h after trying to build with the counter module enabled statically may have noticed that there is also a HAVE_COUNTER constant defined that the source code doesn't check for. There's a simple reason this check isn't done: It's unnecessary. If the extension isn't enabled, the source file will never be compiled.



The zend_module structure

The main source file of a PHP extension contains several new constructs for a C programmer. The most important of these, the one touched first when starting a new extension, is the zend_module structure. This structure contains a wealth of information that tells the Zend Engine about the extension's dependencies, version, callbacks, and other critical data. The structure has mutated considerably over time; this section will focus on the structure as it has appeared since PHP 5.2, and will identify the very few parts which have changed in PHP 5.3.

The zend_module declaration from counter.c looks like this before any code has been written. The example file was generated by ext_skel --extname=counter, with some obsolete constructs removed:

Exemple #1 zend_module declaration in the counter extension

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),        /* Replace with NULL if there's nothing to do at request start */
    PHP_RSHUTDOWN(counter),    /* Replace with NULL if there's nothing to do at request end */
    PHP_MINFO(counter),
    "0.1", /* Replace with version number for your extension */
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

This may look a bit daunting at first glance, but most of it is very simple to understand. Here's the declaration of zend_module from zend_modules.h in PHP 5.3:

Exemple #2 zend_module definition in PHP 5.3

struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    const struct _zend_ini_entry *ini_entry;
    const struct _zend_module_dep *deps;
    const char *name;
    const struct _zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    const char *version;
    size_t globals_size;
#ifdef ZTS
    ts_rsrc_id* globals_id_ptr;
#else
    void* globals_ptr;
#endif
    void (*globals_ctor)(void *global TSRMLS_DC);
    void (*globals_dtor)(void *global TSRMLS_DC);
    int (*post_deactivate_func)(void);
    int module_started;
    unsigned char type;
    void *handle;
    int module_number;
};

Many of these fields will never be touched by an extension writer. There are a number of standard macros that set them to their proper values automatically. The macro STANDARD_MODULE_HEADER fills in everything up to the deps field. Alternatively, the STANDARD_MODULE_HEADER_EX will leave the deps field empty for the developer's use. The developer is always responsible for everything from name to version. After that, the STANDARD_MODULE_PROPERTIES macro will fill in the rest of the structure, or the STANDARD_MODULE_PROPERTIES_EX macro can be used to leave the extension globals and post-deactivation function fields unfilled. Most modern extensions will make use of module globals.

Note:

This table gives the values that each field would have if the developer were to fill in the structure entirely by hand, without recourse to any of the shortcut macros. This is not recommended. The "correct" values for many fields may change. Use the macros whenever possible.

Module structure field values
Field Value Description
size [1] [2] [3] sizeof(zend_module_entry) The size in bytes of the structure.
zend_api [1] [2] [3] ZEND_MODULE_API_NO The version of the Zend API this module was compiled against.
zend_debug [1] [2] [3] ZEND_DEBUG A flag indicating whether the module was compiled with debugging turned on.
zts [1] [2] [3] USING_ZTS A flag indicating whether the module was compiled with ZTS (TSRM) enabled (see Memory management).
ini_entry [1] [3] NULL This pointer is used internally by Zend to keep a non-local reference to any INI entries declared for the module.
deps [3] NULL A pointer to a list of dependencies for the module.
name "mymodule" The name of the module. This is the short name, such as "spl" or "standard".
functions mymodule_functions A pointer to the module's function table, which Zend uses to expose functions in the module to user space.
module_startup_func PHP_MINIT(mymodule) A callback function that Zend will call the first time a module is loaded into a particular instance of PHP.
module_shutdown_func PHP_MSHUTDOWN(mymodule) A callback function that Zend will call the when a module is unloaded from a particular instance of PHP, typically during final shutdown.
request_startup_func PHP_RINIT(mymodule) A callback function that Zend will call at the beginning of each request. This should be as short as possible or NULL as calling this has costs on every request.
request_shutdown_func PHP_RSHUTDOWN(mymodule) A callback function that Zend will call at the end of each request. This should be as short as possible or NULL as calling this has costs on every request.
info_func PHP_MINFO(mymodule) A callback function that Zend will call when the phpinfo() function is called.
version NO_VERSION_YET A string giving the version of the module, as specified by the module developer. It is recommended that the version number be either in the format expected by version_compare() (e.g. "1.0.5-dev"), or a CVS or SVN revision number (e.g. "$Rev: 301952 $").
globals_size [1] [4] [5] [6] sizeof(zend_mymodule_globals) The size of the data structure containing the module's globals, if any.
globals_id_ptr [1] [4] [5] [6] [7] &mymodule_globals_id Only one of these two fields will exist, depending upon whether the USING_ZTS constant is TRUE. The former is an index into TSRM's allocation table for the module's globals, and the latter is a pointer directly to the globals.
globals_ptr [1] [4] [5] [6] [8] &mymodule_globals
globals_ctor [4] [5] [6] PHP_GINIT(mymodule) This funtion is called to initialize a module's globals before any module_startup_func.
globals_dtor [4] [5] [6] PHP_GSHUTDOWN(mymodule) This funtion is called to deallocate a module's globals after any module_shutdown_func.
post_deactivate_func [4] ZEND_MODULE_POST_ZEND_DEACTIVATE_N(mymodule) This function is called by Zend after request shutdown. It is rarely used.
module_started [1] [9] [4] 0 These fields are used for Zend's internal tracking information.
type [1] [9] [4] 0
handle [1] [9] [4] NULL
module_number [1] [9] [4] 0
[1] This field is not intended for use by module developers.
[2] This field is filled in by STANDARD_MODULE_HEADER_EX.
[3] This field is filled in by STANDARD_MODULE_HEADER.
[4] This field is filled in by STANDARD_MODULE_PROPERTIES.
[5] This field is filled in by NO_MODULE_GLOBALS.
[6] This field is filled in by PHP_MODULE_GLOBALS.
[7] This field only exists when USING_ZTS is TRUE.
[8] This field only exists when USING_ZTS is FALSE.
[9] This field is filled in by STANDARD_MODULE_PROPERTIES_EX.

Filling in the structure in a practical situation

With all these fields to play with, it can be confusing to know which to use for what purpose. Here is the zend_module definition from the "counter" example extension after updating it to its final form.

Exemple #3 Counter extension module definition

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),
    PHP_RSHUTDOWN(counter),
    PHP_MINFO(counter),
    NO_VERSION_YET,
    PHP_MODULE_GLOBALS(counter),
    PHP_GINIT(counter),
    PHP_GSHUTDOWN(counter),
    NULL,
    STANDARD_MODULE_PROPERTIES_EX
};
/* }}} */
  • STANDARD_MODULE_HEADER is used since this module doesn't define any dependencies.
  • "counter" is the extension's name, and is used to define the various callback functions the module passes to Zend. "counter" uses module, globals, and request functions at startup and shutdown times, and provides information to phpinfo(), so all seven callbacks are defined.
  • It is assumed that there is a variable of type zend_function_entry * named counter_functions earlier in the file that contains the module definition, listing the functions the module exports to userspace.
  • NO_VERSION_YET is a particularly nice way of telling Zend the module doesn't have a version. It might have been more correct to place "1.0" here instead in a real module.
  • "counter" uses per-module globals, so PHP_MODULE_GLOBALS is used
  • This module has no post-deactivate function, so NULL is used.
  • Since this module does use globals, STANDARD_MODULE_PROPERTIES_EX is used to finish the structure.

What's changed between 5.2 and 5.3?

Nothing. The only differences in the zend_module structure between PHP 5.2 and PHP 5.3 are a few const keywords.



Extension globals

Introduction to globals in a PHP extension

In a language such as C, a "global" variable is a variable that can be accessed from any function without any extra declaration. These traditional globals have a few drawbacks:

  • Barring any special options passed to the compiler, a global variable can be accessed and changed by any piece of code anywhere in the program, whether or not that code should be doing so.
  • A typical global variable is not thread safe.
  • The names of global variables are as global as the variables themselves.

A PHP extension's globals are more properly called the "extension state", since most modules must remember what they're doing between function calls. The "counter" extension is a perfect example of this need: The basic interface calls for a counter with a persistent value. A programmer new to Zend and PHP might do something like this in counter.c to store that value:

Exemple #1 The wrong way to store the basic counter interface's value

/* ... */
static long basic_counter_value;

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(basic_counter_value);
}

On the surface this appears a viable solution, and indeed in a simple test it would function correctly. However, there are a number of situations in which more than one copy of PHP is running in the same thread, which means more than one instance of the counter module. Suddenly these multiple threads are sharing the same counter value, which is clearly undesirable. Another problem shows itself when considering that another extension might someday happen to have a global with the same name, and due to the rules of C scoping, this has the potential to cause a compile failure, or worse, a runtime error. Something more elaborate is needed, and so exists Zend's support for thread-safe per-module globals.

Declaring module globals

Whether a module uses only a single global or dozens, they must be defined in a structure, and that structure must be declared. There are some macros that assist with doing so in a way that avoids name conflicts between modules: ZEND_BEGIN_MODULE_GLOBALS(), ZEND_END_MODULE_GLOBALS(), and ZEND_DECLARE_MODULE_GLOBALS(). All three take as a parameter the short name of the module, which in the case of the counter module is simply "counter". Here is the global structure declaration from php_counter.h:

Exemple #2 The counter module's globals

ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

And this is the declaration from counter.c:

Exemple #3 The counter module's global structure declaration

ZEND_DECLARE_MODULE_GLOBALS(counter)

Accessing module globals

As discussed above, per-module globals are declared inside a C structure whose name is obscured by Zend macros. As a result, the ideal way to access members of this structure is by the use of further macros. Accordingly, most if not all extensions which have globals have a declaration like this somewhere in their header file:

Exemple #4 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

Note: This could have been generalized into a macro of its own by the Zend API, but as of PHP 5.3 (and PHP 6 at the time of this writing), that hasn't happened. The global accessor construct is written into the header by ext_skel and thus is generally left alone by extension writers, unless they wish to change the name of the accessor macro.

Note: COUNTER_G was the name given to the macro by ext_skel, but it's not necessary for it to have that name and could just as easily be called FOO instead.

Any code in the counter extension that accesses a global must thus wrap it in the macro COUNTER_G.

Avertissement

Any function which accesses globals must either be declared by Zend macros, have TSRMLS_DC as its last argument, or call the macro TSRMLS_FETCH before accessing the globals. See the TSRM documentation for more information.

So with all of that in mind, here is our new version of the counter_get():

Exemple #5 The right way to store the basic counter interface's value

/* php_counter.h */
ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

/* counter.c */
ZEND_DECLARE_MODULE_GLOBALS(counter)

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(COUNTER_G(basic_counter_value));
}

This is a correct implementation. It is not, however, a complete one. The section Life cycle of an extension explains why.



Life cycle of an extension

A PHP extension goes through several phases during its lifetime. All of these phases are opportunities for the developer to perform various initialization, termination, or informational functions. The Zend API allows for hooks into five separate phases of an extension's existence, apart from calls by PHP functions.

Loading, unloading, and requests

As the Zend engine runs, it processes one or more "requests" from its client. In the traditional CGI implementation, this corresponds to one execution of a process. However, many other implementations, most notably the Apache module, can map many requests onto a single PHP process. A PHP extension may thus see many requests in its lifetime.

Overview

  • In the Zend API, a module is loaded into memory only once when the associated PHP process starts up. Each module receives a call to the "module initialization" function specified in its zend_module structure as it is loaded.
  • Whenever the associated PHP process starts to handle a request from its client - i.e. whenever the PHP interpreter is told to start working - each module receives a call to the "request initialization" function specified in its zend_module structure.
  • Whenever the associated PHP process is done handling a request, each module receives a call to the "request termination" function specified in its zend_module structure.
  • A given module is unloaded from memory when its associated PHP process is shut down in an orderly manner. The module receives a call to the "module termination" function specified in its zend_module structure at this time.

What to do, and when to do it

There are many tasks that might be performed at any of these four points. This table details where many common initialization and termination tasks belong.

What to do, and when to do it
Module initialization/termination Request initialization/termination
Allocate/deallocate and initialize module global variables Allocate/deallocate and initialize request-specific variables
Register/unregister class entries  
Register/unregister INI entries  
Register constants  

The phpinfo() callback

Aside from globals initialization and certain rarely-used callbacks, there is one more part of a module's lifecycle to examine: A call to phpinfo(). The output a user sees from this call, whether text or HTML or anything else, is generated by each individual extension that is loaded into the PHP interpreter at the time the call is made.

To provide for format-neutral output, the header "ext/standard/info.h" provides an array of functions to produce standardized display elements. Specifically, several functions which create the familiar tables exist:

php_info_print_table_start()
Open a table in phpinfo() output. Takes no parameters.
php_info_print_table_header()
Print a table header in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column heading.
php_info_print_table_row()
Print a table row in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column content.
php_info_print_table_end()
Close a table formerly opened by php_info_print_table_start(). Takes no parameters.

Using these four functions, it is possible to produce status information for nearly any combination of features in an extension. Here is the information callback from the counter extension:

Exemple #1 counter's PHP_MINFO function

/* {{{ PHP_MINFO(counter) */
PHP_MINFO_FUNCTION(counter)
{
    char        buf[10];

    php_info_print_table_start();
    php_info_print_table_row(2, "counter support", "enabled");
    snprintf(buf, sizeof(buf), "%ld", COUNTER_G(basic_counter_value));
    php_info_print_table_row(2, "Basic counter value", buf);
    php_info_print_table_end();
}
/* }}} */


Testing an extension

One of the accepted requirements of good programming is testing. PHP provides a test harness for unit regression tests, in the form of a script called run-tests.php.

Tests for a particular module are stored in the tests/ subdirectory of the module's folder, and have a .phpt extension. For details of the PHPT format, see » http://qa.php.net/.




Memory management

Sommaire

Memory management in the Zend Engine is deceptively simple. There are some APIs to learn, and some concepts behind them to understand, but that's about all.


Basic memory management

When programming in the C programming language the developer has to manually care about memory management. As PHP is usually used as a web server module memory management is from special relevance in order to prevent memory leaks. Additionally you should be aware that PHP might be used in threaded environments which means that global variables might lead to race conditions. For information about dealing with thread-global data please refer to the documentation on the Thread-Safe Resource Manager, which serves as thread-isolation facility.

Additionally to these requirements the Zend Engine is faced with a quite special usage pattern where, within a relatively short time, many memory blocks of the size of a zval structure or other small memory blocks are requested and freed again. Memory management in PHP has also to respect the memory_limit.

For fulfilling the above requirements the Zend Engine provides a special memory manager for handling request-bound data. Request-bound data is data that is needed only for serving a single request and which will be freed at the request's end at latest. Extension authors will mostly only have contact with the routines listed in the table below. Although they are implemented as macros for providing some convenience features this documentation will treat them like functions.

Main memory APIs
Prototype Description
void *emalloc(size_t size) Allocate size bytes of memory.
void *ecalloc(size_t nmemb, size_t size) Allocate a buffer for nmemb elements of size bytes and makes sure it is initialized with zeros.
void *erealloc(void *ptr, size_t size) Resize the buffer ptr, which was allocated using emalloc to hold size bytes of memory.
void efree(void *ptr) Free the buffer pointed by ptr. The buffer had to be allocated by emalloc.
void *safe_emalloc(size_t nmemb, size_t size, size_t offset) Allocate a buffer for holding nmemb blocks of each size bytes and an additional offset bytes. This is similar to emalloc(nmemb * size + offset) but adds a special protection against overflows.
char *estrdup(const char *s) Allocate a buffer that can hold the NULL-terminated string s and copy the s into that buffer.
char *estrndup(const char *s, unsigned int length) Similar to estrdup while the length of the NULL-terminated string is already known.

Note: Unlike their C standard library's counterparts the Zend Engine's memory management functions won't return NULL in case of an problem while allocating the requested memory but bail out and terminate the current request.

As said above it is an essential part of the memory management to avoid having memory leaks and therefore free all memory you've allocated as soon as possible. As a safety net the Zend Engine will free all memory, which had been allocated using above mentioned APIs at the end of a request. If PHP was built using the --enable-debug configuration option this will lead to a warning.

Exemple #1 PHP's leak warnings

ZEND_FUNCTION(leak)
{
    long leakbytes = 3;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &leakbytes) == FAILURE) {
        return;
    }

    emalloc(leakbytes);
}

L'exemple ci-dessus va afficher quelque chose de similaire à :

[Thu Oct 22 02:14:57 2009]  Script:  '-'
/home/johannes/src/PHP_5_3/Zend/zend_builtin_functions.c(1377) :  Freeing 0x088888D4 (3 bytes), script=-
=== Total 1 memory leaks detected ===

Note: When dealing with PHP variables you have to make sure the variable's memory is allocated using emalloc and take care of the reference count. Details can be found in Working with variables.

Note: This leak detection can only find leaks caused by blocks allocated by emalloc. You're advised to use a memory checker like valgrind or libumem for deeper analysis. To simplify the analysis PHP's memory manager can be disabled by setting the environment variable USE_ZEND_ALLOC=0 before starting PHP.



Data persistence



Thread-Safe Resource Manager




Working with variables

Sommaire


Intro

For working with variables in PHP's core you have to learn about different fundamental concepts used in PHP. Firstly PHP is a dynamic and weak typed language. Secondly PHP uses a copy on write mechanism with reference counting for memory handling. Please check the Bases sur le comptage des références chapter for details how reference counting and references work.

PHP variables, in general, consist out of two things: The label, which might, for instance, be an entry in a symbol table, and the actual variable container. For the most parts of this manual we will focus on the variable container.

The variable container, in code called zval, is holding all data needed to handle the variable. This includes not only the actual value but also the current type, a counter counting the number of labels pointing to this container and a flag whether these labels should be treated as references or copies. In PHP 5.3 the relevant structures, which you can find in Zend/zend.h, look like this:

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {                   /* string type */
        char *val;
        int len;
    } str;
    HashTable *ht;             /* hash table value */
    zend_object_value obj;
} zvalue_value;
 
struct _zval_struct {
    /* Variable information */
    zvalue_value value;        /* value */
    zend_uint refcount__gc;
    zend_uchar type;           /* active type */
    zend_uchar is_ref__gc;
};

In the zvalue_value one can find the internal representation for the different types the fields used should be clear from the names and comments - especially if one knows that PHP's arrays are infact hash tables. Nonetheless, knowing PHP's types one might miss a few: NULL, boolean and resources. For NULL we need no value, as NULL is the value of that type. For boolean and resource values PHP re-uses the value field. In the case of a boolean it holds either 0 for false or 1 for true. For resource-typed variables it holds the resource id.

Now the good message is that you don't have to know these things in detail as there are - like always in PHP - acces macros. The bad news is that there are many of them: There are macros to access any aspect of the zval and then, as one often deals with pointers to zvals and even pointers to pointers to zvals, for most of them there are shortcuts dereferencing these pointers. These macros are spread over Zend/zend.h, Zend/zend_operators.h and Zend/zend_API.h.



Creating variables and setting values




Writing functions

One core element of an extension are functions which are exported to the PHP userland. Even when you're planning to write object-oriented extensions you are advised to read this chapter as most of the information is valid for methods, too.

When adding a function to an extension, for instance after using the ext_skel script to create the raw infrastructure, you can create a function by implementing it as a C function and then providing an entry for the extension's function table. The function entry can contain a pointer to an argument information structure. Providing this information ins not strictly necessary, unless you plan to accept parameters by reference or want to return a reference, but provides information that can be accessed via PHP's Reflection API. As you will see below the parameters aren't passed as direct function parameters to the implementation but passed on a stack, which is checked by the function's implementation which can't directly serve as source for this information.

Exemple #1 Minimal PHP extension with one function

/* {{{ proto void hello_world()
       Do nothing */
PHP_FUNCTION(hello_world)
{
}
/* }}} */

/* {{{ arginfo_hello_world */
ZEND_BEGIN_ARG_INFO(arginfo_hello_world, 0)
ZEND_END_ARG_INFO()
/* }}} */

/* {{{ demo_functions */
function_entry demo_functions[] = {
    PHP_FE(hello_world, arginfo_hello_world)
    {NULL, NULL, NULL}
}
/* }}} */

/* {{{ demo_module_enry */
zend_module_entry demo_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
    STANDARD_MODULE_HEADER,
#endif
    "demo",
    demo_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
#if ZEND_MODULE_API_NO >= 20010901
    "1.0.0",
#en
    STANDARD_MODULE_PROPERTIES
}
/* }}} */

In his example you can see the above discussed elements and the module structure, if you don't remember his strucure go back to The zend_module structure.

The first part of this extension is the actual implementation. As a convention each exported function is preceded by a two line comment describing the function's userland prototype and a short one line comment.

For providing source code compatibility between different versions of PHP the functions declaration is wrapped into the PHP_FUNCTION macro. The compiler's preprocessor will, when using PHP 5.3 transform this into a function like this:

void zif_hello_world(int ht, zval *return_value, zval **return_value_ptr,
                     zval *this_ptr, int return_value_used TSRMLS_DC)
{
}

For preventing a naming conflict between a function exported to userland and another C function with the same name the C symbol of the exported function is prefixed with the prefix zif_. You can also see that this prototype doesn't reference the argument stack. Accessing parameters passed from PHP is described below. The following table lists the C level parameters which are also defined in the INTERNAL_FUNCTION_PARAMETERS macro. Mind that these parameters might change between PHP versions and you should use the provide macros.

INTERNAL_FUNCTION_PARAMETERS
Name and type Description Access macros
int ht Number of actual parameters passed by user ZEND_NUM_ARGS()
zval *return_value Pointer to a PHP variable that can be filled with the return value passed to the user. The default type is IS_NULL. RETVAL_*, RETURN_*
zval **return_value_ptr When returning references to PHP set this to a pointer to your variable. It is not suggested to return references.  
zval *this_ptr In case this is a method call this points to the PHP variable holding the $this object. getThis()
int return_value_used Flag indicating whether the returned value will be used by the caller.  

As said the function shown above will simply return NULL to the user and do nothing else. The function can be called, from the PHP userland, with an arbitrary number of parameters. A more useful function consists of four parts in general:

  1. Declaration of local variables. In C we have to declare locale vars, so we do this at the functions top.

  2. Parameter parsing. PHP passes parameters on a special stack, we have to read them from there, verify the types, cast them if needed and bail out in case something goes wrong.

  3. Actual logic. Do whatever is needed.

  4. Set the return value, cleanup, return.

In some cases the exact order of these steps may change. Especially the last two steps are often mixed up, but it's a good idea to stay in that order.

Exemple #2 A simple function

/* {{{ proto void hello_world(string name)
   Greets a user */
PHP_FUNCTION(hello_world)
{
    char *name;
    int name_len;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) {
        return;
    }

    php_printf("Hello %s!", name);

    RETURN_TRUE;
}
/* }}} */

The function above shows these parts. Let's start the analysis with the last lines: php_printf is - as one can guess easily - PHP's version of standard C's printf. Unlike printf it doesn't print to the process's STDOUT channel but to the current output stream, which might be buffered by the user. It should be noted that php_printf, unlike most parts of PHP's API is not binary safe, so if name contains a NULL-byte the rest would be ignored. For a binary safe output PHPWRITE should be used.

Note: In general it is considered to directly print data to the output stream, it is suggested to return data as string to the user instead so the user can decide what to do. Exceptions to this rule might be functions dealing with binary data like images while your API should provide a way to access the data even there.

The RETURN_TRUE macro in the last line does three things: It sets the type of the variable we got as return_value pointer to IS_BOOLEAN and the value to a true value. Then it returns from the C function. So when using this macro you're housekeeping for memory and other resources has to be completed as further code of this function won't be executed.

The zend_parse_parameters() function is responsible for reading the parameters passed by the user from the argument stack and putting it with proper casting in local C variables. If the user doesn't pass the wrong number of parameters or types that can't be casted the function will emit a verbose error and return FAILURE. In that case we simply return from the function - by not changing the return_value the default return value of NULL will be returned to the user.

Note: Please mind that FAILURE is represented by a -1 and SUCCESS by 0. To make the code clear you should always use the named constants for comparing the value.

The first parameter to zend_parse_parameters() is the number of parameters that have actually been passed to the function by the user. The number is passed as ht parameter to our function but, as discussed above, this should be considered as an implementation detail and ZEND_NUM_ARGS() should be used.

For compatibility with PHP's thread-isolation, the thread-safe resource manager, we also have to pass the thread context using TSRMLS_CC. Unlike in other functions this can't be the last parameter as zend_parse_parameters expects a variable number of parameters - depending on the number of user-parameters to read.

Following the thread context the expected parameters are declared. Each parameter is represented by a character in the string describing the type. In our case we expect one parameter as a string so our type specification is simply "s".

Lastly one has to pass one or more pointers to C variables which should be filled with the variable's value or provide more details. In the case of a string we get the actual string, which will always be NULL-terminated, as a char* and its length, excluding the NULL-byte, as int.

A documentation of all type specifiers and the corresponding additional C types can be found in the file » README.PARAMETER_PARSING_API which is part of the source distribution. The most important types can be found in the table below.

zend_parse_parameters() type specifiers
Modifier Additional parameter types Description
b zend_bool Boolean value
l long A integer (long) value
d double A float (double) value
s char*, int A binary safe string
h HashTable* An array's hash table


Working with classes and objects



Working with resources



Working with INI settings



Working with streams

Note:

Information on using streams within the PHP source code can be found in the Streams API for PHP Extension Authors reference.



PDO Driver How-To

Sommaire

The purpose of this How-To is to provide a basic understanding of the steps required to write a database driver that interfaces with the PDO layer. Please note that this is still an evolving API and as such, subject to change. This document was prepared based on version 0.3 of PDO. The learning curve is steep; expect to spend a lot of time on the prerequisites.


Prerequisites

The following is list of prerequisites and assumptions needed for writing a PDO database driver:

  1. A working target database, examples, demos, etc. working as per vendor specifications;

  2. A working development environment:

    1. Linux: standard development tools, gcc, ld, make, autoconf, automake, etc., versions dependent on distribution;

    2. Other Unix: standard development tools supplied by vendor plus the GNU development tool set;

    3. Win32: Visual Studio compiler suite;

  3. A working PHP environment version 5.0.3 or higher with a working PEAR extension version 1.3.5 or higher;

  4. A working PDO environment (can be installed using 'sudo pecl install PDO'), including the headers which will be needed to access the PDO type definitions and function declarations;

  5. A good working knowledge of the C programming language;

  6. A good working knowledge of the way to write a PHP extension; George Schlossnagle's Advanced PHP Programming (published by Developer's Library, chapters 21 and 22) is recommended;

  7. Finally, a familiarity with the Zend API that forms the heart of PHP, in particular paying attention to the memory management aspects.



Preparation and Housekeeping

Source directory layout

The source directory for a typical PDO driver is laid out as follows, where SKEL represents a shortened form of the name of the database that the driver is going to connect to. Even though SKEL is presented here in uppercase (for clarity), the convention is to use lowercase characters.

pdo_SKEL/          
  config.m4                  # unix build script
  config.w32                 # win32 build script
  CREDITS
  package.xml                # meta information about the package
  pdo_SKEL.c                 # standard PHP extension glue
  php_pdo_SKEL.h
  php_pdo_SKEL_int.h         # driver private header
  SKEL_dbh.c                 # contains the implementation of the PDO driver interface
  SKEL_stmt.c                # contains the implementation of the PDO statement interface
  tests/

The contents of these files are defined later in this document.

Creating a skeleton

The easiest way to get started is to use the ext_skel shell script found in the PHP build tree in the ext directory. This will build a skeleton directory containing a lot of the files listed above. It can be build by executing the following command from within the ext directory:

./ext_skel --extname=pdo_SKEL

This will generate a directory called pdo_SKEL containing the skeleton files that you can then modify. This directory should then be moved out of the php extension directory. PDO is a PECL extension and should not be included in the standard extension directory. As long as you have PHP and PDO installed, you should be able to build from any directory.

Standard Includes

Build Specific Headers

The header file config.h is generated by the configure process for the platform for the which the driver is being built. If this header is present, the HAVE_CONFIG_H compiler variable is set. This variable should be tested for and if set, the file config.h should be included in the compilation unit.

PHP Headers

The following standard public php headers should be included in each source module:

  1. php.h

  2. php_ini.h

  3. ext/standard/info.h

PDO Interface Headers

The following standard public PDO header files are also included in each source module:

pdo/php_pdo.h

This header file contains definitions of the initialization and shutdown functions in the main driver as well as definitions of global PDO variables.

pdo/php_pdo_driver.h

This header contains the types and API contracts that are used to write a PDO driver. It also contains method signature for calling back into the PDO layer and registering/unregistering your driver with PDO. Most importantly, this header file contains the type definitions for PDO database handles and statements. The two main structures a driver has to deal with, pdo_dbh_t and pdo_stmt_t, are described in more detail in Appendix A and B.

Driver Specific Headers

The typical PDO driver has two header files that are specific to the database implementation. This does not preclude the use of more depending on the implementation. The following two headers are, by convention, standard:

php_pdo_SKEL.h

This header file is virtually an exact duplicate in functionality and content of the previously defined pdo/php_pdo.h that has been specifically tailored for your database. If your driver requires the use of global variables they should be defined using the ZEND_BEGIN_MODULE_GLOBALS and ZEND_END_MODULE_GLOBALS macros. Macros are then used to access these variables. This macro is usually named PDO_SKEL_G(v) where v is global variable to be accessed. Consult the Zend programmer documentation for more information.

php_pdo_SKEL_int.h

This header file typically contains type definitions and function declarations specific to the driver implementation. It also should contain the db specific definitions of a pdo_SKEL_handle and pdo_SKEL_stmt structures. These are the names of the private data structures that are then referenced by the driver_data members of the handle and statement structures.

Optional Headers

Depending on the implementation details for a particular driver it may be necessary to include the following header:

#include <zend_exceptions.h>


Fleshing out your skeleton

Major Structures and Attributes

The major structures, pdo_dbh_t and pdo_stmt_t are defined and explained in Appendix A and B respectively. Database and Statement attributes are defined in Appendix C. Error handling is explained in Appendix D.

pdo_SKEL.c: PHP extension glue

function entries

static function_entry pdo_SKEL_functions[] = {
  { NULL, NULL, NULL }
};

This structure is used to register functions into the global php function namespace. PDO drivers should try to avoid doing this, so it is recommended that you leave this structure initialized to NULL, as shown in the synopsis above.

Module entry

/* {{{ pdo_SKEL_module_entry */
#if ZEND_EXTENSION_API_NO >= 220050617
static zend_module_dep pdo_SKEL_deps[] = {
    ZEND_MOD_REQUIRED("pdo")
    {NULL, NULL, NULL}
};
#endif
/* }}} */

zend_module_entry pdo_SKEL_module_entry = {
#if ZEND_EXTENSION_API_NO >= 220050617
    STANDARD_MODULE_HEADER_EX, NULL,
    pdo_SKEL_deps,
#else
    STANDARD_MODULE_HEADER,
#endif
    "pdo_SKEL",
    pdo_SKEL_functions,
    PHP_MINIT(pdo_SKEL),
    PHP_MSHUTDOWN(pdo_SKEL),
    NULL,
    NULL,
    PHP_MINFO(pdo_SKEL),
    PHP_PDO_<DB>_MODULE_VERSION,
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

#ifdef COMPILE_DL_PDO_<DB>
ZEND_GET_MODULE(pdo_db)
#endif

A structure of type zend_module_entry called pdo_SKEL_module_entry must be declared and should include reference to the pdo_SKEL_functions table defined previously.

Standard PHP Module Extension Functions

PHP_MINIT_FUNCTION
/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(pdo_SKEL)
{
    return php_pdo_register_driver(&pdo_SKEL_driver);
}
/* }}} */

This standard PHP extension function should be used to register your driver with the PDO layer. This is done by calling the php_pdo_register_driver() function passing a pointer to a structure of type pdo_driver_t typically named pdo_SKEL_driver. A pdo_driver_t contains a header that is generated using the PDO_DRIVER_HEADER(SKEL) macro and pdo_SKEL_handle_factory() function pointer. The actual function is described during the discussion of the SKEL_dbh.c unit.

PHP_MSHUTDOWN_FUNCTION
/* {{{ PHP_MSHUTDOWN_FUNCTION */
PHP_MSHUTDOWN_FUNCTION(pdo_SKEL)
{
    php_pdo_unregister_driver(&pdo_SKEL_driver);
    return SUCCESS;
}
/* }}} */

This standard PHP extension function is used to unregister your driver from the PDO layer. This is done by calling the php_pdo_unregister_driver() function, passing the same pdo_SKEL_driver structure that was passed in the init function above.

PHP_MINFO_FUNCTION

This is again a standard PHP extension function. Its purpose is to display information regarding the module when the phpinfo() is called from a script. The convention is to display the version of the module and also what version of the db you are dependent on, along with any other configuration style information that might be relevant.

SKEL_driver.c: Driver implementation

This unit implements all of the database handling methods that support the PDO database handle object. It also contains the error fetching routines. All of these functions will typically need to access the global variable pool. Therefore, it is necessary to use the Zend macro TSRMLS_DC macro at the end of each of these statements. Consult the Zend programmer documentation for more information on this macro.

pdo_SKEL_error

static int pdo_SKEL_error(pdo_dbh_t *dbh,
  pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC)

The purpose of this function is to be used as a generic error handling function within the driver. It is called by the driver when an error occurs within the driver. If an error occurs that is not related to SQLSTATE, the driver should set either dbh->error_code or stmt->error_code to an SQLSTATE that most closely matches the error or the generic SQLSTATE error "HY000". The file pdo_sqlstate.c in the PDO source contains a table of commonly used SQLSTATE codes that the PDO code explicitly recognizes. This setting of the error code should be done prior to calling this function.; This function should set the global pdo_err variable to the error found in either the dbh or the stmt (if the variable stmt is not NULL).

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the current statement or NULL. If NULL, the error is derived by error code found in the dbh.

file

The source file where the error occurred or NULL if not available.

line

The line number within the source file if available.

If the dbh member methods is NULL (which implies that the error is being raised from within the PDO constructor), this function should call the zend_throw_exception_ex() function otherwise it should return the error code. This function is usually called using a helper macro that customizes the calling sequence for either database handling errors or statement handling errors.

Exemple #1 Example macros for invoking pdo_SKEL_error

#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)
#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)

For more info on error handling, see Error handling.

Note:

Despite being documented here, the PDO driver interface does not specify that this function be present; it is merely a convenient way to handle errors, and it just happens to be equally convenient for the majority of database client library APIs to structure your driver implementation in this way.

pdo_SKEL_fetch_error_func

static int pdo_SKEL_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt,
    zval *info TSRMLS_DC)

The purpose of this function is to obtain additional information about the last error that was triggered. This includes the driver specific error code and a human readable string. It may also include additional information if appropriate. This function is called as a result of the PHP script calling the PDO::errorInfo() method.

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the most current statement or NULL. If NULL, the error translated is derived by error code found in the dbh.

info

A hash table containing error codes and messages.

The error_func should return two pieces of information as successive array elements. The first item is expected to be a numeric error code, the second item is a descriptive string. The best way to set this item is by using add_next_index. Note that the type of the first argument need not be long; use whichever type most closely matches the error code returned by the underlying database API.

/* now add the error information. */
/* These need to be added in a specific order */
add_next_index_long(info, error_code);   /* driver specific error code */
add_next_index_string(info, message, 0); /* readable error message */

This function should return 1 if information is available, 0 if the driver does not have additional info.

SKEL_handle_closer

static int SKEL_handle_closer(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to close an open database.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to close the open database. PDO ignores the return value from this function.

SKEL_handle_preparer

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)

This function will be called by PDO in response to PDO::query() and PDO::prepare() calls from the PHP script. The purpose of the function is to prepare raw SQL for execution, storing whatever state is appropriate into the stmt that is passed in.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

Stmt

Pointer to the returned statement or NULL if an error occurs.

driver_options

Any driver specific/defined options.

This function is essentially the constructor for a stmt object. This function is responsible for processing statement options, and setting driver-specific option fields in the pdo_stmt_t structure.

PDO does not process any statement options on the driver's behalf before calling the preparer function. It is your responsibility to process them before you return, raising an error for any unknown options that are passed.

One very important responsibility of this function is the processing of SQL statement parameters. At the time of this call, PDO does not know if your driver supports binding parameters into prepared statements, nor does it know if it supports named or positional parameter naming conventions.

Your driver is responsible for setting stmt->supports_placeholders as appropriate for the underlying database. This may involve some run-time determination on the part of your driver, if this setting depends on the version of the database server to which it is connected. If your driver doesn't directly support both named and positional parameter conventions, you should use the pdo_parse_params() API to have PDO rewrite the query to take advantage of the support provided by your database.

Exemple #2 Using pdo_parse_params

int ret;
    char *nsql = NULL;
    int nsql_len = 0;

    /* before we prepare, we need to peek at the query; if it uses named parameters,
     * we want PDO to rewrite them for us */
    stmt->supports_placeholders = PDO_PLACEHOLDER_POSITIONAL;
    ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);

    if (ret == 1) {
        /* query was re-written */
        sql = nsql;
    } else if (ret == -1) {
        /* couldn't grok it */
        strcpy(dbh->error_code, stmt->error_code);
        return 0;
    }

    /* now proceed to prepare the query in "sql" */

Possible values for supports_placeholders are: PDO_PLACEHOLDER_NAMED, PDO_PLACEHOLDER_POSITIONAL and PDO_PLACEHOLDER_NONE. If the driver doesn't support prepare statements at all, then this function should simply allocate any state that it might need, and then return:

Exemple #3 Implementing preparer for drivers that don't support native prepared statements

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
    long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
{
    pdo_SKEL_db_handle *H = (pdo_SKEL_db_handle *)dbh->driver_data;
    pdo_SKEL_stmt *S = ecalloc(1, sizeof(pdo_SKEL_stmt));

    S->H = H;
    stmt->driver_data = S;
    stmt->methods = &SKEL_stmt_methods;
    stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;

    return 1;
}

This function returns 1 on success or 0 on failure.

SKEL_handle_doer

static long SKEL_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRMLS_DC)

This function will be called by PDO to execute a raw SQL statement. No pdo_stmt_t is created.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

This function returns 1 on success or 0 on failure.

SKEL_handle_quoter

static int SKEL_handle_quoter(pdo_dbh_t *dbh, const char *unquoted,
  int unquoted_len, char **quoted, int quoted_len, enum pdo_param_type param_type TSRMLS_DC)

This function will be called by PDO to turn an unquoted string into a quoted string for use in a query.

dbh

Pointer to the database handle initialized by the handle factory

unquoted

Pointer to a character string containing the string to be quoted.

unquoted_len

The length of the string to be quoted.

quoted

Pointer to the address where a pointer to the newly quoted string will be returned.

quoted_len

The length of the new string.

param_type

A driver specific hint for driver that have alternate quoting styles

This function is called in response to a call to PDO::quote() or when the driver has set supports_placeholder to PDO_PLACEHOLDER_NONE. The purpose is to quote a parameter when building SQL statements.

If your driver does not support native prepared statements, implementation of this function is required.

This function returns 1 if the quoting process reformatted the string, and 0 if it was not necessary to change the string. The original string will be used unchanged with a 0 return.

SKEL_handle_begin

static int SKEL_handle_begin(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to begin a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to begin a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_commit

static int SKEL_handle_commit(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to end a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to commit a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_rollback

static int SKEL_handle_rollback( pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to rollback a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to rollback a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_get_attribute

static int SKEL_handle_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value TSRMLS_DC)

This function will be called by PDO to retrieve a database attribute.

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

return_value

The returned value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to supply this function. PDO driver handles the PDO_ATTR_PERSISTENT, PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_set_attribute

static int SKEL_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to set a database attribute, usually in response to a script calling PDO::setAttribute().

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

val

The new value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to provide this function if it does not need to support additional attributes. The PDO driver handles the PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_last_id

static char * SKEL_handle_last_id(pdo_dbh_t *dbh, const char *name, unsigned int len TSRMLS_DC)

This function will be called by PDO to retrieve the ID of the last inserted row.

dbh

Pointer to the database handle initialized by the handle factory

name

string representing a table or sequence name.

len

the length of the name parameter.

This function returns a character string containing the id of the last inserted row on success or NULL on failure. This is an optional function.

SKEL_check_liveness

static int SKEL_check_liveness(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to test whether or not a persistent connection to a database is alive and ready for use.

dbh

Pointer to the database handle initialized by the handle factory

This function returns 1 if the database connection is alive and ready for use, otherwise it should return 0 to indicate failure or lack of support.

Note:

This is an optional function.

SKEL_get_driver_methods

static function_entry *SKEL_get_driver_methods(pdo_dbh_t *dbh, int kind TSRMLS_DC)

This function will be called by PDO in response to a call to any method that is not a part of either the PDO or PDOStatement classes. It's purpose is to allow the driver to provide additional driver specific methods to those classes.

dbh

Pointer to the database handle initialized by the handle factory

kind

One of the following:

PDO_DBH_DRIVER_METHOD_KIND_DBH

Set when the method call was attempted on an instance of the PDO class. The driver should return a pointer a function_entry table for any methods it wants to add to that class, or NULL if there are none.

PDO_DBH_DRIVER_METHOD_KIND_STMT

Set when the method call was attempted on an instance of the PDOStatement class. The driver should return a pointer to a function_entry table for any methods it wants to add to that class, or NULL if there are none.

This function returns a pointer to the function_entry table requested, or NULL there are no driver specific methods.

SKEL_handle_factory

static int SKEL_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC)

This function will be called by PDO to create a database handle. For most databases this involves establishing a connection to the database. In some cases, a persistent connection may be requested, in other cases connection pooling may be requested. All of these are database/driver dependent.

dbh

Pointer to the database handle initialized by the handle factory

driver_options

An array of driver options, keyed by integer option number. See Database and Statement Attributes Table for a list of possible attributes.

This function should fill in the passed database handle structure with its driver specific information on success and return 1, otherwise it should return 0 to indicate failure.

PDO processes the AUTOCOMMIT and PERSISTENT driver options before calling the handle_factory. It is the handle factory's responsibility to process other options.

Driver method table

A static structure of type pdo_dbh_methods named SKEL_methods must be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

pdo_SKEL_driver

A structure of type pdo_driver_t named pdo_SKEL_driver should be declared. The PDO_DRIVER_HEADER(SKEL) macro should be used to declare the header and the function pointer to the handle factory function should set.

SKEL_statement.c: Statement implementation

This unit implements all of the database statement handling methods that support the PDO statement object.

SKEL_stmt_dtor

static int SKEL_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to destroy a previously constructed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This should do whatever is necessary to free up any driver specific storage allocated for the statement. The return value from this function is ignored.

SKEL_stmt_execute

static int SKEL_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to execute the prepared SQL statement in the passed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_fetch

static int SKEL_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori,
   long offset TSRMLS_DC)

This function will be called by PDO to fetch a row from a previously executed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

ori

One of PDO_FETCH_ORI_xxx which will determine which row will be fetched.

offset

If ori is set to PDO_FETCH_ORI_ABS or PDO_FETCH_ORI_REL, offset represents the row desired or the row relative to the current position, respectively. Otherwise, this value is ignored.

The results of this fetch are driver dependent and the data is usually stored in the driver_data member of the pdo_stmt_t object. The ori and offset parameters are only meaningful if the statement represents a scrollable cursor. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_param_hook

static int SKEL_stmt_param_hook(pdo_stmt_t *stmt,
  struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC)

This function will be called by PDO for handling of both bound parameters and bound columns.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

param

The structure describing either a statement parameter or a bound column.

event_type

The type of event to occur for this parameter, one of the following:

PDO_PARAM_EVT_ALLOC

Called when PDO allocates the binding. Occurs as part of PDOStatement::bindParam(), PDOStatement::bindValue() or as part of an implicit bind when calling PDOStatement::execute(). This is your opportunity to take some action at this point; drivers that implement native prepared statements will typically want to query the parameter information, reconcile the type with that requested by the script, allocate an appropriately sized buffer and then bind the parameter to that buffer. You should not rely on the type or value of the zval at param->parameter at this point in time.

PDO_PARAM_EVT_FREE

Called once per parameter as part of cleanup. You should release any resources associated with that parameter now.

PDO_PARAM_EXEC_PRE

Called once for each parameter immediately before calling SKEL_stmt_execute; take this opportunity to make any final adjustments ready for execution. In particular, you should note that variables bound via PDOStatement::bindParam() are only legal to touch now, and not any sooner.

PDO_PARAM_EXEC_POST

Called once for each parameter immediately after calling SKEL_stmt_execute; take this opportunity to make any post-execution actions that might be required by your driver.

PDO_PARAM_FETCH_PRE

Called once for each parameter immediately prior to calling SKEL_stmt_fetch.

PDO_PARAM_FETCH_POST

Called once for each parameter immediately after calling SKEL_stmt_fetch.

This hook will be called for each bound parameter and bound column in the statement. For ALLOC and FREE events, a single call will be made for each parameter or column. The param structure contains a driver_data field that the driver can use to store implementation specific information about each of the parameters.

For all other events, PDO may call you multiple times as the script issues PDOStatement::execute() and PDOStatement::fetch() calls.

If this is a bound parameter, the is_param flag in the param structure is set, otherwise the param structure refers to a bound column.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_describe_col

static int SKEL_stmt_describe_col(pdo_stmt_t *stmt, int colno TSRMLS_DC)

This function will be called by PDO to query information about a particular column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

The driver should populate the pdo_stmt_t member columns(colno) with the appropriate information. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_get_col_data

static int SKEL_stmt_get_col_data(pdo_stmt_t *stmt, int colno,
  char **ptr, unsigned long *len, int *caller_frees TSRMLS_DC)

This function will be called by PDO to retrieve data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

ptr

Pointer to the retrieved data.

len

The length of the data pointed to by ptr.

caller_frees

If set, ptr should point to emalloc'd memory and the main PDO driver will free it as soon as it is done with it. Otherwise, it will be the responsibility of the driver to free any allocated memory as a result of this call.

The driver should return the resultant data and length of that data in the ptr and len variables respectively. It should be noted that the main PDO driver expects the driver to manage the lifetime of the data. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_set_attr

static int SKEL_stmt_set_attr(pdo_stmt_t *stmt, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to allow the setting of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

val

The new value for the attribute.

This function is driver dependent and allows the driver the capability to set database specific attributes for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional settable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_attr

static int SKEL_stmt_get_attr(pdo_stmt_t *stmt, long attr, zval
   *return_value TSRMLS_DC)

This function will be called by PDO to allow the retrieval of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

return_value

The returned value for the attribute.

This function is driver dependent and allows the driver the capability to retrieve a previously set database specific attribute for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional gettable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_col_meta

static int SKEL_stmt_get_col_meta(pdo_stmt_t *stmt, int colno,
   zval *return_value TSRMLS_DC)
Avertissement

This function is not well defined and is subject to change.

This function will be called by PDO to retrieve meta data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number for which data is to be retrieved.

return_value

Holds the returned meta data.

The driver author should consult the documentation for this function that can be found in the php_pdo_driver.h header as this will be the most current. This function returns 1 for success or 0 in the event of failure. The database driver does not need to provide this function.

Statement handling method table

A static structure of type pdo_stmt_methods named SKEL_stmt_methods should be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.



Building

The build process is designed to work with PEAR (see » http://pear.php.net/ for more information about PEAR). There are two files that are used to assist in configuring your package for building. The first is config.m4 which is the autoconf configuration file for all platforms except Win32. The second is config.w32 which is a build configuration file for use on Win32. Skeleton files for these are built for you when you first set up your project. You then need to customize them to fit the needs of your project. Once you've customized your config files, you can build your driver using the following sequence of commands:

Before first build:

$ sudo pecl install PDO

For each build:

$ cd pdo_SKEL
$ phpize
$ ./configure
$ make
$ sudo make install

The process can then be repeated as necessary during the development process.



Testing

PDO has a set of "core" tests that all drivers should pass before being released. They're designed to run from the PHP source distribution, so running the tests for your driver requires moving things around a bit. The suggested procedure is to obtain the latest PHP 5.1 snapshot and perform the following step:

$ cp -r pdo_SKEL /path/to/php-5.1/ext

This will allow the test harness to run your tests. The next thing you need to do is create a test that will redirect into the PDO common core tests. The convention is to name this file common.phpt; it should be placed in the tests subdirectory that was created by ext_skel when you created your extension skeleton. The content of this file should look something like the following:

--TEST--
SKEL
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_SKEL')) print 'skip'; ?>
--REDIRECTTEST--
if (false !== getenv('PDO_SKEL_TEST_DSN')) {
# user set them from their shell
   $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN');
   $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER');
   $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS');
   if (false !== getenv('PDO_SKEL_TEST_ATTR')) {
      $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR');
   }
   return $config;
}
return array(
   'ENV' => array(
           'PDOTEST_DSN' => 'SKEL:dsn',
           'PDOTEST_USER' => 'username',
           'PDOTEST_PASS' => 'password'
       ),
   'TESTS' => 'ext/pdo/tests'
   );

This will cause the common core tests to be run, passing the values of PDOTEST_DSN, PDOTEST_USER and PDOTEST_PASS to the PDO constructor as the dsn, username and password parameters. It will first check the environment, so that appropriate values can be passed in when the test harness is run, rather than hard-coding the database credentials into the test file.

The test harness can be invoked as follows:

$ cd /path/to/php-5.1
$ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \
 PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test
 


Packaging and distribution

Creating a package

PDO drivers are released via PECL; all the usual rules for PECL extensions apply. Packaging is accomplished by creating a valid package.xml file and then running:

$ pecl package

This will create a tarball named PDO_SKEL-X.Y.Z.tgz.

Before releasing the package, you should test that it builds correctly; if you've made a mistake in your config.m4 or package.xml files, the package may not function correctly. You can test the build, without installing anything, using the following invocation:

$ pecl build package.xml

Once this is proven to work, you can test installation:

$ pecl package
$ sudo pecl install PDO_SKEL-X.Y.X.tgz

Full details about package.xml can be found in the PEAR Programmer's documentation (» http://pear.php.net/manual/).

Releasing the package

A PDO driver is released via the PHP Extension Community Library (PECL). Information about PECL can be found at » http://pecl.php.net/.



pdo_dbh_t definition

All fields should be treated as read-only by the driver, unless explicitly stated otherwise.

pdo_dbh_t

/* represents a connection to a database */
struct _pdo_dbh_t {
    /* driver specific methods */
    struct pdo_dbh_methods *methods;
*
/* driver specific data */
    void *driver_data;
**
/* credentials */
    char *username, *password;
***
/* if true, then data stored and pointed at by this handle must all be
     * persistently allocated */
    unsigned is_persistent:1;
****
/* if true, driver should act as though a COMMIT were executed between
     * each executed statement; otherwise, COMMIT must be carried out manually
     * */
    unsigned auto_commit:1;
*****
/* if true, the driver requires that memory be allocated explicitly for
     * the columns that are returned */
    unsigned alloc_own_columns:1;
******
/* if true, commit or rollBack is allowed to be called */
    unsigned in_txn:1;                  

    /* max length a single character can become after correct quoting */
    unsigned max_escaped_char_length:3;
*******
/* data source string used to open this handle */
    const char *data_source;
********
unsigned long data_source_len;

    /* the global error code. */
    pdo_error_type error_code;
*********
enum pdo_case_conversion native_case
**********
, desired_case;
};
*

The driver must set this during SKEL_handle_factory().

**

This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.

***

The username and password that were passed into the PDO constructor. The driver should use these values when it initiates a connection to the database.

****

If this is set to 1, then any data that is referenced by the dbh, including whatever structure your driver allocates, MUST be allocated persistently. This is easy to achieve; rather than using the usual emalloc() simply use pemalloc() and pass the value of this flag as the last parameter. Failure to use the appropriate kind of memory can lead to serious memory faults, resulting (in the best case) a hard crash, and in the worst case, an exploitable memory problem.

If, for whatever reason, your driver is not suitable to run persistently, you MUST check this flag in your SKEL_handle_factory() and raise an appropriate error.

*****

You should check this value in your SKEL_handle_doer() and SKEL_stmt_execute() functions; if it evaluates to true, you must attempt to commit the query now. Most database implementations offer an auto-commit mode that handles this automatically.

******

If your database client library API operates by fetching data into a caller-supplied buffer, you should set this flag to 1 during your SKEL_handle_factory(). When set, PDO will call your SKEL_stmt_describer() earlier than it would otherwise. This early call allows you to determine those buffer sizes and issue appropriate calls to the database client library.

If your database client library API simply returns pointers to its own internal buffers for you to copy after each fetch call, you should leave this value set to 0.

*******

If your driver doesn't support native prepared statements (supports_placeholders is set to PDO_PLACEHOLDER_NONE), you must set this value to the maximum length that can be taken up by a single character when it is quoted by your SKEL_handle_quoter() function. This value is used to calculate the amount of buffer space required when PDO executes the statement.

********

This holds the value of the DSN that was passed into the PDO constructor. If your driver implementation needed to modify the DSN for whatever reason, it should update this member during SKEL_handle_factory(). Modifying this member should be avoided. If you do change it, you must ensure that data_source_len is also correct.

*********

Whenever an error occurs during a call to one of your driver methods, you should set this member to the SQLSTATE code that best describes the error and return an error. In this HOW-TO, the suggested practice is to call SKEL_handle_error() when an error is detected, and have it set the error code.

**********

Your driver should set this during SKEL_handle_factory(); the value should reflect how the database returns the names of the columns in result sets. If the name matches the case that was used in the query, set it to PDO_CASE_NATURAL (this is actually the default). If the column names are always returned in upper case, set it to PDO_CASE_UPPER. If the column names are always returned in lower case, set it to PDO_CASE_LOWER. The value you set is used to determine if PDO should perform case folding when the user sets the PDO_ATTR_CASE attribute.



pdo_stmt_t definition

All fields should be treated as read-only unless explicitly stated otherwise.

pdo_stmt_t

/* represents a prepared statement */
struct _pdo_stmt_t {
    /* driver specifics */
    struct pdo_stmt_methods *methods;
*
void *driver_data;
**
/* if true, we've already successfully executed this statement at least
     * once */
    unsigned executed:1;
***
/* if true, the statement supports placeholders and can implement
     * bindParam() for its prepared statements, if false, PDO should
     * emulate prepare and bind on its behalf */
    unsigned supports_placeholders:2;
****
/* the number of columns in the result set; not valid until after
     * the statement has been executed at least once.  In some cases, might
     * not be valid until fetch (at the driver level) has been called at least once.
     * */
    int column_count;
*****
struct pdo_column_data *columns;
******
/* points at the dbh that this statement was prepared on */
    pdo_dbh_t *dbh;

    /* keep track of bound input parameters.  Some drivers support
     * input/output parameters, but you can't rely on that working */
    HashTable *bound_params;
    /* When rewriting from named to positional, this maps positions to names */
    HashTable *bound_param_map; 
    /* keep track of PHP variables bound to named (or positional) columns
     * in the result set */
    HashTable *bound_columns;

    /* not always meaningful */
    long row_count;

    /* used to hold the statement's current query */
    char *query_string;
    int query_stringlen;

    /* the copy of the query with expanded binds ONLY for emulated-prepare drivers */
    char *active_query_string;
    int active_query_stringlen;

    /* the cursor specific error code. */
    pdo_error_type error_code;

    /* used by the query parser for driver specific
     * parameter naming (see pgsql driver for example) */
    const char *named_rewrite_template;
};
*

The driver must set this during SKEL_handle_preparer().

**

This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.

***

This is set by PDO after the statement has been executed for the first time. Your driver can inspect this value to determine if it can skip one-time actions as an optimization.

****

Discussed in more detail in SKEL_handle_preparer.

*****

Your driver is responsible for setting this field to the number of columns available in a result set. This is usually set during SKEL_stmt_execute() but with some database implementations, the column count may not be available until SKEL_stmt_fetch() has been called at least once. Drivers that implement SKEL_stmt_next_rowset() should update the column count when a new rowset is available.

******

PDO will allocate this field based on the value that you set for the column count. You are responsible for populating each column during SKEL_stmt_describe(). You must set the precision, maxlen, name, namelen and param_type members for each column. The name is expected to be allocated using emalloc(); PDO will call efree() at the appropriate time.



Constants

Database and Statement Attributes Table

Attribute

Valid value(s)

PDO_ATTR_AUTOCOMMIT

BOOL

TRUE if autocommit is set, FALSE otherwise.

dbh->auto_commit contains value. Processed by PDO directly.

PDO_ATTR_PREFETCH

LONG

Value of the prefetch size in drivers that support it.

PDO_ATTR_TIMEOUT

LONG

How long to wait for a db operation before timing out.

PDO_ATTR_ERRMODE

LONG

Processed and handled by PDO

PDO_ATTR_SERVER_VERSION

STRING

The "human-readable" string representing the Server/Version this driver is currently connected to.

PDO_ATTR_CLIENT_VERSION

STRING

The "human-readable" string representing the Client/Version this driver supports.

PDO_ATTR_SERVER_INFO

STRING

The "human-readable" description of the Server.

PDO_ATTR_CONNECTION_STATUS

LONG

Values not yet defined

PDO_ATTR_CASE

LONG

Processed and handled by PDO.

PDO_ATTR_CURSOR_NAME

STRING

String representing the name for a database cursor for use in "where current in <name>" SQL statements.

PDO_ATTR_CURSOR

LONG

PDO_CURSOR_FWDONLY

Forward only cursor

PDO_CURSOR_SCROLL

Scrollable cursor

The values for the attributes above are all defined in terms of the Zend API. The Zend API contains macros that can be used to convert a *zval to a value. These macros are defined in the Zend header file, zend_API.h in the Zend directory of your PHP build directory. Some of these attributes can be used with the statement attribute handlers such as the PDO_ATTR_CURSOR and PDO_ATTR_CURSOR_NAME. See the statement attribute handling functions for more information.



Error handling

Error handling is implemented using a hand-shaking protocol between PDO and the database driver code. The database driver code signals PDO that an error has occurred via a failure (0) return from any of the interface functions. If a zero is returned, set the field error_code in the control block appropriate to the context (either the pdo_dbh_t or pdo_stmt_t block). In practice, it is probably a good idea to set the field in both blocks to the same value to ensure the correct one is getting used.

The error_mode field is a six-byte field containing a 5 character ASCIIZ SQLSTATE identifier code. This code drives the error message process. The SQLSTATE code is used to look up an error message in the internal PDO error message table (see pdo_sqlstate.c for a list of error codes and their messages). If the code is not known to PDO, a default "Unknown Message" value will be used.

In addition to the SQLSTATE code and error message, PDO will call the driver-specific fetch_err() routine to obtain supplemental data for the particular error condition. This routine is passed an array into which the driver may place additional information. This array has slot positions assigned to particular types of supplemental info:

  1. A native error code. This will frequently be an error code obtained from the database API.

  2. A descriptive string. This string can contain any additional information related to the failure. Database drivers typically include information such as an error message, code location of the failure, and any additional descriptive information the driver developer feels worthy of inclusion. It is generally a good idea to include all diagnostic information obtainable from the database interface at the time of the failure. For driver-detected errors (such as memory allocation problems), the driver developer can define whatever error information that seems appropriate.




Extension FAQs



Zend Engine 2 API reference



Zend Engine 2 opcode list

Sommaire

Opcodes

This page lists and partially documents all the opcodes generated by Zend Engine 2 when it parses PHP files. Opcodes may be dumped for a given PHP file using the vld extension (see » http://pecl.php.net/package/vld).


Opcodes

Sommaire


Opcode list

Opcode list
Number Name Has sample code?
0NOPyes
1ADDyes
2SUByes
3MULyes
4DIVyes
5MODyes
6SLyes
7SRyes
8CONCATyes
9BW_ORyes
10BW_ANDyes
11BW_XORyes
12BW_NOTyes
13BOOL_NOTyes
14BOOL_XORyes
15IS_IDENTICALyes
16IS_NOT_IDENTICALyes
17IS_EQUALyes
18IS_NOT_EQUALyes
19IS_SMALLERyes
20IS_SMALLER_OR_EQUALyes
21CASTyes
22QM_ASSIGNyes
23ASSIGN_ADDyes
24ASSIGN_SUByes
25ASSIGN_MULyes
26ASSIGN_DIVyes
27ASSIGN_MODyes
28ASSIGN_SLyes
29ASSIGN_SRyes
30ASSIGN_CONCATyes
31ASSIGN_BW_ORyes
32ASSIGN_BW_ANDyes
33ASSIGN_BW_XORyes
34PRE_INCyes
35PRE_DECyes
36POST_INCyes
37POST_DECyes
38ASSIGNyes
39ASSIGN_REFyes
40ECHOyes
41PRINTyes
42not documentedno
43JMPZyes
44JMPNZyes
45JMPZNZyes
46JMPZ_EXyes
47JMPNZ_EXyes
48CASEyes
49SWITCH_FREEyes
50BRKyes
51not documentedno
52BOOLyes
53INIT_STRINGyes
54ADD_CHARyes
55ADD_STRINGyes
56ADD_VARyes
57BEGIN_SILENCEyes
58END_SILENCEyes
59INIT_FCALL_BY_NAMEyes
60DO_FCALLyes
61DO_FCALL_BY_NAMEyes
62RETURNyes
63RECVyes
64RECV_INITyes
65SEND_VALyes
66SEND_VARyes
67SEND_REFyes
68NEWyes
69not documentedno
70FREEyes
71INIT_ARRAYyes
72ADD_ARRAY_ELEMENTyes
73INCLUDE_OR_EVALyes
74UNSET_VARyes
75UNSET_DIMyes
76UNSET_OBJyes
77FE_RESETyes
78FE_FETCHyes
79EXITyes
80FETCH_Ryes
81FETCH_DIM_Ryes
82FETCH_OBJ_Ryes
83FETCH_Wyes
84FETCH_DIM_Wyes
85FETCH_OBJ_Wyes
86FETCH_RWyes
87FETCH_DIM_RWyes
88FETCH_OBJ_RWyes
89FETCH_ISyes
90FETCH_DIM_ISno
91FETCH_OBJ_ISno
92FETCH_FUNC_ARGyes
93FETCH_DIM_FUNC_ARGyes
94FETCH_OBJ_FUNC_ARGyes
95FETCH_UNSETno
96FETCH_DIM_UNSETno
97FETCH_OBJ_UNSETno
98FETCH_DIM_TMP_VARyes
99FETCH_CONSTANTyes
100not documentedno
101EXT_STMTno
102EXT_FCALL_BEGINno
103EXT_FCALL_ENDno
104EXT_NOPno
105TICKSyes
106SEND_VAR_NO_REFno
107CATCHyes
108THROWyes
109FETCH_CLASSyes
110CLONEyes
111not documentedno
112INIT_METHOD_CALLyes
113 INIT_STATIC_METHOD_CALL yes
114ISSET_ISEMPTY_VARyes
115ISSET_ISEMPTY_DIM_OBJyes
116not documentedno
117not documentedno
118not documentedno
119not documentedno
120not documentedno
121not documentedno
122not documentedno
123not documentedno
124not documentedno
125not documentedno
126not documentedno
127not documentedno
128not documentedno
129not documentedno
130not documentedno
131not documentedno
132PRE_INC_OBJyes
133PRE_DEC_OBJyes
134POST_INC_OBJyes
135POST_DEC_OBJyes
136ASSIGN_OBJyes
137not documentedno
138INSTANCEOFyes
139DECLARE_CLASSyes
140 DECLARE_INHERITED_CLASS yes
141DECLARE_FUNCTIONyes
142RAISE_ABSTRACT_ERRORyes
143not documentedno
144ADD_INTERFACEno
145not documentedno
146VERIFY_ABSTRACT_CLASSno
147ASSIGN_DIMyes
148ISSET_ISEMPTY_PROP_OBJyes
149HANDLE_EXCEPTIONyes
150USER_OPCODEno
152ZEND_JMP_SETno
153ZEND_DECLARE_LAMBDA_FUNCTIONno


ADD

PHP code

<?php
/*
 * Adds "value1" to "value2" and stores the result into "result".
 * opcode number: 1
 */
echo 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 ADD   ~0 1,2
 1 ECHO     ~0
72 RETURN     1


ADD_ARRAY_ELEMENT

PHP code

<?php
/*
 * Add elem-value as an element to array-value
 * opcode number: 72
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 SEND_VAR     !0
 5 DO_FCALL  1  'print_r'
86 RETURN     1


ADD_CHAR

PHP code

<?php
/*
 * add character value2 to string value1 and store in result
 * opcode number: 54
 */
echo "hello\ world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 ECHO     'hello%5C+world'
71 RETURN     1


ADD_INTERFACE

PHP code

<?php 
/*
 * 
 * opcode number: 144
 * No sample PHP yet */
?>


ADD_STRING

PHP code

<?php
/*
 * add string value2 to string value2 and store in result
 * opcode number: 55
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ADD_STRING   ~0 'hello'
 1 ADD_VAR   ~0 ~0,!0
 2 ADD_STRING   ~0 ~0,'+world'
 3 ECHO     ~0
74 RETURN     1


ADD_VAR

PHP code

<?php
/*
 * add contents of variable in value2 to string value1 and store in result
 * opcode number: 56
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ADD_STRING   ~0 'hello'
 1 ADD_VAR   ~0 ~0,!0
 2 ADD_STRING   ~0 ~0,'+world'
 3 ECHO     ~0
74 RETURN     1


ASSIGN

PHP code

<?php
/*
 * assigns value1 to result
 * opcode number: 38
 */
$a=1;
$a='a';
$a=new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN     !0,1
71 ASSIGN     !0,'a'
82 ZEND_FETCH_CLASS   :2 'A'
 3 NEW   $3 :2
 4 DO_FCALL_BY_NAME  0   
 5 ASSIGN     !0,$3
96 RETURN     1


ASSIGN_ADD

PHP code

<?php
/*
 * Add value1 to value2 and store in variable indicated by value1
 * opcode number: 23
 */
$a+=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_ADD     !0,3
71 RETURN     1


ASSIGN_BW_AND

PHP code

<?php
/*
 * Performs binary AND on result and value1 and stores in variable indicated by result.
 * opcode number: 32
 */
$a &= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_BW_AND     !0,64
71 RETURN     1


ASSIGN_BW_OR

PHP code

<?php
/*
 * Performs binary OR on result and value1 and stores in variable indicated by result.
 * opcode number: 31
 */
$a |= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_BW_OR     !0,64
71 RETURN     1


ASSIGN_BW_XOR

PHP code

<?php
/*
 * Performs binary XOR on result and value1and stores in variable indicated by result.
 * opcode number: 33
 */
$a ^= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_BW_XOR     !0,64
71 RETURN     1


ASSIGN_CONCAT

PHP code

<?php
/*
 * Concats string values result and value1 and store in variable indicated by result
 * opcode number: 30
 */
$a .= 'z';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_CONCAT     !0,'z'
71 RETURN     1


ASSIGN_DIM

PHP code

<?php
/*
 * 
 * opcode number: 147
 */
$b 1;
$a[1][2] = $b;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b, !1=$a

line#op fetchextreturn operands
60 ASSIGN     !0,1
71 FETCH_DIM_W   $1 !1,1
 2 ZEND_ASSIGN_DIM     $1,2
 3 ZEND_OP_DATA     !0,$3
84 RETURN     1


ASSIGN_DIV

PHP code

<?php
/*
 * Divide result by value1and store in variable indicated by result.
 * opcode number: 26
 */
$a/=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_DIV     !0,3
71 RETURN     1


ASSIGN_MOD

PHP code

<?php
/*
 * Perform result mod value1 and store in variable indicated by result
 * opcode number: 27
 */
$a %= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_MOD     !0,3
71 RETURN     1


ASSIGN_MUL

PHP code

<?php
/*
 * Multiply result by value1 and store in variable indicated by result
 * opcode number: 25
 */
$a*=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_MUL     !0,3
71 RETURN     1


ASSIGN_OBJ

PHP code

<?php
/*
 * 
 * opcode number: 136
 */
$obj->$otherobj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$otherobj

line#op fetchextreturn operands
60 ZEND_ASSIGN_OBJ     !0,'a'
 1 ZEND_OP_DATA     !1
72 RETURN     1


ASSIGN_REF

PHP code

<?php
/*
 * indicates that variable indicated by value1 is to be treated in the global scope for the remainder of the current scope.
 * opcode number: 39
 */
global $a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 FETCH_Wgloballock  $0 'a'
 1 ASSIGN_REF     !0,$0
72 RETURN     1


ASSIGN_SL

PHP code

<?php
/*
 * Shift result by value1 bits to left and store in variable indicated by result
 * opcode number: 28
 */
$a <<= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_SL     !0,3
71 RETURN     1


ASSIGN_SR

PHP code

<?php
/*
 * Shift result by value1 bits to right and store in variable indicated by result
 * opcode number: 29
 */
$a >>= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_SR     !0,3
71 RETURN     1


ASSIGN_SUB

PHP code

<?php
/*
 * Subtract value1 from value2 and store in variable indicated by value1
 * opcode number: 24
 */
$a-=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN_SUB     !0,3
71 RETURN     1


BEGIN_SILENCE

PHP code

<?php
/*
 * prepare to perform function call without displaying error messages
 * opcode number: 57
 */
/* Intentional file error */
$my_file = @file ('non_existent_file') or
   die (
"error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line#op fetchextreturn operands
70 BEGIN_SILENCE   ~0  
 1 SEND_VAL     'non_existent_file'
 2 DO_FCALL  1  'file'
 3 END_SILENCE     ~0
 4 ASSIGN   $2 !0,$1
 5 JMPNZ_EX   ~3 $2,->11
86 ADD_STRING   ~4 'error%3A%27'
 7 ADD_VAR   ~4 ~4,!1
 8 ADD_CHAR   ~4 ~4,39
 9 EXIT     ~4
 10 BOOL   ~3 true
 11 FREE     ~3
912 RETURN     1


BOOL

PHP code

<?php
/*
 * convert value1 to boolean and store in result??????????
 * opcode number: 52
 */
if (|| || 1) echo "foo";
//$a = true;
//if($a) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 JMPNZ_EX   ~0 1,->2
 1 BOOL   ~0 2
 2 JMPNZ_EX   ~0 ~0,->4
 3 BOOL   ~0 1
 4 JMPZ     ~0,->7
 5 ECHO     'foo'
 6 JMP     ->7
97 RETURN     1


BOOL_NOT

PHP code

<?php
/*
 * Boolean (logical) not of "value"
 * opcode number: 13
 */
echo !1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BOOL_NOT   ~0 1
 1 ECHO     ~0
72 RETURN     1


BOOL_XOR

PHP code

<?php
/*
 * Boolean (logical) xor of value1
 * opcode number: 14
 */
echo xor 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BOOL_XOR   ~0 1,2
 1 ECHO     ~0
72 RETURN     1


BRK

PHP code

<?php
/*
 * ???  End of a case block exists the current switch block.  Followed by JMP?
 * opcode number: 50
 */
$x 0;
while(
1) {
    if(
$x == 0) break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line#op fetchextreturn operands
60 ASSIGN     !0,0
71 JMPZ     1,->7
82 IS_EQUAL   ~1 !0,0
 3 JMPZ     ~1,->6
 4 BRK     1
 5 JMP     ->6
96 JMP     ->1
107 RETURN     1


BW_AND

PHP code

<?php
/*
 * Bit-wise and of value1 and value2
 * opcode number: 10
 */
echo 1&2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BW_AND   ~0 1,2
 1 ECHO     ~0
72 RETURN     1


BW_NOT

PHP code

<?php
/*
 * Bit-wise not of "value"
 * opcode number: 12
 */
echo ~15;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BW_NOT   ~0 15
 1 ECHO     ~0
72 RETURN     1


BW_OR

PHP code

<?php
/*
 * Bit-wise or of value1 and value2
 * opcode number: 9
 */
echo 1|2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BW_OR   ~0 1,2
 1 ECHO     ~0
72 RETURN     1


BW_XOR

PHP code

<?php
/*
 * Bit-wise xor of value1 and value2
 * opcode number: 11
 */
echo 1^2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BW_XOR   ~0 1,2
 1 ECHO     ~0
72 RETURN     1


CASE

PHP code

<?php
/*
 * Set result to true if value1 equals value2.  The value2 must be a constant value?
 * opcode number: 48
 */
$i=0;
switch (
$i) {
   case 
0:
         echo 
"i=0";
         break;
   case 
1:
         echo 
"i=1";
         break;
   case 
2:
         echo 
"i=2";
         break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line#op fetchextreturn operands
60 ASSIGN     !0,0
81 CASE   ~1 !0,0
 2 JMPZ     ~1,->6
93 ECHO     'i%3D0'
104 BRK     1
115 JMP     ->8
 6 CASE   ~1 !0,1
 7 JMPZ     ~1,->11
128 ECHO     'i%3D1'
139 BRK     1
1410 JMP     ->13
 11 CASE   ~1 !0,2
 12 JMPZ     ~1,->16
1513 ECHO     'i%3D2'
1614 BRK     1
1715 JMP     ->16
1816 RETURN     1


CAST

PHP code

<?php
/*
 * casts value1 as type value2 (?? Not certain about arguments ??)
 * opcode number: 21
 */
echo (int)1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 CAST   ~0 1
 1 ECHO     ~0
72 RETURN     1


CATCH

PHP code

<?php
/*
 * 
 * opcode number: 107
 */
try {
    
$error 'Always throw this error';
    throw new 
Exception($error);

    
// Code following an exception is not executed.
    
echo 'Never executed';

} catch (
Exception $e) {
    echo 
'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line#op fetchextreturn operands
70 ASSIGN     !0,'Always+throw+this+error'
81 ZEND_FETCH_CLASS   :1 'Exception'
 2 NEW   $2 :1
 3 SEND_VAR     !0
 4 DO_FCALL_BY_NAME  1   
 5 ZEND_THROW  0  $2
116 ECHO     'Never+executed'
137 JMP     ->15
 8 ZEND_FETCH_CLASS   :4 'Exception'
 9 ZEND_CATCH  15  $4,!1
1410 ECHO     'Caught+exception%3A+'
 11 ZEND_INIT_METHOD_CALL     !1,'getMessage'
 12 DO_FCALL_BY_NAME  0   
 13 ECHO     $6
 14 ECHO     '%0A'
1815 ECHO     'Hello+World'
1916 RETURN     1


CLONE

PHP code

<?php
/*
 * 
 * opcode number: 110
 */
$obj = new A();
$copy = clone $obj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$copy

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ZEND_CLONE   $4 !0
 5 ASSIGN     !1,$4
86 RETURN     1


CONCAT

PHP code

<?php
/*
 * Concats string values string1 and string2
 * opcode number: 8
 */
echo "hello" "world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 CONCAT   ~0 'hello','world'
 1 ECHO     ~0
72 RETURN     1


DECLARE_CLASS

PHP code

<?php
/*
 * Declare a class with the name of class-name as the implementation specified by ID.
 * opcode number: 139
 */
class {
    function 
methodA(){
        echo 
"hello world";
    }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
111 RETURN     1

Function name: methodA

Compiled variables: none

line#op fetchextreturn operands
80 ECHO     'hello+world'
91 RETURN     null


DECLARE_FUNCTION

PHP code

<?php
/*
 * 
 * opcode number: 141
 */
class A{
 function 
funcA(){
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
101 RETURN     1

Function name: funcA

Compiled variables: none

line#op fetchextreturn operands
80 RETURN     null


DECLARE_INHERITED_CLASS

PHP code

<?php
/*
 * 
 * opcode number: 140
 */
 
if($b){
 class 
Foo {
  public static 
$my_static 'foo';
  public function 
staticValue() {
    return 
self::$my_static;
  }
 }

 class 
Bar extends Foo {
  public function 
fooStatic() {
     echo 
parent::$my_static;
  }
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b

line#op fetchextreturn operands
60 JMPZ     !0,->5
71 ZEND_DECLARE_CLASS   $0 '%00foo%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be503b','foo'
142 ZEND_FETCH_CLASS   :1 'Foo'
 3 ZEND_DECLARE_INHERITED_CLASS   $2 '%00bar%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be50bc','bar'
194 JMP     ->5
205 RETURN     1

Function name: staticValue

Compiled variables: !0=$my_static

line#op fetchextreturn operands
100 ZEND_FETCH_CLASS      
 1 FETCH_Rstaticmember  $1 'my_static'
 2 RETURN     $1
113 RETURN     null

Function name: fooStatic

Compiled variables: !0=$my_static

line#op fetchextreturn operands
160 ZEND_FETCH_CLASS   :0  
 1 FETCH_Rstaticmember  $1 'my_static'
 2 ECHO     $1
173 RETURN     null


DIV

PHP code

<?php
/*
 * Divides "value1" by "value2" and stores the result into "result".
 * opcode number: 4
 */
echo 6/3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 DIV   ~0 6,3
 1 ECHO     ~0
72 RETURN     1


DO_FCALL

PHP code

<?php
/*
 * Call a function.  Following multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 60
 */
$a phpinfo();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 DO_FCALL  0  'phpinfo'
 1 ASSIGN     !0,$0
72 RETURN     1


DO_FCALL_BY_NAME

PHP code

<?php
/*
 * Call a function by name.  Following INIT_FCALL_BY_NAME and multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 61
 */
$x 'phpinfo';
$a $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ASSIGN     !0,'phpinfo'
71 INIT_FCALL_BY_NAME     !0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !1,$1
84 RETURN     1


ECHO

PHP code

<?php
/*
 * Dump text
 * opcode number: 40
 */
echo "hello world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 ECHO     'hello+world'
71 RETURN     1


END_SILENCE

PHP code

<?php
/*
 * no longer surpress error messages
 * opcode number: 58
 */
$my_file = @file ('non_existent_file') or
   die (
"error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line#op fetchextreturn operands
60 BEGIN_SILENCE   ~0  
 1 SEND_VAL     'non_existent_file'
 2 DO_FCALL  1  'file'
 3 END_SILENCE     ~0
 4 ASSIGN   $2 !0,$1
 5 JMPNZ_EX   ~3 $2,->11
76 ADD_STRING   ~4 'error%3A%27'
 7 ADD_VAR   ~4 ~4,!1
 8 ADD_CHAR   ~4 ~4,39
 9 EXIT     ~4
 10 BOOL   ~3 true
 11 FREE     ~3
812 RETURN     1


EXIT

PHP code

<?php
/*
 * Exit running after dumping "message".
 * opcode number: 79
 */
die("foobar");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 EXIT     'foobar'
71 RETURN     1


EXT_FCALL_BEGIN

PHP code

<?php 
/*
 * 
 * opcode number: 102
 * No sample PHP yet */
?>


EXT_FCALL_END

PHP code

<?php 
/*
 * 
 * opcode number: 103
 * No sample PHP yet */
?>


EXT_NOP

PHP code

<?php 
/*
 * 
 * opcode number: 104
 * No sample PHP yet */
?>


EXT_STMT

PHP code

<?php 
/*
 * 
 * opcode number: 101
 * No sample PHP yet */
?>


FETCH_CLASS

PHP code

<?php
/*
 * 
 * opcode number: 109
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 RETURN     1


FETCH_CONSTANT

PHP code

<?php
/*
 * Fetch the constant value bound to the specified name (name) and stores it into a variable (result).
 * opcode number: 99
 */
define("FOO""something");
echo 
FOO;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 SEND_VAL     'FOO'
 1 SEND_VAL     'something'
 2 DO_FCALL  2  'define'
73 FETCH_CONSTANT   ~1 'FOO'
 4 ECHO     ~1
85 RETURN     1


FETCH_DIM_FUNC_ARG

PHP code

<?php
/*
 * 
 * opcode number: 93
 */

function foo(&$x)
{
  print(
$x);
}

$x = array(012345);
$z "foo";

$z($x[0]);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$z

line#op fetchextreturn operands
70 NOP      
121 INIT_ARRAY   ~0 0
 2 ADD_ARRAY_ELEMENT   ~0 1
 3 ADD_ARRAY_ELEMENT   ~0 2
 4 ADD_ARRAY_ELEMENT   ~0 3
 5 ADD_ARRAY_ELEMENT   ~0 4
 6 ADD_ARRAY_ELEMENT   ~0 5
 7 ASSIGN     !0,~0
138 ASSIGN     !1,'foo'
159 INIT_FCALL_BY_NAME     !1
 10 FETCH_DIM_FUNC_ARG   $3 !0,0
 11 SEND_VAR     $3
 12 DO_FCALL_BY_NAME  1   
1713 RETURN     1

Function name: foo

Compiled variables: !0=$x

line#op fetchextreturn operands
70 RECV     1
91 PRINT   ~0 !0
 2 FREE     ~0
103 RETURN     null


FETCH_DIM_IS

PHP code

<?php 
/*
 * 
 * opcode number: 90
 * No sample PHP yet */
?>


FETCH_DIM_R

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Read-only?
 * opcode number: 81
 */
$x = array(1,2,3);
$a 'x';
echo $
$a[0];
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 ASSIGN     !1,'x'
85 FETCH_DIM_R   $3 !1,0
 6 FETCH_Rlocal  $4 $3
 7 ECHO     $4
98 RETURN     1


FETCH_DIM_RW

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".
 * opcode number: 87
 */
$x = array(1,2,3);
$a 'x';
$
$a[0]++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 ASSIGN     !1,'x'
85 FETCH_DIM_R   $3 !1,0
 6 FETCH_RWlocal  $4 $3
 7 POST_INC   ~5 $4
 8 FREE     ~5
99 RETURN     1


FETCH_DIM_TMP_VAR

PHP code

<?php
/*
 * Fetch an entry of an array from a temporal variable?
 * opcode number: 98
 */
list($x) = array("X");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 'X'
 1 FETCH_DIM_TMP_VAR   $1 ~0,0
 2 ASSIGN     !0,$1
 3 FREE     ~0
74 RETURN     1


FETCH_DIM_UNSET

PHP code

<?php 
/*
 * Fetch an entry of an array variable for the purpose of unset() operation.
 * opcode number: 96
 * No sample PHP yet */
?>


FETCH_DIM_W

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Write-only?
 * opcode number: 84
 */
$a 1;
while(
$a 0){
    
$a 0;
}
/*$input =array(1,2,3);
while (list($var,) = @each($input)){
    unset($$var);
}*/
/*$a = array(1,2,3);
$x = 'a';
$$x[0] = 1;*/

/*while ($b = each($a)) {
  print $b;
}*/


?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ASSIGN     !0,1
71 IS_SMALLER   ~1 0,!0
 2 JMPZ     ~1,->5
83 ASSIGN     !0,0
94 JMP     ->1
235 RETURN     1


FETCH_FUNC_ARG

PHP code

<?php
/*
 * 
 * opcode number: 92
 */
function foo($x)
{
}

$x 1;
$y "x";
$z "foo";

$z($$y);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$y, !2=$z

line#op fetchextreturn operands
60 NOP      
101 ASSIGN     !0,1
112 ASSIGN     !1,'x'
123 ASSIGN     !2,'foo'
144 INIT_FCALL_BY_NAME     !2
 5 FETCH_FUNC_ARGlocal  $3 !1
 6 SEND_VAR     $3
 7 DO_FCALL_BY_NAME  1   
168 RETURN     1

Function name: foo

Compiled variables: !0=$x

line#op fetchextreturn operands
60 RECV     1
81 RETURN     null


FETCH_IS

PHP code

<?php
/*
 * Fetch the value from variable which is to be used to test if it is set or not, through isset()/isempty().
 * opcode number: 89
 */
echo isset($_SESSION['userid']);
echo isset(
$_SESSION['userid'][1]);
echo isset(
$_SESSION->prop->prop);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 FETCH_IS   $0 '_SESSION'
 1 ZEND_ISSET_ISEMPTY_DIM_OBJ  1~1 $0,'userid'
 2 ECHO     ~1
73 FETCH_IS   $2 '_SESSION'
 4 FETCH_DIM_IS   $3 $2,'userid'
 5 ZEND_ISSET_ISEMPTY_DIM_OBJ  1~4 $3,1
 6 ECHO     ~4
87 FETCH_IS   $5 '_SESSION'
 8 FETCH_OBJ_IS   $6 $5,'prop'
 9 ZEND_ISSET_ISEMPTY_PROP_OBJ   ~7 $6,'prop'
 10 ECHO     ~7
911 RETURN     1


FETCH_OBJ_FUNC_ARG

PHP code

<?php
/*
 * 
 * opcode number: 94
 */
include './classA.php';

function 
foo(&$x)
{
  print(
$x);
}

$z "foo";

$obj = new A();
print 
$obj->num;
$z($obj->num);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$z, !1=$obj

line#op fetchextreturn operands
60 INCLUDE_OR_EVAL     '.%2FclassA.php',INCLUDE
81 NOP      
132 ASSIGN     !0,'foo'
153 ZEND_FETCH_CLASS   :2 'A'
 4 NEW   $3 :2
 5 DO_FCALL_BY_NAME  0   
 6 ASSIGN     !1,$3
167 FETCH_OBJ_R   $6 !1,'num'
 8 PRINT   ~7 $6
 9 FREE     ~7
1710 INIT_FCALL_BY_NAME     !0
 11 FETCH_OBJ_FUNC_ARG   $8 !1,'num'
 12 SEND_VAR     $8
 13 DO_FCALL_BY_NAME  1   
1914 RETURN     1

Function name: foo

Compiled variables: !0=$x

line#op fetchextreturn operands
80 RECV     1
101 PRINT   ~0 !0
 2 FREE     ~0
113 RETURN     null

Function name: foo

Compiled variables: !0=$x

line#op fetchextreturn operands
80 RECV     1
101 PRINT   ~0 !0
 2 FREE     ~0
113 RETURN     null


FETCH_OBJ_IS

PHP code

<?php 
/*
 * 
 * opcode number: 91
 * No sample PHP yet */
?>


FETCH_OBJ_R

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.  Read-only?
 * opcode number: 82
 */
$x = new A();
$a 'x';
echo $
$a->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ASSIGN     !1,'x'
85 FETCH_Rlocal  $5 !1
 6 FETCH_OBJ_R   $6 $5,'num'
 7 ECHO     $6
98 RETURN     1


FETCH_OBJ_RW

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.
 * opcode number: 88
 */
$x = new A();
$a 'x';
$
$a->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ASSIGN     !1,'x'
85 FETCH_RWlocal  $5 !1
 6 ZEND_POST_INC_OBJ   ~7 $5,'num'
 7 FREE     ~7
98 RETURN     1


FETCH_OBJ_UNSET

PHP code

<?php 
/*
 * Fetch a property of an object variable for the purpose of unset() operation.
 * opcode number: 97
 * No sample PHP yet */
?>


FETCH_OBJ_W

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.  Write-only?
 * opcode number: 85
 */
$x = new A();
$a 'x';
$
$a->num 1;;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ASSIGN     !1,'x'
85 FETCH_Wlocal  $5 !1
 6 ZEND_ASSIGN_OBJ     $5,'num'
 7 ZEND_OP_DATA     1
98 RETURN     1


FETCH_R

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Read-only?
 * opcode number: 80
 */
$x 1;
$a 'x';
echo $
$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ASSIGN     !0,1
71 ASSIGN     !1,'x'
82 FETCH_Rlocal  $2 !1
 3 ECHO     $2
94 RETURN     1


FETCH_RW

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?
 * opcode number: 86
 */
$x 1;
$a 'x';
$
$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ASSIGN     !0,1
71 ASSIGN     !1,'x'
82 FETCH_RWlocal  $2 !1
 3 POST_INC   ~3 $2
 4 FREE     ~3
95 RETURN     1


FETCH_UNSET

PHP code

<?php 
/*
 * Fetch a variable for the purpose of unset() operation.
 * opcode number: 95
 * No sample PHP yet */
?>


FETCH_W

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Write-only?
 * opcode number: 83
 */
$x 1;
$a 'x';
$
$a 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ASSIGN     !0,1
71 ASSIGN     !1,'x'
82 FETCH_Wlocal  $2 !1
 3 ASSIGN     $2,2
94 RETURN     1


FE_FETCH

PHP code

<?php
/*
 * Fetch an element from iterator.  If no element is available, jump to address.  Followed by OP_DATA?
 * opcode number: 78
 */
$a = array(1,2,3);
foreach(
$a as $num){
    print 
$num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 FE_RESET   $2 !0,->11
 5 FE_FETCH   $3 $2,->11
 6 ZEND_OP_DATA      
 7 ASSIGN     !1,$3
88 PRINT   ~5 !1
 9 FREE     ~5
910 JMP     ->5
 11 SWITCH_FREE     $2
1012 RETURN     1


FE_RESET

PHP code

<?php
/*
 * Initialize an iterator on array-value.  If the array is empty, jump to address.  Followed by FE_FETCH.
 * opcode number: 77
 */
$a = array(1,2,3);
foreach(
$a as $num){
    print 
$num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 FE_RESET   $2 !0,->11
 5 FE_FETCH   $3 $2,->11
 6 ZEND_OP_DATA      
 7 ASSIGN     !1,$3
88 PRINT   ~5 !1
 9 FREE     ~5
910 JMP     ->5
 11 SWITCH_FREE     $2
1012 RETURN     1


FREE

PHP code

<?php
/*
 * Release the allocated space of the value.
 * opcode number: 70
 */
 
print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 PRINT   ~0 'Hello+World'
 1 FREE     ~0
72 RETURN     1


HANDLE_EXCEPTION

PHP code

<?php
/*
 * 
 * opcode number: 149
 */
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 RETURN     1


INCLUDE_OR_EVAL

PHP code

<?php
/*
 * Include the file specified by filename and eval it.
 * opcode number: 73
 */
include("test.php");
eval(
"test.php");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 INCLUDE_OR_EVAL     'test.php',INCLUDE
71 INCLUDE_OR_EVAL     'test.php',EVAL
82 RETURN     1

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
20 DO_FCALL  0  'phpinfo'
31 RETURN     1


INIT_ARRAY

PHP code

<?php
/*
 * Allocate a new array with elem-value as the first element of the array.  Followed by ADD_ARRAY_ELEMENT.
 * opcode number: 71
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 SEND_VAR     !0
 5 DO_FCALL  1  'print_r'
86 RETURN     1


INIT_FCALL_BY_NAME

PHP code

<?php
/*
 * prepare for a function call to function value1
 * opcode number: 59
 */
$x 'phpinfo';
$a $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ASSIGN     !0,'phpinfo'
71 INIT_FCALL_BY_NAME     !0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !1,$1
84 RETURN     1


INIT_METHOD_CALL

PHP code

<?php
/*
 * Prepare for a method call.  Followed by DO_FCALL.
 * opcode number: 112
 */
class {
  var 
$num;
    function 
incrementNum(){
    
$num++;
  }
}

$obj = new A();
$obj->incrementNum();

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 NOP      
131 ZEND_FETCH_CLASS   :1 'A'
 2 NEW   $2 :1
 3 DO_FCALL_BY_NAME  0   
 4 ASSIGN     !0,$2
145 ZEND_INIT_METHOD_CALL     !0,'incrementNum'
 6 DO_FCALL_BY_NAME  0   
167 RETURN     1

Function name: incrementNum

Compiled variables: !0=$num

line#op fetchextreturn operands
90 POST_INC   ~0 !0
 1 FREE     ~0
102 RETURN     null


INIT_STATIC_METHOD_CALL

PHP code

<?php
/*
 * 
 * opcode number: 113
 */
class Foo {
    public static function 
aStaticMethod() {
            echo 
"hello world\n";
    }
}

Foo::aStaticMethod();
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
121 ZEND_INIT_STATIC_METHOD_CALL     'Foo','aStaticMethod'
 2 ZEND_OP_DATA     'foo%3A%3Aastaticmethod'
 3 DO_FCALL_BY_NAME  0   
134 RETURN     1

Function name: aStaticMethod

Compiled variables: none

line#op fetchextreturn operands
80 ECHO     'hello+world%0A'
91 RETURN     null


INIT_STRING

PHP code

<?php
/*
 * appears to create a string variable in result
 * opcode number: 53
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ADD_STRING   ~0 'hello'
 1 ADD_VAR   ~0 ~0,!0
 2 ADD_STRING   ~0 ~0,'+world'
 3 ECHO     ~0
74 RETURN     1


INSTANCEOF

PHP code

<?php
/*
 * 
 * opcode number: 138
 */
$obj = new A();

if (
$obj instanceof A) {
   echo 
'A';
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
84 ZEND_FETCH_CLASS   :4 'A'
 5 ZEND_INSTANCEOF   ~5 !0,$4
 6 JMPZ     ~5,->9
97 ECHO     'A'
108 JMP     ->9
119 RETURN     1


ISSET_ISEMPTY_DIM_OBJ

PHP code

<?php
/*
 * Tests if the entry of an array is set or not.
 * opcode number: 115
 */
if(isset($a[0])) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ZEND_ISSET_ISEMPTY_DIM_OBJ  1~0 !0,0
 1 JMPZ     ~0,->4
 2 RETURN     0
 3 JMP     ->4
74 RETURN     1


ISSET_ISEMPTY_PROP_OBJ

PHP code

<?php
/*
 * 
 * opcode number: 148
 */
$obj = new A();
if(empty(
$obj->num)) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ZEND_ISSET_ISEMPTY_PROP_OBJ   ~4 !0,'num'
 5 JMPZ     ~4,->8
 6 RETURN     0
 7 JMP     ->8
88 RETURN     1


ISSET_ISEMPTY_VAR

PHP code

<?php
/*
 * Tests if the value of a variable is set or not.
 * opcode number: 114
 */
if(isset($a)){ return 0;}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 ZEND_ISSET_ISEMPTY_VAR  5~0 !0
 1 JMPZ     ~0,->4
 2 RETURN     0
 3 JMP     ->4
74 RETURN     1


IS_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are equal
 * opcode number: 17
 */
echo (== 1);
echo (
== 'c');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 IS_EQUAL   ~0 1,1
 1 ECHO     ~0
72 IS_EQUAL   ~1 1,'c'
 3 ECHO     ~1
84 RETURN     1


IS_IDENTICAL

PHP code

<?php
/*
 * Compares value1 and value2 to see if they are equal AND have the same type
 * opcode number: 15
 */
echo (1===1);
echo (
1==='a');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 IS_IDENTICAL   ~0 1,1
 1 ECHO     ~0
72 IS_IDENTICAL   ~1 1,'a'
 3 ECHO     ~1
84 RETURN     1


IS_NOT_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are not equal
 * opcode number: 18
 */
echo (!= 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 IS_NOT_EQUAL   ~0 1,1
 1 ECHO     ~0
72 RETURN     1


IS_NOT_IDENTICAL

PHP code

<?php
/*
 * compares value1 and value2 to see if they are unequal or of different types
 * opcode number: 16
 */
echo (!== 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 IS_NOT_IDENTICAL   ~0 1,1
 1 ECHO     ~0
72 RETURN     1


IS_SMALLER

PHP code

<?php
/*
 * compares if value1 is less than value2
 * opcode number: 19
 */
echo (2);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 IS_SMALLER   ~0 1,2
 1 ECHO     ~0
72 RETURN     1


IS_SMALLER_OR_EQUAL

PHP code

<?php
/*
 * compares if value1 is less than or equal to value2
 * opcode number: 20
 */
echo (>= 2);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 IS_SMALLER_OR_EQUAL   ~0 2,1
 1 ECHO     ~0
72 RETURN     1


JMPNZ

PHP code

<?php
/*
 * Jump to the address if the value is not zero
 * opcode number: 44
 */
for($i=0$i<3$i++){ 
    echo 
"hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line#op fetchextreturn operands
60 ASSIGN     !0,0
 1 IS_SMALLER   ~1 !0,3
 2 JMPZNZ  6  ~1,->8
 3 POST_INC   ~2 !0
 4 FREE     ~2
 5 JMP     ->1
76 ECHO     'hi'
87 JMP     ->3
98 RETURN     1


JMPNZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 47
 */
if(1^2) return;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BW_XOR   ~0 1,2
 1 JMPZ     ~0,->4
 2 RETURN     null
 3 JMP     ->4
74 RETURN     1


JMPZ

PHP code

<?php
/*
 * Jump to the address if the value is zero
 * opcode number: 43
 */
if($a != 0) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 IS_NOT_EQUAL   ~0 !0,0
 1 JMPZ     ~0,->4
 2 ECHO     'foo'
 3 JMP     ->4
74 RETURN     1


JMPZNZ

PHP code

<?php
/*
 * Jump to the address if the value is .. ???
 * opcode number: 45
 */
for($i=0$i<3$i++){ 
    echo 
"hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line#op fetchextreturn operands
60 ASSIGN     !0,0
 1 IS_SMALLER   ~1 !0,3
 2 JMPZNZ  6  ~1,->8
 3 POST_INC   ~2 !0
 4 FREE     ~2
 5 JMP     ->1
76 ECHO     'hi'
87 JMP     ->3
98 RETURN     1


JMPZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 46
 */
 
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
70 RETURN     1


MOD

PHP code

<?php
/*
 * Makes the value of "result" congruent to "value1" modulo "value2".
 * opcode number: 5
 */
echo 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 MOD   ~0 6,3
 1 ECHO     ~0
72 RETURN     1


MUL

PHP code

<?php
/*
 * Multiplys "value1" by "value2" and stores the result into "result".
 * opcode number: 3
 */
echo 2*3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 MUL   ~0 2,3
 1 ECHO     ~0
72 RETURN     1


NEW

PHP code

<?php
/*
 * Construct an instance of "type" and store the reference to the object into "result".
 * opcode number: 68
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 RETURN     1


NOP

PHP code

<?php
/*
 * no operation
 * opcode number: 0
 */
function A(){}; 
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
71 RETURN     1

Function name: A

Compiled variables: none

line#op fetchextreturn operands
60 RETURN     null


POST_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 37
 */
$a--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 POST_DEC   ~0 !0
 1 FREE     ~0
72 RETURN     1


POST_DEC_OBJ

PHP code

<?php
/*
 * 
 * opcode number: 135
 */
$obj = new A();
$obj->num--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ZEND_POST_DEC_OBJ   ~5 !0,'num'
 5 FREE     ~5
86 RETURN     1


POST_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 36
 */
$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 POST_INC   ~0 !0
 1 FREE     ~0
72 RETURN     1


POST_INC_OBJ

PHP code

<?php
/*
 * Increment the property value specified by prop-name and store the original value into result.
 * opcode number: 134
 */
$obj = new A();
$obj->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ZEND_POST_INC_OBJ   ~5 !0,'num'
 5 FREE     ~5
86 RETURN     1


PRE_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (before performing other operations) and stores in results
 * opcode number: 35
 */
--$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 PRE_DEC     !0
71 RETURN     1


PRE_DEC_OBJ

PHP code

<?php
/*
 * 
 * opcode number: 133
 */
$obj = new A();
--
$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ZEND_PRE_DEC_OBJ     !0,'num'
85 RETURN     1


PRE_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (before performing other operations) and stores in result
 * opcode number: 34
 */
++$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 PRE_INC     !0
71 RETURN     1


PRE_INC_OBJ

PHP code

<?php
/*
 * 
 * opcode number: 132
 */
$obj = new A();
++
$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 ZEND_PRE_INC_OBJ     !0,'num'
85 RETURN     1


PRINT

PHP code

<?php
/*
 * 
 * opcode number: 41
 */
print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 PRINT   ~0 'Hello+World'
 1 FREE     ~0
72 RETURN     1


QM_ASSIGN

PHP code

<?php
/*
 * Question Mark Assign, used twice inside a question mark assign to temporarily assign result as value1  (this is followed up with an ASSIGN bytecode)
 * opcode number: 22
 */
function A(){
 echo 
1?2:3;
}

function 
B(){
 
$b 0;
 
$a $b 1011;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
101 NOP      
142 RETURN     1

Function name: A

Compiled variables: none

line#op fetchextreturn operands
70 JMPZ     1,->3
 1 QM_ASSIGN   ~0 2
 2 JMP     ->4
 3 QM_ASSIGN   ~0 3
 4 ECHO     ~0
85 RETURN     null

Function name: B

Compiled variables: !0=$b, !1=$a

line#op fetchextreturn operands
110 ASSIGN     !0,0
121 IS_SMALLER   ~1 1,!0
 2 JMPZ     ~1,->5
 3 QM_ASSIGN   ~2 10
 4 JMP     ->6
 5 QM_ASSIGN   ~2 11
 6 ASSIGN     !1,~2
137 RETURN     null


RAISE_ABSTRACT_ERROR

PHP code

<?php
/*
 * 
 * opcode number: 142
 */

abstract class fail {
    abstract function 
show();
}

class 
pass extends fail {
    function 
show() {
        echo 
"Call to function show()\n";
    }
}

$t2 = new pass();
$t2->show();

$t = new fail();
$t->show();

echo 
"Done\n"// shouldn't be displayed
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$t2, !1=$t

line#op fetchextreturn operands
70 NOP      
111 NOP      
 2 NOP      
173 ZEND_FETCH_CLASS   :3 'pass'
 4 NEW   $4 :3
 5 DO_FCALL_BY_NAME  0   
 6 ASSIGN     !0,$4
187 ZEND_INIT_METHOD_CALL     !0,'show'
 8 DO_FCALL_BY_NAME  0   
209 ZEND_FETCH_CLASS   :9 'fail'
 10 NEW   $10 :9
 11 DO_FCALL_BY_NAME  0   
 12 ASSIGN     !1,$10
2113 ZEND_INIT_METHOD_CALL     !1,'show'
 14 DO_FCALL_BY_NAME  0   
2315 ECHO     'Done%0A'
2416 RETURN     1

Function name: show

Compiled variables: none

line#op fetchextreturn operands
80 ZEND_RAISE_ABSTRACT_ERROR      
 1 RETURN     null

Function name: show

Compiled variables: none

line#op fetchextreturn operands
130 ECHO     'Call+to+function+show%28%29%0A'
141 RETURN     null


RECV

PHP code

<?php
/*
 * Receive a functoin argument of "argument-number" and store the argument value into a variable of "argument-number".  (e.g. $1 for 1)
 * opcode number: 63
 */
function hello($a){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
71 RETURN     1

Function name: hello

Compiled variables: !0=$a

line#op fetchextreturn operands
60 RECV     1
 1 RETURN     null


RECV_INIT

PHP code

<?php
/*
 * Initialize a function argument with "value" if not received from caller.  Otherwise same as RECV.
 * opcode number: 64
 */
function hello($a=5){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
71 RETURN     1

Function name: hello

Compiled variables: !0=$a

line#op fetchextreturn operands
60 RECV_INIT     1,5
 1 RETURN     null


RETURN

PHP code

<?php
/*
 * Return value from a funciton.
 * opcode number: 62
 */
return 1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 RETURN     1
71 RETURN     1


SEND_REF

PHP code

<?php
/*
 * Pass the reference value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 67
 */
@each($input);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 BEGIN_SILENCE   ~0  
 1 FETCH_Wlocal  $1 'input'
 2 SEND_REF     $1
 3 DO_FCALL  1  'each'
 4 END_SILENCE     ~0
75 RETURN     1


SEND_VAL

PHP code

<?php
/*
 * Pass the constant value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 65
 */
function funcA($msg){
    print 
$msg;
}

funcA('HELLO');

defined('IN_PHPBB');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 NOP      
101 SEND_VAL     'HELLO'
 2 DO_FCALL  1  'funca'
123 SEND_VAL     'IN_PHPBB'
 4 DO_FCALL  1  'defined'
135 RETURN     1

Function name: funcA

Compiled variables: !0=$msg

line#op fetchextreturn operands
60 RECV     1
71 PRINT   ~0 !0
 2 FREE     ~0
83 RETURN     null


SEND_VAR

PHP code

<?php
/*
 * Pass the variable value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 66
 */
$a = array(1,2,3);
if(
is_array($a)){ return 0; }
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 SEND_VAR     !0
 5 DO_FCALL  1  'is_array'
 6 JMPZ     $2,->9
 7 RETURN     0
 8 JMP     ->9
89 RETURN     1


SEND_VAR_NO_REF

PHP code

<?php 
/*
 * 
 * opcode number: 106
 * No sample PHP yet */
?>


SL

PHP code

<?php
/*
 * Shift value1 by balue2 bits to left
 * opcode number: 6
 */
echo << 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 SL   ~0 8,2
 1 ECHO     ~0
72 RETURN     1


SR

PHP code

<?php
/*
 * Shift bits to right
 * opcode number: 7
 */
echo >> 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 SR   ~0 8,2
 1 ECHO     ~0
72 RETURN     1


SUB

PHP code

<?php
/*
 * Subtracts "value2" from "value1" and stores the result into "result".
 * opcode number: 2
 */
echo 1-2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line#op fetchextreturn operands
60 SUB   ~0 1,2
 1 ECHO     ~0
72 RETURN     1


SWITCH_FREE

PHP code

<?php
/*
 * Release the allocated space of "value"?
 * opcode number: 49
 */
$a = array(1,2,3);
foreach(
$a as $num){
    print 
$num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 FE_RESET   $2 !0,->11
 5 FE_FETCH   $3 $2,->11
 6 ZEND_OP_DATA      
 7 ASSIGN     !1,$3
88 PRINT   ~5 !1
 9 FREE     ~5
910 JMP     ->5
 11 SWITCH_FREE     $2
1012 RETURN     1


THROW

PHP code

<?php
/*
 * 
 * opcode number: 108
 */
try {
    
$error 'Always throw this error';
    throw new 
Exception($error);

    
// Code following an exception is not executed.
    
echo 'Never executed';

} catch (
Exception $e) {
    echo 
'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line#op fetchextreturn operands
70 ASSIGN     !0,'Always+throw+this+error'
81 ZEND_FETCH_CLASS   :1 'Exception'
 2 NEW   $2 :1
 3 SEND_VAR     !0
 4 DO_FCALL_BY_NAME  1   
 5 ZEND_THROW  0  $2
116 ECHO     'Never+executed'
137 JMP     ->15
 8 ZEND_FETCH_CLASS   :4 'Exception'
 9 ZEND_CATCH  15  $4,!1
1410 ECHO     'Caught+exception%3A+'
 11 ZEND_INIT_METHOD_CALL     !1,'getMessage'
 12 DO_FCALL_BY_NAME  0   
 13 ECHO     $6
 14 ECHO     '%0A'
1815 ECHO     'Hello+World'
1916 RETURN     1


TICKS

PHP code

<?php
/*
 * 
 * opcode number: 105
 */
// A function that records the time when it is called
function profile()
{
   echo 
"profile function is called\n";
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile();

// Run a block of code, throw a tick every 2nd statement
declare(ticks=2) {
   for (
$x 0$x 10; ++$x) {
         echo 
"hello world\n";
   }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line#op fetchextreturn operands
70 NOP      
131 SEND_VAL     'profile'
 2 DO_FCALL  1  'register_tick_function'
163 DO_FCALL  0  'profile'
204 ASSIGN     !0,0
 5 IS_SMALLER   ~3 !0,10
 6 JMPZNZ  9  ~3,->13
 7 PRE_INC     !0
 8 JMP     ->5
219 ECHO     'hello+world%0A'
 10 TICKS     2
2211 TICKS     2
 12 JMP     ->7
 13 TICKS     2
2314 TICKS     2
2415 RETURN     1

Function name: profile

Compiled variables: none

line#op fetchextreturn operands
90 ECHO     'profile+function+is+called%0A'
101 RETURN     null


UNSET_DIM

PHP code

<?php
/*
 * Unset the entry of array-value, which is specified by index, and store the original element value into "result".
 * opcode number: 75
 */
$a = array(1,2,3);
unset(
$a[0]);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line#op fetchextreturn operands
60 INIT_ARRAY   ~0 1
 1 ADD_ARRAY_ELEMENT   ~0 2
 2 ADD_ARRAY_ELEMENT   ~0 3
 3 ASSIGN     !0,~0
74 UNSET_DIM   $2 !0,0
85 RETURN     1


UNSET_OBJ

PHP code

<?php
/*
 * Unset the property of the current object (this) and store the original value into "result".
 * opcode number: 76
 */
$obj = new A();
unset(
$obj->num);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line#op fetchextreturn operands
60 ZEND_FETCH_CLASS   :0 'A'
 1 NEW   $1 :0
 2 DO_FCALL_BY_NAME  0   
 3 ASSIGN     !0,$1
74 UNSET_OBJ   $4 !0,'num'
85 RETURN     1


UNSET_VAR

PHP code

<?php
/*
 * Unset the variable and store the original value into "result".
 * opcode number: 74
 */
$x 1;
$a='x';
unset($
$a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line#op fetchextreturn operands
60 ASSIGN     !0,1
71 ASSIGN     !1,'x'
82 UNSET_VAR   $2 !1
93 RETURN     1


USER_OPCODE

PHP code

<?php 
/*
 * 
 * opcode number: 150
 * No sample PHP yet */
?>


VERIFY_ABSTRACT_CLASS

PHP code

<?php 
/*
 * 
 * opcode number: 146
 * No sample PHP yet */
?>




Zend Engine 1

Sommaire

Zend Engine 1 is the internal engine used by PHP for the entire version 4 release line. It is no longer considered active, but PHP 4 is still in widespread use, so the old ZE1 documentation is preserved here exactly as it was.


Old introduction

If you are about to begin developing PHP or Zend extensions, you need to prepare yourself for the programming environment provided by the various APIs. This part of the documentation tries to introduce the APIs provided by the different PHP and Zend Engine versions available. Since most of the information available here is somewhat outdated, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL in addition to the manual.



Streams API for PHP Extension Authors

Note:

The functions in this chapter are for use in the PHP source code and are not PHP functions. Information on userland stream functions can be found in the Stream Reference.

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Exemple #1 simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];
        
        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

ANSI stdio equivalent functions in the Streams API
ANSI Stdio Function PHP Streams Function Notes
fopen php_stream_open_wrapper Streams includes additional parameters
fclose php_stream_close  
fgets php_stream_gets  
fread php_stream_read The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite php_stream_write The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek php_stream_seek  
ftell php_stream_tell  
rewind php_stream_rewind  
feof php_stream_eof  
fgetc php_stream_getc  
fputc php_stream_putc  
fflush php_stream_flush  
puts php_stream_puts Same semantics as puts, NOT fputs
fstat php_stream_stat Streams has a richer stat structure

Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Exemple #2 How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;
    
    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;
    
    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");
        
    RETURN_TRUE();
}

Exemple #3 How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;
    
    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
    
    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Note: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Streams open options

These constants affect the operation of stream factory functions.

IGNORE_PATH
This is the default option for streams; it requests that the include_path is not to be searched for the requested file.
USE_PATH
Requests that the include_path is to be searched for the requested file.
IGNORE_URL
Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.
IGNORE_URL_WIN
On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.
ENFORCE_SAFE_MODE
Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.
REPORT_ERRORS
If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.
STREAM_MUST_SEEK
This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Note: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST
If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires. The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream. Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.



API Zend : Modification du coeur de PHP

Introduction

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Avertissement

This information is currently rather outdated, parts of it only cover early stages of the ZendEngine 1.0 API as it was used in early versions of PHP 4.

More recent information may be found in the various README files that come with the PHP source and the » Internals section on the Zend website.

Overview

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated ( see below). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.
The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Extension Possibilities

As shown above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages Disadvantages
External modules don't require recompiling of PHP. The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. External additional files clutter up the disk.
    Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).
To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages Disadvantages
No need to load the module specifically; the functionality is instantly available. Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. The PHP binary grows and consumes more memory.
Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Source Layout

Note:

Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at » http://httpd.apache.org/) and, of course, with PHP (available at » http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory Contents
php-src Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php-src/ext Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php-src/main This directory contains the main php macros and definitions. (important)
php-src/pear Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php-src/sapi Contains the code for the different server abstraction layers.
TSRM Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
ZendEngine2 Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php-src/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php-src/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php-src/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function Description
emalloc() Serves as replacement for malloc().
efree() Serves as replacement for free().
estrdup() Serves as replacement for strdup().
estrndup() Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() Serves as replacement for calloc().
erealloc() Serves as replacement for realloc().
emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.
Avertissement

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function Regular C Function
V_GETCWD() getcwd()
V_FOPEN() fopen()
V_OPEN() open()
V_CHDIR() chdir()
V_GETWD() getwd()
V_CHDIR_FILE() Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() stat()
V_LSTAT() lstat()

String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Note:

To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see » http://www.gnu.org/software/m4/)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:

:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in The default config.m4. is a bit more complex:

Exemple #1 The default config.m4.

dnl $Id: build.xml 297078 2010-03-29 16:25:51Z degeberg $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this 

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":

if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Creating Extensions

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. A simple extension. shows the source.

Exemple #2 A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, 
    NULL, 
    NULL, 
    NULL, 
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Note:

The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make

To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

  --enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in A simple extension. can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually

To compile your modules manually, you need the following commands:

Action Command
Compiling cc -fpic -DCOMPILE_DL_FIRST_MODULE=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>
The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL_FIRST_MODULE to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in A test file for first_module.so.. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Avertissement

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Exemple #3 A test file for first_module.so.

<?php
    
// remove next comment if necessary
// dl("first_module.so"); 

$param 2;
$return first_module($param);

print(
"We sent '$param' and got '$return'");

?>

Calling this PHP file should output the following:

We sent '2' and got '2'

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Source Discussion

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:

ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:

void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Zend's Parameters to Functions Called from PHP for descriptions).

Zend's Parameters to Functions Called from PHP
Parameter Description
ht The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Internal declaration of zend_function_entry..

Exemple #4 Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;
Entry Description
fname Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.
In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Note:

You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Macros for Defining Functions shows a list of all the macros that you can use to define functions.

Macros for Defining Functions
Macro Name Description
ZEND_FE(name, arg_types) Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Internal declaration of zend_module_entry..

Exemple #5 Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;
     
    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};
Entry Description
size, zend_api, zend_debug and zts Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions Points to the Zend function block, discussed in the preceding section.
module_startup_func This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:

zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Macros to Declare Startup and Shutdown Functions. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Macros to Declare Startup and Shutdown Functions
Macro Description
ZEND_MINIT(module) Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod) 
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:

ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Accepting Arguments

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:

if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message like:
"Warning: Wrong parameter count for firstmodule() in /home/www/htdocs/firstmod.php on line 5"

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:

ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Retrieving Arguments

Note: New parameter parsing API

This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0.

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameters, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:

int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:


Warning - ini_get_all() requires at most 1 parameter, 2 given
Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:
  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:

/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.

int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:

long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Old way of retrieving arguments (deprecated)

Note: Deprecated parameter parsing API

This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():

zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:

zval **param1, **param2, **param3, **param4;
     
if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:

zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 4)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in PHP's implementation of variable arguments in fsockopen().. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Exemple #6 PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Argument Conversion Functions).

Note: All conversion functions expect a **zval as parameter.

Argument Conversion Functions
Function Description
convert_to_boolean_ex() Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) Forces the type to become a NULL value, meaning empty.

Note:

You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM.

Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:

zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in PHP/Zend zval type definition..

Exemple #7 PHP/Zend zval type definition.

typedef pval zval;
     
typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;             /* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;        /* value */
    unsigned char type;        /* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Zend zval Structure, Zend zvalue_value Structure and Zend Variable Type Constants.

Zend zval Structure
Entry Description
value Union containing this variable's contents. See Zend zvalue_value Structure for a description.
type Contains this variable's type. For a list of available types, see Zend Variable Type Constants.
is_ref 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.
Zend zvalue_value Structure
Entry Description
lval Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval Use this property if the variable is of the type IS_DOUBLE.
str This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht This entry points to the variable's hash table entry if the variable is an array.
obj Use this property if the variable is of the type IS_OBJECT.
Zend Variable Type Constants
Constant Description
IS_NULL Denotes a NULL (empty) value.
IS_LONG A long (integer) value.
IS_DOUBLE A double (floating point) value.
IS_STRING A string.
IS_ARRAY Denotes an array.
IS_OBJECT An object.
IS_BOOL A Boolean value.
IS_RESOURCE A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:

my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Testing for referenced parameter passing..

Exemple #8 Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(parameter, 10);
Testing for referenced parameter passing

Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:

zval **parameter;
     
/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Creating Variables

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable; 

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable); 

/* set type and variable contents here, see the following sections */ 

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable); 

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:

zval *new_variable;
     
// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Creating variables with different scopes. shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Exemple #9 Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}
Creating variables with different scopes

Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Creation of a long.).

Exemple #10 Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long-&gt;type = IS_LONG;
new_long-&gt;value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.

zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double-&gt;type = IS_DOUBLE;
new_double-&gt;value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:

zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = strlen(string_contents);
new_string-&gt;value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = 0;
new_string-&gt;value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:

zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool-&gt;type = IS_BOOL;
new_bool-&gt;value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().

zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Zend's API for Associative Arrays, Zend's API for Indexed Arrays, Part 1 and Zend's API for Indexed Arrays, Part 2 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Zend's API for Associative Arrays
Function Description
add_assoc_long(zval *array, char *key, long n);() Adds an element of type long.
add_assoc_unset(zval *array, char *key);() Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 1
Function Description
add_index_long(zval *array, uint idx, long n);() Adds an element of type long.
add_index_unset(zval *array, uint idx);() Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_index_zval(zval *array, uint idx, zval *value);() Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 2
Function Description
add_next_index_long(zval *array, long n);() Adds an element of type long.
add_next_index_unset(zval *array);() Adds an unset element.
add_next_index_bool(zval *array, int b);() Adds a Boolean element.
add_next_index_resource(zval *array, int r);() Adds a resource to the array.
add_next_index_double(zval *array, double d);() Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_next_index_zval(zval *array, zval *value);() Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update() for associative arrays (see Adding an element to an associative array.) and zend_hash_index_update() for indexed arrays (see Adding an element to an indexed array.):

Exemple #11 Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";
      
MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array-&gt;value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Exemple #12 Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array-&gt;value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():

zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Zend's API for Object Creation to add members to your object.

Zend's API for Object Creation
Function Description
add_property_long(zval *object, char *key, long l);() Adds a long to the object.
add_property_unset(zval *object, char *key);() Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Note:

In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:

ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld Normal resource destruction handler callback
pld Pesistent resource destruction handler callback
type_name A string specifying the name of your resource. It's always a good thing to specify a unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.
The return value is a unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:

void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {
     
    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:

typedef struct {
     
    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Note:

One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:
  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_list_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h. Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:

int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);
rsrc_result This is an already initialized zval * container.
rsrc_pointer Your resource pointer you want to store.
rsrc_type The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.
The return value is a unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:

rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);
     
    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquely identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
    RETURN_RESOURCE(rsrc_id)

Note:

It is common practice that if you want to return the resource immediately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:

ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)
rsrc This is your pointer which will point to your previously registered resource.
rsrc_type This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.
This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Macros for Global Variable Creation describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Macros for Global Variable Creation
Macro Description
SET_VAR_STRING(name, value) Creates a new string.
SET_VAR_STRINGL(name, value, length) Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) Creates a new long.
SET_VAR_DOUBLE(name, value) Creates a new double.

Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Macros for Creating Constants. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
 // register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT); 
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Macros for Creating Constants
Macro Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the rvalue (result of the evaluation of the right side of the operator) to the lvalue (same for the left side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;
   
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}
   
// do modifications to the parameter here

// now we want to return the modified container:
*return_value = *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Predefined Macros for Returning Values from a Function and Predefined Macros for Setting the Return Value of a Function.

Note:

The macros in Predefined Macros for Returning Values from a Function automatically return from your function, those in Predefined Macros for Setting the Return Value of a Function only set the return value; they don't return from your function.

Predefined Macros for Returning Values from a Function
Macro Description
RETURN_RESOURCE(resource) Returns a resource.
RETURN_BOOL(bool) Returns a Boolean.
RETURN_NULL() Returns nothing (a NULL value).
RETURN_LONG(long) Returns a long.
RETURN_DOUBLE(double) Returns a double.
RETURN_STRING(string, duplicate) Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() Returns an empty string.
RETURN_FALSE Returns Boolean false.
RETURN_TRUE Returns Boolean true.
Predefined Macros for Setting the Return Value of a Function
Macro Description
RETVAL_RESOURCE(resource) Sets the return value to the specified resource.
RETVAL_BOOL(bool) Sets the return value to the specified Boolean value.
RETVAL_NULL Sets the return value to NULL.
RETVAL_LONG(long) Sets the return value to the specified long.
RETVAL_DOUBLE(double) Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING Sets the return value to an empty string.
RETVAL_FALSE Sets the return value to Boolean false.
RETVAL_TRUE Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Printing Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.

zend_error(E_WARNING, "This function has been called with empty arguments");
Zend's Predefined Error Messages. shows a list of possible values (see below). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.
Zend's Predefined Error Messages.
Error Description
E_ERROR Signals an error and terminates execution of the script immediately.
E_WARNING Signals a generic warning. Execution continues.
E_PARSE Signals a parser error. Execution continues.
E_NOTICE Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING Internal warning by the compiler; shouldn't be used by user-written modules.
Display of warning messages in the browser.

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Source code and screenshot for output in phpinfo. shows a source example and its output. To print the table footer, use php_info_print_table_end().

Exemple #13 Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();
Output of phpinfo()

Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Printing execution information..

Exemple #14 Printing execution information.

zend_printf("The name of the current function is %s&lt;br&gt;", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s&lt;br&gt;", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i&lt;br&gt;", zend_get_executed_lineno(TSRMLS_C));
Printing execution information

Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Calling user functions. shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Exemple #15 Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type\n", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{
    echo "We are in the test function!\n";
    return 'hello';
}

$return_value = call_userland("test_function");

echo "Return value: '$return_value'";
?>

L'exemple ci-dessus va afficher :

We are in the test function!
We have 3 as type
Return value: 'hello'

Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.

PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:

PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s&lt;br&gt;", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Macros to Access Initialization Entries in PHP.

Macros to Access Initialization Entries in PHP
Macro Description
INI_INT(name) Returns the current value of entry name as integer (long).
INI_FLT(name) Returns the current value of entry name as float (double).
INI_STR(name) Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) Returns the original value of entry name as float (double).
INI_ORIG_STR(name) Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():

ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Reference: Some Configuration Macros

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in M4 Macros for config.m4.

M4 Macros for config.m4
Macro Description
AC_MSG_CHECKING(message) Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see API Macros for Accessing zval Containers).

API Macros for Accessing zval Containers
Macro Refers to
Z_LVAL(zval) (zval).value.lval
Z_DVAL(zval) (zval).value.dval
Z_STRVAL(zval) (zval).value.str.val
Z_STRLEN(zval) (zval).value.str.len
Z_ARRVAL(zval) (zval).value.ht
Z_LVAL_P(zval) (*zval).value.lval
Z_DVAL_P(zval) (*zval).value.dval
Z_STRVAL_P(zval_p) (*zval).value.str.val
Z_STRLEN_P(zval_p) (*zval).value.str.len
Z_ARRVAL_P(zval_p) (*zval).value.ht
Z_LVAL_PP(zval_pp) (**zval).value.lval
Z_DVAL_PP(zval_pp) (**zval).value.dval
Z_STRVAL_PP(zval_pp) (**zval).value.str.val
Z_STRLEN_PP(zval_pp) (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) (**zval).value.ht


TSRM API





FAQ : foire Aux Questions


Informations générales

Cette section présente les questions les plus fréquentes à propos de PHP : ce qu'est PHP et ce qu'il fait.

Qu'est-ce que PHP ?

Depuis la préface de ce manuel :

PHP est un langage de script HTML, exécuté coté serveur. Sa syntaxe est empruntée aux langages C, Java et Perl, et est facile à apprendre. Le but de ce langage est de permettre aux développeurs web d'écrire des pages dynamiques rapidement, mais vous pouvez faire beaucoup plus avec PHP.

Que représente l'acronyme PHP ?

PHP signifie PHP: Hypertext Preprocessor. La confusion vient du fait que la première lettre de l'acronyme représente l'acronyme lui-même. Ce type d'acronyme est appelé un acronyme récursif. Pour plus d'informations, les plus curieux peuvent visiter "» Free On-Line Dictionary of Computing" ou l'» entrée Wikipedia sur les acronymes récursifs.

Quelle est la relation entre les versions ?

PHP/FI 2.0 est une des premières versions de PHP et elle n'est plus supportée. PHP 3 en est son successeur et est beaucoup plus convivial. PHP 4 est la génération actuelle de PHP, qui utilise le » moteur Zend 2 qui apporte, entre autres, beaucoup de nouveautés dans le modèle objet.

Puis-je utiliser plusieurs versions de PHP en même temps ?

Oui. Voir le fichier INSTALL inclus dans les sources de PHP.

Quel est la différence entre PHP 4 et PHP 5?

Bien que PHP 5 a été conçu pour être le plus compatible possible avec les précédentes versions, il contient d'importantes modifications, qui incluent :

  • Un nouveau model objet basé sur le moteur Zend 2.0
  • Une nouvelle extension améliorant le support de MySQL
  • Un support interne de SQLite
  • Une nouvelle constante, E_STRICT, proposant des suggestions au moment de l'exécution
  • Une panoplie de nouvelles fonctions permettant de simplifier le code (et réduire la nécessité d'écrire vos propres fonctions pour des procédures courantes)
Pour plus d'informations détaillées, reportez-vous à la section sur la migration de PHP 4 à PHP 5 ainsi que la section sur les modifications incompatibles avec les versions précédentes.

Je pense avoir trouvé un bogue ! Qui dois-je contacter ?

Vous devriez aller sur la base de données de bogues PHP afin de vous assurer qu'il n'est pas déjà connu. Si vous ne le trouvez pas, utilisez le formulaire de rapport de bogues pour le faire connaître. Il est important d'utiliser la base de données de bogues au lieu d'envoyer simplement un courriel à une des listes de diffusion car le bogue se verra assigner un numéro qui vous sera utile pour suivre son évolution. La base de données de bogues peut être trouvée à » http://bugs.php.net/.



Listes de diffusions

Cette section traite des questions à propos de la communication avec la communauté PHP. Le meilleur moyen est l'utilisation des listes de diffusion.

Existe-t-il des listes de diffusion PHP ?

Bien sûr ! Il y a beaucoup de listes de diffusion traitant de beaucoup de sujets. Une liste des listes de diffusion les plus communes peut être trouvée sur cette » page.

La liste de diffusion la plus générale est la liste php-general. Pour s'y inscrire, envoyez un courriel vide à » php-general-subscribe@lists.php.net. Pour se déinscrire, envoyez un courriel vide à » php-general-unsubscribe@lists.php.net.

Vous pouvez également vous inscrire et vous désinscrire en utilisant l'interface web sur cette » page; les instructions pour se désinscrire sont également présentes en bas de chaque courriel de la liste.

Y a-t-il d'autres communautés ?

Il y a énormément de communautés PHP à travers le monde, et nous avons une liste de la plupart des ressources (ainsi que des informations pour en connaître d'autres) sur notre page de » support.

Puis-je mettre en place ma propre liste de diffusion PHP ?

Absolument ! En fait, nous ne faisons pas que l'autoriser, mais nous l'encourageons ! Le fait d'aider les autres en partageant ses compétences et son expérience de PHP aide dans le développement de la communauté PHP mais aussi dans le language en tant que tel.

Aidez-moi ! Je ne peux visiblement pas m'inscrire à une / me désinscrire d'une des listes de diffusion !

Si vous avez des problèmes pour l'inscription/la désinscription depuis la liste de diffusion php-general, cela peut être dû au fait que le logiciel de listes de diffusion n'arrive pas à traiter correctement la liste de diffusion à utiliser. Si votre adresse e-mail est joeblow@example.com, vous pouvez envoyer une requête d'inscription à php-general-subscribe-joeblow=example.com@lists.php.net, ou une requête de désinscription à php-general-unsubscribe-joeblow=example.com@lists.php.net. Utilisez la même méthode avec les autres listes de diffusion.

La plupart du temps, lorsque les utilisateurs rencontrent des problèmes pour se désinscrire d'une liste de diffusion PHP, c'est à cause des courriels redirigés. Par exemple, si votre adresse est danbrown@example.com, mais que vous vous êtes inscrit en utilisant la redirection php-lists@example.com et ensuite, vous redirigez la liste vers danbrown@example.com, le fait de tenter de se désinscrire en utilisant danbrown@example.com ne fonctionnera pas. À la place, vous devez vous désinscrire en utilisant l'adresse recevant les courriels de la liste - dans notre exemple, php-lists@example.com.

Y a-t-il une archive des listes de diffusion quelque part ?

Oui, vous pouvez trouver la liste des sites proposant des archives sur la page des » listes de diffusion. Vous pouvez également trouver plusieurs sites qui archivent ou publient le contenu de nos listes de diffusion en utilisant votre moteur de recherche Internet préféré, en cherchant, par exemple, la chaîne "php mailing list archives".

Tous les messages de nos listes de diffusion sont également archivés dans des newsgroup. Vous pouvez accéder à ces serveurs sur » news://news.php.net/ avec un client adapté. Il y a également une interface web expérimentale pour ces serveurs à l'adresse » http://news.php.net/

Que puis-je demander sur les listes de diffusion ?

PHP devient de plus en plus populaire chaque jour, augmentant ainsi le trafic sur la liste de diffusion php-general qui accueille de 75 à 200 messages chaque jour. Aussi, c'est dans l'intérêt de tous que d'utiliser la liste de diffusion en dernier ressort, lorsque vous avez déjà épuisé toutes les autres voies.

Avant de poster sur cette liste, merci de lire la FAQ (Foire Aux Questions) afin de voir si vous n'y trouvez pas de l'aide. S'il n'y a rien concernant votre problème, essayez dans les archives de la liste de diffusion (voir précédemment). Si vous avez des problèmes pour l'installation ou la configuration de PHP, lisez toute la documentation s'y rapportant, ainsi que les fichiers README. Si vous ne trouvez toujours pas de réponse à votre problème, vous êtes le bienvenu sur la liste de diffusion.

Afin d'avoir la meilleure réponse à votre question (et pour éviter d'agacer les développeurs), assurez-vous de poser votre question sur la liste de diffusion appropriée. Par exemple, si vous avez des difficultés à installer PHP, vous devez poser votre question sur la liste de diffusion php-install. Attention : certaines listes ont des noms similaires, mais des usages totalement différents ; une question vis à vis des scripts PHP sous Windows doit être dirigée vers la liste des utilisateurs PHP sous Windows, et non vers la liste interne Windows.

Avant de poser une question, vous devriez lire l'article intitulé "» Comment poser une question de la meilleur façon" ; c'est une bonne idée, pour tout le monde.

Quelle information devrais-je inclure lors de l'écriture de mon message à la liste de diffusion ?

Les messages comme "Je n'arrive pas à faire fonctionner PHP !! Aidez-moi !! Qu'est-ce qu'il ne va pas ??" sont totalement inutiles, pour tous. Si vous avez des problèmes pour faire fonctionner PHP, vous devez inclure le système sur lequel le problème survient, quelle version de PHP vous tentez de faire fonctionner, sous quelle forme vous l'avez installée (précompilé, SVN, RPMs, etc.), qu'est-ce que vous avez fait pour le moment, l'endroit où vous êtes coincé et quel est le message d'erreur.

Cela est valable pour n'importe quel type de problème. Vous devez inclure les informations sur ce que vous avez fait, où vous êtes coincé, ce que vous cherché à faire et, si possible, le message d'erreur obtenu. Si vous avez un problème avec votre code source, vous devez également inclure la portion de code qui ne fonctionne pas. N'incluez que le code nécessaire à la compréhension du problème ! Si vous incluez tout le code, votre message sera difficile à lire et, à cause de cela, beaucoup de personnes passeront sans même le lire. Si vous n'êtes pas sûr sur la quantité d'informations à inclure à votre message, il est préférable d'en mettre trop que pas assez et préparez-vous à fournir d'autres informations.

Un autre point important à ne pas oublier est de résumer votre problème dans l'objet du message. Un objet qui ressemble à "Aidez-moi !!!!" ou "Quel est le souci ici ?" sera ignoré par la majorité des lecteurs.

Et pour finir, vous êtes encouragé à lire l'article sur "» Comment poser une question de la meilleur façon", ce qui sera une aide énorme pour tous, et tout spécialement pour vous.



Obtenir PHP

Cette section traite du téléchargement de PHP et les problèmes liés aux systèmes d'exploitation.

Où puis-je obtenir PHP ?

Vous pouvez télécharger PHP à partir d'un des membres du réseau de sites PHP. Vous pouvez les trouver sur » http://www.php.net/. Vous pouvez aussi utiliser SVN pour obtenir la toute dernière version des sources. Pour plus d'informations, allez sur » http://php.net/svn.php.

Est-ce que les versions binaires pré-compilées sont disponibles ?

Nous ne les distribuons que pour le système Windows, car nous ne pouvons compiler PHP pour chaque plate-forme Linux/Unix avec toutes les combinaisons d'extensions. Notez aussi que plusieurs distributions Linux fournissent PHP d'office de nos jours. Les binaires Windows peuvent être téléchargés à partir de notre page de » Téléchargement, pour les binaires Linux, visitez le site de votre distribution.

Où puis-je obtenir les bibliothèques dont j'ai besoin pour compiler les extensions optionnelles de PHP ?

Note: Celles marquées avec un * ne sont pas des bibliothèques thread-safe, et ne doivent pas être utilisées avec PHP en module de serveur dans les serveurs web Windows multi-threadés (IIS, Netscape). Cela n'est pas applicable pour les environnements Unix, pour le moment.

Comment faire fonctionner ces bibliothèques ?

Vous devrez suivre les instructions fournies avec les bibliothèques. Quelques une d'entre elles sont détectées automatiquement lorsque vous exécutez le script 'configure' de PHP (comme la bibliothèque GD), pour les autres, vous devrez les activer en utilisant l'option '--with-EXTENSION' de 'configure'. Exécutez 'configure --help' pour en avoir la liste complète.

J'ai la dernière version du code source de PHP, téléchargée à partir de SVN. De quoi ai-je besoin pour le compiler sous Windows ?

Voyez la section du manuel à propos parlant de la compilation de PHP à partir des sources sur Windows.

Où puis-je trouver le fichier Browser Capabilities ?

Vous pouvez trouver un fichier browscap.ini sur » http://browsers.garykeith.com/downloads.asp.

Que signifie thread safety lors du téléchargement de PHP?

Thread Safety signifie que le binaire peut fonctionner sur des serveurs à contexte multi-thread comme Apache 2 sous Windows. La sécurité des threads (Thread Safety) fonctionne en créant un espace de stockage local pour chaque thread de telle sorte que les données n'entrent pas en collision entre les threads.

Donc, que choisir? Si vous utilisez PHP comme CGI, alors vous n'avez pas besoin de la sécurité des threads car le binaire est invoqué à chaque requête. Concernant les serveurs multi-threads, comme IIS5 et IIS6, vous devriez utiliser la version threadée de PHP.



Considérations sur les bases de données

Cette section traite de questions relatives aux relations entre PHP et les bases de données. Oui, PHP peut accéder virtuellement à n'importe quelle base de données disponible aujourd'hui.

J'ai entendu dire qu'il était possible d'accéder à Microsoft SQL Server à partir de PHP. Comment est-ce possible ?

Sur une machine Windows, vous pouvez tout simplement utiliser le support ODBC inclus avec le pilote ODBC adéquat.

Sur des machines Unix, vous pouvez utiliser le pilote Sybase-CT pour accéder à Microsoft SQL Server car il est (en grande partie) compatible. Sybase a fourni une » version libre des bibliothèques nécessaires pour Linux. Pour les autres systèmes Unix, vous devez contacter Sybase pour obtenir les bibliothèques adéquates. Jetez aussi un oeil à la réponse à la question suivante.

Puis-je accéder à des bases Microsoft Access ?

Oui. Vous avez déjà tous les outils nécessaires si vous utilisez uniquement Windows 9x/Me, ou NT/2000, et que vous utilisez ODBC avec les pilotes ODBC pour Microsoft Access.

Si vous utilisez PHP sur une machine Unix et que vous voulez vous connecter à une base Access sur une machine Windows, vous aurez besoin des pilotes ODBC Unix. » OpenLink Software fournit des pilotes ODBC pour Unix qui peuvent le faire.

Une autre solution consiste à utiliser un serveur SQL qui a des pilotes ODBC Windows et l'utiliser pour stocker les données, que vous pouvez utiliser à partir de Microsoft Access (en utilisant ODBC) et PHP (en utilisant les pilotes inclus), ou bien utiliser un format de fichier intermédiaire que Access et PHP peuvent traiter tous les deux, comme des fichier bruts ou des bases de données dBase. À ce sujet, Tim Hayes de Openlink software écrit :

Utiliser une autre base de données comme intermédiaire n'est pas une bonne idée lorsque vous pouvez utiliser ODBC de PHP directement vers vos bases de données - par exemple avec les pilotes Openlink. Si vous avez besoin d'un format de fichier intermédiaire, Openlink a publié Virtuoso (un moteur de base de données virtuel) pour NT, Linux et d'autres plates-formes Unix. Visitez notre » site pour un téléchargement gratuit.

Une solution qui a fait ses preuves est d'utiliser MySQL et ses pilotes ODBC sous Windows et de synchroniser les bases de données. Steve Lawrence écrit :

  • Installez MySQL sur votre plate-forme conformément aux instructions de MySQL. Vous pouvez l'obtenir sur » http://www.mysql.com/. Aucune configuration particulière n'est nécessaire, mis à part que lorsque vous configurez une base de données et un compte utilisateur, il faille spécifier % dans le champ host, ou bien le nom de la machine Windows avec laquelle vous voulez accéder à MySQL. Notez bien votre nom de serveur, d'utilisateur et votre mot de passe.
  • Téléchargez les pilotes MyODBC pour Windows à partir du site de MySQL. Installez les sur votre machine Windows. Vous pouvez tester votre installation avec les utilitaires fournis avec les pilotes.
  • Créez un utilisateur ou une source de données système dans votre administration ODBC, dans le panneau de configuration. Donnez un nom de source de données dsn, entrez votre nom d'hôte, identifiant, mot de passe, port, etc. pour la base de données configurée à l'étape 1.
  • Installez Access avec une installation complète pour être sûr d'avoir tous les composants nécessaires... Vous aurez besoin d'au moins le support ODBC et le gestionnaire de tables liées.
  • Maintenant, la partie amusante ! Créez un accès à une base de données. Dans la fenêtre de la table, cliquez droit et sélectionner Lier les Tables, ou, dans le menu Fichier, sélectionnez Obtenir des données externes et alors Lier les Tables. Quand la fenêtre de gestion de fichiers apparaît, sélectionnez les fichiers de type : ODBC. Sélectionnez dsn Système et le nom de votre dsn créée à l'étape 3. Sélectionnez la table à lier, cliquez sur OK, et voilà ! Vous pouvez maintenant ouvrir la table et ajouter/supprimer/éditer des données sur votre serveur MySQL ! Vous pouvez ainsi exécuter des requêtes, importer/exporter des tables vers MySQL, construire des formulaires et des rapports, etc.

Trucs et astuces :

  • Vous pouvez construire vos tables dans Access et les exporter dans MySQL, puis les lier de nouveau. Cela rend la création de table très rapide.
  • Lorsque vous créez des tables dans Access, vous devez avoir une clé primaire définie pour avoir accès en écriture à la table. Assurez-vous que vous avez bien créé une clé primaire dans MySQL avant de lier le tout à Access.
  • Si vous changez une table dans MySQL, vous devez la lier de nouveau à Access. Allez dans Outils>suppléments>gestionnaire de tables liées, cherchez votre DSN ODBC, et sélectionnez la table à lier de nouveau. Vous pouvez aussi changer votre source dsn à partir de là, en cliquant sur l'option toujours demander pour un nouvel emplacement avant de presser OK.

PHP 5 n'inclut plus les bibliothèques clientes MySQL, qu'est ce que ça implique pour moi ? Puis-je toujours utiliser MySQL avec PHP ? J'essaie d'utiliser MySQL, mais j'obtiens des erreurs "undefined function".

Oui. PHP supportera toujours MySQL, d'une façon ou d'une autre. Le seul changement avec PHP 5 est que nous ne compilons plus la bibliothèque cliente en elle-même. En voici en vrac quelques justifications :

  • La plupart des systèmes incluent maintenant les bibliothèques clientes.

  • Ainsi, avoir plusieurs versions des bibliothèques peut être gênant. Par exemple, si vous liez mod_auth_mysql à une version et PHP à une autre, et que vous les activez tous les deux dans Apache, vous obtenez un joli plantage. Ainsi, la bibliothèque cliente incluse avec PHP ne fonctionnait pas toujours bien. Le symptôme le plus gênant était que le chemin vers le socket Unix mysql.sock n'était pas le bon.

  • La maintenance en était lourde et le devenait de plus en plus au fur et à mesure des versions.

  • Les versions futures de la bibliothèque seront publiées sous licence GPL et nous ne pouvons pas inclure une telle bibliothèque car sa licence n'est pas compatible avec un projet sous licence de type BSD/Apache. Un tel changement dans PHP 5 semble être la meilleure solution.

Ceci n'affectera pas tant que ça les utilisateurs. Les utilisateurs d'Unix, au moins ceux qui savent ce qu'ils font, ont tendance à compiler PHP avec les bibliothèques déjà installées sur leur système, simplement en spécifiant --with-mysql=/usr lors de la configuration de PHP. Les utilisateurs de Windows peuvent activer l'extension php_mysql.dll dans leur php.ini. Pour plus de détails, lisez la référence MySQL sur les instructions d'installation. Assurez-vous également que libmysql.dll est disponible dans le PATH du système. Pour plus de détails sur cela, lisez la FAQ sur la configuration du PATH sur les systèmes Windows. Comme libmysql.dll (et plusieurs fichiers relatifs à PHP) existe dans le dossier de PHP, il est recommandé d'ajouter le dossier de PHP à votre PATH système.

Après avoir ajouté le support partagé de MySQL, Apache plante dès que libphp4.so est chargé. Comment résoudre ce problème ?

Ceci arrive quand vos bibliothèques MySQL sont liées à pthreads. Vérifiez en utilisant ldd. Sinon, téléchargez les sources de MySQL et compilez-les ou bien refaites un paquet RPM à partir des sources en enlevant l'option qui active le client threadé dans le fichier de spec. L'une ou l'autre de ces solutions corrigera le problème. Recompilez alors PHP avec les nouvelles bibliothèques MySQL.

Pourquoi est ce que j'obtiens une erreur comme celle-ci : "Warning: 0 is not a MySQL result index in <file> on line <x>" ou "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>" ?

Vous essayez d'utiliser un identifiant de résultat qui vaut 0. Le 0 indique que votre requête a échoué pour une quelconque raison. Vous devez alors chercher les erreurs après avoir exécuté une requête et avant même de vouloir traiter le résultat. Une façon propre de le faire est de coder comme ceci :

<?php

$result 
mysql_query("SELECT * FROM tables_priv");
if (!
$result) {
    echo 
mysql_error();
    exit;
}
?>
ou
<?php

$result 
mysql_query("SELECT * FROM tables_priv")
    or die(
"Bad query: " mysql_error());
?>



Installation

Cette section traite de questions courantes sur la façon d'installer PHP. PHP est disponible sur la plupart des systèmes d'exploitation (sauf les versions de MacOS antérieures à Mac OSX) et pour quasiment n'importe quel serveur web.

Pour installer PHP, suivez les instructions présentes dans Installation et configuration.

  1. Pourquoi ne doit-on pas utiliser Apache 2 dans un environnement threadé multiprocesseur de production ?
  2. Unix/Windows : où doit être placé mon fichier php.ini ?
  3. Unix : j'ai installé PHP, mais à chaque fois que je charge un document, j'obtiens l'erreur 'Document Contains No Data' ! Que se passe-t-il ?
  4. Unix : J'ai installé PHP en utilisant des fichiers sources RPM, mais apache ne traite pas les pages PHP. Que se passe-t-il ?
  5. Unix : J'ai patché Apache avec l'extension FrontPage et subitement, PHP ne fonctionne plus. Est-ce que PHP est incompatible avec l'extension FrontPage pour Apache ?
  6. Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens un écran vide.
  7. Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens une erreur de type 'server 500 error'.
  8. Quelques systèmes d'exploitations : J'ai installé PHP sans erreur, mais lorsque je tente de démarrer Apache, j'obtiens une erreur du type 'Undefined symbols' : [mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  9. Windows : J'ai installé PHP, mais lorsque je tente d'accèder à un fichier contenant un script PHP via mon navigateur, j'obtiens l'erreur : cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  10. Windows : J'ai suivi toutes les instructions, mais je n'arrive toujours pas à faire fonctionner PHP et IIS ensemble !
  11. Lorsque vous exécutez PHP comme CGI avec IIS, PWS, OmniHTTPD ou Xitami, j'obtiens l'erreur suivante : Security Alert! PHP CGI cannot be accessed directly..
  12. Comment puis-je savoir si mon php.ini a bien été trouvé et lu ? Cela semble être le cas mais aucun de mes changements n'ont eu d'effet.
  13. Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?
  14. Comment rendre le fichier php.ini disponible à PHP sous Windows ?
  15. Est-il possible d'utiliser la négociation sur le contenu fournie par Apache (option MultiViews) avec PHP ?
  16. Est-ce que PHP est limité au traitement des méthodes GET et POST ?
Pourquoi ne doit-on pas utiliser Apache 2 dans un environnement threadé multiprocesseur de production ?

PHP est un mortier. C'est un mortier utilisé pour construire de belles applications web en utilisant beaucoup de bibliothèques ensemble, apparaissant comme une seule entité à travers un langage intuitif et facile à apprendre. La flexibilité et la puissance de PHP se fondent sur la stabilité et la robustesse de la plate-forme fondamentale. Il a besoin d'un OS qui fonctionne, d'un serveur web qui fonctionne et de bibliothèques externes pour coller le tout. Lorsqu'un seul de ces éléments arrêtent subitement de fonctionner, PHP doit identifier le problème et le réparer au plus vite. En rendant le cadre fondamental plus complexe en ne séparant pas les exécutions des threads, ni les segments mémoires, ni un endroit clos pour traiter chaque requête entrante, de nouvelles faiblesses sont introduites dans le système PHP.

Si vous pensez que vous devez utiliser un MPM threadé, regardez du côté d'une configuration FastCGI dans lequel PHP s'exécute dans son propre espace mémoire.

Et finalement, cette mise en garde contre les environnements MPM threadés n'est pas aussi forte pour les environnements Windows, où les bibliothèques sont mieux threadées.

Unix/Windows : où doit être placé mon fichier php.ini ?

Par défaut sous Unix, il doit être placé dans /usr/local/lib qui est en fait <install-path>/lib. La plupart des personnes voudront changer ceci lors de la compilation avec l'option --with-config-file-path. Vous pouvez par exemple le régler de cette façon :

--with-config-file-path=/etc
Et alors vous copierez le fichier php.ini-development livré avec les sources vers /etc/php.ini et l'éditer pour l'adapter à vos besoins.

--with-config-file-scan-dir=PATH

Sous Windows, le chemin par défaut de php.ini est le répertoire de Windows. Si vous utilisez le serveur web Apache, php.ini est tout d'abord cherché dans le répertoire d'installation de Apache, c'est-à-dire c:\program files\apache group\apache. De cette façon, vous pouvez avoir un php.ini différent pour chaque version de Apache installée.

Consultez aussi le chapitre sur le fichier de configuration.

Unix : j'ai installé PHP, mais à chaque fois que je charge un document, j'obtiens l'erreur 'Document Contains No Data' ! Que se passe-t-il ?

Cela signifie probablement que PHP rencontre un problème et génère un fichier core. Consultez vos fichiers de logs de votre serveur pour voir si c'est le cas, et tentez de reproduire le problème avec un test simple. Si vous savez utiliser 'gdb', il serait très utile de fournir un backtrace avec votre rapport de bogue, afin d'aider les développeurs à cerner le problème. Si vous utilisez PHP en module Apache, essayez ceci :

  • Stoppez vos processus httpd

  • gdb httpd

  • Stoppez vos processus httpd

  • > run -X -f /path/to/httpd.conf

  • Pointez alors avec votre navigateur vers l'URL posant problème.

  • > run -X -f /path/to/httpd.conf

  • Si vous obtenez un fichier core, gdb doit alors vous en informer.

  • tapez : bt

  • Vous devriez inclure votre backtrace dans votre rapport de bogue. Celui-ci doit être posté sur » http://bugs.php.net/.

Si votre script utilise les expressions rationnelles (preg_match() et consorts), assurez-vous que PHP et Apache ont été compilés avec les même outils d'expression rationnelles. Cela doit être automatiquement le cas avec PHP et Apache 1.3.x.

Unix : J'ai installé PHP en utilisant des fichiers sources RPM, mais apache ne traite pas les pages PHP. Que se passe-t-il ?

En supposant que vous avez installé à la fois Apache et PHP à partir de fichiers RPM, vous devrez commenter ou ajouter au moins quelques unes des lignes suivantes dans votre fichier httpd.conf :

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
Et ajouter :
AddType application/x-httpd-php .php
... aux propriétés globales ou aux propriétés du VirtualDomain ou vous voulez que PHP officie.

Unix : J'ai patché Apache avec l'extension FrontPage et subitement, PHP ne fonctionne plus. Est-ce que PHP est incompatible avec l'extension FrontPage pour Apache ?

Non, PHP fonctionne très bien avec l'extension FrontPage. Le souci vient du fait que le patch pour l'installation de FrontPage modifie la structure d'Apache, qui est relié à PHP. Recompiler PHP (en utilisant 'make clean ; make') après avoir patché Apache avec l'extension FrontPage devrait résoudre ce problème.

Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens un écran vide.

Affichez le code source du document dans votre navigateur et vous devriez probablement trouver le code source de votre script PHP. Cela signifie que le serveur web n'a pas envoyé le script à PHP pour interprétation. Quelque chose est donc incorrecte dans le fichier de configuration de votre serveur web - re-vérifier la configuration du serveur web en vous référant aux instructions d'installations de PHP.

Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens une erreur de type 'server 500 error'.

Quelque chose se passe mal lorsque le serveur tente d'utiliser PHP. Pour tenter de récupérer un message d'erreur, depuis la ligne de commande, placez-vous dans le répertoire contenant l'exécutable PHP (php.exe sous Windows) et exécutez la commande php -i. Si PHP a un problème quelconque l'empêchant de fonctionner, un message d'erreur devrait s'afficher qui devrait expliquer comment résoudre ce souci. Si un écran de code HTML apparaît (la sortie de la fonction phpinfo()), cela signifie que PHP fonctionne correctement et que le problème doit certainement venir de la configuration de votre serveur web que vous devriez re-vérifier.

Quelques systèmes d'exploitations : J'ai installé PHP sans erreur, mais lorsque je tente de démarrer Apache, j'obtiens une erreur du type 'Undefined symbols' :
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Cela n'a actuellement rien à voir avec PHP mais avec la bibliothèque cliente MySQL. Suivant les versions, elle a besoin que PHP soit compilé avec l'option --with-zlib , d'autre non. Ce problème est également traité dans la FAQ de MySQL.

Windows : J'ai installé PHP, mais lorsque je tente d'accèder à un fichier contenant un script PHP via mon navigateur, j'obtiens l'erreur :
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Ce message d'erreur signifie que PHP a échoué lors de l'affichage. Pour tenter de récupérer un message d'erreur, depuis la ligne de commande, placez-vous dans le répertoire contenant l'exécutable PHP (php.exe sous Windows) et exécutez la commande php -i. Si PHP a un quelconque souci de fonctionnement, alors un message d'erreur le décrivant s'affichera. Si vous obtenez un écran de code HTML (le contenu du résultat de la fonction phpinfo()), alors PHP fonctionne correctement.

Si PHP fonctionne depuis la ligne de commande, tentez d'accéder à votre script encore une fois via votre navigateur. S'il échoue toujours, alors, il se peut que ce soit l'un des soucis suivants :

  • Les permissions de votre script PHP des fichiers php.exe, php5ts.dll, php.ini ou de toute extension nécessaire à PHP que vous tentez de charger, sont telles que l'utilisateur internet anonyme de votre système ISUR_<machinename> ne peut pas y accéder.
  • Le script PHP n'existe pas (ou n'est pas à l'endroit que vous pensez, relativement au répertoire racine de votre serveur web). Notez que pour le serveur web IIS, vous pouvez vérifier cela en cochant la case 'vérifier si le fichier existe' lors de la configuration de l'exécution des scripts dans le gestionnaire de services Internet. Si un fichier de script n'existe pas, le serveur web retournera une erreur 404. IIS a également l'avantage d'effectuer toutes les identifications requises à votre place, basés sur les permissions NTLanMan, sur votre fichier de script.
Windows : J'ai suivi toutes les instructions, mais je n'arrive toujours pas à faire fonctionner PHP et IIS ensemble !

Assurez-vous que chaque utilisateur qui a besoin d'exécuter un script PHP possède les droits requis pour exécuter le fichier php.exe ! IIS utilise un utilisateur anonyme qui est ajouté lors de l'installation de IIS. Cet utilisateur doit avoir les droits suffisant sur le fichier php.exe. De même, tous les utilisateurs enregistrés doivent posséder les droits requis pour exécuter le fichier php.exe. Pour IIS4, vous devez lui dire que PHP est un moteur de script. De plus, vous devriez lire cette FAQ.

Lorsque vous exécutez PHP comme CGI avec IIS, PWS, OmniHTTPD ou Xitami, j'obtiens l'erreur suivante : Security Alert! PHP CGI cannot be accessed directly..

Vous devez définir la directive cgi.force_redirect à 0. Par défaut, elle vaut 1, donc, soyez sûrs que cette directive n'est pas commentée (précédée d'un point virgule). Comme toutes les directives, elles sont définies dans le php.ini.

Comme la valeur par défaut vaut 1, il est impératif que vous soyez sûrs à 100% que le bon fichier php.ini a été lu. Lisez cette FAQ pour plus de détails.

Comment puis-je savoir si mon php.ini a bien été trouvé et lu ? Cela semble être le cas mais aucun de mes changements n'ont eu d'effet.

Pour être sûr que votre php.ini a été lu par PHP, effectuez un appel à la fonction phpinfo(). Vers le haut du document résultant, il devrait figurer une liste appelée Configuration File (php.ini). Cela vous indiquera où PHP a cherché le php.ini et si oui ou non il l'a lu. S'il n'apparaît qu'un chemin vers un répertoire existant, cela signifie que vous devez copier votre php.ini dans ce répertoire. Si le php.ini est présent dans le chemin, cela signifie qu'il a bien été lu.

Si le php.ini a bien été lu et que vous exécutez PHP comme module, alors assurez-vous de redémarrer le serveur web après avoir effectué les modifications à votre php.ini.

Voir aussi la fonction php_ini_loaded_file().

Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?

Sous Windows NT+, et Windows Server 2000+:

  • Allez dans le centre de contrôle et ouvrez l'icône système (Démarrer -> Paramètres -> Panneau de configuration -> Système ou juste Démarrer -> centre de contrôle -> Système pour Windows XP/2003+)

  • Allez à l'onglet "Avancé"

  • Cliquez sur le bouton "Variables d'environnements"

  • Regardez dans le panneau "Variables systèmes"

  • Trouvez l'entrée Path (vous devriez avoir à faire descendre l'ascenseur pour le trouver)

  • Double cliquez sur l'entrée Path

  • Entrez votre répertoire PHP à la fin, sans oublier le point virgule (;) avant (par exemple ;C:\php)

  • Confirmez en cliquant sur OK

Sous Windows 98/Me, vous devez éditer le fichier autoexec.bat :

  • Ouvrez Notepad (Démarrer -> Exécuter et entrez notepad)

  • Ouvrez le fichier C:\autoexec.bat

  • Repérez la ligne contenant PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... et ajoutez : ;C:\php à la fin de la ligne.

  • Sauvegardez le fichier et redémarrer l'ordinateur

Note: Assurez-vous de redémarrer l'ordinateur après avoir suivi cette procédure afin que les modifications sur la variable PATH soient bien prises en compte.

Le manuel PHP vous encourage à copier les fichiers dans le dossier système de Windows car ce dossier (C:\Windows, C:\WINNT, etc.) se trouve par défaut dans le PATH système. Copier les fichiers dans le dossier système de Windows est depuis obsolète et peut causer des problèmes.

Comment rendre le fichier php.ini disponible à PHP sous Windows ?

Il y a plusieurs façons de faire cela. Si vous utilisez Apache, lisez leurs instructions spécifiques d'installation (Apache 1, Apache 2) sinon, vous devez définir la variable d'environnement PHPRC :

Sous Windows NT, 2000, XP et 2003:

  • Allez dans le centre de contrôle et ouvrez l'icône système (Démarrer -> Paramètres -> Panneau de configuration -> Système ou juste Démarrer -> centre de contrôle -> Système pour Windows XP/2003)

  • Allez à l'onglet "Avancé"

  • Cliquez sur le bouton "Variables d'environnements"

  • Regardez dans le panneau "Variables systèmes"

  • Cliquez sur "Nouveau" et entrez "PHPRC" comme nom de variable et le dossier où se trouve votre fichier php.ini comme valeur (par exemple C:\php)

  • Confirmez en cliquant sur OK et redémarrer votre ordinateur

Sous Windows 98/Me, vous devez éditer le fichier autoexec.bat :

  • Ouvrez Notepad (Démarrer ->Exécuter et entrez notepad)

  • Ouvrez le fichier C:\autoexec.bat

  • Ajouter une nouvelle ligne à la fin du fichier : set PHPRC C:\php (remplacez C:\php avec le dossier où se trouve le fichier php.ini). Notez que le chemin ne peut contenir d'espace. Aussi, si vous avez installé PHP dans le dossier C:\Program Files\PHP, vous devez entrer le chemin C:\PROGRA~1\PHP.

  • Sauvegardez le fichier et redémarrer l'ordinateur

Est-il possible d'utiliser la négociation sur le contenu fournie par Apache (option MultiViews) avec PHP ?

Si les liens vers les fichiers PHP incluent l'extension, tout fonctionne parfaitement. Cette entrée de la FAQ traite uniquement du cas où les liens vers les fichiers PHP n'incluent pas l'extension et que vous voulez utiliser la négociation sur le contenu fourni par Apache pour choisir les fichiers PHP depuis une URL qui ne contient pas d'extension. Dans ce cas, remplacez la ligne AddType application/x-httpd-php .php par :

AddHandler php5-script php
AddType text/html php
Cette solution ne fonctionne pas pour Apache 1 car le module PHP ne captura pas le php-script.

Est-ce que PHP est limité au traitement des méthodes GET et POST ?

Non, il est possible de gérer tout type de méthode, comme CONNECT. Les bons en-têtes de réponse peuvent être envoyés avec la fonction header(). Si seules les méthodes POST et GET doivent être gérées, vous pouvez configurer Apache comme ce qui suit :

<LimitExcept GET POST>
Deny from all
</LimitExcept>



Problèmes de compilation

Cette section couvre les erreurs les plus communes pouvant se produire lors de la compilation de PHP.

  1. J'ai téléchargé la dernière version des sources de PHP en utilisant SVN, mais il n'y a pas de script configure !
  2. J'ai des problèmes pour configurer PHP avec Apache. On m'indique que httpd.h n'est pas trouvé, mais il est bien là ou je l'ai spécifié !
  3. Pendant la configuration de PHP (./configure), vous rencontrez une erreur semblable à celle-ci : checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. Quand je lance Apache, j'obtiens le message suivant : fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. Quand je lance le ./configure, on me dit que les fichiers d'en-tête de GD, gdbm, ... ne sont pas trouvés !
  6. Quand le fichier language-parser.tab.c est compilé, j'obtiens un message yytname undeclared.
  7. Quand je lance make, tout semble bien se passer, mais ça échoue quand il essaie de lier l'application finale, en prétendant qu'il manque des fichiers.
  8. Au moment de lier PHP, il y a des références indéfinies.
  9. Je ne vois pas comment compiler PHP avec Apache 1.3.
  10. J'ai suivi toutes les étapes pour installer le module Apache sous Unix, mais malgré tout, mes scripts PHP s'affichent en clair dans mon navigateur ou celui-ci me demande de sauver le fichier.
  11. Il est dit d'utiliser --activate-module=src/modules/php4/libphp4.a, mais ce fichier n'existe pas, alors je l'ai changé pour --activate-module=src/modules/php4/libmodphp4.a et ça ne fonctionne pas. Qu'est ce qui se passe ?
  12. Quand j'essaie de compiler Apache avec PHP en module statique en utilisant --activate-module=src/modules/php4/libphp4.a on me répond que mon compilateur n'est pas conforme aux normes ANSI.
  13. Quand j'esaie de compiler PHP avec --with-apxs, j'obtiens des messages d'erreur étranges.
  14. Pendant le make, j'ai des erreurs concernant microtime et beaucoup de RUSAGE_.
  15. Quand je compile PHP avec le support MySQL, le configure se passe bien, mais pendant le make, j'obtiens une erreur de ce style : ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', qu'est ce qui ne va pas ?
  16. Je veux mettre à jour mon PHP. Où puis-je trouver la ligne ./configure qui a été utilisée pour mon installation actuelle de PHP?
  17. Quand je compile PHP avec le support de la bibliothèque GD, j'obtiens des erreurs de compilation étrange, voire même des erreurs de segmentation.
  18. Quand je compile PHP, j'obtiens des erreurs aléatoires, voire même tout s'arrête. J'utilise Solaris.
J'ai téléchargé la dernière version des sources de PHP en utilisant SVN, mais il n'y a pas de script configure !

Vous devez avoir le logiciel GNU autoconf d'installé pour générer le script configure à partir de configure.in. Lancez juste ./buildconf à la racine du répertoire des sources après avoir récupéré celles-ci à partir du serveur SVN. (De plus, à moins que vous ne lanciez configure avec l'option --enable-maintainer-mode, le script configure ne sera pas automatiquement reconstruit si configure.in est mis à jour, vous obligeant à le faire à la main quand vous remarquez que configure.in est mis à jour. Une conséquence de ceci est que l'on trouve des choses telles que @VARIABLE@ dans votre Makefile après que configure ou config.status soit lancé.)

J'ai des problèmes pour configurer PHP avec Apache. On m'indique que httpd.h n'est pas trouvé, mais il est bien là ou je l'ai spécifié !

Vous devez spécifier au script de configuration (configure) l'emplacement du répertoire ou sont les sources de Apache. Cela signifie que vous devez spécifier --with-apache=/chemin/vers/apache et pas --with-apache=/chemin/vers/apache/src .

Pendant la configuration de PHP (./configure), vous rencontrez une erreur semblable à celle-ci :

checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up

Assurez-vous de bien avoir lu les instructions d'installation et d'avoir flex et bison d'installés pour compiler PHP. Selon votre système, vous devrez installer bison et flex à partir de sources ou bien de paquets, tel qu'un RPM.

Quand je lance Apache, j'obtiens le message suivant :

fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

Cette erreur survient généralement quand quelqu'un compile le coeur Apache comme bibliothèque partagée DSO. Essayez de reconfigurer Apache, en vous assurant d'utiliser les options suivantes :


--enable-shared=max --enable-rule=SHARED_CORE

Pour davantage d'informations, lisez le fichier INSTALL à la racine de votre répertoire source Apache ou bien » le manuel des bibliothèques DSO.

Quand je lance le ./configure, on me dit que les fichiers d'en-tête de GD, gdbm, ... ne sont pas trouvés !

Vous pouvez forcer le script configure à chercher les fichiers d'en-tête à des endroits non-standard en passant des options supplémentaires au préprocesseur C et à l'éditeur de liens, par exemple :

    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
Si vous utilisez une variante de csh, utilisez plutôt :
    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

Quand le fichier language-parser.tab.c est compilé, j'obtiens un message yytname undeclared.

Vous devez mettre à jour votre version de bison. Vous pourrez trouver la dernière version sur » http://www.gnu.org/software/bison/bison.html.

Au moment de lier PHP, il y a des références indéfinies.

Jetez un oeil à la ligne de lien et assurez-vous que toutes les bibliothèques nécessaires ont été incluses à la fin. Celles qui manquent probablement sont '-ldl' et les bibliothèques relatives aux bases de données dont vous voulez le support.

Des personnes nous ont rapporté qu'elle devaient ajouter '-ldl' immédiatement après libphp4.a lors de la compilation avec Apache.

Je ne vois pas comment compiler PHP avec Apache 1.3.

C'est relativement simple. Suivez attentivement ces étapes :

  • Téléchargez la dernière version de Apache 1.3 sur » http://httpd.apache.org/download.cgi.
  • Désarchivez le tout, par exemple dans /usr/local/src/apache-1.3.
  • Compilez PHP en lançant tout d'abord ./configure --with-apache=/<path>/apache-1.3 (remplacez <path> par le chemin de votre répertoire apache-1.3).
  • Tapez make puis make install pour compiler PHP et copier les fichiers nécessaires dans le répertoire source Apache.
  • Déplacez-vous dans votre répertoire /<path>/apache-1.3/src et éditez le fichier Configuration. Ajoutez y : AddModule modules/php4/libphp4.a.
  • Tapez : ./configure puis make.
  • Vous devriez alors avoir une bibliothèque httpd avec le support de PHP !

Note: Vous pouvez utiliser le nouveau script ./configure de Apache. Suivez les instructions du fichier README.configure fourni avec votre version de Apache. Lisez aussi le fichier INSTALL inclus avec les sources de PHP.

J'ai suivi toutes les étapes pour installer le module Apache sous Unix, mais malgré tout, mes scripts PHP s'affichent en clair dans mon navigateur ou celui-ci me demande de sauver le fichier.

Cela signifie que le module PHP n'est pas chargé, pour une raison ou pour une autre. Avant de chercher de l'aide ailleurs, veuillez vérifier ces quelques points :

  • Assurez-vous que le binaire httpd que vous exécutez est bien le nouveau binaire que vous avez compilé. Pour cela, essayez de lancer : /chemin/vers/le/binaire/httpd -l Si vous ne voyez pas mod_php4.c dans la liste, c'est que vous n'utilisez pas le bon binaire. Trouvez et installez correctement le bon binaire.
  • Assurez-vous que vous avez bien ajouté le bon type Mime à un de vos fichiers Apache .conf. Ce devrait être : AddType application/x-httpd-php .php Assurez-vous aussi que cette ligne Addtype n'est pas dissimulée dans un contexte de <Virtualhost> ou <Directory> qui l'empêcherait de s'appliquer à l'emplacement de vos scripts.
  • Enfin, l'emplacement par défaut des fichiers de configuration Apache a changé entre Apache 1.2 et Apache 1.3. Vous devriez vérifier que les fichiers de configuration auxquels vous ajoutez la ligne Addtype sont bien ceux qui sont pris en compte. Vous pouvez introduire une erreur de syntaxe dans votre httpd.conf (ou bien tout autre changement incorrect) pour vous assurer que c'est bien ce fichier qui est pris en compte.

Il est dit d'utiliser --activate-module=src/modules/php4/libphp4.a, mais ce fichier n'existe pas, alors je l'ai changé pour --activate-module=src/modules/php4/libmodphp4.a et ça ne fonctionne pas. Qu'est ce qui se passe ?

Notez que le fichier libphp4.a n'est pas supposé exister. Le processus apache le créera !

Quand j'essaie de compiler Apache avec PHP en module statique en utilisant --activate-module=src/modules/php4/libphp4.a on me répond que mon compilateur n'est pas conforme aux normes ANSI.

C'est un mauvais message d'erreur de Apache qui n'apparaît plus dans des versions plus récentes.

Quand j'esaie de compiler PHP avec --with-apxs , j'obtiens des messages d'erreur étranges.

Il y a trois choses à vérifier ici. Tout d'abord, quand Apache crée le script Perl apxs, il s'interrompt parfois en étant compilé sans le bon compilateur ou les bonnes options. Trouvez votre script apxs (lancez la commande which apxs), qui se trouve souvent à /usr/local/apache/bin/apxs ou bien /usr/sbin/apxs. Éditez-le et vérifiez que des lignes similaires sont présentes :

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Si c'est ce que vous voyez, vous avez trouvé votre problème. Elles peuvent contenir juste des espaces ou d'autres valeurs incorrectes, comme 'q()'. Changez ces lignes pour obtenir :
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
Le deuxième problème potentiel est uniquement relatif aux distributions Red Hat 6.1 et 6.2. The scripts apxs de Red Hat est défectueux. Cherchez cette ligne :
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Si vous la voyez telle quelle, changez-la en :
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Enfin, si vous reconfigurez/réinstallez Apache, lancez un make clean entre votre ./configure et votre make.

Pendant le make, j'ai des erreurs concernant microtime et beaucoup de RUSAGE_.

Pendant le make, si vous rencontrez des problèmes identiques à celui-ci :

microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

Votre système est défectueux. Vous devez corriger vos fichiers /usr/include en instalant un paquet glibc-devel qui correspond à votre version de la glibc. Cela n'a rien à voir avec PHP. Pour vous en convaincre, essayez ceci :

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Si vous obtenez des erreurs, c'est que vos fichiers d'en-tête sont mauvais.

Quand je compile PHP avec le support MySQL, le configure se passe bien, mais pendant le make, j'obtiens une erreur de ce style : ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', qu'est ce qui ne va pas ?

Tout d'abord, il est important de savoir que ce n'est qu'un Warning et pas une erreur fatale. Comme c'est souvent la dernière erreur vu lors du make, ça a l'air d'une erreur fatale, mais ça n'en est pas une. Bien sûr, si vous demandez à votre compilateur de stopper à chaque Warning, ça en deviendra une. Notez aussi que le support de MySQL est activé par défaut.

Note:

Depuis PHP 4.3.2, vous verrez le texte suivant après la compilation (make) :


Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

Je veux mettre à jour mon PHP. Où puis-je trouver la ligne ./configure qui a été utilisée pour mon installation actuelle de PHP?

Vous pouvez jetez un oeil au fichier config.nice dans votre répertoire source ou sinon simplement exécuter un script

<?php phpinfo(); ?>
Au début du résultat affiché figure la ligne ./configure qui fût utilisée lors de la configuration de votre PHP actuel.

Quand je compile PHP avec le support de la bibliothèque GD, j'obtiens des erreurs de compilation étrange, voire même des erreurs de segmentation.

Assurez-vous que votre bibliothèque GD et PHP sont liés aux mêmes bibliothèques (libpng, par exemple).

Quand je compile PHP, j'obtiens des erreurs aléatoires, voire même tout s'arrête. J'utilise Solaris.

L'utilisation d'utilitaires non-GNU pour compiler PHP peut poser problème. Assurez-vous de bien utiliser des outils GNU pour être certain que votre compilation arrive à terme. Par exemple, sous Solaris, utiliser les version SunOS BSD-compatible ou Solaris de sed ne fonctionnera pas, mais utiliser les versions GNU ou Sun POSIX (xpg4) de sed fonctionnera. Liens : » GNU sed, » GNU flex et » GNU bison.



Utiliser PHP

Cette section regroupe plusieurs erreurs que vous pouvez rencontrer lors de l'écriture de vos scripts PHP.

  1. Je ne me rappelle par de l'ordre des paramètres dans les fonctions PHP, sont-ils aléatoires ?
  2. J'aimerais écrire un script PHP générique qui pourrait traiter les données provenant de tout formulaire. Comment savoir quelles variables de la méthode POST sont disponibles ?
  3. Il faut que je convertisse tous les guillemets simples (') en un antislash suivi d'un guillemet simple (\'). Comment le faire avec une expression régulière ? J'aimerais aussi convertir " en \" et \ en \\.
  4. Tous mes " se transforment en \" et mes ' en \', comment me débarrasser de tous ces antislashs ? Comment et pourquoi sont-ils apparus ?
  5. Comment la directive register_globals affecte-t-elle mes scripts ?
  6. Quand je fais ce qui suit, l'affichage se fait dans le mauvais ordre : <?php function mafonction($argument) { echo $argument + 10; } $variable = 10; echo "mafonction($variable) = " . mafonction($variable); ?> que se passe-t-il ?
  7. Hey, où sont mes nouvelles lignes ? <pre> <?php echo "Ceci est ma première ligne."; ?> <?php echo "Celle-ci devrait s'afficher en dessous de la première."; ?> </pre>
  8. J'obtiens le message 'Warning: Cannot send session cookie - headers already sent...' ou 'Cannot add header information - headers already sent...'.
  9. J'ai besoin d'accéder à des informations dans l'en-tête de requête directement. Comment puis-je le faire ?
  10. Quand j'essaye d'utiliser l'identification avec IIS j'obtiens 'No Input file specified'.
  11. Windows: Je ne peux pas accéder aux fichiers partagés sur un autre ordinateur utilisant IIS
  12. Comment mélanger XML et PHP ? PHP se plaint de mes balises <?xml !
  13. Où puis-je trouver une liste complète des variables prédéfinies que je peux utiliser dans mes scripts PHP ?
  14. Comment puis-je générer des fichiers PDF sans utiliser les bibliothèques non libres PDFLib ? J'aimerais une façon gratuite et qui ne requiert pas de bibliothèques PDF externes.
  15. J'essaye d'accéder à une des variables standard CGI (comme $DOCUMENT_ROOT ou $HTTP_REFERER) dans une fonction écrite par moi-même, et il semblerait qu'elle ne soit pas définie. Que se passe-t-il ?
  16. Certaines directives PHP peuvent prendre des noms littéraux, et pas seulement des valeurs entières. Quelles sont tous les raccourcis disponibles? Peut-on les utiliser en dehors de php.ini?
  17. Windows: Il y a des echecs de connexions (timeouts) en utilisant localhost, alors que "127.0.0.1" fonctionne?
Je ne me rappelle par de l'ordre des paramètres dans les fonctions PHP, sont-ils aléatoires ?

PHP rassemble des centaines de bibliothèques externes et ça peut paraître parfois déroutant. Cependant, une règle simple à retenir :

Les paramètres concernant les fonctions sur les tableaux sont dans l'ordre "needle, haystack" tandis que les paramètres sur les fonctions gérants les chaînes sont exactement à l'opposé "haystack, needle".

J'aimerais écrire un script PHP générique qui pourrait traiter les données provenant de tout formulaire. Comment savoir quelles variables de la méthode POST sont disponibles ?

PHP fournit plusieurs variables pré-définies, comme la superglobale $_POST. Vous pouvez boucler sur $_POST puisque c'est un tableau associatif de toutes les valeurs envoyés par la méthode POST. Par exemple, bouclons dessus simplement avec foreach, vérifions les valeurs vides et affichons-les.

<?php
$empty 
$post = array();
foreach (
$_POST as $nomvar => $valeurvar) {
    if (empty(
$varvalue)) {
        
$empty[$nomvar] = $valeurvar;
    } else {
        
$post[$nomvar] = $valeurvar;
    }
}

echo 
'<pre>';
if (empty(
$empty)) {
    print 
"Aucune valeur POSTée n'est vide, postées :\n";
    
var_dump($post);
} else {
    print 
"Nous avons " count($empty) . " valeurs vides\n";
    print 
"Postées :\n"var_dump($post);
    print 
"Vides :\n";  var_dump($empty);
    exit;
}
echo 
'</pre>';
?>

Note: Superglobales : disponibilité

Depuis PHP 4.1.0, les tableaux superglobaux tels que $_GET, $_POST et $_SERVER, etc. sont disponibles. Pour plus d'informations, lisez la section superglobals

Il faut que je convertisse tous les guillemets simples (') en un antislash suivi d'un guillemet simple (\'). Comment le faire avec une expression régulière ? J'aimerais aussi convertir " en \" et \ en \\.

Si l'on suppose que c'est pour une base de données, utilisez le méchanisme d'échappement fourni avec la base de données. Par exemple, utilisez la fonction mysql_real_escape_string() avec MySQL et pg_escape_string() avec PostgreSQL. Il y a également les fonctions génériques comme addslashes() et stripslashes(), qui sont plus communes avec l'ancien code PHP.

Note: Note concernant la directive : magic_quotes_gpc

La directive PHP magic_quotes_gpc est par défaut à on. En bref, elle applique la fonction addslashes() sur toutes vos données issues de GET, POST et COOKIE. Vous pouvez utiliser la fonction stripslashes() pour supprimer cet effet.

Tous mes " se transforment en \" et mes ' en \', comment me débarrasser de tous ces antislashs ? Comment et pourquoi sont-ils apparus ?

Les anti-slashes existent très probablement parce que la directive PHP magic_quotes_gpc est activée. C'est une ancienne fonctionnalité de PHP et elle doit être désactivée et plus jamais être utilisée. De même, la fonction PHP stripslashes() peut être utilisée pour supprimer les slashes d'une chaîne de caractères.

Note: Note concernant la directive : magic_quotes_gpc

La directive PHP magic_quotes_gpc est par défaut à on. En bref, elle applique la fonction addslashes() sur toutes vos données issues de GET, POST et COOKIE. Vous pouvez utiliser la fonction stripslashes() pour supprimer cet effet.

Comment la directive register_globals affecte-t-elle mes scripts ?

Tout d'abord, une rapide explication sur ce que réalise cette configuration ini. Supposons que nous utilisons l'URL suivante : http://example.com/foo.php?animal=cat et, dans le fichier foo.php, nous avons le code PHP suivant :

<?php
// L'utilisation de $_GET est ici préférée
echo $_GET['animal'];

// Pour que $animal existe, register_globals doit être actif
// NE FAITE JAMAIS CELA !
echo $animal;

// Ceci s'applique à toutes les variables, y compris à $_SERVER
echo $_SERVER['PHP_SELF'];

// Encore une fois, pour que $PHP_SELF existe, register_globals doit être actif
// NE FAITE JAMAIS CELA !
echo $PHP_SELF;
?>

Le code ci-dessus démontre la façon dont register_globals crée un grand nombre de variables. Durant des années, ce type de codage a été désapprouvé, et donc, depuis des années, cette fonctionnalité a été désactivée par défaut. Notez que PHP peut éventuellement supprimer cette fonctionnalité obsolète. Bien que la majorité des hébergeurs Web a désactivé cette fonctionnalité, il y a toujours sur le web des articles, des tutoriels et des livres qui demandent à ce que cette option de configuration soit activée.

Voir aussi les ressources suivantes pour plus d'informations :

Note:

Dans l'exemple ci-dessus, nous utilisez une URL qui contient une QUERY_STRING. Passer des informations comme cela se fait via une requête HTTP GET, c'est la raison pour laquelle la superglobale $_GET est utilisée.

Quand je fais ce qui suit, l'affichage se fait dans le mauvais ordre :
<?php
function mafonction($argument)
{
    echo 
$argument 10;
}
$variable 10;
echo 
"mafonction($variable) = " mafonction($variable);
?>
que se passe-t-il ?

Pour pouvoir utiliser le résultat de votre fonction dans une expression (comme le concaténer avec une chaîne comme dans cet exemple), vous devez retourner la valeur avec return(), et non pas l'afficher avec echo().

Hey, où sont mes nouvelles lignes ?
<pre>
<?php echo "Ceci est ma première ligne."?>
<?php 
echo "Celle-ci devrait s'afficher en dessous de la première."?>
</pre>

En PHP, la fin d'un bloc de code est soit "?>" ou "?>\n" (où \n signifie une nouvelle ligne). Donc dans l'exemple plus haut, les phrases affichées le seront sur une seule ligne, car PHP oublie les nouvelles lignes après la fin du bloc. Cela signifie que vous devez insérer une nouvelle ligne de plus après chaque bloc de code PHP pour la lui faire afficher.

Pourquoi PHP fait-il cela ? Car lors du formatage du HTML, cela vous simplifie la vie car vous ne voulez pas de cette nouvelle ligne, mais vous devez créer de très longues lignes ou rendre la source brute de la page illisible pour arriver à cet effet.

J'obtiens le message 'Warning: Cannot send session cookie - headers already sent...' ou 'Cannot add header information - headers already sent...'.

Les fonctions header(), setcookie(), et les fonctions de session doivent ajouter des en-têtes au flux de sortie, mais ceux-ci ne peuvent être envoyés qu'avant le reste du contenu. Il ne doit y avoir aucun affichage avant d'utiliser ces fonctions, comme le HTML par exemple. La fonction headers_sent() vérifiera si votre script a déjà envoyé des en-têtes. Voyez aussi les fonctions de bufferisation de sortie.

J'ai besoin d'accéder à des informations dans l'en-tête de requête directement. Comment puis-je le faire ?

La fonction getallheaders() le fera si vous exécutez PHP en tant que module Apache. Le code suivant vous montrera tous les en-têtes de requête :

<?php
$headers 
getallheaders();
foreach (
$headers as $nom => $contenu) {
    echo 
"headers[$nom] = $contenu<br />\n";
}
?>

Voir aussi apache_lookup_uri(), apache_response_headers() et fsockopen().

Quand j'essaye d'utiliser l'identification avec IIS j'obtiens 'No Input file specified'.

Le modèle sécuritaire de IIS est en faute. C'est un problème commun à tous les programmes CGI fonctionnant avec IIS. Une alternative est de créer un fichier HTML (non exécuté par PHP) comme page d'entrée dans le dossier où il faut s'identifier. Utilisez alors une balise META pour rediriger vers la page PHP, ou encore proposez un lien vers celle-ci. PHP reconnaîtra alors l'identification correctement. Avec le module ISAPI, cela n'est pas un problème. Cela ne devrait pas non plus affecter d'autres serveurs NT. Pour plus d'informations, voyez : » http://support.microsoft.com/kb/q160422/ et la section du manuel concernant l'identification HTTP.

Windows: Je ne peux pas accéder aux fichiers partagés sur un autre ordinateur utilisant IIS

Vous devez modifier le service Go to Internet Information Services. Localisez votre fichier PHP et éditez ces propriétés. Placez-vous sur l'onglet File Security, Edit -< Anonymous access and authentication control.

Vous pouvez résoudre ce souci soit en décochant la case Anonymous Access et en laissant la case Integrated Window Authentication cochée, soit en cochant la case Anonymous Access et en éditant l'utilisateur qui ne doit pas avoir les droits d'accès.

Comment mélanger XML et PHP ? PHP se plaint de mes balises <?xml !

Pour inclure <?xml dans votre code PHP, vous devrez désactiver les short tags en configurant la directive PHP short_open_tags à 0. Vous ne pouvez pas modifier cette directive avec ini_set(). Que short_open_tags soit à on ou off, vous pouvez toujours faire ceci : <?php echo '<?xml'; ?>. La valeur par défaut pour cette directive est On.

Où puis-je trouver une liste complète des variables prédéfinies que je peux utiliser dans mes scripts PHP ?

Lisez la page du manuel qui concerne les variables prédéfinies vu qu'elle présente une liste partielle des variables prédéfinies disponibles dans votre script. Une liste complète des variables disponibles (et beaucoup d'informations) peut être vue en appelant la fonction phpinfo(). Lisez la section du manuel traitant des variables non-issues de PHP, elle décrit des scénarios communs pour les variables externes, comme celles issues d'un formulaire HTML, d'un cookie, et de l'URL.

Note: register_globals : note importante

Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.

Comment puis-je générer des fichiers PDF sans utiliser les bibliothèques non libres PDFLib ? J'aimerais une façon gratuite et qui ne requiert pas de bibliothèques PDF externes.

Il y a quelques alternatives écrites en PHP tel que » FPDF et » TCPDF.

Il y a également l'extension Haru qui utilise la bibliothèque externe libre libHaru.

J'essaye d'accéder à une des variables standard CGI (comme $DOCUMENT_ROOT ou $HTTP_REFERER) dans une fonction écrite par moi-même, et il semblerait qu'elle ne soit pas définie. Que se passe-t-il ?

Il est important de réaliser que la directive PHP register_globals affecte aussi les variables d'environnement et de serveur. Lorsque register_globals = off (valeur par défaut depuis PHP 4.2.0), $DOCUMENT_ROOT n'existera pas. À la place, utilisez $_SERVER['DOCUMENT_ROOT']. Si register_globals = on alors les variables $DOCUMENT_ROOT et $GLOBALS['DOCUMENT_ROOT'] existeront aussi.

Si vous êtes sûrs que register_globals = on et que vous vous demandez pourquoi $DOCUMENT_ROOT n'est pas disponible à l'intérieur de votre fonction, c'est parce que elle est comme toute autre variable et requiert donc global $DOCUMENT_ROOT dans le corps de la fonction. Voyez aussi la page du manuel à propos de la portée des variables. Il est recommandé de coder avec register_globals = off.

Note: Superglobales : disponibilité

Depuis PHP 4.1.0, les tableaux superglobaux tels que $_GET, $_POST et $_SERVER, etc. sont disponibles. Pour plus d'informations, lisez la section superglobals

Certaines directives PHP peuvent prendre des noms littéraux, et pas seulement des valeurs entières. Quelles sont tous les raccourcis disponibles? Peut-on les utiliser en dehors de php.ini?

Les options disponibles sont K (pour Kilo octets) et M (pour mégaoctet) et G (pour gigaoctet ; disponible depuis PHP 5.1.0), ils sont insensibles à la casse. Tout autre syntaxe est supposée représenter des octets. 1M équivaut à un mégaoctet ou 1048576 octets. 1K équivaut à un kilooctet ou 1024 octets. Vous ne devriez pas utiliser ces abréviations en dehors du fichier php.ini. À la place, utilisez une valeur entière en octets. Lisez la documentation sur la fonction ini_get() pour un exemple sur la façon de convertir ces valeurs.

Note: kilooctet contre kibibyte

La notation PHP décrit un kilooctet comme étant égal à 1024 octets, alors que le standard IEC considère ça comme un kibioctet (kibibyte). En bref: k et K = 1024 octets.

Windows: Il y a des echecs de connexions (timeouts) en utilisant localhost, alors que "127.0.0.1" fonctionne?

Avant PHP 5.3.4, il y avait un bug dans le code réseau de résolution des noms qui faisait échouer la résolution de localhost si IPv6 est activé. Utiliser "127.0.0.1" ne posait pas de problème, ou encore désactiver la résolution IPV6 dans le fichier hosts.



PHP et HTML

PHP et HTML sont très interactifs : PHP peut générer du HTML et HTML peut passer des informations à PHP. Avant de lire cette faq (foire aux questions), il est important que vous appreniez comment récupérer des variables externes à PHP. La page du manuel correspondante contient beaucoup d'exemples. Faites particulièrement attention à ce que signifie register_globals.

Quel encodage/décodage ai-je besoin lors du passage d'une valeur via un formulaire/une URL ?

Il y a plusieurs étapes pour lesquelles le codage est important. En supposant que vous avez une chaîne de caractères $data, qui contient la chaîne que vous voulez passer de manière non-encodée, voici les étapes appropriées :

  • Interprétation HTML. Afin d'indiquer une chaîne aléatoire, vous devez l'inclure entre doubles guillemets et utiliser la fonction htmlspecialchars() pour encoder la chaîne.

  • URL : une URL est constituée de plusieurs parties. Si vous voulez que vos données soient interprétées comme un seul élément, vous devez les encoder avec la fonction urlencode().

Exemple #1 Un élément de formulaire HTML caché

<?php
echo '<input type="hidden" value="' htmlspecialchars($data) . '" />';
?>

Note: Il n'est pas correct d'utiliser la fonction urlencode() pour vos données $data, car il en est de la responsabilité du navigateur de les encoder. Tous les navigateurs populaires le font correctement. Notez que cela s'effectue sans considération de la méthode utilisée (c'est-à-dire GET ou POST). Vous devez uniquement noter ce cas pour les requêtes GET, car les requêtes POST sont généralement cachées.

Exemple #2 Données éditables par l'utilisateur

<?php
echo "<textarea name=\"mydata\">\n";
echo 
htmlspecialchars($data)."\n";
echo 
'</textarea>';
?>

Note: Les données sont montrées dans le navigateur comme prévues, car celui-ci interprétera les symboles HTML échappés. Au moment de la validation, via la méthode GET ou POST, les données devraient être url-encodées par le navigateur avant le transfert et directement url-décodées par PHP. Donc, finalement, vous n'avez pas à effectuer d'url-encodage/url-decodage vous-même, tout est effectué automatiquement.

Exemple #3 Dans une URL

<?php
echo "<a href=\"" htmlspecialchars("/nextpage.php?stage=23&data=" .
        
urlencode($data)) . "\">\n";
?>

Note: En fait, vous simulez une requête GET HTML, il est nécessaire d'utiliser manuellement la fonction urlencode() sur vos données.

Note: Vous devez utiliser htmlspecialchars() sur l'URL complète, car l'URL se comporte comme la valeur d'un attribut HTML. Dans ce cas, le navigateur fera un htmlspecialchars() sur la valeur et passera le résultat à l'URL. PHP devrait comprendre l'URL correctement, car vous avez url-encodé les données. Vous devez noter que & dans l'URL est remplacé par &amp;. Bien que la plus part des navigateurs devraient corriger cela si vous l'oubliez, ce n'est pas toujours le cas. Donc, même si votre URL n'est pas dynamique, vous devez utiliser la fonction htmlspecialchars() sur l'URL.

J'essaye d'utiliser <input type="image"> mais les variables $foo.x et $foo.y ne sont pas disponibles. $_GET['foo.x'] n'existe pas non plus. Où sont-elles ?

Lorsque vous validez un formulaire, il est possible d'utiliser une image au lieu du bouton standard de type "submit" avec une balise du type :

<input type="image" src="image.gif" name="foo" />
Lorsque l'utilisateur clique sur l'image, le formulaire est transmis au serveur avec deux variables supplémentaires : foo.x et foo.y qui représentent les coordonnées du point cliqué.

Comme foo.x et foo.y sont des noms de variables invalides en PHP, elles sont automatiquement converties en foo_x et foo_y. Les points sont remplacés par des soulignés. Donc, vous devez accéder à ces variables comme n'importe quelle autre variable tel que décrit dans la section "Variables provenant d'autres sources". Par exemple, en utilisant $_GET['foo_x'].

Note:

Les espaces dans les noms de variables sont également converties en un souligné bas.

Comment créer un tableau dans une balise <form> HTML ?

Pour envoyer le résultat du <form> comme un tableau de variables à votre script PHP, vous devez nommer, via l'attribut name, les balises <input>, <select> ou <textarea> comme cela :

<input name="MonTableau[]" />
<input name="MonTableau[]" />
<input name="MonTableau[]" />
<input name="MonTableau[]" />
Noter les crochets après le nom de la variable, c'est ce qui fait que celle-ci sera un tableau. Vous pouvez grouper les éléments dans différents tableaux de variables en assignant le même nom à différents éléments :
<input name="MonTableau[]" />
<input name="MonTableau[]" />
<input name="MonAutreTableau[]" />
<input name="MonAutreTableau[]" />
Cela produira deux tableaux de variables, MonTableau et MonAutreTableau, qui seront envoyés au script PHP. Il est également possible d'assigner des clés spécifiques à votre tableau :
<input name="UnAutreTableau[]" />
<input name="UnAutreTableau[]" />
<input name="UnAutreTableau[email]" />
<input name="UnAutreTableau[telephone]" />
Le tableau UnAutreTableau contiendra les clés 0, 1, email et telephone.

Note:

Le fait de spécifier une clé à un tableau est optionnel en HTML. Si vous ne le faites pas, les clés du tableau suiveront l'ordre d'apparition des éléments dans le formulaire. Dans notre premier exemple, le tableau contient les clés 0, 1, 2 et 3.

Voir aussi les fonctions sur les tableaux de variables et la section sur les variables provenant d'autres sources.

Comment puis-je récupérer le résultat d'un champ HTML SELECT multiple ?

Le champ SELECT multiple en HTML permet à l'utilisateur de sélectionner plusieurs éléments d'une liste. Ces éléments seront transmis à la page pointée par l'attribut action de la balise form. Le problème est que ces éléments sont tous passés avec le même nom de variable.

<select name="var" multiple="yes">
Chaque option sélectionnée arrivera au mécanisme de traitement sous la forme :
var=option1
var=option2
var=option3
      
Chaque option effacera donc le contenu de la précédente variable $var. La solution consiste à utiliser un tableau de variables dans cet élément de formulaire HTML, par exemple :
<select name="var[]" multiple="yes">
Cela fera que PHP traitera $var comme un tableau de variables et que chaque assignement de valeur à var[] ajoutera un index au tableau. La première option choisie sera mise dans $var[0], la suivante sera mise dans $var[1], etc. La fonction count() peut être utilisée pour déterminer combien d'options ont été sélectionnées, et la fonction sort() peut être utilisée pour trier le tableau, si nécessaire.

Notez que si vous utilisez Javascript, [] dans le nom de l'élément peut vous poser problème lorsque vous tenterez d'accéder à celui-ci par son nom. Utilisez plutôt l'indice numérique de l'élément dans ce cas, ou bien utilisez les simples guillemets pour entourer cet élément, comme :

variable = documents.forms[0].elements['var[]'];
      

Comment puis-je passer une variable de Javascript vers PHP ?

Javascript est (habituellement) une technologie côté client et PHP est (habituellement) une technologie côté serveur et sachant que HTTP est un protocole statique, les deux langages ne peuvent pas directement partager des variables.

Cependant, il est possible de faire passer des variables entre les deux. Une des solutions pour cela est de générer un code Javascript à l'aide de PHP et de faire rafraîchir le navigateur tout seul, passant ainsi des variables spécifiques au script PHP. L'exemple suivant montre précisément comme réaliser cela -- il permet à PHP de récupérer les dimensions de l'écran du client, ce qui est normalement possible qu'en technologie coté client.

Exemple #4 Génération de Javascript avec PHP

<?php
if (isset($_GET['largeur']) AND isset($_GET['hauteur'])) {
  
// Affichage des variables
  
echo 'La largeur de l\'écran est : ' $_GET['largeur'] ."<br />\n";
  echo 
'La hauteur de l\'écran est : ' $_GET['hauteur'] . "<br />\n";
} else {
  
// passage des variables de dimensions
  // (préservation de la requête d'origine
  //   -- les variables par méthode POST doivent être traitées différemment)

  
echo "<script type=\"text/javascript\">\n";
  echo 
"  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            
"&largeur=\" + screen.width + \"&hauteur=\" + screen.height;\n";
  echo 
"</script>\n";
  exit();
}
?>



PHP et COM

PHP peut être utilisé pour accéder à des objets COM et DCOM sur les plates-formes Win32.

J'ai compilé une DLL pour calculer quelque chose. Y a-t-il un moyen d'utiliser cette DLL sous PHP ?

Si c'est une DLL simple, il n'y a aucun moyen pour le moment de l'utiliser avec PHP. Si la DLL contient un serveur COM, vous pourrez l'utiliser si elle implémente l'interface IDispatch.

Que signifie 'Unsupported variant type: xxxx (0xxxxx)' ?

Il y a des dizaines de types de VARIANT et de combinaisons entre elles. La plupart d'entre elles sont déjà supportées, mais quelques une ne sont toujours pas implémentées. Les tableaux ne sont pas complètement supportés. Seuls le tableaux unidimensionnels indexés peuvent être transmis entre PHP et COM. Si vous trouvez d'autres types qui ne sont pas supportés, reportez-les nous comme un bogue (si ce n'est pas déjà fait) et fournissez le plus d'informations possibles.

Est-il possible de manipuler des objets visuels en PHP ?

Généralement, c'est possible, mais comme PHP est utilisé le plus souvent en tant que langage de script web et dans un environnement de serveur web, les objets visuels n'apparaîtront jamais sur le bureau du serveur. Si vous voulez utiliser PHP pour scripter des applications, par exemple avec PHP-GTK, il n'y a aucune limitation à accéder et manipuler des objets visuels via COM.

Puis-je stocker un objet COM dans une session ?

Non, vous ne pouvez pas. Les instances COM sont traitées comme des ressources, ce qui signifie qu'elles ne sont disponibles que dans un seul contexte de script.

Comment puis-je intercepter des erreurs COM ?

En PHP 5, l'extension COM envoie des exceptions com_exception, que vous pouvez intercepter en inspectant le membre code pour déterminer que faire.

En PHP 4, il n'est pas possible d'intercepter des erreurs COM en dehors de la façon dont elles sont fournies par PHP lui-même (@, track_errors, ..).

Puis-je générer des fichiers DLL à partir de PHP comme je le fais avec Perl ?

Non, il n'y a malheureusement pas d'outil disponible pour le faire en PHP.

Que signifie 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' ?

Cette erreur peut avoir plusieurs causes :

  • le CLSID est incorrect
  • la DLL demandée est introuvable
  • le composant demandé n'implémente pas l'interface IDispatch

Comment puis-je utiliser des objets COM à partir d'un serveur distant ?

Exactement de la même manière qu'avec des objets locaux. Vous devez juste passer l'adresse IP de la machine distante en deuxième paramètre du constructeur COM.

Assurez-vous que vous avez spécifié com.allow_dcom=TRUE dans votre php.ini.

J'obtiens 'DCOM is disabled in C:\path...\scriptname.php on line 6', que dois-je faire ?

Éditez votre php.ini et mettez com.allow_dcom=TRUE.

Est-il possible de charger/manipuler des objets ActiveX dans une page en PHP ?

Cela n'a rien à voir avec PHP. Les objets ActiveX sont chargés côté client s'il sont demandés par le document HTML. Il n'y a aucune relation avec le script PHP et il n'y a pas d'interaction directe possible avec le serveur.

Est-il possible d'obtenir une instance fonctionnelle d'un composant ?

C'est possible avec l'aide de monikers. Si vous voulez des références multiples au même mot d'instance, vous pouvez créer une instance de la façon suivante :

<?php
$word 
= new COM("C:\docs\word.doc");
?>

Cela créera une nouvelle instance s'il n'y en a aucune disponible ou retournera un descripteur vers l'instance courante, si elle est disponible.

Y a-t-il moyen de manipuler un événement envoyé par un objet COM ?

Vous pouvez définir un moniteur d'événement (sink) et le lier en utilisant com_event_sink(). Vous pouvez utiliser com_print_typeinfo() pour que PHP génère un squelette pour la classe du moniteur d'événement.

J'ai des problèmes quand j'invoque une méthode d'un objet COM qui expose plus d'une interface. Que puis-je faire ?

La réponse est aussi simple que non satisfaisante. Je ne sais pas exactement, mais je pense que vous ne pouvez rien faire. Si quelqu'un a des informations spécifiques sur ce sujet, faites-le » moi savoir :)

Bon, PHP fonctionne avec COM, mais qu'en est-il de COM+ ?

COM+ étend COM avec un canevas pour gérer des composants via MTS et MSMQ mais il n'y a rien de particulier que PHP doit supporter pour utiliser de tels composants.

Si PHP peut manipuler des objets COM, peut-on imaginer d'utiliser des ressources de composants, en conjonction avec PHP ?

PHP ne supporte pas encore les transactions. Ainsi, si une erreur se produit, aucun rollback n'est initié. Si vous utilisez des composants qui supportent les transactions, vous devrez implémenter le gestionnaire de transactions par vous-même.



PHP et les autres langages

PHP est le meilleur langage pour la programmation web, mais qu'en est-il des autres langages ?

PHP contre ASP ?

ASP n'est pas vraiment un langage en lui-même, c'est l'acronyme de Active Server Pages, les langages courants pour programmer en ASP étant Visual Basic Script, JScript et C#, entre autres. Le plus gros inconvénient de ASP est que c'est un système propriétaire utilisé nativement sur Microsoft Internet Information Server (IIS). Cela limite sa disponibilité aux seules plates-formes Win32. Il existe cependant des projets pour utiliser ASP dans d'autres environnements et avec d'autres serveurs web : » InstantASP de » Halcyon (commercial), Chili!Soft ASP de » Chili!Soft (commercial) et » Mono (open-source). ASP est connu pour être un langage plus lent et plus lourd que PHP, mais aussi généralement moins stable. Les gens favorables à ASP prétendront que comme ils utilisent de base VBScript, c'est un langage facile à apprendre si vous connaissez déjà Visual Basic. Le support de ASP est activé par défaut dans IIS, le rendant facile à mettre en oeuvre et à utiliser. Les composants inclus de base dans ASP sont vraiment limités, et si vous devez utiliser des fonctionnalités "avancées" comme l'interaction avec des serveurs FTP, vous devrez acheter des composants supplémentaires.

PHP contre Cold Fusion ?

Si PHP est réputé pour être plus rapide et plus efficace pour la programmation complexe et pour tester de nouvelles idées, il est aussi réputé plus stable et moins consommateur de ressources. Bien que Cold Fusion ait eu une meilleure gestion des erreurs, une meilleure abstraction de bases de données et une meilleure gestion des dates, le retard en terme d'abstraction de bases de données a été comblé depuis PHP 4. Un autre point réputé pour être une des forces de Cold Fusion est sont excellent moteur de recherche, mais il peut paraître absurde d'intégrer un moteur de recherche dans un langage de script Web. PHP fonctionne sur quasiment toutes les plate-formes modernes alors que Cold Fusion ne supporte que Windows, Solaris, Linux, MacOS et AIX. Cold Fusion intègre un bon environnement de développement (IDE) et il est facile à apprendre, alors que PHP requiert davantage de connaissances en programmation. Cold Fusion est pensé pour des non-développeurs, alors que PHP est pensé pour les développeurs.

PHP contre Perl ?

Le plus grand avantage de PHP par rapport à Perl est que PHP a été pensé pour la programmation Web alors que Perl a été pensé pour faire des choses bien plus diversifiées, ce qui le rend bien plus compliqué. La complexité / flexibilité de Perl rend difficile la collaboration entre développeurs de niveaux différents. PHP a un formalisme moins confus et plus structuré sans pour autant perdre en flexibilité. PHP est aussi plus facile que Perl à intégrer dans du HTML. De façon générale, PHP a toutes les "bonnes" fonctionnalités de Perl : la construction, la syntaxe... sans pour autant être aussi compliqué que Perl. De plus, l'interpréteur en ligne de commande (CLI) de PHP est assez puissant pour faire les mêmes tâches de haut-niveau que celles pour lesquelles Perl était d'habitude utilisé. Perl est un véritable langage bien éprouvé, fidèle à ses bases depuis la fin des années 80, mais PHP est devenu mature et a évolué très rapidement, et continue encore de faire des progrès fantastiques.



Migration de PHP 4 à PHP 5

Cette section devrait vous aider à migrer de PHP 4 à PHP 5.

Migration de PHP 4 à PHP 5

Bien que PHP 5 offre beaucoup de nouvelles fonctionnalités, il a été prévu pour être compatible avec les anciennes versions de PHP autant que possible, avec un minimum de fonctionnalités rompues dans le processus.

Assurez-vous de lire l'annexe intitulé "Migrer en PHP 5" de ce manuel ; il contient beaucoup plus d'informations concernant la migration en PHP 5.

Est-ce que MySQL fonctionne en PHP 5 ? Il semble avoir disparu.

MySQL est supporté avec la seule différence que le support de MySQL n'est plus activé par défaut en PHP 5. Cela signifie essentiellement que PHP n'inclut pas automatiquement --with-mysql dans la configuration ; vous devez donc maintenant l'ajouter à la main lorsque vous compilez PHP. Les utilisateurs de Windows doivent éditer leur php.ini et activer la bibliothèque DLL php_mysql.dll, sachant qu'en PHP 4, cette bibliothèque n'existait pas, elle était automatiquement incluse dans le binaire PHP.

En outre, la bibliothèque cliente MySQL n'est plus incluse avec PHP. Plus de détails sur ce sujet sont consultables dans cette section de la FAQ ; lisez également la section MySQL pour les détails concernant l'installation de MySQL. Un exemple de ligne de configuration serait --with-mysql=/usr alors que les utilisateurs de Windows doivent avoir la bibliothèque DLL nommée libmySQL.dll de disponible sur leur système.

J'ai entendu dire que PHP 5 à un tout nouveau modèle objet ; est-ce que mon actuel code objet fonctionne ? Où puis-je trouver des informations concernant ces nouvelles fonctionnalités ?

Le principal changement en PHP 5 est le nouveau model objet car PHP 5 utilise désormais le Zend Engine 2.0. La directive zend.ze1_compatibility_mode active la compatibilité avec le Zend Engine 1.0 (PHP 4).

Le nouveau model objet est documenté dans la référence du langage orienté objet ainsi que dans les sections concernant la migration du model objet.

Donc, mise à part le nouveau modèle objet, qu'est-ce qui a changé dans PHP 5 ? En particulier, existe-t-il une version spécifique du manuel PHP ?

Peu de changements existent mise à part le modèle objet, lisez l'annexe "Migration 5" pour plus de détails. Il n'y a pas de version spécifique à PHP 5 de ce manuel car la majorité des fonctionnalités de PHP restent les mêmes.



Questions diverses

Il y'a quelques questions inclassables. Vous les trouverez ici.

Comment puis-je manipuler le manuel compressé en bzip2 sous Windows ?

Si vous n'avez pas d'outil d'archivage prenant en charge les fichiers au format bz2, » téléchargez l'outil en ligne de commande à partir de Redhat (merci de lire les informations plus bas).

Si vous préférez ne pas utiliser d'outil en ligne de commande, vous pouvez essayer des outils gratuits comme » Stuffit Expander, » UltimateZip, » 7-Zip, ou » Quick Zip. Si vous avez des outils comme » WinRAR ou » Power Archiver, vous pouvez facilement décompresser les fichiers bz2 avec. Si vous utilisez Total Commander (autrefois Windows Commander), un plugin bz2 est disponible gratuitement sur le site de » Total Commander.

L'outil en ligne commande bzip2 de Redhat :

Les utilisateurs du service pack 2 de Win2K doivent prendre la version 1.0.2, tous les autres utilisateurs de Windows doivent prendre la version 1.00. Après avoir téléchargé, renommez l'exécutable en bzip2.exe. Pour votre convenance, mettez-le dans un dossier dans votre path, c'est à dire C:\Windows où C représente votre disque où Windows est installé.

Note : Dans ce qui suit, lang représente votre langue et x le format désiré, par exemple : pdf. Pour décompresser php_manual_lang.x.bz2 suivez les instructions suivantes :

  • ouvrez un invite de commande
  • déplacez-vous dans le dossier où se trouvent les fichiers php_manual_lang.x.bz2
  • lancez la commande bzip2 -d php_manual_lang.x.bz2, pour extraire php_manual_lang.x dans ce même dossier

Dans le cas où vous avez téléchargé le fichier php_manual_lang.tar.bz2 avec beaucoup de fichiers HTML à l'intérieur, la procédure est la même. La seule différence est que vous obtiendrez un fichier php_manual_lang.tar. Le format tar est connu pour être pris en compte par la plupart des archiveurs de Windows, comme » WinZip.

Que signifie le caractère "&" devant les arguments dans les déclarations des fonctions comme la fonction asort() ?

Cela signifie que cet argument est passé par référence et que la fonction le modifiera, comme expliqué dans la documentation. Vous pouvez passer uniquement des variables de cette façon et vous n'avez pas besoin de les passer avec le caractère "&" dans l'appel de la fonction (car obsolète).

Comment puis-je gérer la directive register_globals ?

Pour plus d'informations concernant l'implication sur la sécurité de la directive register_globals, lisez le chapitre sur la sécurité concernant l'utilisation de register_globals.

Il est préférable d'utiliser les superglobals, plutôt que de remettre à on la directive register_globals.

Si vous êtes sur un serveur mutualisé avec la directive register_globals de positionnée à off et que vous devez utiliser des applications qui requièrent que cette option soit à on ou si vous êtes hébergés sur un serveur qui a cette directive d'activée mais que vous voudriez éliminer ce risque sécuritaire, vous devriez émuler l'argument opposé avec PHP. C'est toujours une bonne idée que de demander tout d'abord s'il est possible de modifier cette option dans la configuration de PHP mais si cela n'est pas possible, vous pouvez utiliser ces astuces de compatibilité.

Exemple #5 Émulation des Register Globals

Ceci émulera la directive register_globals à On. Si vous modifiez la directive variables_order, modifiez la variable $superglobals pour qu'elle corresponde à votre nouvelle directive..

<?php
// Émulation de register_globals à on
if (!ini_get('register_globals')) {
    
$superglobals = array($_SERVER$_ENV,
        
$_FILES$_COOKIE$_POST$_GET);
    if (isset(
$_SESSION)) {
        
array_unshift($superglobals$_SESSION);
    }
    foreach (
$superglobals as $superglobal) {
        
extract($superglobalEXTR_SKIP);
    }
}
?>

Ceci émulera register_globals à Off. Gardez à l'esprit que ce code doit être appelé au tout début de votre script ou après la fonction session_start() si vous l'utilisez pour commencer votre session.

<?php
// Émulation de register_globals à off
function unregister_GLOBALS()
{
    if (!
ini_get('register_globals')) {
        return;
    }

    
// Vous pouvez vouloir modifier cela pour avoir une erreur plus jolie
    
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
    die(
'Tentative d\'effacement des GLOBALS détectée');
    }

    
// Les variables à ne jamais effacer
    
$noUnset = array('GLOBALS',  '_GET',
    
'_POST',    '_COOKIE',
    
'_REQUEST''_SERVER',
    
'_ENV',     '_FILES');

    
$input array_merge($_GET,    $_POST,
    
$_COOKIE$_SERVER,
    
$_ENV,    $_FILES,
    isset(
$_SESSION) && is_array($_SESSION) ? $_SESSION : array());

    foreach (
$input as $k => $v) {
        if (!
in_array($k$noUnset) && isset($GLOBALS[$k])) {
            unset(
$GLOBALS[$k]);
        }
    }
}

unregister_GLOBALS();

?>




Annexes


Histoire de PHP

Sommaire

L'évolution de PHP s'est faite en quelques années. Devenir l'un des langages les plus importants du web ne fut pas une évolution simple. Pour ceux que ça intéresse, voici comment PHP a évolué jusqu'à aujourd'hui. Les vieilles versions de PHP sont disponibles dans le » musée PHP.


Histoire de PHP

PHP/FI

PHP a pris la suite d'un langage plus ancien, appelé PHP/FI. PHP/FI a été créé par Rasmus Lerdorf, en 1995. C'était initialement une bibliothèque de scripts Perl, dont il se servait pour noter les accès à son CV en ligne. Il donna le nom de 'Personnal Home Page Tools' à cette bibliothèque. Au fur et à mesure qu'il ajoutait de nouvelles fonctionnalités, Rasmus a transformé la bibliothèque en une implémentation en C, capable de communiquer avec les bases de données, et de créer des applications dynamiques et simples pour le web. Rasmus décida alors de publier » son code, pour que tout le monde puisse l'utiliser et en profiter. Cela appela aussi aux contributions et aux améliorations du code.

PHP/FI, qui signifie Personal Home Page / Forms Interpreter, (Home Page personnelle, Interpreteur de Formulaires), incluait plusieurs fonctionnalités de base que nous connaissons encore aujourd'hui. Il avait ces variables qui ressemblent au Perl, un système d'interprétation automatique des variables de formulaires, et une syntaxe qui s'intègre facilement dans HTML. La syntaxe elle-même était similaire à celle du Perl mais beaucoup plus limitée. Elle était simple et un peu incohérente.

En 1997, PHP/FI 2.0, la seconde version en langage C, avait déjà une audience estimée de plusieurs milliers d'utilisateurs dans le monde, et environ 50,000 noms de domaine indiquaient qu'ils avaient installé PHP. Cela représentait environ 1 % des noms de domaine sur l'Internet. Même si le nombre de contributeurs était plutôt élevé, PHP était toujours le projet d'un seul homme.

PHP/FI 2.0 fut publié officiellement en novembre 1997, après avoir passé l'essentiel de sa vie en version bêta. Peu de temps après, une version alpha de PHP 3.0 était publiée.

Exemple #1 Exemple de code PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Hé, vous utilisez Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Désolé, cette ligne n'existe pas<p>
<!--endif exit-->
  Bienvenue <!--$user-->!<p>
  Vous avez <!--$index:0--> crédits sur votre compte.<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 fut la première version du langage tel que nous le connaissons actuellement. Il fut créé par Andi Gutmans et Zeev Suraski en 1997, sous forme de réécriture complète de PHP/FI, lorsqu'ils s'aperçurent que PHP/FI était sous-performant pour leur application de commerce électronique. Dans un effort de coopération et de compatibilité avec les anciennes versions de PHP/FI, Andi, Rasmus et Zeev décidèrent de coopérer et d'annoncer PHP 3.0 comme le successeur officiel de PHP/FI. Le développement de PHP/FI 2.0 fut complètement arrêté.

Une des améliorations notables de PHP 3.0 fut ses capacités d'extensions. En plus de fournir une solide infrastructure aux utilisateurs finaux, des accès à de nombreuses bases de données et protocoles, PHP 3.0 proposait une API modulaire, qui attira des douzaines de développeurs. Ceux-ci réalisèrent et partagèrent de nouvelles extensions. Sans doute, ce fut la clé du succès retentissant de PHP 3.0. Les autres améliorations de PHP 3.0 furent le support de la syntaxe objet, et une syntaxe de langage plus robuste et cohérente.

Le nouveau langage fut publié sous un nouveau nom, qui indiquait clairement que le projet n'était plus un projet personnel, comme l'était PHP/FI 2.0. Il fut nommé 'PHP' avec une nouvelle signification : 'PHP: Hypertext Preprocessor'. C'est un acronyme récursif, c'est-à-dire qu'il se définit lui-même. En français, cela donne : 'Le préprocesseur Hypertexte, c'est PHP'.

À la fin de 1998, PHP avait conquis une base de plusieurs dizaines de milliers d'utilisateurs, et des centaines de milliers de sites indiquaient qu'ils l'utilisaient. Au plus fort de son utilisation, PHP 3.0 était installé sur 10 % du parc mondial de serveurs web.

PHP 3.0 fut officiellement publié en Juin 1998, après 9 mois de tests.

PHP 4

Durant l'hiver 1998, juste après la publication de PHP 3.0, Andi Gutmans et Zeev Suraski commencèrent la réécriture du moteur interne de PHP à la base. L'objectif était d'améliorer les performances de PHP avec les applications complexes et d'améliorer la modularité du code. Ces applications étaient rendues possibles par la syntaxe de PHP 3.0 mais le logiciel n'était pas conçu pour supporter efficacement ces applications.

Le nouveau moteur, appelé 'Zend Engine' (combinaison des noms de Zeev et Andi), atteint cet objectif avec succès, et la première version fut publiée vers la mi-1999. PHP 4.0, s'appuyant sur ce moteur et amélioré par un grand nombre de nouvelles fonctionnalités, fut publié officiellement en mai 2000, presque 2 ans après son prédécesseur. En plus de performances nettement plus élevées, PHP 4.0 apportait le support de nombreux serveurs web, les sessions HTTP, la bufferisation de sortie, une sécurité accrue des informations visiteurs et plusieurs nouvelles structures de langage.

Actuellement, PHP est utilisé par des centaines de milliers de développeurs, et plusieurs millions de sites web indiquent qu'ils sont configurés avec PHP, ce qui représente environ 20 % des noms de domaine sur Internet.

L'équipe de développement de PHP inclut des douzaines de développeurs, et d'autres équipes travaillent à des projets liés tels que PEAR ou la documentation.

PHP 5

PHP 5 est sorti en Juillet 2004 après un long développement et plusieurs pré-versions. Il est régi par son moteur, le Zend Engine 2.0 avec un nouveau modèle et des dizaines de nouvelles fonctionnalités.



Quelques projets liés à PHP

PEAR

» PEAR, signifie PHP Extension and Application Repository (initialement, PHP Extension and Add-on Repository) et est la première version des classes de base en PHP. Elle deviendra à terme le moyen privilégié de distribuer des extensions PHP entre développeurs.

PEAR a été conçu durant les débats tenus lors des PHP Developers' Meeting (PDM) (Rencontres de développeurs PHP), qui ont eu lieu en Janvier 2000 à Tel Aviv. Il a été créé à l'initiative de Stig S. Bakken, et dédié à sa première fille, Malin Bakken.

Depuis l'an 2000, PEAR a grossi jusqu'à devenir un projet significatif avec un groupe de développeurs compétents, qui travaillent à mettre en place une bibliothèque complète, réutilisable et commune à la communauté PHP entière. PEAR inclut une vaste sélection de classes de base pour réaliser une couche d'abstraction de bases de données, du cache, des calculs mathématiques et des transactions de commerce électronique.

Plus d'informations sur PEAR sont disponibles dans » le manuel.

Equipe d'assurance Qualité

» L'équipe d'assurance Qualité de PHP a été mise en place durant l'été 2000, en réponse aux critiques reçues par PHP 3.0, qui n'était pas suffisamment testé sur des environnements de production. L'équipe est constituée d'un groupe de développeurs de haut niveau, qui ont une bonne connaissance des sources PHP. Ces développeurs passent le plus clair de leur temps à localiser et supprimer les bogues trouvés dans PHP. De plus, il y a bien d'autres membres du groupe PHP qui testent et fournissent un compte-rendu fidèle de l'utilisation de PHP sur différentes plate-formes.

PHP-GTK

» PHP-GTK est la solution PHP pour écrire des applications avec interface, coté client. Andrei Zmievski se souvient de la création de PHP-GTK :

La programmation d'interface GUI a toujours été une passion pour moi, et je pensais que Gtk+ était une excellente bibliothèque, hormis le fait qu'elle était écrite en C, ce qui était plutôt laborieux. Après avoir assisté aux implémentations de PyGtk et GTK-Perl, j'ai décidé de voir si PHP pouvait disposer de sa propre interface avec Gtk+, même minimale. J'ai commencé au mois d'août 2000, alors que j'avais un peu plus de temps libre, et j'ai réalisé les premières expérimentations. Mon guide principal fut l'implémentation de PyGtk, qui était plutôt complète et avait une interface orientée objet. James Henstridge, l'auteur de PyGtk, fut d'une aide précieuse au démarrage du projet.

Réécrire toutes les interfaces de Gtk+ à la main était hors de question et j'ai pensé à réaliser un générateur de code, exactement comme PyGtk l'avait fait. Le générateur de code était un programme PHP qui lisait un ensemble de fichiers .defs, contenant les classes, constantes et méthodes Gtk+, puis générait le code d'interface de PHP. Ce qui ne pouvait pas être généré automatiquement était traité à la main, dans le fichier .overrides.

Travailler sur le générateur de code et sur l'infrastructure prit un peu de temps, car je n'avais pas beaucoup de temps à consacrer à PHP-GTK durant l'automne 2000. Après que j'ai montré PHP-GTK à Frank Kromann, il s'y intéressa et commença à m'aider sur le générateur et l'implémentation Win32. Lorsque nous écrivîmes le premier programme 'Hello World', ce fut extrêmement excitant. Cela a pris encore quelques mois pour avoir une version initiale. Elle fut publiée en mars 2001. Cela a encore pris quelques mois pour que le projet soit dans une forme présentable. Ce projet fut rapidement présenté sur SlashDot.

Anticipant que PHP-GTK serait un projet à part entière, j'ai installé des listes de diffusion et un serveur CVS indépendants, de même que le site gtk.php.net, avec l'aide de Colin Viebrock. La documentation demandait aussi de l'aide, et James Moore vint me porter une aide précieuse.

Depuis sa publication PHP-GTK a gagné en popularité. Nous avons notre propre équipe de documentation, et le manuel s'améliore de plus en plus. Des extensions ont été écrites pour PHP-GTK et des applications de plus en plus importantes sont conçues.



Livres traitant de PHP

Comme PHP a évolué, il a été reconnu comme une plate-forme de développement populaire. Un des signes qui ne trompent pas est que le nombre de livres dédiés à PHP a évolué parallèlement.

À notre connaissance, le premier livre dédié à PHP fut 'PHP - tvorba interaktivních internetových aplikací' - un livre tchèque publié en avril 1999, écrit par Jirka Kosek. Le mois suivant parut un livre allemand écrit par Egon Schmid, Christian Cartus et Richard Blume. Le premier livre en anglais sur PHP fut publié juste après : 'Core PHP Programming' par Leon Atkinson. Ces trois livres se rapportaient à PHP 3.0.

Même si ces livres restent uniques dans leur genre, ils furent rapidement suivis par un grand nombre d'autres livres, de différents éditeurs. Il y a plus de 40 livres en anglais, 50 en allemand et plus de 20 en français. De plus, on peut maintenant trouver des livres sur PHP dans de nombreuses autres langues, comme l'espagnol, le coréen, le japonais ou l'hébreu.

Ce grand nombre de livres, écrits par différents auteurs et publiés par différents éditeurs, ainsi que leur disponibilité en différentes langues, témoigne clairement du succès planétaire de PHP.



Publications sur PHP

À notre connaissance, le premier article consacré à PHP dans un magazine papier fut publié dans un magazine français, vers la fin 1998 et se rapportait à PHP 3.0. Comme pour les livres, ce fut le premier d'une longue série d'articles publiés dans différents magazines.

Des articles sur PHP ont été publiés dans Dr. Dobbs, Linux Enterprise, Linux Magazine et bien d'autres. Il existe même des articles sur la migration d'applications ASP vers PHP sous Windows dans la bibliothèque MSDN de Microsoft.




Migration de PHP 5.2.x vers PHP 5.3.x

Sommaire

Voir aussi les guides de migrations entre les différents versions de PHP 5.0.x, 5.1.x et 5.2.x.


Ce qui change en PHP 5.3.x

La majorité des améliorations de PHP 5.3.x n'ont pas d'impact sur le code existant. Il existe quelques incompatibilités et de nouvelles fonctionnalités qui doivent être prises en compte, et le code doit être testé avant de changer les versions en production.

Si le système est mis à jour à partir d'une vieille version de PHP, alors les documentations suivantes sont recommandées :



Évolutions incompatibles avec les versions précédentes

Même si l'essentiel du code PHP 5 va fonctionner sans modification, il faut faire attention aux situations suivantes, qui sont incompatibles avec les versions précédentes :

  • L'API interne d'analyse des paramètres a été appliquée à toute les extensions qui sont livrées avec PHP 5.3. Cette API retourne NULL si des paramètres incompatibles sont passés à la fonction. Il existe quelques exceptions, comme la fonction get_class() qui va retourner FALSE en cas d'erreur.
  • clearstatcache() ne vide pas le cache de chemins de la fonction realpath() par défaut.
  • realpath() est maintenant indépendant du système, et fonctionne sur toutes les plate-formes. Ceci a pour conséquence que les chemins relatifs incorrects comme __FILE__ . "/../x" ne fonctionnent plus.
  • Les fonctions call_user_func() et similaires propagent la variable $this, même si la fonction appelante est la classe parente.
  • Les fonctions de tableaux : natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip() et array_unique() n'acceptent plus les objets passés comme arguments. Si vous avez besoin d'accéder à leurs propriétés comme dans un tableau, il faudra commencer par transtyper les objets en tableau.
  • Le comportement des fonctions qui ont des paramètres par référence mais sont passés par valeur a changé. Alors que la fonction acceptait des arguments par valeur, une erreur fatale est maintenant émise. L'ancien code qui passait des constantes ou des valeurs à une fonction qui attendait des références doit être modifié pour assigner la valeur à une variable avant d'appeler la fonction.
  • La nouvelle bibliothèque mysqlnd impose l'utilisation du nouveau format de mot de passe de MySQL 4.1 (et plus récent). L'utilisation du vieux format de 16 octets fait que mysql_connect() produit le message d'erreur suivant : "mysqlnd cannot connect to MySQL 4.1+ using old authentication".
  • La nouvelle bibliothèque mysqlnd ne lit pas les fichiers de configuration MySQL (my.cnf/my.ini), alors que l'ancienne bibliothèque libmysql le faisait. Si votre code utilise les paramètres des fichiers de configuration MySQL, vous pouvez les charger explicitement en utilisant la fonction mysqli_options(). Notez que cela signifie que les constantes spécifiques PDO::MYSQL_ATTR_READ_DEFAULT_FILE et PDO::MYSQL_ATTR_READ_DEFAULT_GROUP ne sont pas définies si le support de MySQL dans PDO a été compilé avec mysqlnd.
  • Le caractère / final a été supprimé des retours de méthodes des classes SplFileInfo et des autres classes de dossier similaires.
  • La fonction magique __toString n'accepte plus d'arguments.
  • Les méthodes magiques __get, __set, __isset, __unset, __call doivent toujours être publiques, et ne peuvent plus être statiques. La signature des méthodes est vérifiée à la compilation.
  • La méthode magique __call est appelée en cas d'accès à une méthode privée ou protégée.
  • func_get_arg(), func_get_args() et func_num_args() ne peuvent plus être appelées depuis le contexte le plus éloigné d'un fichier qui a été inclus via include() ou require() depuis l'intérieur d'une fonction du fichier appelant.
  • Une couche d'émulation pour l'extension MHASH a été ajoutée. Cependant, tous les algorithmes ne sont pas pris en charge, notamment l'algorithme s2k. Ceci signifie que s2k n'est plus disponible à partir de PHP 5.3.0.

Les mots-clé suivants sont maintenant réservés, et ne peuvent plus être utilisés dans les noms de fonctions, de classes, etc.



Nouvelles fonctionnalités

PHP 5.3.0 contient un large éventail de nouvelles fonctionnalités.

  • Le support des espaces de noms (en anglais, namespaces) a été ajouté.
  • Le support de Late Static Bindings a été ajouté.
  • Le support des goto et étiquettes de saut (limited goto) a été ajouté.
  • Le support natif des fermetures (en anglais, Closures) fonctions anonymes et fonctions lambda, a été ajouté.
  • Il y a deux nouvelles méthodes magiques : __callStatic et __invoke ont été ajoutées.
  • La syntaxe Nowdoc a été ajoutée, et fonctionne comme la syntaxe Heredoc mais avec des guillemets simples.
  • Il est maintenant possible d'utiliser Heredoc pour initialiser des variables statiques ou des propriétés/constantes de classes.
  • La syntaxe Heredoc peut maintenant être déclarée en utilisant des guillemets doubles, complétant ainsi la syntaxe Nowdoc.
  • Les constantes peuvent être déclarées hors d'une classe à l'aide du mot-clé const.
  • L'opérateur ternaire dispose maintenant d'un raccourci sous la forme de ?:.
  • Le gestionnaire de flux HTTP considère maintenant tous les codes de 200 à 399 comme réussis.
  • L'accès dynamique aux méthodes statiques est maintenant possible.
  • Les exceptions peuvent être imbriquées.
  • Un collecteur de mémoire concernant les références circulaires a été ajouté et est activé par défaut.
  • La fonction mail() supporte maintenant l'historisation des emails envoyés. (Notes : ceci n'est valide que pour les emails émis avec cette fonction)


Évolutions du support de Windows

Évolutions dans les versions Windows :

  • La version minimale pour PHP est maintenant Windows XP SP3; Windows 98, ME et NT4 ne sont plus supportées.
  • Les binaires Windows ciblent maintenant les architectures i586 et plus récentes. i386 et i486 ne sont plus supportées.
  • Il y a maintenant un support expérimental des architectures 64 bits pour PHP sur Windows.
  • Le compilateur Visual C++ 9 (VC9) est maintenant supporté, via Visual Studio 2008. Les versions officielles et intermédiaires sont maintenant disponibles en VC9. Les anciennes versions basées sur VC6 sont toujours supportées, et seront livrées en même temps que celles compilées avec VC9.
  • La bibliothèque PDO_OCI php_pdo_oci8.dll (à utiliser avec les bibliothèques cliente Oracle version 8) ne sont plus compilées. Il est recommandé d'utiliser à la place php_pdo_oci.dll (notez l'absence de '8') avec les bibliothèques cliente Oracle 10 et 11. Les connexions aux autres versions sont supportées.
  • Pour l'extension OCI8, une nouvelle bibliothèque php_oci8_11g.dll est disponible, en plus de php_oci8.dll. Une seule d'entre elle peut être utilisée en même temps. Utilisez php_oci8.dll avec les bibliothèques client Oracle 10.2. Utilisez php_oci8_11g.dll avec les bibliothèque client Oracle 11. Les connexions aux autres versions de base de données sont supportées.

Le support Windows n'est plus le même pour les fonctions suivantes :

Autres modifications :

  • Amélioration de la portabilité des fonctions stat(), touch(), filemtime(), filesize() et associées (100% portable pour les données disponibles).
  • Il est désormais possible d'utiliser des liens en dur sur Windows en utilisant la fonction link() et des liens symboliques via la fonction symlink(). Les liens en dur sont disponibles depuis Windows 2000 et les liens symboliques depuis Windows Vista.
  • La version Windows de PHP publie une famille de constantes préfixées par PHP_WINDOWS_* : leur liste et leur utilisation est accessible Constantes pré-définies.
Avertissement

Le support du module ISAPI a été abandonné, au profit du SAPI FastCGI, plus rapide et plus moderne.

Note: Un nouveau site consacré à PHP sur Windows, incluant des téléchargements, des versions et des snapshots de différentes ascendances (avec ou sans sécurité des threads, VC6/VC9, x86/x64) est lancé. L'URL du site est » http://windows.php.net/.



Évolutions des modules SAPI

  • Un nouveau SAPI est disponible : litespeed.
  • Le support FastCGI dans le SAPI CGI est maintenant toujours activé et ne peut pas être désactivé. Repportez-vous à sapi/cgi/CHANGES pour plus de détails.
  • Une nouvelle option de SAPI CGI, -T, peut être utilisée pour mesurer la durée d'exécution d'un script, exécuté plusieurs fois.
  • CGI/FastCGI supporte maintenant les fichiers .htaccess pour des fichiers de variables personnalisées php.ini.
  • La fonction dl() est maintenant désactivée par défaut, et est disponible en CLI, CGI et pour les SAPI embarquées.


Fonctionnalités obsolètes en PHP 5.3.x

PHP 5.3.0 introduit deux nouveaux niveaux d'erreur : E_DEPRECATED et E_USER_DEPRECATED. Le niveau d'erreur E_DEPRECATED sert à indiquer qu'une fonctionnalité est obsolète, et E_USER_DEPRECATED sert à la même chose pour les fonctions utilisateur, tout comme E_USER_ERROR et E_USER_WARNING .

Voici une liste des directives INI obsolètes : si l'une d'entre elle est activée, elle va émettre une alerte d'obsolescence (E_DEPRECATED) au démarrage.

Fonctions obsolètes :

Fonctionnalités obsolètes :

  • Assigner la valeur de retour de l'opérateur new par référence est obsolète.
  • Le passage par référence à l'appel est maintenant obsolète.


Restauration de fonctionnalités dans PHP 5.3.x

La fonction is_a() a été restaurée par demande populaire, ce qui signifie qu'elle n'émet plus d'erreur E_STRICT.



Nouveaux paramètres

Certaines fonctions ont reçu de nouveaux paramètres, optionnels, en PHP 5.3.x :

Coeur de PHP :

json:

Stream:

sybase_ct:

Nouveaux paramètres de méthode en PHP 5.3.0.

PHP Core:

  • Exception:__construct() : ajout du paramètre previous.


Nouvelles fonctions

PHP 5.3 apporte de nouvelles fonctions :

Coeur de PHP :

Date/Heure:

GMP:

Hash:

IMAP:

  • imap_gc() : vide le cache IMAP.
  • imap_utf8_to_mutf7() : encode une chaîne UTF-8 en UTF-7 modifié.
  • imap_mutf7_to_utf8()() : décode une chaîne UTF-7 modifié en UTF-8.

JSON:

MySQL Improved:

OpenSSL:

PCNTL:

PCRE:

  • preg_filter() : effectue un remplacement par expression rationnelle et retourne uniquement les résultats correspondant au masque de recherche.

Semaphore:

Les fonctions suivantes sont implémentées nativement, elles sont donc disponibles quel que soit le système d'exploitation considéré:



Nouveaux gestionnaires de flux

Les gestionnaires de flux suivants on été ajoutés en 5.3.0 :



Nouveaux filtres de flux

Les filtres de flux suivants ont été ajoutés en PHP 5.3.0 :

  • dechunk
  • Le filtre bz2.decompress supporte maintenant la concaténation.


Nouvelles constantes de classe

De nouvelles constantes de classes ont été ajoutées en 5.3.0 :

PDO_FIREBIRD:

  • PDO::FB_ATTR_DATE_FORMAT : configure le format des dates.
  • PDO::FB_ATTR_TIME_FORMAT : configure le format des heures.
  • PDO::FB_ATTR_TIMESTAMP_FORMAT : configure le format des timestamps.


Nouvelles méthodes

De nouvelles méthodes ont été introduites en PHP 5.3.0 :

Date/Heure:

Exception:

DOM:

PDO_FIREBIRD:

Reflection:

  • ReflectionClass::getNamespaceName() : retourne le nom de l'espace de noms où la classe est définie.
  • ReflectionClass::getShortName() : retourne le nom court de la classe (sans l'espace de noms).
  • ReflectionClass::inNamespace() : indique si la classe est définie dans un espace de noms.
  • ReflectionFunction::getNamespaceName() : indique le nom de l'espace de noms où la classe est définie.
  • ReflectionFunction::getShortName() : retourne le nom court de la fonction (sans l'espace de noms).
  • ReflectionFunction::inNamespace() : indique si la fonction est définie dans un espace de noms.
  • ReflectionProperty::setAccessible() : modifie l'accessibilité de propriétés non-publiques.

SPL:

XSL:



Nouvelles extensions

Les nouvelles extensions suivantes ont été ajoutés (par défaut) dans PHP 5.3.0 :

  • Enchant : interface d'abstraction des bibliothèques de correction orthographique.
  • Fileinfo : remplacement avantageux de Mimetype, qui a été abandonnée.
  • INTL : extension d'internationalisation. INTL est une interface avec la bibliothèque » ICU.
  • Phar : implémentation des archives PHP.
  • SQLite3 : support des bases de données SQLite version 3.

mysqlnd est une nouvelle bibliothèque du coeur de PHP. C'est un remplacement spécifique à PHP de la bibliothèque libmysql. mysqlnd sert pour les extesnsions mysql, mysqli et PDO_MYSQL si libmysql n'est pas trouvée dans le système, mais il peut aussi être utilisé à la place de libmysql.



Extensions retirées

Ces extensions ont été placées dans PECL, et ne font plus partie de la distribution PHP. Le paquet PECL de ces extensions seront créés en fonction de la demande des utilisateurs.

  • dbase : plus entretenue.
  • fbsql : plus entretenue.
  • fdf : entretenue.
  • ming : entretenue.
  • msql : plus entretenue.
  • ncurses : entretenue.
  • sybase : abandonnée. Utilisez sybase_ct à la place, qui fait partie du coeur de PHP.
  • mhash : abandonnée. Utilisez plutôt hash à la place. hash supporte totalement mhash, et les applications seront compatibles.


Autres changements aux extensions

Les extensions suivantes ne peuvent plus être désactivées durant la compilation de PHP :

Modification du comportement des extensions et nouveautés :

  • Date et Heure : La variable d'environnement TZ n'est plus utilisée pour deviner le décalage horaire
  • cURL : cURL supporte maintenant SSH
  • Network : la fonction dns_check_record() retourne maintenant une nouvelle entrée "entries", qui contient l'élément TXT.
  • Hash : les algorithmes SHA-224 et salsa sont supportés.
  • mbstring : supporte maintenant l'encodage CP850.
  • OCI8 : appeler oci_close() avec une connexion persistante ou sur une variable qui fait référence à une connexion hors de contexte va maintenant annuler les transactions. Vous devez archiver explicitement, ou bien annuler si besoin. En utilisant oci8.old_oci_close_semantics=On dans le php.ini, vous obtiendrez l'ancien comportement. Le Database Resident Connection Pooling (DRCP) et Fast Application Notification (FAN) sont maintenant supportés. Oracle External Authentication est maintenant supporté (pas sur Windows). oci_bind_by_name() supporte maintenant SQLT_AFC (alias le type de données CHAR).
  • OpenSSL : support de OpenSSL digest et des fonctions de chiffrement. Il est aussi possible d'accéder aux valeurs internes des clés DSA, RSA et DH.
  • Session : les sessions ne stockent plus les fichiers dans le dossier "/tmp", si open_basedir est activé, sauf si "/tmp" est explicitement ajouté à la liste des chemins autorisés.
  • SOAP : supporte maintenant l'envoi de HTTP personnalisés.
  • MySQLi : supporte maintenant les connexions persistantes, quand on préfixe le nom d'hôte avec "p:".
  • Traitement d'image et GD L'index "JPG Support" retourné depuis la fonction gd_info() a été renommé en "JPEG Support".



Nouvelles constantes globales

Coeur de sPHP :

  • __DIR__
  • __NAMESPACE__
  • E_DEPRECATED
  • E_USER_DEPRECATED
  • INI_SCANNER_NORMAL
  • INI_SCANNER_RAW
  • PHP_MAXPATHLEN
  • PHP_WINDOWS_NT_DOMAIN_CONTROLLER
  • PHP_WINDOWS_NT_SERVER
  • PHP_WINDOWS_NT_WORKSTATION
  • PHP_WINDOWS_VERSION_BUILD
  • PHP_WINDOWS_VERSION_MAJOR
  • PHP_WINDOWS_VERSION_MINOR
  • PHP_WINDOWS_VERSION_PLATFORM
  • PHP_WINDOWS_VERSION_PRODUCTTYPE
  • PHP_WINDOWS_VERSION_SP_MAJOR
  • PHP_WINDOWS_VERSION_SP_MINOR
  • PHP_WINDOWS_VERSION_SUITEMASK

cURL:

  • CURLOPT_PROGRESSFUNCTION

GD :

  • IMG_FILTER_PIXELATE

JSON :

  • JSON_ERROR_CTRL_CHAR
  • JSON_ERROR_DEPTH
  • JSON_ERROR_NONE
  • JSON_ERROR_STATE_MISMATCH
  • JSON_ERROR_SYNTAX
  • JSON_FORCE_OBJECT
  • JSON_HEX_TAG
  • JSON_HEX_AMP
  • JSON_HEX_APOS
  • JSON_HEX_QUOT

LDAP :

  • LDAP_OPT_NETWORK_TIMEOUT

libxml:

  • LIBXML_LOADED_VERSION

PCRE :

  • PREG_BAD_UTF8_OFFSET_ERROR

PCNTL :

  • BUS_ADRALN
  • BUS_ADRERR
  • BUS_OBJERR
  • CLD_CONTIUNED
  • CLD_DUMPED
  • CLD_EXITED
  • CLD_KILLED
  • CLD_STOPPED
  • CLD_TRAPPED
  • FPE_FLTDIV
  • FPE_FLTINV
  • FPE_FLTOVF
  • FPE_FLTRES
  • FPE_FLTSUB
  • FPE_FLTUND
  • FPE_INTDIV
  • FPE_INTOVF
  • ILL_BADSTK
  • ILL_COPROC
  • ILL_ILLADR
  • ILL_ILLOPC
  • ILL_ILLOPN
  • ILL_ILLTRP
  • ILL_PRVOPC
  • ILL_PRVREG
  • POLL_ERR
  • POLL_HUP
  • POLL_IN
  • POLL_MSG
  • POLL_OUT
  • POLL_PRI
  • SEGV_ACCERR
  • SEGV_MAPERR
  • SI_ASYNCIO
  • SI_KERNEL
  • SI_MESGQ
  • SI_NOINFO
  • SI_QUEUE
  • SI_SIGIO
  • SI_TIMER
  • SI_TKILL
  • SI_USER
  • SIG_BLOCK
  • SIG_SETMASK
  • SIG_UNBLOCK
  • TRAP_BRKPT
  • TRAP_TRACE


Modifications à la gestion du fichier INI

PHP 5.3.0 a significativement amélioré les performances, l'analyse et la syntaxe du fichier php.ini.

  • Le fichier standard php.ini a été réorganisé, et renommé. php.ini-development contient les options qui sont recommandées pour un environnement de développement. php.ini-production contient les configurations recommandées pour la production.
  • Il y a désormais deux sections spéciales : [PATH=/opt/httpd/www.exemple.com/] et [HOST=www.exemple.com]. Les directives configurées dans ces sections ne peuvent pas être modifiées par des fichiers INI des utilisateurs, ou durant l'exécution. Pour plus d'informations sur ces sections, voyez ici.
  • zend_extension_debug et zend_extension_ts ont été supprimées. Maintenant, il existe une directive pour charger toutes les extensions Zend : zend_extension.
  • zend.ze1_compatibility_mode a été retirée. Si cette directive INI est activée, une alerte E_ERROR est émise au démarrage.
  • Il est désormais possible d'utiliser le chemin complet pour charger un module, en utilisant la directive "extension".
  • "ini-variables" peut être utilisé presque partout dans un fichier php.ini.
  • Des ajouts de restrictions à open_basedir peuvent être faits durant l'exécution.
  • Il est maintenant possible d'utiliser des variables alphanumériques ou des index de variables dans les tableaux d'options INI.
  • get_cfg_var() est maintenant capable de retourner les options sous forme de tableau
  • Une nouvelle directive mail.add_x_header a été ajoutée.
  • user_ini.filename a été ajouté
  • user_ini.cache_ttl a été ajouté
  • exit_on_timeout a été ajouté
  • open_basedir est maintenant PHP_INI_ALL

Les directives INI suivantes ont été ajoutées :

  • user_ini.filename et user_ini.cache_ttl pour les nouveaux mécanismes d'initialisation utilisateur.
  • Ajout de mbstring.http_output_conv_mimetype. Cette directive définit une expression rationnelle qui identifie les types de contenus pour lesquels mb_output_handler() est activé.
  • Ajout de request_order. Autorise le contrôle des options de requêtes disponibles dans $_REQUEST.

Le directives INI suivantes ont changé de valeur par défaut :

  • session.use_only_cookies vaut maintenant "1" (activé) par défaut.
  • oci8.default_prefetch a changé de valeur par défaut de "10" à "100".


Autres changements

  • SplFileInfo::getpathinfo() retourne désormais des informations sur le nom du chemin.
  • SplObjectStorage dispose maintenant du support de ArrayAccess. Il est aussi possible de stocker des informations associatives avec des objets dans SplObjectStorage.
  • Dans l'extension GD, le support de la pixelisation est maintenant possible à l'aide de la fonction imagefilter().
  • var_dump() affiche aussi les propriétés privées des objets.
  • session_start() retourne FALSE lorsque la session n'a pas pu être démarrée.
  • property_exists() vérifie désormais l'existence d'une propriété indépendante de son accessibilité (comme method_exists()).
  • Stream wrappers peut maintenant être utilisée par include_path.
  • Le paramètre initial de array_reduce() peut être de n'importe quel type.
  • Les fonctions de dossiers opendir(), scandir() et dir() utilise maintenant le contexte par défaut, si aucun contexte n'est passé en argument.
  • crypt() supporte maintenant Blowfish et le DES étendu. crypt() est maintenant 100% portable. PHP dispose de son propre crypt interne, qui se substitue lorsque crypt ou crypt_r n'est pas trouvé.
  • getopt() accepte des options longues sur toutes les plate-formes. Les valeurs optionnelles et le séparateur = est maintenant supporté pour les options courtes.
  • fopen() dispose d'un nouveau mode, n), dont l'utilisation va envoyer la constante O_NONBLOCK à l'appel système syscall() sous-jaçent. Notez que ce mode n'est pas supporté par Windows.
  • getimagesize() supporte maintenant les fichiers icônes (.ico).
  • L'extension mhash a été déplacée dans PECL, mais l'extension Hash a été modifiée pour supporter mhash si PHP est compilé avec l'option --with-mhash. Notez que l'extension Hash ne nécessite pas la bibliothèque mhash lors de l'utilisation de l'émulation mhash.



Migration de PHP 5.1.x à PHP 5.2.x

Sommaire

Voir aussi les guides de migrations entre les différents versions de PHP 5.0.x, 5.1.x et 5.3.x.


Ce qui a changé en PHP 5.2.x

La majorité des améliorations de PHP 5.2.x n'a aucun impact sur le code existant. Il y a quelques incompatibilités et de nouveaux messages d'erreur qui doivent être pris en compte, et le code doit être testé avant de changer la version des serveurs en production.

Si la version de PHP en production est 5.0.x, la section Notes de mise à jour pour PHP 5.1.x doit être lue également.

Similairement, si la version d'origine est une version 4, la section Migration de PHP 4 à PHP 5 doit être lue.



Changements incompatibles avec les versions précédentes

Même si la majorité du code PHP 5 devrait fonctionner sans modification, il est recommandé de surveiller les points suivants, qui introduisent des incompatibilités avec les versions précédentes.

  • La fonction getrusage() retourne NULL quand on lui passe des arguments incorrects depuis PHP 5.2.1.
  • ZipArchive::setCommentName() retourne TRUE en cas de succès depuis PHP 5.2.1.
  • ZipArchive::setCommentIndex() retourne TRUE en cas de succès depuis PHP 5.2.1.
  • SplFileObject::getFilename() retourne le nom du fichier, et non plus le chemin relatif jusqu'au fichier, depuis PHP 5.2.1.
  • Changement de priorité de la constante d'environnement PHPRC sur Windows 32. La variable d'environnement PHPRC a la priorité sur la valeur enregistrée dans la base de registre Windows.
  • CLI SAPI ne cherche plus dans cwd le fichier php.ini ni le fichier php-cli.ini En PHP 5.1.x, une fonctionnalité non-documentée a été ajoutée à la version CLI de PHP, pour rechercher dans le dossier courant un fichier de configuration PHP, menant à des comportements inattendus, si des fichiers inopinés étaient trouvés. Cette fonctionnalité a été supprimée en PHP 5.2.0, et PHP ne cherche plus dans le dossier de travail courant le fichier php.ini ni le fichier php-cli.ini. Voyez aussi la section sur la ligne de commande du manuel.
  • Ajout d'une alerte lors de calcul de modulo 0 Dans les versions précédentes de PHP, effectuer un calcul de modulo 0 ne donnait aucun message d'alerte, mais retournait la valeur inattendue FALSE. Depuis PHP 5.2.0, cette tentative conduit à l'émission d'une alerte de type E_WARNING, comme lorsque des divisions par zéro sont effectuées.
    <?php
    print 10 0;
    /* Warning:  Division by zero in filename on line n */
    ?>
  • Désormais, __toString() est appelé à chaque fois que c'est possible. La méthode magique __toString() est maintenant appelée dans tout contexte de chaîne, c'est à dire à chaque fois qu'un objet est utilisé comme chaîne de caractères. Le comportement par défaut qui retournait une chaîne représentant l'identifiant de l'objet a été abandonné en PHP 5.2.0. Il était devenu problématique, car un identifiant d'objet ne peut pas être considéré comme unique. Ce changement implique que votre application est erronée si elle utilise les identifiants d'objets comme valeur de retour. Une tentative d'utilisation de cette valeur comme chaîne de caractères produit maintenant une erreur fatale.
    <?php
    class foo {}
    $foo = new foo;
    print 
    $foo;
    /* Catchable fatal error:  Object of class foo could
       not be converted to string in filename on line n */
    ?>
    Même avec __toString(), les objets ne peuvent pas être utilisés comme des index ou des clés de tableaux. Nous envisageons d'ajouter un support natif de hachage ultérieurement, mais pour les versions 5.2.x, vous devrez fournir votre propre système, ou bien utiliser la nouvelle fonction SPL spl_object_hash(). __toString() ne peut pas émettre d'exception.
    <?php
    class foo {
        public function 
    __toString() {
            throw new 
    Exception;
        }
    }

    try {
        print new 
    foo;
        
    /* Fatal error:  Method foo::__toString() must
           not throw an exception in filename on line n */
    } catch(Exception $e) {}
    ?>
  • Abandon des fonctions de classes statiques et abstraites. A cause d'une inattention, PHP 5.0.x et 5.1.x permettaient les méthodes statiques abstraites dans les classes. Depuis PHP 5.2.x, seules les interfaces peuvent en avoir.
    <?php
    abstract class foo {
        abstract static function 
    bar();
        
    /* Strict Standards:  Static function foo::bar()
           should not be abstract in filename on line n */
    }
    ?>
  • L'extension Oracle nécessite au moins la version 10 d'Oracle, sous Windows.
  • Ajout du support de la RFC2397 (flux data:). L'introduction du flux de type 'data' peut conduire à un changement de comportement sous Windows. Si vous travaillez avec un système de fichiers NTFS, que vous utilisez vos propres meta-flux dans vos applications, et que vous avez déjà baptisé l'un des fichiers du nom de 'data:', accessible sans aucune information de chemin, sachez qu'il ne fonctionnera plus. Le correctif est d'utiliser le protocole 'file:' pour y accéder. Voyez aussi la » RFC 2397
    <?php
    /* lorsque allow_url_include vaut OFF (valeur par défaut) */
    include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
    /* Warning:  include(): URL file-access is disabled
       in the server configuration in filename on line n */
    ?>
  • Régression dans le masque glob() Dans la version 5.2.4, une mise à jour de sécurité a provoqué une régression des masques de la forme "/foo/*/bar/*". Depuis la version 5.2.5, au lieu d'émettre une alerte, la fonction glob() retourne FALSE lorsque les restrictions openbase_dir sont violées.


Nouveaux messages d'erreurs

Trouvez ci-dessous les nouveaux messages d'erreurs qui n'ont pas encore été abordés dans ce document.

Exemple #1 Dans le coeur de PHP

<?php
echo " ";
session_regenerate_id();
/*  Warning:  session_regenerate_id(): Cannot regenerate
    session id - headers already sent in filename on line n */

str_word_count("string"4);
/* Warning:  str_word_count(): Invalid format value 4
   in filename on line n */

strripos("foo""f"4);
/* Notice:  strripos(): Offset is greater than the
   length of haystack string in filename on line n */

strrpos("foo""f"4);
/* Notice:  strrpos(): Offset is greater than the
   length of haystack string in filename on line n */

/* As of PHP 5.2.1, when allow_url_include is OFF (default) */
include "php://input";
/* Warning:  include(): URL file-access is disabled
   in the server configuration in filename on line n */
?>

Exemple #2 Dans le coeur orienté objet de PHP

<?php
interface foo {
}
class 
bar implements foofoo {
}
/* Fatal error: Class bar cannot implement previously
   implemented interface foo in filename on line n */


class foo {
    public 
$bar;
    function 
__get($var)
    {
        return 
$this->bar;
    }
}

$foo = new foo;
$bar =& $foo->prop;
/* Notice: Indirect modification of overloaded property
   foo::$prop has no effect in filename on line n */


class foo implements iterator {
    public function 
current() {
    }
    public function 
next() {
    }
    public function 
key() {
    }
    public function 
valid() {
    }
    public function 
rewind() {
    }
}

$foo = new foo();
foreach(
$foo as &$ref) {}
/* Fatal error: An iterator cannot be used with foreach
   by reference in filename on line n */


class foo {
    private function 
__construct() {
    }
}
class 
bar extends foo {
    public function 
__construct() {
        
parent::__construct();
        
/* Fatal error:  Cannot call private
           foo::__construct() in filename on line n */
    
}
}
new 
bar;


stream_filter_register("""class");
/* Warning:  stream_filter_register(): Filter name
   cannot be empty in filename on line n */


stream_filter_register("filter""");
/* Warning:  stream_filter_register(): Class name
   cannot be empty in filename on line n */
?>

Exemple #3 Dans l'extension bzip2

<?php
bzopen
("""w");
/* Warning:  bzopen(): filename cannot be empty
   in filename on line n */

bzopen("foo""a");
/* Warning:  bzopen(): 'a' is not a valid mode for
   bzopen(). Only 'w' and 'r' are supported in
   filename on line n */

$fp fopen("foo""w");
bzopen($fp"r");
/* Warning:  bzopen(): cannot read from a stream
   opened in write only mode in filename on line n */
?>

Exemple #4 Dans l'extension datetime

<?php
strtotime
("today""now");
/* Warning:  strtotime() expects parameter 2 to be
   long, string given in filename on line n */

/* As of PHP 5.2.1 */
new DateTime(new stdclass);
/* Fatal error: Uncaught exception 'Exception' with
   message 'DateTime::__construct() expects parameter
   1 to be string, object given' in filename:n */
?>

Exemple #5 Dans l'extension dBase

<?php
dbase_open
("foo", -1);
/* Warning: Invalid access mode -1 in filename on line n */

/* As of PHP 5.2.1 */
dbase_open("foo"null);
/* Warning: The filename cannot be empty in filename on line n */
?>

Exemple #6 Dans l'extension mcrypt

<?php
$key 
"this is a secret key";
$td mcrypt_module_open('tripledes''''ecb''');
$iv mcrypt_create_iv (mcrypt_enc_get_iv_size($td),
                        
MCRYPT_RAND);
mcrypt_generic_init($td$key$iv);
$encrypted_data mcrypt_generic($td"");
/* Warning: mcrypt_generic(): An empty string was
   passed in filename on line n */
?>

Exemple #7 Dans l'extension oci8

<?php
oci_connect
("user""pass""db""bogus_charset");
/* Warning: Invalid character set name:
   bogus_charset in filename on line n */

$oci oci_connect("user""pass""db");
oci_password_change($oci"""old""new");
/* Warning: username cannot be empty in filename
   on line n */

oci_password_change($oci"user""""new");
/* Warning: old password cannot be empty in filename
   on line n */

oci_password_change($oci"user""old""");
/* Warning: new password cannot be empty in filename
   on line n */
?>

Exemple #8 Dans l'extension SPL

<?php
$obj 
= new SplFileObject(__FILE__);
$obj->fgetcsv("foo");
/* Warning:  SplFileObject::fgetcsv(): delimiter must
   be a character in filename on line n */

$obj->fgetcsv(",""foo");
/* Warning:  SplFileObject::fgetcsv(): enclosure must
   be a character in filename on line n */
?>

Exemple #9 Dans l'extension Semaphore (sysvmsg)

<?php
/* Warning:  maximum size of the message has to be
   greater then zero in filename on line n */
?>

Exemple #10 Un exemple en PHP 5.2.1+ de Zip

<?php
$obj 
= new ZipArchive();
$obj->open('archive.zip');
$obj->setCommentName('''comment');
/* Notice:  ZipArchive::setCommentName(): Empty string
   as entry name in filename on line n */

/* As of PHP 5.2.1 */
$obj->getCommentName('');
/* Notice:  ZipArchive::getCommentName(): Empty string
   as entry name in filename on line n */
?>



Modification dans le support PHP de datetime

Depuis PHP 5.1.0, il existe une extension date dans le coeur de PHP. C'est une nouvelle implémentation du support des dates et heures en PHP. Même si PHP tente de deviner le fuseau horaire tout seul, il est recommandé de le configurer manuellement. Vous pouvez le faire de trois manières :

Tous les fuseaux horaires supportés sont listés dans le manuel PHP.

Avec l'arrivée de PHP 5.2.x, il y a une représentation objet des dates et fuseaux horaires, qui portent respectivement le nom anglais de DateTime et DateTimeZone. Les méthodes associées sont directement reliées à leurs cousines procédurales.



Nouveaux paramètres

Certaines fonctions ont reçu de nouveaux paramètres optionnels en PHP 5.2.x :

Coeur de PHP :

curl:

datetime

  • date() : ajout du caractère de format "u" (millisecondes) en PHP 5.2.2

imap:

mbstring:

  • mb_strrpos() : ajout du paramètre offset
    Avertissement

    Le paramètre offset a été ajouté à la place du paramètre encoding. La compatibilité ascendante a été assurée en permettant au paramètre encoding d'être précisé comme troisième paramètre. L'utilisation du mode de compatibilité n'est pas recommandé, car il sera supprimé dans une version ultérieure.

ming:

openssl:

pgsql:

simplexml:

spl:

  • array iterator_to_array(Traversable it [, bool use_keys = true]) : ajout du paramètre use_keys en PHP 5.2.1

xmlreader:

XMLWriter:



Nouvelles fonctions

PHP 5.2.x présente de nouvelles fonctions :

Coeur de PHP :

Image:

libXML:

mbstring:

  • mb_stripos() : trouve la position de la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse.
  • mb_stristr() : trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse.
  • mb_strrchr() : trouve la dernière occurrence d'un caractère dans une chaîne.
  • mb_strrichr() : trouve la dernière occurrence d'un caractère dans une chaîne, sans tenir compte de la casse.
  • mb_strripos() : trouve la position de la dernière occurrence d'une chaîne dans une autre, sans tenir compte de la casse.
  • mb_strstr() : trouve la première occurrence d'une chaîne dans une autre.

ming (depuis PHP 5.2.1):

  • void ming_setSWFCompression(int num) : configure la compression de sortie.
  • void swfmovie::namedanchor(string name) : crée une ancre.
  • void swfmovie::protect([string password]) : protège par mot de passe.

openssl:

spl:

  • spl_object_hash() : retourne un identifiant hash d'un objet.
  • int iterator_apply(Traversable it, mixed function [, mixed params]) : appelle une fonction pour chaque élément d'un itérateur.

pcre:

  • preg_last_error() : retourne le code d'erreur de la dernière expression rationnelle.

pgsql:

  • pg_field_table() : retourne le nom de la table à laquelle appartient le fichier, ou bien l'oid du tableau si oid_only vaut TRUE.

posix:

gmp:

xmlwriter:

  • xmlwriter_full_end_element() : ferme l'élément courant. Retourne FALSE en cas d'erreur.
  • xmlwriter_write_raw() : écrit le texte. Retourne FALSE en cas d'erreur.
  • xmlwriter_start_dtd_entity() : crée une entité DTD. Retourne FALSE en cas d'erreur.
  • xmlwriter_end_dtd_entity() : ferme une entité DTD Entity. Retourne FALSE en cas d'erreur.
  • xmlwriter_write_dtd_entity() : écrit une balise DTD complète. Retourne FALSE en cas d'erreur.


Nouvelles méthodes

De nouvelles méthodes on été introduites en PHP 5.2.0 :

dom:

  • DOMDocument::registerNodeClass() : enregistre une classe étendue pour créer un noeud de base.
  • DOMElement::setIDAttribute() : déclare l'attribut, identifié par son nom, de type ID.
  • DOMElement::setIDAttributeNode() : déclare l'attribut, identifié par son noeud, de type ID.
  • DOMElement::setIDAttributeNS() : déclare l'attribut, identifié par son nom local, de type ID.
  • DOMNode::C14N()([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) : canonise les noeuds dans une chaîne.
  • DOMNode::C14NFile()(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) : canonise les noeuds dans un fichier.
  • DOMNode::getNodePath()() : obtient un xpath pour un noeud.

soap:

spl:

Tidy

XMLReader

zip:



Extensions supprimées

Ces extensions ont été déplacées dans PECL et ne font plus partie de la distribution de PHP. Les paquets PECL de ces extensions seront créés sur demande.



Nouvelles extensions

Les extensions suivantes ont été ajoutées à la distribution standard de PHP, depuis PHP 5.2.1 :

  • Filter : valide et filtre les données. Cette extension est conçue pour être utilisée avec des données utilisateurs entrantes. Cette extension est activée par défaut ; le mode par défaut est RAW (brut), et n'a aucun impact sur les données.
  • JSON : implémente le format d'échange de données JavaScript Object Notation (JSON). Cette extension est activée par défaut.
  • Zip : permet l'utilisation transparente des fichiers d'archives compressées ZIP.


Nouvelles classes

Les classes suivantes ont été introduites en PHP 5.2.0 :

  • DateTime
  • DateTimeZone
  • RegexIterator, étend FilterIterator ; implémente Iterator, Traversable, OuterIterator Constantes :
    • RegexIterator::ALL_MATCHES
    • RegexIterator::GET_MATCH
    • RegexIterator::MATCH
    • RegexIterator::REPLACE
    • RegexIterator::SPLIT
    • RegexIterator::USE_KEY
    Propriétés :
    • public replacement
    Méthodes:
    • RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]]) : crée un RegexIterator à partir d'un autre itérateur et une expression rationnelle.
    • bool RegexIterator::accept() : applique l'expression rationnelle à (string) current().
    • bool RegexIterator::getFlags() : retourne les options de l'opération courante.
    • bool RegexIterator::getMode() : retourne le mode d'opération courant.
    • bool RegexIterator::getPregFlags() : retourne les options PREG courantes (si elles sont utilisées, sinon NULL).
    • bool RegexIterator::setFlags(int new_flags) : configure les options d'opération.
    • bool RegexIterator::setMode(int new_mode) : configure le nouveau mode d'opération.
    • bool RegexIterator::setPregFlags(int new_flags) : configure les options PREG.
  • RecursiveRegexIterator Constantes :
    • RecursiveRegexIterator::ALL_MATCHES
    • RecursiveRegexIterator::GET_MATCH
    • RecursiveRegexIterator::MATCH
    • RecursiveRegexIterator::REPLACE
    • RecursiveRegexIterator::SPLIT
    • RecursiveRegexIterator::USE_KEY
    Méthodes :
    • RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]]) : crée un RecursiveRegexIterator à partir d'un autre itérateur récursif, et d'une expression rationnelle.
    • RecursiveRegexIterator RecursiveRegexIterator::getChildren() : retourne le fils interne d'un itérateur contenu dans RecursiveRegexIterator.
    • bool RecursiveRegexIterator::hasChildren() : vérifie si l'itérateur interne a un fils.


Nouvelles constantes globales

Coeur de PHP :

  • M_EULER
  • M_LNPI
  • M_SQRT3
  • M_SQRTPI
  • PATHINFO_FILENAME
  • PREG_BACKTRACK_LIMIT_ERROR
  • PREG_BAD_UTF8_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_NO_ERROR
  • PREG_RECURSION_LIMIT_ERROR
  • UPLOAD_ERR_EXTENSION
  • STREAM_SHUT_RD
  • STREAM_SHUT_WR
  • STREAM_SHUT_RDWR

curl:

  • CURLE_FILESIZE_EXCEEDED
  • CURLE_FTP_SSL_FAILED
  • CURLE_LDAP_INVALID_URL
  • CURLFTPAUTH_DEFAULT
  • CURLFTPAUTH_SSL
  • CURLFTPAUTH_TLS
  • CURLFTPSSL_ALL
  • CURLFTPSSL_CONTROL
  • CURLFTPSSL_NONE
  • CURLFTPSSL_TRY
  • CURLOPT_FTP_SSL
  • CURLOPT_FTPSSLAUTH
  • CURLOPT_TCP_NODELAY Ajoutée en PHP 5.2.1.
  • CURLOPT_TIMEOUT_MS Ajoutée en PHP 5.2.3
  • CURLOPT_CONNECTTIMEOUT_MS Ajoutée en PHP 5.2.3

GMP:

  • GMP_VERSION Ajoutée en PHP 5.2.2.

ming:

  • SWFTEXTFIELD_USEFONT
  • SWFTEXTFIELD_AUTOSIZE
  • SWF_SOUND_NOT_COMPRESSED
  • SWF_SOUND_ADPCM_COMPRESSED
  • SWF_SOUND_MP3_COMPRESSED
  • SWF_SOUND_NOT_COMPRESSED_LE
  • SWF_SOUND_NELLY_COMPRESSED
  • SWF_SOUND_5KHZ
  • SWF_SOUND_11KHZ
  • SWF_SOUND_22KHZ
  • SWF_SOUND_44KHZ
  • SWF_SOUND_8BITS
  • SWF_SOUND_16BITS
  • SWF_SOUND_MONO
  • SWF_SOUND_STEREO

openssl :

  • OPENSSL_VERSION_NUMBER
  • OPENSSL_VERSION_TEXT

snmp :

  • SNMP_OID_OUTPUT_FULL
  • SNMP_OID_OUTPUT_NUMERIC

Semaphore :

  • MSG_EAGAIN
  • MSG_ENOMSG


Nouvelles constantes de classe

pdo :

  • PDO::ATTR_DEFAULT_FETCH_MODE
  • PDO::FETCH_PROPS_LATE
  • PDO::FETCH_KEY_PAIR Lit un résultat de deux colonnes dans un tableau associatif. (Ajouté en PHP 5.2.3)

spl :

  • CachingIterator::FULL_CACHE
  • CachingIterator::TOSTRING_USE_INNER
  • SplFileObject::READ_AHEAD
  • SplFileObject::READ_CSV
  • SplFileObject::SKIP_EMPTY


Nouvelles directives INI

Les nouvelles directives php.ini introduites en PHP 5.2.0 :

  • allow_url_include Cette option pratique permet de faire la différence entre les opérations de fichiers et les inclusions de code. Alors que les premières sont souvent utiles, les secondes sont des risques de sécurité, lorsqu'elles sont autorisées naïvement. Depuis PHP 5.2.0, vous pouvez autoriser les opérations sur les fichiers distants, mais interdire les inclusions de fichiers locaux. En fait, c'est la configuration par défaut.
  • pcre.backtrack_limit Limitation du suivi de PCRE.
  • pcre.recursion_limit Limite de récursion de PCRE. Notez que si vous donnez à cette directive une valeur trop grande, vous pouvez consommer toute la pile d'exécution, et planter PHP (due à une limite de pile imposée par le système d'exploitation).
  • session.cookie_httponly Configure le cookie comme n'étant accessible que par protocole HTTP. Cela signifie que le cookie ne peut pas être accessible par des langages comme JavaScript. Cette configuration peut aider à prévenir le vol de cookie via des attaques XSS (même si tous les navigateurs ne la supportent pas encore).

Nouvelles directives de PHP 5.2.2 :



Rapports d'erreur

Certaines des conditions E_ERROR ont été converties en erreurs qui peuvent être interceptées par un gestionnaire d'erreur local. Si E_RECOVERABLE_ERROR n'est pas géré, il sera géré de la même manière que E_ERROR dans les autres versions de PHP. Les erreurs de ce type sont identifiées comme Catchable fatal error.

Cette modification signifie que la valeur de la constante E_ALL error_reporting est maintenant de 6143, alors qu'elle était de 2047 auparavant. Commme les constantes PHP n'ont pas de signification hors de PHP, il arrive que la valeur entière soit utilisée à la place de la constante, et il faudra alors modifier ces valeurs. Par exemple, configurer le rapport d'erreur dans le fichier httpd.conf ou dans les fichiers .htaccess doit se faire maintenant avec la valeur 6143. Cela s'applique aussi aux valeurs numériques utilisées directement dans les scripts.

Un effet secondaire de la modification faite pour éviter les messages récurrents avec track_errors à On, est qu'il est désormais nécessaire de retourner FALSE depuis le gestionnaire d'erreur pour remplir la variable $php_errormsg. Cela fournit un contrôle fin sur les messages stockés.



Améliorations

  • Amélioration du gestionnaire de mémoire, et augmentation du niveau de mémoire par défaut. Le nouveau gestionnaire de mémoire consomme moins de mémoire et travaille plus vite que sa version précédente. Il demande de la mémoire au système par gros bloc, puis gère son stock lui-même. La valeur de memory_limit dans php.ini est vérifiée non plus pour chaque appel à emalloc() mais pour chaque allocation de bloc. Cela signifie que memory_limit est bien plus précis qu'avant, car le vieux gestionnaire de mémoire ne calculait pas toute la mémoire consommée par la bibliothèque malloc. Grâce à cette nouvelle précision, la quantité de mémoire semble avoir augmenté, mais ce n'est pas le cas. Pour s'adapter à cette augmentation artificielle, la directive memory_limit a été augmentée de 8 à 16 Mo.
  • Ajout du support des constructeurs dans les interfaces, pour forcer la signature des constructeurs via les interfaces. Depuis PHP 5.2.0, les interfaces peuvent contenir des constructeurs. Toutefois, si vous choisissez de déclarer un constructeur dans une interface, les classes qui l'implémentent DOIVENT inclure un constructeur avec une signature qui correspond à celle de l'interface originale. Par signature, nous signifions les paramètres et les types retournés, incluant les types de paramètres, et leur passage par référence ou par valeur.



Migration de PHP 5.0.x à PHP 5.1.x

Sommaire

Voir aussi les guides de migrations entre les différents versions de PHP 5.0.x, 5.2.x et 5.3.x.


Nouvelles fonctionnalités PHP 5.1.x

Ce qui a changé en PHP 5.1.x :

  • Réécriture complète de la gestion des dates, avec support des fuseaux horaires.

  • Amélioration significative des performances comparés à PHP 5.0.X.

  • L'extension PDO est maintenant activée par défaut.

  • Plus de 30 nouvelles fonctions dans différentes extensions et fonctions natives.

  • Plus de 400 corrections de bogues.



Changement dans la gestion des références

Présentation

Du point de vue du programmeur, le changement qui aura le plus d'impact sur le code déjà écrit est la manière avec laquelle les références sont gérées dans les versions PHP 4.4.0 et plus récentes.

Jusqu'à la version PHP 4.3 incluse, il était possible d'envoyer, assigner ou retourner des variables par références, alors qu'elles auraient dues être retournées par valeur, comme des constantes, des valeurs temporaires (comme le résultat d'une expression), ou le résultat d'une fonction qui elle-même, retourne une valeur.

<?php
$foo 
"123";

function 
return_value() {
    global 
$foo;
    return 
$foo;
}

$bar = &return_value();
?>

Même si ce code fonctionne tel qu'attendu en PHP 4.3, en général il conduit à une situation indéfinie. Le moteur Zend ne peut pas fonctionner correctement avec des valeurs passées par références. Ce bogue peut et a conduit à des corruptions de mémoire difficiles à reproduire, notamment lorsque le code de l'application est compliqué.

En PHP 4.4.0, PHP 5.0.4 et toutes les versions plus récentes, le moteur Zend a été modifié pour reconnaître les cas où une valeur ne doit pas être utilisée par référence. La valeur réelle est maintenant utilisée dans ces cas, et une alerte est émise. Cette alerte prend la forme d'un message E_NOTICE en PHP 4.4.0 et plus récent, et E_STRICT en PHP 5.0.4 et plus récent.

Du code qui pouvait produire des corruptions de mémoire ne peut plus le faire. Cependant, certains codes anciens peuvent fonctionner de manière différente.

Code qui fonctionnait en 4.3.x, mais qui échoue maintenant

<?php
function func(&$arraykey) {
    return 
$arraykey// la fonction retourne par valeur!
}

$array = array('a''b''c');
foreach (
array_keys($array) as $key) {
    
$y = &func($array[$key]);
    
$z[] =& $y;
}

var_dump($z);
?>
<

L'exécution du script ci-dessus dans une version de PHP antérieure à la correction du bogue produit ce résultat :

array(3) {
  [0]=>
  &string(1) "a"
  [1]=>
  &string(1) "b"
  [2]=>
  &string(1) "c"
}

Après la correction du bogue, cela donne :

array(3) {
  [0]=>
  &string(1) "c"
  [1]=>
  &string(1) "c"
  [2]=>
  &string(1) "c"
}

Ceci est dû au fait que func() effectue une assignation par valeur. La valeur de $y est réassignée, et que la liaison par référence avec $z est préservée. Avant la correction du bogue, la valeur était assignée par référence, faisant que la variable $y était réassignée à chaque assignement. La tentative de liaison avec une valeur temporaire est la cause de la corruption de la mémoire.

Ce code peut être réparé pour fonctionner à l'identique avec des versions pré et post-correction. La signature de func() peut être modifiée pour retourner les valeurs par référence, ou bien l'affectation par référence peut être supprimée du résultat de func().

<?php
function func() {
    return 
'function return';
}

$x 'original value';
$y =& $x;
$y = &func();
echo 
$x;
?>

En PHP 4.3, $x vaudrait 'original value', alors qu'après le changement, il vaudrait 'function return' : n'oubliez pas que la fonction ne retourne plus par référence, et que la référence est convertie en affectation par valeur. Encore une fois, cela peut être corrigé en forçant func() à retourner par référence, ou bien en éliminant l'affectation par référence.

Code qui fonctionnait en PHP 4.3.x, mais qui émet maintenant une erreur

<?php
class Foo {

    function 
getThis() {
        return 
$this;
    }

    function 
destroyThis() {
        
$baz =& $this->getThis();
    }
}

$bar = new Foo();
$bar->destroyThis();
var_dump($bar);
?>

En PHP 5.0.3, $bar vaut NULL au lieu de l'objet attendu. Cela arrive car getThis() retourne une valeur, mais que la valeur est assignée par référence. Même si cela fonctionne désormais comme attendu, ce code est en fait invalide, et émettra une alerte E_NOTICE sous PHP 4.4 ou E_STRICT en PHP 5.0.4 et plus récent.

Code qui échouaient en PHP 4.3.x, mais qui fonctionne maintenant

<?php
function &f() {
    
$x "foo";
    
var_dump($x);
    print 
"$x\n";
    return(
$a);
}

for (
$i 0$i 3$i++) {
    
$h = &f();
}
?>

En PHP 4.3, le troisième appel à var_dump() produit NULL, à cause d'une correction de la mémoire, causée par le retour d'une valeur non initialisée par référence. C'est du code valide en PHP 5.0.4 et plus récent, mais il produit une erreur dans les versions plus anciennes.

<?php
$arr 
= array('a1' => array('alfa' => 'ok'));
$arr =& $arr['a1'];
echo 
'-'.$arr['alfa']."-\n";
?>

Jusqu'en PHP 5.0.5, il n'était pas possible d'assigner un élément de tableau par référence de cette manière. C'est corrigé maintenant.

Code qui aurait du fonctionner en PHP 5.0.x

Il y a quelques cas de bogues rapportés en PHP PHP 5.0 avant la correction de ce bogue qui 'refonctionnent'. Cependant, dans tous les cas, des erreurs sont émises en PHP 5.1.x, car le code est invalide. Retourner des références avec self:: fonctionne maintenant, mais émet une alerte E_STRICT, et même si votre expérience est différente lors de l'assignation d'un objet par référence, vous verrez toujours une erreur E_ERROR lorsque vous tentez cela même si l'assignation semble fonctionner.

Alertes qui vont et viennent

Des appels imbriqués à des fonctions retournant des valeurs par référence sont valides en PHP 4.3.x et PHP 5.1.x, mais ils émettent des erreurs E_NOTICE et E_STRICT dans les nouvelles versions de PHP.

<?php
function & foo() {
    
$var 'ok';
    return 
$var;
}

function & 
bar() {
    return 
foo();
}

$a =& bar();
echo 
"$a\n";
?>


Lecture de []

<?php
class XmlTest {

    function 
test_ref(&$test) {
        
$test "ok";
    }

    function 
test($test) { }

    function 
run() {
        
$ar = array();
        
$this->test_ref($ar[]);
        
var_dump($ar);
        
$this->test($ar[]);
    }
}

$o = new XmlTest();
$o->run();
?>

Ce code va toujours émettre une alerte fatale E_ERROR, car l'opérateur [] ne peut pas être utilisé pour lire des données. C'est du code invalide depuis PHP 4.4.2 et PHP 5.0.5.



Valeurs entières dans les paramètres de fonction

Avec la venue de PHP 5.0.x, une nouvelle API d'analyse des arguments a été introduite entre 5.0.x et 5.1.x. La gestion des entiers est très stricte, et rejette tous les nombres qui ne sont pas valides lorsque PHP attend un entier. Ces validations ont maintenant été assouplies, pour accepter des chaînes telles que " 123" et "123 ", et elles ne les refuseront plus comme c'était le cas en PHP 5.0.x. Toutefois, pour faire la promotion de la sécurité et de la validation, les fonctions PHP vont désormais émettre des alertes E_NOTICE lorsque de tels arguments sont donnés.



Changements dans les classes et objets

instanceof, is_a(), is_subclass_of() et catch

En PHP 5.0, is_a() a été rendu abandonné et remplacé par l'opérateur instanceof. Il y a eu des problèmes dans les premières implantations de instanceof, qui se base sur __autoload() pour rechercher les classes non définies. Si la classe n'est pas définie, instanceof émettait une erreur fatale E_ERROR, après l'échec de __autoload(). Le même comportement apparaissait avec l'opérateur catch et la fonction is_subclass_of().

Aucune de ces instructions n'appelle plus __autoload() en PHP 5.1.x, et les palliatifs à base de class_exists() utilisé dans le code écrit en PHP 5.0.x ne sont plus nécessaires.

Méthodes privées abstraites

Les méthodes privées abstraites sont supportées en PHP entre 5.0.0 et et 5.0.4, mais elles ont été abandonnées car private et abstract sont mutuellement exclusif.

Changements dans les règles d'héritage

Avec PHP 5.0, les déclarations de fonctions dans les interfaces sont traitées exactement de la même manière que pour les déclarations de fonctions dans les classes. Ce n'est plus le cas depuis octobre 2004, au moment où seuls l'option d'accès public a été autorisée dans les déclarations d'interface. Depuis avril 2005, ce qui est antérieur à PHP 5.0b1, l'option static a aussi été autorisée. Mais les options protected and private émettent désormais une erreur E_ERROR, tout comme abstract. Notez que cette modification ne va pas affecter votre code existant, car aucune de ces options n'a de sens dans le cadre d'une interface.

Changements dans les règles d'héritages

En PHP 5.0, il était possible d'avoir une déclaration de fonction qui dérivait d'une classe ayant la même fonction mais pas la même signature. Par exemple :

Ce code va émettre une erreur E_STRICT si utilisé avec PHP 5.1.x.

<?php
class Base {
    function &
return_by_ref() {
        
$r 1;
        return 
$r;
    }
}

class 
Derived extends Base {
    function 
return_by_ref() {
        return 
1;
    }
}
?>

Constantes de classe

En PHP 5.0.x, le code suivant était valide :

En PHP 5.1.x, la redéfinition d'une constante de classe émet une erreur fatale E_ERROR.

<?php
class test {
    const 
foobar 'foo';
    const 
foobar 'bar';
}

?>


Extensions

Extensions qui ont été retirées du coeur de PHP

La première chose que vous remarquerez en chargeant PHP 5.1.x, est que plusieurs extensions anciennes ont disparues. Ces extensions sont encore supportées, et entretenues dans la bibliothèque PECL, PHP Extension Community Library (PECL), accessible à l'URL » http://pecl.php.net/.

Extensions retirées
Extension Remplacement/Statut
ext/cpdf pecl/pdflib
ext/dbx pecl/dbx
ext/dio pecl/dio
ext/fam Sans entretien
ext/ingres_ii pecl/ingres
ext/ircg Sans entretien
ext/mcve pecl/mcve
ext/mnogosearch Sans entretien
ext/oracle ext/oci8 or ext/pdo_oci
ext/ovrimos Sans entretien
ext/pfpro Sans entretien
ext/w32api » pecl/ffi
ext/yp Sans entretien
ext/activescript » pecl/activescript

Les modules de PECL qui ne sont plus entretenus (i.e. qui n'ont pas été mis à jour depuis longtemps, ou qui n'ont plus de responsable déclaré), sont toujours accessible via CVS, à l'adresse » http://svn.php.net/viewvc/pecl. Cependant, les modules PHP qui ne sont pas publiés, sont par nature sans support, et leur installation est à vos risques et périls.

Constantes de classes, nouvelles dans les extensions de PHP 5.1.x

L'API du moteur Zend 2.1 permet aux développeurs d'extensions de déclarer leurs constantes dans les versions orientées objets de leur extension. Les nouvelles extensions écrites pour PHP 5.1.x, incluant SPL, PDO, XMLReader et date, dispose de constantes au format PDO::CLASS_CONSTANT plutôt qu'au format C de type PDO_CLASS_CONSTANT afin de réduire la pollution des espaces de noms globaux de PHP.



Support des dates et heures

Le support des dates et heures a été entièrement réécrit en PHP 5.1.x, et n'utilise plus du tout le système pour gérer les opérations sur les fuseaux horaires. Désormais, il utilise, dans l'ordre :

  • La fuseau horaire configuré avec la fonction date_default_timezone_set()

  • La variable d'environnement TZ si elle n'est pas vide

  • une prédiction magique (si le système d'exploitation le supporte)

  • Si aucune méthode ci-dessus ne fonctionne, UTC.

Pour s'assurer de la précision, et éviter les alertes E_STRICT, vous devez définir votre fuseau horaire dans le fichier php.ini avec ce format :

date.timezone = Europe/Paris

Les fuseaux horaires supportés sont listés dans l'annexe de la documentation : annexe des fuseaux horaires.

Notez aussi que strtotime() retourne désormais FALSE en cas d'échec, au lieu de -1.



Modifications dans le support des bases de données

Extension PDO

Les PHP Data Objects (PDO) ont été introduits comme extension PECL en PHP 5.0, et sont devenus partie intégrale de la distribution PHP en version 5.1.0. L'extension PDO propose une interface constante pour accéder aux bases de données, et est utilisée avec des pilotes PDO. Chaque pilote assure le relais avec une base de données spécifique, mais l'envoi de requête et la réception des données sont fait depuis les fonctions PDO. Le pilote est choisi avec la fonction PDO::__construct().

Notez que l'extension PDO et ses pilotes sont conçus pour être des extensions partagées. Cela permet des mises à jour simples des pilotes à partir de PECL, sans forcer la recompilation de PHP.

Au moment de la publication de PHP 5.1.x, PDO est fin prêt pour une utilisation grand public, et peut être adopté dans la plupart des situations. Cependant, il faut bien comprendre que PDO et ses pilotes sont relativement jeunes, et manquent encore de certaines fonctionnalités spécifiques à une base de données. Faites votre évaluation complète de PDO avant de l'adopter pour un projet.

L'ancien code aura besoin des extensions spécifiques de base de données, qui sont toujours entretenues.

Support de MySQL

En PHP 4, le support MySQL 3 était automatique. Avec les versions 5.0 de PHP, il y a maintenant 2 extensions MySQL, qui portent les noms de 'mysql' et 'mysqli' : elles sont été conçues pour supporter MySQL < 4.1 et MySQL 4.1 et plus récent, respectivement. Avec l'introduction de PDO, qui fournit une interface rapide avec toutes les bases de données supportées par PHP, le pilote PDO_MYSQL peut supporter toutes les versions de MySQL (MySQL 3, 4 or 5) avec du code PHP écrit avec PDO, en fonction de la version de la bibliothèque de MySQL compilée avec PHP. Les anciennes extensions MySQL restent en place pour assurer la compatibilité ascendante, mais elles ne sont plus activées par défaut.

Support de SQLite

En PHP 5.0.x, le support de SQLite 2 a été ajouté dans la distribution, et a été placé en PECL pour PHP 4.3 et 4.4. Avec l'introduction de PDO, l'extension sqlite se dédouble pour servir aussi de pilote PDO. Cela est dû au fait que l'extension PDO de PHP 5.1.x dépend de PDO.

PHP 5.1.x inclut un grand nombre d'interface alternatives pour sqlite :

L'extension sqlite fournit une approche classique procédurale et POO, telle que celle qui a été utilisée dans les anciennes versions de PDO. Elle fournit aussi un pilote 'sqlite2', qui permet d'accéder au code SQLite2, en utilisant PDO.

PDO_SQLITE fournit un pilote 'sqlite' version 3. SQLite version 3 est nettement supérieur à SQLite version 2, mais les formats de fichiers des deux versions sont incompatibles.

Si votre projet basé sur SQLite est déjà écrit, et fonctionne avec d'anciennes versions de PHP, vous pouvez continuer à utiliser ext/sqlite sans problème, mais vous devez explicitement activer PDO et sqlite. Les nouveaux projets doivent utiliser PDO et le pilote 'sqlite' version 3, car il est plus rapide que le pilote SQLite 2, dispose d'un verrou efficace, supporte les commandes préparées et les colonnes binaires natives.

Vous devez activer PDO pour utiliser l'extension SQLite. Si vous voulez compiler PDO comme extension partagée, alors l'extension SQLite doit être aussi une extension partagée. C'est la même chose pour le pilote PDO.



Vérifier E_STRICT

Si vous n'avez qu'un seul script à vérifier, vous pouvez identifier les erreurs E_STRICT en utilisant PHP en ligne de commande :

php -d error_reporting=4095 -l script_to_check.php

Pour les projets d'envergure, le script Shell ci-dessous sera plus efficace :

#!/bin/sh

directory=$1

shift

# Les extensions suivantes sont vérifiées
extensions="php inc"

check_file ()
{
  echo -ne "Vérification E_STRICT de la syntaxe PHP sur $1 ..."

  # Options:
  ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax errors detected"`

  if test -z "$ERRORS"; then
    echo -ne "OK."
  else
    echo -e "Erreurs trouvées!\n$ERRORS"
  fi

  echo
}

# test des autres arguments
for FILE in "$@" ; do
  for ext in $extensions; do
     if echo $FILE | grep "\.$ext$" > /dev/null; then
       if test -f $FILE; then
         check_file "$FILE"
       fi
     fi
  done
done



Migration de PHP 4 à PHP 5.0.x

Sommaire

Voir aussi les guides de migrations entre les différents versions de PHP 5.1.x, 5.2.x et 5.3.x.


Nouveautés de PHP 5.0.x

Les modifications apportées à PHP 5 et au Zend Engine 2 augmentent considérablement les capacités et les performances de PHP. Une attention toute particulière a été apportée à ce que cette nouvelle version soit la plus compatible possible avec les scripts antérieurs. Ainsi la migration de votre code de PHP 4 vers PHP 5 devrait être aisée. La plupart des scripts PHP 4 devraient être prêts à fonctionner sans nécessiter la moindre modification. Il existe toutefois quelques différences et vous devriez tester vos codes avant de changer de version en production.



Incompatibilités avec les version antérieures

Bien que la plupart des scripts PHP 4 existants devraient fonctionner, il convient de noter quelques incompatibilités avec les versions antérieures de PHP :

  • Il y a quelques nouveaux mots réservés.
  • strrpos() et strripos() utilisent maintenant une chaîne de caractères complète (un seul caractère auparavant) en tant qu'élément de recherche.
  • L'utilisation d'index illégaux sur une chaîne de caractères entraîne maintenant un message E_ERROR au lieu d'un message E_WARNING auparavant. Voici un exemple incorrect : $str = 'abc'; unset($str[0]);.
  • La fonction array_merge() a été modifiée pour n'accepter que des tableaux. Pour chaque variable passée en paramètre autre qu'un tableau, un message E_WARNING sera envoyé. Soyez attentifs car votre script pourrait émettre des E_WARNING de façon inopinée.
  • La variable de serveur PATH_TRANSLATED n'est plus définie implicitement avec Apache2 SAPI contrairement à auparavant (PHP 4) où elle était fixée avec la même valeur que SCRIPT_FILENAME lorsqu'Apache ne la renseignait pas. Cette modification a été apportée afin d'être en conformité avec les » spécifications CGI/1.1. Merci de consulter le » bogue #23610 pour plus d'informations, ainsi que la description de $_SERVER['PATH_TRANSLATED'] du manuel. Ce problème affecte également PHP >= 4.3.2.
  • La constante T_ML_CONSTANT n'est plus définie par l'extension Tokenizer. Si error_reporting est réglée à E_ALL, PHP va générer un avertissement. Bien que T_ML_CONSTANT n'ait jamais été utilisée, elle était définie dans PHP 4. Avec PHP 4 et PHP 5, // et /* */ sont assimilés à la constante T_COMMENT. Toutefois les commentaires de style PHPDoc /** */, qui sont analysés depuis PHP 5, sont reconnus en tant que T_DOC_COMMENT.
  • $_SERVER contient dorénavant argc et argv si votre variables_order inclus "S". Si vous avez configuré votre système pour qu'il ne crée pas $_SERVER, ils n'existeront bien sûr pas. Cette modification a été effectuée afin que argc et argv soient toujours accessibles dans la version CLI quelle que soit la valeur de variables_order. Ainsi, la version CLI renseignera dorénavant toujours les variables $argc et $argv.
  • Un objet sans propriété n'est plus considéré comme vide (empty()).
  • Dans certains cas, les classes doivent être déclarées avant d'être utilisées. Cela survient uniquement si les nouvelles fonctionnalités de PHP 5 (comme les interfaces) sont utilisées. Sinon, le comportement sera le même qu'avant.
  • Les fonctions get_class(), get_parent_class() et get_class_methods() retournent désormais le nom de la classe comme elle a été déclarée (sensible à la casse), ce qui peut causer des problèmes dans vos anciens scripts qui utilisent le comportement précédent (le nom de la classe était toujours retourné en minuscules). Une solution possible est de rechercher ces fonctions dans tous vos anciens scripts et d'utiliser la fonction strtolower(). Ces changements de sensibilité à la casse sont également appliqués aux constantes magiques prédéfinies __CLASS__, __METHOD__ et __FUNCTION__. Les valeurs sont retournées exactement comme elles ont été déclarées (sensible à la casse).
  • La fonction ip2long() retourne maintenant FALSE lorsqu'une adresse IP invalide est entrée comme argument de la fonction, et non plus -1.
  • Lorsque des fonctions sont définies dans un fichier inclus, elles peuvent être utilisées dans le fichier principal, qu'elles soient définies avant ou après l'instruction return(). Si le fichier est inclus deux fois, PHP 5 émet une erreur fatale car les fonctions sont toujours déclarées, tandis que PHP 4 n'a aucun problème avec ça. Il est recommandé d'utiliser l'instruction include_once() au lieu de vérifier si le fichier a déjà été inclus et de retourner, conditionnellement, l'inclusion du fichier.
  • include_once() et require_once() normalisent d'abord le chemin du fichier à inclure sous Windows. Donc inclure le fichier A.php et le fichier a.php revient à n'inclure qu'une seule fois ce fichier.
  • Le fait de passer un tableau à une fonction par sa valeur ne réinitialise plus le pointeur interne pour les tableaux dont on accède à l'intérieur de la fonction. En d'autres termes, en PHP 4, lorsque vous passiez un tableau à une fonction, son pointeur interne à l'intérieur de la fonction était réinitialisé, tandis qu'en PHP 5, lorsque vous passez un tableau à une fonction, le pointeur interne du tableau à l'intérieur de la fonction reste à la même position que lorsqu'il est passé à la fonction.

Exemple #1 strrpos() et strripos() recherchent maintenant une chaîne de caractères dans une autre

<?php
var_dump
(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Exemple #2 Un objet sans propriété n'est plus considéré comme vide (empty())

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    
// Cette portion de code sera exécutée
}
?>

Exemple #3 Dans certains cas, les classes doivent être déclarées avant d'être utilisées

<?php

// fonctionne sans erreur :
$a = new a();
class 
{
}


// ici, une erreur :
$a = new b();

interface 
c{
}
class 
implements {
}

?>



CLI et CGI

PHP 5 introduit des modifications dans les noms des fichiers CLI et CGI. Avec PHP 5, la version CGI s'appelle maintenant php-cgi.exe (auparavant php.exe) et la version CLI se trouve maintenant dans le répertoire principal de PHP (auparavant cli/php.exe).

Un nouveau mode a également été introduit avec PHP 5 : php-win.exe. Cette version est équivalente à la version CLI sauf qu'elle n'ouvre pas de fenêtre de console DOS au lancement. Ce comportement est similaire à celui de php-gtk.

Avec PHP 5, la version CLI renseignera toujours les variables globales $argv et $argc en accord avec toutes les directives du php.ini. Même si vous avez la directive register_argc_argv configurée à Off, cela n'aura pas d'effet sur la version CLI.

Voir aussi la documentation sur la ligne de commande.



Migration des fichiers de configuration

Les modules ISAPI ayant changé de nom (php4xxx vers php5xxx), il est nécessaire de faire quelques modifications dans vos fichiers de configuration. Des modifications des noms des versions CLI et CGI ont également été faites. Consultez la section correspondante pour plus d'informations.

La migration du fichier de configuration Apache est très facile. Consultez l'exemple ci-dessous afin de connaître les modifications que vous devez faire :

Exemple #1 Migration des fichiers de configuration Apache

# changez cette ligne :
LoadModule php4_module /php/sapi/php4apache2.dll

# en :
LoadModule php5_module /php/php5apache2.dll

Si votre serveur web utilise PHP en mode CGI, il vous faut noter que la version CGI a changé de nom, passant de php.exe à php-cgi.exe. Voici la modification à faire, pour Apache :

Exemple #2 Migration des fichiers de configuration Apache, en mode CGI

# changez cette ligne :
Action application/x-httpd-php "/php/php.exe"

# en :
Action application/x-httpd-php "/php/php-cgi.exe"

Si vous utilisez un serveur web autre que Apache, vous devez également changer le nom de fichier du module ISAPI ou du CGI.



Nouvelles fonctions

PHP 5 introduit de nouvelles fonctions. En voici la liste :

Tableaux :

  • array_combine() : créé un tableau en combinant un tableau pour les clés et un autre pour les valeurs correspondantes.
  • array_diff_uassoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index par l'appel d'une fonction utilisateur de callback.
  • array_udiff() : renvoie la différence entre deux tableaux en utilisant une fonction de rappel pour la comparaison des valeurs.
  • array_udiff_assoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index. Les valeurs sont, elles, comparées grâce à une fonction utilisateur de rappel.
  • array_udiff_uassoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index. Les valeurs sont comparées grâce à une fonction utilisateur de rappel ; les index sont également comparés grâce à une (autre) fonction utilisateur de rappel.
  • array_walk_recursive() : applique une fonction utilisateur de façon récursive à chaque élément d'un tableau.
  • array_uintersect_assoc() : calcule l'intersection de deux tableaux avec une vérification des index. Les données sont comparées en utilisant une fonction de rappel.
  • array_uintersect_uassoc() : calcule l'intersection de deux tableaux avec une vérification des index. Les données et les index sont comparés en utilisant des fonctions de rappel.
  • array_uintersect() : calcule l'intersection de deux tableaux. Les données sont comparées en utilisant une fonction de rappel.

InterBase :

iconv :

Flux :

Date et heure :

  • idate() : formate une date/heure en tant qu'entier.
  • date_sunset() : renvoie l'heure du coucher du soleil pour un jour et un endroit donnés.
  • date_sunrise() : renvoie l'heure du lever du soleil pour un jour et un endroit donnés.
  • time_nanosleep() : marque une pause exprimée en secondes et nanosecondes.

Chaîne de caractères :

  • str_split() : convertit une chaîne en tableau.
  • strpbrk() : recherche dans une chaîne l'un des caractères d'une liste.
  • substr_compare() : compare deux chaînes depuis un offset jusqu'à une longueur en caractères, d'une façon sécurisée contre les données binaires et, optionnellement, insensible à la casse.

Autres :

Note:

L'API de l'extension Tidy a changé du tout au tout.



Nouvelles Directives

De nouvelles directives pour le fichier php.ini ont été ajoutées avec PHP 5. En voici une liste :

  • mail.force_extra_parameters : permet de forcer l'ajout du paramètre spécifié en tant que paramètre supplémentaire pour sendmail. Ces paramètres prendront la place du cinquième paramètre de la fonction mail() quoi qu'il arrive, même en safe mode.
  • register_long_arrays : permet/interdit à PHP d'utiliser les tableaux $HTTP_*_VARS.
  • session.hash_function : permet de choisir une fonction de hachage (MD5 ou SHA-1).
  • session.hash_bits_per_character : permet de définir le nombre de bits utilisés pour chaque caractère lors de conversions de données binaires en éléments lisibles (de 4 à 6).
  • zend.ze1_compatibility_mode : active le mode de compatibilité avec le Zend Engine 1 (PHP 4).


Bases de données

Certaines modifications ont été apportées au support des bases de données (MySQL et SQLite).

PHP 5 n'intègre pas les bibliothèques clientes MySQL par défaut, entre autres pour des raisons de licence. Pour plus d'informations, lisez la FAQ.

Il existe également une nouvelle extension, MySQLi (Improved MySQL), créée pour fonctionner avec MySQL 4.1 et supérieur.

À partir de PHP 5, l'extension SQLite est intégrée à PHP. SQLite est un moteur de bases de données embarqué, il ne s'agit pas simplement d'une bibliothèque cliente permettant de se connecter à un serveur de bases de données (comme MySQL ou PostgreSQL). La bibliothèque SQLite lit et écrit ses bases de données directement dans des fichiers sur le disque.



Nouveau Modèle Objet

PHP 5 inclut un nouveau modèle objet. Le traitement des objets en PHP a complètement été réécrit pour arriver à de meilleures performances et plus de fonctionnalités. Dans les versions précédentes de PHP, les objets étaient traités comme des types primitifs (par exemple les entiers ou les chaînes de caractères). L'inconvénient de cette méthode était que sémantiquement, l'objet en entier était copié lorsqu'une variable était assignée ou passée comme paramètre à une fonction. Dans la nouvelle approche, les objets sont référencés par un pointeur et non pas leur valeur (on peut penser à un pointeur en tant qu'identifiant d'objet).

Beaucoup de développeurs PHP ne se rendent pas compte des caprices lors de la copie dans l'ancien modèle objet et, par conséquent, la majorité des applications PHP devrait fonctionner directement ou avec très peu de modifications.

Le nouveau modèle objet est documenté dans la partie de référence du langage.

En PHP 5, la fonction portant le nom d'une classe est appelée comme constructeur seulement si définit dans la même classe. En PHP 4, il sera également appelé s'il est définit dans la classe parent.

Voir aussi la directive zend.ze1_compatibility_mode pour la compatibilité avec PHP 4.



Rapport d'erreurs

Depuis PHP 5, la constante d'erreur constant E_STRICT est disponible, avec la valeur 2048. Lorsqu'activés, les messages seront émis pour vous avertir que votre code est obsolète ou bien qu'il le sera bientôt.

Note: E_ALL n'inclut pas E_STRICT; il n'est donc pas activé par défaut. Vous devez définir explicitement le niveau de repport d'erreur pour inclure le niveau E_STRICT afin d'en lire les messages.

Voir aussi les constantes prédéfinies pour plus d'informations.




Les classes et les objets (PHP 4)

Sommaire


Les classes : class

Une classe est une collection de variables et de fonctions qui fonctionnent avec ces variables. Les variables sont définies par l'élément var et les fonctions par function. Une classe est définie en utilisant la syntaxe suivante :

<?php
class Panier {
    
// Eléments de notre panier
    
var $items;

    
// Ajout de $num articles de type $artnr au panier

    
function add_item($artnr$num) {
        
$this->items[$artnr] += $num;
    }

    
// Suppression de $num articles du type $artnr du panier

    
function remove_item($artnr$num) {
        if (
$this->items[$artnr] > $num) {
            
$this->items[$artnr] -= $num;
            return 
true;
        } elseif (
$this->items[$artnr] == $num) {
            unset(
$this->items[$artnr]);
            return 
true;
        } else {
            return 
false;
        }
    }
}
?>

L'exemple ci-dessus définit la classe Panier qui est composée d'un tableau associatif contenant les articles du panier et de deux fonctions, une pour ajouter et une pour enlever des éléments au panier.

Avertissement

Vous NE POUVEZ PAS couper la définition d'une classe en plusieurs fichiers. De la même façon, vous NE POUVEZ PAS couper la définition d'une classe en de multiples blocs, à moins que la coupure ne soit à l'intérieur de la déclaration d'une méthode. Ce qui suit ne fonctionnera pas :

<?php
class test {
?>
<?php
    
function test() {
        print 
'OK';
    }
}
?>

Néanmoins, ce qui suit est autorisé :

<?php
class test {
    function 
test() {
        
?>
        <?php
        
print 'OK';
    }
}
?>

Les notes suivantes ne sont valables que pour PHP 4.

Attention

Le nom stdClass est utilisé en interne par Zend et ne doit pas être utilisé. Vous ne pouvez pas nommer une classe stdClass en PHP.

Attention

Les noms de fonctions __sleep et __wakeup sont magiques en PHP. Vous ne pouvez pas utiliser ces noms de fonctions dans vos classes, à moins que vous ne souhaitiez utiliser la magie qui y est associée.

Attention

PHP se réserve l'usage de tous les noms de fonctions commençant par __, pour sa propre magie. Il est vivement recommandé de ne pas utiliser des noms de fonctions commençant par __, à moins que vous ne souhaitiez utiliser la magie qui y est associée.

En PHP 4, seuls les initialiseurs constants pour les variables var sont autorisés. Utilisez les constructeurs pour les initialisations variables, ou utilisant des expressions.

<?php
/* Aucune de ces syntaxes ne fonctionnera en PHP 4 */
class Panier {
    var 
$date_du_jour date("d/m/Y");
    var 
$name $firstname;
    var 
$owner 'Fred ' 'Jones';
    var 
$items = array("DVD""Télé","Magnétoscope");
}
/* Voici comment cela doit se faire désormais. */
class Panier {
    var 
$date_du_jour;
    var 
$name;
    var 
$owner;
    var 
$items;
    function 
Panier() {
        
$this->date_du_jour date("d/m/Y");
        
$this->name $GLOBALS['firstname'];
        
/* etc. */
    
}
}
?>

Les classes forment un type de variable. Pour créer une variable du type désiré, vous devez utiliser l'opérateur new.

<?php
$cart 
= new Panier;
$cart->add_item("10"1);

$another_cart = new Panier;
$another_cart->add_item("0815"3);
?>

L'instruction ci-dessus crée l'objet $cart et $another_cart de la classe Panier. La fonction add_idem() de l'objet $cart est appelée afin d'ajouter l'article numéro 10 dans $cart. Trois articles numéro 0815 sont ajoutés au panier $another_cart.

$cart et $another_cart disposent des fonctions add_item(), remove_item() et de la variable items. Ce sont des fonctions et variables distinctes. Vous pouvez vous représenter les objets comme des dossiers sur votre disque dur. Vous pouvez avoir deux fichiers lisez-moi.txt sur votre disque dur, tant qu'ils ne sont pas dans le même répertoire. De même que vous devez alors taper le chemin complet jusqu'au fichier, vous devez spécifier le nom complet de la méthode avant de l'employer : en termes PHP, le dossier racine est l'espace de nom global, et le séparateur de dossier est ->. Par exemple, les noms $cart->items et $another_cart->items représentent deux variables distinctes. Notez que le nom de la variable est alors $cart->items, et non pas $cart->$items : il n'y a qu'un seul signe $ dans un nom de variable.

<?php
// correct, le signe $ est unique
$cart->items  = array("10" => 1);

// incorrect, car $cart->$items devient $cart->""
$cart->$items = array("10" => 1);

// correct, mais risque de ne pas se comporter comme prévu
// $cart->$myvar devient $cart->items
$myvar 'items';
$cart->$myvar = array("10" => 1);  
?>

À l'intérieur d'une définition de classe, vous ne savez pas le nom de la variable à partir duquel l'objet sera accessible dans le script. On ne peut prévoir que l'objet créé sera affecté à la variable $cart, $another_cart ou quelque chose d'autres. Donc, vous ne pouvez pas utiliser la syntaxe $cart->items. Mais pour pouvoir accéder aux méthodes et membres d'un objet, vous pouvez utiliser la variable spéciale $this, qui peut s'interpréter comme "moi-même", ou bien "l'objet courant". Par exemple, '$this->items[$artnr] += $num' peut se lire comme 'ajouter $num au compteur $artnr de mon propre tableau de compteur' ou bien 'ajouter $num au compteur $artnr du tableau de compteurs de l'objet courant'.

Note:

La pseudo-variable $this n'est pas toujours définie si la méthode dans laquelle elle est présente est appelée statiquement. Cependant, ceci n'est pas une règle stricte : $this est définie si une méthode est appelée statiquement depuis un autre objet. Dans ce cas, la valeur de $this vaut l'objet appelé. Ce comportement est illustré dans l'exemple ci-dessous :

<?php
class A
{
    function 
foo()
    {
        if (isset(
$this)) {
            echo 
'$this est défini (';
            echo 
get_class($this);
            echo 
")\n";
        } else {
            echo 
"\$this n'est pas défini.\n";
        }
    }
}

class 
B
{
    function 
bar()
    {
        
A::foo();
    }
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>

L'exemple ci-dessus va afficher :

$this est défini (a)
$this n'est pas défini.
$this est défini (b)
$this n'est pas défini.

Note:

Il y a des fonctions très pratiques pour gérer les classes et objets. Vous pouvez étudier le chapitre sur les fonctions de classes et objets.



extends : héritage

Souvent, vous aurez besoin d'une classe avec des méthodes et fonctions similaires à une autre classe. En fait, il est bon de définir des classes génériques, qui pourront être réutilisées et adaptées à tous vos projets. Pour faciliter cela, une classe peut être une extension d'une autre classe. La classe dérivée hérite alors de toutes les méthodes et variables de la classe de base (cet héritage a de bien que personne ne meurt pour en profiter), mais peut définir ses propres fonctions et variables, qui s'ajouteront. Une classe ne peut hériter que d'une seule autre classe, et l'héritage multiple n'est pas supporté. Les héritages se font avec le mot clé 'extends'.

<?php
class Panier_nomme extends Panier {
    var 
$owner;
  
    function 
set_owner ($name) {
        
$this->owner $name;
    }
}
?>

L'exemple ci-dessus définit la classe Panier_nomme qui possède les mêmes variables que la classe Panier et la variable $owner en plus, ainsi que la fonction set_owner(). Vous créez un panier nominatif de la même manière que précédemment, et vous pouvez alors affecter un nom au panier ou en connaître le nom. Vous pouvez de toutes les façons utiliser les mêmes fonctions que sur un panier classique.

<?php
$ncart 
= new Panier_nomme;    // Création d'un panier nominatif
$ncart->set_owner ("kris");   // Affectation du nom du panier
print $ncart->owner;           // Affichage du nom du panier
$ncart->add_item ("10"1);   // (héritage des fonctions de la classe père)
?>

Ceci est également appelé une relation "parent-enfant". Vous créez une classe parent, et utilisez extends pour créer une nouvelle classe basée sur la classe parent : la classe enfant. Vous pouvez toujours utiliser cette nouvelle classe enfant et en créer une nouvelle basée sur cette classe enfant.

Note:

Les classes doivent être définies avant d'être utilisées ! Si vous voulez que la classe Named_Cart étende la classe Cart, vous devez d'abord définir la classe Cart. Si vous voulez créer une autre classe appelée Yellow_named_cart, basée sur la classe Named_Cart, vous devez d'abord définir la classe Named_Cart. Pour faire court : l'ordre dans lequel les classes sont définies est important.



Constructeur

Le constructeur est la fonction qui est appelée automatiquement par la classe lorsque vous créez une nouvelle instance d'une classe à l'aide de l'opérateur new. La fonction constructeur a le même nom que la classe. Une fonction devient le constructeur si elle porte le même nom que la classe. Si une classe n'a pas de constructeur, le constructeur de la classe de base sera appelé, s'il existe.

<?php
class Auto_Panier extends Panier {
    function 
Auto_Panier () {
        
$this->add_item ("10"1);
    }
}
?>

L'exemple ci-dessus définit la classe Auto_Panier qui hérite de la classe Panier et définit le constructeur de la classe. Ce dernier initialise le panier avec 1 article de type numéro 10 dès que l'instruction new est appelée. La fonction constructeur peut prendre ou non des paramètres optionnels, ce qui la rend beaucoup plus pratique. Pour pouvoir utiliser cette classe sans paramètre, tous les paramètres du constructeurs devraient être optionnels, en fournissant une valeur par défaut, comme ci-dessous.

<?php
class Constructor_Cart extends Cart {
    function 
Constructor_Cart($item "10"$num 1) {
        
$this->add_item ($item$num);
    }
}
 
// Création du Panier
$default_cart = new Constructor_Cart;
 
// Création d'un vrai Panier
$different_cart = new Constructor_Cart("20"17);
?>

Vous pouvez également utiliser l'opérateur @ pour empêcher les erreurs survenant dans le constructeur de s'afficher, e.g. @new.

<?php
class A
{
    function 
A()
    {
        echo 
"Je suis le constructeur de A.<br />\n";
    }

    function 
B() 
    {
        echo 
"Je suis une fonction standard appelée B dans la classe A.<br />\n";
        echo 
"Je ne suis pas le constructeur de A.<br />\n";
    }
}

class 
extends A
{
}

// Cette syntaxe va appeler B() comme constructeur.
$b = new B;
?>

La fonction B() de la classe A va soudainement devenir le constructeur de la classe B, bien qu'il n'ait pas été prévu pour. PHP 4 ne se soucie guère si la fonction est définie dans la classe B ou si elle a été héritée.

Attention

PHP n'appelle pas automatiquement le constructeur de la classe supérieure depuis le constructeur de la classe dérivée. Il est de votre responsabilité de propager l'appel des constructeurs.

Les destructeurs sont des fonctions qui sont appelées lorsqu'un objet est détruit, soit avec la fonction unset() soit par simple sortie d'une fonction (cas des variables locales). Il n'y a pas de destructeurs en PHP. Vous devez utiliser la fonction register_shutdown_function() à la place pour simuler la plupart des effets des destructeurs.



Opérateur de contexte de classe (::)

Attention

La documentation suivante n'est valable que pour PHP 4 et plus récent.

Parfois, il est pratique de faire référence aux fonctions et variables d'une classe de base, ou bien d'utiliser des méthodes de classes qui n'ont pas encore d'objets créés. L'opérateur :: est là pour ces situations.

<?php
class {
    function 
example() {
        echo 
"Je suis la fonction originale A::example().<br />\n";
    }
}

class 
extends {
    function 
example() {
        echo 
"Je suis la fonction redéfinie B::example().<br />\n";
        
A::example();
    }
}

// Il n'y a pas d'objets de classe A.
// L'affichage est :
//   Je suis la fonction originale A::example().<br />
A::example();

// Création d'un objet de la classe B.
$b = new B;

// L'affichage est :
//   Je suis la fonction redéfinie B::example().<br />
//   Je suis la fonction originale A::example().<br />
$b->example();
?>

Les exemples ci-dessus appellent la fonction example() dans la classe A, mais il n'y a pas encore d'objet de classe A, alors il n'est pas possible d'écrire $a->example(). À la place, on appelle la fonction example() comme une fonction de classe, c'est-à-dire avec le nom de la classe elle-même, et sans objet.

Il y a des fonctions de classe, mais pas de variables de classe. En fait, il n'y a aucun objet au moment de l'appel de la fonction. Donc, une fonction de classe ne peut accéder à aucune variable (mais elle peut accéder aux variables locales et globales). Il faut proscrire l'utilisation de $this.

Dans l'exemple ci-dessus, la classe B redéfinit la fonction example(). La définition originale dans la classe A est remplacée par celle de B, et n'est plus accessible depuis B, à moins que vous n'appeliez spécifiquement la fonction example() de la classe A avec l'opérateur ::. Écrivez A::example() pour cela (en fait, il faudrait écrire parent::example(), comme expliqué dans la section suivante).

Dans ce contexte, il y a un objet courant, qui peut avoir d'autres variables objets. De ce fait, lorsqu'il est utilisé depuis une méthode d'un objet, vous pouvez utiliser $this.



parent

Il arrive que vous ayez à écrire du code qui faire référence aux variables et fonctions des classes de base. C'est particulièrement vrai si votre classe dérivée est une spécialisation de votre classe de base.

Au lieu d'utiliser le nom littéral de votre classe de base dans votre code, vous pouvez utiliser le mot réservé parent, qui représente votre classe de base (celle indiqué par extends, dans la déclaration de votre classe). En faisant cela, vous évitez d'appeler le nom de votre classe de base directement dans votre code. Si votre héritage change, vous n'aurez plus qu'à modifier le nom de la classe dans la déclaration extends de votre classe.

<?php
class {
    function 
example() {
        echo 
"Je suis A::example() et je fournis une fonctionnalité de base.<br />\n";
    }
}

class 
extends {
    function 
example() {
        echo 
"Je suis B::example() et je fournis une fonctionnalité supplémentaire.<br />\n";
        
parent::example();
    }
}

$b = new B;

// Cette syntaxe va appeler B::example(), qui, à sont tour, va appeler A::example().
$b->example();
?>


Sauvegarde d'objets - cas des sessions

serialize() retourne une chaîne représentant une valeur qui peut être stockée dans les sessions de PHP, ou une base de données. unserialize() peut relire cette chaîne pour recréer la valeur originale. serialize() va sauver toutes les variables d'un objet. Le nom de la classe sera sauvé mais par les méthodes de cet objet.

Pour permettre à unserialize() de lire un objet, la classe de cet objet doit être définie. C'est-à-dire, si vous avez un objet $a de la classe A dans une page php1.php, et que vous le linéarisez avec serialize(), vous obtiendrez une chaîne qui fait référence à la classe A, et contient toutes les valeurs de $a. Pour pouvoir le relire avec la fonction unserialize() dans une page page2.php, recréé la variable $a de la classe A, il faut que la définition de la classe A soit présente dans page2.php. Cela peut se faire de manière pratique en sauvant la définition de la classe A dans un fichier séparé, et en l'incluant dans les deux pages page1.php et page2.php.

<?php
// classa.inc:
  
  
class {
      var 
$one 1;
    
      function 
show_one() {
          echo 
$this->one;
      }
  }
  
// page1.php:

  
include("classa.inc");
  
  
$a = new A;
  
$s serialize($a);
  
// enregistrez $s où la page2.php pourra la trouver.
  
$fp fopen("store""w");
  
fwrite($fp$s);
  
fclose($fp);

// page2.php:
  
  // Ceci est nécessaire pour que unserialize() fonctionne correctement
  
include("classa.inc");

  
$s implode("", @file("store"));
  
$a unserialize($s);

  
// maintenant, utilisez la méthode show_one de l'objet $a.
  
$a->show_one();
?>

Si vous utilisez les sessions et la fonction session_register() pour sauver des objets, ces objets seront linéarisés automatiquement avec la fonction serialize() à la fin de chaque script, et relus avec unserialize() au début du prochain script. Cela signifie que ces objets peuvent apparaître dans n'importe quelle page qui utilise vos sessions.

Il est vivement recommandé d'inclure la définition de classe dans toutes vos pages, même si vous n'utilisez pas ces classes dans toutes vos pages. Si vous l'oubliez et qu'un tel objet est présent, il perdra sa classe, et deviendra un objet de classe __PHP_Incomplete_Class_Name sans aucune fonction et, donc, plutôt inutile.

Si, dans l'exemple ci-dessus, $a devient un objet de session avec l'utilisation de session_register("a"), vous devez penser à inclure le fichier classa.inc dans toutes vos pages, et pas seulement page1.php et page2.php.



Les fonctions magiques __sleep et __wakeup

serialize() s'assure que votre classe a une méthode avec le nom magique __sleep. Si c'est le cas, cette fonction est appelée avant toute linéarisation. Elle peut alors nettoyer l'objet et on s'attend à ce qu'elle retourne un tableau avec la liste des noms de variables qui doivent être sauvées. Si la méthode ne retourne rien, alors NULL est linéarisé et une alerte de type E_NOTICE sera émise.

Le but avoué de __sleep est de valider les données en attente ou d'effectuer des opérations de nettoyage. Cette fonction est aussi pratique si vous avez de très grands objets qui n'ont pas besoin d'être sauvés entièrement.

À l'inverse, unserialize() s'assure de la présence de la fonction magique __wakeup. Si elle existe, cette fonction reconstruit toutes les ressources d'un objet.

Le but de cette fonction __wakeup est de rétablir toutes les connexions aux bases de données, et de recréer les variables qui n'ont pas été sauvées.



Références dans un constructeur

Créer des références dans un constructeur peut conduire à des résultats étranges. Ce tutoriel vous guide pour éviter ces problèmes.

<?php
class Foo {
    function 
Foo($name) {
        
// crée une référence dans le tableau global $globalref
        
global $globalref;
        
$globalref[] = &$this;
        
// donne le nom de la variable
        
$this->setName($name);
        
// et l'affiche
        
$this->echoName();
    }

    function 
echoName() {
        echo 
"<br />"$this->name;
    }
 
    function 
setName($name) {
        
$this->name $name;
    }
}
?>

Vérifions maintenant qu'il y a une différence entre $bar1 qui a été créé avec = et $bar2 qui a été créé avec l'opérateur de référence =& :

<?php
$bar1 
= new Foo('crée dans le constructeur');
$bar1->echoName();
$globalref[0]->echoName();

/* affiche :
crée dans le constructeur
crée dans le constructeur
crée dans le constructeur */

$bar2 =&new foo('crée dans le constructeur');
$bar2->echoName();
$globalref[1]->echoName();

/* affiche :
crée dans le constructeur
crée dans le constructeur
crée dans le constructeur */
?>

Apparemment, il n'y a pas de différence, mais en fait, il y en a une significative : $bar1 et $globalref[0] ne sont pas référencées, ces deux variables sont différentes. Cela est dû au fait que l'opérateur new ne retourne par de référence, mais retourne une copie.

Note: Il n'y a aucune perte de performances (puisque PHP 4 utilise un compteur de références) à retourner des copies au lieu de références. Au contraire, il est souvent mieux de travailler sur les copies plutôt que sur les références, car créer une référence prend un peu plus de temps que de créer une copie qui ne prend virtuellement pas de temps (à moins de créer un tableau géant ou un objet monstrueux, auquel cas il est préférable de passer par des références).

Pour prouver ceci, regardez le code suivant :
<?php
// maintenant, nous allons changer de nom. Qu'attendez-vous ?
// Vous pouvez vous attendre à ce que les deux variables $bar
// et $globalref[0] changent de nom...
$bar1->setName('modifié');

// comme prédit, ce n'est pas le cas
$bar1->echoName();
$globalref[0]->echoName();

/* affiche :
modifié
crée dans le constructeur
*/

// quelle est la différence entre $bar2 et $globalref[1]
$bar2->setName('modifié');

// Heureusement, elles sont non seulement égales, mais
// elles représentent la même variable.
// donc $bar2->Name et $globalref[1]->Name sont les mêmes
$bar2->echoName();
$globalref[1]->echoName();

/* affiche :
  modifié
  modifié */
?>

Un dernier exemple pour bien comprendre.

<?php
class {
    function 
A($i) {
        
$this->value $i;
        
// Essayez de comprendre on n'a pas besoin de
        // référence ici
        
$this->= new B($this);
    }

    function 
createRef() {
        
$this->= new B($this);
    }

    function 
echoValue() {
        echo 
"<br />","class ",get_class($this),': ',$this->value;
    }
}


class 
{
    function 
B(&$a) {
        
$this->= &$a;
    }

    function 
echoValue() {
        echo 
"<br />","class ",get_class($this),': ',$this->a->value;
    }
}
// Essayez de comprendre pourquoi une copie simple va
// conduire à un résultat indésirable à
// la ligne marquée d'une étoile
$a =&new a(10);
$a->createRef();

$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();

$a->value 11;

$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();

?>

L'exemple ci-dessus va afficher :

class A: 10
class B: 10
class B: 10
class A: 11
class B: 11
class B: 11



Comparer des objets

En PHP 4, les objets sont comparés de manière très simple, à savoir : deux instances sont égales si elles ont les mêmes attributs et valeurs, et qu'elles sont de la même classe. Des règles similaires s'appliquent lors de la comparaison avec l'opérateur ===.

Si vous exécutez le code suivant :

Exemple #1 Exemple de comparaison d'objets en PHP 4

<?php
function bool2str($bool) {
    if (
$bool === false) {
            return 
'FALSE';
    } else {
            return 
'TRUE';
    }
}

function 
compareObjects(&$o1, &$o2) {
    echo 
'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 
'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 
'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 
'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class 
Flag {
    var 
$flag;

    function 
Flag($flag=true) {
            
$this->flag $flag;
    }
}

class 
SwitchableFlag extends Flag {

    function 
turnOn() {
        
$this->flag true;
    }

    function 
turnOff() {
        
$this->flag false;
    }
}

$o = new Flag();
$p = new Flag(false);
$q = new Flag();

$r = new SwitchableFlag();

echo 
"Compare des instances créées avec les mêmes paramètres\n";
compareObjects($o$q);

echo 
"\nCompare des instances créées avec différents paramètres\n";
compareObjects($o$p);

echo 
"\nCompare une instance d'un parent avec celle d'une sous-classe\n";
compareObjects($o$r);
?>

L'exemple ci-dessus va afficher :

    
Compare des instances créées avec les mêmes paramètres
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Compare des instances créées avec différents paramètres
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Compare une instance d'un parent avec celle d'une sous-classe
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Ce qui est le résultat que nous attendions, au vu des règles édictées. Seules deux instances avec les mêmes valeurs d'attributs, et issues de la même classe, sont considérées comme égales.

Même lorsque nous avons une composition d'objet, la même règle de comparaison s'applique. Dans l'exemple ci-dessous, nous allons créer une classe conteneur, qui stocke un tableau associatif Flag.

Exemple #2 Comparaison d'objets composés en PHP 4

<?php
class FlagSet {
    var 
$set;

    function 
FlagSet($flagArr = array()) {
        
$this->set $flagArr;
    }

    function 
addFlag($name$flag) {
        
$this->set[$name] = $flag;
    }

    function 
removeFlag($name) {
        if (
array_key_exists($name$this->set)) {
            unset(
$this->set[$name]);
        }
    }
}


$u = new FlagSet();
$u->addFlag('flag1'$o);
$u->addFlag('flag2'$p);
$v = new FlagSet(array('flag1'=>$q'flag2'=>$p));
$w = new FlagSet(array('flag1'=>$q));

echo 
"\nObjects composés u(o,p) et v(q,p)\n";
compareObjects($u$v);

echo 
"\nu(o,p) et w(q)\n";
compareObjects($u$w);
?>

L'exemple ci-dessus va afficher :

Objects composés u(o,p) et v(q,p)
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

u(o,p) et w(q)
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE




Débogueur PHP

Sommaire


À propos du débogueur en PHP

PHP n'inclut aucun support de déboguage. Vous pouvez toutefois utiliser un des débogueurs externes. Le » Studio Zend inclut un débogueur et il y a aussi des débogueurs gratuits comme » http://www.php-debugger.com/dbg/, le » Advanced PHP Debugger (APD) ou » Xdebug.




Options de configuration

Sommaire


Liste des options de configuration internes

Ci-dessous une liste partielle des options de configuration utilisées par le script PHP configure lors de la compilation sur les systèmes Unix et assimilés. La plupart des options de configuration sont listées dans leur emplacement approprié sur les pages de référence de l'extension et non pas ici. Pour une liste complète des options de configuration, exécutez la commande ./configure --help dans le répertoire contenant les sources de PHP après avoir exécuté la commande autoconf (voir aussi le chapitre sur l'installation de PHP). Vous pouvez également être intéressé par la lecture de la documentation sur la » configuration GNU pour plus d'informations sur les options de la commande configure comme --prefix=PREFIX.

Note:

Ils sont également utilisés lors de la compilation. Si vous voulez modifier la configuration de l'exécution de PHP, lisez le chapitre sur la configuration de l'exécution.

Options de configuration

Note:

Ces options sont uniquement utilisables depuis la version 4.1.0. Quelques-unes sont valables dans les versions antérieures. Si vous voulez compiler des anciennes versions, certaines options ne seront probablement pas disponibles.

Options diverses

--enable-debug

Compile en activant les symboles de déboguage

--with-layout=TYPE

Spécifie la façon dont les fichiers installés seront présentés. TYPE peut valoir PHP (valeur par défaut) ou GNU.

--with-pear=DIR

Installe PEAR dans le dossier DIR (par défaut, PREFIX/lib/php).

--without-pear

Ne pas installer PEAR.

--enable-sigchild

Active le propre traitement du SIGCHLD de PHP.

--disable-rpath

Désactive le passage de chemins additionnels de recherche de bibliothèques d'exécution.

--enable-libgcc

Active explicitement le lien avec la bibliothèque libgcc.

--enable-php-streams

Inclut le support expérimental des flux PHP. Utilisez-le seulement si vous testez le code !

--with-zlib-dir[=DIR]

Définit le chemin du répertoire d'installation de la bibliothèque zlib.

--enable-trans-sid

Active la propagation transparente de l'identifiant de session. Seulement valable pour PHP 4.1.2 et antérieures. À partir de PHP 4.2.0, cette fonctionnalité est toujours compilée.

--with-tsrm-pthreads

Utilise les threads POSIX (par défaut).

--enable-shared[=PKGS]

Compile les bibliothèques de partage [defaut=oui].

--enable-static[=PKGS]

Compile les bibliothèques statiques [default=oui].

--enable-fast-install[=PKGS]

Optimise pour une installation rapide [default=oui].

--with-gnu-ld

Le compilateur C utilise GNU ld [default=non].

--disable-libtool-lock

Évite de verrouiller (cela pourrait casser des constructions parallèles).

--with-pic

Tente d'utiliser uniquement les objets PIC/non-PIC [default=utilisation des deux].

--enable-memory-limit

Compile avec le support de limitation de mémoire. (non disponible depuis PHP 5.2.1 - toujours activé)

--disable-url-fopen-wrapper

Désactive le gestionnaire de ressources distantes, qui permet d'accéder à des fichiers via des URL et HTTP ou FTP. (non disponible depuis PHP 5.2.5)

--enable-versioning

Exporte uniquement les symboles requis. Voir le fichier INSTALL pour plus d'informations.

Options PHP

--enable-maintainer-mode

Active des règles de compilation (make) et des dépendances pas toujours utiles aux utilisateurs occasionnels.

--with-config-file-path=PATH

Indique le chemin dans lequel réside le fichier php.ini. Par défaut, c'est PREFIX/lib.

--enable-safe-mode

Active le safe mode (mode sécurisé) par défaut.

--with-exec-dir[=DIR]

Autorise uniquement des exécutables dans le dossier DIR lorsque le safe mode est activé ; par défaut, DIR vaut /usr/local/php/bin.

--enable-magic-quotes

Active les guillemets magiques.

--disable-short-tags

Désactive les balises courtes <?.

--enable-zend-multibyte

Active le codage multi-octets dans l'analyseur lexical et syntaxique. Lorsque PHP est compilé avec une telle option, la directive encoding est disponible dans la construction declare.

--with-libdir

Précise le chemin vers les bibliothèques de construction Unix pour construire PHP. Pour les systèmes 64bits, vous devez renseigner le dossier lib64 comme cela: --with-libdir=lib64.

Options SAPI

La liste suivante contient les options valides SAPI&s (Server Application Programming Interface) pour PHP.

--with-aolserver=DIR

Spécifie le chemin d'installation du serveur AOLserver.

--with-apxs[=FILE]

Compile un module Apache partagé. FILE est un chemin d'accès optionnel vers les outils apxs d'Apache. Par défaut, c'est apxs. Assurez-vous de spécifier la version d'apxs qui est réellement installée sur votre système, et NON pas celle qui est fournie avec Apache.

--with-apache[=DIR]

Compile le module Apache. DIR est le chemin du dossier d'installation d'Apache. Par défaut, DIR vaut /usr/local/apache.

--with-mod_charset

Active les tables de transfert pour mod_charset (version russe de Apache).

--with-apxs2[=FILE]

Compile le module partagé Apache 2.0. FILE est un chemin d'accès optionnel vers les outils apxs d'Apache. Par défaut, c'est apxs.

--with-caudium=DIR

Compile PHP comme module Pike pour utilisation avec Caudium. DIR est le serveur Caudium. Par défaut, c'est /usr/local/caudium/server.

--disable-cli

Disponible depuis PHP 4.3.0. Empêche la compilation de la version CLI de PHP (cela force aussi l'option --without-pear). Disponible depuis PHP 4.3.0. Plus d'informations dans la section sur l'utilisation de PHP en ligne de commande.

--enable-embed[=TYPE]

Active la compilation de la bibliothèque intégrée SAPI. TYPE vaut soit shared, soit static. Par défaut, c'est shared. Disponible depuis PHP 4.3.0.

--with-fhttpd[=DIR]

Compile le module fhttpd. DIR est le dossier d'installation de fhttpd. Par défaut, DIR vaut /usr/local/src/fhttpd. Disponible depuis PHP 4.3.0.

--with-isapi=DIR

Compile PHP sous forme de module ISAPI pour utiliser avec le serveur Zeus.

--with-nsapi=DIR

Spécifie le chemin vers le serveur web Netscape/iPlanet/SunONE.

--with-phttpd=DIR

Aucune information fournie actuellement.

--with-pi3web=DIR

Compile PHP sous forme de module pour utiliser avec le serveur Pi3Web.

--with-roxen=DIR

Compile PHP sous forme de module Pike. DIR est le chemin d'installation de Roxen. Par défaut, DIR vaut /usr/local/roxen/server.

--enable-roxen-zts

Compile PHP sous forme de module Roxen, en utilisant Zend Thread Safety.

--with-servlet[=DIR]

Inclut le support des servlets. DIR est le chemin d'installation du JSDK. Cette SAPI impose que l'extension java soit compilée comme une bibliothèque partagée.

--with-thttpd=SRCDIR

Compile PHP comme module thttpd.

--with-tux=MODULEDIR

Compile PHP comme module TUX (Linux uniquement).

--with-webjames=SRCDIR

Compile PHP comme module WebJames (RISC OS uniquement)

--disable-cgi

Empêche la compilation de la version CGI de PHP. Disponible depuis PHP 4.3.0

Depuis PHP 5.3.0, cet argument active aussi FastCGI qui devait avant être précisé had to be enabled using --enable-fastcgi.

--enable-force-cgi-redirect

Active la sécurité lors des redirections internes du serveur. Il est recommandé d'utiliser cette option lorsque vous utilisez PHP en CGI avec Apache.

Depuis PHP 5.3.0, cet argument est activé par défaut et n'existe plus. Pour le désactiver, la directive ini cgi.force_redirect doit être passée à 0.

--enable-discard-path

Si cette option est activée, l'exécutable CGI PHP peut être placé hors de l'arborescence web, en toute sécurité. Il ne sera pas possible de contourner les fichiers .htaccess. security.

Depuis PHP 5.3.0, cet argument est désactivé par défaut et n'est plus disponible. Pour activer la directive, utilisez le paramètre ini cgi.discard_path et mettez le à 1.

--with-fastcgi

Compile PHP comme application FastCGI. Cette option n'est plus disponible depuis PHP 4.3.0 et vous devez utiliser --enable-fastcgi à la place.

--enable-fastcgi

Si cette option est activée, le module CGI sera compilé avec le support FastCGI. Cette option est disponible depuis PHP 4.3.0.

Depuis PHP 5.3.0, cette directive n'existe plus. Voyez --enable-cgi à la place.

--disable-path-info-check

Si cette option est désactivée, des chemins tels que /info.php/test?a=b ne pourront pas fonctionner. Cette option est disponible depuis PHP 4.3.0. Pour plus d'informations, voir le » Manuel Apache.




Directives du php.ini

Sommaire


Liste des directives du php.ini

Cette liste inclut les directives du php.ini que vous pouvez définir pour configurer votre installation de PHP.

La colonne "Modifiable" montre les modes déterminant quand et où une directive peut être définie. Voir la section sur les valeurs du mode modifiable pour leurs définitions.

Options de configuration
Nom Par défaut Modifiable Historique
allow_call_time_pass_reference "1" PHP_INI_PERDIR PHP_INI_ALL en PHP 4.0.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
allow_url_fopen "1" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.3.4.
allow_url_include "0" PHP_INI_ALL PHP_INI_SYSTEM en PHP 5. Disponible depuis PHP 5.2.0.
always_populate_raw_post_data "0" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3. Disponible depuis PHP 4.1.0.
apc.cache_by_default "1" PHP_INI_ALL PHP_INI_SYSTEM en APC <= 3.0.12. Disponible depuis APC 3.0.0.
apc.enabled "1" PHP_INI_SYSTEM PHP_INI_SYSTEM en APC 2. PHP_INI_ALL en APC <= 3.0.12.
apc.enable_cli "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.7.
apc.file_update_protection "2" PHP_INI_SYSTEM Disponible depuis APC 3.0.6.
apc.filters NULL PHP_INI_SYSTEM  
apc.gc_ttl "3600" PHP_INI_SYSTEM  
apc.include_once_override "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.12.
apc.localcache "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.14.
apc.localcache.size "512" PHP_INI_SYSTEM Disponible depuis APC 3.0.14.
apc.max_file_size "1M" PHP_INI_SYSTEM Disponible depuis APC 3.0.7.
apc.mmap_file_mask NULL PHP_INI_SYSTEM  
apc.num_files_hint "1000" PHP_INI_SYSTEM  
apc.optimization "0" PHP_INI_ALL PHP_INI_SYSTEM en APC 2. Retiré depuis APC 3.0.13.
apc.report_autofilter "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.11.
apc.rfc1867 "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.13.
apc.rfc1867_freq "0" PHP_INI_SYSTEM  
apc.rfc1867_name "APC_UPLOAD_PROGRESS" PHP_INI_SYSTEM  
apc.rfc1867_prefix "upload_" PHP_INI_SYSTEM  
apc.shm_segments "1" PHP_INI_SYSTEM  
apc.shm_size "30" PHP_INI_SYSTEM  
apc.slam_defense "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.0.
apc.stat "1" PHP_INI_SYSTEM Disponible depuis APC 3.0.10.
apc.stat_ctime "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.13.
apc.ttl "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.0.
apc.user_entries_hint "4096" PHP_INI_SYSTEM Disponible depuis APC 3.0.0.
apc.user_ttl "0" PHP_INI_SYSTEM Disponible depuis APC 3.0.0.
apc.write_lock "1" PHP_INI_SYSTEM Disponible depuis APC 3.0.11.
apd.bitmask "0" PHP_INI_ALL Retiré depuis apd 0.9.
apd.dumpdir NULL PHP_INI_ALL  
apd.statement_tracing "0" PHP_INI_ALL Disponible depuis apd 0.9.
arg_separator "&" PHP_INI_ALL Disponible jusqu'en PHP 4.0.6.
arg_separator.input "&" PHP_INI_PERDIR Disponible depuis PHP 4.0.5.
arg_separator.output "&" PHP_INI_ALL Disponible depuis PHP 4.0.5.
asp_tags "0" PHP_INI_PERDIR PHP_INI_ALL en PHP 4.0.0.
assert.active "1" PHP_INI_ALL  
assert.bail "0" PHP_INI_ALL  
assert.callback NULL PHP_INI_ALL  
assert.quiet_eval "0" PHP_INI_ALL  
assert.warning "1" PHP_INI_ALL  
async_send "0" PHP_INI_ALL Disponible depuis PHP 4.2.0. Disponible jusqu'en PHP 4.3.0.
auto_append_file NULL PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
auto_detect_line_endings "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
auto_globals_jit "1" PHP_INI_PERDIR Disponible depuis PHP 5.0.0.
auto_prepend_file NULL PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
axis2.client_home "~/work/axisc/c/deply" PHP_INI_ALL  
axis2.enable_exception "1" PHP_INI_ALL  
axis2.enable_trace "1" PHP_INI_ALL  
axis2.log_path "/tmp" PHP_INI_ALL  
bcmath.scale "0" PHP_INI_ALL  
bcompiler.enabled "1" PHP_INI_ALL Disponible depuis bcompiler 0.8.
birdstep.max_links "-1" PHP_INI_ALL Disponible depuis PHP 4.2.0.
blenc.key_file "/usr/local/etc/blenckeys" PHP_INI_ALL  
browscap NULL PHP_INI_SYSTEM  
cgi.check_shebang_line "1" PHP_INI_SYSTEM Disponible depuis PHP 5.2.1.
cgi.discard_path "0" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.3.0.
cgi.force_redirect "1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.2.0.
cgi.nph "0" PHP_INI_ALL Disponible depuis PHP 4.3.5.
cgi.redirect_status_env NULL PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.2.0.
cgi.rfc2616_headers "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
child_terminate "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
coin_acceptor.autoreset "On" PHP_INI_ALL Retiré depuis coin_acceptor 0.2.
coin_acceptor.auto_initialize "Off" PHP_INI_ALL Disponible depuis coin_acceptor 0.2.
coin_acceptor.auto_reset "On" PHP_INI_ALL Disponible depuis coin_acceptor 0.2.
coin_acceptor.command_function "Off" PHP_INI_ALL Disponible depuis coin_acceptor 0.3.
coin_acceptor.delay "53132" PHP_INI_ALL Retiré depuis coin_acceptor 0.2.
coin_acceptor.delay_coins "53132" PHP_INI_ALL Disponible depuis coin_acceptor 0.2.
coin_acceptor.delay_prom "55748" PHP_INI_ALL Disponible depuis coin_acceptor 0.2.
coin_acceptor.device "/dev/ttyS1" PHP_INI_ALL Retiré depuis coin_acceptor 0.2.
coin_acceptor.lock_on_close "Off" PHP_INI_ALL Disponible depuis coin_acceptor 0.2.
coin_acceptor.start_unlocked "On" PHP_INI_ALL Disponible depuis coin_acceptor 0.2.
com.allow_dcom "0" PHP_INI_SYSTEM Disponible depuis PHP 4.0.5.
com.autoregister_casesensitive "1" PHP_INI_ALL PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_typelib "0" PHP_INI_ALL PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_verbose "0" PHP_INI_ALL PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.code_page "" PHP_INI_ALL Disponible depuis PHP 5.0.0.
com.typelib_file "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.5.
crack.default_dictionary NULL PHP_INI_PERDIR PHP_INI_SYSTEM en crack <= 0.2. Disponible depuis PHP 4.0.5. Disponible jusqu'en PHP 5.0.0.
daffodildb.default_host "localhost" PHP_INI_ALL  
daffodildb.default_password "daffodil" PHP_INI_ALL  
daffodildb.default_socket NULL PHP_INI_ALL  
daffodildb.default_user "DAFFODIL" PHP_INI_ALL  
daffodildb.port "3456" PHP_INI_ALL  
date.default_latitude "31.7667" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.default_longitude "35.2333" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.sunrise_zenith "90.583333" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.sunset_zenith "90.583333" PHP_INI_ALL Disponible depuis PHP 5.0.0.
date.timezone "" PHP_INI_ALL Disponible depuis PHP 5.1.0.
dba.default_handler "" PHP_INI_ALL Disponible depuis PHP 4.3.3.
dbx.colnames_case "unchanged" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0. Disponible jusqu'en PHP 5.1.0.
default_charset "" PHP_INI_ALL  
default_mimetype "text/html" PHP_INI_ALL  
default_socket_timeout "60" PHP_INI_ALL Disponible depuis PHP 4.3.0.
define_syslog_variables "0" PHP_INI_ALL Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
detect_unicode "1" PHP_INI_ALL Disponible depuis PHP 5.1.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
disable_classes "" php.ini uniquement Disponible depuis PHP 4.3.2.
disable_functions "" php.ini uniquement Disponible depuis PHP 4.0.1.
display_errors "1" PHP_INI_ALL  
display_startup_errors "0" PHP_INI_ALL Disponible depuis PHP 4.0.3.
docref_ext "" PHP_INI_ALL Disponible depuis PHP 4.3.2.
docref_root "" PHP_INI_ALL Disponible depuis PHP 4.3.0.
doc_root NULL PHP_INI_SYSTEM  
enable_dl "1" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
engine "1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
error_append_string NULL PHP_INI_ALL  
error_log NULL PHP_INI_ALL  
error_prepend_string NULL PHP_INI_ALL  
error_reporting NULL PHP_INI_ALL  
etpan.default.charset "utf-8" PHP_INI_ALL  
etpan.default.protocol "imap" PHP_INI_ALL  
exif.decode_jis_intel "JIS" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.decode_jis_motorola "JIS" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.decode_unicode_intel "UCS-2LE" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.decode_unicode_motorola "UCS-2BE" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.encode_jis "" PHP_INI_ALL Disponible depuis PHP 4.3.0.
exif.encode_unicode "ISO-8859-15" PHP_INI_ALL Disponible depuis PHP 4.3.0.
expect.logfile "" PHP_INI_ALL  
expect.loguser "1" PHP_INI_ALL  
expect.timeout "10" PHP_INI_ALL  
expose_php "1" php.ini uniquement  
extension NULL php.ini only  
extension_dir "/path/to/php" PHP_INI_SYSTEM  
fastcgi.impersonate "0" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.3.0.
fastcgi.logging "1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.4.0.
fbsql.allow_persistant "1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6. Disponible jusqu'en PHP 4.2.0.
fbsql.allow_persistent "1" PHP_INI_SYSTEM Disponible depuis PHP 4.2.0.
fbsql.autocommit "1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.batchSize "1000" PHP_INI_SYSTEM Disponible depuis PHP 4.2.0. Disponible jusqu'en PHP 5.1.0.
fbsql.batchsize "1000" PHP_INI_ALL Disponible depuis PHP 5.1.0.
fbsql.default_database "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_database_password "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_host NULL PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_password "" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.default_user "_SYSTEM" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.generate_warnings "0" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_connections "128" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_links "128" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_persistent "-1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.max_results "128" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6.
fbsql.mbatchSize "1000" PHP_INI_SYSTEM Disponible depuis PHP 4.0.6. Disponible jusqu'en PHP 4.2.0.
fbsql.show_timestamp_decimals "0" PHP_INI_SYSTEM Disponible depuis PHP 5.1.5.
file_uploads "1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
filter.default "unsafe_raw" PHP_INI_PERDIR PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
filter.default_flags NULL PHP_INI_PERDIR PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
from "" PHP_INI_ALL  
gd.jpeg_ignore_warning "0" PHP_INI_ALL Disponible depuis PHP 5.1.3.
geoip.custom_directory NULL PHP_INI_ALL Disponible depuis geoip 1.0.1.
geoip.database_standard "GeoIP.dat" PHP_INI_ALL Retiré depuis geoip 1.0.1.
gpc_order "GPC" PHP_INI_ALL Disponible jusqu'en PHP 5.0.0.
hidef.ini_path (char*)default_ini_path PHP_INI_SYSTEM  
highlight.bg "#FFFFFF" PHP_INI_ALL Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
highlight.comment "#FF8000" PHP_INI_ALL  
highlight.default "#0000BB" PHP_INI_ALL  
highlight.html "#000000" PHP_INI_ALL  
highlight.keyword "#007700" PHP_INI_ALL  
highlight.string "#DD0000" PHP_INI_ALL  
html_errors "1" PHP_INI_ALL PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible depuis PHP 4.0.2.
htscanner.config_file ".htaccess" PHP_INI_SYSTEM  
htscanner.default_docroot "/" PHP_INI_SYSTEM  
htscanner.default_ttl "300" PHP_INI_SYSTEM Disponible depuis htscanner 0.6.0.
htscanner.stop_on_error "0" PHP_INI_SYSTEM Disponible depuis htscanner 0.7.0.
http.allowed_methods "" PHP_INI_ALL Disponible depuis pecl_http 0.4.0. Retiré depuis pecl_http 1.0.0.
http.allowed_methods_log "" PHP_INI_ALL Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.cache_log "" PHP_INI_ALL Disponible depuis pecl_http 0.8.0. Retiré depuis pecl_http 1.0.0.
http.composite_log "" PHP_INI_ALL Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.etag.mode "MD5" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.etag_mode "MD5" PHP_INI_ALL Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.force_exit "1" PHP_INI_ALL Disponible depuis pecl_http 0.18.0.
http.log.allowed_methods "" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.log.cache "" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.log.composite "" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.log.not_found "" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.log.redirect "" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.ob_deflate_auto "0" PHP_INI_PERDIR Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.ob_deflate_flags "0" PHP_INI_ALL Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.ob_inflate_auto "0" PHP_INI_PERDIR Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.ob_inflate_flags "0" PHP_INI_ALL Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.only_exceptions "0" PHP_INI_ALL Disponible depuis pecl_http 0.11.0.
http.persistent.handles.ident "GLOBAL" PHP_INI_ALL Disponible depuis pecl_http 1.5.0.
http.persistent.handles.limit "-1" PHP_INI_SYSTEM Disponible depuis pecl_http 1.5.0.
http.redirect_log "" PHP_INI_ALL Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.request.datashare.connect "0" PHP_INI_SYSTEM Disponible depuis pecl_http 1.3.0.
http.request.datashare.cookie "0" PHP_INI_SYSTEM Disponible depuis pecl_http 1.3.0.
http.request.datashare.dns "1" PHP_INI_SYSTEM Disponible depuis pecl_http 1.3.0.
http.request.datashare.ssl "0" PHP_INI_SYSTEM Disponible depuis pecl_http 1.3.0.
http.request.methods.allowed "" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.request.methods.custom "" PHP_INI_PERDIR Disponible depuis pecl_http 1.0.0.
http.send.deflate.start_auto "0" PHP_INI_PERDIR Disponible depuis pecl_http 1.0.0.
http.send.deflate.start_flags "0" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.send.inflate.start_auto "0" PHP_INI_PERDIR Disponible depuis pecl_http 1.0.0.
http.send.inflate.start_flags "0" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
http.send.not_found_404 "1" PHP_INI_ALL Disponible depuis pecl_http 1.0.0.
hyerwave.allow_persistent "0" PHP_INI_SYSTEM Disponible jusqu'en PHP 4.3.2.
hyperwave.allow_persistent "0" PHP_INI_SYSTEM Disponible depuis PHP 4.3.2. Disponible jusqu'en PHP 5.0.0.
hyperwave.default_port "418" PHP_INI_ALL Disponible jusqu'en PHP 5.0.0.
ibase.allow_persistent "1" PHP_INI_SYSTEM  
ibase.dateformat "%Y-%m-%d" PHP_INI_ALL  
ibase.default_charset NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
ibase.default_db NULL PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
ibase.default_password NULL PHP_INI_ALL  
ibase.default_user NULL PHP_INI_ALL  
ibase.max_links "-1" PHP_INI_SYSTEM  
ibase.max_persistent "-1" PHP_INI_SYSTEM  
ibase.timeformat "%H:%M:%S" PHP_INI_ALL  
ibase.timestampformat "%Y-%m-%d %H:%M:%S" PHP_INI_ALL  
ibm_db2.binmode "1" PHP_INI_ALL  
ibm_db2.i5_allow_commit "0" PHP_INI_SYSTEM Disponible depuis ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc "0" PHP_INI_SYSTEM Disponible depuis ibm_db2 1.5.0.
ibm_db2.instance_name NULL PHP_INI_SYSTEM Disponible depuis ibm_db2 1.0.2.
iconv.input_encoding "ISO-8859-1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
iconv.internal_encoding "ISO-8859-1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
iconv.output_encoding "ISO-8859-1" PHP_INI_ALL Disponible depuis PHP 4.0.5.
ifx.allow_persistent "1" PHP_INI_SYSTEM Disponible jusqu'en PHP 5.2.1.
ifx.blobinfile "1" PHP_INI_ALL Disponible jusqu'en PHP 5.2.1.
ifx.byteasvarchar "0" PHP_INI_ALL Disponible jusqu'en PHP 5.2.1.
ifx.charasvarchar "0" PHP_INI_ALL Disponible jusqu'en PHP 5.2.1.
ifx.default_host NULL PHP_INI_SYSTEM Disponible jusqu'en PHP 5.2.1.
ifx.default_password NULL PHP_INI_SYSTEM Disponible jusqu'en PHP 5.2.1.
ifx.default_user NULL PHP_INI_SYSTEM Disponible jusqu'en PHP 5.2.1.
ifx.max_links "-1" PHP_INI_SYSTEM Disponible jusqu'en PHP 5.2.1.
ifx.max_persistent "-1" PHP_INI_SYSTEM Disponible jusqu'en PHP 5.2.1.
ifx.nullformat "0" PHP_INI_ALL Disponible jusqu'en PHP 5.2.1.
ifx.textasvarchar "0" PHP_INI_ALL Disponible jusqu'en PHP 5.2.1.
ignore_repeated_errors "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
ignore_repeated_source "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
ignore_user_abort "0" PHP_INI_ALL  
imlib2.font_cache_max_size "524288" PHP_INI_ALL  
imlib2.font_path "/usr/share/php/fonts/" PHP_INI_ALL  
implicit_flush "0" PHP_INI_ALL PHP_INI_PERDIR en PHP <= 4.2.3.
include_path ".;/path/to/php/pear" PHP_INI_ALL  
ingres.allow_persistent "1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
ingres.array_index_start "1" PHP_INI_ALL Disponible depuis ingres 1.4.0.
ingres.blob_segment_length "4096" PHP_INI_ALL Disponible depuis ingres 1.2.0.
ingres.cursor_mode "0" PHP_INI_ALL Disponible depuis ingres 1.1.
ingres.default_database NULL PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
ingres.default_password NULL PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
ingres.default_user NULL PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
ingres.max_links "-1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
ingres.max_persistent "-1" PHP_INI_SYSTEM Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
ingres.report_db_warnings "1" PHP_INI_ALL Disponible depuis ingres 1.1.
ingres.timeout "-1" PHP_INI_ALL Disponible depuis ingres 1.4.0.
ingres.trace_connect "0" PHP_INI_ALL Disponible depuis ingres 1.2.1.
ircg.control_user "nobody" PHP_INI_ALL Disponible depuis PHP 5.0.0. Disponible jusqu'en PHP 5.1.0.
ircg.keep_alive_interval "60" PHP_INI_ALL Disponible depuis PHP 5.0.0. Disponible jusqu'en PHP 5.1.0.
ircg.max_format_message_sets "12" PHP_INI_ALL Disponible depuis PHP 5.0.0. Disponible jusqu'en PHP 5.1.0.
ircg.shared_mem_size "6000000" PHP_INI_ALL Disponible depuis PHP 5.0.0. Disponible jusqu'en PHP 5.1.0.
ircg.work_dir "/tmp/ircg" PHP_INI_ALL Disponible depuis PHP 5.0.0. Disponible jusqu'en PHP 5.1.0.
last_modified "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
ldap.base_dn NULL PHP_INI_ALL Disponible jusqu'en PHP 4.2.0.
ldap.max_links "-1" PHP_INI_SYSTEM  
log.dbm_dir "" PHP_INI_ALL Disponible jusqu'en PHP 4.0.1.
log_errors "0" PHP_INI_ALL  
log_errors_max_len "1024" PHP_INI_ALL Disponible depuis PHP 4.3.0.
magic_quotes_gpc "1" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3. Obsolète en PHP 5.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
magic_quotes_runtime "0" PHP_INI_ALL Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
magic_quotes_sybase "0" PHP_INI_ALL Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
mail.add_x_header "0" PHP_INI_SYSTEM|PHP_INI_PERDIR Available since PHP 5.3.0.
mail.force_extra_parameters NULL php.ini uniquement Disponible depuis PHP 5.0.0.
mail.log "" PHP_INI_ALL Disponible depuis PHP 5.3.0.
mailparse.def_charset "us-ascii" PHP_INI_ALL Disponible depuis PHP 4.1.0. Disponible jusqu'en PHP 4.2.0.
maxdb.default_db NULL PHP_INI_ALL  
maxdb.default_host NULL PHP_INI_ALL  
maxdb.default_pw NULL PHP_INI_ALL  
maxdb.default_user NULL PHP_INI_ALL  
maxdb.long_readlen "200" PHP_INI_ALL  
max_execution_time "30" PHP_INI_ALL  
max_input_nesting_level "64" PHP_INI_PERDIR Disponible depuis PHP 4.4.8. Disponible jusqu'en PHP 5.0.0.
max_input_time "-1" PHP_INI_PERDIR Disponible depuis PHP 4.3.0.
mbstring.detect_order NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.encoding_translation "0" PHP_INI_PERDIR Disponible depuis PHP 4.3.0.
mbstring.func_overload "0" PHP_INI_PERDIR PHP_INI_SYSTEM en PHP <= 4.2.3. PHP_INI_SYSTEM | PHP_INI_PERDIR entre PHP 4.3 et 5.2.6. Disponible depuis PHP 4.2.0.
mbstring.http_input "pass" PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.http_output "pass" PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.internal_encoding NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.language "neutral" PHP_INI_ALL Disponible depuis PHP 4.3.0.; PHP_INI_PERDIR en PHP <= 5.2.6
mbstring.script_encoding NULL PHP_INI_ALL Disponible depuis PHP 4.3.0.
mbstring.strict_detection "0" PHP_INI_ALL Disponible depuis PHP 5.1.2.
mbstring.substitute_character NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mcrypt.algorithms_dir NULL PHP_INI_ALL Disponible depuis PHP 4.0.2.
mcrypt.modes_dir NULL PHP_INI_ALL Disponible depuis PHP 4.0.2.
memcache.allow_failover "1" PHP_INI_ALL Disponible depuis memcache 2.0.2.
memcache.chunk_size "8192" PHP_INI_ALL Disponible depuis memcache 2.0.2.
memcache.default_port "11211" PHP_INI_ALL Disponible depuis memcache 2.0.2.
memcache.hash_function "crc32" PHP_INI_ALL Disponible depuis memcache 2.2.0.
memcache.hash_strategy "standard" PHP_INI_ALL Disponible depuis memcache 2.2.0.
memcache.max_failover_attempts "20" PHP_INI_ALL Disponible depuis memcache 2.1.0.
memory_limit "128M" PHP_INI_ALL  
mime_magic.debug "0" PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
mime_magic.magicfile "/path/to/php/magic.mime" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0.
msql.allow_persistent "1" PHP_INI_ALL  
msql.max_links "-1" PHP_INI_ALL  
msql.max_persistent "-1" PHP_INI_ALL  
mssql.allow_persistent "1" PHP_INI_SYSTEM  
mssql.batchsize "0" PHP_INI_ALL Disponible depuis PHP 4.0.4.
mssql.charset "" PHP_INI_ALL Disponible depuis PHP 5.1.2.
mssql.compatability_mode "0" PHP_INI_ALL  
mssql.connect_timeout "5" PHP_INI_ALL  
mssql.datetimeconvert "1" PHP_INI_ALL Disponible depuis PHP 4.2.0.
mssql.max_links "-1" PHP_INI_SYSTEM  
mssql.max_persistent "-1" PHP_INI_SYSTEM  
mssql.max_procs "-1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
mssql.min_error_severity "10" PHP_INI_ALL  
mssql.min_message_severity "10" PHP_INI_ALL  
mssql.secure_connection "0" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0.
mssql.textlimit "-1" PHP_INI_ALL  
mssql.textsize "-1" PHP_INI_ALL  
mssql.timeout "60" PHP_INI_ALL Disponible depuis PHP 4.1.0.
mysql.allow_persistent "1" PHP_INI_SYSTEM  
mysql.connect_timeout "60" PHP_INI_ALL PHP_INI_SYSTEM en PHP <= 4.3.2. Disponible depuis PHP 4.3.0.
mysql.default_host NULL PHP_INI_ALL  
mysql.default_password NULL PHP_INI_ALL  
mysql.default_port NULL PHP_INI_ALL  
mysql.default_socket NULL PHP_INI_ALL Disponible depuis PHP 4.0.1.
mysql.default_user NULL PHP_INI_ALL  
mysql.max_links "-1" PHP_INI_SYSTEM  
mysql.max_persistent "-1" PHP_INI_SYSTEM  
mysql.trace_mode "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
mysqli.default_host NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_port "3306" PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_pw NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_socket NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.default_user NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
mysqli.max_links "-1" PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
mysqli.reconnect "0" PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
namazu.debugmode "0" PHP_INI_ALL  
namazu.lang NULL PHP_INI_ALL  
namazu.loggingmode "0" PHP_INI_ALL  
namazu.sortmethod NULL PHP_INI_ALL  
namazu.sortorder NULL PHP_INI_ALL  
nsapi.read_timeout "60" PHP_INI_ALL Disponible depuis PHP 4.3.3.
oci8.default_prefetch "10" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2.
oci8.max_persistent "-1" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2.
oci8.old_oci_close_semantics "0" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2.
oci8.persistent_timeout "-1" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2.
oci8.ping_interval "60" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2.
oci8.privileged_connect "0" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2.
oci8.statement_cache_size "20" PHP_INI_SYSTEM Disponible depuis PHP 5.1.2.
odbc.allow_persistent "1" PHP_INI_SYSTEM  
odbc.check_persistent "1" PHP_INI_SYSTEM  
odbc.defaultbinmode "1" PHP_INI_ALL  
odbc.defaultlrl "4096" PHP_INI_ALL  
odbc.default_db NULL PHP_INI_ALL  
odbc.default_pw NULL PHP_INI_ALL  
odbc.default_user NULL PHP_INI_ALL  
odbc.max_links "-1" PHP_INI_SYSTEM  
odbc.max_persistent "-1" PHP_INI_SYSTEM  
odbtp.datetime_format "object" PHP_INI_ALL  
odbtp.detach_default_queries "0" PHP_INI_ALL  
odbtp.guid_format "string" PHP_INI_ALL Disponible depuis odbtp 1.1.3.
odbtp.interface_file "/usr/local/share/odbtp.conf" PHP_INI_ALL  
odbtp.truncation_errors "1" PHP_INI_ALL  
opendirectory.default_separator "/" PHP_INI_ALL Retiré depuis opendirectory 0.2.2.
opendirectory.max_refs "-1" PHP_INI_ALL  
opendirectory.separator "/" PHP_INI_ALL Disponible depuis opendirectory 0.2.2.
open_basedir NULL PHP_INI_ALL PHP_INI_SYSTEM en PHP < 5.2.3.
oracle.allow_persistent "-1" PHP_INI_ALL Disponible jusqu'en PHP 5.1.0.
oracle.max_links "-1" PHP_INI_ALL Disponible jusqu'en PHP 5.1.0.
oracle.max_persistent "-1" PHP_INI_ALL Disponible jusqu'en PHP 5.1.0.
output_buffering "0" PHP_INI_PERDIR  
output_handler NULL PHP_INI_PERDIR Disponible depuis PHP 4.0.4.
pam.servicename "php" PHP_INI_ALL  
pcre.backtrack_limit "100000" PHP_INI_ALL Disponible depuis PHP 5.2.0.
pcre.recursion_limit "100000" PHP_INI_ALL Disponible depuis PHP 5.2.0.
pdo_odbc.connection_pooling "strict" PHP_INI_ALL Disponible depuis PHP 5.1.0.
pdo_odbc.db2_instance_name NULL PHP_INI_SYSTEM Disponible depuis PHP 5.1.1. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
pfpro.defaulthost "test-payflow.verisign.com" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.defaultport "443" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.defaulttimeout "30" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxyaddress "" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxylogon "" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxypassword "" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxyport "" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pgsql.allow_persistent "1" PHP_INI_SYSTEM  
pgsql.auto_reset_persistent "0" PHP_INI_SYSTEM Disponible depuis PHP 4.2.0.
pgsql.ignore_notice "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
pgsql.log_notice "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
pgsql.max_links "-1" PHP_INI_SYSTEM  
pgsql.max_persistent "-1" PHP_INI_SYSTEM  
phar.extract_list "" PHP_INI_ALL Disponible depuis phar 1.1.0.
phar.readonly "1" PHP_INI_ALL  
phar.require_hash "1" PHP_INI_ALL  
post_max_size "8M" PHP_INI_PERDIR PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
precision "14" PHP_INI_ALL  
printer.default_printer "" PHP_INI_ALL Disponible depuis PHP 4.0.6. Disponible jusqu'en PHP 4.1.1.
python.append_path "" PHP_INI_ALL  
python.prepend_path "." PHP_INI_ALL  
realpath_cache_size "16K" PHP_INI_SYSTEM Disponible depuis PHP 5.1.0.
realpath_cache_ttl "120" PHP_INI_SYSTEM Disponible depuis PHP 5.1.0.
register_argc_argv "1" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
register_globals "0" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3. Obsolète en 5.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
register_long_arrays "1" PHP_INI_PERDIR Disponible depuis PHP 5.0.0. Obsolète en PHP 5.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
report_memleaks "1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
report_zend_debug "1" PHP_INI_ALL Disponible depuis PHP 5.0.0.
request_order "" PHP_INI_SYSTEM|PHP_INI_PERDIR Disponible depuis PHP 5.3.0
runkit.internal_override "0" PHP_INI_SYSTEM  
runkit.superglobal "" PHP_INI_PERDIR  
safe_mode "0" PHP_INI_SYSTEM Obsolète en PHP 5.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_allowed_env_vars "PHP_" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_exec_dir "" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_gid "0" PHP_INI_SYSTEM Disponible depuis PHP 4.1.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_include_dir NULL PHP_INI_SYSTEM Disponible depuis PHP 4.1.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
safe_mode_protected_env_vars "LD_LIBRARY_PATH" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
sendmail_from NULL PHP_INI_ALL  
sendmail_path "/usr/sbin/sendmail -t -i" PHP_INI_SYSTEM  
serialize_precision "17" PHP_INI_ALL Disponible depuis PHP 4.3.2. Jusqu'à PHP 5.3.5, la valeur par défaut était de 100.
session.auto_start "0" PHP_INI_ALL  
session.bug_compat_42 "1" PHP_INI_ALL Disponible depuis PHP 4.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
session.bug_compat_warn "1" PHP_INI_ALL Disponible depuis PHP 4.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
session.cache_expire "180" PHP_INI_ALL  
session.cache_limiter "nocache" PHP_INI_ALL  
session.cookie_domain "" PHP_INI_ALL  
session.cookie_httponly "" PHP_INI_ALL Disponible depuis PHP 5.2.0.
session.cookie_lifetime "0" PHP_INI_ALL  
session.cookie_path "/" PHP_INI_ALL  
session.cookie_secure "" PHP_INI_ALL Disponible depuis PHP 4.0.4.
session.entropy_file "" PHP_INI_ALL  
session.entropy_length "0" PHP_INI_ALL  
session.gc_dividend "100" PHP_INI_ALL Disponible depuis PHP 4.3.0. Disponible jusqu'en PHP 4.3.2.
session.gc_divisor "100" PHP_INI_ALL Disponible depuis PHP 4.3.2.
session.gc_maxlifetime "1440" PHP_INI_ALL  
session.gc_probability "1" PHP_INI_ALL  
session.hash_bits_per_character "4" PHP_INI_ALL Disponible depuis PHP 5.0.0.
session.hash_function "0" PHP_INI_ALL Disponible depuis PHP 5.0.0.
session.name "PHPSESSID" PHP_INI_ALL  
session.referer_check "" PHP_INI_ALL  
session.save_handler "files" PHP_INI_ALL  
session.save_path "" PHP_INI_ALL  
session.serialize_handler "php" PHP_INI_ALL  
session.use_cookies "1" PHP_INI_ALL  
session.use_only_cookies "1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
session.use_trans_sid "0" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible depuis PHP 4.0.3.
session_pgsql.create_table "1" PHP_INI_SYSTEM  
session_pgsql.db "host=localhost dbname=php_session user=nobody" PHP_INI_SYSTEM  
session_pgsql.disable "0" PHP_INI_SYSTEM  
session_pgsql.failover_mode "0" PHP_INI_SYSTEM  
session_pgsql.gc_interval "3600" PHP_INI_SYSTEM  
session_pgsql.keep_expired "0" PHP_INI_SYSTEM  
session_pgsql.sem_file_name "/tmp/php_session_pgsql" PHP_INI_SYSTEM  
session_pgsql.serializable "0" PHP_INI_SYSTEM  
session_pgsql.short_circuit "0" PHP_INI_SYSTEM  
session_pgsql.use_app_vars "0" PHP_INI_SYSTEM  
session_pgsql.vacuum_interval "21600" PHP_INI_SYSTEM  
short_open_tag "1" PHP_INI_ALL PHP_INI_ALL en PHP 4.0.0. PHP_INI_PERDIR en PHP < 5.3.0.
simple_cvs.authMethod "0" PHP_INI_ALL  
simple_cvs.compressionLevel "0" PHP_INI_ALL  
simple_cvs.cvsRoot "0" PHP_INI_ALL  
simple_cvs.host "0" PHP_INI_ALL  
simple_cvs.moduleName "0" PHP_INI_ALL  
simple_cvs.userName "0" PHP_INI_ALL  
simple_cvs.workingDir "0" PHP_INI_ALL  
SMTP "localhost" PHP_INI_ALL  
smtp_port "25" PHP_INI_ALL Disponible depuis PHP 4.3.0.
soap.wsdl_cache "1" PHP_INI_ALL Disponible depuis PHP 5.1.5.
soap.wsdl_cache_dir "/tmp" PHP_INI_ALL Disponible depuis PHP 5.0.0.
soap.wsdl_cache_enabled "1" PHP_INI_ALL Disponible depuis PHP 5.0.0.
soap.wsdl_cache_limit "5" PHP_INI_ALL Disponible depuis PHP 5.1.5.
soap.wsdl_cache_ttl "86400" PHP_INI_ALL Disponible depuis PHP 5.0.0.
sql.safe_mode "0" PHP_INI_SYSTEM  
sqlite.assoc_case "0" PHP_INI_ALL Disponible depuis PHP 5.0.0.
sybase.allow_persistent "1" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.hostname NULL PHP_INI_ALL Disponible jusqu'en PHP 4.0.2.
sybase.interface_file "" PHP_INI_ALL  
sybase.login_timeout "0" PHP_INI_ALL Disponible jusqu'en PHP 4.0.2.
sybase.max_links "-1" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.max_persistent "-1" PHP_INI_ALL PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.min_client_severity "10" PHP_INI_ALL Disponible jusqu'en PHP 4.0.2.
sybase.min_error_severity "10" PHP_INI_ALL  
sybase.min_message_severity "10" PHP_INI_ALL  
sybase.min_server_severity "10" PHP_INI_ALL Disponible jusqu'en PHP 4.0.2.
sybase.timeout "0" PHP_INI_ALL Disponible jusqu'en PHP 4.0.2.
sybct.allow_persistent "1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.0.2. Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 4.0.3.
sybct.deadlock_retry_count "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.
sybct.hostname NULL PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 4.0.3.
sybct.login_timeout "-1" PHP_INI_ALL Disponible depuis PHP 4.0.2.
sybct.max_links "-1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.0.2. Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 4.0.3.
sybct.max_persistent "-1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.0.2. Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 4.0.3.
sybct.min_client_severity "10" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 4.0.3.
sybct.min_server_severity "10" PHP_INI_ALL Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 4.0.3.
sybct.packet_size "0" PHP_INI_ALL Disponible depuis PHP 4.3.5.
sybct.timeout "0" PHP_INI_ALL Disponible depuis PHP 4.0.2.
sysvshm.init_mem "10000" PHP_INI_ALL  
tidy.clean_output "0" PHP_INI_USER PHP_INI_PERDIR en PHP 5. Disponible depuis PHP 5.0.0.
tidy.default_config "" PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
track_errors "0" PHP_INI_ALL  
track_vars "1" PHP_INI_ALL Disponible jusqu'en PHP 4.0.3.
unserialize_callback_func NULL PHP_INI_ALL Disponible depuis PHP 4.2.0.
uploadprogress.file.filename_template "/tmp/upt_%s.txt" PHP_INI_ALL  
upload_max_filesize "2M" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
max_file_uploads 20 PHP_INI_SYSTEM Disponible depuis PHP PHP 5.2.12.
upload_tmp_dir NULL PHP_INI_SYSTEM  
url_rewriter.tags "a=href,area=href,frame=src,form=,fieldset=" PHP_INI_ALL Disponible depuis PHP 4.0.4.
user_agent NULL PHP_INI_ALL Disponible depuis PHP 4.3.0.
user_dir NULL PHP_INI_SYSTEM  
user_ini.cache_ttl "300" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
user_ini.filename ".user.ini" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
valkyrie.auto_validate "0" PHP_INI_ALL  
valkyrie.config_path NULL PHP_INI_ALL  
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 5.0.5.
velocis.max_links "-1" PHP_INI_ALL Disponible jusqu'en PHP 4.2.0.
vld.active "0" PHP_INI_SYSTEM  
vld.execute "1" PHP_INI_SYSTEM Disponible depuis vld 0.8.0.
vld.skip_append "0" PHP_INI_SYSTEM Disponible depuis vld 0.8.0.
vld.skip_prepend "0" PHP_INI_SYSTEM Disponible depuis vld 0.8.0.
xbithack "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
xdebug.auto_profile "0" PHP_INI_ALL Retiré depuis Xdebug 2.0.0.
xdebug.auto_profile_mode "0" PHP_INI_ALL Retiré depuis Xdebug 2.0.0.
xdebug.auto_trace "0" PHP_INI_ALL  
xdebug.collect_includes "1" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.collect_params "0" PHP_INI_ALL  
xdebug.collect_return "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.collect_vars "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.default_enable "1" PHP_INI_ALL PHP_INI_SYSTEM en Xdebug 1.
xdebug.dump.COOKIE NULL PHP_INI_ALL  
xdebug.dump.ENV NULL PHP_INI_ALL  
xdebug.dump.FILES NULL PHP_INI_ALL  
xdebug.dump.GET NULL PHP_INI_ALL  
xdebug.dump.POST NULL PHP_INI_ALL  
xdebug.dump.REQUEST NULL PHP_INI_ALL  
xdebug.dump.SERVER NULL PHP_INI_ALL  
xdebug.dump.SESSION NULL PHP_INI_ALL  
xdebug.dump_globals "1" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.dump_once "1" PHP_INI_ALL  
xdebug.dump_undefined "0" PHP_INI_ALL  
xdebug.extended_info "1" PHP_INI_SYSTEM Disponible depuis Xdebug 2.0.0.
xdebug.idekey "" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.manual_url "http://www.php.net" PHP_INI_ALL  
xdebug.max_nesting_level "100" PHP_INI_ALL  
xdebug.output_dir "/tmp" PHP_INI_PERDIR PHP_INI_SYSTEM en Xdebug <= 1.2.0. Retiré depuis Xdebug 2.0.0.
xdebug.profiler_aggregate "0" PHP_INI_PERDIR Disponible depuis Xdebug 2.0.0.
xdebug.profiler_append "0" PHP_INI_PERDIR Disponible depuis Xdebug 2.0.0.
xdebug.profiler_enable "0" PHP_INI_PERDIR Disponible depuis Xdebug 2.0.0.
xdebug.profiler_enable_trigger "0" PHP_INI_PERDIR Disponible depuis Xdebug 2.0.0.
xdebug.profiler_output_dir "/tmp" PHP_INI_PERDIR Disponible depuis Xdebug 2.0.0.
xdebug.profiler_output_name "cachegrind.out.%p" PHP_INI_PERDIR Disponible depuis Xdebug 2.0.0.
xdebug.remote_autostart "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.remote_enable "0" PHP_INI_PERDIR  
xdebug.remote_handler "dbgp" PHP_INI_ALL  
xdebug.remote_host "localhost" PHP_INI_ALL  
xdebug.remote_log "" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.remote_mode "req" PHP_INI_ALL  
xdebug.remote_port "9000" PHP_INI_ALL  
xdebug.show_exception_trace "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.show_local_vars "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.show_mem_delta "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.trace_format "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.trace_options "0" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.trace_output_dir "/tmp" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.trace_output_name "trace.%c" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.var_display_max_children "128" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.var_display_max_data "512" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xdebug.var_display_max_depth "3" PHP_INI_ALL Disponible depuis Xdebug 2.0.0.
xmlrpc_errors "0" PHP_INI_SYSTEM Disponible depuis PHP 4.1.0.
xmlrpc_error_number "0" PHP_INI_ALL Disponible depuis PHP 4.1.0.
xmms.path "/usr/bin/xmms" PHP_INI_ALL  
xmms.session "0" PHP_INI_ALL  
y2k_compliance "1" PHP_INI_ALL  
yami.response.timeout "5" PHP_INI_ALL Disponible depuis yami 1.0.1.
yaz.keepalive "120" PHP_INI_ALL  
yaz.log_file NULL PHP_INI_ALL Disponible depuis PHP 4.3.0. Disponible jusqu'en PHP 5.0.0.
yaz.log_mask NULL PHP_INI_ALL Disponible depuis yaz 1.0.3.
yaz.max_links "100" PHP_INI_ALL Disponible depuis PHP 4.3.0. Disponible jusqu'en PHP 5.0.0.
zend.enable_gc "1" PHP_INI_ALL Disponible depuis PHP 5.3.0.
zend.ze1_compatibility_mode "0" PHP_INI_ALL Disponible depuis PHP 5.0.0. Disponible jusqu'en PHP 5.3.0.
zend_extension NULL php.ini only  
zend_extension_debug NULL php.ini only  
zend_extension_debug_ts NULL php.ini only  
zend_extension_ts NULL php.ini only  
zlib.output_compression "0" PHP_INI_ALL Disponible depuis PHP 4.0.5.
zlib.output_compression_level "-1" PHP_INI_ALL Disponible depuis PHP 4.3.0.
zlib.output_handler "" PHP_INI_ALL Disponible depuis PHP 4.3.0.



Liste des sections du fichier php.ini

Cette liste inclut les sections du php.ini que vous pouvez ajuster pour configurer votre PHP selon l'hôte virtuel ou le chemin. Ces sections sont optionnelles.

Ces sections n'affectent pas directement PHP. Elles sont utilisées pour grouper les autres directives de configuration du php.ini et pour les appliquer à un hôte ou à un chemin particulier.

Ces sections ne sont utilisées qu'en mode CGI/FastCGI et elles ne peuvent définir des extensions et des directives zend_extension.

Sections
Nom Modifiable Historique
[HOST=] PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
[PATH=] PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

[HOST=<host>]

Cette section vous permet de définir un jeu de directives du php.ini qui prendront effet sur l'hôte spécifié.

Exemple #1 Active la sortie d'erreur à l'écran pour dev.site.com

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On

[PATH=<path>]

Cette section vous permet de définir un jeu de directives du php.ini qui prendront effet quand un script sera lancé depuis le chemin spécifié.

Exemple #2 Ajoute un script de sécurité pour les zones protégées

[PATH=/home/site/public/secure]
auto_prepend_file=security.php



Description des directives internes du php.ini

Cette liste inclut les directives internes du php.ini que vous pouvez définir pour personnaliser votre configuration de PHP. Les directives gérées par les extensions sont listées et détaillées dans les pages de documentation respectives des extensions ; les informations concernant les directives sur les sessions par exemple, peuvent être trouvées sur la page de documentation des sessions.

Options Httpd

Options de configuration
Nom Par défaut Modifiable Historique
async_send "0" PHP_INI_ALL  

Options du langage

Options de configuration
Nom Par défaut Modifiable Historique
short_open_tag On PHP_INI_ALL PHP_INI_ALL pour PHP 4.0.0. PHP_INI_PERDIR en PHP < 5.3.0.
asp_tags "0" PHP_INI_PERDIR PHP_INI_ALL pour PHP 4.0.0.
precision "14" PHP_INI_ALL  
y2k_compliance "1" PHP_INI_ALL  
allow_call_time_pass_reference "1" PHP_INI_PERDIR PHP_INI_ALL pour PHP 4.0.0.
disable_functions "" php.ini only Disponible depuis PHP 4.0.1.
disable_classes "" php.ini only Disponible depuis PHP 4.3.2.
expose_php "1" php.ini uniquement  
zend.ze1_compatibility_mode "0" PHP_INI_ALL Disponible depuis PHP 5.0.0. Supprimé en PHP 5.3.0.
detect_unicode "1" PHP_INI_ALL Disponible depuis PHP 5.1.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

Voici un éclaircissement sur l'utilisation des directives de configuration.

short_open_tag boolean

Définit si les balises courtes d'ouverture de PHP (<? ?>) sont autorisées ou non. Si vous voulez utiliser PHP avec XML, vous devez désactiver cette option de configuration pour pouvoir utiliser <?xml ?>. Sinon, vous pouvez l'écrire à l'aide de PHP, par exemple : <?php echo '<?xml version="1.0">'; ?>. Si cette option est désactivée, vous devez utiliser la version longue d'ouverture de balises PHP (<?php ?>).

Note:

Cette directive affecte également l'utilisation de <?=, qui est identique à <? echo. L'utilisation de cette écriture nécessite que l'option short_open_tag soit activée.

asp_tags boolean
Active l'utilisation des balises ASP (<% %>) tout en conservant les balises PHP (<?php ?>). Cela inclut l'utilisation des balises courtes comme <%= $valeur %>. Pour plus d'informations, lisez la page Sortir du mode HTML.
precision integer
Le nombre de décimales significatif à afficher dans les nombres à virgule flottante.
y2k_compliance boolean
Force la conformité avec l'an 2000 (peut être la cause de problèmes avec les navigateurs non-conformes)
allow_call_time_pass_reference boolean

Active ou non la possibilité de forcer les arguments à être passés par référence lors de l'appel à une fonction. Il est préférable de spécifier directement dans la déclaration de la fonction si les arguments seront passés ou non par référence. Nous vous encourageons à désactiver cette option et de vous assurer que vos scripts fonctionnent correctement avec, afin d'être sûr qu'ils fonctionneront avec les versions futures du langage (vous devriez recevoir une alerte à chaque fois que vous utiliserez cette fonctionnalité).

Passer les arguments par référence à l'appel de la fonction a été abandonné pour rendre le code plus clair. Les fonctions risquaient de modifier les arguments d'une manière aléatoire si l'argument était passé par référence. Pour éviter cet effet, il est préférable de spécifier le passage par référence dans le prototype de la fonction.

En PHP5, allow_call_time_pass_reference est obsolète, dans les versions inférieures à PHP 5.3.0, cette fonctionnalité émet une erreur E_COMPILE_WARNING, et dans les versions supérieures à PHP 5.3.0+, l'erreur est de niveau E_DEPRECATED.

Voir aussi l'explication sur les références.

expose_php boolean

Décide ou non si PHP doit être affiché comme étant installé sur le serveur (e.g. en ajoutant sa signature dans les en-têtes du serveur web). Ce n'est en aucun cas une menace de sécurité, mais cela permet de déterminer si vous utilisez PHP ou non sur votre serveur.

disable_functions string

Cette directive vous permet de désactiver certaines fonctions pour des raisons de securité. Elle prend une liste de noms de fonction délimités par une virgule. Cette directive n'est pas affectée par le Safe Mode.

Seules les fonctions internes peuvent être désactivées en utilisant cette directive. Les fonctions définies par l'utilisateur ne sont pas affectées.

Cette directive doit être définie dans le php.ini. Par exemple, vous ne pouvez pas le définir dans le fichier httpd.conf.

disable_classes string
Cette directive vous permet de désactiver certaines classes pour des raisons de securité. Elle prend une liste de noms de classes délimités par une virgule. Cette directive n'est pas affectée par le Safe Mode. Cette directive doit être définie dans le php.ini. Par exemple, vous ne pouvez pas le définir dans le fichier httpd.conf.

Note: Note de disponibilité
Cette directive est devenue disponible depuis PHP 4.3.2.

zend.ze1_compatibility_mode boolean

Active le mode de compatibilité avec le Zend Engine 1 (PHP 4). Cela affecte le clonage, le casting (les objets sans propriété sont transtipés en FALSE ou 0) et la comparaison des objets. Dans ce mode, les objets sont passés par valeur plutôt que par référence, par défaut.

Voir aussi la section intitulée Migration de PHP 4 à PHP 5.

Avertissement

Cette fonctionnalité est devenue OBSOLÈTE et a été SUPPRIMÉE depuis PHP 5.3.0.

detect_unicode boolean

Vérifie le BOM (Byte Order Mark) et regarde si le fichier contient des caractères multi-octets valides. Cette détection est effectuée avant le lancement de la fonction __halt_compiler(). Disponible uniquement en mode Zend multi-octets.

Limite des ressources

Options de configuration
Nom Par défaut Modifiable Historique
memory_limit "128M" PHP_INI_ALL "8M" avant PHP 5.2.0, "16M" depuis PHP 5.2.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

memory_limit integer

Cette option détermine la mémoire limite, en octets, qu'un script est autorisé à allouer. Cela permet de prévenir l'utilisation de toute la mémoire par un script mal codé. Notez que pour n'avoir aucune limite, vous devez définir cette directive à -1.

Avant la version 5.2.1 de PHP, pour pouvoir utiliser cette directive, vous deviez l'activer au moment de la compilation en utilisant l'option --enable-memory-limit dans la ligne de configuration. Cette option de compilation était aussi requise afin de définir les fonctions memory_get_usage() et memory_get_peak_usage() avant la version 5.2.1

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

Voir aussi : max_execution_time.

Réglage de Performance

Réglage de Performance
Nom Par défaut Modifiable Historique
realpath_cache_size "16K" PHP_INI_SYSTEM Disponible depuis PHP 5.1.0.
realpath_cache_ttl "120" PHP_INI_SYSTEM Disponible depuis PHP 5.1.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

realpath_cache_size entier

Détermine la taille du cache de realpath qui sera utilisée par PHP. Cette valeur devrait être augmentée sur les systèmes où PHP ouvre plusieurs fichiers, pour refléter la quantité d'opérations exécutées sur les fichiers.

realpath_cache_ttl entier

Temps (en seconde) pour lequel persiste l'information du cache de realpath pour un fichier ou un répertoire donné. Pour des systèmes avec des fichiers qui changent peu souvent, pensez à augmenter cette valeur.

Gestion des données

Options de configuration
Nom Par défaut Modifiable Historique
track_vars "On" PHP_INI_??  
arg_separator.output "&" PHP_INI_ALL Disponible depuis PHP 4.0.5.
arg_separator.input "&" PHP_INI_PERDIR Disponible depuis PHP 4.0.5.
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL pour PHP <= 5.0.5.
request_order "" PHP_INI_SYSTEM|PHP_INI_PERDIR Disponible depuis PHP 5.3.0
auto_globals_jit "1" PHP_INI_PERDIR Disponible depuis PHP 5.0.0.
register_globals "0" PHP_INI_PERDIR PHP_INI_ALL pour PHP <= 4.2.3.
register_argc_argv "1" PHP_INI_PERDIR PHP_INI_ALL pour PHP <= 4.2.3.
register_long_arrays "1" PHP_INI_PERDIR Disponible depuis PHP 5.0.0. Obsolète en PHP 5.3.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
post_max_size "8M" PHP_INI_PERDIR PHP_INI_SYSTEM pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
gpc_order "GPC" PHP_INI_ALL  
auto_prepend_file NULL PHP_INI_PERDIR PHP_INI_ALL pour PHP <= 4.2.3.
auto_append_file NULL PHP_INI_PERDIR PHP_INI_ALL pour PHP <= 4.2.3.
default_mimetype "text/html" PHP_INI_ALL  
default_charset "" PHP_INI_ALL  
always_populate_raw_post_data "0" PHP_INI_PERDIR PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.1.0.
allow_webdav_methods "0" PHP_INI_PERDIR  

Voici un éclaircissement sur l'utilisation des directives de configuration.

track_vars boolean

Si cette option est configurée, alors les variables d'environnement GET, POST, Cookie et Server peuvent être trouvées respectivement dans les tableaux associatifs globaux $_ENV, $_GET, $_POST, $_COOKIE et $_SERVER.

Notez que depuis PHP 4.0.3, track_vars est toujours activée.

arg_separator.output string

Le séparateur utilisé lorsque PHP génère les URL pour séparer les arguments.

arg_separator.input string

Liste des séparateur(s) utilisé(s) par PHP pour analyser les URL entrantes et en déduire les valeurs.

Note:

Chaque caractère de cette directive est considéré comme étant un séparateur !

variables_order string

Définit l'ordre d'analyse des variables EGPCS (Environment, Get, Post, Cookie, et Server). Par exemple, si variables_order est défini à "SP" alors PHP créera superglobals $_SERVER et $_POST, maisne créera pas $_ENV, $_GET, et $_COOKIE. Le fait de définir cet ordre à "" signifie qu'aucune superglobals ne sera définie.

Si la directive obsolète register_globals est activée, alors variables_order configurera également l'ordre pour les variables ENV, GET, POST, COOKIE et SERVER qui seront peuplées dans le contexte global. Ainsi, par exemple, si variables_order est défini à "EGPCS", si register_globals est actif, et que $_GET['action'] et $_POST['action'] sont définies, alors $action contiendra la valeur de $_POST['action'] vu que P vient après G dans la valeur de la directive pour cet exemple.

Avertissement

En SAPIs CGI et FastCGI, $_SERVER est également peuplé de valeur de l'environnement ; S est toujours équivalent à ES au regard de la position de E autre part dans cette directive.

Note:

Le contenu et l'ordre de $_REQUEST sont également affectés par cette directive.

request_order string

Cette directive décrit l'ordre dans lequel PHP place les variables GET, POST et Cookie dans le tableau _REQUEST. Le placement s'effectue de la gauche vers la droite, les valeurs les plus récentes écrasant les valeurs plus anciennes.

Si cette directive n'est pas définie, variables_order est utilisé pour le contenu de $_REQUEST.

Notez que les fichiers php.ini de la distribution par défaut ne contiennent pas 'C' pour les cookies, ceci pour des raisons de sécurité.

auto_globals_jit boolean

Quand cette directive est activée, les variables SERVER et ENV sont créées lorsqu'elles sont utilisées : seulement si nécessaire. Si ces variables ne sont pas utilisées dans un script, le script verra un gain de performances.

Les directives PHP register_globals, register_long_arrays, et register_argc_argv doivent être désactivées pour que cete directive soit utilisable. Depuis PHP 5.1.3, il n'est plus nécessaire de désactiver register_argc_argv.

Avertissement

L'utilisation des variables SERVER et ENV est vérifiée lors de la compilation. Ainsi, les utiliser avec, par exemple, des variables dynamiques ne provoquera pas leur initialisation.

register_globals boolean

Définit si oui ou non les variables EGPCS (Environment, GET, POST, Cookie, Server) seront enregistrées comme des variables globales.

Depuis » PHP 4.2.0, la valeur par défaut de cette directive est off.

Lisez le chapitre sur la sécurité concernant l'utilisation de register_globals pour plus d'informations.

Notez que register_globals ne peut pas être défini durant le traitement (ini_set()). Vous pouvez utiliser .htaccess si votre hôte vous le permet comme décrit ci-dessous. Exemple d'une entrée .htaccess : php_flag register_globals off.

Note:

La directive register_globals est affectée par la directive variables_order .

Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

register_argc_argv boolean
Dit à PHP s'il doit déclarer ou non les variables argv et argc (qui contiendront les informations GET). Voir aussi les lignes de commande. Cette directive a été introduite depuis PHP 4.0.0 et valait toujours "on" avant.
register_long_arrays boolean
Dit à PHP si oui ou non il doit enregistrer les types obsolètes $HTTP_*_VARS comme variables pré-définies. Lorsque cette directive est activée (par défaut), les variables longues PHP comme $HTTP_GET_VARS seront définies. Si vous ne les utilisez pas, il est recommandé de désactiver cette option pour des raisons de performance. À la place, utilisez les variables tableaux super-globales comme $_GET. Cette directive est Disponible depuis PHP 5.0.0.
Avertissement

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

post_max_size integer
Définit la taille maximale des données reçues par la méthode POST. Cette option affecte également les fichiers chargés. Pour charger de gros fichiers, cette valeur doit être plus grande que la valeur de upload_max_filesize. Si la limitation de mémoire est activée par votre script de configuration, memory_limit affectera également les fichiers chargés. De façon générale, memory_limit doit être plus grand que post_max_size. Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ.. Dans le cas où la taille des données reçues par la méthode POST est plus grande que post_max_size, les superglobales $_POST et $_FILES seront vides. Ceci peut être surveillé de différentes façons, e.g. en passant une variable $_GET au script qui traite les données, i.e. <form action="edit.php?processed=1">, et ainsi vérifier si $_GET['processed'] est défini.

Note:

PHP autorise des mots-clés pour les bits, incluant K (kilo), M (méga) et G (giga). PHP effectue la conversion automatiquement si vous les utilisez. Soyez attentif de ne pas dépasser la limite d'un entier signé sur 32 bits (si vous utilisez les versions 32 bits), auquel cas votre script échouera.

gpc_order string

Définit l'ordre de parcours des variables GET/POST/COOKIE. Par défaut, cette directive vaut "GPC". Si vous positionnez cette directive à "GP" par exemple, PHP ignorera complètement les cookies et effacera toutes les variables de la méthode GET avec les variables de la méthode POST portant le même nom.

Note:

Cette option n'est pas disponible en PHP 4. Utilisez variables_order à la place.

auto_prepend_file string

Spécifie le nom d'un fichier qui sera automatiquement parcouru avant le fichier principal. Ce fichier est inclus comme s'il l'avait été avec la fonction require(), donc include_path est utilisé.

La valeur spéciale none désactive l'ajout automatique.

auto_append_file string

Spécifie le nom du fichier qui sera automatiquement parcouru après le fichier principal. Ce fichier est inclus comme s'il l'avait été avec la fonction require(), donc include_path est utilisé.

La valeur spéciale none désactive l'ajout automatique.

Note: Si le script se termine par la fonction exit(), l'ajout automatique ne se fera pas.

default_mimetype string

default_charset string

PHP enverra toujours un jeux de caractères par défaut à l'en-tête HTTP Content-type: header. Pour désactiver l'envoi du jeu de caractères, définissez le tout simplement à une valeur vide.

always_populate_raw_post_data boolean

Remplit toujours la variable $HTTP_RAW_POST_DATA. Sinon, la variable est remplie uniquement des types MIME non reconnus des données. Cependant, la méthode préférée pour l'accès à ce type de données est php://input. $HTTP_RAW_POST_DATA n'est pas disponible avec enctype="multipart/form-data".

allow_webdav_methods boolean

Autorise la gestion des requêtes HTTP WebDav avec des scripts PHP (e.g PROPFIND, PROPPATCH, MOVE, COPY, etc.). Cette directive n'existe plus depuis PHP 4.3.2. Si vous voulez récupérer les données envoyées avec la méthode POST de ce type de requêtes, vous devez également définir always_populate_raw_post_data.

Voir aussi : magic_quotes_gpc, magic_quotes_runtime et magic_quotes_sybase.

Chemins et répertoires

Options de configuration
Nom Par défaut Modifiable Historique
include_path ".;/chemin/vers/php/pear" PHP_INI_ALL  
open_basedir NULL PHP_INI_ALL PHP_INI_SYSTEM en PHP < 5.3.0
doc_root NULL PHP_INI_SYSTEM  
user_dir NULL PHP_INI_SYSTEM  
extension_dir "/chemin/vers/php" PHP_INI_SYSTEM  
extension NULL php.ini uniquement  
zend_extension NULL php.ini uniquement  
zend_extension_debug NULL php.ini uniquement  
zend_extension_debug_ts NULL php.ini uniquement  
zend_extension_ts NULL php.ini uniquement  
cgi.check_shebang_line "1" PHP_INI_SYSTEM Disponible depuis PHP 5.2.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
cgi.force_redirect "1" PHP_INI_SYSTEM Disponible depuis PHP 4.2.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
cgi.redirect_status_env NULL PHP_INI_SYSTEM Disponible depuis PHP 4.2.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
fastcgi.impersonate "0" PHP_INI_SYSTEM Disponible depuis PHP 4.3.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
fastcgi.logging "1" PHP_INI_SYSTEM Disponible depuis PHP PHP 4.3.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL Disponible depuis PHP 4.3.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

include_path string

Spécifie une liste de répertoires où les fonctions require(), include(), fopen(), file(), readfile() et file_get_contents() chercheront les fichiers. Le format est identique à la variable d'environnement système PATH : une liste de répertoires séparés par deux points (:) sous Unix ou par un point-virgule (;) sous Windows.

PHP considère chaque entrée du chemin d'inclusion séparément lors de la recherche des fichiers à inclure. Il va vérifier le premier chemin, et s'il ne trouve pas le fichier, il va vérifier le chemin suivant, jusqu'à ce qu'il trouve le fichier à inclure ou bien retourner une alerte de type warning ou de type error. Vous pouvez spécifier votre chemin d'inclusion au moment de l'exécution en utilisant la fonction set_include_path().

Exemple #1 include_path sous Unix

include_path=".:/php/includes"

Exemple #2 include_path sous Windows

include_path=".;c:\php\includes"

L'utilisation d'un point (.) dans le chemin d'inclusion vous permet de faire des inclusions relatives au répertoire courant. Cependant, il est plus efficace d'inclure explicitement un fichier avec include './file', que de demander à PHP de vérifier le dossier courant à chaque inclusion.

open_basedir string

Limite les fichiers pouvant être ouverts par PHP à une architecture de dossiers spécifique, incluant le fichier lui-même. Cette directive n'est PAS affectée par le Safe Mode.

Lorsqu'un script tente d'ouverir un fichier avec, par exemple, la fonction fopen() ou la fonction gzopen(), le chemin vers le fichier est analysé. Lorsque le fichier se trouve à l'extérieur de l'architecture de dossiers spécifié, PHP refusera de l'ouvrir. Tous les liens symboliques sont résolus, aussi, il n'est pas possible d'outre-passer cette restriction avec un lien symboliqsue. Si le fichier n'existe pas, alors le lien symbolique ne pourra être résolu et le nom du fichier est comparé avec l'open_basedir .

La valeur spéciale . indique que le dossier courant du script sera utilisé comme dossier de base.Ceci est cependant légèrement dangereux dans le sens où le dossier courant peut être facilement changer grâce à la fonction chdir().

Dans le fichier httpd.conf, open_basedir peut être désactivée (i.e. pour certains hôtes virtuels) de la même façon que n'importe quelle diirective de configuration avec "php_admin_value open_basedir none".

Sous Windows, séparez les dossiers avec un point-virgule. Sous tous les autres systèmes, séparez les dossiers avec des deux-points. Lors de l'utilisation d'Apache en module, les chemins de l'open_basedir depuis les dossiers parents sont maintenant automatiquement hérités.

La restriction spécifié avec l'open_basedir est un nom de dossier depuis PHP 5.2.16 et PHP 5.3.4. Les précédantes versions l'utilisait comme un préfixe. Ceci signifie que "open_basedir = /dir/incl" permet également d'accéder à "/dir/include" et "/dir/incls" s'ils existent. Lorsque vous souhaitez restreindre l'accès à un dossier spécifique, terminez le chemin par un slash. Par exemple : open_basedir = /dir/incl/

Par défaut, tous les fichiers peuvent être ouverts.

Note:

Depuis PHP 5.3.0, open_basedir peut être affinée au moment de la compilation. Ceci signifie que si open_basedir est définie à /www/ dans le fichier php.ini, un script peut affiné la configuration en /www/tmp/ au moment de la compilation en utilisant la fonction ini_set().

doc_root string

Le dossier racine de PHP sur le serveur. Uniquement utilisé si non vide. Si PHP est configuré avec le safe mode, aucun fichier n'est servi en dehors de ce répertoire. Si PHP n'a pas été compilé avec FORCE_REDIRECT, vous devez définir le doc_root si vous utilisez PHP en tant que CGI sous n'importe quel serveur web (autre que IIS). Alternativement, vous pouvez utiliser la configuration cgi.force_redirect.

user_dir string

Le nom de base du répertoire utilisé dans un répertoire utilisateur pour les fichiers PHP, par exemple, public_html.

extension_dir string

Spécifie le répertoire dans lequel PHP doit chercher des extensions externes à charger. Voir aussi enable_dl et dl().

extension chaîne de caractères

Quelles extensions doivent être chargées dynamiquement lors du démarrage de PHP.

zend_extension string

Chemin absolu des extensions Zend chargeable dynamiquement (par exexemple APD) à charger lors du démarrage de PHP.

zend_extension_debug string

Variante de zend_extension pour les extensions compilées avec les informations de débogage.

zend_extension_debug_ts string

Variante de zend_extension pour les extensions compilées avec les informations de débogage et la sécurité des threads.

zend_extension_ts string

Variante de zend_extension pour les extensions compilés avec la sécurité des threads.

cgi.check_shebang_line booléen

Contrôle si PHP CGI vérifie la ligne commençant par #! (shebang) en haut du script exécuté. Cette ligne est nécessaire si le script est destiné à être exécuté en mode autonome et via un PHP CGI. PHP en mode CGI ne lit pas cette ligne et ignore son contenu si cette directive est active.

cgi.fix_pathinfo booléen

Fournit un réel PATH_INFO/ PATH_TRANSLATED pour CGI. Le comportement précédent de PHP était de définir PATH_TRANSLATED en SCRIPT_FILENAME et de ne pas remplir PATH_INFO. Pour plus d'informations sur PATH_INFO, lisez les spécificités CGI. Si définie à 1, PHP CGI fixera ce chemin suivant les spécifications. Si définie à 0, PHP appliquera l'ancien comportement. Par défaut, cette directive est activée. Vous devriez modifier vos scripts pour utiliser SCRIPT_FILENAME à la place de PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect est nécessaire pour des raisons de sécurité lors de l'utilisation de PHP en mode CGI sous la plupart des serveurs web. Si vous ne la définissez pas, PHP l'activera automatiquement par défaut. Vous pouvez la désactiver à vos risques et périls.

Note:

Utilisateurs de Windows : Vous pouvez désactiver cette option en toute sécurité si vous utilisez le serveur web IIS ; en fait, vous le devez. Pour faire fonctionner les serveurs web OmniHTTPD ou Xitami, vous devez désactiver cette directive.

cgi.redirect_status_env string

Si cgi.force_redirect est activé et que vous ne tournez pas sous un serveur web Apache ou Netscape (iPlanet), vous devriez avoir besoin de définir un nom de variable d'environnement que PHP utilisera pour voir si tout est correct pour continuer l'exécution.

Note:

La définition de cette variable peut avoir des conséquences sur la sécurité. Sachez ce que vous faites avant de faire cela.

fastcgi.impersonate string

FastCGI sous IIS (sur les systèmes d'exploitation basés sur WINNT) supporte la possibilité de déterminer la marque de sécurité du client appelant. Cela permet à IIS de définir le contexte de sécurité sur lequel la requête est exécuté. mod_fastcgi sous Apache ne supporte actuellement pas cette fonctionnalité (03/17/2002). Définie à 1 si vous utilisez IIS. Par défaut, vaut 0.

fastcgi.logging boolean

Active la journalisation SAPI avec FastCGI. Activé par défaut.

cgi.rfc2616_headers int

Dit à PHP quel type d'en-tête doit être utilisé lors de l'envoi du code réponse HTTP. Si définie à 0; PHP enverra un en-tête Status: qui est supporté par Apache et les autres serveurs web. Lorsque définie à -1, PHP enverra un en-tête répondant à la spécification de la » RFC 2616. Laissez cette valeur à 0 à moins que vous sachiez ce que vous faites.

Chargement de fichiers

Options de configuration
Nom Par défaut Modifiable Historique
file_uploads "1" PHP_INI_SYSTEM PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
upload_tmp_dir NULL PHP_INI_SYSTEM  
upload_max_filesize "2M" PHP_INI_PERDIR PHP_INI_ALL pour PHP <= 4.2.3.
max_file_uploads 20 PHP_INI_SYSTEM Disponible depuis PHP PHP 5.2.12.

Voici un éclaircissement sur l'utilisation des directives de configuration.

file_uploads boolean

Autorise ou non le chargement de fichiers par HTTP. Voir aussi les directives upload_max_filesize, upload_tmp_dir et post_max_size.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..
upload_tmp_dir string

Le répertoire temporaire utilisé pour stocker les fichiers lors du chargement. L'utilisateur sous lequel fonctionne PHP doit avoir les droits en écriture sur ce répertoire. Si non spécifié, PHP utilisera celui par défaut du système.

Si le dossier renseigné ici n'est pas accessible en écriture, PHP se rabat alors sur le dossier temporaire par défaut du système. Si open_basedir est activé, alors le dossier temporaire par défaut du système doit être autorisé pour que le chargement des fichiers puisse fonctionner.

upload_max_filesize integer

La taille maximale en octets d'un fichier à charger.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..
max_file_uploads entier

Le nombre maximum de fichiers pouvant être envoyés simultanément. Depuis PHP 5.3.4, les champs de téléchargement laissés vides lors de la soumission ne comptent plus dans le calcul de cette limite.

SQL général

Options de configuration
Nom Par défaut Modifiable Historique
sql.safe_mode "0" PHP_INI_SYSTEM  

Voici un éclaircissement sur l'utilisation des directives de configuration.

sql.safe_mode boolean

Si activé, les fonctions de connexion à la base de données qui spécifient des valeurs par défaut utiliseront ces valeurs au lieu des arguments fournis. Pour les valeurs par défaut, reportez-vous à la documentation des fonctions de connexion pour la base de données concernée.




Catégorie/Liste des extensions

Sommaire

Cette annexe classe par catégorie plus de 150 extensions documentées dans le manuel PHP suivant différents critères.


Par ordre alphabétique



Adhésion

Extensions internes

Elles ne sont actuellement pas des extensions. Elles font partie intégrante de PHP et ne peuvent pas être enlevées des binaires PHP avec des options de compilation.



État

Cette partie liste les extensions non prévues pour un environnement de production - elles sont soit trop "vieilles" (obsolètes), soit trop "nouvelles" (expérimentales).

Extensions obsolètes

Ces extensions ont été dépréciées habituellement en faveur d'autres extensions.

Extensions expérimentales

Le comportement de ces extensions - incluant le nom de ses fonctions et tout ce qui est documenté à propos de ces extensions - peut être modifié sans aucun avertissement dans les prochaines versions de PHP. Utilisez ces extensions à vos risques et périls.




Liste des alias

Il y a beaucoup de fonctions en PHP qui peuvent être appelées sous différents noms. Dans la plupart des cas, il n'y pas de nom préféré par rapport à un autre, is_int() et is_integer() sont exactement identiques, par exemple. Ces modifications de noms ont été réalisées en général à cause d'un changement dans l'API d'origine ou pour d'autres raisons et les anciens noms sont conservés uniquement pour des raisons de compatiblité ascendante. C'est une très mauvaise habitude d'utiliser ces alias, car ils risquent à tous moment de disparaître, rendus obsolète sans préavis, ou bien par un simple changement de nom, ce qui rend votre script inutilisable avec des versions plus récentes de PHP. Préférez toujours les versions officielles. En fait, cette liste est surtout destinée à ceux qui doivent mettre à jour leurs scripts avec les syntaxes plus récentes.

Aliases
Alias Fonction principale Extension mère
_ gettext() Gettext
add swfmovie_add() Ming (flash)
add swfsprite_add() Ming (flash)
add_root domxml_add_root() DOM XML
addaction swfbutton_addAction() Ming (flash)
addcolor swfdisplayitem_addColor() Ming (flash)
addentry swfgradient_addEntry() Ming (flash)
addfill swfshape_addfill() Ming (flash)
addshape swfbutton_addShape() Ming (flash)
addstring swftext_addString() Ming (flash)
addstring swftextfield_addString() Ming (flash)
align swftextfield_align() Ming (flash)
attributes domxml_attributes() DOM XML
children domxml_children() DOM XML
chop rtrim() Base syntax
close closedir() Base syntax
com_get com_propget() COM
com_propset com_propput() COM
com_set com_propput() COM
die exit() Miscellaneous functions
dir getdir() Base syntax
diskfreespace disk_free_space() Filesystem
domxml_getattr domxml_get_attribute() DOM XML
domxml_setattr domxml_set_attribute() DOM XML
doubleval floatval() Base syntax
drawarc swfshape_drawarc() Ming (flash)
drawcircle swfshape_drawcircle() Ming (flash)
drawcubic swfshape_drawcubic() Ming (flash)
drawcubicto swfshape_drawcubicto() Ming (flash)
drawcurve swfshape_drawcurve() Ming (flash)
drawcurveto swfshape_drawcurveto() Ming (flash)
drawglyph swfshape_drawglyph() Ming (flash)
drawline swfshape_drawline() Ming (flash)
drawlineto swfshape_drawlineto() Ming (flash)
dtd domxml_intdtd() DOM XML
dumpmem domxml_dumpmem() DOM XML
fbsql fbsql_db_query() FrontBase
fputs fwrite() Base syntax
get_attribute domxml_get_attribute() DOM XML
getascent swffont_getAscent() Ming (flash)
getascent swftext_getAscent() Ming (flash)
getattr domxml_get_attribute() DOM XML
getdescent swffont_getDescent() Ming (flash)
getdescent swftext_getDescent() Ming (flash)
getheight swfbitmap_getHeight() Ming (flash)
getleading swffont_getLeading() Ming (flash)
getleading swftext_getLeading() Ming (flash)
getshape1 swfmorph_getShape1() Ming (flash)
getshape2 swfmorph_getShape2() Ming (flash)
getwidth swfbitmap_getWidth() Ming (flash)
getwidth swffont_getWidth() Ming (flash)
getwidth swftext_getWidth() Ming (flash)
gzputs gzwrite() Zlib
i18n_convert mb_convert_encoding() Multi-bytes Strings
i18n_discover_encoding mb_detect_encoding() Multi-bytes Strings
i18n_http_input mb_http_input() Multi-bytes Strings
i18n_http_output mb_http_output() Multi-bytes Strings
i18n_internal_encoding mb_internal_encoding() Multi-bytes Strings
i18n_ja_jp_hantozen mb_convert_kana() Multi-bytes Strings
i18n_mime_header_decode mb_decode_mimeheader() Multi-bytes Strings
i18n_mime_header_encode mb_encode_mimeheader() Multi-bytes Strings
imap_create imap_createmailbox() IMAP
imap_fetchtext imap_body() IMAP
imap_getmailboxes imap_list_full() IMAP
imap_getsubscribed imap_lsub_full() IMAP
imap_header imap_headerinfo() IMAP
imap_listmailbox imap_list() IMAP
imap_listsubscribed imap_lsub() IMAP
imap_rename imap_renamemailbox() IMAP
imap_scan imap_listscan() IMAP
imap_scanmailbox imap_listscan() IMAP
ini_alter ini_set() Base syntax
is_double is_float() Base syntax
is_integer is_int() Base syntax
is_long is_int() Base syntax
is_real is_float() Base syntax
is_writeable is_writable() Base syntax
join implode() Base syntax
key_exists array_key_exists() Base syntax
labelframe swfmovie_labelFrame() Ming (flash)
labelframe swfsprite_labelFrame() Ming (flash)
last_child domxml_last_child() DOM XML
lastchild domxml_last_child() DOM XML
ldap_close ldap_unbind() LDAP
magic_quotes_runtime set_magic_quotes_runtime() Base syntax
mbstrcut mb_strcut() Multi-bytes Strings
mbstrlen mb_strlen() Multi-bytes Strings
mbstrpos mb_strpos() Multi-bytes Strings
mbstrrpos mb_strrpos() Multi-bytes Strings
mbsubstr mb_substr() Multi-bytes Strings
ming_setcubicthreshold ming_setCubicThreshold() Ming (flash)
ming_setscale ming_setScale() Ming (flash)
move swfdisplayitem_move() Ming (flash)
movepen swfshape_movepen() Ming (flash)
movepento swfshape_movepento() Ming (flash)
moveto swfdisplayitem_moveTo() Ming (flash)
moveto swffill_moveTo() Ming (flash)
moveto swftext_moveTo() Ming (flash)
msql msql_db_query() mSQL
msql_createdb msql_create_db() mSQL
msql_dbname msql_result() mSQL
msql_dropdb msql_drop_db() mSQL
msql_fieldflags msql_field_flags() mSQL
msql_fieldlen msql_field_len() mSQL
msql_fieldname msql_field_name() mSQL
msql_fieldtable msql_field_table() mSQL
msql_fieldtype msql_field_type() mSQL
msql_freeresult msql_free_result() mSQL
msql_listdbs msql_list_dbs() mSQL
msql_listfields msql_list_fields() mSQL
msql_listtables msql_list_tables() mSQL
msql_numfields msql_num_fields() mSQL
msql_numrows msql_num_rows() mSQL
msql_regcase sql_regcase() mSQL
msql_selectdb msql_select_db() mSQL
msql_tablename msql_result() mSQL
mssql_affected_rows sybase_affected_rows() Sybase
mssql_affected_rows sybase_affected_rows() Sybase
mssql_close sybase_close() Sybase
mssql_close sybase_close() Sybase
mssql_connect sybase_connect() Sybase
mssql_connect sybase_connect() Sybase
mssql_data_seek sybase_data_seek() Sybase
mssql_data_seek sybase_data_seek() Sybase
mssql_fetch_array sybase_fetch_array() Sybase
mssql_fetch_array sybase_fetch_array() Sybase
mssql_fetch_field sybase_fetch_field() Sybase
mssql_fetch_field sybase_fetch_field() Sybase
mssql_fetch_object sybase_fetch_object() Sybase
mssql_fetch_object sybase_fetch_object() Sybase
mssql_fetch_row sybase_fetch_row() Sybase
mssql_fetch_row sybase_fetch_row() Sybase
mssql_field_seek sybase_field_seek() Sybase
mssql_field_seek sybase_field_seek() Sybase
mssql_free_result sybase_free_result() Sybase
mssql_free_result sybase_free_result() Sybase
mssql_get_last_message sybase_get_last_message() Sybase
mssql_get_last_message sybase_get_last_message() Sybase
mssql_min_client_severity sybase_min_client_severity() Sybase
mssql_min_error_severity sybase_min_error_severity() Sybase
mssql_min_message_severity sybase_min_message_severity() Sybase
mssql_min_server_severity sybase_min_server_severity() Sybase
mssql_num_fields sybase_num_fields() Sybase
mssql_num_fields sybase_num_fields() Sybase
mssql_num_rows sybase_num_rows() Sybase
mssql_num_rows sybase_num_rows() Sybase
mssql_pconnect sybase_pconnect() Sybase
mssql_pconnect sybase_pconnect() Sybase
mssql_query sybase_query() Sybase
mssql_query sybase_query() Sybase
mssql_result sybase_result() Sybase
mssql_result sybase_result() Sybase
mssql_select_db sybase_select_db() Sybase
mssql_select_db sybase_select_db() Sybase
multcolor swfdisplayitem_multColor() Ming (flash)
mysql mysql_db_query() MySQL
mysql_createdb mysql_create_db() MySQL
mysql_db_name mysql_result() MySQL
mysql_dbname mysql_result() MySQL
mysql_dropdb mysql_drop_db() MySQL
mysql_fieldflags mysql_field_flags() MySQL
mysql_fieldlen mysql_field_len() MySQL
mysql_fieldname mysql_field_name() MySQL
mysql_fieldtable mysql_field_table() MySQL
mysql_fieldtype mysql_field_type() MySQL
mysql_freeresult mysql_free_result() MySQL
mysql_listdbs mysql_list_dbs() MySQL
mysql_listfields mysql_list_fields() MySQL
mysql_listtables mysql_list_tables() MySQL
mysql_numfields mysql_num_fields() MySQL
mysql_numrows mysql_num_rows() MySQL
mysql_selectdb mysql_select_db() MySQL
mysql_tablename mysql_result() MySQL
name domxml_attrname() DOM XML
new_child domxml_new_child() DOM XML
new_xmldoc domxml_new_xmldoc() DOM XML
nextframe swfmovie_nextFrame() Ming (flash)
nextframe swfsprite_nextFrame() Ming (flash)
node domxml_node() DOM XML
oci8append ocicollappend() OCI8
oci8assign ocicollassign() OCI8
oci8assignelem ocicollassignelem() OCI8
oci8close ocicloselob() OCI8
oci8free ocifreecoll() OCI8
oci8free ocifreedesc() OCI8
oci8getelem ocicollgetelem() OCI8
oci8load ociloadlob() OCI8
oci8max ocicollmax() OCI8
oci8ocifreecursor ocifreestatement() OCI8
oci8save ocisavelob() OCI8
oci8savefile ocisavelobfile() OCI8
oci8size ocicollsize() OCI8
oci8trim ocicolltrim() OCI8
oci8writetemporary ociwritetemporarylob() OCI8
oci8writetofile ociwritelobtofile() OCI8
odbc_do odbc_exec() ODBC
odbc_field_precision odbc_field_len() ODBC
output swfmovie_output() Ming (flash)
parent domxml_parent() DOM XML
pdf_add_outline pdf_add_bookmark() PDF
pg_clientencoding pg_client_encoding() PostgreSQL
pg_setclientencoding pg_set_client_encoding() PostgreSQL
pos current() Base syntax
recode recode_string() Recode
remove swfmovie_remove() Ming (flash)
remove swfsprite_remove() Ming (flash)
rewind rewinddir() Base syntax
root domxml_root() DOM XML
rotate swfdisplayitem_rotate() Ming (flash)
rotateto swfdisplayitem_rotateTo() Ming (flash)
rotateto swffill_rotateTo() Ming (flash)
save swfmovie_save() Ming (flash)
savetofile swfmovie_saveToFile() Ming (flash)
scale swfdisplayitem_scale() Ming (flash)
scaleto swfdisplayitem_scaleTo() Ming (flash)
scaleto swffill_scaleTo() Ming (flash)
set_attribute domxml_set_attribute() DOM XML
set_content domxml_set_content() DOM XML
setaction swfbutton_setAction() Ming (flash)
setattr domxml_set_attribute() DOM XML
setbackground swfmovie_setBackground() Ming (flash)
setbounds swftextfield_setBounds() Ming (flash)
setcolor swftext_setColor() Ming (flash)
setcolor swftextfield_setColor() Ming (flash)
setdepth swfdisplayitem_setDepth() Ming (flash)
setdimension swfmovie_setDimension() Ming (flash)
setdown swfbutton_setDown() Ming (flash)
setfont swftext_setFont() Ming (flash)
setfont swftextfield_setFont() Ming (flash)
setframes swfmovie_setFrames() Ming (flash)
setframes swfsprite_setFrames() Ming (flash)
setheight swftext_setHeight() Ming (flash)
setheight swftextfield_setHeight() Ming (flash)
sethit swfbutton_setHit() Ming (flash)
setindentation swftextfield_setIndentation() Ming (flash)
setleftfill swfshape_setleftfill() Ming (flash)
setleftmargin swftextfield_setLeftMargin() Ming (flash)
setline swfshape_setline() Ming (flash)
setlinespacing swftextfield_setLineSpacing() Ming (flash)
setmargins swftextfield_setMargins() Ming (flash)
setmatrix swfdisplayitem_setMatrix() Ming (flash)
setname swfdisplayitem_setName() Ming (flash)
setname swftextfield_setName() Ming (flash)
setover swfbutton_setOver() Ming (flash)
setrate swfmovie_setRate() Ming (flash)
setratio swfdisplayitem_setRatio() Ming (flash)
setrightfill swfshape_setrightfill() Ming (flash)
setrightmargin swftextfield_setRightMargin() Ming (flash)
setspacing swftext_setSpacing() Ming (flash)
setup swfbutton_setUp() Ming (flash)
show_source highlight_file() Base syntax
sizeof count() Base syntax
skewx swfdisplayitem_skewX() Ming (flash)
skewxto swfdisplayitem_skewXTo() Ming (flash)
skewxto swffill_skewXTo() Ming (flash)
skewy swfdisplayitem_skewy() Ming (flash)
skewyto swfdisplayitem_skewYTo() Ming (flash)
skewyto swffill_skewYTo() Ming (flash)
snmpwalkoid snmprealwalk() SNMP
strchr strstr() Base syntax
streammp3 swfmovie_streamMp3() Ming (flash)
swfaction swfaction_init() Ming (flash)
swfbitmap swfbitmap_init() Ming (flash)
swfbutton swfbutton_init() Ming (flash)
swffill swffill_init() Ming (flash)
swffont swffont_init() Ming (flash)
swfgradient swfgradient_init() Ming (flash)
swfmorph swfmorph_init() Ming (flash)
swfmovie swfmovie_init() Ming (flash)
swfshape swfshape_init() Ming (flash)
swfsprite swfsprite_init() Ming (flash)
swftext swftext_init() Ming (flash)
swftextfield swftextfield_init() Ming (flash)
unlink domxml_unlink_node() DOM XML
xptr_new_context xpath_new_context() DOM XML



Mots réservés en PHP

Sommaire

Cette annexe est une liste d'identifiants prédéfinis en PHP. Aucun des identifiants utilisés ici ne doit être repris comme nom de variable ou de fonction dans vos scripts. Ces identifiants incluent des mots-clés, des constantes, des classes, et des variables prédéfinies. Ces listes ne sont pas complètes ou exhaustives.


Liste de mots-clés

Ces mots ont un sens spécial en PHP. Certains représentent des objets qui ressemblent à des fonctions, d'autres à des constantes, et ainsi de suite, mais ils n'en sont pas vraiment : ce sont des structures de langage. Vous ne pourrez pas les utiliser comme constante, nom de classes, nom de fonctions ou nom de méthodes. Vous pouvez les utiliser comme nom de variables, mais cela risque d'entraîner des confusions.

Mots réservés en PHP
abstract (depuis PHP 5) and array() as break
case catch (depuis PHP 5) cfunction (PHP 4 uniquement) class clone (depuis PHP 5)
const continue declare default do
else elseif enddeclare endfor endforeach
endif endswitch endwhile extends final (depuis PHP 5)
for foreach function global goto (depuis PHP 5.3)
if implements (depuis PHP 5) interface (depuis PHP 5) instanceof (depuis PHP 5)
namespace (depuis PHP 5.3) new old_function (PHP 4 uniquement) or private (depuis PHP 5)
protected (depuis PHP 5) public (depuis PHP 5) static switch throw (depuis PHP 5)
try (depuis PHP 5) use var while xor
Constantes utilisées lors de la compilation
__CLASS__ __DIR__ (depuis PHP 5.3) __FILE__ __LINE__ __FUNCTION__ __METHOD__
__NAMESPACE__ (depuis PHP 5.3)
Constructions de langage
die() echo() empty() exit() eval()
include() include_once() isset() list() require()
require_once() return() print() unset()


Classes prédéfinies

Cette section liste les classes standards prédéfinies. Les autres extensions qui définissent d'autres classes sont décrites dans leur référence.

Classes standards

Ces classes sont définies dans le jeu de classe standard de PHP, inclus dans toutes les versions de PHP.

Directory
La classe qui permet d'instancier dir.
stdClass
Créé par la conversion en objet.
__PHP_Incomplete_Class
Peut être créé par la fonction unserialize().

Classes prédéfinies en PHP 5

Ces classes ont été ajoutées en PHP 5.0.0.

exception
php_user_filter

Closure

La classe prédéfinie finale Closure a été introduite en PHP 5.3.0. Elle est utilisée pour l'implémentation interne des fonctions anonymes.

La classe dispose d'un constructeur qui interdit la création manuelle de l'objet (il émet une erreur E_RECOVERABLE_ERROR) et appelle la méthode __invoke sur appel magique.

Classes spéciales

Les identifiants suivants ne devraient pas être utilisés en tant que nom de classe à cause de leur rôle particulier.

self
Classe courante.
static
Classe courante au moment de l'exécution.
parent
Classe parent.


Constantes pré-définies

Constantes prédéfinies

Ces constantes sont définies par le coeur de PHP. Cela inclut notamment PHP, le moteur Zend et les modules SAPI.

PHP_VERSION (chaîne de caractères)
PHP_MAJOR_VERSION (entier)
Disponible depuis PHP 5.2.7.
PHP_MINOR_VERSION (entier)
Disponible depuis PHP 5.2.7.
PHP_RELEASE_VERSION (entier)
Disponible depuis PHP 5.2.7.
PHP_VERSION_ID (entier)
Disponible depuis PHP 5.2.7.
PHP_EXTRA_VERSION (chaîne de caractères)
Disponible depuis PHP 5.2.7.
PHP_ZTS (entier)
Disponible depuis PHP 5.2.7.
PHP_DEBUG (entier)
Disponible depuis PHP 5.2.7.
PHP_MAXPATHLEN (entier)
Disponible depuis PHP 5.3.0.
PHP_OS (chaîne de caractères)
PHP_SAPI (chaîne de caractères)
Disponible depuis PHP 4.2.0. Voyez aussi php_sapi_name().
PHP_EOL (chaîne de caractères)
Disponible depuis PHP 4.3.10 et PHP 5.0.2
PHP_INT_MAX (entier)
Disponible depuis PHP 4.4.0 et PHP 5.0.5
PHP_INT_SIZE (entier)
Disponible depuis PHP 4.4.0 et PHP 5.0.5
DEFAULT_INCLUDE_PATH (chaîne de caractères)
PEAR_INSTALL_DIR (chaîne de caractères)
PEAR_EXTENSION_DIR (chaîne de caractères)
PHP_EXTENSION_DIR (chaîne de caractères)
PHP_PREFIX (chaîne de caractères)
Disponible depuis PHP 4.3.0
PHP_BINDIR (chaîne de caractères)
PHP_MANDIR (chaîne de caractères)
Spécifie le chemin d'installation des pages man. Disponible depuis PHP 5.3.7.
PHP_LIBDIR (chaîne de caractères)
PHP_DATADIR (chaîne de caractères)
PHP_SYSCONFDIR (chaîne de caractères)
PHP_LOCALSTATEDIR (chaîne de caractères)
PHP_CONFIG_FILE_PATH (chaîne de caractères)
PHP_CONFIG_FILE_SCAN_DIR (chaîne de caractères)
PHP_SHLIB_SUFFIX (chaîne de caractères)
Disponible depuis PHP 4.3.0
PHP_OUTPUT_HANDLER_START (entier)
PHP_OUTPUT_HANDLER_CONT (entier)
PHP_OUTPUT_HANDLER_END (entier)
PHP_WINDOWS_VERSION_MAJOR (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_VERSION_MINOR (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_VERSION_BUILD (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_VERSION_PLATFORM (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_VERSION_SP_MAJOR (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_VERSION_SP_MINOR (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_VERSION_SUITEMASK (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_VERSION_PRODUCTTYPE (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_NT_DOMAIN_CONTROLLER (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_NT_SERVER (entier)
Disponible depuis PHP 5.3.0
PHP_WINDOWS_NT_WORKSTATION (entier)
Disponible depuis PHP 5.3.0
E_ERROR (entier)
E_WARNING (entier)
E_PARSE (entier)
E_NOTICE (entier)
E_CORE_ERROR (entier)
E_CORE_WARNING (entier)
E_COMPILE_ERROR (entier)
E_COMPILE_WARNING (entier)
E_USER_ERROR (entier)
E_USER_WARNING (entier)
E_USER_NOTICE (entier)
E_DEPRECATED (entier)
Disponible depuis PHP 5.3.0
E_USER_DEPRECATED (entier)
Disponible depuis PHP 5.3.0
E_ALL (entier)
E_STRICT (entier)
Disponible depuis PHP 5.0.0.
__COMPILER_HALT_OFFSET__ (entier)
Disponible depuis PHP 5.1.0
TRUE (boolean)
Voir Booleans.
FALSE (boolean)
Voir Booleans.
NULL (boolean)
Voir Null.

Voir aussi les constantes magiques.

Constantes standards prédéfinies

Ces constantes sont définies par défaut dans PHP.

EXTR_OVERWRITE (entier)
EXTR_SKIP (entier)
EXTR_PREFIX_SAME (entier)
EXTR_PREFIX_ALL (entier)
EXTR_PREFIX_INVALID (entier)
EXTR_PREFIX_IF_EXISTS (entier)
EXTR_IF_EXISTS (entier)
SORT_ASC (entier)
SORT_DESC (entier)
SORT_REGULAR (entier)
SORT_NUMERIC (entier)
SORT_STRING (entier)
CASE_LOWER (entier)
CASE_UPPER (entier)
COUNT_NORMAL (entier)
COUNT_RECURSIVE (entier)
ASSERT_ACTIVE (entier)
ASSERT_CALLBACK (entier)
ASSERT_BAIL (entier)
ASSERT_WARNING (entier)
ASSERT_QUIET_EVAL (entier)
CONNECTION_ABORTED (entier)
CONNECTION_NORMAL (entier)
CONNECTION_TIMEOUT (entier)
INI_USER (entier)
INI_PERDIR (entier)
INI_SYSTEM (entier)
INI_ALL (entier)
M_E (float)
M_LOG2E (float)
M_LOG10E (float)
M_LN2 (float)
M_LN10 (float)
M_PI (float)
M_PI_2 (float)
M_PI_4 (float)
M_1_PI (float)
M_2_PI (float)
M_2_SQRTPI (float)
M_SQRT2 (float)
M_SQRT1_2 (float)
CRYPT_SALT_LENGTH (entier)
CRYPT_STD_DES (entier)
CRYPT_EXT_DES (entier)
CRYPT_MD5 (entier)
CRYPT_BLOWFISH (entier)
DIRECTORY_SEPARATOR (chaîne de caractères)
SEEK_SET (entier)
SEEK_CUR (entier)
SEEK_END (entier)
LOCK_SH (entier)
LOCK_EX (entier)
LOCK_UN (entier)
LOCK_NB (entier)
HTML_SPECIALCHARS (entier)
HTML_ENTITIES (entier)
ENT_COMPAT (entier)
ENT_QUOTES (entier)
ENT_NOQUOTES (entier)
INFO_GENERAL (entier)
INFO_CREDITS (entier)
INFO_CONFIGURATION (entier)
INFO_MODULES (entier)
INFO_ENVIRONMENT (entier)
INFO_VARIABLES (entier)
INFO_LICENSE (entier)
INFO_ALL (entier)
CREDITS_GROUP (entier)
CREDITS_GENERAL (entier)
CREDITS_SAPI (entier)
CREDITS_MODULES (entier)
CREDITS_DOCS (entier)
CREDITS_FULLPAGE (entier)
CREDITS_QA (entier)
CREDITS_ALL (entier)
STR_PAD_LEFT (entier)
STR_PAD_RIGHT (entier)
STR_PAD_BOTH (entier)
PATHINFO_DIRNAME (entier)
PATHINFO_BASENAME (entier)
PATHINFO_EXTENSION (entier)
PATH_SEPARATOR (chaîne de caractères)
CHAR_MAX (entier)
LC_CTYPE (entier)
LC_NUMERIC (entier)
LC_TIME (entier)
LC_COLLATE (entier)
LC_MONETARY (entier)
LC_ALL (entier)
LC_MESSAGES (entier)
ABDAY_1 (entier)
ABDAY_2 (entier)
ABDAY_3 (entier)
ABDAY_4 (entier)
ABDAY_5 (entier)
ABDAY_6 (entier)
ABDAY_7 (entier)
DAY_1 (entier)
DAY_2 (entier)
DAY_3 (entier)
DAY_4 (entier)
DAY_5 (entier)
DAY_6 (entier)
DAY_7 (entier)
ABMON_1 (entier)
ABMON_2 (entier)
ABMON_3 (entier)
ABMON_4 (entier)
ABMON_5 (entier)
ABMON_6 (entier)
ABMON_7 (entier)
ABMON_8 (entier)
ABMON_9 (entier)
ABMON_10 (entier)
ABMON_11 (entier)
ABMON_12 (entier)
MON_1 (entier)
MON_2 (entier)
MON_3 (entier)
MON_4 (entier)
MON_5 (entier)
MON_6 (entier)
MON_7 (entier)
MON_8 (entier)
MON_9 (entier)
MON_10 (entier)
MON_11 (entier)
MON_12 (entier)
AM_STR (entier)
PM_STR (entier)
D_T_FMT (entier)
D_FMT (entier)
T_FMT (entier)
T_FMT_AMPM (entier)
ERA (entier)
ERA_YEAR (entier)
ERA_D_T_FMT (entier)
ERA_D_FMT (entier)
ERA_T_FMT (entier)
ALT_DIGITS (entier)
INT_CURR_SYMBOL (entier)
CURRENCY_SYMBOL (entier)
CRNCYSTR (entier)
MON_DECIMAL_POINT (entier)
MON_THOUSANDS_SEP (entier)
MON_GROUPING (entier)
POSITIVE_SIGN (entier)
NEGATIVE_SIGN (entier)
INT_FRAC_DIGITS (entier)
FRAC_DIGITS (entier)
P_CS_PRECEDES (entier)
P_SEP_BY_SPACE (entier)
N_CS_PRECEDES (entier)
N_SEP_BY_SPACE (entier)
P_SIGN_POSN (entier)
N_SIGN_POSN (entier)
DECIMAL_POINT (entier)
RADIXCHAR (entier)
THOUSANDS_SEP (entier)
THOUSEP (entier)
GROUPING (entier)
YESEXPR (entier)
NOEXPR (entier)
YESSTR (entier)
NOSTR (entier)
CODESET (entier)
LOG_EMERG (entier)
LOG_ALERT (entier)
LOG_CRIT (entier)
LOG_ERR (entier)
LOG_WARNING (entier)
LOG_NOTICE (entier)
LOG_INFO (entier)
LOG_DEBUG (entier)
LOG_KERN (entier)
LOG_USER (entier)
LOG_MAIL (entier)
LOG_DAEMON (entier)
LOG_AUTH (entier)
LOG_SYSLOG (entier)
LOG_LPR (entier)
LOG_NEWS (entier)
LOG_UUCP (entier)
LOG_CRON (entier)
LOG_AUTHPRIV (entier)
LOG_LOCAL0 (entier)
LOG_LOCAL1 (entier)
LOG_LOCAL2 (entier)
LOG_LOCAL3 (entier)
LOG_LOCAL4 (entier)
LOG_LOCAL5 (entier)
LOG_LOCAL6 (entier)
LOG_LOCAL7 (entier)
LOG_PID (entier)
LOG_CONS (entier)
LOG_ODELAY (entier)
LOG_NDELAY (entier)
LOG_NOWAIT (entier)
LOG_PERROR (entier)



Types des ressources PHP

Voici la liste des fonctions qui créent, utilisent ou détruisent les ressources PHP. Vous pouvez déterminer si une variable contient une ressource avec la fonction is_resource(), et le type d'une ressource que vous utilisez avec la fonction get_resource_type().

Types de ressource
Ressource Construite par Utilisée par Détruite par Définition
aspell aspell_new() aspell_check(), aspell_check_raw(), aspell_suggest() Aucun Dictionnaire Aspell
bzip2 bzopen() bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() bzclose() Fichier bzip2
COM com_load() com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() Aucun Référence sur un objet COM
VARIANT
cpdf cpdf_open() cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() cpdf_close() Document PDF avec la bibliothèque CPDF
cpdf outline
curl curl_copy_handle(), curl_init() curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() curl_close() Session Curl
dbm dbmopen() dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() dbmclose() Lien vers une base de données DBM
dba dba_open() dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() dba_close() Lien vers une base de données DBA
dba persistent dba_popen() dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() Aucun Lien persistant vers une base de données DBA
dbase dbase_open() dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() dbase_close() Lien vers une base de données dbase
dbx_link_object dbx_connect() dbx_query() dbx_close() Connexion dbx
dbx_result_object dbx_query() Aucun Résultat dbx
domxml attribute
domxml document
domxml node
xpath context
xpath object
fbsql link fbsql_change_user(), fbsql_connect() fbsql_autocommit(), fbsql_blob_size(), fbsql_clob_size(), fbsql_commit(), fbsql_change_user(), fbsql_create_blob(), fbsql_create_db(), fbsql_create_clob(), fbsql_data_seek(), fbsql_database_password(), fbsql_database(), fbsql_db_query(), fbsql_db_status(), fbsql_drop_db(), fbsql_errno(), fbsql_error(), fbsql_get_autostart_info(), fbsql_hostname(), fbsql_insert_id(), fbsql_list_dbs(), fbsql_password(), fbsql_read_blob(), fbsql_read_clob(), fbsql_rollback(), fbsql_select_db(), fbsql_set_password(), fbsql_set_transaction(), fbsql_start_db(), fbsql_stop_db(), fbsql_username() fbsql_close() Lien vers une base de données fbsql
fbsql plink fbsql_change_user(), fbsql_pconnect() fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() Aucun Lien persistant vers une base de données fbsql
fbsql result fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() fbsql_free_result() Résultat fbsql
fdf fdf_open() fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() fdf_close() Fichier FDF
ftp ftp_connect(), ftp_ssl_connect() ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() ftp_close() Flux FTP
gd imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() imagedestroy() Image GD
gd font imageloadfont() imagechar(), imagecharup(), imagefontheight() Aucun Police pour GD
gd PS encoding
gd PS font imagepsloadfont() imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() imagepsfreefont() Police PostScript pour GD
GMP integer gmp_init() gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() Aucun Nombre GMP
hyperwave document hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() hw_deleteobject() Objet Hyperwave
hyperwave link hw_connect() hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() hw_close(), hw_free_document() Lien vers un serveur Hyperwave
hyperwave link persistent hw_pconnect() hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() Aucun Lien persistant vers un serveur Hyperwave
icap icap_open() icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() icap_close() Lien vers un serveur icap
imap imap_open() imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() imap_close() Lien vers un serveur mail (IMAP, POP3)
imap chain persistent
imap persistent
ingres ingres_connect() ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() ingres_close() Lien vers une base de données ingresII
ingres persistent ingres_pconnect() ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() Aucun Lien persistant vers une base de données ingresII
interbase blob
interbase link ibase_connect() ibase_query(), ibase_prepare(), ibase_trans() ibase_close() Lien vers une base de données Interbase
interbase link persistent ibase_pconnect() ibase_query(), ibase_prepare(), ibase_trans() Aucun Lien persistant vers une base de données Interbase
interbase query ibase_prepare() ibase_execute() ibase_free_query() Requête Interbase
interbase result ibase_query() ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() ibase_free_result() Résultat Interbase
interbase transaction ibase_trans() ibase_commit() ibase_rollback() Transaction Interbase
java
ldap link ldap_connect(), ldap_search() ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() ldap_close() Lien vers un serveur LDAP
ldap result ldap_read() ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() ldap_free_result() Résultat de recherche LDAP
ldap result entry
mcal mcal_open(), mcal_popen() mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() mcal_close() Lien vers un serveur Mcal
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link msql_connect() msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() msql_close() Lien vers une base de données mSQL
msql link persistent msql_pconnect() msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() Aucun Lien persistant vers une base de données mSQL
msql query msql_db_query(), msql_list_dbs(), msql_list_fields(), msql_list_tables(), msql_query() msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_field_seek(), msql_field_table(), msql_field_flags(), msql_field_len(), msql_field_name(), msql_field_type(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() msql_free_result(), msql_free_result() Résultat mSQL
mssql link mssql_connect() mssql_query(), mssql_select_db() mssql_close() Lien vers une base de données Microsoft SQL Server
mssql link persistent mssql_pconnect() mssql_query(), mssql_select_db() Aucun Lien persistant vers une base de données Microsoft SQL Server
mssql result mssql_query() mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() mssql_free_result() Résultat Microsoft SQL Server
mysql link mysql_connect() mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() mysql_close() Lien vers une base de données MySQL
mysql link persistent mysql_pconnect() mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() Aucun Lien persistant vers une base de données MySQL
mysql result mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() mysql_free_result() Résultat MySQL
oci8 collection
oci8 connection ocilogon(), ociplogon(), ocinlogon() ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() ocilogoff() Lien vers une base de données Oracle
oci8 descriptor
oci8 server
oci8 session
oci8 statement ocinewdescriptor() ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() ocifreestatement() Curseur Oracle
odbc link odbc_connect() odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() odbc_close() Lien vers une base de données ODBC
odbc link persistent odbc_pconnect() odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() Aucun Lien persistant vers une base de données ODBC
odbc result odbc_prepare() odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() odbc_free_result() Résultat ODBC
birdstep link
birdstep result
OpenSSL key openssl_get_privatekey(), openssl_get_publickey() openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() openssl_free_key() Clé de cryptage OpenSSL
OpenSSL X.509 openssl_x509_read() openssl_x509_parse(), openssl_x509_checkpurpose() openssl_x509_free() Clé publique
oracle cursor ora_open() ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() ora_close() Curseur oracle
oracle link ora_logon() ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() ora_logoff() Lien vers une base de données oracle
oracle link persistent ora_plogon() ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() Aucun Lien persistant vers une base de données oracle
pdf document pdf_new() pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_add_thumbnail(), pdf_arcn(), pdf_begin_pattern(), pdf_begin_template(), pdf_end_pattern(), pdf_end_template(), pdf_initgraphics(), pdf_makespotcolor(), pdf_set_info(), pdf_setcolor(), pdf_setmatrix(), pdf_open_memory_image() pdf_close(), pdf_delete() Document PDF
pdf image pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() pdf_get_image_height(), pdf_get_image_width(), pdf_open_ccitt(), pdf_place_image() pdf_close_image() Image dans un document PDF
pdf object
pdf outline
Objet de grande taille pgsql pg_lo_open() pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() pg_lo_close() Objet de grande taille PostGreSQL
pgsql link pg_connect() pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() pg_close() Lien vers une base de données PostGreSQL
pgsql link persistent pg_pconnect() pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() Aucun Lien persistant vers une base de données PostGreSQL
pgsql result pg_execute(), pg_query(), pg_query_params(), pg_get_result() pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() pg_free_result() Résultat PostGreSQL
pgsql string
printer
printer brush
printer font
printer pen
pspell pspell_new(), pspell_new_config(), pspell_new_personal() pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() Aucun Dictionnaire Pspell
pspell config pspell_config_create() pspell_new_config() Aucun Configuration Pspell
Sablotron XSLT xslt_create() xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() xslt_free() Analyseur XSLT
shmop shmop_open() shmop_read(), shmop_write(), shmop_size(), shmop_delete() shmop_close()  
sockets file descriptor set socket() accept_connect(), bind(), connect(), listen(), read(), write() close() Socket
sockets i/o vector
Flux opendir() readdir(), rewinddir() closedir() Dossier
Flux fopen(), tmpfile() feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() fclose() Fichier
Flux popen(), fsockopen(), pfsockopen() feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() pclose() Processus
socket fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() fclose() Socket
sybase-db link sybase_connect() sybase_query(), sybase_select_db() sybase_close() Lien vers une base de données Sybase avec la bibliothèque db
sybase-db link persistent sybase_pconnect() sybase_query(), sybase_select_db() Aucun Lien persistant vers une base de données Sybase avec la bibliothèque db
sybase-db result sybase_query(), sybase_unbuffered_query() sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() sybase_free_result() Résultat Sybase avec la bibliothèque DB
sybase-ct link sybase_connect() sybase_affected_rows(), sybase_query(), sybase_select_db() sybase_close() Lien vers une base de données Sybase avec la bibliothèque CT
sybase-ct link persistent sybase_pconnect() sybase_affected_rows(), sybase_query(), sybase_select_db() Aucun Lien persistant vers une base de données Sybase avec la bibliothèque CT
sybase-ct result sybase_query() sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() sybase_free_result() Résultat Sybase avec la bibliothèque CT
sysvsem sem_get() sem_acquire() sem_release() Sémaphore Système V
sysvshm shm_attach() shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() shm_detach() Mémoire partagée Système V
wddx wddx_packet_start() wddx_add_vars() wddx_packet_end() Paquet wddx
xml xml_parser_create(), xml_parser_create_ns() xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() xml_parser_free() Analyseur syntaxique XML
zlib gzopen() gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() gzclose() Fichier compressé Gzip



Liste des filtres standards

Sommaire

Cette section contient la liste des filtres de flux, à utiliser avec stream_filter_append(). Votre version de PHP peut avoir des filtres supplémentaires, ou manquants par rapport à cette liste.

Il est bon de noter une légère différence entre stream_filter_append() et stream_filter_prepend(). Tous les flux PHP disposent d'un petit buffer de lecture, où ils stockent des blocs de données lues dans le système de fichiers, ou dans d'autres sources, afin de les traiter plus efficacement. Aussitôt que les données sont lues depuis la ressource dans le buffer interne, les données sont immédiatement passées au filtre, même si l'application PHP n'est pas prête pour lire ces données. Si des données sont déjà en attente dans le buffer lorsqu'un filtre est ajouté au flux (appended), ces données seront immédiatement passées au filtre, pour que la modification soit transparente. Mais si vous ajoutez un filtre avec prepended, les données NE seront PAS filtrées. Elles attendront que le prochain bloc arrive de la ressource.

Pour avoir la liste complète des filtres de votre version de PHP, utilisez la fonction stream_get_filters().


Filtres de chaînes de caractères

Chaque filtre fait ce que son nom implique, et se réfère au comportement de la fonction PHP correspondante. Pour plus de détails sur un filtre, reportez-vous au manuel de la fonction de référence.

string.rot13 (depuis PHP 4.3.0) Utilisez ce filtre pour faire traiter les données par la fonction str_rot13().

Exemple #1 Exemple avec le filtre string.rot13

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'string.rot13');
fwrite($fp"Ceci est un test.\n");
/* affiche :  Prpv rfg ha grfg.   */
?>

string.toupper (depuis PHP 5.0.0) Utilisez ce filtre pour faire traiter les données par la fonction strtoupper().

Exemple #2 Exemple avec le filtre string.toupper

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'string.toupper');
fwrite($fp"Ceci est un test.\n");
/* affiche :  CECI EST UN TEST.   */
?>

string.tolower (depuis PHP 5.0.0) Utilisez ce filtre pour faire traiter les données par la fonction strtolower().

Exemple #3 Exemple avec le filtre string.tolower

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'string.tolower');
fwrite($fp"Ceci est un test.\n");
/* affiche :  ceci est un test.   */
?>

string.strip_tags (depuis PHP 5.0.0) Utilisez ce filtre pour faire traiter les données par la fonction strip_tags(). Le filtre accepte les paramètres sous deux formats : soit une chaîne contenant une liste de balises, de manière similaire au second paramètre de la fonction strip_tags(); soit un tableau de noms de balises.

Exemple #4 Exemple avec le filtre string.strip_tags

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'string.strip_tags'STREAM_FILTER_WRITE"<strong><em><span>");
fwrite($fp"<strong>Ce texte en gras</strong> finit par être aggrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche :  <strong>Ce texte en gras</strong> finit par être aggrandi en un titre 1   */

$fp fopen('php://output''w');
stream_filter_append($fp'string.strip_tags'STREAM_FILTER_WRITE, array('strong','em','span'));
fwrite($fp"<strong>Ce texte en gras</strong> finit par être aggrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche :  <strong>Ce texte en gras</strong> finit par être aggrandi en un titre 1   */
?>


Filtres de conversion

Comme pour les filtres de chaînes, les filtres de conversion font ce que leur nom indique. Ces filtres ont été ajoutés en PHP 5.0.0. Pour plus d'informations, voyez le manuel de la fonction correspondante.

convert.base64-encode et convert.base64-decode Utilisez ce filtre pour faire traiter les données par les fonctions base64_encode() et base64_decode(). convert.base64-encode supporte les paramètres sous forme de tableau. Si line-length est donné, le résultat sera coupé en lignes de line-length caractères. Si line-break-chars est founi, chaque bloc de caractères sera terminé par ce paramètre. Ces paramètres donnent le même effet que la fonction base64_encode() utilisée conjointement avec chunk_split().

Exemple #1 Exemple avec les filtres convert.base64-encode et convert.base64-decode

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'convert.base64-encode');
fwrite($fp"This is a test.\n");
fclose($fp);
/* affiche :  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8'line-break-chars' => "\r\n");
$fp fopen('php://output''w');
stream_filter_append($fp'convert.base64-encode'STREAM_FILTER_WRITE$param);
fwrite($fp"This is a test.\n");
fclose($fp);
/* affiche :  VGhpcyBp
           :  cyBhIHRl
           :  c3QuCg==  */

$fp fopen('php://output''w');
stream_filter_append($fp'convert.base64-decode');
fwrite($fp"VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* affiche :  This is a test.  */
?>

convert.quoted-printable-encode et convert.quoted-printable-decode Utilisez ce filtre pour faire traiter les données par la fonction quoted_printable_decode(). Il n'y a pas d'équivalent fonctionnel à convert.quoted-printable-encode. convert.quoted-printable-encode reçoit les paramètres sous forme de tableau. En plus des paramètres classiques de convert.base64-encode, convert.quoted-printable-encode accepte aussi les arguments booléens binary et force-encode-first. convert.base64-decode ne supporte le paramètre line-break-chars que comme indication pour supprimer les nouvelles lignes.

Exemple #2 Exemple avec les filtres convert.quoted-printable-encode et convert.quoted-printable-decode

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'convert.quoted-printable-encode');
fwrite($fp"This is a test.\n");
/* affiche :  =This is a test.=0A  */
?>


Filtres de compression

Alors que les gestionnaires de compression fournissent un moyen pour générer des fichiers aux formats gzip et bz2, ils ne permettent pas de gérer les protocoles réseaux compressés, ni de commencer avec un flux non compressé pour le transformer en flux compressé. Pour faire cela, il faut appliquer un filtre de compression.

Note: Les filtres de compression ne génèrent pas les en-têtes et fins de fichiers, comme le fait l'utilitaire gzip. Ils ne font que compresser et décompresser des portions de flux de données.

zlib.deflate (compression) et zlib.inflate (decompression) sont les implémentations des méthodes de compression présentées dans la » RFC 1951. Le filtre deflate prend jusqu'à trois paramètres, passés sous la forme de tableau associatif. level spécifie le niveau de compression souhaité, de 1 à 9. Plus le niveau est haut, meilleure est la compression, et plus cher est le coût de compression. Deux niveaux de compression spéciaux existent : 0, qui représente l'absence de compression, et -1, qui représente le niveau par défaut de la bibliothèque zlib : actuellement, c'est 6. window est la taille du buffer mémoire, en base 2. Les valeurs supérieures, jusqu'à 15, soit 32768 octets, donnent de meilleures compressions, et les valeurs inférieures, jusqu'à 9, soit 512 octets, occupent le moins d'espace en mémoire. Par défaut, window vaut actuellement 15. memory est une indication du niveau de mémoire nécessaire. Les valeurs valides vont de 1, pour l'allocation minimale, à 9, pour une allocation maximale. L'allocation de mémoire affecte la vitesse d'exécution, et non pas le coût global.

Note: Comme le niveau de compression est le paramètre le plus courant, il peut aussi être fourni en passant un entier comme paramètre, au lieu d'un tableau.

Les filtres de compression zlib.* sont disponibles avec PHP depuis la version 5.1.0 si le support zlib est activé. Ils sont également disponibles pour les versions 5.0.x en installant le paquet » zlib_filter depuis » PECL. Ces filtres ne sont pas disponibles en PHP 4.

Exemple #1 zlib.deflate et zlib.inflate

<?php
$params 
= array('level' => 6'window' => 15'memory' => 9);

$original_text "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo 
"Le texte original est long de " strlen($original_text) . " octets.\n";

$fp fopen('test.deflated''w');
stream_filter_append($fp'zlib.deflate'STREAM_FILTER_WRITE$params);
fwrite($fp$original_text);
fclose($fp);

echo 
"Le fichier compressé fait " filesize('test.deflated') . " octets de long.\n";
echo 
"Le texte original était :\n";
/* Utilise readfile et zlib.inflate pour décompresser à la volée */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Affiche :

Le texte original est long de 70 octets
Le fichier compressé fait 56 octets de long.
Le texte original était :
This is a test.
This is only a test.
This is not an important string.

 */
?>

Exemple #2 simple zlib.deflate

<?php
$original_text 
"This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo 
"Le texte original est long de " strlen($original_text) . " octets.\n";

$fp fopen('test.deflated''w');
/* Ici, "6" indique le niveau de compression de 6 */
stream_filter_append($fp'zlib.deflate'STREAM_FILTER_WRITE6);
fwrite($fp$original_text);
fclose($fp);

echo 
"Le fichier compressé fait " filesize('test.deflated') . " octets de long.\n";

/* Affiche :

Le texte original est long de 70 octets
Le fichier compressé fait 56 octets de long.

 */
?>

bzip2.compress et bzip2.decompress fonctionnent de la même manière que les filtres zlib. Le filtre bzip2.compress accepte jusqu'à 2 paramètres, sous la forme d'un tableau associatif : blocks est une valeur entière, de 1 à 9, spécifiant le nombre de blocs de 100 kb de mémoire à allouer à l'espace de travail. work est aussi un entier dont la valeur va de 0 à 250, et qui indique le niveau d'efforts fournis avec une méthode de compression avant de passer à une autre méthode, plus lente. Modifier ce paramètre n'a qu'un effet sur la vitesse de compression. Le gain d'espace ou la mémoire utilisée restent les mêmes. Un niveau de 0 indique que la bibliothèque doit utiliser sa configuration par défaut. Le filtre bzip2.decompress accepte uniquement un paramètre, qui peut être passé sous la forme d'un booléen associé à l'index small. small, lorsqu'il vaut TRUE, indique à la bibliothèque bzip qu'elle doit faire une décompression en utilisant le moins de mémoire possible, aux dépends de la vitesse.

Les filtres bzip2.* ne sont pas inclus dans la distribution PHP depuis la version 5.1.0 si le support bz2 est activé. Ils sont également disponibles pour les versions 5.0.x de PHP en installant le paquet » bz2_filter depuis » PECL. Ces filtres ne sont pas disponibles pour PHP 4.

Exemple #3 bzip2.compress et bzip2.decompress

<?php
$param 
= array('blocks' => 9'work' => 0);

echo 
"Le texte original est long de " strlen(LICENSE) . " octets.\n";

$fp fopen('LICENSE.compressed''w');
stream_filter_append($fp'bzip2.compress'STREAM_FILTER_WRITE$param);
fwrite($fpfile_get_contents('LICENSE'));
fclose($fp);

echo 
"Le fichier compressé fait " filesize('LICENSE.compressed') . " octets de long.\n";

/* Affiche :

Le texte original est long de 3288 octets.
Le fichier compressé fait 1488 octets de long.

 */
?>


Filtres de chiffrement

mcrypt.* et mdecrypt.* fournissent un système de chiffrement symétrique basé sur libmcrypt. Les deux filtres supportent les mêmes algorithmes disponibles avec la bibliothèque mcrypt, sous la forme de la directive mcrypt.ciphernameciphername est le nom du chiffrement qui sera passé à mcrypt_module_open(). Les cinq paramètres suivants sont aussi disponibles :

Paramètres du filtre mcrypt
Paramètre Obligatoire Par défaut Valeurs possibles
mode Optionnel cbc cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir Optionnel ini_get('mcrypt.algorithms_dir') Chemin vers les algorithmes de modules
modes_dir Optionnel ini_get('mcrypt.modes_dir') Chemin vers les modes de modules
iv Obligatoire N/A Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement
key Obligatoire N/A Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement

Exemple #1 Chiffrement d'un fichier avec 3DES

<?php
$passphrase 
'My secret';

/* Transforme un mot de passe humain
 * en une paire iv/clé
 */
$iv substr(md5('iv'.$passphrasetrue), 08);
$key substr(md5('pass1'.$passphrasetrue) . 
               
md5('pass2'.$passphrasetrue), 024);
$opts = array('iv'=>$iv'key'=>$key);

$fp fopen('secret-file.enc''wb');
stream_filter_append($fp'mcrypt.tripledes'STREAM_FILTER_WRITE$opts);
fwrite($fp'Secret secret secret data');
fclose($fp);
?>

Exemple #2 Lecture d'un fichier chiffré

<?php
$passphrase 
'My secret';

/* Transforme un mot de passe humain
 * en une paire iv/clé
 */
$iv substr(md5('iv'.$passphrasetrue), 08);
$key substr(md5('pass1'.$passphrasetrue) . 
               
md5('pass2'.$passphrasetrue), 024);
$opts = array('iv'=>$iv'key'=>$key);

$fp fopen('secret-file.enc''rb');
stream_filter_append($fp'mdecrypt.tripledes'STREAM_FILTER_READ$opts);
$data rtrim(stream_get_contents($fp));
fclose($fp);

echo 
$data;
?>



Liste des modes de transport de sockets disponibles

Sommaire

Voici la liste des différents modes de transport, format URL, dont PHP dispose en interne pour les flux qui exploitent les sockets, tels que fsockopen() et stream_socket_client(). Ces modes de transport ne s'appliquent pas à l'extension sockets.

Pour connaître la liste des modes de transport installés sur votre version de PHP, utilisez stream_get_transports().


Domaines Internet : TCP, UDP, SSL et TLS

PHP 4, PHP 5. ssl:// & tls:// depuis PHP 4.30, sslv2:// & sslv3:// depuis PHP 5.0.2.

Note: Si aucun transport n'est spécifié, tcp:// est utilisé.

  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Les sockets du domaine Internet utilisent un numéro de port en plus de l'adresse de l'hôte. Dans le cas de fsockopen(), il est spécifié en deuxième paramètre et, donc, n'a pas d'impact sur le format du mode de transport. Avec stream_socket_client() et les autres fonctions de la même famille, le numéro de port est spécifié comme un suffixe dans l'URL de transport, identifié par le signe deux-points.

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

Note: Adresse IPv6 et numéro de port
Dans le second exemple ci-dessus, les exemples en IPv4 et les noms d'hôtes sont identiques, mais les IPv6 sont placées entre crochets, en plus d'avoir les deux-points et le numéro de port : [fe80::1]. Cela permet de distinguer les deux-points utilisés en IPv6 et le deux-points utilisés pour délimiter le numéro de port.

Les modes ssl:// et tls:// (disponibles uniquement lorsque le support OpenSSl est compilé avec PHP) sont des extensions de tcp:// qui incluent le chiffrement SSL. En PHP 4.3, OpenSll doit être compilé statiquement avec PHP. en PHP 5.0, il peut être compilé en module ou statiquement.

ssl:// va tenter de négocier une connexion SSL V2 ou SSL V3, suivant les capacités et les références de l'hôte distant. sslv2:// et sslv3:// sélectionnent explicitement le protocole.



Domaine Unix : UNIX et UDG

unix:// et udg:// (udg:// depuis PHP 5).

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// fournit l'accès à un flux de type socket, sur un domaine Unix. udg:// fournit un mode de transport alternatif, avec un protocole de datagrammes utilisateurs.

Les sockets du domaine Unix, contrairement à celles du domaine Internet, n'utilisent pas de numéro de port. Dans ce cas, le paramètre portno de fsockopen() doit valoir 0.




Comparaison de types en PHP

La table suivante résume les différents comportements de PHP avec les types et opérateurs de comparaison, strictes ou larges. Cette table est aussi reliée au transtypage. Elle a été inspirée par différents commentaires d'utilisateurs, et par le travail fait chez » BlueShoes.

Avant d'utiliser ces tables, il est important de comprendre les types et leur signification. Par exemple, "42" est une chaîne de caractères, alors que 42 est un entier. FALSE est boolean alors que "false" est une chaîne de caractères.

Note:

Les formulaires HTML ne connaissent pas les entiers, nombres à virgules et autres booléens. Pour savoir si une structure est un entier, utilisez is_numeric().

Note:

La ligne if ($x) génère une erreur de niveau E_NOTICE lorsque $x est indéfini. Alternativement, utilisez plutôt les fonctions empty() ou isset(), ou encore, initialisez toutes vos variables.

Comparaisons de $x avec des fonctions PHP
Expression gettype() empty() is_null() isset() boolean : if($x)
$x = ""; chaîne de caractères TRUE FALSE TRUE FALSE
$x = null NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x est indéfini NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; entier FALSE FALSE TRUE TRUE
$x = 42; entier FALSE FALSE TRUE TRUE
$x = 0; entier TRUE FALSE TRUE FALSE
$x = -1; entier FALSE FALSE TRUE TRUE
$x = "1"; chaîne de caractères FALSE FALSE TRUE TRUE
$x = "0"; chaîne de caractères TRUE FALSE TRUE FALSE
$x = "-1"; chaîne de caractères FALSE FALSE TRUE TRUE
$x = "php"; chaîne de caractères FALSE FALSE TRUE TRUE
$x = "true"; chaîne de caractères FALSE FALSE TRUE TRUE
$x = "false"; string FALSE FALSE TRUE TRUE

Comparaison large avec ==
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE

Comparaison stricte avec ===
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE



Liste des tokens de l'analyseur

De nombreuses parties du langage PHP sont représentées en interne par des tokens. Litéralement, ce sont des trucs, ou jetons. Ici, des briques de base, comme T_SR. PHP affiche des identifiants comme celui-ci dans les erreurs d'analyse, par exemple : unexpected T_SR, expecting ',' or ';' in script.php on line 10..

Vous êtes suppposé savoir ce que T_SR signifie. Pour ceux qui ne le savent pas, voici une liste de ces identifiants, la syntaxe PHP correspondante, et les références appropriées au manuel.

Tokens
Token Syntaxe Référence
T_ABSTRACT abstract Abstraction de classes (disponible depuis PHP 5.0.0)
T_AND_EQUAL &= opérateurs d'assignation
T_ARRAY array() array(), syntaxe de tableau
T_ARRAY_CAST (array) transtypage
T_AS as foreach
T_BAD_CHARACTER   Tous les caractères en dessous de ASCII 32 excepté \t (0x09), \n (0x0a) et \r (0x0d)
T_BOOLEAN_AND && opérateurs logiques
T_BOOLEAN_OR || opérateurs logiques
T_BOOL_CAST (bool) ou (boolean) transtypage
T_BREAK break; break
T_CASE case switch
T_CATCH catch Les exceptions (disponible depuis PHP 5.0.0)
T_CHARACTER   Plus utilisé actuellement
T_CLASS class classes et objets
T_CLASS_C __CLASS__ constantes magiques (disponible depuis PHP 4.3.0)
T_CLONE clone classes et objets. (disponible depuis PHP 5.0.0)
T_CLOSE_TAG ?> or %> échapper depuis le HTML
T_COMMENT // ou #, et /* */ en PHP 5 commentaires
T_CONCAT_EQUAL .= opérateurs d'assignation
T_CONST const constantes de classe
T_CONSTANT_ENCAPSED_STRING "foo" ou 'bar' syntaxe chaîne de caractères
T_CONTINUE continue continue
T_CURLY_OPEN {$ syntaxe d'analyse de variable complexe
T_DEC -- opérateurs d'incrémention/décrémention
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ constantes magiques (disponible depuis PHP 5.3.0)
T_DIV_EQUAL /= opérateurs d'assignation
T_DNUMBER 0.12, etc. nombres à virgule flottante
T_DOC_COMMENT /** */ style de commentaire dans la PHPDoc (disponible depuis PHP 5.0.0)
T_DO do do...while
T_DOLLAR_OPEN_CURLY_BRACES ${ syntaxe de variable complexe analysée
T_DOUBLE_ARROW => syntaxe de tableau
T_DOUBLE_CAST (real), (double) ou (float) transtypage
T_DOUBLE_COLON :: Voyez T_PAAMAYIM_NEKUDOTAYIM plus bas
T_ECHO echo echo()
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" partie des constantes d'une chaîne de caractères contenant des variables
T_ENDDECLARE enddeclare declare, syntaxe alternative
T_ENDFOR endfor for, syntaxe alternative
T_ENDFOREACH endforeach foreach, syntaxe alternative
T_ENDIF endif if, syntaxe alternative
T_ENDSWITCH endswitch switch, syntaxe alternative
T_ENDWHILE endwhile while, syntaxe alternative
T_END_HEREDOC   syntaxe heredoc
T_EVAL eval() eval()
T_EXIT exit or die exit(), die()
T_EXTENDS extends extends, classes et objets
T_FILE __FILE__ constantes magiques
T_FINAL final Mot-clé "final" (disponible depuis PHP 5.0.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function or cfunction fonctions
T_FUNC_C __FUNCTION__ constantes magiques (disponible depuis PHP 4.3.0)
T_GLOBAL global scope de variable
T_GOTO goto (disponible depuis PHP 5.3.0)
T_HALT_COMPILER __halt_compiler() __halt_compiler (disponible depuis PHP 5.1.0)
T_IF if if
T_IMPLEMENTS implements Interfaces (disponible depuis PHP 5.0.0)
T_INC ++ opérateurs d'incrémention/décrémention
T_INCLUDE include() include()
T_INCLUDE_ONCE include_once() include_once()
T_INLINE_HTML   texte en dehors de PHP
T_INSTANCEOF instanceof opérateurs de type (disponible depuis PHP 5.0.0)
T_INT_CAST (int) ou (integer) transtypage
T_INTERFACE interface Interfaces (dipsonible depuis PHP 5.0.0)
T_ISSET isset() isset()
T_IS_EQUAL == opérateurs de comparaison
T_IS_GREATER_OR_EQUAL >= opérateurs de comparaison
T_IS_IDENTICAL === opérateurs de comparaison
T_IS_NOT_EQUAL != ou <> opérateurs de comparaison
T_IS_NOT_IDENTICAL !== opérateurs de comparaison
T_IS_SMALLER_OR_EQUAL <= opérateurs de comparaison
T_LINE __LINE__ constantes magiques
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, etc entiers
T_LOGICAL_AND and opérateurs logiques
T_LOGICAL_OR or opérateurs logiques
T_LOGICAL_XOR xor opérateurs logiques
T_METHOD_C __METHOD__ constantes magiques (disponible depuis PHP 5.0.0)
T_MINUS_EQUAL -= opérateurs d'assignation
T_ML_COMMENT /* et */ commentaires (PHP 4 uniquement)
T_MOD_EQUAL %= opérateurs d'assignation
T_MUL_EQUAL *= opérateurs d'assignation
T_NAMESPACE namespace namespaces (disponible PHP 5.3.0)
T_NS_C __NAMESPACE__ namespaces (disponible depuis PHP 5.3.0)
T_NS_SEPARATOR \ namespaces (disponible depuis PHP 5.3.0)
T_NEW new classes et objets
T_NUM_STRING "$a[0]" index d'un tableau numérique se trouvant dans une chaîne de caractères
T_OBJECT_CAST (object) transtypage
T_OBJECT_OPERATOR -> classes et objets
T_OLD_FUNCTION old_function (uniquement PHP 4)
T_OPEN_TAG <?php, <? or <% sortie du mode HTML
T_OPEN_TAG_WITH_ECHO <?= ou <%= sortie du mode HTML
T_OR_EQUAL |= opérateurs d'assignation
T_PAAMAYIM_NEKUDOTAYIM :: ::. Définie également en tant que T_DOUBLE_COLON.
T_PLUS_EQUAL += opérateurs d'assignation
T_PRINT print() print()
T_PRIVATE private classes et objets (disponible depuis PHP 5.0.0)
T_PUBLIC public classes et objets (disponible depuis PHP 5.0.0)
T_PROTECTED protected classes et objets (disponible depuis PHP 5.0.0)
T_REQUIRE require() require()
T_REQUIRE_ONCE require_once() require_once()
T_RETURN return valeurs retournées
T_SL << opérateurs sur les bits
T_SL_EQUAL <<= opérateurs d'assignation
T_SR >> opérateurs sur les bits
T_SR_EQUAL >>= opérateurs d'assignation
T_START_HEREDOC <<< syntaxe heredoc
T_STATIC static scope de variable
T_STRING "parent" identifiants, e.g. strings, mots-clés du modèle objet comme parent et self, fonctions, classes et autres, correspondent.
T_STRING_CAST (string) transtypage
T_STRING_VARNAME "${a syntaxe d'analyse d'une variable complexe
T_SWITCH switch switch
T_THROW throw Les exceptions (disponible depuis PHP 5.0.0)
T_TRY try Les exceptions (disponible depuis PHP 5.0.0)
T_UNSET unset() unset()
T_UNSET_CAST (unset) type-casting (disponible depuis PHP 5.0.0)
T_USE use namespaces (disponible depuis PHP 5.3.0 ; réservé depuis PHP 4.0.0)
T_VAR var classes et objets
T_VARIABLE $foo variables
T_WHILE while while, do...while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= opérateurs d'assignation

Voir aussi token_name().



Guide de nommage de l'espace utilisateur

Sommaire

Ce guide permet de choisir de la meilleure façon possible les noms pour les identifiants dans le code PHP de l'espace utilisateur. Lors du choix des noms pour n'importe quel code qui crée des symboles dans l'espace de noms global, il est important de prendre en compte ce guide afin d'éviter d'éventuels problèmes avec les futures versions de PHP et vos symboles.


Espace de noms global

Ceci est une vude la construction du code qui ira dans l'espace de noms global :

  • fonctions

  • classes

  • interfaces

  • constantes (et non les constantes de classe)

  • variables définies à l'extérieur des fonctions/méthodes



Règles

La liste suivante fournit un aperçu global des règles réservées au projet PHP lors du choix des noms pour les nouveaux identifiants internes. Le guide définitif est l'officiel » CODING STANDARDS :

  • PHP possède l'espace de noms de haut niveau mais tente de trouver des noms descriptifs cohérents.

  • Les noms des fonctions utilisent un underscore entre les mots, tandis que les noms des classes utilisent les notations CamelCase et PascalCase.

  • PHP préfixe tous les symboles globaux d'une extension avec le nom de l'extension. (Dans le passé, il y avait quelques exceptions à cette règle) Exemples :

  • Les itérateurs et les exceptions sont cependant simplement suffixés par respectivement, "Iterator" et "Exception." Exemples :

  • PHP réserve tous les symboles commençant par un __ comme étant magique. Il est recommandé de ne pas créer de symboles commençant par un __ en PHP sauf si vous voulez utiliser les fonctionnalités magiques documentées. Exemple :

    • __get()

    • __autoload()



Astuces

Si vous voulez écrire du code portable, il est recommandé de préfixer (ou suffixer) tout ce qui va dans l'espace de noms global avec un préfixe non commun de 3-4 lettres (ou suffixe) séparé par un underscore. Il est recommandé, afin d'éviter des problèmes d'espace de noms avec d'autres codes de l'espace utilisateur, de faire en sorte que les projets recherchent les préfixes (ou les suffixes) utilisés dans les autres projets et de choisir vos préfixes (ou suffixe) en fonction. Exemples :

  • MyPx_someFunc()

  • Foo_Date

  • $asdf_dbh




À propos du manuel

Sommaire


Formats

Le manuel PHP est fourni en différents formats. Ces formats sont divisés en deux groupes : ceux qui sont disponibles en ligne, et les téléchargeables.

Note:

Certains éditeurs ont fournis des versions imprimées de ce manuel. Nous n'en recommandons aucune, car elles sont rapidement obsolètes.

Le manuel peut être lu en ligne sur le site » php.net et sur les nombreux miroirs. Pour un confort d'utilisation accru, il est recommandé d'utiliser un miroir proche de chez vous. La version en ligne du manuel PHP a actuellement deux rendus CSS : un rendu agréable à l'oeil et un pratique pour l'impression.

Deux avantages du manuel en ligne sur la plupart des formats téléchargeables, sont l'intégration des notes des utilisateurs et les » URL de raccourci que vous pouvez utiliser pour accéder rapidement à une partie du manuel. Un inconvénient évident est que vous devez être en ligne pour profiter de ce format.

Il y a de nombreux formats de manuel pour la consultation hors ligne, et le format le plus approprié dépend de votre OS et de vos goûts personnels. Pour savoir comment le manuel est généré, lisez la section 'Comment le manuel est généré' de cet appendice.

Le format le plus portable est le HTML. Le manuel est fourni dans un format en une seule page HTML, ou comme un ensemble de fichiers de tailles réduites (mais un bon millier de fichiers tout de même). Nous fournissons ce format sous une forme compressée, vous aurez donc besoin d'un utilitaire de décompression pour extraire les fichiers de l'archive.

Pour les plates-formes Windows, le format Windows HTML Help fournit une version HTML du manuel à utiliser avec l'application Windows HTML Help : il intègre un moteur de recherche complet, un index et des signets. De nombreux IDE sous Windows fournissent des liens avec ce format pour une meilleure intégration. Il existe aussi des visualisateurs de CHM pour Linux. Visitez » xCHM ou » GnoCHM.

Il existe aussi une » version CHM étendue, qui est mise à jour moins souvent mais qui fournit plus de fonctionnalités. Elle ne fonctionnera que sur Microsoft Windows à cause des technologies utilisées pour construire ces pages.



À propos des notes utilisateurs

Les notes des utilisateurs jouent un rôle très important dans le développement de ce manuel. En permettant aux lecteurs de contribuer par des exemples, des remarques et critiques, ou encore des clarifications, nous intégrons des aspects très importants du langage dans le manuel. Jusqu'à ce que les notes les plus importantes soient intégrées dans la documentation, elles sont disponibles sur le site lui-même, et dans certains formats hors ligne.

Note:

Les notes des utilisateurs ne sont pas modérées avant d'apparaître sur le site, et même si elles le sont, leur véracité ne peut être garantie, pas plus qu'il n'existe de garantie quand à l'exactitude du manuel lui-même.

Note:

Pour des questions de portée de licence, les notes utilisateurs sont considérées comme faisant partie du manuel PHP, et sont donc couvertes par la même licence qui couvre cette documenation (Creative Commons Attribution à ce jour). Pour plus de détails, lisez la page Manual's Copyright.



Comment lire la définition d'une fonction (prototype)

Chaque fonction dans le manuel est documentée pour permettre une compréhension rapide. Savoir décoder le texte rendra votre apprentissage plus facile. Plutôt que de dépendre d'exemples prêts en copier/coller, il est plus utile de savoir lire la définition d'une fonction (prototype). Voici comment :

Note: Pré-requis : Connaissances de base des types.

Bien que PHP soit un langage sans typage fort, une connaissance de base des types est essentielle, car ils ont quand même des sens importants.

Les définitions de fonctions vous indiquent quel type de données est retourné. Examinons la fonction strlen() comme exemple :

strlen

(PHP 4, PHP 5)
strlen -- Retourne la taille de la chaîne

Description
int strlen ( string  $string )

Retourne la taille de la chaîne $string.

Explications de la définition de la fonction
Partie Description
strlen Le nom de la fonction.
(PHP 4, PHP 5) strlen() est présente dans toutes les versions de PHP 4, PHP 5 et PHP 6.
int Type de valeur retournée par cette fonction, qui est, en l'occurrence, un entier (i.e. la taille d'une chaîne est mesurée par un nombre).
( string $string ) Le premier (et ici le seul) paramètre à fournir à cette fonction est le paramètre string, qui doit être du type chaîne de caractères.

Nous pourrions réécrire ce prototype avec une version plus générique :

type_retourné   nom_de_la_fonction    ( type_du_paramètre nom_du_paramètre )

Plusieurs fonctions ont besoin de plusieurs paramètres, comme in_array(). Son prototype est le suivant :

bool in_array ( mixed $needle, array $haystack [, bool $strict])

Qu'est ce que cela signifie ? in_array() retourne un booléen TRUE en cas de réussite (le paramètre needle a été trouvé dans le tableau haystack) ou FALSE si une erreur survient (le paramètre needle n'a pas été trouvé dans le tableau haystack). Le premier paramètre s'appelle needle et il peut être de différents types : il porte donc la mention mixed. Le paramètre needle (ce que nous recherchons) peut être une valeur scalaire ( chaîne de caractères, entier, ou float), ou encore un array. haystack (le array, dans lequel nous recherchons) est le second paramètre. Le troisième paramètre, optionnel, strict, est optionnel. Tous les paramètres optionnels sont placés entre [ crochets ]. La manuel indique que le paramètre strict vaut par défaut FALSE. Reportez-vous au manuel de chaque fonction pour savoir comment elle fonctionne.

Il y'a aussi des fonctions avec des informations plus complexes concernant les versions de PHP. Prenons html_entity_decode() comme exemple :

(PHP 4 >= 4.3.0, PHP 5)

Cela signifie que cette fonction n'est disponible que depuis PHP 4.3.0.



Versions de PHP documentées dans ce manuel

Ce manuel contient des informations sur les anciennes, actuelles et futures versions de PHP. Les modifications de comportement sont documentées sous la forme de notes, d'historiques de version mais aussi dans les pages du manuel. La version documentée la plus ancienne est la version 4.1.0 tandis que la plus récente est la 5.x.x.

Lorsque la documentation existe pour les dernières versions de développement (non publiés) de PHP, elle sera intitulée "disponible dans SVN" ou "version de developpement." Ces changements sont prévus mais peuvent encore évoluer dans de rares cas.

Tout le développent est dans Subversion (SVN) et peut être récupéré comme décrit dans » accès anonyme SVN. Aussi, ces mêmes sources peuvent être téléchargées dans » PHP snapshots, disponibles pour chaque branche de PHP.

Et par souci de clareté, le manuel fera référence aux versions majeures, mineures et révisions de PHP. Par exemple PHP 5.3.1, le 5 est la version majeure, 3 la mineure, et 1 la révision. Typiquement PHP n'ajoute de nouvelles fonctionnalités que dans les majeures ou mineures, et corrige des bugs dans les révisions. Cependant, cette convention n'est pas toujours vérifiée.

Notez aussi que la manuel concerne PHP présent et non futur, même pour les fonctionnalités documentées et qui ne sont pas encore disponibles. Ainsi le manuel peut perdurer dans le temps et ne requière pas de mises à jours importantes à chaque sortie de PHP.

À plusieurs reprises, le manuel de PHP liste les valeurs par défaut des directives PHP. Ces valeurs sont basées sur le comportement de PHP dans fichier de configuration php.ini, ainsi ceci peut changer des valeurs trouvées dans les fichiers distribués php.ini-development et php.ini-production . Les valeurs indiquées sont aussi celles de la dernière version de PHP, un changelog indique les valeurs précédement employées. Voyez l'appendice sur les directives PHP pour plus de détails sur ces valeurs et leurs évolutions.



Où trouver plus d'informations sur PHP ?

Ce manuel n'a pas pour objectif de fournir des présentations sur les pratiques de programmation. Si vous être un néophyte total, ou même un programmeur débutant, vous pouvez trouver difficile d'apprendre la programmation PHP avec uniquement ce manuel : il serait mieux de trouver des ressources plus orientées vers l'apprentissage.

Il y a un bon nombre de listes de diffusion actives, traitant de tous les aspects du langage et de la programmation PHP. Si vous êtes bloqué par un problème, vous pourrez sûrement trouver de l'aide auprès de ces listes. Il existe un recensement des listes de diffusion sur » la page de support de php.net. De plus, sur » la page des liens de php.net, il y'a une liste de sites web dédiés à PHP, avec des articles, des forums et des bibliothèques de code.



Comment aider à l'amélioration de la documentation ?

Il y a trois façon de participer à l'amélioration de la documentation.

Si vous trouvez des erreurs, dans n'importe quelle traduction de la documentation, utilisez le système de rapport de bogues : » http://bugs.php.net/. Classez le rapport sous la catégorie "Documentation Problem". Vous pouvez aussi poster les problèmes liés aux différents formats du manuel à cet endroit.

Note:

N'abusez pas du système de bogues pour envoyer des demandes d'aide. Utilisez plutôt une des options proposées par le » support.

En contribuant aux notes, vous pouvez fournir de nouveaux exemples, mettre en lumière des effets de bords et apporter des clarifications pour les autres lecteurs. Mais ne prenez pas le système d'annotation pour un système de soumission de bogues. Vous pouvez en savoir plus sur les annotations dans la section 'À propos des notes utilisateurs'

Le manuel PHP est traduit en de nombreux langages. La connaissance de l'anglais ainsi que d'une autre langue peut vous permettre d'aider la documentation de PHP en travaillant avec une équipe de traduction. Pour plus d'informations sur le commencement d'une traduction, ou sur l'aide d'une version déjà traduite, commencez par lire » http://doc.php.net/php/dochowto/.

Le projet de documentation de PHP a un canal IRC où vous pouvez venir et parler avec les auteurs du manuel ou trouver un certain aspect du manuel avec lequel vous pourriez aider. Les coordonnées : #php.doc sur irc.efnet.org.



Comment sont générées les documentations

Ce manuel est écrit en XML, en utilisant la » DTD de DocBook XML, et » PhD (Le moteur [PH]P d'affichage [D]ocBook) pour la maintenance et le formattage.

Grâce au format XML comme source, nous avons la possibilité de générer de nombreux formats tout en ayant une seule source pour tous les formats. Les outils utilisés pour formater le manuel en ligne sont » PhD. Nous utilisons » Microsoft HTML Help Workshop pour générer le format Windows HTML Help du manuel, et, bien sûr, PHP lui-même pour effectuer des conversions et du formattage. Nous utilisons Microsoft HTML Help Workshop pour générer le format Windows HTML Help du manuel, et bien sur, PHP lui-même pour réaliser certaines conversions et formats.

Le manuel PHP est généré en de nombreux langages et formats, lisez » http://www.php.net/docs.php pour plus d'informations. Le code source XML peut être téléchargé depuis le SVN et lu sur » http://svn.php.net/viewvc/. La documentation est stockée dans le module phpdoc.



Traductions

La manuel PHP est disponible non seulement en anglais, mais aussi dans différentes langues. Le texte du manuel est écrit d'abord en anglais, puis des équipes à travers le monde assurent la traduction du manuel dans leur langue natale. Si la traduction d'une section n'est pas encore disponible, le système de création de la documentation présentera alors la version anglaise.

Les contributeurs aux documentations partent des codes sources XML disponibles sur le CVS » http://svn.php.net/viewvc/ puis traduisent dans leur langue. Ils n'utilisent pas les versions générées (comme le HTML ou le texte plein) car c'est le système d'édition qui se charge de faire les conversions du format XML vers un format lisible.

Note:

Si vous voulez aider à la traduction de la documentation, entrez en contact avec l'équipe de documentation en vous inscrivant à la liste de diffusion : » phpdoc-subscribe@lists.php.net. L'adresse de la liste de diffusion est phpdoc@lists.php.net. Indiquez dans le message que vous êtes intéressé par la traduction de la documentation dans une nouvelle langue, et quelqu'un viendra vous aider à démarrer une nouvelle traduction, ou rejoindre l'équipe qui a pris en charge cette traduction.

Actuellement, le manuel est disponible, partiellement ou en totalité, dans 10 langues.

Ils peuvent tous être téléchargés ici : » http://www.php.net/docs.php.




Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.
  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.


Index des fonctions

Index des fonctions

_
__halt_compiler()
A
abs()
acos()
acosh()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_get_modules()
apache_get_version()
apache_getenv()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_reset_timeout()
apache_response_headers()
apache_setenv()
apc_add()
apc_cache_info()
apc_clear_cache()
apc_compile_file()
apc_define_constants()
apc_delete()
apc_fetch()
apc_load_constants()
apc_sma_info()
apc_store()
apd_breakpoint()
apd_callstack()
apd_clunk()
apd_continue()
apd_croak()
apd_dump_function_table()
apd_dump_persistent_resources()
apd_dump_regular_resources()
apd_echo()
apd_get_active_symbols()
apd_set_pprof_trace()
apd_set_session()
apd_set_session_trace()
apd_set_socket_session_trace()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_diff_key()
array_diff_uassoc()
array_diff_ukey()
array_fill()
array_fill_keys()
array_filter()
array_flip()
array_intersect()
array_intersect_assoc()
array_intersect_key()
array_intersect_uassoc()
array_intersect_ukey()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_product()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_uintersect()
array_uintersect_assoc()
array_uintersect_uassoc()
array_unique()
array_unshift()
array_values()
array_walk()
array_walk_recursive()
ArrayIterator::current()
ArrayIterator::key()
ArrayIterator::next()
ArrayIterator::rewind()
ArrayIterator::seek()
ArrayIterator::valid()
ArrayObject::__construct()
ArrayObject::append()
ArrayObject::count()
ArrayObject::getIterator()
ArrayObject::offsetExists()
ArrayObject::offsetGet()
ArrayObject::offsetSet()
ArrayObject::offsetUnset()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()
B
base64_decode()
base64_encode()
base_convert()
basename()
bbcode_add_element()
bbcode_create()
bbcode_destroy()
bbcode_parse()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcompiler_load()
bcompiler_load_exe()
bcompiler_parse_class()
bcompiler_read()
bcompiler_write_class()
bcompiler_write_constant()
bcompiler_write_exe_footer()
bcompiler_write_file()
bcompiler_write_footer()
bcompiler_write_function()
bcompiler_write_functions_from_file()
bcompiler_write_header()
bcompiler_write_included_filename()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()
C
CachingIterator::__toString()
CachingIterator::hasNext()
CachingIterator::next()
CachingIterator::rewind()
CachingIterator::valid()
CachingRecursiveIterator::getChildren()
CachingRecursiveIterator::hasChildren()
cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
class_implements()
class_parents()
classkit_import()
classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_create_guid()
com_event_sink()
com_get()
com_get_active_object()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_message_pump()
com_print_typeinfo()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
configuration()
connection_aborted()
connection_status()
connection_timeout()
constant()
constants()
constants()
constants()
convert_cyr_string()
convert_uudecode()
convert_uuencode()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_copy_handle()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_setopt_array()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cybermut_creerformulairecm()
cybermut_creerreponsecm()
cybermut_testmac()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()
D
date()
date_create()
date_date_set()
date_default_timezone_get()
date_default_timezone_set()
date_format()
date_isodate_set()
date_modify()
date_offset_get()
date_parse()
date_sun_info()
date_sunrise()
date_sunset()
date_time_set()
date_timezone_get()
date_timezone_set()
db2_autocommit()
db2_bind_param()
db2_client_info()
db2_close()
db2_column_privileges()
db2_columns()
db2_commit()
db2_conn_error()
db2_conn_errormsg()
db2_connect()
db2_cursor_type()
db2_escape_string()
db2_exec()
db2_execute()
db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()
db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()
db2_foreign_keys()
db2_free_result()
db2_free_stmt()
db2_get_option()
db2_lob_read()
db2_next_result()
db2_num_fields()
db2_num_rows()
db2_pconnect()
db2_prepare()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_result()
db2_rollback()
db2_server_info()
db2_set_option()
db2_special_columns()
db2_statistics()
db2_stmt_error()
db2_stmt_errormsg()
db2_table_privileges()
db2_tables()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_key_split()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_header_info()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_fetch_row()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debug_zval_dump()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
DirectoryIterator::__construct()
DirectoryIterator::current()
DirectoryIterator::getATime()
DirectoryIterator::getCTime()
DirectoryIterator::getFilename()
DirectoryIterator::getGroup()
DirectoryIterator::getInode()
DirectoryIterator::getMTime()
DirectoryIterator::getOwner()
DirectoryIterator::getPath()
DirectoryIterator::getPathname()
DirectoryIterator::getPerms()
DirectoryIterator::getSize()
DirectoryIterator::getType()
DirectoryIterator::isDir()
DirectoryIterator::isDot()
DirectoryIterator::isExecutable()
DirectoryIterator::isFile()
DirectoryIterator::isLink()
DirectoryIterator::isReadable()
DirectoryIterator::isWritable()
DirectoryIterator::key()
DirectoryIterator::next()
DirectoryIterator::rewind()
DirectoryIterator::valid()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
dom_import_simplexml()
DOMAttr->__construct()
DOMAttr->isId()
DomAttribute->name()
DomAttribute->set_value()
DomAttribute->specified()
DomAttribute->value()
DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()
DOMComment->__construct()
DOMDocument->__construct()
DomDocument->add_root()
DomDocument->create_attribute()
DomDocument->create_cdata_section()
DomDocument->create_comment()
DomDocument->create_element()
DomDocument->create_element_ns()
DomDocument->create_entity_reference()
DomDocument->create_processing_instruction()
DomDocument->create_text_node()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()
DomDocument->doctype()
DomDocument->document_element()
DomDocument->dump_file()
DomDocument->dump_mem()
DomDocument->get_element_by_id()
DomDocument->get_elements_by_tagname()
DOMDocument->getElementById()
DOMDocument->getElementsByTagName()
DOMDocument->getElementsByTagNameNS()
DomDocument->html_dump_mem()
DOMDocument->importNode()
DOMDocument->load()
DOMDocument->loadHTML()
DOMDocument->loadHTMLFile()
DOMDocument->loadXML()
DOMDocument->normalizeDocument()
DOMDocument->registerNodeClass()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()
DOMDocument->save()
DOMDocument->saveHTML()
DOMDocument->saveHTMLFile()
DOMDocument->saveXML()
DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->validate()
DomDocument->xinclude()
DOMDocument->xinclude()
DOMDocumentFragment->appendXML()
DomDocumentType->entities()
DomDocumentType->internal_subset()
DomDocumentType->name()
DomDocumentType->notations()
DomDocumentType->public_id()
DomDocumentType->system_id()
DOMElement->__construct()
DomElement->get_attribute()
DomElement->get_attribute_node()
DomElement->get_elements_by_tagname()
DOMElement->getAttribute()
DOMElement->getAttributeNode()
DOMElement->getAttributeNodeNS()
DOMElement->getAttributeNS()
DOMElement->getElementsByTagName()
DOMElement->getElementsByTagNameNS()
DomElement->has_attribute()
DOMElement->hasAttribute()
DOMElement->hasAttributeNS()
DomElement->remove_attribute()
DOMElement->removeAttribute()
DOMElement->removeAttributeNode()
DOMElement->removeAttributeNS()
DomElement->set_attribute()
DomElement->set_attribute_node()
DOMElement->setAttribute()
DOMElement->setAttributeNode()
DOMElement->setAttributeNodeNS()
DOMElement->setAttributeNS()
DOMElement->setIdAttribute()
DOMElement->setIdAttributeNode()
DOMElement->setIdAttributeNS()
DomElement->tagname()
DOMEntityReference->__construct()
DOMImplementation->__construct()
DOMImplementation->createDocument()
DOMImplementation->createDocumentType()
DOMImplementation->hasFeature()
DOMNamedNodeMap->getNamedItem()
DOMNamedNodeMap->getNamedItemNS()
DOMNamedNodeMap->item()
DomNode->add_namespace()
DomNode->append_child()
DomNode->append_sibling()
DOMNode->appendChild()
DomNode->attributes()
DomNode->child_nodes()
DomNode->clone_node()
DOMNode->cloneNode()
DomNode->dump_node()
DomNode->first_child()
DomNode->get_content()
DomNode->has_attributes()
DomNode->has_child_nodes()
DOMNode->hasAttributes()
DOMNode->hasChildNodes()
DomNode->insert_before()
DOMNode->insertBefore()
DomNode->is_blank_node()
DOMNode->isDefaultNamespace()
DOMNode->isSameNode()
DOMNode->isSupported()
DomNode->last_child()
DOMNode->lookupNamespaceURI()
DOMNode->lookupPrefix()
DomNode->next_sibling()
DomNode->node_name()
DomNode->node_type()
DomNode->node_value()
DOMNode->normalize()
DomNode->owner_document()
DomNode->parent_node()
DomNode->prefix()
DomNode->previous_sibling()
DomNode->remove_child()
DOMNode->removeChild()
DomNode->replace_child()
DomNode->replace_node()
DOMNode->replaceChild()
DomNode->set_content()
DomNode->set_name()
DomNode->set_namespace()
DomNode->unlink_node()
DOMNodelist->item()
DOMProcessingInstruction->__construct()
DomProcessingInstruction->data()
DomProcessingInstruction->target()
DOMText->__construct()
DOMText->isWhitespaceInElementContent()
DOMText->splitText()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
domxml_xslt_version()
DOMXPath->__construct()
DOMXPath->evaluate()
DOMXPath->query()
DOMXPath->registerNamespace()
DomXsltStylesheet->process()
DomXsltStylesheet->result_dump_file()
DomXsltStylesheet->result_dump_mem()
dotnet()
dotnet_load()
doubleval()
E
each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
enchant_broker_describe()
enchant_broker_dict_exists()
enchant_broker_free()
enchant_broker_free_dict()
enchant_broker_get_error()
enchant_broker_init()
enchant_broker_list_dicts()
enchant_broker_request_dict()
enchant_broker_request_pwl_dict()
enchant_broker_set_ordering()
enchant_dict_add_to_personal()
enchant_dict_add_to_session()
enchant_dict_check()
enchant_dict_describe()
enchant_dict_get_error()
enchant_dict_is_in_session()
enchant_dict_quick_check()
enchant_dict_store_replacement()
enchant_dict_suggest()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_get_last()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
eval()
exec()
exif_imagetype()
exif_read_data()
exif_tagname()
exif_thumbnail()
exit()
exp()
expect_expectl()
expect_popen()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()
F
fam_cancel_monitor()
fam_close()
fam_monitor_collection()
fam_monitor_directory()
fam_monitor_file()
fam_next_event()
fam_open()
fam_pending()
fam_resume_monitor()
fam_suspend_monitor()
fbsql_affected_rows()
fbsql_autocommit()
fbsql_blob_size()
fbsql_change_user()
fbsql_clob_size()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_field()
fbsql_fetch_lengths()
fbsql_fetch_object()
fbsql_fetch_row()
fbsql_field_flags()
fbsql_field_len()
fbsql_field_name()
fbsql_field_seek()
fbsql_field_table()
fbsql_field_type()
fbsql_free_result()
fbsql_get_autostart_info()
fbsql_hostname()
fbsql_insert_id()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_rows_fetched()
fbsql_select_db()
fbsql_set_characterset()
fbsql_set_lob_mode()
fbsql_set_password()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_table_name()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_on_import_javascript()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
filter_has_var()
filter_id()
filter_input()
filter_input_array()
filter_list()
filter_var()
filter_var_array()
FilterIterator::current()
FilterIterator::getInnerIterator()
FilterIterator::key()
FilterIterator::next()
FilterIterator::rewind()
FilterIterator::valid()
finfo->__construct()
finfo_buffer()
finfo_close()
finfo_file()
finfo_open()
finfo_set_flags()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputcsv()
fputs()
fread()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_alloc()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
fwrite()
G
gd_info()
geoip_country_code3_by_name()
geoip_country_code_by_name()
geoip_country_name_by_name()
geoip_database_info()
geoip_db_avail()
geoip_db_filename()
geoip_db_get_all_info()
geoip_id_by_name()
geoip_org_by_name()
geoip_record_by_name()
geoip_region_by_name()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_declared_interfaces()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_headers()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_nextprime()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_strval()
gmp_sub()
gmp_testbit()
gmp_xor()
gmstrftime()
gnupg_adddecryptkey()
gnupg_addencryptkey()
gnupg_addsignkey()
gnupg_cleardecryptkeys()
gnupg_clearencryptkeys()
gnupg_clearsignkeys()
gnupg_decrypt()
gnupg_decryptverify()
gnupg_encrypt()
gnupg_encryptsign()
gnupg_export()
gnupg_geterror()
gnupg_getprotocol()
gnupg_import()
gnupg_keyinfo()
gnupg_setarmor()
gnupg_seterrormode()
gnupg_setsignmode()
gnupg_sign()
gnupg_verify()
gopher_parsedir()
gregoriantojd()
gzclose()
gzcompress()
gzdecode()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()
H
haruannotation()
HaruAnnotation::setBorderStyle()
HaruAnnotation::setHighlightMode()
HaruAnnotation::setIcon()
HaruAnnotation::setOpened()
harudestination()
HaruDestination::setFit()
HaruDestination::setFitB()
HaruDestination::setFitBH()
HaruDestination::setFitBV()
HaruDestination::setFitH()
HaruDestination::setFitR()
HaruDestination::setFitV()
HaruDestination::setXYZ()
harudoc()
HaruDoc::__construct()
HaruDoc::addPage()
HaruDoc::addPageLabel()
HaruDoc::createOutline()
HaruDoc::getCurrentEncoder()
HaruDoc::getCurrentPage()
HaruDoc::getEncoder()
HaruDoc::getFont()
HaruDoc::getInfoAttr()
HaruDoc::getPageLayout()
HaruDoc::getPageMode()
HaruDoc::getStreamSize()
HaruDoc::insertPage()
HaruDoc::loadJPEG()
HaruDoc::loadPNG()
HaruDoc::loadRaw()
HaruDoc::loadTTC()
HaruDoc::loadTTF()
HaruDoc::loadType1()
HaruDoc::output()
HaruDoc::readFromStream()
HaruDoc::resetError()
HaruDoc::resetStream()
HaruDoc::save()
HaruDoc::saveToStream()
HaruDoc::setCompressionMode()
HaruDoc::setCurrentEncoder()
HaruDoc::setEncryptionMode()
HaruDoc::setInfoAttr()
HaruDoc::setInfoDateAttr()
HaruDoc::setOpenAction()
HaruDoc::setPageLayout()
HaruDoc::setPageMode()
HaruDoc::setPagesConfiguration()
HaruDoc::setPassword()
HaruDoc::setPermission()
HaruDoc::useCNSEncodings()
HaruDoc::useCNSFonts()
HaruDoc::useCNTEncodings()
HaruDoc::useCNTFonts()
HaruDoc::useJPEncodings()
HaruDoc::useJPFonts()
HaruDoc::useKREncodings()
HaruDoc::useKRFonts()
haruencoder()
HaruEncoder::getByteType()
HaruEncoder::getType()
HaruEncoder::getUnicode()
HaruEncoder::getWritingMode()
haruexception()
harufont()
HaruFont::getAscent()
HaruFont::getCapHeight()
HaruFont::getDescent()
HaruFont::getEncodingName()
HaruFont::getFontName()
HaruFont::getTextWidth()
HaruFont::getUnicodeWidth()
HaruFont::getXHeight()
HaruFont::measureText()
haruimage()
HaruImage::getBitsPerComponent()
HaruImage::getColorSpace()
HaruImage::getHeight()
HaruImage::getSize()
HaruImage::getWidth()
HaruImage::setColorMask()
HaruImage::setMaskImage()
haruoutline()
HaruOutline::setDestination()
HaruOutline::setOpened()
harupage()
HaruPage::arc()
HaruPage::beginText()
HaruPage::circle()
HaruPage::closePath()
HaruPage::concat()
HaruPage::createDestination()
HaruPage::createLinkAnnotation()
HaruPage::createTextAnnotation()
HaruPage::createURLAnnotation()
HaruPage::curveTo()
HaruPage::curveTo2()
HaruPage::curveTo3()
HaruPage::drawImage()
HaruPage::ellipse()
HaruPage::endPath()
HaruPage::endText()
HaruPage::eofill()
HaruPage::eoFillStroke()
HaruPage::fill()
HaruPage::fillStroke()
HaruPage::getCharSpace()
HaruPage::getCMYKFill()
HaruPage::getCMYKStroke()
HaruPage::getCurrentFont()
HaruPage::getCurrentFontSize()
HaruPage::getCurrentPos()
HaruPage::getCurrentTextPos()
HaruPage::getDash()
HaruPage::getFillingColorSpace()
HaruPage::getFlatness()
HaruPage::getGMode()
HaruPage::getGrayFill()
HaruPage::getGrayStroke()
HaruPage::getHeight()
HaruPage::getHorizontalScaling()
HaruPage::getLineCap()
HaruPage::getLineJoin()
HaruPage::getLineWidth()
HaruPage::getMiterLimit()
HaruPage::getRGBFill()
HaruPage::getRGBStroke()
HaruPage::getStrokingColorSpace()
HaruPage::getTextLeading()
HaruPage::getTextMatrix()
HaruPage::getTextRenderingMode()
HaruPage::getTextRise()
HaruPage::getTextWidth()
HaruPage::getTransMatrix()
HaruPage::getWidth()
HaruPage::getWordSpace()
HaruPage::lineTo()
HaruPage::measureText()
HaruPage::moveTextPos()
HaruPage::moveTo()
HaruPage::moveToNextLine()
HaruPage::rectangle()
HaruPage::setCharSpace()
HaruPage::setCMYKFill()
HaruPage::setCMYKStroke()
HaruPage::setDash()
HaruPage::setFlatness()
HaruPage::setFontAndSize()
HaruPage::setGrayFill()
HaruPage::setGrayStroke()
HaruPage::setHeight()
HaruPage::setHorizontalScaling()
HaruPage::setLineCap()
HaruPage::setLineJoin()
HaruPage::setLineWidth()
HaruPage::setMiterLimit()
HaruPage::setRGBFill()
HaruPage::setRGBStroke()
HaruPage::setRotate()
HaruPage::setSize()
HaruPage::setSlideShow()
HaruPage::setTextLeading()
HaruPage::setTextMatrix()
HaruPage::setTextRenderingMode()
HaruPage::setTextRise()
HaruPage::setWidth()
HaruPage::setWordSpace()
HaruPage::showText()
HaruPage::showTextNextLine()
HaruPage::stroke()
HaruPage::textOut()
HaruPage::textRect()
hash()
hash_algos()
hash_file()
hash_final()
hash_hmac()
hash_hmac_file()
hash_init()
hash_update()
hash_update_file()
hash_update_stream()
header()
headers_list()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_string()
html_entity_decode()
htmlentities()
htmlspecialchars()
htmlspecialchars_decode()
http_build_cookie()
http_build_query()
http_build_str()
http_build_url()
http_cache_etag()
http_cache_last_modified()
http_chunked_decode()
http_date()
http_deflate()
http_get()
http_get_request_body()
http_get_request_body_stream()
http_get_request_headers()
http_head()
http_inflate()
http_match_etag()
http_match_modified()
http_match_request_header()
http_negotiate_charset()
http_negotiate_content_type()
http_negotiate_language()
http_parse_cookie()
http_parse_headers()
http_parse_message()
http_parse_params()
http_persistent_handles_clean()
http_persistent_handles_count()
http_persistent_handles_ident()
http_post_data()
http_post_fields()
http_put_data()
http_put_file()
http_put_stream()
http_redirect()
http_request()
http_request_body_encode()
http_request_method_exists()
http_request_method_name()
http_request_method_register()
http_request_method_unregister()
http_send_content_disposition()
http_send_content_type()
http_send_data()
http_send_file()
http_send_last_modified()
http_send_status()
http_send_stream()
http_support()
http_throttle()
httpdeflatestream()
HttpDeflateStream::__construct()
HttpDeflateStream::factory()
HttpDeflateStream::finish()
HttpDeflateStream::flush()
HttpDeflateStream::update()
httpinflatestream()
HttpInflateStream::__construct()
HttpInflateStream::factory()
HttpInflateStream::finish()
HttpInflateStream::flush()
HttpInflateStream::update()
httpmessage()
HttpMessage::__construct()
HttpMessage::addHeaders()
HttpMessage::detach()
HttpMessage::factory()
HttpMessage::fromEnv()
HttpMessage::fromString()
HttpMessage::getBody()
HttpMessage::getHeader()
HttpMessage::getHeaders()
HttpMessage::getHttpVersion()
HttpMessage::getParentMessage()
HttpMessage::getRequestMethod()
HttpMessage::getRequestUrl()
HttpMessage::getResponseCode()
HttpMessage::getResponseStatus()
HttpMessage::getType()
HttpMessage::guessContentType()
HttpMessage::prepend()
HttpMessage::reverse()
HttpMessage::send()
HttpMessage::setBody()
HttpMessage::setHeaders()
HttpMessage::setHttpVersion()
HttpMessage::setRequestMethod()
HttpMessage::setRequestUrl()
HttpMessage::setResponseCode()
HttpMessage::setResponseStatus()
HttpMessage::setType()
HttpMessage::toMessageTypeObject()
HttpMessage::toString()
httpquerystring()
HttpQueryString::__construct()
HttpQueryString::get()
HttpQueryString::mod()
HttpQueryString::set()
HttpQueryString::singleton()
HttpQueryString::toArray()
HttpQueryString::toString()
HttpQueryString::xlate()
httprequest()
HttpRequest::__construct()
HttpRequest::addCookies()
HttpRequest::addHeaders()
HttpRequest::addPostFields()
HttpRequest::addPostFile()
HttpRequest::addPutData()
HttpRequest::addQueryData()
HttpRequest::addRawPostData()
HttpRequest::addSslOptions()
HttpRequest::clearHistory()
HttpRequest::enableCookies()
HttpRequest::getContentType()
HttpRequest::getCookies()
HttpRequest::getHeaders()
HttpRequest::getHistory()
HttpRequest::getMethod()
HttpRequest::getOptions()
HttpRequest::getPostFields()
HttpRequest::getPostFiles()
HttpRequest::getPutData()
HttpRequest::getPutFile()
HttpRequest::getQueryData()
HttpRequest::getRawPostData()
HttpRequest::getRawRequestMessage()
HttpRequest::getRawResponseMessage()
HttpRequest::getRequestMessage()
HttpRequest::getResponseBody()
HttpRequest::getResponseCode()
HttpRequest::getResponseCookies()
HttpRequest::getResponseData()
HttpRequest::getResponseHeader()
HttpRequest::getResponseInfo()
HttpRequest::getResponseMessage()
HttpRequest::getResponseStatus()
HttpRequest::getSslOptions()
HttpRequest::getUrl()
HttpRequest::resetCookies()
HttpRequest::send()
HttpRequest::setContentType()
HttpRequest::setCookies()
HttpRequest::setHeaders()
HttpRequest::setMethod()
HttpRequest::setOptions()
HttpRequest::setPostFields()
HttpRequest::setPostFiles()
HttpRequest::setPutData()
HttpRequest::setPutFile()
HttpRequest::setQueryData()
HttpRequest::setRawPostData()
HttpRequest::setSslOptions()
HttpRequest::setUrl()
httprequestpool()
HttpRequestPool::__construct()
HttpRequestPool::__destruct()
HttpRequestPool::attach()
HttpRequestPool::detach()
HttpRequestPool::getAttachedRequests()
HttpRequestPool::getFinishedRequests()
HttpRequestPool::reset()
HttpRequestPool::send()
HttpRequestPool::socketPerform()
HttpRequestPool::socketSelect()
httpresponse()
HttpResponse::capture()
HttpResponse::getBufferSize()
HttpResponse::getCache()
HttpResponse::getCacheControl()
HttpResponse::getContentDisposition()
HttpResponse::getContentType()
HttpResponse::getData()
HttpResponse::getETag()
HttpResponse::getFile()
HttpResponse::getGzip()
HttpResponse::getHeader()
HttpResponse::getLastModified()
HttpResponse::getRequestBody()
HttpResponse::getRequestBodyStream()
HttpResponse::getRequestHeaders()
HttpResponse::getStream()
HttpResponse::getThrottleDelay()
HttpResponse::guessContentType()
HttpResponse::redirect()
HttpResponse::send()
HttpResponse::setBufferSize()
HttpResponse::setCache()
HttpResponse::setCacheControl()
HttpResponse::setContentDisposition()
HttpResponse::setContentType()
HttpResponse::setData()
HttpResponse::setETag()
HttpResponse::setFile()
HttpResponse::setGzip()
HttpResponse::setHeader()
HttpResponse::setLastModified()
HttpResponse::setStream()
HttpResponse::setThrottleDelay()
HttpResponse::status()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchor()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommittedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()
I
ibase_add_user()
ibase_affected_rows()
ibase_backup()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_commit_ret()
ibase_connect()
ibase_db_info()
ibase_delete_user()
ibase_drop_db()
ibase_errcode()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_event_handler()
ibase_free_query()
ibase_free_result()
ibase_gen_id()
ibase_maintain_db()
ibase_modify_user()
ibase_name_result()
ibase_num_fields()
ibase_num_params()
ibase_param_info()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_restore()
ibase_rollback()
ibase_rollback_ret()
ibase_server_info()
ibase_service_attach()
ibase_service_detach()
ibase_set_event_handler()
ibase_timefmt()
ibase_trans()
ibase_wait_event()
iconv()
iconv_get_encoding()
iconv_mime_decode()
iconv_mime_decode_headers()
iconv_mime_encode()
iconv_set_encoding()
iconv_strlen()
iconv_strpos()
iconv_strrpos()
iconv_substr()
id3_get_frame_long_name()
id3_get_frame_short_name()
id3_get_genre_id()
id3_get_genre_list()
id3_get_genre_name()
id3_get_tag()
id3_get_version()
id3_remove_tag()
id3_set_tag()
idate()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
iis_add_server()
iis_get_dir_security()
iis_get_script_map()
iis_get_server_by_comment()
iis_get_server_by_path()
iis_get_server_rights()
iis_get_service_state()
iis_remove_server()
iis_set_app_settings()
iis_set_dir_security()
iis_set_script_map()
iis_set_server_rights()
iis_start_server()
iis_start_service()
iis_stop_server()
iis_stop_service()
image2wbmp()
image_type_to_extension()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imageconvolution()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefilter()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imagegrabscreen()
imagegrabwindow()
imageinterlace()
imageistruecolor()
imagejpeg()
imagelayereffect()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imagexbm()
imagick()
Imagick::__construct()
Imagick::adaptiveBlurImage()
Imagick::adaptiveResizeImage()
Imagick::adaptiveSharpenImage()
Imagick::adaptiveThresholdImage()
Imagick::addImage()
Imagick::addNoiseImage()
Imagick::affineTransformImage()
Imagick::annotateImage()
Imagick::appendImages()
Imagick::averageImages()
Imagick::blackThresholdImage()
Imagick::blurImage()
Imagick::borderImage()
Imagick::charcoalImage()
Imagick::chopImage()
Imagick::clear()
Imagick::clipImage()
Imagick::clipPathImage()
Imagick::clone()
Imagick::coalesceImages()
Imagick::colorFloodfillImage()
Imagick::colorizeImage()
Imagick::combineImages()
Imagick::commentImage()
Imagick::compareImageChannels()
Imagick::compareImageLayers()
Imagick::compositeImage()
Imagick::contrastImage()
Imagick::contrastStretchImage()
Imagick::convolveImage()
Imagick::cropImage()
Imagick::cropThumbnailImage()
Imagick::current()
Imagick::cycleColormapImage()
Imagick::deconstructImages()
Imagick::despeckleImage()
Imagick::destroy()
Imagick::displayImage()
Imagick::displayImages()
Imagick::drawImage()
Imagick::edgeImage()
Imagick::embossImage()
Imagick::enhanceImage()
Imagick::equalizeImage()
Imagick::evaluateImage()
Imagick::flattenImages()
Imagick::flipImage()
Imagick::flopImage()
Imagick::frameImage()
Imagick::fxImage()
Imagick::gammaImage()
Imagick::gaussianBlurImage()
Imagick::getCompression()
Imagick::getCompressionQuality()
Imagick::getCopyright()
Imagick::getFilename()
Imagick::getFormat()
Imagick::getHomeURL()
Imagick::getImage()
Imagick::getImageBackgroundColor()
Imagick::getImageBlob()
Imagick::getImageBluePrimary()
Imagick::getImageBorderColor()
Imagick::getImageChannelDepth()
Imagick::getImageChannelDistortion()
Imagick::getImageChannelExtrema()
Imagick::getImageChannelMean()
Imagick::getImageChannelStatistics()
Imagick::getImageColormapColor()
Imagick::getImageColors()
Imagick::getImageColorspace()
Imagick::getImageCompose()
Imagick::getImageDelay()
Imagick::getImageDepth()
Imagick::getImageDispose()
Imagick::getImageDistortion()
Imagick::getImageExtrema()
Imagick::getImageFilename()
Imagick::getImageFormat()
Imagick::getImageGamma()
Imagick::getImageGeometry()
Imagick::getImageGreenPrimary()
Imagick::getImageHeight()
Imagick::getImageHistogram()
Imagick::getImageIndex()
Imagick::getImageInterlaceScheme()
Imagick::getImageInterpolateMethod()
Imagick::getImageIterations()
Imagick::getImageMatte()
Imagick::getImageMatteColor()
Imagick::getImagePage()
Imagick::getImagePixelColor()
Imagick::getImageProfile()
Imagick::getImageProperty()
Imagick::getImageRedPrimary()
Imagick::getImageRegion()
Imagick::getImageRenderingIntent()
Imagick::getImageResolution()
Imagick::getImageScene()
Imagick::getImageSignature()
Imagick::getImageSize()
Imagick::getImageTicksPerSecond()
Imagick::getImageTotalInkDensity()
Imagick::getImageType()
Imagick::getImageUnits()
Imagick::getImageVirtualPixelMethod()
Imagick::getImageWhitePoint()
Imagick::getImageWidth()
Imagick::getInterlaceScheme()
Imagick::getNumberImages()
Imagick::getOption()
Imagick::getPackageName()
Imagick::getPage()
Imagick::getPixelIterator()
Imagick::getPixelRegionIterator()
Imagick::getQuantumDepth()
Imagick::getQuantumRange()
Imagick::getReleaseDate()
Imagick::getResource()
Imagick::getResourceLimit()
Imagick::getSamplingFactors()
Imagick::getSize()
Imagick::getSizeOffset()
Imagick::getVersion()
Imagick::hasNextImage()
Imagick::hasPreviousImage()
Imagick::identifyImage()
Imagick::implodeImage()
Imagick::labelImage()
Imagick::levelImage()
Imagick::linearStretchImage()
Imagick::magnifyImage()
Imagick::matteFloodfillImage()
Imagick::medianFilterImage()
Imagick::minifyImage()
Imagick::modulateImage()
Imagick::montageImage()
Imagick::morphImages()
Imagick::mosaicImages()
Imagick::motionBlurImage()
Imagick::negateImage()
Imagick::newImage()
Imagick::newPseudoImage()
Imagick::nextImage()
Imagick::normalizeImage()
Imagick::oilPaintImage()
Imagick::optimizeImageLayers()
Imagick::paintOpaqueImage()
Imagick::paintTransparentImage()
Imagick::pingImage()
Imagick::pingImageBlob()
Imagick::pingImageFile()
Imagick::polaroidImage()
Imagick::posterizeImage()
Imagick::previousImage()
Imagick::profileImage()
Imagick::queryFontMetrics()
Imagick::queryFonts()
Imagick::queryFormats()
Imagick::radialBlurImage()
Imagick::raiseImage()
Imagick::randomThresholdImage()
Imagick::readImage()
Imagick::readImageBlob()
Imagick::readImageFile()
Imagick::reduceNoiseImage()
Imagick::removeImage()
Imagick::removeImageProfile()
Imagick::render()
Imagick::resampleImage()
Imagick::resizeImage()
Imagick::rollImage()
Imagick::rotateImage()
Imagick::roundCorners()
Imagick::sampleImage()
Imagick::scaleImage()
Imagick::separateImageChannel()
Imagick::sepiaToneImage()
Imagick::setBackgroundColor()
Imagick::setCompression()
Imagick::setCompressionQuality()
Imagick::setFilename()
Imagick::setFirstIterator()
Imagick::setFormat()
Imagick::setImageBackgroundColor()
Imagick::setImageBias()
Imagick::setImageBluePrimary()
Imagick::setImageBorderColor()
Imagick::setImageChannelDepth()
Imagick::setImageColormapColor()
Imagick::setImageColorspace()
Imagick::setImageCompose()
Imagick::setImageCompression()
Imagick::setImageDelay()
Imagick::setImageDepth()
Imagick::setImageDispose()
Imagick::setImageExtent()
Imagick::setImageFilename()
Imagick::setImageFormat()
Imagick::setImageGamma()
Imagick::setImageGreenPrimary()
Imagick::setImageIndex()
Imagick::setImageInterlaceScheme()
Imagick::setImageInterpolateMethod()
Imagick::setImageIterations()
Imagick::setImageMatte()
Imagick::setImageMatteColor()
Imagick::setImagePage()
Imagick::setImageProfile()
Imagick::setImageProperty()
Imagick::setImageRedPrimary()
Imagick::setImageRenderingIntent()
Imagick::setImageResolution()
Imagick::setImageScene()
Imagick::setImageTicksPerSecond()
Imagick::setImageType()
Imagick::setImageUnits()
Imagick::setImageVirtualPixelMethod()
Imagick::setImageWhitePoint()
Imagick::setInterlaceScheme()
Imagick::setOption()
Imagick::setPage()
Imagick::setResolution()
Imagick::setResourceLimit()
Imagick::setSamplingFactors()
Imagick::setSize()
Imagick::setSizeOffset()
Imagick::setType()
Imagick::shadeImage()
Imagick::shadowImage()
Imagick::sharpenImage()
Imagick::shaveImage()
Imagick::shearImage()
Imagick::sigmoidalContrastImage()
Imagick::sketchImage()
Imagick::solarizeImage()
Imagick::spliceImage()
Imagick::spreadImage()
Imagick::steganoImage()
Imagick::stereoImage()
Imagick::stripImage()
Imagick::swirlImage()
Imagick::textureImage()
Imagick::thresholdImage()
Imagick::thumbnailImage()
Imagick::tintImage()
Imagick::transverseImage()
Imagick::trimImage()
Imagick::uniqueImageColors()
Imagick::unsharpMaskImage()
Imagick::valid()
Imagick::vignetteImage()
Imagick::waveImage()
Imagick::whiteThresholdImage()
Imagick::writeImage()
Imagick::writeImages()
ImagickDraw::__construct()
ImagickDraw::affine()
ImagickDraw::annotation()
ImagickDraw::arc()
ImagickDraw::bezier()
ImagickDraw::circle()
ImagickDraw::clear()
ImagickDraw::clone()
ImagickDraw::color()
ImagickDraw::comment()
ImagickDraw::composite()
ImagickDraw::destroy()
ImagickDraw::ellipse()
ImagickDraw::getClipPath()
ImagickDraw::getClipRule()
ImagickDraw::getClipUnits()
ImagickDraw::getFillColor()
ImagickDraw::getFillOpacity()
ImagickDraw::getFillRule()
ImagickDraw::getFont()
ImagickDraw::getFontFamily()
ImagickDraw::getFontSize()
ImagickDraw::getFontStyle()
ImagickDraw::getFontWeight()
ImagickDraw::getGravity()
ImagickDraw::getStrokeAntialias()
ImagickDraw::getStrokeColor()
ImagickDraw::getStrokeDashArray()
ImagickDraw::getStrokeDashOffset()
ImagickDraw::getStrokeLineCap()
ImagickDraw::getStrokeLineJoin()
ImagickDraw::getStrokeMiterLimit()
ImagickDraw::getStrokeOpacity()
ImagickDraw::getStrokeWidth()
ImagickDraw::getTextAlignment()
ImagickDraw::getTextAntialias()
ImagickDraw::getTextDecoration()
ImagickDraw::getTextEncoding()
ImagickDraw::getTextUnderColor()
ImagickDraw::getVectorGraphics()
ImagickDraw::line()
ImagickDraw::matte()
ImagickDraw::pathClose()
ImagickDraw::pathCurveToAbsolute()
ImagickDraw::pathCurveToQuadraticBezierAbsolute()
ImagickDraw::pathCurveToQuadraticBezierRelative()
ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute()
ImagickDraw::pathCurveToQuadraticBezierSmoothRelative()
ImagickDraw::pathCurveToRelative()
ImagickDraw::pathCurveToSmoothAbsolute()
ImagickDraw::pathCurveToSmoothRelative()
ImagickDraw::pathEllipticArcAbsolute()
ImagickDraw::pathEllipticArcRelative()
ImagickDraw::pathFinish()
ImagickDraw::pathLineToAbsolute()
ImagickDraw::pathLineToHorizontalAbsolute()
ImagickDraw::pathLineToHorizontalRelative()
ImagickDraw::pathLineToRelative()
ImagickDraw::pathLineToVerticalAbsolute()
ImagickDraw::pathLineToVerticalRelative()
ImagickDraw::pathMoveToAbsolute()
ImagickDraw::pathMoveToRelative()
ImagickDraw::pathStart()
ImagickDraw::point()
ImagickDraw::polygon()
ImagickDraw::polyline()
ImagickDraw::pop()
ImagickDraw::popClipPath()
ImagickDraw::popDefs()
ImagickDraw::popPattern()
ImagickDraw::push()
ImagickDraw::pushClipPath()
ImagickDraw::pushDefs()
ImagickDraw::pushPattern()
ImagickDraw::rectangle()
ImagickDraw::render()
ImagickDraw::rotate()
ImagickDraw::roundRectangle()
ImagickDraw::scale()
ImagickDraw::setClipPath()
ImagickDraw::setClipRule()
ImagickDraw::setClipUnits()
ImagickDraw::setFillAlpha()
ImagickDraw::setFillColor()
ImagickDraw::setFillOpacity()
ImagickDraw::setFillPatternURL()
ImagickDraw::setFillRule()
ImagickDraw::setFont()
ImagickDraw::setFontFamily()
ImagickDraw::setFontSize()
ImagickDraw::setFontStretch()
ImagickDraw::setFontStyle()
ImagickDraw::setFontWeight()
ImagickDraw::setGravity()
ImagickDraw::setStrokeAlpha()
ImagickDraw::setStrokeAntialias()
ImagickDraw::setStrokeColor()
ImagickDraw::setStrokeDashArray()
ImagickDraw::setStrokeDashOffset()
ImagickDraw::setStrokeLineCap()
ImagickDraw::setStrokeLineJoin()
ImagickDraw::setStrokeMiterLimit()
ImagickDraw::setStrokeOpacity()
ImagickDraw::setStrokePatternURL()
ImagickDraw::setStrokeWidth()
ImagickDraw::setTextAlignment()
ImagickDraw::setTextAntialias()
ImagickDraw::setTextDecoration()
ImagickDraw::setTextEncoding()
ImagickDraw::setTextUnderColor()
ImagickDraw::setVectorGraphics()
ImagickDraw::setViewbox()
ImagickDraw::skewX()
ImagickDraw::skewY()
ImagickDraw::translate()
ImagickPixel::__construct()
ImagickPixel::clear()
ImagickPixel::destroy()
ImagickPixel::getColor()
ImagickPixel::getColorCount()
ImagickPixel::getColorValue()
ImagickPixel::getHSL()
ImagickPixel::isSimilar()
ImagickPixel::setColor()
ImagickPixel::setColorValue()
ImagickPixel::setHSL()
ImagickPixelIterator::__construct()
ImagickPixelIterator::clear()
ImagickPixelIterator::destroy()
ImagickPixelIterator::getCurrentIteratorRow()
ImagickPixelIterator::getIteratorRow()
ImagickPixelIterator::getNextIteratorRow()
ImagickPixelIterator::getPreviousIteratorRow()
ImagickPixelIterator::newPixelIterator()
ImagickPixelIterator::newPixelRegionIterator()
ImagickPixelIterator::resetIterator()
ImagickPixelIterator::setIteratorFirstRow()
ImagickPixelIterator::setIteratorLastRow()
ImagickPixelIterator::setIteratorRow()
ImagickPixelIterator::syncIterator()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getacl()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_savebody()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_timeout()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
inet_ntop()
inet_pton()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
ingres_cursor()
ingres_errno()
ingres_error()
ingres_errsqlstate()
ingres_fetch_array()
ingres_fetch_object()
ingres_fetch_row()
ingres_field_length()
ingres_field_name()
ingres_field_nullable()
ingres_field_precision()
ingres_field_scale()
ingres_field_type()
ingres_num_fields()
ingres_num_rows()
ingres_pconnect()
ingres_query()
ingres_rollback()
ini_alter()
ini_get()
ini_get_all()
ini_restore()
ini_set()
installation()
installation()
interface_exists()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_eval_ecmascript_params()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_invite()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_list()
ircg_lookup_format_messages()
ircg_lusers()
ircg_msg()
ircg_names()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_oper()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_who()
ircg_whois()
is_a()
is_array()
is_binary()
is_bool()
is_buffer()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_soap_fault()
is_string()
is_subclass_of()
is_unicode()
is_uploaded_file()
is_writable()
is_writeable()
isset()
iterator_count()
iterator_to_array()
J
java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
json_decode()
json_encode()
juliantojd()
K
kadm5_chpass_principal()
kadm5_create_principal()
kadm5_delete_principal()
kadm5_destroy()
kadm5_flush()
kadm5_get_policies()
kadm5_get_principal()
kadm5_get_principals()
kadm5_init_with_password()
kadm5_modify_principal()
key()
krsort()
ksort()
L
lcfirst()
lcg_value()
lchgrp()
lchown()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_sasl_bind()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
libxml_clear_errors()
libxml_get_errors()
libxml_get_last_error()
libxml_set_streams_context()
libxml_use_internal_errors()
LimitIterator::getPosition()
LimitIterator::next()
LimitIterator::rewind()
LimitIterator::seek()
LimitIterator::valid()
link()
linkinfo()
list()
locale_get_default()
locale_set_default()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()
lzf_compress()
lzf_decompress()
lzf_optimized_for()
M
m_checkstatus()
m_completeauthorizations()
m_connect()
m_connectionerror()
m_deletetrans()
m_destroyconn()
m_destroyengine()
m_getcell()
m_getcellbynum()
m_getcommadelimited()
m_getheader()
m_initconn()
m_initengine()
m_iscommadelimited()
m_maxconntimeout()
m_monitor()
m_numcolumns()
m_numrows()
m_parsecommadelimited()
m_responsekeys()
m_responseparam()
m_returnstatus()
m_setblocking()
m_setdropfile()
m_setip()
m_setssl()
m_setssl_cafile()
m_setssl_files()
m_settimeout()
m_sslcert_gen_hash()
m_transactionssent()
m_transinqueue()
m_transkeyval()
m_transnew()
m_transsend()
m_uwait()
m_validateidentifier()
m_verifyconnection()
m_verifysslcert()
mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_extract_whole_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
maxdb()
maxdb->affected_rows()
maxdb->auto_commit()
maxdb->change_user()
maxdb->character_set_name()
maxdb->close()
maxdb->close_long_data()
maxdb->commit()
maxdb->disable_reads_from_master()
maxdb->errno()
maxdb->fetch_assoc()
maxdb->field_count()
maxdb->get_host_info()
maxdb->info()
maxdb->insert_id()
maxdb->kill()
maxdb->more_results()
maxdb->multi_query()
maxdb->next_result()
maxdb->options()
maxdb->ping()
maxdb->prepare()
maxdb->protocol_version()
maxdb->query()
maxdb->real_connect()
maxdb->real_escape_string()
maxdb->real_query()
maxdb->rollback()
maxdb->rpl_query_type()
maxdb->select_db()
maxdb->send_query()
maxdb->server_info()
maxdb->sqlstate()
maxdb->ssl_set()
maxdb->stat()
maxdb->stmt_init()
maxdb->store_result()
maxdb->store_result()
maxdb->thread_id()
maxdb->use_result()
maxdb->warning_count()
maxdb_affected_rows()
maxdb_autocommit()
maxdb_bind_param()
maxdb_bind_result()
maxdb_change_user()
maxdb_character_set_name()
maxdb_client_encoding()
maxdb_close()
maxdb_close_long_data()
maxdb_commit()
maxdb_connect()
maxdb_connect_errno()
maxdb_connect_error()
maxdb_data_seek()
maxdb_debug()
maxdb_disable_reads_from_master()
maxdb_disable_rpl_parse()
maxdb_dump_debug_info()
maxdb_embedded_connect()
maxdb_enable_reads_from_master()
maxdb_enable_rpl_parse()
maxdb_errno()
maxdb_error()
maxdb_escape_string()
maxdb_execute()
maxdb_fetch()
maxdb_fetch_array()
maxdb_fetch_assoc()
maxdb_fetch_field()
maxdb_fetch_field_direct()
maxdb_fetch_fields()
maxdb_fetch_lengths()
maxdb_fetch_object()
maxdb_fetch_row()
maxdb_field_count()
maxdb_field_seek()
maxdb_field_tell()
maxdb_free_result()
maxdb_get_client_info()
maxdb_get_client_version()
maxdb_get_host_info()
maxdb_get_metadata()
maxdb_get_proto_info()
maxdb_get_server_info()
maxdb_get_server_version()
maxdb_info()
maxdb_init()
maxdb_insert_id()
maxdb_kill()
maxdb_master_query()
maxdb_more_results()
maxdb_multi_query()
maxdb_next_result()
maxdb_num_fields()
maxdb_num_rows()
maxdb_options()
maxdb_param_count()
maxdb_ping()
maxdb_prepare()
maxdb_query()
maxdb_real_connect()
maxdb_real_escape_string()
maxdb_real_query()
maxdb_report()
maxdb_rollback()
maxdb_rpl_parse_enabled()
maxdb_rpl_probe()
maxdb_rpl_query_type()
maxdb_select_db()
maxdb_send_long_data()
maxdb_send_query()
maxdb_server_end()
maxdb_server_init()
maxdb_set_opt()
maxdb_sqlstate()
maxdb_ssl_set()
maxdb_stat()
maxdb_stmt->affected_rows()
maxdb_stmt->close()
maxdb_stmt->errno()
maxdb_stmt->error()
maxdb_stmt_affected_rows()
maxdb_stmt_bind_param()
maxdb_stmt_bind_result()
maxdb_stmt_close()
maxdb_stmt_close_long_data()
maxdb_stmt_data_seek()
maxdb_stmt_errno()
maxdb_stmt_error()
maxdb_stmt_execute()
maxdb_stmt_fetch()
maxdb_stmt_free_result()
maxdb_stmt_init()
maxdb_stmt_num_rows()
maxdb_stmt_param_count()
maxdb_stmt_prepare()
maxdb_stmt_reset()
maxdb_stmt_result_metadata()
maxdb_stmt_send_long_data()
maxdb_stmt_sqlstate()
maxdb_stmt_store_result()
maxdb_store_result()
maxdb_thread_id()
maxdb_thread_safe()
maxdb_use_result()
maxdb_warning_count()
mb_check_encoding()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_stripos()
mb_stristr()
mb_strlen()
mb_strpos()
mb_strrchr()
mb_strrichr()
mb_strripos()
mb_strrpos()
mb_strstr()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_alarm()
mcal_event_set_category()
mcal_event_set_class()
mcal_event_set_description()
mcal_event_set_end()
mcal_event_set_recur_daily()
mcal_event_set_recur_monthly_mday()
mcal_event_set_recur_monthly_wday()
mcal_event_set_recur_none()
mcal_event_set_recur_weekly()
mcal_event_set_recur_yearly()
mcal_event_set_start()
mcal_event_set_title()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
md5()
md5_file()
mdecrypt_generic()
Memcache::add()
Memcache::addServer()
Memcache::close()
Memcache::connect()
Memcache::decrement()
Memcache::delete()
Memcache::flush()
Memcache::get()
Memcache::getExtendedStats()
Memcache::getServerStatus()
Memcache::getStats()
Memcache::getVersion()
Memcache::increment()
Memcache::pconnect()
Memcache::replace()
Memcache::set()
Memcache::setCompressThreshold()
Memcache::setServerParams()
memcache_debug()
memory_get_peak_usage()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_keypress()
ming_setcubicthreshold()
ming_setscale()
ming_setswfcompression()
ming_useconstants()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_get_data()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_set_data()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_db_query()
msql_dbname()
msql_drop_db()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_flags()
msql_field_len()
msql_field_name()
msql_field_seek()
msql_field_table()
msql_field_type()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_set_charset()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli->__construct()
mysqli->affected_rows()
mysqli->autocommit()
mysqli->change_user()
mysqli->character_set_name()
mysqli->close()
mysqli->commit()
mysqli->debug()
mysqli->disable_reads_from_master()
mysqli->dump_debug_info()
mysqli->errno()
mysqli->fetch_assoc()
mysqli->field_count()
mysqli->host_info()
mysqli->info()
mysqli->insert_id()
mysqli->kill()
mysqli->more_results()
mysqli->multi_query()
mysqli->next_result()
mysqli->options()
mysqli->ping()
mysqli->prepare()
mysqli->protocol_version()
mysqli->query()
mysqli->real_connect()
mysqli->real_escape_string()
mysqli->real_query()
mysqli->rollback()
mysqli->rpl_query_type()
mysqli->select_db()
mysqli->send_query()
mysqli->server_info()
mysqli->server_version()
mysqli->set_charset()
mysqli->sqlstate()
mysqli->ssl_set()
mysqli->stat()
mysqli->stmt_init()
mysqli->store_result()
mysqli->thread_id()
mysqli->use_result()
mysqli->warning_count()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_client_encoding()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_connect_errno()
mysqli_connect_error()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_embedded_server_end()
mysqli_embedded_server_start()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_escape_string()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_charset()
mysqli_get_client_info()
mysqli_get_client_version()
mysqli_get_host_info()
mysqli_get_metadata()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_get_warnings()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_more_results()
mysqli_multi_query()
mysqli_next_result()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_query()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_report()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_server_end()
mysqli_server_init()
mysqli_set_charset()
mysqli_set_local_infile_default()
mysqli_set_local_infile_handler()
mysqli_set_opt()
mysqli_slave_query()
mysqli_sqlstate()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt->affected_rows()
mysqli_stmt->close()
mysqli_stmt->errno()
mysqli_stmt->error()
mysqli_stmt->sqlstate()
mysqli_stmt->store_result()
mysqli_stmt_affected_rows()
mysqli_stmt_attr_get()
mysqli_stmt_attr_set()
mysqli_stmt_bind_param()
mysqli_stmt_bind_result()
mysqli_stmt_close()
mysqli_stmt_data_seek()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_stmt_field_count()
mysqli_stmt_free_result()
mysqli_stmt_get_warnings()
mysqli_stmt_init()
mysqli_stmt_insert_id()
mysqli_stmt_num_rows()
mysqli_stmt_param_count()
mysqli_stmt_prepare()
mysqli_stmt_reset()
mysqli_stmt_result_metadata()
mysqli_stmt_send_long_data()
mysqli_stmt_sqlstate()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()
N
natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
newt_bell()
newt_button()
newt_button_bar()
newt_centered_window()
newt_checkbox()
newt_checkbox_get_value()
newt_checkbox_set_flags()
newt_checkbox_set_value()
newt_checkbox_tree()
newt_checkbox_tree_add_item()
newt_checkbox_tree_find_item()
newt_checkbox_tree_get_current()
newt_checkbox_tree_get_entry_value()
newt_checkbox_tree_get_multi_selection()
newt_checkbox_tree_get_selection()
newt_checkbox_tree_multi()
newt_checkbox_tree_set_current()
newt_checkbox_tree_set_entry()
newt_checkbox_tree_set_entry_value()
newt_checkbox_tree_set_width()
newt_clear_key_buffer()
newt_cls()
newt_compact_button()
newt_component_add_callback()
newt_component_takes_focus()
newt_create_grid()
newt_cursor_off()
newt_cursor_on()
newt_delay()
newt_draw_form()
newt_draw_root_text()
newt_entry()
newt_entry_get_value()
newt_entry_set()
newt_entry_set_filter()
newt_entry_set_flags()
newt_finished()
newt_form()
newt_form_add_component()
newt_form_add_components()
newt_form_add_hot_key()
newt_form_destroy()
newt_form_get_current()
newt_form_run()
newt_form_set_background()
newt_form_set_height()
newt_form_set_size()
newt_form_set_timer()
newt_form_set_width()
newt_form_watch_fd()
newt_get_screen_size()
newt_grid_add_components_to_form()
newt_grid_basic_window()
newt_grid_free()
newt_grid_get_size()
newt_grid_h_close_stacked()
newt_grid_h_stacked()
newt_grid_place()
newt_grid_set_field()
newt_grid_simple_window()
newt_grid_v_close_stacked()
newt_grid_v_stacked()
newt_grid_wrapped_window()
newt_grid_wrapped_window_at()
newt_init()
newt_label()
newt_label_set_text()
newt_listbox()
newt_listbox_append_entry()
newt_listbox_clear()
newt_listbox_clear_selection()
newt_listbox_delete_entry()
newt_listbox_get_current()
newt_listbox_get_selection()
newt_listbox_insert_entry()
newt_listbox_item_count()
newt_listbox_select_item()
newt_listbox_set_current()
newt_listbox_set_current_by_key()
newt_listbox_set_data()
newt_listbox_set_entry()
newt_listbox_set_width()
newt_listitem()
newt_listitem_get_data()
newt_listitem_set()
newt_open_window()
newt_pop_help_line()
newt_pop_window()
newt_push_help_line()
newt_radio_get_current()
newt_radiobutton()
newt_redraw_help_line()
newt_reflow_text()
newt_refresh()
newt_resize_screen()
newt_resume()
newt_run_form()
newt_scale()
newt_scale_set()
newt_scrollbar_set()
newt_set_help_callback()
newt_set_suspend_callback()
newt_suspend()
newt_textbox()
newt_textbox_get_num_lines()
newt_textbox_reflowed()
newt_textbox_set_height()
newt_textbox_set_text()
newt_vertical_scrollbar()
newt_wait_for_key()
newt_win_choice()
newt_win_entries()
newt_win_menu()
newt_win_message()
newt_win_messagev()
newt_win_ternary()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()
O
ob_clean()
ob_deflatehandler()
ob_end_clean()
ob_end_flush()
ob_etaghandler()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_flush()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_inflatehandler()
ob_list_handlers()
ob_start()
ob_tidyhandler()
OCI-Collection->append()
OCI-Collection->assign()
OCI-Collection->assignElem()
OCI-Collection->free()
OCI-Collection->getElem()
OCI-Collection->max()
OCI-Collection->size()
OCI-Collection->trim()
OCI-Lob->append()
OCI-Lob->close()
OCI-Lob->eof()
OCI-Lob->erase()
OCI-Lob->export()
OCI-Lob->flush()
OCI-Lob->free()
OCI-Lob->getBuffering()
OCI-Lob->import()
OCI-Lob->load()
OCI-Lob->read()
OCI-Lob->rewind()
OCI-Lob->save()
OCI-Lob->saveFile()
OCI-Lob->seek()
OCI-Lob->setBuffering()
OCI-Lob->size()
OCI-Lob->tell()
OCI-Lob->truncate()
OCI-Lob->write()
OCI-Lob->writeTemporary()
OCI-Lob->writeToFile()
oci_bind_array_by_name()
oci_bind_by_name()
oci_cancel()
oci_close()
oci_commit()
oci_connect()
oci_define_by_name()
oci_error()
oci_execute()
oci_fetch()
oci_fetch_all()
oci_fetch_array()
oci_fetch_assoc()
oci_fetch_object()
oci_fetch_row()
oci_field_is_null()
oci_field_name()
oci_field_precision()
oci_field_scale()
oci_field_size()
oci_field_type()
oci_field_type_raw()
oci_free_statement()
oci_internal_debug()
oci_lob_copy()
oci_lob_is_equal()
oci_new_collection()
oci_new_connect()
oci_new_cursor()
oci_new_descriptor()
oci_num_fields()
oci_num_rows()
oci_parse()
oci_password_change()
oci_pconnect()
oci_result()
oci_rollback()
oci_server_version()
oci_set_prefetch()
oci_statement_type()
ocibindbyname()
ocicancel()
ocicloselob()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
ociwritetemporarylob()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
openal_buffer_create()
openal_buffer_data()
openal_buffer_destroy()
openal_buffer_get()
openal_buffer_loadwav()
openal_context_create()
openal_context_current()
openal_context_destroy()
openal_context_process()
openal_context_suspend()
openal_device_close()
openal_device_open()
openal_listener_get()
openal_listener_set()
openal_source_create()
openal_source_destroy()
openal_source_get()
openal_source_pause()
openal_source_play()
openal_source_rewind()
openal_source_set()
openal_source_stop()
openal_stream()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_get_public_key()
openssl_csr_get_subject()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_free()
openssl_pkey_get_details()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
orbitenum()
orbitobject()
orbitstruct()
ord()
output_add_rewrite_var()
output_reset_rewrite_vars()
overload()
override_function()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()
P
pack()
ParentIterator::getChildren()
ParentIterator::hasChildren()
ParentIterator::next()
ParentIterator::rewind()
parse_ini_file()
parse_str()
parse_url()
parsekit_compile_file()
parsekit_compile_string()
parsekit_func_arginfo()
passthru()
pathinfo()
pclose()
pcntl_alarm()
pcntl_exec()
pcntl_fork()
pcntl_getpriority()
pcntl_setpriority()
pcntl_signal()
pcntl_wait()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_activate_item()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_nameddest()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_table_cell()
pdf_add_textflow()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_document()
pdf_begin_font()
pdf_begin_glyph()
pdf_begin_item()
pdf_begin_layer()
pdf_begin_page()
pdf_begin_page_ext()
pdf_begin_pattern()
pdf_begin_template()
pdf_begin_template_ext()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_create_3dview()
pdf_create_action()
pdf_create_annotation()
pdf_create_bookmark()
pdf_create_field()
pdf_create_fieldgroup()
pdf_create_gstate()
pdf_create_pvf()
pdf_create_textflow()
pdf_curveto()
pdf_define_layer()
pdf_delete()
pdf_delete_pvf()
pdf_delete_table()
pdf_delete_textflow()
pdf_encoding_set_char()
pdf_end_document()
pdf_end_font()
pdf_end_glyph()
pdf_end_item()
pdf_end_layer()
pdf_end_page()
pdf_end_page_ext()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_imageblock()
pdf_fill_pdfblock()
pdf_fill_stroke()
pdf_fill_textblock()
pdf_findfont()
pdf_fit_image()
pdf_fit_pdi_page()
pdf_fit_table()
pdf_fit_textflow()
pdf_fit_textline()
pdf_get_apiname()
pdf_get_buffer()
pdf_get_errmsg()
pdf_get_errnum()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_info_font()
pdf_info_matchbox()
pdf_info_table()
pdf_info_textflow()
pdf_info_textline()
pdf_initgraphics()
pdf_lineto()
pdf_load_3ddata()
pdf_load_font()
pdf_load_iccprofile()
pdf_load_image()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_tiff()
pdf_pcos_get_number()
pdf_pcos_get_stream()
pdf_pcos_get_string()
pdf_place_image()
pdf_place_pdi_page()
pdf_process_pdi()
pdf_rect()
pdf_restore()
pdf_resume_page()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_gstate()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_layer_dependency()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setdashpattern()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_shading()
pdf_shading_pattern()
pdf_shfill()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_suspend_page()
pdf_translate()
pdf_utf16_to_utf8()
pdf_utf32_to_utf16()
pdf_utf8_to_utf16()
PDO->__construct()
PDO->beginTransaction()
PDO->commit()
PDO->errorCode()
PDO->errorInfo()
PDO->exec()
PDO->getAttribute()
PDO->getAvailableDrivers()
PDO->lastInsertId()
PDO->prepare()
PDO->query()
PDO->quote()
PDO->rollBack()
PDO->setAttribute()
PDO->sqliteCreateAggregate()
PDO->sqliteCreateFunction()
PDO::pgsqlLOBCreate()
PDO::pgsqlLOBOpen()
PDO::pgsqlLOBUnlink()
PDOStatement->bindColumn()
PDOStatement->bindParam()
PDOStatement->bindValue()
PDOStatement->closeCursor()
PDOStatement->columnCount()
PDOStatement->errorCode()
PDOStatement->errorInfo()
PDOStatement->execute()
PDOStatement->fetch()
PDOStatement->fetchAll()
PDOStatement->fetchColumn()
PDOStatement->fetchObject()
PDOStatement->getAttribute()
PDOStatement->getColumnMeta()
PDOStatement->nextRowset()
PDOStatement->rowCount()
PDOStatement->setAttribute()
PDOStatement->setFetchMode()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_execute()
pg_fetch_all()
pg_fetch_all_columns()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_object()
pg_fetch_result()
pg_fetch_row()
pg_field_is_null()
pg_field_name()
pg_field_num()
pg_field_prtlen()
pg_field_size()
pg_field_table()
pg_field_type()
pg_field_type_oid()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_parameter_status()
pg_pconnect()
pg_ping()
pg_port()
pg_prepare()
pg_put_line()
pg_query()
pg_query_params()
pg_result_error()
pg_result_error_field()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_execute()
pg_send_prepare()
pg_send_query()
pg_send_query_params()
pg_set_client_encoding()
pg_set_error_verbosity()
pg_trace()
pg_transaction_status()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
pg_version()
Phar->compressAllFilesBZIP2()
Phar->compressAllFilesGZ()
Phar->count()
Phar->getMetaData()
Phar->getModified()
Phar->getSignature()
Phar->getStub()
Phar->getVersion()
Phar->isBuffering()
Phar->setMetaData()
Phar->setStub()
Phar->startBuffering()
Phar->stopBuffering()
Phar->uncompressAllFiles()
Phar::__construct()
Phar::apiVersion()
Phar::canCompress()
Phar::canWrite()
Phar::loadPhar()
Phar::mapPhar()
Phar::offsetExists()
Phar::offsetGet()
Phar::offsetSet()
Phar::offsetUnset()
PharFileInfo->chmod()
PharFileInfo->getCompressedSize()
PharFileInfo->getCRC32()
PharFileInfo->getMetaData()
PharFileInfo->getPharFlags()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedBZIP2()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCRCChecked()
PharFileInfo->setCompressedBZIP2()
PharFileInfo->setCompressedGZ()
PharFileInfo->setMetaData()
PharFileInfo->setUncompressed()
PharFileInfo::__construct()
php_check_syntax()
php_ini_scanned_files()
php_logo_guid()
php_sapi_name()
php_strip_whitespace()
php_uname()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_access()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_initgroups()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_mknod()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_last_error()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
property_exists()
ps_add_bookmark()
ps_add_launchlink()
ps_add_locallink()
ps_add_note()
ps_add_pdflink()
ps_add_weblink()
ps_arc()
ps_arcn()
ps_begin_page()
ps_begin_pattern()
ps_begin_template()
ps_circle()
ps_clip()
ps_close()
ps_close_image()
ps_closepath()
ps_closepath_stroke()
ps_continue_text()
ps_curveto()
ps_delete()
ps_end_page()
ps_end_pattern()
ps_end_template()
ps_fill()
ps_fill_stroke()
ps_findfont()
ps_get_buffer()
ps_get_parameter()
ps_get_value()
ps_hyphenate()
ps_include_file()
ps_lineto()
ps_makespotcolor()
ps_moveto()
ps_new()
ps_open_file()
ps_open_image()
ps_open_image_file()
ps_open_memory_image()
ps_place_image()
ps_rect()
ps_restore()
ps_rotate()
ps_save()
ps_scale()
ps_set_border_color()
ps_set_border_dash()
ps_set_border_style()
ps_set_info()
ps_set_parameter()
ps_set_text_pos()
ps_set_value()
ps_setcolor()
ps_setdash()
ps_setflat()
ps_setfont()
ps_setgray()
ps_setlinecap()
ps_setlinejoin()
ps_setlinewidth()
ps_setmiterlimit()
ps_setoverprintmode()
ps_setpolydash()
ps_shading()
ps_shading_pattern()
ps_shfill()
ps_show()
ps_show2()
ps_show_boxed()
ps_show_xy()
ps_show_xy2()
ps_string_geometry()
ps_stringwidth()
ps_stroke()
ps_symbol()
ps_symbol_name()
ps_symbol_width()
ps_translate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_data_dir()
pspell_config_dict_dir()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()
px_close()
px_create_fp()
px_date2string()
px_delete()
px_delete_record()
px_get_field()
px_get_info()
px_get_parameter()
px_get_record()
px_get_schema()
px_get_value()
px_insert_record()
px_new()
px_numfields()
px_numrecords()
px_open_fp()
px_put_record()
px_retrieve_record()
px_set_blob_file()
px_set_parameter()
px_set_tablename()
px_set_targetencoding()
px_set_value()
px_timestamp2string()
px_update_record()
Q
qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()
R
rad2deg()
radius_acct_open()
radius_add_server()
radius_auth_open()
radius_close()
radius_config()
radius_create_request()
radius_cvt_addr()
radius_cvt_int()
radius_cvt_string()
radius_demangle()
radius_demangle_mppe_key()
radius_get_attr()
radius_get_vendor_attr()
radius_put_addr()
radius_put_attr()
radius_put_int()
radius_put_string()
radius_put_vendor_addr()
radius_put_vendor_attr()
radius_put_vendor_int()
radius_put_vendor_string()
radius_request_authenticator()
radius_send_request()
radius_server_secret()
radius_strerror()
rand()
range()
Rar::extract()
Rar::getAttr()
Rar::getCrc()
Rar::getFileTime()
Rar::getHostOs()
Rar::getMethod()
Rar::getName()
Rar::getPackedSize()
Rar::getUnpackedSize()
Rar::getVersion()
rar_close()
rar_entry_get()
rar_list()
rar_open()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_callback_handler_install()
readline_callback_handler_remove()
readline_callback_read_char()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_on_new_line()
readline_read_history()
readline_redisplay()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
RecursiveDirectoryIterator::getChildren()
RecursiveDirectoryIterator::hasChildren()
RecursiveDirectoryIterator::key()
RecursiveDirectoryIterator::next()
RecursiveDirectoryIterator::rewind()
RecursiveIteratorIterator::current()
RecursiveIteratorIterator::getDepth()
RecursiveIteratorIterator::getSubIterator()
RecursiveIteratorIterator::key()
RecursiveIteratorIterator::next()
RecursiveIteratorIterator::rewind()
RecursiveIteratorIterator::valid()
register_shutdown_function()
register_tick_function()
rename()
rename_function()
reset()
resources()
restore_error_handler()
restore_exception_handler()
restore_include_path()
result->current_field()
result->current_field()
result->data_seek()
result->data_seek()
result->fetch_array()
result->fetch_array()
result->fetch_field()
result->fetch_field()
result->fetch_field_direct()
result->fetch_field_direct()
result->fetch_fields()
result->fetch_fields()
result->fetch_object()
result->fetch_object()
result->fetch_row()
result->fetch_row()
result->field_count()
result->field_count()
result->field_seek()
result->field_seek()
result->free()
result->free()
result->lengths()
result->lengths()
result->num_rows()
rewind()
rewinddir()
rmdir()
round()
rpm_close()
rpm_get_tag()
rpm_is_valid()
rpm_open()
rpm_version()
rsort()
rtrim()
runkit_class_adopt()
runkit_class_emancipate()
runkit_constant_add()
runkit_constant_redefine()
runkit_constant_remove()
runkit_function_add()
runkit_function_copy()
runkit_function_redefine()
runkit_function_remove()
runkit_function_rename()
runkit_import()
runkit_lint()
runkit_lint_file()
runkit_method_add()
runkit_method_copy()
runkit_method_redefine()
runkit_method_remove()
runkit_method_rename()
runkit_return_value_used()
runkit_sandbox()
runkit_sandbox_output_handler()
runkit_sandbox_parent()
runkit_superglobals()
S
SAMConnection->__construct()
SAMConnection->commit()
SAMConnection->connect()
SAMConnection->disconnect()
SAMConnection->errno()
SAMConnection->error()
SAMConnection->isConnected()
SAMConnection->peek()
SAMConnection->peekAll()
SAMConnection->receive()
SAMConnection->remove()
SAMConnection->rollback()
SAMConnection->send()
SAMConnection->subscribe()
SAMConnection->unsubscribe()
SAMConnection::setDebug()
SAMMessage->__construct()
SAMMessage->body()
SAMMessage->header()
satellite_caught_exception()
satellite_exception_id()
satellite_exception_value()
satellite_get_repository_id()
satellite_load_idl()
satellite_object_to_string()
SCA::createDataObject()
SCA::getService()
SCA_LocalProxy::createDataObject()
SCA_SoapProxy::createDataObject()
scandir()
SDO_DAS_ChangeSummary::beginLogging()
SDO_DAS_ChangeSummary::endLogging()
SDO_DAS_ChangeSummary::getChangedDataObjects()
SDO_DAS_ChangeSummary::getChangeType()
SDO_DAS_ChangeSummary::getOldContainer()
SDO_DAS_ChangeSummary::getOldValues()
SDO_DAS_ChangeSummary::isLogging()
SDO_DAS_DataFactory::addPropertyToType()
SDO_DAS_DataFactory::addType()
SDO_DAS_DataFactory::getDataFactory()
SDO_DAS_DataObject::getChangeSummary()
SDO_DAS_Relational::__construct()
SDO_DAS_Relational::applyChanges()
SDO_DAS_Relational::createRootDataObject()
SDO_DAS_Relational::executePreparedQuery()
SDO_DAS_Relational::executeQuery()
SDO_DAS_Setting::getListIndex()
SDO_DAS_Setting::getPropertyIndex()
SDO_DAS_Setting::getPropertyName()
SDO_DAS_Setting::getValue()
SDO_DAS_Setting::isSet()
SDO_DAS_XML::addTypes()
SDO_DAS_XML::create()
SDO_DAS_XML::createDataObject()
SDO_DAS_XML::createDocument()
SDO_DAS_XML::loadFile()
SDO_DAS_XML::loadString()
SDO_DAS_XML::saveFile()
SDO_DAS_XML::saveString()
SDO_DAS_XML_Document::getRootDataObject()
SDO_DAS_XML_Document::getRootElementName()
SDO_DAS_XML_Document::getRootElementURI()
SDO_DAS_XML_Document::setEncoding()
SDO_DAS_XML_Document::setXMLDeclaration()
SDO_DAS_XML_Document::setXMLVersion()
SDO_DataFactory::create()
SDO_DataObject::clear()
SDO_DataObject::createDataObject()
SDO_DataObject::getContainer()
SDO_DataObject::getSequence()
SDO_DataObject::getTypeName()
SDO_DataObject::getTypeNamespaceURI()
SDO_Exception::getCause()
SDO_List::insert()
SDO_Model_Property::getContainingType()
SDO_Model_Property::getDefault()
SDO_Model_Property::getName()
SDO_Model_Property::getType()
SDO_Model_Property::isContainment()
SDO_Model_Property::isMany()
SDO_Model_ReflectionDataObject::__construct()
SDO_Model_ReflectionDataObject::export()
SDO_Model_ReflectionDataObject::getContainmentProperty()
SDO_Model_ReflectionDataObject::getInstanceProperties()
SDO_Model_ReflectionDataObject::getType()
SDO_Model_Type::getBaseType()
SDO_Model_Type::getName()
SDO_Model_Type::getNamespaceURI()
SDO_Model_Type::getProperties()
SDO_Model_Type::getProperty()
SDO_Model_Type::isAbstractType()
SDO_Model_Type::isDataType()
SDO_Model_Type::isInstance()
SDO_Model_Type::isOpenType()
SDO_Model_Type::isSequencedType()
SDO_Sequence::getProperty()
SDO_Sequence::insert()
SDO_Sequence::move()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_commit()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_pgsql_add_error()
session_pgsql_get_error()
session_pgsql_get_field()
session_pgsql_reset()
session_pgsql_set_field()
session_pgsql_status()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_exception_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
setrawcookie()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
similar_text()
simplexml_import_dom()
simplexml_load_file()
simplexml_load_string()
SimpleXMLElement->__construct()
SimpleXMLElement->addAttribute()
SimpleXMLElement->addChild()
SimpleXMLElement->asXML()
SimpleXMLElement->attributes()
SimpleXMLElement->children()
SimpleXMLElement->getDocNamespaces()
SimpleXMLElement->getName()
SimpleXMLElement->getNamespaces()
SimpleXMLElement->registerXPathNamespace()
SimpleXMLElement->xpath()
SimpleXMLIterator::current()
SimpleXMLIterator::getChildren()
SimpleXMLIterator::hasChildren()
SimpleXMLIterator::key()
SimpleXMLIterator::next()
SimpleXMLIterator::rewind()
SimpleXMLIterator::valid()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_get_valueretrieval()
snmp_read_mib()
snmp_set_enum_print()
snmp_set_oid_numeric_print()
snmp_set_oid_output_format()
snmp_set_quick_print()
snmp_set_valueretrieval()
snmpget()
snmpgetnext()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
SoapClient->__call()
SoapClient->__construct()
SoapClient->__doRequest()
SoapClient->__getFunctions()
SoapClient->__getLastRequest()
SoapClient->__getLastRequestHeaders()
SoapClient->__getLastResponse()
SoapClient->__getLastResponseHeaders()
SoapClient->__getTypes()
SoapClient->__setCookie()
SoapClient->__soapCall()
SoapFault->__construct()
SoapHeader->__construct()
SoapParam->__construct()
SoapServer->__construct()
SoapServer->addFunction()
SoapServer->fault()
SoapServer->getFunctions()
SoapServer->handle()
SoapServer->setClass()
SoapServer->setPersistence()
SoapVar->__construct()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_last_error()
socket_listen()
socket_read()
socket_recv()
socket_recvfrom()
socket_select()
socket_send()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
sort()
soundex()
spl_autoload()
spl_autoload_call()
spl_autoload_extensions()
spl_autoload_functions()
spl_autoload_register()
spl_autoload_unregister()
spl_classes()
spl_object_hash()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_exec()
sqlite_factory()
sqlite_fetch_all()
sqlite_fetch_array()
sqlite_fetch_column_types()
sqlite_fetch_object()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_has_prev()
sqlite_key()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_prev()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_single_query()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqlite_valid()
SQLiteDatabase->arrayQuery()
SQLiteDatabase->busyTimeout()
SQLiteDatabase->changes()
SQLiteDatabase->createAggregate()
SQLiteDatabase->createFunction()
SQLiteDatabase->exec()
SQLiteDatabase->fetchColumnTypes()
SQLiteDatabase->lastError()
SQLiteDatabase->lastInsertRowid()
SQLiteDatabase->query()
SQLiteDatabase->singleQuery()
SQLiteDatabase->unbufferedQuery()
SQLiteResult->column()
SQLiteResult->current()
SQLiteResult->fetch()
SQLiteResult->fetchAll()
SQLiteResult->fetchObject()
SQLiteResult->fetchSingle()
SQLiteResult->fieldName()
SQLiteResult->hasPrev()
SQLiteResult->key()
SQLiteResult->next()
SQLiteResult->numFields()
SQLiteResult->numRows()
SQLiteResult->prev()
SQLiteResult->rewind()
SQLiteResult->seek()
SQLiteResult->valid()
SQLiteUnbuffered->column()
SQLiteUnbuffered->current()
SQLiteUnbuffered->fetch()
SQLiteUnbuffered->fetchAll()
SQLiteUnbuffered->fetchObject()
SQLiteUnbuffered->fetchSingle()
SQLiteUnbuffered->fieldName()
SQLiteUnbuffered->next()
SQLiteUnbuffered->numFields()
SQLiteUnbuffered->valid()
sqrt()
srand()
sscanf()
ssh2_auth_hostbased_file()
ssh2_auth_none()
ssh2_auth_password()
ssh2_auth_pubkey_file()
ssh2_connect()
ssh2_exec()
ssh2_fetch_stream()
ssh2_fingerprint()
ssh2_methods_negotiated()
ssh2_publickey_add()
ssh2_publickey_init()
ssh2_publickey_list()
ssh2_publickey_remove()
ssh2_scp_recv()
ssh2_scp_send()
ssh2_sftp()
ssh2_sftp_lstat()
ssh2_sftp_mkdir()
ssh2_sftp_readlink()
ssh2_sftp_realpath()
ssh2_sftp_rename()
ssh2_sftp_rmdir()
ssh2_sftp_stat()
ssh2_sftp_symlink()
ssh2_sftp_unlink()
ssh2_shell()
ssh2_tunnel()
stat()
stats_absolute_deviation()
stats_cdf_beta()
stats_cdf_binomial()
stats_cdf_cauchy()
stats_cdf_chisquare()
stats_cdf_exponential()
stats_cdf_f()
stats_cdf_gamma()
stats_cdf_laplace()
stats_cdf_logistic()
stats_cdf_negative_binomial()
stats_cdf_noncentral_chisquare()
stats_cdf_noncentral_f()
stats_cdf_poisson()
stats_cdf_t()
stats_cdf_uniform()
stats_cdf_weibull()
stats_covariance()
stats_den_uniform()
stats_dens_beta()
stats_dens_cauchy()
stats_dens_chisquare()
stats_dens_exponential()
stats_dens_f()
stats_dens_gamma()
stats_dens_laplace()
stats_dens_logistic()
stats_dens_negative_binomial()
stats_dens_normal()
stats_dens_pmf_binomial()
stats_dens_pmf_hypergeometric()
stats_dens_pmf_poisson()
stats_dens_t()
stats_dens_weibull()
stats_harmonic_mean()
stats_kurtosis()
stats_rand_gen_beta()
stats_rand_gen_chisquare()
stats_rand_gen_exponential()
stats_rand_gen_f()
stats_rand_gen_funiform()
stats_rand_gen_gamma()
stats_rand_gen_ibinomial()
stats_rand_gen_ibinomial_negative()
stats_rand_gen_int()
stats_rand_gen_ipoisson()
stats_rand_gen_iuniform()
stats_rand_gen_noncenral_chisquare()
stats_rand_gen_noncentral_f()
stats_rand_gen_noncentral_t()
stats_rand_gen_normal()
stats_rand_gen_t()
stats_rand_get_seeds()
stats_rand_phrase_to_seeds()
stats_rand_ranf()
stats_rand_setall()
stats_skew()
stats_standard_deviation()
stats_stat_binomial_coef()
stats_stat_correlation()
stats_stat_gennch()
stats_stat_independent_t()
stats_stat_innerproduct()
stats_stat_noncentral_t()
stats_stat_paired_t()
stats_stat_percentile()
stats_stat_powersum()
stats_variance()
stmt->bind_param()
stmt->bind_param()
stmt->bind_result()
stmt->bind_result()
stmt->close_long_data()
stmt->data_seek()
stmt->data_seek()
stmt->execute()
stmt->execute()
stmt->fetch()
stmt->fetch()
stmt->free_result()
stmt->free_result()
stmt->num_rows()
stmt->num_rows()
stmt->param_count()
stmt->param_count()
stmt->prepare()
stmt->prepare()
stmt->reset()
stmt->reset()
stmt->result_metadata()
stmt->send_long_data()
stmt->send_long_data()
str_getcsv()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_bucket_append()
stream_bucket_make_writeable()
stream_bucket_new()
stream_bucket_prepend()
stream_context_create()
stream_context_get_default()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_encoding()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_filter_remove()
stream_get_contents()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_resolve_include_path()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_enable_crypto()
stream_socket_get_name()
stream_socket_pair()
stream_socket_recvfrom()
stream_socket_sendto()
stream_socket_server()
stream_socket_shutdown()
stream_wrapper_register()
stream_wrapper_restore()
stream_wrapper_unregister()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpbrk()
strpos()
strptime()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_compare()
substr_count()
substr_replace()
svn_add()
svn_auth_get_parameter()
svn_auth_set_parameter()
svn_cat()
svn_checkout()
svn_cleanup()
svn_client_version()
svn_commit()
svn_diff()
svn_fs_abort_txn()
svn_fs_apply_text()
svn_fs_begin_txn2()
svn_fs_change_node_prop()
svn_fs_check_path()
svn_fs_contents_changed()
svn_fs_copy()
svn_fs_delete()
svn_fs_dir_entries()
svn_fs_file_contents()
svn_fs_file_length()
svn_fs_is_dir()
svn_fs_is_file()
svn_fs_make_dir()
svn_fs_make_file()
svn_fs_node_created_rev()
svn_fs_node_prop()
svn_fs_props_changed()
svn_fs_revision_prop()
svn_fs_revision_root()
svn_fs_txn_root()
svn_fs_youngest_rev()
svn_import()
svn_log()
svn_ls()
svn_repos_create()
svn_repos_fs()
svn_repos_fs_begin_txn_for_commit()
svn_repos_fs_commit_txn()
svn_repos_hotcopy()
svn_repos_open()
svn_repos_recover()
svn_status()
svn_update()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
SWFAction->__construct()
swfbitmap()
SWFBitmap->__construct()
SWFBitmap->getHeight()
SWFBitmap->getWidth()
swfbutton()
SWFButton->__construct()
SWFButton->addAction()
SWFButton->addASound()
SWFButton->addShape()
SWFButton->setAction()
SWFButton->setDown()
SWFButton->setHit()
SWFButton->setMenu()
SWFButton->setOver()
SWFButton->setUp()
swfdisplayitem()
SWFDisplayItem->addAction()
SWFDisplayItem->addColor()
SWFDisplayItem->endMask()
SWFDisplayItem->getRot()
SWFDisplayItem->getX()
SWFDisplayItem->getXScale()
SWFDisplayItem->getXSkew()
SWFDisplayItem->getY()
SWFDisplayItem->getYScale()
SWFDisplayItem->getYSkew()
SWFDisplayItem->move()
SWFDisplayItem->moveTo()
SWFDisplayItem->multColor()
SWFDisplayItem->remove()
SWFDisplayItem->rotate()
SWFDisplayItem->rotateTo()
SWFDisplayItem->scale()
SWFDisplayItem->scaleTo()
SWFDisplayItem->setDepth()
SWFDisplayItem->setMaskLevel()
SWFDisplayItem->setMatrix()
SWFDisplayItem->setName()
SWFDisplayItem->setRatio()
SWFDisplayItem->skewX()
SWFDisplayItem->skewXTo()
SWFDisplayItem->skewY()
SWFDisplayItem->skewYTo()
swffill()
SWFFill->moveTo()
SWFFill->rotateTo()
SWFFill->scaleTo()
SWFFill->skewXTo()
SWFFill->skewYTo()
swffont()
SWFFont->__construct()
SWFFont->getAscent()
SWFFont->getDescent()
SWFFont->getLeading()
SWFFont->getShape()
SWFFont->getUTF8Width()
SWFFont->getWidth()
swffontchar()
SWFFontChar->addChars()
SWFFontChar->addUTF8Chars()
swfgradient()
SWFGradient->__construct()
SWFGradient->addEntry()
swfmorph()
SWFMorph->__construct()
SWFMorph->getShape1()
SWFMorph->getShape2()
swfmovie()
SWFMovie->__construct()
SWFMovie->add()
SWFMovie->addExport()
SWFMovie->addFont()
SWFMovie->importChar()
SWFMovie->importFont()
SWFMovie->labelFrame()
SWFMovie->nextFrame()
SWFMovie->output()
SWFMovie->remove()
SWFMovie->save()
SWFMovie->saveToFile()
SWFMovie->setbackground()
SWFMovie->setDimension()
SWFMovie->setFrames()
SWFMovie->setRate()
SWFMovie->startSound()
SWFMovie->stopSound()
SWFMovie->streamMP3()
SWFMovie->writeExports()
swfprebuiltclip()
SWFPrebuiltClip->__construct()
swfshape()
SWFShape->__construct()
SWFShape->addFill()
SWFShape->drawArc()
SWFShape->drawCircle()
SWFShape->drawCubic()
SWFShape->drawCubicTo()
SWFShape->drawCurve()
SWFShape->drawCurveTo()
SWFShape->drawGlyph()
SWFShape->drawLine()
SWFShape->drawLineTo()
SWFShape->movePen()
SWFShape->movePenTo()
SWFShape->setLeftFill()
SWFShape->setLine()
SWFShape->setRightFill()
swfsound()
swfsound()
swfsoundinstance()
SWFSoundInstance->loopCount()
SWFSoundInstance->loopInPoint()
SWFSoundInstance->loopOutPoint()
SWFSoundInstance->noMultiple()
swfsprite()
SWFSprite->__construct()
SWFSprite->add()
SWFSprite->labelFrame()
SWFSprite->nextFrame()
SWFSprite->remove()
SWFSprite->setFrames()
SWFSprite->startSound()
SWFSprite->stopSound()
swftext()
SWFText->__construct()
SWFText->addString()
SWFText->addUTF8String()
SWFText->getAscent()
SWFText->getDescent()
SWFText->getLeading()
SWFText->getUTF8Width()
SWFText->getWidth()
SWFText->moveTo()
SWFText->setColor()
SWFText->setFont()
SWFText->setHeight()
SWFText->setSpacing()
swftextfield()
SWFTextField->__construct()
SWFTextField->addChars()
SWFTextField->addString()
SWFTextField->align()
SWFTextField->setBounds()
SWFTextField->setColor()
SWFTextField->setFont()
SWFTextField->setHeight()
SWFTextField->setIndentation()
SWFTextField->setLeftMargin()
SWFTextField->setLineSpacing()
SWFTextField->setMargins()
SWFTextField->setName()
SWFTextField->setPadding()
SWFTextField->setRightMargin()
swfvideostream()
SWFVideoStream->__construct()
SWFVideoStream->getNumFrames()
SWFVideoStream->setDimension()
Swish->getMetaList()
Swish->getPropertyList()
Swish->prepare()
Swish->query()
Swish::__construct()
SwishResult->getMetaList()
SwishResult->stem()
SwishResults->getParsedWords()
SwishResults->getRemovedStopwords()
SwishResults->nextResult()
SwishResults->seekResult()
SwishSearch->execute()
SwishSearch->resetLimit()
SwishSearch->setLimit()
SwishSearch->setPhraseDelimiter()
SwishSearch->setSort()
SwishSearch->setStructure()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
sys_get_temp_dir()
sys_getloadavg()
syslog()
system()
T
tan()
tanh()
tcpwrap_check()
tempnam()
textdomain()
tidy::__construct()
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_body()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_head()
tidy_get_html()
tidy_get_html_ver()
tidy_get_opt_doc()
tidy_get_output()
tidy_get_release()
tidy_get_root()
tidy_get_status()
tidy_getopt()
tidy_is_xhtml()
tidy_is_xml()
tidy_load_config()
tidy_node->get_attr()
tidy_node->get_nodes()
tidy_node->next()
tidy_node->prev()
tidy_parse_file()
tidy_parse_string()
tidy_repair_file()
tidy_repair_string()
tidy_reset_config()
tidy_save_config()
tidy_set_encoding()
tidy_setopt()
tidy_warning_count()
tidyNode->hasChildren()
tidyNode->hasSiblings()
tidyNode->isAsp()
tidyNode->isComment()
tidyNode->isHtml()
tidyNode->isJste()
tidyNode->isPhp()
tidyNode->isText()
tidyNode::getParent()
time()
time_nanosleep()
time_sleep_until()
timezone_abbreviations_list()
timezone_identifiers_list()
timezone_name_from_abbr()
timezone_name_get()
timezone_offset_get()
timezone_open()
timezone_transitions_get()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()
U
uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_alloc_agent_array()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_hash32()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
unicode_decode()
unicode_encode()
unicode_get_error_mode()
unicode_get_subst_char()
unicode_semantics()
unicode_set_error_mode()
unicode_set_subst_char()
uniqid()
unixtojd()
unlink()
unpack()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
usage()
use_soap_error_handler()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()
V
var_dump()
var_export()
variant()
variant_abs()
variant_add()
variant_and()
variant_cast()
variant_cat()
variant_cmp()
variant_date_from_timestamp()
variant_date_to_timestamp()
variant_div()
variant_eqv()
variant_fix()
variant_get_type()
variant_idiv()
variant_imp()
variant_int()
variant_mod()
variant_mul()
variant_neg()
variant_not()
variant_or()
variant_pow()
variant_round()
variant_set()
variant_set_type()
variant_sub()
variant_xor()
version_compare()
vfprintf()
virtual()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()
W
w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wddx_unserialize()
win32_create_service()
win32_delete_service()
win32_get_last_control_message()
win32_ps_list_procs()
win32_ps_stat_mem()
win32_ps_stat_proc()
win32_query_service_status()
win32_set_service_status()
win32_start_service()
win32_start_service_ctrl_dispatcher()
win32_stop_service()
wordwrap()
X
xattr_get()
xattr_list()
xattr_remove()
xattr_set()
xattr_supported()
xdiff_file_diff()
xdiff_file_diff_binary()
xdiff_file_merge3()
xdiff_file_patch()
xdiff_file_patch_binary()
xdiff_string_diff()
xdiff_string_diff_binary()
xdiff_string_merge3()
xdiff_string_patch()
xdiff_string_patch_binary()
xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
XMLReader::close()
XMLReader::expand()
XMLReader::getAttribute()
XMLReader::getAttributeNo()
XMLReader::getAttributeNs()
XMLReader::getParserProperty()
XMLReader::isValid()
XMLReader::lookupNamespace()
XMLReader::moveToAttribute()
XMLReader::moveToAttributeNo()
XMLReader::moveToAttributeNs()
XMLReader::moveToElement()
XMLReader::moveToFirstAttribute()
XMLReader::moveToNextAttribute()
XMLReader::next()
XMLReader::open()
XMLReader::read()
XMLReader::setParserProperty()
XMLReader::setRelaxNGSchema()
XMLReader::setRelaxNGSchemaSource()
XMLReader::XML()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_is_fault()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
XMLWriter::endAttribute()
XMLWriter::endCData()
XMLWriter::endComment()
XMLWriter::endDocument()
XMLWriter::endDTD()
XMLWriter::endDTDAttlist()
XMLWriter::endDTDElement()
XMLWriter::endDTDEntity()
XMLWriter::endElement()
XMLWriter::endPI()
XMLWriter::flush()
XMLWriter::fullEndElement()
XMLWriter::openMemory()
XMLWriter::openURI()
XMLWriter::outputMemory()
XMLWriter::setIndent()
XMLWriter::setIndentString()
XMLWriter::startAttribute()
XMLWriter::startAttributeNS()
XMLWriter::startCData()
XMLWriter::startComment()
XMLWriter::startDocument()
XMLWriter::startDTD()
XMLWriter::startDTDAttlist()
XMLWriter::startDTDElement()
XMLWriter::startDTDEntity()
XMLWriter::startElement()
XMLWriter::startElementNS()
XMLWriter::startPI()
XMLWriter::text()
XMLWriter::writeAttribute()
XMLWriter::writeAttributeNS()
XMLWriter::writeCData()
XMLWriter::writeComment()
XMLWriter::writeDTD()
XMLWriter::writeDTDAttlist()
XMLWriter::writeDTDElement()
XMLWriter::writeDTDEntity()
XMLWriter::writeElement()
XMLWriter::writeElementNS()
XMLWriter::writePI()
XMLWriter::writeRaw()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xpath_register_ns()
xpath_register_ns_auto()
xptr_eval()
xptr_new_context()
xslt_backend_info()
xslt_backend_name()
xslt_backend_version()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_getopt()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_object()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()
xslt_setopt()
XSLTProcessor::__construct()
XSLTProcessor::getParameter()
XSLTProcessor::hasExsltSupport()
XSLTProcessor::importStylesheet()
XSLTProcessor::registerPHPFunctions()
XSLTProcessor::removeParameter()
XSLTProcessor::setParameter()
XSLTProcessor::transformToDoc()
XSLTProcessor::transformToURI()
XSLTProcessor::transformToXML()
Y
yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_es()
yaz_es_result()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()
Z
zend_logo_guid()
zend_thread_id()
zend_version()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
ZipArchive::addEmptyDir()
ZipArchive::addFile()
ZipArchive::addFromString()
ZipArchive::close()
ZipArchive::deleteIndex()
ZipArchive::deleteName()
ZipArchive::extractTo()
ZipArchive::getArchiveComment()
ZipArchive::getCommentIndex()
ZipArchive::getCommentName()
ZipArchive::getFromIndex()
ZipArchive::getFromName()
ZipArchive::getNameIndex()
ZipArchive::getStream()
ZipArchive::locateName()
ZipArchive::open()
ZipArchive::renameIndex()
ZipArchive::renameName()
ZipArchive::setArchiveComment()
ZipArchive::setCommentIndex()
ZipArchive::setCommentName()
ZipArchive::statIndex()
ZipArchive::statName()
ZipArchive::unchangeAll()
ZipArchive::unchangeArchive()
ZipArchive::unchangeIndex()
ZipArchive::unchangeName()
zlib_get_coding_type()